@pstdio/workbench 0.8.0 → 0.9.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 (44) hide show
  1. package/README.md +39 -317
  2. package/dist/extensions.d.ts +1283 -774
  3. package/dist/extensions.js +1454 -1924
  4. package/dist/extensions.js.map +1 -1
  5. package/dist/file-renderer-view-kfJRY3yR.js +515 -0
  6. package/dist/file-renderer-view-kfJRY3yR.js.map +1 -0
  7. package/dist/index.d.ts +589 -644
  8. package/dist/index.js +5011 -2644
  9. package/dist/index.js.map +1 -1
  10. package/dist/react.d.ts +540 -585
  11. package/dist/react.js +3583 -3424
  12. package/dist/react.js.map +1 -1
  13. package/dist/storage.d.ts +118 -157
  14. package/dist/storage.js +135 -149
  15. package/dist/storage.js.map +1 -1
  16. package/dist/webview-runtime.d.ts +2 -5
  17. package/dist/webview-runtime.js +3 -3
  18. package/dist/webview-runtime.js.map +1 -1
  19. package/dist/workbench-menu-paths-B_QJzcNU.js +12 -0
  20. package/dist/workbench-menu-paths-B_QJzcNU.js.map +1 -0
  21. package/dist/workbench-renderers-DmsrBGC7.js +960 -0
  22. package/dist/workbench-renderers-DmsrBGC7.js.map +1 -0
  23. package/dist/workspaces-DJwFj8uq.js +1872 -0
  24. package/dist/workspaces-DJwFj8uq.js.map +1 -0
  25. package/package.json +6 -41
  26. package/dist/composition-resolver-types-CWykPyEK.js +0 -241
  27. package/dist/composition-resolver-types-CWykPyEK.js.map +0 -1
  28. package/dist/file-renderer-view-B6_iR4EN.js +0 -496
  29. package/dist/file-renderer-view-B6_iR4EN.js.map +0 -1
  30. package/dist/file-section-navigation-CfYqVObc.js +0 -30
  31. package/dist/file-section-navigation-CfYqVObc.js.map +0 -1
  32. package/dist/layout-types-DMoZz38-.js +0 -100
  33. package/dist/layout-types-DMoZz38-.js.map +0 -1
  34. package/dist/surface-map-C1pOTUmF.js +0 -52
  35. package/dist/surface-map-C1pOTUmF.js.map +0 -1
  36. package/dist/testing.d.ts +0 -2443
  37. package/dist/testing.js +0 -58
  38. package/dist/testing.js.map +0 -1
  39. package/dist/workbench-built-ins-BCJ6-fIM.js +0 -1173
  40. package/dist/workbench-built-ins-BCJ6-fIM.js.map +0 -1
  41. package/dist/workbench-menu-paths-D-e7iscN.js +0 -43
  42. package/dist/workbench-menu-paths-D-e7iscN.js.map +0 -1
  43. package/dist/workflow-status-settings-DLiu9FZ0.js +0 -144
  44. package/dist/workflow-status-settings-DLiu9FZ0.js.map +0 -1
