@eclipse-docks/core 0.7.79 → 0.7.81

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 CHANGED
@@ -3,5 +3,5 @@ import { i as setLogLevel, n as defaultLogger, o as rootContext, s as uiContext,
3
3
  import { C as toastWarning, S as toastInfo, _ as applyConfigNameRemaps, a as TOPIC_COMMAND_REGISTERED, b as overrideContributionTargets, c as EMPTY_SIGNALPORT, d as activeSelectionSignal, f as activeTasksSignal, g as contributionRegistry, h as TOPIC_CONTRIBUTEIONS_CHANGED, i as CommandStack, l as activeEditorSignal, m as perspectiveSwitchedSignal, n as watchSignal, o as commandRegistry, p as partDirtySignal, r as CommandRegistry, s as registerAll, t as DocksWidget, u as activePartSignal, v as contributionTargetMappingRegistry, x as toastError, y as listContributionNameRemaps } from "../widget-BgBerzhp.js";
4
4
  import { n as subscribe, r as unsubscribe, t as publish } from "../events-B_ZxkU_G.js";
5
5
  import { a as File, c as TOPIC_WORKSPACE_CHANGED, d as WorkspaceService, f as workspaceService, i as Directory, l as TOPIC_WORKSPACE_CONNECTED, o as FileContentType, p as persistenceService, r as CompositeDirectory, s as StringFile, t as FileSysDirHandleResource } from "../fs-access-D-fDaJ8V.js";
6
- import { a as DocksStandardLayout, c as createLazyLabel, i as createJsRuntime, l as i18n, n as getFrameworkConfig, o as treeNodeComparator, r as runJavaScriptCode, s as editorRegistry, t as configureFramework } from "../api-CRqV4LEn.js";
6
+ import { a as DocksStandardLayout, c as createLazyLabel, i as createJsRuntime, l as i18n, n as getFrameworkConfig, o as treeNodeComparator, r as runJavaScriptCode, s as editorRegistry, t as configureFramework } from "../api-C8Vh88fr.js";
7
7
  export { COMMAND_SAVE, CommandRegistry, CommandStack, CompositeDirectory, Directory, DocksContainer, DocksDialogContent, DocksElement, DocksPart, DocksStandardLayout, DocksWidget, EDITOR_AREA_MAIN, EMPTY_SIGNALPORT, File, FileContentType, FileSysDirHandleResource, HIDE_DOT_RESOURCE, MouseButton, PANEL_BOTTOM, SIDEBAR_AUXILIARY, SIDEBAR_MAIN, SIDEBAR_MAIN_BOTTOM, SYSTEM_LAYOUTS, SYSTEM_VIEWS, StringFile, TOOLBAR_BOTTOM, TOOLBAR_BOTTOM_CENTER, TOOLBAR_BOTTOM_END, TOOLBAR_MAIN, TOOLBAR_MAIN_CENTER, TOOLBAR_MAIN_RIGHT, TOPIC_COMMAND_REGISTERED, TOPIC_CONTRIBUTEIONS_CHANGED, TOPIC_SETTINGS_CHANGED, TOPIC_WORKSPACE_CHANGED, TOPIC_WORKSPACE_CONNECTED, WorkspaceService, activeEditorSignal, activePartSignal, activeSelectionSignal, activeTasksSignal, appLoaderService, appSettings, applyConfigNameRemaps, commandRegistry, configureFramework, confirmDialog, contributionRegistry, contributionTargetMappingRegistry, createJsRuntime, createLazyLabel, createLogger, dialogService, editorRegistry, esmShService, extensionRegistry, filebrowserDialog, getFrameworkConfig, i18n, icon, infoDialog, listContributionNameRemaps, defaultLogger as logger, navigableInfoDialog, overrideContributionTargets, parseIconSpec, partDirtySignal, persistenceService, perspectiveSwitchedSignal, promptDialog, publish, registerAll, rootContext, runJavaScriptCode, setLogLevel, subscribe, taskService, toastError, toastInfo, toastWarning, treeNodeComparator, uiContext, unsubscribe, watchSignal, workspaceService };
@@ -1,6 +1,6 @@
1
1
  import { D as SIDEBAR_MAIN, E as SIDEBAR_AUXILIARY, F as TOOLBAR_MAIN_CENTER, I as TOOLBAR_MAIN_RIGHT, L as constants_exports, M as TOOLBAR_BOTTOM_CENTER, N as TOOLBAR_BOTTOM_END, O as SIDEBAR_MAIN_BOTTOM, P as TOOLBAR_MAIN, S as EDITOR_AREA_MAIN, T as PANEL_BOTTOM, _ as esmShService, a as filebrowserDialog, b as appSettings, d as deleteIndexedDbWorkspaceData, g as extensionRegistry, h as TOPIC_EXTENSIONS_CHANGED, j as TOOLBAR_BOTTOM, k as SYSTEM_LAYOUTS, l as promptDialog, m as DocksElement, n as DocksContainer, r as icon, s as confirmDialog, t as DocksPart, u as appLoaderService, v as taskService, y as TOPIC_SETTINGS_CHANGED } from "./parts-CKBZls6J.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
- import { C as toastWarning, S as toastInfo, d as activeSelectionSignal, f as activeTasksSignal, g as contributionRegistry, h as TOPIC_CONTRIBUTEIONS_CHANGED, s as registerAll, t as DocksWidget, u as activePartSignal, x as toastError } from "./widget-BgBerzhp.js";
3
+ import { C as toastWarning, S 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, x as toastError } from "./widget-BgBerzhp.js";
4
4
  import { n as subscribe, t as publish } from "./events-B_ZxkU_G.js";
5
5
  import { a as File, c as TOPIC_WORKSPACE_CHANGED, f as workspaceService, i as Directory, l as TOPIC_WORKSPACE_CONNECTED, o as FileContentType, u as UnavailableWorkspaceFolderDirectory } from "./fs-access-D-fDaJ8V.js";
6
6
  import "./widgets-Cgi8WuOZ.js";
@@ -297,7 +297,7 @@ var treeNodeComparator = (c1, c2) => {
297
297
  //#region src/components/filebrowser.ts
298
298
  var _DocksFileBrowser;
299
299
  var logger$1 = createLogger("DocksFileBrowser");
300
- var t$5 = await i18n(/* @__PURE__ */ Object.assign({
300
+ var t$6 = await i18n(/* @__PURE__ */ Object.assign({
301
301
  "./filebrowser.de.json": () => import("./filebrowser.de-GEf6Eilh.js"),
302
302
  "./filebrowser.en.json": () => import("./filebrowser.en-o0Ad5f7Z.js")
303
303
  }));
@@ -350,9 +350,9 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
350
350
  }
351
351
  renderToolbar() {
352
352
  return html`
353
- <docks-command icon="folder-open" title="${t$5.CONNECT_WORKSPACE}" dropdown="filebrowser.connections"></docks-command>
354
- <docks-command cmd="refresh_resource" icon="repeat" title="${t$5.REFRESH_RESOURCE}"></docks-command>
355
- <docks-command icon="docks file-plus" title="${t$5.CREATE_NEW}" dropdown="filebrowser.create"></docks-command>
353
+ <docks-command icon="folder-open" title="${t$6.CONNECT_WORKSPACE}" dropdown="filebrowser.connections"></docks-command>
354
+ <docks-command cmd="refresh_resource" icon="repeat" title="${t$6.REFRESH_RESOURCE}"></docks-command>
355
+ <docks-command icon="docks file-plus" title="${t$6.CREATE_NEW}" dropdown="filebrowser.create"></docks-command>
356
356
  `;
357
357
  }
358
358
  renderContextMenu() {
@@ -360,11 +360,11 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
360
360
  const file = selection instanceof File ? selection : null;
361
361
  const hasOpenWith = file && this.fileEditorOptions.length > 0;
362
362
  return html`
363
- <docks-command cmd="open_editor" icon="folder-open">${t$5.OPEN}</docks-command>
363
+ <docks-command cmd="open_editor" icon="folder-open">${t$6.OPEN}</docks-command>
364
364
  ${hasOpenWith ? html`
365
365
  <wa-dropdown-item>
366
366
  ${icon("folder-open", { slot: "icon" })}
367
- ${t$5.OPEN_WITH}
367
+ ${t$6.OPEN_WITH}
368
368
  ${this.fileEditorOptions.map((opt) => html`
369
369
  <docks-command
370
370
  slot="submenu"
@@ -379,7 +379,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
379
379
  `)}
380
380
  </wa-dropdown-item>
381
381
  ` : nothing}
382
- <docks-command icon="docks file-plus" dropdown="filebrowser.create">${t$5.CREATE_NEW}</docks-command>
382
+ <docks-command icon="docks file-plus" dropdown="filebrowser.create">${t$6.CREATE_NEW}</docks-command>
383
383
  `;
384
384
  }
385
385
  onWorkspaceChanged(workspaceDir) {
@@ -526,7 +526,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
526
526
  const workspaceTag = node.workspaceTag;
527
527
  const loadError = node.loadError;
528
528
  const placeholderNotice = node.placeholderNotice;
529
- const issueText = loadError ? t$5.FOLDER_LOAD_FAILED({ detail: loadError }) : placeholderNotice ? t$5.FOLDER_UNAVAILABLE({ detail: placeholderNotice }) : null;
529
+ const issueText = loadError ? t$6.FOLDER_LOAD_FAILED({ detail: loadError }) : placeholderNotice ? t$6.FOLDER_UNAVAILABLE({ detail: placeholderNotice }) : null;
530
530
  return html`
531
531
  <wa-tree-item
532
532
  draggable=${isDraggable}
@@ -539,7 +539,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
539
539
  <div class="tree-item-rows">
540
540
  <div class="tree-item-label-row">
541
541
  <span class="tree-label">
542
- ${icon(iconSpec, { label: node.leaf ? t$5.FILE : t$5.FOLDER })}
542
+ ${icon(iconSpec, { label: node.leaf ? t$6.FILE : t$6.FOLDER })}
543
543
  <span class="tree-label-text">${node.label}</span>
544
544
  ${!node.leaf && workspaceTag ? html`<wa-badge appearance="outlined" variant="neutral" style="font-size: var(--wa-font-size-xs);">${workspaceTag}</wa-badge>` : null}
545
545
  </span>
@@ -788,9 +788,9 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
788
788
  const srcRootsArray = Array.from(srcRoots);
789
789
  const srcInfo = await workspaceService.getFolderInfoForDirectory(srcRootsArray[0]);
790
790
  const destInfo = await workspaceService.getFolderInfoForDirectory(destRoot);
791
- const srcBackend = srcInfo?.backendName ?? t$5.UNKNOWN_BACKEND;
792
- const destBackend = destInfo?.backendName ?? t$5.UNKNOWN_BACKEND;
793
- if (!await confirmDialog(t$5.DND_CROSS_CONNECTION_CONFIRM({
791
+ const srcBackend = srcInfo?.backendName ?? t$6.UNKNOWN_BACKEND;
792
+ const destBackend = destInfo?.backendName ?? t$6.UNKNOWN_BACKEND;
793
+ if (!await confirmDialog(t$6.DND_CROSS_CONNECTION_CONFIRM({
794
794
  count: String(sources.length),
795
795
  srcBackend,
796
796
  destBackend
@@ -817,7 +817,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
817
817
  for (const file of files) try {
818
818
  const targetPath = this.buildTargetPath(targetDir, file.name);
819
819
  if (await this.workspaceDir.getResource(targetPath)) {
820
- if (!await confirmDialog(t$5.FILE_EXISTS_OVERWRITE({ fileName: file.name }))) {
820
+ if (!await confirmDialog(t$6.FILE_EXISTS_OVERWRITE({ fileName: file.name }))) {
821
821
  skipped++;
822
822
  continue;
823
823
  }
@@ -837,9 +837,9 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
837
837
  }
838
838
  renderContent() {
839
839
  return html`
840
- <div class="tree" ${ref(this.treeRef)} style="--drop-files-text: '${t$5.DROP_FILES_HERE}'">
840
+ <div class="tree" ${ref(this.treeRef)} style="--drop-files-text: '${t$6.DROP_FILES_HERE}'">
841
841
  ${when(!this.workspaceDir, () => html`
842
- <docks-no-content message="${t$5.SELECT_WORKSPACE}"></docks-no-content>`, () => when(this.root, () => html`
842
+ <docks-no-content message="${t$6.SELECT_WORKSPACE}"></docks-no-content>`, () => when(this.root, () => html`
843
843
  <wa-tree @wa-selection-change=${this.nobubble(this.onSelectionChanged)}
844
844
  style="--indent-guide-width: 1px;">
845
845
  ${this.root.children.map((child) => this.createTreeItems(child, true))}
@@ -932,7 +932,7 @@ _decorate([state()], DocksFileBrowser.prototype, "fileEditorOptions", void 0);
932
932
  DocksFileBrowser = _DocksFileBrowser = _decorate([customElement("docks-filebrowser")], DocksFileBrowser);
933
933
  //#endregion
934
934
  //#region src/components/tasks.ts
935
- var t$4 = await i18n(/* @__PURE__ */ Object.assign({
935
+ var t$5 = await i18n(/* @__PURE__ */ Object.assign({
936
936
  "./tasks.de.json": () => import("./tasks.de-y2xPmQ1k.js"),
937
937
  "./tasks.en.json": () => import("./tasks.en-BTbFrxJj.js")
938
938
  }));
@@ -970,7 +970,7 @@ function updateProgressDialog(forceOpen = false) {
970
970
  };
971
971
  render(html`
972
972
  <wa-dialog
973
- label="${t$4.ACTIVE_TASKS}"
973
+ label="${t$5.ACTIVE_TASKS}"
974
974
  open
975
975
  light-dismiss
976
976
  style="--width: 600px;"
@@ -1140,10 +1140,10 @@ var DocksTasks = class DocksTasks extends DocksElement {
1140
1140
  const taskCount = taskService.getActiveTasks().length;
1141
1141
  if (taskCount === 0) return html``;
1142
1142
  return html`
1143
- <div class="tasindicator" @click=${this.handleIndicatorClick} title="${t$4.ACTIVE_TASKS_TITLE({ taskCount: taskCount.toString() })}">
1143
+ <div class="tasindicator" @click=${this.handleIndicatorClick} title="${t$5.ACTIVE_TASKS_TITLE({ taskCount: taskCount.toString() })}">
1144
1144
  <wa-spinner
1145
1145
  style="font-size: 1rem; --indicator-color: var(--wa-color-warning-fill-loud);"
1146
- label="${t$4.ACTIVE_TASKS}"
1146
+ label="${t$5.ACTIVE_TASKS}"
1147
1147
  ></wa-spinner>
1148
1148
  <wa-badge appearance="outlined" variant="neutral" pill>${taskCount}</wa-badge>
1149
1149
  <div class="tasbar-wrap"><wa-progress-bar indeterminate></wa-progress-bar></div>
@@ -1153,6 +1153,49 @@ var DocksTasks = class DocksTasks extends DocksElement {
1153
1153
  };
1154
1154
  DocksTasks = _decorate([customElement("docks-tasks")], DocksTasks);
1155
1155
  //#endregion
1156
+ //#region src/components/document-title.ts
1157
+ var t$4 = await i18n(/* @__PURE__ */ Object.assign({
1158
+ "./partname.de.json": () => import("./partname.de-v76uEl0F.js"),
1159
+ "./partname.en.json": () => import("./partname.en-By5aAawT.js")
1160
+ }));
1161
+ /**
1162
+ * Human-readable label for the focused part (same logic as docks-part-name).
1163
+ */
1164
+ function getActivePartDisplayName() {
1165
+ const activePart = activePartSignal.get();
1166
+ if (!activePart) return t$4.NO_PART;
1167
+ return activePart.tabContribution?.label || activePart.getAttribute("id") || t$4.NO_PART;
1168
+ }
1169
+ /** Wait after the last active-part change before updating `document.title` (rapid tab switches). */
1170
+ var TITLE_DEBOUNCE_MS = 250;
1171
+ var titleDebounceTimer = null;
1172
+ function applyDocumentTitle() {
1173
+ const appName = appLoaderService.getCurrentApp()?.name ?? "";
1174
+ const activePart = activePartSignal.get();
1175
+ if (!activePart) {
1176
+ document.title = appName;
1177
+ return;
1178
+ }
1179
+ const part = activePart.tabContribution?.label || activePart.getAttribute("id") || t$4.NO_PART;
1180
+ if (appName) document.title = `${appName} | ${part}`;
1181
+ else document.title = part;
1182
+ }
1183
+ function scheduleApplyDocumentTitle() {
1184
+ if (titleDebounceTimer !== null) clearTimeout(titleDebounceTimer);
1185
+ titleDebounceTimer = setTimeout(() => {
1186
+ titleDebounceTimer = null;
1187
+ applyDocumentTitle();
1188
+ }, TITLE_DEBOUNCE_MS);
1189
+ }
1190
+ watchSignal(activePartSignal, () => scheduleApplyDocumentTitle());
1191
+ window.addEventListener("app-loaded", () => {
1192
+ if (titleDebounceTimer !== null) {
1193
+ clearTimeout(titleDebounceTimer);
1194
+ titleDebounceTimer = null;
1195
+ }
1196
+ applyDocumentTitle();
1197
+ });
1198
+ //#endregion
1156
1199
  //#region src/components/part-name.ts
1157
1200
  var t$3 = await i18n(/* @__PURE__ */ Object.assign({
1158
1201
  "./partname.de.json": () => import("./partname.de-v76uEl0F.js"),
@@ -1165,11 +1208,6 @@ var DocksPartName = class DocksPartName extends DocksElement {
1165
1208
  this.requestUpdate();
1166
1209
  });
1167
1210
  }
1168
- getPartName() {
1169
- const activePart = activePartSignal.get();
1170
- if (!activePart) return t$3.NO_PART;
1171
- return activePart.tabContribution?.label || activePart.getAttribute("id") || t$3.NO_PART;
1172
- }
1173
1211
  render() {
1174
1212
  const partIcon = activePartSignal.get()?.tabContribution?.icon || "box";
1175
1213
  return html`
@@ -1181,7 +1219,7 @@ var DocksPartName = class DocksPartName extends DocksElement {
1181
1219
  label: "Part",
1182
1220
  slot: "start"
1183
1221
  })}
1184
- ${this.getPartName()}
1222
+ ${getActivePartDisplayName()}
1185
1223
  </wa-button>
1186
1224
  `;
1187
1225
  }
@@ -4345,4 +4383,4 @@ function getFrameworkConfig() {
4345
4383
  //#endregion
4346
4384
  export { DocksStandardLayout as a, createLazyLabel as c, createJsRuntime as i, i18n as l, getFrameworkConfig as n, treeNodeComparator as o, runJavaScriptCode as r, editorRegistry as s, configureFramework as t };
4347
4385
 
4348
- //# sourceMappingURL=api-CRqV4LEn.js.map
4386
+ //# sourceMappingURL=api-C8Vh88fr.js.map