@itwin/appui-react 3.0.0-dev.173 → 3.0.0-dev.174

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/LICENSE.md +1 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +2 -0
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +8 -0
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/configurableui/state.d.ts +3 -0
  7. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/configurableui/state.js +7 -2
  9. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  10. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  11. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +26 -17
  13. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  14. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +24 -0
  15. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/statusfields/Indicator.js +1 -1
  17. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  18. package/lib/cjs/appui-react/statusfields/Indicator.scss +0 -9
  19. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -10
  20. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +14 -35
  22. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  23. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +5 -9
  24. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  25. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +9 -19
  26. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  27. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +5 -9
  28. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +36 -49
  30. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  31. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -0
  32. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/uistate/AppUiSettings.js +4 -0
  34. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  35. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +94 -2
  36. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/widget-panels/Frontstage.js +10 -2
  38. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  39. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  40. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +0 -1
  42. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  43. package/lib/esm/appui-react/UiFramework.d.ts +2 -0
  44. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  45. package/lib/esm/appui-react/UiFramework.js +8 -0
  46. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  47. package/lib/esm/appui-react/configurableui/state.d.ts +3 -0
  48. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  49. package/lib/esm/appui-react/configurableui/state.js +7 -2
  50. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  51. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  52. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  53. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +26 -17
  54. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  55. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +24 -0
  56. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  57. package/lib/esm/appui-react/statusfields/Indicator.js +1 -1
  58. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  59. package/lib/esm/appui-react/statusfields/Indicator.scss +0 -9
  60. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -10
  61. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  62. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +15 -36
  63. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  64. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +5 -9
  65. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  66. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +10 -20
  67. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  68. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +5 -9
  69. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  70. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +37 -50
  71. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  72. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -0
  73. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  74. package/lib/esm/appui-react/uistate/AppUiSettings.js +4 -0
  75. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  76. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +94 -2
  77. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  78. package/lib/esm/appui-react/widget-panels/Frontstage.js +10 -2
  79. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  80. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  81. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  82. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +0 -1
  83. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  84. package/lib/public/locales/en/UiFramework.json +3 -1
  85. package/package.json +34 -34
@@ -31,7 +31,7 @@ export function Indicator(props) {
31
31
  const classNames = classnames("uifw-footer-label-left", "uifw-footer-indicator", inFooter && "nz-footer-mode", hasClickAction && "uifw-footer-action", labelSide === StatusBarLabelSide.Right && "uifw-footer-label-reversed", className);
32
32
  return (React.createElement(React.Fragment, null,
33
33
  React.createElement("div", { ref: target, role: "button", tabIndex: -1, className: classNames, title: title, style: style, onClick: handleOnIndicatorClick },
34
- isLabelVisible && label && React.createElement("span", null, ConditionalStringValue.getValue(label)),
34
+ isLabelVisible && label && React.createElement("span", { className: "nz-label" }, ConditionalStringValue.getValue(label)),
35
35
  icon && React.createElement("div", { className: "uifw-indicator-icon" },
36
36
  React.createElement(Icon, { iconSpec: icon }))),
37
37
  dialog && React.createElement(FooterPopup, { contentType: contentType, target: target.current, onClose: () => setIsOpen(false), isOpen: isOpen }, dialog)));
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.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 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 } 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 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 use iconSpec */\r\n iconName?: string;\r\n /** specification for Icon, overrides iconName specification */\r\n iconSpec?: string | ConditionalStringValue;\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;\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 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;\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\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\",\r\n className);\r\n return (\r\n\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>{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}\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"]}
1
+ {"version":3,"file":"Indicator.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/Indicator.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 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 } 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 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 use iconSpec */\r\n iconName?: string;\r\n /** specification for Icon, overrides iconName specification */\r\n iconSpec?: string | ConditionalStringValue;\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;\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 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;\r\n}\r\n\r\n/** General-purpose [[Footer]] indicator. Shows an icon and supports an optional popup dialog.\r\n * @beta\r\n */\r\nexport function Indicator(props: IndicatorProps) {\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\",\r\n className);\r\n return (\r\n\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}\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"]}
@@ -110,15 +110,6 @@
110
110
  padding-right: $nz-footer-indicator-horizontal-padding-small;
111
111
  }
112
112
 