@@ -1,1173 +0,0 @@
1
- import { c as m, j as X, i as Y, s as ee, w as $ } from "./workbench-menu-paths-D-e7iscN.js";
2
- import { w as p, r as te } from "./layout-types-DMoZz38-.js";
3
- import { r as ie, l as ne, g as oe } from "./surface-map-C1pOTUmF.js";
4
- import { devtools as re } from "zustand/middleware";
5
- import { createStore as se } from "zustand/vanilla";
6
- const ce = "workbench.core", V = (e = {}) => ({
7
- source: e.source ?? "module",
8
- ownerId: e.ownerId ?? ce,
9
- priority: e.priority ?? 0
10
- }), x = (e, i) => i.priority - e.priority || e.ownerId.localeCompare(i.ownerId), ae = (e, i) => Object.is(e, i), W = (e) => {
11
- const i = se()(re(() => e.initialState, {
12
- name: e.name ?? "workbench.store"
13
- })), t = (o, s, n = {}) => {
14
- const r = n.equalityFn ?? ae;
15
- let a = o(i.getState());
16
- return n.fireImmediately && s(a, a), i.subscribe((c) => {
17
- const d = o(c);
18
- if (r(a, d)) return;
19
- const g = a;
20
- a = d, s(d, g);
21
- });
22
- };
23
- return {
24
- getState: i.getState,
25
- getInitialState: i.getInitialState,
26
- subscribe: i.subscribe,
27
- subscribeSelector: t,
28
- setState: i.setState,
29
- api: i
30
- };
31
- }, de = "workbench.resource.kind", le = "workbench.resource.id", ge = (e) => `workbench.resource.metadata.${e}`, _ = "workbench.selectionResourceUri", ue = (e) => typeof e == "string" || typeof e == "number" || typeof e == "boolean", je = (e) => {
32
- if (!e) return {};
33
- const i = {
34
- [de]: e.kind,
35
- [le]: e.id ?? e.uri
36
- };
37
- for (const [t, o] of Object.entries(e.metadata ?? {}))
38
- ue(o) && (i[ge(t)] = o);
39
- return i;
40
- }, Ke = (e) => ({
41
- [_]: e.uri
42
- }), Ee = (e) => {
43
- if (!e) return [];
44
- const i = e.metadata?.[_];
45
- return typeof i != "string" || i === e.uri ? [e.uri] : [e.uri, i];
46
- }, D = (e) => [...e].sort((i, t) => t.priority - i.priority || i.id.localeCompare(t.id)), fe = (e) => (typeof e == "object" || typeof e == "function") && e !== null && "then" in e && typeof e.then == "function", $e = (e = {}) => {
47
- const i = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set(), o = e.establishLocation;
48
- let s = 0;
49
- const n = W({
50
- name: "workbench.resources",
51
- initialState: {
52
- kinds: {},
53
- presenters: {},
54
- providers: {},
55
- hierarchyProviders: {}
56
- }
57
- });
58
- return {
59
- store: n,
60
- registerKind(r, a) {
61
- const c = n.getState();
62
- if (c.kinds[r.kind]) throw new Error(`Resource kind already registered: ${r.kind}`);
63
- const d = {
64
- ...V(a),
65
- ...r
66
- };
67
- return n.setState({
68
- ...c,
69
- kinds: {
70
- ...c.kinds,
71
- [r.kind]: d
72
- }
73
- }, !1, "registerKind"), m(() => {
74
- const g = n.getState();
75
- if (g.kinds[r.kind] !== d) return;
76
- const {
77
- [r.kind]: u,
78
- ...b
79
- } = g.kinds;
80
- n.setState({
81
- ...g,
82
- kinds: b
83
- }, !1, "unregisterKind");
84
- });
85
- },
86
- getKind(r) {
87
- return n.getState().kinds[r];
88
- },
89
- getSurface(r) {
90
- return n.getState().kinds[r.kind]?.surface;
91
- },
92
- listKinds() {
93
- return Object.values(n.getState().kinds).sort(x);
94
- },
95
- registerPresenter(r) {
96
- const a = n.getState();
97
- if (a.presenters[r.id]) throw new Error(`Resource presenter already registered: ${r.id}`);
98
- const c = {
99
- ...r,
100
- priority: r.priority ?? 0
101
- };
102
- return n.setState({
103
- ...a,
104
- presenters: {
105
- ...a.presenters,
106
- [r.id]: c
107
- }
108
- }, !1, "registerPresenter"), m(() => {
109
- const d = n.getState();
110
- if (d.presenters[r.id] !== c) return;
111
- const {
112
- [r.id]: g,
113
- ...u
114
- } = d.presenters;
115
- n.setState({
116
- ...d,
117
- presenters: u
118
- }, !1, "unregisterPresenter");
119
- });
120
- },
121
- listPresenters() {
122
- return D(Object.values(n.getState().presenters));
123
- },
124
- registerProvider(r) {
125
- const a = n.getState();
126
- if (a.providers[r.id]) throw new Error(`Resource provider already registered: ${r.id}`);
127
- return n.setState({
128
- ...a,
129
- providers: {
130
- ...a.providers,
131
- [r.id]: r
132
- }
133
- }, !1, "registerProvider"), m(() => {
134
- const c = n.getState();
135
- if (c.providers[r.id] !== r) return;
136
- const {
137
- [r.id]: d,
138
- ...g
139
- } = c.providers;
140
- n.setState({
141
- ...c,
142
- providers: g
143
- }, !1, "unregisterProvider");
144
- });
145
- },
146
- listProviders() {
147
- return Object.values(n.getState().providers);
148
- },
149
- listResources(r) {
150
- const a = {
151
- primary: e.getPrimary?.()
152
- }, c = [];
153
- for (const d of Object.values(n.getState().providers))
154
- c.push(...d.list(r, a));
155
- return c;
156
- },
157
- registerHierarchyProvider(r) {
158
- const a = n.getState();
159
- if (a.hierarchyProviders[r.id])
160
- throw new Error(`Resource hierarchy provider already registered: ${r.id}`);
161
- const c = {
162
- ...r,
163
- priority: r.priority ?? 0
164
- };
165
- return n.setState({
166
- ...a,
167
- hierarchyProviders: {
168
- ...a.hierarchyProviders,
169
- [r.id]: c
170
- }
171
- }, !1, "registerHierarchyProvider"), m(() => {
172
- const d = n.getState();
173
- if (d.hierarchyProviders[r.id] !== c) return;
174
- const {
175
- [r.id]: g,
176
- ...u
177
- } = d.hierarchyProviders;
178
- n.setState({
179
- ...d,
180
- hierarchyProviders: u
181
- }, !1, "unregisterHierarchyProvider");
182
- });
183
- },
184
- listHierarchyProviders() {
185
- return ee(Object.values(n.getState().hierarchyProviders));
186
- },
187
- walkHierarchy(r) {
188
- return r ? X(Object.values(n.getState().hierarchyProviders), r, (c) => {
189
- for (const d of t) d(c);
190
- }).map((c) => {
191
- if (!Y(c)) return c;
192
- const d = e.resolveView?.(c.viewId);
193
- return d ? {
194
- ...c,
195
- label: d.label,
196
- icon: d.icon
197
- } : c;
198
- }) : [];
199
- },
200
- onDidDetectHierarchyCycle(r) {
201
- return t.add(r), m(() => {
202
- t.delete(r);
203
- });
204
- },
205
- isOpeningResource() {
206
- return s > 0;
207
- },
208
- async openResource(r, a = {}) {
209
- const c = n.getState();
210
- if (!c.kinds[r.kind]) throw new Error(`Unknown resource kind: ${r.kind}`);
211
- const d = D(Object.values(c.presenters)).find((u) => u.canOpen(r));
212
- if (!d) throw new Error(`No presenter registered for resource kind: ${r.kind}`);
213
- s += 1;
214
- let g;
215
- try {
216
- const u = d.open(r, a);
217
- g = fe(u) ? await u : u, g = o?.(g) ?? g, d.afterOpen?.(r, g, a);
218
- } finally {
219
- s -= 1;
220
- }
221
- for (const u of i) u(r);
222
- return g;
223
- },
224
- onDidOpenResource(r) {
225
- return i.add(r), m(() => {
226
- i.delete(r);
227
- });
228
- }
229
- };
230
- }, De = (e, i) => {
231
- for (const t of Object.values(e.regions)) {
232
- const o = t.widgets.findIndex((s) => s.contributionId === i);
233
- if (o >= 0) return {
234
- regionId: t.id,
235
- index: o,
236
- placement: t.widgets[o]
237
- };
238
- }
239
- }, He = (e, i, t) => {
240
- for (const o of Object.values(e.regions)) {
241
- const s = o.widgets.findIndex((n) => n.contributionId === i && n.resourceUri === t);
242
- if (s >= 0) return {
243
- regionId: o.id,
244
- index: s,
245
- placement: o.widgets[s]
246
- };
247
- }
248
- }, ve = (e, i) => {
249
- for (const t of Object.values(e.regions)) {
250
- const o = t.widgets.findIndex((s) => s.widgetId === i);
251
- if (o >= 0) return {
252
- regionId: t.id,
253
- index: o,
254
- placement: t.widgets[o]
255
- };
256
- }
257
- }, Be = (e, i) => {
258
- const t = new Set(Object.values(e.regions).flatMap((o) => o.widgets.map((s) => s.widgetId)));
259
- return te(t, i);
260
- }, K = (e) => e.widgets.find((i) => i.widgetId === e.activeWidgetId) ?? e.widgets[0], P = (e) => e.role === "location", F = (e) => e.resourceUri ?? `${e.contributionId}:${e.widgetId}`, E = (e, i, t, o) => {
261
- if (!i) return e;
262
- const s = F(i), r = {
263
- ...e.locationSubPanelSelections?.[s] ?? {}
264
- };
265
- return o ? r[t] = o : delete r[t], {
266
- ...e,
267
- locationSubPanelSelections: {
268
- ...e.locationSubPanelSelections,
269
- [s]: r
270
- }
271
- };
272
- }, N = (e, i) => {
273
- if (!e.locationSubPanelSelections) return e;
274
- const t = Object.fromEntries(Object.entries(e.locationSubPanelSelections).map(([o, s]) => [o, Object.fromEntries(Object.entries(s).filter(([, n]) => n !== i))]));
275
- return {
276
- ...e,
277
- locationSubPanelSelections: t
278
- };
279
- }, k = (e) => {
280
- const i = e.regions.main.widgets.filter(P);
281
- return i.find((t) => t.widgetId === e.activeLocationWidgetId) ?? i.at(-1);
282
- }, Te = (e, i, t) => {
283
- const o = {
284
- ...e
285
- };
286
- return t.viewId !== void 0 && (o.viewId = t.viewId ?? void 0), t.resource === null ? (o.resource = void 0, o.resourceUri = void 0, o.title = t.title ?? i.title) : t.resource ? (o.resource = t.resource, o.resourceUri = t.resource.uri, o.title = t.title ?? t.resource.label ?? i.title) : t.title !== void 0 && (o.title = t.title), t.pinned !== void 0 && (o.pinned = t.pinned), t.closable !== void 0 && (o.closable = t.closable), t.mountStrategy !== void 0 && (o.mountStrategy = t.mountStrategy), t.hiddenByDefault !== void 0 && (o.hiddenByDefault = t.hiddenByDefault), t.tabRetention !== void 0 && (o.tabRetention = t.tabRetention), t.tab !== void 0 && (o.tab = t.tab), t.ownerId !== void 0 && (o.ownerId = t.ownerId), t.source !== void 0 && (o.source = t.source), t.role !== void 0 && (o.role = t.role), o;
287
- }, Ve = (e, i, t) => ({
288
- widgetId: e,
289
- contributionId: i.id,
290
- viewId: t.viewId ?? void 0,
291
- ownerId: t.ownerId ?? i.ownerId,
292
- source: t.source ?? i.source,
293
- resource: t.resource ?? void 0,
294
- resourceUri: t.resource?.uri,
295
- title: t.title ?? t.resource?.label ?? i.title,
296
- pinned: t.pinned,
297
- // Tabbed (non-singleton) widgets are closable unless they opt out; singleton
298
- // panels stay non-closable by default.
299
- closable: t.closable ?? i.closable ?? !i.singleton,
300
- mountStrategy: t.mountStrategy ?? i.mountStrategy,
301
- hiddenByDefault: t.hiddenByDefault ?? i.hiddenByDefault,
302
- tabRetention: t.tabRetention,
303
- tab: t.tab ?? i.tab,
304
- role: t.role ?? "content"
305
- }), _e = (e, i, t, o = {}) => {
306
- const s = e.regions[i], n = t(s.widgets), r = o.activeWidgetId !== void 0 ? o.activeWidgetId : o.clearActiveWidget ? void 0 : s.activeWidgetId;
307
- return {
308
- ...e,
309
- activeLocationWidgetId: i === "main" && !n.some((a) => a.widgetId === e.activeLocationWidgetId) ? n.filter(P).at(-1)?.widgetId : e.activeLocationWidgetId,
310
- regions: {
311
- ...e.regions,
312
- [i]: {
313
- ...s,
314
- widgets: n,
315
- activeWidgetId: r
316
- }
317
- }
318
- };
319
- }, Fe = (e, i) => {
320
- let t = e;
321
- for (const s of Object.values(e.regions)) {
322
- const n = s.widgets.filter((c) => c.contributionId === i), r = s.widgets.filter((c) => c.contributionId !== i);
323
- if (r.length === s.widgets.length) continue;
324
- const a = s.activeWidgetId && !r.some((c) => c.widgetId === s.activeWidgetId) ? void 0 : s.activeWidgetId;
325
- t = {
326
- ...t,
327
- regions: {
328
- ...t.regions,
329
- [s.id]: {
330
- ...s,
331
- widgets: r,
332
- activeWidgetId: a
333
- }
334
- }
335
- };
336
- for (const c of n)
337
- t = N(t, c.widgetId);
338
- }
339
- const o = Object.values(t.regions).some((s) => s.widgets.some((n) => n.widgetId === t.activeWidgetId));
340
- return t.activeWidgetId && (!o || t.activeWidgetId.startsWith(`${i}:`) || t.activeWidgetId === i) && (t = {
341
- ...t,
342
- activeWidgetId: void 0,
343
- activeResourceUri: void 0
344
- }), t.activeLocationWidgetId && !t.regions.main.widgets.some((s) => s.widgetId === t.activeLocationWidgetId) && (t = {
345
- ...t,
346
- activeLocationWidgetId: t.regions.main.widgets.filter(P).at(-1)?.widgetId
347
- }), t;
348
- }, Ne = (e, i) => {
349
- const t = ve(e, i);
350
- if (!t) return;
351
- const o = e.regions[t.regionId], s = o.widgets.filter((u) => u.widgetId !== i), n = o.activeWidgetId === i || !o.activeWidgetId && t.index === 0, a = (t.placement.role === "sub-panel" ? s.find((u) => u.role === "sub-panel" && u.ownerResourceUri === t.placement.ownerResourceUri) : void 0) ?? (t.placement.role === "sub-panel" && t.regionId === "main" ? k(e) : s[t.index] ?? s[t.index - 1]), c = n ? a?.widgetId : o.activeWidgetId, d = {
352
- ...o,
353
- widgets: s,
354
- activeWidgetId: c
355
- };
356
- let g = N({
357
- ...e,
358
- activeLocationWidgetId: e.activeLocationWidgetId === i ? e.regions.main.widgets.filter((u) => u.widgetId !== i && P(u)).at(-1)?.widgetId : e.activeLocationWidgetId,
359
- regions: {
360
- ...e.regions,
361
- [o.id]: d
362
- }
363
- }, i);
364
- return n && t.regionId !== "side" && p.includes(t.regionId) && (g = E(g, k(g), t.regionId, a?.role === "sub-panel" ? a.widgetId : void 0)), e.activeWidgetId === i && (g = {
365
- ...g,
366
- activeWidgetId: a?.widgetId,
367
- activeResourceUri: a?.resourceUri
368
- }), {
369
- regionId: t.regionId,
370
- closedPlacement: t.placement,
371
- activePlacement: K(d),
372
- layout: g
373
- };
374
- }, qe = (e, i, t) => {
375
- const o = e.regions[i];
376
- if (i === "main" && P(t)) {
377
- const n = e.locationSubPanelSelections?.[F(t)] ?? {}, r = Object.fromEntries(Object.entries(e.regions).map(([a, c]) => [a, {
378
- ...c,
379
- widgets: c.widgets.map((d) => !t.resource || d.widgetId === t.widgetId || d.ownerResourceUri !== t.resourceUri || d.resourceUri !== t.resourceUri ? d : {
380
- ...d,
381
- resource: t.resource
382
- })
383
- }]));
384
- for (const a of p) {
385
- const c = r[a], d = n[a], g = c.widgets.find((u) => u.widgetId === d && u.role === "sub-panel" && (!u.ownerResourceUri || u.ownerResourceUri === t.resourceUri));
386
- r[a] = {
387
- ...c,
388
- activeWidgetId: a === "side" ? c.activeWidgetId : g?.widgetId ?? (a === "main" ? t.widgetId : void 0)
389
- };
390
- }
391
- return {
392
- ...e,
393
- activeWidgetId: t.widgetId,
394
- activeLocationWidgetId: t.widgetId,
395
- activeResourceUri: t.resourceUri,
396
- regions: r
397
- };
398
- }
399
- const s = t.role === "sub-panel" && i !== "side" && p.includes(i) ? E(e, k(e), i, t.widgetId) : e;
400
- return {
401
- ...s,
402
- activeWidgetId: t.widgetId,
403
- activeLocationWidgetId: e.activeLocationWidgetId,
404
- activeResourceUri: t.resourceUri,
405
- regions: {
406
- ...s.regions,
407
- [i]: {
408
- ...o,
409
- activeWidgetId: t.widgetId
410
- }
411
- }
412
- };
413
- }, ze = (e, i, t) => {
414
- const o = e.regions[i], s = t ? o.widgets.find((a) => a.widgetId === t) : void 0;
415
- if (t && !s) throw new Error(`Widget placement not found in ${i}: ${t}`);
416
- if (o.activeWidgetId === t) return;
417
- const n = e.activeWidgetId === o.activeWidgetId, r = {
418
- ...e,
419
- activeWidgetId: n ? s?.widgetId : e.activeWidgetId,
420
- activeResourceUri: n ? s?.resourceUri : e.activeResourceUri,
421
- activeLocationWidgetId: i === "main" && s?.role === "location" ? s.widgetId : e.activeLocationWidgetId,
422
- regions: {
423
- ...e.regions,
424
- [i]: {
425
- ...o,
426
- activeWidgetId: s?.widgetId
427
- }
428
- }
429
- };
430
- return i === "side" || !p.includes(i) ? r : E(r, k(r), i, s?.role === "sub-panel" ? s.widgetId : void 0);
431
- }, be = (e, i) => !(e.resourceKinds?.length && (!i || !e.resourceKinds.includes(i.kind)) || e.canOpen && (!i || !e.canOpen(i))), Qe = (e, i, t, o = {}) => {
432
- const s = e.regions[i];
433
- return s.widgets.find((n) => n.widgetId === s.activeWidgetId && n.role === "sub-panel" && (o.ignoreOwnerResourceUri || !n.ownerResourceUri || n.ownerResourceUri === t?.uri));
434
- }, Ge = (e) => k(e), he = (e, i, t, o, s) => {
435
- const n = e.eligibleLocations;
436
- return !(!q(e, t) || n?.resourceKinds?.length && (!i || !n.resourceKinds.includes(i.kind)) || n?.resourceIds?.length && (!i?.id || !n.resourceIds.includes(i.id)) || n?.canOpen && (!i || !n.canOpen(i)) || n?.canOpenLocation && !n.canOpenLocation({
437
- resource: i,
438
- viewId: s?.viewId
439
- }) || o?.ownerResourceUri && o.ownerResourceUri !== i?.uri);
440
- }, q = (e, i) => {
441
- const t = e.eligibleLocations?.modeIds;
442
- return !t?.length || i !== void 0 && t.includes(i);
443
- }, Je = (e, i, t, o, s = {}) => be(e, o?.resource ?? i) ? s.ignoreResourceLocation ? q(e, t) : he(e, i, t, o, s.location) : !1, Ze = (e, i) => {
444
- const t = e.regions.main.widgets.find((o) => o.widgetId === e.regions.main.activeWidgetId) ?? k(e);
445
- return t ? i.find((o) => o.id === t.contributionId)?.floatingPanels !== "hidden" : !0;
446
- }, Xe = (e, i) => {
447
- const t = e.panelMenuOwner ?? {
448
- level: "panel"
449
- };
450
- return t.contributionId ? (i.subPanel ?? i.locationPanel)?.contributionId === t.contributionId : i.subPanel ? t.level === "sub-panel" : t.level === "panel";
451
- }, Ye = (e = {}, i) => {
452
- const {
453
- strategy: t,
454
- ...o
455
- } = e, s = o.resource && o.viewId === void 0 ? {
456
- ...o,
457
- viewId: null
458
- } : o;
459
- return t ? t.kind === "persistent" ? {
460
- ...s,
461
- tabPosition: t.position,
462
- tabRetention: "persistent"
463
- } : t.kind === "replace-active" ? {
464
- ...s,
465
- replaceActive: !0
466
- } : t.kind === "replace-panel" ? {
467
- ...s,
468
- replaceWidgetId: t.instanceId,
469
- tabRetention: t.retention
470
- } : {
471
- ...s,
472
- tabRetention: "preview",
473
- tabPosition: t.position
474
- } : {
475
- ...s,
476
- tabRetention: i
477
- };
478
- }, et = (e) => ({
479
- instanceId: e.widgetId,
480
- panelId: e.contributionId,
481
- viewId: e.viewId,
482
- ownerId: e.ownerId,
483
- source: e.source,
484
- resource: e.resource,
485
- resourceUri: e.resourceUri,
486
- ownerResourceUri: e.ownerResourceUri,
487
- title: e.title,
488
- pinned: e.pinned,
489
- closable: e.closable === !0,
490
- mountStrategy: e.mountStrategy,
491
- hiddenByDefault: e.hiddenByDefault,
492
- tabRetention: e.tabRetention,
493
- tab: e.tab
494
- }), tt = (e) => {
495
- const {
496
- closable: i,
497
- ownedPanelMenuIds: t,
498
- ...o
499
- } = e;
500
- return o;
501
- }, H = (e) => e ? Array.isArray(e) ? [...e] : [e] : [], y = {
502
- main: ["main-header", "main-left-menu", "main", "main-right-menu"],
503
- secondary: ["secondary-header", "secondary-left-menu", "secondary", "secondary-right-menu"],
504
- side: ["side-header", "side-left-menu", "side", "side-right-menu"]
505
- }, B = Object.values(y).flat(), C = (e) => e.panels ?? p, it = (e) => Object.keys(y).find((i) => y[i].some((t) => t === e)), nt = (e, i) => !e || C(e).includes(i), I = (e, i) => {
506
- if (i)
507
- return Object.values(e.regions).flatMap((t) => t.widgets).find((t) => t.widgetId === i);
508
- }, A = (e, i) => {
509
- const t = i.find((o) => o && I(e, o.widgetId));
510
- return {
511
- ...e,
512
- activeWidgetId: t?.widgetId,
513
- activeResourceUri: t?.resourceUri
514
- };
515
- }, me = (e, i) => {
516
- if (i.length === 0) return e;
517
- const t = new Set(Object.keys(y).filter((c) => y[c].some((d) => i.includes(d)))), o = i.some((c) => {
518
- const d = e.regions[c];
519
- return d.widgets.length > 0 || d.activeWidgetId !== void 0 || d.visible;
520
- }), s = Object.values(e.locationSubPanelSelections ?? {}).some((c) => Object.keys(c).some((d) => t.has(d)));
521
- if (!o && !s) return e;
522
- const n = {
523
- ...e.regions
524
- };
525
- for (const c of i)
526
- n[c] = {
527
- ...n[c],
528
- widgets: [],
529
- activeWidgetId: void 0,
530
- visible: !1
531
- };
532
- const r = Object.fromEntries(Object.entries(e.locationSubPanelSelections ?? {}).map(([c, d]) => [c, Object.fromEntries(Object.entries(d).filter(([g]) => !t.has(g)))])), a = {
533
- ...e,
534
- regions: n
535
- };
536
- return {
537
- ...A(a, [I(a, e.activeWidgetId)]),
538
- activeLocationWidgetId: I(a, e.activeLocationWidgetId)?.widgetId,
539
- locationSubPanelSelections: r
540
- };
541
- }, U = (e, i) => {
542
- const t = new Set(i), o = Object.keys(y).filter((s) => !t.has(s)).flatMap((s) => y[s]);
543
- return me(e, o);
544
- }, we = (e, i, t) => {
545
- if (!i) {
546
- const a = {
547
- ...e.regions
548
- };
549
- for (const d of B) {
550
- const g = a[d], u = g.widgets.filter((b) => b.role !== "content");
551
- a[d] = {
552
- ...g,
553
- widgets: u,
554
- activeWidgetId: u.some((b) => b.widgetId === g.activeWidgetId) ? g.activeWidgetId : void 0
555
- };
556
- }
557
- const c = {
558
- ...e,
559
- regions: a
560
- };
561
- return U({
562
- ...A(c, [I(c, e.activeWidgetId)]),
563
- activeLocationWidgetId: I(c, e.activeLocationWidgetId)?.widgetId
564
- }, t);
565
- }
566
- const o = {
567
- ...e.regions
568
- };
569
- for (const a of B) o[a] = i.regions[a];
570
- const s = U({
571
- ...e,
572
- regions: o
573
- }, t), n = I(s, i.activeWidgetId), r = I(s, e.activeWidgetId);
574
- return {
575
- ...A(s, [n, r]),
576
- activeLocationWidgetId: I(s, i.activeLocationWidgetId)?.widgetId ?? I(s, e.activeLocationWidgetId)?.widgetId,
577
- locationSubPanelSelections: i.locationSubPanelSelections
578
- };
579
- }, O = (e) => {
580
- for (let i = e.length - 1; i >= 0; i -= 1)
581
- e[i]?.dispose();
582
- }, T = (e, i) => {
583
- i !== e.layout.getLayout() && e.layout.restoreLayout(i);
584
- for (const t of p) e.panels.setOpen(t, i.regions[t].visible);
585
- }, ot = (e) => {
586
- const i = W({
587
- name: "workbench.modes",
588
- initialState: {
589
- modes: {},
590
- activeModeId: void 0
591
- }
592
- }), t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map();
593
- let n = [], r, a, c = !1;
594
- const d = (l) => {
595
- if (t.has(l.id)) return;
596
- const f = H(l.activate(e.resolveContext()));
597
- t.set(l.id, f);
598
- }, g = (l, f) => {
599
- let v = !1, h = () => {
600
- };
601
- const w = () => {
602
- if (v) return;
603
- const S = f.layout.getActivePanel("main");
604
- if (!S) return;
605
- const L = f.layout.getLayout().regions.main.widgets.find((Z) => Z.widgetId === S.instanceId);
606
- L && (L.role === "sub-panel" || L.role === "panel-menu") || (v = !0, h(), e.establishLocation?.(S.instanceId));
607
- };
608
- h = f.layout.store.subscribeSelector((S) => S.layout.regions.main, w);
609
- try {
610
- l.seed?.(f), w();
611
- } finally {
612
- h();
613
- }
614
- }, u = (l) => {
615
- const f = e.resolveContext(), v = `${l.id}\0${f.layout.getPersistenceScope() ?? "unscoped"}`, h = U(f.layout.getLayout(), C(l));
616
- T(f, h), f.layout.reconcilePanelMenus(), !o.has(v) && !f.layout.enteredWithPersistedLayout() && g(l, f), o.add(v);
617
- }, b = (l) => {
618
- u(l), l.reconcile?.(e.resolveContext());
619
- }, z = (l) => {
620
- const f = e.resolveContext(), v = i.getState().activeModeId, h = f.layout.getPersistenceScope() === void 0;
621
- if (v && h && s.set(v, f.layout.getLayout()), R(), l === void 0) {
622
- i.setState({
623
- ...i.getState(),
624
- activeModeId: void 0
625
- }, !1, "deactivateMode");
626
- return;
627
- }
628
- const w = i.getState().modes[l];
629
- if (!w) throw new Error(`Workbench mode not registered: ${l}`);
630
- h && T(f, we(f.layout.getLayout(), s.get(l), C(w))), Q(l, {
631
- seed: a !== l
632
- });
633
- }, R = () => {
634
- O(n), n = [], r?.dispose(), r = void 0;
635
- }, Q = (l, f) => {
636
- const v = e.resolveContext(), h = i.getState().modes[l];
637
- if (!h) throw new Error(`Workbench mode not registered: ${l}`);
638
- const w = v.context.createScope("workbench.mode");
639
- w.set("activeWorkbenchMode", l), w.set(`workbenchMode.${l}`, !0), r = w;
640
- try {
641
- d(h), i.setState({
642
- ...i.getState(),
643
- activeModeId: l
644
- }, !1, "activateMode"), f.seed && u(h), n = H(h.enter?.(v)), f.seed && h.reconcile?.(e.resolveContext());
645
- } catch (S) {
646
- throw R(), i.setState({
647
- ...i.getState(),
648
- activeModeId: void 0
649
- }, !1, "deactivateMode"), S;
650
- }
651
- }, G = e.resolveContext().layout.onDidChangePersistenceScope(() => {
652
- const l = i.getState().activeModeId;
653
- if (l === a) return;
654
- const f = l ? i.getState().modes[l] : void 0;
655
- f && b(f);
656
- }), J = m(() => {
657
- G.dispose(), R();
658
- for (const l of t.values()) O(l);
659
- t.clear(), o.clear(), s.clear(), i.setState({
660
- modes: {},
661
- activeModeId: void 0
662
- }, !1, "disposeModes");
663
- });
664
- return {
665
- store: i,
666
- dispose() {
667
- J.dispose();
668
- },
669
- registerMode(l) {
670
- const f = i.getState();
671
- if (f.modes[l.id]) throw new Error(`Workbench mode already registered: ${l.id}`);
672
- return i.setState({
673
- ...f,
674
- modes: {
675
- ...f.modes,
676
- [l.id]: l
677
- }
678
- }, !1, "registerMode"), m(() => {
679
- const v = i.getState();
680
- if (v.modes[l.id] !== l) return;
681
- v.activeModeId === l.id && (R(), i.setState({
682
- ...i.getState(),
683
- activeModeId: void 0
684
- }, !1, "deactivateMode")), O(t.get(l.id) ?? []), t.delete(l.id), s.delete(l.id);
685
- for (const S of o)
686
- S.startsWith(`${l.id}\0`) && o.delete(S);
687
- const {
688
- [l.id]: h,
689
- ...w
690
- } = v.modes;
691
- i.setState({
692
- ...i.getState(),
693
- modes: w
694
- }, !1, "unregisterMode");
695
- });
696
- },
697
- getMode(l) {
698
- return i.getState().modes[l];
699
- },
700
- listModes() {
701
- return Object.values(i.getState().modes);
702
- },
703
- getActiveModeId() {
704
- return i.getState().activeModeId;
705
- },
706
- // A deferred seed is the second half of one transition: the caller rotates the
707
- // layout persistence scope between the two halves. Observers must not treat the
708
- // gap as a settled context, so the transition is not over until the seed runs.
709
- isTransitioning() {
710
- return c || a !== void 0;
711
- },
712
- setActiveMode(l, f = {}) {
713
- if (l === i.getState().activeModeId) {
714
- const v = l ? i.getState().modes[l] : void 0;
715
- v && l !== a && b(v);
716
- return;
717
- }
718
- c = !0, a = f.deferSeed ? l : void 0;
719
- try {
720
- z(l);
721
- } finally {
722
- c = !1;
723
- }
724
- },
725
- seedActiveMode() {
726
- const l = i.getState().activeModeId, f = l ? i.getState().modes[l] : void 0;
727
- c = !0;
728
- try {
729
- f && b(f);
730
- } finally {
731
- a = void 0, c = !1;
732
- }
733
- },
734
- onDidChangeActive(l) {
735
- const f = i.subscribeSelector((v) => v.activeModeId, () => l());
736
- return m(f);
737
- }
738
- };
739
- }, Se = (e) => Array.isArray(e) ? e : e.trim().split(/\s+/).filter(Boolean), Ie = (e) => {
740
- const i = Se(e);
741
- return i.length === 1 ? i[0] ?? "" : i;
742
- }, rt = (e) => {
743
- const i = W({
744
- name: "workbench.keybindings",
745
- initialState: {
746
- keybindings: []
747
- }
748
- });
749
- return {
750
- store: i,
751
- registerKeybinding(t, o) {
752
- if (!e.commands.getCommand(t.commandId)) throw new Error(`Keybinding command not registered: ${t.commandId}`);
753
- const s = {
754
- ...V(o),
755
- ...t,
756
- keybinding: Ie(t.keybinding)
757
- }, n = i.getState();
758
- return i.setState({
759
- keybindings: [...n.keybindings, s]
760
- }, !1, "registerKeybinding"), m(() => {
761
- const r = i.getState(), a = r.keybindings.filter((c) => c !== s);
762
- a.length !== r.keybindings.length && i.setState({
763
- keybindings: a
764
- }, !1, "unregisterKeybinding");
765
- });
766
- },
767
- listKeybindings() {
768
- return [...i.getState().keybindings].sort(x);
769
- },
770
- listActiveKeybindings() {
771
- return i.getState().keybindings.filter((t) => e.context.matches(t.when)).sort(x);
772
- }
773
- };
774
- }, st = (e, i) => K(e.regions[ie(i)])?.resource, ct = ({
775
- layout: e,
776
- primary: i,
777
- isInScope: t
778
- }) => {
779
- const o = [];
780
- for (const s of ne()) {
781
- const n = oe(s);
782
- if (n.role !== "anchor" || n.persistence === "primary") continue;
783
- const r = K(e.regions[s]);
784
- if (r?.resource) {
785
- if (r.role === "sub-panel" && r.ownerResourceUri) {
786
- o.push({
787
- region: s,
788
- action: "keep"
789
- });
790
- continue;
791
- }
792
- if (n.persistence === "derived") {
793
- o.push({
794
- region: s,
795
- action: "clear"
796
- });
797
- continue;
798
- }
799
- o.push({
800
- region: s,
801
- action: t(r.resource, i) ? "keep" : "clear"
802
- });
803
- }
804
- }
805
- return o;
806
- }, M = (e, i) => {
807
- const {
808
- [i]: t,
809
- ...o
810
- } = e;
811
- return o;
812
- }, ye = () => {
813
- if (typeof document > "u")
814
- throw new Error("workbench.renderers.registerRenderer({ keepAlive: true }): no DOM available. The default host factory uses document.createElement. In a non-browser environment (Bun tests, SSR), pass a custom factory via createWorkbenchCore({ renderers: { createHost: () => myHost } }).");
815
- const e = document.createElement("div");
816
- return e.style.display = "contents", e.dataset.workbenchKeepAliveHost = "", e;
817
- }, at = (e = {}) => {
818
- const i = e.createHost ?? ye, t = W({
819
- name: "workbench.renderers",
820
- initialState: {
821
- renderers: {},
822
- hosts: {},
823
- claims: {}
824
- }
825
- }), o = (n) => {
826
- const r = t.getState(), a = r.hosts[n], c = a?.attachedTo;
827
- !a || !c || (c.contains(a.host) && c.removeChild(a.host), t.setState({
828
- ...r,
829
- hosts: {
830
- ...r.hosts,
831
- [n]: {
832
- ...a,
833
- attachedTo: void 0
834
- }
835
- },
836
- claims: M(r.claims, n)
837
- }, !1, "renderers.detach"));
838
- }, s = {
839
- store: t,
840
- registerRenderer(n) {
841
- const r = t.getState();
842
- if (r.renderers[n.id]) throw new Error(`Renderer already registered: ${n.id}`);
843
- const a = n.keepAlive ? i() : void 0, c = a ? {
844
- ...r.hosts,
845
- [n.id]: {
846
- rendererId: n.id,
847
- host: a
848
- }
849
- } : r.hosts;
850
- return t.setState({
851
- ...r,
852
- renderers: {
853
- ...r.renderers,
854
- [n.id]: n
855
- },
856
- hosts: c
857
- }, !1, "registerRenderer"), m(() => {
858
- if (t.getState().renderers[n.id] !== n) return;
859
- n.keepAlive && o(n.id);
860
- const g = t.getState();
861
- t.setState({
862
- ...g,
863
- renderers: M(g.renderers, n.id),
864
- hosts: M(g.hosts, n.id),
865
- claims: M(g.claims, n.id)
866
- }, !1, "unregisterRenderer");
867
- });
868
- },
869
- getRenderer(n) {
870
- return t.getState().renderers[n];
871
- },
872
- listRenderers() {
873
- return Object.values(t.getState().renderers);
874
- },
875
- onDidChange(n) {
876
- const r = t.subscribeSelector((a) => a.renderers, () => n());
877
- return m(r);
878
- },
879
- claim(n, r, a) {
880
- const c = t.getState(), d = c.renderers[n];
881
- if (!d) throw new Error(`Renderer is not registered: ${n}`);
882
- if (!d.keepAlive) throw new Error(`Renderer ${n} is not keep-alive; cannot claim`);
883
- const g = c.hosts[n];
884
- if (!g) throw new Error(`Renderer ${n} has no host`);
885
- if (g.attachedTo === r)
886
- t.setState({
887
- ...c,
888
- claims: {
889
- ...c.claims,
890
- [n]: a
891
- }
892
- }, !1, "renderers.updateClaim");
893
- else {
894
- o(n);
895
- const u = t.getState(), b = u.hosts[n];
896
- r.appendChild(b.host), t.setState({
897
- ...u,
898
- hosts: {
899
- ...u.hosts,
900
- [n]: {
901
- ...b,
902
- attachedTo: r
903
- }
904
- },
905
- claims: {
906
- ...u.claims,
907
- [n]: a
908
- }
909
- }, !1, "renderers.attach");
910
- }
911
- return m(() => {
912
- const b = t.getState().hosts[n];
913
- !b || b.attachedTo !== r || o(n);
914
- });
915
- },
916
- getHost(n) {
917
- return t.getState().hosts[n]?.host;
918
- },
919
- getClaim(n) {
920
- return t.getState().claims[n];
921
- }
922
- };
923
- for (const n of e.initialRenderers ?? []) s.registerRenderer(n);
924
- return s;
925
- }, dt = {
926
- project: "folder-root",
927
- workspace: "computer",
928
- worktree: "git-pull-request-draft",
929
- settings: "settings",
930
- kanbanRenderer: "table-properties"
931
- }, pe = (e) => e.replace(/^['"]|['"]$/g, ""), ke = (e, i) => {
932
- const t = i.trim();
933
- if (t.length === 0) return !0;
934
- const o = t.match(/^([A-Za-z0-9_.-]+)\s*(==|!=)\s*(.+)$/);
935
- if (o) {
936
- const [, s, n, r] = o, a = e[s ?? ""], c = pe(r ?? "");
937
- return n === "==" ? String(a) === c : String(a) !== c;
938
- }
939
- return t.startsWith("!") ? !e[t.slice(1)] : !!e[t];
940
- }, We = (e, i) => i ? i.split("||").some((t) => t.split("&&").every((o) => ke(e, o))) : !0, lt = () => {
941
- const e = W({
942
- name: "workbench.context",
943
- initialState: {
944
- values: {}
945
- }
946
- });
947
- let i = {};
948
- const t = /* @__PURE__ */ new Map(), o = () => {
949
- const n = {
950
- ...i
951
- };
952
- for (const r of t.values()) Object.assign(n, r);
953
- return n;
954
- }, s = (n) => {
955
- e.setState({
956
- values: o()
957
- }, !1, n);
958
- };
959
- return {
960
- store: e,
961
- set(n, r) {
962
- i[n] !== r && (i = {
963
- ...i,
964
- [n]: r
965
- }, s("setContextKey"));
966
- },
967
- get(n) {
968
- return e.getState().values[n];
969
- },
970
- delete(n) {
971
- if (!(n in i)) return;
972
- const {
973
- [n]: r,
974
- ...a
975
- } = i;
976
- i = a, s("deleteContextKey");
977
- },
978
- createScope(n) {
979
- t.set(n, t.get(n) ?? {});
980
- let r = !1;
981
- const a = () => {
982
- if (r) throw new Error(`Context key scope disposed: ${n}`);
983
- };
984
- return {
985
- ownerId: n,
986
- set(c, d) {
987
- a();
988
- const g = t.get(n) ?? {};
989
- g[c] !== d && (t.set(n, {
990
- ...g,
991
- [c]: d
992
- }), s("setScopedContextKey"));
993
- },
994
- get(c) {
995
- return a(), t.get(n)?.[c];
996
- },
997
- delete(c) {
998
- a();
999
- const d = t.get(n);
1000
- if (!d || !(c in d)) return;
1001
- const {
1002
- [c]: g,
1003
- ...u
1004
- } = d;
1005
- t.set(n, u), s("deleteScopedContextKey");
1006
- },
1007
- dispose() {
1008
- r || (r = !0, t.delete(n) && s("disposeContextKeyScope"));
1009
- }
1010
- };
1011
- },
1012
- deleteOwner(n) {
1013
- t.delete(n) && s("deleteContextKeyOwner");
1014
- },
1015
- snapshot() {
1016
- return {
1017
- ...e.getState().values
1018
- };
1019
- },
1020
- matches(n) {
1021
- return We(e.getState().values, n);
1022
- }
1023
- };
1024
- }, Pe = "sidenav", Re = (e, i, t) => {
1025
- e.panels.setOpen(i, t), e.layout.setRegionVisible(i, t);
1026
- }, Me = (e, i) => {
1027
- Re(e, i, !e.panels.isOpen(i));
1028
- }, Le = [{
1029
- id: "workbench.toggleCommandPalette",
1030
- label: "Toggle Command Palette",
1031
- icon: "Command",
1032
- keybinding: "Mod+P",
1033
- execute: (e) => e.commandPalette.toggle()
1034
- }, {
1035
- id: "workbench.action.showCommands",
1036
- label: "Run Command",
1037
- icon: "Terminal",
1038
- keybinding: "Alt+Shift+K",
1039
- execute: (e) => e.commandPalette.open({
1040
- initialQuery: "> "
1041
- })
1042
- }, {
1043
- id: "workbench.action.changeTheme",
1044
- label: "Change Theme",
1045
- icon: "Palette",
1046
- keybinding: "Alt+Shift+T",
1047
- execute: (e) => e.commandPalette.open({
1048
- view: "theme"
1049
- })
1050
- }, {
1051
- id: "workbench.action.navigateBack",
1052
- label: "Navigate Back",
1053
- icon: "ArrowLeft",
1054
- keybinding: "Alt+Shift+ArrowLeft",
1055
- execute: (e) => {
1056
- e.history.goBack();
1057
- }
1058
- }, {
1059
- id: "workbench.action.navigateForward",
1060
- label: "Navigate Forward",
1061
- icon: "ArrowRight",
1062
- keybinding: "Alt+Shift+ArrowRight",
1063
- execute: (e) => {
1064
- e.history.goForward();
1065
- }
1066
- }, {
1067
- id: "workbench.toggleSideBar",
1068
- label: "Toggle Sidenav",
1069
- icon: "PanelLeft",
1070
- keybinding: "Mod+B",
1071
- execute: (e) => Me(e, Pe)
1072
- }], j = "workbench.action.switchMode", gt = (e) => {
1073
- if (e.kind !== "command" || e.commandId !== j || !e.args || typeof e.args != "object") return;
1074
- const i = "modeId" in e.args ? e.args.modeId : void 0;
1075
- return typeof i == "string" && i.trim().length > 0 ? i : void 0;
1076
- }, ut = (e) => {
1077
- for (const i of Le)
1078
- e.commands.registerCommand({
1079
- id: i.id,
1080
- label: i.label,
1081
- category: "Workbench",
1082
- icon: i.icon,
1083
- when: "!inputFocus"
1084
- }, {
1085
- execute: () => i.execute(e)
1086
- }), e.keybindings.registerKeybinding({
1087
- commandId: i.id,
1088
- keybinding: i.keybinding,
1089
- when: "!inputFocus"
1090
- }), e.layout.registerMenuItem($, {
1091
- commandId: i.id,
1092
- group: "Workbench"
1093
- });
1094
- e.commands.registerCommand({
1095
- id: j,
1096
- label: "Switch Mode",
1097
- category: "Workbench",
1098
- icon: "PanelTop",
1099
- when: "!inputFocus"
1100
- }, {
1101
- execute: async (i) => {
1102
- if (!i?.modeId) {
1103
- e.commandPalette.open({
1104
- view: "mode"
1105
- });
1106
- return;
1107
- }
1108
- const t = await e.navigator.open({
1109
- modeId: i.modeId
1110
- });
1111
- !t.ok && t.code === "navigation_mode_missing" && e.notifications.show({
1112
- level: "error",
1113
- title: "Mode unavailable",
1114
- message: t.message
1115
- });
1116
- }
1117
- }), e.layout.registerMenuItem($, {
1118
- commandId: j,
1119
- group: "Workbench"
1120
- });
1121
- };
1122
- export {
1123
- at as A,
1124
- $e as B,
1125
- rt as C,
1126
- ot as D,
1127
- ut as E,
1128
- je as F,
1129
- Ke as G,
1130
- Se as H,
1131
- gt as I,
1132
- it as J,
1133
- Ee as K,
1134
- We as L,
1135
- dt as M,
1136
- le as N,
1137
- de as O,
1138
- ge as P,
1139
- _ as Q,
1140
- j as R,
1141
- Qe as S,
1142
- Ge as T,
1143
- q as U,
1144
- Xe as V,
1145
- Ze as W,
1146
- _e as a,
1147
- x as b,
1148
- W as c,
1149
- N as d,
1150
- Te as e,
1151
- He as f,
1152
- K as g,
1153
- k as h,
1154
- De as i,
1155
- Be as j,
1156
- Ve as k,
1157
- ve as l,
1158
- Ne as m,
1159
- V as n,
1160
- Ye as o,
1161
- tt as p,
1162
- ze as q,
1163
- Fe as r,
1164
- E as s,
1165
- et as t,
1166
- qe as u,
1167
- nt as v,
1168
- Je as w,
1169
- st as x,
1170
- ct as y,
1171
- lt as z
1172
- };
1173
- //# sourceMappingURL=workbench-built-ins-BCJ6-fIM.js.map