@tianyr/schema-antd 0.1.0 → 0.2.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.
Files changed (141) hide show
  1. package/README.md +57 -12
  2. package/dist/SchemaField.d.ts +1 -1
  3. package/dist/biz-select/BizMultiSelect.d.ts +3 -0
  4. package/dist/biz-select/BizMultiSelect.d.ts.map +1 -0
  5. package/dist/biz-select/BizMultiSelect.js +120 -0
  6. package/dist/biz-select/BizMultiSelect.js.map +1 -0
  7. package/dist/biz-select/BizMultiSelectDisplay.d.ts +3 -0
  8. package/dist/biz-select/BizMultiSelectDisplay.d.ts.map +1 -0
  9. package/dist/biz-select/BizMultiSelectDisplay.js +59 -0
  10. package/dist/biz-select/BizMultiSelectDisplay.js.map +1 -0
  11. package/dist/biz-select/BizSelect.d.ts +3 -0
  12. package/dist/biz-select/BizSelect.d.ts.map +1 -0
  13. package/dist/biz-select/BizSelect.js +87 -0
  14. package/dist/biz-select/BizSelect.js.map +1 -0
  15. package/dist/biz-select/BizSelectDisplay.d.ts +3 -0
  16. package/dist/biz-select/BizSelectDisplay.d.ts.map +1 -0
  17. package/dist/biz-select/BizSelectDisplay.js +58 -0
  18. package/dist/biz-select/BizSelectDisplay.js.map +1 -0
  19. package/dist/biz-select/cache.d.ts +23 -0
  20. package/dist/biz-select/cache.d.ts.map +1 -0
  21. package/dist/biz-select/cache.js +141 -0
  22. package/dist/biz-select/cache.js.map +1 -0
  23. package/dist/biz-select/compile.d.ts +36 -0
  24. package/dist/biz-select/compile.d.ts.map +1 -0
  25. package/dist/biz-select/compile.js +103 -0
  26. package/dist/biz-select/compile.js.map +1 -0
  27. package/dist/biz-select/factories.d.ts +32 -0
  28. package/dist/biz-select/factories.d.ts.map +1 -0
  29. package/dist/biz-select/factories.js +67 -0
  30. package/dist/biz-select/factories.js.map +1 -0
  31. package/dist/biz-select/format.d.ts +66 -0
  32. package/dist/biz-select/format.d.ts.map +1 -0
  33. package/dist/biz-select/format.js +175 -0
  34. package/dist/biz-select/format.js.map +1 -0
  35. package/dist/biz-select/index.d.ts +28 -0
  36. package/dist/biz-select/index.d.ts.map +1 -0
  37. package/dist/biz-select/index.js +26 -0
  38. package/dist/biz-select/index.js.map +1 -0
  39. package/dist/biz-select/key.d.ts +25 -0
  40. package/dist/biz-select/key.d.ts.map +1 -0
  41. package/dist/biz-select/key.js +83 -0
  42. package/dist/biz-select/key.js.map +1 -0
  43. package/dist/biz-select/normalize.d.ts +43 -0
  44. package/dist/biz-select/normalize.d.ts.map +1 -0
  45. package/dist/biz-select/normalize.js +49 -0
  46. package/dist/biz-select/normalize.js.map +1 -0
  47. package/dist/biz-select/registry.d.ts +15 -0
  48. package/dist/biz-select/registry.d.ts.map +1 -0
  49. package/dist/biz-select/registry.js +81 -0
  50. package/dist/biz-select/registry.js.map +1 -0
  51. package/dist/biz-select/resolveBatch.d.ts +34 -0
  52. package/dist/biz-select/resolveBatch.d.ts.map +1 -0
  53. package/dist/biz-select/resolveBatch.js +124 -0
  54. package/dist/biz-select/resolveBatch.js.map +1 -0
  55. package/dist/biz-select/schema.d.ts +5 -0
  56. package/dist/biz-select/schema.d.ts.map +1 -0
  57. package/dist/biz-select/schema.js +28 -0
  58. package/dist/biz-select/schema.js.map +1 -0
  59. package/dist/biz-select/source-id.d.ts +8 -0
  60. package/dist/biz-select/source-id.d.ts.map +1 -0
  61. package/dist/biz-select/source-id.js +10 -0
  62. package/dist/biz-select/source-id.js.map +1 -0
  63. package/dist/biz-select/types.d.ts +160 -0
  64. package/dist/biz-select/types.d.ts.map +1 -0
  65. package/dist/{app-select → biz-select}/types.js.map +1 -1
  66. package/dist/biz-select/useCandidates.d.ts +40 -0
  67. package/dist/biz-select/useCandidates.d.ts.map +1 -0
  68. package/dist/biz-select/useCandidates.js +292 -0
  69. package/dist/biz-select/useCandidates.js.map +1 -0
  70. package/dist/biz-select/useResolvedLabels.d.ts +28 -0
  71. package/dist/biz-select/useResolvedLabels.d.ts.map +1 -0
  72. package/dist/biz-select/useResolvedLabels.js +151 -0
  73. package/dist/biz-select/useResolvedLabels.js.map +1 -0
  74. package/dist/biz-select/useSelectedLabel.d.ts +18 -0
  75. package/dist/biz-select/useSelectedLabel.d.ts.map +1 -0
  76. package/dist/biz-select/useSelectedLabel.js +156 -0
  77. package/dist/biz-select/useSelectedLabel.js.map +1 -0
  78. package/dist/biz-select/useSelectedLabels.d.ts +26 -0
  79. package/dist/biz-select/useSelectedLabels.d.ts.map +1 -0
  80. package/dist/biz-select/useSelectedLabels.js +88 -0
  81. package/dist/biz-select/useSelectedLabels.js.map +1 -0
  82. package/dist/biz-select/useStableSourceKey.d.ts +3 -0
  83. package/dist/biz-select/useStableSourceKey.d.ts.map +1 -0
  84. package/dist/biz-select/useStableSourceKey.js +48 -0
  85. package/dist/biz-select/useStableSourceKey.js.map +1 -0
  86. package/dist/flat.d.ts +43 -0
  87. package/dist/flat.d.ts.map +1 -0
  88. package/dist/flat.js +91 -0
  89. package/dist/flat.js.map +1 -0
  90. package/dist/form/SchemaFormField.d.ts.map +1 -1
  91. package/dist/form/SchemaFormField.js +4 -3
  92. package/dist/form/SchemaFormField.js.map +1 -1
  93. package/dist/form/derive.d.ts +3 -8
  94. package/dist/form/derive.d.ts.map +1 -1
  95. package/dist/form/derive.js +28 -0
  96. package/dist/form/derive.js.map +1 -1
  97. package/dist/index.d.ts +3 -1
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +4 -2
  100. package/dist/index.js.map +1 -1
  101. package/dist/registry.d.ts +6 -1
  102. package/dist/registry.d.ts.map +1 -1
  103. package/dist/registry.js.map +1 -1
  104. package/dist/types.d.ts +7 -2
  105. package/dist/types.d.ts.map +1 -1
  106. package/package.json +1 -1
  107. package/dist/app-select/AppSelect.d.ts +0 -3
  108. package/dist/app-select/AppSelect.d.ts.map +0 -1
  109. package/dist/app-select/AppSelect.js +0 -56
  110. package/dist/app-select/AppSelect.js.map +0 -1
  111. package/dist/app-select/AppSelectDisplay.d.ts +0 -3
  112. package/dist/app-select/AppSelectDisplay.d.ts.map +0 -1
  113. package/dist/app-select/AppSelectDisplay.js +0 -39
  114. package/dist/app-select/AppSelectDisplay.js.map +0 -1
  115. package/dist/app-select/cache.d.ts +0 -26
  116. package/dist/app-select/cache.d.ts.map +0 -1
  117. package/dist/app-select/cache.js +0 -82
  118. package/dist/app-select/cache.js.map +0 -1
  119. package/dist/app-select/hooks.d.ts +0 -56
  120. package/dist/app-select/hooks.d.ts.map +0 -1
  121. package/dist/app-select/hooks.js +0 -322
  122. package/dist/app-select/hooks.js.map +0 -1
  123. package/dist/app-select/index.d.ts +0 -7
  124. package/dist/app-select/index.d.ts.map +0 -1
  125. package/dist/app-select/index.js +0 -6
  126. package/dist/app-select/index.js.map +0 -1
  127. package/dist/app-select/register.d.ts +0 -2
  128. package/dist/app-select/register.d.ts.map +0 -1
  129. package/dist/app-select/register.js +0 -10
  130. package/dist/app-select/register.js.map +0 -1
  131. package/dist/app-select/sources.d.ts +0 -20
  132. package/dist/app-select/sources.d.ts.map +0 -1
  133. package/dist/app-select/sources.js +0 -59
  134. package/dist/app-select/sources.js.map +0 -1
  135. package/dist/app-select/types.d.ts +0 -68
  136. package/dist/app-select/types.d.ts.map +0 -1
  137. package/dist/app-select/utils.d.ts +0 -30
  138. package/dist/app-select/utils.d.ts.map +0 -1
  139. package/dist/app-select/utils.js +0 -76
  140. package/dist/app-select/utils.js.map +0 -1
  141. /package/dist/{app-select → biz-select}/types.js +0 -0
