amis-core 6.6.0 → 6.8.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/esm/Root.js +4 -3
- package/esm/RootRenderer.d.ts +1 -1
- package/esm/RootRenderer.js +1 -1
- package/esm/SchemaRenderer.d.ts +0 -1
- package/esm/SchemaRenderer.js +19 -10
- package/esm/Scoped.js +2 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +8 -8
- package/esm/actions/Action.js +33 -31
- package/esm/actions/AjaxAction.js +1 -1
- package/esm/actions/BreakAction.js +1 -1
- package/esm/actions/BroadcastAction.js +1 -1
- package/esm/actions/CmptAction.js +55 -48
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +12 -3
- package/esm/actions/DialogAction.js +3 -1
- package/esm/actions/DrawerAction.js +2 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/EventAction.js +2 -1
- package/esm/actions/LinkAction.js +1 -1
- package/esm/actions/LoopAction.js +2 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.js +1 -1
- package/esm/actions/PrintAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +1 -1
- package/esm/actions/WaitAction.js +1 -1
- package/esm/components/CustomStyle.js +1 -1
- package/esm/components/ErrorBoundary.js +1 -1
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +2 -1
- package/esm/components/PopOver.d.ts +2 -0
- package/esm/components/PopOver.js +5 -4
- package/esm/env.d.ts +4 -0
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.js +1 -1
- package/esm/index.js +3 -3
- package/esm/locale.js +2 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.js +123 -25
- package/esm/renderers/Item.d.ts +97 -12
- package/esm/renderers/Item.js +180 -126
- package/esm/renderers/Options.js +2 -1
- package/esm/renderers/Placeholder.js +1 -1
- package/esm/renderers/builtin.js +1 -1
- package/esm/renderers/register.js +1 -1
- package/esm/renderers/wrapControl.js +2 -1
- package/esm/store/app.d.ts +1 -0
- package/esm/store/app.js +2 -1
- package/esm/store/combo.d.ts +411 -0
- package/esm/store/combo.js +1 -1
- package/esm/store/crud.d.ts +1 -0
- package/esm/store/crud.js +2 -1
- package/esm/store/form.d.ts +171 -0
- package/esm/store/form.js +2 -1
- package/esm/store/formItem.d.ts +5 -0
- package/esm/store/formItem.js +30 -8
- package/esm/store/iRenderer.d.ts +1 -0
- package/esm/store/iRenderer.js +8 -3
- package/esm/store/index.js +1 -1
- package/esm/store/list.d.ts +1 -0
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.d.ts +1 -0
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.d.ts +1 -0
- package/esm/store/pagination.js +2 -1
- package/esm/store/root.d.ts +1 -0
- package/esm/store/root.js +2 -1
- package/esm/store/service.d.ts +1 -0
- package/esm/store/service.js +2 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +382 -21
- package/esm/store/table.js +84 -54
- package/esm/store/table2.d.ts +1 -0
- package/esm/store/table2.js +1 -1
- package/esm/theme.js +1 -1
- package/esm/types.d.ts +1 -1
- package/esm/utils/Animation.js +1 -1
- package/esm/utils/ColorScale.js +1 -1
- package/esm/utils/DataSchema.js +1 -1
- package/esm/utils/DataScope.js +2 -2
- package/esm/utils/RootClose.js +1 -1
- package/esm/utils/SimpleMap.js +1 -1
- package/esm/utils/api.js +2 -2
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.js +1 -1
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/browser.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/concatData.js +1 -1
- package/esm/utils/dataMapping.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.js +17 -3
- package/esm/utils/decodeEntity.js +1 -1
- package/esm/utils/dom.js +1 -1
- package/esm/utils/errors.js +1 -1
- package/esm/utils/escapeHtml.js +1 -1
- package/esm/utils/filter-schema.js +1 -1
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.js +2 -1
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +1 -1
- package/esm/utils/helper.d.ts +5 -1
- package/esm/utils/helper.js +37 -8
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.js +1 -1
- package/esm/utils/image.js +1 -1
- package/esm/utils/isPureVariable.js +2 -2
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/labelToString.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +1 -1
- package/esm/utils/memoryParse.d.ts +2 -1
- package/esm/utils/memoryParse.js +10 -6
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +1 -1
- package/esm/utils/object.d.ts +2 -4
- package/esm/utils/object.js +1 -1
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +1 -1
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/printElement.js +1 -1
- package/esm/utils/renderer-event.js +5 -3
- package/esm/utils/replaceText.js +1 -1
- package/esm/utils/resize-sensor.js +30 -1
- package/esm/utils/resolveCondition.js +2 -1
- package/esm/utils/resolveVariable.js +1 -1
- package/esm/utils/resolveVariableAndFilter.js +1 -1
- package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/esm/utils/scrollPosition.js +1 -1
- package/esm/utils/string2regExp.js +1 -1
- package/esm/utils/stripNumber.js +1 -1
- package/esm/utils/style-helper.d.ts +4 -2
- package/esm/utils/style-helper.js +27 -13
- package/esm/utils/style.js +2 -1
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +2 -1
- package/esm/utils/tpl-lodash.js +2 -1
- package/esm/utils/tpl.js +1 -1
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validateId.js +3 -3
- package/esm/utils/validations.js +2 -1
- package/esm/utils/visitedCache.d.ts +46 -0
- package/esm/utils/visitedCache.js +124 -0
- package/lib/Root.js +4 -3
- package/lib/RootRenderer.js +1 -1
- package/lib/SchemaRenderer.d.ts +0 -1
- package/lib/SchemaRenderer.js +19 -10
- package/lib/Scoped.js +2 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +8 -8
- package/lib/actions/Action.js +33 -31
- package/lib/actions/AjaxAction.js +1 -1
- package/lib/actions/BreakAction.js +1 -1
- package/lib/actions/BroadcastAction.js +1 -1
- package/lib/actions/CmptAction.js +55 -48
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +12 -3
- package/lib/actions/DialogAction.js +3 -1
- package/lib/actions/DrawerAction.js +2 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/EventAction.js +2 -1
- package/lib/actions/LinkAction.js +1 -1
- package/lib/actions/LoopAction.js +2 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.js +1 -1
- package/lib/actions/PrintAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +1 -1
- package/lib/actions/WaitAction.js +1 -1
- package/lib/components/CustomStyle.js +1 -1
- package/lib/components/ErrorBoundary.js +1 -1
- package/lib/components/LazyComponent.js +1 -1
- package/lib/components/Overlay.js +2 -1
- package/lib/components/PopOver.d.ts +2 -0
- package/lib/components/PopOver.js +5 -4
- package/lib/env.d.ts +4 -0
- package/lib/env.js +1 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.js +1 -1
- package/lib/index.js +3 -2
- package/lib/locale.js +2 -1
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.js +122 -24
- package/lib/renderers/Item.d.ts +97 -12
- package/lib/renderers/Item.js +179 -125
- package/lib/renderers/Options.js +2 -1
- package/lib/renderers/Placeholder.js +1 -1
- package/lib/renderers/builtin.js +1 -1
- package/lib/renderers/register.js +1 -1
- package/lib/renderers/wrapControl.js +2 -1
- package/lib/store/app.d.ts +1 -0
- package/lib/store/app.js +2 -1
- package/lib/store/combo.d.ts +435 -24
- package/lib/store/combo.js +1 -1
- package/lib/store/crud.d.ts +1 -0
- package/lib/store/crud.js +2 -1
- package/lib/store/form.d.ts +181 -10
- package/lib/store/form.js +2 -1
- package/lib/store/formItem.d.ts +5 -0
- package/lib/store/formItem.js +30 -8
- package/lib/store/iRenderer.d.ts +1 -0
- package/lib/store/iRenderer.js +8 -3
- package/lib/store/index.js +1 -1
- package/lib/store/list.d.ts +1 -0
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.d.ts +1 -0
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.d.ts +1 -0
- package/lib/store/pagination.js +2 -1
- package/lib/store/root.d.ts +1 -0
- package/lib/store/root.js +2 -1
- package/lib/store/service.d.ts +1 -0
- package/lib/store/service.js +2 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +402 -41
- package/lib/store/table.js +84 -54
- package/lib/store/table2.d.ts +1 -0
- package/lib/store/table2.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/utils/Animation.js +1 -1
- package/lib/utils/ColorScale.js +1 -1
- package/lib/utils/DataSchema.js +1 -1
- package/lib/utils/DataScope.js +2 -2
- package/lib/utils/RootClose.js +1 -1
- package/lib/utils/SimpleMap.js +1 -1
- package/lib/utils/api.js +2 -2
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.js +1 -1
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/browser.js +1 -1
- package/lib/utils/columnsSplit.js +1 -1
- package/lib/utils/concatData.js +1 -1
- package/lib/utils/dataMapping.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.js +17 -3
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +1 -1
- package/lib/utils/errors.js +1 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.js +1 -1
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.js +2 -1
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/helper.d.ts +5 -1
- package/lib/utils/helper.js +36 -6
- package/lib/utils/highlight.js +1 -1
- package/lib/utils/icon.js +1 -1
- package/lib/utils/image.js +1 -1
- package/lib/utils/isPureVariable.js +2 -2
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/labelToString.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +1 -1
- package/lib/utils/memoryParse.d.ts +2 -1
- package/lib/utils/memoryParse.js +10 -6
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +1 -1
- package/lib/utils/object.d.ts +2 -4
- package/lib/utils/object.js +1 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +1 -1
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/printElement.js +1 -1
- package/lib/utils/renderer-event.js +5 -3
- package/lib/utils/replaceText.js +1 -1
- package/lib/utils/resize-sensor.js +30 -1
- package/lib/utils/resolveCondition.js +2 -1
- package/lib/utils/resolveVariable.js +1 -1
- package/lib/utils/resolveVariableAndFilter.js +1 -1
- package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/lib/utils/scrollPosition.js +1 -1
- package/lib/utils/string2regExp.js +1 -1
- package/lib/utils/stripNumber.js +1 -1
- package/lib/utils/style-helper.d.ts +4 -2
- package/lib/utils/style-helper.js +27 -13
- package/lib/utils/style.js +2 -1
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +2 -1
- package/lib/utils/tpl-lodash.js +2 -1
- package/lib/utils/tpl.js +1 -1
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validateId.js +3 -3
- package/lib/utils/validations.js +2 -1
- package/lib/utils/visitedCache.d.ts +46 -0
- package/lib/utils/visitedCache.js +128 -0
- package/package.json +2 -2
package/esm/utils/tpl.js
CHANGED
package/esm/utils/validateId.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -122,8 +122,8 @@ function verifyRegion(province, city, country) {
|
|
|
122
122
|
return false;
|
|
123
123
|
}
|
|
124
124
|
// 这里暂时不获取市和区的具体信息,因为调用CityDB会把校验函数传染为异步
|
|
125
|
-
// city位: 00表示省;01-20,51-70表示省直辖市;21-50
|
|
126
|
-
if (!/^(?:[0-6]\d|70)$/.test(city)) {
|
|
125
|
+
// city位: 00表示省;01-20,51-70表示省直辖市;21-50表示地区(自治州、盟), 90 表示 直辖县级市
|
|
126
|
+
if (!/^(?:[0-6]\d|70|90)$/.test(city)) {
|
|
127
127
|
return false;
|
|
128
128
|
}
|
|
129
129
|
if (!/^\d\d$/.test(country)) {
|
package/esm/utils/validations.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -8,6 +8,7 @@ import moment from 'moment';
|
|
|
8
8
|
import { filter } from './tpl.js';
|
|
9
9
|
import 'amis-formula';
|
|
10
10
|
import isPlainObject from 'lodash/isPlainObject';
|
|
11
|
+
import './memoryParse.js';
|
|
11
12
|
import { isPureVariable } from './isPureVariable.js';
|
|
12
13
|
import '@rc-component/mini-decimal';
|
|
13
14
|
import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 缓存值的单元
|
|
3
|
+
*/
|
|
4
|
+
export type CacheEntry<V> = {
|
|
5
|
+
value: V;
|
|
6
|
+
visitCount: number;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* 自动清理访问次数最少key的Map,次数相同时优先淘汰旧项
|
|
10
|
+
* 每次触发清理的计数基于容量的百分比
|
|
11
|
+
* @class VisitedCache
|
|
12
|
+
* @template K - 缓存key的类型
|
|
13
|
+
* @template V - 缓存value的类型
|
|
14
|
+
*/
|
|
15
|
+
export default class VisitedCache<K, V> {
|
|
16
|
+
private capacity;
|
|
17
|
+
private cache;
|
|
18
|
+
private visitCountOrder;
|
|
19
|
+
private keyOrderMatrixForByCount;
|
|
20
|
+
private releaseCount;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @param capacity 容量
|
|
24
|
+
* @param releasePercent 清理数量占容量百分比
|
|
25
|
+
*/
|
|
26
|
+
constructor(capacity: number, releasePercent?: number);
|
|
27
|
+
/**
|
|
28
|
+
* 更新现存项目的缓存顺序
|
|
29
|
+
* @param key
|
|
30
|
+
* @param entry
|
|
31
|
+
*/
|
|
32
|
+
private updateCacheEntryOrder;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @param {K} key
|
|
36
|
+
* @returns {(V | undefined)}
|
|
37
|
+
*/
|
|
38
|
+
get(key: K): V | undefined;
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* @param {K} key
|
|
42
|
+
* @param {V} value
|
|
43
|
+
*/
|
|
44
|
+
set(key: K, value: V): void;
|
|
45
|
+
has(key: K): boolean;
|
|
46
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* amis-core v6.8.0
|
|
3
|
+
* Copyright 2018-2024 fex
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { __spreadArray, __read } from 'tslib';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 自动清理访问次数最少key的Map,次数相同时优先淘汰旧项
|
|
10
|
+
* 每次触发清理的计数基于容量的百分比
|
|
11
|
+
* @class VisitedCache
|
|
12
|
+
* @template K - 缓存key的类型
|
|
13
|
+
* @template V - 缓存value的类型
|
|
14
|
+
*/
|
|
15
|
+
var VisitedCache = /** @class */ (function () {
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param capacity 容量
|
|
19
|
+
* @param releasePercent 清理数量占容量百分比
|
|
20
|
+
*/
|
|
21
|
+
function VisitedCache(capacity, releasePercent) {
|
|
22
|
+
this.visitCountOrder = [];
|
|
23
|
+
this.keyOrderMatrixForByCount = {};
|
|
24
|
+
this.capacity = capacity;
|
|
25
|
+
this.cache = new Map();
|
|
26
|
+
this.releaseCount = (this.capacity * (releasePercent || 1 / 8)) >> 0 || 1;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 更新现存项目的缓存顺序
|
|
30
|
+
* @param key
|
|
31
|
+
* @param entry
|
|
32
|
+
*/
|
|
33
|
+
VisitedCache.prototype.updateCacheEntryOrder = function (key, entry, nextVisitCount) {
|
|
34
|
+
var oldVisitCount = entry.visitCount;
|
|
35
|
+
var oldKeyOrder = this.keyOrderMatrixForByCount[oldVisitCount];
|
|
36
|
+
if (Array.isArray(oldKeyOrder)) {
|
|
37
|
+
// 从key为旧访问次数的顺序数组中删除
|
|
38
|
+
var oldKeyIndex = oldKeyOrder.indexOf(key);
|
|
39
|
+
if (oldKeyIndex !== -1) {
|
|
40
|
+
oldKeyOrder.splice(oldKeyIndex, 1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// 相同访问量,更新访问顺序
|
|
44
|
+
this.keyOrderMatrixForByCount[nextVisitCount] = Array.isArray(this.keyOrderMatrixForByCount[nextVisitCount])
|
|
45
|
+
? __spreadArray(__spreadArray([], __read(this.keyOrderMatrixForByCount[nextVisitCount]), false), [key], false) : [key];
|
|
46
|
+
entry.visitCount = nextVisitCount;
|
|
47
|
+
// 重新按照访问量排序
|
|
48
|
+
this.visitCountOrder = __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(this.visitCountOrder), false), [nextVisitCount], false))), false).sort(function (a, b) { return a - b; });
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* @param {K} key
|
|
53
|
+
* @returns {(V | undefined)}
|
|
54
|
+
*/
|
|
55
|
+
VisitedCache.prototype.get = function (key) {
|
|
56
|
+
if (this.cache.has(key)) {
|
|
57
|
+
var entry = this.cache.get(key);
|
|
58
|
+
if (entry !== undefined) {
|
|
59
|
+
var visitCount = entry.visitCount;
|
|
60
|
+
// 更新访问顺序
|
|
61
|
+
this.updateCacheEntryOrder(key, entry, visitCount + 1);
|
|
62
|
+
return entry.value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
* @param {K} key
|
|
70
|
+
* @param {V} value
|
|
71
|
+
*/
|
|
72
|
+
VisitedCache.prototype.set = function (key, value) {
|
|
73
|
+
// 更新现存项的值和访问次数及新鲜度
|
|
74
|
+
if (this.cache.has(key)) {
|
|
75
|
+
var entry = this.cache.get(key);
|
|
76
|
+
if (entry !== undefined) {
|
|
77
|
+
var visitCount = entry.visitCount;
|
|
78
|
+
this.updateCacheEntryOrder(key, entry, visitCount + 1);
|
|
79
|
+
entry.value = value;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// 先进行清理
|
|
84
|
+
if (this.cache.size === this.capacity) {
|
|
85
|
+
// TODO 依据最大容量的1/10进行释放,试试效果
|
|
86
|
+
var dynamicReleaseCount = this.releaseCount;
|
|
87
|
+
// const dynamicReleaseCount =
|
|
88
|
+
// (this.keyOrderMatrixForByCount[this.visitCountOrder[this.visitCountOrder.length - 1]].length / (this.capacity)) >>
|
|
89
|
+
// 0 || 1
|
|
90
|
+
var findIndex = 0;
|
|
91
|
+
var released = 0;
|
|
92
|
+
while (released < dynamicReleaseCount &&
|
|
93
|
+
findIndex <= this.visitCountOrder.length - 1) {
|
|
94
|
+
// 最少访问的次数
|
|
95
|
+
var targetCount = this.visitCountOrder[findIndex];
|
|
96
|
+
// 查看其中有没有项
|
|
97
|
+
var targetKeyOrder = this.keyOrderMatrixForByCount[targetCount];
|
|
98
|
+
if (!targetKeyOrder.length) {
|
|
99
|
+
findIndex++;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
while (targetKeyOrder.length > 0 &&
|
|
103
|
+
released < dynamicReleaseCount) {
|
|
104
|
+
this.cache.delete(targetKeyOrder.shift());
|
|
105
|
+
released++;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
var newEntry = {
|
|
111
|
+
visitCount: 1,
|
|
112
|
+
value: value
|
|
113
|
+
};
|
|
114
|
+
this.cache.set(key, newEntry);
|
|
115
|
+
this.updateCacheEntryOrder(key, newEntry, 1);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
VisitedCache.prototype.has = function (key) {
|
|
119
|
+
return this.cache.has(key);
|
|
120
|
+
};
|
|
121
|
+
return VisitedCache;
|
|
122
|
+
}());
|
|
123
|
+
|
|
124
|
+
export { VisitedCache as default };
|
package/lib/Root.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -77,6 +77,7 @@ function renderChildren(prefix, node, props) {
|
|
|
77
77
|
return renderChild(prefix, node, props);
|
|
78
78
|
}
|
|
79
79
|
function renderChild(prefix, node, props) {
|
|
80
|
+
var _a, _b;
|
|
80
81
|
if (Array.isArray(node)) {
|
|
81
82
|
return renderChildren(prefix, node, props);
|
|
82
83
|
}
|
|
@@ -103,9 +104,9 @@ function renderChild(prefix, node, props) {
|
|
|
103
104
|
// 找渲染器也是在那,所以没办法在之前根据渲染器信息来包裹个组件下发 statusStore
|
|
104
105
|
// 所以这里先根据 type 来处理一下
|
|
105
106
|
// 等后续把状态处理再抽一层,可以把此处放到 SchemaRenderer 里面去
|
|
106
|
-
return (_J$X_(StatusScopedSchemaRenderer, tslib.__assign({ render: renderChild }, props, { schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
|
|
107
|
+
return (_J$X_(StatusScopedSchemaRenderer, tslib.__assign({ render: renderChild }, props, { key: (_a = props.key) !== null && _a !== void 0 ? _a : schema.key, schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
|
|
107
108
|
}
|
|
108
|
-
return (_J$X_(SchemaRenderer.SchemaRenderer, tslib.__assign({ render: renderChild }, props, { schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
|
|
109
|
+
return (_J$X_(SchemaRenderer.SchemaRenderer, tslib.__assign({ render: renderChild }, props, { key: (_b = props.key) !== null && _b !== void 0 ? _b : schema.key, schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
|
|
109
110
|
}
|
|
110
111
|
var ScopedRootRenderer = StatusScoped.StatusScoped(Scoped.HocScoped(Root));
|
|
111
112
|
|
package/lib/RootRenderer.js
CHANGED
package/lib/SchemaRenderer.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export declare class SchemaRenderer extends React.Component<SchemaRendererProps,
|
|
|
23
23
|
unbindEvent: (() => void) | undefined;
|
|
24
24
|
isStatic: any;
|
|
25
25
|
constructor(props: SchemaRendererProps);
|
|
26
|
-
componentDidMount(): void;
|
|
27
26
|
componentWillUnmount(): void;
|
|
28
27
|
shouldComponentUpdate(nextProps: SchemaRendererProps): boolean;
|
|
29
28
|
resolveRenderer(props: SchemaRendererProps, force?: boolean): any;
|
package/lib/SchemaRenderer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -26,6 +26,7 @@ var mobx = require('mobx');
|
|
|
26
26
|
require('amis-formula');
|
|
27
27
|
require('moment');
|
|
28
28
|
require('lodash/isPlainObject');
|
|
29
|
+
require('./utils/memoryParse.js');
|
|
29
30
|
require('@rc-component/mini-decimal');
|
|
30
31
|
var resolveVariableAndFilter = require('./utils/resolveVariableAndFilter.js');
|
|
31
32
|
require('./utils/filter.js');
|
|
@@ -101,10 +102,6 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
101
102
|
}, function () { return _this.forceUpdate(); });
|
|
102
103
|
return _this;
|
|
103
104
|
}
|
|
104
|
-
SchemaRenderer.prototype.componentDidMount = function () {
|
|
105
|
-
// 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播
|
|
106
|
-
this.unbindEvent = rendererEvent.bindEvent(this.cRef);
|
|
107
|
-
};
|
|
108
105
|
SchemaRenderer.prototype.componentWillUnmount = function () {
|
|
109
106
|
var _a, _b;
|
|
110
107
|
(_a = this.reaction) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
@@ -180,7 +177,15 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
180
177
|
};
|
|
181
178
|
SchemaRenderer.prototype.childRef = function (ref) {
|
|
182
179
|
var _this = this;
|
|
183
|
-
|
|
180
|
+
var _a;
|
|
181
|
+
// todo 这里有个问题,就是注意以下的这段注释
|
|
182
|
+
// > // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的
|
|
183
|
+
// > 而 visibleOn 和 hiddenOn 是无效的,
|
|
184
|
+
// > 这个本来就是个bug,但是已经被广泛使用了
|
|
185
|
+
// > 我只能继续实现这个bug了
|
|
186
|
+
// 这样会让子组件去根据是 hidden 的情况去渲染个 null,这样会导致这里 ref 有值,但是 ref.getWrappedInstance() 为 null
|
|
187
|
+
// 这样会和直接渲染的组件时有些区别,至少 cRef 的指向是不一样的
|
|
188
|
+
while ((_a = ref === null || ref === void 0 ? void 0 : ref.getWrappedInstance) === null || _a === void 0 ? void 0 : _a.call(ref)) {
|
|
184
189
|
ref = ref.getWrappedInstance();
|
|
185
190
|
}
|
|
186
191
|
if (ref && !ref.props) {
|
|
@@ -188,6 +193,10 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
188
193
|
get: function () { return _this.props; }
|
|
189
194
|
});
|
|
190
195
|
}
|
|
196
|
+
if (ref) {
|
|
197
|
+
// 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播
|
|
198
|
+
this.unbindEvent = rendererEvent.bindEvent(this.ref);
|
|
199
|
+
}
|
|
191
200
|
this.cRef = ref;
|
|
192
201
|
};
|
|
193
202
|
SchemaRenderer.prototype.dispatchEvent = function (e, data, renderer // for didmount
|
|
@@ -227,7 +236,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
227
236
|
var e_1, _a;
|
|
228
237
|
var _this = this;
|
|
229
238
|
var _b, _c, _d, _e, _f, _g;
|
|
230
|
-
var _h = this.props; _h.$path; var __ = _h.schema, rootStore = _h.rootStore, statusStore = _h.statusStore, render = _h.render, rest = tslib.__rest(_h, ["$path", "schema", "rootStore", "statusStore", "render"]);
|
|
239
|
+
var _h = this.props; _h.$path; var __ = _h.schema, rootStore = _h.rootStore, statusStore = _h.statusStore, render = _h.render, propKey = _h.key, rest = tslib.__rest(_h, ["$path", "schema", "rootStore", "statusStore", "render", "key"]);
|
|
231
240
|
if (__ == null) {
|
|
232
241
|
return null;
|
|
233
242
|
}
|
|
@@ -277,12 +286,12 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
277
286
|
else if (schema.component && reactIs.isValidElementType(schema.component)) {
|
|
278
287
|
var isSFC = !(schema.component.prototype instanceof React__default["default"].Component);
|
|
279
288
|
var defaultData_1 = schema.data, defaultValue_1 = schema.value, // render时的value改放defaultValue中
|
|
280
|
-
defaultActiveKey_1 = schema.activeKey,
|
|
289
|
+
defaultActiveKey_1 = schema.activeKey, restSchema_1 = tslib.__rest(schema, ["data", "value", "activeKey"]);
|
|
281
290
|
return rest.invisible
|
|
282
291
|
? null
|
|
283
292
|
: _J$X_(schema.component, tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), restSchema_1), exprProps), {
|
|
284
293
|
// value: defaultValue, // 备注: 此处并没有将value传递给渲染器
|
|
285
|
-
defaultData: defaultData_1, defaultValue: defaultValue_1, defaultActiveKey: defaultActiveKey_1, propKey:
|
|
294
|
+
defaultData: defaultData_1, defaultValue: defaultValue_1, defaultActiveKey: defaultActiveKey_1, propKey: propKey, $path: $path, $schema: schema, ref: isSFC ? undefined : this.refFn, forwardedRef: isSFC ? this.refFn : undefined, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
|
|
286
295
|
}
|
|
287
296
|
else if (Object.keys(schema).length === 0) {
|
|
288
297
|
return null;
|
|
@@ -309,7 +318,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
309
318
|
}
|
|
310
319
|
var renderer = this.renderer;
|
|
311
320
|
schema = factory.filterSchema(schema, renderer, rest);
|
|
312
|
-
var defaultData = schema.data, defaultValue = schema.value,
|
|
321
|
+
var defaultData = schema.data, defaultValue = schema.value, defaultActiveKey = schema.activeKey, restSchema = tslib.__rest(schema, ["data", "value", "activeKey"]);
|
|
313
322
|
var Component = renderer.component;
|
|
314
323
|
// 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的
|
|
315
324
|
// 而 visibleOn 和 hiddenOn 是无效的,
|
package/lib/Scoped.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -19,6 +19,7 @@ var tokenize = require('./utils/tokenize.js');
|
|
|
19
19
|
var isPureVariable = require('./utils/isPureVariable.js');
|
|
20
20
|
require('@rc-component/mini-decimal');
|
|
21
21
|
var getVariable = require('./utils/getVariable.js');
|
|
22
|
+
require('./utils/memoryParse.js');
|
|
22
23
|
var dataMapping = require('./utils/dataMapping.js');
|
|
23
24
|
require('./utils/filter.js');
|
|
24
25
|
var helper = require('./utils/helper.js');
|
package/lib/StatusScoped.js
CHANGED
package/lib/WithRootStore.js
CHANGED
package/lib/WithStore.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -19,6 +19,7 @@ require('amis-formula');
|
|
|
19
19
|
require('moment');
|
|
20
20
|
var object = require('./utils/object.js');
|
|
21
21
|
var tokenize = require('./utils/tokenize.js');
|
|
22
|
+
require('./utils/memoryParse.js');
|
|
22
23
|
require('@rc-component/mini-decimal');
|
|
23
24
|
var dataMapping = require('./utils/dataMapping.js');
|
|
24
25
|
require('./utils/filter.js');
|
|
@@ -142,7 +143,7 @@ function HocStoreFactory(renderer) {
|
|
|
142
143
|
(props.data &&
|
|
143
144
|
prevProps.data &&
|
|
144
145
|
props.data.__super !== prevProps.data.__super))) {
|
|
145
|
-
store.initData(object.extendObject(props.data, tslib.__assign(tslib.__assign(tslib.__assign({}, (store.hasRemoteData ? store.data : null)), this.formatData(props.defaultData)), this.formatData(props.data))), ((_c = props.updatePristineAfterStoreDataReInit) !== null && _c !== void 0 ? _c : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
146
|
+
store.initData(object.extendObject(props.data, tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (store.hasRemoteData ? store.data : null)), this.formatData(props.defaultData)), this.formatData(props.data))), ((_c = props.updatePristineAfterStoreDataReInit) !== null && _c !== void 0 ? _c : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
146
147
|
}
|
|
147
148
|
}
|
|
148
149
|
else if (shouldSync === true ||
|
|
@@ -153,19 +154,18 @@ function HocStoreFactory(renderer) {
|
|
|
153
154
|
(props.syncSuperStore !== false &&
|
|
154
155
|
helper.isSuperDataModified(props.data, prevProps.data, store)))) {
|
|
155
156
|
if (props.store && props.scope === props.data) {
|
|
156
|
-
store.initData(object.createObject(props.store.data, props.syncSuperStore === false
|
|
157
|
-
? tslib.__assign({}, store.data) : helper.syncDataFromSuper(store.data, props.store.data, prevProps.scope, store, props.syncSuperStore === true)), ((_d = props.updatePristineAfterStoreDataReInit) !== null && _d !== void 0 ? _d : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
157
|
+
store.initData(object.createObject(props.store.data, tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (props.syncSuperStore === false
|
|
158
|
+
? tslib.__assign({}, store.data) : helper.syncDataFromSuper(store.data, props.store.data, prevProps.scope, store, props.syncSuperStore === true)))), ((_d = props.updatePristineAfterStoreDataReInit) !== null && _d !== void 0 ? _d : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
158
159
|
}
|
|
159
160
|
else if (props.data && props.data.__super) {
|
|
160
|
-
store.initData(object.extendObject(props.data,
|
|
161
|
-
// 有远程数据
|
|
161
|
+
store.initData(object.extendObject(props.data, tslib.__assign(tslib.__assign({}, this.formatData(dataMapping.dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), // 有远程数据
|
|
162
162
|
// 或者顶级 store
|
|
163
|
-
store.hasRemoteData || !store.path.includes('/')
|
|
163
|
+
(store.hasRemoteData || !store.path.includes('/')
|
|
164
164
|
? tslib.__assign(tslib.__assign({}, store.data), props.data) : // combo 不需要同步,如果要同步,在 Combo.tsx 里面已经实现了相关逻辑
|
|
165
165
|
// 目前主要的问题是,如果 combo 中表单项名字和 combo 本身的名字一样,会导致里面的值会被覆盖成数组
|
|
166
166
|
((_e = props.store) === null || _e === void 0 ? void 0 : _e.storeType) === 'ComboStore'
|
|
167
167
|
? undefined
|
|
168
|
-
: helper.syncDataFromSuper(tslib.__assign(tslib.__assign({}, store.pristineDiff), props.data), props.data.__super, prevProps.data.__super, store, false)), ((_f = props.updatePristineAfterStoreDataReInit) !== null && _f !== void 0 ? _f : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
168
|
+
: helper.syncDataFromSuper(tslib.__assign(tslib.__assign({}, store.pristineDiff), props.data), props.data.__super, prevProps.data.__super, store, false)))), ((_f = props.updatePristineAfterStoreDataReInit) !== null && _f !== void 0 ? _f : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
169
169
|
}
|
|
170
170
|
else {
|
|
171
171
|
store.initData(object.createObject(props.scope, props.data), ((_g = props.updatePristineAfterStoreDataReInit) !== null && _g !== void 0 ? _g : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
package/lib/actions/Action.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.8.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -14,6 +14,7 @@ var tpl = require('../utils/tpl.js');
|
|
|
14
14
|
require('amis-formula');
|
|
15
15
|
require('moment');
|
|
16
16
|
var object = require('../utils/object.js');
|
|
17
|
+
require('../utils/memoryParse.js');
|
|
17
18
|
require('@rc-component/mini-decimal');
|
|
18
19
|
var dataMapping = require('../utils/dataMapping.js');
|
|
19
20
|
require('../utils/filter.js');
|
|
@@ -190,33 +191,34 @@ var runActions = function (actions, renderer, event) { return tslib.__awaiter(vo
|
|
|
190
191
|
}); };
|
|
191
192
|
// 执行动作,与原有动作处理打通
|
|
192
193
|
var runAction = function (actionInstrance, actionConfig, renderer, event) { return tslib.__awaiter(void 0, void 0, void 0, function () {
|
|
193
|
-
var additional, action, mergeData, expression, isStop, preventDefault, key, api, cmptFlag, targetComponent, args, afterMappingData, actionData, data, stopped, actionResult, stopPropagation;
|
|
194
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
195
|
-
return tslib.__generator(this, function (
|
|
196
|
-
switch (
|
|
194
|
+
var additional, action, rendererProto, mergeData, expression, isStop, preventDefault, key, api, cmptFlag, targetComponent, args, afterMappingData, actionData, data, stopped, actionResult, stopPropagation;
|
|
195
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
196
|
+
return tslib.__generator(this, function (_z) {
|
|
197
|
+
switch (_z.label) {
|
|
197
198
|
case 0:
|
|
198
199
|
additional = {
|
|
199
200
|
event: event
|
|
200
201
|
};
|
|
201
202
|
action = tslib.__assign({}, actionConfig);
|
|
202
203
|
action.args = tslib.__assign({}, actionConfig.args);
|
|
204
|
+
rendererProto = (_c = (_b = (_a = renderer.props).getData) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : renderer.props.data;
|
|
203
205
|
// __rendererData默认为renderer.props.data,兼容表单项值变化时的data读取
|
|
204
|
-
if (!((
|
|
206
|
+
if (!((_d = event.data) === null || _d === void 0 ? void 0 : _d.__rendererData)) {
|
|
205
207
|
additional = {
|
|
206
208
|
event: event,
|
|
207
|
-
__rendererData:
|
|
209
|
+
__rendererData: rendererProto // 部分组件交互后会有更新,如果想要获取那部分数据,可以通过事件数据获取
|
|
208
210
|
};
|
|
209
211
|
}
|
|
210
|
-
mergeData = object.createObject(object.createObject(
|
|
211
|
-
? object.createObject(
|
|
212
|
-
: additional,
|
|
213
|
-
expression = (
|
|
212
|
+
mergeData = object.createObject(object.createObject(rendererProto.__super
|
|
213
|
+
? object.createObject(rendererProto.__super, additional)
|
|
214
|
+
: additional, rendererProto), event.data);
|
|
215
|
+
expression = (_e = action.expression) !== null && _e !== void 0 ? _e : action.execOn;
|
|
214
216
|
isStop = false;
|
|
215
217
|
if (!expression) return [3 /*break*/, 2];
|
|
216
218
|
return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(expression, mergeData, true)];
|
|
217
219
|
case 1:
|
|
218
|
-
isStop = !(
|
|
219
|
-
|
|
220
|
+
isStop = !(_z.sent());
|
|
221
|
+
_z.label = 2;
|
|
220
222
|
case 2:
|
|
221
223
|
if (isStop) {
|
|
222
224
|
return [2 /*return*/];
|
|
@@ -225,8 +227,8 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
|
|
|
225
227
|
if (!action.preventDefault) return [3 /*break*/, 4];
|
|
226
228
|
return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(action.preventDefault, mergeData, false)];
|
|
227
229
|
case 3:
|
|
228
|
-
preventDefault =
|
|
229
|
-
|
|
230
|
+
preventDefault = _z.sent();
|
|
231
|
+
_z.label = 4;
|
|
230
232
|
case 4:
|
|
231
233
|
key = {
|
|
232
234
|
componentId: dataMapping.dataMapping(action.componentId, mergeData),
|
|
@@ -234,25 +236,25 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
|
|
|
234
236
|
};
|
|
235
237
|
// 兼容args包裹的用法
|
|
236
238
|
if (action.actionType === 'dialog') {
|
|
237
|
-
action.dialog = tslib.__assign({}, ((
|
|
238
|
-
(
|
|
239
|
+
action.dialog = tslib.__assign({}, ((_f = action.dialog) !== null && _f !== void 0 ? _f : (_g = action.args) === null || _g === void 0 ? void 0 : _g.dialog));
|
|
240
|
+
(_h = action.args) === null || _h === void 0 ? true : delete _h.dialog;
|
|
239
241
|
}
|
|
240
242
|
else if (action.actionType === 'drawer') {
|
|
241
|
-
action.drawer = tslib.__assign({}, ((
|
|
242
|
-
(
|
|
243
|
+
action.drawer = tslib.__assign({}, ((_j = action.drawer) !== null && _j !== void 0 ? _j : (_k = action.args) === null || _k === void 0 ? void 0 : _k.drawer));
|
|
244
|
+
(_l = action.args) === null || _l === void 0 ? true : delete _l.drawer;
|
|
243
245
|
}
|
|
244
246
|
else if (['ajax', 'download'].includes(action.actionType)) {
|
|
245
|
-
api = (
|
|
247
|
+
api = (_m = action.api) !== null && _m !== void 0 ? _m : (_o = action.args) === null || _o === void 0 ? void 0 : _o.api;
|
|
246
248
|
action.api = typeof api === 'string' ? api : tslib.__assign({}, api);
|
|
247
|
-
action.options = tslib.__assign({}, ((
|
|
248
|
-
action.messages = tslib.__assign({}, ((
|
|
249
|
-
(
|
|
250
|
-
(
|
|
251
|
-
(
|
|
249
|
+
action.options = tslib.__assign({}, ((_p = action.options) !== null && _p !== void 0 ? _p : (_q = action.args) === null || _q === void 0 ? void 0 : _q.options));
|
|
250
|
+
action.messages = tslib.__assign({}, ((_r = action.messages) !== null && _r !== void 0 ? _r : (_s = action.args) === null || _s === void 0 ? void 0 : _s.messages));
|
|
251
|
+
(_t = action.args) === null || _t === void 0 ? true : delete _t.api;
|
|
252
|
+
(_u = action.args) === null || _u === void 0 ? true : delete _u.options;
|
|
253
|
+
(_v = action.args) === null || _v === void 0 ? true : delete _v.messages;
|
|
252
254
|
}
|
|
253
255
|
cmptFlag = key.componentId || key.componentName;
|
|
254
256
|
targetComponent = cmptFlag
|
|
255
|
-
? (
|
|
257
|
+
? (_w = event.context.scoped) === null || _w === void 0 ? void 0 : _w[action.componentId ? 'getComponentById' : 'getComponentByName'](cmptFlag)
|
|
256
258
|
: renderer;
|
|
257
259
|
args = dataMapping.dataMapping(action.args, mergeData, function (key) {
|
|
258
260
|
var _a;
|
|
@@ -281,12 +283,12 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
|
|
|
281
283
|
!['ajax', 'download', 'dialog', 'drawer'].includes(action.actionType) // 避免非法配置影响对actionData的判断,导致动作配置中的数据映射失败
|
|
282
284
|
? actionData
|
|
283
285
|
: mergeData;
|
|
284
|
-
(
|
|
286
|
+
(_x = console.group) === null || _x === void 0 ? void 0 : _x.call(console, "run action ".concat(action.actionType));
|
|
285
287
|
console.debug("[".concat(action.actionType, "] action args, data"), args, data);
|
|
286
288
|
stopped = false;
|
|
287
289
|
return [4 /*yield*/, actionInstrance.run(tslib.__assign(tslib.__assign(tslib.__assign({}, action), { args: args, rawData: actionConfig.data, data: action.actionType === 'reload' ? actionData : data }), key), renderer, event, mergeData)];
|
|
288
290
|
case 5:
|
|
289
|
-
actionResult =
|
|
291
|
+
actionResult = _z.sent();
|
|
290
292
|
// 二次确认弹窗如果取消,则终止后续动作
|
|
291
293
|
if ((action === null || action === void 0 ? void 0 : action.actionType) === 'confirmDialog' && !actionResult) {
|
|
292
294
|
stopped = true;
|
|
@@ -296,11 +298,11 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
|
|
|
296
298
|
if (!action.stopPropagation) return [3 /*break*/, 7];
|
|
297
299
|
return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(action.stopPropagation, mergeData, false)];
|
|
298
300
|
case 6:
|
|
299
|
-
stopPropagation =
|
|
300
|
-
|
|
301
|
+
stopPropagation = _z.sent();
|
|
302
|
+
_z.label = 7;
|
|
301
303
|
case 7:
|
|
302
304
|
console.debug("[".concat(action.actionType, "] action end event"), event);
|
|
303
|
-
(
|
|
305
|
+
(_y = console.groupEnd) === null || _y === void 0 ? void 0 : _y.call(console);
|
|
304
306
|
// 阻止原有动作执行
|
|
305
307
|
preventDefault && event.preventDefault();
|
|
306
308
|
// 阻止后续动作执行
|