@pstdio/workbench 0.38.0 → 0.40.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 +2 -2
- package/dist/extensions.d.ts +43 -2
- package/dist/extensions.js +284 -255
- package/dist/extensions.js.map +1 -1
- package/dist/{file-renderer-view-B1tNSzpa.js → file-renderer-view-C95GHv9m.js} +3 -3
- package/dist/{file-renderer-view-B1tNSzpa.js.map → file-renderer-view-C95GHv9m.js.map} +1 -1
- package/dist/{index-Cl3NI1pb.d.ts → index-DLh_fcGT.d.ts} +327 -263
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1496 -1316
- package/dist/index.js.map +1 -1
- package/dist/{kanban-presentation-Mb9rbE48.d.ts → kanban-presentation-Ds4FpmbS.d.ts} +1 -1
- package/dist/navigation-tree-registry-DazyPivr.js +106 -0
- package/dist/navigation-tree-registry-DazyPivr.js.map +1 -0
- package/dist/{react-Dnt2zZRw.js → react-NAZBfSZz.js} +2926 -2580
- package/dist/react-NAZBfSZz.js.map +1 -0
- package/dist/react.d.ts +3 -2
- package/dist/react.js +1 -1
- package/dist/storage.d.ts +2 -3
- package/dist/storage.js +12 -29
- package/dist/storage.js.map +1 -1
- package/dist/webview-runtime.js +1 -1
- package/dist/{workbench-renderers-RPeMVtTc.js → workbench-renderers-DNXWpDWd.js} +151 -144
- package/dist/workbench-renderers-DNXWpDWd.js.map +1 -0
- package/package.json +3 -3
- package/dist/navigation-tree-registry-CKB9qsW1.js +0 -102
- package/dist/navigation-tree-registry-CKB9qsW1.js.map +0 -1
- package/dist/react-Dnt2zZRw.js.map +0 -1
- package/dist/workbench-renderers-RPeMVtTc.js.map +0 -1
|
@@ -135,6 +135,8 @@ interface WorkbenchBreadcrumbItem {
|
|
|
135
135
|
title: unknown;
|
|
136
136
|
icon?: string;
|
|
137
137
|
indicator?: "session-status";
|
|
138
|
+
/** The crumb leaves the project navigation: it opens a Sidenav level or a mode that replaces the Sidenav. */
|
|
139
|
+
startsLevel?: boolean;
|
|
138
140
|
url?: string;
|
|
139
141
|
onClick?: () => void;
|
|
140
142
|
resource?: ResourceRef$1;
|
|
@@ -160,6 +162,7 @@ interface WorkbenchCommandExecutionError {
|
|
|
160
162
|
type WorkbenchCommandExecutionErrorListener = (event: WorkbenchCommandExecutionError) => void;
|
|
161
163
|
interface WorkbenchCommandExecutionContext {
|
|
162
164
|
resource?: ResourceRef$1;
|
|
165
|
+
signal?: AbortSignal;
|
|
163
166
|
source?: "panel-add";
|
|
164
167
|
}
|
|
165
168
|
interface CommandParamOption {
|
|
@@ -167,13 +170,20 @@ interface CommandParamOption {
|
|
|
167
170
|
value: string;
|
|
168
171
|
icon?: string;
|
|
169
172
|
}
|
|
173
|
+
interface CommandParamOptionSource {
|
|
174
|
+
commandId: string;
|
|
175
|
+
valueField: string;
|
|
176
|
+
labelField: string;
|
|
177
|
+
params?: Record<string, unknown>;
|
|
178
|
+
}
|
|
170
179
|
interface CommandParamDescriptor {
|
|
171
180
|
type: string;
|
|
172
181
|
label?: string;
|
|
173
182
|
description?: string;
|
|
174
183
|
required?: boolean;
|
|
175
184
|
defaultValue?: unknown;
|
|
176
|
-
options?: CommandParamOption[];
|
|
185
|
+
options?: CommandParamOption[] | CommandParamOptionSource;
|
|
186
|
+
allowCustomValues?: boolean;
|
|
177
187
|
templateType?: string;
|
|
178
188
|
resourceType?: string;
|
|
179
189
|
/** Workspace provider ids a `workspace` param may offer. */
|
|
@@ -548,12 +558,15 @@ interface WorkbenchPanelInstance {
|
|
|
548
558
|
tabRetention?: WorkbenchTabRetention;
|
|
549
559
|
tab?: WorkbenchPanelTab;
|
|
550
560
|
}
|
|
561
|
+
type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
|
|
551
562
|
interface WorkbenchRegionState {
|
|
552
563
|
id: WorkbenchRegion;
|
|
553
564
|
visible: boolean;
|
|
554
565
|
size?: number;
|
|
555
566
|
widgets: WorkbenchWidgetPlacement[];
|
|
556
567
|
activeWidgetId?: string;
|
|
568
|
+
/** Side region only: how the open Side Panel is shown. `visible` says whether it is open. */
|
|
569
|
+
presentation?: Exclude<WorkbenchSidePanelMode, "closed">;
|
|
557
570
|
}
|
|
558
571
|
interface WorkbenchLayout {
|
|
559
572
|
regions: Record<WorkbenchRegion, WorkbenchRegionState>;
|
|
@@ -654,6 +667,7 @@ interface LayoutModel {
|
|
|
654
667
|
getRegionHeaderBorderBottom(regionId: WorkbenchRegion): boolean;
|
|
655
668
|
setRegionVisible(regionId: WorkbenchRegion, visible: boolean): void;
|
|
656
669
|
setRegionSize(regionId: WorkbenchRegion, size: number): void;
|
|
670
|
+
setSidePanelMode(mode: WorkbenchSidePanelMode): void;
|
|
657
671
|
listPlaceholders(): RegisteredPlaceholderContribution[];
|
|
658
672
|
listWidgets(): RegisteredWidgetContribution[];
|
|
659
673
|
listPanels(): WorkbenchPanelContribution[];
|
|
@@ -713,6 +727,254 @@ interface WorkbenchFocusController {
|
|
|
713
727
|
onDidChange(listener: WorkbenchFocusChangeListener): Disposable;
|
|
714
728
|
}
|
|
715
729
|
//#endregion
|
|
730
|
+
//#region src/core/registries/menus/menu-registry.d.ts
|
|
731
|
+
type MenuPath = readonly string[];
|
|
732
|
+
interface MenuItem {
|
|
733
|
+
commandId: string;
|
|
734
|
+
sourceCommandId?: string;
|
|
735
|
+
label?: string;
|
|
736
|
+
description?: string;
|
|
737
|
+
icon?: string;
|
|
738
|
+
iconSrc?: string;
|
|
739
|
+
overflowLabel?: string;
|
|
740
|
+
when?: string;
|
|
741
|
+
group?: string;
|
|
742
|
+
order?: number;
|
|
743
|
+
args?: unknown;
|
|
744
|
+
readOnly?: boolean;
|
|
745
|
+
/** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
|
|
746
|
+
external?: boolean;
|
|
747
|
+
}
|
|
748
|
+
interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
|
|
749
|
+
path: MenuPath;
|
|
750
|
+
}
|
|
751
|
+
interface MenuRegistryStoreState {
|
|
752
|
+
itemsByPath: Record<string, RegisteredMenuItem[]>;
|
|
753
|
+
}
|
|
754
|
+
interface MenuRegistry {
|
|
755
|
+
menuStore: WorkbenchStore<MenuRegistryStoreState>;
|
|
756
|
+
registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
|
|
757
|
+
listMenuItems(path: MenuPath): RegisteredMenuItem[];
|
|
758
|
+
}
|
|
759
|
+
//#endregion
|
|
760
|
+
//#region src/core/registries/renderers/renderer-registry.d.ts
|
|
761
|
+
interface WorkbenchPanelRenderInput {
|
|
762
|
+
workbench: WorkbenchCore;
|
|
763
|
+
panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
|
|
764
|
+
instance: WorkbenchPanelInstance;
|
|
765
|
+
refresh: () => void;
|
|
766
|
+
}
|
|
767
|
+
interface WorkbenchRendererRegistration {
|
|
768
|
+
id: string;
|
|
769
|
+
render: (input: WorkbenchPanelRenderInput) => unknown;
|
|
770
|
+
}
|
|
771
|
+
//#endregion
|
|
772
|
+
//#region src/core/registries/renderers/tree-renderer-types.d.ts
|
|
773
|
+
interface TreeQueryContext {
|
|
774
|
+
signal?: AbortSignal;
|
|
775
|
+
/** Publish available sections while the rest of the current read is still loading. */
|
|
776
|
+
onProgress?(sections: TreeViewSection[]): void;
|
|
777
|
+
filter?: string;
|
|
778
|
+
resource?: ResourceRef$1;
|
|
779
|
+
/** Widget/view contribution id for trees rendered through a view-backed widget. */
|
|
780
|
+
viewId?: string;
|
|
781
|
+
}
|
|
782
|
+
interface TreeContext extends TreeQueryContext {
|
|
783
|
+
state: Readonly<TreeRendererState>;
|
|
784
|
+
refresh(): void;
|
|
785
|
+
setSelectedNode(nodeId: string | undefined): void;
|
|
786
|
+
}
|
|
787
|
+
interface TreeAction {
|
|
788
|
+
id: string;
|
|
789
|
+
label?: string;
|
|
790
|
+
icon?: string;
|
|
791
|
+
commandId?: string;
|
|
792
|
+
args?: unknown;
|
|
793
|
+
params?: CommandParamSchema;
|
|
794
|
+
submitLabel?: string;
|
|
795
|
+
when?: string;
|
|
796
|
+
disabled?: boolean;
|
|
797
|
+
run?(args?: unknown): Promise<void> | void;
|
|
798
|
+
}
|
|
799
|
+
type TreeNodeRowVariant = "empty-state";
|
|
800
|
+
interface TreeNodeInlineInput {
|
|
801
|
+
ariaLabel: string;
|
|
802
|
+
defaultValue?: string;
|
|
803
|
+
placeholder?: string;
|
|
804
|
+
onCommit(value: string): Promise<void> | void;
|
|
805
|
+
onCancel?(): void;
|
|
806
|
+
}
|
|
807
|
+
interface TreeNode {
|
|
808
|
+
id: string;
|
|
809
|
+
selected?: boolean;
|
|
810
|
+
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
811
|
+
moveScope?: string;
|
|
812
|
+
label: string;
|
|
813
|
+
icon?: string;
|
|
814
|
+
iconElement?: unknown;
|
|
815
|
+
iconColor?: string;
|
|
816
|
+
iconTooltip?: string;
|
|
817
|
+
endContent?: unknown;
|
|
818
|
+
commandId?: string;
|
|
819
|
+
resource?: ResourceRef$1;
|
|
820
|
+
target?: NavigationTarget$1;
|
|
821
|
+
/** Visual row variant for non-data rows such as placeholders. */
|
|
822
|
+
rowVariant?: TreeNodeRowVariant;
|
|
823
|
+
inlineInput?: TreeNodeInlineInput;
|
|
824
|
+
actions?: TreeAction[];
|
|
825
|
+
contextMenuActions?: TreeAction[];
|
|
826
|
+
contextMenuPath?: MenuPath;
|
|
827
|
+
menuPath?: MenuPath;
|
|
828
|
+
menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
|
|
829
|
+
showContextMenuTrigger?: boolean;
|
|
830
|
+
collapsible?: boolean;
|
|
831
|
+
disabled?: boolean;
|
|
832
|
+
children?: TreeNode[];
|
|
833
|
+
description?: string;
|
|
834
|
+
contextValue?: string;
|
|
835
|
+
hiddenByDefault?: boolean;
|
|
836
|
+
/** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
|
|
837
|
+
canHide?: boolean;
|
|
838
|
+
/** When false, the node stays fixed within its Sidenav group. */
|
|
839
|
+
canReorder?: boolean;
|
|
840
|
+
/** Show the row only where users pinned it in the header or footer, never in the body. */
|
|
841
|
+
pinnedOnly?: boolean;
|
|
842
|
+
/** Allow this node to be moved to another tree location. */
|
|
843
|
+
canDrag?: boolean;
|
|
844
|
+
/** Allow movable nodes to be dropped on this node. */
|
|
845
|
+
canDrop?: boolean;
|
|
846
|
+
}
|
|
847
|
+
interface TreeSectionEmptyState {
|
|
848
|
+
title: string;
|
|
849
|
+
description?: string;
|
|
850
|
+
icon?: string;
|
|
851
|
+
}
|
|
852
|
+
interface TreeViewSection {
|
|
853
|
+
id: string;
|
|
854
|
+
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
855
|
+
moveScope?: string;
|
|
856
|
+
label?: string;
|
|
857
|
+
/** Names a section without a visible header in the customize menu. */
|
|
858
|
+
menuLabel?: string;
|
|
859
|
+
actions?: TreeAction[];
|
|
860
|
+
collapsible?: boolean;
|
|
861
|
+
emptyState?: TreeSectionEmptyState;
|
|
862
|
+
nodes: TreeNode[];
|
|
863
|
+
hiddenByDefault?: boolean;
|
|
864
|
+
/** When true, the section (category) opts in to the tree's hide/show customization menu. */
|
|
865
|
+
canHide?: boolean;
|
|
866
|
+
/** When false, the section stays fixed within the Sidenav main region. */
|
|
867
|
+
canReorder?: boolean;
|
|
868
|
+
}
|
|
869
|
+
interface TreeMoveEndpoint {
|
|
870
|
+
kind: "section" | "node";
|
|
871
|
+
sectionId: string;
|
|
872
|
+
id: string;
|
|
873
|
+
moveScope?: string;
|
|
874
|
+
}
|
|
875
|
+
type TreeMovePolicy = (move: {
|
|
876
|
+
source: TreeMoveEndpoint;
|
|
877
|
+
destination: TreeMoveEndpoint;
|
|
878
|
+
}) => boolean;
|
|
879
|
+
interface TreeRendererContribution {
|
|
880
|
+
id: string;
|
|
881
|
+
title: string;
|
|
882
|
+
icon?: string;
|
|
883
|
+
searchable?: boolean;
|
|
884
|
+
searchPlaceholder?: string;
|
|
885
|
+
when?: string;
|
|
886
|
+
defaultExpandedSectionIds?: string[];
|
|
887
|
+
defaultExpandedNodeIds?: string[];
|
|
888
|
+
/** Identify the navigation data scope when it differs from the current page resource. */
|
|
889
|
+
getReadKey?(ctx: TreeQueryContext): string;
|
|
890
|
+
getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
891
|
+
getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
892
|
+
getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
893
|
+
getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
894
|
+
canMove?: TreeMovePolicy;
|
|
895
|
+
moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
|
|
896
|
+
}
|
|
897
|
+
interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
|
|
898
|
+
interface TreeRendererState {
|
|
899
|
+
expandedNodeIds: string[];
|
|
900
|
+
expandedSectionIds: string[];
|
|
901
|
+
selectedNodeId?: string;
|
|
902
|
+
loading?: boolean;
|
|
903
|
+
}
|
|
904
|
+
interface TreeRendererRefreshEvent {
|
|
905
|
+
treeId: string;
|
|
906
|
+
}
|
|
907
|
+
interface TreeRendererStoreState {
|
|
908
|
+
trees: Record<string, RegisteredTreeRendererContribution>;
|
|
909
|
+
statesByTreeId: Record<string, TreeRendererState>;
|
|
910
|
+
refreshKeysByTreeId: Record<string, number>;
|
|
911
|
+
}
|
|
912
|
+
interface PersistedTreeRendererStates {
|
|
913
|
+
statesByTreeId: Record<string, TreeRendererState>;
|
|
914
|
+
}
|
|
915
|
+
interface TreeRendererPersistenceAdapter {
|
|
916
|
+
getTreeStates(): PersistedTreeRendererStates | undefined;
|
|
917
|
+
setTreeStates(states: PersistedTreeRendererStates): void;
|
|
918
|
+
}
|
|
919
|
+
type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
920
|
+
treeId: string;
|
|
921
|
+
}) => unknown;
|
|
922
|
+
type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
|
|
923
|
+
interface TreeRendererRegistry {
|
|
924
|
+
treeStore: WorkbenchStore<TreeRendererStoreState>;
|
|
925
|
+
registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
|
|
926
|
+
setTreeRendererImplementation(impl: TreeRendererImplementation): void;
|
|
927
|
+
getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
|
|
928
|
+
listTreeRenderers(): RegisteredTreeRendererContribution[];
|
|
929
|
+
getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
930
|
+
getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
931
|
+
getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
932
|
+
getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
|
|
933
|
+
getTreeState(id: string): TreeRendererState;
|
|
934
|
+
setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
|
|
935
|
+
setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
|
|
936
|
+
setSelectedNode(id: string, nodeId: string | undefined): void;
|
|
937
|
+
setLoading(id: string, loading: boolean): void;
|
|
938
|
+
refresh(id: string): void;
|
|
939
|
+
onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
|
|
940
|
+
}
|
|
941
|
+
//#endregion
|
|
942
|
+
//#region src/core/registries/navigation/navigation-tree-registry.d.ts
|
|
943
|
+
type NavigationTreeSlot = "header" | "content" | "footer";
|
|
944
|
+
interface NavigationTreeOwner {
|
|
945
|
+
kind: "mode" | "page";
|
|
946
|
+
id: string;
|
|
947
|
+
extensionId: string;
|
|
948
|
+
}
|
|
949
|
+
interface NavigationTreeContext {
|
|
950
|
+
resource?: ResourceRef$1;
|
|
951
|
+
signal?: AbortSignal;
|
|
952
|
+
}
|
|
953
|
+
interface NavigationTreeContribution {
|
|
954
|
+
id: string;
|
|
955
|
+
/** Prefix projected section and node ids when they come from an independent tree renderer. */
|
|
956
|
+
idScope?: string;
|
|
957
|
+
owner: NavigationTreeOwner;
|
|
958
|
+
sourceExtensionId: string;
|
|
959
|
+
declarationIndex: number;
|
|
960
|
+
slot?: NavigationTreeSlot;
|
|
961
|
+
viewId?: string;
|
|
962
|
+
defaultExpandedSectionIds?: string[];
|
|
963
|
+
/** Resolve the data resource independently of the selected navigation item. */
|
|
964
|
+
resolveResource?(resource: ResourceRef$1 | undefined): ResourceRef$1 | undefined;
|
|
965
|
+
getSections?(context: NavigationTreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
966
|
+
getChildren?(node: TreeNode, context: NavigationTreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
967
|
+
}
|
|
968
|
+
interface NavigationTreeRegistry {
|
|
969
|
+
registerContribution(contribution: NavigationTreeContribution): Disposable;
|
|
970
|
+
resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
|
|
971
|
+
getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
|
|
972
|
+
getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
|
|
973
|
+
getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
|
|
974
|
+
getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
|
|
975
|
+
onDidChange(listener: () => void): Disposable;
|
|
976
|
+
}
|
|
977
|
+
//#endregion
|
|
716
978
|
//#region src/core/registries/layout/placement-reconciliation.d.ts
|
|
717
979
|
interface ResolvedOwnedPlacement<Value = unknown> {
|
|
718
980
|
identity: PlacementIdentity;
|
|
@@ -732,18 +994,6 @@ interface OwnedPlacementReconciliation<Value> {
|
|
|
732
994
|
remove: readonly ResolvedOwnedPlacement<Value>[];
|
|
733
995
|
}
|
|
734
996
|
//#endregion
|
|
735
|
-
//#region src/core/registries/renderers/renderer-registry.d.ts
|
|
736
|
-
interface WorkbenchPanelRenderInput {
|
|
737
|
-
workbench: WorkbenchCore;
|
|
738
|
-
panel: WorkbenchPanelContribution | PlaceholderContribution | RegisteredPlaceholderContribution;
|
|
739
|
-
instance: WorkbenchPanelInstance;
|
|
740
|
-
refresh: () => void;
|
|
741
|
-
}
|
|
742
|
-
interface WorkbenchRendererRegistration {
|
|
743
|
-
id: string;
|
|
744
|
-
render: (input: WorkbenchPanelRenderInput) => unknown;
|
|
745
|
-
}
|
|
746
|
-
//#endregion
|
|
747
997
|
//#region src/core/registries/renderers/controls-renderer-registry.d.ts
|
|
748
998
|
type ControlsRendererRegion = "main-right-menu" | "secondary" | "overlay";
|
|
749
999
|
interface ControlsRendererLayout {
|
|
@@ -785,6 +1035,11 @@ interface ControlsRendererContribution {
|
|
|
785
1035
|
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
786
1036
|
}
|
|
787
1037
|
//#endregion
|
|
1038
|
+
//#region src/core/registries/renderers/view-toolbar-action.d.ts
|
|
1039
|
+
interface ViewToolbarAction extends TreeAction {
|
|
1040
|
+
presentation?: "primary" | "secondary";
|
|
1041
|
+
}
|
|
1042
|
+
//#endregion
|
|
788
1043
|
//#region src/core/registries/renderers/data-table-renderer-registry.d.ts
|
|
789
1044
|
interface DataTableRendererThemeColor {
|
|
790
1045
|
light: string;
|
|
@@ -872,6 +1127,7 @@ interface DataTableRendererSelectionAction {
|
|
|
872
1127
|
interface DataTableRendererContribution {
|
|
873
1128
|
id: string;
|
|
874
1129
|
title: string;
|
|
1130
|
+
toolbarActions?: ViewToolbarAction[];
|
|
875
1131
|
resourceKind?: string;
|
|
876
1132
|
columns?: DataTableRendererColumn[];
|
|
877
1133
|
selectionMode?: "none" | "multiple";
|
|
@@ -1028,7 +1284,6 @@ interface KanbanRendererSavedView {
|
|
|
1028
1284
|
title: string;
|
|
1029
1285
|
settings: KanbanRendererSettings;
|
|
1030
1286
|
filters: KanbanRendererFilterState;
|
|
1031
|
-
isDefault?: boolean;
|
|
1032
1287
|
}
|
|
1033
1288
|
type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
1034
1289
|
interface KanbanRendererCreateField {
|
|
@@ -1090,6 +1345,29 @@ interface ResourceContextAction<TNode = unknown> {
|
|
|
1090
1345
|
endContent?: TNode;
|
|
1091
1346
|
separatorBefore?: boolean;
|
|
1092
1347
|
}
|
|
1348
|
+
interface KanbanRendererViewsSource {
|
|
1349
|
+
views: (KanbanRendererSavedView & {
|
|
1350
|
+
builtIn: boolean;
|
|
1351
|
+
})[];
|
|
1352
|
+
defaultViewId: string;
|
|
1353
|
+
onCreateView: (input: {
|
|
1354
|
+
title: string;
|
|
1355
|
+
settings: KanbanRendererSettings;
|
|
1356
|
+
filters: KanbanRendererFilterState;
|
|
1357
|
+
copyFrom?: string;
|
|
1358
|
+
}) => Promise<KanbanRendererSavedView>;
|
|
1359
|
+
onUpdateView: (id: string, input: {
|
|
1360
|
+
title?: string;
|
|
1361
|
+
settings?: KanbanRendererSettings;
|
|
1362
|
+
filters?: KanbanRendererFilterState;
|
|
1363
|
+
}) => Promise<void>;
|
|
1364
|
+
onDeleteView: (id: string) => Promise<void>;
|
|
1365
|
+
onSetDefaultView: (id: string | null) => Promise<void>;
|
|
1366
|
+
}
|
|
1367
|
+
interface KanbanRendererViewsProvider {
|
|
1368
|
+
getSnapshot: () => KanbanRendererViewsSource | undefined;
|
|
1369
|
+
subscribe: (listener: () => void) => () => void;
|
|
1370
|
+
}
|
|
1093
1371
|
//#endregion
|
|
1094
1372
|
//#region src/core/registries/renderers/kanban-renderer-registry.d.ts
|
|
1095
1373
|
interface KanbanRendererQueryState {
|
|
@@ -1099,6 +1377,7 @@ interface KanbanRendererQueryState {
|
|
|
1099
1377
|
interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
|
|
1100
1378
|
id: string;
|
|
1101
1379
|
title: string;
|
|
1380
|
+
toolbarActions?: ViewToolbarAction[];
|
|
1102
1381
|
resourceKind?: string;
|
|
1103
1382
|
/** Host-owned scope for persisted display settings. */
|
|
1104
1383
|
storageScope?: string;
|
|
@@ -1120,6 +1399,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1120
1399
|
/** Initial settings/filters applied when the kanban renderer mounts. */
|
|
1121
1400
|
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
1122
1401
|
defaultFilters?: KanbanRendererFilterState;
|
|
1402
|
+
viewsProvider?: KanbanRendererViewsProvider;
|
|
1123
1403
|
defaultViews?: KanbanRendererSavedView[];
|
|
1124
1404
|
defaultActiveViewId?: string;
|
|
1125
1405
|
/**
|
|
@@ -1146,202 +1426,6 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1146
1426
|
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
1147
1427
|
}
|
|
1148
1428
|
//#endregion
|
|
1149
|
-
//#region src/core/registries/menus/menu-registry.d.ts
|
|
1150
|
-
type MenuPath = readonly string[];
|
|
1151
|
-
interface MenuItem {
|
|
1152
|
-
commandId: string;
|
|
1153
|
-
sourceCommandId?: string;
|
|
1154
|
-
label?: string;
|
|
1155
|
-
description?: string;
|
|
1156
|
-
icon?: string;
|
|
1157
|
-
iconSrc?: string;
|
|
1158
|
-
overflowLabel?: string;
|
|
1159
|
-
when?: string;
|
|
1160
|
-
group?: string;
|
|
1161
|
-
order?: number;
|
|
1162
|
-
args?: unknown;
|
|
1163
|
-
readOnly?: boolean;
|
|
1164
|
-
/** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
|
|
1165
|
-
external?: boolean;
|
|
1166
|
-
}
|
|
1167
|
-
interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
|
|
1168
|
-
path: MenuPath;
|
|
1169
|
-
}
|
|
1170
|
-
interface MenuRegistryStoreState {
|
|
1171
|
-
itemsByPath: Record<string, RegisteredMenuItem[]>;
|
|
1172
|
-
}
|
|
1173
|
-
interface MenuRegistry {
|
|
1174
|
-
menuStore: WorkbenchStore<MenuRegistryStoreState>;
|
|
1175
|
-
registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
|
|
1176
|
-
listMenuItems(path: MenuPath): RegisteredMenuItem[];
|
|
1177
|
-
}
|
|
1178
|
-
//#endregion
|
|
1179
|
-
//#region src/core/registries/renderers/tree-renderer-types.d.ts
|
|
1180
|
-
interface TreeQueryContext {
|
|
1181
|
-
signal?: AbortSignal;
|
|
1182
|
-
/** Publish available sections while the rest of the current read is still loading. */
|
|
1183
|
-
onProgress?(sections: TreeViewSection[]): void;
|
|
1184
|
-
filter?: string;
|
|
1185
|
-
resource?: ResourceRef$1;
|
|
1186
|
-
/** Widget/view contribution id for trees rendered through a view-backed widget. */
|
|
1187
|
-
viewId?: string;
|
|
1188
|
-
}
|
|
1189
|
-
interface TreeContext extends TreeQueryContext {
|
|
1190
|
-
state: Readonly<TreeRendererState>;
|
|
1191
|
-
refresh(): void;
|
|
1192
|
-
setSelectedNode(nodeId: string | undefined): void;
|
|
1193
|
-
}
|
|
1194
|
-
interface TreeAction {
|
|
1195
|
-
id: string;
|
|
1196
|
-
label?: string;
|
|
1197
|
-
icon?: string;
|
|
1198
|
-
commandId?: string;
|
|
1199
|
-
args?: unknown;
|
|
1200
|
-
params?: CommandParamSchema;
|
|
1201
|
-
submitLabel?: string;
|
|
1202
|
-
when?: string;
|
|
1203
|
-
disabled?: boolean;
|
|
1204
|
-
run?(args?: unknown): Promise<void> | void;
|
|
1205
|
-
}
|
|
1206
|
-
type TreeNodeRowVariant = "empty-state";
|
|
1207
|
-
interface TreeNodeInlineInput {
|
|
1208
|
-
ariaLabel: string;
|
|
1209
|
-
defaultValue?: string;
|
|
1210
|
-
placeholder?: string;
|
|
1211
|
-
onCommit(value: string): Promise<void> | void;
|
|
1212
|
-
onCancel?(): void;
|
|
1213
|
-
}
|
|
1214
|
-
interface TreeNode {
|
|
1215
|
-
id: string;
|
|
1216
|
-
selected?: boolean;
|
|
1217
|
-
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
1218
|
-
moveScope?: string;
|
|
1219
|
-
label: string;
|
|
1220
|
-
icon?: string;
|
|
1221
|
-
iconElement?: unknown;
|
|
1222
|
-
iconColor?: string;
|
|
1223
|
-
iconTooltip?: string;
|
|
1224
|
-
endContent?: unknown;
|
|
1225
|
-
commandId?: string;
|
|
1226
|
-
resource?: ResourceRef$1;
|
|
1227
|
-
target?: NavigationTarget$1;
|
|
1228
|
-
/** Visual row variant for non-data rows such as placeholders. */
|
|
1229
|
-
rowVariant?: TreeNodeRowVariant;
|
|
1230
|
-
inlineInput?: TreeNodeInlineInput;
|
|
1231
|
-
actions?: TreeAction[];
|
|
1232
|
-
contextMenuActions?: TreeAction[];
|
|
1233
|
-
contextMenuPath?: MenuPath;
|
|
1234
|
-
menuPath?: MenuPath;
|
|
1235
|
-
menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
|
|
1236
|
-
showContextMenuTrigger?: boolean;
|
|
1237
|
-
collapsible?: boolean;
|
|
1238
|
-
disabled?: boolean;
|
|
1239
|
-
children?: TreeNode[];
|
|
1240
|
-
description?: string;
|
|
1241
|
-
contextValue?: string;
|
|
1242
|
-
hiddenByDefault?: boolean;
|
|
1243
|
-
/** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
|
|
1244
|
-
canHide?: boolean;
|
|
1245
|
-
/** When false, the node stays fixed within its Sidenav group. */
|
|
1246
|
-
canReorder?: boolean;
|
|
1247
|
-
/** Allow this node to be moved to another tree location. */
|
|
1248
|
-
canDrag?: boolean;
|
|
1249
|
-
/** Allow movable nodes to be dropped on this node. */
|
|
1250
|
-
canDrop?: boolean;
|
|
1251
|
-
}
|
|
1252
|
-
interface TreeSectionEmptyState {
|
|
1253
|
-
title: string;
|
|
1254
|
-
description?: string;
|
|
1255
|
-
icon?: string;
|
|
1256
|
-
}
|
|
1257
|
-
interface TreeViewSection {
|
|
1258
|
-
id: string;
|
|
1259
|
-
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
1260
|
-
moveScope?: string;
|
|
1261
|
-
label?: string;
|
|
1262
|
-
actions?: TreeAction[];
|
|
1263
|
-
collapsible?: boolean;
|
|
1264
|
-
emptyState?: TreeSectionEmptyState;
|
|
1265
|
-
nodes: TreeNode[];
|
|
1266
|
-
hiddenByDefault?: boolean;
|
|
1267
|
-
/** When true, the section (category) opts in to the tree's hide/show customization menu. */
|
|
1268
|
-
canHide?: boolean;
|
|
1269
|
-
/** When false, the section stays fixed within the Sidenav main region. */
|
|
1270
|
-
canReorder?: boolean;
|
|
1271
|
-
}
|
|
1272
|
-
interface TreeMoveEndpoint {
|
|
1273
|
-
kind: "section" | "node";
|
|
1274
|
-
sectionId: string;
|
|
1275
|
-
id: string;
|
|
1276
|
-
moveScope?: string;
|
|
1277
|
-
}
|
|
1278
|
-
type TreeMovePolicy = (move: {
|
|
1279
|
-
source: TreeMoveEndpoint;
|
|
1280
|
-
destination: TreeMoveEndpoint;
|
|
1281
|
-
}) => boolean;
|
|
1282
|
-
interface TreeRendererContribution {
|
|
1283
|
-
id: string;
|
|
1284
|
-
title: string;
|
|
1285
|
-
icon?: string;
|
|
1286
|
-
searchable?: boolean;
|
|
1287
|
-
searchPlaceholder?: string;
|
|
1288
|
-
when?: string;
|
|
1289
|
-
defaultExpandedSectionIds?: string[];
|
|
1290
|
-
defaultExpandedNodeIds?: string[];
|
|
1291
|
-
/** Identify the navigation data scope when it differs from the current page resource. */
|
|
1292
|
-
getReadKey?(ctx: TreeQueryContext): string;
|
|
1293
|
-
getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1294
|
-
getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1295
|
-
getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1296
|
-
getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1297
|
-
canMove?: TreeMovePolicy;
|
|
1298
|
-
moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
|
|
1299
|
-
}
|
|
1300
|
-
interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
|
|
1301
|
-
interface TreeRendererState {
|
|
1302
|
-
expandedNodeIds: string[];
|
|
1303
|
-
expandedSectionIds: string[];
|
|
1304
|
-
selectedNodeId?: string;
|
|
1305
|
-
loading?: boolean;
|
|
1306
|
-
}
|
|
1307
|
-
interface TreeRendererRefreshEvent {
|
|
1308
|
-
treeId: string;
|
|
1309
|
-
}
|
|
1310
|
-
interface TreeRendererStoreState {
|
|
1311
|
-
trees: Record<string, RegisteredTreeRendererContribution>;
|
|
1312
|
-
statesByTreeId: Record<string, TreeRendererState>;
|
|
1313
|
-
refreshKeysByTreeId: Record<string, number>;
|
|
1314
|
-
}
|
|
1315
|
-
interface PersistedTreeRendererStates {
|
|
1316
|
-
statesByTreeId: Record<string, TreeRendererState>;
|
|
1317
|
-
}
|
|
1318
|
-
interface TreeRendererPersistenceAdapter {
|
|
1319
|
-
getTreeStates(): PersistedTreeRendererStates | undefined;
|
|
1320
|
-
setTreeStates(states: PersistedTreeRendererStates): void;
|
|
1321
|
-
}
|
|
1322
|
-
type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
1323
|
-
treeId: string;
|
|
1324
|
-
}) => unknown;
|
|
1325
|
-
type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
|
|
1326
|
-
interface TreeRendererRegistry {
|
|
1327
|
-
treeStore: WorkbenchStore<TreeRendererStoreState>;
|
|
1328
|
-
registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
|
|
1329
|
-
setTreeRendererImplementation(impl: TreeRendererImplementation): void;
|
|
1330
|
-
getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
|
|
1331
|
-
listTreeRenderers(): RegisteredTreeRendererContribution[];
|
|
1332
|
-
getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
1333
|
-
getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
1334
|
-
getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
1335
|
-
getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
|
|
1336
|
-
getTreeState(id: string): TreeRendererState;
|
|
1337
|
-
setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
|
|
1338
|
-
setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
|
|
1339
|
-
setSelectedNode(id: string, nodeId: string | undefined): void;
|
|
1340
|
-
setLoading(id: string, loading: boolean): void;
|
|
1341
|
-
refresh(id: string): void;
|
|
1342
|
-
onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
|
|
1343
|
-
}
|
|
1344
|
-
//#endregion
|
|
1345
1429
|
//#region src/core/registries/views/renderer-read-registry.d.ts
|
|
1346
1430
|
interface RendererReadRequest<T> {
|
|
1347
1431
|
queryKey: string;
|
|
@@ -1358,9 +1442,7 @@ interface RendererReadRegistry {
|
|
|
1358
1442
|
bind(key: string): RendererReadBinding;
|
|
1359
1443
|
dispose(): Promise<void>;
|
|
1360
1444
|
}
|
|
1361
|
-
declare const createRendererReadRegistry: (
|
|
1362
|
-
deadlineMs?: number;
|
|
1363
|
-
}) => RendererReadRegistry;
|
|
1445
|
+
declare const createRendererReadRegistry: () => RendererReadRegistry;
|
|
1364
1446
|
//#endregion
|
|
1365
1447
|
//#region src/core/registries/views/view-registry.d.ts
|
|
1366
1448
|
declare const workbenchViewIdContextKey = "workbench.view.id";
|
|
@@ -1505,9 +1587,13 @@ interface WorkbenchPageLocationBrowser {
|
|
|
1505
1587
|
dispose(): void;
|
|
1506
1588
|
};
|
|
1507
1589
|
}
|
|
1590
|
+
interface PersistedWorkbenchPageLocation {
|
|
1591
|
+
location: PageLocation;
|
|
1592
|
+
rootLevel?: PageLocation;
|
|
1593
|
+
}
|
|
1508
1594
|
interface WorkbenchPageLocationPersistence {
|
|
1509
|
-
load(projectId: string):
|
|
1510
|
-
save(projectId: string,
|
|
1595
|
+
load(projectId: string): PersistedWorkbenchPageLocation | undefined;
|
|
1596
|
+
save(projectId: string, persisted: PersistedWorkbenchPageLocation): void;
|
|
1511
1597
|
}
|
|
1512
1598
|
interface WorkbenchPageLocationDiagnostic {
|
|
1513
1599
|
code: "page-location-unresolved";
|
|
@@ -1532,6 +1618,8 @@ interface WorkbenchPageLocationController {
|
|
|
1532
1618
|
navigate(target: NavigationTargetPage): WorkbenchPageNavigationResult;
|
|
1533
1619
|
replay(location: PageLocation): WorkbenchPageNavigationResult;
|
|
1534
1620
|
navigateToParent(): WorkbenchPageNavigationResult;
|
|
1621
|
+
/** Opens the last location outside every Sidenav level, or the start page when there is none. */
|
|
1622
|
+
navigateToRootLevel(): WorkbenchPageNavigationResult;
|
|
1535
1623
|
closePlacement(identity: PlacementIdentity): WorkbenchPageNavigationResult;
|
|
1536
1624
|
removeResource(resource: ResourceRef, retained: readonly PlacementIdentity[]): void;
|
|
1537
1625
|
goBack(): void;
|
|
@@ -1566,22 +1654,13 @@ interface WorkbenchPanelMenuStateController {
|
|
|
1566
1654
|
}
|
|
1567
1655
|
//#endregion
|
|
1568
1656
|
//#region src/core/controllers/side-panel/side-panel-controller.d.ts
|
|
1569
|
-
type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
|
|
1570
1657
|
type WorkbenchSidePanelChangeListener = (mode: WorkbenchSidePanelMode) => void;
|
|
1571
|
-
interface WorkbenchSidePanelState {
|
|
1572
|
-
mode: WorkbenchSidePanelMode;
|
|
1573
|
-
}
|
|
1574
1658
|
interface WorkbenchSidePanelController {
|
|
1575
1659
|
canFloat(): boolean;
|
|
1576
|
-
store: WorkbenchStore<WorkbenchSidePanelState>;
|
|
1577
1660
|
getMode(): WorkbenchSidePanelMode;
|
|
1578
1661
|
setMode(mode: WorkbenchSidePanelMode): void;
|
|
1579
1662
|
onDidChange(listener: WorkbenchSidePanelChangeListener): Disposable;
|
|
1580
1663
|
}
|
|
1581
|
-
interface WorkbenchSidePanelPersistenceAdapter {
|
|
1582
|
-
getMode(): WorkbenchSidePanelMode | undefined;
|
|
1583
|
-
setMode(mode: WorkbenchSidePanelMode): void;
|
|
1584
|
-
}
|
|
1585
1664
|
//#endregion
|
|
1586
1665
|
//#region src/core/controllers/shell/shell-controller.d.ts
|
|
1587
1666
|
type WorkbenchSidePanelPresentation = WorkbenchSidePanelMode;
|
|
@@ -1778,42 +1857,6 @@ interface WorkbenchModePlacementRegistry {
|
|
|
1778
1857
|
onDidChange(listener: () => void): Disposable;
|
|
1779
1858
|
}
|
|
1780
1859
|
//#endregion
|
|
1781
|
-
//#region src/core/registries/navigation/navigation-tree-registry.d.ts
|
|
1782
|
-
type NavigationTreeSlot = "header" | "content" | "footer";
|
|
1783
|
-
interface NavigationTreeOwner {
|
|
1784
|
-
kind: "mode" | "page";
|
|
1785
|
-
id: string;
|
|
1786
|
-
extensionId: string;
|
|
1787
|
-
}
|
|
1788
|
-
interface NavigationTreeContext {
|
|
1789
|
-
resource?: ResourceRef$1;
|
|
1790
|
-
signal?: AbortSignal;
|
|
1791
|
-
}
|
|
1792
|
-
interface NavigationTreeContribution {
|
|
1793
|
-
id: string;
|
|
1794
|
-
/** Prefix projected section and node ids when they come from an independent tree renderer. */
|
|
1795
|
-
idScope?: string;
|
|
1796
|
-
owner: NavigationTreeOwner;
|
|
1797
|
-
sourceExtensionId: string;
|
|
1798
|
-
declarationIndex: number;
|
|
1799
|
-
slot?: NavigationTreeSlot;
|
|
1800
|
-
viewId?: string;
|
|
1801
|
-
defaultExpandedSectionIds?: string[];
|
|
1802
|
-
/** Resolve the data resource independently of the selected navigation item. */
|
|
1803
|
-
resolveResource?(resource: ResourceRef$1 | undefined): ResourceRef$1 | undefined;
|
|
1804
|
-
getSections?(context: NavigationTreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1805
|
-
getChildren?(node: TreeNode, context: NavigationTreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1806
|
-
}
|
|
1807
|
-
interface NavigationTreeRegistry {
|
|
1808
|
-
registerContribution(contribution: NavigationTreeContribution): Disposable;
|
|
1809
|
-
resolveOwner(kind: NavigationTreeOwner["kind"], id: string): NavigationTreeOwner | undefined;
|
|
1810
|
-
getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
|
|
1811
|
-
getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
|
|
1812
|
-
getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
|
|
1813
|
-
getDefaultExpandedSectionIds(owner: NavigationTreeOwner): string[];
|
|
1814
|
-
onDidChange(listener: () => void): Disposable;
|
|
1815
|
-
}
|
|
1816
|
-
//#endregion
|
|
1817
1860
|
//#region src/core/registries/notifications/notification-registry.d.ts
|
|
1818
1861
|
type WorkbenchNotificationLevel = "info" | "success" | "warning" | "error";
|
|
1819
1862
|
interface WorkbenchNotificationAction {
|
|
@@ -2272,7 +2315,6 @@ interface createWorkbenchInput {
|
|
|
2272
2315
|
defaultPanelOpenByRegionId?: Partial<Record<WorkbenchRegion, boolean>>;
|
|
2273
2316
|
/** Host-level region layout policy. The active mode's regionSettings win over it. */
|
|
2274
2317
|
regionSettings?: Partial<Record<WorkbenchRegion, WorkbenchRegionSettings>>;
|
|
2275
|
-
sidePanelPersistence?: WorkbenchSidePanelPersistenceAdapter;
|
|
2276
2318
|
/** Default floating policy. The active mode may override it. */
|
|
2277
2319
|
floatingPanels?: "visible" | "hidden";
|
|
2278
2320
|
initialSidePanelMode?: WorkbenchSidePanelMode;
|
|
@@ -2357,9 +2399,31 @@ interface WorkbenchCompositionController {
|
|
|
2357
2399
|
panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
|
|
2358
2400
|
}
|
|
2359
2401
|
//#endregion
|
|
2402
|
+
//#region src/core/controllers/page-location/navigation-level-composition.d.ts
|
|
2403
|
+
interface LevelNavigationHost {
|
|
2404
|
+
modes: {
|
|
2405
|
+
getActiveModeId(): string | undefined;
|
|
2406
|
+
};
|
|
2407
|
+
pages: {
|
|
2408
|
+
store: {
|
|
2409
|
+
getState(): {
|
|
2410
|
+
location?: PageLocation;
|
|
2411
|
+
pages: Readonly<Record<string, WorkbenchPageContribution>>;
|
|
2412
|
+
};
|
|
2413
|
+
};
|
|
2414
|
+
};
|
|
2415
|
+
navigationTrees: NavigationTreeRegistry;
|
|
2416
|
+
getPrimaryResource(): ResourceRef | undefined;
|
|
2417
|
+
}
|
|
2418
|
+
declare const createLevelNavigation: (host: LevelNavigationHost) => {
|
|
2419
|
+
getReadKey: () => string;
|
|
2420
|
+
getSections(slot: NavigationTreeSlot, signal?: AbortSignal): Promise<TreeViewSection[]>;
|
|
2421
|
+
getDefaultExpandedSectionIds: () => string[];
|
|
2422
|
+
};
|
|
2423
|
+
//#endregion
|
|
2360
2424
|
//#region src/core/registries/layout/surface-map.d.ts
|
|
2361
2425
|
type AnchorId = "primary" | "secondary" | "attached";
|
|
2362
|
-
declare const resolveAnchorRegion: (anchorId: AnchorId) => "
|
|
2426
|
+
declare const resolveAnchorRegion: (anchorId: AnchorId) => "nav" | "activity" | "sidenav" | "main-header" | "main-left-menu" | "main" | "main-right-menu" | "secondary-header" | "secondary-left-menu" | "secondary" | "secondary-right-menu" | "side-header" | "side-left-menu" | "side" | "side-right-menu" | "status" | "overlay";
|
|
2363
2427
|
//#endregion
|
|
2364
2428
|
//#region src/core/registries/menus/workbench-menu-paths.d.ts
|
|
2365
2429
|
declare const headerLeadingMenuPath: (region: string) => MenuPath;
|
|
@@ -2391,5 +2455,5 @@ declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> |
|
|
|
2391
2455
|
/** Commit related stores before their subscribers read the resulting workbench state. */
|
|
2392
2456
|
declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
|
|
2393
2457
|
//#endregion
|
|
2394
|
-
export {
|
|
2458
|
+
export { createStatusRegistry as $, WorkbenchHierarchyNode as $i, ResourceContextAction as $n, WorkbenchPanelInstance as $r, WorkbenchTerminalSessionRequest as $t, WorkbenchCoreContributionContext as A, CommandParamDescriptor as Ai, createRendererReadRegistry as An, TreeAction as Ar, RegisteredWorkbenchNotification as At, ThemeRegistry as B, ResourceListContext as Bi, EnumOption as Bn, TreeViewSection as Br, KeybindingSequence as Bt, WorkbenchModeAddablePanelContext as C, NavigationTargetCompound as Ci, WorkbenchViewRegistry as Cn, ControlsResetInput as Cr, WorkbenchShellPlacementContribution as Ct, isWorkbenchModePanelAvailable as D, WorkbenchCommandPaletteOpenInput as Di, RendererReadBinding as Dn, NavigationTreeOwner as Dr, WorkbenchOverlayContribution as Dt, getWorkbenchModePanelForRegion as E, WorkbenchCommandPaletteController as Ei, workbenchViewIdContextKey as En, NavigationTreeContribution as Er, WorkbenchPlaceholderRegistry as Et, WorkbenchPagePersistenceScope as F, WorkbenchCommandExecutionError as Fi, AttributeKind as Fn, TreeNodeInlineInput as Fr, WorkbenchModePlacementContribution as Ft, FileIconThemeRegistry as G, createWorkbenchSelectionResourceMetadata as Gi, KanbanRendererCreateRowConfig as Gn, RegisteredMenuItem as Gr, CommandPaletteResourceRegistry as Gt, ThemePreferenceMode as H, ResourceRef$1 as Hi, EnumOptionsSource as Hn, MenuItem as Hr, CommandPaletteResourceProvider as Ht, WorkbenchPagePersistenceScopeInput as I, WorkbenchBreadcrumbController as Ii, AttributeType as In, TreeQueryContext as Ir, WorkbenchModePlacementRegistry as It, WorkbenchStatusRegistry as J, workbenchResourceMetadataContextKey as Ji, KanbanRendererOrdering as Jn, LayoutPersistenceAdapter as Jr, WorkbenchTerminalSessionAdapter as Jt, FileIconThemeFont as K, getWorkbenchSelectionResourceKeys as Ki, KanbanRendererCreateSubmission as Kn, WorkbenchFocusController as Kr, CommandPaletteResourceResult as Kt, WorkbenchPersistenceAdapter as L, WorkbenchBreadcrumbItem as Li, AttributesSource as Ln, TreeRendererContribution as Lr, WorkbenchOwnedPlacementItem as Lt, WorkbenchModuleContext as M, CommandParamSchema as Mi, KanbanRendererQueryState as Mn, TreeMoveEndpoint as Mr, WorkbenchNotificationAction as Mt, WorkbenchModuleContribution as N, CommandRegistry as Ni, AttributeDescriptor as Nn, TreeMovePolicy as Nr, WorkbenchNotificationEvent as Nt, createWorkbench as O, Command as Oi, RendererReadRegistry as On, NavigationTreeRegistry as Or, WorkbenchOverlayRegistry as Ot, WorkbenchModuleContributionContext as P, WorkbenchCommandExecutionContext as Pi, AttributeDisplayDescriptor as Pn, TreeNode as Pr, WorkbenchNotificationLevel as Pt, WorkflowStatusAction as Q, ResourceHierarchyProvider as Qi, KanbanRendererViewsSource as Qn, WorkbenchLayout as Qr, WorkbenchTerminalSessionOpener as Qt, WorkbenchSnapshot as R, ResourceBrowseEntry as Ri, BoardColumnAction as Rn, TreeRendererPersistenceAdapter as Rr, Keybinding as Rt, WorkbenchModeAddablePanel as S, NavigationTargetCommand as Si, WorkbenchViewContribution as Sn, ControlsRendererLayout as Sr, PreferenceValue as St, WorkbenchModeRegistry as T, NavigationTargetPanel$1 as Ti, createViewRegistry as Tn, NavigationTreeContext as Tr, WorkbenchPlaceholderContribution as Tt, ThemePreferenceOption as U, ResourceRegistry as Ui, KanbanRendererCreateField as Un, MenuPath as Ur, CommandPaletteResourceProviderResult as Ut, ThemePreference as V, ResourceProvider as Vi, EnumOptions as Vn, WorkbenchPanelRenderInput as Vr, getKeybindingSteps as Vt, ThemePreferenceTokens as W, createWorkbenchResourceContextValues as Wi, KanbanRendererCreateFieldType as Wn, MenuRegistry as Wr, CommandPaletteResourceQueryContext as Wt, WorkbenchStatusSetContribution as X, workbenchSelectionResourceKeyMetadataKey as Xi, KanbanRendererSettings as Xn, RegisteredWidgetContribution as Xr, WorkbenchTerminalSessionExit as Xt, WorkbenchStatusRegistryState as Y, workbenchResourceTypeContextKey as Yi, KanbanRendererRow as Yn, RegisteredPlaceholderContribution as Yr, WorkbenchTerminalSessionError as Yt, WorkflowStatus as Z, ResourceHierarchyCycle as Zi, KanbanRendererViewsProvider as Zn, WorkbenchCommandTarget as Zr, WorkbenchTerminalSessionModel as Zt, resolveAnchorRegion as _, workbenchRegions as _i, WorkbenchViewMenuContribution as _n, DataTableRendererThemeColor as _r, PreferencePropertySchema as _t, standardResourceIcons as a, ContextKeyScope as aa, WorkbenchTabMenuGroup as ai, WorkbenchShellRegionState as an, FileRendererRefreshOrigin as ar, CollectionSettingsPanel as at, WorkbenchModeActivationContext as b, NavigationRegistry as bi, WorkbenchReactViewBody as bn, ControlsQueryResult$1 as br, PreferenceScope as bt, headerLeadingMenuPath as c, matchesContextExpression as ca, WorkbenchTabRetention as ci, PersistedWorkbenchPageLocation as cn, DataTableRendererColumn as cr, SettingsCollectionGroupBy as ct, workbenchCommandPaletteMenuPath as d, WorkbenchWidgetTab as di, WorkbenchPageLocationController as dn, DataTableRendererContribution as dr, SettingsPanelPreference as dt, WorkbenchViewHierarchyNode as ea, WorkbenchPanelMountStrategy as ei, WorkbenchTerminalSessionSink as en, SortDirection as er, WorkbenchStatusBarItem as et, workbenchRegionTabAddMenuPath as f, WorkbenchPanelMenuRegion as fi, WorkbenchPageLocationDiagnostic as fn, DataTableRendererQueryContext as fr, SettingsRegistry as ft, AnchorId as g, workbenchPanelRegions as gi, WorkbenchPlacementPresentation as gn, DataTableRendererSelectionAction as gr, PreferencePersistenceAdapter as gt, workbenchTopHeaderTrailingMenuPath as h, WorkbenchRegion as hi, WorkbenchPageContribution as hn, DataTableRendererRowAction as hr, ViewSettingsPanel as ht, StandardResourceIcon as i, ContributionSource as ia, WorkbenchTabAction as ii, WorkbenchShellOpenRegion as in, FileRendererRefreshEnvelope as ir, createStatusBarRegistry as it, WorkbenchHost as j, CommandParamOption as ji, KanbanRendererContribution as jn, TreeContext as jr, WorkbenchNotification as jt, WorkbenchCore as k, CommandHandler as ki, RendererReadRequest as kn, NavigationTreeSlot as kr, NotificationRegistry as kt, headerTrailingMenuPath as l, WorkbenchStore as la, WorkbenchTabSnapshot as li, WorkbenchPageBrowserEntry as ln, DataTableRendererColumnRenderer as lr, SettingsPanelBase as lt, workbenchTopHeaderLeadingMenuPath as m, WorkbenchPanelRegion as mi, WorkbenchPageNavigationResult as mn, DataTableRendererRow as mr, SettingsSectionContribution as mt, settleReadBatch as n, resourceHierarchyCycleCode as na, WorkbenchRegionSize as ni, WorkbenchTerminalState as nn, FileRendererContent as nr, WorkbenchStatusBarRegistryState as nt, DockedWorkbenchRegion$1 as o, ContextKeyService as oa, WorkbenchTabMenuRow as oi, WorkbenchSidePanelPresentation as on, FileRendererSaveResult as or, SchemaSettingsPanel as ot, workbenchRegionTabLeadingMenuPath as p, WorkbenchPanelMenuSide as pi, WorkbenchPageLocationPersistence as pn, DataTableRendererQueryResult as pr, SettingsScope as pt, FileIconThemePreferenceOption as q, workbenchResourceIdContextKey as qi, KanbanRendererFilterState as qn, WorkbenchFocusRegionId as qr, WorkbenchTerminalController as qt, rendererReadKey as r, ContributionMetadata as ra, WorkbenchSidePanelMode as ri, WorkbenchShellController as rn, FileRendererContribution as rr, WorkbenchStatusBarSlot as rt, dockedWorkbenchRegions as s, ContextKeyValue as sa, WorkbenchTabPosition as si, WorkbenchPanelMenuStatePersistenceAdapter as sn, DataTableRendererBadgePalette as sr, SettingsAction as st, batchWorkbenchChanges as t, isWorkbenchViewHierarchyNode as ta, WorkbenchPanelTab as ti, WorkbenchTerminalSessionStatus as tn, ViewMode as tr, WorkbenchStatusBarRegistry as tt, resourceContextMenuPath as u, Disposable as ua, WorkbenchWidgetPlacement as ui, WorkbenchPageLocationBrowser as un, DataTableRendererColumnStat as ur, SettingsPanelContribution as ut, defaultPageResourceCodec as v, NavigationDispatcherContext as vi, WorkbenchViewMenuRegistry as vn, RegisteredDataTableRendererContribution as vr, PreferenceRegistry as vt, WorkbenchModeContribution as w, NavigationTargetItem as wi, WorkbenchViewRegistryStoreState as wn, ControlsUpdateValueInput as wr, WorkbenchShellPlacementRegistry as wt, WorkbenchModeActivationResult as x, NavigationTarget$1 as xi, WorkbenchViewBody as xn, ControlsRendererContribution as xr, PreferenceScopeRef as xt, createLevelNavigation as y, NavigationParser as yi, RegisteredWorkbenchView as yn, ControlsApplyInput as yr, PreferenceSchemaContribution as yt, createWorkbenchInput as z, ResourceKindContribution as zi, BoardColumnConfig as zn, TreeRendererState as zr, KeybindingRegistry as zt };
|
|
2395
2459
|
export {};
|