@eclipse-docks/core 0.7.127 → 0.7.130
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/api/index.js +3 -3
- package/dist/api/services.d.ts +3 -1
- package/dist/api/services.d.ts.map +1 -1
- package/dist/{api-Da9zQcfd.js → api-oPg3Bv1S.js} +243 -264
- package/dist/api-oPg3Bv1S.js.map +1 -0
- package/dist/components/attribution.d.ts +1 -0
- package/dist/components/attribution.d.ts.map +1 -1
- package/dist/components/command.d.ts +0 -1
- package/dist/components/command.d.ts.map +1 -1
- package/dist/components/extensions.d.ts +3 -0
- package/dist/components/extensions.d.ts.map +1 -1
- package/dist/components/language-selector.d.ts.map +1 -1
- package/dist/components/layout-switcher.d.ts +1 -1
- package/dist/components/layout-switcher.d.ts.map +1 -1
- package/dist/components/npm-packages.d.ts +1 -0
- package/dist/components/npm-packages.d.ts.map +1 -1
- package/dist/components/release-history.d.ts +9 -2
- package/dist/components/release-history.d.ts.map +1 -1
- package/dist/components/tasks.d.ts.map +1 -1
- package/dist/core/apploader.d.ts +2 -9
- package/dist/core/apploader.d.ts.map +1 -1
- package/dist/core/contribution-targets.d.ts +1 -0
- package/dist/core/contribution-targets.d.ts.map +1 -1
- package/dist/core/dialogservice.d.ts +3 -1
- package/dist/core/dialogservice.d.ts.map +1 -1
- package/dist/core/dropdown-item.d.ts +8 -0
- package/dist/core/dropdown-item.d.ts.map +1 -1
- package/dist/core/layout-panels.d.ts +25 -0
- package/dist/core/layout-panels.d.ts.map +1 -0
- package/dist/dialogs/navigable-info-dialog.d.ts.map +1 -1
- package/dist/dialogs/version-info-dialog.d.ts +18 -2
- package/dist/dialogs/version-info-dialog.d.ts.map +1 -1
- package/dist/externals/lit.js +1 -1
- package/dist/externals/webawesome.js +1 -1
- package/dist/index.js +3 -3
- package/dist/layouts/standard-layout.d.ts +9 -1
- package/dist/layouts/standard-layout.d.ts.map +1 -1
- package/dist/parts/contextmenu.d.ts.map +1 -1
- package/dist/parts/index.js +1 -1
- package/dist/parts/part.d.ts +2 -0
- package/dist/parts/part.d.ts.map +1 -1
- package/dist/parts/resizable-grid.d.ts +10 -3
- package/dist/parts/resizable-grid.d.ts.map +1 -1
- package/dist/parts/tabs.d.ts +6 -0
- package/dist/parts/tabs.d.ts.map +1 -1
- package/dist/{parts-CRVxaDd-.js → parts-CAt8aeU8.js} +1050 -586
- package/dist/parts-CAt8aeU8.js.map +1 -0
- package/dist/{webawesome-Y1_HnKa_.js → webawesome-BGXn04Mw.js} +18 -10
- package/dist/webawesome-BGXn04Mw.js.map +1 -0
- package/package.json +1 -1
- package/src/api/services.ts +12 -0
- package/src/components/attribution.ts +2 -0
- package/src/components/command.ts +2 -8
- package/src/components/extensions.ts +20 -3
- package/src/components/language-selector.ts +0 -1
- package/src/components/layout-switcher.ts +39 -26
- package/src/components/npm-packages.ts +2 -0
- package/src/components/release-history.ts +29 -40
- package/src/components/tasks.ts +0 -1
- package/src/contributions/default-layout-contributions.ts +7 -43
- package/src/contributions/default-ui-contributions.ts +4 -4
- package/src/core/apploader.ts +7 -54
- package/src/core/contribution-targets.ts +1 -0
- package/src/core/dialogservice.ts +76 -19
- package/src/core/dropdown-item.ts +52 -17
- package/src/core/layout-panels.ts +121 -0
- package/src/dialogs/navigable-info-dialog.ts +5 -2
- package/src/dialogs/version-info-dialog.ts +163 -21
- package/src/icons/icons.txt +4 -2
- package/src/icons/layout-standard-bottom-panel.svg +4 -4
- package/src/icons/layout-standard-full.svg +4 -4
- package/src/icons/layout-standard-left-aux.svg +8 -0
- package/src/icons/layout-standard-left-sidebar.svg +5 -0
- package/src/icons/layout-standard-right-aux.svg +8 -0
- package/src/icons/layout-standard-right-sidebar.svg +5 -0
- package/src/layouts/standard-layout.ts +81 -5
- package/src/parts/contextmenu.ts +2 -1
- package/src/parts/part.ts +24 -0
- package/src/parts/resizable-grid.ts +125 -57
- package/src/parts/tabs.ts +103 -0
- package/dist/api-Da9zQcfd.js.map +0 -1
- package/dist/parts-CRVxaDd-.js.map +0 -1
- package/dist/webawesome-Y1_HnKa_.js.map +0 -1
- package/src/icons/layout-standard-bottom-sidebar.svg +0 -6
- package/src/icons/layout-standard.svg +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as filebrowserDialog, C as TOOLBAR_INFO, D as TOOLBAR_THEME_SWITCHER, E as TOOLBAR_TASKS, G as keyBindingManager, H as DocksElement, J as esmShService, K as TOPIC_EXTENSIONS_CHANGED, L as promptDialog, M as confirmDialog, O as VIEW_FILEBROWSER, R as appLoaderService, S as TOOLBAR_FULLSCREEN, T as TOOLBAR_LAYOUT_SWITCHER, X as TOPIC_SETTINGS_CHANGED, Y as taskService, Z as appSettings, _t as TOOLBAR_MAIN_CENTER, a as renderDropdownItem, at as SIDEBAR_AUXILIARY, b as TOOLBAR_ACTIVE_PART_NAME, ct as SIDEBAR_MAIN_BOTTOM, d as DocksContainer, dt as SYSTEM_LAYOUTS, f as ABOUT_TAB_ATTRIBUTIONS, gt as TOOLBAR_MAIN, h as ATTRIBUTION_ECLIPSE_DOCKS, ht as TOOLBAR_BOTTOM_END, it as PANEL_BOTTOM, k as VIEW_LOG_TERMINAL, l as versionInfoDialog, lt as SIDEBAR_MAIN_TOOLBAR, m as ABOUT_TAB_RELEASE, mt as TOOLBAR_BOTTOM_CENTER, nt as ABOUT_TABS, o as renderDropdownSubmenu, ot as SIDEBAR_AUXILIARY_BOTTOM, p as ABOUT_TAB_PACKAGES, pt as TOOLBAR_BOTTOM, q as extensionRegistry, r as renderDropdownContribution, rt as EDITOR_AREA_MAIN, s as icon, st as SIDEBAR_MAIN, t as handleDropdownWaSelect, tt as constants_exports, u as DocksPart, ut as SYSTEM_ATTRIBUTIONS, v as SIDEBAR_TOOLBAR_EXTENSIONS, vt as TOOLBAR_MAIN_RIGHT, w as TOOLBAR_LANGUAGE_SELECTOR, x as TOOLBAR_FAST_VIEWS, z as deleteIndexedDbWorkspaceData } from "./parts-CAt8aeU8.js";
|
|
2
2
|
import { a as unregisterLogHandler, o as rootContext, r as registerLogHandler, s as uiContext, t as createLogger } from "./logger-DT0_NW3S.js";
|
|
3
3
|
import { E as toastWarning, T as toastInfo, d as activeSelectionSignal, f as activeTasksSignal, g as contributionRegistry, h as TOPIC_CONTRIBUTEIONS_CHANGED, n as watchSignal, s as registerAll, t as DocksWidget, u as activePartSignal, v as getContributionVisible, w as toastError } from "./widget-BqQtioK1.js";
|
|
4
4
|
import { n as subscribe, t as publish } from "./events-B_ZxkU_G.js";
|
|
@@ -299,7 +299,7 @@ var treeNodeComparator = (c1, c2) => {
|
|
|
299
299
|
//#endregion
|
|
300
300
|
//#region src/components/filebrowser.ts
|
|
301
301
|
var _DocksFileBrowser;
|
|
302
|
-
var logger$
|
|
302
|
+
var logger$1 = createLogger("DocksFileBrowser");
|
|
303
303
|
var t$6 = await i18n(/* @__PURE__ */ Object.assign({
|
|
304
304
|
"./filebrowser.de.json": () => import("./filebrowser.de-GEf6Eilh.js"),
|
|
305
305
|
"./filebrowser.en.json": () => import("./filebrowser.en-o0Ad5f7Z.js")
|
|
@@ -501,7 +501,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
501
501
|
}
|
|
502
502
|
if (info?.backendName) node.workspaceTag = info.backendName;
|
|
503
503
|
} catch (e) {
|
|
504
|
-
logger$
|
|
504
|
+
logger$1.debug("Failed to get workspace info for directory", e);
|
|
505
505
|
}
|
|
506
506
|
if (resource instanceof Directory && loadChildren) {
|
|
507
507
|
try {
|
|
@@ -529,7 +529,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
529
529
|
return node;
|
|
530
530
|
}
|
|
531
531
|
node.loadError = error instanceof Error ? error.message : String(error);
|
|
532
|
-
logger$
|
|
532
|
+
logger$1.error("Failed to load directory children:", error);
|
|
533
533
|
}
|
|
534
534
|
node.loaded = true;
|
|
535
535
|
}
|
|
@@ -628,7 +628,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
628
628
|
return;
|
|
629
629
|
}
|
|
630
630
|
node.loadError = error instanceof Error ? error.message : String(error);
|
|
631
|
-
logger$
|
|
631
|
+
logger$1.error("Failed to load directory children:", error);
|
|
632
632
|
this.requestUpdate();
|
|
633
633
|
} finally {
|
|
634
634
|
this.loadingNodes.delete(node);
|
|
@@ -770,7 +770,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
770
770
|
if (paths.length === 0) return;
|
|
771
771
|
const workspace = await workspaceService.getWorkspace();
|
|
772
772
|
if (!workspace) {
|
|
773
|
-
logger$
|
|
773
|
+
logger$1.warn("Workspace drop ignored because no workspace is connected");
|
|
774
774
|
return;
|
|
775
775
|
}
|
|
776
776
|
const moveWithinSameBackend = async (src) => {
|
|
@@ -787,7 +787,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
787
787
|
for (const path of paths) try {
|
|
788
788
|
const src = await workspace.getResource(path);
|
|
789
789
|
if (!src) {
|
|
790
|
-
logger$
|
|
790
|
+
logger$1.warn(`Workspace drop: source not found for path "${path}"`);
|
|
791
791
|
failed++;
|
|
792
792
|
continue;
|
|
793
793
|
}
|
|
@@ -798,11 +798,11 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
798
798
|
const root = src.getWorkspace();
|
|
799
799
|
if (root) srcRoots.add(root);
|
|
800
800
|
} catch (error) {
|
|
801
|
-
logger$
|
|
801
|
+
logger$1.error(`Failed to handle workspace drop for "${path}":`, error);
|
|
802
802
|
failed++;
|
|
803
803
|
}
|
|
804
804
|
if (sources.length === 0) {
|
|
805
|
-
if (failed > 0) logger$
|
|
805
|
+
if (failed > 0) logger$1.info(`Workspace drop failed for ${failed} item(s)`);
|
|
806
806
|
return;
|
|
807
807
|
}
|
|
808
808
|
let isCrossConnection = false;
|
|
@@ -824,17 +824,17 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
824
824
|
destBackend
|
|
825
825
|
}))) return;
|
|
826
826
|
} catch (err) {
|
|
827
|
-
logger$
|
|
827
|
+
logger$1.debug("Failed to resolve cross-connection info for DnD", err);
|
|
828
828
|
}
|
|
829
829
|
for (const { path, resource } of sources) try {
|
|
830
830
|
const move = await moveWithinSameBackend(resource);
|
|
831
831
|
await workspaceService.copyResource(resource, targetDir, { move });
|
|
832
832
|
processed++;
|
|
833
833
|
} catch (error) {
|
|
834
|
-
logger$
|
|
834
|
+
logger$1.error(`Failed to handle workspace drop for "${path}":`, error);
|
|
835
835
|
failed++;
|
|
836
836
|
}
|
|
837
|
-
logger$
|
|
837
|
+
logger$1.info(`Workspace drop completed: ${processed}/${sources.length} items ${failed > 0 ? `, ${failed} failed` : ""}`);
|
|
838
838
|
await this.loadWorkspace(this.workspaceDir, true);
|
|
839
839
|
}
|
|
840
840
|
async handleFilesDrop(files, targetDir) {
|
|
@@ -853,10 +853,10 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
853
853
|
await (await this.workspaceDir.getResource(targetPath, { create: true })).saveContents(file);
|
|
854
854
|
processed++;
|
|
855
855
|
} catch (error) {
|
|
856
|
-
logger$
|
|
856
|
+
logger$1.error(`Failed to upload ${file.name}:`, error);
|
|
857
857
|
failed++;
|
|
858
858
|
}
|
|
859
|
-
logger$
|
|
859
|
+
logger$1.info(`Uploaded ${processed}/${total} files${skipped > 0 ? `, ${skipped} skipped` : ""}${failed > 0 ? `, ${failed} failed` : ""}`);
|
|
860
860
|
await this.loadWorkspace(this.workspaceDir);
|
|
861
861
|
}
|
|
862
862
|
buildTargetPath(targetDir, fileName) {
|
|
@@ -958,33 +958,6 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
|
|
|
958
958
|
_decorate([state()], DocksFileBrowser.prototype, "root", void 0);
|
|
959
959
|
DocksFileBrowser = _DocksFileBrowser = _decorate([customElement("docks-filebrowser")], DocksFileBrowser);
|
|
960
960
|
//#endregion
|
|
961
|
-
//#region src/core/contribution-names.ts
|
|
962
|
-
var VIEW_FILEBROWSER = "view.filebrowser";
|
|
963
|
-
var VIEW_LOG_TERMINAL = "view.logTerminal";
|
|
964
|
-
var TOOLBAR_INFO = "toolbar.info";
|
|
965
|
-
var TOOLBAR_FAST_VIEWS = "toolbar.fastViews";
|
|
966
|
-
var TOOLBAR_LANGUAGE_SELECTOR = "toolbar.languageSelector";
|
|
967
|
-
/** Main toolbar (right): layout picker (`docks-layout-switcher`). */
|
|
968
|
-
var TOOLBAR_LAYOUT_SWITCHER = "toolbar.layoutSwitcher";
|
|
969
|
-
/** Main toolbar (right): dark/light theme toggle (`switch_theme`). */
|
|
970
|
-
var TOOLBAR_THEME_SWITCHER = "toolbar.themeSwitcher";
|
|
971
|
-
/** Main toolbar (right): document fullscreen toggle (`fullscreen`). */
|
|
972
|
-
var TOOLBAR_FULLSCREEN = "toolbar.fullscreen";
|
|
973
|
-
/** Bottom-center toolbar: focused part title / active part indicator (`docks-part-name`). */
|
|
974
|
-
var TOOLBAR_ACTIVE_PART_NAME = "toolbar.activePartName";
|
|
975
|
-
/** Bottom-center toolbar: background tasks / progress (`docks-tasks`). */
|
|
976
|
-
var TOOLBAR_TASKS = "toolbar.tasks";
|
|
977
|
-
/** Main sidebar header toolbar: open extensions (`open_extensions` command). */
|
|
978
|
-
var SIDEBAR_TOOLBAR_EXTENSIONS = "sidebar.toolbar.extensions";
|
|
979
|
-
/** Default file-type → icon mappings on `system.icons`. */
|
|
980
|
-
var SYSTEM_DEFAULT_FILE_ICONS = "system.icons.default";
|
|
981
|
-
var ABOUT_TAB_RELEASE = "about.tab.release";
|
|
982
|
-
var ABOUT_TAB_PACKAGES = "about.tab.packages";
|
|
983
|
-
var ABOUT_TAB_ATTRIBUTIONS = "about.tab.attributions";
|
|
984
|
-
var ATTRIBUTION_ECLIPSE_DOCKS = "attribution.eclipse-docks";
|
|
985
|
-
var CTXMENU_FILEBROWSER_RENAME = "contextmenu.filebrowser.rename";
|
|
986
|
-
var CTXMENU_FILEBROWSER_DELETE = "contextmenu.filebrowser.delete";
|
|
987
|
-
//#endregion
|
|
988
961
|
//#region src/components/tasks.ts
|
|
989
962
|
var t$5 = await i18n(/* @__PURE__ */ Object.assign({
|
|
990
963
|
"./tasks.de.json": () => import("./tasks.de-y2xPmQ1k.js"),
|
|
@@ -1019,10 +992,6 @@ function updateProgressDialog(forceOpen = false) {
|
|
|
1019
992
|
}
|
|
1020
993
|
const existingDialog = getDialogElement();
|
|
1021
994
|
if (!(forceOpen || existingDialog?.open === true)) return;
|
|
1022
|
-
const handleClose = () => {
|
|
1023
|
-
const dialog = getDialogElement();
|
|
1024
|
-
if (dialog) dialog.open = false;
|
|
1025
|
-
};
|
|
1026
995
|
const handleAfterHide = () => {
|
|
1027
996
|
render(html``, container);
|
|
1028
997
|
};
|
|
@@ -1032,7 +1001,6 @@ function updateProgressDialog(forceOpen = false) {
|
|
|
1032
1001
|
open
|
|
1033
1002
|
light-dismiss
|
|
1034
1003
|
style="--width: 600px;"
|
|
1035
|
-
@wa-request-close=${handleClose}
|
|
1036
1004
|
@wa-after-hide=${handleAfterHide}
|
|
1037
1005
|
>
|
|
1038
1006
|
<style>
|
|
@@ -1289,7 +1257,7 @@ var DocksPartName = class DocksPartName extends DocksElement {
|
|
|
1289
1257
|
DocksPartName = _decorate([customElement("docks-part-name")], DocksPartName);
|
|
1290
1258
|
//#endregion
|
|
1291
1259
|
//#region src/components/extensions.ts
|
|
1292
|
-
var logger
|
|
1260
|
+
var logger = createLogger("DocksExtensions");
|
|
1293
1261
|
var t$2 = await i18n(/* @__PURE__ */ Object.assign({
|
|
1294
1262
|
"./extensions.de.json": () => import("./extensions.de-Ct1DIybE.js"),
|
|
1295
1263
|
"./extensions.en.json": () => import("./extensions.en-DRPFtVHT.js")
|
|
@@ -1300,6 +1268,9 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
|
|
|
1300
1268
|
this.filterText = "";
|
|
1301
1269
|
this.showRegisterDialog = false;
|
|
1302
1270
|
this.registerExtensionData = {};
|
|
1271
|
+
this.handleRegisterDialogAfterHide = () => {
|
|
1272
|
+
this.finishRegisterDialogClose();
|
|
1273
|
+
};
|
|
1303
1274
|
}
|
|
1304
1275
|
doInitUI() {
|
|
1305
1276
|
subscribe(TOPIC_EXTENSIONS_CHANGED, () => {
|
|
@@ -1400,7 +1371,7 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
|
|
|
1400
1371
|
this.showRegisterDialog = true;
|
|
1401
1372
|
this.requestUpdate();
|
|
1402
1373
|
} catch (error) {
|
|
1403
|
-
logger
|
|
1374
|
+
logger.warn(`Could not fetch package.json, using defaults: ${error}`);
|
|
1404
1375
|
this.registerExtensionData = {
|
|
1405
1376
|
url,
|
|
1406
1377
|
id: "",
|
|
@@ -1439,7 +1410,7 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
|
|
|
1439
1410
|
extensionRegistry.registerExtension(extension);
|
|
1440
1411
|
await extensionRegistry.loadExtensionFromUrl(this.registerExtensionData.url, extension.id);
|
|
1441
1412
|
toastInfo(`Extension ${extension.name} registered successfully`);
|
|
1442
|
-
this.
|
|
1413
|
+
this.closeRegisterDialog();
|
|
1443
1414
|
this.registerExtensionData = {};
|
|
1444
1415
|
this.requestUpdate();
|
|
1445
1416
|
});
|
|
@@ -1447,11 +1418,22 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
|
|
|
1447
1418
|
toastError(`Failed to register extension: ${error}`);
|
|
1448
1419
|
}
|
|
1449
1420
|
}
|
|
1450
|
-
|
|
1421
|
+
closeRegisterDialog() {
|
|
1422
|
+
const dialog = this.renderRoot.querySelector("wa-dialog");
|
|
1423
|
+
if (dialog && dialog.open !== false) {
|
|
1424
|
+
dialog.open = false;
|
|
1425
|
+
return;
|
|
1426
|
+
}
|
|
1427
|
+
this.finishRegisterDialogClose();
|
|
1428
|
+
}
|
|
1429
|
+
finishRegisterDialogClose() {
|
|
1451
1430
|
this.showRegisterDialog = false;
|
|
1452
1431
|
this.registerExtensionData = {};
|
|
1453
1432
|
this.requestUpdate();
|
|
1454
1433
|
}
|
|
1434
|
+
cancelRegisterExtension() {
|
|
1435
|
+
this.closeRegisterDialog();
|
|
1436
|
+
}
|
|
1455
1437
|
renderToolbar() {
|
|
1456
1438
|
return html`
|
|
1457
1439
|
<wa-input
|
|
@@ -1482,7 +1464,7 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
|
|
|
1482
1464
|
<wa-dialog
|
|
1483
1465
|
label="Register Extension"
|
|
1484
1466
|
open
|
|
1485
|
-
@wa-
|
|
1467
|
+
@wa-after-hide=${this.handleRegisterDialogAfterHide}
|
|
1486
1468
|
style="--wa-dialog-width: 500px;">
|
|
1487
1469
|
<div style="display: flex; flex-direction: column; gap: 1rem; padding: 1rem;">
|
|
1488
1470
|
<wa-input
|
|
@@ -2154,11 +2136,8 @@ var DocksCommand = class DocksCommand extends DocksWidget {
|
|
|
2154
2136
|
this.placement = "bottom-start";
|
|
2155
2137
|
this.dropdownContributions = [];
|
|
2156
2138
|
}
|
|
2157
|
-
closeDropdown(dropdown) {
|
|
2158
|
-
if (dropdown && dropdown.open !== void 0) dropdown.open = false;
|
|
2159
|
-
}
|
|
2160
2139
|
handleSelect(event) {
|
|
2161
|
-
|
|
2140
|
+
handleDropdownWaSelect(event);
|
|
2162
2141
|
}
|
|
2163
2142
|
getKeybinding() {
|
|
2164
2143
|
if (!this.cmd || this.action) return null;
|
|
@@ -2578,7 +2557,6 @@ var showLanguageSelectorDialog = async () => {
|
|
|
2578
2557
|
label="Select Language"
|
|
2579
2558
|
open
|
|
2580
2559
|
light-dismiss
|
|
2581
|
-
@wa-request-close=${handleClose}
|
|
2582
2560
|
@wa-after-hide=${handleAfterHide}>
|
|
2583
2561
|
<style>
|
|
2584
2562
|
.language-list {
|
|
@@ -2661,38 +2639,144 @@ var DocksLanguageSelector = class DocksLanguageSelector extends DocksElement {
|
|
|
2661
2639
|
};
|
|
2662
2640
|
DocksLanguageSelector = _decorate([customElement("docks-language-selector")], DocksLanguageSelector);
|
|
2663
2641
|
//#endregion
|
|
2642
|
+
//#region src/core/layout-panels.ts
|
|
2643
|
+
var DEFAULT_LAYOUT_PANEL_VISIBILITY = {
|
|
2644
|
+
showLeftSidebar: true,
|
|
2645
|
+
showAuxSidebar: true,
|
|
2646
|
+
showBottomPanel: true,
|
|
2647
|
+
showLeftAux: false,
|
|
2648
|
+
showRightAux: false
|
|
2649
|
+
};
|
|
2650
|
+
function normalizePanelVisibility(stored) {
|
|
2651
|
+
return {
|
|
2652
|
+
showLeftSidebar: stored.showLeftSidebar ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showLeftSidebar,
|
|
2653
|
+
showAuxSidebar: stored.showAuxSidebar ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showAuxSidebar,
|
|
2654
|
+
showBottomPanel: stored.showBottomPanel ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showBottomPanel,
|
|
2655
|
+
showLeftAux: stored.showLeftAux ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showLeftAux,
|
|
2656
|
+
showRightAux: stored.showRightAux ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showRightAux
|
|
2657
|
+
};
|
|
2658
|
+
}
|
|
2659
|
+
var LAYOUT_PANEL_SETTINGS_KEY = "layoutPanelVisibility";
|
|
2660
|
+
/** @deprecated Legacy layout id persisted before panel visibility toggles. */
|
|
2661
|
+
var LEGACY_PREFERRED_LAYOUT_KEY = "preferredLayoutId";
|
|
2662
|
+
/** Maps legacy parameterized layout ids to panel visibility. */
|
|
2663
|
+
function layoutIdToPanelVisibility(layoutId) {
|
|
2664
|
+
switch (layoutId) {
|
|
2665
|
+
case "standard-bottom-panel": return {
|
|
2666
|
+
...DEFAULT_LAYOUT_PANEL_VISIBILITY,
|
|
2667
|
+
showBottomPanel: true,
|
|
2668
|
+
showLeftAux: false,
|
|
2669
|
+
showRightAux: false
|
|
2670
|
+
};
|
|
2671
|
+
case "standard-bottom-sidebar": return {
|
|
2672
|
+
...DEFAULT_LAYOUT_PANEL_VISIBILITY,
|
|
2673
|
+
showBottomPanel: false,
|
|
2674
|
+
showLeftAux: true,
|
|
2675
|
+
showRightAux: false
|
|
2676
|
+
};
|
|
2677
|
+
case "standard-full": return {
|
|
2678
|
+
...DEFAULT_LAYOUT_PANEL_VISIBILITY,
|
|
2679
|
+
showLeftAux: true,
|
|
2680
|
+
showRightAux: true
|
|
2681
|
+
};
|
|
2682
|
+
default: return {
|
|
2683
|
+
...DEFAULT_LAYOUT_PANEL_VISIBILITY,
|
|
2684
|
+
showBottomPanel: false,
|
|
2685
|
+
showLeftAux: false,
|
|
2686
|
+
showRightAux: false
|
|
2687
|
+
};
|
|
2688
|
+
}
|
|
2689
|
+
}
|
|
2690
|
+
function resolveInitialPanelVisibilityFromApp(appLayout) {
|
|
2691
|
+
if (typeof appLayout === "object" && appLayout.props) return {
|
|
2692
|
+
...DEFAULT_LAYOUT_PANEL_VISIBILITY,
|
|
2693
|
+
showLeftSidebar: appLayout.props.showLeftSidebar !== false,
|
|
2694
|
+
showAuxSidebar: appLayout.props.showAuxSidebar !== false,
|
|
2695
|
+
showBottomPanel: appLayout.props.showBottomPanel === true,
|
|
2696
|
+
showLeftAux: appLayout.props.showLeftAux === true,
|
|
2697
|
+
showRightAux: appLayout.props.showRightAux === true
|
|
2698
|
+
};
|
|
2699
|
+
if (typeof appLayout === "string") return layoutIdToPanelVisibility(appLayout);
|
|
2700
|
+
return { ...DEFAULT_LAYOUT_PANEL_VISIBILITY };
|
|
2701
|
+
}
|
|
2702
|
+
async function resolveStoredPanelVisibility(appLayout) {
|
|
2703
|
+
try {
|
|
2704
|
+
const saved = await appSettings.get(LAYOUT_PANEL_SETTINGS_KEY);
|
|
2705
|
+
if (saved && typeof saved === "object") return normalizePanelVisibility(saved);
|
|
2706
|
+
} catch {}
|
|
2707
|
+
try {
|
|
2708
|
+
const legacyLayoutId = await appSettings.get(LEGACY_PREFERRED_LAYOUT_KEY);
|
|
2709
|
+
if (legacyLayoutId) return layoutIdToPanelVisibility(legacyLayoutId);
|
|
2710
|
+
} catch {}
|
|
2711
|
+
return resolveInitialPanelVisibilityFromApp(appLayout);
|
|
2712
|
+
}
|
|
2713
|
+
function findStandardLayout(container) {
|
|
2714
|
+
const root = container ?? document.getElementById("app-root") ?? document.body;
|
|
2715
|
+
if (!root || typeof root.querySelector !== "function") return null;
|
|
2716
|
+
return root.querySelector("docks-standard-layout");
|
|
2717
|
+
}
|
|
2718
|
+
var LAYOUT_PANEL_OPTIONS = [
|
|
2719
|
+
{
|
|
2720
|
+
key: "showLeftSidebar",
|
|
2721
|
+
label: "Left sidebar",
|
|
2722
|
+
icon: "docks layout-standard-left-sidebar"
|
|
2723
|
+
},
|
|
2724
|
+
{
|
|
2725
|
+
key: "showAuxSidebar",
|
|
2726
|
+
label: "Right sidebar",
|
|
2727
|
+
icon: "docks layout-standard-right-sidebar"
|
|
2728
|
+
},
|
|
2729
|
+
{
|
|
2730
|
+
key: "showBottomPanel",
|
|
2731
|
+
label: "Bottom panel",
|
|
2732
|
+
icon: "docks layout-standard-bottom-panel"
|
|
2733
|
+
},
|
|
2734
|
+
{
|
|
2735
|
+
key: "showLeftAux",
|
|
2736
|
+
label: "Left Aux",
|
|
2737
|
+
icon: "docks layout-standard-left-aux"
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
key: "showRightAux",
|
|
2741
|
+
label: "Right Aux",
|
|
2742
|
+
icon: "docks layout-standard-right-aux"
|
|
2743
|
+
}
|
|
2744
|
+
];
|
|
2745
|
+
//#endregion
|
|
2664
2746
|
//#region src/components/layout-switcher.ts
|
|
2665
2747
|
var DocksLayoutSwitcher = class DocksLayoutSwitcher extends DocksElement {
|
|
2666
2748
|
constructor(..._args) {
|
|
2667
2749
|
super(..._args);
|
|
2668
|
-
this.
|
|
2750
|
+
this.panels = { ...DEFAULT_LAYOUT_PANEL_VISIBILITY };
|
|
2669
2751
|
}
|
|
2670
2752
|
doBeforeUI() {
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
this.currentLayoutId = appLoaderService.getCurrentLayoutId();
|
|
2753
|
+
const syncPanels = () => {
|
|
2754
|
+
this.panels = findStandardLayout()?.getPanelVisibility() ?? { ...DEFAULT_LAYOUT_PANEL_VISIBILITY };
|
|
2674
2755
|
this.requestUpdate();
|
|
2675
2756
|
};
|
|
2676
|
-
|
|
2677
|
-
window.addEventListener("
|
|
2757
|
+
syncPanels();
|
|
2758
|
+
window.addEventListener("app-loaded", syncPanels);
|
|
2759
|
+
window.addEventListener("layout-panels-changed", syncPanels);
|
|
2678
2760
|
return () => {
|
|
2679
|
-
window.removeEventListener("app-loaded",
|
|
2680
|
-
window.removeEventListener("layout-changed",
|
|
2761
|
+
window.removeEventListener("app-loaded", syncPanels);
|
|
2762
|
+
window.removeEventListener("layout-panels-changed", syncPanels);
|
|
2681
2763
|
};
|
|
2682
2764
|
}
|
|
2683
2765
|
async handleSelect(e) {
|
|
2684
|
-
const
|
|
2685
|
-
if (!
|
|
2766
|
+
const layout = findStandardLayout();
|
|
2767
|
+
if (!layout) return;
|
|
2768
|
+
const item = e.detail?.item;
|
|
2769
|
+
const key = item?.value;
|
|
2770
|
+
if (!item || !key) return;
|
|
2686
2771
|
try {
|
|
2687
|
-
await
|
|
2772
|
+
await layout.setPanelVisibility({ [key]: item.checked ?? false });
|
|
2773
|
+
this.panels = layout.getPanelVisibility();
|
|
2688
2774
|
} catch (err) {
|
|
2689
|
-
console.error("Failed to
|
|
2775
|
+
console.error("Failed to update layout panels:", err);
|
|
2690
2776
|
}
|
|
2691
2777
|
}
|
|
2692
2778
|
render() {
|
|
2693
|
-
|
|
2694
|
-
if (layouts.length <= 1) return html``;
|
|
2695
|
-
const layoutName = layouts.find((l) => l.id === this.currentLayoutId)?.name ?? this.currentLayoutId;
|
|
2779
|
+
if (!findStandardLayout()) return html``;
|
|
2696
2780
|
return html`
|
|
2697
2781
|
<wa-dropdown
|
|
2698
2782
|
placement="bottom-end"
|
|
@@ -2704,19 +2788,19 @@ var DocksLayoutSwitcher = class DocksLayoutSwitcher extends DocksElement {
|
|
|
2704
2788
|
appearance="plain"
|
|
2705
2789
|
size="s"
|
|
2706
2790
|
with-caret
|
|
2707
|
-
title="
|
|
2708
|
-
|
|
2791
|
+
title="Show or hide layout panels">
|
|
2792
|
+
${icon("docks layout-standard-full", { label: "Layout panels" })}
|
|
2709
2793
|
</wa-button>
|
|
2710
|
-
${
|
|
2794
|
+
${LAYOUT_PANEL_OPTIONS.map((panel) => html`
|
|
2711
2795
|
<wa-dropdown-item
|
|
2712
|
-
value="${
|
|
2796
|
+
value="${panel.key}"
|
|
2713
2797
|
type="checkbox"
|
|
2714
|
-
?checked=${
|
|
2715
|
-
${icon(
|
|
2716
|
-
label:
|
|
2798
|
+
?checked=${this.panels[panel.key]}>
|
|
2799
|
+
${icon(panel.icon, {
|
|
2800
|
+
label: panel.label,
|
|
2717
2801
|
slot: "icon"
|
|
2718
2802
|
})}
|
|
2719
|
-
${
|
|
2803
|
+
${panel.label}
|
|
2720
2804
|
</wa-dropdown-item>
|
|
2721
2805
|
`)}
|
|
2722
2806
|
</wa-dropdown>
|
|
@@ -2730,143 +2814,15 @@ var DocksLayoutSwitcher = class DocksLayoutSwitcher extends DocksElement {
|
|
|
2730
2814
|
`;
|
|
2731
2815
|
}
|
|
2732
2816
|
};
|
|
2733
|
-
_decorate([state()], DocksLayoutSwitcher.prototype, "
|
|
2817
|
+
_decorate([state()], DocksLayoutSwitcher.prototype, "panels", void 0);
|
|
2734
2818
|
DocksLayoutSwitcher = _decorate([customElement("docks-layout-switcher")], DocksLayoutSwitcher);
|
|
2735
2819
|
//#endregion
|
|
2736
|
-
//#region src/components/
|
|
2737
|
-
var
|
|
2738
|
-
async function loadReleases(releaseHistory) {
|
|
2739
|
-
if (!releaseHistory) return [];
|
|
2740
|
-
if (typeof releaseHistory !== "function") return releaseHistory;
|
|
2741
|
-
try {
|
|
2742
|
-
return await releaseHistory();
|
|
2743
|
-
} catch (error) {
|
|
2744
|
-
logger.error(`Failed to load release history from app: ${error instanceof Error ? error.message : String(error)}`);
|
|
2745
|
-
return [];
|
|
2746
|
-
}
|
|
2747
|
-
}
|
|
2748
|
-
function semverEqual(a, b) {
|
|
2749
|
-
return a.replace(/^v/i, "") === b.replace(/^v/i, "");
|
|
2750
|
-
}
|
|
2751
|
-
function isNewerThan(releaseTag, currentVersion) {
|
|
2752
|
-
const currentParts = currentVersion.replace(/^v/i, "").split(".").map(Number);
|
|
2753
|
-
const releaseParts = releaseTag.replace(/^v/i, "").split(".").map(Number);
|
|
2754
|
-
for (let i = 0; i < Math.max(currentParts.length, releaseParts.length); i++) {
|
|
2755
|
-
const current = currentParts[i] || 0;
|
|
2756
|
-
const releasePart = releaseParts[i] || 0;
|
|
2757
|
-
if (releasePart > current) return true;
|
|
2758
|
-
if (releasePart < current) return false;
|
|
2759
|
-
}
|
|
2760
|
-
return false;
|
|
2761
|
-
}
|
|
2762
|
-
var DocksReleaseHistory = class DocksReleaseHistory extends DocksPart {
|
|
2820
|
+
//#region src/components/npm-packages.ts
|
|
2821
|
+
var DocksNpmPackages = class DocksNpmPackages extends DocksPart {
|
|
2763
2822
|
constructor(..._args) {
|
|
2764
2823
|
super(..._args);
|
|
2765
2824
|
this.scrollMode = "none";
|
|
2766
|
-
this.appVersion = "0.0.0";
|
|
2767
|
-
this.releases = [];
|
|
2768
|
-
this.currentReleaseIndex = 0;
|
|
2769
|
-
}
|
|
2770
|
-
static {
|
|
2771
|
-
this.styles = [css`
|
|
2772
|
-
.release-panel {
|
|
2773
|
-
display: flex;
|
|
2774
|
-
flex-direction: column;
|
|
2775
|
-
gap: 0.5rem;
|
|
2776
|
-
height: 100%;
|
|
2777
|
-
padding: 0.75rem;
|
|
2778
|
-
box-sizing: border-box;
|
|
2779
|
-
}
|
|
2780
|
-
|
|
2781
|
-
.release-panel wa-scroller {
|
|
2782
|
-
flex: 1;
|
|
2783
|
-
min-height: 0;
|
|
2784
|
-
}
|
|
2785
|
-
|
|
2786
|
-
.release-nav {
|
|
2787
|
-
display: flex;
|
|
2788
|
-
gap: 0.5rem;
|
|
2789
|
-
}
|
|
2790
|
-
`];
|
|
2791
|
-
}
|
|
2792
|
-
doInitUI() {
|
|
2793
|
-
this.load();
|
|
2794
|
-
}
|
|
2795
|
-
async load() {
|
|
2796
|
-
const app = appLoaderService.getCurrentApp();
|
|
2797
|
-
this.appVersion = app?.version ?? "0.0.0";
|
|
2798
|
-
this.releases = await loadReleases(app?.releaseHistory);
|
|
2799
|
-
const currentIndex = this.releases.findIndex((release) => semverEqual(release.tag_name, this.appVersion));
|
|
2800
|
-
this.currentReleaseIndex = currentIndex >= 0 ? currentIndex : 0;
|
|
2801
|
-
}
|
|
2802
|
-
showOlder() {
|
|
2803
|
-
if (this.currentReleaseIndex < this.releases.length - 1) this.currentReleaseIndex += 1;
|
|
2804
|
-
}
|
|
2805
|
-
showNewer() {
|
|
2806
|
-
if (this.currentReleaseIndex > 0) this.currentReleaseIndex -= 1;
|
|
2807
|
-
}
|
|
2808
|
-
renderContent() {
|
|
2809
|
-
const release = this.releases[this.currentReleaseIndex];
|
|
2810
|
-
if (!release) return html`<div class="release-panel">No release history available.</div>`;
|
|
2811
|
-
const isCurrent = semverEqual(release.tag_name, this.appVersion);
|
|
2812
|
-
const showUpdateHint = !isCurrent && isNewerThan(release.tag_name, this.appVersion);
|
|
2813
|
-
const atOldest = this.currentReleaseIndex === this.releases.length - 1;
|
|
2814
|
-
const atNewest = this.currentReleaseIndex === 0;
|
|
2815
|
-
const bodyHtml = release.body ? parseMarkdownHtml(release.body) : "";
|
|
2816
|
-
return html`
|
|
2817
|
-
<div class="release-panel">
|
|
2818
|
-
<p>
|
|
2819
|
-
<strong>Version:</strong> ${release.tag_name}${isCurrent ? " (Current)" : ""}
|
|
2820
|
-
</p>
|
|
2821
|
-
<p>
|
|
2822
|
-
<strong>Released:</strong>
|
|
2823
|
-
<wa-format-date
|
|
2824
|
-
.date=${release.published_at}
|
|
2825
|
-
month="short"
|
|
2826
|
-
day="numeric"
|
|
2827
|
-
year="numeric"
|
|
2828
|
-
></wa-format-date>
|
|
2829
|
-
</p>
|
|
2830
|
-
${showUpdateHint ? html`
|
|
2831
|
-
<wa-callout variant="warning">
|
|
2832
|
-
<wa-icon slot="icon" name="triangle-exclamation"></wa-icon>
|
|
2833
|
-
Update available — reload the page to update
|
|
2834
|
-
</wa-callout>
|
|
2835
|
-
` : ""}
|
|
2836
|
-
<wa-scroller orientation="vertical">
|
|
2837
|
-
${bodyHtml ? html`<div style="white-space: normal;">${unsafeHTML(bodyHtml)}</div>` : ""}
|
|
2838
|
-
</wa-scroller>
|
|
2839
|
-
${this.releases.length > 1 ? html`
|
|
2840
|
-
<div class="release-nav">
|
|
2841
|
-
<wa-button-group>
|
|
2842
|
-
<wa-button
|
|
2843
|
-
variant="default"
|
|
2844
|
-
?disabled=${atOldest}
|
|
2845
|
-
@click=${() => this.showOlder()}
|
|
2846
|
-
>
|
|
2847
|
-
← Previous
|
|
2848
|
-
</wa-button>
|
|
2849
|
-
<wa-button
|
|
2850
|
-
variant="default"
|
|
2851
|
-
?disabled=${atNewest}
|
|
2852
|
-
@click=${() => this.showNewer()}
|
|
2853
|
-
>
|
|
2854
|
-
Next →
|
|
2855
|
-
</wa-button>
|
|
2856
|
-
</wa-button-group>
|
|
2857
|
-
</div>
|
|
2858
|
-
` : ""}
|
|
2859
|
-
</div>
|
|
2860
|
-
`;
|
|
2861
2825
|
}
|
|
2862
|
-
};
|
|
2863
|
-
_decorate([state()], DocksReleaseHistory.prototype, "appVersion", void 0);
|
|
2864
|
-
_decorate([state()], DocksReleaseHistory.prototype, "releases", void 0);
|
|
2865
|
-
_decorate([state()], DocksReleaseHistory.prototype, "currentReleaseIndex", void 0);
|
|
2866
|
-
DocksReleaseHistory = _decorate([customElement("docks-release-history")], DocksReleaseHistory);
|
|
2867
|
-
//#endregion
|
|
2868
|
-
//#region src/components/npm-packages.ts
|
|
2869
|
-
var DocksNpmPackages = class DocksNpmPackages extends DocksPart {
|
|
2870
2826
|
static {
|
|
2871
2827
|
this.styles = [css`
|
|
2872
2828
|
.packages-panel {
|
|
@@ -2912,6 +2868,7 @@ function renderHtmlContribution(contribution) {
|
|
|
2912
2868
|
var DocksAttributionPart = class DocksAttributionPart extends DocksPart {
|
|
2913
2869
|
constructor(..._args) {
|
|
2914
2870
|
super(..._args);
|
|
2871
|
+
this.scrollMode = "none";
|
|
2915
2872
|
this.attributions = [];
|
|
2916
2873
|
}
|
|
2917
2874
|
static {
|
|
@@ -2984,7 +2941,7 @@ contributionRegistry.registerContribution(ABOUT_TABS, {
|
|
|
2984
2941
|
ranking: 100,
|
|
2985
2942
|
toolbar: false,
|
|
2986
2943
|
contextMenu: false,
|
|
2987
|
-
component: (id) => html`<docks-attribution id="${id}"></docks-attribution>`
|
|
2944
|
+
component: (id) => html`<docks-attribution id="${id}" embedded></docks-attribution>`
|
|
2988
2945
|
});
|
|
2989
2946
|
contributionRegistry.registerContribution(ABOUT_TABS, {
|
|
2990
2947
|
name: ABOUT_TAB_RELEASE,
|
|
@@ -2993,7 +2950,7 @@ contributionRegistry.registerContribution(ABOUT_TABS, {
|
|
|
2993
2950
|
ranking: 50,
|
|
2994
2951
|
toolbar: false,
|
|
2995
2952
|
contextMenu: false,
|
|
2996
|
-
component: (id) => html`<docks-release-history id="${id}"></docks-release-history>`
|
|
2953
|
+
component: (id) => html`<docks-release-history id="${id}" embedded></docks-release-history>`
|
|
2997
2954
|
});
|
|
2998
2955
|
contributionRegistry.registerContribution(ABOUT_TABS, {
|
|
2999
2956
|
name: ABOUT_TAB_PACKAGES,
|
|
@@ -3002,7 +2959,7 @@ contributionRegistry.registerContribution(ABOUT_TABS, {
|
|
|
3002
2959
|
ranking: 0,
|
|
3003
2960
|
toolbar: false,
|
|
3004
2961
|
contextMenu: false,
|
|
3005
|
-
component: (id) => html`<docks-npm-packages id="${id}"></docks-npm-packages>`
|
|
2962
|
+
component: (id) => html`<docks-npm-packages id="${id}" embedded></docks-npm-packages>`
|
|
3006
2963
|
});
|
|
3007
2964
|
contributionRegistry.registerContribution(SYSTEM_ATTRIBUTIONS, {
|
|
3008
2965
|
name: ATTRIBUTION_ECLIPSE_DOCKS,
|
|
@@ -3033,7 +2990,7 @@ contributionRegistry.registerContribution(TOOLBAR_BOTTOM_END, {
|
|
|
3033
2990
|
});
|
|
3034
2991
|
contributionRegistry.registerContribution(TOOLBAR_MAIN_RIGHT, {
|
|
3035
2992
|
name: TOOLBAR_LAYOUT_SWITCHER,
|
|
3036
|
-
label: "Layout
|
|
2993
|
+
label: "Layout panels",
|
|
3037
2994
|
component: () => html`<docks-layout-switcher></docks-layout-switcher>`
|
|
3038
2995
|
});
|
|
3039
2996
|
contributionRegistry.registerContribution(SIDEBAR_MAIN_TOOLBAR, {
|
|
@@ -3047,14 +3004,57 @@ contributionRegistry.registerContribution(SIDEBAR_MAIN_TOOLBAR, {
|
|
|
3047
3004
|
var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
|
|
3048
3005
|
constructor(..._args) {
|
|
3049
3006
|
super(..._args);
|
|
3050
|
-
this.
|
|
3051
|
-
this.showBottomPanel =
|
|
3007
|
+
this.showLeftAux = false;
|
|
3008
|
+
this.showBottomPanel = true;
|
|
3052
3009
|
this.showLeftSidebar = true;
|
|
3053
3010
|
this.showAuxSidebar = true;
|
|
3011
|
+
this.showRightAux = false;
|
|
3012
|
+
this.panelsInitialized = false;
|
|
3054
3013
|
}
|
|
3055
3014
|
createRenderRoot() {
|
|
3056
3015
|
return this;
|
|
3057
3016
|
}
|
|
3017
|
+
getPanelVisibility() {
|
|
3018
|
+
return {
|
|
3019
|
+
showLeftSidebar: this.showLeftSidebar,
|
|
3020
|
+
showAuxSidebar: this.showAuxSidebar,
|
|
3021
|
+
showBottomPanel: this.showBottomPanel,
|
|
3022
|
+
showLeftAux: this.showLeftAux,
|
|
3023
|
+
showRightAux: this.showRightAux
|
|
3024
|
+
};
|
|
3025
|
+
}
|
|
3026
|
+
applyPanelVisibility(panels) {
|
|
3027
|
+
this.showLeftSidebar = panels.showLeftSidebar;
|
|
3028
|
+
this.showAuxSidebar = panels.showAuxSidebar;
|
|
3029
|
+
this.showBottomPanel = panels.showBottomPanel;
|
|
3030
|
+
this.showLeftAux = panels.showLeftAux;
|
|
3031
|
+
this.showRightAux = panels.showRightAux;
|
|
3032
|
+
}
|
|
3033
|
+
async setPanelVisibility(panels) {
|
|
3034
|
+
const next = {
|
|
3035
|
+
...this.getPanelVisibility(),
|
|
3036
|
+
...panels
|
|
3037
|
+
};
|
|
3038
|
+
this.applyPanelVisibility(next);
|
|
3039
|
+
try {
|
|
3040
|
+
await appSettings.set(LAYOUT_PANEL_SETTINGS_KEY, next);
|
|
3041
|
+
} catch (error) {
|
|
3042
|
+
console.error("Failed to persist layout panel visibility:", error);
|
|
3043
|
+
throw error;
|
|
3044
|
+
}
|
|
3045
|
+
window.dispatchEvent(new CustomEvent("layout-panels-changed", { detail: { panels: this.getPanelVisibility() } }));
|
|
3046
|
+
}
|
|
3047
|
+
doInitUI() {
|
|
3048
|
+
this.initializePanelVisibility();
|
|
3049
|
+
}
|
|
3050
|
+
async initializePanelVisibility() {
|
|
3051
|
+
if (this.panelsInitialized) return;
|
|
3052
|
+
this.panelsInitialized = true;
|
|
3053
|
+
const appLayout = appLoaderService.getCurrentApp()?.layout;
|
|
3054
|
+
const panels = await resolveStoredPanelVisibility(appLayout);
|
|
3055
|
+
this.applyPanelVisibility(panels);
|
|
3056
|
+
window.dispatchEvent(new CustomEvent("layout-panels-changed", { detail: { panels: this.getPanelVisibility() } }));
|
|
3057
|
+
}
|
|
3058
3058
|
getGridSizes() {
|
|
3059
3059
|
if (this.showLeftSidebar && this.showAuxSidebar) return "20%, 60%, 20%";
|
|
3060
3060
|
if (this.showLeftSidebar) return "20%, 80%";
|
|
@@ -3146,7 +3146,7 @@ var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
|
|
|
3146
3146
|
sizes=${this.getGridSizes()}>
|
|
3147
3147
|
|
|
3148
3148
|
${this.showLeftSidebar ? html`
|
|
3149
|
-
${this.
|
|
3149
|
+
${this.showLeftAux ? html`
|
|
3150
3150
|
<docks-resizable-grid
|
|
3151
3151
|
id="left-sidebar-split"
|
|
3152
3152
|
orientation="vertical"
|
|
@@ -3167,7 +3167,17 @@ var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
|
|
|
3167
3167
|
</docks-resizable-grid>
|
|
3168
3168
|
` : html`<docks-tabs id="${EDITOR_AREA_MAIN}"></docks-tabs>`}
|
|
3169
3169
|
|
|
3170
|
-
${this.showAuxSidebar ? html
|
|
3170
|
+
${this.showAuxSidebar ? html`
|
|
3171
|
+
${this.showRightAux ? html`
|
|
3172
|
+
<docks-resizable-grid
|
|
3173
|
+
id="right-sidebar-split"
|
|
3174
|
+
orientation="vertical"
|
|
3175
|
+
sizes="50%, 50%">
|
|
3176
|
+
<docks-tabs id="${SIDEBAR_AUXILIARY}"></docks-tabs>
|
|
3177
|
+
<docks-tabs id="${SIDEBAR_AUXILIARY_BOTTOM}" placement="start" icon-only></docks-tabs>
|
|
3178
|
+
</docks-resizable-grid>
|
|
3179
|
+
` : html`<docks-tabs id="${SIDEBAR_AUXILIARY}"></docks-tabs>`}
|
|
3180
|
+
` : nothing}
|
|
3171
3181
|
</docks-resizable-grid>
|
|
3172
3182
|
|
|
3173
3183
|
<div class="toolbar-bottom">
|
|
@@ -3180,8 +3190,8 @@ var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
|
|
|
3180
3190
|
};
|
|
3181
3191
|
_decorate([property({
|
|
3182
3192
|
type: Boolean,
|
|
3183
|
-
attribute: "show-
|
|
3184
|
-
})], DocksStandardLayout.prototype, "
|
|
3193
|
+
attribute: "show-left-aux"
|
|
3194
|
+
})], DocksStandardLayout.prototype, "showLeftAux", void 0);
|
|
3185
3195
|
_decorate([property({
|
|
3186
3196
|
type: Boolean,
|
|
3187
3197
|
attribute: "show-bottom-panel"
|
|
@@ -3194,51 +3204,20 @@ _decorate([property({
|
|
|
3194
3204
|
type: Boolean,
|
|
3195
3205
|
attribute: "show-aux-sidebar"
|
|
3196
3206
|
})], DocksStandardLayout.prototype, "showAuxSidebar", void 0);
|
|
3207
|
+
_decorate([property({
|
|
3208
|
+
type: Boolean,
|
|
3209
|
+
attribute: "show-right-aux"
|
|
3210
|
+
})], DocksStandardLayout.prototype, "showRightAux", void 0);
|
|
3197
3211
|
DocksStandardLayout = _decorate([customElement("docks-standard-layout")], DocksStandardLayout);
|
|
3198
3212
|
//#endregion
|
|
3199
3213
|
//#region src/contributions/default-layout-contributions.ts
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
},
|
|
3208
|
-
{
|
|
3209
|
-
id: "standard-bottom-panel",
|
|
3210
|
-
name: "Standard (bottom panel)",
|
|
3211
|
-
label: "Standard (bottom panel)",
|
|
3212
|
-
icon: "docks layout-standard-bottom-panel",
|
|
3213
|
-
component: {
|
|
3214
|
-
tag: "docks-standard-layout",
|
|
3215
|
-
attributes: { "show-bottom-panel": "true" }
|
|
3216
|
-
}
|
|
3217
|
-
},
|
|
3218
|
-
{
|
|
3219
|
-
id: "standard-bottom-sidebar",
|
|
3220
|
-
name: "Standard (bottom sidebar)",
|
|
3221
|
-
label: "Standard (bottom sidebar)",
|
|
3222
|
-
icon: "docks layout-standard-bottom-sidebar",
|
|
3223
|
-
component: {
|
|
3224
|
-
tag: "docks-standard-layout",
|
|
3225
|
-
attributes: { "show-bottom-sidebar": "true" }
|
|
3226
|
-
}
|
|
3227
|
-
},
|
|
3228
|
-
{
|
|
3229
|
-
id: "standard-full",
|
|
3230
|
-
name: "Standard (panel + sidebar)",
|
|
3231
|
-
label: "Standard (panel + sidebar)",
|
|
3232
|
-
icon: "docks layout-standard-full",
|
|
3233
|
-
component: {
|
|
3234
|
-
tag: "docks-standard-layout",
|
|
3235
|
-
attributes: {
|
|
3236
|
-
"show-bottom-panel": "true",
|
|
3237
|
-
"show-bottom-sidebar": "true"
|
|
3238
|
-
}
|
|
3239
|
-
}
|
|
3240
|
-
}
|
|
3241
|
-
]) contributionRegistry.registerContribution(SYSTEM_LAYOUTS, layout);
|
|
3214
|
+
contributionRegistry.registerContribution(SYSTEM_LAYOUTS, {
|
|
3215
|
+
id: "standard",
|
|
3216
|
+
name: "Standard",
|
|
3217
|
+
label: "Standard",
|
|
3218
|
+
icon: "docks layout-standard-full",
|
|
3219
|
+
component: "docks-standard-layout"
|
|
3220
|
+
});
|
|
3242
3221
|
//#endregion
|
|
3243
3222
|
//#region src/commands/files.ts
|
|
3244
3223
|
async function getWorkspaceAndPath(params, requirePath = true) {
|
|
@@ -4636,6 +4615,6 @@ function getFrameworkConfig() {
|
|
|
4636
4615
|
return { ...frameworkConfig };
|
|
4637
4616
|
}
|
|
4638
4617
|
//#endregion
|
|
4639
|
-
export {
|
|
4618
|
+
export { i18n as _, DocksStandardLayout as a, LAYOUT_PANEL_SETTINGS_KEY as c, layoutIdToPanelVisibility as d, resolveInitialPanelVisibilityFromApp as f, createLazyLabel as g, editorRegistry as h, createJsRuntime as i, LEGACY_PREFERRED_LAYOUT_KEY as l, treeNodeComparator as m, getFrameworkConfig as n, DEFAULT_LAYOUT_PANEL_VISIBILITY as o, resolveStoredPanelVisibility as p, runJavaScriptCode as r, LAYOUT_PANEL_OPTIONS as s, configureFramework as t, findStandardLayout as u };
|
|
4640
4619
|
|
|
4641
|
-
//# sourceMappingURL=api-
|
|
4620
|
+
//# sourceMappingURL=api-oPg3Bv1S.js.map
|