@pstdio/workbench 0.2.0 → 0.3.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.
- package/README.md +100 -88
- package/dist/context-key-service-W4QEfVdN.js +1031 -0
- package/dist/context-key-service-W4QEfVdN.js.map +1 -0
- package/dist/extensions.d.ts +737 -255
- package/dist/extensions.js +891 -699
- package/dist/extensions.js.map +1 -1
- package/dist/file-renderer-view-DrrhYnb_.js.map +1 -1
- package/dist/index.d.ts +746 -448
- package/dist/index.js +2974 -60
- package/dist/index.js.map +1 -1
- package/dist/layout-types-DMoZz38-.js +100 -0
- package/dist/layout-types-DMoZz38-.js.map +1 -0
- package/dist/react.d.ts +735 -231
- package/dist/react.js +3562 -2584
- package/dist/react.js.map +1 -1
- package/dist/storage.d.ts +109 -14
- package/dist/storage.js +142 -47
- package/dist/storage.js.map +1 -1
- package/dist/surface-map-C1pOTUmF.js +52 -0
- package/dist/surface-map-C1pOTUmF.js.map +1 -0
- package/dist/testing.d.ts +685 -198
- package/dist/testing.js +46 -34
- package/dist/testing.js.map +1 -1
- package/dist/webview-runtime.js +5 -1
- package/dist/webview-runtime.js.map +1 -1
- package/dist/workbench-menu-paths-B_QJzcNU.js +12 -0
- package/dist/workbench-menu-paths-B_QJzcNU.js.map +1 -0
- package/package.json +6 -7
- package/dist/context-key-service-C--cHa0B.js +0 -447
- package/dist/context-key-service-C--cHa0B.js.map +0 -1
- package/dist/core.d.ts +0 -1885
- package/dist/core.js +0 -64
- package/dist/core.js.map +0 -1
- package/dist/surface-reconcile-DkRf01ro.js +0 -260
- package/dist/surface-reconcile-DkRf01ro.js.map +0 -1
- package/dist/workbench-core-DFpwi8Lo.js +0 -2264
- package/dist/workbench-core-DFpwi8Lo.js.map +0 -1
- package/dist/workbench-menu-paths-CQVH6z4_.js +0 -11
- package/dist/workbench-menu-paths-CQVH6z4_.js.map +0 -1
package/dist/extensions.d.ts
CHANGED
|
@@ -11,7 +11,8 @@ import { ReactNode } from 'react';
|
|
|
11
11
|
import { ThemePreference as ThemePreference_2 } from 'pstdio-extensions/bridge/contract';
|
|
12
12
|
import { WorkbenchExtensionCommandPaletteResourceRecord } from '@pstdio/sdk/api';
|
|
13
13
|
import { WorkbenchExtensionControlsRendererRecord } from '@pstdio/sdk/api';
|
|
14
|
-
import {
|
|
14
|
+
import { WorkbenchExtensionDataTableRendererRecord } from 'pstdio-api-contracts';
|
|
15
|
+
import { WorkbenchExtensionKanbanRendererRecord } from '@pstdio/sdk/api';
|
|
15
16
|
import { WorkbenchExtensionMetadata } from '@pstdio/sdk/api';
|
|
16
17
|
|
|
17
18
|
declare interface AttributeDescriptor {
|
|
@@ -24,7 +25,7 @@ declare interface AttributeDescriptor {
|
|
|
24
25
|
displayable?: boolean;
|
|
25
26
|
editable?: boolean;
|
|
26
27
|
display?: AttributeDisplayDescriptor;
|
|
27
|
-
render?: (value: unknown, row:
|
|
28
|
+
render?: (value: unknown, row: KanbanRendererRow) => ReactNode;
|
|
28
29
|
compare?: (a: unknown, b: unknown) => number;
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -89,7 +90,7 @@ export declare interface BridgeWebviewConfig {
|
|
|
89
90
|
export declare interface BridgeWebviewRenderContext {
|
|
90
91
|
workbench: WorkbenchCore;
|
|
91
92
|
webviewId: string;
|
|
92
|
-
placement:
|
|
93
|
+
placement: WorkbenchPanelInstance;
|
|
93
94
|
/** Channel for pushing host events (e.g. terminal output) into this webview. */
|
|
94
95
|
hostEvents: HostEventPublisher;
|
|
95
96
|
}
|
|
@@ -125,7 +126,7 @@ declare interface CollectionSettingsPanel<TItem = unknown> extends SettingsPanel
|
|
|
125
126
|
itemLabel(item: TItem): string;
|
|
126
127
|
itemIcon?(item: TItem): string | undefined;
|
|
127
128
|
groupBy?: SettingsCollectionGroupBy<TItem>;
|
|
128
|
-
renderItem(item: TItem, input:
|
|
129
|
+
renderItem(item: TItem, input: WorkbenchPanelRenderInput): unknown;
|
|
129
130
|
actions?: SettingsAction[];
|
|
130
131
|
}
|
|
131
132
|
|
|
@@ -268,8 +269,6 @@ declare interface ControlsQueryResult {
|
|
|
268
269
|
readOnly?: boolean;
|
|
269
270
|
}
|
|
270
271
|
|
|
271
|
-
declare type ControlsRendererArea = "main-right" | "secondary" | "overlay";
|
|
272
|
-
|
|
273
272
|
declare interface ControlsRendererContribution {
|
|
274
273
|
id: string;
|
|
275
274
|
title: string;
|
|
@@ -289,12 +288,12 @@ declare interface ControlsRendererContribution {
|
|
|
289
288
|
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
290
289
|
}
|
|
291
290
|
|
|
292
|
-
declare type ControlsRendererImplementation = (input:
|
|
291
|
+
declare type ControlsRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
293
292
|
controlsRendererId: string;
|
|
294
293
|
}) => unknown;
|
|
295
294
|
|
|
296
295
|
declare interface ControlsRendererLayout {
|
|
297
|
-
|
|
296
|
+
region?: ControlsRendererRegion;
|
|
298
297
|
defaultPx?: number;
|
|
299
298
|
minPx?: number;
|
|
300
299
|
maxPx?: number;
|
|
@@ -306,6 +305,8 @@ declare interface ControlsRendererRefreshEvent {
|
|
|
306
305
|
|
|
307
306
|
declare type ControlsRendererRefreshListener = (event: ControlsRendererRefreshEvent) => void;
|
|
308
307
|
|
|
308
|
+
declare type ControlsRendererRegion = "main-right-menu" | "secondary" | "overlay";
|
|
309
|
+
|
|
309
310
|
declare interface ControlsRendererRegistry {
|
|
310
311
|
controlsStore: WorkbenchStore<ControlsRendererStoreState>;
|
|
311
312
|
registerControlsRenderer(contribution: ControlsRendererContribution, metadata?: ContributionMetadata): Disposable_2;
|
|
@@ -332,7 +333,7 @@ declare interface ControlsUpdateValueInput {
|
|
|
332
333
|
resource?: ResourceRef;
|
|
333
334
|
}
|
|
334
335
|
|
|
335
|
-
declare type ControlsViewRecord = WorkbenchExtensionMetadata["
|
|
336
|
+
declare type ControlsViewRecord = WorkbenchExtensionMetadata["panels"][number];
|
|
336
337
|
|
|
337
338
|
export declare type CreateBridgeWebviewHostCapabilities = (context: BridgeWebviewRenderContext) => HostCapabilityRegistry;
|
|
338
339
|
|
|
@@ -340,7 +341,7 @@ export declare type CreateBridgeWebviewProps = (context: BridgeWebviewRenderCont
|
|
|
340
341
|
|
|
341
342
|
export declare const createBridgeWebviewRenderer: (input?: CreateBridgeWebviewRendererInput) => {
|
|
342
343
|
id: string;
|
|
343
|
-
render: (renderInput:
|
|
344
|
+
render: (renderInput: WorkbenchPanelRenderInput) => JSX.Element | null;
|
|
344
345
|
};
|
|
345
346
|
|
|
346
347
|
declare interface CreateBridgeWebviewRendererInput {
|
|
@@ -367,8 +368,8 @@ declare interface CreateTerminalSessionCapabilityInput {
|
|
|
367
368
|
export declare const createWorkbenchWebviewHostCapabilities: (input: CreateWorkbenchWebviewHostCapabilitiesInput) => {
|
|
368
369
|
"terminal.session"?: HostCapability | undefined;
|
|
369
370
|
"commands.execute": (params: unknown) => Promise<unknown>;
|
|
370
|
-
"resource.open": (params: unknown) => Promise<
|
|
371
|
-
"notification.show": (params: unknown) =>
|
|
371
|
+
"resource.open": (params: unknown) => Promise<WorkbenchPanelInstance_2>;
|
|
372
|
+
"notification.show": (params: unknown) => RegisteredWorkbenchNotification;
|
|
372
373
|
"preferences.get": (params: unknown) => PreferenceValue | undefined;
|
|
373
374
|
"preferences.set": (params: unknown) => {
|
|
374
375
|
name: string;
|
|
@@ -390,112 +391,117 @@ declare interface CreateWorkbenchWebviewHostCapabilitiesInput {
|
|
|
390
391
|
*/
|
|
391
392
|
declare interface CustomSettingsPanel extends SettingsPanelBase {
|
|
392
393
|
kind: "custom";
|
|
393
|
-
render(input:
|
|
394
|
+
render(input: WorkbenchPanelRenderInput): unknown;
|
|
394
395
|
}
|
|
395
396
|
|
|
396
|
-
declare interface
|
|
397
|
+
declare interface DataTableRendererColumn {
|
|
398
|
+
id: string;
|
|
399
|
+
label?: string;
|
|
400
|
+
description?: string;
|
|
401
|
+
icon?: unknown;
|
|
402
|
+
hidden?: boolean;
|
|
403
|
+
stat?: DataTableRendererColumnStat;
|
|
404
|
+
renderer?: DataTableRendererColumnRenderer;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
declare type DataTableRendererColumnRenderer = {
|
|
408
|
+
type: "json";
|
|
409
|
+
} | {
|
|
410
|
+
type: "color-scale";
|
|
411
|
+
stops: Array<{
|
|
412
|
+
value: number;
|
|
413
|
+
color: DataTableRendererThemeColor;
|
|
414
|
+
}>;
|
|
415
|
+
} | {
|
|
416
|
+
type: "categorical-color";
|
|
417
|
+
categories: Array<{
|
|
418
|
+
value: string | number | boolean | null;
|
|
419
|
+
color: DataTableRendererThemeColor;
|
|
420
|
+
}>;
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
declare type DataTableRendererColumnStat = {
|
|
424
|
+
type: "unique";
|
|
425
|
+
} | {
|
|
426
|
+
type: "histogram";
|
|
427
|
+
bins?: number;
|
|
428
|
+
} | {
|
|
429
|
+
type: "top-values";
|
|
430
|
+
limit?: number;
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
declare interface DataTableRendererContribution {
|
|
397
434
|
id: string;
|
|
398
435
|
title: string;
|
|
399
436
|
resourceKind?: string;
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
* Pass an `AttributesSource` ({ subscribe, getSnapshot }) instead of a
|
|
405
|
-
* static array to let the contribution mutate its schema at runtime —
|
|
406
|
-
* `WorkbenchDataView` subscribes so additions / removals / kind changes
|
|
407
|
-
* propagate live without re-registering the renderer.
|
|
408
|
-
*/
|
|
409
|
-
attributes: AttributeDescriptor[] | AttributesSource;
|
|
410
|
-
/** Per-board-column overrides (color, drag/create rules, custom actions). */
|
|
411
|
-
getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;
|
|
412
|
-
hideToolbar?: boolean;
|
|
437
|
+
columns?: DataTableRendererColumn[];
|
|
438
|
+
rowActions?: DataTableRendererRowAction[];
|
|
439
|
+
initialPageSize?: number;
|
|
440
|
+
pageSizeOptions?: number[];
|
|
413
441
|
emptyTitle?: string;
|
|
414
442
|
emptyDescription?: string;
|
|
415
|
-
|
|
416
|
-
defaultSettings?: Partial<DataRendererSettings>;
|
|
417
|
-
defaultFilters?: DataRendererFilterState;
|
|
418
|
-
/**
|
|
419
|
-
* Data source. Receives the current display state so backends can paginate
|
|
420
|
-
* / filter / sort. The renderer re-applies filter / sort / group locally,
|
|
421
|
-
* so this can return unfiltered rows in simple cases.
|
|
422
|
-
*/
|
|
423
|
-
executeQuery(state: DataRendererQueryState): Promise<TRow[]> | TRow[];
|
|
443
|
+
executeQuery(context: DataTableRendererQueryContext): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
|
|
424
444
|
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
425
|
-
|
|
426
|
-
onRowClick?: (row: TRow) => void;
|
|
427
|
-
/** Per-row right-click context menu actions (mirrored from <DataRenderer>). */
|
|
428
|
-
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
429
|
-
/**
|
|
430
|
-
* Fires for inline attribute edits AND for cross-column drag-to-reorder on
|
|
431
|
-
* the board (the renderer passes the grouping attribute id + the target
|
|
432
|
-
* column value).
|
|
433
|
-
*/
|
|
434
|
-
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
435
|
-
/** Manual within-column reorder (only fires when ordering is manual). */
|
|
436
|
-
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
437
|
-
onCreateRow?: (columnId: string) => void;
|
|
438
|
-
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
445
|
+
onRowClick?: (row: DataTableRendererRow) => void;
|
|
439
446
|
}
|
|
440
447
|
|
|
441
|
-
declare type
|
|
442
|
-
|
|
443
|
-
declare type DataRendererImplementation = (input: WorkbenchWidgetRenderInput & {
|
|
444
|
-
dataRendererId: string;
|
|
448
|
+
declare type DataTableRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
449
|
+
dataTableRendererId: string;
|
|
445
450
|
}) => unknown;
|
|
446
451
|
|
|
447
|
-
declare interface
|
|
448
|
-
|
|
449
|
-
|
|
452
|
+
declare interface DataTableRendererQueryContext {
|
|
453
|
+
resource?: ResourceRef;
|
|
454
|
+
modeId?: string;
|
|
450
455
|
}
|
|
451
456
|
|
|
452
|
-
declare interface
|
|
453
|
-
|
|
454
|
-
|
|
457
|
+
declare interface DataTableRendererQueryResult {
|
|
458
|
+
rows: DataTableRendererRow[];
|
|
459
|
+
columns?: DataTableRendererColumn[];
|
|
455
460
|
}
|
|
456
461
|
|
|
457
|
-
declare interface
|
|
458
|
-
|
|
462
|
+
declare interface DataTableRendererRefreshEvent {
|
|
463
|
+
dataTableRendererId: string;
|
|
459
464
|
}
|
|
460
465
|
|
|
461
|
-
declare
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
refreshDataRenderer(id: string): void;
|
|
470
|
-
onDidRefreshDataRenderer(listener: DataRendererRefreshListener): Disposable_2;
|
|
466
|
+
declare interface DataTableRendererRegistry {
|
|
467
|
+
dataTableStore: WorkbenchStore<DataTableRendererStoreState>;
|
|
468
|
+
registerDataTableRenderer(contribution: DataTableRendererContribution, metadata?: ContributionMetadata): Disposable_2;
|
|
469
|
+
setDataTableRendererImplementation(implementation: DataTableRendererImplementation): void;
|
|
470
|
+
getDataTableRenderer(id: string): RegisteredDataTableRendererContribution | undefined;
|
|
471
|
+
listDataTableRenderers(): RegisteredDataTableRendererContribution[];
|
|
472
|
+
refreshDataTableRenderer(id: string): void;
|
|
473
|
+
onDidRefreshDataTableRenderer(listener: (event: DataTableRendererRefreshEvent) => void): Disposable_2;
|
|
471
474
|
}
|
|
472
475
|
|
|
473
|
-
declare interface
|
|
476
|
+
declare interface DataTableRendererRow {
|
|
474
477
|
id: string;
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
* Optional navigation handle. When set, the renderer's default click handler
|
|
478
|
-
* routes through the contribution's onRowClick (which typically opens the
|
|
479
|
-
* resource via the workbench).
|
|
480
|
-
*/
|
|
481
|
-
resource?: unknown;
|
|
482
|
-
attributes: Record<string, unknown>;
|
|
478
|
+
values: Record<string, unknown>;
|
|
479
|
+
resource?: ResourceRef;
|
|
483
480
|
}
|
|
484
481
|
|
|
485
|
-
declare
|
|
482
|
+
declare interface DataTableRendererRowAction {
|
|
483
|
+
id: string;
|
|
484
|
+
label: string;
|
|
485
|
+
icon?: unknown;
|
|
486
|
+
destructive?: boolean;
|
|
487
|
+
run(row: DataTableRendererRow): Promise<void> | void;
|
|
488
|
+
}
|
|
486
489
|
|
|
487
|
-
declare interface
|
|
488
|
-
|
|
489
|
-
columnGrouping: string | typeof NO_GROUPING;
|
|
490
|
-
rowGrouping: string | typeof NO_GROUPING;
|
|
491
|
-
ordering: DataRendererOrdering;
|
|
492
|
-
displayProperties: string[];
|
|
490
|
+
declare interface DataTableRendererStoreState {
|
|
491
|
+
renderers: Record<string, RegisteredDataTableRendererContribution>;
|
|
493
492
|
}
|
|
494
493
|
|
|
495
|
-
declare interface
|
|
496
|
-
|
|
494
|
+
declare interface DataTableRendererThemeColor {
|
|
495
|
+
light: string;
|
|
496
|
+
dark: string;
|
|
497
|
+
foreground?: {
|
|
498
|
+
light: string;
|
|
499
|
+
dark: string;
|
|
500
|
+
};
|
|
497
501
|
}
|
|
498
502
|
|
|
503
|
+
declare type DataTableViewRecord = WorkbenchExtensionMetadata["panels"][number];
|
|
504
|
+
|
|
499
505
|
declare interface Disposable_2 {
|
|
500
506
|
dispose(): void;
|
|
501
507
|
}
|
|
@@ -523,7 +529,7 @@ declare interface EnumOptionsSource {
|
|
|
523
529
|
|
|
524
530
|
declare type ExtensionTreeRendererRecord = NonNullable<WorkbenchExtensionMetadata["treeRenderers"]>[number];
|
|
525
531
|
|
|
526
|
-
declare type ExtensionTreeViewRecord = WorkbenchExtensionMetadata["
|
|
532
|
+
declare type ExtensionTreeViewRecord = WorkbenchExtensionMetadata["panels"][number] | NonNullable<WorkbenchExtensionMetadata["panels"][number]["panelMenus"]>[number];
|
|
527
533
|
|
|
528
534
|
export declare interface ExtensionWebviewFileCapabilities {
|
|
529
535
|
delete(params: unknown): Promise<unknown> | unknown;
|
|
@@ -583,7 +589,7 @@ declare interface FileRendererContribution {
|
|
|
583
589
|
save?(resource: ResourceRef | undefined, content: string): Promise<void> | void;
|
|
584
590
|
}
|
|
585
591
|
|
|
586
|
-
declare type FileRendererImplementation = (input:
|
|
592
|
+
declare type FileRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
587
593
|
fileRendererId: string;
|
|
588
594
|
}) => unknown;
|
|
589
595
|
|
|
@@ -614,34 +620,185 @@ declare interface HistoryController {
|
|
|
614
620
|
goPrevious(): HistoryEntry | undefined;
|
|
615
621
|
recentlyClosed(): readonly HistoryEntry[];
|
|
616
622
|
reopenLastClosed(): HistoryEntry | undefined;
|
|
623
|
+
setPersistenceScope(scope: string | undefined): void;
|
|
624
|
+
getPersistenceScope(): string | undefined;
|
|
625
|
+
restore(): HistoryEntry | undefined;
|
|
626
|
+
flush(): void;
|
|
617
627
|
clear(): void;
|
|
618
628
|
}
|
|
619
629
|
|
|
620
|
-
declare
|
|
621
|
-
entryId: string;
|
|
622
|
-
recordedAt: number;
|
|
623
|
-
kind: "resource" | "widget" | "mode";
|
|
624
|
-
modeId?: string;
|
|
625
|
-
resource?: ResourceRef;
|
|
626
|
-
widgetId?: string;
|
|
627
|
-
contributionId?: string;
|
|
628
|
-
title?: string;
|
|
629
|
-
}
|
|
630
|
+
declare type HistoryEntry = WorkbenchNavigationEntry;
|
|
630
631
|
|
|
631
632
|
declare interface HistoryStoreState {
|
|
632
|
-
entries: readonly
|
|
633
|
+
entries: readonly WorkbenchNavigationEntry[];
|
|
633
634
|
cursor: number;
|
|
634
|
-
recentlyClosed: readonly
|
|
635
|
+
recentlyClosed: readonly WorkbenchNavigationEntry[];
|
|
636
|
+
hydrating: boolean;
|
|
635
637
|
}
|
|
636
638
|
|
|
637
639
|
declare interface HostTreeDefaultNodesInput {
|
|
638
640
|
ctx: TreeContext;
|
|
639
641
|
record: ExtensionTreeRendererRecord;
|
|
640
|
-
|
|
642
|
+
panel: ExtensionTreeViewRecord;
|
|
641
643
|
}
|
|
642
644
|
|
|
643
645
|
declare type HostTreeDefaultNodesResolver = (input: HostTreeDefaultNodesInput) => Promise<TreeNode[]> | TreeNode[];
|
|
644
646
|
|
|
647
|
+
declare interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow> {
|
|
648
|
+
id: string;
|
|
649
|
+
title: string;
|
|
650
|
+
resourceKind?: string;
|
|
651
|
+
/**
|
|
652
|
+
* Declarative attribute schema. The renderer dispatches filter / group /
|
|
653
|
+
* sort / display / inline-edit behavior on each descriptor's `type.kind`.
|
|
654
|
+
*
|
|
655
|
+
* Pass an `AttributesSource` ({ subscribe, getSnapshot }) instead of a
|
|
656
|
+
* static array to let the contribution mutate its schema at runtime —
|
|
657
|
+
* `WorkbenchKanbanView` subscribes so additions / removals / kind changes
|
|
658
|
+
* propagate live without re-registering the renderer.
|
|
659
|
+
*/
|
|
660
|
+
attributes: AttributeDescriptor[] | AttributesSource;
|
|
661
|
+
/** Per-board-column overrides (color, drag/create rules, custom actions). */
|
|
662
|
+
getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;
|
|
663
|
+
hideToolbar?: boolean;
|
|
664
|
+
emptyTitle?: string;
|
|
665
|
+
emptyDescription?: string;
|
|
666
|
+
/** Initial settings/filters applied when the kanban renderer mounts. */
|
|
667
|
+
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
668
|
+
defaultFilters?: KanbanRendererFilterState;
|
|
669
|
+
defaultViews?: KanbanRendererSavedView[];
|
|
670
|
+
defaultActiveViewId?: string;
|
|
671
|
+
/**
|
|
672
|
+
* Data source. Receives the current display state so backends can paginate
|
|
673
|
+
* / filter / sort. The renderer re-applies filter / sort / group locally,
|
|
674
|
+
* so this can return unfiltered rows in simple cases.
|
|
675
|
+
*/
|
|
676
|
+
executeQuery(state: KanbanRendererQueryState): Promise<TRow[]> | TRow[];
|
|
677
|
+
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
678
|
+
/** Row interactions surfaced by the renderer (mirrored from <KanbanRenderer>). */
|
|
679
|
+
onRowClick?: (row: TRow) => void;
|
|
680
|
+
/** Per-row right-click context menu actions (mirrored from <KanbanRenderer>). */
|
|
681
|
+
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
682
|
+
/**
|
|
683
|
+
* Fires for inline attribute edits AND for cross-column drag-to-reorder on
|
|
684
|
+
* the board (the renderer passes the grouping attribute id + the target
|
|
685
|
+
* column value).
|
|
686
|
+
*/
|
|
687
|
+
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
688
|
+
/** Manual within-column reorder (only fires when ordering is manual). */
|
|
689
|
+
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
690
|
+
createRow?: KanbanRendererCreateRowConfig;
|
|
691
|
+
onCreateRow?: (submission: KanbanRendererCreateSubmission) => Promise<void> | void;
|
|
692
|
+
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
declare interface KanbanRendererCreateField {
|
|
696
|
+
id: string;
|
|
697
|
+
label: string;
|
|
698
|
+
description?: string;
|
|
699
|
+
placeholder?: string;
|
|
700
|
+
type: KanbanRendererCreateFieldType;
|
|
701
|
+
required?: boolean;
|
|
702
|
+
defaultValue?: unknown;
|
|
703
|
+
options?: EnumOption[];
|
|
704
|
+
/** `files` fields only. */
|
|
705
|
+
multiple?: boolean;
|
|
706
|
+
accept?: string;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
declare type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
710
|
+
|
|
711
|
+
/** Chrome copy is supplied by the caller so the dialog ships no strings of its own. */
|
|
712
|
+
declare interface KanbanRendererCreateLabels {
|
|
713
|
+
cancel: string;
|
|
714
|
+
properties: string;
|
|
715
|
+
submitError: string;
|
|
716
|
+
removeFile: string;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
declare interface KanbanRendererCreateRowConfig {
|
|
720
|
+
title: string;
|
|
721
|
+
submitLabel: string;
|
|
722
|
+
fields: KanbanRendererCreateField[];
|
|
723
|
+
labels: KanbanRendererCreateLabels;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
declare interface KanbanRendererCreateSubmission {
|
|
727
|
+
columnId: string;
|
|
728
|
+
columnAttributeId?: string;
|
|
729
|
+
/** Declared field values, excluding `files` fields — those arrive as `files`. */
|
|
730
|
+
values: Record<string, unknown>;
|
|
731
|
+
/** Every editable attribute the user set, keyed by attribute id. */
|
|
732
|
+
attributeValues: Record<string, unknown>;
|
|
733
|
+
files: File[];
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
declare type KanbanRendererFilterState = Record<string, string[]>;
|
|
737
|
+
|
|
738
|
+
declare type KanbanRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
739
|
+
kanbanRendererId: string;
|
|
740
|
+
}) => unknown;
|
|
741
|
+
|
|
742
|
+
declare interface KanbanRendererOrdering {
|
|
743
|
+
attributeId: string | typeof MANUAL_ORDERING;
|
|
744
|
+
direction: SortDirection;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
declare interface KanbanRendererQueryState {
|
|
748
|
+
settings: KanbanRendererSettings;
|
|
749
|
+
filters: KanbanRendererFilterState;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
declare interface KanbanRendererRefreshEvent {
|
|
753
|
+
kanbanRendererId: string;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
declare type KanbanRendererRefreshListener = (event: KanbanRendererRefreshEvent) => void;
|
|
757
|
+
|
|
758
|
+
declare interface KanbanRendererRegistry {
|
|
759
|
+
dataStore: WorkbenchStore<KanbanRendererStoreState>;
|
|
760
|
+
registerKanbanRenderer<TRow extends KanbanRendererRow = KanbanRendererRow>(contribution: KanbanRendererContribution<TRow>, metadata?: ContributionMetadata): Disposable_2;
|
|
761
|
+
setKanbanRendererImplementation(impl: KanbanRendererImplementation): void;
|
|
762
|
+
getKanbanRenderer(id: string): RegisteredKanbanRendererContribution | undefined;
|
|
763
|
+
listKanbanRenderers(): RegisteredKanbanRendererContribution[];
|
|
764
|
+
refreshKanbanRenderer(id: string): void;
|
|
765
|
+
onDidRefreshKanbanRenderer(listener: KanbanRendererRefreshListener): Disposable_2;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
declare interface KanbanRendererRow {
|
|
769
|
+
id: string;
|
|
770
|
+
title: string;
|
|
771
|
+
/**
|
|
772
|
+
* Optional navigation handle. When set, the renderer's default click handler
|
|
773
|
+
* routes through the contribution's onRowClick (which typically opens the
|
|
774
|
+
* resource via the workbench).
|
|
775
|
+
*/
|
|
776
|
+
resource?: unknown;
|
|
777
|
+
attributes: Record<string, unknown>;
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
declare type KanbanRendererRow_2 = Awaited<ReturnType<KanbanRendererContribution["executeQuery"]>>[number];
|
|
781
|
+
|
|
782
|
+
declare interface KanbanRendererSavedView {
|
|
783
|
+
id: string;
|
|
784
|
+
title: string;
|
|
785
|
+
settings: KanbanRendererSettings;
|
|
786
|
+
filters: KanbanRendererFilterState;
|
|
787
|
+
isDefault?: boolean;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
declare interface KanbanRendererSettings {
|
|
791
|
+
viewMode: ViewMode;
|
|
792
|
+
columnGrouping: string | typeof NO_GROUPING;
|
|
793
|
+
rowGrouping: string | typeof NO_GROUPING;
|
|
794
|
+
ordering: KanbanRendererOrdering;
|
|
795
|
+
displayProperties: string[];
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
declare interface KanbanRendererStoreState {
|
|
799
|
+
renderers: Record<string, RegisteredKanbanRendererContribution>;
|
|
800
|
+
}
|
|
801
|
+
|
|
645
802
|
declare interface Keybinding {
|
|
646
803
|
commandId: string;
|
|
647
804
|
keybinding: KeybindingSequence;
|
|
@@ -667,33 +824,62 @@ declare interface LayoutModel {
|
|
|
667
824
|
registerPlaceholder(placeholder: PlaceholderContribution, metadata?: ContributionMetadata): {
|
|
668
825
|
dispose(): void;
|
|
669
826
|
};
|
|
827
|
+
registerPanel(panel: WorkbenchPanelContribution, metadata?: ContributionMetadata): {
|
|
828
|
+
dispose(): void;
|
|
829
|
+
};
|
|
670
830
|
registerWidget(widget: WidgetContribution, metadata?: ContributionMetadata): {
|
|
671
831
|
dispose(): void;
|
|
672
832
|
};
|
|
833
|
+
registerLocation(location: WorkbenchLocationContribution, metadata?: ContributionMetadata): {
|
|
834
|
+
dispose(): void;
|
|
835
|
+
};
|
|
836
|
+
registerSubPanel(subPanel: WorkbenchSubPanelContribution, metadata?: ContributionMetadata): {
|
|
837
|
+
dispose(): void;
|
|
838
|
+
};
|
|
839
|
+
registerPanelMenu(panelMenu: WorkbenchPanelMenuContribution, metadata?: ContributionMetadata): {
|
|
840
|
+
dispose(): void;
|
|
841
|
+
};
|
|
673
842
|
unregisterWidget(id: string, options?: {
|
|
674
843
|
removePlacements?: boolean;
|
|
675
844
|
persist?: boolean;
|
|
676
845
|
}): void;
|
|
677
|
-
getPlaceholder(
|
|
846
|
+
getPlaceholder(regionId: WorkbenchRegion): RegisteredPlaceholderContribution | undefined;
|
|
678
847
|
getWidget(id: string): RegisteredWidgetContribution | undefined;
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
848
|
+
getPanel(id: string): WorkbenchPanelContribution | undefined;
|
|
849
|
+
getRegionSize(regionId: WorkbenchRegion): WorkbenchRegionSize | undefined;
|
|
850
|
+
getRegionCollapsible(regionId: WorkbenchRegion): boolean;
|
|
851
|
+
getRegionHeaderBorderBottom(regionId: WorkbenchRegion): boolean;
|
|
852
|
+
setRegionVisible(regionId: WorkbenchRegion, visible: boolean): void;
|
|
853
|
+
setRegionSize(regionId: WorkbenchRegion, size: number): void;
|
|
684
854
|
listPlaceholders(): RegisteredPlaceholderContribution[];
|
|
685
855
|
listWidgets(): RegisteredWidgetContribution[];
|
|
856
|
+
listPanels(): WorkbenchPanelContribution[];
|
|
857
|
+
listPanelInstances(region?: WorkbenchRegion): WorkbenchPanelInstance[];
|
|
858
|
+
getActivePanel(region?: WorkbenchRegion): WorkbenchPanelInstance | undefined;
|
|
686
859
|
openWidget(id: string, input?: OpenWidgetInput): WorkbenchWidgetPlacement;
|
|
860
|
+
openPanel(id: string, input?: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
|
|
861
|
+
updatePanel(instanceId: string, input: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
|
|
862
|
+
reorderPanel(instanceId: string, position: WorkbenchTabPosition): void;
|
|
863
|
+
activatePanel(instanceId: string): WorkbenchPanelInstance;
|
|
864
|
+
closePanel(instanceId: string): WorkbenchPanelInstance | undefined;
|
|
687
865
|
updateWidgetPlacement(widgetId: string, input: OpenWidgetInput): WorkbenchWidgetPlacement;
|
|
866
|
+
reorderWidget(widgetId: string, position: WorkbenchTabPosition): void;
|
|
867
|
+
expirePreviewTabs(ownerResourceUri?: string): void;
|
|
688
868
|
activateWidget(widgetId: string): WorkbenchWidgetPlacement;
|
|
869
|
+
setRegionActiveWidget(regionId: WorkbenchRegion, widgetId: string | undefined): void;
|
|
689
870
|
closeWidget(widgetId: string): WorkbenchWidgetPlacement | undefined;
|
|
690
871
|
removeWidgetPlacement(widgetId: string): WorkbenchWidgetPlacement | undefined;
|
|
691
|
-
|
|
692
|
-
|
|
872
|
+
clearRegion(regionId: WorkbenchRegion): void;
|
|
873
|
+
resetRegions(): void;
|
|
693
874
|
getLayout(): WorkbenchLayout;
|
|
694
875
|
restoreLayout(layout: WorkbenchLayout): void;
|
|
695
|
-
setPersistenceScope(scope: LayoutScope | undefined
|
|
876
|
+
setPersistenceScope(scope: LayoutScope | undefined, input?: {
|
|
877
|
+
carryRegionState?: readonly WorkbenchRegion[];
|
|
878
|
+
}): void;
|
|
696
879
|
getPersistenceScope(): LayoutScope | undefined;
|
|
880
|
+
onWillChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
|
|
881
|
+
dispose(): void;
|
|
882
|
+
};
|
|
697
883
|
onDidChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
|
|
698
884
|
dispose(): void;
|
|
699
885
|
};
|
|
@@ -707,6 +893,7 @@ declare const MANUAL_ORDERING = "manual";
|
|
|
707
893
|
|
|
708
894
|
declare interface MenuItem {
|
|
709
895
|
commandId: string;
|
|
896
|
+
sourceCommandId?: string;
|
|
710
897
|
label?: string;
|
|
711
898
|
description?: string;
|
|
712
899
|
icon?: string;
|
|
@@ -771,7 +958,13 @@ declare interface NavigationTargetCompound {
|
|
|
771
958
|
targets: readonly NavigationTargetItem[];
|
|
772
959
|
}
|
|
773
960
|
|
|
774
|
-
declare type NavigationTargetItem = NavigationTargetResource |
|
|
961
|
+
declare type NavigationTargetItem = NavigationTargetResource | NavigationTargetPanel | NavigationTargetCommand;
|
|
962
|
+
|
|
963
|
+
declare interface NavigationTargetPanel {
|
|
964
|
+
kind: "panel";
|
|
965
|
+
panelId: string;
|
|
966
|
+
input?: OpenWorkbenchPanelInput;
|
|
967
|
+
}
|
|
775
968
|
|
|
776
969
|
declare interface NavigationTargetResource {
|
|
777
970
|
kind: "resource";
|
|
@@ -779,12 +972,6 @@ declare interface NavigationTargetResource {
|
|
|
779
972
|
input?: OpenResourceInput;
|
|
780
973
|
}
|
|
781
974
|
|
|
782
|
-
declare interface NavigationTargetView {
|
|
783
|
-
kind: "view";
|
|
784
|
-
widgetId: string;
|
|
785
|
-
input?: OpenWidgetInput;
|
|
786
|
-
}
|
|
787
|
-
|
|
788
975
|
declare const NO_GROUPING = "none";
|
|
789
976
|
|
|
790
977
|
declare interface NotificationRegistry {
|
|
@@ -803,23 +990,38 @@ declare interface OpenResourceInput {
|
|
|
803
990
|
declare interface OpenWidgetInput {
|
|
804
991
|
resource?: ResourceRef;
|
|
805
992
|
title?: string;
|
|
806
|
-
|
|
993
|
+
region?: WorkbenchRegion;
|
|
807
994
|
ownerId?: string;
|
|
808
995
|
source?: ContributionSource;
|
|
809
996
|
pinned?: boolean;
|
|
810
997
|
closable?: boolean;
|
|
811
998
|
mountStrategy?: WidgetMountStrategy;
|
|
812
999
|
hiddenByDefault?: boolean;
|
|
1000
|
+
tabRetention?: WorkbenchTabRetention;
|
|
1001
|
+
tabPosition?: WorkbenchTabPosition;
|
|
1002
|
+
tab?: WorkbenchWidgetTab;
|
|
813
1003
|
replaceActive?: boolean;
|
|
1004
|
+
replaceWidgetId?: string;
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
declare interface OpenWorkbenchPanelInput {
|
|
1008
|
+
resource?: ResourceRef;
|
|
1009
|
+
title?: string;
|
|
1010
|
+
region?: WorkbenchRegion;
|
|
1011
|
+
pinned?: boolean;
|
|
1012
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
1013
|
+
hiddenByDefault?: boolean;
|
|
1014
|
+
tab?: WorkbenchPanelTab;
|
|
1015
|
+
strategy?: WorkbenchPanelOpenStrategy;
|
|
814
1016
|
}
|
|
815
1017
|
|
|
816
1018
|
declare interface PlaceholderContribution {
|
|
817
1019
|
id: string;
|
|
818
1020
|
title: string;
|
|
819
|
-
|
|
1021
|
+
region: WorkbenchRegion;
|
|
820
1022
|
rendererId: string;
|
|
821
|
-
|
|
822
|
-
|
|
1023
|
+
regionSize?: WorkbenchRegionSize;
|
|
1024
|
+
regionCollapsible?: boolean;
|
|
823
1025
|
config?: unknown;
|
|
824
1026
|
priority?: number;
|
|
825
1027
|
}
|
|
@@ -857,9 +1059,9 @@ declare interface PreferenceScopeRef {
|
|
|
857
1059
|
|
|
858
1060
|
declare type PreferenceValue = boolean | number | string | string[] | number[] | boolean[] | Record<string, unknown>;
|
|
859
1061
|
|
|
860
|
-
export declare const refreshOpenWorkbenchExtensionWebviews: (workbench:
|
|
1062
|
+
export declare const refreshOpenWorkbenchExtensionWebviews: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata) => void;
|
|
861
1063
|
|
|
862
|
-
export declare const refreshWorkbenchExtensionContributions: (workbench:
|
|
1064
|
+
export declare const refreshWorkbenchExtensionContributions: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata, commandId: string) => void;
|
|
863
1065
|
|
|
864
1066
|
declare interface RegisteredCommand extends RegisteredContributionMetadata {
|
|
865
1067
|
command: Command;
|
|
@@ -872,21 +1074,18 @@ declare interface RegisteredContributionMetadata {
|
|
|
872
1074
|
priority: number;
|
|
873
1075
|
}
|
|
874
1076
|
|
|
875
|
-
declare interface RegisteredContributionMetadata_2 {
|
|
876
|
-
source: ContributionSource_2;
|
|
877
|
-
ownerId: string;
|
|
878
|
-
priority: number;
|
|
879
|
-
}
|
|
880
|
-
|
|
881
1077
|
declare interface RegisteredControlsRendererContribution extends ControlsRendererContribution, RegisteredContributionMetadata {
|
|
882
1078
|
}
|
|
883
1079
|
|
|
884
|
-
declare interface
|
|
1080
|
+
declare interface RegisteredDataTableRendererContribution extends DataTableRendererContribution, RegisteredContributionMetadata {
|
|
885
1081
|
}
|
|
886
1082
|
|
|
887
1083
|
declare interface RegisteredFileRendererContribution extends FileRendererContribution, RegisteredContributionMetadata {
|
|
888
1084
|
}
|
|
889
1085
|
|
|
1086
|
+
declare interface RegisteredKanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow> extends KanbanRendererContribution<TRow>, RegisteredContributionMetadata {
|
|
1087
|
+
}
|
|
1088
|
+
|
|
890
1089
|
declare interface RegisteredKeepAliveHost {
|
|
891
1090
|
rendererId: string;
|
|
892
1091
|
host: HTMLElement;
|
|
@@ -922,8 +1121,10 @@ declare interface RegisteredTreeRendererContribution extends TreeRendererContrib
|
|
|
922
1121
|
}
|
|
923
1122
|
|
|
924
1123
|
declare type RegisteredWidgetContribution = Omit<WidgetContribution, "priority" | "singleton" | "reuse"> & {
|
|
1124
|
+
ownedPanelMenuIds?: readonly string[];
|
|
925
1125
|
singleton: boolean;
|
|
926
1126
|
reuse: WidgetReusePolicy;
|
|
1127
|
+
role: WorkbenchWidgetRole;
|
|
927
1128
|
} & RegisteredContributionMetadata;
|
|
928
1129
|
|
|
929
1130
|
declare interface RegisteredWorkbenchNotification extends RegisteredContributionMetadata {
|
|
@@ -937,17 +1138,6 @@ declare interface RegisteredWorkbenchNotification extends RegisteredContribution
|
|
|
937
1138
|
metadata?: Record<string, unknown>;
|
|
938
1139
|
}
|
|
939
1140
|
|
|
940
|
-
declare interface RegisteredWorkbenchNotification_2 extends RegisteredContributionMetadata_2 {
|
|
941
|
-
id: string;
|
|
942
|
-
level: WorkbenchNotificationLevel_2;
|
|
943
|
-
title: string;
|
|
944
|
-
message?: string;
|
|
945
|
-
createdAt: string;
|
|
946
|
-
resource?: ResourceRef_2;
|
|
947
|
-
actions?: WorkbenchNotificationAction_2[];
|
|
948
|
-
metadata?: Record<string, unknown>;
|
|
949
|
-
}
|
|
950
|
-
|
|
951
1141
|
export declare const registerWorkbenchExtensionCommandPaletteResources: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionCommandPaletteResourceRecord[]) => {
|
|
952
1142
|
dispose(): void;
|
|
953
1143
|
};
|
|
@@ -972,14 +1162,12 @@ export declare interface RegisterWorkbenchExtensionContributionsInput {
|
|
|
972
1162
|
settingsSectionId?: string;
|
|
973
1163
|
settingsSectionTitle?: string;
|
|
974
1164
|
webviewFiles?: ExtensionWebviewFileCapabilities;
|
|
975
|
-
workbench:
|
|
1165
|
+
workbench: WorkbenchModuleContext;
|
|
976
1166
|
}
|
|
977
1167
|
|
|
978
|
-
export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[],
|
|
1168
|
+
export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[], panels: ControlsViewRecord[], adapter?: WorkbenchExtensionControlsAdapter) => Disposable_2;
|
|
979
1169
|
|
|
980
|
-
export declare const
|
|
981
|
-
dispose(): void;
|
|
982
|
-
};
|
|
1170
|
+
export declare const registerWorkbenchExtensionDataTableRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionDataTableRendererRecord[], panels: DataTableViewRecord[]) => Disposable_2;
|
|
983
1171
|
|
|
984
1172
|
export declare const registerWorkbenchExtensionFileRenderers: (input: RegisterWorkbenchExtensionFileRenderersInput) => {
|
|
985
1173
|
dispose(): void;
|
|
@@ -989,7 +1177,18 @@ export declare interface RegisterWorkbenchExtensionFileRenderersInput {
|
|
|
989
1177
|
executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
|
|
990
1178
|
metadata: WorkbenchExtensionMetadata;
|
|
991
1179
|
projectId: string;
|
|
992
|
-
workbench:
|
|
1180
|
+
workbench: WorkbenchModuleContext;
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
export declare const registerWorkbenchExtensionKanbanRenderers: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionKanbanRendererRecord[], adapter?: WorkbenchExtensionKanbanRendererAdapter) => {
|
|
1184
|
+
dispose(): void;
|
|
1185
|
+
};
|
|
1186
|
+
|
|
1187
|
+
export declare const registerWorkbenchExtensionPanel: (input: RegisterWorkbenchExtensionPanelInput) => Disposable_2;
|
|
1188
|
+
|
|
1189
|
+
export declare interface RegisterWorkbenchExtensionPanelInput {
|
|
1190
|
+
contribution: WorkbenchPanelContribution;
|
|
1191
|
+
workbench: WorkbenchModuleContext;
|
|
993
1192
|
}
|
|
994
1193
|
|
|
995
1194
|
export declare const registerWorkbenchExtensionTreeRenderers: (input: RegisterWorkbenchExtensionTreeRenderersInput) => {
|
|
@@ -1002,7 +1201,7 @@ export declare interface RegisterWorkbenchExtensionTreeRenderersInput {
|
|
|
1002
1201
|
getHostTreeHeaderNodes?: HostTreeDefaultNodesResolver;
|
|
1003
1202
|
metadata: WorkbenchExtensionMetadata;
|
|
1004
1203
|
projectId: string;
|
|
1005
|
-
workbench:
|
|
1204
|
+
workbench: WorkbenchModuleContext;
|
|
1006
1205
|
}
|
|
1007
1206
|
|
|
1008
1207
|
export declare const renderBridgeWebviewFrame: (input: {
|
|
@@ -1015,7 +1214,9 @@ export declare const renderBridgeWebviewFrame: (input: {
|
|
|
1015
1214
|
webview: BridgeWebviewConfig;
|
|
1016
1215
|
}) => JSX.Element;
|
|
1017
1216
|
|
|
1018
|
-
declare type
|
|
1217
|
+
declare type ResolvedResourceHierarchyProvider = Required<ResourceHierarchyProvider>;
|
|
1218
|
+
|
|
1219
|
+
declare type ResolvedResourcePresenter = Required<ResourcePresenter>;
|
|
1019
1220
|
|
|
1020
1221
|
declare interface ResourceBrowseEntry {
|
|
1021
1222
|
resource: ResourceRef;
|
|
@@ -1037,6 +1238,13 @@ declare interface ResourceContextAction {
|
|
|
1037
1238
|
separatorBefore?: boolean;
|
|
1038
1239
|
}
|
|
1039
1240
|
|
|
1241
|
+
declare interface ResourceHierarchyProvider {
|
|
1242
|
+
id: string;
|
|
1243
|
+
priority?: number;
|
|
1244
|
+
canResolve(resource: ResourceRef): boolean;
|
|
1245
|
+
getParent(resource: ResourceRef): ResourceRef | undefined;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1040
1248
|
declare interface ResourceKindContribution {
|
|
1041
1249
|
kind: string;
|
|
1042
1250
|
label: string;
|
|
@@ -1057,11 +1265,11 @@ declare interface ResourceNavigator<TResult = unknown> {
|
|
|
1057
1265
|
navigate(resource: ResourceRef): TResult | Promise<TResult>;
|
|
1058
1266
|
}
|
|
1059
1267
|
|
|
1060
|
-
declare interface
|
|
1268
|
+
declare interface ResourcePresenter {
|
|
1061
1269
|
id: string;
|
|
1062
1270
|
priority?: number;
|
|
1063
1271
|
canOpen(resource: ResourceRef): boolean;
|
|
1064
|
-
open(resource: ResourceRef, input: OpenResourceInput):
|
|
1272
|
+
open(resource: ResourceRef, input: OpenResourceInput): WorkbenchPanelInstance | Promise<WorkbenchPanelInstance>;
|
|
1065
1273
|
}
|
|
1066
1274
|
|
|
1067
1275
|
declare interface ResourceProvider {
|
|
@@ -1094,24 +1302,29 @@ declare interface ResourceRegistry {
|
|
|
1094
1302
|
getKind(kind: string): RegisteredResourceKind | undefined;
|
|
1095
1303
|
getSurface(resource: ResourceRef): ResourceSurface | undefined;
|
|
1096
1304
|
listKinds(): RegisteredResourceKind[];
|
|
1097
|
-
|
|
1098
|
-
|
|
1305
|
+
registerPresenter(presenter: ResourcePresenter): Disposable_2;
|
|
1306
|
+
listPresenters(): ResolvedResourcePresenter[];
|
|
1099
1307
|
registerProvider(provider: ResourceProvider): Disposable_2;
|
|
1100
1308
|
listProviders(): ResourceProvider[];
|
|
1101
1309
|
listResources(query: string): readonly ResourceBrowseEntry[];
|
|
1102
|
-
|
|
1310
|
+
registerHierarchyProvider(provider: ResourceHierarchyProvider): Disposable_2;
|
|
1311
|
+
listHierarchyProviders(): ResolvedResourceHierarchyProvider[];
|
|
1312
|
+
walkHierarchy(resource: ResourceRef | undefined): ResourceRef[];
|
|
1313
|
+
isOpeningResource(): boolean;
|
|
1314
|
+
openResource(resource: ResourceRef, input?: OpenResourceInput): Promise<WorkbenchPanelInstance>;
|
|
1103
1315
|
onDidOpenResource(listener: (resource: ResourceRef) => void): Disposable_2;
|
|
1104
1316
|
}
|
|
1105
1317
|
|
|
1106
1318
|
declare interface ResourceRegistryStoreState {
|
|
1107
1319
|
kinds: Record<string, RegisteredResourceKind>;
|
|
1108
|
-
|
|
1320
|
+
presenters: Record<string, ResolvedResourcePresenter>;
|
|
1109
1321
|
providers: Record<string, ResourceProvider>;
|
|
1322
|
+
hierarchyProviders: Record<string, ResolvedResourceHierarchyProvider>;
|
|
1110
1323
|
}
|
|
1111
1324
|
|
|
1112
1325
|
declare type ResourceSurface = "primary" | "secondary" | "attached";
|
|
1113
1326
|
|
|
1114
|
-
declare type RowAction = NonNullable<
|
|
1327
|
+
declare type RowAction = NonNullable<WorkbenchExtensionKanbanRendererRecord["rowActions"]>[number];
|
|
1115
1328
|
|
|
1116
1329
|
/** Auto-rendered as a param editor from the registered preference schema. */
|
|
1117
1330
|
declare interface SchemaSettingsPanel extends SettingsPanelBase {
|
|
@@ -1179,7 +1392,7 @@ declare interface SettingsRegistryStoreState {
|
|
|
1179
1392
|
/** Settings are stored either per-user (global) or per-project. Projectless surfaces show only global entries. */
|
|
1180
1393
|
declare type SettingsScope = "global" | "project";
|
|
1181
1394
|
|
|
1182
|
-
/** An ordered
|
|
1395
|
+
/** An ordered sidenav container. Headerless when `title` is omitted. */
|
|
1183
1396
|
declare interface SettingsSectionContribution {
|
|
1184
1397
|
id: string;
|
|
1185
1398
|
title?: string;
|
|
@@ -1188,6 +1401,8 @@ declare interface SettingsSectionContribution {
|
|
|
1188
1401
|
actions?: SettingsAction[];
|
|
1189
1402
|
}
|
|
1190
1403
|
|
|
1404
|
+
export declare const shouldRefreshWorkbenchExtensionDataTableRenderers: (metadata: WorkbenchExtensionMetadata, commandId: string) => boolean;
|
|
1405
|
+
|
|
1191
1406
|
export declare const shouldRefreshWorkbenchExtensionTrees: (metadata: WorkbenchExtensionMetadata, commandId: string) => boolean;
|
|
1192
1407
|
|
|
1193
1408
|
declare type SortDirection = "asc" | "desc";
|
|
@@ -1263,6 +1478,8 @@ declare interface TreeNode {
|
|
|
1263
1478
|
hiddenByDefault?: boolean;
|
|
1264
1479
|
/** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
|
|
1265
1480
|
canHide?: boolean;
|
|
1481
|
+
/** When false, the node stays fixed within its Sidenav group. */
|
|
1482
|
+
canReorder?: boolean;
|
|
1266
1483
|
}
|
|
1267
1484
|
|
|
1268
1485
|
declare type TreeNodeRowVariant = "empty-state";
|
|
@@ -1280,7 +1497,7 @@ declare interface TreeRendererContribution {
|
|
|
1280
1497
|
getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1281
1498
|
}
|
|
1282
1499
|
|
|
1283
|
-
declare type TreeRendererImplementation = (input:
|
|
1500
|
+
declare type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
1284
1501
|
treeId: string;
|
|
1285
1502
|
}) => unknown;
|
|
1286
1503
|
|
|
@@ -1338,11 +1555,13 @@ declare interface TreeViewSection {
|
|
|
1338
1555
|
hiddenByDefault?: boolean;
|
|
1339
1556
|
/** When true, the section (category) opts in to the tree's hide/show customization menu. */
|
|
1340
1557
|
canHide?: boolean;
|
|
1558
|
+
/** When false, the section stays fixed within the Sidenav main region. */
|
|
1559
|
+
canReorder?: boolean;
|
|
1341
1560
|
}
|
|
1342
1561
|
|
|
1343
1562
|
/**
|
|
1344
|
-
* Core-owned contracts for
|
|
1345
|
-
*
|
|
1563
|
+
* Core-owned contracts for kanban renderer contributions. @pstdio/ui's
|
|
1564
|
+
* KanbanRenderer props are structurally identical; the React layer bridges the
|
|
1346
1565
|
* two, so drift surfaces as a compile error there instead of coupling core's
|
|
1347
1566
|
* API shape to UI package ownership.
|
|
1348
1567
|
*/
|
|
@@ -1351,44 +1570,35 @@ declare type ViewMode = "board" | "list";
|
|
|
1351
1570
|
declare interface WidgetContribution {
|
|
1352
1571
|
id: string;
|
|
1353
1572
|
title: string;
|
|
1354
|
-
|
|
1355
|
-
|
|
1573
|
+
icon?: string;
|
|
1574
|
+
region: WorkbenchRegion;
|
|
1575
|
+
fallbackRegion?: WorkbenchRegion;
|
|
1356
1576
|
singleton?: boolean;
|
|
1357
1577
|
reuse?: WidgetReusePolicy;
|
|
1358
1578
|
mountStrategy?: WidgetMountStrategy;
|
|
1359
1579
|
closable?: boolean;
|
|
1360
1580
|
hiddenByDefault?: boolean;
|
|
1361
|
-
|
|
1362
|
-
|
|
1581
|
+
regionSize?: WorkbenchRegionSize;
|
|
1582
|
+
regionCollapsible?: boolean;
|
|
1363
1583
|
headerBorderBottom?: boolean;
|
|
1584
|
+
floatingPanels?: WorkbenchFloatingPanelVisibility;
|
|
1364
1585
|
resourceKinds?: string[];
|
|
1365
1586
|
priority?: number;
|
|
1366
1587
|
rendererId: string;
|
|
1588
|
+
openCommandId?: string;
|
|
1589
|
+
role?: WorkbenchWidgetRole;
|
|
1590
|
+
eligibleLocations?: WorkbenchLocationEligibility;
|
|
1591
|
+
panelMenuOwner?: WorkbenchPanelMenuOwner;
|
|
1592
|
+
tab?: WorkbenchWidgetTab;
|
|
1367
1593
|
config?: unknown;
|
|
1368
1594
|
canOpen?(resource: ResourceRef): boolean;
|
|
1369
1595
|
}
|
|
1370
1596
|
|
|
1371
1597
|
declare type WidgetMountStrategy = "active" | "keep-mounted";
|
|
1372
1598
|
|
|
1373
|
-
declare type
|
|
1374
|
-
|
|
1375
|
-
declare type WorkbenchArea = (typeof workbenchAreas)[number];
|
|
1599
|
+
declare type WidgetMountStrategy_2 = "active" | "keep-mounted";
|
|
1376
1600
|
|
|
1377
|
-
declare
|
|
1378
|
-
|
|
1379
|
-
declare interface WorkbenchAreaSize {
|
|
1380
|
-
defaultPx?: number;
|
|
1381
|
-
minPx?: number;
|
|
1382
|
-
maxPx?: number;
|
|
1383
|
-
}
|
|
1384
|
-
|
|
1385
|
-
declare interface WorkbenchAreaState {
|
|
1386
|
-
id: WorkbenchArea;
|
|
1387
|
-
visible: boolean;
|
|
1388
|
-
size?: number;
|
|
1389
|
-
widgets: WorkbenchWidgetPlacement[];
|
|
1390
|
-
activeWidgetId?: string;
|
|
1391
|
-
}
|
|
1601
|
+
declare type WidgetReusePolicy = "resource" | "none";
|
|
1392
1602
|
|
|
1393
1603
|
declare type WorkbenchBreadcrumbChangeListener = () => void;
|
|
1394
1604
|
|
|
@@ -1403,6 +1613,7 @@ declare interface WorkbenchBreadcrumbController {
|
|
|
1403
1613
|
declare interface WorkbenchBreadcrumbItem {
|
|
1404
1614
|
title: unknown;
|
|
1405
1615
|
icon?: string;
|
|
1616
|
+
indicator?: "session-status";
|
|
1406
1617
|
url?: string;
|
|
1407
1618
|
onClick?: () => void;
|
|
1408
1619
|
resource?: ResourceRef;
|
|
@@ -1412,8 +1623,16 @@ declare interface WorkbenchBreadcrumbState {
|
|
|
1412
1623
|
items: WorkbenchBreadcrumbItem[] | undefined;
|
|
1413
1624
|
}
|
|
1414
1625
|
|
|
1626
|
+
declare interface WorkbenchClosedSubPanel {
|
|
1627
|
+
region: WorkbenchPanelRegion;
|
|
1628
|
+
reference: WorkbenchSubPanelRef;
|
|
1629
|
+
resource?: ResourceRef;
|
|
1630
|
+
title?: string;
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1415
1633
|
declare interface WorkbenchCommandExecutionContext {
|
|
1416
1634
|
resource?: ResourceRef;
|
|
1635
|
+
source?: "panel-add";
|
|
1417
1636
|
}
|
|
1418
1637
|
|
|
1419
1638
|
declare interface WorkbenchCommandExecutionError {
|
|
@@ -1468,6 +1687,7 @@ declare interface WorkbenchCommandParamsRequest {
|
|
|
1468
1687
|
}
|
|
1469
1688
|
|
|
1470
1689
|
declare interface WorkbenchCore extends WorkbenchCoreContributionContext {
|
|
1690
|
+
host: WorkbenchHost;
|
|
1471
1691
|
registerModule(module: WorkbenchModuleContribution): Disposable_2;
|
|
1472
1692
|
unregisterModule(moduleId: string): void;
|
|
1473
1693
|
}
|
|
@@ -1491,7 +1711,8 @@ declare interface WorkbenchCoreContributionContext {
|
|
|
1491
1711
|
renderers: WorkbenchRenderers;
|
|
1492
1712
|
resources: ResourceRegistry;
|
|
1493
1713
|
settings: SettingsRegistry;
|
|
1494
|
-
|
|
1714
|
+
shell: WorkbenchShellController;
|
|
1715
|
+
sidePanel: WorkbenchSidePanelController;
|
|
1495
1716
|
terminal: WorkbenchTerminalController;
|
|
1496
1717
|
themes: ThemeRegistry;
|
|
1497
1718
|
fileIconThemes: FileIconThemeRegistry;
|
|
@@ -1504,7 +1725,7 @@ declare interface WorkbenchCoreContributionContext {
|
|
|
1504
1725
|
export declare interface WorkbenchExtensionCommandContext {
|
|
1505
1726
|
executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
|
|
1506
1727
|
projectId: string;
|
|
1507
|
-
workbench:
|
|
1728
|
+
workbench: WorkbenchModuleContext;
|
|
1508
1729
|
}
|
|
1509
1730
|
|
|
1510
1731
|
export declare interface WorkbenchExtensionCommandPaletteRegistration {
|
|
@@ -1519,67 +1740,58 @@ export declare interface WorkbenchExtensionControlsAdapter {
|
|
|
1519
1740
|
resolveResource?: (record: WorkbenchExtensionControlsRendererRecord) => ResourceRef | undefined;
|
|
1520
1741
|
}
|
|
1521
1742
|
|
|
1522
|
-
export declare interface
|
|
1743
|
+
export declare interface WorkbenchExtensionKanbanRendererAdapter {
|
|
1523
1744
|
/** Override label resolution. Defaults to workbench's `text(value, fallback)`. */
|
|
1524
1745
|
resolveLabel?: Localizer;
|
|
1525
1746
|
/** Post-process an attribute descriptor (after localization). Defaults to identity. */
|
|
1526
|
-
decorateAttribute?: (record:
|
|
1747
|
+
decorateAttribute?: (record: WorkbenchExtensionKanbanRendererRecord, attribute: AttributeDescriptor) => AttributeDescriptor;
|
|
1527
1748
|
/**
|
|
1528
1749
|
* Translate a row's transport-shaped resource (`{ type, id }`) into a workbench
|
|
1529
1750
|
* `ResourceRef`. Defaults to the workbench `pstdio://extension-resource/...`
|
|
1530
1751
|
* scheme — dashboard supplies its own. Returns `undefined` for rows that do not
|
|
1531
1752
|
* carry an explicit resource.
|
|
1532
1753
|
*/
|
|
1533
|
-
resolveRowResource?: (record:
|
|
1754
|
+
resolveRowResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow_2) => ResourceRef | undefined;
|
|
1534
1755
|
/**
|
|
1535
1756
|
* Synthesize a `ResourceRef` for row-action execution context when the row does
|
|
1536
1757
|
* not carry an explicit resource. Defaults to a `pstdio://extension-resource/`
|
|
1537
1758
|
* fallback built from `record.resourceKind` and `row.id`.
|
|
1538
1759
|
*/
|
|
1539
|
-
resolveRowActionResource?: (record:
|
|
1760
|
+
resolveRowActionResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow_2) => ResourceRef | undefined;
|
|
1540
1761
|
/**
|
|
1541
1762
|
* Override the row-action runner. `runDefault` performs the workbench's standard
|
|
1542
1763
|
* flow (look up the row-action command, request params if needed, execute it).
|
|
1543
1764
|
*/
|
|
1544
1765
|
executeRowAction?: (input: {
|
|
1545
|
-
record:
|
|
1766
|
+
record: WorkbenchExtensionKanbanRendererRecord;
|
|
1546
1767
|
action: RowAction;
|
|
1547
|
-
row:
|
|
1768
|
+
row: KanbanRendererRow_2;
|
|
1548
1769
|
resource: ResourceRef | undefined;
|
|
1549
1770
|
runDefault: () => Promise<void>;
|
|
1550
1771
|
}) => void | Promise<void>;
|
|
1551
1772
|
/**
|
|
1552
|
-
* Override the row click handler. When unset the
|
|
1773
|
+
* Override the row click handler. When unset the panel layer falls back to
|
|
1553
1774
|
* opening the row's resource via `ctx.resources.openResource` — set this to
|
|
1554
|
-
* intercept the click (e.g. swallow rejections when no
|
|
1775
|
+
* intercept the click (e.g. swallow rejections when no presenter exists yet).
|
|
1555
1776
|
*/
|
|
1556
1777
|
onRowClick?: (input: {
|
|
1557
|
-
record:
|
|
1558
|
-
row:
|
|
1778
|
+
record: WorkbenchExtensionKanbanRendererRecord;
|
|
1779
|
+
row: KanbanRendererRow_2;
|
|
1559
1780
|
resource: ResourceRef | undefined;
|
|
1560
1781
|
}) => void;
|
|
1561
|
-
/**
|
|
1562
|
-
* Override the inline-create handler. `executeDefault` runs the record's create
|
|
1563
|
-
* command with the column param. When omitted, the default executes and any
|
|
1564
|
-
* configured `onAfterCreate` runs with the returned value.
|
|
1565
|
-
*/
|
|
1566
|
-
onCreateRow?: (input: {
|
|
1567
|
-
record: WorkbenchExtensionDataRendererRecord;
|
|
1568
|
-
columnId: string;
|
|
1569
|
-
executeDefault: () => Promise<unknown>;
|
|
1570
|
-
}) => void;
|
|
1571
|
-
/** Called after a successful default create (when `onCreateRow` is not provided). */
|
|
1782
|
+
/** Called after a successful renderer-owned create form submission. */
|
|
1572
1783
|
onAfterCreate?: (input: {
|
|
1573
|
-
record:
|
|
1784
|
+
record: WorkbenchExtensionKanbanRendererRecord;
|
|
1574
1785
|
created: unknown;
|
|
1575
|
-
|
|
1786
|
+
submission: KanbanRendererCreateSubmission;
|
|
1787
|
+
}) => void | Promise<void>;
|
|
1576
1788
|
/**
|
|
1577
1789
|
* Called after any mutation (attribute change, reorder, column action, default
|
|
1578
1790
|
* create) resolves successfully. Hosts that drive refresh via the outer command
|
|
1579
1791
|
* pipeline (testbench / workbench) leave this unset; dashboard supplies
|
|
1580
|
-
* `ctx.renderers.
|
|
1792
|
+
* `ctx.renderers.refreshKanbanRenderer(id)`.
|
|
1581
1793
|
*/
|
|
1582
|
-
onAfterMutation?: (record:
|
|
1794
|
+
onAfterMutation?: (record: WorkbenchExtensionKanbanRendererRecord) => void;
|
|
1583
1795
|
}
|
|
1584
1796
|
|
|
1585
1797
|
export declare interface WorkbenchExtensionMenuRegistration {
|
|
@@ -1612,22 +1824,33 @@ declare interface WorkbenchFileIconThemeStoreState {
|
|
|
1612
1824
|
themes: readonly FileIconThemePreferenceOption[];
|
|
1613
1825
|
}
|
|
1614
1826
|
|
|
1615
|
-
declare type
|
|
1616
|
-
|
|
1617
|
-
declare const workbenchFocusAreas: readonly ["activityBar", "sideBar", "main", "panel", "statusBar"];
|
|
1827
|
+
declare type WorkbenchFloatingPanelVisibility = "visible" | "hidden";
|
|
1618
1828
|
|
|
1619
|
-
declare type WorkbenchFocusChangeListener = (
|
|
1829
|
+
declare type WorkbenchFocusChangeListener = (region: WorkbenchFocusRegionId | undefined) => void;
|
|
1620
1830
|
|
|
1621
1831
|
declare interface WorkbenchFocusController {
|
|
1622
1832
|
store: WorkbenchStore<WorkbenchFocusState>;
|
|
1623
|
-
|
|
1833
|
+
setActiveRegion(region: WorkbenchFocusRegionId): void;
|
|
1624
1834
|
clearFocus(): void;
|
|
1625
|
-
|
|
1835
|
+
getActiveRegion(): WorkbenchFocusRegionId | undefined;
|
|
1626
1836
|
onDidChange(listener: WorkbenchFocusChangeListener): Disposable_2;
|
|
1627
1837
|
}
|
|
1628
1838
|
|
|
1839
|
+
declare type WorkbenchFocusRegionId = (typeof workbenchFocusRegions)[number];
|
|
1840
|
+
|
|
1841
|
+
declare const workbenchFocusRegions: readonly ["activity", "sidenav", "main", "secondary", "side", "status"];
|
|
1842
|
+
|
|
1629
1843
|
declare interface WorkbenchFocusState {
|
|
1630
|
-
|
|
1844
|
+
activeRegion: WorkbenchFocusRegionId | undefined;
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
declare interface WorkbenchHost {
|
|
1848
|
+
getSnapshot(): WorkbenchSnapshot;
|
|
1849
|
+
restoreSnapshot(snapshot: WorkbenchSnapshot): void;
|
|
1850
|
+
setPersistenceScope(scope: string | undefined, input?: {
|
|
1851
|
+
carryRegions?: readonly WorkbenchRegion[];
|
|
1852
|
+
}): void;
|
|
1853
|
+
getPersistenceScope(): string | undefined;
|
|
1631
1854
|
}
|
|
1632
1855
|
|
|
1633
1856
|
declare interface WorkbenchLastResourceController {
|
|
@@ -1637,8 +1860,10 @@ declare interface WorkbenchLastResourceController {
|
|
|
1637
1860
|
}
|
|
1638
1861
|
|
|
1639
1862
|
declare interface WorkbenchLayout {
|
|
1640
|
-
|
|
1863
|
+
regions: Record<WorkbenchRegion, WorkbenchRegionState>;
|
|
1864
|
+
locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion, string>>>;
|
|
1641
1865
|
activeWidgetId?: string;
|
|
1866
|
+
activeLocationWidgetId?: string;
|
|
1642
1867
|
activeResourceUri?: string;
|
|
1643
1868
|
}
|
|
1644
1869
|
|
|
@@ -1647,7 +1872,25 @@ declare type WorkbenchLayoutModel = LayoutModel & MenuRegistry;
|
|
|
1647
1872
|
declare interface WorkbenchLayoutStoreState {
|
|
1648
1873
|
layout: WorkbenchLayout;
|
|
1649
1874
|
widgets: Record<string, RegisteredWidgetContribution>;
|
|
1650
|
-
placeholders: Partial<Record<
|
|
1875
|
+
placeholders: Partial<Record<WorkbenchRegion, RegisteredPlaceholderContribution>>;
|
|
1876
|
+
}
|
|
1877
|
+
|
|
1878
|
+
declare type WorkbenchLocationContribution = Omit<WidgetContribution, "role"> & WorkbenchPanelMenusContribution;
|
|
1879
|
+
|
|
1880
|
+
declare interface WorkbenchLocationEligibility {
|
|
1881
|
+
modeIds?: string[];
|
|
1882
|
+
resourceKinds?: string[];
|
|
1883
|
+
resourceIds?: string[];
|
|
1884
|
+
canOpen?(resource: ResourceRef): boolean;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
declare interface WorkbenchLocationRef {
|
|
1888
|
+
key: string;
|
|
1889
|
+
modeId?: string;
|
|
1890
|
+
resource?: ResourceRef;
|
|
1891
|
+
contributionId?: string;
|
|
1892
|
+
instanceKey?: string;
|
|
1893
|
+
title?: string;
|
|
1651
1894
|
}
|
|
1652
1895
|
|
|
1653
1896
|
declare type WorkbenchModeActivationContext = WorkbenchCoreContributionContext;
|
|
@@ -1659,16 +1902,24 @@ declare type WorkbenchModeChangeListener = () => void;
|
|
|
1659
1902
|
declare interface WorkbenchModeContribution {
|
|
1660
1903
|
id: string;
|
|
1661
1904
|
label?: string;
|
|
1905
|
+
panels?: readonly WorkbenchPanelRegion[];
|
|
1662
1906
|
activate(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
|
|
1907
|
+
seed?(ctx: WorkbenchModeActivationContext): void;
|
|
1908
|
+
enter?(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
|
|
1663
1909
|
}
|
|
1664
1910
|
|
|
1665
1911
|
declare interface WorkbenchModeRegistry {
|
|
1666
1912
|
store: WorkbenchStore<WorkbenchModeStoreState>;
|
|
1913
|
+
dispose(): void;
|
|
1667
1914
|
registerMode(mode: WorkbenchModeContribution): Disposable_2;
|
|
1668
1915
|
getMode(id: string): WorkbenchModeContribution | undefined;
|
|
1669
1916
|
listModes(): WorkbenchModeContribution[];
|
|
1670
1917
|
getActiveModeId(): string | undefined;
|
|
1671
|
-
|
|
1918
|
+
isTransitioning(): boolean;
|
|
1919
|
+
setActiveMode(id: string | undefined, input?: {
|
|
1920
|
+
deferSeed?: boolean;
|
|
1921
|
+
}): void;
|
|
1922
|
+
seedActiveMode(): void;
|
|
1672
1923
|
onDidChangeActive(listener: WorkbenchModeChangeListener): Disposable_2;
|
|
1673
1924
|
}
|
|
1674
1925
|
|
|
@@ -1679,6 +1930,8 @@ declare interface WorkbenchModeStoreState {
|
|
|
1679
1930
|
|
|
1680
1931
|
declare type WorkbenchModuleActivationResult = Disposable_2 | readonly Disposable_2[] | undefined;
|
|
1681
1932
|
|
|
1933
|
+
declare type WorkbenchModuleContext = WorkbenchCoreContributionContext;
|
|
1934
|
+
|
|
1682
1935
|
declare interface WorkbenchModuleContribution {
|
|
1683
1936
|
id: string;
|
|
1684
1937
|
source?: ContributionSource;
|
|
@@ -1686,7 +1939,21 @@ declare interface WorkbenchModuleContribution {
|
|
|
1686
1939
|
activate(ctx: WorkbenchModuleContributionContext): WorkbenchModuleActivationResult;
|
|
1687
1940
|
}
|
|
1688
1941
|
|
|
1689
|
-
declare type WorkbenchModuleContributionContext =
|
|
1942
|
+
declare type WorkbenchModuleContributionContext = WorkbenchModuleContext;
|
|
1943
|
+
|
|
1944
|
+
declare interface WorkbenchNavigationEntry {
|
|
1945
|
+
entryId: string;
|
|
1946
|
+
recordedAt: number;
|
|
1947
|
+
location: WorkbenchLocationRef;
|
|
1948
|
+
selectedSubPanels: Partial<Record<WorkbenchPanelRegion, WorkbenchSubPanelRef>>;
|
|
1949
|
+
kind: "resource" | "widget" | "mode";
|
|
1950
|
+
modeId?: string;
|
|
1951
|
+
resource?: ResourceRef;
|
|
1952
|
+
widgetId?: string;
|
|
1953
|
+
contributionId?: string;
|
|
1954
|
+
title?: string;
|
|
1955
|
+
closedSubPanel?: WorkbenchClosedSubPanel;
|
|
1956
|
+
}
|
|
1690
1957
|
|
|
1691
1958
|
declare interface WorkbenchNotification {
|
|
1692
1959
|
id?: string;
|
|
@@ -1705,12 +1972,6 @@ declare interface WorkbenchNotificationAction {
|
|
|
1705
1972
|
args?: unknown;
|
|
1706
1973
|
}
|
|
1707
1974
|
|
|
1708
|
-
declare interface WorkbenchNotificationAction_2 {
|
|
1709
|
-
commandId: string;
|
|
1710
|
-
title: string;
|
|
1711
|
-
args?: unknown;
|
|
1712
|
-
}
|
|
1713
|
-
|
|
1714
1975
|
declare type WorkbenchNotificationEvent = {
|
|
1715
1976
|
type: "show";
|
|
1716
1977
|
id: string;
|
|
@@ -1722,26 +1983,193 @@ declare type WorkbenchNotificationEvent = {
|
|
|
1722
1983
|
|
|
1723
1984
|
declare type WorkbenchNotificationLevel = "info" | "success" | "warning" | "error";
|
|
1724
1985
|
|
|
1725
|
-
declare type WorkbenchNotificationLevel_2 = "info" | "success" | "warning" | "error";
|
|
1726
|
-
|
|
1727
1986
|
declare type WorkbenchNotificationListener = (event: WorkbenchNotificationEvent) => void;
|
|
1728
1987
|
|
|
1729
1988
|
declare interface WorkbenchNotificationStoreState {
|
|
1730
1989
|
notifications: Record<string, RegisteredWorkbenchNotification>;
|
|
1731
1990
|
}
|
|
1732
1991
|
|
|
1992
|
+
declare interface WorkbenchPanelContribution {
|
|
1993
|
+
id: string;
|
|
1994
|
+
title: string;
|
|
1995
|
+
icon?: string;
|
|
1996
|
+
region: WorkbenchRegion;
|
|
1997
|
+
fallbackRegion?: WorkbenchRegion;
|
|
1998
|
+
rendererId: string;
|
|
1999
|
+
closable: boolean;
|
|
2000
|
+
singleton?: boolean;
|
|
2001
|
+
reuse?: WorkbenchPanelReusePolicy;
|
|
2002
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
2003
|
+
hiddenByDefault?: boolean;
|
|
2004
|
+
regionSize?: WorkbenchRegionSize;
|
|
2005
|
+
regionCollapsible?: boolean;
|
|
2006
|
+
headerBorderBottom?: boolean;
|
|
2007
|
+
floatingPanels?: WorkbenchFloatingPanelVisibility;
|
|
2008
|
+
resourceKinds?: string[];
|
|
2009
|
+
eligibleLocations?: WorkbenchLocationEligibility;
|
|
2010
|
+
priority?: number;
|
|
2011
|
+
openCommandId?: string;
|
|
2012
|
+
tab?: WorkbenchPanelTab;
|
|
2013
|
+
config?: unknown;
|
|
2014
|
+
canOpen?(resource: ResourceRef): boolean;
|
|
2015
|
+
ownerId?: string;
|
|
2016
|
+
source?: ContributionSource;
|
|
2017
|
+
panelMenus?: readonly WorkbenchPanelMenuDefinition[];
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
declare interface WorkbenchPanelInstance {
|
|
2021
|
+
instanceId: string;
|
|
2022
|
+
panelId: string;
|
|
2023
|
+
ownerId?: string;
|
|
2024
|
+
source?: ContributionSource;
|
|
2025
|
+
resource?: ResourceRef;
|
|
2026
|
+
resourceUri?: string;
|
|
2027
|
+
ownerResourceUri?: string;
|
|
2028
|
+
title?: string;
|
|
2029
|
+
pinned?: boolean;
|
|
2030
|
+
closable: boolean;
|
|
2031
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
2032
|
+
hiddenByDefault?: boolean;
|
|
2033
|
+
tabRetention?: WorkbenchTabRetention;
|
|
2034
|
+
tab?: WorkbenchPanelTab;
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
declare interface WorkbenchPanelInstance_2 {
|
|
2038
|
+
instanceId: string;
|
|
2039
|
+
panelId: string;
|
|
2040
|
+
ownerId?: string;
|
|
2041
|
+
source?: ContributionSource_2;
|
|
2042
|
+
resource?: ResourceRef_2;
|
|
2043
|
+
resourceUri?: string;
|
|
2044
|
+
ownerResourceUri?: string;
|
|
2045
|
+
title?: string;
|
|
2046
|
+
pinned?: boolean;
|
|
2047
|
+
closable: boolean;
|
|
2048
|
+
mountStrategy?: WorkbenchPanelMountStrategy_2;
|
|
2049
|
+
hiddenByDefault?: boolean;
|
|
2050
|
+
tabRetention?: WorkbenchTabRetention_2;
|
|
2051
|
+
tab?: WorkbenchPanelTab_2;
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
declare type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion" | "role"> & {
|
|
2055
|
+
region: WorkbenchPanelMenuRegion;
|
|
2056
|
+
fallbackRegion?: WorkbenchPanelMenuRegion;
|
|
2057
|
+
};
|
|
2058
|
+
|
|
2059
|
+
declare interface WorkbenchPanelMenuDefinition {
|
|
2060
|
+
id: string;
|
|
2061
|
+
title: string;
|
|
2062
|
+
icon?: string;
|
|
2063
|
+
side: WorkbenchPanelMenuSide;
|
|
2064
|
+
singleton?: boolean;
|
|
2065
|
+
reuse?: WorkbenchPanelReusePolicy;
|
|
2066
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
2067
|
+
hiddenByDefault?: boolean;
|
|
2068
|
+
regionSize?: WorkbenchRegionSize;
|
|
2069
|
+
regionCollapsible?: boolean;
|
|
2070
|
+
headerBorderBottom?: boolean;
|
|
2071
|
+
rendererId: string;
|
|
2072
|
+
priority?: number;
|
|
2073
|
+
config?: unknown;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
declare type WorkbenchPanelMenuOwner = {
|
|
2077
|
+
level: "panel";
|
|
2078
|
+
contributionId?: string;
|
|
2079
|
+
} | {
|
|
2080
|
+
level: "sub-panel";
|
|
2081
|
+
contributionId: string;
|
|
2082
|
+
};
|
|
2083
|
+
|
|
2084
|
+
declare type WorkbenchPanelMenuRegion = (typeof workbenchPanelMenuRegions)[WorkbenchPanelRegion][WorkbenchPanelMenuSide];
|
|
2085
|
+
|
|
2086
|
+
declare const workbenchPanelMenuRegions: {
|
|
2087
|
+
readonly main: {
|
|
2088
|
+
readonly left: "main-left-menu";
|
|
2089
|
+
readonly right: "main-right-menu";
|
|
2090
|
+
};
|
|
2091
|
+
readonly secondary: {
|
|
2092
|
+
readonly left: "secondary-left-menu";
|
|
2093
|
+
readonly right: "secondary-right-menu";
|
|
2094
|
+
};
|
|
2095
|
+
readonly side: {
|
|
2096
|
+
readonly left: "side-left-menu";
|
|
2097
|
+
readonly right: "side-right-menu";
|
|
2098
|
+
};
|
|
2099
|
+
};
|
|
2100
|
+
|
|
2101
|
+
declare interface WorkbenchPanelMenusContribution {
|
|
2102
|
+
panelMenus?: readonly WorkbenchPanelMenuDefinition[];
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
declare type WorkbenchPanelMenuSide = "left" | "right";
|
|
2106
|
+
|
|
2107
|
+
declare type WorkbenchPanelMountStrategy = WidgetMountStrategy;
|
|
2108
|
+
|
|
2109
|
+
declare type WorkbenchPanelMountStrategy_2 = WidgetMountStrategy_2;
|
|
2110
|
+
|
|
2111
|
+
declare type WorkbenchPanelOpenStrategy = {
|
|
2112
|
+
kind: "activate-or-open";
|
|
2113
|
+
position?: WorkbenchTabPosition;
|
|
2114
|
+
} | {
|
|
2115
|
+
kind: "replace-active";
|
|
2116
|
+
} | {
|
|
2117
|
+
kind: "replace-panel";
|
|
2118
|
+
instanceId: string;
|
|
2119
|
+
} | {
|
|
2120
|
+
kind: "preview";
|
|
2121
|
+
position?: WorkbenchTabPosition;
|
|
2122
|
+
};
|
|
2123
|
+
|
|
2124
|
+
declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
|
|
2125
|
+
|
|
2126
|
+
declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
|
|
2127
|
+
|
|
2128
|
+
declare interface WorkbenchPanelRenderInput {
|
|
2129
|
+
workbench: WorkbenchCore;
|
|
2130
|
+
panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
|
|
2131
|
+
instance: WorkbenchPanelInstance;
|
|
2132
|
+
refresh: () => void;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
declare type WorkbenchPanelReusePolicy = WidgetReusePolicy;
|
|
2136
|
+
|
|
1733
2137
|
declare type WorkbenchPanelsChangeListener = (state: WorkbenchPanelsState) => void;
|
|
1734
2138
|
|
|
1735
2139
|
declare interface WorkbenchPanelsController {
|
|
1736
2140
|
store: WorkbenchStore<WorkbenchPanelsState>;
|
|
1737
|
-
isOpen(
|
|
1738
|
-
setOpen(
|
|
1739
|
-
toggle(
|
|
2141
|
+
isOpen(regionId: string): boolean;
|
|
2142
|
+
setOpen(regionId: string, open: boolean): void;
|
|
2143
|
+
toggle(regionId: string): void;
|
|
2144
|
+
setPersistenceScope(scope: string | undefined): void;
|
|
2145
|
+
getPersistenceScope(): string | undefined;
|
|
1740
2146
|
onDidChange(listener: WorkbenchPanelsChangeListener): Disposable_2;
|
|
1741
2147
|
}
|
|
1742
2148
|
|
|
1743
2149
|
declare interface WorkbenchPanelsState {
|
|
1744
|
-
|
|
2150
|
+
openByRegionId: Record<string, boolean>;
|
|
2151
|
+
}
|
|
2152
|
+
|
|
2153
|
+
declare type WorkbenchPanelTab = WorkbenchWidgetTab;
|
|
2154
|
+
|
|
2155
|
+
declare type WorkbenchPanelTab_2 = WorkbenchWidgetTab_2;
|
|
2156
|
+
|
|
2157
|
+
declare type WorkbenchRegion = (typeof workbenchRegions)[number];
|
|
2158
|
+
|
|
2159
|
+
declare const workbenchRegions: readonly ["nav", "activity", "sidenav-header", "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"];
|
|
2160
|
+
|
|
2161
|
+
declare interface WorkbenchRegionSize {
|
|
2162
|
+
defaultPx?: number;
|
|
2163
|
+
minPx?: number;
|
|
2164
|
+
maxPx?: number;
|
|
2165
|
+
}
|
|
2166
|
+
|
|
2167
|
+
declare interface WorkbenchRegionState {
|
|
2168
|
+
id: WorkbenchRegion;
|
|
2169
|
+
visible: boolean;
|
|
2170
|
+
size?: number;
|
|
2171
|
+
widgets: WorkbenchWidgetPlacement[];
|
|
2172
|
+
activeWidgetId?: string;
|
|
1745
2173
|
}
|
|
1746
2174
|
|
|
1747
2175
|
declare type WorkbenchRendererChangeListener = () => void;
|
|
@@ -1749,7 +2177,7 @@ declare type WorkbenchRendererChangeListener = () => void;
|
|
|
1749
2177
|
declare type WorkbenchRendererRegistration = {
|
|
1750
2178
|
id: string;
|
|
1751
2179
|
keepAlive?: false;
|
|
1752
|
-
render: (input:
|
|
2180
|
+
render: (input: WorkbenchPanelRenderInput) => unknown;
|
|
1753
2181
|
} | {
|
|
1754
2182
|
id: string;
|
|
1755
2183
|
keepAlive: true;
|
|
@@ -1762,32 +2190,54 @@ declare interface WorkbenchRendererRegistry {
|
|
|
1762
2190
|
getRenderer(id: string): WorkbenchRendererRegistration | undefined;
|
|
1763
2191
|
listRenderers(): WorkbenchRendererRegistration[];
|
|
1764
2192
|
onDidChange(listener: WorkbenchRendererChangeListener): Disposable_2;
|
|
1765
|
-
claim(rendererId: string, slot: HTMLElement, input:
|
|
2193
|
+
claim(rendererId: string, slot: HTMLElement, input: WorkbenchPanelRenderInput): Disposable_2;
|
|
1766
2194
|
getHost(rendererId: string): HTMLElement | undefined;
|
|
1767
|
-
getClaim(rendererId: string):
|
|
2195
|
+
getClaim(rendererId: string): WorkbenchPanelRenderInput | undefined;
|
|
1768
2196
|
}
|
|
1769
2197
|
|
|
1770
|
-
declare type WorkbenchRenderers = WorkbenchRendererRegistry & TreeRendererRegistry &
|
|
2198
|
+
declare type WorkbenchRenderers = WorkbenchRendererRegistry & TreeRendererRegistry & KanbanRendererRegistry & DataTableRendererRegistry & FileRendererRegistry & ControlsRendererRegistry;
|
|
1771
2199
|
|
|
1772
2200
|
declare interface WorkbenchRendererStoreState {
|
|
1773
2201
|
renderers: Record<string, WorkbenchRendererRegistration>;
|
|
1774
2202
|
hosts: Record<string, RegisteredKeepAliveHost>;
|
|
1775
|
-
claims: Record<string,
|
|
2203
|
+
claims: Record<string, WorkbenchPanelRenderInput>;
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
declare interface WorkbenchShellController {
|
|
2207
|
+
getRegionState(region: WorkbenchRegion): WorkbenchShellRegionState;
|
|
2208
|
+
setRegionOpen(region: WorkbenchShellOpenRegion, open: boolean): void;
|
|
2209
|
+
setRegionSize(region: WorkbenchRegion, size: number): void;
|
|
2210
|
+
getSidePanelPresentation(): WorkbenchSidePanelPresentation;
|
|
2211
|
+
setSidePanelPresentation(presentation: WorkbenchSidePanelPresentation): void;
|
|
2212
|
+
onDidChange(listener: () => void): Disposable_2;
|
|
1776
2213
|
}
|
|
1777
2214
|
|
|
1778
|
-
declare type
|
|
2215
|
+
declare type WorkbenchShellOpenRegion = "sidenav" | "secondary" | WorkbenchPanelMenuRegion;
|
|
1779
2216
|
|
|
1780
|
-
declare interface
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
2217
|
+
declare interface WorkbenchShellRegionState {
|
|
2218
|
+
open: boolean;
|
|
2219
|
+
size?: number;
|
|
2220
|
+
}
|
|
2221
|
+
|
|
2222
|
+
declare type WorkbenchSidePanelChangeListener = (mode: WorkbenchSidePanelMode) => void;
|
|
2223
|
+
|
|
2224
|
+
declare interface WorkbenchSidePanelController {
|
|
2225
|
+
store: WorkbenchStore<WorkbenchSidePanelState>;
|
|
2226
|
+
getMode(): WorkbenchSidePanelMode;
|
|
2227
|
+
setMode(mode: WorkbenchSidePanelMode): void;
|
|
2228
|
+
onDidChange(listener: WorkbenchSidePanelChangeListener): Disposable_2;
|
|
1785
2229
|
}
|
|
1786
2230
|
|
|
1787
|
-
declare type
|
|
2231
|
+
declare type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
|
|
2232
|
+
|
|
2233
|
+
declare type WorkbenchSidePanelPresentation = WorkbenchSidePanelMode;
|
|
1788
2234
|
|
|
1789
|
-
declare interface
|
|
1790
|
-
mode:
|
|
2235
|
+
declare interface WorkbenchSidePanelState {
|
|
2236
|
+
mode: WorkbenchSidePanelMode;
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2239
|
+
declare interface WorkbenchSnapshot {
|
|
2240
|
+
layout: WorkbenchLayout;
|
|
1791
2241
|
}
|
|
1792
2242
|
|
|
1793
2243
|
declare interface WorkbenchStore<TState> {
|
|
@@ -1806,6 +2256,27 @@ declare type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
|
|
|
1806
2256
|
|
|
1807
2257
|
declare type WorkbenchStoreSelectorListener<TValue> = (value: TValue, previousValue: TValue) => void;
|
|
1808
2258
|
|
|
2259
|
+
declare type WorkbenchSubPanelContribution = Omit<WidgetContribution, "region" | "fallbackRegion" | "role"> & {
|
|
2260
|
+
region: WorkbenchPanelRegion;
|
|
2261
|
+
fallbackRegion?: WorkbenchPanelRegion;
|
|
2262
|
+
} & WorkbenchPanelMenusContribution;
|
|
2263
|
+
|
|
2264
|
+
declare interface WorkbenchSubPanelRef {
|
|
2265
|
+
contributionId: string;
|
|
2266
|
+
resourceUri?: string;
|
|
2267
|
+
instanceKey?: string;
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
declare type WorkbenchTabPosition = "start" | "end" | {
|
|
2271
|
+
beforeWidgetId: string;
|
|
2272
|
+
} | {
|
|
2273
|
+
afterWidgetId: string;
|
|
2274
|
+
};
|
|
2275
|
+
|
|
2276
|
+
declare type WorkbenchTabRetention = "preview" | "persistent";
|
|
2277
|
+
|
|
2278
|
+
declare type WorkbenchTabRetention_2 = "preview" | "persistent";
|
|
2279
|
+
|
|
1809
2280
|
declare interface WorkbenchTerminalController {
|
|
1810
2281
|
store: WorkbenchStore<WorkbenchTerminalState>;
|
|
1811
2282
|
/** True once the host injected a session opener. */
|
|
@@ -1899,18 +2370,29 @@ declare interface WorkbenchWidgetPlacement {
|
|
|
1899
2370
|
source?: ContributionSource;
|
|
1900
2371
|
resource?: ResourceRef;
|
|
1901
2372
|
resourceUri?: string;
|
|
2373
|
+
ownerResourceUri?: string;
|
|
1902
2374
|
title?: string;
|
|
1903
2375
|
pinned?: boolean;
|
|
1904
2376
|
closable?: boolean;
|
|
1905
2377
|
mountStrategy?: WidgetMountStrategy;
|
|
1906
2378
|
hiddenByDefault?: boolean;
|
|
2379
|
+
tabRetention?: WorkbenchTabRetention;
|
|
2380
|
+
tab?: WorkbenchWidgetTab;
|
|
2381
|
+
role?: WorkbenchWidgetRole;
|
|
1907
2382
|
}
|
|
1908
2383
|
|
|
1909
|
-
declare
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
2384
|
+
declare type WorkbenchWidgetRole = "content" | "location" | "sub-panel" | "panel-menu";
|
|
2385
|
+
|
|
2386
|
+
declare interface WorkbenchWidgetTab {
|
|
2387
|
+
contentRendererId?: string;
|
|
2388
|
+
/** Custom actions shown when the user activates an already-active tab. */
|
|
2389
|
+
customMenuRendererId?: string;
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2392
|
+
declare interface WorkbenchWidgetTab_2 {
|
|
2393
|
+
contentRendererId?: string;
|
|
2394
|
+
/** Custom actions shown when the user activates an already-active tab. */
|
|
2395
|
+
customMenuRendererId?: string;
|
|
1914
2396
|
}
|
|
1915
2397
|
|
|
1916
2398
|
export { }
|