113
- >.nz-label {
114
- margin-right: $space-between-text-and-icon;
115
- display: none;
116
-
117
- &.nz-is-visible {
118
- display: block;
119
- }
120
- }
121
-
122
113
  >.nz-balloon-container {
123
114
  height: 100%;
124
115
  position: relative;
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module StandardUiItemsProvider
3
3
  */
4
- import { CommonStatusBarItem, CommonToolbarItem, ToolbarOrientation, ToolbarUsage, UiItemsProvider } from "@itwin/appui-abstract";
4
+ import { BaseUiItemsProvider, CommonStatusBarItem, CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from "@itwin/appui-abstract";
5
5
  /**
6
6
  * Defines options that may be set in frontstage app data to control what group priorities
7
7
  * to use for each tool button that can be added by this extension. Defining groupIds is optional
@@ -65,10 +65,8 @@ export interface DefaultContentTools {
65
65
  * Provide standard tools for the ContentManipulationWidgetComposer.
66
66
  * @public
67
67
  */
68
- export declare class StandardContentToolsProvider implements UiItemsProvider {
69
- private _providerId;
68
+ export declare class StandardContentToolsProvider extends BaseUiItemsProvider {
70
69
  private defaultContextTools?;
71
- private isSupportedStage?;
72
70
  /**
73
71
  * static function to register the StandardContentToolsProvider
74
72
  * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want
@@ -78,11 +76,9 @@ export declare class StandardContentToolsProvider implements UiItemsProvider {
78
76
  * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and
79
77
  * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.
80
78
  */
81
- static register(providerId: string, defaultContextTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean): void;
82
- static unregister(providerId: string): void;
83
- constructor(_providerId: string, defaultContextTools?: DefaultContentTools | undefined, isSupportedStage?: ((stageId: string, stageUsage: string, stageAppData?: any) => boolean) | undefined);
84
- get id(): string;
85
- provideToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[];
86
- provideStatusBarItems(stageId: string, stageUsage: string, stageAppData?: any): CommonStatusBarItem[];
79
+ static register(providerId: string, defaultContextTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean): StandardContentToolsProvider;
80
+ constructor(providerId: string, defaultContextTools?: DefaultContentTools | undefined, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean);
81
+ provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[];
82
+ provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[];
87
83
  }
88
84
  //# sourceMappingURL=StandardContentToolsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StandardContentToolsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAgC,kBAAkB,EAAE,YAAY,EAAkB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQhL;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE;YACT,0BAA0B,CAAC,EAAE,MAAM,CAAC;YACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;QACF,UAAU,CAAC,EAAE;YACX,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,4FAA4F;QAC5F,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,+FAA+F;QAC/F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,sDAAsD;QACtD,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAeD;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,eAAe;IAsBtD,OAAO,CAAC,WAAW;IAAU,OAAO,CAAC,mBAAmB,CAAC;IAAuB,OAAO,CAAC,gBAAgB,CAAC;IApBrH;;;;;;;;OAQG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;WAO/J,UAAU,CAAC,UAAU,EAAE,MAAM;gBAIvB,WAAW,EAAE,MAAM,EAAU,mBAAmB,CAAC,iCAAqB,EAAU,gBAAgB,CAAC,aAAY,MAAM,cAAc,MAAM,iBAAiB,GAAG,KAAK,OAAO,aAAA;IAE3L,IAAW,EAAE,IAAI,MAAM,CAA6B;IAE7C,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;IAuD3K,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAuB7G"}
1
+ {"version":3,"file":"StandardContentToolsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAoB,kBAAkB,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AAQxK;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE;YACT,0BAA0B,CAAC,EAAE,MAAM,CAAC;YACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;QACF,UAAU,CAAC,EAAE;YACX,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,4FAA4F;QAC5F,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,+FAA+F;QAC/F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,sDAAsD;QACtD,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAeD;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,mBAAmB;IAmBnC,OAAO,CAAC,mBAAmB,CAAC;IAlB5D;;;;;;;;OAQG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;gBASjK,UAAU,EAAE,MAAM,EAAU,mBAAmB,CAAC,iCAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAI1J,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;IAgDrL,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAWjI"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as React from "react";
9
9
  import { ViewClipByPlaneTool } from "@itwin/core-frontend";
10
- import { StageUsage, StatusBarSection, ToolbarOrientation, ToolbarUsage, UiItemsManager } from "@itwin/appui-abstract";
10
+ import { BaseUiItemsProvider, StatusBarSection, ToolbarOrientation, ToolbarUsage, UiItemsManager } from "@itwin/appui-abstract";
11
11
  import { SelectionContextToolDefinitions } from "../selection/SelectionContextItemDef";
12
12
  import { StatusBarItemUtilities } from "../statusbar/StatusBarItemUtilities";
13
13
  import { withStatusFieldProps } from "../statusbar/withStatusFieldProps";
@@ -28,11 +28,10 @@ function getGroupPriority(potentialId, defaultValue) {
28
28
  * Provide standard tools for the ContentManipulationWidgetComposer.
29
29
  * @public
30
30
  */
31
- export class StandardContentToolsProvider {
32
- constructor(_providerId, defaultContextTools, isSupportedStage) {
33
- this._providerId = _providerId;
31
+ export class StandardContentToolsProvider extends BaseUiItemsProvider {
32
+ constructor(providerId, defaultContextTools, isSupportedStage) {
33
+ super(providerId, isSupportedStage);
34
34
  this.defaultContextTools = defaultContextTools;
35
- this.isSupportedStage = isSupportedStage;
36
35
  }
37
36
  /**
38
37
  * static function to register the StandardContentToolsProvider
@@ -44,25 +43,16 @@ export class StandardContentToolsProvider {
44
43
  * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.
45
44
  */
46
45
  static register(providerId, defaultContextTools, isSupportedStage) {
47
- UiItemsManager.register(new StandardContentToolsProvider(providerId, defaultContextTools, isSupportedStage));
46
+ const provider = new StandardContentToolsProvider(providerId, defaultContextTools, isSupportedStage);
47
+ UiItemsManager.register(provider);
48
48
  // register core commands not automatically registered
49
49
  ViewClipByPlaneTool.register();
50
+ return provider;
50
51
  }
51
- static unregister(providerId) {
52
- UiItemsManager.unregister(providerId);
53
- }
54
- get id() { return this._providerId; }
55
- provideToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation, stageAppData) {
52
+ provideToolbarButtonItemsInternal(_stageId, _stageUsage, toolbarUsage, toolbarOrientation, stageAppData) {
56
53
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
57
54
  const items = [];
58
- let provideToStage = false;
59
- if (this.isSupportedStage) {
60
- provideToStage = this.isSupportedStage(stageId, stageUsage, stageAppData);
61
- }
62
- else {
63
- provideToStage = (stageUsage === StageUsage.General);
64
- }
65
- if (provideToStage && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {
55
+ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {
66
56
  const clearSelectionGroupPriority = getGroupPriority((_b = (_a = stageAppData === null || stageAppData === void 0 ? void 0 : stageAppData.defaultContentTools) === null || _a === void 0 ? void 0 : _a.horizontal) === null || _b === void 0 ? void 0 : _b.clearSelectionGroupPriority, 10);
67
57
  const overridesGroupPriority = getGroupPriority((_d = (_c = stageAppData === null || stageAppData === void 0 ? void 0 : stageAppData.defaultContentTools) === null || _c === void 0 ? void 0 : _c.horizontal) === null || _d === void 0 ? void 0 : _d.overridesGroupPriority, 20);
68
58
  if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearSelection)
@@ -85,7 +75,7 @@ export class StandardContentToolsProvider {
85
75
  items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));
86
76
  }
87
77
  }
88
- else /* istanbul ignore else */ if (provideToStage && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {
78
+ else /* istanbul ignore else */ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {
89
79
  const selectElementGroupPriority = getGroupPriority((_k = (_j = stageAppData === null || stageAppData === void 0 ? void 0 : stageAppData.defaultContentTools) === null || _j === void 0 ? void 0 : _j.vertical) === null || _k === void 0 ? void 0 : _k.selectElementGroupPriority, 10);
90
80
  const measureGroupPriority = getGroupPriority((_m = (_l = stageAppData === null || stageAppData === void 0 ? void 0 : stageAppData.defaultContentTools) === null || _l === void 0 ? void 0 : _l.vertical) === null || _m === void 0 ? void 0 : _m.measureGroupPriority, 10);
91
81
  const selectionGroupPriority = getGroupPriority((_p = (_o = stageAppData === null || stageAppData === void 0 ? void 0 : stageAppData.defaultContentTools) === null || _o === void 0 ? void 0 : _o.vertical) === null || _p === void 0 ? void 0 : _p.selectionGroupPriority, 10);
@@ -98,24 +88,13 @@ export class StandardContentToolsProvider {
98
88
  }
99
89
  return items;
100
90
  }
101
- provideStatusBarItems(stageId, stageUsage, stageAppData) {
91
+ provideStatusBarItemsInternal(_stageId, _stageUsage, _stageAppData) {
102
92
  var _a, _b;
103
93
  const statusBarItems = [];
104
- let provideToStage = false;
105
- // istanbul ignore else
106
- if (this.isSupportedStage) {
107
- provideToStage = this.isSupportedStage(stageId, stageUsage, stageAppData);
108
- }
109
- else {
110
- provideToStage = (stageUsage === StageUsage.General);
111
- }
112
- // istanbul ignore else
113
- if (provideToStage) {
114
- // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section
115
- if ((_b = (_a = this.defaultContextTools) === null || _a === void 0 ? void 0 : _a.vertical) === null || _b === void 0 ? void 0 : _b.sectionGroup) {
116
- const Sections = withStatusFieldProps(SectionsStatusField);
117
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.Sections", StatusBarSection.Center, 20, React.createElement(Sections, { hideWhenUnused: true })));
118
- }
94
+ // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section
95
+ if ((_b = (_a = this.defaultContextTools) === null || _a === void 0 ? void 0 : _a.vertical) === null || _b === void 0 ? void 0 : _b.sectionGroup) {
96
+ const Sections = withStatusFieldProps(SectionsStatusField);
97
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.Sections", StatusBarSection.Center, 20, React.createElement(Sections, { hideWhenUnused: true })));
119
98
  }
120
99
  return statusBarItems;
121
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StandardContentToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ViewClipByPlaneTool } from \"@itwin/core-frontend\";\r\nimport { CommonStatusBarItem, CommonToolbarItem, StageUsage, StatusBarSection, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { SelectionContextToolDefinitions } from \"../selection/SelectionContextItemDef\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { SectionsStatusField } from \"../statusfields/SectionsField\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines options that may be set in frontstage app data to control what group priorities\r\n * to use for each tool button that can be added by this extension. Defining groupIds is optional\r\n * and only required if use wants to override the default grouping. This application data is statically\r\n * set in the FrontstageProvider.\r\n * @example\r\n * ```\r\n * const applicationData = {\r\n * defaultContentTools: {\r\n * vertical: {\r\n * selectElementGroupPriority: 100,\r\n * measureGroupPriority: 200,\r\n * selectionGroupPriority: 300,\r\n * },\r\n * horizontal: {\r\n * clearSelectionGroupPriority: 100,\r\n * overridesGroupPriority: 200,\r\n * },\r\n * },\r\n * }\r\n *\r\n * ```\r\n * @public\r\n */\r\nexport interface DefaultContentToolsAppData {\r\n defaultContentTools?: {\r\n vertical?: {\r\n selectElementGroupPriority?: number;\r\n measureGroupPriority?: number;\r\n selectionGroupPriority?: number;\r\n };\r\n horizontal?: {\r\n clearSelectionGroupPriority?: number;\r\n overridesGroupPriority?: number;\r\n };\r\n };\r\n}\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultContentTools {\r\n horizontal?: {\r\n clearSelection?: boolean;\r\n clearDisplayOverrides?: boolean;\r\n /** if group then group button is shown to allow user to hide by element, category, model */\r\n hide?: \"group\" | \"element\";\r\n /** if group then group button is shown to allow user to isolate by element, category, model */\r\n isolate?: \"group\" | \"element\";\r\n /** only element is currently support for emphasize */\r\n emphasize?: \"element\";\r\n };\r\n vertical?: {\r\n selectElement?: boolean;\r\n measureGroup?: boolean;\r\n sectionGroup?: boolean;\r\n };\r\n}\r\n\r\nfunction getGroupPriority(potentialId: any, defaultValue: number) {\r\n if (undefined === potentialId)\r\n return defaultValue;\r\n\r\n // istanbul ignore else\r\n if (typeof potentialId === \"number\") {\r\n return potentialId;\r\n }\r\n\r\n // istanbul ignore next\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ContentManipulationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardContentToolsProvider implements UiItemsProvider {\r\n\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools.\r\n * @param defaultContextTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultContextTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n UiItemsManager.register(new StandardContentToolsProvider(providerId, defaultContextTools, isSupportedStage));\r\n\r\n // register core commands not automatically registered\r\n ViewClipByPlaneTool.register();\r\n }\r\n\r\n public static unregister(providerId: string) {\r\n UiItemsManager.unregister(providerId);\r\n }\r\n\r\n constructor(private _providerId: string, private defaultContextTools?: DefaultContentTools, private isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) { }\r\n\r\n public get id(): string { return this._providerId; }\r\n\r\n public provideToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n let provideToStage = false;\r\n\r\n if (this.isSupportedStage) {\r\n provideToStage = this.isSupportedStage(stageId, stageUsage, stageAppData);\r\n } else {\r\n provideToStage = (stageUsage === StageUsage.General);\r\n }\r\n\r\n if (provideToStage && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n const clearSelectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.clearSelectionGroupPriority, 10);\r\n const overridesGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.overridesGroupPriority, 20);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearSelection)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.clearSelectionItemDef, { groupPriority: clearSelectionGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearDisplayOverrides)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, SelectionContextToolDefinitions.clearHideIsolateEmphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.hide) {\r\n if (this.defaultContextTools?.horizontal?.hide === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideSectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.isolate) {\r\n if (this.defaultContextTools?.horizontal?.isolate === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateSelectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.emphasize) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (provideToStage && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n const selectElementGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectElementGroupPriority, 10);\r\n const measureGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.measureGroupPriority, 10);\r\n const selectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectionGroupPriority, 10);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.selectElement)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.selectElementCommand, { groupPriority: selectElementGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.measureGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.measureToolGroup, { groupPriority: measureGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.sectionGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.sectionToolGroup, { groupPriority: selectionGroupPriority }));\r\n }\r\n return items;\r\n }\r\n\r\n public provideStatusBarItems(stageId: string, stageUsage: string, stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n let provideToStage = false;\r\n\r\n // istanbul ignore else\r\n if (this.isSupportedStage) {\r\n provideToStage = this.isSupportedStage(stageId, stageUsage, stageAppData);\r\n } else {\r\n provideToStage = (stageUsage === StageUsage.General);\r\n }\r\n\r\n // istanbul ignore else\r\n if (provideToStage) {\r\n // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section\r\n if (this.defaultContextTools?.vertical?.sectionGroup) {\r\n const Sections = withStatusFieldProps(SectionsStatusField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.Sections\", StatusBarSection.Center, 20, <Sections hideWhenUnused />));\r\n }\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardContentToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ViewClipByPlaneTool } from \"@itwin/core-frontend\";\r\nimport { BaseUiItemsProvider, CommonStatusBarItem, CommonToolbarItem, StatusBarSection, ToolbarOrientation, ToolbarUsage, UiItemsManager } from \"@itwin/appui-abstract\";\r\nimport { SelectionContextToolDefinitions } from \"../selection/SelectionContextItemDef\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { SectionsStatusField } from \"../statusfields/SectionsField\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines options that may be set in frontstage app data to control what group priorities\r\n * to use for each tool button that can be added by this extension. Defining groupIds is optional\r\n * and only required if use wants to override the default grouping. This application data is statically\r\n * set in the FrontstageProvider.\r\n * @example\r\n * ```\r\n * const applicationData = {\r\n * defaultContentTools: {\r\n * vertical: {\r\n * selectElementGroupPriority: 100,\r\n * measureGroupPriority: 200,\r\n * selectionGroupPriority: 300,\r\n * },\r\n * horizontal: {\r\n * clearSelectionGroupPriority: 100,\r\n * overridesGroupPriority: 200,\r\n * },\r\n * },\r\n * }\r\n *\r\n * ```\r\n * @public\r\n */\r\nexport interface DefaultContentToolsAppData {\r\n defaultContentTools?: {\r\n vertical?: {\r\n selectElementGroupPriority?: number;\r\n measureGroupPriority?: number;\r\n selectionGroupPriority?: number;\r\n };\r\n horizontal?: {\r\n clearSelectionGroupPriority?: number;\r\n overridesGroupPriority?: number;\r\n };\r\n };\r\n}\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultContentTools {\r\n horizontal?: {\r\n clearSelection?: boolean;\r\n clearDisplayOverrides?: boolean;\r\n /** if group then group button is shown to allow user to hide by element, category, model */\r\n hide?: \"group\" | \"element\";\r\n /** if group then group button is shown to allow user to isolate by element, category, model */\r\n isolate?: \"group\" | \"element\";\r\n /** only element is currently support for emphasize */\r\n emphasize?: \"element\";\r\n };\r\n vertical?: {\r\n selectElement?: boolean;\r\n measureGroup?: boolean;\r\n sectionGroup?: boolean;\r\n };\r\n}\r\n\r\nfunction getGroupPriority(potentialId: any, defaultValue: number) {\r\n if (undefined === potentialId)\r\n return defaultValue;\r\n\r\n // istanbul ignore else\r\n if (typeof potentialId === \"number\") {\r\n return potentialId;\r\n }\r\n\r\n // istanbul ignore next\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ContentManipulationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardContentToolsProvider extends BaseUiItemsProvider {\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools.\r\n * @param defaultContextTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultContextTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardContentToolsProvider(providerId, defaultContextTools, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n\r\n // register core commands not automatically registered\r\n ViewClipByPlaneTool.register();\r\n return provider;\r\n }\r\n\r\n constructor(providerId: string, private defaultContextTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n public override provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n\r\n if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n const clearSelectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.clearSelectionGroupPriority, 10);\r\n const overridesGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.overridesGroupPriority, 20);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearSelection)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.clearSelectionItemDef, { groupPriority: clearSelectionGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearDisplayOverrides)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, SelectionContextToolDefinitions.clearHideIsolateEmphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.hide) {\r\n if (this.defaultContextTools?.horizontal?.hide === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideSectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.isolate) {\r\n if (this.defaultContextTools?.horizontal?.isolate === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateSelectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.emphasize) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n const selectElementGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectElementGroupPriority, 10);\r\n const measureGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.measureGroupPriority, 10);\r\n const selectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectionGroupPriority, 10);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.selectElement)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.selectElementCommand, { groupPriority: selectElementGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.measureGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.measureToolGroup, { groupPriority: measureGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.sectionGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.sectionToolGroup, { groupPriority: selectionGroupPriority }));\r\n }\r\n return items;\r\n }\r\n\r\n public override provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n\r\n // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section\r\n if (this.defaultContextTools?.vertical?.sectionGroup) {\r\n const Sections = withStatusFieldProps(SectionsStatusField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.Sections\", StatusBarSection.Center, 20, <Sections hideWhenUnused />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module StandardUiItemsProvider
3
3
  */
4
- import { CommonToolbarItem, ToolbarOrientation, ToolbarUsage, UiItemsProvider } from "@itwin/appui-abstract";
4
+ import { BaseUiItemsProvider, CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from "@itwin/appui-abstract";
5
5
  /**
6
6
  * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are
7
7
  * specified then only those tools will be provided to stage.
@@ -24,10 +24,8 @@ export interface DefaultNavigationTools {
24
24
  * Provide standard tools for the ViewNavigationWidgetComposer.
25
25
  * @public
26
26
  */
27
- export declare class StandardNavigationToolsProvider implements UiItemsProvider {
28
- private _providerId;
27
+ export declare class StandardNavigationToolsProvider extends BaseUiItemsProvider {
29
28
  private defaultNavigationTools?;
30
- private isSupportedStage?;
31
29
  /**
32
30
  * static function to register the StandardContentToolsProvider
33
31
  * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want
@@ -37,10 +35,8 @@ export declare class StandardNavigationToolsProvider implements UiItemsProvider
37
35
  * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and
38
36
  * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.
39
37
  */
40
- static register(providerId: string, defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean): void;
41
- constructor(_providerId: string, defaultNavigationTools?: DefaultNavigationTools | undefined, isSupportedStage?: ((stageId: string, stageUsage: string, stageAppData?: any) => boolean) | undefined);
42
- static unregister(providerId: string): void;
43
- get id(): string;
44
- provideToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[];
38
+ static register(providerId: string, defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean): StandardNavigationToolsProvider;
39
+ constructor(providerId: string, defaultNavigationTools?: DefaultNavigationTools | undefined, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean);
40
+ provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, _stageAppData?: any): CommonToolbarItem[];
45
41
  }
46
42
  //# sourceMappingURL=StandardNavigationToolsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StandardNavigationToolsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,kBAAkB,EAAE,YAAY,EAAkB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIzI;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,+BAAgC,YAAW,eAAe;IAczD,OAAO,CAAC,WAAW;IAAU,OAAO,CAAC,sBAAsB,CAAC;IAA0B,OAAO,CAAC,gBAAgB,CAAC;IAb3H;;;;;;;;OAQG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;gBAI/J,WAAW,EAAE,MAAM,EAAU,sBAAsB,CAAC,oCAAwB,EAAU,gBAAgB,CAAC,aAAY,MAAM,cAAc,MAAM,iBAAiB,GAAG,KAAK,OAAO,aAAA;WAEnL,UAAU,CAAC,UAAU,EAAE,MAAM;IAI3C,IAAW,EAAE,IAAI,MAAM,CAA6B;IAE7C,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;CAyCnL"}
1
+ {"version":3,"file":"StandardNavigationToolsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AAIjI;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,mBAAmB;IAgBtC,OAAO,CAAC,sBAAsB,CAAC;IAf/D;;;;;;;;OAQG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;gBAMvK,UAAU,EAAE,MAAM,EAAU,sBAAsB,CAAC,oCAAwB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAIhK,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;CAiCvM"}
@@ -5,18 +5,17 @@
5
5
  /** @packageDocumentation
6
6
  * @module StandardUiItemsProvider
7
7
  */
8
- import { StageUsage, ToolbarOrientation, ToolbarUsage, UiItemsManager } from "@itwin/appui-abstract";
8
+ import { BaseUiItemsProvider, ToolbarOrientation, ToolbarUsage, UiItemsManager } from "@itwin/appui-abstract";
9
9
  import { ToolbarHelper } from "../toolbar/ToolbarHelper";
10
10
  import { CoreTools } from "../tools/CoreToolDefinitions";
11
11
  /**
12
12
  * Provide standard tools for the ViewNavigationWidgetComposer.
13
13
  * @public
14
14
  */
15
- export class StandardNavigationToolsProvider {
16
- constructor(_providerId, defaultNavigationTools, isSupportedStage) {
17
- this._providerId = _providerId;
15
+ export class StandardNavigationToolsProvider extends BaseUiItemsProvider {
16
+ constructor(providerId, defaultNavigationTools, isSupportedStage) {
17
+ super(providerId, isSupportedStage);
18
18
  this.defaultNavigationTools = defaultNavigationTools;
19
- this.isSupportedStage = isSupportedStage;
20
19
  }
21
20
  /**
22
21
  * static function to register the StandardContentToolsProvider
@@ -28,22 +27,13 @@ export class StandardNavigationToolsProvider {
28
27
  * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.
29
28
  */
30
29
  static register(providerId, defaultNavigationTools, isSupportedStage) {
31
- UiItemsManager.register(new StandardNavigationToolsProvider(providerId, defaultNavigationTools, isSupportedStage));
30
+ const provider = new StandardNavigationToolsProvider(providerId, defaultNavigationTools, isSupportedStage);
31
+ UiItemsManager.register(provider);
32
+ return provider;
32
33
  }
33
- static unregister(providerId) {
34
- UiItemsManager.unregister(providerId);
35
- }
36
- get id() { return this._providerId; }
37
- provideToolbarButtonItems(stageId, stageUsage, toolbarUsage, toolbarOrientation, stageAppData) {
34
+ provideToolbarButtonItemsInternal(_stageId, _stageUsage, toolbarUsage, toolbarOrientation, _stageAppData) {
38
35
  const items = [];
39
- let provideToStage = false;
40
- if (this.isSupportedStage) {
41
- provideToStage = this.isSupportedStage(stageId, stageUsage, stageAppData);
42
- }
43
- else {
44
- provideToStage = (stageUsage === StageUsage.General);
45
- }
46
- if (provideToStage && toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Horizontal) {
36
+ if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Horizontal) {
47
37
  if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.rotateView)
48
38
  items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.rotateViewCommand));
49
39
  if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.panView)
@@ -59,7 +49,7 @@ export class StandardNavigationToolsProvider {
59
49
  items.push(ToolbarHelper.createToolbarItemFromItemDef(60, CoreTools.viewRedoCommand));
60
50
  }
61
51
  }
62
- else /* istanbul ignore else */ if (provideToStage && toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Vertical) {
52
+ else if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Vertical) {
63
53
  if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.walk)
64
54
  items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.walkViewCommand));
65
55
  if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.toggleCamera)
@@ -1 +1 @@
1
- {"version":3,"file":"StandardNavigationToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StandardUiItemsProvider\r\n */\r\n\r\nimport { CommonToolbarItem, StageUsage, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from \"@itwin/appui-abstract\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultNavigationTools {\r\n horizontal?: {\r\n rotateView?: boolean;\r\n panView?: boolean;\r\n fitView?: boolean;\r\n windowArea?: boolean;\r\n viewUndoRedo?: boolean;\r\n };\r\n vertical?: {\r\n walk?: boolean;\r\n toggleCamera?: boolean;\r\n };\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ViewNavigationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardNavigationToolsProvider implements UiItemsProvider {\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools\r\n * @param defaultNavigationTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n UiItemsManager.register(new StandardNavigationToolsProvider(providerId, defaultNavigationTools, isSupportedStage));\r\n }\r\n\r\n constructor(private _providerId: string, private defaultNavigationTools?: DefaultNavigationTools, private isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) { }\r\n\r\n public static unregister(providerId: string) {\r\n UiItemsManager.unregister(providerId);\r\n }\r\n\r\n public get id(): string { return this._providerId; }\r\n\r\n public provideToolbarButtonItems(stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n let provideToStage = false;\r\n\r\n if (this.isSupportedStage) {\r\n provideToStage = this.isSupportedStage(stageId, stageUsage, stageAppData);\r\n } else {\r\n provideToStage = (stageUsage === StageUsage.General);\r\n }\r\n\r\n if (provideToStage && toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.rotateView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.rotateViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.panView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.panViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.fitView) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.fitViewCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.windowArea) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, CoreTools.windowAreaCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.viewUndoRedo) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, CoreTools.viewUndoCommand));\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(60, CoreTools.viewRedoCommand));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (provideToStage && toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.walk)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.walkViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.toggleCamera)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.toggleCameraViewCommand));\r\n }\r\n return items;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardNavigationToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAqB,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjI,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAqBzD;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,mBAAmB;IAgBtE,YAAY,UAAkB,EAAU,sBAA+C,EAAE,gBAAuF;QAC9K,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QADE,2BAAsB,GAAtB,sBAAsB,CAAyB;IAEvF,CAAC;IAjBD;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,CAAC,UAAkB,EAAE,sBAA+C,EAAE,gBAAuF;QACjL,MAAM,QAAQ,GAAG,IAAI,+BAA+B,CAAC,UAAU,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;QAC3G,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAMe,iCAAiC,CAAC,QAAgB,EAAE,WAAmB,EAAE,YAA0B,EAAE,kBAAsC,EAAE,aAAmB;QAC9K,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,IAAI,YAAY,KAAK,YAAY,CAAC,cAAc,IAAI,kBAAkB,KAAK,kBAAkB,CAAC,UAAU,EAAE;YAExG,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU;gBAC9H,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE1F,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO;gBAC3H,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC7H,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;aACtF;YAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU,EAAE;gBAChI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACzF;YAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,YAAY,EAAE;gBAClI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;aACvF;SAEF;aAAM,IAAI,YAAY,KAAK,YAAY,CAAC,cAAc,IAAI,kBAAkB,KAAK,kBAAkB,CAAC,QAAQ,EAAE;YAE7G,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI;gBACpH,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY;gBAC5H,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF","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 StandardUiItemsProvider\r\n */\r\n\r\nimport { BaseUiItemsProvider, CommonToolbarItem, ToolbarOrientation, ToolbarUsage, UiItemsManager } from \"@itwin/appui-abstract\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultNavigationTools {\r\n horizontal?: {\r\n rotateView?: boolean;\r\n panView?: boolean;\r\n fitView?: boolean;\r\n windowArea?: boolean;\r\n viewUndoRedo?: boolean;\r\n };\r\n vertical?: {\r\n walk?: boolean;\r\n toggleCamera?: boolean;\r\n };\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ViewNavigationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardNavigationToolsProvider extends BaseUiItemsProvider {\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools\r\n * @param defaultNavigationTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardNavigationToolsProvider(providerId, defaultNavigationTools, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n return provider;\r\n }\r\n\r\n constructor(providerId: string, private defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n public override provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, _stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.rotateView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.rotateViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.panView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.panViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.fitView) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.fitViewCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.windowArea) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, CoreTools.windowAreaCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.viewUndoRedo) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, CoreTools.viewUndoCommand));\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(60, CoreTools.viewRedoCommand));\r\n }\r\n\r\n } else if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.walk)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.walkViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.toggleCamera)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.toggleCameraViewCommand));\r\n }\r\n return items;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module StandardUiItemsProvider
3
3
  */
4
- import { CommonStatusBarItem, UiItemsProvider } from "@itwin/appui-abstract";
4
+ import { BaseUiItemsProvider, CommonStatusBarItem } from "@itwin/appui-abstract";
5
5
  /**
6
6
  * Defines what items to include from the provider. If any items are
7
7
  * specified then only those items will be added to statusbar.
@@ -22,12 +22,9 @@ export interface DefaultStatusbarItems {
22
22
  * Provide standard tools for the SimpleStatusbarWidget
23
23
  * @public
24
24
  */
25
- export declare class StandardStatusbarItemsProvider implements UiItemsProvider {
26
- private _providerId;
25
+ export declare class StandardStatusbarItemsProvider extends BaseUiItemsProvider {
27
26
  private _defaultItems?;
28
- private _isSupportedStage?;
29
- constructor(_providerId: string, _defaultItems?: DefaultStatusbarItems | undefined, _isSupportedStage?: ((stageId: string, stageUsage: string, stageAppData?: any) => boolean) | undefined);
30
- get id(): string;
27
+ constructor(providerId: string, _defaultItems?: DefaultStatusbarItems | undefined, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean);
31
28
  /**
32
29
  * static function to register the StandardStatusbarItemsProvider
33
30
  * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want
@@ -37,8 +34,7 @@ export declare class StandardStatusbarItemsProvider implements UiItemsProvider {
37
34
  * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and
38
35
  * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.
39
36
  */
40
- static register(providerId: string, defaultItems?: DefaultStatusbarItems, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean): void;
41
- static unregister(providerId: string): void;
42
- provideStatusBarItems(stageId: string, stageUsage: string, stageAppData?: any): CommonStatusBarItem[];
37
+ static register(providerId: string, defaultItems?: DefaultStatusbarItems, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean): StandardStatusbarItemsProvider;
38
+ provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[];
43
39
  }
44
40
  //# sourceMappingURL=StandardStatusbarItemsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAgD,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa3H;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,8BAA+B,YAAW,eAAe;IACxD,OAAO,CAAC,WAAW;IAAU,OAAO,CAAC,aAAa,CAAC;IAAyB,OAAO,CAAC,iBAAiB,CAAC;gBAA9F,WAAW,EAAE,MAAM,EAAU,aAAa,CAAC,mCAAuB,EAAU,iBAAiB,CAAC,aAAY,MAAM,cAAc,MAAM,iBAAiB,GAAG,KAAK,OAAO,aAAA;IAExL,IAAW,EAAE,IAAI,MAAM,CAA6B;IAEpD;;;;;;;;MAQE;WACY,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;WAI1J,UAAU,CAAC,UAAU,EAAE,MAAM;IAIpC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAqD7G"}
1
+ {"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAoC,MAAM,uBAAuB,CAAC;AAanH;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mBAAmB;IACrC,OAAO,CAAC,aAAa,CAAC;gBAA1C,UAAU,EAAE,MAAM,EAAU,aAAa,CAAC,mCAAuB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAItK;;;;;;;;MAQE;WACY,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAMxJ,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CA0CjI"}
@@ -6,7 +6,7 @@
6
6
  * @module StandardUiItemsProvider
7
7
  */
8
8
  import * as React from "react";
9
- import { StageUsage, StatusBarSection, UiItemsManager } from "@itwin/appui-abstract";
9
+ import { BaseUiItemsProvider, StatusBarSection, UiItemsManager } from "@itwin/appui-abstract";
10
10
  import { FooterSeparator } from "@itwin/appui-layout-react";
11
11
  import { StatusBarItemUtilities } from "../statusbar/StatusBarItemUtilities";
12
12
  import { ToolAssistanceField } from "../statusfields/toolassistance/ToolAssistanceField";
@@ -22,13 +22,11 @@ import { SelectionScopeField } from "../statusfields/SelectionScope";
22
22
  * Provide standard tools for the SimpleStatusbarWidget
23
23
  * @public
24
24
  */
25
- export class StandardStatusbarItemsProvider {
26
- constructor(_providerId, _defaultItems, _isSupportedStage) {
27
- this._providerId = _providerId;
25
+ export class StandardStatusbarItemsProvider extends BaseUiItemsProvider {
26
+ constructor(providerId, _defaultItems, isSupportedStage) {
27
+ super(providerId, isSupportedStage);
28
28
  this._defaultItems = _defaultItems;
29
- this._isSupportedStage = _isSupportedStage;
30
29
  }
31
- get id() { return this._providerId; }
32
30
  /**
33
31
  * static function to register the StandardStatusbarItemsProvider
34
32
  * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want
@@ -39,54 +37,43 @@ export class StandardStatusbarItemsProvider {
39
37
  * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.
40
38
  */
41
39
  static register(providerId, defaultItems, isSupportedStage) {
42
- UiItemsManager.register(new StandardStatusbarItemsProvider(providerId, defaultItems, isSupportedStage));
40
+ const provider = new StandardStatusbarItemsProvider(providerId, defaultItems, isSupportedStage);
41
+ UiItemsManager.register(provider);
42
+ return provider;
43
43
  }
44
- static unregister(providerId) {
45
- UiItemsManager.unregister(providerId);
46
- }
47
- provideStatusBarItems(stageId, stageUsage, stageAppData) {
44
+ provideStatusBarItemsInternal(_stageId, _stageUsage, _stageAppData) {
48
45
  const statusBarItems = [];
49
- let provideToStage = false;
50
- if (this._isSupportedStage) {
51
- provideToStage = this._isSupportedStage(stageId, stageUsage, stageAppData);
46
+ if (!this._defaultItems || this._defaultItems.messageCenter) {
47
+ const MessageCenter = withMessageCenterFieldProps(MessageCenterField);
48
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.MessageCenter", StatusBarSection.Left, 10, React.createElement(MessageCenter, null)));
49
+ }
50
+ if (!this._defaultItems || this._defaultItems.toolAssistance) {
51
+ if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
52
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(FooterSeparator, null)));
53
+ const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
54
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
55
+ if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
56
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(FooterSeparator, null)));
57
+ }
58
+ if (!this._defaultItems || this._defaultItems.activityCenter) {
59
+ const ActivityCenter = withStatusFieldProps(ActivityCenterField);
60
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ActivityCenter", StatusBarSection.Left, 30, React.createElement(ActivityCenter, null)));
61
+ }
62
+ if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {
63
+ const SnapMode = withMessageCenterFieldProps(SnapModeField);
64
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapMode, null)));
65
+ }
66
+ if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {
67
+ const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);
68
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.TileLoadIndicator", StatusBarSection.Right, 10, React.createElement(TileLoadIndicator, null)));
52
69
  }
53
- else {
54
- provideToStage = (stageUsage === StageUsage.General);
70
+ if (!this._defaultItems || this._defaultItems.selectionScope) {
71
+ const SelectionScope = withStatusFieldProps(SelectionScopeField);
72
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionScope", StatusBarSection.Right, 20, React.createElement(SelectionScope, null)));
55
73
  }
56
- /* istanbul ignore else */
57
- if (provideToStage) {
58
- if (!this._defaultItems || this._defaultItems.messageCenter) {
59
- const MessageCenter = withMessageCenterFieldProps(MessageCenterField);
60
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.MessageCenter", StatusBarSection.Left, 10, React.createElement(MessageCenter, null)));
61
- }
62
- if (!this._defaultItems || this._defaultItems.toolAssistance) {
63
- if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
64
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(FooterSeparator, null)));
65
- const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
66
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
67
- if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
68
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(FooterSeparator, null)));
69
- }
70
- if (!this._defaultItems || this._defaultItems.activityCenter) {
71
- const ActivityCenter = withStatusFieldProps(ActivityCenterField);
72
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ActivityCenter", StatusBarSection.Left, 30, React.createElement(ActivityCenter, null)));
73
- }
74
- if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {
75
- const SnapMode = withMessageCenterFieldProps(SnapModeField);
76
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapMode, null)));
77
- }
78
- if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {
79
- const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);
80
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.TileLoadIndicator", StatusBarSection.Right, 10, React.createElement(TileLoadIndicator, null)));
81
- }
82
- if (!this._defaultItems || this._defaultItems.selectionScope) {
83
- const SelectionScope = withStatusFieldProps(SelectionScopeField);
84
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionScope", StatusBarSection.Right, 20, React.createElement(SelectionScope, null)));
85
- }
86
- if (!this._defaultItems || this._defaultItems.selectionInfo) {
87
- const SelectionInfo = withStatusFieldProps(SelectionInfoField);
88
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionInfo", StatusBarSection.Right, 30, React.createElement(SelectionInfo, null)));
89
- }
74
+ if (!this._defaultItems || this._defaultItems.selectionInfo) {
75
+ const SelectionInfo = withStatusFieldProps(SelectionInfoField);
76
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionInfo", StatusBarSection.Right, 30, React.createElement(SelectionInfo, null)));
90
77
  }
91
78
  return statusBarItems;
92
79
  }