@tutti-os/workspace-file-reference 0.0.13 → 0.0.15
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/chunk-HRC2MZ5H.js +393 -0
- package/dist/chunk-HRC2MZ5H.js.map +1 -0
- package/dist/{chunk-LS7P3J6Z.js → chunk-KSK6PILG.js} +661 -14
- package/dist/chunk-KSK6PILG.js.map +1 -0
- package/dist/contracts/index.d.ts +167 -1
- package/dist/core/index.d.ts +152 -2
- package/dist/core/index.js +37 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +37 -1
- package/dist/react/index.d.ts +134 -2
- package/dist/react/index.js +6 -2
- package/dist/referenceSourceAggregator-B8ATnJOZ.d.ts +47 -0
- package/dist/ui/index.d.ts +42 -3
- package/dist/ui/index.js +1507 -94
- package/dist/ui/index.js.map +1 -1
- package/package.json +6 -5
- package/dist/chunk-LS7P3J6Z.js.map +0 -1
- package/dist/chunk-PAR2R2G5.js +0 -23
- package/dist/chunk-PAR2R2G5.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,43 @@
|
|
|
1
1
|
import {
|
|
2
|
+
REFERENCE_FILTER_CATEGORIES,
|
|
3
|
+
SOURCE_ROOT_NODE_ID,
|
|
4
|
+
WORKSPACE_ROOT_GROUP_NODE_ID,
|
|
5
|
+
appendReferencePage,
|
|
6
|
+
base64UrlDecode,
|
|
7
|
+
base64UrlEncode,
|
|
8
|
+
categoryOfFileName,
|
|
9
|
+
createReferenceListSource,
|
|
10
|
+
createReferenceSourceAggregator,
|
|
11
|
+
createStaticReferenceSourceRegistry,
|
|
12
|
+
dedupeReferenceNodes,
|
|
13
|
+
isSourceRootNode,
|
|
14
|
+
matchesFilterCategories,
|
|
15
|
+
nodeKey,
|
|
16
|
+
nodeRefKey,
|
|
17
|
+
normalizeReferenceNodeKind,
|
|
18
|
+
selectedReferenceToWorkspaceFileReference,
|
|
19
|
+
sortReferenceNodes,
|
|
2
20
|
uniqueWorkspaceFileReferences
|
|
3
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-HRC2MZ5H.js";
|
|
4
22
|
export {
|
|
23
|
+
REFERENCE_FILTER_CATEGORIES,
|
|
24
|
+
SOURCE_ROOT_NODE_ID,
|
|
25
|
+
WORKSPACE_ROOT_GROUP_NODE_ID,
|
|
26
|
+
appendReferencePage,
|
|
27
|
+
base64UrlDecode,
|
|
28
|
+
base64UrlEncode,
|
|
29
|
+
categoryOfFileName,
|
|
30
|
+
createReferenceListSource,
|
|
31
|
+
createReferenceSourceAggregator,
|
|
32
|
+
createStaticReferenceSourceRegistry,
|
|
33
|
+
dedupeReferenceNodes,
|
|
34
|
+
isSourceRootNode,
|
|
35
|
+
matchesFilterCategories,
|
|
36
|
+
nodeKey,
|
|
37
|
+
nodeRefKey,
|
|
38
|
+
normalizeReferenceNodeKind,
|
|
39
|
+
selectedReferenceToWorkspaceFileReference,
|
|
40
|
+
sortReferenceNodes,
|
|
5
41
|
uniqueWorkspaceFileReferences
|
|
6
42
|
};
|
|
7
43
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { WorkspaceFileReference, WorkspaceFileReferencePrefetchReason, WorkspaceFileReferencePrefetchState, WorkspaceFileReferenceTreeSnapshot, WorkspaceFileReferenceAdapter } from '../contracts/index.js';
|
|
1
|
+
import { WorkspaceFileReference, WorkspaceFileReferencePrefetchReason, WorkspaceFileReferencePrefetchState, WorkspaceFileReferenceTreeSnapshot, WorkspaceFileReferenceAdapter, ReferenceScope, ReferenceNode, ReferenceLocateTarget, SelectedReference } from '../contracts/index.js';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { WorkspaceFilePreviewReadonlyReason } from '@tutti-os/workspace-file-preview';
|
|
4
|
+
import { R as ReferenceSourceAggregator, a as ReferenceSourceTab } from '../referenceSourceAggregator-B8ATnJOZ.js';
|
|
4
5
|
|
|
5
6
|
declare const workspaceFileReferenceDefaultExpandedDepth = 4;
|
|
6
7
|
interface WorkspaceFileReferenceDirectoryState {
|
|
@@ -89,4 +90,135 @@ declare function useWorkspaceFileReferencePickerView({ fileAdapter, initialPath,
|
|
|
89
90
|
toggleRef: (ref: WorkspaceFileReference) => void;
|
|
90
91
|
};
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
/**
|
|
94
|
+
* node-keyed 多源 picker 的逻辑层 controller(顶部分源 tab)。
|
|
95
|
+
* 独立于现有 WorkspaceFileReferencePickerController —— issue-manager 不受影响。
|
|
96
|
+
* 设计见 docs/architecture/agent-reference-source-services.md §2 / §3。
|
|
97
|
+
*
|
|
98
|
+
* 本层只管:tabs、per-source inline 展开树(node-keyed)、cursor 加载更多、
|
|
99
|
+
* per-tab 搜索、跨 tab 选中集、confirm。预览/打开留待 UI 接入步骤。
|
|
100
|
+
*/
|
|
101
|
+
type ReferenceSourcePickerMode = "browse" | "search";
|
|
102
|
+
interface ReferenceSourceNodeChildrenState {
|
|
103
|
+
/** 已累积的子节点(含多页 append)。 */
|
|
104
|
+
entries: ReferenceNode[];
|
|
105
|
+
nextCursor: string | null;
|
|
106
|
+
loaded: boolean;
|
|
107
|
+
loading: boolean;
|
|
108
|
+
error: Error | null;
|
|
109
|
+
}
|
|
110
|
+
interface ReferenceSourceTabState {
|
|
111
|
+
sourceId: string;
|
|
112
|
+
expandedKeys: Record<string, boolean>;
|
|
113
|
+
/** key = nodeRefKey;源根用 ROOT_CHILDREN_KEY。 */
|
|
114
|
+
childrenByKey: Record<string, ReferenceSourceNodeChildrenState>;
|
|
115
|
+
mode: ReferenceSourcePickerMode;
|
|
116
|
+
searchQuery: string;
|
|
117
|
+
/** 已选文件类型筛选分类 id(全局统一口径);与 searchQuery 一起构成「查询」。 */
|
|
118
|
+
searchFilters: string[];
|
|
119
|
+
/** 当前搜索限定的二级分组节点 nodeId(左栏选中分组);null = 跨整源搜索。 */
|
|
120
|
+
searchScopeNodeId: string | null;
|
|
121
|
+
searchEntries: ReferenceNode[];
|
|
122
|
+
searchNextCursor: string | null;
|
|
123
|
+
/**
|
|
124
|
+
* 当前查询使用的结果上限(增长式分页:拉到底部时 +SEARCH_PAGE_SIZE 重查)。
|
|
125
|
+
* 0 = 尚未发起查询;每次新查询(改关键词/筛选/分组/换源)重置为 SEARCH_PAGE_SIZE。
|
|
126
|
+
*/
|
|
127
|
+
searchLimit: number;
|
|
128
|
+
/** 是否可能还有更多结果(本页返回数 ≥ 请求上限,且未达全局上限)。 */
|
|
129
|
+
searchHasMore: boolean;
|
|
130
|
+
/** 正在加载下一页(增长 limit 重查在途);用于底部 spinner,不清空已有结果。 */
|
|
131
|
+
isSearchLoadingMore: boolean;
|
|
132
|
+
isSearchLoading: boolean;
|
|
133
|
+
searchError: Error | null;
|
|
134
|
+
}
|
|
135
|
+
interface ReferenceSourcePickerSnapshot {
|
|
136
|
+
isLoadingTabs: boolean;
|
|
137
|
+
tabsError: Error | null;
|
|
138
|
+
tabs: ReferenceSourceTab[];
|
|
139
|
+
activeSourceId: string | null;
|
|
140
|
+
bySource: Record<string, ReferenceSourceTabState>;
|
|
141
|
+
/** 跨 tab 累积的选中文件节点,按选中顺序。 */
|
|
142
|
+
selection: ReferenceNode[];
|
|
143
|
+
}
|
|
144
|
+
/** confirmGrouped 的产物:一个 navigable 源文件夹 = 一个 bundle(保留分组)。 */
|
|
145
|
+
interface ReferenceConfirmBundle {
|
|
146
|
+
/** 被选中的文件夹节点(提供 displayName / iconUrl / ref 作为 bundle 身份)。 */
|
|
147
|
+
root: ReferenceNode;
|
|
148
|
+
/** 该文件夹递归展开后的全部文件。 */
|
|
149
|
+
files: SelectedReference[];
|
|
150
|
+
}
|
|
151
|
+
interface ReferenceConfirmGroupedResult {
|
|
152
|
+
/** 单独选中的文件 + 非 navigable 源的文件夹(保持单条引用)。 */
|
|
153
|
+
files: SelectedReference[];
|
|
154
|
+
/** 每个 navigable 源文件夹一项,文件已折叠在内。 */
|
|
155
|
+
bundles: ReferenceConfirmBundle[];
|
|
156
|
+
}
|
|
157
|
+
interface ReferenceSourcePickerController {
|
|
158
|
+
readonly store: ReferenceSourcePickerSnapshot;
|
|
159
|
+
getSnapshot(): ReferenceSourcePickerSnapshot;
|
|
160
|
+
open(): void;
|
|
161
|
+
close(): void;
|
|
162
|
+
reset(): void;
|
|
163
|
+
setActiveSource(sourceId: string): void;
|
|
164
|
+
/**
|
|
165
|
+
* 把「定位目标」解析为从源根到目标的真实 ReferenceNode 路径(root → leaf)。
|
|
166
|
+
* 纯数据解析:逐层 listChildren 找到真实节点(带 displayName 等),不改动任何 UI/导航态。
|
|
167
|
+
* 源不支持定位 / 未找到时返回部分路径(可能为空)。供「打开即定位」一次性应用。
|
|
168
|
+
*/
|
|
169
|
+
locatePath(target: ReferenceLocateTarget): Promise<ReferenceNode[]>;
|
|
170
|
+
/** 确保某节点(null=当前源根)的子节点已加载(抽屉式导航进入用,不切换展开态)。 */
|
|
171
|
+
ensureChildren(node: ReferenceNode | null): void;
|
|
172
|
+
/** 确保指定源的根层级已加载(左栏可同时展开多源时,为非 active 源预载分组)。 */
|
|
173
|
+
ensureSourceRoot(sourceId: string): void;
|
|
174
|
+
toggleNode(node: ReferenceNode): void;
|
|
175
|
+
loadMore(node: ReferenceNode | null): void;
|
|
176
|
+
/**
|
|
177
|
+
* 拉取指定源根层级的下一页(左栏二级分组分页用)。
|
|
178
|
+
* 与 loadMore(null) 的区别:后者只作用于 active 源;本方法显式指定源,
|
|
179
|
+
* 使左栏任一源(无论是否 active)都能继续拉取其分组。
|
|
180
|
+
*/
|
|
181
|
+
loadMoreSourceRoot(sourceId: string): void;
|
|
182
|
+
/**
|
|
183
|
+
* 设置搜索关键词。scopeNodeId 指定把搜索限定在 active 源内某个二级分组(左栏选中分组)
|
|
184
|
+
* 的节点 nodeId;缺省/null = 跨整源搜索。query 与 filters 任一非空即进入查询(平铺)态。
|
|
185
|
+
*/
|
|
186
|
+
setSearchQuery(query: string, scopeNodeId?: string | null): void;
|
|
187
|
+
/**
|
|
188
|
+
* 设置已选文件类型筛选分类(全局统一口径)。与 setSearchQuery 同构:
|
|
189
|
+
* 与现有关键词一起构成查询并(去抖)重搜;query 与 filters 同时为空才回浏览态。
|
|
190
|
+
*/
|
|
191
|
+
setSearchFilters(filters: string[], scopeNodeId?: string | null): void;
|
|
192
|
+
/** 搜索进行中切换左栏分组时更新限定范围并以现有关键词/筛选重搜。 */
|
|
193
|
+
setSearchScope(scopeNodeId: string | null): void;
|
|
194
|
+
/**
|
|
195
|
+
* 加载更多查询结果(增长式分页):以同一关键词/筛选、更大的 limit 立即重查,
|
|
196
|
+
* 结果整体替换(保留旧结果直到新结果就绪)。无更多 / 在途 / 非查询态时 no-op。
|
|
197
|
+
*/
|
|
198
|
+
loadMoreSearch(): void;
|
|
199
|
+
toggleSelection(node: ReferenceNode): void;
|
|
200
|
+
clearSelection(): void;
|
|
201
|
+
/**
|
|
202
|
+
* 选中归一。文件 → 单条;文件夹按所属源区分:
|
|
203
|
+
* - 本地(非 navigable)源:保持单条 folder 引用(filesystem 路径与目录一一对应);
|
|
204
|
+
* - app/issue(navigable)源:其文件夹下文件在 filesystem 里不一定落在该目录路径下,
|
|
205
|
+
* 故递归 listChildren 枚举,展开成多条文件引用。
|
|
206
|
+
* 含异步枚举,故返回 Promise;结果按 path 去重、保序。
|
|
207
|
+
*/
|
|
208
|
+
confirm(): Promise<SelectedReference[]>;
|
|
209
|
+
/**
|
|
210
|
+
* 与 confirm 同源,但保留分组:navigable 源的每个选中文件夹折叠成一个 bundle
|
|
211
|
+
* (文件已递归展开在内),其余作为单条文件。供「文件夹 = 一个节点」的插入形态用。
|
|
212
|
+
*/
|
|
213
|
+
confirmGrouped(): Promise<ReferenceConfirmGroupedResult>;
|
|
214
|
+
}
|
|
215
|
+
interface CreateReferenceSourcePickerControllerInput {
|
|
216
|
+
aggregator: ReferenceSourceAggregator;
|
|
217
|
+
scope: ReferenceScope;
|
|
218
|
+
searchDebounceMs?: number;
|
|
219
|
+
}
|
|
220
|
+
/** 源根 children 的 key(node===null 时)。 */
|
|
221
|
+
declare const ROOT_CHILDREN_KEY: string;
|
|
222
|
+
declare function createReferenceSourcePickerController(input: CreateReferenceSourcePickerControllerInput): ReferenceSourcePickerController;
|
|
223
|
+
|
|
224
|
+
export { type CreateReferenceSourcePickerControllerInput, ROOT_CHILDREN_KEY, type ReferenceSourceNodeChildrenState, type ReferenceSourcePickerController, type ReferenceSourcePickerMode, type ReferenceSourcePickerSnapshot, type ReferenceSourceTabState, type UseWorkspaceFileReferencePickerViewInput, type WorkspaceFileReferenceDirectoryState, type WorkspaceFileReferencePreviewState, collectVisibleTreeEntries, createReferenceSourcePickerController, createWorkspaceFileReferenceDirectoryStateFromSnapshot, mergeExpandedFolderPaths, mergePrefetchedDirectoryState, normalizeDirectoryPath, prefetchReferenceTree, useWorkspaceFileReferencePickerView, workspaceFileReferenceDefaultExpandedDepth };
|
package/dist/react/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
+
ROOT_CHILDREN_KEY,
|
|
2
3
|
collectVisibleTreeEntries,
|
|
4
|
+
createReferenceSourcePickerController,
|
|
3
5
|
createWorkspaceFileReferenceDirectoryStateFromSnapshot,
|
|
4
6
|
mergeExpandedFolderPaths,
|
|
5
7
|
mergePrefetchedDirectoryState,
|
|
@@ -7,10 +9,12 @@ import {
|
|
|
7
9
|
prefetchReferenceTree,
|
|
8
10
|
useWorkspaceFileReferencePickerView,
|
|
9
11
|
workspaceFileReferenceDefaultExpandedDepth
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-KSK6PILG.js";
|
|
13
|
+
import "../chunk-HRC2MZ5H.js";
|
|
12
14
|
export {
|
|
15
|
+
ROOT_CHILDREN_KEY,
|
|
13
16
|
collectVisibleTreeEntries,
|
|
17
|
+
createReferenceSourcePickerController,
|
|
14
18
|
createWorkspaceFileReferenceDirectoryStateFromSnapshot,
|
|
15
19
|
mergeExpandedFolderPaths,
|
|
16
20
|
mergePrefetchedDirectoryState,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ReferenceScope, ReferenceSourceService, ReferenceNode, NodeRef, ListChildrenResult, SearchInput, SearchResult, ReferencePreview, SelectedReference, ReferenceSourceRegistry } from './contracts/index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 多源聚合器:根层级 = 每个可用源一个 folder 节点;其余按 node.ref.sourceId 委派。
|
|
5
|
+
* 设计见 docs/architecture/agent-reference-source-services.md §3 / §4.4。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 源根节点的 nodeId 哨兵。由聚合器创建源根节点时使用;
|
|
9
|
+
* 任何真实源都不会产出 nodeId 等于此值的子节点(workspace 源 nodeId 是路径,
|
|
10
|
+
* app 源 nodeId 以 "app:" 开头),因此路由无歧义。
|
|
11
|
+
*/
|
|
12
|
+
declare const SOURCE_ROOT_NODE_ID = "\0source-root";
|
|
13
|
+
/** 顶部 tab 的描述(source 身份 + 能力)。 */
|
|
14
|
+
interface ReferenceSourceTab {
|
|
15
|
+
sourceId: string;
|
|
16
|
+
label: string;
|
|
17
|
+
icon?: string;
|
|
18
|
+
capabilities: ReferenceSourceService["capabilities"];
|
|
19
|
+
}
|
|
20
|
+
interface ReferenceSourceAggregator {
|
|
21
|
+
/** 顶部 tab 列表:每个可用源一个 tab(已过滤 isAvailable、按 order 排序)。 */
|
|
22
|
+
listSources(scope: ReferenceScope): Promise<ReferenceSourceTab[]>;
|
|
23
|
+
/** (备用,单树多根形态)根层级:每个可用源一个 folder 节点。 */
|
|
24
|
+
listRoot(scope: ReferenceScope): Promise<ReferenceNode[]>;
|
|
25
|
+
listChildren(scope: ReferenceScope, node: NodeRef, input?: {
|
|
26
|
+
cursor?: string | null;
|
|
27
|
+
filter?: string | null;
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
}): Promise<ListChildrenResult>;
|
|
30
|
+
search(scope: ReferenceScope, sourceId: string, input: SearchInput): Promise<SearchResult>;
|
|
31
|
+
open(scope: ReferenceScope, node: ReferenceNode): Promise<void>;
|
|
32
|
+
readPreview(scope: ReferenceScope, node: ReferenceNode): Promise<ReferencePreview | null>;
|
|
33
|
+
resolveSelection(node: ReferenceNode): SelectedReference;
|
|
34
|
+
/**
|
|
35
|
+
* 把语义定位参数解析为某源内从根到目标分组的 NodeRef 路径(root → leaf)。
|
|
36
|
+
* 源未实现 locateTarget / 未找到时返回 null。需先 listSources/listRoot 触发源加载。
|
|
37
|
+
*/
|
|
38
|
+
locateTarget(scope: ReferenceScope, sourceId: string, params: Record<string, string>): Promise<NodeRef[] | null>;
|
|
39
|
+
/** 取已加载的源(用于读取 capabilities/metadata)。需先 listRoot 触发加载。 */
|
|
40
|
+
getLoadedSource(sourceId: string): ReferenceSourceService | undefined;
|
|
41
|
+
}
|
|
42
|
+
declare function isSourceRootNode(ref: NodeRef): boolean;
|
|
43
|
+
declare function createReferenceSourceAggregator(registry: ReferenceSourceRegistry): ReferenceSourceAggregator;
|
|
44
|
+
/** 静态 registry:持有一组源,按 isAvailable 过滤、按 order 排序。 */
|
|
45
|
+
declare function createStaticReferenceSourceRegistry(sources: readonly ReferenceSourceService[]): ReferenceSourceRegistry;
|
|
46
|
+
|
|
47
|
+
export { type ReferenceSourceAggregator as R, SOURCE_ROOT_NODE_ID as S, type ReferenceSourceTab as a, createStaticReferenceSourceRegistry as b, createReferenceSourceAggregator as c, isSourceRootNode as i };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { WorkspaceFileReferenceCopy, WorkspaceFileReferenceAdapter, WorkspaceFileReference } from '../contracts/index.js';
|
|
2
|
+
import { WorkspaceFileReferenceCopy, WorkspaceFileReferenceAdapter, WorkspaceFileReference, ReferenceLocateTarget } from '../contracts/index.js';
|
|
3
|
+
import { JSX } from 'react';
|
|
4
|
+
import { R as ReferenceSourceAggregator } from '../referenceSourceAggregator-B8ATnJOZ.js';
|
|
3
5
|
|
|
4
6
|
interface WorkspaceFileReferencePickerProps {
|
|
5
7
|
copy: WorkspaceFileReferenceCopy;
|
|
@@ -8,8 +10,45 @@ interface WorkspaceFileReferencePickerProps {
|
|
|
8
10
|
onClose: () => void;
|
|
9
11
|
onConfirm: (refs: WorkspaceFileReference[]) => void;
|
|
10
12
|
open: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* When true, the dialog is rendered inline (non-portaled, absolutely
|
|
15
|
+
* positioned) so it stays clipped within the nearest positioned ancestor —
|
|
16
|
+
* e.g. an agent GUI node window — instead of covering the whole viewport.
|
|
17
|
+
* Defaults to false (portal to body + cover the viewport).
|
|
18
|
+
*/
|
|
19
|
+
scoped?: boolean;
|
|
11
20
|
workspaceId: string;
|
|
12
21
|
}
|
|
13
|
-
declare function WorkspaceFileReferencePicker({ copy, fileAdapter, initialPath, onClose, onConfirm, open, workspaceId }: WorkspaceFileReferencePickerProps): react_jsx_runtime.JSX.Element
|
|
22
|
+
declare function WorkspaceFileReferencePicker({ copy, fileAdapter, initialPath, onClose, onConfirm, open, scoped, workspaceId }: WorkspaceFileReferencePickerProps): react_jsx_runtime.JSX.Element;
|
|
14
23
|
|
|
15
|
-
|
|
24
|
+
/** 一个 navigable 源文件夹的折叠选区(文件已映射为 WorkspaceFileReference)。 */
|
|
25
|
+
interface ReferenceBundleSelection {
|
|
26
|
+
sourceId: string;
|
|
27
|
+
nodeId: string;
|
|
28
|
+
displayName: string;
|
|
29
|
+
iconUrl?: string | null;
|
|
30
|
+
files: WorkspaceFileReference[];
|
|
31
|
+
}
|
|
32
|
+
interface ReferenceGroupedSelection {
|
|
33
|
+
files: WorkspaceFileReference[];
|
|
34
|
+
bundles: ReferenceBundleSelection[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface ReferenceSourcePickerProps {
|
|
38
|
+
aggregator: ReferenceSourceAggregator;
|
|
39
|
+
copy: WorkspaceFileReferenceCopy;
|
|
40
|
+
/** 可选:打开时直达某事项/应用分组(展开并聚焦)。 */
|
|
41
|
+
initialTarget?: ReferenceLocateTarget | null;
|
|
42
|
+
onClose: () => void;
|
|
43
|
+
onConfirm: (refs: WorkspaceFileReference[]) => void;
|
|
44
|
+
/**
|
|
45
|
+
* 可选:启用「文件夹=一个 bundle 节点」确认形态。提供时确认走 confirmGrouped,
|
|
46
|
+
* navigable 源的选中文件夹折叠成 bundle 回调,其余仍为单条文件。
|
|
47
|
+
*/
|
|
48
|
+
onConfirmBundles?: (result: ReferenceGroupedSelection) => void;
|
|
49
|
+
open: boolean;
|
|
50
|
+
workspaceId: string;
|
|
51
|
+
}
|
|
52
|
+
declare function ReferenceSourcePicker({ aggregator, copy, initialTarget, onClose, onConfirm, onConfirmBundles, open, workspaceId }: ReferenceSourcePickerProps): JSX.Element | null;
|
|
53
|
+
|
|
54
|
+
export { type ReferenceBundleSelection, type ReferenceGroupedSelection, ReferenceSourcePicker, type ReferenceSourcePickerProps, WorkspaceFileReferencePicker, type WorkspaceFileReferencePickerProps };
|