@itwin/appui-react 3.5.0-dev.51 → 3.5.0-dev.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/UiFramework.d.ts +1 -0
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +1 -1
- package/lib/cjs/appui-react/UiFramework.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.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/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.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/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/shared/ActionButtonItemDef.js +2 -1
- package/lib/cjs/appui-react/shared/ActionButtonItemDef.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/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/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.js +2 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.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/NavigationWidgetComposer.js +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -0
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +5 -0
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +5 -0
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +1 -0
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +1 -1
- package/lib/esm/appui-react/UiFramework.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.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/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.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/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/shared/ActionButtonItemDef.js +2 -1
- package/lib/esm/appui-react/shared/ActionButtonItemDef.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/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/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.js +2 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.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/NavigationWidgetComposer.js +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -0
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react.d.ts +5 -0
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +5 -0
- package/lib/esm/appui-react.js.map +1 -1
- package/package.json +32 -32
|
@@ -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":"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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 * @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) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarComposer.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 Toolbar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, CommonToolbarItem, ConditionalBooleanValue, GroupButton, ToolbarItemsManager, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiSyncEventArgs,\r\n} from \"@itwin/appui-abstract\";\r\nimport { Orientation } from \"@itwin/core-react\";\r\nimport { ToolbarItem, ToolbarOpacitySetting, ToolbarWithOverflow } from \"@itwin/components-react\";\r\nimport { Direction, Toolbar, ToolbarPanelAlignment } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { useFrameworkVersion } from \"../hooks/useFrameworkVersion\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\nimport { useDefaultToolbarItems } from \"./useDefaultToolbarItems\";\r\nimport { useUiItemsProviderToolbarItems } from \"./useUiItemsProviderToolbarItems\";\r\n\r\n/** Private function to set up sync event monitoring of toolbar items */\r\nfunction useToolbarItemSyncEffect(uiDataProvider: ToolbarItemsManager, syncIdsOfInterest: string[]) {\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n if (0 === syncIdsOfInterest.length)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n // process each item that has interest\r\n uiDataProvider.refreshAffectedItems(args.eventIds);\r\n }\r\n };\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [uiDataProvider, syncIdsOfInterest, uiDataProvider.items]);\r\n\r\n React.useEffect(() => {\r\n const handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n uiDataProvider.setActiveToolId(toolId);\r\n };\r\n\r\n FrontstageManager.onToolActivatedEvent.addListener(handleToolActivatedEvent);\r\n\r\n return () => {\r\n FrontstageManager.onToolActivatedEvent.removeListener(handleToolActivatedEvent);\r\n };\r\n }, [uiDataProvider, uiDataProvider.items]);\r\n}\r\n\r\nfunction nestedAddItemToSpecifiedParentGroup(items: ReadonlyArray<ActionButton | GroupButton>, groupChildren: Array<ActionButton | GroupButton>): Array<ActionButton | GroupButton> {\r\n const outItems: Array<ActionButton | GroupButton> = [];\r\n for (const toolbarItem of items) {\r\n if (!ToolbarItemUtilities.isGroupButton(toolbarItem)) {\r\n outItems.push(toolbarItem);\r\n continue;\r\n }\r\n\r\n const newChildren: Array<ActionButton | GroupButton> = nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);\r\n const foundIndices: number[] = [];\r\n\r\n groupChildren.forEach((entry, index) => {\r\n if (entry.parentToolGroupId === toolbarItem.id) {\r\n foundIndices.push(index);\r\n }\r\n });\r\n\r\n // istanbul ignore else\r\n if (foundIndices.length) {\r\n // process in reverse order so groupChildren can be reduced as we find matches\r\n foundIndices.sort(\r\n // istanbul ignore next\r\n (a, b) => a - b,\r\n ).reverse().forEach((foundIndex) => {\r\n newChildren.push(groupChildren[foundIndex]);\r\n groupChildren.splice(foundIndex);\r\n });\r\n }\r\n\r\n outItems.push({ ...toolbarItem, items: newChildren });\r\n }\r\n return outItems;\r\n}\r\n\r\nfunction addItemToSpecifiedParentGroup(items: readonly CommonToolbarItem[], groupChildren: Array<ActionButton | GroupButton>): CommonToolbarItem[] {\r\n const outItems: CommonToolbarItem[] = [];\r\n for (const toolbarItem of items) {\r\n if (!ToolbarItemUtilities.isGroupButton(toolbarItem)) {\r\n outItems.push(toolbarItem);\r\n continue;\r\n }\r\n\r\n const newChildren: Array<ActionButton | GroupButton> = nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);\r\n const foundIndices: number[] = [];\r\n\r\n groupChildren.forEach((entry, index) => {\r\n if (entry.parentToolGroupId === toolbarItem.id) {\r\n foundIndices.push(index);\r\n }\r\n });\r\n\r\n // istanbul ignore else\r\n if (foundIndices.length) {\r\n // process in reverse order so groupChildren can be reduced as we find matches\r\n foundIndices.sort(\r\n // istanbul ignore next\r\n (a, b) => a - b,\r\n ).reverse().forEach((foundIndex) => {\r\n newChildren.push(groupChildren[foundIndex]);\r\n groupChildren.splice(foundIndex);\r\n });\r\n }\r\n\r\n outItems.push({ ...toolbarItem, items: newChildren });\r\n }\r\n return outItems;\r\n}\r\n\r\nfunction cloneGroup(inGroup: GroupButton): GroupButton {\r\n const childItems: Array<ActionButton | GroupButton> = [];\r\n inGroup.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item))\r\n childItems.push(cloneGroup(item));\r\n else\r\n childItems.push(item);\r\n });\r\n\r\n const clonedGroup = { ...inGroup, items: childItems };\r\n return clonedGroup;\r\n}\r\n\r\nfunction getItemSortValue(item: ToolbarItem) {\r\n const groupValue = undefined === item.groupPriority ? 0 : /* istanbul ignore next */ item.groupPriority;\r\n return groupValue * 10000 + item.itemPriority;\r\n}\r\n\r\nfunction getSortedChildren(group: GroupButton): ReadonlyArray<ActionButton | GroupButton> {\r\n const sortedChildren = group.items\r\n .filter((item) => !(ConditionalBooleanValue.getValue(item.isHidden)))\r\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\r\n .map((i) => {\r\n if (ToolbarItemUtilities.isGroupButton(i)) {\r\n return { ...i, items: getSortedChildren(i) };\r\n }\r\n return i;\r\n });\r\n return sortedChildren;\r\n}\r\n\r\n/** local function to combine items from Stage and from Extensions */\r\nfunction combineItems(defaultItems: ReadonlyArray<CommonToolbarItem>, addonItems: ReadonlyArray<CommonToolbarItem>) {\r\n let items: CommonToolbarItem[] = [];\r\n const groupChildren: Array<ActionButton | GroupButton> = [];\r\n\r\n // istanbul ignore else\r\n if (defaultItems.length) {\r\n defaultItems.forEach((srcItem: CommonToolbarItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\r\n const toolbarItem = ToolbarItemUtilities.isGroupButton(srcItem) ? cloneGroup(srcItem) : srcItem;\r\n if (toolbarItem.parentToolGroupId && (ToolbarItemUtilities.isGroupButton(toolbarItem) || ToolbarItemUtilities.isActionButton(toolbarItem)))\r\n groupChildren.push(toolbarItem);\r\n else\r\n items.push(toolbarItem);\r\n }\r\n });\r\n }\r\n // istanbul ignore else\r\n if (addonItems.length) {\r\n addonItems.forEach((srcItem: CommonToolbarItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\r\n const toolbarItem = ToolbarItemUtilities.isGroupButton(srcItem) ? cloneGroup(srcItem) : srcItem;\r\n if (toolbarItem.parentToolGroupId && (ToolbarItemUtilities.isGroupButton(toolbarItem) || ToolbarItemUtilities.isActionButton(toolbarItem)))\r\n groupChildren.push(toolbarItem);\r\n else\r\n items.push(toolbarItem);\r\n }\r\n });\r\n }\r\n\r\n // if an item from an addon has specified a parent group then try to find it and insert it. If no parent is found, add item at root level.\r\n if (groupChildren.length) {\r\n items = addItemToSpecifiedParentGroup(items, groupChildren);\r\n\r\n if (groupChildren.length) {\r\n groupChildren.forEach((toolbarItem: ActionButton | GroupButton) => {\r\n Logger.logWarning(\"ToolbarComposer\", `Requested Parent Group [${toolbarItem.parentToolGroupId!}] not found, so item [${toolbarItem.id}] is added directly to toolbar.`);\r\n items.push(toolbarItem);\r\n });\r\n }\r\n }\r\n\r\n const availableItems = items\r\n .filter((item) => !(ConditionalBooleanValue.getValue(item.isHidden)))\r\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\r\n .map((i) => {\r\n if (ToolbarItemUtilities.isGroupButton(i)) {\r\n return { ...i, items: getSortedChildren(i) };\r\n }\r\n return i;\r\n });\r\n\r\n return availableItems;\r\n}\r\n\r\nconst useProximityOpacitySetting = () => {\r\n const [proximityOpacity, setProximityOpacity] = React.useState(UiShowHideManager.useProximityOpacity);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleUiVisibilityChanged = () => {\r\n setProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n };\r\n UiFramework.onUiVisibilityChanged.addListener(handleUiVisibilityChanged);\r\n return () => {\r\n UiFramework.onUiVisibilityChanged.removeListener(handleUiVisibilityChanged);\r\n };\r\n }, []);\r\n return proximityOpacity;\r\n};\r\n\r\n/** Properties for the [[ToolbarComposer]] React components\r\n * @public\r\n */\r\nexport interface ExtensibleToolbarProps {\r\n items: CommonToolbarItem[];\r\n usage: ToolbarUsage;\r\n /** Toolbar orientation. */\r\n orientation: ToolbarOrientation;\r\n}\r\n\r\n/**\r\n * Toolbar that is populated and maintained by item managers.\r\n * @public\r\n */\r\nexport function ToolbarComposer(props: ExtensibleToolbarProps) {\r\n const { usage, orientation } = props;\r\n\r\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new ToolbarItemsManager(props.items));\r\n React.useEffect(() => {\r\n setDefaultItemsManager(new ToolbarItemsManager(props.items));\r\n }, [props.items]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n // process default items\r\n const defaultItems = useDefaultToolbarItems(defaultItemsManager);\r\n const syncIdsOfInterest = React.useMemo(() => ToolbarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);\r\n useToolbarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\r\n\r\n // process items from addon UI providers\r\n const [addonItemsManager] = React.useState(() => new ToolbarItemsManager());\r\n const addonItems = useUiItemsProviderToolbarItems(addonItemsManager, usage, orientation);\r\n const addonSyncIdsOfInterest = React.useMemo(() => ToolbarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);\r\n useToolbarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\r\n\r\n const toolbarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);\r\n\r\n const toolbarOrientation = orientation === ToolbarOrientation.Horizontal ? Orientation.Horizontal : Orientation.Vertical;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const expandsTo = toolbarOrientation === Orientation.Horizontal ? Direction.Bottom : usage === ToolbarUsage.ViewNavigation ? Direction.Left : Direction.Right;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const panelAlignment = (toolbarOrientation === Orientation.Horizontal && usage === ToolbarUsage.ViewNavigation) ? ToolbarPanelAlignment.End : ToolbarPanelAlignment.Start;\r\n const version = useFrameworkVersion();\r\n const isDragEnabled = React.useContext(ToolbarDragInteractionContext);\r\n const useProximityOpacity = useProximityOpacitySetting();\r\n\r\n if (\"1\" === version) {\r\n return (\r\n <ToolbarUi1\r\n items={toolbarItems}\r\n expandsTo={expandsTo}\r\n panelAlignment={panelAlignment}\r\n />\r\n );\r\n }\r\n\r\n return <ToolbarWithOverflow\r\n expandsTo={expandsTo}\r\n panelAlignment={panelAlignment}\r\n items={toolbarItems}\r\n useDragInteraction={isDragEnabled}\r\n toolbarOpacitySetting={useProximityOpacity && !UiFramework.isMobile() ? ToolbarOpacitySetting.Proximity : /* istanbul ignore next */ ToolbarOpacitySetting.Defaults}\r\n />;\r\n}\r\n\r\ninterface ToolbarUi1Props {\r\n items: CommonToolbarItem[];\r\n expandsTo: Direction; // eslint-disable-line deprecation/deprecation\r\n panelAlignment: ToolbarPanelAlignment; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Toolbar rendered in 1.0 mode.\r\n * @internal\r\n */\r\nconst ToolbarUi1 = React.memo<ToolbarUi1Props>(function ToolbarUi1({\r\n items,\r\n expandsTo,\r\n panelAlignment,\r\n}) {\r\n const createReactNodes = (): React.ReactNode => {\r\n if (0 === items.length)\r\n return null;\r\n\r\n const createdNodes = items.map((item: CommonToolbarItem) => {\r\n return ToolbarHelper.createNodeForToolbarItem(item);\r\n });\r\n return createdNodes;\r\n };\r\n\r\n return <Toolbar // eslint-disable-line deprecation/deprecation\r\n expandsTo={expandsTo}\r\n panelAlignment={panelAlignment}\r\n items={\r\n <>\r\n {createReactNodes()}\r\n </>\r\n }\r\n />;\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"ToolbarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarComposer.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 Toolbar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, CommonToolbarItem, ConditionalBooleanValue, GroupButton, ToolbarItemsManager, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiSyncEventArgs,\r\n} from \"@itwin/appui-abstract\";\r\nimport { Orientation } from \"@itwin/core-react\";\r\nimport { ToolbarItem, ToolbarOpacitySetting, ToolbarWithOverflow } from \"@itwin/components-react\";\r\nimport { Direction, Toolbar, ToolbarPanelAlignment } from \"@itwin/appui-layout-react\";\r\nimport { FrontstageManager, ToolActivatedEventArgs } from \"../frontstage/FrontstageManager\";\r\nimport { useFrameworkVersion } from \"../hooks/useFrameworkVersion\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\nimport { useDefaultToolbarItems } from \"./useDefaultToolbarItems\";\r\nimport { useUiItemsProviderToolbarItems } from \"./useUiItemsProviderToolbarItems\";\r\n\r\n/** Private function to set up sync event monitoring of toolbar items */\r\nfunction useToolbarItemSyncEffect(uiDataProvider: ToolbarItemsManager, syncIdsOfInterest: string[]) {\r\n React.useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n if (0 === syncIdsOfInterest.length)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n // process each item that has interest\r\n uiDataProvider.refreshAffectedItems(args.eventIds);\r\n }\r\n };\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [uiDataProvider, syncIdsOfInterest, uiDataProvider.items]);\r\n\r\n React.useEffect(() => {\r\n const handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n uiDataProvider.setActiveToolId(toolId);\r\n };\r\n\r\n FrontstageManager.onToolActivatedEvent.addListener(handleToolActivatedEvent);\r\n\r\n return () => {\r\n FrontstageManager.onToolActivatedEvent.removeListener(handleToolActivatedEvent);\r\n };\r\n }, [uiDataProvider, uiDataProvider.items]);\r\n}\r\n\r\nfunction nestedAddItemToSpecifiedParentGroup(items: ReadonlyArray<ActionButton | GroupButton>, groupChildren: Array<ActionButton | GroupButton>): Array<ActionButton | GroupButton> {\r\n const outItems: Array<ActionButton | GroupButton> = [];\r\n for (const toolbarItem of items) {\r\n if (!ToolbarItemUtilities.isGroupButton(toolbarItem)) {\r\n outItems.push(toolbarItem);\r\n continue;\r\n }\r\n\r\n const newChildren: Array<ActionButton | GroupButton> = nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);\r\n const foundIndices: number[] = [];\r\n\r\n groupChildren.forEach((entry, index) => {\r\n if (entry.parentToolGroupId === toolbarItem.id) {\r\n foundIndices.push(index);\r\n }\r\n });\r\n\r\n // istanbul ignore else\r\n if (foundIndices.length) {\r\n // process in reverse order so groupChildren can be reduced as we find matches\r\n foundIndices.sort(\r\n // istanbul ignore next\r\n (a, b) => a - b,\r\n ).reverse().forEach((foundIndex) => {\r\n newChildren.push(groupChildren[foundIndex]);\r\n groupChildren.splice(foundIndex);\r\n });\r\n }\r\n\r\n outItems.push({ ...toolbarItem, items: newChildren });\r\n }\r\n return outItems;\r\n}\r\n\r\nfunction addItemToSpecifiedParentGroup(items: readonly CommonToolbarItem[], groupChildren: Array<ActionButton | GroupButton>): CommonToolbarItem[] {\r\n const outItems: CommonToolbarItem[] = [];\r\n for (const toolbarItem of items) {\r\n if (!ToolbarItemUtilities.isGroupButton(toolbarItem)) {\r\n outItems.push(toolbarItem);\r\n continue;\r\n }\r\n\r\n const newChildren: Array<ActionButton | GroupButton> = nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);\r\n const foundIndices: number[] = [];\r\n\r\n groupChildren.forEach((entry, index) => {\r\n if (entry.parentToolGroupId === toolbarItem.id) {\r\n foundIndices.push(index);\r\n }\r\n });\r\n\r\n // istanbul ignore else\r\n if (foundIndices.length) {\r\n // process in reverse order so groupChildren can be reduced as we find matches\r\n foundIndices.sort(\r\n // istanbul ignore next\r\n (a, b) => a - b,\r\n ).reverse().forEach((foundIndex) => {\r\n newChildren.push(groupChildren[foundIndex]);\r\n groupChildren.splice(foundIndex);\r\n });\r\n }\r\n\r\n outItems.push({ ...toolbarItem, items: newChildren });\r\n }\r\n return outItems;\r\n}\r\n\r\nfunction cloneGroup(inGroup: GroupButton): GroupButton {\r\n const childItems: Array<ActionButton | GroupButton> = [];\r\n inGroup.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item))\r\n childItems.push(cloneGroup(item));\r\n else\r\n childItems.push(item);\r\n });\r\n\r\n const clonedGroup = { ...inGroup, items: childItems };\r\n return clonedGroup;\r\n}\r\n\r\nfunction getItemSortValue(item: ToolbarItem) {\r\n const groupValue = undefined === item.groupPriority ? 0 : /* istanbul ignore next */ item.groupPriority;\r\n return groupValue * 10000 + item.itemPriority;\r\n}\r\n\r\nfunction getSortedChildren(group: GroupButton): ReadonlyArray<ActionButton | GroupButton> {\r\n const sortedChildren = group.items\r\n .filter((item) => !(ConditionalBooleanValue.getValue(item.isHidden)))\r\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\r\n .map((i) => {\r\n if (ToolbarItemUtilities.isGroupButton(i)) {\r\n return { ...i, items: getSortedChildren(i) };\r\n }\r\n return i;\r\n });\r\n return sortedChildren;\r\n}\r\n\r\n/** local function to combine items from Stage and from Extensions */\r\nfunction combineItems(defaultItems: ReadonlyArray<CommonToolbarItem>, addonItems: ReadonlyArray<CommonToolbarItem>) {\r\n let items: CommonToolbarItem[] = [];\r\n const groupChildren: Array<ActionButton | GroupButton> = [];\r\n\r\n // istanbul ignore else\r\n if (defaultItems.length) {\r\n defaultItems.forEach((srcItem: CommonToolbarItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\r\n const toolbarItem = ToolbarItemUtilities.isGroupButton(srcItem) ? cloneGroup(srcItem) : srcItem;\r\n if (toolbarItem.parentToolGroupId && (ToolbarItemUtilities.isGroupButton(toolbarItem) || ToolbarItemUtilities.isActionButton(toolbarItem)))\r\n groupChildren.push(toolbarItem);\r\n else\r\n items.push(toolbarItem);\r\n }\r\n });\r\n }\r\n // istanbul ignore else\r\n if (addonItems.length) {\r\n addonItems.forEach((srcItem: CommonToolbarItem) => {\r\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\r\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\r\n const toolbarItem = ToolbarItemUtilities.isGroupButton(srcItem) ? cloneGroup(srcItem) : srcItem;\r\n if (toolbarItem.parentToolGroupId && (ToolbarItemUtilities.isGroupButton(toolbarItem) || ToolbarItemUtilities.isActionButton(toolbarItem)))\r\n groupChildren.push(toolbarItem);\r\n else\r\n items.push(toolbarItem);\r\n }\r\n });\r\n }\r\n\r\n // if an item from an addon has specified a parent group then try to find it and insert it. If no parent is found, add item at root level.\r\n if (groupChildren.length) {\r\n items = addItemToSpecifiedParentGroup(items, groupChildren);\r\n\r\n if (groupChildren.length) {\r\n groupChildren.forEach((toolbarItem: ActionButton | GroupButton) => {\r\n Logger.logWarning(\"ToolbarComposer\", `Requested Parent Group [${toolbarItem.parentToolGroupId!}] not found, so item [${toolbarItem.id}] is added directly to toolbar.`);\r\n items.push(toolbarItem);\r\n });\r\n }\r\n }\r\n\r\n const availableItems = items\r\n .filter((item) => !(ConditionalBooleanValue.getValue(item.isHidden)))\r\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\r\n .map((i) => {\r\n if (ToolbarItemUtilities.isGroupButton(i)) {\r\n return { ...i, items: getSortedChildren(i) };\r\n }\r\n return i;\r\n });\r\n\r\n return availableItems;\r\n}\r\n\r\nconst useProximityOpacitySetting = () => {\r\n const [proximityOpacity, setProximityOpacity] = React.useState(UiShowHideManager.useProximityOpacity);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleUiVisibilityChanged = () => {\r\n setProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n };\r\n UiFramework.onUiVisibilityChanged.addListener(handleUiVisibilityChanged);\r\n return () => {\r\n UiFramework.onUiVisibilityChanged.removeListener(handleUiVisibilityChanged);\r\n };\r\n }, []);\r\n return proximityOpacity;\r\n};\r\n\r\n/** Properties for the [[ToolbarComposer]] React components\r\n * @public\r\n */\r\nexport interface ExtensibleToolbarProps {\r\n items: CommonToolbarItem[];\r\n usage: ToolbarUsage;\r\n /** Toolbar orientation. */\r\n orientation: ToolbarOrientation;\r\n}\r\n\r\n/**\r\n * Toolbar that is populated and maintained by item managers.\r\n * @public\r\n */\r\nexport function ToolbarComposer(props: ExtensibleToolbarProps) {\r\n const { usage, orientation } = props;\r\n\r\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(() => new ToolbarItemsManager(props.items));\r\n React.useEffect(() => {\r\n setDefaultItemsManager(new ToolbarItemsManager(props.items));\r\n }, [props.items]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n // process default items\r\n const defaultItems = useDefaultToolbarItems(defaultItemsManager);\r\n const syncIdsOfInterest = React.useMemo(() => ToolbarItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);\r\n useToolbarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\r\n\r\n // process items from addon UI providers\r\n const [addonItemsManager] = React.useState(() => new ToolbarItemsManager());\r\n const addonItems = useUiItemsProviderToolbarItems(addonItemsManager, usage, orientation);\r\n const addonSyncIdsOfInterest = React.useMemo(() => ToolbarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);\r\n useToolbarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\r\n\r\n const toolbarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);\r\n\r\n const toolbarOrientation = orientation === ToolbarOrientation.Horizontal ? Orientation.Horizontal : Orientation.Vertical;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const expandsTo = toolbarOrientation === Orientation.Horizontal ? Direction.Bottom : usage === ToolbarUsage.ViewNavigation ? Direction.Left : Direction.Right;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const panelAlignment = (toolbarOrientation === Orientation.Horizontal && usage === ToolbarUsage.ViewNavigation) ? ToolbarPanelAlignment.End : ToolbarPanelAlignment.Start;\r\n const version = useFrameworkVersion(); // eslint-disable-line deprecation/deprecation\r\n const isDragEnabled = React.useContext(ToolbarDragInteractionContext);\r\n const useProximityOpacity = useProximityOpacitySetting();\r\n\r\n if (\"1\" === version) {\r\n return (\r\n <ToolbarUi1\r\n items={toolbarItems}\r\n expandsTo={expandsTo}\r\n panelAlignment={panelAlignment}\r\n />\r\n );\r\n }\r\n\r\n return <ToolbarWithOverflow\r\n expandsTo={expandsTo}\r\n panelAlignment={panelAlignment}\r\n items={toolbarItems}\r\n useDragInteraction={isDragEnabled}\r\n toolbarOpacitySetting={useProximityOpacity && !UiFramework.isMobile() ? ToolbarOpacitySetting.Proximity : /* istanbul ignore next */ ToolbarOpacitySetting.Defaults}\r\n />;\r\n}\r\n\r\ninterface ToolbarUi1Props {\r\n items: CommonToolbarItem[];\r\n expandsTo: Direction; // eslint-disable-line deprecation/deprecation\r\n panelAlignment: ToolbarPanelAlignment; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Toolbar rendered in 1.0 mode.\r\n * @internal\r\n */\r\nconst ToolbarUi1 = React.memo<ToolbarUi1Props>(function ToolbarUi1({\r\n items,\r\n expandsTo,\r\n panelAlignment,\r\n}) {\r\n const createReactNodes = (): React.ReactNode => {\r\n if (0 === items.length)\r\n return null;\r\n\r\n const createdNodes = items.map((item: CommonToolbarItem) => {\r\n return ToolbarHelper.createNodeForToolbarItem(item);\r\n });\r\n return createdNodes;\r\n };\r\n\r\n return <Toolbar // eslint-disable-line deprecation/deprecation\r\n expandsTo={expandsTo}\r\n panelAlignment={panelAlignment}\r\n items={\r\n <>\r\n {createReactNodes()}\r\n </>\r\n }\r\n />;\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAoC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAoC,MAAM,uBAAuB,CAAC;AAWnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mBAAmB;IACrC,OAAO,CAAC,aAAa,CAAC;gBAA1C,UAAU,EAAE,MAAM,EAAU,aAAa,CAAC,mCAAuB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAItK;;;;;;;;MAQE;WACY,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAMxJ,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CA+CjI"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import { BaseUiItemsProvider, StatusBarSection, UiItemsManager } from "@itwin/appui-abstract";
|
|
10
|
-
import { FooterSeparator } from "@itwin/appui-layout-react";
|
|
11
10
|
import { StatusBarItemUtilities } from "../statusbar/StatusBarItemUtilities";
|
|
12
11
|
import { ToolAssistanceField } from "../statusfields/toolassistance/ToolAssistanceField";
|
|
13
12
|
import { withStatusFieldProps } from "../statusbar/withStatusFieldProps";
|
|
@@ -18,6 +17,7 @@ import { SnapModeField } from "../statusfields/SnapMode";
|
|
|
18
17
|
import { SelectionInfoField } from "../statusfields/SelectionInfo";
|
|
19
18
|
import { TileLoadingIndicator } from "../statusfields/tileloading/TileLoadingIndicator";
|
|
20
19
|
import { SelectionScopeField } from "../statusfields/SelectionScope";
|
|
20
|
+
import { StatusBarSeparator } from "../statusbar/Separator";
|
|
21
21
|
/**
|
|
22
22
|
* Provide standard statusbar fields for the SimpleStatusbarWidget
|
|
23
23
|
* @public
|
|
@@ -51,12 +51,12 @@ export class StandardStatusbarItemsProvider extends BaseUiItemsProvider {
|
|
|
51
51
|
}
|
|
52
52
|
if (!this._defaultItems || this._defaultItems.toolAssistance) {
|
|
53
53
|
if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
|
|
54
|
-
statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(
|
|
54
|
+
statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(StatusBarSeparator, null)));
|
|
55
55
|
// eslint-disable-next-line deprecation/deprecation
|
|
56
56
|
const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
|
|
57
57
|
statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
|
|
58
58
|
if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
|
|
59
|
-
statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(
|
|
59
|
+
statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(StatusBarSeparator, null)));
|
|
60
60
|
}
|
|
61
61
|
if ((_a = this._defaultItems) === null || _a === void 0 ? void 0 : _a.activityCenter) {
|
|
62
62
|
// eslint-disable-next-line deprecation/deprecation
|