@pstdio/workbench 0.37.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 +46 -5
- package/dist/extensions.js +284 -255
- package/dist/extensions.js.map +1 -1
- package/dist/{file-renderer-view-DYkCfQyn.js → file-renderer-view-Cf3pcX_K.js} +3 -3
- package/dist/{file-renderer-view-DYkCfQyn.js.map → file-renderer-view-Cf3pcX_K.js.map} +1 -1
- package/dist/{index-xcZvsNOe.d.ts → index-Bzx1gf5-.d.ts} +268 -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-BuHAKDDJ.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-BaClOzCB.js → react-CgOb52iV.js} +2807 -2445
- 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-BaClOzCB.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,15 +168,24 @@ 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;
|
|
187
|
+
/** Workspace provider ids a `workspace` param may offer. */
|
|
188
|
+
providers?: string[];
|
|
179
189
|
accept?: string;
|
|
180
190
|
multiple?: boolean;
|
|
181
191
|
metadata?: Record<string, unknown>;
|
|
@@ -783,6 +793,211 @@ interface ControlsRendererContribution {
|
|
|
783
793
|
subscribe?: (listener: () => void) => Disposable | (() => void);
|
|
784
794
|
}
|
|
785
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
|
|
786
1001
|
//#region src/core/registries/renderers/data-table-renderer-registry.d.ts
|
|
787
1002
|
interface DataTableRendererThemeColor {
|
|
788
1003
|
light: string;
|
|
@@ -870,6 +1085,7 @@ interface DataTableRendererSelectionAction {
|
|
|
870
1085
|
interface DataTableRendererContribution {
|
|
871
1086
|
id: string;
|
|
872
1087
|
title: string;
|
|
1088
|
+
toolbarActions?: ViewToolbarAction[];
|
|
873
1089
|
resourceKind?: string;
|
|
874
1090
|
columns?: DataTableRendererColumn[];
|
|
875
1091
|
selectionMode?: "none" | "multiple";
|
|
@@ -1026,7 +1242,6 @@ interface KanbanRendererSavedView {
|
|
|
1026
1242
|
title: string;
|
|
1027
1243
|
settings: KanbanRendererSettings;
|
|
1028
1244
|
filters: KanbanRendererFilterState;
|
|
1029
|
-
isDefault?: boolean;
|
|
1030
1245
|
}
|
|
1031
1246
|
type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
|
|
1032
1247
|
interface KanbanRendererCreateField {
|
|
@@ -1088,6 +1303,29 @@ interface ResourceContextAction<TNode = unknown> {
|
|
|
1088
1303
|
endContent?: TNode;
|
|
1089
1304
|
separatorBefore?: boolean;
|
|
1090
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
|
+
}
|
|
1091
1329
|
//#endregion
|
|
1092
1330
|
//#region src/core/registries/renderers/kanban-renderer-registry.d.ts
|
|
1093
1331
|
interface KanbanRendererQueryState {
|
|
@@ -1097,6 +1335,7 @@ interface KanbanRendererQueryState {
|
|
|
1097
1335
|
interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
|
|
1098
1336
|
id: string;
|
|
1099
1337
|
title: string;
|
|
1338
|
+
toolbarActions?: ViewToolbarAction[];
|
|
1100
1339
|
resourceKind?: string;
|
|
1101
1340
|
/** Host-owned scope for persisted display settings. */
|
|
1102
1341
|
storageScope?: string;
|
|
@@ -1118,6 +1357,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1118
1357
|
/** Initial settings/filters applied when the kanban renderer mounts. */
|
|
1119
1358
|
defaultSettings?: Partial<KanbanRendererSettings>;
|
|
1120
1359
|
defaultFilters?: KanbanRendererFilterState;
|
|
1360
|
+
viewsProvider?: KanbanRendererViewsProvider;
|
|
1121
1361
|
defaultViews?: KanbanRendererSavedView[];
|
|
1122
1362
|
defaultActiveViewId?: string;
|
|
1123
1363
|
/**
|
|
@@ -1144,202 +1384,6 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
|
|
|
1144
1384
|
onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
|
|
1145
1385
|
}
|
|
1146
1386
|
//#endregion
|
|
1147
|
-
//#region src/core/registries/menus/menu-registry.d.ts
|
|
1148
|
-
type MenuPath = readonly string[];
|
|
1149
|
-
interface MenuItem {
|
|
1150
|
-
commandId: string;
|
|
1151
|
-
sourceCommandId?: string;
|
|
1152
|
-
label?: string;
|
|
1153
|
-
description?: string;
|
|
1154
|
-
icon?: string;
|
|
1155
|
-
iconSrc?: string;
|
|
1156
|
-
overflowLabel?: string;
|
|
1157
|
-
when?: string;
|
|
1158
|
-
group?: string;
|
|
1159
|
-
order?: number;
|
|
1160
|
-
args?: unknown;
|
|
1161
|
-
readOnly?: boolean;
|
|
1162
|
-
/** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
|
|
1163
|
-
external?: boolean;
|
|
1164
|
-
}
|
|
1165
|
-
interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
|
|
1166
|
-
path: MenuPath;
|
|
1167
|
-
}
|
|
1168
|
-
interface MenuRegistryStoreState {
|
|
1169
|
-
itemsByPath: Record<string, RegisteredMenuItem[]>;
|
|
1170
|
-
}
|
|
1171
|
-
interface MenuRegistry {
|
|
1172
|
-
menuStore: WorkbenchStore<MenuRegistryStoreState>;
|
|
1173
|
-
registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
|
|
1174
|
-
listMenuItems(path: MenuPath): RegisteredMenuItem[];
|
|
1175
|
-
}
|
|
1176
|
-
//#endregion
|
|
1177
|
-
//#region src/core/registries/renderers/tree-renderer-types.d.ts
|
|
1178
|
-
interface TreeQueryContext {
|
|
1179
|
-
signal?: AbortSignal;
|
|
1180
|
-
/** Publish available sections while the rest of the current read is still loading. */
|
|
1181
|
-
onProgress?(sections: TreeViewSection[]): void;
|
|
1182
|
-
filter?: string;
|
|
1183
|
-
resource?: ResourceRef$1;
|
|
1184
|
-
/** Widget/view contribution id for trees rendered through a view-backed widget. */
|
|
1185
|
-
viewId?: string;
|
|
1186
|
-
}
|
|
1187
|
-
interface TreeContext extends TreeQueryContext {
|
|
1188
|
-
state: Readonly<TreeRendererState>;
|
|
1189
|
-
refresh(): void;
|
|
1190
|
-
setSelectedNode(nodeId: string | undefined): void;
|
|
1191
|
-
}
|
|
1192
|
-
interface TreeAction {
|
|
1193
|
-
id: string;
|
|
1194
|
-
label?: string;
|
|
1195
|
-
icon?: string;
|
|
1196
|
-
commandId?: string;
|
|
1197
|
-
args?: unknown;
|
|
1198
|
-
params?: CommandParamSchema;
|
|
1199
|
-
submitLabel?: string;
|
|
1200
|
-
when?: string;
|
|
1201
|
-
disabled?: boolean;
|
|
1202
|
-
run?(args?: unknown): Promise<void> | void;
|
|
1203
|
-
}
|
|
1204
|
-
type TreeNodeRowVariant = "empty-state";
|
|
1205
|
-
interface TreeNodeInlineInput {
|
|
1206
|
-
ariaLabel: string;
|
|
1207
|
-
defaultValue?: string;
|
|
1208
|
-
placeholder?: string;
|
|
1209
|
-
onCommit(value: string): Promise<void> | void;
|
|
1210
|
-
onCancel?(): void;
|
|
1211
|
-
}
|
|
1212
|
-
interface TreeNode {
|
|
1213
|
-
id: string;
|
|
1214
|
-
selected?: boolean;
|
|
1215
|
-
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
1216
|
-
moveScope?: string;
|
|
1217
|
-
label: string;
|
|
1218
|
-
icon?: string;
|
|
1219
|
-
iconElement?: unknown;
|
|
1220
|
-
iconColor?: string;
|
|
1221
|
-
iconTooltip?: string;
|
|
1222
|
-
endContent?: unknown;
|
|
1223
|
-
commandId?: string;
|
|
1224
|
-
resource?: ResourceRef$1;
|
|
1225
|
-
target?: NavigationTarget$1;
|
|
1226
|
-
/** Visual row variant for non-data rows such as placeholders. */
|
|
1227
|
-
rowVariant?: TreeNodeRowVariant;
|
|
1228
|
-
inlineInput?: TreeNodeInlineInput;
|
|
1229
|
-
actions?: TreeAction[];
|
|
1230
|
-
contextMenuActions?: TreeAction[];
|
|
1231
|
-
contextMenuPath?: MenuPath;
|
|
1232
|
-
menuPath?: MenuPath;
|
|
1233
|
-
menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
|
|
1234
|
-
showContextMenuTrigger?: boolean;
|
|
1235
|
-
collapsible?: boolean;
|
|
1236
|
-
disabled?: boolean;
|
|
1237
|
-
children?: TreeNode[];
|
|
1238
|
-
description?: string;
|
|
1239
|
-
contextValue?: string;
|
|
1240
|
-
hiddenByDefault?: boolean;
|
|
1241
|
-
/** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
|
|
1242
|
-
canHide?: boolean;
|
|
1243
|
-
/** When false, the node stays fixed within its Sidenav group. */
|
|
1244
|
-
canReorder?: boolean;
|
|
1245
|
-
/** Allow this node to be moved to another tree location. */
|
|
1246
|
-
canDrag?: boolean;
|
|
1247
|
-
/** Allow movable nodes to be dropped on this node. */
|
|
1248
|
-
canDrop?: boolean;
|
|
1249
|
-
}
|
|
1250
|
-
interface TreeSectionEmptyState {
|
|
1251
|
-
title: string;
|
|
1252
|
-
description?: string;
|
|
1253
|
-
icon?: string;
|
|
1254
|
-
}
|
|
1255
|
-
interface TreeViewSection {
|
|
1256
|
-
id: string;
|
|
1257
|
-
/** Host-owned customization boundary. Extension callbacks cannot set it. */
|
|
1258
|
-
moveScope?: string;
|
|
1259
|
-
label?: string;
|
|
1260
|
-
actions?: TreeAction[];
|
|
1261
|
-
collapsible?: boolean;
|
|
1262
|
-
emptyState?: TreeSectionEmptyState;
|
|
1263
|
-
nodes: TreeNode[];
|
|
1264
|
-
hiddenByDefault?: boolean;
|
|
1265
|
-
/** When true, the section (category) opts in to the tree's hide/show customization menu. */
|
|
1266
|
-
canHide?: boolean;
|
|
1267
|
-
/** When false, the section stays fixed within the Sidenav main region. */
|
|
1268
|
-
canReorder?: boolean;
|
|
1269
|
-
}
|
|
1270
|
-
interface TreeMoveEndpoint {
|
|
1271
|
-
kind: "section" | "node";
|
|
1272
|
-
sectionId: string;
|
|
1273
|
-
id: string;
|
|
1274
|
-
moveScope?: string;
|
|
1275
|
-
}
|
|
1276
|
-
type TreeMovePolicy = (move: {
|
|
1277
|
-
source: TreeMoveEndpoint;
|
|
1278
|
-
destination: TreeMoveEndpoint;
|
|
1279
|
-
}) => boolean;
|
|
1280
|
-
interface TreeRendererContribution {
|
|
1281
|
-
id: string;
|
|
1282
|
-
title: string;
|
|
1283
|
-
icon?: string;
|
|
1284
|
-
searchable?: boolean;
|
|
1285
|
-
searchPlaceholder?: string;
|
|
1286
|
-
when?: string;
|
|
1287
|
-
defaultExpandedSectionIds?: string[];
|
|
1288
|
-
defaultExpandedNodeIds?: string[];
|
|
1289
|
-
/** Identify the navigation data scope when it differs from the current page resource. */
|
|
1290
|
-
getReadKey?(ctx: TreeQueryContext): string;
|
|
1291
|
-
getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1292
|
-
getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1293
|
-
getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
|
|
1294
|
-
getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
|
|
1295
|
-
canMove?: TreeMovePolicy;
|
|
1296
|
-
moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
|
|
1297
|
-
}
|
|
1298
|
-
interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
|
|
1299
|
-
interface TreeRendererState {
|
|
1300
|
-
expandedNodeIds: string[];
|
|
1301
|
-
expandedSectionIds: string[];
|
|
1302
|
-
selectedNodeId?: string;
|
|
1303
|
-
loading?: boolean;
|
|
1304
|
-
}
|
|
1305
|
-
interface TreeRendererRefreshEvent {
|
|
1306
|
-
treeId: string;
|
|
1307
|
-
}
|
|
1308
|
-
interface TreeRendererStoreState {
|
|
1309
|
-
trees: Record<string, RegisteredTreeRendererContribution>;
|
|
1310
|
-
statesByTreeId: Record<string, TreeRendererState>;
|
|
1311
|
-
refreshKeysByTreeId: Record<string, number>;
|
|
1312
|
-
}
|
|
1313
|
-
interface PersistedTreeRendererStates {
|
|
1314
|
-
statesByTreeId: Record<string, TreeRendererState>;
|
|
1315
|
-
}
|
|
1316
|
-
interface TreeRendererPersistenceAdapter {
|
|
1317
|
-
getTreeStates(): PersistedTreeRendererStates | undefined;
|
|
1318
|
-
setTreeStates(states: PersistedTreeRendererStates): void;
|
|
1319
|
-
}
|
|
1320
|
-
type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
|
|
1321
|
-
treeId: string;
|
|
1322
|
-
}) => unknown;
|
|
1323
|
-
type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
|
|
1324
|
-
interface TreeRendererRegistry {
|
|
1325
|
-
treeStore: WorkbenchStore<TreeRendererStoreState>;
|
|
1326
|
-
registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
|
|
1327
|
-
setTreeRendererImplementation(impl: TreeRendererImplementation): void;
|
|
1328
|
-
getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
|
|
1329
|
-
listTreeRenderers(): RegisteredTreeRendererContribution[];
|
|
1330
|
-
getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
1331
|
-
getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
1332
|
-
getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
|
|
1333
|
-
getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
|
|
1334
|
-
getTreeState(id: string): TreeRendererState;
|
|
1335
|
-
setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
|
|
1336
|
-
setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
|
|
1337
|
-
setSelectedNode(id: string, nodeId: string | undefined): void;
|
|
1338
|
-
setLoading(id: string, loading: boolean): void;
|
|
1339
|
-
refresh(id: string): void;
|
|
1340
|
-
onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
|
|
1341
|
-
}
|
|
1342
|
-
//#endregion
|
|
1343
1387
|
//#region src/core/registries/views/renderer-read-registry.d.ts
|
|
1344
1388
|
interface RendererReadRequest<T> {
|
|
1345
1389
|
queryKey: string;
|
|
@@ -1356,9 +1400,7 @@ interface RendererReadRegistry {
|
|
|
1356
1400
|
bind(key: string): RendererReadBinding;
|
|
1357
1401
|
dispose(): Promise<void>;
|
|
1358
1402
|
}
|
|
1359
|
-
declare const createRendererReadRegistry: (
|
|
1360
|
-
deadlineMs?: number;
|
|
1361
|
-
}) => RendererReadRegistry;
|
|
1403
|
+
declare const createRendererReadRegistry: () => RendererReadRegistry;
|
|
1362
1404
|
//#endregion
|
|
1363
1405
|
//#region src/core/registries/views/view-registry.d.ts
|
|
1364
1406
|
declare const workbenchViewIdContextKey = "workbench.view.id";
|
|
@@ -1804,11 +1846,11 @@ interface NavigationTreeContribution {
|
|
|
1804
1846
|
}
|
|
1805
1847
|
interface NavigationTreeRegistry {
|
|
1806
1848
|
registerContribution(contribution: NavigationTreeContribution): Disposable;
|
|
1807
|
-
resolveOwner(kind: NavigationTreeOwner["kind"], id: string): NavigationTreeOwner | undefined;
|
|
1849
|
+
resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
|
|
1808
1850
|
getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
|
|
1809
1851
|
getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
|
|
1810
1852
|
getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
|
|
1811
|
-
getDefaultExpandedSectionIds(owner: NavigationTreeOwner): string[];
|
|
1853
|
+
getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
|
|
1812
1854
|
onDidChange(listener: () => void): Disposable;
|
|
1813
1855
|
}
|
|
1814
1856
|
//#endregion
|
|
@@ -2355,6 +2397,28 @@ interface WorkbenchCompositionController {
|
|
|
2355
2397
|
panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
|
|
2356
2398
|
}
|
|
2357
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
|
|
2358
2422
|
//#region src/core/registries/layout/surface-map.d.ts
|
|
2359
2423
|
type AnchorId = "primary" | "secondary" | "attached";
|
|
2360
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";
|
|
@@ -2389,5 +2453,5 @@ declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> |
|
|
|
2389
2453
|
/** Commit related stores before their subscribers read the resulting workbench state. */
|
|
2390
2454
|
declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
|
|
2391
2455
|
//#endregion
|
|
2392
|
-
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 };
|
|
2393
2457
|
export {};
|