@eclipse-docks/extension-catalog 0.7.135 → 0.7.137

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.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","names":[],"sources":["../src/register-catalog.ts"],"sourcesContent":["import {\n contributionRegistry,\n type TreeContribution,\n} from \"@eclipse-docks/core\";\n\n/** Leaf item state: optional filename when URL is not path-shaped (e.g. data: in production bundles). */\nexport type CatalogResourceState = {\n url: string;\n filename?: string;\n};\n\nexport interface CatalogContribution extends TreeContribution {\n items?: CatalogContribution[];\n}\n\nexport function getCatalogBaseUrl(): string {\n if (typeof globalThis === 'undefined') return '';\n const loc = (globalThis as unknown as { location?: { origin: string } }).location;\n const base = (import.meta as unknown as { env?: { BASE_URL?: string } }).env?.BASE_URL ?? '';\n if (!loc?.origin) return '';\n return (loc.origin + base).replace(/\\/?$/, '/');\n}\n\nexport function registerCatalog(catalog: CatalogContribution, baseUrl?: string): void {\n const base = baseUrl ?? getCatalogBaseUrl();\n contributionRegistry.registerContribution(\"catalog.root\", {\n label: catalog.label,\n icon: catalog.icon,\n contributionId: catalog.contributionId,\n } as TreeContribution);\n\n const contributionId = catalog.contributionId ?? catalog.label;\n catalog.items?.forEach((item: CatalogContribution) => {\n contributionRegistry.registerContribution(contributionId, {\n label: item.label,\n icon: item.icon,\n contributionId: item.contributionId,\n } as TreeContribution);\n\n item.items?.forEach((child: any) => {\n const contribution = {\n label: child.label,\n icon: child.icon,\n state: { ...child.state },\n } as TreeContribution;\n const url = contribution.state?.url as string | undefined;\n if (url && typeof url === \"string\" && url.includes(\"${baseURL}/\")) {\n contribution.state = { ...contribution.state, url: url.replace(\"${baseURL}/\", base) };\n }\n contributionRegistry.registerContribution(\n item.contributionId!,\n contribution\n );\n });\n });\n}\n"],"mappings":";;AAeA,SAAgB,oBAA4B;CACxC,IAAI,OAAO,eAAe,aAAa,OAAO;CAC9C,MAAM,MAAO,WAA4D;CACzE,MAAM,OAAA;CACN,IAAI,CAAC,KAAK,QAAQ,OAAO;CACzB,QAAQ,IAAI,SAAS,KAAA,CAAM,QAAQ,QAAQ,GAAG;AAClD;AAEA,SAAgB,gBAAgB,SAA8B,SAAwB;CAClF,MAAM,OAAO,WAAW,kBAAkB;CAC1C,qBAAqB,qBAAqB,gBAAgB;EACtD,OAAO,QAAQ;EACf,MAAM,QAAQ;EACd,gBAAgB,QAAQ;CAC5B,CAAqB;CAErB,MAAM,iBAAiB,QAAQ,kBAAkB,QAAQ;CACzD,QAAQ,OAAO,SAAS,SAA8B;EAClD,qBAAqB,qBAAqB,gBAAgB;GACtD,OAAO,KAAK;GACZ,MAAM,KAAK;GACX,gBAAgB,KAAK;EACzB,CAAqB;EAErB,KAAK,OAAO,SAAS,UAAe;GAChC,MAAM,eAAe;IACjB,OAAO,MAAM;IACb,MAAM,MAAM;IACZ,OAAO,EAAE,GAAG,MAAM,MAAM;GAC5B;GACA,MAAM,MAAM,aAAa,OAAO;GAChC,IAAI,OAAO,OAAO,QAAQ,YAAY,IAAI,SAAS,aAAa,GAC5D,aAAa,QAAQ;IAAE,GAAG,aAAa;IAAO,KAAK,IAAI,QAAQ,eAAe,IAAI;GAAE;GAExF,qBAAqB,qBACjB,KAAK,gBACL,YACJ;EACJ,CAAC;CACL,CAAC;AACL"}
1
+ {"version":3,"file":"api.js","names":[],"sources":["../src/register-catalog.ts"],"sourcesContent":["import {\n contributionRegistry,\n type TreeContribution,\n} from \"@eclipse-docks/core\";\n\n/** Leaf item state: optional filename when URL is not path-shaped (e.g. data: in production bundles). */\nexport type CatalogResourceState = {\n url: string;\n filename?: string;\n /** Open URL in a new browser tab instead of wget into the workspace. */\n openInNewTab?: boolean;\n};\n\nexport interface CatalogContribution extends TreeContribution {\n items?: CatalogContribution[];\n}\n\nexport function getCatalogBaseUrl(): string {\n if (typeof globalThis === 'undefined') return '';\n const loc = (globalThis as unknown as { location?: { origin: string } }).location;\n const base = (import.meta as unknown as { env?: { BASE_URL?: string } }).env?.BASE_URL ?? '';\n if (!loc?.origin) return '';\n return (loc.origin + base).replace(/\\/?$/, '/');\n}\n\nexport function registerCatalog(catalog: CatalogContribution, baseUrl?: string): void {\n const base = baseUrl ?? getCatalogBaseUrl();\n contributionRegistry.registerContribution(\"catalog.root\", {\n label: catalog.label,\n icon: catalog.icon,\n contributionId: catalog.contributionId,\n } as TreeContribution);\n\n const contributionId = catalog.contributionId ?? catalog.label;\n catalog.items?.forEach((item: CatalogContribution) => {\n contributionRegistry.registerContribution(contributionId, {\n label: item.label,\n icon: item.icon,\n contributionId: item.contributionId,\n } as TreeContribution);\n\n item.items?.forEach((child: any) => {\n const contribution = {\n label: child.label,\n icon: child.icon,\n state: { ...child.state },\n } as TreeContribution;\n const url = contribution.state?.url as string | undefined;\n if (url && typeof url === \"string\" && url.includes(\"${baseURL}/\")) {\n contribution.state = { ...contribution.state, url: url.replace(\"${baseURL}/\", base) };\n }\n contributionRegistry.registerContribution(\n item.contributionId!,\n contribution\n );\n });\n });\n}\n"],"mappings":";;AAiBA,SAAgB,oBAA4B;CACxC,IAAI,OAAO,eAAe,aAAa,OAAO;CAC9C,MAAM,MAAO,WAA4D;CACzE,MAAM,OAAA;CACN,IAAI,CAAC,KAAK,QAAQ,OAAO;CACzB,QAAQ,IAAI,SAAS,KAAA,CAAM,QAAQ,QAAQ,GAAG;AAClD;AAEA,SAAgB,gBAAgB,SAA8B,SAAwB;CAClF,MAAM,OAAO,WAAW,kBAAkB;CAC1C,qBAAqB,qBAAqB,gBAAgB;EACtD,OAAO,QAAQ;EACf,MAAM,QAAQ;EACd,gBAAgB,QAAQ;CAC5B,CAAqB;CAErB,MAAM,iBAAiB,QAAQ,kBAAkB,QAAQ;CACzD,QAAQ,OAAO,SAAS,SAA8B;EAClD,qBAAqB,qBAAqB,gBAAgB;GACtD,OAAO,KAAK;GACZ,MAAM,KAAK;GACX,gBAAgB,KAAK;EACzB,CAAqB;EAErB,KAAK,OAAO,SAAS,UAAe;GAChC,MAAM,eAAe;IACjB,OAAO,MAAM;IACb,MAAM,MAAM;IACZ,OAAO,EAAE,GAAG,MAAM,MAAM;GAC5B;GACA,MAAM,MAAM,aAAa,OAAO;GAChC,IAAI,OAAO,OAAO,QAAQ,YAAY,IAAI,SAAS,aAAa,GAC5D,aAAa,QAAQ;IAAE,GAAG,aAAa;IAAO,KAAK,IAAI,QAAQ,eAAe,IAAI;GAAE;GAExF,qBAAqB,qBACjB,KAAK,gBACL,YACJ;EACJ,CAAC;CACL,CAAC;AACL"}
@@ -11,8 +11,10 @@ export declare class DocksCatalog extends DocksPart {
11
11
  protected renderToolbar(): TemplateResult<1>;
12
12
  private toTreeNodes;
13
13
  private wgetParamsFromCatalogData;
14
+ private openInNewTabFromCatalogData;
15
+ private openCatalogUrl;
14
16
  onItemDblClicked(event: Event): void;
15
- private runWgetForSelection;
17
+ private runActionForSelection;
16
18
  onSelectionChanged(event: Event): void;
17
19
  protected renderContextMenu(): TemplateResult<1>;
18
20
  setAllExpanded(expanded: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"docks-catalog.d.ts","sourceRoot":"","sources":["../src/docks-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EAKjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,SAAS,EAET,QAAQ,EAUX,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAK/C,qBACa,YAAa,SAAQ,SAAS;IAEvC,OAAO,CAAC,SAAS,CAAC,CAAa;IAE/B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,SAAS,CAAC,UAAU;IASpB,SAAS,CAAC,OAAO;IAQjB,OAAO,CAAC,WAAW;IAQnB,SAAS,CAAC,aAAa;IAkBvB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,yBAAyB;IASjC,gBAAgB,CAAC,KAAK,EAAE,KAAK;IAc7B,OAAO,CAAC,mBAAmB;IAQ3B,kBAAkB,CAAC,KAAK,EAAE,KAAK;IAM/B,SAAS,CAAC,iBAAiB;IAcpB,cAAc,CAAC,QAAQ,EAAE,OAAO;IAShC,OAAO;IAId,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,UAAQ,GAAG,cAAc;IAgBjE,SAAS,CAAC,aAAa;IA0BvB,MAAM,CAAC,MAAM,0BAiBX;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,eAAe,EAAE,YAAY,CAAC;KACjC;CACJ"}
1
+ {"version":3,"file":"docks-catalog.d.ts","sourceRoot":"","sources":["../src/docks-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EAKjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,SAAS,EAET,QAAQ,EAUX,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAK/C,qBACa,YAAa,SAAQ,SAAS;IAEvC,OAAO,CAAC,SAAS,CAAC,CAAa;IAE/B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,SAAS,CAAC,UAAU;IASpB,SAAS,CAAC,OAAO;IAQjB,OAAO,CAAC,WAAW;IAQnB,SAAS,CAAC,aAAa;IAkBvB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,cAAc;IAItB,gBAAgB,CAAC,KAAK,EAAE,KAAK;IAmB7B,OAAO,CAAC,qBAAqB;IAa7B,kBAAkB,CAAC,KAAK,EAAE,KAAK;IAM/B,SAAS,CAAC,iBAAiB;IAepB,cAAc,CAAC,QAAQ,EAAE,OAAO;IAShC,OAAO;IAId,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,UAAQ,GAAG,cAAc;IAwBjE,SAAS,CAAC,aAAa;IA0BvB,MAAM,CAAC,MAAM,0BA4BX;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,eAAe,EAAE,YAAY,CAAC;KACjC;CACJ"}
package/dist/loader.js CHANGED
@@ -38,7 +38,7 @@ var DocksCatalog = class DocksCatalog extends DocksPart {
38
38
  icon="file-arrow-down"
39
39
  title="Checkout"
40
40
  ?disabled=${!isActiveAndHasSelection}
41
- .action=${() => this.runWgetForSelection()}
41
+ .action=${() => this.runActionForSelection()}
42
42
  ></docks-command>
43
43
  <docks-command icon="arrows-rotate" title="Refresh Catalog" .action=${() => this.refresh()}></docks-command>
44
44
  <docks-command icon="angles-down" slot="end" title="Expand All" .action=${() => this.setAllExpanded(true)}></docks-command>
@@ -62,15 +62,27 @@ var DocksCatalog = class DocksCatalog extends DocksPart {
62
62
  });
63
63
  }
64
64
  wgetParamsFromCatalogData(data) {
65
- if (!data?.url) return null;
65
+ if (!data?.url || data.openInNewTab) return null;
66
66
  const params = { url: data.url };
67
67
  if (typeof data.filename === "string" && data.filename.trim()) params.filename = data.filename.trim();
68
68
  return params;
69
69
  }
70
+ openInNewTabFromCatalogData(data) {
71
+ if (!data?.url || !data.openInNewTab) return null;
72
+ return data.url;
73
+ }
74
+ openCatalogUrl(url) {
75
+ window.open(url, "_blank", "noopener,noreferrer");
76
+ }
70
77
  onItemDblClicked(event) {
71
78
  const item = event.currentTarget;
72
79
  const node = item?.model;
73
80
  if (!node) return;
81
+ const externalUrl = this.openInNewTabFromCatalogData(node.data);
82
+ if (externalUrl) {
83
+ this.openCatalogUrl(externalUrl);
84
+ return;
85
+ }
74
86
  const wgetParams = this.wgetParamsFromCatalogData(node.data);
75
87
  if (wgetParams) {
76
88
  this.executeCommand("wget", wgetParams);
@@ -78,8 +90,13 @@ var DocksCatalog = class DocksCatalog extends DocksPart {
78
90
  }
79
91
  if (!node.leaf && "expanded" in item) item.expanded = !item.expanded;
80
92
  }
81
- runWgetForSelection() {
93
+ runActionForSelection() {
82
94
  const item = activeSelectionSignal.get();
95
+ const externalUrl = item && this.openInNewTabFromCatalogData(item);
96
+ if (externalUrl) {
97
+ this.openCatalogUrl(externalUrl);
98
+ return;
99
+ }
83
100
  const wgetParams = item && this.wgetParamsFromCatalogData(item);
84
101
  if (wgetParams) this.executeCommand("wget", wgetParams);
85
102
  }
@@ -90,13 +107,14 @@ var DocksCatalog = class DocksCatalog extends DocksPart {
90
107
  renderContextMenu() {
91
108
  const item = activePartSignal.get() instanceof _DocksCatalog ? activeSelectionSignal.get() : void 0;
92
109
  const hasUrl = item && "url" in item && item.url;
110
+ const openExternal = item && "openInNewTab" in item && item.openInNewTab;
93
111
  return html`
94
112
  ${renderDropdownItem({
95
113
  icon: "file-arrow-down",
96
- label: "Checkout",
97
- title: "Checkout",
114
+ label: openExternal ? "Open download" : "Checkout",
115
+ title: openExternal ? "Open download in browser" : "Checkout",
98
116
  disabled: !hasUrl,
99
- action: () => this.runWgetForSelection()
117
+ action: () => this.runActionForSelection()
100
118
  })}
101
119
  `;
102
120
  }
@@ -111,13 +129,17 @@ var DocksCatalog = class DocksCatalog extends DocksPart {
111
129
  }
112
130
  createTreeItems(node, expanded = false) {
113
131
  if (!node) return html``;
132
+ const openExternal = Boolean(node.data && "openInNewTab" in node.data && node.data.openInNewTab);
114
133
  return html`
115
134
  <wa-tree-item
116
135
  @dblclick=${this.nobubble(this.onItemDblClicked)}
117
136
  .model=${node}
118
137
  ?expanded=${expanded}
119
138
  >
120
- <span>${icon(node.icon)} ${node.label}</span>
139
+ <span class="catalog-tree-label">
140
+ ${icon(node.icon)} ${node.label}
141
+ ${openExternal ? html`<span class="catalog-external-suffix" title="Opens in browser">${icon("arrow-up-right-from-square")}</span>` : ""}
142
+ </span>
121
143
  ${node.children?.map((child) => this.createTreeItems(child))}
122
144
  </wa-tree-item>
123
145
  `;
@@ -161,6 +183,17 @@ var DocksCatalog = class DocksCatalog extends DocksPart {
161
183
  flex: 1;
162
184
  min-height: 0;
163
185
  }
186
+
187
+ .catalog-tree-label {
188
+ display: inline-flex;
189
+ align-items: center;
190
+ gap: 0.35rem;
191
+ }
192
+
193
+ .catalog-external-suffix {
194
+ opacity: 0.65;
195
+ font-size: 0.85em;
196
+ }
164
197
  `;
165
198
  }
166
199
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","names":[],"sources":["../src/docks-catalog.ts","../src/loader.ts"],"sourcesContent":["import {\n css,\n html,\n TemplateResult,\n customElement,\n state,\n createRef,\n ref,\n} from \"@eclipse-docks/core/externals/lit\";\nimport {\n DocksPart,\n TreeContribution,\n TreeNode,\n contributionRegistry,\n activePartSignal,\n activeSelectionSignal,\n subscribe,\n unsubscribe,\n TOPIC_CONTRIBUTEIONS_CHANGED,\n type ContributionChangeEvent,\n icon,\n renderDropdownItem,\n} from \"@eclipse-docks/core\";\n\nexport const CID_CATALOG_ROOT = \"catalog.root\";\n\nconst CATALOG_EMPTY_MESSAGE =\n \"No catalog entries yet. Install or enable extensions that contribute catalog items.\";\n\n@customElement(\"docks-catalog\")\nexport class DocksCatalog extends DocksPart {\n @state()\n private rootNodes?: TreeNode[];\n\n private treeRef = createRef<HTMLElement>();\n private contributionsSubscriptionToken?: string;\n\n protected doBeforeUI() {\n this.rebuildTree();\n this.contributionsSubscriptionToken = subscribe(TOPIC_CONTRIBUTEIONS_CHANGED, (event: ContributionChangeEvent) => {\n if (event.target === CID_CATALOG_ROOT || event.target?.startsWith(\"catalog.\")) {\n this.rebuildTree();\n }\n });\n }\n\n protected doClose() {\n if (this.contributionsSubscriptionToken) {\n unsubscribe(this.contributionsSubscriptionToken);\n this.contributionsSubscriptionToken = undefined;\n }\n super.doClose();\n }\n\n private rebuildTree() {\n const contributions = contributionRegistry.getContributions(\n CID_CATALOG_ROOT\n ) as TreeContribution[];\n this.rootNodes = this.toTreeNodes(contributions);\n this.requestUpdate();\n }\n\n protected renderToolbar() {\n const isActiveAndHasSelection =\n activePartSignal.get() instanceof DocksCatalog &&\n activeSelectionSignal.get() !== undefined;\n\n return html`\n <docks-command\n icon=\"file-arrow-down\"\n title=\"Checkout\"\n ?disabled=${!isActiveAndHasSelection}\n .action=${() => this.runWgetForSelection()}\n ></docks-command>\n <docks-command icon=\"arrows-rotate\" title=\"Refresh Catalog\" .action=${() => this.refresh()}></docks-command>\n <docks-command icon=\"angles-down\" slot=\"end\" title=\"Expand All\" .action=${() => this.setAllExpanded(true)}></docks-command>\n <docks-command icon=\"angles-up\" slot=\"end\" title=\"Collapse All\" .action=${() => this.setAllExpanded(false)}></docks-command>\n `;\n }\n\n private toTreeNodes(contributions: TreeContribution[]) {\n return contributions.map((c) => {\n const node = {\n data: c.state,\n icon: c.icon,\n label: c.label,\n leaf: false,\n } as TreeNode;\n if (c.contributionId) {\n const children = contributionRegistry.getContributions(\n c.contributionId\n ) as TreeContribution[];\n node.leaf = children.length === 0;\n node.children = this.toTreeNodes(children);\n }\n return node;\n });\n }\n\n private wgetParamsFromCatalogData(data: { url?: string; filename?: string }) {\n if (!data?.url) return null;\n const params: { url: string; filename?: string } = { url: data.url };\n if (typeof data.filename === \"string\" && data.filename.trim()) {\n params.filename = data.filename.trim();\n }\n return params;\n }\n\n onItemDblClicked(event: Event) {\n const item = event.currentTarget as HTMLElement & { model?: TreeNode; expanded?: boolean };\n const node = item?.model;\n if (!node) return;\n const wgetParams = this.wgetParamsFromCatalogData(node.data);\n if (wgetParams) {\n void this.executeCommand(\"wget\", wgetParams);\n return;\n }\n if (!node.leaf && \"expanded\" in item) {\n item.expanded = !item.expanded;\n }\n }\n\n private runWgetForSelection() {\n const item = activeSelectionSignal.get();\n const wgetParams = item && this.wgetParamsFromCatalogData(item as { url?: string; filename?: string });\n if (wgetParams) {\n void this.executeCommand(\"wget\", wgetParams);\n }\n }\n\n onSelectionChanged(event: Event) {\n const node: TreeNode = (event as CustomEvent).detail.selection[0]\n .model;\n activeSelectionSignal.set(node.data);\n }\n\n protected renderContextMenu() {\n const item = activePartSignal.get() instanceof DocksCatalog ? activeSelectionSignal.get() : undefined;\n const hasUrl = item && \"url\" in item && item.url;\n return html`\n ${renderDropdownItem({\n icon: 'file-arrow-down',\n label: 'Checkout',\n title: 'Checkout',\n disabled: !hasUrl,\n action: () => this.runWgetForSelection(),\n })}\n `;\n }\n\n public setAllExpanded(expanded: boolean) {\n const tree = this.treeRef.value;\n if (tree) {\n tree.querySelectorAll(\"wa-tree-item\").forEach((item: any) => {\n item.expanded = expanded;\n });\n }\n }\n\n public refresh() {\n this.rebuildTree();\n }\n\n createTreeItems(node: TreeNode, expanded = false): TemplateResult {\n if (!node) {\n return html``;\n }\n return html`\n <wa-tree-item\n @dblclick=${this.nobubble(this.onItemDblClicked)}\n .model=${node}\n ?expanded=${expanded}\n >\n <span>${icon(node.icon)} ${node.label}</span>\n ${node.children?.map((child) => this.createTreeItems(child))}\n </wa-tree-item>\n `;\n }\n\n protected renderContent() {\n const hasItems = (this.rootNodes?.length ?? 0) > 0;\n return html`\n <div class=\"catalog-root\">\n ${hasItems\n ? html`\n <wa-tree\n ${ref(this.treeRef)}\n @wa-selection-change=${this.nobubble(this.onSelectionChanged)}\n style=\"--indent-guide-width: 1px;\"\n >\n ${this.rootNodes!.map((node) =>\n this.createTreeItems(node, true)\n )}\n </wa-tree>\n `\n : html`\n <docks-no-content\n message=${CATALOG_EMPTY_MESSAGE}\n icon=\"book\"\n ></docks-no-content>\n `}\n </div>\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n }\n\n .catalog-root {\n height: 100%;\n min-height: 0;\n display: flex;\n flex-direction: column;\n }\n\n .catalog-root wa-tree {\n flex: 1;\n min-height: 0;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"docks-catalog\": DocksCatalog;\n }\n}\n","import { html } from \"@eclipse-docks/core/externals/lit\";\nimport { contributionRegistry, SIDEBAR_MAIN } from \"@eclipse-docks/core\";\nimport \"./docks-catalog\";\n\ncontributionRegistry.registerContribution(SIDEBAR_MAIN, {\n name: \"catalog\",\n label: \"Catalog\",\n icon: \"book\",\n component: (id: string) => html`<docks-catalog id=\"${id}\"></docks-catalog>`,\n} as any);\n"],"mappings":";;;;;AAwBA,IAAa,mBAAmB;AAEhC,IAAM,wBACF;AAGG,IAAM,eAAN,MAAM,qBAAqB,UAAU;;;;;;EAItB,KAAA,UAAA,UAAuB;;CAGzC,aAAuB;EACnB,KAAK,YAAY;EACjB,KAAK,iCAAiC,UAAU,+BAA+B,UAAmC;GAC9G,IAAI,MAAM,WAAA,kBAA+B,MAAM,QAAQ,WAAW,UAAU,GACxE,KAAK,YAAY;EAEzB,CAAC;CACL;CAEA,UAAoB;EAChB,IAAI,KAAK,gCAAgC;GACrC,YAAY,KAAK,8BAA8B;GAC/C,KAAK,iCAAiC,KAAA;EAC1C;EACA,MAAM,QAAQ;CAClB;CAEA,cAAsB;EAClB,MAAM,gBAAgB,qBAAqB,iBACvC,gBACJ;EACA,KAAK,YAAY,KAAK,YAAY,aAAa;EAC/C,KAAK,cAAc;CACvB;CAEA,gBAA0B;EACtB,MAAM,0BACF,iBAAiB,IAAI,aAAA,iBACrB,sBAAsB,IAAI,MAAM,KAAA;EAEpC,OAAO,IAAI;;;;4BAIS,CAAC,wBAAwB;gCACrB,KAAK,oBAAoB,EAAE;;wFAE6B,KAAK,QAAQ,EAAE;4FACX,KAAK,eAAe,IAAI,EAAE;4FAC1B,KAAK,eAAe,KAAK,EAAE;;CAEnH;CAEA,YAAoB,eAAmC;EACnD,OAAO,cAAc,KAAK,MAAM;GAC5B,MAAM,OAAO;IACT,MAAM,EAAE;IACR,MAAM,EAAE;IACR,OAAO,EAAE;IACT,MAAM;GACV;GACA,IAAI,EAAE,gBAAgB;IAClB,MAAM,WAAW,qBAAqB,iBAClC,EAAE,cACN;IACA,KAAK,OAAO,SAAS,WAAW;IAChC,KAAK,WAAW,KAAK,YAAY,QAAQ;GAC7C;GACA,OAAO;EACX,CAAC;CACL;CAEA,0BAAkC,MAA2C;EACzE,IAAI,CAAC,MAAM,KAAK,OAAO;EACvB,MAAM,SAA6C,EAAE,KAAK,KAAK,IAAI;EACnE,IAAI,OAAO,KAAK,aAAa,YAAY,KAAK,SAAS,KAAK,GACxD,OAAO,WAAW,KAAK,SAAS,KAAK;EAEzC,OAAO;CACX;CAEA,iBAAiB,OAAc;EAC3B,MAAM,OAAO,MAAM;EACnB,MAAM,OAAO,MAAM;EACnB,IAAI,CAAC,MAAM;EACX,MAAM,aAAa,KAAK,0BAA0B,KAAK,IAAI;EAC3D,IAAI,YAAY;GACZ,KAAU,eAAe,QAAQ,UAAU;GAC3C;EACJ;EACA,IAAI,CAAC,KAAK,QAAQ,cAAc,MAC5B,KAAK,WAAW,CAAC,KAAK;CAE9B;CAEA,sBAA8B;EAC1B,MAAM,OAAO,sBAAsB,IAAI;EACvC,MAAM,aAAa,QAAQ,KAAK,0BAA0B,IAA2C;EACrG,IAAI,YACA,KAAU,eAAe,QAAQ,UAAU;CAEnD;CAEA,mBAAmB,OAAc;EAC7B,MAAM,OAAkB,MAAsB,OAAO,UAAU,EAAE,CAC5D;EACL,sBAAsB,IAAI,KAAK,IAAI;CACvC;CAEA,oBAA8B;EAC1B,MAAM,OAAO,iBAAiB,IAAI,aAAA,gBAA4B,sBAAsB,IAAI,IAAI,KAAA;EAC5F,MAAM,SAAS,QAAQ,SAAS,QAAQ,KAAK;EAC7C,OAAO,IAAI;cACL,mBAAmB;GACjB,MAAM;GACN,OAAO;GACP,OAAO;GACP,UAAU,CAAC;GACX,cAAc,KAAK,oBAAoB;EAC3C,CAAC,EAAE;;CAEX;CAEA,eAAsB,UAAmB;EACrC,MAAM,OAAO,KAAK,QAAQ;EAC1B,IAAI,MACA,KAAK,iBAAiB,cAAc,CAAC,CAAC,SAAS,SAAc;GACzD,KAAK,WAAW;EACpB,CAAC;CAET;CAEA,UAAiB;EACb,KAAK,YAAY;CACrB;CAEA,gBAAgB,MAAgB,WAAW,OAAuB;EAC9D,IAAI,CAAC,MACD,OAAO,IAAI;EAEf,OAAO,IAAI;;4BAES,KAAK,SAAS,KAAK,gBAAgB,EAAE;yBACxC,KAAK;4BACF,SAAS;;wBAEb,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM;kBACpC,KAAK,UAAU,KAAK,UAAU,KAAK,gBAAgB,KAAK,CAAC,EAAE;;;CAGzE;CAEA,gBAA0B;EACtB,MAAM,YAAY,KAAK,WAAW,UAAU,KAAK;EACjD,OAAO,IAAI;;kBAED,WACI,IAAI;;gCAEM,IAAI,KAAK,OAAO,EAAE;qDACG,KAAK,SAAS,KAAK,kBAAkB,EAAE;;;gCAG5D,KAAK,UAAW,KAAK,SACnB,KAAK,gBAAgB,MAAM,IAAI,CACnC,EAAE;;0BAGV,IAAI;;wCAEc,sBAAsB;;;wBAGtC;;;CAGpB;;EAEgB,KAAA,SAAA,GAAG;;;;;;;;;;;;;;;;;;;AAkBvB;AAhMK,UAAA,CAAA,MAAM,CAAA,GAAA,aAAA,WAAA,aAAA,KAAA,CAAA;AAFV,eAAA,gBAAA,UAAA,CAAA,cAAc,eAAe,CAAA,GAAA,YAAA;;;ACzB9B,qBAAqB,qBAAqB,cAAc;CACpD,MAAM;CACN,OAAO;CACP,MAAM;CACN,YAAY,OAAe,IAAI,sBAAsB,GAAG;AAC5D,CAAQ"}
1
+ {"version":3,"file":"loader.js","names":[],"sources":["../src/docks-catalog.ts","../src/loader.ts"],"sourcesContent":["import {\n css,\n html,\n TemplateResult,\n customElement,\n state,\n createRef,\n ref,\n} from \"@eclipse-docks/core/externals/lit\";\nimport {\n DocksPart,\n TreeContribution,\n TreeNode,\n contributionRegistry,\n activePartSignal,\n activeSelectionSignal,\n subscribe,\n unsubscribe,\n TOPIC_CONTRIBUTEIONS_CHANGED,\n type ContributionChangeEvent,\n icon,\n renderDropdownItem,\n} from \"@eclipse-docks/core\";\n\nexport const CID_CATALOG_ROOT = \"catalog.root\";\n\nconst CATALOG_EMPTY_MESSAGE =\n \"No catalog entries yet. Install or enable extensions that contribute catalog items.\";\n\n@customElement(\"docks-catalog\")\nexport class DocksCatalog extends DocksPart {\n @state()\n private rootNodes?: TreeNode[];\n\n private treeRef = createRef<HTMLElement>();\n private contributionsSubscriptionToken?: string;\n\n protected doBeforeUI() {\n this.rebuildTree();\n this.contributionsSubscriptionToken = subscribe(TOPIC_CONTRIBUTEIONS_CHANGED, (event: ContributionChangeEvent) => {\n if (event.target === CID_CATALOG_ROOT || event.target?.startsWith(\"catalog.\")) {\n this.rebuildTree();\n }\n });\n }\n\n protected doClose() {\n if (this.contributionsSubscriptionToken) {\n unsubscribe(this.contributionsSubscriptionToken);\n this.contributionsSubscriptionToken = undefined;\n }\n super.doClose();\n }\n\n private rebuildTree() {\n const contributions = contributionRegistry.getContributions(\n CID_CATALOG_ROOT\n ) as TreeContribution[];\n this.rootNodes = this.toTreeNodes(contributions);\n this.requestUpdate();\n }\n\n protected renderToolbar() {\n const isActiveAndHasSelection =\n activePartSignal.get() instanceof DocksCatalog &&\n activeSelectionSignal.get() !== undefined;\n\n return html`\n <docks-command\n icon=\"file-arrow-down\"\n title=\"Checkout\"\n ?disabled=${!isActiveAndHasSelection}\n .action=${() => this.runActionForSelection()}\n ></docks-command>\n <docks-command icon=\"arrows-rotate\" title=\"Refresh Catalog\" .action=${() => this.refresh()}></docks-command>\n <docks-command icon=\"angles-down\" slot=\"end\" title=\"Expand All\" .action=${() => this.setAllExpanded(true)}></docks-command>\n <docks-command icon=\"angles-up\" slot=\"end\" title=\"Collapse All\" .action=${() => this.setAllExpanded(false)}></docks-command>\n `;\n }\n\n private toTreeNodes(contributions: TreeContribution[]) {\n return contributions.map((c) => {\n const node = {\n data: c.state,\n icon: c.icon,\n label: c.label,\n leaf: false,\n } as TreeNode;\n if (c.contributionId) {\n const children = contributionRegistry.getContributions(\n c.contributionId\n ) as TreeContribution[];\n node.leaf = children.length === 0;\n node.children = this.toTreeNodes(children);\n }\n return node;\n });\n }\n\n private wgetParamsFromCatalogData(data: { url?: string; filename?: string; openInNewTab?: boolean }) {\n if (!data?.url || data.openInNewTab) return null;\n const params: { url: string; filename?: string } = { url: data.url };\n if (typeof data.filename === \"string\" && data.filename.trim()) {\n params.filename = data.filename.trim();\n }\n return params;\n }\n\n private openInNewTabFromCatalogData(data: { url?: string; openInNewTab?: boolean }) {\n if (!data?.url || !data.openInNewTab) return null;\n return data.url;\n }\n\n private openCatalogUrl(url: string) {\n window.open(url, \"_blank\", \"noopener,noreferrer\");\n }\n\n onItemDblClicked(event: Event) {\n const item = event.currentTarget as HTMLElement & { model?: TreeNode; expanded?: boolean };\n const node = item?.model;\n if (!node) return;\n const externalUrl = this.openInNewTabFromCatalogData(node.data);\n if (externalUrl) {\n this.openCatalogUrl(externalUrl);\n return;\n }\n const wgetParams = this.wgetParamsFromCatalogData(node.data);\n if (wgetParams) {\n void this.executeCommand(\"wget\", wgetParams);\n return;\n }\n if (!node.leaf && \"expanded\" in item) {\n item.expanded = !item.expanded;\n }\n }\n\n private runActionForSelection() {\n const item = activeSelectionSignal.get();\n const externalUrl = item && this.openInNewTabFromCatalogData(item as { url?: string; openInNewTab?: boolean });\n if (externalUrl) {\n this.openCatalogUrl(externalUrl);\n return;\n }\n const wgetParams = item && this.wgetParamsFromCatalogData(item as { url?: string; filename?: string; openInNewTab?: boolean });\n if (wgetParams) {\n void this.executeCommand(\"wget\", wgetParams);\n }\n }\n\n onSelectionChanged(event: Event) {\n const node: TreeNode = (event as CustomEvent).detail.selection[0]\n .model;\n activeSelectionSignal.set(node.data);\n }\n\n protected renderContextMenu() {\n const item = activePartSignal.get() instanceof DocksCatalog ? activeSelectionSignal.get() : undefined;\n const hasUrl = item && \"url\" in item && item.url;\n const openExternal = item && \"openInNewTab\" in item && item.openInNewTab;\n return html`\n ${renderDropdownItem({\n icon: 'file-arrow-down',\n label: openExternal ? 'Open download' : 'Checkout',\n title: openExternal ? 'Open download in browser' : 'Checkout',\n disabled: !hasUrl,\n action: () => this.runActionForSelection(),\n })}\n `;\n }\n\n public setAllExpanded(expanded: boolean) {\n const tree = this.treeRef.value;\n if (tree) {\n tree.querySelectorAll(\"wa-tree-item\").forEach((item: any) => {\n item.expanded = expanded;\n });\n }\n }\n\n public refresh() {\n this.rebuildTree();\n }\n\n createTreeItems(node: TreeNode, expanded = false): TemplateResult {\n if (!node) {\n return html``;\n }\n const openExternal = Boolean(\n node.data && \"openInNewTab\" in node.data && node.data.openInNewTab\n );\n return html`\n <wa-tree-item\n @dblclick=${this.nobubble(this.onItemDblClicked)}\n .model=${node}\n ?expanded=${expanded}\n >\n <span class=\"catalog-tree-label\">\n ${icon(node.icon)} ${node.label}\n ${openExternal\n ? html`<span class=\"catalog-external-suffix\" title=\"Opens in browser\">${icon(\"arrow-up-right-from-square\")}</span>`\n : \"\"}\n </span>\n ${node.children?.map((child) => this.createTreeItems(child))}\n </wa-tree-item>\n `;\n }\n\n protected renderContent() {\n const hasItems = (this.rootNodes?.length ?? 0) > 0;\n return html`\n <div class=\"catalog-root\">\n ${hasItems\n ? html`\n <wa-tree\n ${ref(this.treeRef)}\n @wa-selection-change=${this.nobubble(this.onSelectionChanged)}\n style=\"--indent-guide-width: 1px;\"\n >\n ${this.rootNodes!.map((node) =>\n this.createTreeItems(node, true)\n )}\n </wa-tree>\n `\n : html`\n <docks-no-content\n message=${CATALOG_EMPTY_MESSAGE}\n icon=\"book\"\n ></docks-no-content>\n `}\n </div>\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n }\n\n .catalog-root {\n height: 100%;\n min-height: 0;\n display: flex;\n flex-direction: column;\n }\n\n .catalog-root wa-tree {\n flex: 1;\n min-height: 0;\n }\n\n .catalog-tree-label {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n }\n\n .catalog-external-suffix {\n opacity: 0.65;\n font-size: 0.85em;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"docks-catalog\": DocksCatalog;\n }\n}\n","import { html } from \"@eclipse-docks/core/externals/lit\";\nimport { contributionRegistry, SIDEBAR_MAIN } from \"@eclipse-docks/core\";\nimport \"./docks-catalog\";\n\ncontributionRegistry.registerContribution(SIDEBAR_MAIN, {\n name: \"catalog\",\n label: \"Catalog\",\n icon: \"book\",\n component: (id: string) => html`<docks-catalog id=\"${id}\"></docks-catalog>`,\n} as any);\n"],"mappings":"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"}
@@ -3,6 +3,8 @@ import { TreeContribution } from '@eclipse-docks/core';
3
3
  export type CatalogResourceState = {
4
4
  url: string;
5
5
  filename?: string;
6
+ /** Open URL in a new browser tab instead of wget into the workspace. */
7
+ openInNewTab?: boolean;
6
8
  };
7
9
  export interface CatalogContribution extends TreeContribution {
8
10
  items?: CatalogContribution[];
@@ -1 +1 @@
1
- {"version":3,"file":"register-catalog.d.ts","sourceRoot":"","sources":["../src/register-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,gBAAgB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,yGAAyG;AACzG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAgCpF"}
1
+ {"version":3,"file":"register-catalog.d.ts","sourceRoot":"","sources":["../src/register-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,gBAAgB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,yGAAyG;AACzG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAgCpF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-docks/extension-catalog",
3
- "version": "0.7.135",
3
+ "version": "0.7.137",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",