@pstdio/workbench 0.35.0 → 0.36.1

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.
@@ -106,12 +106,12 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
106
106
  "secondary-right-menu": "secondary",
107
107
  "side-left-menu": "side",
108
108
  "side-right-menu": "side"
109
- }, ne = (e) => te[e], p = (e, t, n = t) => {
109
+ }, p = (e) => te[e], m = (e, t, n = t) => {
110
110
  if (!e.has(n)) return n;
111
111
  let r = 1;
112
112
  for (; e.has(`${t}:${r}`);) r += 1;
113
113
  return `${t}:${r}`;
114
- }, re = (e, t) => {
114
+ }, ne = (e, t) => {
115
115
  for (let n of Object.values(e.regions)) {
116
116
  let e = n.widgets.findIndex((e) => e.contributionId === t);
117
117
  if (e >= 0) return {
@@ -120,7 +120,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
120
120
  placement: n.widgets[e]
121
121
  };
122
122
  }
123
- }, ie = (e, t, n) => {
123
+ }, re = (e, t, n) => {
124
124
  for (let r of Object.values(e.regions)) {
125
125
  let e = r.widgets.findIndex((e) => e.contributionId === t && e.resourceKey === n);
126
126
  if (e >= 0) return {
@@ -129,7 +129,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
129
129
  placement: r.widgets[e]
130
130
  };
131
131
  }
132
- }, m = (e, t) => {
132
+ }, h = (e, t) => {
133
133
  for (let n of Object.values(e.regions)) {
134
134
  let e = n.widgets.findIndex((e) => e.widgetId === t);
135
135
  if (e >= 0) return {
@@ -138,9 +138,9 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
138
138
  placement: n.widgets[e]
139
139
  };
140
140
  }
141
- }, ae = (e, t) => p(new Set(Object.values(e.regions).flatMap((e) => e.widgets.map((e) => e.widgetId))), t), h = (e) => e.widgets.find((t) => t.widgetId === e.activeWidgetId) ?? e.widgets[0], g = (e) => e.role === "location", _ = (e) => e.resourceKey ?? `${e.contributionId}:${e.widgetId}`, v = (e, t, n, r) => {
141
+ }, ie = (e, t) => m(new Set(Object.values(e.regions).flatMap((e) => e.widgets.map((e) => e.widgetId))), t), g = (e) => e.widgets.find((t) => t.widgetId === e.activeWidgetId) ?? e.widgets[0], _ = (e) => e.role === "location", v = (e) => e.resourceKey ?? `${e.contributionId}:${e.widgetId}`, y = (e, t, n, r) => {
142
142
  if (!t) return e;
143
- let i = _(t), a = { ...e.locationSubPanelSelections?.[i] ?? {} };
143
+ let i = v(t), a = { ...e.locationSubPanelSelections?.[i] ?? {} };
144
144
  return r ? a[n] = r : delete a[n], {
145
145
  ...e,
146
146
  locationSubPanelSelections: {
@@ -148,21 +148,21 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
148
148
  [i]: a
149
149
  }
150
150
  };
151
- }, y = (e, t) => {
151
+ }, b = (e, t) => {
152
152
  if (!e.locationSubPanelSelections) return e;
153
153
  let n = Object.fromEntries(Object.entries(e.locationSubPanelSelections).map(([e, n]) => [e, Object.fromEntries(Object.entries(n).filter(([, e]) => e !== t))]));
154
154
  return {
155
155
  ...e,
156
156
  locationSubPanelSelections: n
157
157
  };
158
- }, b = (e) => {
159
- let t = e.regions.main.widgets.filter(g);
158
+ }, x = (e) => {
159
+ let t = e.regions.main.widgets.filter(_);
160
160
  return t.find((t) => t.widgetId === e.activeLocationWidgetId) ?? t.at(-1);
161
- }, x = (e, t, n, r = {}) => {
161
+ }, ae = (e, t, n, r = {}) => {
162
162
  let i = e.regions[t], a = n(i.widgets), o = r.activeWidgetId === void 0 ? r.clearActiveWidget ? void 0 : i.activeWidgetId : r.activeWidgetId;
163
163
  return {
164
164
  ...e,
165
- activeLocationWidgetId: t === "main" && !a.some((t) => t.widgetId === e.activeLocationWidgetId) ? a.filter(g).at(-1)?.widgetId : e.activeLocationWidgetId,
165
+ activeLocationWidgetId: t === "main" && !a.some((t) => t.widgetId === e.activeLocationWidgetId) ? a.filter(_).at(-1)?.widgetId : e.activeLocationWidgetId,
166
166
  regions: {
167
167
  ...e.regions,
168
168
  [t]: {
@@ -172,7 +172,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
172
172
  }
173
173
  }
174
174
  };
175
- }, S = (e, t) => {
175
+ }, oe = (e, t) => {
176
176
  let n = e;
177
177
  for (let r of Object.values(e.regions)) {
178
178
  let e = r.widgets.filter((e) => e.contributionId === t), i = r.widgets.filter((e) => e.contributionId !== t);
@@ -189,7 +189,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
189
189
  }
190
190
  }
