@pstdio/workbench 0.2.1 → 0.4.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 +749 -256
- package/dist/extensions.js +900 -694
- package/dist/extensions.js.map +1 -1
- package/dist/file-renderer-view-DrrhYnb_.js.map +1 -1
- package/dist/index.d.ts +756 -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 +745 -231
- package/dist/react.js +3494 -2493
- 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 +695 -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
|
}
|
|
@@ -127,7 +128,7 @@ declare interface CollectionSettingsPanel<TItem = unknown> extends SettingsPanel
|
|
|
127
128
|
itemLabel(item: TItem): string;
|
|
128
129
|
itemIcon?(item: TItem): string | undefined;
|
|
129
130
|
groupBy?: SettingsCollectionGroupBy<TItem>;
|
|
130
|
-
renderItem(item: TItem, input:
|
|
131
|
+
renderItem(item: TItem, input: WorkbenchPanelRenderInput): unknown;
|
|
131
132
|
actions?: SettingsAction[];
|
|
132
133
|
}
|
|
133
134
|
|
|
@@ -270,8 +271,6 @@ declare interface ControlsQueryResult {
|
|
|
270
271
|
readOnly?: boolean;
|
|
271
272
|
}
|
|
272
273
|
|
|
273
|
-
declare type ControlsRendererArea = "main-right" | "secondary" | "overlay";
|
|
274
|
-
|
|
275
274
|
declare interface ControlsRendererContribution {
|
|
276
275
|
id: string;
|
|
277
276
|
title: string;
|
|
@@ -291,12 +290,12 @@ declare interface ControlsRendererContribution {
|
|
|
291
290
|
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
292
291
|
}
|
|
293
292
|
|
|
294
|
-
declare type ControlsRendererImplementation = (input:
|
|
293
|
+
declare type ControlsRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
295
294
|
controlsRendererId: string;
|
|
296
295
|
}) => unknown;
|
|
297
296
|
|
|
298
297
|
declare interface ControlsRendererLayout {
|
|
299
|
-
|
|
298
|
+
region?: ControlsRendererRegion;
|
|
300
299
|
defaultPx?: number;
|
|
301
300
|
minPx?: number;
|
|
302
301
|
maxPx?: number;
|
|
@@ -308,6 +307,8 @@ declare interface ControlsRendererRefreshEvent {
|
|
|
308
307
|
|
|
309
308
|
declare type ControlsRendererRefreshListener = (event: ControlsRendererRefreshEvent) => void;
|
|
310
309
|
|
|
310
|
+
declare type ControlsRendererRegion = "main-right-menu" | "secondary" | "overlay";
|
|
311
|
+
|
|
311
312
|
declare interface ControlsRendererRegistry {
|
|
312
313
|
controlsStore: WorkbenchStore<ControlsRendererStoreState>;
|
|
313
314
|
registerControlsRenderer(contribution: ControlsRendererContribution, metadata?: ContributionMetadata): Disposable_2;
|
|
@@ -334,7 +335,7 @@ declare interface ControlsUpdateValueInput {
|
|
|
334
335
|
resource?: ResourceRef;
|
|
335
336
|
}
|
|
336
337
|
|
|
337
|
-
declare type ControlsViewRecord = WorkbenchExtensionMetadata["
|
|
338
|
+
declare type ControlsViewRecord = WorkbenchExtensionMetadata["panels"][number];
|
|
338
339
|
|
|
339
340
|
export declare type CreateBridgeWebviewHostCapabilities = (context: BridgeWebviewRenderContext) => HostCapabilityRegistry;
|
|
340
341
|
|
|
@@ -342,7 +343,7 @@ export declare type CreateBridgeWebviewProps = (context: BridgeWebviewRenderCont
|
|
|
342
343
|
|
|
343
344
|
export declare const createBridgeWebviewRenderer: (input?: CreateBridgeWebviewRendererInput) => {
|
|
344
345
|
id: string;
|
|
345
|
-
render: (renderInput:
|
|
346
|
+
render: (renderInput: WorkbenchPanelRenderInput) => JSX.Element | null;
|
|
346
347
|
};
|
|
347
348
|
|
|
348
349
|
declare interface CreateBridgeWebviewRendererInput {
|
|
@@ -369,8 +370,8 @@ declare interface CreateTerminalSessionCapabilityInput {
|
|
|
369
370
|
export declare const createWorkbenchWebviewHostCapabilities: (input: CreateWorkbenchWebviewHostCapabilitiesInput) => {
|
|
370
371
|
"terminal.session"?: HostCapability | undefined;
|
|
371
372
|
"commands.execute": (params: unknown) => Promise<unknown>;
|
|
372
|
-
"resource.open": (params: unknown) => Promise<
|
|
373
|
-
"notification.show": (params: unknown) =>
|
|
373
|
+
"resource.open": (params: unknown) => Promise<WorkbenchPanelInstance_2>;
|
|
374
|
+
"notification.show": (params: unknown) => RegisteredWorkbenchNotification;
|
|
374
375
|
"preferences.get": (params: unknown) => PreferenceValue | undefined;
|
|
375
376
|
"preferences.set": (params: unknown) => {
|
|
376
377
|
name: string;
|
|
@@ -392,112 +393,127 @@ declare interface CreateWorkbenchWebviewHostCapabilitiesInput {
|
|
|
392
393
|
*/
|
|
393
394
|
declare interface CustomSettingsPanel extends SettingsPanelBase {
|
|
394
395
|
kind: "custom";
|
|
395
|
-
render(input:
|
|
396
|
+
render(input: WorkbenchPanelRenderInput): unknown;
|
|
396
397
|
}
|
|
397
398
|
|
|
398
|
-
declare interface
|
|
399
|
+
declare interface DataTableRendererColumn {
|
|
400
|
+
id: string;
|
|
401
|
+
label?: string;
|
|
402
|
+
description?: string;
|
|
403
|
+
icon?: unknown;
|
|
404
|
+
hidden?: boolean;
|
|
405
|
+
stat?: DataTableRendererColumnStat;
|
|
406
|
+
renderer?: DataTableRendererColumnRenderer;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
declare type DataTableRendererColumnRenderer = {
|
|
410
|
+
type: "json";
|
|
411
|
+
} | {
|
|
412
|
+
type: "color-scale";
|
|
413
|
+
stops: Array<{
|
|
414
|
+
value: number;
|
|
415
|
+
color: DataTableRendererThemeColor;
|
|
416
|
+
}>;
|
|
417
|
+
} | {
|
|
418
|
+
type: "categorical-color";
|
|
419
|
+
categories: Array<{
|
|
420
|
+
value: string | number | boolean | null;
|
|
421
|
+
color: DataTableRendererThemeColor;
|
|
422
|
+
}>;
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
declare type DataTableRendererColumnStat = {
|
|
426
|
+
type: "unique";
|
|
427
|
+
} | {
|
|
428
|
+
type: "histogram";
|
|
429
|
+
bins?: number;
|
|
430
|
+
} | {
|
|
431
|
+
type: "top-values";
|
|
432
|
+
limit?: number;
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
declare interface DataTableRendererContribution {
|
|
399
436
|
id: string;
|
|
400
437
|
title: string;
|
|
401
438
|
resourceKind?: string;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
* `WorkbenchDataView` subscribes so additions / removals / kind changes
|
|
409
|
-
* propagate live without re-registering the renderer.
|
|
410
|
-
*/
|
|
411
|
-
attributes: AttributeDescriptor[] | AttributesSource;
|
|
412
|
-
/** Per-board-column overrides (color, drag/create rules, custom actions). */
|
|
413
|
-
getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;
|
|
414
|
-
hideToolbar?: boolean;
|
|
439
|
+
columns?: DataTableRendererColumn[];
|
|
440
|
+
selectionMode?: "none" | "multiple";
|
|
441
|
+
selectionActions?: DataTableRendererSelectionAction[];
|
|
442
|
+
rowActions?: DataTableRendererRowAction[];
|
|
443
|
+
initialPageSize?: number;
|
|
444
|
+
pageSizeOptions?: number[];
|
|
415
445
|
emptyTitle?: string;
|
|
416
446
|
emptyDescription?: string;
|
|
417
|
-
|
|
418
|
-
defaultSettings?: Partial<DataRendererSettings>;
|
|
419
|
-
defaultFilters?: DataRendererFilterState;
|
|
420
|
-
/**
|
|
421
|
-
* Data source. Receives the current display state so backends can paginate
|
|
422
|
-
* / filter / sort. The renderer re-applies filter / sort / group locally,
|
|
423
|
-
* so this can return unfiltered rows in simple cases.
|
|
424
|
-
*/
|
|
425
|
-
executeQuery(state: DataRendererQueryState): Promise<TRow[]> | TRow[];
|
|
447
|
+
executeQuery(context: DataTableRendererQueryContext): Promise<DataTableRendererQueryResult> | DataTableRendererQueryResult;
|
|
426
448
|
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
427
|
-
|
|
428
|
-
onRowClick?: (row: TRow) => void;
|
|
429
|
-
/** Per-row right-click context menu actions (mirrored from <DataRenderer>). */
|
|
430
|
-
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
431
|
-
/**
|
|
432
|
-
* Fires for inline attribute edits AND for cross-column drag-to-reorder on
|
|
433
|
-
* the board (the renderer passes the grouping attribute id + the target
|
|
434
|
-
* column value).
|
|
435
|
-
*/
|
|
436
|
-
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
437
|
-
/** Manual within-column reorder (only fires when ordering is manual). */
|
|
438
|
-
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
439
|
-
onCreateRow?: (columnId: string) => void;
|
|
440
|
-
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
449
|
+
onRowClick?: (row: DataTableRendererRow) => void;
|
|
441
450
|
}
|
|
442
451
|
|
|
443
|
-
declare type
|
|
444
|
-
|
|
445
|
-
declare type DataRendererImplementation = (input: WorkbenchWidgetRenderInput & {
|
|
446
|
-
dataRendererId: string;
|
|
452
|
+
declare type DataTableRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
453
|
+
dataTableRendererId: string;
|
|
447
454
|
}) => unknown;
|
|
448
455
|
|
|
449
|
-
declare interface
|
|
450
|
-
|
|
451
|
-
|
|
456
|
+
declare interface DataTableRendererQueryContext {
|
|
457
|
+
resource?: ResourceRef;
|
|
458
|
+
modeId?: string;
|
|
452
459
|
}
|
|
453
460
|
|
|
454
|
-
declare interface
|
|
455
|
-
|
|
456
|
-
|
|
461
|
+
declare interface DataTableRendererQueryResult {
|
|
462
|
+
rows: DataTableRendererRow[];
|
|
463
|
+
columns?: DataTableRendererColumn[];
|
|
457
464
|
}
|
|
458
465
|
|
|
459
|
-
declare interface
|
|
460
|
-
|
|
466
|
+
declare interface DataTableRendererRefreshEvent {
|
|
467
|
+
dataTableRendererId: string;
|
|
461
468
|
}
|
|
462
469
|
|
|
463
|
-
declare
|
|
470
|
+
declare interface DataTableRendererRegistry {
|
|
471
|
+
dataTableStore: WorkbenchStore<DataTableRendererStoreState>;
|
|
472
|
+
registerDataTableRenderer(contribution: DataTableRendererContribution, metadata?: ContributionMetadata): Disposable_2;
|
|
473
|
+
setDataTableRendererImplementation(implementation: DataTableRendererImplementation): void;
|
|
474
|
+
getDataTableRenderer(id: string): RegisteredDataTableRendererContribution | undefined;
|
|
475
|
+
listDataTableRenderers(): RegisteredDataTableRendererContribution[];
|
|
476
|
+
refreshDataTableRenderer(id: string): void;
|
|
477
|
+
onDidRefreshDataTableRenderer(listener: (event: DataTableRendererRefreshEvent) => void): Disposable_2;
|
|
478
|
+
}
|
|
464
479
|
|
|
465
|
-
declare interface
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
getDataRenderer(id: string): RegisteredDataRendererContribution | undefined;
|
|
470
|
-
listDataRenderers(): RegisteredDataRendererContribution[];
|
|
471
|
-
refreshDataRenderer(id: string): void;
|
|
472
|
-
onDidRefreshDataRenderer(listener: DataRendererRefreshListener): Disposable_2;
|
|
480
|
+
declare interface DataTableRendererRow {
|
|
481
|
+
id: string;
|
|
482
|
+
values: Record<string, unknown>;
|
|
483
|
+
resource?: ResourceRef;
|
|
473
484
|
}
|
|
474
485
|
|
|
475
|
-
declare interface
|
|
486
|
+
declare interface DataTableRendererRowAction {
|
|
476
487
|
id: string;
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
* resource via the workbench).
|
|
482
|
-
*/
|
|
483
|
-
resource?: unknown;
|
|
484
|
-
attributes: Record<string, unknown>;
|
|
488
|
+
label: string;
|
|
489
|
+
icon?: unknown;
|
|
490
|
+
destructive?: boolean;
|
|
491
|
+
run(row: DataTableRendererRow): Promise<void> | void;
|
|
485
492
|
}
|
|
486
493
|
|
|
487
|
-
declare
|
|
494
|
+
declare interface DataTableRendererSelectionAction {
|
|
495
|
+
id: string;
|
|
496
|
+
label: string;
|
|
497
|
+
icon?: unknown;
|
|
498
|
+
destructive?: boolean;
|
|
499
|
+
run(rows: DataTableRendererRow[]): Promise<void> | void;
|
|
500
|
+
}
|
|
488
501
|
|
|
489
|
-
declare interface
|
|
490
|
-
|
|
491
|
-
columnGrouping: string | typeof NO_GROUPING;
|
|
492
|
-
rowGrouping: string | typeof NO_GROUPING;
|
|
493
|
-
ordering: DataRendererOrdering;
|
|
494
|
-
displayProperties: string[];
|
|
502
|
+
declare interface DataTableRendererStoreState {
|
|
503
|
+
renderers: Record<string, RegisteredDataTableRendererContribution>;
|
|
495
504
|
}
|
|
496
505
|
|
|
497
|
-
declare interface
|
|
498
|
-
|
|
506
|
+
declare interface DataTableRendererThemeColor {
|
|
507
|
+
light: string;
|
|
508
|
+
dark: string;
|
|
509
|
+
foreground?: {
|
|
510
|
+
light: string;
|
|
511
|
+
dark: string;
|
|
512
|
+
};
|
|
499
513
|
}
|
|
500
514
|
|
|
515
|
+
declare type DataTableViewRecord = WorkbenchExtensionMetadata["panels"][number];
|
|
516
|
+
|
|
501
517
|
declare interface Disposable_2 {
|
|
502
518
|
dispose(): void;
|
|
503
519
|
}
|
|
@@ -511,13 +527,14 @@ export declare const emptyWorkbenchExtensionMetadata: {
|
|
|
511
527
|
modes: never[];
|
|
512
528
|
navigation: never[];
|
|
513
529
|
routes: never[];
|
|
514
|
-
|
|
530
|
+
kanbanRenderers: never[];
|
|
531
|
+
dataTableRenderers: never[];
|
|
515
532
|
treeRenderers: never[];
|
|
516
533
|
fileRenderers: never[];
|
|
517
534
|
settingsPanels: never[];
|
|
518
535
|
settingsDefinitions: never[];
|
|
519
536
|
treeItems: never[];
|
|
520
|
-
|
|
537
|
+
panels: never[];
|
|
521
538
|
};
|
|
522
539
|
|
|
523
540
|
declare interface EnumOption {
|
|
@@ -541,7 +558,7 @@ declare interface EnumOptionsSource {
|
|
|
541
558
|
|
|
542
559
|
declare type ExtensionTreeRendererRecord = NonNullable<WorkbenchExtensionMetadata["treeRenderers"]>[number];
|
|
543
560
|
|
|
544
|
-
declare type ExtensionTreeViewRecord = WorkbenchExtensionMetadata["
|
|
561
|
+
declare type ExtensionTreeViewRecord = WorkbenchExtensionMetadata["panels"][number] | NonNullable<WorkbenchExtensionMetadata["panels"][number]["panelMenus"]>[number];
|
|
545
562
|
|
|
546
563
|
export declare interface ExtensionWebviewFileCapabilities {
|
|
547
564
|
delete(params: unknown): Promise<unknown> | unknown;
|
|
@@ -601,7 +618,7 @@ declare interface FileRendererContribution {
|
|
|
601
618
|
save?(resource: ResourceRef | undefined, content: string): Promise<void> | void;
|
|
602
619
|
}
|
|
603
620
|
|
|
604
|
-
declare type FileRendererImplementation = (input:
|
|
621
|
+
declare type FileRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
605
622
|
fileRendererId: string;
|
|
606
623
|
}) => unknown;
|
|
607
624
|
|
|
@@ -632,34 +649,185 @@ declare interface HistoryController {
|
|
|
632
649
|
goPrevious(): HistoryEntry | undefined;
|
|
633
650
|
recentlyClosed(): readonly HistoryEntry[];
|
|
634
651
|
reopenLastClosed(): HistoryEntry | undefined;
|
|
652
|
+
setPersistenceScope(scope: string | undefined): void;
|
|
653
|
+
getPersistenceScope(): string | undefined;
|
|
654
|
+
restore(): HistoryEntry | undefined;
|
|
655
|
+
flush(): void;
|
|
635
656
|
clear(): void;
|
|
636
657
|
}
|
|
637
658
|
|
|
638
|
-
declare
|
|
639
|
-
entryId: string;
|
|
640
|
-
recordedAt: number;
|
|
641
|
-
kind: "resource" | "widget" | "mode";
|
|
642
|
-
modeId?: string;
|
|
643
|
-
resource?: ResourceRef;
|
|
644
|
-
widgetId?: string;
|
|
645
|
-
contributionId?: string;
|
|
646
|
-
title?: string;
|
|
647
|
-
}
|
|
659
|
+
declare type HistoryEntry = WorkbenchNavigationEntry;
|
|
648
660
|
|
|
649
661
|
declare interface HistoryStoreState {
|
|
650
|
-
entries: readonly
|
|
662
|
+
entries: readonly WorkbenchNavigationEntry[];
|
|
651
663
|
cursor: number;
|
|
652
|
-
recentlyClosed: readonly
|
|
664
|
+
recentlyClosed: readonly WorkbenchNavigationEntry[];
|
|
665
|
+
hydrating: boolean;
|
|
653
666
|
}
|
|
654
667
|
|
|
655
668
|
declare interface HostTreeDefaultNodesInput {
|
|
656
669
|
ctx: TreeContext;
|
|
657
670
|
record: ExtensionTreeRendererRecord;
|
|
658
|
-
|
|
671
|
+
panel: ExtensionTreeViewRecord;
|
|
659
672
|
}
|
|
660
673
|
|
|
661
674
|
declare type HostTreeDefaultNodesResolver = (input: HostTreeDefaultNodesInput) => Promise<TreeNode[]> | TreeNode[];
|
|
662
675
|
|
|
676
|
+
declare interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow> {
|
|
677
|
+
id: string;
|
|
678
|
+
title: string;
|
|
679
|
+
resourceKind?: string;
|
|
680
|
+
/**
|
|
681
|
+
* Declarative attribute schema. The renderer dispatches filter / group /
|
|
682
|
+
* sort / display / inline-edit behavior on each descriptor's `type.kind`.
|
|
683
|
+
*
|
|
684
|
+
* Pass an `AttributesSource` ({ subscribe, getSnapshot }) instead of a
|
|
685
|
+
* static array to let the contribution mutate its schema at runtime —
|
|
686
|
+
* `WorkbenchKanbanView` subscribes so additions / removals / kind changes
|
|
687
|
+
* propagate live without re-registering the renderer.
|
|
688
|
+
*/
|
|
689
|
+
attributes: AttributeDescriptor[] | AttributesSource;
|
|
690
|
+
/** Per-board-column overrides (color, drag/create rules, custom actions). */
|
|
691
|
+
getBoardColumnConfig?: (groupKey: string) => BoardColumnConfig;
|
|
692
|
+
hideToolbar?: boolean;
|
|
693
|
+
emptyTitle?: string;
|
|
694
|
+
emptyDescription?: string;
|
|
695
|
+
/** Initial settings/filters applied when the kanban renderer mounts. */
|
|
696
|
+
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
697
|
+
defaultFilters?: KanbanRendererFilterState;
|
|
698
|
+
defaultViews?: KanbanRendererSavedView[];
|
|
699
|
+
defaultActiveViewId?: string;
|
|
700
|
+
/**
|
|
701
|
+
* Data source. Receives the current display state so backends can paginate
|
|
702
|
+
* / filter / sort. The renderer re-applies filter / sort / group locally,
|
|
703
|
+
* so this can return unfiltered rows in simple cases.
|
|
704
|
+
*/
|
|
705
|
+
executeQuery(state: KanbanRendererQueryState): Promise<TRow[]> | TRow[];
|
|
706
|
+
subscribe?: (listener: () => void) => Disposable_2 | (() => void);
|
|
707
|
+
/** Row interactions surfaced by the renderer (mirrored from <KanbanRenderer>). */
|
|
708
|
+
onRowClick?: (row: TRow) => void;
|
|
709
|
+
/** Per-row right-click context menu actions (mirrored from <KanbanRenderer>). */
|
|
710
|
+
getRowContextMenuActions?: (row: TRow) => ResourceContextAction[];
|
|
711
|
+
/**
|
|
712
|
+
* Fires for inline attribute edits AND for cross-column drag-to-reorder on
|
|
713
|
+
* the board (the renderer passes the grouping attribute id + the target
|
|
714
|
+
* column value).
|
|
715
|
+
*/
|
|
716
|
+
onAttributeChange?: (rowId: string, attributeId: string, value: unknown) => Promise<void> | void;
|
|
717
|
+
/** Manual within-column reorder (only fires when ordering is manual). */
|
|
718
|
+
onReorder?: (rowId: string, beforeRowId?: string) => Promise<void> | void;
|
|
719
|
+
createRow?: KanbanRendererCreateRowConfig;
|
|
720
|
+
onCreateRow?: (submission: KanbanRendererCreateSubmission) => Promise<void> | void;
|
|
721
|
+
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
declare interface KanbanRendererCreateField {
|
|
725
|
+
id: string;
|
|
726
|
+
label: string;
|
|
727
|
+
description?: string;
|
|
728
|
+
placeholder?: string;
|
|
729
|
+
type: KanbanRendererCreateFieldType;
|
|
730
|
+
required?: boolean;
|
|
731
|
+
defaultValue?: unknown;
|
|
732
|
+
options?: EnumOption[];
|
|
733
|
+
/** `files` fields only. */
|
|
734
|
+
multiple?: boolean;
|
|
735
|
+
accept?: string;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
declare type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
739
|
+
|
|
740
|
+
/** Chrome copy is supplied by the caller so the dialog ships no strings of its own. */
|
|
741
|
+
declare interface KanbanRendererCreateLabels {
|
|
742
|
+
cancel: string;
|
|
743
|
+
properties: string;
|
|
744
|
+
submitError: string;
|
|
745
|
+
removeFile: string;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
declare interface KanbanRendererCreateRowConfig {
|
|
749
|
+
title: string;
|
|
750
|
+
submitLabel: string;
|
|
751
|
+
fields: KanbanRendererCreateField[];
|
|
752
|
+
labels: KanbanRendererCreateLabels;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
declare interface KanbanRendererCreateSubmission {
|
|
756
|
+
columnId: string;
|
|
757
|
+
columnAttributeId?: string;
|
|
758
|
+
/** Declared field values, excluding `files` fields — those arrive as `files`. */
|
|
759
|
+
values: Record<string, unknown>;
|
|
760
|
+
/** Every editable attribute the user set, keyed by attribute id. */
|
|
761
|
+
attributeValues: Record<string, unknown>;
|
|
762
|
+
files: File[];
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
declare type KanbanRendererFilterState = Record<string, string[]>;
|
|
766
|
+
|
|
767
|
+
declare type KanbanRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
768
|
+
kanbanRendererId: string;
|
|
769
|
+
}) => unknown;
|
|
770
|
+
|
|
771
|
+
declare interface KanbanRendererOrdering {
|
|
772
|
+
attributeId: string | typeof MANUAL_ORDERING;
|
|
773
|
+
direction: SortDirection;
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
declare interface KanbanRendererQueryState {
|
|
777
|
+
settings: KanbanRendererSettings;
|
|
778
|
+
filters: KanbanRendererFilterState;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
declare interface KanbanRendererRefreshEvent {
|
|
782
|
+
kanbanRendererId: string;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
declare type KanbanRendererRefreshListener = (event: KanbanRendererRefreshEvent) => void;
|
|
786
|
+
|
|
787
|
+
declare interface KanbanRendererRegistry {
|
|
788
|
+
dataStore: WorkbenchStore<KanbanRendererStoreState>;
|
|
789
|
+
registerKanbanRenderer<TRow extends KanbanRendererRow = KanbanRendererRow>(contribution: KanbanRendererContribution<TRow>, metadata?: ContributionMetadata): Disposable_2;
|
|
790
|
+
setKanbanRendererImplementation(impl: KanbanRendererImplementation): void;
|
|
791
|
+
getKanbanRenderer(id: string): RegisteredKanbanRendererContribution | undefined;
|
|
792
|
+
listKanbanRenderers(): RegisteredKanbanRendererContribution[];
|
|
793
|
+
refreshKanbanRenderer(id: string): void;
|
|
794
|
+
onDidRefreshKanbanRenderer(listener: KanbanRendererRefreshListener): Disposable_2;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
declare interface KanbanRendererRow {
|
|
798
|
+
id: string;
|
|
799
|
+
title: string;
|
|
800
|
+
/**
|
|
801
|
+
* Optional navigation handle. When set, the renderer's default click handler
|
|
802
|
+
* routes through the contribution's onRowClick (which typically opens the
|
|
803
|
+
* resource via the workbench).
|
|
804
|
+
*/
|
|
805
|
+
resource?: unknown;
|
|
806
|
+
attributes: Record<string, unknown>;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
declare type KanbanRendererRow_2 = Awaited<ReturnType<KanbanRendererContribution["executeQuery"]>>[number];
|
|
810
|
+
|
|
811
|
+
declare interface KanbanRendererSavedView {
|
|
812
|
+
id: string;
|
|
813
|
+
title: string;
|
|
814
|
+
settings: KanbanRendererSettings;
|
|
815
|
+
filters: KanbanRendererFilterState;
|
|
816
|
+
isDefault?: boolean;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
declare interface KanbanRendererSettings {
|
|
820
|
+
viewMode: ViewMode;
|
|
821
|
+
columnGrouping: string | typeof NO_GROUPING;
|
|
822
|
+
rowGrouping: string | typeof NO_GROUPING;
|
|
823
|
+
ordering: KanbanRendererOrdering;
|
|
824
|
+
displayProperties: string[];
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
declare interface KanbanRendererStoreState {
|
|
828
|
+
renderers: Record<string, RegisteredKanbanRendererContribution>;
|
|
829
|
+
}
|
|
830
|
+
|
|
663
831
|
declare interface Keybinding {
|
|
664
832
|
commandId: string;
|
|
665
833
|
keybinding: KeybindingSequence;
|
|
@@ -685,33 +853,62 @@ declare interface LayoutModel {
|
|
|
685
853
|
registerPlaceholder(placeholder: PlaceholderContribution, metadata?: ContributionMetadata): {
|
|
686
854
|
dispose(): void;
|
|
687
855
|
};
|
|
856
|
+
registerPanel(panel: WorkbenchPanelContribution, metadata?: ContributionMetadata): {
|
|
857
|
+
dispose(): void;
|
|
858
|
+
};
|
|
688
859
|
registerWidget(widget: WidgetContribution, metadata?: ContributionMetadata): {
|
|
689
860
|
dispose(): void;
|
|
690
861
|
};
|
|
862
|
+
registerLocation(location: WorkbenchLocationContribution, metadata?: ContributionMetadata): {
|
|
863
|
+
dispose(): void;
|
|
864
|
+
};
|
|
865
|
+
registerSubPanel(subPanel: WorkbenchSubPanelContribution, metadata?: ContributionMetadata): {
|
|
866
|
+
dispose(): void;
|
|
867
|
+
};
|
|
868
|
+
registerPanelMenu(panelMenu: WorkbenchPanelMenuContribution, metadata?: ContributionMetadata): {
|
|
869
|
+
dispose(): void;
|
|
870
|
+
};
|
|
691
871
|
unregisterWidget(id: string, options?: {
|
|
692
872
|
removePlacements?: boolean;
|
|
693
873
|
persist?: boolean;
|
|
694
874
|
}): void;
|
|
695
|
-
getPlaceholder(
|
|
875
|
+
getPlaceholder(regionId: WorkbenchRegion): RegisteredPlaceholderContribution | undefined;
|
|
696
876
|
getWidget(id: string): RegisteredWidgetContribution | undefined;
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
877
|
+
getPanel(id: string): WorkbenchPanelContribution | undefined;
|
|
878
|
+
getRegionSize(regionId: WorkbenchRegion): WorkbenchRegionSize | undefined;
|
|
879
|
+
getRegionCollapsible(regionId: WorkbenchRegion): boolean;
|
|
880
|
+
getRegionHeaderBorderBottom(regionId: WorkbenchRegion): boolean;
|
|
881
|
+
setRegionVisible(regionId: WorkbenchRegion, visible: boolean): void;
|
|
882
|
+
setRegionSize(regionId: WorkbenchRegion, size: number): void;
|
|
702
883
|
listPlaceholders(): RegisteredPlaceholderContribution[];
|
|
703
884
|
listWidgets(): RegisteredWidgetContribution[];
|
|
885
|
+
listPanels(): WorkbenchPanelContribution[];
|
|
886
|
+
listPanelInstances(region?: WorkbenchRegion): WorkbenchPanelInstance[];
|
|
887
|
+
getActivePanel(region?: WorkbenchRegion): WorkbenchPanelInstance | undefined;
|
|
704
888
|
openWidget(id: string, input?: OpenWidgetInput): WorkbenchWidgetPlacement;
|
|
889
|
+
openPanel(id: string, input?: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
|
|
890
|
+
updatePanel(instanceId: string, input: OpenWorkbenchPanelInput): WorkbenchPanelInstance;
|
|
891
|
+
reorderPanel(instanceId: string, position: WorkbenchTabPosition): void;
|
|
892
|
+
activatePanel(instanceId: string): WorkbenchPanelInstance;
|
|
893
|
+
closePanel(instanceId: string): WorkbenchPanelInstance | undefined;
|
|
705
894
|
updateWidgetPlacement(widgetId: string, input: OpenWidgetInput): WorkbenchWidgetPlacement;
|
|
895
|
+
reorderWidget(widgetId: string, position: WorkbenchTabPosition): void;
|
|
896
|
+
expirePreviewTabs(ownerResourceUri?: string): void;
|
|
706
897
|
activateWidget(widgetId: string): WorkbenchWidgetPlacement;
|
|
898
|
+
setRegionActiveWidget(regionId: WorkbenchRegion, widgetId: string | undefined): void;
|
|
707
899
|
closeWidget(widgetId: string): WorkbenchWidgetPlacement | undefined;
|
|
708
900
|
removeWidgetPlacement(widgetId: string): WorkbenchWidgetPlacement | undefined;
|
|
709
|
-
|
|
710
|
-
|
|
901
|
+
clearRegion(regionId: WorkbenchRegion): void;
|
|
902
|
+
resetRegions(): void;
|
|
711
903
|
getLayout(): WorkbenchLayout;
|
|
712
904
|
restoreLayout(layout: WorkbenchLayout): void;
|
|
713
|
-
setPersistenceScope(scope: LayoutScope | undefined
|
|
905
|
+
setPersistenceScope(scope: LayoutScope | undefined, input?: {
|
|
906
|
+
carryRegionState?: readonly WorkbenchRegion[];
|
|
907
|
+
}): void;
|
|
714
908
|
getPersistenceScope(): LayoutScope | undefined;
|
|
909
|
+
onWillChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
|
|
910
|
+
dispose(): void;
|
|
911
|
+
};
|
|
715
912
|
onDidChangePersistenceScope(listener: (scope: LayoutScope | undefined) => void): {
|
|
716
913
|
dispose(): void;
|
|
717
914
|
};
|
|
@@ -725,6 +922,7 @@ declare const MANUAL_ORDERING = "manual";
|
|
|
725
922
|
|
|
726
923
|
declare interface MenuItem {
|
|
727
924
|
commandId: string;
|
|
925
|
+
sourceCommandId?: string;
|
|
728
926
|
label?: string;
|
|
729
927
|
description?: string;
|
|
730
928
|
icon?: string;
|
|
@@ -789,7 +987,13 @@ declare interface NavigationTargetCompound {
|
|
|
789
987
|
targets: readonly NavigationTargetItem[];
|
|
790
988
|
}
|
|
791
989
|
|
|
792
|
-
declare type NavigationTargetItem = NavigationTargetResource |
|
|
990
|
+
declare type NavigationTargetItem = NavigationTargetResource | NavigationTargetPanel | NavigationTargetCommand;
|
|
991
|
+
|
|
992
|
+
declare interface NavigationTargetPanel {
|
|
993
|
+
kind: "panel";
|
|
994
|
+
panelId: string;
|
|
995
|
+
input?: OpenWorkbenchPanelInput;
|
|
996
|
+
}
|
|
793
997
|
|
|
794
998
|
declare interface NavigationTargetResource {
|
|
795
999
|
kind: "resource";
|
|
@@ -797,12 +1001,6 @@ declare interface NavigationTargetResource {
|
|
|
797
1001
|
input?: OpenResourceInput;
|
|
798
1002
|
}
|
|
799
1003
|
|
|
800
|
-
declare interface NavigationTargetView {
|
|
801
|
-
kind: "view";
|
|
802
|
-
widgetId: string;
|
|
803
|
-
input?: OpenWidgetInput;
|
|
804
|
-
}
|
|
805
|
-
|
|
806
1004
|
declare const NO_GROUPING = "none";
|
|
807
1005
|
|
|
808
1006
|
declare interface NotificationRegistry {
|
|
@@ -821,23 +1019,38 @@ declare interface OpenResourceInput {
|
|
|
821
1019
|
declare interface OpenWidgetInput {
|
|
822
1020
|
resource?: ResourceRef;
|
|
823
1021
|
title?: string;
|
|
824
|
-
|
|
1022
|
+
region?: WorkbenchRegion;
|
|
825
1023
|
ownerId?: string;
|
|
826
1024
|
source?: ContributionSource;
|
|
827
1025
|
pinned?: boolean;
|
|
828
1026
|
closable?: boolean;
|
|
829
1027
|
mountStrategy?: WidgetMountStrategy;
|
|
830
1028
|
hiddenByDefault?: boolean;
|
|
1029
|
+
tabRetention?: WorkbenchTabRetention;
|
|
1030
|
+
tabPosition?: WorkbenchTabPosition;
|
|
1031
|
+
tab?: WorkbenchWidgetTab;
|
|
831
1032
|
replaceActive?: boolean;
|
|
1033
|
+
replaceWidgetId?: string;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
declare interface OpenWorkbenchPanelInput {
|
|
1037
|
+
resource?: ResourceRef;
|
|
1038
|
+
title?: string;
|
|
1039
|
+
region?: WorkbenchRegion;
|
|
1040
|
+
pinned?: boolean;
|
|
1041
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
1042
|
+
hiddenByDefault?: boolean;
|
|
1043
|
+
tab?: WorkbenchPanelTab;
|
|
1044
|
+
strategy?: WorkbenchPanelOpenStrategy;
|
|
832
1045
|
}
|
|
833
1046
|
|
|
834
1047
|
declare interface PlaceholderContribution {
|
|
835
1048
|
id: string;
|
|
836
1049
|
title: string;
|
|
837
|
-
|
|
1050
|
+
region: WorkbenchRegion;
|
|
838
1051
|
rendererId: string;
|
|
839
|
-
|
|
840
|
-
|
|
1052
|
+
regionSize?: WorkbenchRegionSize;
|
|
1053
|
+
regionCollapsible?: boolean;
|
|
841
1054
|
config?: unknown;
|
|
842
1055
|
priority?: number;
|
|
843
1056
|
}
|
|
@@ -875,9 +1088,9 @@ declare interface PreferenceScopeRef {
|
|
|
875
1088
|
|
|
876
1089
|
declare type PreferenceValue = boolean | number | string | string[] | number[] | boolean[] | Record<string, unknown>;
|
|
877
1090
|
|
|
878
|
-
export declare const refreshOpenWorkbenchExtensionWebviews: (workbench:
|
|
1091
|
+
export declare const refreshOpenWorkbenchExtensionWebviews: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata) => void;
|
|
879
1092
|
|
|
880
|
-
export declare const refreshWorkbenchExtensionContributions: (workbench:
|
|
1093
|
+
export declare const refreshWorkbenchExtensionContributions: (workbench: WorkbenchModuleContext, metadata: WorkbenchExtensionMetadata, commandId: string) => void;
|
|
881
1094
|
|
|
882
1095
|
declare interface RegisteredCommand extends RegisteredContributionMetadata {
|
|
883
1096
|
command: Command;
|
|
@@ -890,21 +1103,18 @@ declare interface RegisteredContributionMetadata {
|
|
|
890
1103
|
priority: number;
|
|
891
1104
|
}
|
|
892
1105
|
|
|
893
|
-
declare interface RegisteredContributionMetadata_2 {
|
|
894
|
-
source: ContributionSource_2;
|
|
895
|
-
ownerId: string;
|
|
896
|
-
priority: number;
|
|
897
|
-
}
|
|
898
|
-
|
|
899
1106
|
declare interface RegisteredControlsRendererContribution extends ControlsRendererContribution, RegisteredContributionMetadata {
|
|
900
1107
|
}
|
|
901
1108
|
|
|
902
|
-
declare interface
|
|
1109
|
+
declare interface RegisteredDataTableRendererContribution extends DataTableRendererContribution, RegisteredContributionMetadata {
|
|
903
1110
|
}
|
|
904
1111
|
|
|
905
1112
|
declare interface RegisteredFileRendererContribution extends FileRendererContribution, RegisteredContributionMetadata {
|
|
906
1113
|
}
|
|
907
1114
|
|
|
1115
|
+
declare interface RegisteredKanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow> extends KanbanRendererContribution<TRow>, RegisteredContributionMetadata {
|
|
1116
|
+
}
|
|
1117
|
+
|
|
908
1118
|
declare interface RegisteredKeepAliveHost {
|
|
909
1119
|
rendererId: string;
|
|
910
1120
|
host: HTMLElement;
|
|
@@ -940,8 +1150,10 @@ declare interface RegisteredTreeRendererContribution extends TreeRendererContrib
|
|
|
940
1150
|
}
|
|
941
1151
|
|
|
942
1152
|
declare type RegisteredWidgetContribution = Omit<WidgetContribution, "priority" | "singleton" | "reuse"> & {
|
|
1153
|
+
ownedPanelMenuIds?: readonly string[];
|
|
943
1154
|
singleton: boolean;
|
|
944
1155
|
reuse: WidgetReusePolicy;
|
|
1156
|
+
role: WorkbenchWidgetRole;
|
|
945
1157
|
} & RegisteredContributionMetadata;
|
|
946
1158
|
|
|
947
1159
|
declare interface RegisteredWorkbenchNotification extends RegisteredContributionMetadata {
|
|
@@ -955,17 +1167,6 @@ declare interface RegisteredWorkbenchNotification extends RegisteredContribution
|
|
|
955
1167
|
metadata?: Record<string, unknown>;
|
|
956
1168
|
}
|
|
957
1169
|
|
|
958
|
-
declare interface RegisteredWorkbenchNotification_2 extends RegisteredContributionMetadata_2 {
|
|
959
|
-
id: string;
|
|
960
|
-
level: WorkbenchNotificationLevel_2;
|
|
961
|
-
title: string;
|
|
962
|
-
message?: string;
|
|
963
|
-
createdAt: string;
|
|
964
|
-
resource?: ResourceRef_2;
|
|
965
|
-
actions?: WorkbenchNotificationAction_2[];
|
|
966
|
-
metadata?: Record<string, unknown>;
|
|
967
|
-
}
|
|
968
|
-
|
|
969
1170
|
export declare const registerWorkbenchExtensionCommandPaletteResources: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionCommandPaletteResourceRecord[]) => {
|
|
970
1171
|
dispose(): void;
|
|
971
1172
|
};
|
|
@@ -990,14 +1191,12 @@ export declare interface RegisterWorkbenchExtensionContributionsInput {
|
|
|
990
1191
|
settingsSectionId?: string;
|
|
991
1192
|
settingsSectionTitle?: string;
|
|
992
1193
|
webviewFiles?: ExtensionWebviewFileCapabilities;
|
|
993
|
-
workbench:
|
|
1194
|
+
workbench: WorkbenchModuleContext;
|
|
994
1195
|
}
|
|
995
1196
|
|
|
996
|
-
export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[],
|
|
1197
|
+
export declare const registerWorkbenchExtensionControlsRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionControlsRendererRecord[], panels: ControlsViewRecord[], adapter?: WorkbenchExtensionControlsAdapter) => Disposable_2;
|
|
997
1198
|
|
|
998
|
-
export declare const
|
|
999
|
-
dispose(): void;
|
|
1000
|
-
};
|
|
1199
|
+
export declare const registerWorkbenchExtensionDataTableRenderers: (context: WorkbenchExtensionCommandContext, records: WorkbenchExtensionDataTableRendererRecord[], panels: DataTableViewRecord[]) => Disposable_2;
|
|
1001
1200
|
|
|
1002
1201
|
export declare const registerWorkbenchExtensionFileRenderers: (input: RegisterWorkbenchExtensionFileRenderersInput) => {
|
|
1003
1202
|
dispose(): void;
|
|
@@ -1007,7 +1206,18 @@ export declare interface RegisterWorkbenchExtensionFileRenderersInput {
|
|
|
1007
1206
|
executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
|
|
1008
1207
|
metadata: WorkbenchExtensionMetadata;
|
|
1009
1208
|
projectId: string;
|
|
1010
|
-
workbench:
|
|
1209
|
+
workbench: WorkbenchModuleContext;
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
export declare const registerWorkbenchExtensionKanbanRenderers: (context: WorkbenchExtensionCommandContext, records: readonly WorkbenchExtensionKanbanRendererRecord[], adapter?: WorkbenchExtensionKanbanRendererAdapter) => {
|
|
1213
|
+
dispose(): void;
|
|
1214
|
+
};
|
|
1215
|
+
|
|
1216
|
+
export declare const registerWorkbenchExtensionPanel: (input: RegisterWorkbenchExtensionPanelInput) => Disposable_2;
|
|
1217
|
+
|
|
1218
|
+
export declare interface RegisterWorkbenchExtensionPanelInput {
|
|
1219
|
+
contribution: WorkbenchPanelContribution;
|
|
1220
|
+
workbench: WorkbenchModuleContext;
|
|
1011
1221
|
}
|
|
1012
1222
|
|
|
1013
1223
|
export declare const registerWorkbenchExtensionTreeRenderers: (input: RegisterWorkbenchExtensionTreeRenderersInput) => {
|
|
@@ -1020,7 +1230,7 @@ export declare interface RegisterWorkbenchExtensionTreeRenderersInput {
|
|
|
1020
1230
|
getHostTreeHeaderNodes?: HostTreeDefaultNodesResolver;
|
|
1021
1231
|
metadata: WorkbenchExtensionMetadata;
|
|
1022
1232
|
projectId: string;
|
|
1023
|
-
workbench:
|
|
1233
|
+
workbench: WorkbenchModuleContext;
|
|
1024
1234
|
}
|
|
1025
1235
|
|
|
1026
1236
|
export declare const renderBridgeWebviewFrame: (input: {
|
|
@@ -1033,7 +1243,9 @@ export declare const renderBridgeWebviewFrame: (input: {
|
|
|
1033
1243
|
webview: BridgeWebviewConfig;
|
|
1034
1244
|
}) => JSX.Element;
|
|
1035
1245
|
|
|
1036
|
-
declare type
|
|
1246
|
+
declare type ResolvedResourceHierarchyProvider = Required<ResourceHierarchyProvider>;
|
|
1247
|
+
|
|
1248
|
+
declare type ResolvedResourcePresenter = Required<ResourcePresenter>;
|
|
1037
1249
|
|
|
1038
1250
|
declare interface ResourceBrowseEntry {
|
|
1039
1251
|
resource: ResourceRef;
|
|
@@ -1055,6 +1267,13 @@ declare interface ResourceContextAction {
|
|
|
1055
1267
|
separatorBefore?: boolean;
|
|
1056
1268
|
}
|
|
1057
1269
|
|
|
1270
|
+
declare interface ResourceHierarchyProvider {
|
|
1271
|
+
id: string;
|
|
1272
|
+
priority?: number;
|
|
1273
|
+
canResolve(resource: ResourceRef): boolean;
|
|
1274
|
+
getParent(resource: ResourceRef): ResourceRef | undefined;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1058
1277
|
declare interface ResourceKindContribution {
|
|
1059
1278
|
kind: string;
|
|
1060
1279
|
label: string;
|
|
@@ -1075,11 +1294,11 @@ declare interface ResourceNavigator<TResult = unknown> {
|
|
|
1075
1294
|
navigate(resource: ResourceRef): TResult | Promise<TResult>;
|
|
1076
1295
|
}
|
|
1077
1296
|
|
|
1078
|
-
declare interface
|
|
1297
|
+
declare interface ResourcePresenter {
|
|
1079
1298
|
id: string;
|
|
1080
1299
|
priority?: number;
|
|
1081
1300
|
canOpen(resource: ResourceRef): boolean;
|
|
1082
|
-
open(resource: ResourceRef, input: OpenResourceInput):
|
|
1301
|
+
open(resource: ResourceRef, input: OpenResourceInput): WorkbenchPanelInstance | Promise<WorkbenchPanelInstance>;
|
|
1083
1302
|
}
|
|
1084
1303
|
|
|
1085
1304
|
declare interface ResourceProvider {
|
|
@@ -1112,24 +1331,29 @@ declare interface ResourceRegistry {
|
|
|
1112
1331
|
getKind(kind: string): RegisteredResourceKind | undefined;
|
|
1113
1332
|
getSurface(resource: ResourceRef): ResourceSurface | undefined;
|
|
1114
1333
|
listKinds(): RegisteredResourceKind[];
|
|
1115
|
-
|
|
1116
|
-
|
|
1334
|
+
registerPresenter(presenter: ResourcePresenter): Disposable_2;
|
|
1335
|
+
listPresenters(): ResolvedResourcePresenter[];
|
|
1117
1336
|
registerProvider(provider: ResourceProvider): Disposable_2;
|
|
1118
1337
|
listProviders(): ResourceProvider[];
|
|
1119
1338
|
listResources(query: string): readonly ResourceBrowseEntry[];
|
|
1120
|
-
|
|
1339
|
+
registerHierarchyProvider(provider: ResourceHierarchyProvider): Disposable_2;
|
|
1340
|
+
listHierarchyProviders(): ResolvedResourceHierarchyProvider[];
|
|
1341
|
+
walkHierarchy(resource: ResourceRef | undefined): ResourceRef[];
|
|
1342
|
+
isOpeningResource(): boolean;
|
|
1343
|
+
openResource(resource: ResourceRef, input?: OpenResourceInput): Promise<WorkbenchPanelInstance>;
|
|
1121
1344
|
onDidOpenResource(listener: (resource: ResourceRef) => void): Disposable_2;
|
|
1122
1345
|
}
|
|
1123
1346
|
|
|
1124
1347
|
declare interface ResourceRegistryStoreState {
|
|
1125
1348
|
kinds: Record<string, RegisteredResourceKind>;
|
|
1126
|
-
|
|
1349
|
+
presenters: Record<string, ResolvedResourcePresenter>;
|
|
1127
1350
|
providers: Record<string, ResourceProvider>;
|
|
1351
|
+
hierarchyProviders: Record<string, ResolvedResourceHierarchyProvider>;
|
|
1128
1352
|
}
|
|
1129
1353
|
|
|
1130
1354
|
declare type ResourceSurface = "primary" | "secondary" | "attached";
|
|
1131
1355
|
|
|
1132
|
-
declare type RowAction = NonNullable<
|
|
1356
|
+
declare type RowAction = NonNullable<WorkbenchExtensionKanbanRendererRecord["rowActions"]>[number];
|
|
1133
1357
|
|
|
1134
1358
|
/** Auto-rendered as a param editor from the registered preference schema. */
|
|
1135
1359
|
declare interface SchemaSettingsPanel extends SettingsPanelBase {
|
|
@@ -1197,7 +1421,7 @@ declare interface SettingsRegistryStoreState {
|
|
|
1197
1421
|
/** Settings are stored either per-user (global) or per-project. Projectless surfaces show only global entries. */
|
|
1198
1422
|
declare type SettingsScope = "global" | "project";
|
|
1199
1423
|
|
|
1200
|
-
/** An ordered
|
|
1424
|
+
/** An ordered sidenav container. Headerless when `title` is omitted. */
|
|
1201
1425
|
declare interface SettingsSectionContribution {
|
|
1202
1426
|
id: string;
|
|
1203
1427
|
title?: string;
|
|
@@ -1206,6 +1430,8 @@ declare interface SettingsSectionContribution {
|
|
|
1206
1430
|
actions?: SettingsAction[];
|
|
1207
1431
|
}
|
|
1208
1432
|
|
|
1433
|
+
export declare const shouldRefreshWorkbenchExtensionDataTableRenderers: (metadata: WorkbenchExtensionMetadata, commandId: string) => boolean;
|
|
1434
|
+
|
|
1209
1435
|
export declare const shouldRefreshWorkbenchExtensionTrees: (metadata: WorkbenchExtensionMetadata, commandId: string) => boolean;
|
|
1210
1436
|
|
|
1211
1437
|
declare type SortDirection = "asc" | "desc";
|
|
@@ -1281,6 +1507,8 @@ declare interface TreeNode {
|
|
|
1281
1507
|
hiddenByDefault?: boolean;
|
|
1282
1508
|
/** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
|
|
1283
1509
|
canHide?: boolean;
|
|
1510
|
+
/** When false, the node stays fixed within its Sidenav group. */
|
|
1511
|
+
canReorder?: boolean;
|
|
1284
1512
|
}
|
|
1285
1513
|
|
|
1286
1514
|
declare type TreeNodeRowVariant = "empty-state";
|
|
@@ -1298,7 +1526,7 @@ declare interface TreeRendererContribution {
|
|
|
1298
1526
|
getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1299
1527
|
}
|
|
1300
1528
|
|
|
1301
|
-
declare type TreeRendererImplementation = (input:
|
|
1529
|
+
declare type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
1302
1530
|
treeId: string;
|
|
1303
1531
|
}) => unknown;
|
|
1304
1532
|
|
|
@@ -1356,11 +1584,13 @@ declare interface TreeViewSection {
|
|
|
1356
1584
|
hiddenByDefault?: boolean;
|
|
1357
1585
|
/** When true, the section (category) opts in to the tree's hide/show customization menu. */
|
|
1358
1586
|
canHide?: boolean;
|
|
1587
|
+
/** When false, the section stays fixed within the Sidenav main region. */
|
|
1588
|
+
canReorder?: boolean;
|
|
1359
1589
|
}
|
|
1360
1590
|
|
|
1361
1591
|
/**
|
|
1362
|
-
* Core-owned contracts for
|
|
1363
|
-
*
|
|
1592
|
+
* Core-owned contracts for kanban renderer contributions. @pstdio/ui's
|
|
1593
|
+
* KanbanRenderer props are structurally identical; the React layer bridges the
|
|
1364
1594
|
* two, so drift surfaces as a compile error there instead of coupling core's
|
|
1365
1595
|
* API shape to UI package ownership.
|
|
1366
1596
|
*/
|
|
@@ -1369,44 +1599,35 @@ declare type ViewMode = "board" | "list";
|
|
|
1369
1599
|
declare interface WidgetContribution {
|
|
1370
1600
|
id: string;
|
|
1371
1601
|
title: string;
|
|
1372
|
-
|
|
1373
|
-
|
|
1602
|
+
icon?: string;
|
|
1603
|
+
region: WorkbenchRegion;
|
|
1604
|
+
fallbackRegion?: WorkbenchRegion;
|
|
1374
1605
|
singleton?: boolean;
|
|
1375
1606
|
reuse?: WidgetReusePolicy;
|
|
1376
1607
|
mountStrategy?: WidgetMountStrategy;
|
|
1377
1608
|
closable?: boolean;
|
|
1378
1609
|
hiddenByDefault?: boolean;
|
|
1379
|
-
|
|
1380
|
-
|
|
1610
|
+
regionSize?: WorkbenchRegionSize;
|
|
1611
|
+
regionCollapsible?: boolean;
|
|
1381
1612
|
headerBorderBottom?: boolean;
|
|
1613
|
+
floatingPanels?: WorkbenchFloatingPanelVisibility;
|
|
1382
1614
|
resourceKinds?: string[];
|
|
1383
1615
|
priority?: number;
|
|
1384
1616
|
rendererId: string;
|
|
1617
|
+
openCommandId?: string;
|
|
1618
|
+
role?: WorkbenchWidgetRole;
|
|
1619
|
+
eligibleLocations?: WorkbenchLocationEligibility;
|
|
1620
|
+
panelMenuOwner?: WorkbenchPanelMenuOwner;
|
|
1621
|
+
tab?: WorkbenchWidgetTab;
|
|
1385
1622
|
config?: unknown;
|
|
1386
1623
|
canOpen?(resource: ResourceRef): boolean;
|
|
1387
1624
|
}
|
|
1388
1625
|
|
|
1389
1626
|
declare type WidgetMountStrategy = "active" | "keep-mounted";
|
|
1390
1627
|
|
|
1391
|
-
declare type
|
|
1392
|
-
|
|
1393
|
-
declare type WorkbenchArea = (typeof workbenchAreas)[number];
|
|
1394
|
-
|
|
1395
|
-
declare const workbenchAreas: readonly ["nav", "activity", "left-header", "left", "main-header", "main-left", "main", "main-right", "secondary-header", "secondary", "status", "overlay", "floating-header", "floating"];
|
|
1396
|
-
|
|
1397
|
-
declare interface WorkbenchAreaSize {
|
|
1398
|
-
defaultPx?: number;
|
|
1399
|
-
minPx?: number;
|
|
1400
|
-
maxPx?: number;
|
|
1401
|
-
}
|
|
1628
|
+
declare type WidgetMountStrategy_2 = "active" | "keep-mounted";
|
|
1402
1629
|
|
|
1403
|
-
declare
|
|
1404
|
-
id: WorkbenchArea;
|
|
1405
|
-
visible: boolean;
|
|
1406
|
-
size?: number;
|
|
1407
|
-
widgets: WorkbenchWidgetPlacement[];
|
|
1408
|
-
activeWidgetId?: string;
|
|
1409
|
-
}
|
|
1630
|
+
declare type WidgetReusePolicy = "resource" | "none";
|
|
1410
1631
|
|
|
1411
1632
|
declare type WorkbenchBreadcrumbChangeListener = () => void;
|
|
1412
1633
|
|
|
@@ -1421,6 +1642,7 @@ declare interface WorkbenchBreadcrumbController {
|
|
|
1421
1642
|
declare interface WorkbenchBreadcrumbItem {
|
|
1422
1643
|
title: unknown;
|
|
1423
1644
|
icon?: string;
|
|
1645
|
+
indicator?: "session-status";
|
|
1424
1646
|
url?: string;
|
|
1425
1647
|
onClick?: () => void;
|
|
1426
1648
|
resource?: ResourceRef;
|
|
@@ -1430,8 +1652,16 @@ declare interface WorkbenchBreadcrumbState {
|
|
|
1430
1652
|
items: WorkbenchBreadcrumbItem[] | undefined;
|
|
1431
1653
|
}
|
|
1432
1654
|
|
|
1655
|
+
declare interface WorkbenchClosedSubPanel {
|
|
1656
|
+
region: WorkbenchPanelRegion;
|
|
1657
|
+
reference: WorkbenchSubPanelRef;
|
|
1658
|
+
resource?: ResourceRef;
|
|
1659
|
+
title?: string;
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1433
1662
|
declare interface WorkbenchCommandExecutionContext {
|
|
1434
1663
|
resource?: ResourceRef;
|
|
1664
|
+
source?: "panel-add";
|
|
1435
1665
|
}
|
|
1436
1666
|
|
|
1437
1667
|
declare interface WorkbenchCommandExecutionError {
|
|
@@ -1486,6 +1716,7 @@ declare interface WorkbenchCommandParamsRequest {
|
|
|
1486
1716
|
}
|
|
1487
1717
|
|
|
1488
1718
|
declare interface WorkbenchCore extends WorkbenchCoreContributionContext {
|
|
1719
|
+
host: WorkbenchHost;
|
|
1489
1720
|
registerModule(module: WorkbenchModuleContribution): Disposable_2;
|
|
1490
1721
|
unregisterModule(moduleId: string): void;
|
|
1491
1722
|
}
|
|
@@ -1509,7 +1740,8 @@ declare interface WorkbenchCoreContributionContext {
|
|
|
1509
1740
|
renderers: WorkbenchRenderers;
|
|
1510
1741
|
resources: ResourceRegistry;
|
|
1511
1742
|
settings: SettingsRegistry;
|
|
1512
|
-
|
|
1743
|
+
shell: WorkbenchShellController;
|
|
1744
|
+
sidePanel: WorkbenchSidePanelController;
|
|
1513
1745
|
terminal: WorkbenchTerminalController;
|
|
1514
1746
|
themes: ThemeRegistry;
|
|
1515
1747
|
fileIconThemes: FileIconThemeRegistry;
|
|
@@ -1522,7 +1754,7 @@ declare interface WorkbenchCoreContributionContext {
|
|
|
1522
1754
|
export declare interface WorkbenchExtensionCommandContext {
|
|
1523
1755
|
executeCommand(commandId: string, body: CommandExecuteRequest): Promise<unknown> | unknown;
|
|
1524
1756
|
projectId: string;
|
|
1525
|
-
workbench:
|
|
1757
|
+
workbench: WorkbenchModuleContext;
|
|
1526
1758
|
}
|
|
1527
1759
|
|
|
1528
1760
|
export declare interface WorkbenchExtensionCommandPaletteRegistration {
|
|
@@ -1537,67 +1769,58 @@ export declare interface WorkbenchExtensionControlsAdapter {
|
|
|
1537
1769
|
resolveResource?: (record: WorkbenchExtensionControlsRendererRecord) => ResourceRef | undefined;
|
|
1538
1770
|
}
|
|
1539
1771
|
|
|
1540
|
-
export declare interface
|
|
1772
|
+
export declare interface WorkbenchExtensionKanbanRendererAdapter {
|
|
1541
1773
|
/** Override label resolution. Defaults to workbench's `text(value, fallback)`. */
|
|
1542
1774
|
resolveLabel?: Localizer;
|
|
1543
1775
|
/** Post-process an attribute descriptor (after localization). Defaults to identity. */
|
|
1544
|
-
decorateAttribute?: (record:
|
|
1776
|
+
decorateAttribute?: (record: WorkbenchExtensionKanbanRendererRecord, attribute: AttributeDescriptor) => AttributeDescriptor;
|
|
1545
1777
|
/**
|
|
1546
1778
|
* Translate a row's transport-shaped resource (`{ type, id }`) into a workbench
|
|
1547
1779
|
* `ResourceRef`. Defaults to the workbench `pstdio://extension-resource/...`
|
|
1548
1780
|
* scheme — dashboard supplies its own. Returns `undefined` for rows that do not
|
|
1549
1781
|
* carry an explicit resource.
|
|
1550
1782
|
*/
|
|
1551
|
-
resolveRowResource?: (record:
|
|
1783
|
+
resolveRowResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow_2) => ResourceRef | undefined;
|
|
1552
1784
|
/**
|
|
1553
1785
|
* Synthesize a `ResourceRef` for row-action execution context when the row does
|
|
1554
1786
|
* not carry an explicit resource. Defaults to a `pstdio://extension-resource/`
|
|
1555
1787
|
* fallback built from `record.resourceKind` and `row.id`.
|
|
1556
1788
|
*/
|
|
1557
|
-
resolveRowActionResource?: (record:
|
|
1789
|
+
resolveRowActionResource?: (record: WorkbenchExtensionKanbanRendererRecord, row: KanbanRendererRow_2) => ResourceRef | undefined;
|
|
1558
1790
|
/**
|
|
1559
1791
|
* Override the row-action runner. `runDefault` performs the workbench's standard
|
|
1560
1792
|
* flow (look up the row-action command, request params if needed, execute it).
|
|
1561
1793
|
*/
|
|
1562
1794
|
executeRowAction?: (input: {
|
|
1563
|
-
record:
|
|
1795
|
+
record: WorkbenchExtensionKanbanRendererRecord;
|
|
1564
1796
|
action: RowAction;
|
|
1565
|
-
row:
|
|
1797
|
+
row: KanbanRendererRow_2;
|
|
1566
1798
|
resource: ResourceRef | undefined;
|
|
1567
1799
|
runDefault: () => Promise<void>;
|
|
1568
1800
|
}) => void | Promise<void>;
|
|
1569
1801
|
/**
|
|
1570
|
-
* Override the row click handler. When unset the
|
|
1802
|
+
* Override the row click handler. When unset the panel layer falls back to
|
|
1571
1803
|
* opening the row's resource via `ctx.resources.openResource` — set this to
|
|
1572
|
-
* intercept the click (e.g. swallow rejections when no
|
|
1804
|
+
* intercept the click (e.g. swallow rejections when no presenter exists yet).
|
|
1573
1805
|
*/
|
|
1574
1806
|
onRowClick?: (input: {
|
|
1575
|
-
record:
|
|
1576
|
-
row:
|
|
1807
|
+
record: WorkbenchExtensionKanbanRendererRecord;
|
|
1808
|
+
row: KanbanRendererRow_2;
|
|
1577
1809
|
resource: ResourceRef | undefined;
|
|
1578
1810
|
}) => void;
|
|
1579
|
-
/**
|
|
1580
|
-
* Override the inline-create handler. `executeDefault` runs the record's create
|
|
1581
|
-
* command with the column param. When omitted, the default executes and any
|
|
1582
|
-
* configured `onAfterCreate` runs with the returned value.
|
|
1583
|
-
*/
|
|
1584
|
-
onCreateRow?: (input: {
|
|
1585
|
-
record: WorkbenchExtensionDataRendererRecord;
|
|
1586
|
-
columnId: string;
|
|
1587
|
-
executeDefault: () => Promise<unknown>;
|
|
1588
|
-
}) => void;
|
|
1589
|
-
/** Called after a successful default create (when `onCreateRow` is not provided). */
|
|
1811
|
+
/** Called after a successful renderer-owned create form submission. */
|
|
1590
1812
|
onAfterCreate?: (input: {
|
|
1591
|
-
record:
|
|
1813
|
+
record: WorkbenchExtensionKanbanRendererRecord;
|
|
1592
1814
|
created: unknown;
|
|
1593
|
-
|
|
1815
|
+
submission: KanbanRendererCreateSubmission;
|
|
1816
|
+
}) => void | Promise<void>;
|
|
1594
1817
|
/**
|
|
1595
1818
|
* Called after any mutation (attribute change, reorder, column action, default
|
|
1596
1819
|
* create) resolves successfully. Hosts that drive refresh via the outer command
|
|
1597
1820
|
* pipeline (testbench / workbench) leave this unset; dashboard supplies
|
|
1598
|
-
* `ctx.renderers.
|
|
1821
|
+
* `ctx.renderers.refreshKanbanRenderer(id)`.
|
|
1599
1822
|
*/
|
|
1600
|
-
onAfterMutation?: (record:
|
|
1823
|
+
onAfterMutation?: (record: WorkbenchExtensionKanbanRendererRecord) => void;
|
|
1601
1824
|
}
|
|
1602
1825
|
|
|
1603
1826
|
export declare interface WorkbenchExtensionMenuRegistration {
|
|
@@ -1630,22 +1853,33 @@ declare interface WorkbenchFileIconThemeStoreState {
|
|
|
1630
1853
|
themes: readonly FileIconThemePreferenceOption[];
|
|
1631
1854
|
}
|
|
1632
1855
|
|
|
1633
|
-
declare type
|
|
1856
|
+
declare type WorkbenchFloatingPanelVisibility = "visible" | "hidden";
|
|
1634
1857
|
|
|
1635
|
-
declare
|
|
1636
|
-
|
|
1637
|
-
declare type WorkbenchFocusChangeListener = (area: WorkbenchFocusArea | undefined) => void;
|
|
1858
|
+
declare type WorkbenchFocusChangeListener = (region: WorkbenchFocusRegionId | undefined) => void;
|
|
1638
1859
|
|
|
1639
1860
|
declare interface WorkbenchFocusController {
|
|
1640
1861
|
store: WorkbenchStore<WorkbenchFocusState>;
|
|
1641
|
-
|
|
1862
|
+
setActiveRegion(region: WorkbenchFocusRegionId): void;
|
|
1642
1863
|
clearFocus(): void;
|
|
1643
|
-
|
|
1864
|
+
getActiveRegion(): WorkbenchFocusRegionId | undefined;
|
|
1644
1865
|
onDidChange(listener: WorkbenchFocusChangeListener): Disposable_2;
|
|
1645
1866
|
}
|
|
1646
1867
|
|
|
1868
|
+
declare type WorkbenchFocusRegionId = (typeof workbenchFocusRegions)[number];
|
|
1869
|
+
|
|
1870
|
+
declare const workbenchFocusRegions: readonly ["activity", "sidenav", "main", "secondary", "side", "status"];
|
|
1871
|
+
|
|
1647
1872
|
declare interface WorkbenchFocusState {
|
|
1648
|
-
|
|
1873
|
+
activeRegion: WorkbenchFocusRegionId | undefined;
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
declare interface WorkbenchHost {
|
|
1877
|
+
getSnapshot(): WorkbenchSnapshot;
|
|
1878
|
+
restoreSnapshot(snapshot: WorkbenchSnapshot): void;
|
|
1879
|
+
setPersistenceScope(scope: string | undefined, input?: {
|
|
1880
|
+
carryRegions?: readonly WorkbenchRegion[];
|
|
1881
|
+
}): void;
|
|
1882
|
+
getPersistenceScope(): string | undefined;
|
|
1649
1883
|
}
|
|
1650
1884
|
|
|
1651
1885
|
declare interface WorkbenchLastResourceController {
|
|
@@ -1655,8 +1889,10 @@ declare interface WorkbenchLastResourceController {
|
|
|
1655
1889
|
}
|
|
1656
1890
|
|
|
1657
1891
|
declare interface WorkbenchLayout {
|
|
1658
|
-
|
|
1892
|
+
regions: Record<WorkbenchRegion, WorkbenchRegionState>;
|
|
1893
|
+
locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion, string>>>;
|
|
1659
1894
|
activeWidgetId?: string;
|
|
1895
|
+
activeLocationWidgetId?: string;
|
|
1660
1896
|
activeResourceUri?: string;
|
|
1661
1897
|
}
|
|
1662
1898
|
|
|
@@ -1665,7 +1901,25 @@ declare type WorkbenchLayoutModel = LayoutModel & MenuRegistry;
|
|
|
1665
1901
|
declare interface WorkbenchLayoutStoreState {
|
|
1666
1902
|
layout: WorkbenchLayout;
|
|
1667
1903
|
widgets: Record<string, RegisteredWidgetContribution>;
|
|
1668
|
-
placeholders: Partial<Record<
|
|
1904
|
+
placeholders: Partial<Record<WorkbenchRegion, RegisteredPlaceholderContribution>>;
|
|
1905
|
+
}
|
|
1906
|
+
|
|
1907
|
+
declare type WorkbenchLocationContribution = Omit<WidgetContribution, "role"> & WorkbenchPanelMenusContribution;
|
|
1908
|
+
|
|
1909
|
+
declare interface WorkbenchLocationEligibility {
|
|
1910
|
+
modeIds?: string[];
|
|
1911
|
+
resourceKinds?: string[];
|
|
1912
|
+
resourceIds?: string[];
|
|
1913
|
+
canOpen?(resource: ResourceRef): boolean;
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
declare interface WorkbenchLocationRef {
|
|
1917
|
+
key: string;
|
|
1918
|
+
modeId?: string;
|
|
1919
|
+
resource?: ResourceRef;
|
|
1920
|
+
contributionId?: string;
|
|
1921
|
+
instanceKey?: string;
|
|
1922
|
+
title?: string;
|
|
1669
1923
|
}
|
|
1670
1924
|
|
|
1671
1925
|
declare type WorkbenchModeActivationContext = WorkbenchCoreContributionContext;
|
|
@@ -1677,16 +1931,24 @@ declare type WorkbenchModeChangeListener = () => void;
|
|
|
1677
1931
|
declare interface WorkbenchModeContribution {
|
|
1678
1932
|
id: string;
|
|
1679
1933
|
label?: string;
|
|
1934
|
+
panels?: readonly WorkbenchPanelRegion[];
|
|
1680
1935
|
activate(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
|
|
1936
|
+
seed?(ctx: WorkbenchModeActivationContext): void;
|
|
1937
|
+
enter?(ctx: WorkbenchModeActivationContext): WorkbenchModeActivationResult;
|
|
1681
1938
|
}
|
|
1682
1939
|
|
|
1683
1940
|
declare interface WorkbenchModeRegistry {
|
|
1684
1941
|
store: WorkbenchStore<WorkbenchModeStoreState>;
|
|
1942
|
+
dispose(): void;
|
|
1685
1943
|
registerMode(mode: WorkbenchModeContribution): Disposable_2;
|
|
1686
1944
|
getMode(id: string): WorkbenchModeContribution | undefined;
|
|
1687
1945
|
listModes(): WorkbenchModeContribution[];
|
|
1688
1946
|
getActiveModeId(): string | undefined;
|
|
1689
|
-
|
|
1947
|
+
isTransitioning(): boolean;
|
|
1948
|
+
setActiveMode(id: string | undefined, input?: {
|
|
1949
|
+
deferSeed?: boolean;
|
|
1950
|
+
}): void;
|
|
1951
|
+
seedActiveMode(): void;
|
|
1690
1952
|
onDidChangeActive(listener: WorkbenchModeChangeListener): Disposable_2;
|
|
1691
1953
|
}
|
|
1692
1954
|
|
|
@@ -1697,6 +1959,8 @@ declare interface WorkbenchModeStoreState {
|
|
|
1697
1959
|
|
|
1698
1960
|
declare type WorkbenchModuleActivationResult = Disposable_2 | readonly Disposable_2[] | undefined;
|
|
1699
1961
|
|
|
1962
|
+
declare type WorkbenchModuleContext = WorkbenchCoreContributionContext;
|
|
1963
|
+
|
|
1700
1964
|
declare interface WorkbenchModuleContribution {
|
|
1701
1965
|
id: string;
|
|
1702
1966
|
source?: ContributionSource;
|
|
@@ -1704,7 +1968,21 @@ declare interface WorkbenchModuleContribution {
|
|
|
1704
1968
|
activate(ctx: WorkbenchModuleContributionContext): WorkbenchModuleActivationResult;
|
|
1705
1969
|
}
|
|
1706
1970
|
|
|
1707
|
-
declare type WorkbenchModuleContributionContext =
|
|
1971
|
+
declare type WorkbenchModuleContributionContext = WorkbenchModuleContext;
|
|
1972
|
+
|
|
1973
|
+
declare interface WorkbenchNavigationEntry {
|
|
1974
|
+
entryId: string;
|
|
1975
|
+
recordedAt: number;
|
|
1976
|
+
location: WorkbenchLocationRef;
|
|
1977
|
+
selectedSubPanels: Partial<Record<WorkbenchPanelRegion, WorkbenchSubPanelRef>>;
|
|
1978
|
+
kind: "resource" | "widget" | "mode";
|
|
1979
|
+
modeId?: string;
|
|
1980
|
+
resource?: ResourceRef;
|
|
1981
|
+
widgetId?: string;
|
|
1982
|
+
contributionId?: string;
|
|
1983
|
+
title?: string;
|
|
1984
|
+
closedSubPanel?: WorkbenchClosedSubPanel;
|
|
1985
|
+
}
|
|
1708
1986
|
|
|
1709
1987
|
declare interface WorkbenchNotification {
|
|
1710
1988
|
id?: string;
|
|
@@ -1723,12 +2001,6 @@ declare interface WorkbenchNotificationAction {
|
|
|
1723
2001
|
args?: unknown;
|
|
1724
2002
|
}
|
|
1725
2003
|
|
|
1726
|
-
declare interface WorkbenchNotificationAction_2 {
|
|
1727
|
-
commandId: string;
|
|
1728
|
-
title: string;
|
|
1729
|
-
args?: unknown;
|
|
1730
|
-
}
|
|
1731
|
-
|
|
1732
2004
|
declare type WorkbenchNotificationEvent = {
|
|
1733
2005
|
type: "show";
|
|
1734
2006
|
id: string;
|
|
@@ -1740,26 +2012,193 @@ declare type WorkbenchNotificationEvent = {
|
|
|
1740
2012
|
|
|
1741
2013
|
declare type WorkbenchNotificationLevel = "info" | "success" | "warning" | "error";
|
|
1742
2014
|
|
|
1743
|
-
declare type WorkbenchNotificationLevel_2 = "info" | "success" | "warning" | "error";
|
|
1744
|
-
|
|
1745
2015
|
declare type WorkbenchNotificationListener = (event: WorkbenchNotificationEvent) => void;
|
|
1746
2016
|
|
|
1747
2017
|
declare interface WorkbenchNotificationStoreState {
|
|
1748
2018
|
notifications: Record<string, RegisteredWorkbenchNotification>;
|
|
1749
2019
|
}
|
|
1750
2020
|
|
|
2021
|
+
declare interface WorkbenchPanelContribution {
|
|
2022
|
+
id: string;
|
|
2023
|
+
title: string;
|
|
2024
|
+
icon?: string;
|
|
2025
|
+
region: WorkbenchRegion;
|
|
2026
|
+
fallbackRegion?: WorkbenchRegion;
|
|
2027
|
+
rendererId: string;
|
|
2028
|
+
closable: boolean;
|
|
2029
|
+
singleton?: boolean;
|
|
2030
|
+
reuse?: WorkbenchPanelReusePolicy;
|
|
2031
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
2032
|
+
hiddenByDefault?: boolean;
|
|
2033
|
+
regionSize?: WorkbenchRegionSize;
|
|
2034
|
+
regionCollapsible?: boolean;
|
|
2035
|
+
headerBorderBottom?: boolean;
|
|
2036
|
+
floatingPanels?: WorkbenchFloatingPanelVisibility;
|
|
2037
|
+
resourceKinds?: string[];
|
|
2038
|
+
eligibleLocations?: WorkbenchLocationEligibility;
|
|
2039
|
+
priority?: number;
|
|
2040
|
+
openCommandId?: string;
|
|
2041
|
+
tab?: WorkbenchPanelTab;
|
|
2042
|
+
config?: unknown;
|
|
2043
|
+
canOpen?(resource: ResourceRef): boolean;
|
|
2044
|
+
ownerId?: string;
|
|
2045
|
+
source?: ContributionSource;
|
|
2046
|
+
panelMenus?: readonly WorkbenchPanelMenuDefinition[];
|
|
2047
|
+
}
|
|
2048
|
+
|
|
2049
|
+
declare interface WorkbenchPanelInstance {
|
|
2050
|
+
instanceId: string;
|
|
2051
|
+
panelId: string;
|
|
2052
|
+
ownerId?: string;
|
|
2053
|
+
source?: ContributionSource;
|
|
2054
|
+
resource?: ResourceRef;
|
|
2055
|
+
resourceUri?: string;
|
|
2056
|
+
ownerResourceUri?: string;
|
|
2057
|
+
title?: string;
|
|
2058
|
+
pinned?: boolean;
|
|
2059
|
+
closable: boolean;
|
|
2060
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
2061
|
+
hiddenByDefault?: boolean;
|
|
2062
|
+
tabRetention?: WorkbenchTabRetention;
|
|
2063
|
+
tab?: WorkbenchPanelTab;
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
declare interface WorkbenchPanelInstance_2 {
|
|
2067
|
+
instanceId: string;
|
|
2068
|
+
panelId: string;
|
|
2069
|
+
ownerId?: string;
|
|
2070
|
+
source?: ContributionSource_2;
|
|
2071
|
+
resource?: ResourceRef_2;
|
|
2072
|
+
resourceUri?: string;
|
|
2073
|
+
ownerResourceUri?: string;
|
|
2074
|
+
title?: string;
|
|
2075
|
+
pinned?: boolean;
|
|
2076
|
+
closable: boolean;
|
|
2077
|
+
mountStrategy?: WorkbenchPanelMountStrategy_2;
|
|
2078
|
+
hiddenByDefault?: boolean;
|
|
2079
|
+
tabRetention?: WorkbenchTabRetention_2;
|
|
2080
|
+
tab?: WorkbenchPanelTab_2;
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
declare type WorkbenchPanelMenuContribution = Omit<WidgetContribution, "region" | "fallbackRegion" | "role"> & {
|
|
2084
|
+
region: WorkbenchPanelMenuRegion;
|
|
2085
|
+
fallbackRegion?: WorkbenchPanelMenuRegion;
|
|
2086
|
+
};
|
|
2087
|
+
|
|
2088
|
+
declare interface WorkbenchPanelMenuDefinition {
|
|
2089
|
+
id: string;
|
|
2090
|
+
title: string;
|
|
2091
|
+
icon?: string;
|
|
2092
|
+
side: WorkbenchPanelMenuSide;
|
|
2093
|
+
singleton?: boolean;
|
|
2094
|
+
reuse?: WorkbenchPanelReusePolicy;
|
|
2095
|
+
mountStrategy?: WorkbenchPanelMountStrategy;
|
|
2096
|
+
hiddenByDefault?: boolean;
|
|
2097
|
+
regionSize?: WorkbenchRegionSize;
|
|
2098
|
+
regionCollapsible?: boolean;
|
|
2099
|
+
headerBorderBottom?: boolean;
|
|
2100
|
+
rendererId: string;
|
|
2101
|
+
priority?: number;
|
|
2102
|
+
config?: unknown;
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
declare type WorkbenchPanelMenuOwner = {
|
|
2106
|
+
level: "panel";
|
|
2107
|
+
contributionId?: string;
|
|
2108
|
+
} | {
|
|
2109
|
+
level: "sub-panel";
|
|
2110
|
+
contributionId: string;
|
|
2111
|
+
};
|
|
2112
|
+
|
|
2113
|
+
declare type WorkbenchPanelMenuRegion = (typeof workbenchPanelMenuRegions)[WorkbenchPanelRegion][WorkbenchPanelMenuSide];
|
|
2114
|
+
|
|
2115
|
+
declare const workbenchPanelMenuRegions: {
|
|
2116
|
+
readonly main: {
|
|
2117
|
+
readonly left: "main-left-menu";
|
|
2118
|
+
readonly right: "main-right-menu";
|
|
2119
|
+
};
|
|
2120
|
+
readonly secondary: {
|
|
2121
|
+
readonly left: "secondary-left-menu";
|
|
2122
|
+
readonly right: "secondary-right-menu";
|
|
2123
|
+
};
|
|
2124
|
+
readonly side: {
|
|
2125
|
+
readonly left: "side-left-menu";
|
|
2126
|
+
readonly right: "side-right-menu";
|
|
2127
|
+
};
|
|
2128
|
+
};
|
|
2129
|
+
|
|
2130
|
+
declare interface WorkbenchPanelMenusContribution {
|
|
2131
|
+
panelMenus?: readonly WorkbenchPanelMenuDefinition[];
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
declare type WorkbenchPanelMenuSide = "left" | "right";
|
|
2135
|
+
|
|
2136
|
+
declare type WorkbenchPanelMountStrategy = WidgetMountStrategy;
|
|
2137
|
+
|
|
2138
|
+
declare type WorkbenchPanelMountStrategy_2 = WidgetMountStrategy_2;
|
|
2139
|
+
|
|
2140
|
+
declare type WorkbenchPanelOpenStrategy = {
|
|
2141
|
+
kind: "activate-or-open";
|
|
2142
|
+
position?: WorkbenchTabPosition;
|
|
2143
|
+
} | {
|
|
2144
|
+
kind: "replace-active";
|
|
2145
|
+
} | {
|
|
2146
|
+
kind: "replace-panel";
|
|
2147
|
+
instanceId: string;
|
|
2148
|
+
} | {
|
|
2149
|
+
kind: "preview";
|
|
2150
|
+
position?: WorkbenchTabPosition;
|
|
2151
|
+
};
|
|
2152
|
+
|
|
2153
|
+
declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
|
|
2154
|
+
|
|
2155
|
+
declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
|
|
2156
|
+
|
|
2157
|
+
declare interface WorkbenchPanelRenderInput {
|
|
2158
|
+
workbench: WorkbenchCore;
|
|
2159
|
+
panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
|
|
2160
|
+
instance: WorkbenchPanelInstance;
|
|
2161
|
+
refresh: () => void;
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2164
|
+
declare type WorkbenchPanelReusePolicy = WidgetReusePolicy;
|
|
2165
|
+
|
|
1751
2166
|
declare type WorkbenchPanelsChangeListener = (state: WorkbenchPanelsState) => void;
|
|
1752
2167
|
|
|
1753
2168
|
declare interface WorkbenchPanelsController {
|
|
1754
2169
|
store: WorkbenchStore<WorkbenchPanelsState>;
|
|
1755
|
-
isOpen(
|
|
1756
|
-
setOpen(
|
|
1757
|
-
toggle(
|
|
2170
|
+
isOpen(regionId: string): boolean;
|
|
2171
|
+
setOpen(regionId: string, open: boolean): void;
|
|
2172
|
+
toggle(regionId: string): void;
|
|
2173
|
+
setPersistenceScope(scope: string | undefined): void;
|
|
2174
|
+
getPersistenceScope(): string | undefined;
|
|
1758
2175
|
onDidChange(listener: WorkbenchPanelsChangeListener): Disposable_2;
|
|
1759
2176
|
}
|
|
1760
2177
|
|
|
1761
2178
|
declare interface WorkbenchPanelsState {
|
|
1762
|
-
|
|
2179
|
+
openByRegionId: Record<string, boolean>;
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
declare type WorkbenchPanelTab = WorkbenchWidgetTab;
|
|
2183
|
+
|
|
2184
|
+
declare type WorkbenchPanelTab_2 = WorkbenchWidgetTab_2;
|
|
2185
|
+
|
|
2186
|
+
declare type WorkbenchRegion = (typeof workbenchRegions)[number];
|
|
2187
|
+
|
|
2188
|
+
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"];
|
|
2189
|
+
|
|
2190
|
+
declare interface WorkbenchRegionSize {
|
|
2191
|
+
defaultPx?: number;
|
|
2192
|
+
minPx?: number;
|
|
2193
|
+
maxPx?: number;
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2196
|
+
declare interface WorkbenchRegionState {
|
|
2197
|
+
id: WorkbenchRegion;
|
|
2198
|
+
visible: boolean;
|
|
2199
|
+
size?: number;
|
|
2200
|
+
widgets: WorkbenchWidgetPlacement[];
|
|
2201
|
+
activeWidgetId?: string;
|
|
1763
2202
|
}
|
|
1764
2203
|
|
|
1765
2204
|
declare type WorkbenchRendererChangeListener = () => void;
|
|
@@ -1767,7 +2206,7 @@ declare type WorkbenchRendererChangeListener = () => void;
|
|
|
1767
2206
|
declare type WorkbenchRendererRegistration = {
|
|
1768
2207
|
id: string;
|
|
1769
2208
|
keepAlive?: false;
|
|
1770
|
-
render: (input:
|
|
2209
|
+
render: (input: WorkbenchPanelRenderInput) => unknown;
|
|
1771
2210
|
} | {
|
|
1772
2211
|
id: string;
|
|
1773
2212
|
keepAlive: true;
|
|
@@ -1780,32 +2219,54 @@ declare interface WorkbenchRendererRegistry {
|
|
|
1780
2219
|
getRenderer(id: string): WorkbenchRendererRegistration | undefined;
|
|
1781
2220
|
listRenderers(): WorkbenchRendererRegistration[];
|
|
1782
2221
|
onDidChange(listener: WorkbenchRendererChangeListener): Disposable_2;
|
|
1783
|
-
claim(rendererId: string, slot: HTMLElement, input:
|
|
2222
|
+
claim(rendererId: string, slot: HTMLElement, input: WorkbenchPanelRenderInput): Disposable_2;
|
|
1784
2223
|
getHost(rendererId: string): HTMLElement | undefined;
|
|
1785
|
-
getClaim(rendererId: string):
|
|
2224
|
+
getClaim(rendererId: string): WorkbenchPanelRenderInput | undefined;
|
|
1786
2225
|
}
|
|
1787
2226
|
|
|
1788
|
-
declare type WorkbenchRenderers = WorkbenchRendererRegistry & TreeRendererRegistry &
|
|
2227
|
+
declare type WorkbenchRenderers = WorkbenchRendererRegistry & TreeRendererRegistry & KanbanRendererRegistry & DataTableRendererRegistry & FileRendererRegistry & ControlsRendererRegistry;
|
|
1789
2228
|
|
|
1790
2229
|
declare interface WorkbenchRendererStoreState {
|
|
1791
2230
|
renderers: Record<string, WorkbenchRendererRegistration>;
|
|
1792
2231
|
hosts: Record<string, RegisteredKeepAliveHost>;
|
|
1793
|
-
claims: Record<string,
|
|
2232
|
+
claims: Record<string, WorkbenchPanelRenderInput>;
|
|
2233
|
+
}
|
|
2234
|
+
|
|
2235
|
+
declare interface WorkbenchShellController {
|
|
2236
|
+
getRegionState(region: WorkbenchRegion): WorkbenchShellRegionState;
|
|
2237
|
+
setRegionOpen(region: WorkbenchShellOpenRegion, open: boolean): void;
|
|
2238
|
+
setRegionSize(region: WorkbenchRegion, size: number): void;
|
|
2239
|
+
getSidePanelPresentation(): WorkbenchSidePanelPresentation;
|
|
2240
|
+
setSidePanelPresentation(presentation: WorkbenchSidePanelPresentation): void;
|
|
2241
|
+
onDidChange(listener: () => void): Disposable_2;
|
|
1794
2242
|
}
|
|
1795
2243
|
|
|
1796
|
-
declare type
|
|
2244
|
+
declare type WorkbenchShellOpenRegion = "sidenav" | "secondary" | WorkbenchPanelMenuRegion;
|
|
1797
2245
|
|
|
1798
|
-
declare interface
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
2246
|
+
declare interface WorkbenchShellRegionState {
|
|
2247
|
+
open: boolean;
|
|
2248
|
+
size?: number;
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
declare type WorkbenchSidePanelChangeListener = (mode: WorkbenchSidePanelMode) => void;
|
|
2252
|
+
|
|
2253
|
+
declare interface WorkbenchSidePanelController {
|
|
2254
|
+
store: WorkbenchStore<WorkbenchSidePanelState>;
|
|
2255
|
+
getMode(): WorkbenchSidePanelMode;
|
|
2256
|
+
setMode(mode: WorkbenchSidePanelMode): void;
|
|
2257
|
+
onDidChange(listener: WorkbenchSidePanelChangeListener): Disposable_2;
|
|
1803
2258
|
}
|
|
1804
2259
|
|
|
1805
|
-
declare type
|
|
2260
|
+
declare type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
|
|
2261
|
+
|
|
2262
|
+
declare type WorkbenchSidePanelPresentation = WorkbenchSidePanelMode;
|
|
1806
2263
|
|
|
1807
|
-
declare interface
|
|
1808
|
-
mode:
|
|
2264
|
+
declare interface WorkbenchSidePanelState {
|
|
2265
|
+
mode: WorkbenchSidePanelMode;
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
declare interface WorkbenchSnapshot {
|
|
2269
|
+
layout: WorkbenchLayout;
|
|
1809
2270
|
}
|
|
1810
2271
|
|
|
1811
2272
|
declare interface WorkbenchStore<TState> {
|
|
@@ -1824,6 +2285,27 @@ declare type WorkbenchStoreSelector<TState, TValue> = (state: TState) => TValue;
|
|
|
1824
2285
|
|
|
1825
2286
|
declare type WorkbenchStoreSelectorListener<TValue> = (value: TValue, previousValue: TValue) => void;
|
|
1826
2287
|
|
|
2288
|
+
declare type WorkbenchSubPanelContribution = Omit<WidgetContribution, "region" | "fallbackRegion" | "role"> & {
|
|
2289
|
+
region: WorkbenchPanelRegion;
|
|
2290
|
+
fallbackRegion?: WorkbenchPanelRegion;
|
|
2291
|
+
} & WorkbenchPanelMenusContribution;
|
|
2292
|
+
|
|
2293
|
+
declare interface WorkbenchSubPanelRef {
|
|
2294
|
+
contributionId: string;
|
|
2295
|
+
resourceUri?: string;
|
|
2296
|
+
instanceKey?: string;
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
declare type WorkbenchTabPosition = "start" | "end" | {
|
|
2300
|
+
beforeWidgetId: string;
|
|
2301
|
+
} | {
|
|
2302
|
+
afterWidgetId: string;
|
|
2303
|
+
};
|
|
2304
|
+
|
|
2305
|
+
declare type WorkbenchTabRetention = "preview" | "persistent";
|
|
2306
|
+
|
|
2307
|
+
declare type WorkbenchTabRetention_2 = "preview" | "persistent";
|
|
2308
|
+
|
|
1827
2309
|
declare interface WorkbenchTerminalController {
|
|
1828
2310
|
store: WorkbenchStore<WorkbenchTerminalState>;
|
|
1829
2311
|
/** True once the host injected a session opener. */
|
|
@@ -1917,18 +2399,29 @@ declare interface WorkbenchWidgetPlacement {
|
|
|
1917
2399
|
source?: ContributionSource;
|
|
1918
2400
|
resource?: ResourceRef;
|
|
1919
2401
|
resourceUri?: string;
|
|
2402
|
+
ownerResourceUri?: string;
|
|
1920
2403
|
title?: string;
|
|
1921
2404
|
pinned?: boolean;
|
|
1922
2405
|
closable?: boolean;
|
|
1923
2406
|
mountStrategy?: WidgetMountStrategy;
|
|
1924
2407
|
hiddenByDefault?: boolean;
|
|
2408
|
+
tabRetention?: WorkbenchTabRetention;
|
|
2409
|
+
tab?: WorkbenchWidgetTab;
|
|
2410
|
+
role?: WorkbenchWidgetRole;
|
|
1925
2411
|
}
|
|
1926
2412
|
|
|
1927
|
-
declare
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
2413
|
+
declare type WorkbenchWidgetRole = "content" | "location" | "sub-panel" | "panel-menu";
|
|
2414
|
+
|
|
2415
|
+
declare interface WorkbenchWidgetTab {
|
|
2416
|
+
contentRendererId?: string;
|
|
2417
|
+
/** Custom actions shown when the user activates an already-active tab. */
|
|
2418
|
+
customMenuRendererId?: string;
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
declare interface WorkbenchWidgetTab_2 {
|
|
2422
|
+
contentRendererId?: string;
|
|
2423
|
+
/** Custom actions shown when the user activates an already-active tab. */
|
|
2424
|
+
customMenuRendererId?: string;
|
|
1932
2425
|
}
|
|
1933
2426
|
|
|
1934
2427
|
export { }
|