@pstdio/workbench 0.38.0 → 0.39.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/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-Cf3pcX_K.js} +3 -3
- package/dist/{file-renderer-view-B1tNSzpa.js.map → file-renderer-view-Cf3pcX_K.js.map} +1 -1
- package/dist/{index-Cl3NI1pb.d.ts → index-Bzx1gf5-.d.ts} +266 -204
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1255 -1182
- package/dist/index.js.map +1 -1
- package/dist/{kanban-presentation-Mb9rbE48.d.ts → kanban-presentation-yKUdZyuY.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-CgOb52iV.js} +2805 -2444
- package/dist/react-CgOb52iV.js.map +1 -0
- package/dist/react.d.ts +3 -2
- package/dist/react.js +1 -1
- package/dist/storage.d.ts +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
|
@@ -160,6 +160,7 @@ interface WorkbenchCommandExecutionError {
|
|
|
160
160
|
type WorkbenchCommandExecutionErrorListener = (event: WorkbenchCommandExecutionError) => void;
|
|
161
161
|
interface WorkbenchCommandExecutionContext {
|
|
162
162
|
resource?: ResourceRef$1;
|
|
163
|
+
signal?: AbortSignal;
|
|
163
164
|
source?: "panel-add";
|
|
164
165
|
}
|
|
165
166
|
interface CommandParamOption {
|
|
@@ -167,13 +168,20 @@ interface CommandParamOption {
|
|
|
167
168
|
value: string;
|
|
168
169
|
icon?: string;
|
|
169
170
|
}
|
|
171
|
+
interface CommandParamOptionSource {
|
|
172
|
+
commandId: string;
|
|
173
|
+
valueField: string;
|
|
174
|
+
labelField: string;
|
|
175
|
+
params?: Record<string, unknown>;
|
|
176
|
+
}
|
|
170
177
|
interface CommandParamDescriptor {
|
|
171
178
|
type: string;
|
|
172
179
|
label?: string;
|
|
173
180
|
description?: string;
|
|
174
181
|
required?: boolean;
|
|
175
182
|
defaultValue?: unknown;
|
|
176
|
-
options?: CommandParamOption[];
|
|
183
|
+
options?: CommandParamOption[] | CommandParamOptionSource;
|
|
184
|
+
allowCustomValues?: boolean;
|
|
177
185
|
templateType?: string;
|
|
178
186
|
resourceType?: string;
|
|
179
187
|
/** Workspace provider ids a `workspace` param may offer. */
|
|
@@ -785,6 +793,211 @@ interface ControlsRendererContribution {
|
|
|
785
793
|
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
786
794
|
}
|
|
787
795
|
//#endregion
|
|
796
|
+
//#region src/core/registries/menus/menu-registry.d.ts
|
|
797
|
+
type MenuPath = readonly string[];
|
|
798
|
+
interface MenuItem {
|
|
799
|
+
commandId: string;
|
|
800
|
+
sourceCommandId?: string;
|
|
801
|
+
label?: string;
|
|
802
|
+
description?: string;
|
|
803
|
+
icon?: string;
|
|
804
|
+
iconSrc?: string;
|
|
805
|
+
overflowLabel?: string;
|
|
806
|
+
when?: string;
|
|
807
|
+
group?: string;
|
|
808
|
+
order?: number;
|
|
809
|
+
args?: unknown;
|
|
810
|
+
readOnly?: boolean;
|
|
811
|
+
/** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
|
|
812
|
+
external?: boolean;
|
|
813
|
+
}
|
|
814
|
+
interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
|
|
815
|
+
path: MenuPath;
|
|
816
|
+
}
|
|
817
|
+
interface MenuRegistryStoreState {
|
|
818
|
+
itemsByPath: Record<string, RegisteredMenuItem[]>;
|
|
819
|
+
}
|
|
820
|
+
interface MenuRegistry {
|
|
821
|
+
menuStore: WorkbenchStore<MenuRegistryStoreState>;
|
|
822
|
+
registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
|
|
823
|
+
listMenuItems(path: MenuPath): RegisteredMenuItem[];
|
|
824
|
+
}
|
|
825
|
+
//#endregion
|
|
826
|
+
//#region src/core/registries/renderers/tree-renderer-types.d.ts
|
|
827
|
+
interface TreeQueryContext {
|
|
828
|
+
signal?: AbortSignal;
|
|
829
|
+
/** Publish available sections while the rest of the current read is still loading. */
|
|
830
|
+
onProgress?(sections: TreeViewSection[]): void;
|
|
831
|
+
filter?: string;
|
|
832
|
+
resource?: ResourceRef$1;
|
|
833
|
+
/** Widget/view contribution id for trees rendered through a view-backed widget. */
|
|
834
|
+
viewId?: string;
|
|
835
|
+
}
|
|
836
|
+
interface TreeContext extends TreeQueryContext {
|
|
837
|
+
state: Readonly<TreeRendererState>;
|
|
838
|
+
refresh(): void;
|
|
839
|
+
setSelectedNode(nodeId: string | undefined): void;
|
|
840
|
+
}
|
|
841
|
+
interface TreeAction {
|
|
842
|
+
id: string;
|
|
843
|
+
label?: string;
|
|
844
|
+
icon?: string;
|
|
845
|
+
commandId?: string;
|
|
846
|
+
args?: unknown;
|
|
847
|
+
params?: CommandParamSchema;
|
|
848
|
+
submitLabel?: string;
|
|
849
|
+
when?: string;
|
|
850
|
+
disabled?: boolean;
|
|
851
|
+
run?(args?: unknown): Promise<void> | void;
|
|
852
|
+
}
|
|
853
|
+
type TreeNodeRowVariant = "empty-state";
|
|
854
|
+
interface TreeNodeInlineInput {
|
|
855
|
+
ariaLabel: string;
|
|
856
|
+
defaultValue?: string;
|
|
857
|
+
placeholder?: string;
|
|
858
|
+
onCommit(value: string): Promise<void> | void;
|
|
859
|
+
onCancel?(): void;
|
|
860
|
+
}
|
|
861
|
+
interface TreeNode {
|
|
862
|
+
id: string;
|
|
863
|
+
selected?: boolean;
|
|
864
|
+
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
865
|
+
moveScope?: string;
|
|
866
|
+
label: string;
|
|
867
|
+
icon?: string;
|
|
868
|
+
iconElement?: unknown;
|
|
869
|
+
iconColor?: string;
|
|
870
|
+
iconTooltip?: string;
|
|
871
|
+
endContent?: unknown;
|
|
872
|
+
commandId?: string;
|
|
873
|
+
resource?: ResourceRef$1;
|
|
874
|
+
target?: NavigationTarget$1;
|
|
875
|
+
/** Visual row variant for non-data rows such as placeholders. */
|
|
876
|
+
rowVariant?: TreeNodeRowVariant;
|
|
877
|
+
inlineInput?: TreeNodeInlineInput;
|
|
878
|
+
actions?: TreeAction[];
|
|
879
|
+
contextMenuActions?: TreeAction[];
|
|
880
|
+
contextMenuPath?: MenuPath;
|
|
881
|
+
menuPath?: MenuPath;
|
|
882
|
+
menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
|
|
883
|
+
showContextMenuTrigger?: boolean;
|
|
884
|
+
collapsible?: boolean;
|
|
885
|
+
disabled?: boolean;
|
|
886
|
+
children?: TreeNode[];
|
|
887
|
+
description?: string;
|
|
888
|
+
contextValue?: string;
|
|
889
|
+
hiddenByDefault?: boolean;
|
|
890
|
+
/** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
|
|
891
|
+
canHide?: boolean;
|
|
892
|
+
/** When false, the node stays fixed within its Sidenav group. */
|
|
893
|
+
canReorder?: boolean;
|
|
894
|
+
/** Show the row only where users pinned it in the header or footer, never in the body. */
|
|
895
|
+
pinnedOnly?: boolean;
|
|
896
|
+
/** Allow this node to be moved to another tree location. */
|
|
897
|
+
canDrag?: boolean;
|
|
898
|
+
/** Allow movable nodes to be dropped on this node. */
|
|
899
|
+
canDrop?: boolean;
|
|
900
|
+
}
|
|
901
|
+
interface TreeSectionEmptyState {
|
|
902
|
+
title: string;
|
|
903
|
+
description?: string;
|
|
904
|
+
icon?: string;
|
|
905
|
+
}
|
|
906
|
+
interface TreeViewSection {
|
|
907
|
+
id: string;
|
|
908
|
+
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
909
|
+
moveScope?: string;
|
|
910
|
+
label?: string;
|
|
911
|
+
/** Names a section without a visible header in the customize menu. */
|
|
912
|
+
menuLabel?: string;
|
|
913
|
+
actions?: TreeAction[];
|
|
914
|
+
collapsible?: boolean;
|
|
915
|
+
emptyState?: TreeSectionEmptyState;
|
|
916
|
+
nodes: TreeNode[];
|
|
917
|
+
hiddenByDefault?: boolean;
|
|
918
|
+
/** When true, the section (category) opts in to the tree's hide/show customization menu. */
|
|
919
|
+
canHide?: boolean;
|
|
920
|
+
/** When false, the section stays fixed within the Sidenav main region. */
|
|
921
|
+
canReorder?: boolean;
|
|
922
|
+
}
|
|
923
|
+
interface TreeMoveEndpoint {
|
|
924
|
+
kind: "section" | "node";
|
|
925
|
+
sectionId: string;
|
|
926
|
+
id: string;
|
|
927
|
+
moveScope?: string;
|
|
928
|
+
}
|
|
929
|
+
type TreeMovePolicy = (move: {
|
|
930
|
+
source: TreeMoveEndpoint;
|
|
931
|
+
destination: TreeMoveEndpoint;
|
|
932
|
+
}) => boolean;
|
|
933
|
+
interface TreeRendererContribution {
|
|
934
|
+
id: string;
|
|
935
|
+
title: string;
|
|
936
|
+
icon?: string;
|
|
937
|
+
searchable?: boolean;
|
|
938
|
+
searchPlaceholder?: string;
|
|
939
|
+
when?: string;
|
|
940
|
+
defaultExpandedSectionIds?: string[];
|
|
941
|
+
defaultExpandedNodeIds?: string[];
|
|
942
|
+
/** Identify the navigation data scope when it differs from the current page resource. */
|
|
943
|
+
getReadKey?(ctx: TreeQueryContext): string;
|
|
944
|
+
getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
945
|
+
getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
946
|
+
getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
947
|
+
getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
948
|
+
canMove?: TreeMovePolicy;
|
|
949
|
+
moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
|
|
950
|
+
}
|
|
951
|
+
interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
|
|
952
|
+
interface TreeRendererState {
|
|
953
|
+
expandedNodeIds: string[];
|
|
954
|
+
expandedSectionIds: string[];
|
|
955
|
+
selectedNodeId?: string;
|
|
956
|
+
loading?: boolean;
|
|
957
|
+
}
|
|
958
|
+
interface TreeRendererRefreshEvent {
|
|
959
|
+
treeId: string;
|
|
960
|
+
}
|
|
961
|
+
interface TreeRendererStoreState {
|
|
962
|
+
trees: Record<string, RegisteredTreeRendererContribution>;
|
|
963
|
+
statesByTreeId: Record<string, TreeRendererState>;
|
|
964
|
+
refreshKeysByTreeId: Record<string, number>;
|
|
965
|
+
}
|
|
966
|
+
interface PersistedTreeRendererStates {
|
|
967
|
+
statesByTreeId: Record<string, TreeRendererState>;
|
|
968
|
+
}
|
|
969
|
+
interface TreeRendererPersistenceAdapter {
|
|
970
|
+
getTreeStates(): PersistedTreeRendererStates | undefined;
|
|
971
|
+
setTreeStates(states: PersistedTreeRendererStates): void;
|
|
972
|
+
}
|
|
973
|
+
type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
974
|
+
treeId: string;
|
|
975
|
+
}) => unknown;
|
|
976
|
+
type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
|
|
977
|
+
interface TreeRendererRegistry {
|
|
978
|
+
treeStore: WorkbenchStore<TreeRendererStoreState>;
|
|
979
|
+
registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
|
|
980
|
+
setTreeRendererImplementation(impl: TreeRendererImplementation): void;
|
|
981
|
+
getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
|
|
982
|
+
listTreeRenderers(): RegisteredTreeRendererContribution[];
|
|
983
|
+
getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
984
|
+
getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
985
|
+
getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
986
|
+
getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
|
|
987
|
+
getTreeState(id: string): TreeRendererState;
|
|
988
|
+
setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
|
|
989
|
+
setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
|
|
990
|
+
setSelectedNode(id: string, nodeId: string | undefined): void;
|
|
991
|
+
setLoading(id: string, loading: boolean): void;
|
|
992
|
+
refresh(id: string): void;
|
|
993
|
+
onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
|
|
994
|
+
}
|
|
995
|
+
//#endregion
|
|
996
|
+
//#region src/core/registries/renderers/view-toolbar-action.d.ts
|
|
997
|
+
interface ViewToolbarAction extends TreeAction {
|
|
998
|
+
presentation?: "primary" | "secondary";
|
|
999
|
+
}
|
|
1000
|
+
//#endregion
|
|
788
1001
|
//#region src/core/registries/renderers/data-table-renderer-registry.d.ts
|
|
789
1002
|
interface DataTableRendererThemeColor {
|
|
790
1003
|
light: string;
|
|
@@ -872,6 +1085,7 @@ interface DataTableRendererSelectionAction {
|
|
|
872
1085
|
interface DataTableRendererContribution {
|
|
873
1086
|
id: string;
|
|
874
1087
|
title: string;
|
|
1088
|
+
toolbarActions?: ViewToolbarAction[];
|
|
875
1089
|
resourceKind?: string;
|
|
876
1090
|
columns?: DataTableRendererColumn[];
|
|
877
1091
|
selectionMode?: "none" | "multiple";
|
|
@@ -1028,7 +1242,6 @@ interface KanbanRendererSavedView {
|
|
|
1028
1242
|
title: string;
|
|
1029
1243
|
settings: KanbanRendererSettings;
|
|
1030
1244
|
filters: KanbanRendererFilterState;
|
|
1031
|
-
isDefault?: boolean;
|
|
1032
1245
|
}
|
|
1033
1246
|
type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
1034
1247
|
interface KanbanRendererCreateField {
|
|
@@ -1090,6 +1303,29 @@ interface ResourceContextAction<TNode = unknown> {
|
|
|
1090
1303
|
endContent?: TNode;
|
|
1091
1304
|
separatorBefore?: boolean;
|
|
1092
1305
|
}
|
|
1306
|
+
interface KanbanRendererViewsSource {
|
|
1307
|
+
views: (KanbanRendererSavedView & {
|
|
1308
|
+
builtIn: boolean;
|
|
1309
|
+
})[];
|
|
1310
|
+
defaultViewId: string;
|
|
1311
|
+
onCreateView: (input: {
|
|
1312
|
+
title: string;
|
|
1313
|
+
settings: KanbanRendererSettings;
|
|
1314
|
+
filters: KanbanRendererFilterState;
|
|
1315
|
+
copyFrom?: string;
|
|
1316
|
+
}) => Promise<KanbanRendererSavedView>;
|
|
1317
|
+
onUpdateView: (id: string, input: {
|
|
1318
|
+
title?: string;
|
|
1319
|
+
settings?: KanbanRendererSettings;
|
|
1320
|
+
filters?: KanbanRendererFilterState;
|
|
1321
|
+
}) => Promise<void>;
|
|
1322
|
+
onDeleteView: (id: string) => Promise<void>;
|
|
1323
|
+
onSetDefaultView: (id: string | null) => Promise<void>;
|
|
1324
|
+
}
|
|
1325
|
+
interface KanbanRendererViewsProvider {
|
|
1326
|
+
getSnapshot: () => KanbanRendererViewsSource | undefined;
|
|
1327
|
+
subscribe: (listener: () => void) => () => void;
|
|
1328
|
+
}
|
|
1093
1329
|
//#endregion
|
|
1094
1330
|
//#region src/core/registries/renderers/kanban-renderer-registry.d.ts
|
|
1095
1331
|
interface KanbanRendererQueryState {
|
|
@@ -1099,6 +1335,7 @@ interface KanbanRendererQueryState {
|
|
|
1099
1335
|
interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
|
|
1100
1336
|
id: string;
|
|
1101
1337
|
title: string;
|
|
1338
|
+
toolbarActions?: ViewToolbarAction[];
|
|
1102
1339
|
resourceKind?: string;
|
|
1103
1340
|
/** Host-owned scope for persisted display settings. */
|
|
1104
1341
|
storageScope?: string;
|
|
@@ -1120,6 +1357,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1120
1357
|
/** Initial settings/filters applied when the kanban renderer mounts. */
|
|
1121
1358
|
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
1122
1359
|
defaultFilters?: KanbanRendererFilterState;
|
|
1360
|
+
viewsProvider?: KanbanRendererViewsProvider;
|
|
1123
1361
|
defaultViews?: KanbanRendererSavedView[];
|
|
1124
1362
|
defaultActiveViewId?: string;
|
|
1125
1363
|
/**
|
|
@@ -1146,202 +1384,6 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1146
1384
|
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
1147
1385
|
}
|
|
1148
1386
|
//#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
1387
|
//#region src/core/registries/views/renderer-read-registry.d.ts
|
|
1346
1388
|
interface RendererReadRequest<T> {
|
|
1347
1389
|
queryKey: string;
|
|
@@ -1358,9 +1400,7 @@ interface RendererReadRegistry {
|
|
|
1358
1400
|
bind(key: string): RendererReadBinding;
|
|
1359
1401
|
dispose(): Promise<void>;
|
|
1360
1402
|
}
|
|
1361
|
-
declare const createRendererReadRegistry: (
|
|
1362
|
-
deadlineMs?: number;
|
|
1363
|
-
}) => RendererReadRegistry;
|
|
1403
|
+
declare const createRendererReadRegistry: () => RendererReadRegistry;
|
|
1364
1404
|
//#endregion
|
|
1365
1405
|
//#region src/core/registries/views/view-registry.d.ts
|
|
1366
1406
|
declare const workbenchViewIdContextKey = "workbench.view.id";
|
|
@@ -1806,11 +1846,11 @@ interface NavigationTreeContribution {
|
|
|
1806
1846
|
}
|
|
1807
1847
|
interface NavigationTreeRegistry {
|
|
1808
1848
|
registerContribution(contribution: NavigationTreeContribution): Disposable;
|
|
1809
|
-
resolveOwner(kind: NavigationTreeOwner["kind"], id: string): NavigationTreeOwner | undefined;
|
|
1849
|
+
resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
|
|
1810
1850
|
getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
|
|
1811
1851
|
getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
|
|
1812
1852
|
getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
|
|
1813
|
-
getDefaultExpandedSectionIds(owner: NavigationTreeOwner): string[];
|
|
1853
|
+
getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
|
|
1814
1854
|
onDidChange(listener: () => void): Disposable;
|
|
1815
1855
|
}
|
|
1816
1856
|
//#endregion
|
|
@@ -2357,6 +2397,28 @@ interface WorkbenchCompositionController {
|
|
|
2357
2397
|
panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
|
|
2358
2398
|
}
|
|
2359
2399
|
//#endregion
|
|
2400
|
+
//#region src/core/controllers/page-location/navigation-level-composition.d.ts
|
|
2401
|
+
interface LevelNavigationHost {
|
|
2402
|
+
modes: {
|
|
2403
|
+
getActiveModeId(): string | undefined;
|
|
2404
|
+
};
|
|
2405
|
+
pages: {
|
|
2406
|
+
store: {
|
|
2407
|
+
getState(): {
|
|
2408
|
+
location?: PageLocation;
|
|
2409
|
+
pages: Readonly<Record<string, WorkbenchPageContribution>>;
|
|
2410
|
+
};
|
|
2411
|
+
};
|
|
2412
|
+
};
|
|
2413
|
+
navigationTrees: NavigationTreeRegistry;
|
|
2414
|
+
getPrimaryResource(): ResourceRef | undefined;
|
|
2415
|
+
}
|
|
2416
|
+
declare const createLevelNavigation: (host: LevelNavigationHost) => {
|
|
2417
|
+
getReadKey: () => string;
|
|
2418
|
+
getSections(slot: NavigationTreeSlot, signal?: AbortSignal): Promise<TreeViewSection[]>;
|
|
2419
|
+
getDefaultExpandedSectionIds: () => string[];
|
|
2420
|
+
};
|
|
2421
|
+
//#endregion
|
|
2360
2422
|
//#region src/core/registries/layout/surface-map.d.ts
|
|
2361
2423
|
type AnchorId = "primary" | "secondary" | "attached";
|
|
2362
2424
|
declare const resolveAnchorRegion: (anchorId: AnchorId) => "activity" | "sidenav" | "main" | "secondary" | "side" | "status" | "nav" | "main-header" | "main-left-menu" | "main-right-menu" | "secondary-header" | "secondary-left-menu" | "secondary-right-menu" | "side-header" | "side-left-menu" | "side-right-menu" | "overlay";
|
|
@@ -2391,5 +2453,5 @@ declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> |
|
|
|
2391
2453
|
/** Commit related stores before their subscribers read the resulting workbench state. */
|
|
2392
2454
|
declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
|
|
2393
2455
|
//#endregion
|
|
2394
|
-
export {
|
|
2456
|
+
export { createStatusRegistry as $, WorkbenchHierarchyNode as $i, KanbanRendererFilterState as $n, WorkbenchLayout as $r, WorkbenchTerminalSessionAdapter as $t, WorkbenchCoreContributionContext as A, CommandParamDescriptor as Ai, WorkbenchViewRegistryStoreState as An, TreeNodeInlineInput as Ar, RegisteredWorkbenchNotification as At, ThemeRegistry as B, ResourceListContext as Bi, AttributeDisplayDescriptor as Bn, ControlsApplyInput as Br, WorkbenchModePlacementContribution as Bt, WorkbenchModeAddablePanelContext as C, NavigationTargetCompound as Ci, WorkbenchViewMenuContribution as Cn, DataTableRendererThemeColor as Cr, WorkbenchShellPlacementContribution as Ct, isWorkbenchModePanelAvailable as D, WorkbenchCommandPaletteOpenInput as Di, WorkbenchViewBody as Dn, TreeMoveEndpoint as Dr, WorkbenchOverlayContribution as Dt, getWorkbenchModePanelForRegion as E, WorkbenchCommandPaletteController as Ei, WorkbenchReactViewBody as En, TreeContext as Er, WorkbenchPlaceholderRegistry as Et, WorkbenchPagePersistenceScope as F, WorkbenchCommandExecutionError as Fi, RendererReadRequest as Fn, TreeViewSection as Fr, NavigationTreeContext as Ft, FileIconThemeRegistry as G, createWorkbenchSelectionResourceMetadata as Gi, BoardColumnConfig as Gn, ControlsUpdateValueInput as Gr, KeybindingSequence as Gt, ThemePreferenceMode as H, ResourceRef$1 as Hi, AttributeType as Hn, ControlsRendererContribution as Hr, WorkbenchOwnedPlacementItem as Ht, WorkbenchPagePersistenceScopeInput as I, WorkbenchBreadcrumbController as Ii, createRendererReadRegistry as In, MenuItem as Ir, NavigationTreeContribution as It, WorkbenchStatusRegistry as J, workbenchResourceMetadataContextKey as Ji, EnumOptionsSource as Jn, WorkbenchFocusRegionId as Jr, CommandPaletteResourceProviderResult as Jt, FileIconThemeFont as K, getWorkbenchSelectionResourceKeys as Ki, EnumOption as Kn, WorkbenchPanelRenderInput as Kr, getKeybindingSteps as Kt, WorkbenchPersistenceAdapter as L, WorkbenchBreadcrumbItem as Li, KanbanRendererContribution as Ln, MenuPath as Lr, NavigationTreeOwner as Lt, WorkbenchModuleContext as M, CommandParamSchema as Mi, workbenchViewIdContextKey as Mn, TreeRendererContribution as Mr, WorkbenchNotificationAction as Mt, WorkbenchModuleContribution as N, CommandRegistry as Ni, RendererReadBinding as Nn, TreeRendererPersistenceAdapter as Nr, WorkbenchNotificationEvent as Nt, createWorkbench as O, Command as Oi, WorkbenchViewContribution as On, TreeMovePolicy as Or, WorkbenchOverlayRegistry as Ot, WorkbenchModuleContributionContext as P, WorkbenchCommandExecutionContext as Pi, RendererReadRegistry as Pn, TreeRendererState as Pr, WorkbenchNotificationLevel as Pt, WorkflowStatusAction as Q, ResourceHierarchyProvider as Qi, KanbanRendererCreateSubmission as Qn, WorkbenchCommandTarget as Qr, WorkbenchTerminalController as Qt, WorkbenchSnapshot as R, ResourceBrowseEntry as Ri, KanbanRendererQueryState as Rn, MenuRegistry as Rr, NavigationTreeRegistry as Rt, WorkbenchModeAddablePanel as S, NavigationTargetCommand as Si, WorkbenchPlacementPresentation as Sn, DataTableRendererSelectionAction as Sr, PreferenceValue as St, WorkbenchModeRegistry as T, NavigationTargetPanel$1 as Ti, RegisteredWorkbenchView as Tn, TreeAction as Tr, WorkbenchPlaceholderContribution as Tt, ThemePreferenceOption as U, ResourceRegistry as Ui, AttributesSource as Un, ControlsRendererLayout as Ur, Keybinding as Ut, ThemePreference as V, ResourceProvider as Vi, AttributeKind as Vn, ControlsQueryResult$1 as Vr, WorkbenchModePlacementRegistry as Vt, ThemePreferenceTokens as W, createWorkbenchResourceContextValues as Wi, BoardColumnAction as Wn, ControlsResetInput as Wr, KeybindingRegistry as Wt, WorkbenchStatusSetContribution as X, workbenchSelectionResourceKeyMetadataKey as Xi, KanbanRendererCreateFieldType as Xn, RegisteredPlaceholderContribution as Xr, CommandPaletteResourceRegistry as Xt, WorkbenchStatusRegistryState as Y, workbenchResourceTypeContextKey as Yi, KanbanRendererCreateField as Yn, LayoutPersistenceAdapter as Yr, CommandPaletteResourceQueryContext as Yt, WorkflowStatus as Z, ResourceHierarchyCycle as Zi, KanbanRendererCreateRowConfig as Zn, RegisteredWidgetContribution as Zr, CommandPaletteResourceResult as Zt, resolveAnchorRegion as _, workbenchRegions as _i, WorkbenchPageLocationController as _n, DataTableRendererContribution as _r, PreferencePropertySchema as _t, standardResourceIcons as a, ContextKeyScope as aa, WorkbenchTabMenuGroup as ai, WorkbenchTerminalSessionSink as an, ResourceContextAction as ar, CollectionSettingsPanel as at, WorkbenchModeActivationContext as b, NavigationRegistry as bi, WorkbenchPageNavigationResult as bn, DataTableRendererRow as br, PreferenceScope as bt, headerLeadingMenuPath as c, matchesContextExpression as ca, WorkbenchTabRetention as ci, WorkbenchShellController as cn, FileRendererContent as cr, SettingsCollectionGroupBy as ct, workbenchCommandPaletteMenuPath as d, WorkbenchWidgetTab as di, WorkbenchSidePanelPresentation as dn, FileRendererRefreshOrigin as dr, SettingsPanelPreference as dt, WorkbenchViewHierarchyNode as ea, WorkbenchPanelInstance as ei, WorkbenchTerminalSessionError as en, KanbanRendererOrdering as er, WorkbenchStatusBarItem as et, workbenchRegionTabAddMenuPath as f, WorkbenchPanelMenuRegion as fi, WorkbenchSidePanelMode as fn, FileRendererSaveResult as fr, SettingsRegistry as ft, AnchorId as g, workbenchPanelRegions as gi, WorkbenchPageLocationBrowser as gn, DataTableRendererColumnStat as gr, PreferencePersistenceAdapter as gt, workbenchTopHeaderTrailingMenuPath as h, WorkbenchRegion as hi, WorkbenchPageBrowserEntry as hn, DataTableRendererColumnRenderer as hr, ViewSettingsPanel as ht, StandardResourceIcon as i, ContributionSource as ia, WorkbenchTabAction as ii, WorkbenchTerminalSessionRequest as in, KanbanRendererViewsSource as ir, createStatusBarRegistry as it, WorkbenchHost as j, CommandParamOption as ji, createViewRegistry as jn, TreeQueryContext as jr, WorkbenchNotification as jt, WorkbenchCore as k, CommandHandler as ki, WorkbenchViewRegistry as kn, TreeNode as kr, NotificationRegistry as kt, headerTrailingMenuPath as l, WorkbenchStore as la, WorkbenchTabSnapshot as li, WorkbenchShellOpenRegion as ln, FileRendererContribution as lr, SettingsPanelBase as lt, workbenchTopHeaderLeadingMenuPath as m, WorkbenchPanelRegion as mi, WorkbenchPanelMenuStatePersistenceAdapter as mn, DataTableRendererColumn as mr, SettingsSectionContribution as mt, settleReadBatch as n, resourceHierarchyCycleCode as na, WorkbenchPanelTab as ni, WorkbenchTerminalSessionModel as nn, KanbanRendererSettings as nr, WorkbenchStatusBarRegistryState as nt, DockedWorkbenchRegion$1 as o, ContextKeyService as oa, WorkbenchTabMenuRow as oi, WorkbenchTerminalSessionStatus as on, SortDirection as or, SchemaSettingsPanel as ot, workbenchRegionTabLeadingMenuPath as p, WorkbenchPanelMenuSide as pi, WorkbenchSidePanelPersistenceAdapter as pn, DataTableRendererBadgePalette as pr, SettingsScope as pt, FileIconThemePreferenceOption as q, workbenchResourceIdContextKey as qi, EnumOptions as qn, WorkbenchFocusController as qr, CommandPaletteResourceProvider as qt, rendererReadKey as r, ContributionMetadata as ra, WorkbenchRegionSize as ri, WorkbenchTerminalSessionOpener as rn, KanbanRendererViewsProvider as rr, WorkbenchStatusBarSlot as rt, dockedWorkbenchRegions as s, ContextKeyValue as sa, WorkbenchTabPosition as si, WorkbenchTerminalState as sn, ViewMode as sr, SettingsAction as st, batchWorkbenchChanges as t, isWorkbenchViewHierarchyNode as ta, WorkbenchPanelMountStrategy as ti, WorkbenchTerminalSessionExit as tn, KanbanRendererRow as tr, WorkbenchStatusBarRegistry as tt, resourceContextMenuPath as u, Disposable as ua, WorkbenchWidgetPlacement as ui, WorkbenchShellRegionState as un, FileRendererRefreshEnvelope as ur, SettingsPanelContribution as ut, defaultPageResourceCodec as v, NavigationDispatcherContext as vi, WorkbenchPageLocationDiagnostic as vn, DataTableRendererQueryContext as vr, PreferenceRegistry as vt, WorkbenchModeContribution as w, NavigationTargetItem as wi, WorkbenchViewMenuRegistry as wn, RegisteredDataTableRendererContribution as wr, WorkbenchShellPlacementRegistry as wt, WorkbenchModeActivationResult as x, NavigationTarget$1 as xi, WorkbenchPageContribution as xn, DataTableRendererRowAction as xr, PreferenceScopeRef as xt, createLevelNavigation as y, NavigationParser as yi, WorkbenchPageLocationPersistence as yn, DataTableRendererQueryResult as yr, PreferenceSchemaContribution as yt, createWorkbenchInput as z, ResourceKindContribution as zi, AttributeDescriptor as zn, RegisteredMenuItem as zr, NavigationTreeSlot as zt };
|
|
2395
2457
|
export {};
|