191
191
  };
192
- for (let t of e) n = y(n, t.widgetId);
192
+ for (let t of e) n = b(n, t.widgetId);
193
193
  }
194
194
  let r = Object.values(n.regions).some((e) => e.widgets.some((e) => e.widgetId === n.activeWidgetId));
195
195
  return n.activeWidgetId && (!r || n.activeWidgetId.startsWith(`${t}:`) || n.activeWidgetId === t) && (n = {
@@ -198,37 +198,37 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
198
198
  activeResourceKey: void 0
199
199
  }), n.activeLocationWidgetId && !n.regions.main.widgets.some((e) => e.widgetId === n.activeLocationWidgetId) && (n = {
200
200
  ...n,
201
- activeLocationWidgetId: n.regions.main.widgets.filter(g).at(-1)?.widgetId
201
+ activeLocationWidgetId: n.regions.main.widgets.filter(_).at(-1)?.widgetId
202
202
  }), n;
203
- }, C = (e, t) => {
204
- let n = m(e, t);
203
+ }, se = (e, t) => {
204
+ let n = h(e, t);
205
205
  if (!n) return;
206
- let r = e.regions[n.regionId], i = r.widgets.filter((e) => e.widgetId !== t), a = r.activeWidgetId === t || !r.activeWidgetId && n.index === 0, o = (n.placement.role === "sub-panel" ? i.find((e) => e.role === "sub-panel" && e.ownerResourceKey === n.placement.ownerResourceKey) : void 0) ?? (n.placement.role === "sub-panel" && n.regionId === "main" ? b(e) : i[n.index] ?? i[n.index - 1]), s = a ? o?.widgetId : r.activeWidgetId, c = {
206
+ let r = e.regions[n.regionId], i = r.widgets.filter((e) => e.widgetId !== t), a = r.activeWidgetId === t || !r.activeWidgetId && n.index === 0, o = (n.placement.role === "sub-panel" ? i.find((e) => e.role === "sub-panel" && e.ownerResourceKey === n.placement.ownerResourceKey) : void 0) ?? (n.placement.role === "sub-panel" && n.regionId === "main" ? x(e) : i[n.index] ?? i[n.index - 1]), s = a ? o?.widgetId : r.activeWidgetId, c = {
207
207
  ...r,
208
208
  widgets: i,
209
209
  activeWidgetId: s
210
- }, l = y({
210
+ }, l = b({
211
211
  ...e,
212
- activeLocationWidgetId: e.activeLocationWidgetId === t ? e.regions.main.widgets.filter((e) => e.widgetId !== t && g(e)).at(-1)?.widgetId : e.activeLocationWidgetId,
212
+ activeLocationWidgetId: e.activeLocationWidgetId === t ? e.regions.main.widgets.filter((e) => e.widgetId !== t && _(e)).at(-1)?.widgetId : e.activeLocationWidgetId,
213
213
  regions: {
214
214
  ...e.regions,
215
215
  [r.id]: c
216
216
  }
217
217
  }, t);
218
- return a && n.regionId !== "side" && f.includes(n.regionId) && (l = v(l, b(l), n.regionId, o?.role === "sub-panel" ? o.widgetId : void 0)), e.activeWidgetId === t && (l = {
218
+ return a && n.regionId !== "side" && f.includes(n.regionId) && (l = y(l, x(l), n.regionId, o?.role === "sub-panel" ? o.widgetId : void 0)), e.activeWidgetId === t && (l = {
219
219
  ...l,
220
220
  activeWidgetId: o?.widgetId,
221
221
  activeResourceKey: o?.resourceKey
222
222
  }), {
223
223
  regionId: n.regionId,
224
224
  closedPlacement: n.placement,
225
- activePlacement: h(c),
225
+ activePlacement: g(c),
226
226
  layout: l
227
227
  };
228
- }, oe = (e, t, n) => {
228
+ }, ce = (e, t, n) => {
229
229
  let r = e.regions[t];
230
- if (t === "main" && g(n)) {
231
- let t = e.locationSubPanelSelections?.[_(n)] ?? {}, r = Object.fromEntries(Object.entries(e.regions).map(([e, t]) => [e, {
230
+ if (t === "main" && _(n)) {
231
+ let t = e.locationSubPanelSelections?.[v(n)] ?? {}, r = Object.fromEntries(Object.entries(e.regions).map(([e, t]) => [e, {
232
232
  ...t,
233
233
  widgets: t.widgets.map((e) => !n.resource || e.widgetId === n.widgetId || e.ownerResourceKey !== n.resourceKey || e.resourceKey !== n.resourceKey ? e : {
234
234
  ...e,
@@ -250,7 +250,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
250
250
  regions: r
251
251
  };
252
252
  }
253
- let i = n.role === "sub-panel" && t !== "side" && f.includes(t) ? v(e, b(e), t, n.widgetId) : e;
253
+ let i = n.role === "sub-panel" && t !== "side" && f.includes(t) ? y(e, x(e), t, n.widgetId) : e;
254
254
  return {
255
255
  ...i,
256
256
  activeWidgetId: n.widgetId,
@@ -264,7 +264,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
264
264
  }
265
265
  }
266
266
  };
267
- }, se = (e, t, n) => {
267
+ }, le = (e, t, n) => {
268
268
  let r = e.regions[t], i = n ? r.widgets.find((e) => e.widgetId === n) : void 0;
269
269
  if (n && !i) throw Error(`Widget placement not found in ${t}: ${n}`);
270
270
  if (r.activeWidgetId === n) return;
@@ -281,27 +281,27 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
281
281
  }
282
282
  }
283
283
  };
284
- return t === "side" || !f.includes(t) ? o : v(o, b(o), t, i?.role === "sub-panel" ? i.widgetId : void 0);
285
- }, ce = (e, t) => !(e.resourceKinds?.length && (!t || !e.resourceKinds.includes(t.type)) || e.canOpen && (!t || !e.canOpen(t))), le = (t, n, r, i = {}) => {
284
+ return t === "side" || !f.includes(t) ? o : y(o, x(o), t, i?.role === "sub-panel" ? i.widgetId : void 0);
285
+ }, ue = (e, t) => !(e.resourceKinds?.length && (!t || !e.resourceKinds.includes(t.type)) || e.canOpen && (!t || !e.canOpen(t))), de = (t, n, r, i = {}) => {
286
286
  let a = t.regions[n];
287
287
  return a.widgets.find((t) => t.widgetId === a.activeWidgetId && t.role === "sub-panel" && (i.ignoreOwnerResourceKey || !t.ownerResourceKey || t.ownerResourceKey === e(r)));
288
- }, ue = (e) => b(e), de = (t, n, r, i, a) => {
288
+ }, fe = (e) => x(e), pe = (t, n, r, i, a) => {
289
289
  let o = t.eligibleLocations;
290
- return !(!w(t, r) || o?.resourceKinds?.length && (!n || !o.resourceKinds.includes(n.type)) || o?.resourceIds?.length && (!n?.id || !o.resourceIds.includes(n.id)) || o?.canOpen && (!n || !o.canOpen(n)) || o?.canOpenLocation && !o.canOpenLocation({
290
+ return !(!S(t, r) || o?.resourceKinds?.length && (!n || !o.resourceKinds.includes(n.type)) || o?.resourceIds?.length && (!n?.id || !o.resourceIds.includes(n.id)) || o?.canOpen && (!n || !o.canOpen(n)) || o?.canOpenLocation && !o.canOpenLocation({
291
291
  resource: n,
292
292
  viewId: a?.viewId
293
293
  }) || i?.ownerResourceKey && i.ownerResourceKey !== e(n));
294
- }, w = (e, t) => {
294
+ }, S = (e, t) => {
295
295
  let n = e.eligibleLocations?.modeIds;
296
296
  return !n?.length || t !== void 0 && n.includes(t);
297
- }, fe = (e, t, n, r, i = {}) => ce(e, r?.resource ?? t) ? i.ignoreResourceLocation ? w(e, n) : de(e, t, n, r, i.location) : !1, pe = (e, t) => {
297
+ }, me = (e, t, n, r, i = {}) => ue(e, r?.resource ?? t) ? i.ignoreResourceLocation ? S(e, n) : pe(e, t, n, r, i.location) : !1, he = (e, t) => {
298
298
  let n = e.panelMenuOwner ?? { level: "panel" };
299
299
  return n.contributionId ? (t.subPanel ?? t.locationPanel)?.contributionId === n.contributionId : t.subPanel ? n.level === "sub-panel" : n.level === "panel";
300
- }, me = "workbench.core", T = (e = {}) => ({
300
+ }, ge = "workbench.core", C = (e = {}) => ({
301
301
  source: e.source ?? "module",
302
- ownerId: e.ownerId ?? me,
302
+ ownerId: e.ownerId ?? ge,
303
303
  priority: e.priority ?? 0
304
- }), E = (e, t) => t.priority - e.priority || e.ownerId.localeCompare(t.ownerId), he = (e = {}, t) => {
304
+ }), w = (e, t) => t.priority - e.priority || e.ownerId.localeCompare(t.ownerId), _e = (e = {}, t) => {
305
305
  let { strategy: n, ...r } = e, i = r.resource && r.viewId === void 0 ? {
306
306
  ...r,
307
307
  viewId: null
@@ -325,7 +325,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
325
325
  ...i,
326
326
  tabRetention: t
327
327
  };
328
- }, ge = (e) => ({
328
+ }, ve = (e) => ({
329
329
  instanceId: e.widgetId,
330
330
  panelId: e.contributionId,
331
331
  placementIdentity: e.placementIdentity,
@@ -343,10 +343,10 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
343
343
  hiddenByDefault: e.hiddenByDefault,
344
344
  tabRetention: e.tabRetention,
345
345
  tab: e.tab
346
- }), _e = (e) => {
346
+ }), ye = (e) => {
347
347
  let { closable: t, ownedPanelMenuIds: n, ...r } = e;
348
348
  return r;
349
- }, D = {
349
+ }, T = {
350
350
  main: [
351
351
  "main-header",
352
352
  "main-left-menu",
@@ -365,18 +365,18 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
365
365
  "side",
366
366
  "side-right-menu"
367
367
  ]
368
- }, O = Object.values(D).flat(), k = (e) => e.panels ?? f, A = (e) => Object.keys(D).find((t) => D[t].some((t) => t === e)), j = (e, t) => !e || k(e).includes(t), M = (e, t) => {
368
+ }, E = Object.values(T).flat(), D = (e) => e.panels ?? f, be = (e) => Object.keys(T).find((t) => T[t].some((t) => t === e)), xe = (e, t) => !e || D(e).includes(t), O = (e, t) => {
369
369
  if (t) return Object.values(e.regions).flatMap((e) => e.widgets).find((e) => e.widgetId === t);
370
- }, N = (e, t) => {
371
- let n = t.find((t) => t && M(e, t.widgetId));
370
+ }, k = (e, t) => {
371
+ let n = t.find((t) => t && O(e, t.widgetId));
372
372
  return {
373
373
  ...e,
374
374
  activeWidgetId: n?.widgetId,
375
375
  activeResourceKey: n?.resourceKey
376
376
  };
377
- }, P = (e, t) => {
377
+ }, Se = (e, t) => {
378
378
  if (t.length === 0) return e;
379
- let n = new Set(Object.keys(D).filter((e) => D[e].some((e) => t.includes(e)))), r = t.some((t) => {
379
+ let n = new Set(Object.keys(T).filter((e) => T[e].some((e) => t.includes(e)))), r = t.some((t) => {
380
380
  let n = e.regions[t];
381
381
  return n.widgets.length > 0 || n.activeWidgetId !== void 0 || n.visible;
382
382
  }), i = Object.values(e.locationSubPanelSelections ?? {}).some((e) => Object.keys(e).some((e) => n.has(e)));
@@ -393,17 +393,17 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
393
393
  regions: a
394
394
  };
395
395
  return {
396
- ...N(s, [M(s, e.activeWidgetId)]),
397
- activeLocationWidgetId: M(s, e.activeLocationWidgetId)?.widgetId,
396
+ ...k(s, [O(s, e.activeWidgetId)]),
397
+ activeLocationWidgetId: O(s, e.activeLocationWidgetId)?.widgetId,
398
398
  locationSubPanelSelections: o
399
399
  };
400
- }, F = (e, t) => {
400
+ }, A = (e, t) => {
401
401
  let n = new Set(t);
402
- return P(e, Object.keys(D).filter((e) => !n.has(e)).flatMap((e) => D[e]));
403
- }, I = (e, t, n) => {
402
+ return Se(e, Object.keys(T).filter((e) => !n.has(e)).flatMap((e) => T[e]));
403
+ }, j = (e, t, n) => {
404
404
  if (!t) {
405
405
  let t = { ...e.regions };
406
- for (let e of O) {
406
+ for (let e of E) {
407
407
  let n = t[e], r = n.widgets.filter((e) => e.role !== "content");
408
408
  t[e] = {
409
409
  ...n,
@@ -415,30 +415,111 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
415
415
  ...e,
416
416
  regions: t
417
417
  };
418
- return F({
419
- ...N(r, [M(r, e.activeWidgetId)]),
420
- activeLocationWidgetId: M(r, e.activeLocationWidgetId)?.widgetId
418
+ return A({
419
+ ...k(r, [O(r, e.activeWidgetId)]),
420
+ activeLocationWidgetId: O(r, e.activeLocationWidgetId)?.widgetId
421
421
  }, n);
422
422
  }
423
423
  let r = { ...e.regions };
424
- for (let e of O) r[e] = t.regions[e];
425
- let i = F({
424
+ for (let e of E) r[e] = t.regions[e];
425
+ let i = A({
426
426
  ...e,
427
427
  regions: r
428
428
  }, n);
429
429
  return {
430
- ...N(i, [M(i, t.activeWidgetId), M(i, e.activeWidgetId)]),
431
- activeLocationWidgetId: M(i, t.activeLocationWidgetId)?.widgetId ?? M(i, e.activeLocationWidgetId)?.widgetId,
430
+ ...k(i, [O(i, t.activeWidgetId), O(i, e.activeWidgetId)]),
431
+ activeLocationWidgetId: O(i, t.activeLocationWidgetId)?.widgetId ?? O(i, e.activeLocationWidgetId)?.widgetId,
432
432
  locationSubPanelSelections: t.locationSubPanelSelections
433
433
  };
434
- }, ve = (e) => {
434
+ }, Ce = (e) => {
435
435
  for (let t = e.length - 1; t >= 0; --t) i("mode disposal", () => e[t]?.dispose());
436
- }, ye = (e, t) => {
436
+ }, we = (e, t) => {
437
437
  t !== e.layout.getLayout() && e.layout.restoreLayout(t);
438
- }, L = (e) => Array.isArray(e) ? e : e.trim().split(/\s+/).filter(Boolean), be = (e) => {
438
+ }, M = (e, t) => e < t ? -1 : +(e > t), N = (e) => e.kind === "shell" ? `shell\0${e.placementId}` : e.kind === "mode" ? `mode\0${e.modeId}\0${e.placementId}` : `page\0${e.pageId}\0${e.slotId}`, P = (e) => e.kind === "shell" ? JSON.stringify([
439
+ "shell",
440
+ e.placementId,
441
+ e.instanceKey
442
+ ]) : e.kind === "mode" ? JSON.stringify([
443
+ "mode",
444
+ e.modeId,
445
+ e.placementId,
446
+ e.instanceKey
447
+ ]) : JSON.stringify([
448
+ "page",
449
+ e.pageId,
450
+ e.slotId,
451
+ e.instanceKey
452
+ ]), F = (e, t) => {
453
+ let n = M(N(e.identity), N(t.identity));
454
+ return n === 0 ? M(e.identity.instanceKey, t.identity.instanceKey) : n;
455
+ }, Te = (e, t) => e.order - t.order || F(e, t), Ee = (e, t) => {
456
+ if (t.identity.kind === e) return;
457
+ let n = `${e[0]?.toUpperCase()}${e.slice(1)}`;
458
+ throw Error(`${n} placement must have a ${e} owner`);
459
+ }, De = (e) => {
460
+ let t = [], n = /* @__PURE__ */ new Set(), r = (e, r) => {
461
+ for (let i of r) {
462
+ if (Ee(e, i), !Number.isFinite(i.order)) throw Error("Placement order must be a finite number");
463
+ let r = P(i.identity);
464
+ if (n.has(r)) throw Error(`Duplicate placement identity: ${r}`);
465
+ n.add(r), t.push(i);
466
+ }
467
+ };
468
+ r("shell", e.shell), r("mode", e.mode ?? []), r("page", e.page ?? []);
469
+ let i = new Set((e.mode ?? []).map((e) => e.identity.kind === "mode" ? e.identity.modeId : "invalid-mode-owner")), a = new Set((e.page ?? []).map((e) => e.identity.kind === "page" ? e.identity.pageId : "invalid-page-owner"));
470
+ if (i.size > 1) throw Error("Mode placements must belong to one active mode");
471
+ if (a.size > 1) throw Error("Page placements must belong to one active page");
472
+ return t;
473
+ }, Oe = () => d.reduce((e, t) => (e[t] = [], e), {}), ke = (e) => {
474
+ let t = De(e), n = new Set((e.closed ?? []).map(P)), r = [], i = Oe();
475
+ for (let e of t) {
476
+ if (n.has(P(e.identity))) {
477
+ r.push(e);
478
+ continue;
479
+ }
480
+ i[e.region].push(e);
481
+ }
482
+ for (let e of d) i[e].sort(Te);
483
+ return r.sort(F), {
484
+ placements: d.flatMap((e) => i[e]),
485
+ closed: r,
486
+ regions: i,
487
+ visibleRegions: new Set(d.filter((e) => i[e].length > 0))
488
+ };
489
+ }, I = (e) => {
490
+ let t = /* @__PURE__ */ new Map();
491
+ for (let n of e) {
492
+ let e = P(n.identity);
493
+ if (t.has(e)) throw Error(`Duplicate placement identity: ${e}`);
494
+ t.set(e, n);
495
+ }
496
+ return t;
497
+ }, Ae = (e, t, n) => e.region === t.region && e.order === t.order && n(e.value, t.value), je = (e) => {
498
+ let t = I(e.current), n = I(e.desired), r = [], i = [], a = [], o = [];
499
+ for (let [o, s] of n) {
500
+ let n = t.get(o);
501
+ n ? Ae(n, s, e.valuesEqual) ? i.push(s) : a.push({
502
+ current: n,
503
+ desired: s
504
+ }) : r.push(s);
505
+ }
506
+ for (let [e, r] of t) n.has(e) || o.push(r);
507
+ let s = new Set((e.activate ?? []).map(P)), c = Array.from(s, (e) => {
508
+ let t = n.get(e);
509
+ if (!t) throw Error(`Cannot activate missing placement: ${e}`);
510
+ return t;
511
+ });
512
+ return r.sort(F), i.sort(F), a.sort((e, t) => F(e.desired, t.desired)), c.sort(F), o.sort(F), {
513
+ add: r,
514
+ retain: i,
515
+ update: a,
516
+ activate: c,
517
+ remove: o
518
+ };
519
+ }, L = (e) => Array.isArray(e) ? e : e.trim().split(/\s+/).filter(Boolean), Me = (e) => {
439
520
  let t = L(e);
440
521
  return t.length === 1 ? t[0] ?? "" : t;
441
- }, xe = (e) => {
522
+ }, Ne = (e) => {
442
523
  let t = u({
443
524
  name: "workbench.keybindings",
444
525
  initialState: { keybindings: [] }
@@ -448,9 +529,9 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
448
529
  registerKeybinding(n, i) {
449
530
  if (n.action.kind === "command" && !e.commands.getCommand(n.action.commandId)) throw Error(`Keybinding command not registered: ${n.action.commandId}`);
450
531
  let a = {
451
- ...T(i),
532
+ ...C(i),
452
533
  ...n,
453
- keybinding: be(n.keybinding)
534
+ keybinding: Me(n.keybinding)
454
535
  }, o = t.getState();
455
536
  return t.setState({ keybindings: [...o.keybindings, a] }, !1, "registerKeybinding"), r(() => {
456
537
  let e = t.getState(), n = e.keybindings.filter((e) => e !== a);
@@ -458,13 +539,13 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
458
539
  });
459
540
  },
460
541
  listKeybindings() {
461
- return [...t.getState().keybindings].sort(E);
542
+ return [...t.getState().keybindings].sort(w);
462
543
  },
463
544
  listActiveKeybindings() {
464
- return t.getState().keybindings.filter((t) => e.context.matches(t.when)).sort(E);
545
+ return t.getState().keybindings.filter((t) => e.context.matches(t.when)).sort(w);
465
546
  },
466
547
  listCommandKeybindings() {
467
- return [...t.getState().keybindings].sort(E).flatMap((e) => e.action.kind === "command" ? [{
548
+ return [...t.getState().keybindings].sort(w).flatMap((e) => e.action.kind === "command" ? [{
468
549
  commandId: e.action.commandId,
469
550
  keybinding: e.keybinding
470
551
  }] : []);
@@ -500,19 +581,19 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
500
581
  "side-left-menu": z(["attached"]),
501
582
  side: R("attached", "detached", "scoped"),
502
583
  "side-right-menu": z(["attached"])
503
- }, Se = (e) => B[e], Ce = () => d.filter((e) => B[e].role === "anchor"), V = (e) => {
584
+ }, Pe = (e) => B[e], V = () => d.filter((e) => B[e].role === "anchor"), H = (e) => {
504
585
  let t = d.find((t) => {
505
586
  let n = B[t];
506
587
  return n.role === "anchor" && n.anchor === e;
507
588
  });
508
589
  if (!t) throw Error(`No region hosts anchor: ${e}`);
509
590
  return t;
510
- }, we = (e, t) => h(e.regions[V(t)])?.resource, Te = ({ layout: e, primary: t, isInScope: n }) => {
591
+ }, Fe = (e, t) => g(e.regions[H(t)])?.resource, Ie = ({ layout: e, primary: t, isInScope: n }) => {
511
592
  let r = [];
512
- for (let i of Ce()) {
513
- let a = Se(i);
593
+ for (let i of V()) {
594
+ let a = Pe(i);
514
595
  if (a.role !== "anchor" || a.persistence === "primary") continue;
515
- let o = h(e.regions[i]);
596
+ let o = g(e.regions[i]);
516
597
  if (o?.resource) {
517
598
  if (o.role === "sub-panel" && o.ownerResourceKey) {
518
599
  r.push({
@@ -535,68 +616,68 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
535
616
  }
536
617
  }
537
618
  return r;
538
- }, H = (e) => [
619
+ }, U = (e) => [
539
620
  "workbench",
540
621
  "header",
541
622
  e,
542
623
  "leading"
543
- ], U = (e) => [
624
+ ], W = (e) => [
544
625
  "workbench",
545
626
  "header",
546
627
  e,
547
628
  "trailing"
548
- ], Ee = (e) => [
629
+ ], Le = (e) => [
549
630
  "workbench",
550
631
  "regionTabs",
551
632
  e,
552
633
  "leading"
553
- ], De = (e) => [
634
+ ], Re = (e) => [
554
635
  "workbench",
555
636
  "regionTabs",
556
637
  e,
557
638
  "add"
558
- ], Oe = ["workbench", "commandPalette"], ke = H("nav"), Ae = U("nav"), je = (e) => [
639
+ ], ze = ["workbench", "commandPalette"], Be = U("nav"), Ve = W("nav"), He = (e) => [
559
640
  "workbench",
560
641
  "resource",
561
642
  e,
562
643
  "context"
563
- ], Me = {
644
+ ], Ue = {
564
645
  project: "folder-root",
565
646
  workspace: "computer",
566
647
  worktree: "git-pull-request-draft",
567
648
  settings: "settings",
568
649
  kanbanRenderer: "table-properties"
569
- }, W = (e) => "viewId" in e && e.type === "view", G = "resource_hierarchy_cycle", K = (e) => [...e].sort((e, t) => t.priority - e.priority || e.id.localeCompare(t.id)), Ne = (t, n, r) => {
570
- let i = K(t), a = [n], o = /* @__PURE__ */ new Set([`resource:${e(n)}`]), s = n;
650
+ }, G = (e) => "viewId" in e && e.type === "view", K = "resource_hierarchy_cycle", q = (e) => [...e].sort((e, t) => t.priority - e.priority || e.id.localeCompare(t.id)), We = (t, n, r) => {
651
+ let i = q(t), a = [n], o = /* @__PURE__ */ new Set([`resource:${e(n)}`]), s = n;
571
652
  for (;;) {
572
653
  let t = i.find((e) => e.canResolve(s))?.getParent(s);
573
654
  if (!t) break;
574
- let n = W(t) ? `view:${t.viewId}` : `resource:${e(t)}`;
655
+ let n = G(t) ? `view:${t.viewId}` : `resource:${e(t)}`;
575
656
  if (o.has(n)) {
576
657
  r({
577
- code: G,
658
+ code: K,
578
659
  path: [...a],
579
- repeatedUri: W(t) ? n : e(t)
660
+ repeatedUri: G(t) ? n : e(t)
580
661
  });
581
662
  break;
582
663
  }
583
- if (a.unshift(t), o.add(n), W(t)) break;
664
+ if (a.unshift(t), o.add(n), G(t)) break;
584
665
  s = t;
585
666
  }
586
667
  return a;
587
- }, q = "workbench.resource.type", J = "workbench.resource.id", Y = (e) => `workbench.resource.metadata.${e}`, X = "workbench.selectionResourceKey", Pe = (e) => typeof e == "string" || typeof e == "number" || typeof e == "boolean", Fe = (e) => {
668
+ }, J = "workbench.resource.type", Y = "workbench.resource.id", X = (e) => `workbench.resource.metadata.${e}`, Z = "workbench.selectionResourceKey", Ge = (e) => typeof e == "string" || typeof e == "number" || typeof e == "boolean", Ke = (e) => {
588
669
  if (!e) return {};
589
670
  let t = {
590
- [q]: e.type,
591
- [J]: e.id
671
+ [J]: e.type,
672
+ [Y]: e.id
592
673
  };
593
- for (let [n, r] of Object.entries(e.metadata ?? {})) Pe(r) && (t[Y(n)] = r);
674
+ for (let [n, r] of Object.entries(e.metadata ?? {})) Ge(r) && (t[X(n)] = r);
594
675
  return t;
595
- }, Ie = (t) => ({ [X]: e(t) }), Le = (t) => {
676
+ }, qe = (t) => ({ [Z]: e(t) }), Je = (t) => {
596
677
  if (!t) return [];
597
- let n = t.metadata?.[X];
678
+ let n = t.metadata?.[Z];
598
679
  return typeof n != "string" || n === e(t) ? [e(t)] : [e(t), n];
599
- }, Re = (e = {}) => {
680
+ }, Ye = (e = {}) => {
600
681
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), i = u({
601
682
  name: "workbench.resources",
602
683
  initialState: {
@@ -617,7 +698,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
617
698
  let n = i.getState();
618
699
  if (n.kinds[e.kind]) throw Error(`Resource kind already registered: ${e.kind}`);
619
700
  let a = {
620
- ...T(t),
701
+ ...C(t),
621
702
  ...e
622
703
  };
623
704
  return i.setState({
@@ -640,7 +721,7 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
640
721
  return i.getState().kinds[e];
641
722
  },
642
723
  listKinds() {
643
- return Object.values(i.getState().kinds).sort(E);
724
+ return Object.values(i.getState().kinds).sort(w);
644
725
  },
645
726
  registerProvider(e) {
646
727
  let t = i.getState();
@@ -693,13 +774,13 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
693
774
  });
694
775
  },
695
776
  listHierarchyProviders() {
696
- return K(Object.values(i.getState().hierarchyProviders));
777
+ return q(Object.values(i.getState().hierarchyProviders));
697
778
  },
698
779
  walkHierarchy(t) {
699
- return t ? Ne(Object.values(i.getState().hierarchyProviders), t, (e) => {
780
+ return t ? We(Object.values(i.getState().hierarchyProviders), t, (e) => {
700
781
  for (let t of n) t(e);
701
782
  }).map((t) => {
702
- if (!W(t)) return t;
783
+ if (!G(t)) return t;
703
784
  let n = e.resolveView?.(t.viewId);
704
785
  return n ? {
705
786
  ...t,
@@ -714,16 +795,40 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
714
795
  });
715
796
  }
716
797
  };
717
- }, ze = (e) => e.replace(/^['"]|['"]$/g, ""), Z = (e, t) => {
798
+ }, Xe = (t, n = "view") => JSON.stringify([
799
+ n,
800
+ t.placementIdentity ? P(t.placementIdentity) : t.instanceId,
801
+ e(t.resource) ?? null
802
+ ]), Ze = async (e, t) => {
803
+ let n = new AbortController(), r = () => n.abort(t?.reason);
804
+ t?.aborted ? r() : t?.addEventListener("abort", r, { once: !0 });
805
+ let i;
806
+ try {
807
+ let r = await Promise.allSettled(e.map(async (e) => {
808
+ try {
809
+ return n.signal.throwIfAborted(), await e(n.signal);
810
+ } catch (e) {
811
+ throw i ??= e, n.abort(e), e;
812
+ }
813
+ }));
814
+ if (i !== void 0) throw i;
815
+ return t?.throwIfAborted(), r.map((e) => {
816
+ if (e.status === "rejected") throw e.reason;
817
+ return e.value;
818
+ });
819
+ } finally {
820
+ t?.removeEventListener("abort", r);
821
+ }
822
+ }, Qe = (e) => e.replace(/^['"]|['"]$/g, ""), $e = (e, t) => {
718
823
  let n = t.trim();
719
824
  if (n.length === 0) return !0;
720
825
  let r = n.match(/^([A-Za-z0-9_.-]+)\s*(==|!=)\s*(.+)$/);
721
826
  if (r) {
722
- let [, t, n, i] = r, a = e[t ?? ""], o = ze(i ?? "");
827
+ let [, t, n, i] = r, a = e[t ?? ""], o = Qe(i ?? "");
723
828
  return n === "==" ? String(a) === o : String(a) !== o;
724
829
  }
725
830
  return n.startsWith("!") ? !e[n.slice(1)] : !!e[n];
726
- }, Q = (e, t) => !t || t.split("||").some((t) => t.split("&&").every((t) => Z(e, t))), Be = () => {
831
+ }, Q = (e, t) => !t || t.split("||").some((t) => t.split("&&").every((t) => $e(e, t))), et = () => {
727
832
  let e = u({
728
833
  name: "workbench.context",
729
834
  initialState: { values: {} }
@@ -790,14 +895,14 @@ var a = 0, o = /* @__PURE__ */ new Map(), s = (e, t) => {
790
895
  return Q(e.getState().values, t);
791
896
  }
792
897
  };
793
- }, $ = /* @__PURE__ */ new WeakMap(), Ve = (e, t) => {
898
+ }, $ = /* @__PURE__ */ new WeakMap(), tt = (e, t) => {
794
899
  $.set(e, t);
795
- }, He = (e) => {
900
+ }, nt = (e) => {
796
901
  let t = $.get(e);
797
902
  if (!t) throw Error("Workbench renderers are not initialized");
798
903
  return t;
799
904
  };
800
905
  //#endregion
801
- export { h as $, ve as A, T as B, Ae as C, xe as D, V as E, I as F, pe as G, le as H, he as I, ae as J, oe as K, _e as L, j as M, k as N, L as O, ye as P, b as Q, ge as R, ke as S, Te as T, fe as U, ue as V, w as W, m as X, re as Y, ie as Z, U as _, Re as a, p as at, De as b, Le as c, f as ct, q as d, c as dt, y as et, X as f, s as ft, H as g, Me as h, Q as i, v as it, A as j, F as k, J as l, d as lt, G as m, r as mt, Ve as n, x as nt, Fe as o, ne as ot, W as p, i as pt, C as q, Be as r, se as rt, Ie as s, ee as st, He as t, S as tt, Y as u, u as ut, je as v, we as w, Ee as x, Oe as y, E as z };
906
+ export { ie as $, L as A, j as B, Le as C, Ie as D, Fe as E, Ce as F, C as G, ye as H, be as I, me as J, fe as K, xe as L, P as M, je as N, H as O, A as P, se as Q, D as R, Re as S, Ve as T, ve as U, _e as V, w as W, he as X, S as Y, ce as Z, Ue as _, s as _t, Ze as a, b as at, He as b, Ke as c, le as ct, Y as d, p as dt, ne as et, X as f, ee as ft, K as g, c as gt, G as h, u as ht, Q as i, g as it, ke as j, Ne as k, qe as l, y as lt, Z as m, d as mt, tt as n, re as nt, Xe as o, oe as ot, J as p, f as pt, de as q, et as r, x as rt, Ye as s, ae as st, nt as t, h as tt, Je as u, m as ut, U as v, i as vt, Be as w, ze as x, W as y, r as yt, we as z };
802
907
 
803
- //# sourceMappingURL=workbench-renderers-BK6g8mG_.js.map
908
+ //# sourceMappingURL=workbench-renderers-RPeMVtTc.js.map