@itwin/appui-react 3.2.0-dev.21 → 3.2.0-dev.24

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 (100) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -2
  4. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  5. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -0
  6. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/frontstage/Frontstage.js +9 -1
  8. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  9. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +2 -0
  11. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  12. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +9 -4
  14. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  15. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +1 -1
  16. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  18. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  19. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +6 -10
  21. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  22. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -3
  23. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  25. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +2 -2
  26. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  27. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  28. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -1
  29. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  30. package/lib/cjs/appui-react/utils/PropsHelper.js +10 -0
  31. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  32. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/utils/UiShowHideManager.js +1 -0
  34. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  35. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +17 -1
  36. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/widget-panels/Frontstage.js +124 -123
  38. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  39. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +10 -0
  40. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -1
  41. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/widgets/WidgetDef.js +13 -3
  43. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  44. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +1 -1
  45. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/widgets/WidgetHost.js +56 -7
  47. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  48. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/widgets/WidgetManager.js +1 -0
  50. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  51. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  52. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -3
  53. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  54. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -0
  55. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  56. package/lib/esm/appui-react/frontstage/Frontstage.js +7 -0
  57. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  58. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  59. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +2 -0
  60. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  61. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  62. package/lib/esm/appui-react/frontstage/FrontstageDef.js +9 -4
  63. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  64. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +1 -1
  65. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  66. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  67. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  68. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  69. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +6 -10
  70. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  71. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -3
  72. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  73. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  74. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +2 -2
  75. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  76. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  77. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -1
  78. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  79. package/lib/esm/appui-react/utils/PropsHelper.js +11 -1
  80. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  81. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  82. package/lib/esm/appui-react/utils/UiShowHideManager.js +1 -0
  83. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  84. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +17 -1
  85. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  86. package/lib/esm/appui-react/widget-panels/Frontstage.js +125 -124
  87. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  88. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +10 -0
  89. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -1
  90. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  91. package/lib/esm/appui-react/widgets/WidgetDef.js +13 -3
  92. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  93. package/lib/esm/appui-react/widgets/WidgetHost.d.ts +1 -1
  94. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  95. package/lib/esm/appui-react/widgets/WidgetHost.js +56 -7
  96. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  97. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  98. package/lib/esm/appui-react/widgets/WidgetManager.js +1 -0
  99. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  100. package/package.json +33 -32
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/Frontstage.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { StagePanelLocation, UiItemProviderRegisteredEventArgs, UiItemsManager, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle } from \"@itwin/core-react\";\r\nimport {\r\n HorizontalAnchor, Zones as NZ_Zones, StagePanels, StagePanelsManager, ToolSettingsWidgetMode, WidgetZoneId, widgetZoneIds, ZoneManagerProps,\r\n ZonesManagerProps,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayout } from \"../content/ContentLayout\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\nimport { getNestedStagePanelKey, StagePanelProps, StagePanelRuntimeProps } from \"../stagepanels/StagePanel\";\r\nimport { StagePanelDef } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework, UiVisibilityEventArgs } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ToolSettingsContent } from \"../widgets/ToolSettingsContent\";\r\nimport { WidgetDef, WidgetStateChangedEventArgs } from \"../widgets/WidgetDef\";\r\nimport { WidgetsChangedEventArgs } from \"../widgets/WidgetManager\";\r\nimport { isToolSettingsWidgetManagerProps, Zone, ZoneLocation, ZoneProps, ZoneRuntimeProps } from \"../zones/Zone\";\r\nimport { ZoneDef } from \"../zones/ZoneDef\";\r\nimport { FrontstageRuntimeProps, ZoneDefProvider } from \"./FrontstageComposer\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager } from \"./FrontstageManager\";\r\n\r\n/** Properties for a [[Frontstage]] component.\r\n * @public\r\n */\r\nexport interface FrontstageProps extends CommonProps {\r\n /** Id for the Frontstage */\r\n id: string;\r\n /** Tool that is started once the Frontstage is activated */\r\n defaultTool: ToolItemDef;\r\n /** The Content Group providing the Content Views */\r\n contentGroup: ContentGroup | ContentGroupProvider;\r\n /** Id of the Content View to be activated initially */\r\n defaultContentId?: string;\r\n /** Indicated whether the StatusBar is in footer mode or widget mode. Defaults to true. */\r\n isInFooterMode?: boolean; // Default - true\r\n /** Any application data to attach to this Frontstage. */\r\n applicationData?: any;\r\n /** Usage type for this Frontstage. */\r\n usage?: string;\r\n /** Frontstage version. Used to force saved layout reinitialization after changes to frontstage.\r\n * @note This value should be increased when changes are made to Frontstage.\r\n * Increasing the value will make sure to reinitialize App layout instead of restoring to old layout.\r\n * Version increase is required when widgets are added/removed.\r\n */\r\n version?: number;\r\n /** if isIModelIndependent then frontstage is independent from any iModel. */\r\n isIModelIndependent?: boolean;\r\n /** The Zone in the top-left corner.\r\n * @deprecated Use 'contentManipulationTools' property. */\r\n topLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the top-center edge.\r\n * @deprecated Use 'toolSettings' property. */\r\n topCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner.\r\n * @deprecated Use 'viewNavigationTools' property. */\r\n topRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-left edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-right edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-left corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the bottom-center edge.\r\n * @deprecated use statusBar property */\r\n bottomCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-right corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomRight?: React.ReactElement<ZoneProps>;\r\n\r\n /** The Zone in the top-left corner that shows tools typically used to query and modify content. To be used in place of deprecated topLeft zone definition. */\r\n contentManipulationTools?: React.ReactElement<ZoneProps>;\r\n /** The Zone the that shows settings for the active tool. To be used in place of deprecated topCenter zone definition. */\r\n toolSettings?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner that shows view navigation tools. To be used in place of deprecated topRight zone definition */\r\n viewNavigationTools?: React.ReactElement<ZoneProps>;\r\n /** The status bar Zone shown as the application footer. To be used in place of deprecated bottomCenter zone definition. */\r\n statusBar?: React.ReactElement<ZoneProps>;\r\n\r\n /** The StagePanel on the top of the AppUi container. */\r\n topPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very top across the full width.\r\n * @deprecated Only topPanel is supported in UI 2.0 */\r\n topMostPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the left. */\r\n leftPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the right. */\r\n rightPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the bottom of the AppUi container. */\r\n bottomPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very bottom across the full width.\r\n * @deprecated Only bottomPanel is supported in UI 2.0 */\r\n bottomMostPanel?: React.ReactElement<StagePanelProps>;\r\n\r\n /** @internal */\r\n runtimeProps?: FrontstageRuntimeProps;\r\n}\r\n\r\ninterface FrontstageState {\r\n isUiVisible: boolean;\r\n widgetIdToContent: Partial<{ [id in WidgetZoneId]: HTMLDivElement | undefined }>; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Frontstage React component.\r\n * A Frontstage is a full-screen configuration designed to enable the user to accomplish a task.\r\n * @public\r\n */\r\nexport class Frontstage extends React.Component<FrontstageProps, FrontstageState> {\r\n private _isMounted = false;\r\n private static _zoneIds: ReadonlyArray<WidgetZoneId> = widgetZoneIds.filter((z) => z !== 8); // eslint-disable-line deprecation/deprecation\r\n private _contentRefs = new Map<WidgetZoneId, React.Ref<HTMLDivElement>>(); // eslint-disable-line deprecation/deprecation\r\n private _zonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _floatingZonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _zonesStyle: React.CSSProperties = {\r\n pointerEvents: \"none\",\r\n };\r\n private _zonesFooterModeStyle: React.CSSProperties = {\r\n ...this._zonesStyle,\r\n display: \"flex\",\r\n flexFlow: \"column\",\r\n };\r\n\r\n /** @internal */\r\n constructor(props: FrontstageProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isUiVisible: UiFramework.getIsUiVisible(),\r\n widgetIdToContent: {},\r\n };\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n UiFramework.onUiVisibilityChanged.addListener(this._uiVisibilityChanged);\r\n UiFramework.widgetManager.onWidgetsChanged.addListener(this._handleWidgetsChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.addListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n public override componentDidUpdate() {\r\n if (!this._zonesMeasurer.current || !this._floatingZonesMeasurer.current || !this.props.runtimeProps)\r\n return;\r\n let floatingBounds = Rectangle.create(this._floatingZonesMeasurer.current.getBoundingClientRect());\r\n const bounds = Rectangle.create(this._zonesMeasurer.current.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleZonesBoundsChange(bounds);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n UiFramework.onUiVisibilityChanged.removeListener(this._uiVisibilityChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.removeListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n private _uiVisibilityChanged = (args: UiVisibilityEventArgs): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ isUiVisible: args.visible });\r\n };\r\n\r\n private _handleWidgetsChanged = (_args: WidgetsChangedEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private _handleUiProviderRegisteredEvent = (_args: UiItemProviderRegisteredEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private updateWidgetDefs() {\r\n // istanbul ignore else\r\n if (!this.props.runtimeProps)\r\n return;\r\n\r\n // istanbul ignore next\r\n {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n frontstageDef.updateWidgetDefs();\r\n FrontstageManager.onWidgetDefsUpdatedEvent.emit();\r\n if (this._isMounted)\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static createZoneDef(zoneNode: React.ReactElement<ZoneProps> | undefined, zoneLocation: ZoneLocation, props: FrontstageProps): ZoneDef | undefined {\r\n if (zoneNode) {\r\n const zoneDef = new ZoneDef();\r\n const zoneElement = Frontstage.getZoneElement(zoneLocation, props);\r\n\r\n zoneDef.zoneLocation = zoneLocation;\r\n\r\n // istanbul ignore else\r\n if (zoneElement && React.isValidElement(zoneElement)) {\r\n Zone.initializeZoneDef(zoneDef, zoneElement.props);\r\n return zoneDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static getZoneElement(zoneId: WidgetZoneId, props: FrontstageProps): React.ReactElement<ZoneProps> | undefined { // eslint-disable-line deprecation/deprecation\r\n switch (zoneId) {\r\n case ZoneLocation.TopLeft:\r\n return props.contentManipulationTools ? props.contentManipulationTools : props.topLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopCenter:\r\n return props.toolSettings ? props.toolSettings : props.topCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopRight:\r\n return props.viewNavigationTools ? /* istanbul ignore next */ props.viewNavigationTools : props.topRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterLeft:\r\n return props.centerLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterRight:\r\n return props.centerRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomLeft:\r\n return props.bottomLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomCenter:\r\n return props.statusBar ? props.statusBar : props.bottomCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomRight:\r\n return props.bottomRight; // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n // Zones can be undefined in a Frontstage\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n /** @internal */\r\n public static createStagePanelDef(panelLocation: StagePanelLocation, props: FrontstageProps): StagePanelDef | undefined {\r\n const panelDef = new StagePanelDef();\r\n\r\n const panelElement = Frontstage.getStagePanelElement(panelLocation, props);\r\n panelDef.initializeFromProps(panelElement?.props, panelLocation);\r\n\r\n return panelDef;\r\n }\r\n\r\n private static getStagePanelElement(location: StagePanelLocation, props: FrontstageProps): React.ReactElement<StagePanelProps> | undefined {\r\n let panelElement: React.ReactElement<StagePanelProps> | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelElement = props.topPanel;\r\n break;\r\n case StagePanelLocation.TopMost:\r\n panelElement = props.topMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n case StagePanelLocation.Left:\r\n panelElement = props.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelElement = props.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelElement = props.bottomPanel;\r\n break;\r\n case StagePanelLocation.BottomMost:\r\n panelElement = props.bottomMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelElement;\r\n }\r\n\r\n private _getContentRef = (widget: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const ref = this._contentRefs.get(widget);\r\n if (ref)\r\n return ref;\r\n const newRef = (el: HTMLDivElement | null) => {\r\n if (this._isMounted) {\r\n this.setState((prevState) => ({\r\n widgetIdToContent: {\r\n ...prevState.widgetIdToContent,\r\n [widget]: el === null ? undefined : el,\r\n },\r\n }));\r\n }\r\n };\r\n this._contentRefs.set(widget, newRef);\r\n return newRef;\r\n };\r\n\r\n // This uses ConfigurableUi to render the content\r\n private doContentLayoutRender(): React.ReactNode {\r\n let contentLayout: React.ReactNode;\r\n\r\n // istanbul ignore else\r\n if (this.props.runtimeProps && this.props.runtimeProps.frontstageDef) {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (frontstageDef.contentLayoutDef && frontstageDef.contentGroup)\r\n contentLayout = (\r\n <ContentLayout\r\n contentLayout={frontstageDef.contentLayoutDef}\r\n contentGroup={frontstageDef.contentGroup}\r\n isInFooterMode={frontstageDef.isInFooterMode}\r\n />\r\n );\r\n else\r\n Logger.logError(UiFramework.loggerCategory(this), `FrontstageDef.contentLayoutDef and FrontstageDef.contentGroup are required for <ContentLayout> component`);\r\n }\r\n\r\n return contentLayout;\r\n }\r\n\r\n private cloneStagePanelElement(panelDef: StagePanelDef | undefined, runtimeProps: FrontstageRuntimeProps): React.ReactNode {\r\n if (!this.state.isUiVisible && UiShowHideManager.showHidePanels)\r\n return null;\r\n\r\n // istanbul ignore else\r\n if (panelDef) {\r\n const { location } = panelDef;\r\n const panelElement = Frontstage.getStagePanelElement(location, this.props);\r\n\r\n // istanbul ignore else\r\n if (panelElement && React.isValidElement(panelElement)) {\r\n const panelKey = getNestedStagePanelKey(panelDef.location);\r\n const panels = runtimeProps.nineZone.nested.panels[panelKey.id];\r\n const panel = StagePanelsManager.getPanel(panelKey.type, panels);\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n\r\n const panelRuntimeProps: StagePanelRuntimeProps = {\r\n draggedWidgetId: draggedWidget ? /* istanbul ignore next */ draggedWidget.id : undefined,\r\n getWidgetContentRef: this._getContentRef,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n isTargeted: !!runtimeProps.nineZone.zones.target,\r\n panel,\r\n panelDef,\r\n stagePanelChangeHandler: runtimeProps.stagePanelChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgets: runtimeProps.nineZone.zones.widgets,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n };\r\n\r\n return React.cloneElement(panelElement, { runtimeProps: panelRuntimeProps });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneZoneElements(zoneIds: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n return zoneIds.map((zoneId: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const zoneElement = Frontstage.getZoneElement(zoneId, this.props);\r\n if (!zoneElement || !React.isValidElement(zoneElement))\r\n return null;\r\n\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return null;\r\n\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n const panelsManager = nestedPanelsManager.getPanelsManager(\"inner\");\r\n const type = panelsManager.findWidget(zoneId, runtimeProps.nineZone.nested.panels.inner);\r\n // istanbul ignore if\r\n if (type !== undefined)\r\n return null;\r\n\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const zones = runtimeProps.nineZone.zones;\r\n const ghostOutline = zonesManager.getGhostOutlineBounds(zoneId, zones);\r\n const dropTarget = zonesManager.getDropTarget(zoneId, zones);\r\n const zone = getExtendedZone(zoneId, zones, runtimeProps.zoneDefProvider);\r\n const widget = zone.widgets.length > 0 ? zones.widgets[zone.widgets[0]] : undefined;\r\n const openWidgetId = zone.widgets.find((wId) => zones.widgets[wId].tabIndex >= 0);\r\n const activeTabIndex = openWidgetId ? zones.widgets[openWidgetId].tabIndex : 0;\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n const disabledResizeHandles = zonesManager.getDisabledResizeHandles(zoneId, zones);\r\n // istanbul ignore next\r\n const zoneRuntimeProps: ZoneRuntimeProps = {\r\n activeTabIndex,\r\n disabledResizeHandles,\r\n draggedWidget: draggedWidget && /* istanbul ignore next */ draggedWidget.id === zoneId ? /* istanbul ignore next */ draggedWidget : undefined,\r\n dropTarget,\r\n getWidgetContentRef: this._getContentRef,\r\n ghostOutline,\r\n isHidden: (zoneDef.isStatusBar && this.props.isInFooterMode && ( /* istanbul ignore next */ this.state.isUiVisible || /* istanbul ignore next */ !UiShowHideManager.showHideFooter)) ?\r\n /* istanbul ignore next */ false : !this.state.isUiVisible,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n openWidgetId,\r\n targetChangeHandler: runtimeProps.targetChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n widget,\r\n zoneDef,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n zone,\r\n };\r\n return React.cloneElement(zoneElement, { key: zoneId, runtimeProps: zoneRuntimeProps });\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneWidgetContentElements(zones: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const widgets = zones.reduce<Array<{ id: WidgetZoneId, def: WidgetDef, tabIndex: number }>>((prev, zoneId) => {\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return prev;\r\n\r\n const widgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n if (zoneId === 2)\r\n return widgetDef.isVisible;\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n\r\n for (let i = 0; i < widgetDefs.length; i++) {\r\n prev.push({\r\n id: zoneId,\r\n def: widgetDefs[i],\r\n tabIndex: i,\r\n });\r\n }\r\n\r\n return prev;\r\n }, []);\r\n return widgets.map((widget) => {\r\n const nzWidget = runtimeProps.nineZone.zones.widgets[widget.id];\r\n return (\r\n <WidgetContentRenderer\r\n anchor={nzWidget.horizontalAnchor}\r\n isHidden={nzWidget.tabIndex !== widget.tabIndex}\r\n key={`${widget.id}_${widget.tabIndex}`}\r\n renderTo={this.state.widgetIdToContent[widget.id]}\r\n toolSettingsMode={isToolSettingsWidgetManagerProps(nzWidget) ? nzWidget.mode : undefined}\r\n widgetDef={widget.def}\r\n />\r\n );\r\n });\r\n }\r\n\r\n /** React render method\r\n * @internal\r\n */\r\n public override render(): React.ReactNode {\r\n const { runtimeProps } = this.props;\r\n\r\n if (runtimeProps === undefined)\r\n return null;\r\n\r\n /** For Nine-zone area; includes ContentLayout */\r\n const ninezoneStyle: React.CSSProperties = {\r\n position: \"relative\",\r\n height: \"100%\",\r\n };\r\n\r\n const frontstageDef = runtimeProps.frontstageDef;\r\n\r\n return (\r\n <div style={ninezoneStyle} id=\"uifw-ninezone-area\" className={this.props.className}>\r\n <NZ_Zones style={runtimeProps.nineZone.zones.isInFooterMode ? this._zonesFooterModeStyle : this._zonesStyle} >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomPanel, runtimeProps)}\r\n leftPanel={this.cloneStagePanelElement(frontstageDef.leftPanel, runtimeProps)}\r\n rightPanel={this.cloneStagePanelElement(frontstageDef.rightPanel, runtimeProps)}\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topPanel, runtimeProps)}\r\n >\r\n <div\r\n id=\"uifw-ninezone-zones-area\"\r\n ref={this._zonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n position: \"relative\",\r\n }}\r\n >\r\n {this.doContentLayoutRender()}\r\n {this.cloneZoneElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n </StagePanels>\r\n </StagePanels>\r\n {this.cloneZoneElements([8], runtimeProps)}\r\n <div\r\n id=\"uifw-ninezone-floating-zones-area\"\r\n ref={this._floatingZonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n position: \"absolute\",\r\n }}\r\n />\r\n </NZ_Zones>\r\n {this.cloneWidgetContentElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface WidgetContentRendererProps {\r\n anchor: HorizontalAnchor; // eslint-disable-line deprecation/deprecation\r\n isHidden: boolean;\r\n renderTo: HTMLDivElement | undefined;\r\n toolSettingsMode: ToolSettingsWidgetMode | undefined;\r\n widgetDef: WidgetDef;\r\n}\r\n\r\ninterface WidgetContentRendererState {\r\n widgetKey: number;\r\n}\r\n\r\nclass WidgetContentRenderer extends React.PureComponent<WidgetContentRendererProps, WidgetContentRendererState> {\r\n private _isMounted = false;\r\n private _content = document.createElement(\"span\");\r\n public constructor(props: WidgetContentRendererProps) {\r\n super(props);\r\n\r\n this.state = {\r\n widgetKey: 0,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n this._content.style.flexDirection = \"column\";\r\n this._content.style.height = \"100%\";\r\n if (!this.props.renderTo)\r\n return;\r\n this.props.renderTo.appendChild(this._content);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: WidgetContentRendererProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n if (this.props.isHidden !== prevProps.isHidden) {\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n }\r\n\r\n if (!this.props.renderTo || prevProps.renderTo === this.props.renderTo)\r\n return;\r\n\r\n this.props.widgetDef.saveTransientState();\r\n this.props.renderTo.appendChild(this._content);\r\n\r\n const shouldRemount = this.props.widgetDef.restoreTransientState() || this.props.widgetDef.isToolSettings;\r\n\r\n shouldRemount && this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n this._content.parentNode && this._content.parentNode.removeChild(this._content);\r\n FrontstageManager.onWidgetStateChangedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n }\r\n\r\n public override render() {\r\n if (this.props.toolSettingsMode !== undefined) {\r\n return ReactDOM.createPortal((\r\n <ToolSettingsContent\r\n anchor={this.props.anchor}\r\n key={this.state.widgetKey}\r\n mode={this.props.toolSettingsMode}\r\n >\r\n {FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.toolSettingsNode}\r\n </ToolSettingsContent>\r\n ), this._content);\r\n }\r\n\r\n if (this.props.widgetDef.state === WidgetState.Unloaded)\r\n return null;\r\n return ReactDOM.createPortal((\r\n <React.Fragment\r\n key={this.state.widgetKey}\r\n >\r\n {this.props.widgetDef.reactNode}\r\n </React.Fragment>\r\n ), this._content);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = (args: WidgetStateChangedEventArgs) => {\r\n if (this.props.widgetDef !== args.widgetDef || !this._isMounted)\r\n return;\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n if (this.props.toolSettingsMode === undefined || !this._isMounted)\r\n return;\r\n // force update when tool is activated\r\n this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n };\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport const getExtendedZone = (zoneId: WidgetZoneId, zones: ZonesManagerProps, defProvider: ZoneDefProvider): ZoneManagerProps => {\r\n const zone = zones.zones[zoneId];\r\n if (zoneId === 1 || zoneId === 3) {\r\n let extendOverId: WidgetZoneId = zoneId; // eslint-disable-line deprecation/deprecation\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n let bottomZoneId = zonesManager.bottomZones.getInitial(extendOverId);\r\n while (bottomZoneId !== undefined) {\r\n const bottomZoneDef = defProvider.getZoneDef(bottomZoneId);\r\n if (bottomZoneDef && bottomZoneDef.widgetDefs.length !== 0)\r\n break;\r\n\r\n extendOverId = bottomZoneId;\r\n bottomZoneId = zonesManager.bottomZones.getInitial(bottomZoneId);\r\n }\r\n\r\n const bottom = zones.zones[extendOverId].bounds.bottom;\r\n if (bottom === zone.bounds.bottom)\r\n return zone;\r\n return {\r\n ...zone,\r\n bounds: {\r\n ...zone.bounds,\r\n bottom,\r\n },\r\n };\r\n }\r\n return zone;\r\n};\r\n\r\n/** Hook that returns active frontstage id.\r\n * @public\r\n */\r\nexport const useActiveFrontstageId = () => {\r\n const def = useActiveFrontstageDef();\r\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\r\n return id;\r\n};\r\n\r\n/** @internal */\r\nexport function useActiveFrontstageDef() {\r\n const [def, setDef] = React.useState(FrontstageManager.activeFrontstageDef);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleActivated = (args: FrontstageActivatedEventArgs) => {\r\n setDef(args.activatedFrontstageDef);\r\n };\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(handleActivated);\r\n return () => {\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(handleActivated);\r\n };\r\n }, []);\r\n return def;\r\n}\r\n"]}
1
+ {"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/Frontstage.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { StagePanelLocation, UiItemProviderRegisteredEventArgs, UiItemsManager, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle } from \"@itwin/core-react\";\r\nimport {\r\n HorizontalAnchor, Zones as NZ_Zones, StagePanels, StagePanelsManager, ToolSettingsWidgetMode, WidgetZoneId, widgetZoneIds, ZoneManagerProps,\r\n ZonesManagerProps,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayout } from \"../content/ContentLayout\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\nimport { getNestedStagePanelKey, StagePanelProps, StagePanelRuntimeProps } from \"../stagepanels/StagePanel\";\r\nimport { StagePanelDef } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework, UiVisibilityEventArgs } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ToolSettingsContent } from \"../widgets/ToolSettingsContent\";\r\nimport { WidgetDef, WidgetStateChangedEventArgs } from \"../widgets/WidgetDef\";\r\nimport { WidgetsChangedEventArgs } from \"../widgets/WidgetManager\";\r\nimport { isToolSettingsWidgetManagerProps, Zone, ZoneLocation, ZoneProps, ZoneRuntimeProps } from \"../zones/Zone\";\r\nimport { ZoneDef } from \"../zones/ZoneDef\";\r\nimport { FrontstageRuntimeProps, ZoneDefProvider } from \"./FrontstageComposer\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager } from \"./FrontstageManager\";\r\n\r\n/** Properties for a [[Frontstage]] component.\r\n * @public\r\n */\r\nexport interface FrontstageProps extends CommonProps {\r\n /** Id for the Frontstage */\r\n id: string;\r\n /** Tool that is started once the Frontstage is activated */\r\n defaultTool: ToolItemDef;\r\n /** The Content Group providing the Content Views */\r\n contentGroup: ContentGroup | ContentGroupProvider;\r\n /** Id of the Content View to be activated initially */\r\n defaultContentId?: string;\r\n /** Indicated whether the StatusBar is in footer mode or widget mode. Defaults to true. */\r\n isInFooterMode?: boolean; // Default - true\r\n /** Any application data to attach to this Frontstage. */\r\n applicationData?: any;\r\n /** Usage type for this Frontstage. */\r\n usage?: string;\r\n /** Frontstage version. Used to force saved layout reinitialization after changes to frontstage.\r\n * @note This value should be increased when changes are made to Frontstage.\r\n * Increasing the value will make sure to reinitialize App layout instead of restoring to old layout.\r\n * Version increase is required when widgets are added/removed.\r\n */\r\n version?: number;\r\n /** if isIModelIndependent then frontstage is independent from any iModel. */\r\n isIModelIndependent?: boolean;\r\n /** The Zone in the top-left corner.\r\n * @deprecated Use 'contentManipulationTools' property. */\r\n topLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the top-center edge.\r\n * @deprecated Use 'toolSettings' property. */\r\n topCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner.\r\n * @deprecated Use 'viewNavigationTools' property. */\r\n topRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-left edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-right edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-left corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the bottom-center edge.\r\n * @deprecated use statusBar property */\r\n bottomCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-right corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomRight?: React.ReactElement<ZoneProps>;\r\n\r\n /** The Zone in the top-left corner that shows tools typically used to query and modify content. To be used in place of deprecated topLeft zone definition. */\r\n contentManipulationTools?: React.ReactElement<ZoneProps>;\r\n /** The Zone the that shows settings for the active tool. To be used in place of deprecated topCenter zone definition. */\r\n toolSettings?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner that shows view navigation tools. To be used in place of deprecated topRight zone definition */\r\n viewNavigationTools?: React.ReactElement<ZoneProps>;\r\n /** The status bar Zone shown as the application footer. To be used in place of deprecated bottomCenter zone definition. */\r\n statusBar?: React.ReactElement<ZoneProps>;\r\n\r\n /** The StagePanel on the top of the AppUi container. */\r\n topPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very top across the full width.\r\n * @deprecated Only topPanel is supported in UI 2.0 */\r\n topMostPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the left. */\r\n leftPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the right. */\r\n rightPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the bottom of the AppUi container. */\r\n bottomPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very bottom across the full width.\r\n * @deprecated Only bottomPanel is supported in UI 2.0 */\r\n bottomMostPanel?: React.ReactElement<StagePanelProps>;\r\n\r\n /** @internal */\r\n runtimeProps?: FrontstageRuntimeProps;\r\n}\r\n\r\ninterface FrontstageState {\r\n isUiVisible: boolean;\r\n widgetIdToContent: Partial<{ [id in WidgetZoneId]: HTMLDivElement | undefined }>; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Frontstage React component.\r\n * A Frontstage is a full-screen configuration designed to enable the user to accomplish a task.\r\n * @public\r\n */\r\nexport class Frontstage extends React.Component<FrontstageProps, FrontstageState> {\r\n private _isMounted = false;\r\n private static _zoneIds: ReadonlyArray<WidgetZoneId> = widgetZoneIds.filter((z) => z !== 8); // eslint-disable-line deprecation/deprecation\r\n private _contentRefs = new Map<WidgetZoneId, React.Ref<HTMLDivElement>>(); // eslint-disable-line deprecation/deprecation\r\n private _zonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _floatingZonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _zonesStyle: React.CSSProperties = {\r\n pointerEvents: \"none\",\r\n };\r\n private _zonesFooterModeStyle: React.CSSProperties = {\r\n ...this._zonesStyle,\r\n display: \"flex\",\r\n flexFlow: \"column\",\r\n };\r\n\r\n /** @internal */\r\n constructor(props: FrontstageProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isUiVisible: UiFramework.getIsUiVisible(),\r\n widgetIdToContent: {},\r\n };\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n UiFramework.onUiVisibilityChanged.addListener(this._uiVisibilityChanged);\r\n UiFramework.widgetManager.onWidgetsChanged.addListener(this._handleWidgetsChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.addListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n public override componentDidUpdate() {\r\n if (!this._zonesMeasurer.current || !this._floatingZonesMeasurer.current || !this.props.runtimeProps)\r\n return;\r\n let floatingBounds = Rectangle.create(this._floatingZonesMeasurer.current.getBoundingClientRect());\r\n const bounds = Rectangle.create(this._zonesMeasurer.current.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleZonesBoundsChange(bounds);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n UiFramework.onUiVisibilityChanged.removeListener(this._uiVisibilityChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.removeListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n private _uiVisibilityChanged = (args: UiVisibilityEventArgs): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ isUiVisible: args.visible });\r\n };\r\n\r\n private _handleWidgetsChanged = (_args: WidgetsChangedEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private _handleUiProviderRegisteredEvent = (_args: UiItemProviderRegisteredEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private updateWidgetDefs() {\r\n // istanbul ignore else\r\n if (!this.props.runtimeProps)\r\n return;\r\n\r\n // istanbul ignore next\r\n {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n frontstageDef.updateWidgetDefs();\r\n FrontstageManager.onWidgetDefsUpdatedEvent.emit();\r\n if (this._isMounted)\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static createZoneDef(zoneNode: React.ReactElement<ZoneProps> | undefined, zoneLocation: ZoneLocation, props: FrontstageProps): ZoneDef | undefined {\r\n if (zoneNode) {\r\n const zoneDef = new ZoneDef();\r\n const zoneElement = Frontstage.getZoneElement(zoneLocation, props);\r\n\r\n zoneDef.zoneLocation = zoneLocation;\r\n\r\n // istanbul ignore else\r\n if (zoneElement && React.isValidElement(zoneElement)) {\r\n Zone.initializeZoneDef(zoneDef, zoneElement.props);\r\n return zoneDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static getZoneElement(zoneId: WidgetZoneId, props: FrontstageProps): React.ReactElement<ZoneProps> | undefined { // eslint-disable-line deprecation/deprecation\r\n switch (zoneId) {\r\n case ZoneLocation.TopLeft:\r\n return props.contentManipulationTools ? props.contentManipulationTools : props.topLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopCenter:\r\n return props.toolSettings ? props.toolSettings : props.topCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopRight:\r\n return props.viewNavigationTools ? /* istanbul ignore next */ props.viewNavigationTools : props.topRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterLeft:\r\n return props.centerLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterRight:\r\n return props.centerRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomLeft:\r\n return props.bottomLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomCenter:\r\n return props.statusBar ? props.statusBar : props.bottomCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomRight:\r\n return props.bottomRight; // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n // Zones can be undefined in a Frontstage\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n /** @internal */\r\n public static createStagePanelDef(panelLocation: StagePanelLocation, props: FrontstageProps): StagePanelDef | undefined {\r\n const panelDef = new StagePanelDef();\r\n\r\n const panelElement = Frontstage.getStagePanelElement(panelLocation, props);\r\n panelDef.initializeFromProps(panelElement?.props, panelLocation);\r\n\r\n return panelDef;\r\n }\r\n\r\n private static getStagePanelElement(location: StagePanelLocation, props: FrontstageProps): React.ReactElement<StagePanelProps> | undefined {\r\n let panelElement: React.ReactElement<StagePanelProps> | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelElement = props.topPanel;\r\n break;\r\n case StagePanelLocation.TopMost:\r\n panelElement = props.topMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n case StagePanelLocation.Left:\r\n panelElement = props.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelElement = props.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelElement = props.bottomPanel;\r\n break;\r\n case StagePanelLocation.BottomMost:\r\n panelElement = props.bottomMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelElement;\r\n }\r\n\r\n private _getContentRef = (widget: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const ref = this._contentRefs.get(widget);\r\n if (ref)\r\n return ref;\r\n const newRef = (el: HTMLDivElement | null) => {\r\n if (this._isMounted) {\r\n this.setState((prevState) => ({\r\n widgetIdToContent: {\r\n ...prevState.widgetIdToContent,\r\n [widget]: el === null ? undefined : el,\r\n },\r\n }));\r\n }\r\n };\r\n this._contentRefs.set(widget, newRef);\r\n return newRef;\r\n };\r\n\r\n // This uses ConfigurableUi to render the content\r\n private doContentLayoutRender(): React.ReactNode {\r\n let contentLayout: React.ReactNode;\r\n\r\n // istanbul ignore else\r\n if (this.props.runtimeProps && this.props.runtimeProps.frontstageDef) {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (frontstageDef.contentLayoutDef && frontstageDef.contentGroup)\r\n contentLayout = (\r\n <ContentLayout\r\n contentLayout={frontstageDef.contentLayoutDef}\r\n contentGroup={frontstageDef.contentGroup}\r\n isInFooterMode={frontstageDef.isInFooterMode}\r\n />\r\n );\r\n else\r\n Logger.logError(UiFramework.loggerCategory(this), `FrontstageDef.contentLayoutDef and FrontstageDef.contentGroup are required for <ContentLayout> component`);\r\n }\r\n\r\n return contentLayout;\r\n }\r\n\r\n private cloneStagePanelElement(panelDef: StagePanelDef | undefined, runtimeProps: FrontstageRuntimeProps): React.ReactNode {\r\n if (!this.state.isUiVisible && UiShowHideManager.showHidePanels)\r\n return null;\r\n\r\n // istanbul ignore else\r\n if (panelDef) {\r\n const { location } = panelDef;\r\n const panelElement = Frontstage.getStagePanelElement(location, this.props);\r\n\r\n // istanbul ignore else\r\n if (panelElement && React.isValidElement(panelElement)) {\r\n const panelKey = getNestedStagePanelKey(panelDef.location);\r\n const panels = runtimeProps.nineZone.nested.panels[panelKey.id];\r\n const panel = StagePanelsManager.getPanel(panelKey.type, panels);\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n\r\n const panelRuntimeProps: StagePanelRuntimeProps = {\r\n draggedWidgetId: draggedWidget ? /* istanbul ignore next */ draggedWidget.id : undefined,\r\n getWidgetContentRef: this._getContentRef,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n isTargeted: !!runtimeProps.nineZone.zones.target,\r\n panel,\r\n panelDef,\r\n stagePanelChangeHandler: runtimeProps.stagePanelChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgets: runtimeProps.nineZone.zones.widgets,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n };\r\n\r\n return React.cloneElement(panelElement, { runtimeProps: panelRuntimeProps });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneZoneElements(zoneIds: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n return zoneIds.map((zoneId: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const zoneElement = Frontstage.getZoneElement(zoneId, this.props);\r\n if (!zoneElement || !React.isValidElement(zoneElement))\r\n return null;\r\n\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return null;\r\n\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n const panelsManager = nestedPanelsManager.getPanelsManager(\"inner\");\r\n const type = panelsManager.findWidget(zoneId, runtimeProps.nineZone.nested.panels.inner);\r\n // istanbul ignore if\r\n if (type !== undefined)\r\n return null;\r\n\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const zones = runtimeProps.nineZone.zones;\r\n const ghostOutline = zonesManager.getGhostOutlineBounds(zoneId, zones);\r\n const dropTarget = zonesManager.getDropTarget(zoneId, zones);\r\n const zone = getExtendedZone(zoneId, zones, runtimeProps.zoneDefProvider);\r\n const widget = zone.widgets.length > 0 ? zones.widgets[zone.widgets[0]] : undefined;\r\n const openWidgetId = zone.widgets.find((wId) => zones.widgets[wId].tabIndex >= 0);\r\n const activeTabIndex = openWidgetId ? zones.widgets[openWidgetId].tabIndex : 0;\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n const disabledResizeHandles = zonesManager.getDisabledResizeHandles(zoneId, zones);\r\n // istanbul ignore next\r\n const zoneRuntimeProps: ZoneRuntimeProps = {\r\n activeTabIndex,\r\n disabledResizeHandles,\r\n draggedWidget: draggedWidget && /* istanbul ignore next */ draggedWidget.id === zoneId ? /* istanbul ignore next */ draggedWidget : undefined,\r\n dropTarget,\r\n getWidgetContentRef: this._getContentRef,\r\n ghostOutline,\r\n isHidden: (zoneDef.isStatusBar && this.props.isInFooterMode && ( /* istanbul ignore next */ this.state.isUiVisible || /* istanbul ignore next */ !UiShowHideManager.showHideFooter)) ?\r\n /* istanbul ignore next */ false : !this.state.isUiVisible,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n openWidgetId,\r\n targetChangeHandler: runtimeProps.targetChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n widget,\r\n zoneDef,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n zone,\r\n };\r\n return React.cloneElement(zoneElement, { key: zoneId, runtimeProps: zoneRuntimeProps });\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneWidgetContentElements(zones: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const widgets = zones.reduce<Array<{ id: WidgetZoneId, def: WidgetDef, tabIndex: number }>>((prev, zoneId) => {\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return prev;\r\n\r\n const widgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n if (zoneId === 2)\r\n return widgetDef.isVisible;\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n\r\n for (let i = 0; i < widgetDefs.length; i++) {\r\n prev.push({\r\n id: zoneId,\r\n def: widgetDefs[i],\r\n tabIndex: i,\r\n });\r\n }\r\n\r\n return prev;\r\n }, []);\r\n return widgets.map((widget) => {\r\n const nzWidget = runtimeProps.nineZone.zones.widgets[widget.id];\r\n return (\r\n <WidgetContentRenderer\r\n anchor={nzWidget.horizontalAnchor}\r\n isHidden={nzWidget.tabIndex !== widget.tabIndex}\r\n key={`${widget.id}_${widget.tabIndex}`}\r\n renderTo={this.state.widgetIdToContent[widget.id]}\r\n toolSettingsMode={isToolSettingsWidgetManagerProps(nzWidget) ? nzWidget.mode : undefined}\r\n widgetDef={widget.def}\r\n />\r\n );\r\n });\r\n }\r\n\r\n /** React render method\r\n * @internal\r\n */\r\n public override render(): React.ReactNode {\r\n const { runtimeProps } = this.props;\r\n\r\n if (runtimeProps === undefined)\r\n return null;\r\n\r\n /** For Nine-zone area; includes ContentLayout */\r\n const ninezoneStyle: React.CSSProperties = {\r\n position: \"relative\",\r\n height: \"100%\",\r\n };\r\n\r\n const frontstageDef = runtimeProps.frontstageDef;\r\n\r\n return (\r\n <div style={ninezoneStyle} id=\"uifw-ninezone-area\" className={this.props.className}>\r\n <NZ_Zones style={runtimeProps.nineZone.zones.isInFooterMode ? this._zonesFooterModeStyle : this._zonesStyle} >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomPanel, runtimeProps)}\r\n leftPanel={this.cloneStagePanelElement(frontstageDef.leftPanel, runtimeProps)}\r\n rightPanel={this.cloneStagePanelElement(frontstageDef.rightPanel, runtimeProps)}\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topPanel, runtimeProps)}\r\n >\r\n <div\r\n id=\"uifw-ninezone-zones-area\"\r\n ref={this._zonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n position: \"relative\",\r\n }}\r\n >\r\n {this.doContentLayoutRender()}\r\n {this.cloneZoneElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n </StagePanels>\r\n </StagePanels>\r\n {this.cloneZoneElements([8], runtimeProps)}\r\n <div\r\n id=\"uifw-ninezone-floating-zones-area\"\r\n ref={this._floatingZonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n position: \"absolute\",\r\n }}\r\n />\r\n </NZ_Zones>\r\n {this.cloneWidgetContentElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface WidgetContentRendererProps {\r\n anchor: HorizontalAnchor; // eslint-disable-line deprecation/deprecation\r\n isHidden: boolean;\r\n renderTo: HTMLDivElement | undefined;\r\n toolSettingsMode: ToolSettingsWidgetMode | undefined;\r\n widgetDef: WidgetDef;\r\n}\r\n\r\ninterface WidgetContentRendererState {\r\n widgetKey: number;\r\n}\r\n\r\nclass WidgetContentRenderer extends React.PureComponent<WidgetContentRendererProps, WidgetContentRendererState> {\r\n private _isMounted = false;\r\n private _content = document.createElement(\"span\");\r\n public constructor(props: WidgetContentRendererProps) {\r\n super(props);\r\n\r\n this.state = {\r\n widgetKey: 0,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n this._content.style.flexDirection = \"column\";\r\n this._content.style.height = \"100%\";\r\n if (!this.props.renderTo)\r\n return;\r\n this.props.renderTo.appendChild(this._content);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: WidgetContentRendererProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n if (this.props.isHidden !== prevProps.isHidden) {\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n }\r\n\r\n if (!this.props.renderTo || prevProps.renderTo === this.props.renderTo)\r\n return;\r\n\r\n this.props.widgetDef.saveTransientState();\r\n this.props.renderTo.appendChild(this._content);\r\n\r\n const shouldRemount = this.props.widgetDef.restoreTransientState() || this.props.widgetDef.isToolSettings;\r\n\r\n shouldRemount && this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n this._content.parentNode && this._content.parentNode.removeChild(this._content);\r\n FrontstageManager.onWidgetStateChangedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n }\r\n\r\n public override render() {\r\n if (this.props.toolSettingsMode !== undefined) {\r\n return ReactDOM.createPortal((\r\n <ToolSettingsContent\r\n anchor={this.props.anchor}\r\n key={this.state.widgetKey}\r\n mode={this.props.toolSettingsMode}\r\n >\r\n {FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.toolSettingsNode}\r\n </ToolSettingsContent>\r\n ), this._content);\r\n }\r\n\r\n if (this.props.widgetDef.state === WidgetState.Unloaded)\r\n return null;\r\n return ReactDOM.createPortal((\r\n <React.Fragment\r\n key={this.state.widgetKey}\r\n >\r\n {this.props.widgetDef.reactNode}\r\n </React.Fragment>\r\n ), this._content);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = (args: WidgetStateChangedEventArgs) => {\r\n if (this.props.widgetDef !== args.widgetDef || !this._isMounted)\r\n return;\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n if (this.props.toolSettingsMode === undefined || !this._isMounted)\r\n return;\r\n // force update when tool is activated\r\n this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n };\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport const getExtendedZone = (zoneId: WidgetZoneId, zones: ZonesManagerProps, defProvider: ZoneDefProvider): ZoneManagerProps => {\r\n const zone = zones.zones[zoneId];\r\n if (zoneId === 1 || zoneId === 3) {\r\n let extendOverId: WidgetZoneId = zoneId; // eslint-disable-line deprecation/deprecation\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n let bottomZoneId = zonesManager.bottomZones.getInitial(extendOverId);\r\n while (bottomZoneId !== undefined) {\r\n const bottomZoneDef = defProvider.getZoneDef(bottomZoneId);\r\n if (bottomZoneDef && bottomZoneDef.widgetDefs.length !== 0)\r\n break;\r\n\r\n extendOverId = bottomZoneId;\r\n bottomZoneId = zonesManager.bottomZones.getInitial(bottomZoneId);\r\n }\r\n\r\n const bottom = zones.zones[extendOverId].bounds.bottom;\r\n if (bottom === zone.bounds.bottom)\r\n return zone;\r\n return {\r\n ...zone,\r\n bounds: {\r\n ...zone.bounds,\r\n bottom,\r\n },\r\n };\r\n }\r\n return zone;\r\n};\r\n\r\n/** Hook that returns active frontstage id.\r\n * @public\r\n */\r\nexport const useActiveFrontstageId = () => {\r\n const def = useActiveFrontstageDef();\r\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\r\n return id;\r\n};\r\n\r\n/** @internal */\r\nexport function useActiveFrontstageDef() {\r\n const [def, setDef] = React.useState(FrontstageManager.activeFrontstageDef);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleActivated = (args: FrontstageActivatedEventArgs) => {\r\n setDef(args.activatedFrontstageDef);\r\n };\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(handleActivated);\r\n return () => {\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(handleActivated);\r\n };\r\n }, []);\r\n return def;\r\n}\r\n\r\n/** Hook that returns the widgetDef for a specific widgetId within the active frontstage.\r\n * @public\r\n */\r\nexport function useSpecificWidgetDef(widgetId: string) {\r\n const frontstageDef = useActiveFrontstageDef();\r\n return frontstageDef?.findWidgetDef(widgetId);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrontstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageComposer.tsx"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ const stagePanelLocations = [
42
42
  */
43
43
  export class FrontstageComposer extends React.Component {
44
44
  constructor(props) {
45
+ var _a;
45
46
  super(props);
46
47
  this._isMounted = false;
47
48
  this._handleFrontstageActivatedEvent = (args) => {
@@ -206,6 +207,7 @@ export class FrontstageComposer extends React.Component {
206
207
  this._handlePointerUp = () => {
207
208
  this.setAllowPointerUpSelection(false);
208
209
  };
210
+ (_a = FrontstageManager.activeFrontstageDef) === null || _a === void 0 ? void 0 : _a.updateWidgetDefs();
209
211
  this._frontstageDef = FrontstageManager.activeFrontstageDef;
210
212
  // Get the id and nineZoneProps for the current FrontstageDef
211
213
  const nineZone = this.determineNineZoneProps(this._frontstageDef);
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageComposer.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, StagePanelLocation, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle, RectangleProps } from \"@itwin/core-react\";\r\nimport {\r\n getDefaultNineZoneStagePanelsManagerProps, getDefaultZonesManagerProps, NineZoneManagerProps, ResizeHandle, StagePanelsManager, StagePanelType,\r\n WidgetZoneId, widgetZoneIds, ZoneTargetType,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { getNestedStagePanelKey } from \"../stagepanels/StagePanel\";\r\nimport { PanelSizeChangedEventArgs, PanelStateChangedEventArgs, StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetTab, WidgetTabs } from \"../widgets/WidgetStack\";\r\nimport { ZoneDef, ZoneState } from \"../zones/ZoneDef\";\r\nimport { FrontstageDef } from \"./FrontstageDef\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager, ModalFrontstageChangedEventArgs, ModalFrontstageInfo } from \"./FrontstageManager\";\r\nimport { ModalFrontstage } from \"./ModalFrontstage\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Interface defining callbacks for widget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface WidgetChangeHandler {\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleResize(zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabClick(widgetId: WidgetZoneId, tabIndex: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabDragStart(widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps): void;\r\n handleTabDragEnd(): void;\r\n handleTabDrag(dragged: PointProps): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void;\r\n}\r\n\r\n/** Interface defining callbacks for stage panel changes\r\n * @public\r\n */\r\nexport interface StagePanelChangeHandler {\r\n /** @alpha */\r\n handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void;\r\n /** @alpha */\r\n handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void;\r\n /** @alpha */\r\n handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void;\r\n /** @alpha */\r\n handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void;\r\n /** @alpha */\r\n handleTogglePanelCollapse(panelLocation: StagePanelLocation): void;\r\n}\r\n\r\n/** Interface defining callbacks for ZoneDropTarget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface TargetChangeHandler {\r\n handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Interface defining callbacks for nine zone changes\r\n * @public\r\n */\r\nexport interface NineZoneChangeHandler {\r\n handleFloatingZonesBoundsChange(bounds: RectangleProps): void;\r\n handleZonesBoundsChange(bounds: RectangleProps): void;\r\n}\r\n\r\n/** Interface defining a provider for Zone definitions\r\n * @public\r\n */\r\nexport interface ZoneDefProvider {\r\n getZoneDef(zoneId: number): ZoneDef | undefined;\r\n}\r\n\r\n/** Runtime Props for the Frontstage\r\n * @internal\r\n */\r\nexport interface FrontstageRuntimeProps {\r\n frontstageDef: FrontstageDef;\r\n nineZone: NineZoneManagerProps;\r\n nineZoneChangeHandler: NineZoneChangeHandler;\r\n stagePanelChangeHandler: StagePanelChangeHandler;\r\n targetChangeHandler: TargetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetChangeHandler: WidgetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetTabs: WidgetTabs;\r\n zoneDefProvider: ZoneDefProvider;\r\n}\r\n\r\n/** State for the FrontstageComposer component.\r\n * @internal\r\n */\r\ninterface FrontstageComposerState {\r\n allowPointerUpSelection: boolean;\r\n modalFrontstageCount: number;\r\n nineZone: NineZoneManagerProps;\r\n widgetTabs: WidgetTabs;\r\n}\r\n\r\nconst getDefaultWidgetTabs = (): WidgetTabs => ({\r\n [1]: [],\r\n [2]: [],\r\n [3]: [],\r\n [4]: [],\r\n [6]: [],\r\n [7]: [],\r\n [8]: [],\r\n [9]: [],\r\n});\r\n\r\nconst stagePanelLocations: ReadonlyArray<StagePanelLocation> = [\r\n StagePanelLocation.Top,\r\n StagePanelLocation.TopMost,\r\n StagePanelLocation.Left,\r\n StagePanelLocation.Right,\r\n StagePanelLocation.Bottom,\r\n StagePanelLocation.BottomMost,\r\n];\r\n\r\n/** FrontstageComposer React component.\r\n * @deprecated\r\n * @public\r\n */\r\nexport class FrontstageComposer extends React.Component<CommonProps, FrontstageComposerState>\r\n implements WidgetChangeHandler, TargetChangeHandler, ZoneDefProvider, StagePanelChangeHandler, NineZoneChangeHandler { // eslint-disable-line deprecation/deprecation\r\n\r\n private _frontstageDef: FrontstageDef | undefined;\r\n private _isMounted = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<FrontstageComposerState>;\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n\r\n this._frontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const widgetTabs = this._frontstageDef ? this.determineWidgetTabs() : getDefaultWidgetTabs();\r\n\r\n this.state = {\r\n allowPointerUpSelection: false,\r\n nineZone,\r\n modalFrontstageCount: FrontstageManager.modalFrontstageCount,\r\n widgetTabs,\r\n };\r\n }\r\n\r\n private determineNineZoneProps(frontstageDef?: FrontstageDef): NineZoneManagerProps {\r\n let nineZone: NineZoneManagerProps;\r\n // istanbul ignore if\r\n if (frontstageDef && frontstageDef.nineZone)\r\n nineZone = { ...frontstageDef.nineZone };\r\n else {\r\n const isInFooterMode = frontstageDef ? frontstageDef.isInFooterMode : false;\r\n nineZone = {\r\n zones: FrontstageManager.NineZoneManager.getZonesManager().setIsInFooterMode(isInFooterMode, getDefaultZonesManagerProps()),\r\n nested: {\r\n panels: {\r\n inner: getDefaultNineZoneStagePanelsManagerProps(),\r\n outer: getDefaultNineZoneStagePanelsManagerProps(),\r\n },\r\n },\r\n };\r\n for (const location of stagePanelLocations) {\r\n const stagePanel = frontstageDef && frontstageDef.getStagePanelDef(location);\r\n if (!stagePanel)\r\n continue;\r\n\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelKey = getNestedStagePanelKey(location);\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, nineZone.nested);\r\n nineZone = FrontstageManager.NineZoneManager.setNested(nested, nineZone);\r\n }\r\n }\r\n return nineZone;\r\n }\r\n\r\n private initializeZoneBounds() {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const frontstageDef = this._frontstageDef;\r\n if (!frontstageDef)\r\n return null;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const zonesManager = manager.getZonesManager();\r\n let zones = prevState.nineZone.zones;\r\n for (const zoneId of widgetZoneIds) {\r\n const zoneDef = frontstageDef.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n continue;\r\n // istanbul ignore next\r\n if (zoneDef.initialWidth)\r\n zones = zonesManager.setZoneWidth(zoneId, zoneDef.initialWidth, zones);\r\n }\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n\r\n }\r\n\r\n private determineWidgetTabs(): WidgetTabs {\r\n const defaultWidgetTabs = getDefaultWidgetTabs();\r\n const widgetTabs = widgetZoneIds.reduce((acc, zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n return acc;\r\n const visibleWidgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n const tabs = visibleWidgetDefs.map<WidgetTab>((widgetDef: WidgetDef) => ({\r\n badgeType: widgetDef.badgeType,\r\n iconSpec: widgetDef.iconSpec,\r\n title: widgetDef.label,\r\n widgetName: widgetDef.id,\r\n }));\r\n return {\r\n ...acc,\r\n [zoneId]: tabs,\r\n };\r\n }, defaultWidgetTabs);\r\n return widgetTabs;\r\n }\r\n\r\n private _handleFrontstageActivatedEvent = (args: FrontstageActivatedEventArgs) => {\r\n // istanbul ignore next - Save the nineZoneProps into the former FrontstageDef\r\n if (this._frontstageDef)\r\n this._frontstageDef.nineZone = { ...this.state.nineZone };\r\n\r\n this._frontstageDef = args.activatedFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n const widgetTabs = this.determineWidgetTabs();\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n nineZone,\r\n widgetTabs,\r\n }, () => {\r\n needInitialLayout && this.initializeFrontstageLayout(nineZone);\r\n this.layout();\r\n needInitialLayout && this.initializeZoneBounds();\r\n });\r\n };\r\n\r\n private initializeFrontstageLayout(nineZone: NineZoneManagerProps) {\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n\r\n widgetZoneIds.forEach((zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef || zoneDef.zoneState === ZoneState.Off)\r\n return;\r\n\r\n if (!zoneDef.allowsMerging)\r\n this.setZoneAllowsMerging(zoneId, false);\r\n\r\n if (zoneDef.mergeWithZone)\r\n this.mergeZones(zoneId, zoneDef.mergeWithZone);\r\n\r\n const zoneProps = nineZone.zones.zones[zoneId];\r\n // istanbul ignore else\r\n if (zoneProps.widgets.length >= 1) {\r\n zoneProps.widgets.forEach((widgetId) => {\r\n zoneDef.widgetDefs\r\n .filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isToolSettings && !widgetDef.isStatusBar && !widgetDef.isFreeform;\r\n })\r\n .forEach((widgetDef: WidgetDef, tabIndex: number) => {\r\n if (widgetDef.canOpen()) {\r\n this.handleWidgetStateChange(widgetId, tabIndex, true);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _handleModalFrontstageChangedEvent = (_args: ModalFrontstageChangedEventArgs) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n };\r\n\r\n private _closeModalStage = () => {\r\n FrontstageManager.closeModalFrontstage();\r\n };\r\n\r\n private renderModalFrontstage(): React.ReactNode {\r\n if (this.state.modalFrontstageCount === 0)\r\n return null;\r\n\r\n const activeModalFrontstage: ModalFrontstageInfo | undefined = FrontstageManager.activeModalFrontstage;\r\n // istanbul ignore next\r\n if (!activeModalFrontstage)\r\n return null;\r\n\r\n const { title, content, appBarRight } = activeModalFrontstage;\r\n\r\n return (\r\n <ModalFrontstage\r\n isOpen={true}\r\n title={title}\r\n closeModal={this._closeModalStage}\r\n appBarRight={appBarRight}\r\n >\r\n {content}\r\n </ModalFrontstage>\r\n );\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let content: React.ReactNode;\r\n // istanbul ignore else\r\n if (this._frontstageDef) {\r\n // istanbul ignore else\r\n if (this._frontstageDef.frontstageProvider) {\r\n const frontstageRuntimeProps: FrontstageRuntimeProps = {\r\n frontstageDef: this._frontstageDef,\r\n nineZone: this.state.nineZone,\r\n nineZoneChangeHandler: this,\r\n stagePanelChangeHandler: this,\r\n widgetChangeHandler: this,\r\n widgetTabs: this.state.widgetTabs,\r\n targetChangeHandler: this,\r\n zoneDefProvider: this,\r\n };\r\n content = React.cloneElement(this._frontstageDef.frontstageProvider.frontstage, { runtimeProps: frontstageRuntimeProps });\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), \"FrontstageDef has no FrontstageProvider\");\r\n content = null;\r\n }\r\n }\r\n\r\n return (\r\n <ToolGroupPanelContext.Provider value={this.state.allowPointerUpSelection}>\r\n <div\r\n className={this.props.className}\r\n id=\"uifw-frontstage-composer\"\r\n onPointerDown={this._handlePointerDown}\r\n onPointerUp={this._handlePointerUp}\r\n style={this.props.style}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n role=\"presentation\"\r\n >\r\n {this.renderModalFrontstage()}\r\n {content}\r\n </div>\r\n </ToolGroupPanelContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this._isMounted = true;\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n if (this._frontstageDef && needInitialLayout)\r\n this.initializeFrontstageLayout(this.state.nineZone);\r\n\r\n this.layout();\r\n this.initializeZoneBounds();\r\n window.addEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.addListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.addListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.addListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this._isMounted = false;\r\n window.removeEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.removeListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.removeListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.removeListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n // istanbul ignore next\r\n private _handleWindowResize = () => {\r\n this.layout();\r\n };\r\n\r\n // istanbul ignore next\r\n public handleResize = (zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number) => { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetResize({ zoneId, resizeBy, handle, filledHeightDiff }, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n public handleTabClick = (widgetId: WidgetZoneId, tabIndex: number) => { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore next\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n }, () => {\r\n // TODO: use NineZoneManager notifications once available\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const props = this.state.nineZone.zones;\r\n const zone = manager.findZoneWithWidget(widgetId, props);\r\n const widgets = zone ? zone.widgets : /* istanbul ignore next */[widgetId];\r\n widgets.forEach((wId) => {\r\n const zoneDef = this.getZoneDef(wId);\r\n if (!zoneDef)\r\n return;\r\n\r\n const w = props.widgets[wId];\r\n const visibleWidgets = zoneDef.widgetDefs.filter((wd) => wd.isVisible);\r\n for (let i = 0; i < visibleWidgets.length; i++) {\r\n const widgetDef = visibleWidgets[i];\r\n let state = widgetDef.state;\r\n if (w.tabIndex === i)\r\n state = WidgetState.Open;\r\n else if (state === WidgetState.Open)\r\n state = WidgetState.Closed;\r\n widgetDef.setWidgetState(state);\r\n }\r\n });\r\n },\r\n );\r\n };\r\n\r\n // istanbul ignore next\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleTabDragStart = (widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragStart({ widgetId, tabIndex, initialPosition, widgetBounds }, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDragEnd = () => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragEnd(prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDrag = (dragged: PointProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetTabDrag(dragged, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = isTargeted ? FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged({ zoneId, type }, prevState.nineZone.zones) :\r\n FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged(undefined, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n public handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void {\r\n const panel = getNestedStagePanelKey(panelLocation);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setSize(panel, size, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void {\r\n const nestedPanelKey = getNestedStagePanelKey(panelLocation);\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().resize(nestedPanelKey, resizeBy, prevState.nineZone.nested);\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n }, () => {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n const stagePanel = frontstage && frontstage.getStagePanelDef(panelLocation);\r\n if (stagePanel) {\r\n const panels = this.state.nineZone.nested.panels[nestedPanelKey.id];\r\n const panel = StagePanelsManager.getPanel(nestedPanelKey.type, panels);\r\n const panelState = isCollapsedToPanelState(panel.isCollapsed);\r\n stagePanel.panelState = panelState;\r\n }\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void {\r\n const panelKey = getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPaneTarget(paneIndex === undefined ? undefined : {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n paneIndex,\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void {\r\n const panelKey = panelLocation === undefined ? undefined : getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPanelTarget(panelKey ? {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n } : undefined);\r\n }\r\n\r\n /** @alpha */\r\n public handleTogglePanelCollapse(panelLocation: StagePanelLocation): void {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore if\r\n if (!frontstage)\r\n return;\r\n const stagePanel = frontstage.getStagePanelDef(panelLocation);\r\n // istanbul ignore if\r\n if (!stagePanel)\r\n return;\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelState = isCollapsed ? /* istanbul ignore next */ StagePanelState.Open : StagePanelState.Minimized;\r\n stagePanel.panelState = panelState;\r\n }\r\n\r\n public handleFloatingZonesBoundsChange(bounds: RectangleProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setFloatingZonesBounds(bounds, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public handleZonesBoundsChange(bounds: RectangleProps): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setZonesBounds(bounds, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const widget = prevState.nineZone.zones.widgets[widgetId];\r\n if (isOpening && widget.tabIndex === tabIndex)\r\n return null;\r\n if (!isOpening && widget.tabIndex !== tabIndex)\r\n return null;\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore if\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n }\r\n\r\n public getZoneDef(zoneId: number): ZoneDef | undefined {\r\n if (!this._frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), \"getZoneDef: There is no active frontstage\");\r\n return undefined;\r\n }\r\n\r\n const zoneDef = this._frontstageDef.getZoneDef(zoneId);\r\n\r\n // Zones can be undefined in a Frontstage\r\n\r\n return zoneDef;\r\n }\r\n\r\n // istanbul ignore next\r\n public getGhostOutlineBounds(zoneId: WidgetZoneId): RectangleProps | undefined { // eslint-disable-line deprecation/deprecation\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n return manager.getGhostOutlineBounds(zoneId, this.state.nineZone.zones);\r\n }\r\n\r\n public setZoneAllowsMerging(zoneId: WidgetZoneId, allowsMerging: boolean): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setAllowsMerging(zoneId, allowsMerging, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public mergeZones(toMergeId: WidgetZoneId, targetId: WidgetZoneId): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().mergeZone(toMergeId, targetId, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n private layout() {\r\n const zones = document.getElementById(\"uifw-ninezone-zones-area\");\r\n const floatingZones = document.getElementById(\"uifw-ninezone-floating-zones-area\");\r\n if (!zones || !floatingZones)\r\n return;\r\n let floatingBounds = Rectangle.create(floatingZones.getBoundingClientRect());\r\n const bounds = Rectangle.create(zones.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.handleZonesBoundsChange(bounds);\r\n this.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = () => {\r\n const widgetTabs = this.determineWidgetTabs();\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n widgetTabs,\r\n });\r\n };\r\n\r\n private _handlePanelStateChangedEvent = ({ panelDef, panelState }: PanelStateChangedEventArgs) => {\r\n this.setPanelState(panelDef.location, panelState);\r\n };\r\n\r\n // istanbul ignore next\r\n private _handlePanelSizeChangedEvent = ({ panelDef, size }: PanelSizeChangedEventArgs) => {\r\n (size !== undefined) && this.handlePanelInitialize(panelDef.location, size);\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const activeToolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const nineZone = activeToolSettingsProvider ? manager.showWidget(2, prevState.nineZone) : manager.hideWidget(2, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n this.setAllowPointerUpSelection(true);\r\n };\r\n\r\n private _handlePointerDown = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private _handlePointerUp = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private setAllowPointerUpSelection(allowPointerUpSelection: boolean) {\r\n // istanbul ignore if\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n // istanbul ignore if\r\n if (prevState.allowPointerUpSelection === allowPointerUpSelection)\r\n return null;\r\n return {\r\n allowPointerUpSelection,\r\n };\r\n });\r\n }\r\n\r\n private setPanelState(location: StagePanelLocation, panelState: StagePanelState) {\r\n const panelKey = getNestedStagePanelKey(location);\r\n const isCollapsed = panelStateToIsCollapsed(panelState);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const panelStateToIsCollapsed = (panelState: StagePanelState) => {\r\n switch (panelState) {\r\n case StagePanelState.Minimized:\r\n case StagePanelState.Off:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const isCollapsedToPanelState = (isCollapsed: boolean) => {\r\n switch (isCollapsed) {\r\n case true:\r\n return StagePanelState.Minimized;\r\n default:\r\n return StagePanelState.Open;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const ToolGroupPanelContext = React.createContext(false); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
1
+ {"version":3,"file":"FrontstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageComposer.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/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { PointProps, StagePanelLocation, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle, RectangleProps } from \"@itwin/core-react\";\r\nimport {\r\n getDefaultNineZoneStagePanelsManagerProps, getDefaultZonesManagerProps, NineZoneManagerProps, ResizeHandle, StagePanelsManager, StagePanelType,\r\n WidgetZoneId, widgetZoneIds, ZoneTargetType,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { getNestedStagePanelKey } from \"../stagepanels/StagePanel\";\r\nimport { PanelSizeChangedEventArgs, PanelStateChangedEventArgs, StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetTab, WidgetTabs } from \"../widgets/WidgetStack\";\r\nimport { ZoneDef, ZoneState } from \"../zones/ZoneDef\";\r\nimport { FrontstageDef } from \"./FrontstageDef\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager, ModalFrontstageChangedEventArgs, ModalFrontstageInfo } from \"./FrontstageManager\";\r\nimport { ModalFrontstage } from \"./ModalFrontstage\";\r\nimport { onEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\n\r\n/** Interface defining callbacks for widget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface WidgetChangeHandler {\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleResize(zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabClick(widgetId: WidgetZoneId, tabIndex: number): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleTabDragStart(widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps): void;\r\n handleTabDragEnd(): void;\r\n handleTabDrag(dragged: PointProps): void;\r\n // eslint-disable-next-line deprecation/deprecation\r\n handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void;\r\n}\r\n\r\n/** Interface defining callbacks for stage panel changes\r\n * @public\r\n */\r\nexport interface StagePanelChangeHandler {\r\n /** @alpha */\r\n handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void;\r\n /** @alpha */\r\n handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void;\r\n /** @alpha */\r\n handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void;\r\n /** @alpha */\r\n handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void;\r\n /** @alpha */\r\n handleTogglePanelCollapse(panelLocation: StagePanelLocation): void;\r\n}\r\n\r\n/** Interface defining callbacks for ZoneDropTarget changes\r\n * @deprecated\r\n * @public\r\n */\r\nexport interface TargetChangeHandler {\r\n handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Interface defining callbacks for nine zone changes\r\n * @public\r\n */\r\nexport interface NineZoneChangeHandler {\r\n handleFloatingZonesBoundsChange(bounds: RectangleProps): void;\r\n handleZonesBoundsChange(bounds: RectangleProps): void;\r\n}\r\n\r\n/** Interface defining a provider for Zone definitions\r\n * @public\r\n */\r\nexport interface ZoneDefProvider {\r\n getZoneDef(zoneId: number): ZoneDef | undefined;\r\n}\r\n\r\n/** Runtime Props for the Frontstage\r\n * @internal\r\n */\r\nexport interface FrontstageRuntimeProps {\r\n frontstageDef: FrontstageDef;\r\n nineZone: NineZoneManagerProps;\r\n nineZoneChangeHandler: NineZoneChangeHandler;\r\n stagePanelChangeHandler: StagePanelChangeHandler;\r\n targetChangeHandler: TargetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetChangeHandler: WidgetChangeHandler; // eslint-disable-line deprecation/deprecation\r\n widgetTabs: WidgetTabs;\r\n zoneDefProvider: ZoneDefProvider;\r\n}\r\n\r\n/** State for the FrontstageComposer component.\r\n * @internal\r\n */\r\ninterface FrontstageComposerState {\r\n allowPointerUpSelection: boolean;\r\n modalFrontstageCount: number;\r\n nineZone: NineZoneManagerProps;\r\n widgetTabs: WidgetTabs;\r\n}\r\n\r\nconst getDefaultWidgetTabs = (): WidgetTabs => ({\r\n [1]: [],\r\n [2]: [],\r\n [3]: [],\r\n [4]: [],\r\n [6]: [],\r\n [7]: [],\r\n [8]: [],\r\n [9]: [],\r\n});\r\n\r\nconst stagePanelLocations: ReadonlyArray<StagePanelLocation> = [\r\n StagePanelLocation.Top,\r\n StagePanelLocation.TopMost,\r\n StagePanelLocation.Left,\r\n StagePanelLocation.Right,\r\n StagePanelLocation.Bottom,\r\n StagePanelLocation.BottomMost,\r\n];\r\n\r\n/** FrontstageComposer React component.\r\n * @deprecated\r\n * @public\r\n */\r\nexport class FrontstageComposer extends React.Component<CommonProps, FrontstageComposerState>\r\n implements WidgetChangeHandler, TargetChangeHandler, ZoneDefProvider, StagePanelChangeHandler, NineZoneChangeHandler { // eslint-disable-line deprecation/deprecation\r\n\r\n private _frontstageDef: FrontstageDef | undefined;\r\n private _isMounted = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<FrontstageComposerState>;\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n\r\n FrontstageManager.activeFrontstageDef?.updateWidgetDefs();\r\n this._frontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const widgetTabs = this._frontstageDef ? this.determineWidgetTabs() : getDefaultWidgetTabs();\r\n\r\n this.state = {\r\n allowPointerUpSelection: false,\r\n nineZone,\r\n modalFrontstageCount: FrontstageManager.modalFrontstageCount,\r\n widgetTabs,\r\n };\r\n }\r\n\r\n private determineNineZoneProps(frontstageDef?: FrontstageDef): NineZoneManagerProps {\r\n let nineZone: NineZoneManagerProps;\r\n // istanbul ignore if\r\n if (frontstageDef && frontstageDef.nineZone)\r\n nineZone = { ...frontstageDef.nineZone };\r\n else {\r\n const isInFooterMode = frontstageDef ? frontstageDef.isInFooterMode : false;\r\n nineZone = {\r\n zones: FrontstageManager.NineZoneManager.getZonesManager().setIsInFooterMode(isInFooterMode, getDefaultZonesManagerProps()),\r\n nested: {\r\n panels: {\r\n inner: getDefaultNineZoneStagePanelsManagerProps(),\r\n outer: getDefaultNineZoneStagePanelsManagerProps(),\r\n },\r\n },\r\n };\r\n for (const location of stagePanelLocations) {\r\n const stagePanel = frontstageDef && frontstageDef.getStagePanelDef(location);\r\n if (!stagePanel)\r\n continue;\r\n\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelKey = getNestedStagePanelKey(location);\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, nineZone.nested);\r\n nineZone = FrontstageManager.NineZoneManager.setNested(nested, nineZone);\r\n }\r\n }\r\n return nineZone;\r\n }\r\n\r\n private initializeZoneBounds() {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const frontstageDef = this._frontstageDef;\r\n if (!frontstageDef)\r\n return null;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const zonesManager = manager.getZonesManager();\r\n let zones = prevState.nineZone.zones;\r\n for (const zoneId of widgetZoneIds) {\r\n const zoneDef = frontstageDef.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n continue;\r\n // istanbul ignore next\r\n if (zoneDef.initialWidth)\r\n zones = zonesManager.setZoneWidth(zoneId, zoneDef.initialWidth, zones);\r\n }\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n\r\n }\r\n\r\n private determineWidgetTabs(): WidgetTabs {\r\n const defaultWidgetTabs = getDefaultWidgetTabs();\r\n const widgetTabs = widgetZoneIds.reduce((acc, zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef)\r\n return acc;\r\n const visibleWidgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n const tabs = visibleWidgetDefs.map<WidgetTab>((widgetDef: WidgetDef) => ({\r\n badgeType: widgetDef.badgeType,\r\n iconSpec: widgetDef.iconSpec,\r\n title: widgetDef.label,\r\n widgetName: widgetDef.id,\r\n }));\r\n return {\r\n ...acc,\r\n [zoneId]: tabs,\r\n };\r\n }, defaultWidgetTabs);\r\n return widgetTabs;\r\n }\r\n\r\n private _handleFrontstageActivatedEvent = (args: FrontstageActivatedEventArgs) => {\r\n // istanbul ignore next - Save the nineZoneProps into the former FrontstageDef\r\n if (this._frontstageDef)\r\n this._frontstageDef.nineZone = { ...this.state.nineZone };\r\n\r\n this._frontstageDef = args.activatedFrontstageDef;\r\n\r\n // Get the id and nineZoneProps for the current FrontstageDef\r\n const nineZone = this.determineNineZoneProps(this._frontstageDef);\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n const widgetTabs = this.determineWidgetTabs();\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n nineZone,\r\n widgetTabs,\r\n }, () => {\r\n needInitialLayout && this.initializeFrontstageLayout(nineZone);\r\n this.layout();\r\n needInitialLayout && this.initializeZoneBounds();\r\n });\r\n };\r\n\r\n private initializeFrontstageLayout(nineZone: NineZoneManagerProps) {\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"inner\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Top).collapseOffset = 0;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).minSize = 20;\r\n nestedPanelsManager.getPanelsManager(\"outer\").getPanelManager(StagePanelType.Bottom).collapseOffset = 0;\r\n\r\n widgetZoneIds.forEach((zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (!zoneDef || zoneDef.zoneState === ZoneState.Off)\r\n return;\r\n\r\n if (!zoneDef.allowsMerging)\r\n this.setZoneAllowsMerging(zoneId, false);\r\n\r\n if (zoneDef.mergeWithZone)\r\n this.mergeZones(zoneId, zoneDef.mergeWithZone);\r\n\r\n const zoneProps = nineZone.zones.zones[zoneId];\r\n // istanbul ignore else\r\n if (zoneProps.widgets.length >= 1) {\r\n zoneProps.widgets.forEach((widgetId) => {\r\n zoneDef.widgetDefs\r\n .filter((widgetDef: WidgetDef) => {\r\n return widgetDef.isVisible && !widgetDef.isToolSettings && !widgetDef.isStatusBar && !widgetDef.isFreeform;\r\n })\r\n .forEach((widgetDef: WidgetDef, tabIndex: number) => {\r\n if (widgetDef.canOpen()) {\r\n this.handleWidgetStateChange(widgetId, tabIndex, true);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _handleModalFrontstageChangedEvent = (_args: ModalFrontstageChangedEventArgs) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n };\r\n\r\n private _closeModalStage = () => {\r\n FrontstageManager.closeModalFrontstage();\r\n };\r\n\r\n private renderModalFrontstage(): React.ReactNode {\r\n if (this.state.modalFrontstageCount === 0)\r\n return null;\r\n\r\n const activeModalFrontstage: ModalFrontstageInfo | undefined = FrontstageManager.activeModalFrontstage;\r\n // istanbul ignore next\r\n if (!activeModalFrontstage)\r\n return null;\r\n\r\n const { title, content, appBarRight } = activeModalFrontstage;\r\n\r\n return (\r\n <ModalFrontstage\r\n isOpen={true}\r\n title={title}\r\n closeModal={this._closeModalStage}\r\n appBarRight={appBarRight}\r\n >\r\n {content}\r\n </ModalFrontstage>\r\n );\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let content: React.ReactNode;\r\n // istanbul ignore else\r\n if (this._frontstageDef) {\r\n // istanbul ignore else\r\n if (this._frontstageDef.frontstageProvider) {\r\n const frontstageRuntimeProps: FrontstageRuntimeProps = {\r\n frontstageDef: this._frontstageDef,\r\n nineZone: this.state.nineZone,\r\n nineZoneChangeHandler: this,\r\n stagePanelChangeHandler: this,\r\n widgetChangeHandler: this,\r\n widgetTabs: this.state.widgetTabs,\r\n targetChangeHandler: this,\r\n zoneDefProvider: this,\r\n };\r\n content = React.cloneElement(this._frontstageDef.frontstageProvider.frontstage, { runtimeProps: frontstageRuntimeProps });\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), \"FrontstageDef has no FrontstageProvider\");\r\n content = null;\r\n }\r\n }\r\n\r\n return (\r\n <ToolGroupPanelContext.Provider value={this.state.allowPointerUpSelection}>\r\n <div\r\n className={this.props.className}\r\n id=\"uifw-frontstage-composer\"\r\n onPointerDown={this._handlePointerDown}\r\n onPointerUp={this._handlePointerUp}\r\n style={this.props.style}\r\n onKeyDown={onEscapeSetFocusToHome}\r\n role=\"presentation\"\r\n >\r\n {this.renderModalFrontstage()}\r\n {content}\r\n </div>\r\n </ToolGroupPanelContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this._isMounted = true;\r\n const needInitialLayout = (this._frontstageDef && this._frontstageDef.nineZone) ? /* istanbul ignore next */ false : true;\r\n if (this._frontstageDef && needInitialLayout)\r\n this.initializeFrontstageLayout(this.state.nineZone);\r\n\r\n this.layout();\r\n this.initializeZoneBounds();\r\n window.addEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.addListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.addListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.addListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.addListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this._isMounted = false;\r\n window.removeEventListener(\"resize\", this._handleWindowResize, true);\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(this._handleFrontstageActivatedEvent);\r\n FrontstageManager.onModalFrontstageChangedEvent.removeListener(this._handleModalFrontstageChangedEvent);\r\n FrontstageManager.onPanelStateChangedEvent.removeListener(this._handlePanelStateChangedEvent);\r\n FrontstageManager.onPanelSizeChangedEvent.removeListener(this._handlePanelSizeChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n FrontstageManager.onToolPanelOpenedEvent.removeListener(this._handleToolPanelOpenedEvent);\r\n FrontstageManager.onWidgetDefsUpdatedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n }\r\n\r\n // istanbul ignore next\r\n private _handleWindowResize = () => {\r\n this.layout();\r\n };\r\n\r\n // istanbul ignore next\r\n public handleResize = (zoneId: WidgetZoneId, resizeBy: number, handle: ResizeHandle, filledHeightDiff: number) => { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetResize({ zoneId, resizeBy, handle, filledHeightDiff }, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n public handleTabClick = (widgetId: WidgetZoneId, tabIndex: number) => { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore next\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n }, () => {\r\n // TODO: use NineZoneManager notifications once available\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const props = this.state.nineZone.zones;\r\n const zone = manager.findZoneWithWidget(widgetId, props);\r\n const widgets = zone ? zone.widgets : /* istanbul ignore next */[widgetId];\r\n widgets.forEach((wId) => {\r\n const zoneDef = this.getZoneDef(wId);\r\n if (!zoneDef)\r\n return;\r\n\r\n const w = props.widgets[wId];\r\n const visibleWidgets = zoneDef.widgetDefs.filter((wd) => wd.isVisible);\r\n for (let i = 0; i < visibleWidgets.length; i++) {\r\n const widgetDef = visibleWidgets[i];\r\n let state = widgetDef.state;\r\n if (w.tabIndex === i)\r\n state = WidgetState.Open;\r\n else if (state === WidgetState.Open)\r\n state = WidgetState.Closed;\r\n widgetDef.setWidgetState(state);\r\n }\r\n });\r\n },\r\n );\r\n };\r\n\r\n // istanbul ignore next\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleTabDragStart = (widgetId: WidgetZoneId, tabIndex: number, initialPosition: PointProps, widgetBounds: RectangleProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragStart({ widgetId, tabIndex, initialPosition, widgetBounds }, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDragEnd = () => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabDragEnd(prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTabDrag = (dragged: PointProps) => {\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().handleWidgetTabDrag(dragged, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n public handleTargetChanged(zoneId: WidgetZoneId, type: ZoneTargetType, isTargeted: boolean): void { // eslint-disable-line deprecation/deprecation\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = isTargeted ? FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged({ zoneId, type }, prevState.nineZone.zones) :\r\n FrontstageManager.NineZoneManager.getZonesManager().handleTargetChanged(undefined, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n public handlePanelInitialize(panelLocation: StagePanelLocation, size: number): void {\r\n const panel = getNestedStagePanelKey(panelLocation);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setSize(panel, size, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelResize(panelLocation: StagePanelLocation, resizeBy: number): void {\r\n const nestedPanelKey = getNestedStagePanelKey(panelLocation);\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().resize(nestedPanelKey, resizeBy, prevState.nineZone.nested);\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n }, () => {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n const stagePanel = frontstage && frontstage.getStagePanelDef(panelLocation);\r\n if (stagePanel) {\r\n const panels = this.state.nineZone.nested.panels[nestedPanelKey.id];\r\n const panel = StagePanelsManager.getPanel(nestedPanelKey.type, panels);\r\n const panelState = isCollapsedToPanelState(panel.isCollapsed);\r\n stagePanel.panelState = panelState;\r\n }\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelPaneTargetChange(panelLocation: StagePanelLocation, paneIndex: number | undefined): void {\r\n const panelKey = getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPaneTarget(paneIndex === undefined ? undefined : {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n paneIndex,\r\n });\r\n }\r\n\r\n /** @alpha */\r\n // istanbul ignore next\r\n public handlePanelTargetChange(panelLocation: StagePanelLocation | undefined): void {\r\n const panelKey = panelLocation === undefined ? undefined : getNestedStagePanelKey(panelLocation);\r\n FrontstageManager.NineZoneManager.setPanelTarget(panelKey ? {\r\n panelId: panelKey.id,\r\n panelType: panelKey.type,\r\n } : undefined);\r\n }\r\n\r\n /** @alpha */\r\n public handleTogglePanelCollapse(panelLocation: StagePanelLocation): void {\r\n const frontstage = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore if\r\n if (!frontstage)\r\n return;\r\n const stagePanel = frontstage.getStagePanelDef(panelLocation);\r\n // istanbul ignore if\r\n if (!stagePanel)\r\n return;\r\n const isCollapsed = panelStateToIsCollapsed(stagePanel.panelState);\r\n const panelState = isCollapsed ? /* istanbul ignore next */ StagePanelState.Open : StagePanelState.Minimized;\r\n stagePanel.panelState = panelState;\r\n }\r\n\r\n public handleFloatingZonesBoundsChange(bounds: RectangleProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setFloatingZonesBounds(bounds, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public handleZonesBoundsChange(bounds: RectangleProps): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setZonesBounds(bounds, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public handleWidgetStateChange(widgetId: WidgetZoneId, tabIndex: number, isOpening: boolean): void {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const widget = prevState.nineZone.zones.widgets[widgetId];\r\n if (isOpening && widget.tabIndex === tabIndex)\r\n return null;\r\n if (!isOpening && widget.tabIndex !== tabIndex)\r\n return null;\r\n const nineZone = FrontstageManager.NineZoneManager.handleWidgetTabClick(widgetId, tabIndex, prevState.nineZone);\r\n // istanbul ignore if\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n }\r\n\r\n public getZoneDef(zoneId: number): ZoneDef | undefined {\r\n if (!this._frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), \"getZoneDef: There is no active frontstage\");\r\n return undefined;\r\n }\r\n\r\n const zoneDef = this._frontstageDef.getZoneDef(zoneId);\r\n\r\n // Zones can be undefined in a Frontstage\r\n\r\n return zoneDef;\r\n }\r\n\r\n // istanbul ignore next\r\n public getGhostOutlineBounds(zoneId: WidgetZoneId): RectangleProps | undefined { // eslint-disable-line deprecation/deprecation\r\n const manager = FrontstageManager.NineZoneManager.getZonesManager();\r\n return manager.getGhostOutlineBounds(zoneId, this.state.nineZone.zones);\r\n }\r\n\r\n public setZoneAllowsMerging(zoneId: WidgetZoneId, allowsMerging: boolean): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().setAllowsMerging(zoneId, allowsMerging, prevState.nineZone.zones);\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n public mergeZones(toMergeId: WidgetZoneId, targetId: WidgetZoneId): void { // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const zones = FrontstageManager.NineZoneManager.getZonesManager().mergeZone(toMergeId, targetId, prevState.nineZone.zones);\r\n // istanbul ignore else\r\n if (zones === prevState.nineZone.zones)\r\n return null;\r\n // istanbul ignore next\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n zones,\r\n },\r\n };\r\n });\r\n }\r\n\r\n private layout() {\r\n const zones = document.getElementById(\"uifw-ninezone-zones-area\");\r\n const floatingZones = document.getElementById(\"uifw-ninezone-floating-zones-area\");\r\n if (!zones || !floatingZones)\r\n return;\r\n let floatingBounds = Rectangle.create(floatingZones.getBoundingClientRect());\r\n const bounds = Rectangle.create(zones.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.handleZonesBoundsChange(bounds);\r\n this.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = () => {\r\n const widgetTabs = this.determineWidgetTabs();\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n widgetTabs,\r\n });\r\n };\r\n\r\n private _handlePanelStateChangedEvent = ({ panelDef, panelState }: PanelStateChangedEventArgs) => {\r\n this.setPanelState(panelDef.location, panelState);\r\n };\r\n\r\n // istanbul ignore next\r\n private _handlePanelSizeChangedEvent = ({ panelDef, size }: PanelSizeChangedEventArgs) => {\r\n (size !== undefined) && this.handlePanelInitialize(panelDef.location, size);\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n const activeToolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n const manager = FrontstageManager.NineZoneManager;\r\n const nineZone = activeToolSettingsProvider ? manager.showWidget(2, prevState.nineZone) : manager.hideWidget(2, prevState.nineZone);\r\n if (nineZone === prevState.nineZone)\r\n return null;\r\n return {\r\n nineZone,\r\n };\r\n });\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleToolPanelOpenedEvent = () => {\r\n this.setAllowPointerUpSelection(true);\r\n };\r\n\r\n private _handlePointerDown = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private _handlePointerUp = () => {\r\n this.setAllowPointerUpSelection(false);\r\n };\r\n\r\n private setAllowPointerUpSelection(allowPointerUpSelection: boolean) {\r\n // istanbul ignore if\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState((prevState) => {\r\n // istanbul ignore if\r\n if (prevState.allowPointerUpSelection === allowPointerUpSelection)\r\n return null;\r\n return {\r\n allowPointerUpSelection,\r\n };\r\n });\r\n }\r\n\r\n private setPanelState(location: StagePanelLocation, panelState: StagePanelState) {\r\n const panelKey = getNestedStagePanelKey(location);\r\n const isCollapsed = panelStateToIsCollapsed(panelState);\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState((prevState) => {\r\n const nested = FrontstageManager.NineZoneManager.getNestedPanelsManager().setIsCollapsed(panelKey, isCollapsed, prevState.nineZone.nested);\r\n // istanbul ignore if\r\n if (nested === prevState.nineZone.nested)\r\n return null;\r\n return {\r\n nineZone: {\r\n ...prevState.nineZone,\r\n nested,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const panelStateToIsCollapsed = (panelState: StagePanelState) => {\r\n switch (panelState) {\r\n case StagePanelState.Minimized:\r\n case StagePanelState.Off:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const isCollapsedToPanelState = (isCollapsed: boolean) => {\r\n switch (isCollapsed) {\r\n case true:\r\n return StagePanelState.Minimized;\r\n default:\r\n return StagePanelState.Open;\r\n }\r\n};\r\n\r\n/** @internal */\r\nexport const ToolGroupPanelContext = React.createContext(false); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}