@pstdio/workbench 0.12.0 → 0.36.0

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.
Files changed (36) hide show
  1. package/dist/extensions.d.ts +1133 -3590
  2. package/dist/extensions.js +2053 -2405
  3. package/dist/extensions.js.map +1 -1
  4. package/dist/file-renderer-view-DKu2l8bT.js +637 -0
  5. package/dist/file-renderer-view-DKu2l8bT.js.map +1 -0
  6. package/dist/index-DSsmgN2a.d.ts +2385 -0
  7. package/dist/index.d.ts +3 -2624
  8. package/dist/index.js +5272 -6143
  9. package/dist/index.js.map +1 -1
  10. package/dist/kanban-presentation-BWhkLbw3.d.ts +14 -0
  11. package/dist/navigation-tree-registry-CTidmvVs.js +91 -0
  12. package/dist/navigation-tree-registry-CTidmvVs.js.map +1 -0
  13. package/dist/react-BxrTklvM.js +8523 -0
  14. package/dist/react-BxrTklvM.js.map +1 -0
  15. package/dist/react.d.ts +398 -2849
  16. package/dist/react.js +2 -54
  17. package/dist/storage.d.ts +48 -282
  18. package/dist/storage.js +218 -225
  19. package/dist/storage.js.map +1 -1
  20. package/dist/webview-runtime.d.ts +8 -7
  21. package/dist/webview-runtime.js +10 -11
  22. package/dist/webview-runtime.js.map +1 -1
  23. package/dist/workbench-renderers-RPeMVtTc.js +908 -0
  24. package/dist/workbench-renderers-RPeMVtTc.js.map +1 -0
  25. package/package.json +3 -3
  26. package/dist/file-renderer-view-BJ3LX04R.js +0 -545
  27. package/dist/file-renderer-view-BJ3LX04R.js.map +0 -1
  28. package/dist/index-DwNKY4fO.js +0 -5286
  29. package/dist/index-DwNKY4fO.js.map +0 -1
  30. package/dist/react.js.map +0 -1
  31. package/dist/workbench-menu-paths-B_QJzcNU.js +0 -12
  32. package/dist/workbench-menu-paths-B_QJzcNU.js.map +0 -1
  33. package/dist/workbench-renderers-BAPxtfpZ.js +0 -877
  34. package/dist/workbench-renderers-BAPxtfpZ.js.map +0 -1
  35. package/dist/workspaces-DdUPyzkL.js +0 -1886
  36. package/dist/workspaces-DdUPyzkL.js.map +0 -1