@@ -1,322 +0,0 @@
1
- import { useCallback, useEffect, useRef, useState } from 'react';
2
- import { IS_DEV } from '../env.js';
3
- import { loadOptionsWithCache, resolveOptionWithCache } from './cache.js';
4
- import { resolveAppSelectSource, resolveAppSelectSourceKey } from './sources.js';
5
- import { buildResolveKey, hasRequiredParams, isEmptyId, optionsContentKey, stableStringify, } from './utils.js';
6
- /** 内联源的「形状」:kind + 提供了哪几个能力,用来识别「同一份配置每次渲染新建」 */
7
- function sourceShape(source) {
8
- if (!source)
9
- return '';
10
- return [
11
- source.kind,
12
- source.loadOptions ? 1 : 0,
13
- source.search ? 1 : 0,
14
- source.resolve ? 1 : 0,
15
- source.cacheNamespace ? 1 : 0,
16
- ].join(':');
17
- }
18
- /**
19
- * 每次渲染解析一次数据源,供候选与回显两条链路共用。
20
- * 缓存键必须与「实际生效的源」一致,所以统一在这里算,不在各 hook 里各算一遍。
21
- */
22
- export function useResolvedSource(source, dataSource) {
23
- const sourceObj = resolveAppSelectSource(source, dataSource);
24
- const sourceKey = resolveAppSelectSourceKey(source, dataSource);
25
- const previousRef = useRef({ key: sourceKey, shape: sourceShape(sourceObj) });
26
- const warnedMixedRef = useRef(false);
27
- const warnedChurnRef = useRef(false);
28
- if (IS_DEV) {
29
- if (source && dataSource && !warnedMixedRef.current) {
30
- warnedMixedRef.current = true;
31
- console.warn('[schema] AppSelect 同时传了 source 与 dataSource,以 dataSource 为准');
32
- }
33
- // 形状没变、键却变了:几乎可以确定是页面每次渲染都新建了 dataSource / 内联函数,
34
- // 缓存键会跟着失效(等同于不缓存),提示提到组件外或改用注册源。
35
- const previous = previousRef.current;
36
- if (!warnedChurnRef.current &&
37
- previous.key !== sourceKey &&
38
- previous.key.startsWith('inline:') &&
39
- sourceKey.startsWith('inline:') &&
40
- previous.shape === sourceShape(sourceObj)) {
41
- warnedChurnRef.current = true;
42
- console.warn('[schema] AppSelect 的 dataSource 每次渲染都产生新的函数引用,解析缓存会失效;' +
43
- '请把 dataSource 提到组件外,或改用 registerAppSelectSource 注册');
44
- }
45
- }
46
- previousRef.current = { key: sourceKey, shape: sourceShape(sourceObj) };
47
- return { sourceObj, sourceKey };
48
- }
49
- // 空数组用常量,避免每次渲染新建引用导致下游 memo 失效
50
- const EMPTY_CANDIDATES = [];
51
- const NO_CANDIDATES = { paramsKey: null, list: EMPTY_CANDIDATES };
52
- /**
53
- * 候选选项:静态/字典挂载时加载一次;remote 只在打开下拉或输入关键词后请求,
54
- * 避免表格首屏为每个单元格发默认候选请求。
55
- */
56
- export function useCandidateOptions({ sourceObj, sourceKey, queryParams, debounceMs = 300, }) {
57
- // 搜索回调需要读最新的 requiredParams,避免用旧配置判断范围参数
58
- const sourceRef = useRef(sourceObj);
59
- sourceRef.current = sourceObj;
60
- const paramsKey = stableStringify(queryParams ?? null);
61
- const paramsRef = useRef(queryParams);
62
- paramsRef.current = queryParams;
63
- // 候选必须带着「取回时的级联参数」一起存:参数一变旧候选立刻失效,
64
- // 否则切换省份后回显会先闪出一个别的省份的同 ID 名称。
65
- // paramsKey 为 null 表示与参数无关(静态 / 字典)。
66
- const [candidateState, setCandidateState] = useState(NO_CANDIDATES);
67
- const candidates = candidateState.paramsKey === null || candidateState.paramsKey === paramsKey
68
- ? candidateState.list
69
- : EMPTY_CANDIDATES;
70
- const [loading, setLoading] = useState(false);
71
- const seqRef = useRef(0);
72
- const abortRef = useRef(null);
73
- const timerRef = useRef(null);
74
- const cancelPending = useCallback(() => {
75
- if (timerRef.current) {
76
- clearTimeout(timerRef.current);
77
- timerRef.current = null;
78
- }
79
- abortRef.current?.abort();
80
- abortRef.current = null;
81
- }, []);
82
- useEffect(() => cancelPending, [cancelPending]);
83
- const isRemote = sourceObj?.kind === 'remote';
84
- const searchFn = isRemote ? sourceObj?.search : undefined;
85
- const loadFn = !isRemote ? sourceObj?.loadOptions : undefined;
86
- // 静态 / 有限字典:加载一次即可,失败不抛给调用方
87
- useEffect(() => {
88
- if (!loadFn) {
89
- // 切到 remote 源时旧 effect 已被取消,这里要负责把 loading 和旧候选收掉
90
- setCandidateState(NO_CANDIDATES);
91
- setLoading(false);
92
- return;
93
- }
94
- let cancelled = false;
95
- setLoading(true);
96
- loadOptionsWithCache(sourceKey, () => loadFn())
97
- .then((list) => {
98
- // 静态源的候选与级联参数无关,标记为 paramsKey: null
99
- if (!cancelled)
100
- setCandidateState({ paramsKey: null, list });
101
- })
102
- .catch(() => {
103
- if (!cancelled)
104
- setCandidateState(NO_CANDIDATES);
105
- })
106
- .finally(() => {
107
- if (!cancelled)
108
- setLoading(false);
109
- });
110
- return () => {
111
- cancelled = true;
112
- };
113
- }, [loadFn, sourceKey]);
114
- // 级联参数变化:取消在途请求;旧候选由上面的 paramsKey 比对挡住,不必清空
115
- useEffect(() => {
116
- cancelPending();
117
- }, [paramsKey, cancelPending]);
118
- const search = useCallback((keyword) => {
119
- if (!searchFn)
120
- return;
121
- // 范围参数不全就不发搜索:否则用户会看到别的租户/省份的候选
122
- if (!hasRequiredParams(sourceRef.current?.requiredParams, paramsRef.current)) {
123
- cancelPending();
124
- setCandidateState({ paramsKey, list: EMPTY_CANDIDATES });
125
- setLoading(false);
126
- return;
127
- }
128
- cancelPending();
129
- timerRef.current = setTimeout(() => {
130
- timerRef.current = null;
131
- const seq = seqRef.current + 1;
132
- seqRef.current = seq;
133
- const controller = new AbortController();
134
- abortRef.current = controller;
135
- setLoading(true);
136
- searchFn(keyword, paramsRef.current, controller.signal)
137
- .then((list) => {
138
- // 记下请求发出时的 paramsKey:返回时参数已变,这批候选会被挡住
139
- if (seq === seqRef.current)
140
- setCandidateState({ paramsKey, list });
141
- })
142
- .catch(() => {
143
- if (seq === seqRef.current)
144
- setCandidateState({ paramsKey, list: EMPTY_CANDIDATES });
145
- })
146
- .finally(() => {
147
- if (seq === seqRef.current)
148
- setLoading(false);
149
- });
150
- }, debounceMs);
151
- }, [searchFn, paramsKey, debounceMs, cancelPending]);
152
- return { sourceObj, candidates, loading, search, cancelPending };
153
- }
154
- const EMPTY_SELECTED = {
155
- value: undefined,
156
- sourceKey: '',
157
- paramsKey: '',
158
- option: null,
159
- status: 'empty',
160
- };
161
- /**
162
- * 已选 ID 的标签解析:与关键词搜索完全独立。
163
- *
164
- * 解析顺序见设计文档 §6.1:
165
- * 1. 匹配的 `selectedOptions`;2. 对象模式的 `value.label`;3. 已加载候选;
166
- * 4. `resolve(id, queryParams)`;5. 未命中就保持 ID,并暴露状态。
167
- */
168
- export function useSelectedOption({ sourceObj, sourceKey, value, legacyLabel, selectedOptions, candidates, queryParams, }) {
169
- const sourceRef = useRef(sourceObj);
170
- sourceRef.current = sourceObj;
171
- const paramsRef = useRef(queryParams);
172
- paramsRef.current = queryParams;
173
- const paramsKey = stableStringify(queryParams ?? null);
174
- const empty = isEmptyId(value);
175
- const hint = empty ? undefined : selectedOptions?.find((item) => item.value === value);
176
- const candidate = empty ? undefined : candidates?.find((item) => item.value === value);
177
- // 前三级可以同步拿到结果。用内容键判断,父组件每次渲染新建数组不会触发重新解析。
178
- const syncKey = [
179
- empty ? 'empty' : `${typeof value}:${String(value)}`,
180
- legacyLabel ?? '',
181
- optionsContentKey(hint ? [hint] : undefined),
182
- optionsContentKey(candidate ? [candidate] : undefined),
183
- ].join('|');
184
- const syncRef = useRef({ key: '', option: null });
185
- if (syncRef.current.key !== syncKey) {
186
- let option = null;
187
- if (!empty) {
188
- const id = value;
189
- if (hint)
190
- option = hint;
191
- else if (legacyLabel)
192
- option = { value: id, label: legacyLabel };
193
- else if (candidate)
194
- option = candidate;
195
- }
196
- syncRef.current = { key: syncKey, option };
197
- }
198
- const syncOption = syncRef.current.option;
199
- // 已经展示过的标签:用户继续输入关键词、候选被换掉时,已选项不该短暂退回原始 ID
200
- const knownRef = useRef(null);
201
- if (!empty && syncOption) {
202
- knownRef.current = { value: value, sourceKey, paramsKey, option: syncOption };
203
- }
204
- const [asyncSelected, setAsyncSelected] = useState(EMPTY_SELECTED);
205
- const isRemote = sourceObj?.kind === 'remote';
206
- const loadFn = !isRemote ? sourceObj?.loadOptions : undefined;
207
- const resolveFn = isRemote ? sourceObj?.resolve : undefined;
208
- // 范围参数不全:宁可不解析,也不能用空条件查出别家范围的数据
209
- const blocked = !hasRequiredParams(sourceObj?.requiredParams, paramsRef.current);
210
- useEffect(() => {
211
- // 前三级已经给出结果,不需要请求
212
- if (syncOption)
213
- return;
214
- if (empty) {
215
- setAsyncSelected(EMPTY_SELECTED);
216
- return;
217
- }
218
- if (!loadFn && !resolveFn) {
219
- setAsyncSelected({
220
- value: value,
221
- sourceKey,
222
- paramsKey,
223
- option: null,
224
- status: 'missing',
225
- });
226
- return;
227
- }
228
- if (blocked) {
229
- setAsyncSelected({
230
- value: value,
231
- sourceKey,
232
- paramsKey,
233
- option: null,
234
- status: 'blocked',
235
- });
236
- return;
237
- }
238
- let cancelled = false;
239
- const settle = (option) => {
240
- if (cancelled)
241
- return;
242
- setAsyncSelected({
243
- value: value,
244
- sourceKey,
245
- paramsKey,
246
- option,
247
- status: option ? 'resolved' : 'missing',
248
- });
249
- };
250
- const fail = () => {
251
- if (cancelled)
252
- return;
253
- setAsyncSelected({
254
- value: value,
255
- sourceKey,
256
- paramsKey,
257
- option: null,
258
- status: 'error',
259
- });
260
- };
261
- setAsyncSelected({
262
- value: value,
263
- sourceKey,
264
- paramsKey,
265
- option: null,
266
- status: 'loading',
267
- });
268
- if (loadFn) {
269
- // 静态 / 字典:本地集合里匹配
270
- loadOptionsWithCache(sourceKey, () => loadFn())
271
- .then((list) => settle(list.find((option) => option.value === value) ?? null))
272
- .catch(fail);
273
- }
274
- else {
275
- // 远程按 ID 精确解析,走共享缓存
276
- const key = buildResolveKey({
277
- scope: sourceRef.current?.cacheNamespace?.(),
278
- sourceKey,
279
- value: value,
280
- params: paramsRef.current,
281
- });
282
- resolveOptionWithCache(key, () => resolveFn(value, paramsRef.current))
283
- .then(settle)
284
- .catch(fail);
285
- }
286
- return () => {
287
- cancelled = true;
288
- };
289
- }, [value, empty, syncOption, loadFn, resolveFn, blocked, sourceKey, paramsKey]);
290
- if (syncOption)
291
- return { option: syncOption, status: 'resolved' };
292
- if (empty)
293
- return { option: null, status: 'empty' };
294
- // 数据源没有解析能力时不必等 effect,直接给出 missing
295
- if (!loadFn && !resolveFn)
296
- return { option: null, status: 'missing' };
297
- if (blocked)
298
- return { option: null, status: 'blocked' };
299
- // 值 / 来源 / 级联参数变了但 effect 还没跑完:不能拿上一轮的结果顶上
300
- if (asyncSelected.value !== value ||
301
- asyncSelected.sourceKey !== sourceKey ||
302
- asyncSelected.paramsKey !== paramsKey) {
303
- return { option: null, status: 'loading' };
304
- }
305
- if (asyncSelected.option) {
306
- knownRef.current = {
307
- value: value,
308
- sourceKey,
309
- paramsKey,
310
- option: asyncSelected.option,
311
- };
312
- }
313
- // 正在按同一上下文重新解析:先沿用上次拿到的标签,避免一闪而过的原始 ID
314
- if (asyncSelected.status === 'loading' && knownRef.current) {
315
- const known = knownRef.current;
316
- if (known.value === value && known.sourceKey === sourceKey && known.paramsKey === paramsKey) {
317
- return { option: known.option, status: 'resolved' };
318
- }
319
- }
320
- return { option: asyncSelected.option, status: asyncSelected.status };
321
- }
322
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/app-select/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import './register.js';
2
- export { AppSelect } from './AppSelect.js';
3
- export { AppSelectDisplay } from './AppSelectDisplay.js';
4
- export { registerAppSelectSource, unregisterAppSelectSource, getAppSelectSource, resolveAppSelectSource, clearAppSelectSources, } from './sources.js';
5
- export { clearAppSelectCache, getAppSelectCacheSize } from './cache.js';
6
- export type { AppOption, AppSelectDisplayProps, AppSelectProps, AppSelectSource, AppValueMode, LegacyValue, SelectId, } from './types.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app-select/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrE,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC"}
@@ -1,6 +0,0 @@
1
- import './register.js';
2
- export { AppSelect } from './AppSelect.js';
3
- export { AppSelectDisplay } from './AppSelectDisplay.js';
4
- export { registerAppSelectSource, unregisterAppSelectSource, getAppSelectSource, resolveAppSelectSource, clearAppSelectSources, } from './sources.js';
5
- export { clearAppSelectCache, getAppSelectCacheSize } from './cache.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app-select/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/app-select/register.tsx"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { registerField } from '../registry.js';
3
- import { AppSelect } from './AppSelect.js';
4
- import { AppSelectDisplay } from './AppSelectDisplay.js';
5
- // 只读展示必须走同一个解析能力,因此注册项里挂 AppSelectDisplay 而不是简单取 label
6
- registerField('AppSelect', {
7
- component: AppSelect,
8
- renderRead: (value, props) => (_jsx(AppSelectDisplay, { value: value, source: props.source, dataSource: props.dataSource, valueMode: props.valueMode, queryParams: props.queryParams, selectedOptions: props.selectedOptions })),
9
- });
10
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/app-select/register.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,uDAAuD;AACvD,aAAa,CAAC,WAAW,EAAE;IACzB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAkD,EACzD,MAAM,EAAE,KAAK,CAAC,MAA4B,EAC1C,UAAU,EAAE,KAAK,CAAC,UAAiD,EACnE,SAAS,EAAE,KAAK,CAAC,SAAqC,EACtD,WAAW,EAAE,KAAK,CAAC,WAAkD,EACrE,eAAe,EAAE,KAAK,CAAC,eAA0C,GACjE,CACH;CACF,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- import type { AppSelectSource } from './types.js';
2
- /** 注册应用级数据源;系统级常见字段优先走这里,低频页面可直接传 dataSource */
3
- export declare function registerAppSelectSource(name: string, source: AppSelectSource): void;
4
- export declare function unregisterAppSelectSource(name: string): void;
5
- export declare function getAppSelectSource(name?: string): AppSelectSource | undefined;
6
- /** source 与 dataSource 二选一,dataSource 优先,不做静默混合 */
7
- export declare function resolveAppSelectSource(name?: string, dataSource?: AppSelectSource): AppSelectSource | undefined;
8
- export declare function clearAppSelectSources(): void;
9
- /**
10
- * 来源的稳定身份,参与解析缓存键。
11
- *
12
- * 注册源直接用名字;内联 `dataSource` 没有名字,不能像旧实现那样统一退化成 `'inline'`,
13
- * 否则两个不同接口遇到相同 id + 相同参数会命中同一缓存,拿到别家的 label。
14
- *
15
- * 内联源优先按**函数引用**识别:模块级/页面级的 dataSource 常量函数引用稳定,
16
- * 表格里同一列的多个单元格因此还能共享一份解析缓存。
17
- * 只有完全没有函数的纯数据源才退回对象身份。
18
- */
19
- export declare function resolveAppSelectSourceKey(name?: string, dataSource?: AppSelectSource): string;
20
- //# sourceMappingURL=sources.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/app-select/sources.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,gDAAgD;AAChD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAInF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE7E;AAED,mDAAmD;AACnD,wBAAgB,sBAAsB,CACpC,IAAI,CAAC,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,eAAe,GAC3B,eAAe,GAAG,SAAS,CAE7B;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAeD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,eAAe,GAC3B,MAAM,CAcR"}
@@ -1,59 +0,0 @@
1
- import { clearAppSelectCacheOfSource } from './cache.js';
2
- const sources = new Map();
3
- /** 注册应用级数据源;系统级常见字段优先走这里,低频页面可直接传 dataSource */
4
- export function registerAppSelectSource(name, source) {
5
- sources.set(name, source);
6
- // 同名重新注册(HMR / 动态切换)时旧缓存不再代表当前实现
7
- clearAppSelectCacheOfSource(name);
8
- }
9
- export function unregisterAppSelectSource(name) {
10
- sources.delete(name);
11
- clearAppSelectCacheOfSource(name);
12
- }
13
- export function getAppSelectSource(name) {
14
- return name ? sources.get(name) : undefined;
15
- }
16
- /** source 与 dataSource 二选一,dataSource 优先,不做静默混合 */
17
- export function resolveAppSelectSource(name, dataSource) {
18
- return dataSource ?? getAppSelectSource(name);
19
- }
20
- export function clearAppSelectSources() {
21
- sources.clear();
22
- }
23
- const inlineIds = new WeakMap();
24
- let inlineIdSeq = 0;
25
- function nextInlineId(target) {
26
- let id = inlineIds.get(target);
27
- if (id === undefined) {
28
- inlineIdSeq += 1;
29
- id = inlineIdSeq;
30
- inlineIds.set(target, id);
31
- }
32
- return id;
33
- }
34
- /**
35
- * 来源的稳定身份,参与解析缓存键。
36
- *
37
- * 注册源直接用名字;内联 `dataSource` 没有名字,不能像旧实现那样统一退化成 `'inline'`,
38
- * 否则两个不同接口遇到相同 id + 相同参数会命中同一缓存,拿到别家的 label。
39
- *
40
- * 内联源优先按**函数引用**识别:模块级/页面级的 dataSource 常量函数引用稳定,
41
- * 表格里同一列的多个单元格因此还能共享一份解析缓存。
42
- * 只有完全没有函数的纯数据源才退回对象身份。
43
- */
44
- export function resolveAppSelectSourceKey(name, dataSource) {
45
- if (!dataSource)
46
- return name ? `source:${name}` : '';
47
- const functions = [
48
- dataSource.loadOptions,
49
- dataSource.search,
50
- dataSource.resolve,
51
- dataSource.cacheNamespace,
52
- ];
53
- const parts = functions.map((fn) => (fn ? nextInlineId(fn) : '-'));
54
- if (!parts.some((part) => part !== '-')) {
55
- return `inline:${dataSource.kind}:data#${nextInlineId(dataSource)}`;
56
- }
57
- return `inline:${dataSource.kind}:${parts.join('.')}`;
58
- }
59
- //# sourceMappingURL=sources.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/app-select/sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAGtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEnD,gDAAgD;AAChD,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,MAAuB;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1B,iCAAiC;IACjC,2BAA2B,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,2BAA2B,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,sBAAsB,CACpC,IAAa,EACb,UAA4B;IAE5B,OAAO,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,OAAO,EAAkB,CAAC;AAChD,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,WAAW,IAAI,CAAC,CAAC;QACjB,EAAE,GAAG,WAAW,CAAC;QACjB,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAa,EACb,UAA4B;IAE5B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAErD,MAAM,SAAS,GAAG;QAChB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,MAAM;QACjB,UAAU,CAAC,OAAO;QAClB,UAAU,CAAC,cAAc;KAC1B,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,UAAU,UAAU,CAAC,IAAI,SAAS,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,UAAU,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACxD,CAAC"}
@@ -1,68 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import type { SelectProps } from 'antd';
3
- export type SelectId = string | number;
4
- export interface AppOption<T = unknown> {
5
- value: SelectId;
6
- label: string;
7
- disabled?: boolean;
8
- /** 原始接口记录,供业务回调使用;不会被写进历史对象协议 */
9
- raw?: T;
10
- }
11
- /** 历史服务端协议:{ value, label } */
12
- export type LegacyValue = {
13
- value: SelectId;
14
- label: string;
15
- };
16
- export type AppValueMode = 'primitive' | 'object';
17
- export interface AppSelectSource {
18
- kind: 'static' | 'dict' | 'remote';
19
- /** static/dict:有限集合,直接给或异步加载一次 */
20
- loadOptions?: () => AppOption[] | Promise<AppOption[]>;
21
- /** remote:关键词搜索,允许空关键词返回默认候选 */
22
- search?: (keyword: string, params?: Record<string, unknown>, signal?: AbortSignal) => Promise<AppOption[]>;
23
- /** remote:按 ID 精确解析,不能用模糊搜索冒充 */
24
- resolve?: (id: SelectId, params?: Record<string, unknown>, signal?: AbortSignal) => Promise<AppOption | null>;
25
- /** 租户/权限命名空间:参与解析缓存键,缺省视为同一命名空间 */
26
- cacheNamespace?: () => string;
27
- /**
28
- * 必须齐备的查询参数(按 queryParams 的键声明)。
29
- * 缺少任何一个都不发请求:用空条件去查,轻则查不到,重则拿到别的租户/省份的记录。
30
- */
31
- requiredParams?: string[];
32
- }
33
- /** 应用级数据源注册表;page 局部接口可直接传 dataSource,不必注册 */
34
- export type AppSelectSourceRegistry = Map<string, AppSelectSource>;
35
- type BaseProps = Omit<SelectProps, 'value' | 'defaultValue' | 'onChange' | 'options' | 'labelInValue' | 'mode' | 'onSearch'> & {
36
- source?: string;
37
- dataSource?: AppSelectSource;
38
- options?: AppOption[];
39
- queryParams?: Record<string, unknown>;
40
- /** remote 默认 300ms */
41
- debounceMs?: number;
42
- /** 详情已经带回名称时用它省掉一次 resolve */
43
- selectedOptions?: AppOption[];
44
- /** 只读展示时的占位符 */
45
- emptyText?: ReactNode;
46
- };
47
- type PrimitiveModeProps = {
48
- valueMode?: 'primitive';
49
- value?: SelectId | null;
50
- onChange?: (value: SelectId | undefined, option?: AppOption) => void;
51
- };
52
- type ObjectModeProps = {
53
- valueMode: 'object';
54
- value?: LegacyValue | null;
55
- onChange?: (value: LegacyValue | undefined, option?: AppOption) => void;
56
- };
57
- export type AppSelectProps = BaseProps & (PrimitiveModeProps | ObjectModeProps);
58
- export interface AppSelectDisplayProps {
59
- source?: string;
60
- dataSource?: AppSelectSource;
61
- value?: SelectId | LegacyValue | null;
62
- valueMode?: AppValueMode;
63
- queryParams?: Record<string, unknown>;
64
- selectedOptions?: AppOption[];
65
- emptyText?: ReactNode;
66
- }
67
- export {};
68
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app-select/types.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { AppOption, SelectId } from './types.js';
2
- /** 键序稳定的序列化,避免同一个 queryParams 因对象字面量顺序不同而重复请求 */
3
- export declare function stableStringify(value: unknown): string;
4
- /**
5
- * 空 ID 的统一口径:`undefined` / `null` / `''` 都视为未选择。
6
- * 后端序列化空值常给空串,若只判 null 会多跑一次 resolve('')。
7
- */
8
- export declare function isEmptyId(value: SelectId | null | undefined): boolean;
9
- /**
10
- * 必需的查询参数是否齐备。
11
- * 缺任何一个都不该发请求——用空条件解析,可能拿到别的租户/省份的记录。
12
- */
13
- export declare function hasRequiredParams(required: string[] | undefined, params: Record<string, unknown> | undefined): boolean;
14
- /**
15
- * 选项内容键:父组件每次渲染新建数组时,用它判断内容是否真的变了。
16
- * 用内容而不是引用做依赖,才符合设计文档 §10 的要求。
17
- */
18
- export declare function optionsContentKey(list?: AppOption[] | null): string;
19
- /** 解析缓存键:必须覆盖 source + value + queryParams,并可带权限命名空间 */
20
- export declare function buildResolveKey(parts: {
21
- scope?: string;
22
- sourceKey: string;
23
- value: SelectId;
24
- params?: Record<string, unknown>;
25
- }): string;
26
- /** 把 AntD Select 的选中项选项收敛成标准 AppOption */
27
- export declare function normalizeOption(option: unknown): AppOption | undefined;
28
- /** 已选项 + 候选合并去重,已选项优先,保证回显标签不被搜索结果覆盖 */
29
- export declare function mergeOptions(selected: AppOption | null, ...groups: (AppOption[] | undefined)[]): AppOption[];
30
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/app-select/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOtD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,OAAO,CAQT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,MAAM,CAKnE;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GAAG,MAAM,CAET;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAUtE;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,SAAS,GAAG,IAAI,EAC1B,GAAG,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,EAAE,GACrC,SAAS,EAAE,CASb"}