@itwin/appui-react 3.2.0-dev.22 → 3.2.0-dev.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -0
- package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js +9 -1
- package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +2 -0
- package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +9 -4
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +6 -10
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -3
- package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +2 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -1
- package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.js +10 -0
- package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.js +1 -0
- package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +17 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +124 -123
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +10 -0
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +13 -3
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +56 -7
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.js +1 -0
- package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -3
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -0
- package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/Frontstage.js +7 -0
- package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js +2 -0
- package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +9 -4
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +6 -10
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -3
- package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +2 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -1
- package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.js +11 -1
- package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.js +1 -0
- package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +17 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +125 -124
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +10 -0
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +13 -3
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.d.ts +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +56 -7
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.js +1 -0
- package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
- package/package.json +33 -32
|
@@ -14,7 +14,7 @@ import { assert, Logger, ProcessDetector } from "@itwin/core-bentley";
|
|
|
14
14
|
import { StagePanelLocation, UiItemsManager, WidgetState } from "@itwin/appui-abstract";
|
|
15
15
|
import { Size, UiStateStorageStatus } from "@itwin/core-react";
|
|
16
16
|
import { ToolbarPopupAutoHideContext } from "@itwin/components-react";
|
|
17
|
-
import { addPanelWidget, addTab, addWidgetTabToFloatingPanel, convertAllPopupWidgetContainersToFloating, createNineZoneState, createTabsState, createTabState, createWidgetState, findTab, findWidget, floatingWidgetBringToFront, FloatingWidgets, getUniqueId, isFloatingLocation, isHorizontalPanelSide, NineZone, NineZoneStateReducer, panelSides, removeTab, toolSettingsTabId, WidgetPanels, } from "@itwin/appui-layout-react";
|
|
17
|
+
import { addPanelWidget, addTab, addWidgetTabToFloatingPanel, addWidgetTabToPanelSection, convertAllPopupWidgetContainersToFloating, createNineZoneState, createTabsState, createTabState, createWidgetState, findTab, findWidget, floatingWidgetBringToFront, FloatingWidgets, getUniqueId, getWidgetPanelSectionId, isFloatingLocation, isHorizontalPanelSide, NineZone, NineZoneStateReducer, panelSides, removeTab, toolSettingsTabId, WidgetPanels, } from "@itwin/appui-layout-react";
|
|
18
18
|
import { useActiveFrontstageDef } from "../frontstage/Frontstage";
|
|
19
19
|
import { FrontstageManager } from "../frontstage/FrontstageManager";
|
|
20
20
|
import { StagePanelState } from "../stagepanels/StagePanelDef";
|
|
@@ -31,7 +31,7 @@ import { ToolSettingsContent, WidgetPanelsToolSettings } from "./ToolSettings";
|
|
|
31
31
|
import { useEscapeSetFocusToHome } from "../hooks/useEscapeSetFocusToHome";
|
|
32
32
|
import { useSelector } from "react-redux";
|
|
33
33
|
import { useUiVisibility } from "../hooks/useUiVisibility";
|
|
34
|
-
const panelZoneKeys = ["start", "
|
|
34
|
+
const panelZoneKeys = ["start", "end"];
|
|
35
35
|
// istanbul ignore next
|
|
36
36
|
const WidgetPanelsFrontstageComponent = React.memo(function WidgetPanelsFrontstageComponent() {
|
|
37
37
|
const activeModalFrontstageInfo = useActiveModalFrontstageInfo();
|
|
@@ -211,6 +211,7 @@ export function addWidgets(state, widgets, side, widgetId) {
|
|
|
211
211
|
label,
|
|
212
212
|
iconSpec: widget.iconSpec,
|
|
213
213
|
preferredPanelWidgetSize: widget.preferredPanelSize,
|
|
214
|
+
preferredFloatingWidgetSize: widget.defaultFloatingSize,
|
|
214
215
|
canPopout: widget.canPopout,
|
|
215
216
|
isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
|
|
216
217
|
});
|
|
@@ -233,15 +234,16 @@ export function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
|
|
|
233
234
|
var _a;
|
|
234
235
|
if (widgetDefs.length === 0)
|
|
235
236
|
return state;
|
|
236
|
-
// Add
|
|
237
|
-
const tabs = new Array();
|
|
237
|
+
// Add missing widget tabs.
|
|
238
238
|
for (const widgetDef of widgetDefs) {
|
|
239
239
|
const label = getWidgetLabel(widgetDef.label);
|
|
240
240
|
const saveTab = state.tabs[widgetDef.id];
|
|
241
241
|
const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;
|
|
242
|
-
const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize :
|
|
242
|
+
const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;
|
|
243
243
|
const preferredPopoutWidgetSize = saveTab ? saveTab.preferredPopoutWidgetSize : undefined;
|
|
244
|
-
|
|
244
|
+
// if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized
|
|
245
|
+
const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)
|
|
246
|
+
: !!widgetDef.defaultFloatingSize;
|
|
245
247
|
state = addTab(state, widgetDef.id, {
|
|
246
248
|
label,
|
|
247
249
|
iconSpec: widgetDef.iconSpec,
|
|
@@ -260,29 +262,8 @@ export function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
|
|
|
260
262
|
state = addWidgetTabToFloatingPanel(state, floatingContainerId, widgetDef.id, homePanelInfo, preferredFloatingWidgetSize, preferredPosition, userSized, widgetDef.isFloatingStateWindowResizable);
|
|
261
263
|
}
|
|
262
264
|
else {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
if (tabs.length) {
|
|
267
|
-
const panel = state.panels[side];
|
|
268
|
-
preferredWidgetIndex = preferredWidgetIndex >= panel.maxWidgetCount ? panel.maxWidgetCount - 1 : preferredWidgetIndex;
|
|
269
|
-
if (preferredWidgetIndex < panel.widgets.length) {
|
|
270
|
-
// Append tabs to existing widget.
|
|
271
|
-
const widgetId = panel.widgets[preferredWidgetIndex];
|
|
272
|
-
state = produce(state, (draft) => {
|
|
273
|
-
const widget = draft.widgets[widgetId];
|
|
274
|
-
for (const tab of tabs) {
|
|
275
|
-
widget.tabs.push(tab);
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
const newWidgetId = getNextAvailablePanelWidgetId(panel);
|
|
281
|
-
const widget = createWidgetState(newWidgetId, tabs);
|
|
282
|
-
state = produce(state, (draft) => {
|
|
283
|
-
draft.panels[side].widgets.push(widget.id);
|
|
284
|
-
draft.widgets[widget.id] = castDraft(widget);
|
|
285
|
-
});
|
|
265
|
+
const widgetPanelSectionId = getWidgetPanelSectionId(side, preferredWidgetIndex);
|
|
266
|
+
state = addWidgetTabToPanelSection(state, side, widgetPanelSectionId, widgetDef.id);
|
|
286
267
|
}
|
|
287
268
|
}
|
|
288
269
|
return state;
|
|
@@ -306,28 +287,26 @@ function processPopoutWidgets(initialState, frontstageDef) {
|
|
|
306
287
|
* @internal
|
|
307
288
|
*/
|
|
308
289
|
export function addMissingWidgets(frontstageDef, initialState) {
|
|
309
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
290
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
310
291
|
let state = initialState;
|
|
311
292
|
state = appendWidgets(state, determineNewWidgets((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs, initialState), "left", 0);
|
|
312
293
|
state = appendWidgets(state, determineNewWidgets((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs, initialState), "left", 0);
|
|
313
294
|
state = appendWidgets(state, determineNewWidgets((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs, initialState), "left", 1);
|
|
314
|
-
state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.
|
|
315
|
-
state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.
|
|
316
|
-
state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.
|
|
317
|
-
state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.
|
|
318
|
-
state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.
|
|
319
|
-
state = appendWidgets(state, determineNewWidgets((_j = frontstageDef.
|
|
320
|
-
state = appendWidgets(state, determineNewWidgets((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.
|
|
321
|
-
state = appendWidgets(state, determineNewWidgets((_l = frontstageDef.
|
|
322
|
-
state = appendWidgets(state, determineNewWidgets((_m = frontstageDef.
|
|
323
|
-
state = appendWidgets(state, determineNewWidgets((_o = frontstageDef.
|
|
324
|
-
state = appendWidgets(state, determineNewWidgets((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.
|
|
325
|
-
state = appendWidgets(state, determineNewWidgets((_q = frontstageDef.
|
|
326
|
-
state = appendWidgets(state, determineNewWidgets((_r = frontstageDef.
|
|
327
|
-
state = appendWidgets(state, determineNewWidgets((_s = frontstageDef.
|
|
328
|
-
state = appendWidgets(state, determineNewWidgets((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.
|
|
329
|
-
state = appendWidgets(state, determineNewWidgets((_u = frontstageDef.bottomMostPanel) === null || _u === void 0 ? void 0 : _u.panelWidgetDefs, initialState), "bottom", 1); // eslint-disable-line deprecation/deprecation
|
|
330
|
-
state = appendWidgets(state, determineNewWidgets((_v = frontstageDef.bottomPanel) === null || _v === void 0 ? void 0 : _v.panelZones.end.widgetDefs, initialState), "bottom", 1);
|
|
295
|
+
state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelWidgetDefs, initialState), "left", 1);
|
|
296
|
+
state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelZones.end.widgetDefs, initialState), "left", 1);
|
|
297
|
+
state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.centerRight) === null || _f === void 0 ? void 0 : _f.widgetDefs, initialState), "right", 0);
|
|
298
|
+
state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.rightPanel) === null || _g === void 0 ? void 0 : _g.panelZones.start.widgetDefs, initialState), "right", 0);
|
|
299
|
+
state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.bottomRight) === null || _h === void 0 ? void 0 : _h.widgetDefs, initialState), "right", 1);
|
|
300
|
+
state = appendWidgets(state, determineNewWidgets((_j = frontstageDef.rightPanel) === null || _j === void 0 ? void 0 : _j.panelWidgetDefs, initialState), "right", 1);
|
|
301
|
+
state = appendWidgets(state, determineNewWidgets((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.end.widgetDefs, initialState), "right", 1);
|
|
302
|
+
state = appendWidgets(state, determineNewWidgets((_l = frontstageDef.topPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs, initialState), "top", 0);
|
|
303
|
+
state = appendWidgets(state, determineNewWidgets((_m = frontstageDef.topPanel) === null || _m === void 0 ? void 0 : _m.panelZones.start.widgetDefs, initialState), "top", 0);
|
|
304
|
+
state = appendWidgets(state, determineNewWidgets((_o = frontstageDef.topMostPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs, initialState), "top", 1); // eslint-disable-line deprecation/deprecation
|
|
305
|
+
state = appendWidgets(state, determineNewWidgets((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.end.widgetDefs, initialState), "top", 1);
|
|
306
|
+
state = appendWidgets(state, determineNewWidgets((_q = frontstageDef.bottomPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs, initialState), "bottom", 0);
|
|
307
|
+
state = appendWidgets(state, determineNewWidgets((_r = frontstageDef.bottomPanel) === null || _r === void 0 ? void 0 : _r.panelZones.start.widgetDefs, initialState), "bottom", 0);
|
|
308
|
+
state = appendWidgets(state, determineNewWidgets((_s = frontstageDef.bottomMostPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs, initialState), "bottom", 1); // eslint-disable-line deprecation/deprecation
|
|
309
|
+
state = appendWidgets(state, determineNewWidgets((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.end.widgetDefs, initialState), "bottom", 1);
|
|
331
310
|
return state;
|
|
332
311
|
}
|
|
333
312
|
/** Removes widgets with Hidden defaultState. */
|
|
@@ -383,18 +362,12 @@ export function getWidgetId(side, key) {
|
|
|
383
362
|
if (key === "start") {
|
|
384
363
|
return "leftStart";
|
|
385
364
|
}
|
|
386
|
-
else if (key === "middle") {
|
|
387
|
-
return "leftMiddle";
|
|
388
|
-
}
|
|
389
365
|
return "leftEnd";
|
|
390
366
|
}
|
|
391
367
|
case "right": {
|
|
392
368
|
if (key === "start") {
|
|
393
369
|
return "rightStart";
|
|
394
370
|
}
|
|
395
|
-
else if (key === "middle") {
|
|
396
|
-
return "rightMiddle";
|
|
397
|
-
}
|
|
398
371
|
return "rightEnd";
|
|
399
372
|
}
|
|
400
373
|
case "top": {
|
|
@@ -411,74 +384,90 @@ export function getWidgetId(side, key) {
|
|
|
411
384
|
}
|
|
412
385
|
}
|
|
413
386
|
/** @internal */
|
|
414
|
-
function getNextAvailablePanelWidgetId(panel) {
|
|
415
|
-
const index = panel.widgets.length;
|
|
416
|
-
return getWidgetId(panel.side, panelZoneKeys[index]);
|
|
417
|
-
}
|
|
418
|
-
function isVerticalPanelSide(side) { return !isHorizontalPanelSide(side); }
|
|
419
|
-
/** @internal */
|
|
420
387
|
export function getPanelZoneWidgets(frontstageDef, panelZone) {
|
|
421
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
388
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
422
389
|
switch (panelZone) {
|
|
423
390
|
case "leftStart": {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
return
|
|
431
|
-
...((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs) || [],
|
|
432
|
-
...((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.middle.widgetDefs) || [],
|
|
433
|
-
];
|
|
391
|
+
const outArray = [...((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs) || []];
|
|
392
|
+
(_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
393
|
+
// istanbul ignore else
|
|
394
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
395
|
+
outArray.push(widgetDef);
|
|
396
|
+
});
|
|
397
|
+
return outArray;
|
|
434
398
|
}
|
|
435
399
|
case "leftEnd": {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
400
|
+
const outArray = [...((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs) || []];
|
|
401
|
+
(_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
402
|
+
// istanbul ignore else
|
|
403
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
404
|
+
outArray.push(widgetDef);
|
|
405
|
+
});
|
|
406
|
+
(_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelWidgetDefs.forEach((widgetDef) => {
|
|
407
|
+
// istanbul ignore else
|
|
408
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
409
|
+
outArray.push(widgetDef);
|
|
410
|
+
});
|
|
411
|
+
return outArray;
|
|
440
412
|
}
|
|
441
413
|
case "rightStart": {
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
return
|
|
449
|
-
...((_j = frontstageDef.bottomRight) === null || _j === void 0 ? void 0 : _j.widgetDefs) || [],
|
|
450
|
-
...((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.middle.widgetDefs) || [],
|
|
451
|
-
];
|
|
414
|
+
const outArray = [...((_f = frontstageDef.centerRight) === null || _f === void 0 ? void 0 : _f.widgetDefs) || []];
|
|
415
|
+
(_g = frontstageDef.rightPanel) === null || _g === void 0 ? void 0 : _g.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
416
|
+
// istanbul ignore else
|
|
417
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
418
|
+
outArray.push(widgetDef);
|
|
419
|
+
});
|
|
420
|
+
return outArray;
|
|
452
421
|
}
|
|
453
422
|
case "rightEnd": {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
423
|
+
const outArray = [...((_h = frontstageDef.bottomRight) === null || _h === void 0 ? void 0 : _h.widgetDefs) || []];
|
|
424
|
+
(_j = frontstageDef.rightPanel) === null || _j === void 0 ? void 0 : _j.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
425
|
+
// istanbul ignore else
|
|
426
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
427
|
+
outArray.push(widgetDef);
|
|
428
|
+
});
|
|
429
|
+
(_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelWidgetDefs.forEach((widgetDef) => {
|
|
430
|
+
// istanbul ignore else
|
|
431
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
432
|
+
outArray.push(widgetDef);
|
|
433
|
+
});
|
|
434
|
+
return outArray;
|
|
458
435
|
}
|
|
459
436
|
case "topStart": {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
437
|
+
const outArray = [...((_l = frontstageDef.topPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs) || []];
|
|
438
|
+
(_m = frontstageDef.topPanel) === null || _m === void 0 ? void 0 : _m.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
439
|
+
// istanbul ignore else
|
|
440
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
441
|
+
outArray.push(widgetDef);
|
|
442
|
+
});
|
|
443
|
+
return outArray;
|
|
464
444
|
}
|
|
465
445
|
case "topEnd": {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
446
|
+
const outArray = [...((_o = frontstageDef.topMostPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs) || []]; // eslint-disable-line deprecation/deprecation
|
|
447
|
+
(_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
448
|
+
// istanbul ignore else
|
|
449
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
450
|
+
outArray.push(widgetDef);
|
|
451
|
+
});
|
|
452
|
+
return outArray;
|
|
470
453
|
}
|
|
471
454
|
case "bottomStart": {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
455
|
+
const outArray = [...((_q = frontstageDef.bottomPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs) || []];
|
|
456
|
+
(_r = frontstageDef.bottomPanel) === null || _r === void 0 ? void 0 : _r.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
457
|
+
// istanbul ignore else
|
|
458
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
459
|
+
outArray.push(widgetDef);
|
|
460
|
+
});
|
|
461
|
+
return outArray;
|
|
476
462
|
}
|
|
477
463
|
case "bottomEnd": {
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
464
|
+
const outArray = [...((_s = frontstageDef.bottomMostPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs) || []]; // eslint-disable-line deprecation/deprecation
|
|
465
|
+
(_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
466
|
+
// istanbul ignore else
|
|
467
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
468
|
+
outArray.push(widgetDef);
|
|
469
|
+
});
|
|
470
|
+
return outArray;
|
|
482
471
|
}
|
|
483
472
|
}
|
|
484
473
|
}
|
|
@@ -487,11 +476,6 @@ export function addPanelWidgets(state, frontstageDef, side) {
|
|
|
487
476
|
const start = getWidgetId(side, "start");
|
|
488
477
|
const startWidgets = getPanelZoneWidgets(frontstageDef, start);
|
|
489
478
|
state = addWidgets(state, startWidgets, side, start);
|
|
490
|
-
if (isVerticalPanelSide(side)) {
|
|
491
|
-
const middle = getWidgetId(side, "middle");
|
|
492
|
-
const middleWidgets = getPanelZoneWidgets(frontstageDef, middle);
|
|
493
|
-
state = addWidgets(state, middleWidgets, side, middle);
|
|
494
|
-
}
|
|
495
479
|
const end = getWidgetId(side, "end");
|
|
496
480
|
const endWidgets = getPanelZoneWidgets(frontstageDef, end);
|
|
497
481
|
state = addWidgets(state, endWidgets, side, end);
|
|
@@ -529,7 +513,7 @@ function getPanelMaxSize(maxSizeSpec, panel, nineZoneSize) {
|
|
|
529
513
|
const size = isHorizontalPanelSide(panel) ? nineZoneSize.height : nineZoneSize.width;
|
|
530
514
|
return maxSizeSpec.percentage / 100 * size;
|
|
531
515
|
}
|
|
532
|
-
const stateVersion =
|
|
516
|
+
const stateVersion = 12; // this needs to be bumped when NineZoneState is changed (to recreate layout).
|
|
533
517
|
/** @internal */
|
|
534
518
|
export function initializeNineZoneState(frontstageDef) {
|
|
535
519
|
let nineZone = defaultNineZone;
|
|
@@ -613,6 +597,31 @@ export function restoreNineZoneState(frontstageDef, saved) {
|
|
|
613
597
|
isFloatingStateWindowResizable: widgetDef === null || widgetDef === void 0 ? void 0 : widgetDef.isFloatingStateWindowResizable,
|
|
614
598
|
};
|
|
615
599
|
}
|
|
600
|
+
// remove center panel section if one is found in left or right panels
|
|
601
|
+
const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === "leftMiddle");
|
|
602
|
+
// istanbul ignore next
|
|
603
|
+
if (-1 !== oldLeftMiddleIndex) {
|
|
604
|
+
draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== "leftMiddle");
|
|
605
|
+
if ("leftEnd" in draft.widgets) {
|
|
606
|
+
draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));
|
|
607
|
+
}
|
|
608
|
+
else {
|
|
609
|
+
draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };
|
|
610
|
+
delete draft.widgets.leftMiddle;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === "rightMiddle");
|
|
614
|
+
// istanbul ignore next
|
|
615
|
+
if (-1 !== oldRightMiddleIndex) {
|
|
616
|
+
draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== "rightMiddle");
|
|
617
|
+
if ("rightEnd" in draft.widgets) {
|
|
618
|
+
draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));
|
|
619
|
+
}
|
|
620
|
+
else {
|
|
621
|
+
draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };
|
|
622
|
+
delete draft.widgets.rightMiddle;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
616
625
|
return;
|
|
617
626
|
});
|
|
618
627
|
if (FrontstageManager.nineZoneSize && (0 !== FrontstageManager.nineZoneSize.height || 0 !== FrontstageManager.nineZoneSize.width)) {
|
|
@@ -661,6 +670,7 @@ function addRemovedTab(nineZone, widgetDef) {
|
|
|
661
670
|
const newTab = createTabState(widgetDef.id, {
|
|
662
671
|
label: getWidgetLabel(widgetDef.label),
|
|
663
672
|
canPopout: widgetDef.canPopout,
|
|
673
|
+
iconSpec: widgetDef.iconSpec,
|
|
664
674
|
preferredPanelWidgetSize: widgetDef.preferredPanelSize,
|
|
665
675
|
isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
|
|
666
676
|
});
|
|
@@ -721,20 +731,11 @@ export const setWidgetState = produce((nineZone, widgetDef, state) => {
|
|
|
721
731
|
location = findTab(nineZone, id);
|
|
722
732
|
assert(!!location);
|
|
723
733
|
}
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
if ("side" in location) {
|
|
730
|
-
const panel = nineZone.panels[location.side];
|
|
731
|
-
const maximized = panel.widgets.find((wId) => {
|
|
732
|
-
const w = nineZone.widgets[wId];
|
|
733
|
-
return !w.minimized;
|
|
734
|
-
});
|
|
735
|
-
if (maximized === undefined)
|
|
736
|
-
widget.minimized = minimized;
|
|
737
|
-
return;
|
|
734
|
+
if (isFloatingLocation(location)) {
|
|
735
|
+
const widget = nineZone.widgets[location.widgetId];
|
|
736
|
+
if (id !== widget.activeTabId)
|
|
737
|
+
return;
|
|
738
|
+
widget.minimized = true;
|
|
738
739
|
}
|
|
739
740
|
}
|
|
740
741
|
else if (state === WidgetState.Hidden) {
|