@@ -1,877 +0,0 @@
1
- import { resourceKey as v } from "@pstdio/sdk/extensions";
2
- import { devtools as z } from "zustand/middleware";
3
- import { createStore as F } from "zustand/vanilla";
4
- const b = (e) => {
5
- let t = !1;
6
- return {
7
- dispose() {
8
- t || (t = !0, e());
9
- }
10
- };
11
- };
12
- function R(e, t) {
13
- try {
14
- return t();
15
- } catch (n) {
16
- console.error(`Workbench effect failed (${e})`, n);
17
- return;
18
- }
19
- }
20
- let y = 0;
21
- const m = /* @__PURE__ */ new Map(), D = (e, t) => {
22
- if (y === 0) {
23
- R("store subscriber", t);
24
- return;
25
- }
26
- m.has(e) || m.set(e, t);
27
- }, we = (e) => {
28
- y++;
29
- try {
30
- return e();
31
- } finally {
32
- if (y--, y === 0) {
33
- y++;
34
- try {
35
- for (; m.size; ) {
36
- const [t, n] = m.entries().next().value;
37
- m.delete(t), R("store subscriber", n);
38
- }
39
- } finally {
40
- y--;
41
- }
42
- }
43
- }
44
- }, N = (e, t) => Object.is(e, t), O = (e) => {
45
- const t = F()(z(() => e.initialState, {
46
- name: e.name ?? "workbench.store"
47
- })), n = (i) => {
48
- const o = {};
49
- return t.subscribe((s, a) => D(o, () => i(t.getState(), a)));
50
- }, r = (i, o, s = {}) => {
51
- const a = s.equalityFn ?? N;
52
- let c = i(t.getState());
53
- return s.fireImmediately && o(c, c), n((d) => {
54
- const l = i(d);
55
- if (a(c, l)) return;
56
- const g = c;
57
- c = l, o(l, g);
58
- });
59
- };
60
- return {
61
- getState: t.getState,
62
- getInitialState: t.getInitialState,
63
- subscribe: n,
64
- subscribeSelector: r,
65
- setState: t.setState,
66
- api: t
67
- };
68
- }, A = ["nav", "activity", "sidenav", "main-header", "main-left-menu", "main", "main-right-menu", "secondary-header", "secondary-left-menu", "secondary", "secondary-right-menu", "side-header", "side-left-menu", "side", "side-right-menu", "status", "overlay"], w = ["main", "secondary", "side"], Ie = {
69
- main: {
70
- left: "main-left-menu",
71
- right: "main-right-menu"
72
- },
73
- secondary: {
74
- left: "secondary-left-menu",
75
- right: "secondary-right-menu"
76
- },
77
- side: {
78
- left: "side-left-menu",
79
- right: "side-right-menu"
80
- }
81
- }, U = {
82
- "main-left-menu": "main",
83
- "main-right-menu": "main",
84
- "secondary-left-menu": "secondary",
85
- "secondary-right-menu": "secondary",
86
- "side-left-menu": "side",
87
- "side-right-menu": "side"
88
- }, pe = (e) => U[e], T = (e, t, n = t) => {
89
- if (!e.has(n)) return n;
90
- let r = 1;
91
- for (; e.has(`${t}:${r}`); ) r += 1;
92
- return `${t}:${r}`;
93
- }, We = (e, t) => {
94
- for (const n of Object.values(e.regions)) {
95
- const r = n.widgets.findIndex((i) => i.contributionId === t);
96
- if (r >= 0) return {
97
- regionId: n.id,
98
- index: r,
99
- placement: n.widgets[r]
100
- };
101
- }
102
- }, Se = (e, t, n) => {
103
- for (const r of Object.values(e.regions)) {
104
- const i = r.widgets.findIndex((o) => o.contributionId === t && o.resourceKey === n);
105
- if (i >= 0) return {
106
- regionId: r.id,
107
- index: i,
108
- placement: r.widgets[i]
109
- };
110
- }
111
- }, Z = (e, t) => {
112
- for (const n of Object.values(e.regions)) {
113
- const r = n.widgets.findIndex((i) => i.widgetId === t);
114
- if (r >= 0) return {
115
- regionId: n.id,
116
- index: r,
117
- placement: n.widgets[r]
118
- };
119
- }
120
- }, ke = (e, t) => {
121
- const n = new Set(Object.values(e.regions).flatMap((r) => r.widgets.map((i) => i.widgetId)));
122
- return T(n, t);
123
- }, L = (e) => e.widgets.find((t) => t.widgetId === e.activeWidgetId) ?? e.widgets[0], p = (e) => e.role === "location", $ = (e) => e.resourceKey ?? `${e.contributionId}:${e.widgetId}`, x = (e, t, n, r) => {
124
- if (!t) return e;
125
- const i = $(t), s = {
126
- ...e.locationSubPanelSelections?.[i] ?? {}
127
- };
128
- return r ? s[n] = r : delete s[n], {
129
- ...e,
130
- locationSubPanelSelections: {
131
- ...e.locationSubPanelSelections,
132
- [i]: s
133
- }
134
- };
135
- }, E = (e, t) => {
136
- if (!e.locationSubPanelSelections) return e;
137
- const n = Object.fromEntries(Object.entries(e.locationSubPanelSelections).map(([r, i]) => [r, Object.fromEntries(Object.entries(i).filter(([, o]) => o !== t))]));
138
- return {
139
- ...e,
140
- locationSubPanelSelections: n
141
- };
142
- }, I = (e) => {
143
- const t = e.regions.main.widgets.filter(p);
144
- return t.find((n) => n.widgetId === e.activeLocationWidgetId) ?? t.at(-1);
145
- }, Pe = (e, t, n, r = {}) => {
146
- const i = e.regions[t], o = n(i.widgets), s = r.activeWidgetId !== void 0 ? r.activeWidgetId : r.clearActiveWidget ? void 0 : i.activeWidgetId;
147
- return {
148
- ...e,
149
- activeLocationWidgetId: t === "main" && !o.some((a) => a.widgetId === e.activeLocationWidgetId) ? o.filter(p).at(-1)?.widgetId : e.activeLocationWidgetId,
150
- regions: {
151
- ...e.regions,
152
- [t]: {
153
- ...i,
154
- widgets: o,
155
- activeWidgetId: s
156
- }
157
- }
158
- };
159
- }, Ke = (e, t) => {
160
- let n = e;
161
- for (const i of Object.values(e.regions)) {
162
- const o = i.widgets.filter((c) => c.contributionId === t), s = i.widgets.filter((c) => c.contributionId !== t);
163
- if (s.length === i.widgets.length) continue;
164
- const a = i.activeWidgetId && !s.some((c) => c.widgetId === i.activeWidgetId) ? void 0 : i.activeWidgetId;
165
- n = {
166
- ...n,
167
- regions: {
168
- ...n.regions,
169
- [i.id]: {
170
- ...i,
171
- widgets: s,
172
- activeWidgetId: a
173
- }
174
- }
175
- };
176
- for (const c of o)
177
- n = E(n, c.widgetId);
178
- }
179
- const r = Object.values(n.regions).some((i) => i.widgets.some((o) => o.widgetId === n.activeWidgetId));
180
- return n.activeWidgetId && (!r || n.activeWidgetId.startsWith(`${t}:`) || n.activeWidgetId === t) && (n = {
181
- ...n,
182
- activeWidgetId: void 0,
183
- activeResourceKey: void 0
184
- }), n.activeLocationWidgetId && !n.regions.main.widgets.some((i) => i.widgetId === n.activeLocationWidgetId) && (n = {
185
- ...n,
186
- activeLocationWidgetId: n.regions.main.widgets.filter(p).at(-1)?.widgetId
187
- }), n;
188
- }, Re = (e, t) => {
189
- const n = Z(e, t);
190
- if (!n) return;
191
- const r = e.regions[n.regionId], i = r.widgets.filter((g) => g.widgetId !== t), o = r.activeWidgetId === t || !r.activeWidgetId && n.index === 0, a = (n.placement.role === "sub-panel" ? i.find((g) => g.role === "sub-panel" && g.ownerResourceKey === n.placement.ownerResourceKey) : void 0) ?? (n.placement.role === "sub-panel" && n.regionId === "main" ? I(e) : i[n.index] ?? i[n.index - 1]), c = o ? a?.widgetId : r.activeWidgetId, d = {
192
- ...r,
193
- widgets: i,
194
- activeWidgetId: c
195
- };
196
- let l = E({
197
- ...e,
198
- activeLocationWidgetId: e.activeLocationWidgetId === t ? e.regions.main.widgets.filter((g) => g.widgetId !== t && p(g)).at(-1)?.widgetId : e.activeLocationWidgetId,
199
- regions: {
200
- ...e.regions,
201
- [r.id]: d
202
- }
203
- }, t);
204
- return o && n.regionId !== "side" && w.includes(n.regionId) && (l = x(l, I(l), n.regionId, a?.role === "sub-panel" ? a.widgetId : void 0)), e.activeWidgetId === t && (l = {
205
- ...l,
206
- activeWidgetId: a?.widgetId,
207
- activeResourceKey: a?.resourceKey
208
- }), {
209
- regionId: n.regionId,
210
- closedPlacement: n.placement,
211
- activePlacement: L(d),
212
- layout: l
213
- };
214
- }, Oe = (e, t, n) => {
215
- const r = e.regions[t];
216
- if (t === "main" && p(n)) {
217
- const o = e.locationSubPanelSelections?.[$(n)] ?? {}, s = Object.fromEntries(Object.entries(e.regions).map(([a, c]) => [a, {
218
- ...c,
219
- widgets: c.widgets.map((d) => !n.resource || d.widgetId === n.widgetId || d.ownerResourceKey !== n.resourceKey || d.resourceKey !== n.resourceKey ? d : {
220
- ...d,
221
- resource: n.resource
222
- })
223
- }]));
224
- for (const a of w) {
225
- const c = s[a], d = o[a], l = c.widgets.find((g) => g.widgetId === d && g.role === "sub-panel" && (!g.ownerResourceKey || g.ownerResourceKey === n.resourceKey));
226
- s[a] = {
227
- ...c,
228
- activeWidgetId: a === "side" ? c.activeWidgetId : l?.widgetId ?? (a === "main" ? n.widgetId : void 0)
229
- };
230
- }
231
- return {
232
- ...e,
233
- activeWidgetId: n.widgetId,
234
- activeLocationWidgetId: n.widgetId,
235
- activeResourceKey: n.resourceKey,
236
- regions: s
237
- };
238
- }
239
- const i = n.role === "sub-panel" && t !== "side" && w.includes(t) ? x(e, I(e), t, n.widgetId) : e;
240
- return {
241
- ...i,
242
- activeWidgetId: n.widgetId,
243
- activeLocationWidgetId: e.activeLocationWidgetId,
244
- activeResourceKey: n.resourceKey,
245
- regions: {
246
- ...i.regions,
247
- [t]: {
248
- ...r,
249
- activeWidgetId: n.widgetId
250
- }
251
- }
252
- };
253
- }, Le = (e, t, n) => {
254
- const r = e.regions[t], i = n ? r.widgets.find((a) => a.widgetId === n) : void 0;
255
- if (n && !i) throw new Error(`Widget placement not found in ${t}: ${n}`);
256
- if (r.activeWidgetId === n) return;
257
- const o = e.activeWidgetId === r.activeWidgetId, s = {
258
- ...e,
259
- activeWidgetId: o ? i?.widgetId : e.activeWidgetId,
260
- activeResourceKey: o ? i?.resourceKey : e.activeResourceKey,
261
- activeLocationWidgetId: t === "main" && i?.role === "location" ? i.widgetId : e.activeLocationWidgetId,
262
- regions: {
263
- ...e.regions,
264
- [t]: {
265
- ...r,
266
- activeWidgetId: i?.widgetId
267
- }
268
- }
269
- };
270
- return t === "side" || !w.includes(t) ? s : x(s, I(s), t, i?.role === "sub-panel" ? i.widgetId : void 0);
271
- }, G = (e, t) => !(e.resourceKinds?.length && (!t || !e.resourceKinds.includes(t.type)) || e.canOpen && (!t || !e.canOpen(t))), xe = (e, t, n, r = {}) => {
272
- const i = e.regions[t];
273
- return i.widgets.find((o) => o.widgetId === i.activeWidgetId && o.role === "sub-panel" && (r.ignoreOwnerResourceKey || !o.ownerResourceKey || o.ownerResourceKey === v(n)));
274
- }, je = (e) => I(e), J = (e, t, n, r, i) => {
275
- const o = e.eligibleLocations;
276
- return !(!V(e, n) || o?.resourceKinds?.length && (!t || !o.resourceKinds.includes(t.type)) || o?.resourceIds?.length && (!t?.id || !o.resourceIds.includes(t.id)) || o?.canOpen && (!t || !o.canOpen(t)) || o?.canOpenLocation && !o.canOpenLocation({
277
- resource: t,
278
- viewId: i?.viewId
279
- }) || r?.ownerResourceKey && r.ownerResourceKey !== v(t));
280
- }, V = (e, t) => {
281
- const n = e.eligibleLocations?.modeIds;
282
- return !n?.length || t !== void 0 && n.includes(t);
283
- }, Ce = (e, t, n, r, i = {}) => G(e, r?.resource ?? t) ? i.ignoreResourceLocation ? V(e, n) : J(e, t, n, r, i.location) : !1, Me = (e, t) => {
284
- const n = e.panelMenuOwner ?? {
285
- level: "panel"
286
- };
287
- return n.contributionId ? (t.subPanel ?? t.locationPanel)?.contributionId === n.contributionId : t.subPanel ? n.level === "sub-panel" : n.level === "panel";
288
- }, Q = "workbench.core", _ = (e = {}) => ({
289
- source: e.source ?? "module",
290
- ownerId: e.ownerId ?? Q,
291
- priority: e.priority ?? 0
292
- }), W = (e, t) => t.priority - e.priority || e.ownerId.localeCompare(t.ownerId), Ae = (e = {}, t) => {
293
- const {
294
- strategy: n,
295
- ...r
296
- } = e, i = r.resource && r.viewId === void 0 ? {
297
- ...r,
298
- viewId: null
299
- } : r;
300
- return n ? n.kind === "persistent" ? {
301
- ...i,
302
- tabPosition: n.position,
303
- tabRetention: "persistent"
304
- } : n.kind === "replace-active" ? {
305
- ...i,
306
- replaceActive: !0
307
- } : n.kind === "replace-panel" ? {
308
- ...i,
309
- replaceWidgetId: n.instanceId,
310
- tabRetention: n.retention
311
- } : {
312
- ...i,
313
- tabRetention: "preview",
314
- tabPosition: n.position
315
- } : {
316
- ...i,
317
- tabRetention: t
318
- };
319
- }, $e = (e) => ({
320
- instanceId: e.widgetId,
321
- panelId: e.contributionId,
322
- placementIdentity: e.placementIdentity,
323
- viewId: e.viewId,
324
- ownerId: e.ownerId,
325
- source: e.source,
326
- resource: e.resource,
327
- section: e.section,
328
- resourceKey: e.resourceKey,
329
- ownerResourceKey: e.ownerResourceKey,
330
- title: e.title,
331
- pinned: e.pinned,
332
- closable: e.closable === !0,
333
- mountStrategy: e.mountStrategy,
334
- hiddenByDefault: e.hiddenByDefault,
335
- tabRetention: e.tabRetention,
336
- tab: e.tab
337
- }), Ee = (e) => {
338
- const {
339
- closable: t,
340
- ownedPanelMenuIds: n,
341
- ...r
342
- } = e;
343
- return r;
344
- }, h = {
345
- main: ["main-header", "main-left-menu", "main", "main-right-menu"],
346
- secondary: ["secondary-header", "secondary-left-menu", "secondary", "secondary-right-menu"],
347
- side: ["side-header", "side-left-menu", "side", "side-right-menu"]
348
- }, C = Object.values(h).flat(), X = (e) => e.panels ?? w, Ve = (e) => Object.keys(h).find((t) => h[t].some((n) => n === e)), _e = (e, t) => !e || X(e).includes(t), f = (e, t) => {
349
- if (t)
350
- return Object.values(e.regions).flatMap((n) => n.widgets).find((n) => n.widgetId === t);
351
- }, K = (e, t) => {
352
- const n = t.find((r) => r && f(e, r.widgetId));
353
- return {
354
- ...e,
355
- activeWidgetId: n?.widgetId,
356
- activeResourceKey: n?.resourceKey
357
- };
358
- }, Y = (e, t) => {
359
- if (t.length === 0) return e;
360
- const n = new Set(Object.keys(h).filter((c) => h[c].some((d) => t.includes(d)))), r = t.some((c) => {
361
- const d = e.regions[c];
362
- return d.widgets.length > 0 || d.activeWidgetId !== void 0 || d.visible;
363
- }), i = Object.values(e.locationSubPanelSelections ?? {}).some((c) => Object.keys(c).some((d) => n.has(d)));
364
- if (!r && !i) return e;
365
- const o = {
366
- ...e.regions
367
- };
368
- for (const c of t)
369
- o[c] = {
370
- ...o[c],
371
- widgets: [],
372
- activeWidgetId: void 0,
373
- visible: !1
374
- };
375
- const s = Object.fromEntries(Object.entries(e.locationSubPanelSelections ?? {}).map(([c, d]) => [c, Object.fromEntries(Object.entries(d).filter(([l]) => !n.has(l)))])), a = {
376
- ...e,
377
- regions: o
378
- };
379
- return {
380
- ...K(a, [f(a, e.activeWidgetId)]),
381
- activeLocationWidgetId: f(a, e.activeLocationWidgetId)?.widgetId,
382
- locationSubPanelSelections: s
383
- };
384
- }, M = (e, t) => {
385
- const n = new Set(t), r = Object.keys(h).filter((i) => !n.has(i)).flatMap((i) => h[i]);
386
- return Y(e, r);
387
- }, He = (e, t, n) => {
388
- if (!t) {
389
- const a = {
390
- ...e.regions
391
- };
392
- for (const d of C) {
393
- const l = a[d], g = l.widgets.filter((k) => k.role !== "content");
394
- a[d] = {
395
- ...l,
396
- widgets: g,
397
- activeWidgetId: g.some((k) => k.widgetId === l.activeWidgetId) ? l.activeWidgetId : void 0
398
- };
399
- }
400
- const c = {
401
- ...e,
402
- regions: a
403
- };
404
- return M({
405
- ...K(c, [f(c, e.activeWidgetId)]),
406
- activeLocationWidgetId: f(c, e.activeLocationWidgetId)?.widgetId
407
- }, n);
408
- }
409
- const r = {
410
- ...e.regions
411
- };
412
- for (const a of C) r[a] = t.regions[a];
413
- const i = M({
414
- ...e,
415
- regions: r
416
- }, n), o = f(i, t.activeWidgetId), s = f(i, e.activeWidgetId);
417
- return {
418
- ...K(i, [o, s]),
419
- activeLocationWidgetId: f(i, t.activeLocationWidgetId)?.widgetId ?? f(i, e.activeLocationWidgetId)?.widgetId,
420
- locationSubPanelSelections: t.locationSubPanelSelections
421
- };
422
- }, Be = (e) => {
423
- for (let t = e.length - 1; t >= 0; t -= 1)
424
- R("mode disposal", () => e[t]?.dispose());
425
- }, qe = (e, t) => {
426
- t !== e.layout.getLayout() && e.layout.restoreLayout(t);
427
- }, ee = (e) => Array.isArray(e) ? e : e.trim().split(/\s+/).filter(Boolean), te = (e) => {
428
- const t = ee(e);
429
- return t.length === 1 ? t[0] ?? "" : t;
430
- }, ze = (e) => {
431
- const t = O({
432
- name: "workbench.keybindings",
433
- initialState: {
434
- keybindings: []
435
- }
436
- });
437
- return {
438
- store: t,
439
- registerKeybinding(n, r) {
440
- if (n.action.kind === "command" && !e.commands.getCommand(n.action.commandId))
441
- throw new Error(`Keybinding command not registered: ${n.action.commandId}`);
442
- const i = {
443
- ..._(r),
444
- ...n,
445
- keybinding: te(n.keybinding)
446
- }, o = t.getState();
447
- return t.setState({
448
- keybindings: [...o.keybindings, i]
449
- }, !1, "registerKeybinding"), b(() => {
450
- const s = t.getState(), a = s.keybindings.filter((c) => c !== i);
451
- a.length !== s.keybindings.length && t.setState({
452
- keybindings: a
453
- }, !1, "unregisterKeybinding");
454
- });
455
- },
456
- listKeybindings() {
457
- return [...t.getState().keybindings].sort(W);
458
- },
459
- listActiveKeybindings() {
460
- return t.getState().keybindings.filter((n) => e.context.matches(n.when)).sort(W);
461
- },
462
- listCommandKeybindings() {
463
- return [...t.getState().keybindings].sort(W).flatMap((n) => n.action.kind === "command" ? [{
464
- commandId: n.action.commandId,
465
- keybinding: n.keybinding
466
- }] : []);
467
- }
468
- };
469
- }, P = (e, t, n) => ({
470
- role: "anchor",
471
- anchor: e,
472
- persistence: t,
473
- candidates: n
474
- }), u = (e, t = !1) => t ? {
475
- role: "projection",
476
- reads: e,
477
- navigator: t
478
- } : {
479
- role: "projection",
480
- reads: e
481
- }, ne = {
482
- role: "chrome"
483
- }, ie = {
484
- role: "transient"
485
- }, j = {
486
- // The top bar hosts breadcrumbs (primary trail) and session status (attached), so it
487
- // reads both anchors — it is a projection, not inert chrome.
488
- nav: u(["primary", "attached"]),
489
- activity: ne,
490
- sidenav: u(["primary"], !0),
491
- "main-header": u(["primary"]),
492
- "main-left-menu": u(["primary"]),
493
- main: P("primary", "primary", "global"),
494
- "main-right-menu": u(["primary"]),
495
- "secondary-header": u(["primary"]),
496
- "secondary-left-menu": u(["secondary"]),
497
- secondary: P("secondary", "derived", "scoped"),
498
- "secondary-right-menu": u(["secondary"]),
499
- status: u(["primary", "attached"]),
500
- overlay: ie,
501
- "side-header": u(["attached"]),
502
- "side-left-menu": u(["attached"]),
503
- side: P("attached", "detached", "scoped"),
504
- "side-right-menu": u(["attached"])
505
- }, re = (e) => j[e], oe = () => A.filter((e) => j[e].role === "anchor"), se = (e) => {
506
- const t = A.find((n) => {
507
- const r = j[n];
508
- return r.role === "anchor" && r.anchor === e;
509
- });
510
- if (!t) throw new Error(`No region hosts anchor: ${e}`);
511
- return t;
512
- }, Fe = (e, t) => L(e.regions[se(t)])?.resource, De = ({
513
- layout: e,
514
- primary: t,
515
- isInScope: n
516
- }) => {
517
- const r = [];
518
- for (const i of oe()) {
519
- const o = re(i);
520
- if (o.role !== "anchor" || o.persistence === "primary") continue;
521
- const s = L(e.regions[i]);
522
- if (s?.resource) {
523
- if (s.role === "sub-panel" && s.ownerResourceKey) {
524
- r.push({
525
- region: i,
526
- action: "keep"
527
- });
528
- continue;
529
- }
530
- if (o.persistence === "derived") {
531
- r.push({
532
- region: i,
533
- action: "clear"
534
- });
535
- continue;
536
- }
537
- r.push({
538
- region: i,
539
- action: n(s.resource, t) ? "keep" : "clear"
540
- });
541
- }
542
- }
543
- return r;
544
- }, Ne = {
545
- project: "folder-root",
546
- workspace: "computer",
547
- worktree: "git-pull-request-draft",
548
- settings: "settings",
549
- kanbanRenderer: "table-properties"
550
- }, S = (e) => "viewId" in e && e.type === "view", ce = "resource_hierarchy_cycle", H = (e) => [...e].sort((t, n) => n.priority - t.priority || t.id.localeCompare(n.id)), ae = (e, t, n) => {
551
- const r = H(e), i = [t], o = /* @__PURE__ */ new Set([`resource:${v(t)}`]);
552
- let s = t;
553
- for (; ; ) {
554
- const c = r.find((l) => l.canResolve(s))?.getParent(s);
555
- if (!c) break;
556
- const d = S(c) ? `view:${c.viewId}` : `resource:${v(c)}`;
557
- if (o.has(d)) {
558
- n({
559
- code: ce,
560
- path: [...i],
561
- repeatedUri: S(c) ? d : v(c)
562
- });
563
- break;
564
- }
565
- if (i.unshift(c), o.add(d), S(c)) break;
566
- s = c;
567
- }
568
- return i;
569
- }, de = "workbench.resource.type", le = "workbench.resource.id", ge = (e) => `workbench.resource.metadata.${e}`, B = "workbench.selectionResourceKey", ue = (e) => typeof e == "string" || typeof e == "number" || typeof e == "boolean", Ue = (e) => {
570
- if (!e) return {};
571
- const t = {
572
- [de]: e.type,
573
- [le]: e.id
574
- };
575
- for (const [n, r] of Object.entries(e.metadata ?? {}))
576
- ue(r) && (t[ge(n)] = r);
577
- return t;
578
- }, Te = (e) => ({
579
- [B]: v(e)
580
- }), Ze = (e) => {
581
- if (!e) return [];
582
- const t = e.metadata?.[B];
583
- return typeof t != "string" || t === v(e) ? [v(e)] : [v(e), t];
584
- }, Ge = (e = {}) => {
585
- const t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = O({
586
- name: "workbench.resources",
587
- initialState: {
588
- kinds: {},
589
- providers: {},
590
- hierarchyProviders: {}
591
- }
592
- });
593
- return {
594
- store: r,
595
- removed(i) {
596
- e.remove?.(i, [...t].flatMap((o) => o(i)));
597
- },
598
- onWillRemove(i) {
599
- return t.add(i), b(() => t.delete(i));
600
- },
601
- registerKind(i, o) {
602
- const s = r.getState();
603
- if (s.kinds[i.kind]) throw new Error(`Resource kind already registered: ${i.kind}`);
604
- const a = {
605
- ..._(o),
606
- ...i
607
- };
608
- return r.setState({
609
- ...s,
610
- kinds: {
611
- ...s.kinds,
612
- [i.kind]: a
613
- }
614
- }, !1, "registerKind"), b(() => {
615
- const c = r.getState();
616
- if (c.kinds[i.kind] !== a) return;
617
- const {
618
- [i.kind]: d,
619
- ...l
620
- } = c.kinds;
621
- r.setState({
622
- ...c,
623
- kinds: l
624
- }, !1, "unregisterKind");
625
- });
626
- },
627
- getKind(i) {
628
- return r.getState().kinds[i];
629
- },
630
- listKinds() {
631
- return Object.values(r.getState().kinds).sort(W);
632
- },
633
- registerProvider(i) {
634
- const o = r.getState();
635
- if (o.providers[i.id]) throw new Error(`Resource provider already registered: ${i.id}`);
636
- return r.setState({
637
- ...o,
638
- providers: {
639
- ...o.providers,
640
- [i.id]: i
641
- }
642
- }, !1, "registerProvider"), b(() => {
643
- const s = r.getState();
644
- if (s.providers[i.id] !== i) return;
645
- const {
646
- [i.id]: a,
647
- ...c
648
- } = s.providers;
649
- r.setState({
650
- ...s,
651
- providers: c
652
- }, !1, "unregisterProvider");
653
- });
654
- },
655
- listProviders() {
656
- return Object.values(r.getState().providers);
657
- },
658
- listResources(i) {
659
- const o = {
660
- primary: e.getPrimary?.()
661
- }, s = [];
662
- for (const a of Object.values(r.getState().providers))
663
- s.push(...a.list(i, o));
664
- return s;
665
- },
666
- registerHierarchyProvider(i) {
667
- const o = r.getState();
668
- if (o.hierarchyProviders[i.id])
669
- throw new Error(`Resource hierarchy provider already registered: ${i.id}`);
670
- const s = {
671
- ...i,
672
- priority: i.priority ?? 0
673
- };
674
- return r.setState({
675
- ...o,
676
- hierarchyProviders: {
677
- ...o.hierarchyProviders,
678
- [i.id]: s
679
- }
680
- }, !1, "registerHierarchyProvider"), b(() => {
681
- const a = r.getState();
682
- if (a.hierarchyProviders[i.id] !== s) return;
683
- const {
684
- [i.id]: c,
685
- ...d
686
- } = a.hierarchyProviders;
687
- r.setState({
688
- ...a,
689
- hierarchyProviders: d
690
- }, !1, "unregisterHierarchyProvider");
691
- });
692
- },
693
- listHierarchyProviders() {
694
- return H(Object.values(r.getState().hierarchyProviders));
695
- },
696
- walkHierarchy(i) {
697
- return i ? ae(Object.values(r.getState().hierarchyProviders), i, (s) => {
698
- for (const a of n) a(s);
699
- }).map((s) => {
700
- if (!S(s)) return s;
701
- const a = e.resolveView?.(s.viewId);
702
- return a ? {
703
- ...s,
704
- label: a.label,
705
- icon: a.icon
706
- } : s;
707
- }) : [];
708
- },
709
- onDidDetectHierarchyCycle(i) {
710
- return n.add(i), b(() => {
711
- n.delete(i);
712
- });
713
- }
714
- };
715
- }, fe = (e) => e.replace(/^['"]|['"]$/g, ""), ve = (e, t) => {
716
- const n = t.trim();
717
- if (n.length === 0) return !0;
718
- const r = n.match(/^([A-Za-z0-9_.-]+)\s*(==|!=)\s*(.+)$/);
719
- if (r) {
720
- const [, i, o, s] = r, a = e[i ?? ""], c = fe(s ?? "");
721
- return o === "==" ? String(a) === c : String(a) !== c;
722
- }
723
- return n.startsWith("!") ? !e[n.slice(1)] : !!e[n];
724
- }, he = (e, t) => t ? t.split("||").some((n) => n.split("&&").every((r) => ve(e, r))) : !0, Je = () => {
725
- const e = O({
726
- name: "workbench.context",
727
- initialState: {
728
- values: {}
729
- }
730
- });
731
- let t = {};
732
- const n = /* @__PURE__ */ new Map(), r = () => {
733
- const o = {
734
- ...t
735
- };
736
- for (const s of n.values()) Object.assign(o, s);
737
- return o;
738
- }, i = (o) => {
739
- e.setState({
740
- values: r()
741
- }, !1, o);
742
- };
743
- return {
744
- store: e,
745
- set(o, s) {
746
- t[o] !== s && (t = {
747
- ...t,
748
- [o]: s
749
- }, i("setContextKey"));
750
- },
751
- get(o) {
752
- return e.getState().values[o];
753
- },
754
- delete(o) {
755
- if (!(o in t)) return;
756
- const {
757
- [o]: s,
758
- ...a
759
- } = t;
760
- t = a, i("deleteContextKey");
761
- },
762
- createScope(o) {
763
- n.set(o, n.get(o) ?? {});
764
- let s = !1;
765
- const a = () => {
766
- if (s) throw new Error(`Context key scope disposed: ${o}`);
767
- };
768
- return {
769
- ownerId: o,
770
- set(c, d) {
771
- a();
772
- const l = n.get(o) ?? {};
773
- l[c] !== d && (n.set(o, {
774
- ...l,
775
- [c]: d
776
- }), i("setScopedContextKey"));
777
- },
778
- get(c) {
779
- return a(), n.get(o)?.[c];
780
- },
781
- delete(c) {
782
- a();
783
- const d = n.get(o);
784
- if (!d || !(c in d)) return;
785
- const {
786
- [c]: l,
787
- ...g
788
- } = d;
789
- n.set(o, g), i("deleteScopedContextKey");
790
- },
791
- dispose() {
792
- s || (s = !0, n.delete(o) && i("disposeContextKeyScope"));
793
- }
794
- };
795
- },
796
- deleteOwner(o) {
797
- n.delete(o) && i("deleteContextKeyOwner");
798
- },
799
- snapshot() {
800
- return {
801
- ...e.getState().values
802
- };
803
- },
804
- matches(o) {
805
- return he(e.getState().values, o);
806
- }
807
- };
808
- }, q = /* @__PURE__ */ new WeakMap(), Qe = (e, t) => {
809
- q.set(e, t);
810
- }, Xe = (e) => {
811
- const t = q.get(e);
812
- if (!t) throw new Error("Workbench renderers are not initialized");
813
- return t;
814
- };
815
- export {
816
- Fe as $,
817
- M as A,
818
- X as B,
819
- qe as C,
820
- He as D,
821
- _e as E,
822
- Ce as F,
823
- we as G,
824
- D as H,
825
- se as I,
826
- De as J,
827
- Je as K,
828
- Ge as L,
829
- ze as M,
830
- Qe as N,
831
- Ue as O,
832
- Te as P,
833
- ee as Q,
834
- Ve as R,
835
- Ze as S,
836
- S as T,
837
- he as U,
838
- ce as V,
839
- Ne as W,
840
- le as X,
841
- ge as Y,
842
- de as Z,
843
- B as _,
844
- b as a,
845
- Xe as a0,
846
- xe as a1,
847
- pe as a2,
848
- je as a3,
849
- V as a4,
850
- Me as a5,
851
- W as b,
852
- O as c,
853
- Ke as d,
854
- Pe as e,
855
- E as f,
856
- L as g,
857
- R as h,
858
- Se as i,
859
- I as j,
860
- We as k,
861
- ke as l,
862
- Z as m,
863
- _ as n,
864
- Re as o,
865
- Ae as p,
866
- Ee as q,
867
- T as r,
868
- w as s,
869
- $e as t,
870
- Ie as u,
871
- x as v,
872
- A as w,
873
- Le as x,
874
- Oe as y,
875
- Be as z
876
- };
877
- //# sourceMappingURL=workbench-renderers-BAPxtfpZ.js.map