@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.
- package/CHANGELOG.md +6 -1
- 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
|
@@ -34,7 +34,7 @@ const ToolSettings_1 = require("./ToolSettings");
|
|
|
34
34
|
const useEscapeSetFocusToHome_1 = require("../hooks/useEscapeSetFocusToHome");
|
|
35
35
|
const react_redux_1 = require("react-redux");
|
|
36
36
|
const useUiVisibility_1 = require("../hooks/useUiVisibility");
|
|
37
|
-
const panelZoneKeys = ["start", "
|
|
37
|
+
const panelZoneKeys = ["start", "end"];
|
|
38
38
|
// istanbul ignore next
|
|
39
39
|
const WidgetPanelsFrontstageComponent = React.memo(function WidgetPanelsFrontstageComponent() {
|
|
40
40
|
const activeModalFrontstageInfo = (0, ModalFrontstageComposer_1.useActiveModalFrontstageInfo)();
|
|
@@ -219,6 +219,7 @@ function addWidgets(state, widgets, side, widgetId) {
|
|
|
219
219
|
label,
|
|
220
220
|
iconSpec: widget.iconSpec,
|
|
221
221
|
preferredPanelWidgetSize: widget.preferredPanelSize,
|
|
222
|
+
preferredFloatingWidgetSize: widget.defaultFloatingSize,
|
|
222
223
|
canPopout: widget.canPopout,
|
|
223
224
|
isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
|
|
224
225
|
});
|
|
@@ -242,15 +243,16 @@ function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
|
|
|
242
243
|
var _a;
|
|
243
244
|
if (widgetDefs.length === 0)
|
|
244
245
|
return state;
|
|
245
|
-
// Add
|
|
246
|
-
const tabs = new Array();
|
|
246
|
+
// Add missing widget tabs.
|
|
247
247
|
for (const widgetDef of widgetDefs) {
|
|
248
248
|
const label = getWidgetLabel(widgetDef.label);
|
|
249
249
|
const saveTab = state.tabs[widgetDef.id];
|
|
250
250
|
const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;
|
|
251
|
-
const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize :
|
|
251
|
+
const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;
|
|
252
252
|
const preferredPopoutWidgetSize = saveTab ? saveTab.preferredPopoutWidgetSize : undefined;
|
|
253
|
-
|
|
253
|
+
// if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized
|
|
254
|
+
const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)
|
|
255
|
+
: !!widgetDef.defaultFloatingSize;
|
|
254
256
|
state = (0, appui_layout_react_1.addTab)(state, widgetDef.id, {
|
|
255
257
|
label,
|
|
256
258
|
iconSpec: widgetDef.iconSpec,
|
|
@@ -269,29 +271,8 @@ function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
|
|
|
269
271
|
state = (0, appui_layout_react_1.addWidgetTabToFloatingPanel)(state, floatingContainerId, widgetDef.id, homePanelInfo, preferredFloatingWidgetSize, preferredPosition, userSized, widgetDef.isFloatingStateWindowResizable);
|
|
270
272
|
}
|
|
271
273
|
else {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
if (tabs.length) {
|
|
276
|
-
const panel = state.panels[side];
|
|
277
|
-
preferredWidgetIndex = preferredWidgetIndex >= panel.maxWidgetCount ? panel.maxWidgetCount - 1 : preferredWidgetIndex;
|
|
278
|
-
if (preferredWidgetIndex < panel.widgets.length) {
|
|
279
|
-
// Append tabs to existing widget.
|
|
280
|
-
const widgetId = panel.widgets[preferredWidgetIndex];
|
|
281
|
-
state = (0, immer_1.default)(state, (draft) => {
|
|
282
|
-
const widget = draft.widgets[widgetId];
|
|
283
|
-
for (const tab of tabs) {
|
|
284
|
-
widget.tabs.push(tab);
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
const newWidgetId = getNextAvailablePanelWidgetId(panel);
|
|
290
|
-
const widget = (0, appui_layout_react_1.createWidgetState)(newWidgetId, tabs);
|
|
291
|
-
state = (0, immer_1.default)(state, (draft) => {
|
|
292
|
-
draft.panels[side].widgets.push(widget.id);
|
|
293
|
-
draft.widgets[widget.id] = (0, immer_1.castDraft)(widget);
|
|
294
|
-
});
|
|
274
|
+
const widgetPanelSectionId = (0, appui_layout_react_1.getWidgetPanelSectionId)(side, preferredWidgetIndex);
|
|
275
|
+
state = (0, appui_layout_react_1.addWidgetTabToPanelSection)(state, side, widgetPanelSectionId, widgetDef.id);
|
|
295
276
|
}
|
|
296
277
|
}
|
|
297
278
|
return state;
|
|
@@ -316,28 +297,26 @@ function processPopoutWidgets(initialState, frontstageDef) {
|
|
|
316
297
|
* @internal
|
|
317
298
|
*/
|
|
318
299
|
function addMissingWidgets(frontstageDef, initialState) {
|
|
319
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
300
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
320
301
|
let state = initialState;
|
|
321
302
|
state = appendWidgets(state, determineNewWidgets((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs, initialState), "left", 0);
|
|
322
303
|
state = appendWidgets(state, determineNewWidgets((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs, initialState), "left", 0);
|
|
323
304
|
state = appendWidgets(state, determineNewWidgets((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs, initialState), "left", 1);
|
|
324
|
-
state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.
|
|
325
|
-
state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.
|
|
326
|
-
state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.
|
|
327
|
-
state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.
|
|
328
|
-
state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.
|
|
329
|
-
state = appendWidgets(state, determineNewWidgets((_j = frontstageDef.
|
|
330
|
-
state = appendWidgets(state, determineNewWidgets((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.
|
|
331
|
-
state = appendWidgets(state, determineNewWidgets((_l = frontstageDef.
|
|
332
|
-
state = appendWidgets(state, determineNewWidgets((_m = frontstageDef.
|
|
333
|
-
state = appendWidgets(state, determineNewWidgets((_o = frontstageDef.
|
|
334
|
-
state = appendWidgets(state, determineNewWidgets((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.
|
|
335
|
-
state = appendWidgets(state, determineNewWidgets((_q = frontstageDef.
|
|
336
|
-
state = appendWidgets(state, determineNewWidgets((_r = frontstageDef.
|
|
337
|
-
state = appendWidgets(state, determineNewWidgets((_s = frontstageDef.
|
|
338
|
-
state = appendWidgets(state, determineNewWidgets((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.
|
|
339
|
-
state = appendWidgets(state, determineNewWidgets((_u = frontstageDef.bottomMostPanel) === null || _u === void 0 ? void 0 : _u.panelWidgetDefs, initialState), "bottom", 1); // eslint-disable-line deprecation/deprecation
|
|
340
|
-
state = appendWidgets(state, determineNewWidgets((_v = frontstageDef.bottomPanel) === null || _v === void 0 ? void 0 : _v.panelZones.end.widgetDefs, initialState), "bottom", 1);
|
|
305
|
+
state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelWidgetDefs, initialState), "left", 1);
|
|
306
|
+
state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelZones.end.widgetDefs, initialState), "left", 1);
|
|
307
|
+
state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.centerRight) === null || _f === void 0 ? void 0 : _f.widgetDefs, initialState), "right", 0);
|
|
308
|
+
state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.rightPanel) === null || _g === void 0 ? void 0 : _g.panelZones.start.widgetDefs, initialState), "right", 0);
|
|
309
|
+
state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.bottomRight) === null || _h === void 0 ? void 0 : _h.widgetDefs, initialState), "right", 1);
|
|
310
|
+
state = appendWidgets(state, determineNewWidgets((_j = frontstageDef.rightPanel) === null || _j === void 0 ? void 0 : _j.panelWidgetDefs, initialState), "right", 1);
|
|
311
|
+
state = appendWidgets(state, determineNewWidgets((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.end.widgetDefs, initialState), "right", 1);
|
|
312
|
+
state = appendWidgets(state, determineNewWidgets((_l = frontstageDef.topPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs, initialState), "top", 0);
|
|
313
|
+
state = appendWidgets(state, determineNewWidgets((_m = frontstageDef.topPanel) === null || _m === void 0 ? void 0 : _m.panelZones.start.widgetDefs, initialState), "top", 0);
|
|
314
|
+
state = appendWidgets(state, determineNewWidgets((_o = frontstageDef.topMostPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs, initialState), "top", 1); // eslint-disable-line deprecation/deprecation
|
|
315
|
+
state = appendWidgets(state, determineNewWidgets((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.end.widgetDefs, initialState), "top", 1);
|
|
316
|
+
state = appendWidgets(state, determineNewWidgets((_q = frontstageDef.bottomPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs, initialState), "bottom", 0);
|
|
317
|
+
state = appendWidgets(state, determineNewWidgets((_r = frontstageDef.bottomPanel) === null || _r === void 0 ? void 0 : _r.panelZones.start.widgetDefs, initialState), "bottom", 0);
|
|
318
|
+
state = appendWidgets(state, determineNewWidgets((_s = frontstageDef.bottomMostPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs, initialState), "bottom", 1); // eslint-disable-line deprecation/deprecation
|
|
319
|
+
state = appendWidgets(state, determineNewWidgets((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.end.widgetDefs, initialState), "bottom", 1);
|
|
341
320
|
return state;
|
|
342
321
|
}
|
|
343
322
|
exports.addMissingWidgets = addMissingWidgets;
|
|
@@ -395,18 +374,12 @@ function getWidgetId(side, key) {
|
|
|
395
374
|
if (key === "start") {
|
|
396
375
|
return "leftStart";
|
|
397
376
|
}
|
|
398
|
-
else if (key === "middle") {
|
|
399
|
-
return "leftMiddle";
|
|
400
|
-
}
|
|
401
377
|
return "leftEnd";
|
|
402
378
|
}
|
|
403
379
|
case "right": {
|
|
404
380
|
if (key === "start") {
|
|
405
381
|
return "rightStart";
|
|
406
382
|
}
|
|
407
|
-
else if (key === "middle") {
|
|
408
|
-
return "rightMiddle";
|
|
409
|
-
}
|
|
410
383
|
return "rightEnd";
|
|
411
384
|
}
|
|
412
385
|
case "top": {
|
|
@@ -424,74 +397,90 @@ function getWidgetId(side, key) {
|
|
|
424
397
|
}
|
|
425
398
|
exports.getWidgetId = getWidgetId;
|
|
426
399
|
/** @internal */
|
|
427
|
-
function getNextAvailablePanelWidgetId(panel) {
|
|
428
|
-
const index = panel.widgets.length;
|
|
429
|
-
return getWidgetId(panel.side, panelZoneKeys[index]);
|
|
430
|
-
}
|
|
431
|
-
function isVerticalPanelSide(side) { return !(0, appui_layout_react_1.isHorizontalPanelSide)(side); }
|
|
432
|
-
/** @internal */
|
|
433
400
|
function getPanelZoneWidgets(frontstageDef, panelZone) {
|
|
434
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
401
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
435
402
|
switch (panelZone) {
|
|
436
403
|
case "leftStart": {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
return
|
|
444
|
-
...((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs) || [],
|
|
445
|
-
...((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.middle.widgetDefs) || [],
|
|
446
|
-
];
|
|
404
|
+
const outArray = [...((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs) || []];
|
|
405
|
+
(_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
406
|
+
// istanbul ignore else
|
|
407
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
408
|
+
outArray.push(widgetDef);
|
|
409
|
+
});
|
|
410
|
+
return outArray;
|
|
447
411
|
}
|
|
448
412
|
case "leftEnd": {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
413
|
+
const outArray = [...((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs) || []];
|
|
414
|
+
(_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
415
|
+
// istanbul ignore else
|
|
416
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
417
|
+
outArray.push(widgetDef);
|
|
418
|
+
});
|
|
419
|
+
(_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelWidgetDefs.forEach((widgetDef) => {
|
|
420
|
+
// istanbul ignore else
|
|
421
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
422
|
+
outArray.push(widgetDef);
|
|
423
|
+
});
|
|
424
|
+
return outArray;
|
|
453
425
|
}
|
|
454
426
|
case "rightStart": {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
return
|
|
462
|
-
...((_j = frontstageDef.bottomRight) === null || _j === void 0 ? void 0 : _j.widgetDefs) || [],
|
|
463
|
-
...((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.middle.widgetDefs) || [],
|
|
464
|
-
];
|
|
427
|
+
const outArray = [...((_f = frontstageDef.centerRight) === null || _f === void 0 ? void 0 : _f.widgetDefs) || []];
|
|
428
|
+
(_g = frontstageDef.rightPanel) === null || _g === void 0 ? void 0 : _g.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
429
|
+
// istanbul ignore else
|
|
430
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
431
|
+
outArray.push(widgetDef);
|
|
432
|
+
});
|
|
433
|
+
return outArray;
|
|
465
434
|
}
|
|
466
435
|
case "rightEnd": {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
436
|
+
const outArray = [...((_h = frontstageDef.bottomRight) === null || _h === void 0 ? void 0 : _h.widgetDefs) || []];
|
|
437
|
+
(_j = frontstageDef.rightPanel) === null || _j === void 0 ? void 0 : _j.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
438
|
+
// istanbul ignore else
|
|
439
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
440
|
+
outArray.push(widgetDef);
|
|
441
|
+
});
|
|
442
|
+
(_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelWidgetDefs.forEach((widgetDef) => {
|
|
443
|
+
// istanbul ignore else
|
|
444
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
445
|
+
outArray.push(widgetDef);
|
|
446
|
+
});
|
|
447
|
+
return outArray;
|
|
471
448
|
}
|
|
472
449
|
case "topStart": {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
450
|
+
const outArray = [...((_l = frontstageDef.topPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs) || []];
|
|
451
|
+
(_m = frontstageDef.topPanel) === null || _m === void 0 ? void 0 : _m.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
452
|
+
// istanbul ignore else
|
|
453
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
454
|
+
outArray.push(widgetDef);
|
|
455
|
+
});
|
|
456
|
+
return outArray;
|
|
477
457
|
}
|
|
478
458
|
case "topEnd": {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
459
|
+
const outArray = [...((_o = frontstageDef.topMostPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs) || []]; // eslint-disable-line deprecation/deprecation
|
|
460
|
+
(_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
461
|
+
// istanbul ignore else
|
|
462
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
463
|
+
outArray.push(widgetDef);
|
|
464
|
+
});
|
|
465
|
+
return outArray;
|
|
483
466
|
}
|
|
484
467
|
case "bottomStart": {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
468
|
+
const outArray = [...((_q = frontstageDef.bottomPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs) || []];
|
|
469
|
+
(_r = frontstageDef.bottomPanel) === null || _r === void 0 ? void 0 : _r.panelZones.start.widgetDefs.forEach((widgetDef) => {
|
|
470
|
+
// istanbul ignore else
|
|
471
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
472
|
+
outArray.push(widgetDef);
|
|
473
|
+
});
|
|
474
|
+
return outArray;
|
|
489
475
|
}
|
|
490
476
|
case "bottomEnd": {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
477
|
+
const outArray = [...((_s = frontstageDef.bottomMostPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs) || []]; // eslint-disable-line deprecation/deprecation
|
|
478
|
+
(_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.end.widgetDefs.forEach((widgetDef) => {
|
|
479
|
+
// istanbul ignore else
|
|
480
|
+
if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
|
|
481
|
+
outArray.push(widgetDef);
|
|
482
|
+
});
|
|
483
|
+
return outArray;
|
|
495
484
|
}
|
|
496
485
|
}
|
|
497
486
|
}
|
|
@@ -501,11 +490,6 @@ function addPanelWidgets(state, frontstageDef, side) {
|
|
|
501
490
|
const start = getWidgetId(side, "start");
|
|
502
491
|
const startWidgets = getPanelZoneWidgets(frontstageDef, start);
|
|
503
492
|
state = addWidgets(state, startWidgets, side, start);
|
|
504
|
-
if (isVerticalPanelSide(side)) {
|
|
505
|
-
const middle = getWidgetId(side, "middle");
|
|
506
|
-
const middleWidgets = getPanelZoneWidgets(frontstageDef, middle);
|
|
507
|
-
state = addWidgets(state, middleWidgets, side, middle);
|
|
508
|
-
}
|
|
509
493
|
const end = getWidgetId(side, "end");
|
|
510
494
|
const endWidgets = getPanelZoneWidgets(frontstageDef, end);
|
|
511
495
|
state = addWidgets(state, endWidgets, side, end);
|
|
@@ -546,7 +530,7 @@ function getPanelMaxSize(maxSizeSpec, panel, nineZoneSize) {
|
|
|
546
530
|
const size = (0, appui_layout_react_1.isHorizontalPanelSide)(panel) ? nineZoneSize.height : nineZoneSize.width;
|
|
547
531
|
return maxSizeSpec.percentage / 100 * size;
|
|
548
532
|
}
|
|
549
|
-
const stateVersion =
|
|
533
|
+
const stateVersion = 12; // this needs to be bumped when NineZoneState is changed (to recreate layout).
|
|
550
534
|
/** @internal */
|
|
551
535
|
function initializeNineZoneState(frontstageDef) {
|
|
552
536
|
let nineZone = defaultNineZone;
|
|
@@ -631,6 +615,31 @@ function restoreNineZoneState(frontstageDef, saved) {
|
|
|
631
615
|
isFloatingStateWindowResizable: widgetDef === null || widgetDef === void 0 ? void 0 : widgetDef.isFloatingStateWindowResizable,
|
|
632
616
|
};
|
|
633
617
|
}
|
|
618
|
+
// remove center panel section if one is found in left or right panels
|
|
619
|
+
const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === "leftMiddle");
|
|
620
|
+
// istanbul ignore next
|
|
621
|
+
if (-1 !== oldLeftMiddleIndex) {
|
|
622
|
+
draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== "leftMiddle");
|
|
623
|
+
if ("leftEnd" in draft.widgets) {
|
|
624
|
+
draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));
|
|
625
|
+
}
|
|
626
|
+
else {
|
|
627
|
+
draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };
|
|
628
|
+
delete draft.widgets.leftMiddle;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === "rightMiddle");
|
|
632
|
+
// istanbul ignore next
|
|
633
|
+
if (-1 !== oldRightMiddleIndex) {
|
|
634
|
+
draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== "rightMiddle");
|
|
635
|
+
if ("rightEnd" in draft.widgets) {
|
|
636
|
+
draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));
|
|
637
|
+
}
|
|
638
|
+
else {
|
|
639
|
+
draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };
|
|
640
|
+
delete draft.widgets.rightMiddle;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
634
643
|
return;
|
|
635
644
|
});
|
|
636
645
|
if (FrontstageManager_1.FrontstageManager.nineZoneSize && (0 !== FrontstageManager_1.FrontstageManager.nineZoneSize.height || 0 !== FrontstageManager_1.FrontstageManager.nineZoneSize.width)) {
|
|
@@ -682,6 +691,7 @@ function addRemovedTab(nineZone, widgetDef) {
|
|
|
682
691
|
const newTab = (0, appui_layout_react_1.createTabState)(widgetDef.id, {
|
|
683
692
|
label: getWidgetLabel(widgetDef.label),
|
|
684
693
|
canPopout: widgetDef.canPopout,
|
|
694
|
+
iconSpec: widgetDef.iconSpec,
|
|
685
695
|
preferredPanelWidgetSize: widgetDef.preferredPanelSize,
|
|
686
696
|
isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
|
|
687
697
|
});
|
|
@@ -742,20 +752,11 @@ exports.setWidgetState = (0, immer_1.default)((nineZone, widgetDef, state) => {
|
|
|
742
752
|
location = (0, appui_layout_react_1.findTab)(nineZone, id);
|
|
743
753
|
(0, core_bentley_1.assert)(!!location);
|
|
744
754
|
}
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
if ("side" in location) {
|
|
751
|
-
const panel = nineZone.panels[location.side];
|
|
752
|
-
const maximized = panel.widgets.find((wId) => {
|
|
753
|
-
const w = nineZone.widgets[wId];
|
|
754
|
-
return !w.minimized;
|
|
755
|
-
});
|
|
756
|
-
if (maximized === undefined)
|
|
757
|
-
widget.minimized = minimized;
|
|
758
|
-
return;
|
|
755
|
+
if ((0, appui_layout_react_1.isFloatingLocation)(location)) {
|
|
756
|
+
const widget = nineZone.widgets[location.widgetId];
|
|
757
|
+
if (id !== widget.activeTabId)
|
|
758
|
+
return;
|
|
759
|
+
widget.minimized = true;
|
|
759
760
|
}
|
|
760
761
|
}
|
|
761
762
|
else if (state === appui_abstract_1.WidgetState.Hidden) {
|