imm-element-ui 2.6.3 → 2.6.5
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/esm2022/lib/grid/cell-edit/cell-edit-async-selectField.component.mjs +381 -0
- package/esm2022/lib/grid/cell-edit/index.mjs +3 -2
- package/esm2022/lib/grid/cell-render/async-select-label-renderer.mjs +102 -0
- package/esm2022/lib/grid/cell-utils/async-select-options-cache.service.mjs +20 -0
- package/esm2022/lib/grid/cell-utils/async-select-options.mjs +79 -0
- package/esm2022/lib/grid/grid/grid.component.mjs +6 -3
- package/esm2022/lib/grid/mock-data.mjs +6 -3
- package/esm2022/lib/page-form/page-form.component.mjs +41 -4
- package/esm2022/lib/page-form/page-form.interface.mjs +1 -1
- package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +2 -2
- package/esm2022/lib/row-selector/row-selector.component.mjs +2 -2
- package/esm2022/lib/share/utils.mjs +3 -3
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/imm-element-ui.mjs +616 -12
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/grid/cell-edit/cell-edit-async-selectField.component.d.ts +22 -0
- package/lib/grid/cell-edit/index.d.ts +2 -1
- package/lib/grid/cell-render/async-select-label-renderer.d.ts +19 -0
- package/lib/grid/cell-utils/async-select-options-cache.service.d.ts +7 -0
- package/lib/grid/cell-utils/async-select-options.d.ts +10 -0
- package/lib/grid/grid/grid.component.d.ts +6 -1
- package/lib/grid/mock-data.d.ts +4 -1
- package/lib/page-form/page-form.component.d.ts +5 -0
- package/lib/page-form/page-form.interface.d.ts +3 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { firstValueFrom, isObservable } from 'rxjs';
|
|
2
|
+
const optionsCache = new Map();
|
|
3
|
+
export const resolveAsyncSelectOptions = async (params, context) => {
|
|
4
|
+
const cache = params.cache !== false;
|
|
5
|
+
const cacheKey = resolveCacheKey(params, context);
|
|
6
|
+
if (cache && params.clearCache) {
|
|
7
|
+
optionsCache.delete(cacheKey);
|
|
8
|
+
}
|
|
9
|
+
if (cache && optionsCache.has(cacheKey)) {
|
|
10
|
+
return optionsCache.get(cacheKey);
|
|
11
|
+
}
|
|
12
|
+
const promise = loadOptions(params, context).catch((error) => {
|
|
13
|
+
if (cache) {
|
|
14
|
+
optionsCache.delete(cacheKey);
|
|
15
|
+
}
|
|
16
|
+
throw error;
|
|
17
|
+
});
|
|
18
|
+
if (cache) {
|
|
19
|
+
optionsCache.set(cacheKey, promise);
|
|
20
|
+
}
|
|
21
|
+
return promise;
|
|
22
|
+
};
|
|
23
|
+
export const clearAsyncSelectOptionsCache = (cacheKey) => {
|
|
24
|
+
if (cacheKey === undefined) {
|
|
25
|
+
optionsCache.clear();
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
optionsCache.delete(cacheKey);
|
|
29
|
+
};
|
|
30
|
+
const loadOptions = async (params, context) => {
|
|
31
|
+
const source = resolveOptionsSource(params, context);
|
|
32
|
+
let options = normalizeOptions(await unwrapOptions(source));
|
|
33
|
+
if (params.filterOptions && typeof params.filterOptions === 'function') {
|
|
34
|
+
options = params.filterOptions(options, context) || options;
|
|
35
|
+
}
|
|
36
|
+
return options;
|
|
37
|
+
};
|
|
38
|
+
const resolveOptionsSource = (params, context) => {
|
|
39
|
+
if (typeof params.getOptions === 'function') {
|
|
40
|
+
return params.getOptions(context);
|
|
41
|
+
}
|
|
42
|
+
if (typeof params.optionsHook === 'function') {
|
|
43
|
+
return params.optionsHook(context);
|
|
44
|
+
}
|
|
45
|
+
return params.rawOptions || params.options || [];
|
|
46
|
+
};
|
|
47
|
+
const unwrapOptions = async (source) => {
|
|
48
|
+
if (isObservable(source)) {
|
|
49
|
+
return firstValueFrom(source);
|
|
50
|
+
}
|
|
51
|
+
if (source && typeof source.then === 'function') {
|
|
52
|
+
return source;
|
|
53
|
+
}
|
|
54
|
+
return source;
|
|
55
|
+
};
|
|
56
|
+
const normalizeOptions = (res) => {
|
|
57
|
+
if (Array.isArray(res)) {
|
|
58
|
+
return res;
|
|
59
|
+
}
|
|
60
|
+
if (Array.isArray(res?.data)) {
|
|
61
|
+
return res.data;
|
|
62
|
+
}
|
|
63
|
+
return [];
|
|
64
|
+
};
|
|
65
|
+
const resolveCacheKey = (params, context) => {
|
|
66
|
+
if (typeof params.cacheKey === 'function') {
|
|
67
|
+
return String(params.cacheKey(context));
|
|
68
|
+
}
|
|
69
|
+
if (params.cacheKey !== undefined && params.cacheKey !== null) {
|
|
70
|
+
return String(params.cacheKey);
|
|
71
|
+
}
|
|
72
|
+
return [
|
|
73
|
+
context.field || context.colDef?.field || '',
|
|
74
|
+
params.optionValue || 'value',
|
|
75
|
+
params.optionLabel || 'label',
|
|
76
|
+
params.multiple ? 'multiple' : 'single',
|
|
77
|
+
].join('|');
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc2VsZWN0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvY2VsbC11dGlscy9hc3luYy1zZWxlY3Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdwRCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLEVBQUUsTUFBVyxFQUFFLE9BQTJCLEVBQWtCLEVBQUU7SUFDM0csTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUM7SUFDckMsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRCxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM1RCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1gsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksS0FBSyxFQUFFLENBQUM7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TUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPO1FBQ04sT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxXQUFXLElBQUksT0FBTztRQUM3QixNQUFNLENBQUMsV0FBVyxJQUFJLE9BQU87UUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRO0tBQ3ZDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzeW5jU2VsZWN0Q29udGV4dCB7XG5cdGRhdGE6IGFueTtcblx0dmFsdWU6IGFueTtcblx0cGFyYW1zOiBhbnk7XG5cdGZpZWxkPzogc3RyaW5nO1xuXHRjb2xEZWY6IGFueTtcblx0cm93SW5kZXg/OiBudW1iZXIgfCBudWxsO1xufVxuXG5jb25zdCBvcHRpb25zQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTxhbnlbXT4+KCk7XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlQXN5bmNTZWxlY3RPcHRpb25zID0gYXN5bmMgKHBhcmFtczogYW55LCBjb250ZXh0OiBBc3luY1NlbGVjdENvbnRleHQpOiBQcm9taXNlPGFueVtdPiA9PiB7XG5cdGNvbnN0IGNhY2hlID0gcGFyYW1zLmNhY2hlICE9PSBmYWxzZTtcblx0Y29uc3QgY2FjaGVLZXkgPSByZXNvbHZlQ2FjaGVLZXkocGFyYW1zLCBjb250ZXh0KTtcblx0aWYgKGNhY2hlICYmIHBhcmFtcy5jbGVhckNhY2hlKSB7XG5cdFx0b3B0aW9uc0NhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG5cdH1cblx0aWYgKGNhY2hlICYmIG9wdGlvbnNDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG5cdFx0cmV0dXJuIG9wdGlvbnNDYWNoZS5nZXQoY2FjaGVLZXkpITtcblx0fVxuXG5cdGNvbnN0IHByb21pc2UgPSBsb2FkT3B0aW9ucyhwYXJhbXMsIGNvbnRleHQpLmNhdGNoKChlcnJvcikgPT4ge1xuXHRcdGlmIChjYWNoZSkge1xuXHRcdFx0b3B0aW9uc0NhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG5cdFx0fVxuXHRcdHRocm93IGVycm9yO1xuXHR9KTtcblxuXHRpZiAoY2FjaGUpIHtcblx0XHRvcHRpb25zQ2FjaGUuc2V0KGNhY2hlS2V5LCBwcm9taXNlKTtcblx0fVxuXG5cdHJldHVybiBwcm9taXNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyQXN5bmNTZWxlY3RPcHRpb25zQ2FjaGUgPSAoY2FjaGVLZXk/OiBzdHJpbmcpID0+IHtcblx0aWYgKGNhY2hlS2V5ID09PSB1bmRlZmluZWQpIHtcblx0XHRvcHRpb25zQ2FjaGUuY2xlYXIoKTtcblx0XHRyZXR1cm47XG5cdH1cblx0b3B0aW9uc0NhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG59O1xuXG5jb25zdCBsb2FkT3B0aW9ucyA9IGFzeW5jIChwYXJhbXM6IGFueSwgY29udGV4dDogQXN5bmNTZWxlY3RDb250ZXh0KTogUHJvbWlzZTxhbnlbXT4gPT4ge1xuXHRjb25zdCBzb3VyY2UgPSByZXNvbHZlT3B0aW9uc1NvdXJjZShwYXJhbXMsIGNvbnRleHQpO1xuXHRsZXQgb3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGlvbnMoYXdhaXQgdW53cmFwT3B0aW9ucyhzb3VyY2UpKTtcblx0aWYgKHBhcmFtcy5maWx0ZXJPcHRpb25zICYmIHR5cGVvZiBwYXJhbXMuZmlsdGVyT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdG9wdGlvbnMgPSBwYXJhbXMuZmlsdGVyT3B0aW9ucyhvcHRpb25zLCBjb250ZXh0KSB8fCBvcHRpb25zO1xuXHR9XG5cdHJldHVybiBvcHRpb25zO1xufTtcblxuY29uc3QgcmVzb2x2ZU9wdGlvbnNTb3VyY2UgPSAocGFyYW1zOiBhbnksIGNvbnRleHQ6IEFzeW5jU2VsZWN0Q29udGV4dCkgPT4ge1xuXHRpZiAodHlwZW9mIHBhcmFtcy5nZXRPcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0cmV0dXJuIHBhcmFtcy5nZXRPcHRpb25zKGNvbnRleHQpO1xuXHR9XG5cdGlmICh0eXBlb2YgcGFyYW1zLm9wdGlvbnNIb29rID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0cmV0dXJuIHBhcmFtcy5vcHRpb25zSG9vayhjb250ZXh0KTtcblx0fVxuXHRyZXR1cm4gcGFyYW1zLnJhd09wdGlvbnMgfHwgcGFyYW1zLm9wdGlvbnMgfHwgW107XG59O1xuXG5jb25zdCB1bndyYXBPcHRpb25zID0gYXN5bmMgKHNvdXJjZTogYW55KSA9PiB7XG5cdGlmIChpc09ic2VydmFibGUoc291cmNlKSkge1xuXHRcdHJldHVybiBmaXJzdFZhbHVlRnJvbShzb3VyY2UpO1xuXHR9XG5cdGlmIChzb3VyY2UgJiYgdHlwZW9mIHNvdXJjZS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0cmV0dXJuIHNvdXJjZTtcblx0fVxuXHRyZXR1cm4gc291cmNlO1xufTtcblxuY29uc3Qgbm9ybWFsaXplT3B0aW9ucyA9IChyZXM6IGFueSk6IGFueVtdID0+IHtcblx0aWYgKEFycmF5LmlzQXJyYXkocmVzKSkge1xuXHRcdHJldHVybiByZXM7XG5cdH1cblx0aWYgKEFycmF5LmlzQXJyYXkocmVzPy5kYXRhKSkge1xuXHRcdHJldHVybiByZXMuZGF0YTtcblx0fVxuXHRyZXR1cm4gW107XG59O1xuXG5jb25zdCByZXNvbHZlQ2FjaGVLZXkgPSAocGFyYW1zOiBhbnksIGNvbnRleHQ6IEFzeW5jU2VsZWN0Q29udGV4dCkgPT4ge1xuXHRpZiAodHlwZW9mIHBhcmFtcy5jYWNoZUtleSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdHJldHVybiBTdHJpbmcocGFyYW1zLmNhY2hlS2V5KGNvbnRleHQpKTtcblx0fVxuXHRpZiAocGFyYW1zLmNhY2hlS2V5ICE9PSB1bmRlZmluZWQgJiYgcGFyYW1zLmNhY2hlS2V5ICE9PSBudWxsKSB7XG5cdFx0cmV0dXJuIFN0cmluZyhwYXJhbXMuY2FjaGVLZXkpO1xuXHR9XG5cdHJldHVybiBbXG5cdFx0Y29udGV4dC5maWVsZCB8fCBjb250ZXh0LmNvbERlZj8uZmllbGQgfHwgJycsXG5cdFx0cGFyYW1zLm9wdGlvblZhbHVlIHx8ICd2YWx1ZScsXG5cdFx0cGFyYW1zLm9wdGlvbkxhYmVsIHx8ICdsYWJlbCcsXG5cdFx0cGFyYW1zLm11bHRpcGxlID8gJ211bHRpcGxlJyA6ICdzaW5nbGUnLFxuXHRdLmpvaW4oJ3wnKTtcbn07XG4iXX0=
|