@itwin/appui-react 3.6.0-dev.59 → 3.6.0-dev.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -1
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposer.js +1 -0
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +43 -0
- package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/backstage/BackstageItem.js +37 -0
- package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -0
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +7 -35
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +10 -24
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +4 -2
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +15 -0
- package/lib/cjs/appui-react/frontstage/StageUsage.d.ts.map +1 -0
- package/lib/cjs/appui-react/frontstage/StageUsage.js +17 -0
- package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -0
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +4 -4
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +13 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +16 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +13 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +16 -0
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -0
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js +2 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +52 -2
- package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js +33 -2
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -4
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +31 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js +2 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupButtonItem.d.ts +1 -1
- package/lib/cjs/appui-react/toolbar/GroupButtonItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +4 -4
- package/lib/cjs/appui-react/toolbar/GroupButtonItem.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/toolbar/ToolbarItem.d.ts +53 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js +41 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +14 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +28 -0
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +11 -0
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +20 -0
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +9 -0
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js +10 -0
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.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 +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +24 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +19 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +9 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js +10 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -0
- package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -0
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +7 -0
- package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetProps.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetState.d.ts +13 -0
- package/lib/cjs/appui-react/widgets/WidgetState.d.ts.map +1 -0
- package/lib/cjs/appui-react/widgets/WidgetState.js +16 -0
- package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -0
- package/lib/cjs/appui-react.d.ts +16 -5
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +16 -5
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposer.js +1 -0
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.d.ts +43 -0
- package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -0
- package/lib/esm/appui-react/backstage/BackstageItem.js +32 -0
- package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -0
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +7 -35
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +7 -21
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +4 -2
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StageUsage.d.ts +15 -0
- package/lib/esm/appui-react/frontstage/StageUsage.d.ts.map +1 -0
- package/lib/esm/appui-react/frontstage/StageUsage.js +14 -0
- package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -0
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +4 -4
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +13 -0
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +13 -0
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +13 -0
- package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -0
- package/lib/esm/appui-react/stagepanels/StagePanelSection.js +13 -0
- package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -0
- package/lib/esm/appui-react/statusbar/LabelIndicator.js +2 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +52 -2
- package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.js +29 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -4
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +31 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js +2 -1
- package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupButtonItem.d.ts +1 -1
- package/lib/esm/appui-react/toolbar/GroupButtonItem.d.ts.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupButtonItem.js +2 -2
- package/lib/esm/appui-react/toolbar/GroupButtonItem.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/toolbar/ToolbarItem.d.ts +53 -0
- package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarItem.js +35 -0
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +14 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +25 -0
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +11 -0
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +16 -0
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +9 -0
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.js +9 -0
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -2
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.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 +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +24 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +15 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +9 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js +9 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -0
- package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +1 -0
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts +7 -0
- package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetProps.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetState.d.ts +13 -0
- package/lib/esm/appui-react/widgets/WidgetState.d.ts.map +1 -0
- package/lib/esm/appui-react/widgets/WidgetState.js +13 -0
- package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -0
- package/lib/esm/appui-react.d.ts +16 -5
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +16 -5
- package/lib/esm/appui-react.js.map +1 -1
- package/package.json +43 -33
|
@@ -2,16 +2,66 @@
|
|
|
2
2
|
* @module StatusBar
|
|
3
3
|
*/
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { AbstractStatusBarCustomItem, CommonStatusBarItem } from "@itwin/appui-abstract";
|
|
5
|
+
import { AbstractStatusBarActionItem, AbstractStatusBarCustomItem, AbstractStatusBarItem, AbstractStatusBarLabelItem, CommonStatusBarItem as UIA_CommonStatusBarItem, StatusBarLabelSide as UIA_StatusBarLabelSide, StatusBarSection as UIA_StatusBarSection } from "@itwin/appui-abstract";
|
|
6
|
+
/** Status bar Groups/Sections from Left to Right
|
|
7
|
+
* @beta
|
|
8
|
+
*/
|
|
9
|
+
export declare type StatusBarSection = UIA_StatusBarSection;
|
|
10
|
+
/** Status bar Groups/Sections from Left to Right
|
|
11
|
+
* @beta
|
|
12
|
+
*/
|
|
13
|
+
export declare const StatusBarSection: typeof UIA_StatusBarSection;
|
|
14
|
+
/** Defines which side of Icon where label is placed
|
|
15
|
+
* @beta
|
|
16
|
+
*/
|
|
17
|
+
export declare type StatusBarLabelSide = UIA_StatusBarLabelSide;
|
|
18
|
+
/** Defines which side of Icon where label is placed
|
|
19
|
+
* @beta
|
|
20
|
+
*/
|
|
21
|
+
export declare const StatusBarLabelSide: typeof UIA_StatusBarLabelSide;
|
|
22
|
+
/** Describes the data needed to insert a button into the status bar.
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
export declare type CommonStatusBarItem = AbstractStatusBarItem;
|
|
26
|
+
/** Describes the data needed to insert an action item into the status bar.
|
|
27
|
+
* @beta
|
|
28
|
+
*/
|
|
29
|
+
export declare type StatusBarActionItem = AbstractStatusBarActionItem;
|
|
30
|
+
/** Describes the data needed to insert a label item with an optional icon into the status bar.
|
|
31
|
+
* @beta
|
|
32
|
+
*/
|
|
33
|
+
export declare type StatusBarLabelItem = AbstractStatusBarLabelItem;
|
|
6
34
|
/** Describes the data needed to insert an item into the StatusBar.
|
|
35
|
+
* @deprecated in 3.6. Use [[StatusBarCustomItem]] instead.
|
|
7
36
|
* @public
|
|
8
37
|
*/
|
|
9
38
|
export interface StatusBarItem extends AbstractStatusBarCustomItem {
|
|
10
39
|
/** React node for the StatusBar item. */
|
|
11
40
|
readonly reactNode: React.ReactNode;
|
|
12
41
|
}
|
|
42
|
+
/** Describes the data needed to insert an item into the StatusBar.
|
|
43
|
+
* @beta
|
|
44
|
+
*/
|
|
45
|
+
export declare type StatusBarCustomItem = StatusBarItem;
|
|
46
|
+
/** Describes the data needed to insert a button into the status bar.
|
|
47
|
+
* @beta
|
|
48
|
+
*/
|
|
49
|
+
export declare type AnyStatusBarItem = UIA_CommonStatusBarItem;
|
|
50
|
+
/** StatusBarActionItem type guard.
|
|
51
|
+
* @beta
|
|
52
|
+
*/
|
|
53
|
+
export declare function isStatusBarActionItem(item: AnyStatusBarItem): item is StatusBarActionItem;
|
|
54
|
+
/** StatusBarLabelItem type guard.
|
|
55
|
+
* @beta
|
|
56
|
+
*/
|
|
57
|
+
export declare function isStatusBarLabelItem(item: AnyStatusBarItem): item is StatusBarLabelItem;
|
|
58
|
+
/** StatusBarCustomItem type guard.
|
|
59
|
+
* @beta
|
|
60
|
+
*/
|
|
61
|
+
export declare function isStatusBarCustomItem(item: AnyStatusBarItem): item is StatusBarCustomItem;
|
|
13
62
|
/** StatusBarItem type guard.
|
|
63
|
+
* @deprecated in 3.6. Use [[isStatusBarCustomItem]] instead.
|
|
14
64
|
* @public
|
|
15
65
|
*/
|
|
16
|
-
export declare const isStatusBarItem: (item:
|
|
66
|
+
export declare const isStatusBarItem: (item: UIA_CommonStatusBarItem) => item is StatusBarItem;
|
|
17
67
|
//# sourceMappingURL=StatusBarItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"StatusBarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAI1B,mBAAmB,IAAI,uBAAuB,EAC9C,kBAAkB,IAAI,sBAAsB,EAC5C,gBAAgB,IAAI,oBAAoB,EACzC,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,oBAAY,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,6BAAuB,CAAC;AAErD;;GAEG;AACH,oBAAY,kBAAkB,GAAG,sBAAsB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,+BAAyB,CAAC;AAEzD;;GAEG;AACH,oBAAY,mBAAmB,GAAG,qBAAqB,CAAC;AAExD;;GAEG;AACH,oBAAY,mBAAmB,GAAG,2BAA2B,CAAC;AAE9D;;GAEG;AACH,oBAAY,kBAAkB,GAAG,0BAA0B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,2BAA2B;IAChE,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,oBAAY,mBAAmB,GAAG,aAAa,CAAC;AAEhD;;GAEG;AAEH,oBAAY,gBAAgB,GAAG,uBAAuB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,mBAAmB,CAEzF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,kBAAkB,CAEvF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,mBAAmB,CAEzF;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,SAAU,uBAAuB,0BAE5D,CAAC"}
|
|
@@ -7,12 +7,43 @@
|
|
|
7
7
|
* @module StatusBar
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.isStatusBarItem = void 0;
|
|
10
|
+
exports.isStatusBarItem = exports.isStatusBarCustomItem = exports.isStatusBarLabelItem = exports.isStatusBarActionItem = exports.StatusBarLabelSide = exports.StatusBarSection = void 0;
|
|
11
|
+
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
12
|
+
/** Status bar Groups/Sections from Left to Right
|
|
13
|
+
* @beta
|
|
14
|
+
*/
|
|
15
|
+
exports.StatusBarSection = appui_abstract_1.StatusBarSection; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation
|
|
16
|
+
/** Defines which side of Icon where label is placed
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
exports.StatusBarLabelSide = appui_abstract_1.StatusBarLabelSide; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation
|
|
20
|
+
/** StatusBarActionItem type guard.
|
|
21
|
+
* @beta
|
|
22
|
+
*/
|
|
23
|
+
function isStatusBarActionItem(item) {
|
|
24
|
+
return (0, appui_abstract_1.isAbstractStatusBarActionItem)(item); // eslint-disable-line deprecation/deprecation
|
|
25
|
+
}
|
|
26
|
+
exports.isStatusBarActionItem = isStatusBarActionItem;
|
|
27
|
+
/** StatusBarLabelItem type guard.
|
|
28
|
+
* @beta
|
|
29
|
+
*/
|
|
30
|
+
function isStatusBarLabelItem(item) {
|
|
31
|
+
return (0, appui_abstract_1.isAbstractStatusBarLabelItem)(item); // eslint-disable-line deprecation/deprecation
|
|
32
|
+
}
|
|
33
|
+
exports.isStatusBarLabelItem = isStatusBarLabelItem;
|
|
34
|
+
/** StatusBarCustomItem type guard.
|
|
35
|
+
* @beta
|
|
36
|
+
*/
|
|
37
|
+
function isStatusBarCustomItem(item) {
|
|
38
|
+
return (0, exports.isStatusBarItem)(item); // eslint-disable-line deprecation/deprecation
|
|
39
|
+
}
|
|
40
|
+
exports.isStatusBarCustomItem = isStatusBarCustomItem;
|
|
11
41
|
/** StatusBarItem type guard.
|
|
42
|
+
* @deprecated in 3.6. Use [[isStatusBarCustomItem]] instead.
|
|
12
43
|
* @public
|
|
13
44
|
*/
|
|
14
45
|
const isStatusBarItem = (item) => {
|
|
15
|
-
return (
|
|
46
|
+
return (0, appui_abstract_1.isAbstractStatusBarCustomItem)(item) && ("reactNode" in item); // eslint-disable-line deprecation/deprecation
|
|
16
47
|
};
|
|
17
48
|
exports.isStatusBarItem = isStatusBarItem;
|
|
18
49
|
//# sourceMappingURL=StatusBarItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItem.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAW+B;AAO/B;;GAEG;AACU,QAAA,gBAAgB,GAAG,iCAAoB,CAAC,CAAC,+EAA+E;AAOrI;;GAEG;AACU,QAAA,kBAAkB,GAAG,mCAAsB,CAAC,CAAC,+EAA+E;AAqCzI;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAsB;IAC1D,OAAO,IAAA,8CAA6B,EAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;AAC5F,CAAC;AAFD,sDAEC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAsB;IACzD,OAAO,IAAA,6CAA4B,EAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;AAC3F,CAAC;AAFD,oDAEC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAsB;IAC1D,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C;AAC9E,CAAC;AAFD,sDAEC;AAED;;;GAGG;AACI,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAyB,EAAE;IACtF,OAAO,IAAA,8CAA6B,EAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,8CAA8C;AACrH,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B","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 StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n AbstractStatusBarActionItem,\r\n AbstractStatusBarCustomItem,\r\n AbstractStatusBarItem,\r\n AbstractStatusBarLabelItem,\r\n isAbstractStatusBarActionItem,\r\n isAbstractStatusBarCustomItem,\r\n isAbstractStatusBarLabelItem,\r\n CommonStatusBarItem as UIA_CommonStatusBarItem,\r\n StatusBarLabelSide as UIA_StatusBarLabelSide,\r\n StatusBarSection as UIA_StatusBarSection,\r\n} from \"@itwin/appui-abstract\";\r\n\r\n/** Status bar Groups/Sections from Left to Right\r\n * @beta\r\n */\r\nexport type StatusBarSection = UIA_StatusBarSection; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Status bar Groups/Sections from Left to Right\r\n * @beta\r\n */\r\nexport const StatusBarSection = UIA_StatusBarSection; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation\r\n\r\n/** Defines which side of Icon where label is placed\r\n * @beta\r\n */\r\nexport type StatusBarLabelSide = UIA_StatusBarLabelSide; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Defines which side of Icon where label is placed\r\n * @beta\r\n */\r\nexport const StatusBarLabelSide = UIA_StatusBarLabelSide; // eslint-disable-line @typescript-eslint/no-redeclare, deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a button into the status bar.\r\n * @beta\r\n */\r\nexport type CommonStatusBarItem = AbstractStatusBarItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert an action item into the status bar.\r\n * @beta\r\n */\r\nexport type StatusBarActionItem = AbstractStatusBarActionItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a label item with an optional icon into the status bar.\r\n * @beta\r\n */\r\nexport type StatusBarLabelItem = AbstractStatusBarLabelItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert an item into the StatusBar.\r\n * @deprecated in 3.6. Use [[StatusBarCustomItem]] instead.\r\n * @public\r\n */\r\nexport interface StatusBarItem extends AbstractStatusBarCustomItem { // eslint-disable-line deprecation/deprecation\r\n /** React node for the StatusBar item. */\r\n readonly reactNode: React.ReactNode;\r\n}\r\n\r\n/** Describes the data needed to insert an item into the StatusBar.\r\n * @beta\r\n */\r\nexport type StatusBarCustomItem = StatusBarItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a button into the status bar.\r\n * @beta\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport type AnyStatusBarItem = UIA_CommonStatusBarItem; // TODO: Rename to StatusBarItem.\r\n\r\n/** StatusBarActionItem type guard.\r\n * @beta\r\n */\r\nexport function isStatusBarActionItem(item: AnyStatusBarItem): item is StatusBarActionItem {\r\n return isAbstractStatusBarActionItem(item); // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** StatusBarLabelItem type guard.\r\n * @beta\r\n */\r\nexport function isStatusBarLabelItem(item: AnyStatusBarItem): item is StatusBarLabelItem {\r\n return isAbstractStatusBarLabelItem(item); // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** StatusBarCustomItem type guard.\r\n * @beta\r\n */\r\nexport function isStatusBarCustomItem(item: AnyStatusBarItem): item is StatusBarCustomItem {\r\n return isStatusBarItem(item); // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** StatusBarItem type guard.\r\n * @deprecated in 3.6. Use [[isStatusBarCustomItem]] instead.\r\n * @public\r\n */\r\nexport const isStatusBarItem = (item: UIA_CommonStatusBarItem): item is StatusBarItem => { // eslint-disable-line deprecation/deprecation\r\n return isAbstractStatusBarCustomItem(item) && (\"reactNode\" in item); // eslint-disable-line deprecation/deprecation\r\n};\r\n"]}
|
|
@@ -2,13 +2,32 @@
|
|
|
2
2
|
* @module StatusBar
|
|
3
3
|
*/
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { StatusBarSection } from "@itwin/appui-abstract";
|
|
6
|
-
import { StatusBarItem } from "./StatusBarItem";
|
|
5
|
+
import { ConditionalStringValue, StatusBarSection as UIA_StatusBarSection } from "@itwin/appui-abstract";
|
|
6
|
+
import { StatusBarActionItem, StatusBarCustomItem, StatusBarItem, StatusBarLabelItem, StatusBarSection } from "./StatusBarItem";
|
|
7
7
|
/** Utility methods for creating and maintaining StatusBar items.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
10
|
export declare class StatusBarItemUtilities {
|
|
11
|
-
/** Creates a StatusBar item
|
|
12
|
-
|
|
11
|
+
/** Creates a StatusBar item
|
|
12
|
+
* @deprecated Use [[StatusBarItemUtilities.createCustomItem]] instead.
|
|
13
|
+
*/
|
|
14
|
+
static createStatusBarItem: (id: string, section: UIA_StatusBarSection, itemPriority: number, reactNode: React.ReactNode, itemProps?: Partial<StatusBarItem> | undefined) => StatusBarItem;
|
|
15
|
+
}
|
|
16
|
+
/** Helper class to create Abstract StatusBar Item definitions.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
export declare namespace StatusBarItemUtilities {
|
|
20
|
+
/** Creates a StatusBar item to perform an action.
|
|
21
|
+
* @beta
|
|
22
|
+
*/
|
|
23
|
+
function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem;
|
|
24
|
+
/** Creates a StatusBar item to display a label.
|
|
25
|
+
* @beta
|
|
26
|
+
*/
|
|
27
|
+
function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, label: string | ConditionalStringValue, labelSide?: import("@itwin/appui-abstract").StatusBarLabelSide, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem;
|
|
28
|
+
/** Creates a StatusBar item to display a custom content.
|
|
29
|
+
* @beta
|
|
30
|
+
*/
|
|
31
|
+
function createCustomItem(id: string, section: StatusBarSection, itemPriority: number, reactNode: React.ReactNode, overrides?: Partial<StatusBarCustomItem>): StatusBarCustomItem;
|
|
13
32
|
}
|
|
14
33
|
//# sourceMappingURL=StatusBarItemUtilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAkC,sBAAsB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAsB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpJ;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,OAAc,mBAAmB,OAAQ,MAAM,WAAW,oBAAoB,gBAAgB,MAAM,aAAa,MAAM,SAAS,qDAAuC,aAAa,CAIjL;CACJ;AAED;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEjQ;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,EAAE,SAAS,qDAA2B,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAE7Q;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAEvL;CACF"}
|
|
@@ -8,16 +8,46 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.StatusBarItemUtilities = void 0;
|
|
11
|
+
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
12
|
+
const StatusBarItem_1 = require("./StatusBarItem");
|
|
11
13
|
/** Utility methods for creating and maintaining StatusBar items.
|
|
12
14
|
* @public
|
|
13
15
|
*/
|
|
14
16
|
class StatusBarItemUtilities {
|
|
15
17
|
}
|
|
16
18
|
exports.StatusBarItemUtilities = StatusBarItemUtilities;
|
|
17
|
-
/** Creates a StatusBar item
|
|
19
|
+
/** Creates a StatusBar item
|
|
20
|
+
* @deprecated Use [[StatusBarItemUtilities.createCustomItem]] instead.
|
|
21
|
+
*/
|
|
18
22
|
StatusBarItemUtilities.createStatusBarItem = (id, section, itemPriority, reactNode, itemProps) => ({
|
|
19
23
|
id, section, itemPriority, reactNode,
|
|
20
24
|
isCustom: true,
|
|
21
25
|
...itemProps ? itemProps : {},
|
|
22
26
|
});
|
|
27
|
+
/** Helper class to create Abstract StatusBar Item definitions.
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
(function (StatusBarItemUtilities) {
|
|
31
|
+
/** Creates a StatusBar item to perform an action.
|
|
32
|
+
* @beta
|
|
33
|
+
*/
|
|
34
|
+
function createActionItem(id, section, itemPriority, icon, tooltip, execute, overrides) {
|
|
35
|
+
return appui_abstract_1.AbstractStatusBarItemUtilities.createActionItem(id, section, itemPriority, icon, tooltip, execute, overrides); // eslint-disable-line deprecation/deprecation
|
|
36
|
+
}
|
|
37
|
+
StatusBarItemUtilities.createActionItem = createActionItem;
|
|
38
|
+
/** Creates a StatusBar item to display a label.
|
|
39
|
+
* @beta
|
|
40
|
+
*/
|
|
41
|
+
function createLabelItem(id, section, itemPriority, icon, label, labelSide = StatusBarItem_1.StatusBarLabelSide.Right, overrides) {
|
|
42
|
+
return appui_abstract_1.AbstractStatusBarItemUtilities.createLabelItem(id, section, itemPriority, icon, label, labelSide, overrides); // eslint-disable-line deprecation/deprecation
|
|
43
|
+
}
|
|
44
|
+
StatusBarItemUtilities.createLabelItem = createLabelItem;
|
|
45
|
+
/** Creates a StatusBar item to display a custom content.
|
|
46
|
+
* @beta
|
|
47
|
+
*/
|
|
48
|
+
function createCustomItem(id, section, itemPriority, reactNode, overrides) {
|
|
49
|
+
return StatusBarItemUtilities.createStatusBarItem(id, section, itemPriority, reactNode, overrides); // eslint-disable-line deprecation/deprecation
|
|
50
|
+
}
|
|
51
|
+
StatusBarItemUtilities.createCustomItem = createCustomItem;
|
|
52
|
+
})(StatusBarItemUtilities = exports.StatusBarItemUtilities || (exports.StatusBarItemUtilities = {}));
|
|
23
53
|
//# sourceMappingURL=StatusBarItemUtilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0DAAyI;AACzI,mDAAoJ;AAEpJ;;GAEG;AACH,MAAa,sBAAsB;;AAAnC,wDASC;AARC;;GAEG;AACW,0CAAmB,GAAG,CAAC,EAAU,EAAE,OAA6B,EAAE,YAAoB,EAAE,SAA0B,EAAE,SAAkC,EAAiB,EAAE,CAAC,CAAC;IACvL,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;IACpC,QAAQ,EAAE,IAAI;IACd,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;CAC9B,CAAC,CAAC;AAGL;;GAEG;AACH,WAAiB,sBAAsB;IACrC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAqC,EAAE,OAAwC,EAAE,OAAmB,EAAE,SAAwC;QAC1O,OAAO,+CAA8B,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,8CAA8C;IACtK,CAAC;IAFe,uCAAgB,mBAE/B,CAAA;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAqC,EAAE,KAAsC,EAAE,SAAS,GAAG,kCAAkB,CAAC,KAAK,EAAE,SAAuC;QACvP,OAAO,+CAA8B,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,8CAA8C;IACrK,CAAC;IAFe,sCAAe,kBAE9B,CAAA;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,SAA0B,EAAE,SAAwC;QAChK,OAAO,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,8CAA8C;IACpJ,CAAC;IAFe,uCAAgB,mBAE/B,CAAA;AACH,CAAC,EArBgB,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAqBtC","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 StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { AbstractStatusBarItemUtilities, ConditionalStringValue, StatusBarSection as UIA_StatusBarSection } from \"@itwin/appui-abstract\";\r\nimport { StatusBarActionItem, StatusBarCustomItem, StatusBarItem, StatusBarLabelItem, StatusBarLabelSide, StatusBarSection } from \"./StatusBarItem\";\r\n\r\n/** Utility methods for creating and maintaining StatusBar items.\r\n * @public\r\n */\r\nexport class StatusBarItemUtilities {\r\n /** Creates a StatusBar item\r\n * @deprecated Use [[StatusBarItemUtilities.createCustomItem]] instead.\r\n */\r\n public static createStatusBarItem = (id: string, section: UIA_StatusBarSection, itemPriority: number, reactNode: React.ReactNode, itemProps?: Partial<StatusBarItem>): StatusBarItem => ({ // eslint-disable-line deprecation/deprecation\r\n id, section, itemPriority, reactNode,\r\n isCustom: true,\r\n ...itemProps ? itemProps : {},\r\n });\r\n}\r\n\r\n/** Helper class to create Abstract StatusBar Item definitions.\r\n * @public\r\n */\r\nexport namespace StatusBarItemUtilities {\r\n /** Creates a StatusBar item to perform an action.\r\n * @beta\r\n */\r\n export function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem {\r\n return AbstractStatusBarItemUtilities.createActionItem(id, section, itemPriority, icon, tooltip, execute, overrides); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n /** Creates a StatusBar item to display a label.\r\n * @beta\r\n */\r\n export function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, label: string | ConditionalStringValue, labelSide = StatusBarLabelSide.Right, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem {\r\n return AbstractStatusBarItemUtilities.createLabelItem(id, section, itemPriority, icon, label, labelSide, overrides); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n /** Creates a StatusBar item to display a custom content.\r\n * @beta\r\n */\r\n export function createCustomItem(id: string, section: StatusBarSection, itemPriority: number, reactNode: React.ReactNode, overrides?: Partial<StatusBarCustomItem>): StatusBarCustomItem {\r\n return StatusBarItemUtilities.createStatusBarItem(id, section, itemPriority, reactNode, overrides); // eslint-disable-line deprecation/deprecation\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDefaultStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAG/B;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,OAA8B,EAAkC,EAAE;IACzG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5B;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,aAAa,GAAG,CAAC,IAA+B,EAAE,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArBW,QAAA,wBAAwB,4BAqBnC","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 StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonStatusBarItem, StatusBarItemsChangedArgs, StatusBarItemsManager } from \"@itwin/appui-abstract\";\r\n\r\n/** Hook that returns items from [[StatusBarItemsManager]].\r\n * @public\r\n */\r\nexport const useDefaultStatusBarItems = (manager: StatusBarItemsManager): readonly CommonStatusBarItem[] => {\r\n const [items, setItems] = React.useState(manager.items);\r\n const isInitialMount = React.useRef(true);\r\n React.useEffect(() => {\r\n if (isInitialMount.current)\r\n isInitialMount.current = false;\r\n else {\r\n setItems(manager.items);\r\n }\r\n }, [manager]);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleChanged = (args: StatusBarItemsChangedArgs) => {\r\n setItems(args.items);\r\n };\r\n manager.onItemsChanged.addListener(handleChanged);\r\n return () => {\r\n manager.onItemsChanged.removeListener(handleChanged);\r\n };\r\n }, [manager]);\r\n return items;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"useDefaultStatusBarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/useDefaultStatusBarItems.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAG/B;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,OAA8B,EAAkC,EAAE;IACzG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5B;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,MAAM,aAAa,GAAG,CAAC,IAA+B,EAAE,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArBW,QAAA,wBAAwB,4BAqBnC","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 StatusBar\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonStatusBarItem, StatusBarItemsChangedArgs, StatusBarItemsManager } from \"@itwin/appui-abstract\";\r\n\r\n/** Hook that returns items from [[StatusBarItemsManager]].\r\n * @public\r\n */\r\nexport const useDefaultStatusBarItems = (manager: StatusBarItemsManager): readonly CommonStatusBarItem[] => { // eslint-disable-line deprecation/deprecation\r\n const [items, setItems] = React.useState(manager.items);\r\n const isInitialMount = React.useRef(true);\r\n React.useEffect(() => {\r\n if (isInitialMount.current)\r\n isInitialMount.current = false;\r\n else {\r\n setItems(manager.items);\r\n }\r\n }, [manager]);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleChanged = (args: StatusBarItemsChangedArgs) => {\r\n setItems(args.items);\r\n };\r\n manager.onItemsChanged.addListener(handleChanged);\r\n return () => {\r\n manager.onItemsChanged.removeListener(handleChanged);\r\n };\r\n }, [manager]);\r\n return items;\r\n};\r\n"]}
|
|
@@ -33,7 +33,8 @@ function Indicator(props) {
|
|
|
33
33
|
const target = React.useRef(null);
|
|
34
34
|
const icon = React.useMemo(() => iconSpec !== null && iconSpec !== void 0 ? iconSpec : iconName, [iconSpec, iconName]);
|
|
35
35
|
const title = React.useMemo(() => toolTip !== null && toolTip !== void 0 ? toolTip : label, [toolTip, label]);
|
|
36
|
-
const classNames = (0, classnames_1.default)("uifw-footer-label-left", "uifw-footer-indicator", inFooter && "nz-footer-mode", hasClickAction && "uifw-footer-action", labelSide === appui_abstract_1.StatusBarLabelSide.Right && "uifw-footer-label-reversed",
|
|
36
|
+
const classNames = (0, classnames_1.default)("uifw-footer-label-left", "uifw-footer-indicator", inFooter && "nz-footer-mode", hasClickAction && "uifw-footer-action", labelSide === appui_abstract_1.StatusBarLabelSide.Right && "uifw-footer-label-reversed", // eslint-disable-line deprecation/deprecation
|
|
37
|
+
className);
|
|
37
38
|
return (React.createElement(React.Fragment, null,
|
|
38
39
|
React.createElement("div", { ref: target, role: "button", tabIndex: -1, className: classNames, title: title, style: style, onClick: handleOnIndicatorClick },
|
|
39
40
|
isLabelVisible && label && React.createElement("span", { className: "nz-label" }, appui_abstract_1.ConditionalStringValue.getValue(label)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,2CAAoC;AACpC,+BAA+B;AAC/B,0DAAmF;AACnF,kDAAgE;AAChE,kEAAgF;AAgChF;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAqB;IAC7C,mDAAmD;IACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxJ,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,IAAI,MAAM,EAAE;YACV,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;SACpB;QACD,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,wBAAwB,EAAE,uBAAuB,EACjD,QAAQ,IAAI,gBAAgB,EAC5B,cAAc,IAAI,oBAAoB,EACtC,SAAS,KAAK,mCAAkB,CAAC,KAAK,IAAI,4BAA4B,
|
|
1
|
+
{"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,2CAAoC;AACpC,+BAA+B;AAC/B,0DAAmF;AACnF,kDAAgE;AAChE,kEAAgF;AAgChF;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAqB;IAC7C,mDAAmD;IACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxJ,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,IAAI,MAAM,EAAE;YACV,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;SACpB;QACD,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,wBAAwB,EAAE,uBAAuB,EACjD,QAAQ,IAAI,gBAAgB,EAC5B,cAAc,IAAI,oBAAoB,EACtC,SAAS,KAAK,mCAAkB,CAAC,KAAK,IAAI,4BAA4B,EAAE,8CAA8C;IACtH,SAAS,CAAC,CAAC;IACb,OAAO,CACL;QAEE,6BAAK,GAAG,EAAE,MAAM,EACd,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,EAC1B,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,sBAAsB;YAE9B,cAAc,IAAI,KAAK,IAAI,8BAAM,SAAS,EAAC,UAAU,IAAE,uCAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;YACrG,IAAI,IAAI,6BAAK,SAAS,EAAC,qBAAqB;gBAAC,oBAAC,iBAAI,IAAC,QAAQ,EAAE,IAAI,GAAI,CAAM,CACxE;QACL,MAAM,IAAI,oBAAC,gCAAW,IAAC,WAAW,EAAE,WAAW,EAC9C,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,MAAM,IACb,MAAM,CACK,CACb,CACJ,CAAC;AACJ,CAAC;AA1CD,8BA0CC","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 StatusBar\r\n */\r\n\r\nimport \"./Indicator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ConditionalStringValue, StatusBarLabelSide } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconSpec } from \"@itwin/core-react\";\r\nimport { FooterPopup, FooterPopupContentType } from \"@itwin/appui-layout-react\";\r\n\r\n/** Properties of [[Indicator]] component. */\r\ninterface IndicatorProps extends CommonProps {\r\n /** Label of balloon icon. @deprecated in 3.0. use label */\r\n balloonLabel?: string;\r\n /** Dialog to display in popup when indicator is clicked. */\r\n dialog?: React.ReactChild;\r\n /** Icon to use in the footer. @deprecated in 3.0. use iconSpec */\r\n iconName?: string;\r\n /** specification for Icon, overrides iconName specification */\r\n iconSpec?: IconSpec;\r\n /** Describes if the indicator label is visible. */\r\n isLabelVisible?: boolean;\r\n /** Indicator label. */\r\n label?: string;\r\n /** Side to display label. */\r\n labelSide?: StatusBarLabelSide; // eslint-disable-line deprecation/deprecation\r\n /** Function called when indicator is clicked. */\r\n onClick?: () => void;\r\n /** If dialog prop is set, used to determine initial state. */\r\n opened?: boolean;\r\n /** Describes whether the footer is in footer or widget mode.\r\n * @deprecated in 3.3. In upcoming version, widget mode will be removed. Consider this parameter to always be true.\r\n */\r\n isInFooterMode?: boolean;\r\n /** Tooltip text if not specified label is used */\r\n toolTip?: string;\r\n /** ContentType is used to determine color of popup arrow. If not set defaults to FooterPopupContentType.Dialog */\r\n contentType?: FooterPopupContentType; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @deprecated in 3.6. Use [[StatusBarIndicator]] or [[StatusBarLabelIndicator]] instead.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const { className, contentType, dialog, iconName, iconSpec, isInFooterMode, isLabelVisible, label, labelSide, onClick, opened, style, toolTip } = props;\r\n const hasClickAction = React.useMemo(() => !!onClick || !!dialog, [dialog, onClick]);\r\n const [isOpen, setIsOpen] = React.useState(!!opened);\r\n const handleOnIndicatorClick = React.useCallback(() => {\r\n if (dialog) {\r\n setIsOpen(!isOpen);\r\n }\r\n onClick && onClick();\r\n }, [dialog, isOpen, onClick]);\r\n const inFooter = React.useMemo(() => false === isInFooterMode ? false : true, [isInFooterMode]);\r\n const target = React.useRef<HTMLDivElement>(null);\r\n const icon = React.useMemo(() => iconSpec ?? iconName, [iconSpec, iconName]);\r\n const title = React.useMemo(() => toolTip ?? label, [toolTip, label]);\r\n const classNames = classnames(\r\n \"uifw-footer-label-left\", \"uifw-footer-indicator\",\r\n inFooter && \"nz-footer-mode\",\r\n hasClickAction && \"uifw-footer-action\",\r\n labelSide === StatusBarLabelSide.Right && \"uifw-footer-label-reversed\", // eslint-disable-line deprecation/deprecation\r\n className);\r\n return (\r\n <>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\r\n <div ref={target}\r\n role=\"button\" tabIndex={-1}\r\n className={classNames}\r\n title={title}\r\n style={style}\r\n onClick={handleOnIndicatorClick}\r\n >\r\n {isLabelVisible && label && <span className=\"nz-label\">{ConditionalStringValue.getValue(label)}</span>}\r\n {icon && <div className=\"uifw-indicator-icon\"><Icon iconSpec={icon} /></div>}\r\n </div>\r\n {dialog && <FooterPopup contentType={contentType} // eslint-disable-line deprecation/deprecation\r\n target={target.current}\r\n onClose={() => setIsOpen(false)}\r\n isOpen={isOpen}>\r\n {dialog}\r\n </FooterPopup>}\r\n </>\r\n );\r\n}\r\n"]}
|
|
@@ -32,7 +32,7 @@ interface ToolbarGroupItemState {
|
|
|
32
32
|
/** Group Item React component.
|
|
33
33
|
* @internal
|
|
34
34
|
*/
|
|
35
|
-
export declare class
|
|
35
|
+
export declare class ToolbarGroupItemComponent extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {
|
|
36
36
|
/** @internal */
|
|
37
37
|
readonly state: Readonly<ToolbarGroupItemState>;
|
|
38
38
|
private _trayIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupButtonItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,YAAY,EAAmD,WAAW,EAAE,kBAAkB,EAC/F,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAyBpF,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,SAAS,EAAE,WAAW,CAAC;CACxB;AACD,aAAK,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEnD,UAAU,8BAA+B,SAAQ,WAAW;IAC1D,SAAS,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"GroupButtonItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,YAAY,EAAmD,WAAW,EAAE,kBAAkB,EAC/F,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAyBpF,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,WAAW,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClC,SAAS,EAAE,WAAW,CAAC;CACxB;AACD,aAAK,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEnD,UAAU,8BAA+B,SAAQ,WAAW;IAC1D,SAAS,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK,CAAC,SAAS,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;IACnH,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAChE,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,IAAI,CAAqC;gBAErC,KAAK,EAAE,8BAA8B;IAYjC,iBAAiB;IAKjB,oBAAoB;IAKpC,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IA2BR,kBAAkB,CAAC,SAAS,EAAE,8BAA8B,EAAE,UAAU,EAAE,qBAAqB;IAS/G,OAAO,KAAK,KAAK,GAOhB;IAED,OAAO,CAAC,OAAO;IASC,MAAM,IAAI,KAAK,CAAC,SAAS;IA8DzC,OAAO,CAAC,gBAAgB,CAOtB;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,2BAA2B,CAGjC;IAEF,OAAO,CAAC,kCAAkC,CAExC;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAGF,OAAO,CAAC,yBAAyB,CAI/B;IAGF,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAsGb,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS;IAUtE,OAAO,CAAC,WAAW,CASjB;IAEF,OAAO,CAAC,oBAAoB,CAO1B;CACH;AA4BD;;GAEG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,eAQtD"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module Toolbar
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.GroupButtonItem = exports.
|
|
10
|
+
exports.GroupButtonItem = exports.ToolbarGroupItemComponent = void 0;
|
|
11
11
|
const classnames_1 = require("classnames");
|
|
12
12
|
const React = require("react");
|
|
13
13
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
@@ -30,7 +30,7 @@ const ItemWithDragInteraction = (0, appui_layout_react_1.withDragInteraction)(ap
|
|
|
30
30
|
/** Group Item React component.
|
|
31
31
|
* @internal
|
|
32
32
|
*/
|
|
33
|
-
class
|
|
33
|
+
class ToolbarGroupItemComponent extends React.Component {
|
|
34
34
|
constructor(props) {
|
|
35
35
|
super(props);
|
|
36
36
|
this._trayIndex = 0;
|
|
@@ -295,7 +295,7 @@ class ToolbarGroupItem extends React.Component {
|
|
|
295
295
|
return undefined;
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
|
-
exports.
|
|
298
|
+
exports.ToolbarGroupItemComponent = ToolbarGroupItemComponent;
|
|
299
299
|
/** @internal */
|
|
300
300
|
const getFirstItem = (groupItem) => {
|
|
301
301
|
for (const item of groupItem.items) {
|
|
@@ -323,7 +323,7 @@ const getFirstItemId = (groupItem) => {
|
|
|
323
323
|
* @internal
|
|
324
324
|
*/
|
|
325
325
|
function GroupButtonItem(props) {
|
|
326
|
-
return (React.createElement(
|
|
326
|
+
return (React.createElement(ToolbarGroupItemComponent, { groupItem: props.item, key: props.item.id, onItemExecuted: props.onItemExecuted }));
|
|
327
327
|
}
|
|
328
328
|
exports.GroupButtonItem = GroupButtonItem;
|
|
329
329
|
//# sourceMappingURL=GroupButtonItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.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 classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\r\n} from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n 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 { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\n\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\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// ToolbarGroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n trayId?: string;\r\n item: ActionButton | GroupButton;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title?: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItem: GroupButton;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface ToolbarGroupItemComponentProps extends CommonProps {\r\n groupItem: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\ninterface ToolbarGroupItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItem: GroupButton;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n isEnabled: boolean;\r\n isPressed: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class ToolbarGroupItem extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<ToolbarGroupItemState>;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: ToolbarGroupItemComponentProps) {\r\n super(props);\r\n\r\n const state = this.getGroupItemState(this.props);\r\n // TODO: The defaultActiveItemId should come from session storage\r\n const activeItemId = getFirstItemId(this.props.groupItem);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\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 FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\r\n const groupItem = props.groupItem;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItem(groupItem, trayId, trays);\r\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItem,\r\n isEnabled: !isDisabled,\r\n isPressed: false,\r\n isVisible: !isHidden,\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 processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n groupItem.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const toolGroupItem: ToolGroupItem = {\r\n trayId: itemTrayId,\r\n item,\r\n };\r\n\r\n items.set(item.id, toolGroupItem);\r\n this.processGroupItem(item, itemTrayId, trays);\r\n } else {\r\n const toolItem: ToolGroupItem = { item };\r\n items.set(item.id, toolItem);\r\n }\r\n });\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\r\n groupItem,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\r\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\r\n // istanbul ignore else\r\n if (this.props.groupItem !== prevProps.groupItem)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\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 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 // istanbul ignore next\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItem, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\r\n\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.groupItem.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 direction={direction}\r\n icon={ToolbarHelper.getIconReactNode(activeItem)}\r\n isActive={this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleDragInteractionClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n onOpenPanel={this._handleOpenPanel}\r\n title={ConditionalStringValue.getValue(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 icon={ToolbarHelper.getIconReactNode(groupItem)}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n title={ConditionalStringValue.getValue(this.state.groupItem.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 && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\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 // istanbul ignore next\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n if (!this._closeOnPanelOpened)\r\n return;\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.groupItem.items.find((item) => itemKey === item.id);\r\n // istanbul ignore else\r\n if (childItem) {\r\n // istanbul ignore else\r\n if (ToolbarItemUtilities.isActionButton(childItem)) {\r\n childItem.execute();\r\n if (this.props.onItemExecuted)\r\n this.props.onItemExecuted(childItem);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n\r\n private getItemsInColumn(numTotalItems: number): number {\r\n if (numTotalItems <= 6)\r\n return numTotalItems;\r\n if (numTotalItems <= 24)\r\n return Math.ceil(numTotalItems / 2);\r\n if (numTotalItems <= 36)\r\n return Math.ceil(numTotalItems / 3);\r\n return Math.ceil(numTotalItems / 4);\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 items = [...tray.items.keys()];\r\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\r\n\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 tgItem = tray.items.get(itemKey)!;\r\n const item = tgItem.item;\r\n const icon = ToolbarHelper.getIconReactNode(item);\r\n const isVisible = true;\r\n const isActive = itemKey === this.state.activeToolId;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (tgItem.trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!!item.isDisabled}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!!item.isDisabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n onClick={\r\n // istanbul ignore next\r\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\r\n }\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 : /* istanbul ignore next */ 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): ActionButton | GroupButton | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\r\n if (item)\r\n return item;\r\n }\r\n // istanbul ignore next\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] : /* istanbul ignore next */ 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/** @internal */\r\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\r\n for (const item of groupItem.items) {\r\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\r\n\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n const firstItem = getFirstItem(item);\r\n // istanbul ignore else\r\n if (firstItem)\r\n return firstItem;\r\n // istanbul ignore next\r\n continue;\r\n }\r\n if (!isHidden && !isDisabled)\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nconst getFirstItemId = (groupItem: GroupButton): string => {\r\n const item = getFirstItem(groupItem);\r\n return item ? item.id : \"\";\r\n};\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface GroupButtonProps {\r\n item: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** Group Button React component\r\n * @internal\r\n */\r\nexport function GroupButtonItem(props: GroupButtonProps) {\r\n return (\r\n <ToolbarGroupItem\r\n groupItem={props.item}\r\n key={props.item.id}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"GroupButtonItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/GroupButtonItem.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 classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n ActionButton, ConditionalBooleanValue, ConditionalStringValue, GroupButton, OnItemExecutedFunc, ToolbarItemUtilities,\r\n} from \"@itwin/appui-abstract\";\r\nimport { BadgeUtilities, CommonProps, withOnOutsideClick } from \"@itwin/core-react\";\r\nimport {\r\n 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 { UiFramework } from \"../UiFramework\";\r\nimport { PropsHelper } from \"../utils/PropsHelper\";\r\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\r\nimport { ToolbarHelper } from \"./ToolbarHelper\";\r\n\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\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// ToolbarGroupItem component, props & state\r\n// -----------------------------------------------------------------------------\r\n\r\ninterface ToolGroupItem {\r\n trayId?: string;\r\n item: ActionButton | GroupButton;\r\n}\r\n\r\ninterface ToolGroupTray {\r\n title?: string;\r\n items: Map<string, ToolGroupItem>;\r\n groupItem: GroupButton;\r\n}\r\ntype ToolGroupTrayMap = Map<string, ToolGroupTray>;\r\n\r\ninterface ToolbarGroupItemComponentProps extends CommonProps {\r\n groupItem: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\ninterface ToolbarGroupItemState {\r\n activeItemId: string; // One of group items id.\r\n activeToolId: string; // FrontstageManager.activeToolId\r\n groupItem: GroupButton;\r\n trayId: string;\r\n backTrays: ReadonlyArray<string>;\r\n trays: ToolGroupTrayMap;\r\n isEnabled: boolean;\r\n isPressed: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\n/** Group Item React component.\r\n * @internal\r\n */\r\nexport class ToolbarGroupItemComponent extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {\r\n /** @internal */\r\n public override readonly state: Readonly<ToolbarGroupItemState>;\r\n private _trayIndex = 0;\r\n private _closeOnPanelOpened = true;\r\n private _ref = React.createRef<HTMLDivElement>();\r\n\r\n constructor(props: ToolbarGroupItemComponentProps) {\r\n super(props);\r\n\r\n const state = this.getGroupItemState(this.props);\r\n // TODO: The defaultActiveItemId should come from session storage\r\n const activeItemId = getFirstItemId(this.props.groupItem);\r\n this.state = {\r\n ...state,\r\n activeItemId,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\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 FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n }\r\n\r\n private getGroupItemState(props: ToolbarGroupItemComponentProps) {\r\n const groupItem = props.groupItem;\r\n // Separate into trays\r\n const trays = new Map<string, ToolGroupTray>();\r\n const trayId = this.resetTrayId();\r\n\r\n this.processGroupItem(groupItem, trayId, trays);\r\n const isHidden = ConditionalBooleanValue.getValue(groupItem.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(groupItem.isDisabled);\r\n\r\n return {\r\n activeToolId: FrontstageManager.activeToolId,\r\n groupItem,\r\n isEnabled: !isDisabled,\r\n isPressed: false,\r\n isVisible: !isHidden,\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 processGroupItem(groupItem: GroupButton, trayId: string, trays: ToolGroupTrayMap): void {\r\n // Separate into column items\r\n const items = new Map<string, ToolGroupItem>();\r\n groupItem.items.forEach((item) => {\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n this._trayIndex++;\r\n const itemTrayId = this.generateTrayId();\r\n const toolGroupItem: ToolGroupItem = {\r\n trayId: itemTrayId,\r\n item,\r\n };\r\n\r\n items.set(item.id, toolGroupItem);\r\n this.processGroupItem(item, itemTrayId, trays);\r\n } else {\r\n const toolItem: ToolGroupItem = { item };\r\n items.set(item.id, toolItem);\r\n }\r\n });\r\n\r\n trays.set(trayId, {\r\n items,\r\n title: ConditionalStringValue.getValue(groupItem.panelLabel),\r\n groupItem,\r\n });\r\n }\r\n\r\n public override componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState) {\r\n if (!PropsHelper.isShallowEqual(this.props, prevProps)) {\r\n // istanbul ignore else\r\n if (this.props.groupItem !== prevProps.groupItem)\r\n Logger.logTrace(UiFramework.loggerCategory(this), `Different ToolbarGroupItem for same groupId of ${this.state.groupItem.id}`);\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 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 // istanbul ignore next\r\n if (!activeItem)\r\n return null;\r\n\r\n const { groupItem, className, ...props } = this.props;\r\n const classNames = classnames(\r\n className,\r\n );\r\n const badge = BadgeUtilities.getComponentForBadgeType(groupItem.badgeType); // eslint-disable-line deprecation/deprecation\r\n\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.groupItem.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 direction={direction}\r\n icon={ToolbarHelper.getIconReactNode(activeItem)}\r\n isActive={this.state.activeToolId === this.state.activeItemId}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleDragInteractionClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n onOpenPanel={this._handleOpenPanel}\r\n title={ConditionalStringValue.getValue(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 icon={ToolbarHelper.getIconReactNode(groupItem)}\r\n isDisabled={!this.state.isEnabled}\r\n onClick={this._handleClick}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n title={ConditionalStringValue.getValue(this.state.groupItem.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 && ToolbarItemUtilities.isActionButton(activeItem) && activeItem.execute();\r\n };\r\n\r\n private _handleDragInteractionOutsideClick = (_e: MouseEvent) => {\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 // istanbul ignore next\r\n private _handleToolActivatedEvent = ({ toolId }: ToolActivatedEventArgs) => {\r\n this.setState({\r\n activeToolId: toolId,\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n if (!this._closeOnPanelOpened)\r\n return;\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.groupItem.items.find((item) => itemKey === item.id);\r\n // istanbul ignore else\r\n if (childItem) {\r\n // istanbul ignore else\r\n if (ToolbarItemUtilities.isActionButton(childItem)) {\r\n childItem.execute();\r\n if (this.props.onItemExecuted)\r\n this.props.onItemExecuted(childItem);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n\r\n private getItemsInColumn(numTotalItems: number): number {\r\n if (numTotalItems <= 6)\r\n return numTotalItems;\r\n if (numTotalItems <= 24)\r\n return Math.ceil(numTotalItems / 2);\r\n if (numTotalItems <= 36)\r\n return Math.ceil(numTotalItems / 3);\r\n return Math.ceil(numTotalItems / 4);\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 items = [...tray.items.keys()];\r\n const itemsInColumn = this.getItemsInColumn(items.length); // tray.groupItem.itemsInColumn;\r\n\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 tgItem = tray.items.get(itemKey)!;\r\n const item = tgItem.item;\r\n const icon = ToolbarHelper.getIconReactNode(item);\r\n const isVisible = true;\r\n const isActive = itemKey === this.state.activeToolId;\r\n const badge = BadgeUtilities.getComponentForBadgeType(item.badgeType);\r\n\r\n if (tgItem.trayId) {\r\n return (\r\n isVisible &&\r\n <GroupToolExpander\r\n isDisabled={!!item.isDisabled}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n icon={icon}\r\n badge={badge}\r\n onClick={() => this._handleExpanderClick(tgItem.trayId!)}\r\n onPointerUp={activateOnPointerUp ? () => this._handleExpanderClick(tgItem.trayId!) : undefined}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n isVisible &&\r\n <GroupTool\r\n isDisabled={!!item.isDisabled}\r\n isActive={isActive}\r\n key={itemKey}\r\n label={ConditionalStringValue.getValue(item.label)}\r\n onClick={\r\n // istanbul ignore next\r\n () => this.handleToolGroupItemClicked(this.state.trayId, itemKey)\r\n }\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 : /* istanbul ignore next */ 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): ActionButton | GroupButton | undefined {\r\n for (const [, tray] of this.state.trays) {\r\n const item = tray.groupItem.items.find((childItem) => id === childItem.id);\r\n if (item)\r\n return item;\r\n }\r\n // istanbul ignore next\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] : /* istanbul ignore next */ 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/** @internal */\r\nconst getFirstItem = (groupItem: GroupButton): ActionButton | GroupButton | undefined => {\r\n for (const item of groupItem.items) {\r\n const isHidden = ConditionalBooleanValue.getValue(item.isHidden);\r\n const isDisabled = ConditionalBooleanValue.getValue(item.isDisabled);\r\n\r\n if (ToolbarItemUtilities.isGroupButton(item)) {\r\n const firstItem = getFirstItem(item);\r\n // istanbul ignore else\r\n if (firstItem)\r\n return firstItem;\r\n // istanbul ignore next\r\n continue;\r\n }\r\n if (!isHidden && !isDisabled)\r\n return item;\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nconst getFirstItemId = (groupItem: GroupButton): string => {\r\n const item = getFirstItem(groupItem);\r\n return item ? item.id : \"\";\r\n};\r\n\r\n/** Action button props\r\n * @internal\r\n */\r\ninterface GroupButtonProps {\r\n item: GroupButton;\r\n onItemExecuted?: OnItemExecutedFunc;\r\n}\r\n\r\n/** Group Button React component\r\n * @internal\r\n */\r\nexport function GroupButtonItem(props: GroupButtonProps) {\r\n return (\r\n <ToolbarGroupItemComponent\r\n groupItem={props.item}\r\n key={props.item.id}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n );\r\n}\r\n"]}
|
|
@@ -218,7 +218,7 @@ function ToolbarComposer(props) {
|
|
|
218
218
|
const addonSyncIdsOfInterest = React.useMemo(() => appui_abstract_1.ToolbarItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
|
|
219
219
|
useToolbarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);
|
|
220
220
|
const toolbarItems = React.useMemo(() => combineItems(defaultItems, addonItems), [defaultItems, addonItems]);
|
|
221
|
-
const toolbarOrientation = orientation === appui_abstract_1.ToolbarOrientation.Horizontal ? core_react_1.Orientation.Horizontal : core_react_1.Orientation.Vertical;
|
|
221
|
+
const toolbarOrientation = orientation === appui_abstract_1.ToolbarOrientation.Horizontal ? core_react_1.Orientation.Horizontal : core_react_1.Orientation.Vertical; // eslint-disable-line deprecation/deprecation
|
|
222
222
|
// eslint-disable-next-line deprecation/deprecation
|
|
223
223
|
const expandsTo = toolbarOrientation === core_react_1.Orientation.Horizontal ? appui_layout_react_1.Direction.Bottom : usage === appui_abstract_1.ToolbarUsage.ViewNavigation ? appui_layout_react_1.Direction.Left : appui_layout_react_1.Direction.Right;
|
|
224
224
|
// eslint-disable-next-line deprecation/deprecation
|