@itwin/appui-react 3.5.0-dev.7 → 3.6.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -1
- package/lib/cjs/appui-react/UiFramework.d.ts +11 -1
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +18 -3
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +2 -2
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/cjs/appui-react/backstage/Backstage.d.ts +3 -0
- package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/Backstage.js +3 -1
- package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
- package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -1
- package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +1 -0
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.d.ts +4 -1
- package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/cjs/appui-react/configurableui/state.js +6 -0
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.d.ts +8 -0
- package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +2 -2
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js +1 -0
- package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +5 -2
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageConfig.d.ts +40 -0
- package/lib/cjs/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -0
- package/lib/cjs/appui-react/frontstage/FrontstageConfig.js +10 -0
- package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -0
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +8 -0
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +114 -6
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +2 -4
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js +5 -8
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.d.ts +9 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.js +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +14 -5
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +13 -3
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +15 -7
- package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +2 -0
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +1 -0
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +1 -0
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts +1 -0
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js +4 -2
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +2 -1
- package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +1 -0
- package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.js +2 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaInsets.d.ts +13 -0
- package/lib/cjs/appui-react/safearea/SafeAreaInsets.d.ts.map +1 -0
- package/lib/cjs/appui-react/safearea/SafeAreaInsets.js +16 -0
- package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -0
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +2 -1
- package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +16 -3
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/shared/ActionButtonItemDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/shared/ActionButtonItemDef.js +3 -2
- package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +3 -0
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts +39 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js +11 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -6
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +4 -7
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Indicator.d.ts +26 -0
- package/lib/cjs/appui-react/statusbar/Indicator.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/Indicator.js +38 -0
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/Indicator.scss +110 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts +24 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js +29 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -0
- package/lib/cjs/appui-react/statusbar/Separator.d.ts +10 -0
- package/lib/cjs/appui-react/statusbar/Separator.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/Separator.js +21 -0
- package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +2 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/Button.d.ts +21 -0
- package/lib/cjs/appui-react/statusbar/dialog/Button.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/dialog/Button.js +20 -0
- package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/dialog/Dialog.d.ts +30 -0
- package/lib/cjs/appui-react/statusbar/dialog/Dialog.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/dialog/Dialog.js +31 -0
- package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/dialog/TitleBar.d.ts +19 -0
- package/lib/cjs/appui-react/statusbar/dialog/TitleBar.d.ts.map +1 -0
- package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js +20 -0
- package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -0
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts +1 -0
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js +1 -0
- package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -5
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/PromptField.js +2 -1
- package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -2
- package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js +2 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js +2 -1
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js +3 -2
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +0 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -11
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +14 -0
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts +7 -1
- package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +14 -3
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts +2 -0
- package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ActionItemButton.js +1 -0
- package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.d.ts +2 -0
- package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.js +1 -0
- package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolButton.d.ts +2 -0
- package/lib/cjs/appui-react/toolbar/ToolButton.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolButton.js +1 -0
- package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts +9 -0
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +17 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -3
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +3 -3
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.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 +6 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -0
- package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +28 -19
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +5 -2
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +10 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js +1 -1
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -2
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js +1 -0
- package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts +11 -0
- package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts.map +1 -0
- package/lib/cjs/appui-react/widgets/WidgetConfig.js +10 -0
- package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -0
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +14 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +21 -11
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.js.map +1 -1
- package/lib/cjs/appui-react/zones/Zone.d.ts +5 -1
- package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
- package/lib/cjs/appui-react/zones/Zone.js +1 -0
- package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
- package/lib/cjs/appui-react/zones/ZoneDef.d.ts +1 -0
- package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/zones/ZoneDef.js +2 -2
- package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +8 -0
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +8 -0
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +11 -1
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +19 -4
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +2 -2
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/esm/appui-react/backstage/Backstage.d.ts +3 -0
- package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/Backstage.js +3 -1
- package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
- package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -1
- package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js +1 -0
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/state.d.ts +4 -1
- package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
- package/lib/esm/appui-react/configurableui/state.js +7 -1
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.d.ts +8 -0
- package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +2 -2
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js +1 -0
- package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
- package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js +6 -3
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageConfig.d.ts +40 -0
- package/lib/esm/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -0
- package/lib/esm/appui-react/frontstage/FrontstageConfig.js +9 -0
- package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -0
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +8 -0
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +115 -7
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +2 -4
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js +5 -8
- package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.d.ts +9 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.js +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +14 -5
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +13 -3
- package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
- package/lib/esm/appui-react/hooks/useFrameworkVersion.js +15 -7
- package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +2 -0
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js +1 -0
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +1 -0
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.d.ts +1 -0
- package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js +4 -2
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +2 -1
- package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +1 -0
- package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.js +2 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaInsets.d.ts +13 -0
- package/lib/esm/appui-react/safearea/SafeAreaInsets.d.ts.map +1 -0
- package/lib/esm/appui-react/safearea/SafeAreaInsets.js +13 -0
- package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -0
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +2 -1
- package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +16 -3
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/shared/ActionButtonItemDef.d.ts.map +1 -1
- package/lib/esm/appui-react/shared/ActionButtonItemDef.js +3 -2
- package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +3 -0
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts +39 -0
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.js +10 -0
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -6
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +4 -7
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Indicator.d.ts +26 -0
- package/lib/esm/appui-react/statusbar/Indicator.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/Indicator.js +34 -0
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -0
- package/lib/esm/appui-react/statusbar/Indicator.scss +110 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts +24 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.js +25 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -0
- package/lib/esm/appui-react/statusbar/Separator.d.ts +10 -0
- package/lib/esm/appui-react/statusbar/Separator.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/Separator.js +17 -0
- package/lib/esm/appui-react/statusbar/Separator.js.map +1 -0
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js +2 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/Button.d.ts +21 -0
- package/lib/esm/appui-react/statusbar/dialog/Button.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/dialog/Button.js +16 -0
- package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -0
- package/lib/esm/appui-react/statusbar/dialog/Dialog.d.ts +30 -0
- package/lib/esm/appui-react/statusbar/dialog/Dialog.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/dialog/Dialog.js +27 -0
- package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -0
- package/lib/esm/appui-react/statusbar/dialog/TitleBar.d.ts +19 -0
- package/lib/esm/appui-react/statusbar/dialog/TitleBar.d.ts.map +1 -0
- package/lib/esm/appui-react/statusbar/dialog/TitleBar.js +16 -0
- package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -0
- package/lib/esm/appui-react/statusfields/Indicator.d.ts +1 -0
- package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js +1 -0
- package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -5
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/PromptField.js +2 -1
- package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js +5 -3
- package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.js +2 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js +2 -1
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js +3 -2
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +0 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +15 -13
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +14 -0
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.d.ts +7 -1
- package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +13 -2
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts +2 -0
- package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ActionItemButton.js +1 -0
- package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.d.ts +2 -0
- package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.js +1 -0
- package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolButton.d.ts +2 -0
- package/lib/esm/appui-react/toolbar/ToolButton.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolButton.js +1 -0
- package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts +9 -0
- package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/RestoreLayoutTool.js +15 -0
- package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +3 -3
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +3 -3
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.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 +6 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.js +8 -0
- package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +28 -19
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +5 -2
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.js +10 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.js +1 -1
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -2
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.d.ts +1 -0
- package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.js +1 -0
- package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetConfig.d.ts +11 -0
- package/lib/esm/appui-react/widgets/WidgetConfig.d.ts.map +1 -0
- package/lib/esm/appui-react/widgets/WidgetConfig.js +9 -0
- package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -0
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +14 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +21 -11
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts +1 -0
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetProps.js.map +1 -1
- package/lib/esm/appui-react/zones/Zone.d.ts +5 -1
- package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
- package/lib/esm/appui-react/zones/Zone.js +1 -0
- package/lib/esm/appui-react/zones/Zone.js.map +1 -1
- package/lib/esm/appui-react/zones/ZoneDef.d.ts +1 -0
- package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
- package/lib/esm/appui-react/zones/ZoneDef.js +2 -2
- package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
- package/lib/esm/appui-react.d.ts +8 -0
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +8 -0
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +11 -4
- package/package.json +34 -34
|
@@ -17,6 +17,10 @@ export declare const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
|
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
19
|
export declare const WIDGET_OPACITY_DEFAULT = 0.9;
|
|
20
|
+
/** The default widget opacity.
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export declare const TOOLBAR_OPACITY_DEFAULT = 0.5;
|
|
20
24
|
/** Properties of [[ThemeManagerComponent]].
|
|
21
25
|
*/
|
|
22
26
|
interface ThemeManagerProps {
|
|
@@ -24,6 +28,7 @@ interface ThemeManagerProps {
|
|
|
24
28
|
theme: string;
|
|
25
29
|
widgetOpacity: number;
|
|
26
30
|
children?: React.ReactNode;
|
|
31
|
+
toolbarOpacity: number;
|
|
27
32
|
}
|
|
28
33
|
/** @internal */
|
|
29
34
|
interface ThemeManagerState {
|
|
@@ -37,6 +42,7 @@ declare class ThemeManagerComponent extends React.Component<ThemeManagerProps, T
|
|
|
37
42
|
componentDidUpdate(prevProps: ThemeManagerProps): void;
|
|
38
43
|
private _setTheme;
|
|
39
44
|
private _setWidgetOpacity;
|
|
45
|
+
private _setToolbarOpacity;
|
|
40
46
|
private _handleRefSet;
|
|
41
47
|
render(): React.ReactNode;
|
|
42
48
|
}
|
|
@@ -45,6 +51,6 @@ declare class ThemeManagerComponent extends React.Component<ThemeManagerProps, T
|
|
|
45
51
|
* This React component is Redux connected.
|
|
46
52
|
* @public
|
|
47
53
|
*/
|
|
48
|
-
export declare const ThemeManager: import("react-redux").ConnectedComponent<typeof ThemeManagerComponent, import("react-redux").Omit<React.ClassAttributes<ThemeManagerComponent> & ThemeManagerProps, "theme" | "widgetOpacity">>;
|
|
54
|
+
export declare const ThemeManager: import("react-redux").ConnectedComponent<typeof ThemeManagerComponent, import("react-redux").Omit<React.ClassAttributes<ThemeManagerComponent> & ThemeManagerProps, "theme" | "widgetOpacity" | "toolbarOpacity">>;
|
|
49
55
|
export {};
|
|
50
56
|
//# sourceMappingURL=ThemeManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;GAEG;AACH,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,MAAO,CAAC;AAE3C;GACG;AACH,UAAU,iBAAiB;IACzB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;GAEG;AACH,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,MAAO,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAO,CAAC;AAE5C;GACG;AACH,UAAU,iBAAiB;IACzB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAeD,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAC;CACrC;AAED;GACG;AACH,cAAM,qBAAsB,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAEvF,SAAyB,KAAK,EAAE,iBAAiB,CAE/C;IAEc,iBAAiB;IAIjB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAW/D,OAAO,CAAC,SAAS,CAIf;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CAW1C;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,oNAAkD,CAAC"}
|
|
@@ -25,6 +25,10 @@ export const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
|
|
|
25
25
|
* @public
|
|
26
26
|
*/
|
|
27
27
|
export const WIDGET_OPACITY_DEFAULT = 0.90;
|
|
28
|
+
/** The default widget opacity.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
export const TOOLBAR_OPACITY_DEFAULT = 0.50;
|
|
28
32
|
function mapStateToProps(state) {
|
|
29
33
|
const frameworkState = state[UiFramework.frameworkStateKey]; // since app sets up key, don't hard-code name
|
|
30
34
|
// istanbul ignore if
|
|
@@ -33,6 +37,7 @@ function mapStateToProps(state) {
|
|
|
33
37
|
return {
|
|
34
38
|
theme: frameworkState.configurableUiState.theme,
|
|
35
39
|
widgetOpacity: frameworkState.configurableUiState.widgetOpacity,
|
|
40
|
+
toolbarOpacity: frameworkState.configurableUiState.toolbarOpacity,
|
|
36
41
|
};
|
|
37
42
|
}
|
|
38
43
|
/** ThemeManagerComponent handles setting themes.
|
|
@@ -51,6 +56,9 @@ class ThemeManagerComponent extends React.Component {
|
|
|
51
56
|
this._setWidgetOpacity = (opacity) => {
|
|
52
57
|
setTimeout(() => document.documentElement.style.setProperty("--buic-widget-opacity", opacity.toString()));
|
|
53
58
|
};
|
|
59
|
+
this._setToolbarOpacity = (opacity) => {
|
|
60
|
+
setTimeout(() => document.documentElement.style.setProperty("--buic-toolbar-opacity", opacity.toString()));
|
|
61
|
+
};
|
|
54
62
|
this._handleRefSet = (popupDiv) => {
|
|
55
63
|
var _a;
|
|
56
64
|
const ownerDocument = (_a = popupDiv === null || popupDiv === void 0 ? void 0 : popupDiv.ownerDocument) !== null && _a !== void 0 ? _a : undefined;
|
|
@@ -65,9 +73,12 @@ class ThemeManagerComponent extends React.Component {
|
|
|
65
73
|
componentDidUpdate(prevProps) {
|
|
66
74
|
if (this.props.theme !== prevProps.theme)
|
|
67
75
|
this._setTheme(this.props.theme);
|
|
68
|
-
const
|
|
69
|
-
if (this.props.widgetOpacity.toString() !==
|
|
76
|
+
const currentWidgetOpacity = document.documentElement.style.getPropertyValue("--buic-widget-opacity");
|
|
77
|
+
if (this.props.widgetOpacity.toString() !== currentWidgetOpacity)
|
|
70
78
|
this._setWidgetOpacity(this.props.widgetOpacity);
|
|
79
|
+
const currentToolbarOpacity = document.documentElement.style.getPropertyValue("--buic-toolbar-opacity");
|
|
80
|
+
if (this.props.toolbarOpacity.toString() !== currentToolbarOpacity)
|
|
81
|
+
this._setToolbarOpacity(this.props.toolbarOpacity);
|
|
71
82
|
}
|
|
72
83
|
render() {
|
|
73
84
|
const theme = (this.props.theme === SYSTEM_PREFERRED_COLOR_THEME) ? "os" : this.props.theme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAa,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,2BAAa,CAAA;AACf,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.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 State\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { ThemeProvider, ThemeType } from \"@itwin/itwinui-react\";\r\nimport { FrameworkState } from \"../redux/FrameworkState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for the Color Theme string.\r\n * @public\r\n */\r\nexport enum ColorTheme {\r\n Light = \"light\",\r\n Dark = \"dark\",\r\n}\r\n\r\n/** System preferred color theme.\r\n * @public\r\n */\r\nexport const SYSTEM_PREFERRED_COLOR_THEME = \"SYSTEM_PREFERRED\";\r\n\r\n/** The default widget opacity.\r\n * @public\r\n */\r\nexport const WIDGET_OPACITY_DEFAULT = 0.90;\r\n\r\n/** The default widget opacity.\r\n * @public\r\n */\r\nexport const TOOLBAR_OPACITY_DEFAULT = 0.50;\r\n\r\n/** Properties of [[ThemeManagerComponent]].\r\n */\r\ninterface ThemeManagerProps {\r\n /** theme (\"light\", \"dark\", etc.) */\r\n theme: string;\r\n /* Widget Opacity */\r\n widgetOpacity: number;\r\n children?: React.ReactNode;\r\n toolbarOpacity: number;\r\n}\r\n\r\nfunction mapStateToProps(state: any) {\r\n const frameworkState = state[UiFramework.frameworkStateKey] as FrameworkState; // since app sets up key, don't hard-code name\r\n // istanbul ignore if\r\n if (!frameworkState)\r\n return undefined;\r\n\r\n return {\r\n theme: frameworkState.configurableUiState.theme,\r\n widgetOpacity: frameworkState.configurableUiState.widgetOpacity,\r\n toolbarOpacity: frameworkState.configurableUiState.toolbarOpacity,\r\n };\r\n}\r\n\r\n/** @internal */\r\ninterface ThemeManagerState {\r\n ownerDocument: Document | undefined;\r\n}\r\n\r\n/** ThemeManagerComponent handles setting themes.\r\n */\r\nclass ThemeManagerComponent extends React.Component<ThemeManagerProps, ThemeManagerState> {\r\n\r\n public override readonly state: ThemeManagerState = {\r\n ownerDocument: undefined,\r\n };\r\n\r\n public override componentDidMount() {\r\n this._setTheme(this.props.theme);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ThemeManagerProps) {\r\n if (this.props.theme !== prevProps.theme)\r\n this._setTheme(this.props.theme);\r\n const currentWidgetOpacity = document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\r\n if (this.props.widgetOpacity.toString() !== currentWidgetOpacity)\r\n this._setWidgetOpacity(this.props.widgetOpacity);\r\n const currentToolbarOpacity = document.documentElement.style.getPropertyValue(\"--buic-toolbar-opacity\");\r\n if (this.props.toolbarOpacity.toString() !== currentToolbarOpacity)\r\n this._setToolbarOpacity(this.props.toolbarOpacity);\r\n }\r\n\r\n private _setTheme = (theme: string) => {\r\n document.documentElement.classList.add(\"theme-transition\");\r\n document.documentElement.setAttribute(\"data-theme\", theme);\r\n window.setTimeout(() => document.documentElement.classList.remove(\"theme-transition\"), 1000);\r\n };\r\n\r\n private _setWidgetOpacity = (opacity: number) => {\r\n setTimeout(() =>\r\n document.documentElement.style.setProperty(\"--buic-widget-opacity\", opacity.toString()));\r\n };\r\n\r\n private _setToolbarOpacity = (opacity: number) => {\r\n setTimeout(() =>\r\n document.documentElement.style.setProperty(\"--buic-toolbar-opacity\", opacity.toString()));\r\n };\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n const ownerDocument = popupDiv?.ownerDocument ?? undefined;\r\n if (ownerDocument) {\r\n this.setState({ ownerDocument });\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const theme: ThemeType = (this.props.theme === SYSTEM_PREFERRED_COLOR_THEME) ? \"os\" : this.props.theme as ThemeType;\r\n\r\n return (\r\n <div style={{ height: \"100%\" }} ref={this._handleRefSet}>\r\n <ThemeProvider theme={theme} themeOptions={{ ownerDocument: this.state.ownerDocument }}>\r\n {this.props.children}\r\n </ThemeProvider>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * ThemeManager handles setting color themes.\r\n * This React component is Redux connected.\r\n * @public\r\n */\r\nexport const ThemeManager = connect(mapStateToProps)(ThemeManagerComponent); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
|
|
@@ -6,6 +6,7 @@ import { CommonProps, SizeProps } from "@itwin/core-react";
|
|
|
6
6
|
import { ActionButtonItemDef } from "../shared/ActionButtonItemDef";
|
|
7
7
|
import { BaseItemState } from "../shared/ItemDefBase";
|
|
8
8
|
/** Properties that must be specified for an [[ActionItemButton]] component
|
|
9
|
+
* @deprecated Props of a deprecated component.
|
|
9
10
|
* @public
|
|
10
11
|
*/
|
|
11
12
|
export interface ActionItemButtonProps extends CommonProps {
|
|
@@ -17,6 +18,7 @@ export interface ActionItemButtonProps extends CommonProps {
|
|
|
17
18
|
onSizeKnown?: (size: SizeProps) => void;
|
|
18
19
|
}
|
|
19
20
|
/** A Toolbar button React Component that executes an action defined by a CommandItemDef or a ToolItemDef.
|
|
21
|
+
* @deprecated Use [ActionButton]($appui-abstract) instead.
|
|
20
22
|
* @public
|
|
21
23
|
*/
|
|
22
24
|
export declare class ActionItemButton extends React.Component<ActionItemButtonProps, BaseItemState> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionItemButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionItemButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,WAAW,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD
|
|
1
|
+
{"version":3,"file":"ActionItemButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionItemButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkB,WAAW,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,sEAAsE;IACtE,UAAU,EAAE,mBAAmB,CAAC;IAChC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAaD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAE,aAAa,CAAC;IACzF,OAAO,CAAC,oBAAoB,CAAS;IAErC,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAE5C,KAAK,EAAE,qBAAqB;IAMxC,OAAO,CAAC,kBAAkB,CAsCxB;IAEF,gBAAgB;WACF,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa;IASzF,gBAAgB;IACA,iBAAiB;IAIjC,gBAAgB;IACA,oBAAoB;IAKpC,OAAO,CAAC,QAAQ,CAKd;IAEF,gBAAgB;IACA,MAAM,IAAI,KAAK,CAAC,SAAS;CAuB1C"}
|
|
@@ -22,6 +22,7 @@ const getItemStateFromProps = (props) => {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
/** A Toolbar button React Component that executes an action defined by a CommandItemDef or a ToolItemDef.
|
|
25
|
+
* @deprecated Use [ActionButton]($appui-abstract) instead.
|
|
25
26
|
* @public
|
|
26
27
|
*/
|
|
27
28
|
export class ActionItemButton extends React.Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionItemButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionItemButton.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 Item\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { BadgeUtilities, CommonProps, Icon, SizeProps } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Item } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Properties that must be specified for an [[ActionItemButton]] component\r\n * @public\r\n */\r\nexport interface ActionItemButtonProps extends CommonProps {\r\n /** Action Button item definition containing the action information */\r\n actionItem: ActionButtonItemDef;\r\n /** Indicates whether the button is enabled or disabled */\r\n isEnabled?: boolean;\r\n /** Called when the button is initialized and the size is known */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** Helper method to set state from props */\r\nconst getItemStateFromProps = (props: ActionItemButtonProps): BaseItemState => {\r\n\r\n // Parent Component can only modify the isEnable state if the actionItem.isEnabled value is set to true.\r\n return {\r\n isEnabled: undefined !== props.isEnabled ? props.isEnabled && props.actionItem.isEnabled : props.actionItem.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isVisible: props.actionItem.isVisible, // eslint-disable-line deprecation/deprecation\r\n isActive: undefined !== props.actionItem.isActive ? props.actionItem.isActive : /* istanbul ignore next */ false,\r\n };\r\n};\r\n\r\n/** A Toolbar button React Component that executes an action defined by a CommandItemDef or a ToolItemDef.\r\n * @public\r\n */\r\nexport class ActionItemButton extends React.Component<ActionItemButtonProps, BaseItemState> {\r\n private _componentUnmounting = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BaseItemState>;\r\n\r\n constructor(props: ActionItemButtonProps) {\r\n super(props);\r\n\r\n this.state = getItemStateFromProps(props);\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore if\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n let refreshState = false;\r\n let newState: BaseItemState = { ...this.state };\r\n\r\n // since this is a tool button automatically monitor the activation of tools so the active state of the button is updated.\r\n if (args.eventIds.has(SyncUiEventId.ToolActivated)) {\r\n newState.isActive = this.props.actionItem.id === FrontstageManager.activeToolId;\r\n refreshState = true;\r\n }\r\n\r\n if (!refreshState && this.props.actionItem.stateSyncIds && this.props.actionItem.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.actionItem.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n\r\n if (refreshState) {\r\n if (this.props.actionItem.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.actionItem.stateFunc(newState); // eslint-disable-line deprecation/deprecation\r\n\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)) {\r\n // update actionItem as it hold the 'truth' for all state\r\n /* istanbul ignore else */\r\n if (undefined !== newState.isVisible) // eslint-disable-line deprecation/deprecation\r\n this.props.actionItem.isVisible = newState.isVisible; // eslint-disable-line deprecation/deprecation\r\n\r\n /* istanbul ignore else */\r\n if (undefined !== newState.isActive)\r\n this.props.actionItem.isActive = newState.isActive;\r\n\r\n this.setState({\r\n isActive: newState.isActive,\r\n isEnabled: newState.isEnabled,\r\n isVisible: newState.isVisible,\r\n });\r\n }\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static getDerivedStateFromProps(props: ActionItemButtonProps, state: BaseItemState) {\r\n const updatedState = getItemStateFromProps(props);\r\n // istanbul ignore else\r\n if (!PropsHelper.isShallowEqual(updatedState, state))\r\n return updatedState;\r\n\r\n return null;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _execute = () => {\r\n // istanbul ignore else\r\n if (this.props.actionItem.execute) {\r\n this.props.actionItem.execute();\r\n }\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const { actionItem, ...props } = this.props;\r\n const icon = <Icon iconSpec={actionItem.iconSpec} />;\r\n const badge = BadgeUtilities.getComponentForBadgeType(actionItem.badgeType);\r\n\r\n return (\r\n <Item // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n isActive={this.state.isActive}\r\n isDisabled={!this.state.isEnabled}\r\n title={actionItem.label}\r\n key={actionItem.getKey()}\r\n onClick={this._execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={icon}\r\n onSizeKnown={this.props.onSizeKnown}\r\n badge={badge}\r\n />\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ActionItemButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ActionItemButton.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 Item\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { BadgeUtilities, CommonProps, Icon, SizeProps } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Item } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Properties that must be specified for an [[ActionItemButton]] component\r\n * @deprecated Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface ActionItemButtonProps extends CommonProps {\r\n /** Action Button item definition containing the action information */\r\n actionItem: ActionButtonItemDef;\r\n /** Indicates whether the button is enabled or disabled */\r\n isEnabled?: boolean;\r\n /** Called when the button is initialized and the size is known */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** Helper method to set state from props */\r\nconst getItemStateFromProps = (props: ActionItemButtonProps): BaseItemState => { // eslint-disable-line deprecation/deprecation\r\n\r\n // Parent Component can only modify the isEnable state if the actionItem.isEnabled value is set to true.\r\n return {\r\n isEnabled: undefined !== props.isEnabled ? props.isEnabled && props.actionItem.isEnabled : props.actionItem.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isVisible: props.actionItem.isVisible, // eslint-disable-line deprecation/deprecation\r\n isActive: undefined !== props.actionItem.isActive ? props.actionItem.isActive : /* istanbul ignore next */ false,\r\n };\r\n};\r\n\r\n/** A Toolbar button React Component that executes an action defined by a CommandItemDef or a ToolItemDef.\r\n * @deprecated Use [ActionButton]($appui-abstract) instead.\r\n * @public\r\n */\r\nexport class ActionItemButton extends React.Component<ActionItemButtonProps, BaseItemState> { // eslint-disable-line deprecation/deprecation\r\n private _componentUnmounting = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BaseItemState>;\r\n\r\n constructor(props: ActionItemButtonProps) { // eslint-disable-line deprecation/deprecation\r\n super(props);\r\n\r\n this.state = getItemStateFromProps(props);\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore if\r\n if (this._componentUnmounting)\r\n return;\r\n\r\n let refreshState = false;\r\n let newState: BaseItemState = { ...this.state };\r\n\r\n // since this is a tool button automatically monitor the activation of tools so the active state of the button is updated.\r\n if (args.eventIds.has(SyncUiEventId.ToolActivated)) {\r\n newState.isActive = this.props.actionItem.id === FrontstageManager.activeToolId;\r\n refreshState = true;\r\n }\r\n\r\n if (!refreshState && this.props.actionItem.stateSyncIds && this.props.actionItem.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.actionItem.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n\r\n if (refreshState) {\r\n if (this.props.actionItem.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.actionItem.stateFunc(newState); // eslint-disable-line deprecation/deprecation\r\n\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)) {\r\n // update actionItem as it hold the 'truth' for all state\r\n /* istanbul ignore else */\r\n if (undefined !== newState.isVisible) // eslint-disable-line deprecation/deprecation\r\n this.props.actionItem.isVisible = newState.isVisible; // eslint-disable-line deprecation/deprecation\r\n\r\n /* istanbul ignore else */\r\n if (undefined !== newState.isActive)\r\n this.props.actionItem.isActive = newState.isActive;\r\n\r\n this.setState({\r\n isActive: newState.isActive,\r\n isEnabled: newState.isEnabled,\r\n isVisible: newState.isVisible,\r\n });\r\n }\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static getDerivedStateFromProps(props: ActionItemButtonProps, state: BaseItemState) { // eslint-disable-line deprecation/deprecation\r\n const updatedState = getItemStateFromProps(props);\r\n // istanbul ignore else\r\n if (!PropsHelper.isShallowEqual(updatedState, state))\r\n return updatedState;\r\n\r\n return null;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _execute = () => {\r\n // istanbul ignore else\r\n if (this.props.actionItem.execute) {\r\n this.props.actionItem.execute();\r\n }\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const { actionItem, ...props } = this.props;\r\n const icon = <Icon iconSpec={actionItem.iconSpec} />;\r\n const badge = BadgeUtilities.getComponentForBadgeType(actionItem.badgeType);\r\n\r\n return (\r\n <Item // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n isActive={this.state.isActive}\r\n isDisabled={!this.state.isEnabled}\r\n title={actionItem.label}\r\n key={actionItem.getKey()}\r\n onClick={this._execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={icon}\r\n onSizeKnown={this.props.onSizeKnown}\r\n badge={badge}\r\n />\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -108,11 +108,13 @@ export declare class GroupItem extends React.Component<GroupItemComponentProps,
|
|
|
108
108
|
private _handleExpanderClick;
|
|
109
109
|
}
|
|
110
110
|
/** Properties for the [[GroupButton]] React component
|
|
111
|
+
* @deprecated Props of a deprecated component.
|
|
111
112
|
* @public
|
|
112
113
|
*/
|
|
113
114
|
export interface GroupButtonProps extends GroupItemProps, CommonProps {
|
|
114
115
|
}
|
|
115
116
|
/** Group Button React component
|
|
117
|
+
* @deprecated Use [GroupButton]($appui-abstract) instead.
|
|
116
118
|
* @public
|
|
117
119
|
*/
|
|
118
120
|
export declare function GroupButton(props: GroupButtonProps): JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.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 Item\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { BadgeType, ConditionalStringValue, OnItemExecutedFunc, SpecialKey, StringGetter, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon, IconSpec, SizeProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n Direction, ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { AnyItemDef } from \"../shared/AnyItemDef\";\r\nimport { GroupItemProps } from \"../shared/GroupItemProps\";\r\nimport { BaseItemState, ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemList, ItemMap } from \"../shared/ItemMap\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItemDef class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** An Item that opens a group of items.\r\n * @public\r\n */\r\nexport class GroupItemDef extends ActionButtonItemDef {\r\n private static _sId = 0;\r\n public static groupIdPrefix = \"Group-\";\r\n\r\n public groupId: string;\r\n public direction: Direction; // eslint-disable-line deprecation/deprecation\r\n public itemsInColumn: number;\r\n public items: AnyItemDef[];\r\n public directionExplicit: boolean;\r\n public defaultActiveItemId?: string;\r\n\r\n /** @internal */\r\n public overflow: boolean = false;\r\n\r\n private _itemList!: ItemList;\r\n private _itemMap!: ItemMap;\r\n private _panelLabel: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n constructor(groupItemProps: GroupItemProps, onItemExecuted?: OnItemExecutedFunc) {\r\n super(groupItemProps, onItemExecuted);\r\n\r\n this.groupId = (groupItemProps.groupId !== undefined) ? groupItemProps.groupId : \"\";\r\n if (groupItemProps.groupId)\r\n this.groupId = groupItemProps.groupId;\r\n else {\r\n GroupItemDef._sId++;\r\n this.groupId = GroupItemDef.groupIdPrefix + GroupItemDef._sId;\r\n }\r\n\r\n this.directionExplicit = (groupItemProps.direction !== undefined);\r\n this.direction = (groupItemProps.direction !== undefined) ? groupItemProps.direction : Direction.Bottom; // eslint-disable-line deprecation/deprecation\r\n this.itemsInColumn = (groupItemProps.itemsInColumn !== undefined) ? groupItemProps.itemsInColumn : 7;\r\n this._panelLabel = PropsHelper.getStringSpec(groupItemProps.panelLabel, groupItemProps.panelLabelKey); // eslint-disable-line deprecation/deprecation\r\n this.items = groupItemProps.items;\r\n this.defaultActiveItemId = groupItemProps.defaultActiveItemId;\r\n }\r\n\r\n public get id(): string {\r\n return this.groupId;\r\n }\r\n\r\n /** Get the panelLabel string */\r\n public get panelLabel(): string {\r\n return PropsHelper.getStringFromSpec(this._panelLabel);\r\n }\r\n\r\n /** Set the panelLabel.\r\n * @param v A string or a function to get the string.\r\n */\r\n public setPanelLabel(v: string | StringGetter | ConditionalStringValue) {\r\n this._panelLabel = v;\r\n }\r\n\r\n public resolveItems(force?: boolean): void {\r\n if (this._itemList && !force)\r\n return;\r\n\r\n this._itemList = new ItemList();\r\n this._itemMap = new ItemMap();\r\n\r\n this.items.map((item: AnyItemDef) => {\r\n const id: string = item.id;\r\n this._itemList.addItem(item);\r\n this._itemMap.set(id, item);\r\n });\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n return this._itemMap.get(id);\r\n }\r\n\r\n public getItemByIndex(index: number): ItemDefBase | undefined {\r\n return this._itemList.items[index];\r\n }\r\n\r\n public get itemCount(): number {\r\n return this._itemList.items.length;\r\n }\r\n\r\n public override execute(): void {\r\n }\r\n\r\n public override toolbarReactNode(index?: number): React.ReactNode {\r\n this.resolveItems();\r\n const key = this.getKey(index);\r\n\r\n return (\r\n <GroupItem\r\n groupItemDef={this}\r\n key={key}\r\n onSizeKnown={this.handleSizeKnown}\r\n />\r\n );\r\n }\r\n\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n iconSpec?: IconSpec;\r\n label: string;\r\n trayId?: string;\r\n badgeType?: BadgeType;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItemDef: GroupItemDef;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface GroupItemComponentProps extends CommonProps {\r\n groupItemDef: GroupItemDef;\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\ninterface GroupItemState extends BaseItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItemDef: GroupItemDef;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class GroupItem extends React.Component<GroupItemComponentProps, GroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<GroupItemState>;\r\n private _componentUnmounting = false;\r\n private _childSyncIds?: Set<string>;\r\n private _childRefreshRequired = false;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: GroupItemComponentProps) {\r\n super(props);\r\n\r\n this._loadChildSyncIds(props);\r\n const state = this.getGroupItemState(this.props);\r\n const activeItemId = this.props.groupItemDef.defaultActiveItemId !== undefined ? this.props.groupItemDef.defaultActiveItemId : getFirstItemId(this.props.groupItemDef);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n private _loadChildSyncIds(props: GroupItemComponentProps) {\r\n // istanbul ignore else\r\n if (props.groupItemDef && props.groupItemDef.items.length > 0) {\r\n props.groupItemDef.items.forEach((itemDef: AnyItemDef) => {\r\n const item: ItemDefBase | undefined = itemDef;\r\n if (item.stateSyncIds.length > 0) { // eslint-disable-line deprecation/deprecation\r\n if (undefined === this._childSyncIds)\r\n this._childSyncIds = new Set<string>();\r\n item.stateSyncIds.forEach((value) => this._childSyncIds!.add(value)); // eslint-disable-line deprecation/deprecation\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore next\r\n if (this._componentUnmounting) return;\r\n let refreshState = false;\r\n // istanbul ignore else\r\n if (this._childSyncIds && this._childSyncIds.size > 0)\r\n if ([...this._childSyncIds].some((value: string): boolean => args.eventIds.has(value.toLowerCase())))\r\n this._childRefreshRequired = true; // this is cleared when render occurs\r\n let newState: GroupItemState = { ...this.state };\r\n if (this.props.groupItemDef.stateSyncIds && this.props.groupItemDef.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.groupItemDef.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n if (refreshState || this._childRefreshRequired) {\r\n if (this.props.groupItemDef.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.groupItemDef.stateFunc(newState) as GroupItemState; // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)\r\n || this._childRefreshRequired) {\r\n this.setState({ isActive: newState.isActive, isEnabled: newState.isEnabled, isVisible: newState.isVisible, isPressed: newState.isPressed });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override shouldComponentUpdate(nextProps: GroupItemComponentProps, nextState: GroupItemState) {\r\n if (!PropsHelper.isShallowEqual(nextState, this.state))\r\n return true;\r\n if (!PropsHelper.isShallowEqual(nextProps, this.props))\r\n return true;\r\n\r\n // istanbul ignore else\r\n if (this._childRefreshRequired) {\r\n this._childRefreshRequired = false;\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n private getGroupItemState(props: GroupItemComponentProps) {\r\n const groupItemDef = props.groupItemDef;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItemDef(groupItemDef, trayId, trays);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItemDef,\r\n isEnabled: groupItemDef.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isPressed: groupItemDef.isPressed,\r\n isVisible: groupItemDef.isVisible, // eslint-disable-line deprecation/deprecation\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItemDef(groupItemDef: GroupItemDef, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n for (let itemIndex = 0; itemIndex < groupItemDef.itemCount; itemIndex++) {\r\n const item = groupItemDef.getItemByIndex(itemIndex)!;\r\n if (item instanceof GroupItemDef) {\r\n item.resolveItems();\r\n\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const groupItem: ToolGroupItem = {\r\n iconSpec: item.iconSpec, label: item.label, trayId: itemTrayId,\r\n badgeType: item.badgeType,\r\n };\r\n\r\n items.set(item.id, groupItem);\r\n this.processGroupItemDef(item, itemTrayId, trays);\r\n } else {\r\n items.set(item.id, item);\r\n }\r\n }\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: groupItemDef.panelLabel ? groupItemDef.panelLabel : groupItemDef.tooltip, // we fallback to use tooltip since tooltip was originally (and confusingly) used as a panelLabel\r\n groupItemDef,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: GroupItemComponentProps, _prevState: GroupItemState) {\r\n if (this.props !== prevProps) {\r\n // istanbul ignore next\r\n if (this.props.groupItemDef !== prevProps.groupItemDef)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different GroupItemDef for same groupId of ${this.state.groupItemDef.groupId}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private _handleKeyDown = (e: React.KeyboardEvent): void => {\r\n // istanbul ignore else\r\n if (e.key === SpecialKey.Escape) {\r\n this.closeGroupButton();\r\n KeyboardShortcutManager.setFocusToHome();\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItemDef, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n groupItemDef.overflow && \"nz-toolbar-item-overflow\",\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItemDef.badgeType);\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItemDef.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n direction={direction}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : activeItem.iconSpec}\r\n />}\r\n isActive={groupItemDef.overflow ? false : this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={groupItemDef.overflow ? this._handleOverflowClick : this._handleDragInteractionClick}\r\n onKeyDown={this._handleKeyDown}\r\n onOpenPanel={this._handleOpenPanel}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={groupItemDef.overflow ? groupItemDef.label : activeItem.label}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item // eslint-disable-line deprecation/deprecation\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : groupItemDef.iconSpec}\r\n />}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={this._handleKeyDown}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={this.state.groupItemDef.label}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && activeItem instanceof ActionButtonItemDef && activeItem.execute();\r\n };\r\n\r\n private _handleOverflowClick = () => {\r\n this.setState((prevState) => {\r\n const isPressed = !prevState.isPressed;\r\n return {\r\n isPressed,\r\n };\r\n }, () => {\r\n this._closeOnPanelOpened = false;\r\n !!this.state.isPressed && FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n });\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (e: MouseEvent) => {\r\n if (this.props.groupItemDef.overflow) {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n return;\r\n }\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n private _handleToolPanelOpenedEvent = () => {\r\n // istanbul ignore else\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n // istanbul ignore next\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItemDef.getItemById(itemKey);\r\n childItem && childItem instanceof ActionButtonItemDef && childItem.execute();\r\n },\r\n );\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const itemsInColumn = tray.groupItemDef.itemsInColumn;\r\n const items = [...tray.items.keys()];\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}> {/* eslint-disable-line deprecation/deprecation */}\r\n {columnItems.map((itemKey) => {\r\n const item = tray.items.get(itemKey)!;\r\n const icon = <Icon iconSpec={item.iconSpec} />;\r\n let isVisible = true;\r\n let isActive = itemKey === this.state.activeToolId;\r\n let isEnabled = true;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (item instanceof ItemDefBase) {\r\n isVisible = item.isVisible; // eslint-disable-line deprecation/deprecation\r\n isEnabled = item.isEnabled; // eslint-disable-line deprecation/deprecation\r\n if (item.stateFunc) { // eslint-disable-line deprecation/deprecation\r\n const newState = item.stateFunc({ isVisible, isActive, isEnabled }); // eslint-disable-line deprecation/deprecation\r\n isVisible = undefined !== newState.isVisible ? newState.isVisible : /* istanbul ignore next */ isVisible;\r\n isEnabled = undefined !== newState.isEnabled ? newState.isEnabled : /* istanbul ignore next */ isEnabled;\r\n isActive = undefined !== newState.isActive ? newState.isActive : /* istanbul ignore next */ isActive;\r\n }\r\n }\r\n\r\n const trayId = item.trayId;\r\n if (trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!isEnabled}\r\n key={itemKey}\r\n label={item.label}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(trayId)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(trayId) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!isEnabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={item.label}\r\n onClick={() => this.handleToolGroupItemClicked(this.state.trayId, itemKey)}\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItemDef.getItemById(id);\r\n if (item)\r\n return item;\r\n }\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** Properties for the [[GroupButton]] React component\r\n * @public\r\n */\r\nexport interface GroupButtonProps extends GroupItemProps, CommonProps { }\r\n\r\n/** Group Button React component\r\n * @public\r\n */\r\nexport function GroupButton(props: GroupButtonProps) {\r\n const groupItemDef = new GroupItemDef(props);\r\n groupItemDef.resolveItems();\r\n return (\r\n <GroupItem\r\n {...props}\r\n groupItemDef={groupItemDef}\r\n key={groupItemDef.id}\r\n />\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport const getFirstItem = (groupItemDef: GroupItemDef): AnyItemDef | undefined => {\r\n for (const item of groupItemDef.items) {\r\n if (item instanceof GroupItemDef) {\r\n const firstItem = getFirstItem(item);\r\n if (firstItem)\r\n return firstItem;\r\n continue;\r\n }\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nexport const getFirstItemId = (groupItemDef: GroupItemDef): string => {\r\n const item = getFirstItem(groupItemDef);\r\n return item ? item.id : \"\";\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupItem.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAyD,UAAU,EAAiC,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAE,cAAc,EAAe,IAAI,EAAuB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EACL,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,IAAI,wBAAwB,EAAE,uBAAuB,EAC5I,KAAK,IAAI,kBAAkB,EAAE,mBAAmB,GACjD,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAiB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,yFAAyF;AACzF,MAAM,SAAS,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC3E,yFAAyF;AACzF,MAAM,eAAe,GAAG,kBAAkB,CAAC,wBAAwB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvF,yFAAyF;AACzF,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAE1D,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IAkBnD,YAAY,cAA8B,EAAE,cAAmC;QAC7E,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QARxC,gBAAgB;QACT,aAAQ,GAAY,KAAK,CAAC;QAIzB,gBAAW,GAAmD,EAAE,CAAC;QAKvE,IAAI,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,IAAI,cAAc,CAAC,OAAO;YACxB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;aACnC;YACH,YAAY,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC;SAC/D;QAED,IAAI,CAAC,iBAAiB,GAAG,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,8CAA8C;QACvJ,IAAI,CAAC,aAAa,GAAG,CAAC,cAAc,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,8CAA8C;QACrJ,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC;IAChE,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,gCAAgC;IAChC,IAAW,UAAU;QACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,CAAiD;QACpE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;IAEM,YAAY,CAAC,KAAe;QACjC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;YAC1B,OAAO;QAET,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAAE,EAAE;YAClC,MAAM,EAAE,GAAW,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEM,cAAc,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;IACrC,CAAC;IAEe,OAAO;IACvB,CAAC;IAEe,gBAAgB,CAAC,KAAc;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/B,OAAO,CACL,oBAAC,SAAS,IACR,YAAY,EAAE,IAAI,EAClB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,eAAe,GACjC,CACH,CAAC;IACJ,CAAC;;AA5Fc,iBAAI,GAAG,CAAC,CAAC;AACV,0BAAa,GAAG,QAAQ,CAAC;AA+HzC;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAkD;IAUrF,YAAY,KAA8B;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QARP,yBAAoB,GAAG,KAAK,CAAC;QAE7B,0BAAqB,GAAG,KAAK,CAAC;QAC9B,eAAU,GAAG,CAAC,CAAC;QACf,wBAAmB,GAAG,IAAI,CAAC;QAC3B,SAAI,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QA4BzC,uBAAkB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YAC3D,uBAAuB;YACvB,IAAI,IAAI,CAAC,oBAAoB;gBAAE,OAAO;YACtC,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,uBAAuB;YACvB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;gBACnD,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;oBAClG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAE,qCAAqC;YAC7E,IAAI,QAAQ,GAAmB,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,8CAA8C;gBACzI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,8CAA8C;YAC9K,IAAI,YAAY,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,8CAA8C;oBACnF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAmB,CAAC,CAAC,8CAA8C;gBAC1H,uBAAuB;gBACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC;uBAC5I,IAAI,CAAC,qBAAqB,EAAE;oBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;iBAC7I;aACF;QACH,CAAC,CAAC;QAoHM,mBAAc,GAAG,CAAC,CAAsB,EAAQ,EAAE;YACxD,uBAAuB;YACvB,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,MAAM,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,uBAAuB,CAAC,cAAc,EAAE,CAAC;aAC1C;QACH,CAAC,CAAC;QAuEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC;gBACZ,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC5B,SAAS,EAAE,CAAC,SAAS,CAAC,SAAS;aAChC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7D,UAAU,IAAI,UAAU,YAAY,mBAAmB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QAClF,CAAC,CAAC;QAEM,yBAAoB,GAAG,GAAG,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;gBACvC,OAAO;oBACL,SAAS;iBACV,CAAC;YACJ,CAAC,EAAE,GAAG,EAAE;gBACN,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBAC1E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,uCAAkC,GAAG,CAAC,CAAa,EAAE,EAAE;YAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpH,OAAO;aACR;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtH,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;YACzE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,gCAA2B,GAAG,GAAG,EAAE;YACzC,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAC3B,OAAO;YACT,uBAAuB;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAoJM,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvH,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO;oBACL,MAAM;oBACN,SAAS;iBACV,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,MAAc,EAAE,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC1B,OAAO;oBACL,MAAM;oBACN,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;iBACtD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QA3cA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvK,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAA8B;QACtD,uBAAuB;QACvB,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAmB,EAAE,EAAE;gBACvD,MAAM,IAAI,GAA4B,OAAO,CAAC;gBAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,8CAA8C;oBAChF,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa;wBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;oBACzC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,8CAA8C;iBACrH;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAwBe,iBAAiB;QAC/B,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,iBAAiB,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnF,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACzF,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5E,iBAAiB,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtF,iBAAiB,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC5F,CAAC;IAEe,qBAAqB,CAAC,SAAkC,EAAE,SAAyB;QACjG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;YACpD,OAAO,IAAI,CAAC;QAEd,uBAAuB;QACvB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,OAAO,IAAI,CAAC;SACb;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,KAA8B;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAEtD,OAAO;YACL,YAAY,EAAE,iBAAiB,CAAC,YAAY;YAC5C,YAAY;YACZ,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,MAAM;YACN,SAAS,EAAE,EAAE;YACb,KAAK;SACN,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,OAAO,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAEO,cAAc;QACpB,OAAO,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAEO,mBAAmB,CAAC,YAA0B,EAAE,MAAc,EAAE,KAAuB;QAC7F,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACvE,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAE,CAAC;YACrD,IAAI,IAAI,YAAY,YAAY,EAAE;gBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAkB;oBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU;oBAC9D,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC;gBAEF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;aACnD;iBAAM;gBACL,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAChB,KAAK;YACL,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;YAC/E,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAEe,kBAAkB,CAAC,SAAkC,EAAE,UAA0B;QAC/F,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY;gBACpD,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,8CAA8C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YACrI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,IAAY,KAAK;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,uBAAuB;QACvB,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,OAAO,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,uBAAuB;QACvB,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAUe,MAAM;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACvB,OAAO,IAAI,CAAC;QAEd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YACb,OAAO,IAAI,CAAC;QAEd,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACzD,MAAM,UAAU,GAAG,UAAU,CAC3B,SAAS,EACT,YAAY,CAAC,QAAQ,IAAI,0BAA0B,CACpD,CAAC;QACF,MAAM,KAAK,GAAG,cAAc,CAAC,wBAAwB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9E,OAAO,CACL,oBAAC,uBAAuB,CAAC,QAAQ,QAC9B,CAAC,SAAS,EAAE,EAAE,CAAC,CACd,oBAAC,6BAA6B,CAAC,QAAQ,QACpC,CAAC,eAAe,EAAE,EAAE,CAAC,CACpB,oBAAC,cAAc,CAAC,8CAA8C;eACxD,KAAK,EACT,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAC/B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAExC,eAAe,CAAC,CAAC;YAChB,CACE,6BAAK,GAAG,EAAE,IAAI,CAAC,IAAI;gBACjB,oBAAC,uBAAuB,IACtB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACjE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,oBAAC,IAAI,IACT,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,GACrE,EACF,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAC7F,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACjC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAC7F,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,GACpE,CACE,CACP,CAAC,CAAC;YACH,CACE,6BAAK,GAAG,EAAE,IAAI,CAAC,IAAI;gBACjB,oBAAC,IAAI,CAAC,8CAA8C;oBAClD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACjE,IAAI,EAAE,oBAAC,IAAI,IACT,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,GACvE,EACF,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EACjC,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,GACpC,CACE,CACP,CACY,CAClB,CACsC,CAC1C,CACgC,CACpC,CAAC;IACJ,CAAC;IA6DO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,KAAK;YAChB,MAAM;YACN,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAEO,0BAA0B,CAAC,OAAe,EAAE,OAAe;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CACX;YACE,YAAY,EAAE,OAAO;YACrB,SAAS,EAAE,KAAK;YAChB,MAAM;YACN,SAAS,EAAE,EAAE;SACd,EACD,GAAG,EAAE;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzD,SAAS,IAAI,SAAS,YAAY,mBAAmB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/E,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,eAAwB;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACvB,OAAO,SAAS,CAAC;QAEnB,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,QAC5B,CAAC,mBAAmB,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACtD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,mBAAmB,GAAG,mBAAmB,IAAI,eAAe,CAAC;YAE7D,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;YAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;YAEtE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAuC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,mBAAmB,CAAC,CAAC;gBAC5D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE;oBAC7B,OAAO;wBACL,GAAG,GAAG;wBACN,CAAC,IAAI,CAAC;qBACP,CAAC;iBACH;gBACD,OAAO;oBACL,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;oBAC5B;wBACE,GAAG,GAAG,CAAC,WAAW,CAAC;wBACnB,IAAI;qBACL;oBACD,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;iBAC9B,CAAC;YACJ,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAC9D,oBAAC,WAAW,IAAC,GAAG,EAAE,WAAW;;gBAC1B,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,oBAAC,IAAI,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAI,CAAC;oBAC/C,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,IAAI,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;oBACnD,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,MAAM,KAAK,GAAG,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAEtE,IAAI,IAAI,YAAY,WAAW,EAAE;wBAC/B,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,8CAA8C;wBAC1E,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,8CAA8C;wBAC1E,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,8CAA8C;4BAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,8CAA8C;4BACnH,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;4BACzG,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;4BACzG,QAAQ,GAAG,SAAS,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC;yBACtG;qBACF;oBAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,IAAI,MAAM,EAAE;wBACV,OAAO,CACL,SAAS;4BACT,oBAAC,iBAAiB,IAChB,UAAU,EAAE,CAAC,SAAS,EACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAChD,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GACtF,CACH,CAAC;qBACH;oBAED,OAAO,CACL,SAAS;wBACT,oBAAC,SAAS,IACR,UAAU,EAAE,CAAC,SAAS,EACtB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1E,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAChH,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;gBACJ,CAAC,CAAC,CACU,CACf,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACjC,OAAO,CACL,oBAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACnE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EACpG,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACH,CAAC;YAEJ,OAAO,CACL,oBAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EACpG,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACH,CAAC;QACJ,CAAC,CAC8B,CAClC,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,EAAU;QAC3B,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,IAAI;gBACN,OAAO,IAAI,CAAC;SACf;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CAqBF;AAQD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5B,OAAO,CACL,oBAAC,SAAS,OACJ,KAAK,EACT,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,YAAY,CAAC,EAAE,GACpB,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAA0B,EAA0B,EAAE;IACjF,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE;QACrC,IAAI,IAAI,YAAY,YAAY,EAAE;YAChC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,SAAS;gBACX,OAAO,SAAS,CAAC;YACnB,SAAS;SACV;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,YAA0B,EAAU,EAAE;IACnE,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,CAAC,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 Item\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { BadgeType, ConditionalStringValue, OnItemExecutedFunc, SpecialKey, StringGetter, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon, IconSpec, SizeProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n Direction, ExpandableItem, GroupColumn, GroupTool, GroupToolExpander, Item, NestedGroup as NestedToolGroupComponent, ToolbarDirectionContext,\r\n Group as ToolGroupComponent, withDragInteraction,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ToolGroupPanelContext } from \"../frontstage/FrontstageComposer\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { AnyItemDef } from \"../shared/AnyItemDef\";\r\nimport { GroupItemProps } from \"../shared/GroupItemProps\";\r\nimport { BaseItemState, ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemList, ItemMap } from \"../shared/ItemMap\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ToolGroup = withOnOutsideClick(ToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst NestedToolGroup = withOnOutsideClick(NestedToolGroupComponent, undefined, false);\r\n// eslint-disable-next-line @typescript-eslint/naming-convention, deprecation/deprecation\r\nconst ItemWithDragInteraction = withDragInteraction(Item);\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItemDef class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** An Item that opens a group of items.\r\n * @public\r\n */\r\nexport class GroupItemDef extends ActionButtonItemDef {\r\n private static _sId = 0;\r\n public static groupIdPrefix = \"Group-\";\r\n\r\n public groupId: string;\r\n public direction: Direction; // eslint-disable-line deprecation/deprecation\r\n public itemsInColumn: number;\r\n public items: AnyItemDef[];\r\n public directionExplicit: boolean;\r\n public defaultActiveItemId?: string;\r\n\r\n /** @internal */\r\n public overflow: boolean = false;\r\n\r\n private _itemList!: ItemList;\r\n private _itemMap!: ItemMap;\r\n private _panelLabel: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n constructor(groupItemProps: GroupItemProps, onItemExecuted?: OnItemExecutedFunc) {\r\n super(groupItemProps, onItemExecuted);\r\n\r\n this.groupId = (groupItemProps.groupId !== undefined) ? groupItemProps.groupId : \"\";\r\n if (groupItemProps.groupId)\r\n this.groupId = groupItemProps.groupId;\r\n else {\r\n GroupItemDef._sId++;\r\n this.groupId = GroupItemDef.groupIdPrefix + GroupItemDef._sId;\r\n }\r\n\r\n this.directionExplicit = (groupItemProps.direction !== undefined);\r\n this.direction = (groupItemProps.direction !== undefined) ? groupItemProps.direction : Direction.Bottom; // eslint-disable-line deprecation/deprecation\r\n this.itemsInColumn = (groupItemProps.itemsInColumn !== undefined) ? groupItemProps.itemsInColumn : 7;\r\n this._panelLabel = PropsHelper.getStringSpec(groupItemProps.panelLabel, groupItemProps.panelLabelKey); // eslint-disable-line deprecation/deprecation\r\n this.items = groupItemProps.items;\r\n this.defaultActiveItemId = groupItemProps.defaultActiveItemId;\r\n }\r\n\r\n public get id(): string {\r\n return this.groupId;\r\n }\r\n\r\n /** Get the panelLabel string */\r\n public get panelLabel(): string {\r\n return PropsHelper.getStringFromSpec(this._panelLabel);\r\n }\r\n\r\n /** Set the panelLabel.\r\n * @param v A string or a function to get the string.\r\n */\r\n public setPanelLabel(v: string | StringGetter | ConditionalStringValue) {\r\n this._panelLabel = v;\r\n }\r\n\r\n public resolveItems(force?: boolean): void {\r\n if (this._itemList && !force)\r\n return;\r\n\r\n this._itemList = new ItemList();\r\n this._itemMap = new ItemMap();\r\n\r\n this.items.map((item: AnyItemDef) => {\r\n const id: string = item.id;\r\n this._itemList.addItem(item);\r\n this._itemMap.set(id, item);\r\n });\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n return this._itemMap.get(id);\r\n }\r\n\r\n public getItemByIndex(index: number): ItemDefBase | undefined {\r\n return this._itemList.items[index];\r\n }\r\n\r\n public get itemCount(): number {\r\n return this._itemList.items.length;\r\n }\r\n\r\n public override execute(): void {\r\n }\r\n\r\n public override toolbarReactNode(index?: number): React.ReactNode {\r\n this.resolveItems();\r\n const key = this.getKey(index);\r\n\r\n return (\r\n <GroupItem\r\n groupItemDef={this}\r\n key={key}\r\n onSizeKnown={this.handleSizeKnown}\r\n />\r\n );\r\n }\r\n\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// GroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n iconSpec?: IconSpec;\r\n label: string;\r\n trayId?: string;\r\n badgeType?: BadgeType;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItemDef: GroupItemDef;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface GroupItemComponentProps extends CommonProps {\r\n groupItemDef: GroupItemDef;\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\ninterface GroupItemState extends BaseItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItemDef: GroupItemDef;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class GroupItem extends React.Component<GroupItemComponentProps, GroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<GroupItemState>;\r\n private _componentUnmounting = false;\r\n private _childSyncIds?: Set<string>;\r\n private _childRefreshRequired = false;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: GroupItemComponentProps) {\r\n super(props);\r\n\r\n this._loadChildSyncIds(props);\r\n const state = this.getGroupItemState(this.props);\r\n const activeItemId = this.props.groupItemDef.defaultActiveItemId !== undefined ? this.props.groupItemDef.defaultActiveItemId : getFirstItemId(this.props.groupItemDef);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n private _loadChildSyncIds(props: GroupItemComponentProps) {\r\n // istanbul ignore else\r\n if (props.groupItemDef && props.groupItemDef.items.length > 0) {\r\n props.groupItemDef.items.forEach((itemDef: AnyItemDef) => {\r\n const item: ItemDefBase | undefined = itemDef;\r\n if (item.stateSyncIds.length > 0) { // eslint-disable-line deprecation/deprecation\r\n if (undefined === this._childSyncIds)\r\n this._childSyncIds = new Set<string>();\r\n item.stateSyncIds.forEach((value) => this._childSyncIds!.add(value)); // eslint-disable-line deprecation/deprecation\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore next\r\n if (this._componentUnmounting) return;\r\n let refreshState = false;\r\n // istanbul ignore else\r\n if (this._childSyncIds && this._childSyncIds.size > 0)\r\n if ([...this._childSyncIds].some((value: string): boolean => args.eventIds.has(value.toLowerCase())))\r\n this._childRefreshRequired = true; // this is cleared when render occurs\r\n let newState: GroupItemState = { ...this.state };\r\n if (this.props.groupItemDef.stateSyncIds && this.props.groupItemDef.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.groupItemDef.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n if (refreshState || this._childRefreshRequired) {\r\n if (this.props.groupItemDef.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.groupItemDef.stateFunc(newState) as GroupItemState; // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if ((this.state.isActive !== newState.isActive) || (this.state.isEnabled !== newState.isEnabled) || (this.state.isVisible !== newState.isVisible)\r\n || this._childRefreshRequired) {\r\n this.setState({ isActive: newState.isActive, isEnabled: newState.isEnabled, isVisible: newState.isVisible, isPressed: newState.isPressed });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n public override shouldComponentUpdate(nextProps: GroupItemComponentProps, nextState: GroupItemState) {\r\n if (!PropsHelper.isShallowEqual(nextState, this.state))\r\n return true;\r\n if (!PropsHelper.isShallowEqual(nextProps, this.props))\r\n return true;\r\n\r\n // istanbul ignore else\r\n if (this._childRefreshRequired) {\r\n this._childRefreshRequired = false;\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n private getGroupItemState(props: GroupItemComponentProps) {\r\n const groupItemDef = props.groupItemDef;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItemDef(groupItemDef, trayId, trays);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItemDef,\r\n isEnabled: groupItemDef.isEnabled, // eslint-disable-line deprecation/deprecation\r\n isPressed: groupItemDef.isPressed,\r\n isVisible: groupItemDef.isVisible, // eslint-disable-line deprecation/deprecation\r\n trayId,\r\n backTrays: [],\r\n trays,\r\n };\r\n }\r\n\r\n private resetTrayId(): string {\r\n this._trayIndex = 1;\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private generateTrayId(): string {\r\n return `tray-${this._trayIndex}`;\r\n }\r\n\r\n private processGroupItemDef(groupItemDef: GroupItemDef, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n for (let itemIndex = 0; itemIndex < groupItemDef.itemCount; itemIndex++) {\r\n const item = groupItemDef.getItemByIndex(itemIndex)!;\r\n if (item instanceof GroupItemDef) {\r\n item.resolveItems();\r\n\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const groupItem: ToolGroupItem = {\r\n iconSpec: item.iconSpec, label: item.label, trayId: itemTrayId,\r\n badgeType: item.badgeType,\r\n };\r\n\r\n items.set(item.id, groupItem);\r\n this.processGroupItemDef(item, itemTrayId, trays);\r\n } else {\r\n items.set(item.id, item);\r\n }\r\n }\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: groupItemDef.panelLabel ? groupItemDef.panelLabel : groupItemDef.tooltip, // we fallback to use tooltip since tooltip was originally (and confusingly) used as a panelLabel\r\n groupItemDef,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: GroupItemComponentProps, _prevState: GroupItemState) {\r\n if (this.props !== prevProps) {\r\n // istanbul ignore next\r\n if (this.props.groupItemDef !== prevProps.groupItemDef)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different GroupItemDef for same groupId of ${this.state.groupItemDef.groupId}`);\r\n this.setState((_, props) => this.getGroupItemState(props));\r\n }\r\n }\r\n\r\n private get _tray() {\r\n const tray = this.state.trays.get(this.state.trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private getTray(trayId: string) {\r\n const tray = this.state.trays.get(trayId);\r\n // istanbul ignore next\r\n if (!tray)\r\n throw new RangeError();\r\n\r\n return tray;\r\n }\r\n\r\n private _handleKeyDown = (e: React.KeyboardEvent): void => {\r\n // istanbul ignore else\r\n if (e.key === SpecialKey.Escape) {\r\n this.closeGroupButton();\r\n KeyboardShortcutManager.setFocusToHome();\r\n }\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItemDef, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n groupItemDef.overflow && \"nz-toolbar-item-overflow\",\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItemDef.badgeType);\r\n return (\r\n <ToolbarDirectionContext.Consumer>\r\n {(direction) => (\r\n <ToolbarDragInteractionContext.Consumer>\r\n {(dragInteraction) => (\r\n <ExpandableItem // eslint-disable-line deprecation/deprecation\r\n {...props}\r\n className={classNames}\r\n key={this.state.groupItemDef.id}\r\n panel={this.getGroupTray(dragInteraction)}\r\n >\r\n {dragInteraction ?\r\n (\r\n <div ref={this._ref}>\r\n <ItemWithDragInteraction\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n direction={direction}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : activeItem.iconSpec}\r\n />}\r\n isActive={groupItemDef.overflow ? false : this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={groupItemDef.overflow ? this._handleOverflowClick : this._handleDragInteractionClick}\r\n onKeyDown={this._handleKeyDown}\r\n onOpenPanel={this._handleOpenPanel}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={groupItemDef.overflow ? groupItemDef.label : activeItem.label}\r\n />\r\n </div>\r\n ) :\r\n (\r\n <div ref={this._ref}>\r\n <Item // eslint-disable-line deprecation/deprecation\r\n badge={badge}\r\n className={groupItemDef.overflow ? \"nz-ellipsis-icon\" : undefined}\r\n icon={<Icon\r\n iconSpec={groupItemDef.overflow ? \"nz-ellipsis\" : groupItemDef.iconSpec}\r\n />}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={this._handleKeyDown}\r\n onSizeKnown={this.props.onSizeKnown}\r\n title={this.state.groupItemDef.label}\r\n />\r\n </div>\r\n )}\r\n </ExpandableItem>\r\n )}\r\n </ToolbarDragInteractionContext.Consumer>\r\n )}\r\n </ToolbarDirectionContext.Consumer>\r\n );\r\n }\r\n\r\n private _handleOpenPanel = () => {\r\n this.setState({\r\n isPressed: true,\r\n });\r\n this._closeOnPanelOpened = false;\r\n FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n };\r\n\r\n private _handleClick = () => {\r\n this.setState((prevState) => ({\r\n isPressed: !prevState.isPressed,\r\n }));\r\n };\r\n\r\n private _handleDragInteractionClick = () => {\r\n const activeItem = this.getItemById(this.state.activeItemId);\r\n activeItem && activeItem instanceof ActionButtonItemDef && activeItem.execute();\r\n };\r\n\r\n private _handleOverflowClick = () => {\r\n this.setState((prevState) => {\r\n const isPressed = !prevState.isPressed;\r\n return {\r\n isPressed,\r\n };\r\n }, () => {\r\n this._closeOnPanelOpened = false;\r\n !!this.state.isPressed && FrontstageManager.onToolPanelOpenedEvent.emit();\r\n this._closeOnPanelOpened = true;\r\n });\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (e: MouseEvent) => {\r\n if (this.props.groupItemDef.overflow) {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n return;\r\n }\r\n this.closeGroupButton();\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n this._ref.current && (e.target instanceof Node) && !this._ref.current.contains(e.target) && this.closeGroupButton();\r\n };\r\n\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n private _handleToolPanelOpenedEvent = () => {\r\n // istanbul ignore else\r\n if (!this._closeOnPanelOpened)\r\n return;\r\n // istanbul ignore next\r\n this.closeGroupButton();\r\n };\r\n\r\n private closeGroupButton() {\r\n const trayId = this.resetTrayId();\r\n\r\n this.setState({\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n });\r\n }\r\n\r\n private handleToolGroupItemClicked(trayKey: string, itemKey: string) {\r\n const trayId = this.resetTrayId();\r\n this.setState(\r\n {\r\n activeItemId: itemKey,\r\n isPressed: false,\r\n trayId,\r\n backTrays: [],\r\n },\r\n () => {\r\n const tray = this.getTray(trayKey);\r\n const childItem = tray.groupItemDef.getItemById(itemKey);\r\n childItem && childItem instanceof ActionButtonItemDef && childItem.execute();\r\n },\r\n );\r\n }\r\n\r\n private getGroupTray(dragInteraction: boolean): React.ReactNode {\r\n if (!this.state.isPressed)\r\n return undefined;\r\n\r\n return (\r\n <ToolGroupPanelContext.Consumer>\r\n {(activateOnPointerUp) => {\r\n const tray = this._tray;\r\n const itemsInColumn = tray.groupItemDef.itemsInColumn;\r\n const items = [...tray.items.keys()];\r\n activateOnPointerUp = activateOnPointerUp && dragInteraction;\r\n\r\n // Divide items equally between columns.\r\n const numberOfColumns = Math.ceil(items.length / itemsInColumn);\r\n const numberItemsInColumn = Math.ceil(items.length / numberOfColumns);\r\n\r\n const columnToItems = items.reduce<ReadonlyArray<ReadonlyArray<string>>>((acc, item, index) => {\r\n const columnIndex = Math.floor(index / numberItemsInColumn);\r\n if (columnIndex >= acc.length) {\r\n return [\r\n ...acc,\r\n [item],\r\n ];\r\n }\r\n return [\r\n ...acc.slice(0, columnIndex),\r\n [\r\n ...acc[columnIndex],\r\n item,\r\n ],\r\n ...acc.slice(columnIndex + 1),\r\n ];\r\n }, []);\r\n const columns = (columnToItems.map((columnItems, columnIndex) =>\r\n <GroupColumn key={columnIndex}> {/* eslint-disable-line deprecation/deprecation */}\r\n {columnItems.map((itemKey) => {\r\n const item = tray.items.get(itemKey)!;\r\n const icon = <Icon iconSpec={item.iconSpec} />;\r\n let isVisible = true;\r\n let isActive = itemKey === this.state.activeToolId;\r\n let isEnabled = true;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (item instanceof ItemDefBase) {\r\n isVisible = item.isVisible; // eslint-disable-line deprecation/deprecation\r\n isEnabled = item.isEnabled; // eslint-disable-line deprecation/deprecation\r\n if (item.stateFunc) { // eslint-disable-line deprecation/deprecation\r\n const newState = item.stateFunc({ isVisible, isActive, isEnabled }); // eslint-disable-line deprecation/deprecation\r\n isVisible = undefined !== newState.isVisible ? newState.isVisible : /* istanbul ignore next */ isVisible;\r\n isEnabled = undefined !== newState.isEnabled ? newState.isEnabled : /* istanbul ignore next */ isEnabled;\r\n isActive = undefined !== newState.isActive ? newState.isActive : /* istanbul ignore next */ isActive;\r\n }\r\n }\r\n\r\n const trayId = item.trayId;\r\n if (trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!isEnabled}\r\n key={itemKey}\r\n label={item.label}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(trayId)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(trayId) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!isEnabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={item.label}\r\n onClick={() => this.handleToolGroupItemClicked(this.state.trayId, itemKey)}\r\n onPointerUp={activateOnPointerUp ? () => this.handleToolGroupItemClicked(this.state.trayId, itemKey) : undefined}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n })}\r\n </GroupColumn>,\r\n ));\r\n\r\n if (this.state.backTrays.length > 0)\r\n return (\r\n <NestedToolGroup\r\n columns={columns}\r\n onBack={this._handleBack}\r\n onBackPointerUp={activateOnPointerUp ? this._handleBack : undefined}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n\r\n return (\r\n <ToolGroup\r\n columns={columns}\r\n onOutsideClick={dragInteraction ? this._handleDragInteractionOutsideClick : this._handleOutsideClick}\r\n title={tray.title}\r\n />\r\n );\r\n }}\r\n </ToolGroupPanelContext.Consumer>\r\n );\r\n }\r\n\r\n public getItemById(id: string): ItemDefBase | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItemDef.getItemById(id);\r\n if (item)\r\n return item;\r\n }\r\n return undefined;\r\n }\r\n\r\n private _handleBack = () => {\r\n this.setState((prevState) => {\r\n const trayId = prevState.backTrays.length > 0 ? prevState.backTrays[prevState.backTrays.length - 1] : prevState.trayId;\r\n const backTrays = prevState.backTrays.slice(0, -1);\r\n return {\r\n trayId,\r\n backTrays,\r\n };\r\n });\r\n };\r\n\r\n private _handleExpanderClick = (trayId: string) => {\r\n this.setState((prevState) => {\r\n return {\r\n trayId,\r\n backTrays: [...prevState.backTrays, prevState.trayId],\r\n };\r\n });\r\n };\r\n}\r\n\r\n/** Properties for the [[GroupButton]] React component\r\n * @deprecated Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface GroupButtonProps extends GroupItemProps, CommonProps { }\r\n\r\n/** Group Button React component\r\n * @deprecated Use [GroupButton]($appui-abstract) instead.\r\n * @public\r\n */\r\nexport function GroupButton(props: GroupButtonProps) { // eslint-disable-line deprecation/deprecation\r\n const groupItemDef = new GroupItemDef(props);\r\n groupItemDef.resolveItems();\r\n return (\r\n <GroupItem\r\n {...props}\r\n groupItemDef={groupItemDef}\r\n key={groupItemDef.id}\r\n />\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport const getFirstItem = (groupItemDef: GroupItemDef): AnyItemDef | undefined => {\r\n for (const item of groupItemDef.items) {\r\n if (item instanceof GroupItemDef) {\r\n const firstItem = getFirstItem(item);\r\n if (firstItem)\r\n return firstItem;\r\n continue;\r\n }\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nexport const getFirstItemId = (groupItemDef: GroupItemDef): string => {\r\n const item = getFirstItem(groupItemDef);\r\n return item ? item.id : \"\";\r\n};\r\n"]}
|
|
@@ -6,11 +6,13 @@ import { CommonProps } from "@itwin/core-react";
|
|
|
6
6
|
import { BaseItemState } from "../shared/ItemDefBase";
|
|
7
7
|
import { ToolItemProps } from "../shared/ItemProps";
|
|
8
8
|
/** Properties for the [[ToolButton]] React Component.
|
|
9
|
+
* @deprecated Props of a deprecated component.
|
|
9
10
|
* @public
|
|
10
11
|
*/
|
|
11
12
|
export interface ToolButtonProps extends ToolItemProps, CommonProps {
|
|
12
13
|
}
|
|
13
14
|
/** Tool Button React Component.
|
|
15
|
+
* @deprecated Use [CommonToolbarItem]($appui-abstract) instead.
|
|
14
16
|
* @public
|
|
15
17
|
*/
|
|
16
18
|
export declare class ToolButton extends React.Component<ToolButtonProps, BaseItemState> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAkB,WAAW,EAAQ,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD
|
|
1
|
+
{"version":3,"file":"ToolButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAkB,WAAW,EAAQ,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa,EAAE,WAAW;CAAI;AAEvE;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC;IAC7E,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAsD;IAEpE,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAE5C,KAAK,EAAE,aAAa;IAgBhC,OAAO,CAAC,kBAAkB,CA+BxB;IAEc,iBAAiB;IAIjB,oBAAoB;IAKpC,OAAO,CAAC,QAAQ,CASd;IAEF,IAAW,KAAK,IAAI,MAAM,CAEzB;IAEe,MAAM,IAAI,KAAK,CAAC,SAAS;CAwB1C"}
|
|
@@ -15,6 +15,7 @@ import { UiFramework } from "../UiFramework";
|
|
|
15
15
|
import { PropsHelper } from "../utils/PropsHelper";
|
|
16
16
|
import { onEscapeSetFocusToHome } from "../hooks/useEscapeSetFocusToHome";
|
|
17
17
|
/** Tool Button React Component.
|
|
18
|
+
* @deprecated Use [CommonToolbarItem]($appui-abstract) instead.
|
|
18
19
|
* @public
|
|
19
20
|
*/
|
|
20
21
|
export class ToolButton extends React.Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolButton.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAQ,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAe,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolButton.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolButton.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 Item\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\r\nimport { ConditionalStringValue, StringGetter, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, Icon } from \"@itwin/core-react\";\r\nimport { getToolbarItemProps, Item } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { BaseItemState } from \"../shared/ItemDefBase\";\r\nimport { ToolItemProps } from \"../shared/ItemProps\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Properties for the [[ToolButton]] React Component.\r\n * @deprecated Props of a deprecated component.\r\n * @public\r\n */\r\nexport interface ToolButtonProps extends ToolItemProps, CommonProps { }\r\n\r\n/** Tool Button React Component.\r\n * @deprecated Use [CommonToolbarItem]($appui-abstract) instead.\r\n * @public\r\n */\r\nexport class ToolButton extends React.Component<ToolButtonProps, BaseItemState> { // eslint-disable-line deprecation/deprecation\r\n private _componentUnmounting = false;\r\n private _label: string | StringGetter | ConditionalStringValue = \"\";\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<BaseItemState>;\r\n\r\n constructor(props: ToolItemProps) {\r\n super(props);\r\n\r\n if (props.label)\r\n this._label = props.label;\r\n else if (props.labelKey)\r\n this._label = UiFramework.localization.getLocalizedString(props.labelKey);\r\n\r\n this.state = {\r\n isVisible: undefined !== props.isVisible ? props.isVisible : true, // eslint-disable-line deprecation/deprecation\r\n isEnabled: undefined !== props.isEnabled ? props.isEnabled : true, // eslint-disable-line deprecation/deprecation\r\n isActive: undefined !== props.isActive ? props.isActive : false,\r\n isPressed: undefined !== props.isPressed ? props.isPressed : false,\r\n };\r\n }\r\n\r\n private _handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore if\r\n if (this._componentUnmounting) return;\r\n\r\n let refreshState = false;\r\n let newState: BaseItemState = { ...this.state };\r\n\r\n // since this is a tool button automatically monitor the activation of tools so the active state of the button is updated.\r\n if (args.eventIds.has(SyncUiEventId.ToolActivated)) {\r\n newState.isActive = this.props.toolId === FrontstageManager.activeToolId;\r\n refreshState = true;\r\n }\r\n\r\n if (!refreshState && this.props.stateSyncIds && this.props.stateSyncIds.length > 0) // eslint-disable-line deprecation/deprecation\r\n refreshState = this.props.stateSyncIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase())); // eslint-disable-line deprecation/deprecation\r\n\r\n if (refreshState) {\r\n if (this.props.stateFunc) // eslint-disable-line deprecation/deprecation\r\n newState = this.props.stateFunc(newState); // eslint-disable-line deprecation/deprecation\r\n\r\n // istanbul ignore next\r\n if ((this.state.isActive !== newState.isActive) ||\r\n ( /* istanbul ignore next */ this.state.isEnabled !== newState.isEnabled) ||\r\n ( /* istanbul ignore next */ this.state.isVisible !== newState.isVisible)) {\r\n this.setState({\r\n isActive: newState.isActive,\r\n isEnabled: newState.isEnabled,\r\n isVisible: newState.isVisible,\r\n });\r\n }\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this._handleSyncUiEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._componentUnmounting = true;\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(this._handleSyncUiEvent);\r\n }\r\n\r\n private _execute = async () => {\r\n if (this.props.execute) {\r\n this.props.execute();\r\n } else {\r\n const thisTool: typeof Tool | undefined = IModelApp.tools.find(this.props.toolId);\r\n // istanbul ignore next\r\n if (thisTool)\r\n await (new thisTool()).run();\r\n }\r\n };\r\n\r\n public get label(): string {\r\n return PropsHelper.getStringFromSpec(this._label);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n if (!this.state.isVisible)\r\n return null;\r\n\r\n const icon = <Icon iconSpec={this.props.iconSpec} />;\r\n const toolbarItemProps = getToolbarItemProps(this.props);\r\n const badge = BadgeUtilities.getComponentForBadgeType(this.props.badgeType);\r\n\r\n return (\r\n <Item // eslint-disable-line deprecation/deprecation\r\n {...toolbarItemProps}\r\n className={this.props.className}\r\n style={this.props.style}\r\n isActive={this.state.isActive}\r\n isDisabled={!this.state.isEnabled}\r\n title={this.label}\r\n key={this.props.toolId}\r\n onClick={this._execute}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n icon={icon}\r\n badge={badge}\r\n />\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -220,7 +220,7 @@ export function ToolbarComposer(props) {
|
|
|
220
220
|
const expandsTo = toolbarOrientation === Orientation.Horizontal ? Direction.Bottom : usage === ToolbarUsage.ViewNavigation ? Direction.Left : Direction.Right;
|
|
221
221
|
// eslint-disable-next-line deprecation/deprecation
|
|
222
222
|
const panelAlignment = (toolbarOrientation === Orientation.Horizontal && usage === ToolbarUsage.ViewNavigation) ? ToolbarPanelAlignment.End : ToolbarPanelAlignment.Start;
|
|
223
|
-
const version = useFrameworkVersion();
|
|
223
|
+
const version = useFrameworkVersion(); // eslint-disable-line deprecation/deprecation
|
|
224
224
|
const isDragEnabled = React.useContext(ToolbarDragInteractionContext);
|
|
225
225
|
const useProximityOpacity = useProximityOpacitySetting();
|
|
226
226
|
if ("1" === version) {
|