amis-core 3.5.2 → 3.5.3
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 +1 -1
- package/esm/RootRenderer.d.ts +1 -1
- package/esm/RootRenderer.js +2 -2
- package/esm/SchemaRenderer.js +1 -1
- package/esm/Scoped.js +2 -2
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +1 -1
- package/esm/actions/Action.js +1 -1
- 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 +31 -32
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +1 -1
- package/esm/actions/DialogAction.js +1 -1
- package/esm/actions/DrawerAction.js +1 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/LinkAction.js +1 -1
- package/esm/actions/LoopAction.js +1 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.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/components/CustomStyle.js +1 -1
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +1 -1
- package/esm/components/PopOver.js +1 -1
- package/esm/env.d.ts +9 -0
- package/esm/env.js +1 -1
- package/esm/envOverwrite.d.ts +1 -1
- package/esm/envOverwrite.js +15 -35
- package/esm/factory.js +1 -1
- package/esm/index.js +3 -3
- package/esm/locale.js +1 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.d.ts +9 -3
- package/esm/renderers/Form.js +50 -25
- package/esm/renderers/Item.js +1 -1
- package/esm/renderers/Options.d.ts +1 -1
- package/esm/renderers/Options.js +7 -6
- 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 +7 -12
- package/esm/store/app.js +1 -1
- package/esm/store/combo.d.ts +1154 -48
- package/esm/store/combo.js +10 -3
- package/esm/store/crud.js +22 -3
- package/esm/store/form.d.ts +480 -20
- package/esm/store/form.js +1 -1
- package/esm/store/formItem.d.ts +23 -1
- package/esm/store/formItem.js +88 -9
- package/esm/store/iRenderer.js +1 -1
- package/esm/store/index.js +1 -1
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.js +1 -1
- package/esm/store/root.js +1 -1
- package/esm/store/service.js +1 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +1077 -42
- package/esm/store/table.js +66 -4
- package/esm/store/table2.js +1 -4
- package/esm/theme.js +1 -1
- package/esm/types.d.ts +8 -2
- 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 +1 -1
- package/esm/utils/RootClose.js +1 -1
- package/esm/utils/SimpleMap.js +1 -1
- package/esm/utils/api.js +1 -1
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.js +1 -1
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/dataMapping.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.js +1 -1
- 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 +1 -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 +2 -2
- package/esm/utils/helper.js +37 -29
- 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 +1 -1
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +8 -5
- package/esm/utils/memoryParse.js +1 -1
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +1 -1
- package/esm/utils/object.js +15 -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/renderer-event.d.ts +7 -0
- package/esm/utils/renderer-event.js +30 -18
- package/esm/utils/replaceText.js +1 -1
- package/esm/utils/resize-sensor.js +1 -1
- package/esm/utils/resolveCondition.js +1 -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.js +8 -13
- package/esm/utils/style.js +3 -2
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +1 -1
- package/esm/utils/tpl-lodash.js +1 -1
- package/esm/utils/tpl.js +1 -1
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validations.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +2 -2
- package/lib/SchemaRenderer.js +1 -1
- package/lib/Scoped.js +2 -2
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +1 -1
- package/lib/actions/Action.js +1 -1
- 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 +31 -32
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +1 -1
- package/lib/actions/DialogAction.js +1 -1
- package/lib/actions/DrawerAction.js +1 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/LinkAction.js +1 -1
- package/lib/actions/LoopAction.js +1 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.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/components/CustomStyle.js +1 -1
- package/lib/components/LazyComponent.js +1 -1
- package/lib/components/Overlay.js +1 -1
- package/lib/components/PopOver.js +1 -1
- package/lib/env.d.ts +9 -0
- package/lib/env.js +1 -1
- package/lib/envOverwrite.d.ts +1 -1
- package/lib/envOverwrite.js +18 -34
- package/lib/factory.js +1 -1
- package/lib/index.js +3 -3
- package/lib/locale.js +1 -1
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.d.ts +9 -3
- package/lib/renderers/Form.js +50 -25
- package/lib/renderers/Item.js +1 -1
- package/lib/renderers/Options.d.ts +1 -1
- package/lib/renderers/Options.js +7 -6
- 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 +7 -12
- package/lib/store/app.js +1 -1
- package/lib/store/combo.d.ts +1154 -49
- package/lib/store/combo.js +10 -3
- package/lib/store/crud.js +22 -3
- package/lib/store/form.d.ts +480 -21
- package/lib/store/form.js +1 -1
- package/lib/store/formItem.d.ts +23 -1
- package/lib/store/formItem.js +89 -9
- package/lib/store/iRenderer.js +1 -1
- package/lib/store/index.js +1 -1
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.js +1 -1
- package/lib/store/root.js +1 -1
- package/lib/store/service.js +1 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +1077 -43
- package/lib/store/table.js +65 -3
- package/lib/store/table2.js +1 -4
- package/lib/theme.js +1 -1
- package/lib/types.d.ts +8 -2
- 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 +1 -1
- package/lib/utils/RootClose.js +1 -1
- package/lib/utils/SimpleMap.js +1 -1
- package/lib/utils/api.js +1 -1
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.js +1 -1
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/columnsSplit.js +1 -1
- package/lib/utils/dataMapping.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.js +1 -1
- 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 +1 -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 +2 -2
- package/lib/utils/helper.js +36 -28
- 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 +1 -1
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +8 -5
- package/lib/utils/memoryParse.js +1 -1
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +1 -1
- package/lib/utils/object.js +15 -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/renderer-event.d.ts +7 -0
- package/lib/utils/renderer-event.js +30 -18
- package/lib/utils/replaceText.js +1 -1
- package/lib/utils/resize-sensor.js +1 -1
- package/lib/utils/resolveCondition.js +1 -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.js +8 -13
- package/lib/utils/style.js +3 -2
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +1 -1
- package/lib/utils/tpl-lodash.js +1 -1
- package/lib/utils/tpl.js +1 -1
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validations.js +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.5.
|
|
2
|
+
* amis-core v3.5.3
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -25,32 +25,17 @@ var CmptAction = /** @class */ (function () {
|
|
|
25
25
|
CmptAction.prototype.run = function (action, renderer, event) {
|
|
26
26
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
27
27
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
28
|
-
var key, dataMergeMode,
|
|
28
|
+
var key, dataMergeMode, path, beforeSetData, res, component, msg, result, e_1;
|
|
29
29
|
var _t, _u;
|
|
30
30
|
return tslib.__generator(this, function (_v) {
|
|
31
31
|
switch (_v.label) {
|
|
32
32
|
case 0:
|
|
33
33
|
key = action.componentId || action.componentName;
|
|
34
34
|
dataMergeMode = action.dataMergeMode || 'merge';
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
: null;
|
|
38
|
-
if (key && !component) {
|
|
39
|
-
msg = '尝试执行一个不存在的目标组件动作,请检查目标组件非隐藏状态,且正确指定了componentId或componentName';
|
|
40
|
-
if (action.ignoreError === false) {
|
|
41
|
-
throw Error(msg);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
console.warn(msg);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (!(action.actionType === 'setValue')) return [3 /*break*/, 3];
|
|
35
|
+
path = (_a = action.args) === null || _a === void 0 ? void 0 : _a.path;
|
|
36
|
+
if (!(action.actionType === 'setValue' && path && typeof path === 'string')) return [3 /*break*/, 2];
|
|
48
37
|
beforeSetData = (_c = (_b = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _b === void 0 ? void 0 : _b.env) === null || _c === void 0 ? void 0 : _c.beforeSetData;
|
|
49
|
-
|
|
50
|
-
if (!(path &&
|
|
51
|
-
typeof path === 'string' &&
|
|
52
|
-
beforeSetData &&
|
|
53
|
-
typeof beforeSetData === 'function')) return [3 /*break*/, 2];
|
|
38
|
+
if (!(beforeSetData && typeof beforeSetData === 'function')) return [3 /*break*/, 2];
|
|
54
39
|
return [4 /*yield*/, beforeSetData(renderer, action, event)];
|
|
55
40
|
case 1:
|
|
56
41
|
res = _v.sent();
|
|
@@ -59,22 +44,36 @@ var CmptAction = /** @class */ (function () {
|
|
|
59
44
|
}
|
|
60
45
|
_v.label = 2;
|
|
61
46
|
case 2:
|
|
62
|
-
|
|
63
|
-
|
|
47
|
+
component = key
|
|
48
|
+
? (_d = event.context.scoped) === null || _d === void 0 ? void 0 : _d[action.componentId ? 'getComponentById' : 'getComponentByName'](key)
|
|
49
|
+
: renderer;
|
|
50
|
+
// 如果key指定来,但是没找到组件,则报错
|
|
51
|
+
if (key && !component) {
|
|
52
|
+
msg = '尝试执行一个不存在的目标组件动作,请检查目标组件非隐藏状态,且正确指定了componentId或componentName';
|
|
53
|
+
if (action.ignoreError === false) {
|
|
54
|
+
throw Error(msg);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.warn(msg);
|
|
58
|
+
}
|
|
64
59
|
}
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
if (action.actionType === 'setValue') {
|
|
61
|
+
if (component === null || component === void 0 ? void 0 : component.setData) {
|
|
62
|
+
return [2 /*return*/, component === null || component === void 0 ? void 0 : component.setData((_e = action.args) === null || _e === void 0 ? void 0 : _e.value, dataMergeMode === 'override', (_f = action.args) === null || _f === void 0 ? void 0 : _f.index, (_g = action.args) === null || _g === void 0 ? void 0 : _g.condition)];
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return [2 /*return*/, (_j = component === null || component === void 0 ? void 0 : (_h = component.props).onChange) === null || _j === void 0 ? void 0 : _j.call(_h, (_k = action.args) === null || _k === void 0 ? void 0 : _k.value)];
|
|
66
|
+
}
|
|
67
67
|
}
|
|
68
|
-
case 3:
|
|
69
68
|
// 刷新
|
|
70
69
|
if (action.actionType === 'reload') {
|
|
71
70
|
return [2 /*return*/, (_l = component === null || component === void 0 ? void 0 : component.reload) === null || _l === void 0 ? void 0 : _l.call(component, undefined, action.data, undefined, undefined, dataMergeMode === 'override', action.args)];
|
|
72
71
|
}
|
|
73
|
-
_v.label =
|
|
74
|
-
case
|
|
75
|
-
_v.trys.push([
|
|
72
|
+
_v.label = 3;
|
|
73
|
+
case 3:
|
|
74
|
+
_v.trys.push([3, 5, , 6]);
|
|
76
75
|
return [4 /*yield*/, ((_m = component === null || component === void 0 ? void 0 : component.doAction) === null || _m === void 0 ? void 0 : _m.call(component, action, action.args, true))];
|
|
77
|
-
case
|
|
76
|
+
case 4:
|
|
78
77
|
result = _v.sent();
|
|
79
78
|
if (['validate', 'submit'].includes(action.actionType)) {
|
|
80
79
|
event.setData(object.createObject(event.data, (_t = {},
|
|
@@ -86,7 +85,7 @@ var CmptAction = /** @class */ (function () {
|
|
|
86
85
|
_t)));
|
|
87
86
|
}
|
|
88
87
|
return [2 /*return*/, result];
|
|
89
|
-
case
|
|
88
|
+
case 5:
|
|
90
89
|
e_1 = _v.sent();
|
|
91
90
|
event.setData(object.createObject(event.data, (_u = {},
|
|
92
91
|
_u[action.outputVar || "".concat(action.actionType, "Result")] = {
|
|
@@ -95,8 +94,8 @@ var CmptAction = /** @class */ (function () {
|
|
|
95
94
|
payload: (_s = (_r = component === null || component === void 0 ? void 0 : component.props) === null || _r === void 0 ? void 0 : _r.store) === null || _s === void 0 ? void 0 : _s.data
|
|
96
95
|
},
|
|
97
96
|
_u)));
|
|
98
|
-
return [3 /*break*/,
|
|
99
|
-
case
|
|
97
|
+
return [3 /*break*/, 6];
|
|
98
|
+
case 6: return [2 /*return*/];
|
|
100
99
|
}
|
|
101
100
|
});
|
|
102
101
|
});
|
package/lib/env.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface WsObject {
|
|
|
16
16
|
body?: any;
|
|
17
17
|
}
|
|
18
18
|
export interface RendererEnv {
|
|
19
|
+
forceSilenceInsideError?: boolean;
|
|
19
20
|
session?: string;
|
|
20
21
|
fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;
|
|
21
22
|
isCancel: (val: any) => boolean;
|
|
@@ -63,6 +64,14 @@ export interface RendererEnv {
|
|
|
63
64
|
*/
|
|
64
65
|
affixOffsetBottom?: number;
|
|
65
66
|
richTextToken: string;
|
|
67
|
+
/**
|
|
68
|
+
* 默认的选址组件提供商,目前支持仅 baidu
|
|
69
|
+
*/
|
|
70
|
+
locationPickerVendor?: string;
|
|
71
|
+
/**
|
|
72
|
+
* 选址组件的 ak
|
|
73
|
+
*/
|
|
74
|
+
locationPickerAK?: string;
|
|
66
75
|
loadRenderer: (schema: Schema, path: string, reRender: Function) => Promise<React.ElementType> | React.ElementType | JSX.Element | void;
|
|
67
76
|
loadChartExtends?: () => void | Promise<void>;
|
|
68
77
|
loadTinymcePlugin?: (tinymce: any) => void | Promise<void>;
|
package/lib/env.js
CHANGED
package/lib/envOverwrite.d.ts
CHANGED
package/lib/envOverwrite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.5.
|
|
2
|
+
* amis-core v3.5.3
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -7,8 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
9
|
|
|
10
|
-
var tslib = require('tslib');
|
|
11
10
|
var helper = require('./utils/helper.js');
|
|
11
|
+
var isPlainObject = require('lodash/isPlainObject');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
|
|
12
16
|
|
|
13
17
|
/**
|
|
14
18
|
* @file 用于在移动端或不同语言环境下使用不同配置
|
|
@@ -19,41 +23,21 @@ var isMobile = ((_b = (_a = window).matchMedia) === null || _b === void 0 ? void
|
|
|
19
23
|
: false;
|
|
20
24
|
// 这里不能用 addSchemaFilter 是因为还需要更深层的替换,比如 select 里的 options
|
|
21
25
|
var envOverwrite = function (schema, locale) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
try {
|
|
26
|
-
for (var schemaNodes_1 = tslib.__values(schemaNodes), schemaNodes_1_1 = schemaNodes_1.next(); !schemaNodes_1_1.done; schemaNodes_1_1 = schemaNodes_1.next()) {
|
|
27
|
-
var schemaNode = schemaNodes_1_1.value;
|
|
28
|
-
Object.assign(schemaNode, schemaNode[locale]);
|
|
29
|
-
delete schemaNode[locale];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
33
|
-
finally {
|
|
34
|
-
try {
|
|
35
|
-
if (schemaNodes_1_1 && !schemaNodes_1_1.done && (_a = schemaNodes_1.return)) _a.call(schemaNodes_1);
|
|
36
|
-
}
|
|
37
|
-
finally { if (e_1) throw e_1.error; }
|
|
26
|
+
return helper.JSONValueMap(schema, function (value) {
|
|
27
|
+
if (!isPlainObject__default["default"](value)) {
|
|
28
|
+
return value;
|
|
38
29
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
for (var schemaNodes_2 = tslib.__values(schemaNodes), schemaNodes_2_1 = schemaNodes_2.next(); !schemaNodes_2_1.done; schemaNodes_2_1 = schemaNodes_2.next()) {
|
|
44
|
-
var schemaNode = schemaNodes_2_1.value;
|
|
45
|
-
Object.assign(schemaNode, schemaNode['mobile']);
|
|
46
|
-
delete schemaNode['mobile'];
|
|
47
|
-
}
|
|
30
|
+
if (locale && value[locale]) {
|
|
31
|
+
var newValue = Object.assign({}, value, value[locale]);
|
|
32
|
+
delete newValue[locale];
|
|
33
|
+
return newValue;
|
|
48
34
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
finally { if (e_2) throw e_2.error; }
|
|
35
|
+
else if (isMobile && value.mobile) {
|
|
36
|
+
var newValue = Object.assign({}, value, value.mobile);
|
|
37
|
+
delete newValue.mobile;
|
|
38
|
+
return newValue;
|
|
55
39
|
}
|
|
56
|
-
}
|
|
40
|
+
}, true);
|
|
57
41
|
};
|
|
58
42
|
|
|
59
43
|
exports.envOverwrite = envOverwrite;
|
package/lib/factory.js
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.5.
|
|
2
|
+
* amis-core v3.5.3
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -132,7 +132,7 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
|
132
132
|
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
133
133
|
var classPrefix = theme.getClassPrefix();
|
|
134
134
|
// @ts-ignore
|
|
135
|
-
var version = '3.5.
|
|
135
|
+
var version = '3.5.3';
|
|
136
136
|
function render(schema, props, options, pathPrefix) {
|
|
137
137
|
if (props === void 0) { props = {}; }
|
|
138
138
|
if (options === void 0) { options = {}; }
|
|
@@ -191,7 +191,7 @@ function AMISRenderer(_a) {
|
|
|
191
191
|
props.mobileUI = env$1.isMobile();
|
|
192
192
|
}
|
|
193
193
|
// 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations
|
|
194
|
-
envOverwrite.envOverwrite(schema, locale$1);
|
|
194
|
+
schema = envOverwrite.envOverwrite(schema, locale$1);
|
|
195
195
|
schema = replaceText.replaceText(schema, options.replaceText, env$1.replaceTextIgnoreKeys);
|
|
196
196
|
return (_J$X_(env.EnvContext.Provider, { value: env$1 },
|
|
197
197
|
_J$X_(Root["default"], tslib.__assign({}, props, { schema: schema, pathPrefix: pathPrefix, rootStore: store, env: env$1, theme: theme$1, locale: locale$1, translate: translate }))));
|
package/lib/locale.js
CHANGED
package/lib/polyfills.js
CHANGED
package/lib/renderers/Form.d.ts
CHANGED
|
@@ -265,6 +265,7 @@ export interface FormProps extends RendererProps, Omit<FormSchemaBase, 'mode' |
|
|
|
265
265
|
onFailed?: (reason: string, errors: any) => any;
|
|
266
266
|
onFinished: (values: object, action: any) => any;
|
|
267
267
|
onValidate: (values: object, form: any) => any;
|
|
268
|
+
onValidChange?: (valid: boolean, props: any) => void;
|
|
268
269
|
messages: {
|
|
269
270
|
fetchSuccess?: string;
|
|
270
271
|
fetchFailed?: string;
|
|
@@ -315,8 +316,7 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
315
316
|
[propName: string]: Array<() => Promise<any>>;
|
|
316
317
|
};
|
|
317
318
|
asyncCancel: () => void;
|
|
318
|
-
|
|
319
|
-
disposeRulesValidate: () => void;
|
|
319
|
+
toDispose: Array<() => void>;
|
|
320
320
|
shouldLoadInitApi: boolean;
|
|
321
321
|
timer: ReturnType<typeof setTimeout>;
|
|
322
322
|
mounted: boolean;
|
|
@@ -326,6 +326,12 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
326
326
|
componentDidMount(): void;
|
|
327
327
|
componentDidUpdate(prevProps: FormProps): void;
|
|
328
328
|
componentWillUnmount(): void;
|
|
329
|
+
/** 获取表单联合校验的规则 */
|
|
330
|
+
getNormalizedRules(): {
|
|
331
|
+
message: any;
|
|
332
|
+
rule: string;
|
|
333
|
+
name?: string | string[] | undefined;
|
|
334
|
+
}[];
|
|
329
335
|
dispatchInited(value: any): Promise<any>;
|
|
330
336
|
blockRouting(): any;
|
|
331
337
|
beforePageUnload(e: any): any;
|
|
@@ -335,7 +341,7 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
335
341
|
silentReload(target?: string, query?: any): void;
|
|
336
342
|
initInterval(value: any): any;
|
|
337
343
|
isValidated(): boolean;
|
|
338
|
-
validate(forceValidate?: boolean, throwErrors?: boolean): Promise<boolean>;
|
|
344
|
+
validate(forceValidate?: boolean, throwErrors?: boolean, toastErrors?: boolean): Promise<boolean>;
|
|
339
345
|
setErrors(errors: {
|
|
340
346
|
[propName: string]: string;
|
|
341
347
|
}, tag?: string): void;
|
package/lib/renderers/Form.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.5.
|
|
2
|
+
* amis-core v3.5.3
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -56,7 +56,7 @@ require('uncontrollable');
|
|
|
56
56
|
require('hoist-non-react-statics');
|
|
57
57
|
require('../utils/validations.js');
|
|
58
58
|
require('../utils/resolveCondition.js');
|
|
59
|
-
require('mobx');
|
|
59
|
+
var mobx = require('mobx');
|
|
60
60
|
require('../utils/Animation.js');
|
|
61
61
|
|
|
62
62
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -74,6 +74,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
74
74
|
function Form(props) {
|
|
75
75
|
var _this = _super.call(this, props) || this;
|
|
76
76
|
_this.hooks = {};
|
|
77
|
+
_this.toDispose = [];
|
|
77
78
|
_this.shouldLoadInitApi = false;
|
|
78
79
|
_this.lazyEmitChange = debounce__default["default"](_this.emitChange.bind(_this), 250, {
|
|
79
80
|
trailing: true,
|
|
@@ -122,11 +123,12 @@ var Form = /** @class */ (function (_super) {
|
|
|
122
123
|
Form.prototype.componentDidMount = function () {
|
|
123
124
|
var _this = this;
|
|
124
125
|
var _a, _b;
|
|
125
|
-
var _c = this.props, initApi = _c.initApi, initFetch = _c.initFetch, initFetchOn = _c.initFetchOn, initAsyncApi = _c.initAsyncApi, initFinishedField = _c.initFinishedField, initCheckInterval = _c.initCheckInterval, store = _c.store, _d = _c.messages, fetchSuccess = _d.fetchSuccess, fetchFailed = _d.fetchFailed, onValidate = _c.onValidate,
|
|
126
|
+
var _c = this.props, initApi = _c.initApi, initFetch = _c.initFetch, initFetchOn = _c.initFetchOn, initAsyncApi = _c.initAsyncApi, initFinishedField = _c.initFinishedField, initCheckInterval = _c.initCheckInterval, store = _c.store, _d = _c.messages, fetchSuccess = _d.fetchSuccess, fetchFailed = _d.fetchFailed, onValidate = _c.onValidate, onValidChange = _c.onValidChange, promptPageLeave = _c.promptPageLeave, env = _c.env;
|
|
127
|
+
var rules = this.getNormalizedRules();
|
|
126
128
|
this.mounted = true;
|
|
127
129
|
if (onValidate) {
|
|
128
130
|
var finalValidate_1 = helper.promisify(onValidate);
|
|
129
|
-
this.
|
|
131
|
+
this.toDispose.push(this.addHook(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
130
132
|
var result;
|
|
131
133
|
return tslib.__generator(this, function (_a) {
|
|
132
134
|
switch (_a.label) {
|
|
@@ -156,10 +158,14 @@ var Form = /** @class */ (function (_super) {
|
|
|
156
158
|
return [2 /*return*/];
|
|
157
159
|
}
|
|
158
160
|
});
|
|
159
|
-
}); });
|
|
161
|
+
}); }));
|
|
160
162
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
+
// 表单校验结果发生变化时,触发 onValidChange
|
|
164
|
+
if (onValidChange) {
|
|
165
|
+
this.toDispose.push(mobx.reaction(function () { return store.valid; }, function (valid) { return onValidChange(valid, _this.props); }));
|
|
166
|
+
}
|
|
167
|
+
if (rules.length) {
|
|
168
|
+
this.toDispose.push(this.addHook(function () {
|
|
163
169
|
if (!store.valid) {
|
|
164
170
|
return;
|
|
165
171
|
}
|
|
@@ -167,7 +173,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
167
173
|
return !tpl.evalExpression(item.rule, store.data) &&
|
|
168
174
|
store.addRestError(item.message, item.name);
|
|
169
175
|
});
|
|
170
|
-
});
|
|
176
|
+
}));
|
|
171
177
|
}
|
|
172
178
|
if (api.isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {
|
|
173
179
|
store
|
|
@@ -215,11 +221,23 @@ var Form = /** @class */ (function (_super) {
|
|
|
215
221
|
// this.lazyHandleChange.flush();
|
|
216
222
|
this.lazyEmitChange.cancel();
|
|
217
223
|
this.asyncCancel && this.asyncCancel();
|
|
218
|
-
this.
|
|
219
|
-
this.
|
|
224
|
+
this.toDispose.forEach(function (fn) { return fn(); });
|
|
225
|
+
this.toDispose = [];
|
|
220
226
|
window.removeEventListener('beforeunload', this.beforePageUnload);
|
|
221
227
|
(_a = this.unBlockRouting) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
222
228
|
};
|
|
229
|
+
/** 获取表单联合校验的规则 */
|
|
230
|
+
Form.prototype.getNormalizedRules = function () {
|
|
231
|
+
var _a = this.props, rules = _a.rules, __ = _a.translate;
|
|
232
|
+
if (!Array.isArray(rules) || rules.length < 1) {
|
|
233
|
+
return [];
|
|
234
|
+
}
|
|
235
|
+
return rules
|
|
236
|
+
.map(function (item) { return (tslib.__assign(tslib.__assign({}, item), (!item.message || typeof item.message !== 'string'
|
|
237
|
+
? { message: __('Form.rules.message') }
|
|
238
|
+
: {}))); })
|
|
239
|
+
.filter(function (item) { return item.rule && typeof item.rule === 'string'; });
|
|
240
|
+
};
|
|
223
241
|
Form.prototype.dispatchInited = function (value) {
|
|
224
242
|
var _a;
|
|
225
243
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
@@ -367,22 +385,27 @@ var Form = /** @class */ (function (_super) {
|
|
|
367
385
|
Form.prototype.isValidated = function () {
|
|
368
386
|
return this.props.store.validated;
|
|
369
387
|
};
|
|
370
|
-
Form.prototype.validate = function (forceValidate, throwErrors) {
|
|
388
|
+
Form.prototype.validate = function (forceValidate, throwErrors, toastErrors) {
|
|
371
389
|
if (throwErrors === void 0) { throwErrors = false; }
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
.
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
390
|
+
if (toastErrors === void 0) { toastErrors = true; }
|
|
391
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
392
|
+
var _a, store, dispatchEvent, data, messages, __, result;
|
|
393
|
+
return tslib.__generator(this, function (_b) {
|
|
394
|
+
switch (_b.label) {
|
|
395
|
+
case 0:
|
|
396
|
+
_a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data, messages = _a.messages, __ = _a.translate;
|
|
397
|
+
this.flush();
|
|
398
|
+
return [4 /*yield*/, store.validate(this.hooks['validate'] || [], forceValidate, throwErrors, toastErrors === false
|
|
399
|
+
? ''
|
|
400
|
+
: typeof (messages === null || messages === void 0 ? void 0 : messages.validateFailed) === 'string'
|
|
401
|
+
? __(tpl.filter(messages.validateFailed, store.data))
|
|
402
|
+
: undefined)];
|
|
403
|
+
case 1:
|
|
404
|
+
result = _b.sent();
|
|
405
|
+
dispatchEvent(result ? 'validateSucc' : 'validateError', data);
|
|
406
|
+
return [2 /*return*/, result];
|
|
407
|
+
}
|
|
408
|
+
});
|
|
386
409
|
});
|
|
387
410
|
};
|
|
388
411
|
Form.prototype.setErrors = function (errors, tag) {
|
|
@@ -1157,6 +1180,8 @@ var Form = /** @class */ (function (_super) {
|
|
|
1157
1180
|
'onChange',
|
|
1158
1181
|
'onFailed',
|
|
1159
1182
|
'onFinished',
|
|
1183
|
+
'onValidate',
|
|
1184
|
+
'onValidChange',
|
|
1160
1185
|
'onSaved',
|
|
1161
1186
|
'canAccessSuperData',
|
|
1162
1187
|
'lazyChange',
|
package/lib/renderers/Item.js
CHANGED
|
@@ -136,7 +136,7 @@ export interface OptionsControlProps extends FormControlProps, Omit<FormOptionsC
|
|
|
136
136
|
selectedOptions: Array<Option>;
|
|
137
137
|
setOptions: (value: Array<any>, skipNormalize?: boolean) => void;
|
|
138
138
|
setLoading: (value: boolean) => void;
|
|
139
|
-
reloadOptions: (setError?: boolean) => void;
|
|
139
|
+
reloadOptions: (setError?: boolean, isInit?: boolean, data?: Record<string, any>) => void;
|
|
140
140
|
deferLoad: (option: Option) => void;
|
|
141
141
|
leftDeferLoad: (option: Option, leftOptions: Option) => void;
|
|
142
142
|
expandTreeOptions: (nodePathArr: any[]) => void;
|