@tutti-os/workbench-surface 0.0.123 → 0.0.124
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/dist/{chunk-TIMYSQM7.js → chunk-VBUKEMJO.js} +3 -1
- package/dist/chunk-VBUKEMJO.js.map +1 -0
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +81 -39
- package/dist/index.js.map +1 -1
- package/dist/styles/workbench.css +12 -0
- package/package.json +5 -5
- package/dist/chunk-TIMYSQM7.js.map +0 -1
|
@@ -61,6 +61,7 @@ var tuttiI18nModule2 = createScopedLocaleObjectsI18nModuleManifest2({
|
|
|
61
61
|
sourceRoot: "packages/workbench/surface/src"
|
|
62
62
|
});
|
|
63
63
|
var workbenchMissionControlEn = {
|
|
64
|
+
layoutModeTrigger: "Quick layout",
|
|
64
65
|
layoutSelectionHint: "Select multiple windows to arrange",
|
|
65
66
|
noAvailableLayout: "No layout fits the selected windows",
|
|
66
67
|
presetActions: {
|
|
@@ -74,6 +75,7 @@ var workbenchMissionControlEn = {
|
|
|
74
75
|
}
|
|
75
76
|
};
|
|
76
77
|
var workbenchMissionControlZhCN = {
|
|
78
|
+
layoutModeTrigger: "\u5FEB\u901F\u5E03\u5C40",
|
|
77
79
|
layoutSelectionHint: "\u8BF7\u9009\u62E9\u591A\u4E2A\u4F60\u8981\u6574\u7406\u5E03\u5C40\u7684\u7A97\u53E3",
|
|
78
80
|
noAvailableLayout: "\u5F53\u524D\u6CA1\u6709\u53EF\u7528\u5E03\u5C40",
|
|
79
81
|
presetActions: {
|
|
@@ -215,4 +217,4 @@ export {
|
|
|
215
217
|
workbenchHostI18nResources,
|
|
216
218
|
createWorkbenchHostI18nRuntime
|
|
217
219
|
};
|
|
218
|
-
//# sourceMappingURL=chunk-
|
|
220
|
+
//# sourceMappingURL=chunk-VBUKEMJO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/workbenchWindowI18n.ts","../src/mission-control/workbenchMissionControlI18n.ts","../src/host/workbenchHostI18n.ts"],"sourcesContent":["import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchWindowChromeI18nLocale = \"en\" | \"zh-CN\";\nexport const workbenchWindowChromeI18nNamespace = \"workbenchWindowChrome\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchWindowChromeEn\",\n \"zh-CN\": \"workbenchWindowChromeZhCN\"\n },\n name: \"workbench-window-chrome\",\n namespace: \"workbenchWindowChrome\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchWindowChromeEn = {\n enterFullscreen: \"Full Screen\",\n exitFullscreen: \"Exit Full Screen\"\n} as const satisfies I18nDictionary;\n\nconst workbenchWindowChromeZhCN = {\n enterFullscreen: \"全屏\",\n exitFullscreen: \"取消全屏\"\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchWindowChromeI18nKey = keyof typeof workbenchWindowChromeEn;\n\nexport type WorkbenchWindowChromeI18nRuntime =\n I18nRuntime<WorkbenchWindowChromeI18nKey>;\n\nconst workbenchWindowChromeDefaults: Record<\n WorkbenchWindowChromeI18nLocale,\n I18nDictionary\n> = {\n en: workbenchWindowChromeEn,\n \"zh-CN\": workbenchWindowChromeZhCN\n};\n\nexport const workbenchWindowChromeI18nResources: Record<\n WorkbenchWindowChromeI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workbenchWindowChromeI18nNamespace]: workbenchWindowChromeDefaults.en\n },\n \"zh-CN\": {\n [workbenchWindowChromeI18nNamespace]: workbenchWindowChromeDefaults[\"zh-CN\"]\n }\n};\n\nconst defaultWorkbenchWindowChromeI18n = createI18nRuntime({\n dictionaries: [workbenchWindowChromeI18nResources.en]\n});\n\nexport function createWorkbenchWindowChromeI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchWindowChromeI18nRuntime {\n return createScopedI18nRuntime<WorkbenchWindowChromeI18nKey>(\n runtime ?? defaultWorkbenchWindowChromeI18n,\n workbenchWindowChromeI18nNamespace\n );\n}\n","import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchMissionControlI18nLocale = \"en\" | \"zh-CN\";\n\nexport const workbenchMissionControlI18nNamespace = \"workbenchMissionControl\";\n\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchMissionControlEn\",\n \"zh-CN\": \"workbenchMissionControlZhCN\"\n },\n name: \"workbench-mission-control\",\n namespace: \"workbenchMissionControl\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchMissionControlEn = {\n layoutModeTrigger: \"Quick layout\",\n layoutSelectionHint: \"Select multiple windows to arrange\",\n noAvailableLayout: \"No layout fits the selected windows\",\n presetActions: {\n arrangeOnce: \"Arrange once\",\n lockLayout: \"Lock layout\"\n },\n presets: {\n balanced: \"Balanced layout\",\n column: \"Vertical equal layout\",\n row: \"Horizontal equal layout\"\n }\n} as const satisfies I18nDictionary;\n\nconst workbenchMissionControlZhCN = {\n layoutModeTrigger: \"快速布局\",\n layoutSelectionHint: \"请选择多个你要整理布局的窗口\",\n noAvailableLayout: \"当前没有可用布局\",\n presetActions: {\n arrangeOnce: \"一次性整理\",\n lockLayout: \"锁定布局\"\n },\n presets: {\n balanced: \"智能均衡布局\",\n column: \"垂直等分布局\",\n row: \"水平等分布局\"\n }\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchMissionControlI18nKey =\n | \"layoutModeTrigger\"\n | \"layoutSelectionHint\"\n | \"noAvailableLayout\"\n | \"presetActions.arrangeOnce\"\n | \"presetActions.lockLayout\"\n | \"presets.balanced\"\n | \"presets.column\"\n | \"presets.row\";\n\nexport type WorkbenchMissionControlI18nRuntime =\n I18nRuntime<WorkbenchMissionControlI18nKey>;\n\nconst workbenchMissionControlDefaults: Record<\n WorkbenchMissionControlI18nLocale,\n I18nDictionary\n> = {\n en: workbenchMissionControlEn,\n \"zh-CN\": workbenchMissionControlZhCN\n};\n\nexport const workbenchMissionControlI18nResources: Record<\n WorkbenchMissionControlI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workbenchMissionControlI18nNamespace]: workbenchMissionControlDefaults.en\n },\n \"zh-CN\": {\n [workbenchMissionControlI18nNamespace]:\n workbenchMissionControlDefaults[\"zh-CN\"]\n }\n};\n\nconst defaultWorkbenchMissionControlI18n = createI18nRuntime({\n dictionaries: [workbenchMissionControlI18nResources.en]\n});\n\nexport function createWorkbenchMissionControlI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchMissionControlI18nRuntime {\n return createScopedI18nRuntime<WorkbenchMissionControlI18nKey>(\n runtime ?? defaultWorkbenchMissionControlI18n,\n workbenchMissionControlI18nNamespace\n );\n}\n","import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchHostI18nLocale = \"en\" | \"zh-CN\";\nexport const workbenchHostI18nNamespace = \"workbenchHost\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchHostEn\",\n \"zh-CN\": \"workbenchHostZhCN\"\n },\n name: \"workbench-host\",\n namespace: \"workbenchHost\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchHostEn = {\n actions: {\n close: \"Close\",\n minimize: \"Minimize\"\n },\n closeWindow: \"Close {{title}}\",\n dockContextMenu: {\n fullscreen: \"Full Screen\",\n hide: \"Minimize\",\n keepInDock: \"Keep in Dock\",\n open: \"Open\",\n quit: \"Quit\",\n removeFromDock: \"Remove from Dock\",\n showAllWindows: \"Show All Similar Windows\"\n },\n dockLabel: \"Workbench dock\",\n launch: \"Open {{title}}\",\n minimizedWindows: \"Minimized windows\",\n newWindow: \"New window\",\n scrollDockDown: \"Scroll dock down\",\n scrollDockLeft: \"Scroll dock left\",\n scrollDockRight: \"Scroll dock right\",\n scrollDockUp: \"Scroll dock up\",\n windowStatus: {\n active: \"Active\",\n minimized: \"Minimized\",\n open: \"Open\"\n }\n} as const satisfies I18nDictionary;\n\nconst workbenchHostZhCN = {\n actions: {\n close: \"关闭\",\n minimize: \"最小化\"\n },\n closeWindow: \"关闭 {{title}}\",\n dockContextMenu: {\n fullscreen: \"全屏\",\n hide: \"最小化\",\n keepInDock: \"在程序坞中保留\",\n open: \"打开\",\n quit: \"退出\",\n removeFromDock: \"从程序坞中移除\",\n showAllWindows: \"显示所有同类窗口\"\n },\n dockLabel: \"工作台程序坞\",\n launch: \"打开 {{title}}\",\n minimizedWindows: \"已最小化窗口\",\n newWindow: \"新建窗口\",\n scrollDockDown: \"向下滚动程序坞\",\n scrollDockLeft: \"向左滚动程序坞\",\n scrollDockRight: \"向右滚动程序坞\",\n scrollDockUp: \"向上滚动程序坞\",\n windowStatus: {\n active: \"当前窗口\",\n minimized: \"已最小化\",\n open: \"已打开\"\n }\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchHostI18nKey =\n | \"actions.close\"\n | \"actions.minimize\"\n | \"closeWindow\"\n | \"dockContextMenu.fullscreen\"\n | \"dockContextMenu.hide\"\n | \"dockContextMenu.keepInDock\"\n | \"dockContextMenu.open\"\n | \"dockContextMenu.quit\"\n | \"dockContextMenu.removeFromDock\"\n | \"dockContextMenu.showAllWindows\"\n | \"dockLabel\"\n | \"launch\"\n | \"minimizedWindows\"\n | \"newWindow\"\n | \"scrollDockDown\"\n | \"scrollDockLeft\"\n | \"scrollDockRight\"\n | \"scrollDockUp\"\n | \"windowStatus.active\"\n | \"windowStatus.minimized\"\n | \"windowStatus.open\";\n\nexport type WorkbenchHostI18nRuntime = I18nRuntime<WorkbenchHostI18nKey>;\n\nconst workbenchHostDefaults: Record<WorkbenchHostI18nLocale, I18nDictionary> = {\n en: workbenchHostEn,\n \"zh-CN\": workbenchHostZhCN\n};\n\nexport const workbenchHostI18nResources = {\n en: {\n [workbenchHostI18nNamespace]: workbenchHostDefaults.en\n },\n \"zh-CN\": {\n [workbenchHostI18nNamespace]: workbenchHostDefaults[\"zh-CN\"]\n }\n} as const satisfies Record<WorkbenchHostI18nLocale, I18nDictionary>;\n\nconst defaultWorkbenchHostI18n = createI18nRuntime({\n dictionaries: [workbenchHostI18nResources.en]\n});\n\nexport function createWorkbenchHostI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchHostI18nRuntime {\n return createScopedI18nRuntime<WorkbenchHostI18nKey>(\n runtime ?? defaultWorkbenchHostI18n,\n workbenchHostI18nNamespace\n );\n}\n"],"mappings":"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","names":["createScopedLocaleObjectsI18nModuleManifest","createI18nRuntime","createScopedI18nRuntime","tuttiI18nModule","createScopedLocaleObjectsI18nModuleManifest","createI18nRuntime","createScopedI18nRuntime","tuttiI18nModule"]}
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { I18nRuntime, I18nDictionary } from '@tutti-os/ui-i18n-runtime';
|
|
|
3
3
|
|
|
4
4
|
type WorkbenchMissionControlI18nLocale = "en" | "zh-CN";
|
|
5
5
|
declare const workbenchMissionControlI18nNamespace = "workbenchMissionControl";
|
|
6
|
-
type WorkbenchMissionControlI18nKey = "layoutSelectionHint" | "noAvailableLayout" | "presetActions.arrangeOnce" | "presetActions.lockLayout" | "presets.balanced" | "presets.column" | "presets.row";
|
|
6
|
+
type WorkbenchMissionControlI18nKey = "layoutModeTrigger" | "layoutSelectionHint" | "noAvailableLayout" | "presetActions.arrangeOnce" | "presetActions.lockLayout" | "presets.balanced" | "presets.column" | "presets.row";
|
|
7
7
|
type WorkbenchMissionControlI18nRuntime = I18nRuntime<WorkbenchMissionControlI18nKey>;
|
|
8
8
|
declare const workbenchMissionControlI18nResources: Record<WorkbenchMissionControlI18nLocale, I18nDictionary>;
|
|
9
9
|
declare function createWorkbenchMissionControlI18nRuntime(runtime: I18nRuntime<string> | undefined): WorkbenchMissionControlI18nRuntime;
|
package/dist/i18n/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
workbenchMissionControlI18nResources,
|
|
9
9
|
workbenchWindowChromeI18nNamespace,
|
|
10
10
|
workbenchWindowChromeI18nResources
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-VBUKEMJO.js";
|
|
12
12
|
export {
|
|
13
13
|
createWorkbenchHostI18nRuntime,
|
|
14
14
|
createWorkbenchMissionControlI18nRuntime,
|
package/dist/index.d.ts
CHANGED
|
@@ -784,6 +784,7 @@ interface WorkbenchHostMissionControlProps {
|
|
|
784
784
|
mode: WorkbenchMissionControlMode | null;
|
|
785
785
|
nodeIds?: readonly string[];
|
|
786
786
|
onRequestClose: () => void;
|
|
787
|
+
onRequestMode?: (mode: WorkbenchMissionControlMode) => void;
|
|
787
788
|
}
|
|
788
789
|
interface WorkbenchHostMissionControlOpenRequest {
|
|
789
790
|
nodeIds?: readonly string[];
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
workbenchHostI18nResources,
|
|
6
6
|
workbenchWindowChromeI18nNamespace,
|
|
7
7
|
workbenchWindowChromeI18nResources
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VBUKEMJO.js";
|
|
9
9
|
|
|
10
10
|
// src/store/commands.ts
|
|
11
11
|
function createWorkbenchCommands(store) {
|
|
@@ -1698,46 +1698,74 @@ function WorkbenchMissionControlOverlay({
|
|
|
1698
1698
|
showNoAvailableLayoutMessage,
|
|
1699
1699
|
state.selectedCount
|
|
1700
1700
|
]);
|
|
1701
|
-
return /* @__PURE__ */
|
|
1701
|
+
return /* @__PURE__ */ jsxs(
|
|
1702
1702
|
"div",
|
|
1703
1703
|
{
|
|
1704
1704
|
className: "workbench-mission-control pointer-events-none absolute inset-0 overflow-hidden",
|
|
1705
1705
|
"data-phase": phase,
|
|
1706
|
-
children:
|
|
1707
|
-
"div",
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1706
|
+
children: [
|
|
1707
|
+
state.mode === "activate" ? /* @__PURE__ */ jsx("div", { className: "workbench-mission-control__footer-shell pointer-events-none absolute inset-x-0 bottom-0 flex justify-center px-6 pb-6", children: /* @__PURE__ */ jsx(
|
|
1708
|
+
"div",
|
|
1709
|
+
{
|
|
1710
|
+
className: "workbench-mission-control__layout-dock desktop-dock-plate pointer-events-auto",
|
|
1711
|
+
onClick: (event) => event.stopPropagation(),
|
|
1712
|
+
children: /* @__PURE__ */ jsx("div", { className: "workbench-mission-control__layout-dock-content", children: /* @__PURE__ */ jsxs(
|
|
1713
|
+
Button,
|
|
1714
|
+
{
|
|
1715
|
+
className: "workbench-mission-control__layout-mode-button",
|
|
1716
|
+
type: "button",
|
|
1717
|
+
variant: "ghost",
|
|
1718
|
+
onClick: () => state.requestMode("layout"),
|
|
1719
|
+
children: [
|
|
1720
|
+
/* @__PURE__ */ jsx(
|
|
1721
|
+
AppWindowIcon,
|
|
1722
|
+
{
|
|
1723
|
+
"aria-hidden": true,
|
|
1724
|
+
className: "workbench-mission-control__layout-glyph"
|
|
1725
|
+
}
|
|
1726
|
+
),
|
|
1727
|
+
i18n.t("layoutModeTrigger")
|
|
1728
|
+
]
|
|
1729
|
+
}
|
|
1730
|
+
) })
|
|
1731
|
+
}
|
|
1732
|
+
) }) : null,
|
|
1733
|
+
state.mode === "layout" ? /* @__PURE__ */ jsx("div", { className: "workbench-mission-control__footer-shell pointer-events-none absolute inset-x-0 bottom-0 flex justify-center px-6 pb-6", children: /* @__PURE__ */ jsx(
|
|
1734
|
+
"div",
|
|
1735
|
+
{
|
|
1736
|
+
className: "workbench-mission-control__layout-dock desktop-dock-plate pointer-events-auto",
|
|
1737
|
+
style: layoutDockWidth === null ? void 0 : { width: layoutDockWidth },
|
|
1738
|
+
onClick: (event) => event.stopPropagation(),
|
|
1739
|
+
children: /* @__PURE__ */ jsx(
|
|
1740
|
+
"div",
|
|
1741
|
+
{
|
|
1742
|
+
ref: layoutDockContentRef,
|
|
1743
|
+
className: "workbench-mission-control__layout-dock-content",
|
|
1744
|
+
children: showLayoutSelectionHint ? /* @__PURE__ */ jsx("span", { className: "workbench-mission-control__layout-hint", children: i18n.t("layoutSelectionHint") }) : showNoAvailableLayoutMessage ? /* @__PURE__ */ jsx("span", { className: "workbench-mission-control__layout-hint", children: i18n.t("noAvailableLayout") }) : /* @__PURE__ */ jsx("div", { className: "flex items-end gap-2", children: layoutPresets.map((option) => /* @__PURE__ */ jsx(
|
|
1745
|
+
WorkbenchMissionControlLayoutPresetButton,
|
|
1746
|
+
{
|
|
1747
|
+
arrangeOnceLabel: i18n.t("presetActions.arrangeOnce"),
|
|
1748
|
+
canApply: state.canApplyPreset(option.preset),
|
|
1749
|
+
icon: option.icon,
|
|
1750
|
+
layoutKey: option.key,
|
|
1751
|
+
lockLayoutLabel: i18n.t("presetActions.lockLayout"),
|
|
1752
|
+
open: openLayoutKey === option.key,
|
|
1753
|
+
onApply: (lock) => {
|
|
1754
|
+
closeLayoutMenu(option.key);
|
|
1755
|
+
state.applyPreset(option.preset, { lock });
|
|
1756
|
+
},
|
|
1757
|
+
onHoverOpen: () => requestHoverOpen(option.key),
|
|
1758
|
+
onHoverCancel: clearHoverOpenTimeout,
|
|
1759
|
+
onRequestClose: () => closeLayoutMenu(option.key),
|
|
1760
|
+
presetLabel: option.label
|
|
1729
1761
|
},
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
}
|
|
1738
|
-
)
|
|
1739
|
-
}
|
|
1740
|
-
) }) : null
|
|
1762
|
+
option.key
|
|
1763
|
+
)) })
|
|
1764
|
+
}
|
|
1765
|
+
)
|
|
1766
|
+
}
|
|
1767
|
+
) }) : null
|
|
1768
|
+
]
|
|
1741
1769
|
}
|
|
1742
1770
|
);
|
|
1743
1771
|
}
|
|
@@ -2046,7 +2074,8 @@ function useWorkbenchMissionControlState({
|
|
|
2046
2074
|
adapter,
|
|
2047
2075
|
mode,
|
|
2048
2076
|
nodeIds,
|
|
2049
|
-
onRequestClose
|
|
2077
|
+
onRequestClose,
|
|
2078
|
+
onRequestMode
|
|
2050
2079
|
}) {
|
|
2051
2080
|
const isActive = mode !== null && adapter !== null;
|
|
2052
2081
|
const snapshot = useExternalStoreSnapshot(
|
|
@@ -2193,6 +2222,15 @@ function useWorkbenchMissionControlState({
|
|
|
2193
2222
|
},
|
|
2194
2223
|
[applyLayoutAndClose, canApplyPreset, orderedSelectedNodeIds]
|
|
2195
2224
|
);
|
|
2225
|
+
const requestMode = useCallback2(
|
|
2226
|
+
(nextMode) => {
|
|
2227
|
+
if (nextMode === mode) {
|
|
2228
|
+
return;
|
|
2229
|
+
}
|
|
2230
|
+
onRequestMode?.(nextMode);
|
|
2231
|
+
},
|
|
2232
|
+
[mode, onRequestMode]
|
|
2233
|
+
);
|
|
2196
2234
|
const presentation = useMemo(
|
|
2197
2235
|
() => mode === null ? null : {
|
|
2198
2236
|
frameByNodeId: new Map(
|
|
@@ -2238,6 +2276,7 @@ function useWorkbenchMissionControlState({
|
|
|
2238
2276
|
canUsePreset,
|
|
2239
2277
|
mode,
|
|
2240
2278
|
presentation,
|
|
2279
|
+
requestMode,
|
|
2241
2280
|
selectedCount: orderedSelectedNodeIds.length
|
|
2242
2281
|
},
|
|
2243
2282
|
[
|
|
@@ -2246,7 +2285,8 @@ function useWorkbenchMissionControlState({
|
|
|
2246
2285
|
canUsePreset,
|
|
2247
2286
|
mode,
|
|
2248
2287
|
orderedSelectedNodeIds.length,
|
|
2249
|
-
presentation
|
|
2288
|
+
presentation,
|
|
2289
|
+
requestMode
|
|
2250
2290
|
]
|
|
2251
2291
|
);
|
|
2252
2292
|
}
|
|
@@ -13860,6 +13900,7 @@ function WorkbenchHost({
|
|
|
13860
13900
|
const missionControlMode = missionControl?.mode ?? null;
|
|
13861
13901
|
const missionControlNodeIds = missionControl?.nodeIds;
|
|
13862
13902
|
const missionControlClose = missionControl?.onRequestClose ?? noop3;
|
|
13903
|
+
const missionControlRequestMode = missionControl?.onRequestMode;
|
|
13863
13904
|
const missionControlEnabled = missionControlMode !== null || onMissionControlAdapterReady !== void 0;
|
|
13864
13905
|
const {
|
|
13865
13906
|
chromeContext,
|
|
@@ -13909,7 +13950,8 @@ function WorkbenchHost({
|
|
|
13909
13950
|
adapter: missionControlAdapter,
|
|
13910
13951
|
mode: missionControlMode,
|
|
13911
13952
|
nodeIds: missionControlNodeIds,
|
|
13912
|
-
onRequestClose: missionControlClose
|
|
13953
|
+
onRequestClose: missionControlClose,
|
|
13954
|
+
onRequestMode: missionControlRequestMode
|
|
13913
13955
|
});
|
|
13914
13956
|
const missionControlPresence = useWorkbenchMissionControlPresence(missionControlState);
|
|
13915
13957
|
const missionControlRenderedState = missionControlPresence.state;
|