amis-core 6.8.0 → 6.9.0-beta.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 +1 -1
- package/esm/RootRenderer.d.ts +1 -1
- package/esm/RootRenderer.js +24 -2
- package/esm/SchemaRenderer.js +32 -17
- package/esm/Scoped.d.ts +1 -1
- package/esm/Scoped.js +1 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +10 -10
- 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 +57 -50
- 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/EventAction.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/PrintAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +3 -3
- 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.d.ts +40 -2
- package/esm/components/LazyComponent.js +13 -7
- package/esm/components/Overlay.js +1 -1
- package/esm/components/PopOver.d.ts +1 -1
- package/esm/components/PopOver.js +1 -1
- package/esm/env.d.ts +0 -4
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.d.ts +19 -2
- package/esm/factory.js +205 -45
- package/esm/index.d.ts +4 -4
- package/esm/index.js +9 -5
- package/esm/locale.d.ts +1 -1
- package/esm/locale.js +13 -2
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.d.ts +5 -5
- package/esm/renderers/Form.js +27 -14
- package/esm/renderers/Item.d.ts +19 -13
- package/esm/renderers/Item.js +13 -14
- package/esm/renderers/Options.d.ts +3 -3
- package/esm/renderers/Options.js +42 -19
- 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.d.ts +3 -3
- package/esm/renderers/wrapControl.js +24 -10
- package/esm/store/app.d.ts +3 -3
- package/esm/store/app.js +1 -1
- package/esm/store/combo.d.ts +17 -15
- package/esm/store/combo.js +1 -1
- package/esm/store/crud.d.ts +3 -3
- package/esm/store/crud.js +1 -1
- package/esm/store/form.d.ts +8 -7
- package/esm/store/form.js +28 -6
- package/esm/store/formItem.js +3 -3
- package/esm/store/iRenderer.d.ts +4 -3
- package/esm/store/iRenderer.js +28 -4
- package/esm/store/index.d.ts +1 -0
- package/esm/store/index.js +3 -2
- package/esm/store/list.d.ts +3 -3
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.d.ts +3 -3
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.d.ts +3 -3
- package/esm/store/pagination.js +1 -1
- package/esm/store/root.d.ts +5 -3
- package/esm/store/root.js +45 -21
- package/esm/store/service.d.ts +3 -3
- package/esm/store/service.js +10 -4
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +17 -15
- package/esm/store/table.js +1 -1
- package/esm/store/table2.d.ts +3 -3
- package/esm/store/table2.js +1 -1
- package/esm/theme.d.ts +1 -1
- package/esm/theme.js +13 -2
- package/esm/types.d.ts +19 -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.d.ts +21 -1
- package/esm/utils/api.js +138 -41
- 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 +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.js +1 -1
- 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/labelToString.js +4 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +1 -1
- 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 +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 +1 -1
- 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 +1 -1
- package/esm/utils/style.js +1 -1
- 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/validateId.js +1 -1
- package/esm/utils/validations.js +1 -1
- package/esm/utils/visitedCache.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.js +23 -1
- package/lib/SchemaRenderer.js +30 -15
- package/lib/Scoped.d.ts +1 -1
- package/lib/Scoped.js +1 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +10 -10
- 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 +56 -49
- 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/EventAction.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/PrintAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +2 -2
- 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.d.ts +40 -2
- package/lib/components/LazyComponent.js +14 -7
- package/lib/components/Overlay.js +1 -1
- package/lib/components/PopOver.d.ts +1 -1
- package/lib/components/PopOver.js +1 -1
- package/lib/env.d.ts +0 -4
- package/lib/env.js +1 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.d.ts +19 -2
- package/lib/factory.js +211 -44
- package/lib/index.d.ts +4 -4
- package/lib/index.js +16 -2
- package/lib/locale.d.ts +1 -1
- package/lib/locale.js +13 -2
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.d.ts +5 -5
- package/lib/renderers/Form.js +25 -12
- package/lib/renderers/Item.d.ts +19 -13
- package/lib/renderers/Item.js +12 -13
- package/lib/renderers/Options.d.ts +3 -3
- package/lib/renderers/Options.js +42 -19
- 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.d.ts +3 -3
- package/lib/renderers/wrapControl.js +24 -10
- package/lib/store/app.d.ts +3 -3
- package/lib/store/app.js +1 -1
- package/lib/store/combo.d.ts +41 -40
- package/lib/store/combo.js +1 -1
- package/lib/store/crud.d.ts +3 -3
- package/lib/store/crud.js +2 -2
- package/lib/store/form.d.ts +18 -18
- package/lib/store/form.js +28 -6
- package/lib/store/formItem.js +3 -3
- package/lib/store/iRenderer.d.ts +4 -3
- package/lib/store/iRenderer.js +28 -4
- package/lib/store/index.d.ts +1 -0
- package/lib/store/index.js +3 -1
- package/lib/store/list.d.ts +3 -3
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.d.ts +3 -3
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.d.ts +3 -3
- package/lib/store/pagination.js +1 -1
- package/lib/store/root.d.ts +5 -3
- package/lib/store/root.js +43 -19
- package/lib/store/service.d.ts +3 -3
- package/lib/store/service.js +10 -4
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +37 -36
- package/lib/store/table.js +1 -1
- package/lib/store/table2.d.ts +3 -3
- package/lib/store/table2.js +1 -1
- package/lib/theme.d.ts +1 -1
- package/lib/theme.js +13 -2
- package/lib/types.d.ts +19 -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.d.ts +21 -1
- package/lib/utils/api.js +141 -40
- 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 +2 -2
- 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.js +1 -1
- 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/labelToString.js +4 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +1 -1
- 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 +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 +1 -1
- 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 +1 -1
- package/lib/utils/style.js +1 -1
- 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/validateId.js +1 -1
- package/lib/utils/validations.js +1 -1
- package/lib/utils/visitedCache.js +1 -1
- package/package.json +2 -2
package/lib/factory.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -30,6 +30,8 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
|
30
30
|
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
31
31
|
var _a, _b;
|
|
32
32
|
var renderers = [];
|
|
33
|
+
// type 与 RendererConfig 的映射关系
|
|
34
|
+
var renderersTypeMap = {};
|
|
33
35
|
var renderersMap = {};
|
|
34
36
|
var schemaFilters = [];
|
|
35
37
|
var anonymousIndex = 1;
|
|
@@ -45,53 +47,124 @@ function Renderer(config) {
|
|
|
45
47
|
return renderer.component;
|
|
46
48
|
};
|
|
47
49
|
}
|
|
50
|
+
// mobx-react 的 observer 会修改原型链的 render 方法
|
|
51
|
+
// 如果想继承覆盖组件的 render 方法,需要把原型链 render 还原回来
|
|
52
|
+
// 否则无法调用 super.render 方法
|
|
53
|
+
function fixMobxInjectRender(klass) {
|
|
54
|
+
var _a;
|
|
55
|
+
var target = klass.prototype;
|
|
56
|
+
// mobx-react 篡改之前先记录原始 render
|
|
57
|
+
if (target === null || target === void 0 ? void 0 : target.render) {
|
|
58
|
+
target.__originRender = target.render;
|
|
59
|
+
}
|
|
60
|
+
// 将父级类上面被 mobx 篡改的 render 方法还原回来
|
|
61
|
+
// 而且当前类的 render 也是会被篡改的,所以父级上的其实不需要篡改
|
|
62
|
+
if ((_a = target === null || target === void 0 ? void 0 : target.__proto__) === null || _a === void 0 ? void 0 : _a.hasOwnProperty('__originRender')) {
|
|
63
|
+
var originProto = target.__proto__;
|
|
64
|
+
target.__proto__ = Object.create(originProto.__proto__ || Object);
|
|
65
|
+
Object.assign(target.__proto__, originProto);
|
|
66
|
+
target.__proto__.render = originProto.__originRender;
|
|
67
|
+
}
|
|
68
|
+
return klass;
|
|
69
|
+
}
|
|
70
|
+
// 将 renderer 转成组件
|
|
71
|
+
function rendererToComponent(component, config) {
|
|
72
|
+
if (config.storeType && config.component) {
|
|
73
|
+
component = WithStore.HocStoreFactory({
|
|
74
|
+
storeType: config.storeType,
|
|
75
|
+
extendsData: config.storeExtendsData,
|
|
76
|
+
shouldSyncSuperStore: config.shouldSyncSuperStore
|
|
77
|
+
})(mobxReact.observer(fixMobxInjectRender(component)));
|
|
78
|
+
}
|
|
79
|
+
if (config.isolateScope) {
|
|
80
|
+
component = Scoped.HocScoped(component, config.type);
|
|
81
|
+
}
|
|
82
|
+
return component;
|
|
83
|
+
}
|
|
48
84
|
function registerRenderer(config) {
|
|
49
85
|
if (!config.test && !config.type) {
|
|
50
|
-
throw new TypeError('please set config.
|
|
86
|
+
throw new TypeError('please set config.type or config.test');
|
|
51
87
|
}
|
|
52
|
-
else if (!config.
|
|
53
|
-
|
|
88
|
+
else if (!config.type && config.name !== 'static') {
|
|
89
|
+
// todo static 目前还没办法不用 test 来实现
|
|
90
|
+
console.warn("config.type is recommended for register renderer(".concat(config.test, ")"));
|
|
54
91
|
}
|
|
55
92
|
if (typeof config.type === 'string' && config.type) {
|
|
56
93
|
config.type = config.type.toLowerCase();
|
|
57
94
|
config.test =
|
|
58
|
-
config.test ||
|
|
95
|
+
config.test ||
|
|
96
|
+
new RegExp("(^|/)(?:".concat((config.alias || [])
|
|
97
|
+
.concat(config.type)
|
|
98
|
+
.map(function (type) { return string2regExp.string2regExp(type); })
|
|
99
|
+
.join('|'), ")$"), 'i');
|
|
59
100
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
101
|
+
var exists = renderersTypeMap[config.type || ''];
|
|
102
|
+
var renderer = tslib.__assign({}, config);
|
|
103
|
+
if (exists &&
|
|
104
|
+
exists.component &&
|
|
105
|
+
exists.component !== Placeholder.Placeholder &&
|
|
106
|
+
config.component &&
|
|
107
|
+
!exists.origin &&
|
|
108
|
+
!config.override) {
|
|
109
|
+
throw new Error("The renderer with type \"".concat(config.type, "\" has already exists, please try another type!"));
|
|
65
110
|
}
|
|
66
|
-
else if (
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
111
|
+
else if (exists) {
|
|
112
|
+
// 如果已经存在,合并配置,并用合并后的配置
|
|
113
|
+
Object.assign(exists, config);
|
|
114
|
+
renderer = exists;
|
|
70
115
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
116
|
+
renderer.weight = renderer.weight || 0;
|
|
117
|
+
renderer.name =
|
|
118
|
+
renderer.name || renderer.type || "anonymous-".concat(anonymousIndex++);
|
|
119
|
+
if (config.component) {
|
|
120
|
+
renderer.Renderer = config.component;
|
|
121
|
+
renderer.component = rendererToComponent(config.component, renderer);
|
|
77
122
|
}
|
|
78
|
-
if (
|
|
79
|
-
|
|
123
|
+
if (!exists) {
|
|
124
|
+
var idx = helper.findIndex(renderers, function (item) { return config.weight < item.weight; });
|
|
125
|
+
~idx ? renderers.splice(idx, 0, renderer) : renderers.push(renderer);
|
|
80
126
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
127
|
+
renderersMap[renderer.name] = !!(renderer.component && renderer.component !== Placeholder.Placeholder);
|
|
128
|
+
renderer.type && (renderersTypeMap[renderer.type] = renderer);
|
|
129
|
+
(renderer.alias || []).forEach(function (alias) {
|
|
130
|
+
var fork = tslib.__assign(tslib.__assign({}, renderer), { type: alias, name: alias, alias: undefined, origin: renderer });
|
|
131
|
+
var idx = renderers.findIndex(function (item) { return item.name === alias; });
|
|
132
|
+
if (~idx) {
|
|
133
|
+
Object.assign(renderers[idx], fork);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
renderers.push(fork);
|
|
137
|
+
}
|
|
138
|
+
renderersTypeMap[alias] = fork;
|
|
139
|
+
renderersMap[alias] = true;
|
|
140
|
+
});
|
|
141
|
+
return renderer;
|
|
85
142
|
}
|
|
86
143
|
function unRegisterRenderer(config) {
|
|
144
|
+
var _a;
|
|
87
145
|
var name = (typeof config === 'string' ? config : config.name);
|
|
88
146
|
var idx = renderers.findIndex(function (item) { return item.name === name; });
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
147
|
+
if (~idx) {
|
|
148
|
+
var renderer_1 = renderers[idx];
|
|
149
|
+
renderers.splice(idx, 1);
|
|
150
|
+
delete renderersMap[name];
|
|
151
|
+
delete renderersTypeMap[renderer_1.type || ''];
|
|
152
|
+
(_a = renderer_1.alias) === null || _a === void 0 ? void 0 : _a.forEach(function (alias) {
|
|
153
|
+
var idx = renderers.findIndex(function (item) { return item.name === alias; });
|
|
154
|
+
idx > -1 && renderers.splice(idx, 1);
|
|
155
|
+
delete renderersTypeMap[alias];
|
|
156
|
+
delete renderersMap[alias];
|
|
157
|
+
});
|
|
158
|
+
// 清空渲染器定位缓存
|
|
159
|
+
Object.keys(cache).forEach(function (key) {
|
|
160
|
+
var value = cache[key];
|
|
161
|
+
if (value === renderer_1) {
|
|
162
|
+
delete cache[key];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
93
166
|
}
|
|
94
|
-
function
|
|
167
|
+
function loadRendererError(schema, path) {
|
|
95
168
|
return (_J$X_("div", { className: "RuntimeError" },
|
|
96
169
|
_J$X_("p", null, "Error: \u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u6E32\u67D3\u5668"),
|
|
97
170
|
_J$X_("p", null,
|
|
@@ -100,12 +173,97 @@ function loadRenderer(schema, path) {
|
|
|
100
173
|
_J$X_("pre", null,
|
|
101
174
|
_J$X_("code", null, JSON.stringify(schema, null, 2)))));
|
|
102
175
|
}
|
|
176
|
+
function loadAsyncRenderer(renderer) {
|
|
177
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
178
|
+
var result;
|
|
179
|
+
return tslib.__generator(this, function (_a) {
|
|
180
|
+
switch (_a.label) {
|
|
181
|
+
case 0:
|
|
182
|
+
if (!isAsyncRenderer(renderer)) {
|
|
183
|
+
// already loaded
|
|
184
|
+
return [2 /*return*/];
|
|
185
|
+
}
|
|
186
|
+
return [4 /*yield*/, renderer.getComponent()];
|
|
187
|
+
case 1:
|
|
188
|
+
result = _a.sent();
|
|
189
|
+
// 如果异步加载的组件没有注册渲染器
|
|
190
|
+
// 同时默认导出了一个组件,则自动注册
|
|
191
|
+
if (!renderer.component && result.default) {
|
|
192
|
+
registerRenderer(tslib.__assign(tslib.__assign({}, renderer), { component: result.default }));
|
|
193
|
+
}
|
|
194
|
+
return [2 /*return*/];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
function isAsyncRenderer(item) {
|
|
200
|
+
return (item &&
|
|
201
|
+
(!item.component || item.component === Placeholder.Placeholder) &&
|
|
202
|
+
item.getComponent);
|
|
203
|
+
}
|
|
204
|
+
function hasAsyncRenderers() {
|
|
205
|
+
return renderers.some(isAsyncRenderer);
|
|
206
|
+
}
|
|
207
|
+
function loadAsyncRenderersByType(type, ignore) {
|
|
208
|
+
if (ignore === void 0) { ignore = false; }
|
|
209
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
210
|
+
var types, asyncRenderers;
|
|
211
|
+
return tslib.__generator(this, function (_a) {
|
|
212
|
+
switch (_a.label) {
|
|
213
|
+
case 0:
|
|
214
|
+
types = Array.isArray(type) ? type : [type];
|
|
215
|
+
asyncRenderers = types
|
|
216
|
+
.map(function (type) {
|
|
217
|
+
var renderer = renderersTypeMap[type];
|
|
218
|
+
if (!renderer && !ignore) {
|
|
219
|
+
throw new Error("Can not find the renderer by type: ".concat(type));
|
|
220
|
+
}
|
|
221
|
+
return renderer;
|
|
222
|
+
})
|
|
223
|
+
.filter(isAsyncRenderer);
|
|
224
|
+
if (!asyncRenderers.length) return [3 /*break*/, 2];
|
|
225
|
+
return [4 /*yield*/, Promise.all(asyncRenderers.map(function (item) { return loadAsyncRenderer(item); }))];
|
|
226
|
+
case 1:
|
|
227
|
+
_a.sent();
|
|
228
|
+
_a.label = 2;
|
|
229
|
+
case 2: return [2 /*return*/];
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function loadAllAsyncRenderers() {
|
|
235
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
236
|
+
var asyncRenderers;
|
|
237
|
+
var _this = this;
|
|
238
|
+
return tslib.__generator(this, function (_a) {
|
|
239
|
+
switch (_a.label) {
|
|
240
|
+
case 0:
|
|
241
|
+
asyncRenderers = renderers.filter(isAsyncRenderer);
|
|
242
|
+
if (!asyncRenderers.length) return [3 /*break*/, 2];
|
|
243
|
+
return [4 /*yield*/, Promise.all(renderers.map(function (renderer) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
244
|
+
return tslib.__generator(this, function (_a) {
|
|
245
|
+
switch (_a.label) {
|
|
246
|
+
case 0: return [4 /*yield*/, loadAsyncRenderer(renderer)];
|
|
247
|
+
case 1:
|
|
248
|
+
_a.sent();
|
|
249
|
+
return [2 /*return*/];
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
}); }))];
|
|
253
|
+
case 1:
|
|
254
|
+
_a.sent();
|
|
255
|
+
_a.label = 2;
|
|
256
|
+
case 2: return [2 /*return*/];
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
}
|
|
103
261
|
var defaultOptions = {
|
|
104
262
|
session: 'global',
|
|
105
263
|
richTextToken: '',
|
|
106
264
|
useMobileUI: true,
|
|
107
265
|
enableAMISDebug: (_b = (_a = window.enableAMISDebug) !== null && _a !== void 0 ? _a : location.search.indexOf('amisDebug=1') !== -1) !== null && _b !== void 0 ? _b : false,
|
|
108
|
-
loadRenderer:
|
|
266
|
+
loadRenderer: loadRendererError,
|
|
109
267
|
fetcher: function () {
|
|
110
268
|
return Promise.reject('fetcher is required');
|
|
111
269
|
},
|
|
@@ -272,8 +430,9 @@ function extendDefaultEnv(env) {
|
|
|
272
430
|
var cache = {};
|
|
273
431
|
function resolveRenderer(path, schema) {
|
|
274
432
|
var type = typeof (schema === null || schema === void 0 ? void 0 : schema.type) == 'string' ? schema.type.toLowerCase() : '';
|
|
275
|
-
|
|
276
|
-
|
|
433
|
+
// 直接匹配类型,后续注册渲染都应该用这个方式而不是之前的判断路径。
|
|
434
|
+
if (type && renderersTypeMap[type]) {
|
|
435
|
+
return renderersTypeMap[type];
|
|
277
436
|
}
|
|
278
437
|
else if (cache[path]) {
|
|
279
438
|
return cache[path];
|
|
@@ -284,15 +443,7 @@ function resolveRenderer(path, schema) {
|
|
|
284
443
|
var renderer = null;
|
|
285
444
|
renderers.some(function (item) {
|
|
286
445
|
var matched = false;
|
|
287
|
-
|
|
288
|
-
if (item.type && type) {
|
|
289
|
-
matched = item.type === type;
|
|
290
|
-
// 如果是type来命中的,那么cache的key直接用 type 即可。
|
|
291
|
-
if (matched) {
|
|
292
|
-
cache[type] = item;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else if (typeof item.test === 'function') {
|
|
446
|
+
if (typeof item.test === 'function') {
|
|
296
447
|
// 不应该搞得这么复杂的,让每个渲染器唯一 id,自己不晕别人用起来也不晕。
|
|
297
448
|
matched = item.test(path, schema, resolveRenderer);
|
|
298
449
|
}
|
|
@@ -322,6 +473,15 @@ function getRenderers() {
|
|
|
322
473
|
function getRendererByName(name) {
|
|
323
474
|
return find__default["default"](renderers, function (item) { return item.name === name; });
|
|
324
475
|
}
|
|
476
|
+
var GlobalOptions = {
|
|
477
|
+
pdfjsWorkerSrc: ''
|
|
478
|
+
};
|
|
479
|
+
function setGlobalOptions(options) {
|
|
480
|
+
Object.assign(GlobalOptions, options);
|
|
481
|
+
}
|
|
482
|
+
function getGlobalOptions() {
|
|
483
|
+
return GlobalOptions;
|
|
484
|
+
}
|
|
325
485
|
|
|
326
486
|
exports.Renderer = Renderer;
|
|
327
487
|
exports.addSchemaFilter = addSchemaFilter;
|
|
@@ -329,12 +489,19 @@ exports.clearStoresCache = clearStoresCache;
|
|
|
329
489
|
exports.defaultOptions = defaultOptions;
|
|
330
490
|
exports.extendDefaultEnv = extendDefaultEnv;
|
|
331
491
|
exports.filterSchema = filterSchema;
|
|
492
|
+
exports.getGlobalOptions = getGlobalOptions;
|
|
332
493
|
exports.getRendererByName = getRendererByName;
|
|
333
494
|
exports.getRenderers = getRenderers;
|
|
334
|
-
exports.
|
|
495
|
+
exports.hasAsyncRenderers = hasAsyncRenderers;
|
|
496
|
+
exports.isAsyncRenderer = isAsyncRenderer;
|
|
497
|
+
exports.loadAllAsyncRenderers = loadAllAsyncRenderers;
|
|
498
|
+
exports.loadAsyncRenderer = loadAsyncRenderer;
|
|
499
|
+
exports.loadAsyncRenderersByType = loadAsyncRenderersByType;
|
|
500
|
+
exports.loadRendererError = loadRendererError;
|
|
335
501
|
exports.registerRenderer = registerRenderer;
|
|
336
502
|
exports.renderersMap = renderersMap;
|
|
337
503
|
exports.resolveRenderer = resolveRenderer;
|
|
504
|
+
exports.setGlobalOptions = setGlobalOptions;
|
|
338
505
|
exports.stores = stores;
|
|
339
506
|
exports.unRegisterRenderer = unRegisterRenderer;
|
|
340
507
|
exports.updateEnv = updateEnv;
|
package/lib/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
/// <reference types="react" />
|
|
9
|
-
import { Renderer, getRendererByName, getRenderers, registerRenderer, unRegisterRenderer, resolveRenderer, filterSchema, clearStoresCache, updateEnv, addSchemaFilter, extendDefaultEnv } from './factory';
|
|
10
|
-
import type { RenderOptions, RendererConfig, RendererProps } from './factory';
|
|
9
|
+
import { Renderer, getRendererByName, getRenderers, loadAllAsyncRenderers, loadAsyncRenderersByType, loadAsyncRenderer, registerRenderer, unRegisterRenderer, resolveRenderer, filterSchema, clearStoresCache, updateEnv, addSchemaFilter, extendDefaultEnv, getGlobalOptions, setGlobalOptions } from './factory';
|
|
10
|
+
import type { RenderOptions, RendererConfig, RendererProps, hasAsyncRenderers } from './factory';
|
|
11
11
|
import './polyfills';
|
|
12
12
|
import './renderers/builtin';
|
|
13
13
|
import './renderers/register';
|
|
@@ -15,7 +15,7 @@ export * from './utils/index';
|
|
|
15
15
|
export * from './types';
|
|
16
16
|
export * from './store';
|
|
17
17
|
import * as utils from './utils/helper';
|
|
18
|
-
import { RegisterStore } from './store';
|
|
18
|
+
import { RegisterStore, registerStore } from './store';
|
|
19
19
|
import type { IColumn, IColumn2, IRow, IRow2 } from './store';
|
|
20
20
|
import { setDefaultLocale, getDefaultLocale, makeTranslator, register as registerLocale, extendLocale, removeLocaleData, localeable } from './locale';
|
|
21
21
|
import type { LocaleProps, TranslateFn } from './locale';
|
|
@@ -51,5 +51,5 @@ import type { IItem } from './store/list';
|
|
|
51
51
|
import CustomStyle from './components/CustomStyle';
|
|
52
52
|
import { StatusScoped } from './StatusScoped';
|
|
53
53
|
export declare const version = "__buildVersion";
|
|
54
|
-
export { clearStoresCache, updateEnv, Renderer, RendererProps, RenderOptions, RendererEnv, EnvContext, RegisterStore, FormItem, FormItemWrap, FormItemProps, OptionsControl, FormRenderer, FormHorizontal, utils, getRendererByName, registerRenderer, unRegisterRenderer, getRenderers, registerFormItem, getFormItemByName, registerOptionsControl, resolveRenderer, filterSchema, Scoped, ScopedContext, IScopedContext, StatusScoped, setDefaultTheme, theme, themeable, ThemeProps, getTheme, classPrefix, getClassPrefix, classnames, makeClassnames, getDefaultLocale, setDefaultLocale, registerLocale, makeTranslator, extendLocale, removeLocaleData, localeable, LocaleProps, TranslateFn, ClassNamesFn, parse, lexer, Evaluator, AsyncEvaluator, FilterContext, filters, getFilters, registerFilter, extendsFilters, registerFunction, evaluate, evaluateForAsync, LazyComponent, Overlay, PopOver, ErrorBoundary, addSchemaFilter, OptionsControlProps, FormOptionsControl, FormControlProps, FormBaseControl, extendDefaultEnv, addRootWrapper, RendererConfig, styleMap, RENDERER_TRANSMISSION_OMIT_PROPS, ScopedComponentType, IItem, IColumn, IRow, IColumn2, IRow2, OnEventProps, FormSchemaBase, filterTarget, splitTarget, CustomStyle, enableDebug, disableDebug, envOverwrite };
|
|
54
|
+
export { clearStoresCache, updateEnv, Renderer, RendererProps, RenderOptions, RendererEnv, EnvContext, RegisterStore, registerStore, FormItem, FormItemWrap, FormItemProps, OptionsControl, FormRenderer, FormHorizontal, utils, getRendererByName, registerRenderer, unRegisterRenderer, getRenderers, loadAllAsyncRenderers, loadAsyncRenderersByType, loadAsyncRenderer, hasAsyncRenderers, registerFormItem, getFormItemByName, registerOptionsControl, resolveRenderer, filterSchema, Scoped, ScopedContext, IScopedContext, StatusScoped, setDefaultTheme, theme, themeable, ThemeProps, getTheme, classPrefix, getClassPrefix, classnames, makeClassnames, getDefaultLocale, setDefaultLocale, registerLocale, makeTranslator, extendLocale, removeLocaleData, localeable, LocaleProps, TranslateFn, ClassNamesFn, parse, lexer, Evaluator, AsyncEvaluator, FilterContext, filters, getFilters, registerFilter, extendsFilters, registerFunction, evaluate, evaluateForAsync, LazyComponent, Overlay, PopOver, ErrorBoundary, addSchemaFilter, OptionsControlProps, FormOptionsControl, FormControlProps, FormBaseControl, extendDefaultEnv, addRootWrapper, RendererConfig, styleMap, RENDERER_TRANSMISSION_OMIT_PROPS, ScopedComponentType, IItem, IColumn, IRow, IColumn2, IRow2, OnEventProps, FormSchemaBase, filterTarget, splitTarget, CustomStyle, enableDebug, disableDebug, envOverwrite, getGlobalOptions, setGlobalOptions };
|
|
55
55
|
export declare function render(schema: Schema, props?: RootRenderProps, options?: RenderOptions, pathPrefix?: string): JSX.Element;
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -139,7 +139,11 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
|
139
139
|
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
140
140
|
var classPrefix = theme.getClassPrefix();
|
|
141
141
|
// @ts-ignore
|
|
142
|
-
var version = '6.
|
|
142
|
+
var version = '6.9.0-beta.0';
|
|
143
|
+
window.amisVersionInfo = {
|
|
144
|
+
version: '6.9.0-beta.0',
|
|
145
|
+
buildTime: '2024-10-22T11:40:47.953Z'
|
|
146
|
+
};
|
|
143
147
|
function render(schema, props, options, pathPrefix) {
|
|
144
148
|
if (props === void 0) { props = {}; }
|
|
145
149
|
if (options === void 0) { options = {}; }
|
|
@@ -213,12 +217,19 @@ exports.addSchemaFilter = factory.addSchemaFilter;
|
|
|
213
217
|
exports.clearStoresCache = factory.clearStoresCache;
|
|
214
218
|
exports.extendDefaultEnv = factory.extendDefaultEnv;
|
|
215
219
|
exports.filterSchema = factory.filterSchema;
|
|
220
|
+
exports.getGlobalOptions = factory.getGlobalOptions;
|
|
216
221
|
exports.getRendererByName = factory.getRendererByName;
|
|
217
222
|
exports.getRenderers = factory.getRenderers;
|
|
223
|
+
exports.loadAllAsyncRenderers = factory.loadAllAsyncRenderers;
|
|
224
|
+
exports.loadAsyncRenderer = factory.loadAsyncRenderer;
|
|
225
|
+
exports.loadAsyncRenderersByType = factory.loadAsyncRenderersByType;
|
|
218
226
|
exports.registerRenderer = factory.registerRenderer;
|
|
219
227
|
exports.resolveRenderer = factory.resolveRenderer;
|
|
228
|
+
exports.setGlobalOptions = factory.setGlobalOptions;
|
|
220
229
|
exports.unRegisterRenderer = factory.unRegisterRenderer;
|
|
221
230
|
exports.updateEnv = factory.updateEnv;
|
|
231
|
+
exports.addApiRequestAdaptor = api.addApiRequestAdaptor;
|
|
232
|
+
exports.addApiResponseAdator = api.addApiResponseAdator;
|
|
222
233
|
exports.buildApi = api.buildApi;
|
|
223
234
|
exports.callStrFunction = api.callStrFunction;
|
|
224
235
|
exports.clearApiCache = api.clearApiCache;
|
|
@@ -232,6 +243,8 @@ exports.jsFetcher = api.jsFetcher;
|
|
|
232
243
|
exports.jsonpFetcher = api.jsonpFetcher;
|
|
233
244
|
exports.normalizeApi = api.normalizeApi;
|
|
234
245
|
exports.normalizeApiResponseData = api.normalizeApiResponseData;
|
|
246
|
+
exports.removeApiRequestAdaptor = api.removeApiRequestAdaptor;
|
|
247
|
+
exports.removeApiResponseAdaptor = api.removeApiResponseAdaptor;
|
|
235
248
|
exports.responseAdaptor = api.responseAdaptor;
|
|
236
249
|
exports.setApiCache = api.setApiCache;
|
|
237
250
|
exports.str2AsyncFunction = api.str2AsyncFunction;
|
|
@@ -473,6 +486,7 @@ exports.safeSub = math.safeSub;
|
|
|
473
486
|
exports.animation = Animation["default"];
|
|
474
487
|
exports.RegisterStore = index.RegisterStore;
|
|
475
488
|
exports.RendererStore = index.RendererStore;
|
|
489
|
+
exports.registerStore = index.registerStore;
|
|
476
490
|
exports.extendLocale = locale.extendLocale;
|
|
477
491
|
exports.getDefaultLocale = locale.getDefaultLocale;
|
|
478
492
|
exports.localeable = locale.localeable;
|
package/lib/locale.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface LocaleProps {
|
|
|
16
16
|
translate: TranslateFn;
|
|
17
17
|
}
|
|
18
18
|
export declare const LocaleContext: React.Context<string>;
|
|
19
|
-
export declare function localeable<T extends React.ComponentType<React.ComponentProps<T> & LocaleProps>>(ComposedComponent: T): {
|
|
19
|
+
export declare function localeable<T extends React.ComponentType<React.ComponentProps<T> & LocaleProps>>(ComposedComponent: T, methods?: Array<string>): {
|
|
20
20
|
new (props: JSX.LibraryManagedAttributes<T, Omit<React.ComponentProps<T>, keyof LocaleProps>> & {
|
|
21
21
|
locale?: string | undefined;
|
|
22
22
|
translate?: ((str: string, ...args: any[]) => string) | undefined;
|
package/lib/locale.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -99,7 +99,7 @@ function setDefaultLocale(locale) {
|
|
|
99
99
|
defaultLocale = locale;
|
|
100
100
|
}
|
|
101
101
|
var LocaleContext = React__default["default"].createContext('');
|
|
102
|
-
function localeable(ComposedComponent) {
|
|
102
|
+
function localeable(ComposedComponent, methods) {
|
|
103
103
|
var _a;
|
|
104
104
|
var result = hoistNonReactStatic__default["default"]((_a = /** @class */ (function (_super) {
|
|
105
105
|
tslib.__extends(class_1, _super);
|
|
@@ -141,6 +141,17 @@ function localeable(ComposedComponent) {
|
|
|
141
141
|
_a.contextType = LocaleContext,
|
|
142
142
|
_a.ComposedComponent = ComposedComponent,
|
|
143
143
|
_a), ComposedComponent);
|
|
144
|
+
if (Array.isArray(methods)) {
|
|
145
|
+
methods.forEach(function (method) {
|
|
146
|
+
if (ComposedComponent.prototype[method]) {
|
|
147
|
+
result.prototype[method] = function () {
|
|
148
|
+
var _a;
|
|
149
|
+
var fn = (_a = this.ref) === null || _a === void 0 ? void 0 : _a[method];
|
|
150
|
+
return fn ? fn.apply(this.ref, arguments) : undefined;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
144
155
|
return result;
|
|
145
156
|
}
|
|
146
157
|
|
package/lib/polyfills.js
CHANGED
package/lib/renderers/Form.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { RendererProps } from '../factory';
|
|
4
4
|
import { IFormStore } from '../store/form';
|
|
5
|
-
import { SchemaNode, ActionObject, ClassName, BaseApiObject, SchemaExpression, SchemaClassName } from '../types';
|
|
5
|
+
import { SchemaNode, ActionObject, ClassName, BaseApiObject, SchemaExpression, SchemaClassName, DataChangeReason } from '../types';
|
|
6
6
|
import { IScopedContext } from '../Scoped';
|
|
7
7
|
import type { LabelAlign } from './Item';
|
|
8
8
|
export interface FormHorizontal {
|
|
@@ -263,7 +263,7 @@ export interface FormProps extends RendererProps, Omit<FormSchemaBase, 'mode' |
|
|
|
263
263
|
onSubmit?: (values: object, action: any) => any;
|
|
264
264
|
onChange?: (values: object, diff: object, props: any) => any;
|
|
265
265
|
onFailed?: (reason: string, errors: any) => any;
|
|
266
|
-
onFinished: (values: object, action:
|
|
266
|
+
onFinished: (values: object, action: ActionObject, store: IFormStore) => any;
|
|
267
267
|
onValidate: (values: object, form: any) => any;
|
|
268
268
|
onValidChange?: (valid: boolean, props: any) => void;
|
|
269
269
|
messages: {
|
|
@@ -338,7 +338,7 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
338
338
|
onInit(): Promise<void>;
|
|
339
339
|
reload(subPath?: string, query?: any, ctx?: any, silent?: boolean): Promise<any>;
|
|
340
340
|
receive(values: object, name?: string, replace?: boolean): Promise<any>;
|
|
341
|
-
silentReload(target?: string, query?: any):
|
|
341
|
+
silentReload(target?: string, query?: any): Promise<any>;
|
|
342
342
|
initInterval(value: any): any;
|
|
343
343
|
isValidated(): boolean;
|
|
344
344
|
validate(forceValidate?: boolean, throwErrors?: boolean, toastErrors?: boolean, skipFlush?: boolean): Promise<boolean>;
|
|
@@ -354,12 +354,12 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
354
354
|
reset(): void;
|
|
355
355
|
addHook(fn: () => any, type?: 'validate' | 'init' | 'flush', enforce?: 'prev' | 'post'): () => void;
|
|
356
356
|
removeHook(fn: () => any, type?: string): void;
|
|
357
|
-
handleChange(value: any, name: string, submit: boolean, changePristine?: boolean): void;
|
|
357
|
+
handleChange(value: any, name: string, submit: boolean, changePristine?: boolean, changeReason?: DataChangeReason): void;
|
|
358
358
|
formItemDispatchEvent(type: string, data: any): Promise<import("../utils").RendererEvent<any, any>>;
|
|
359
359
|
emittedData: any;
|
|
360
360
|
emitting: boolean;
|
|
361
361
|
emitChange(submit: boolean, emitedFromWatch?: boolean): Promise<void>;
|
|
362
|
-
handleBulkChange(values: Object, submit: boolean): void;
|
|
362
|
+
handleBulkChange(values: Object, submit: boolean, changeReason?: DataChangeReason): void;
|
|
363
363
|
handleFormSubmit(e: React.UIEvent<any>): any;
|
|
364
364
|
handleReset(action: any): (data: any) => void;
|
|
365
365
|
handleAction(e: React.UIEvent<any> | void, action: ActionObject, data: object, throwErrors?: boolean, delegate?: IScopedContext): Promise<any>;
|
package/lib/renderers/Form.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -111,6 +111,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
111
111
|
_this.blockRouting = _this.blockRouting.bind(_this);
|
|
112
112
|
_this.beforePageUnload = _this.beforePageUnload.bind(_this);
|
|
113
113
|
_this.formItemDispatchEvent = _this.formItemDispatchEvent.bind(_this);
|
|
114
|
+
_this.flush = _this.flush.bind(_this);
|
|
114
115
|
var store = props.store, canAccessSuperData = props.canAccessSuperData, persistData = props.persistData, simpleMode = props.simpleMode, formLazyChange = props.formLazyChange;
|
|
115
116
|
store.setCanAccessSuperData(canAccessSuperData !== false);
|
|
116
117
|
store.setPersistData(persistData);
|
|
@@ -196,7 +197,9 @@ var Form = /** @class */ (function (_super) {
|
|
|
196
197
|
successMessage: fetchSuccess,
|
|
197
198
|
errorMessage: fetchFailed,
|
|
198
199
|
onSuccess: function (json, data) {
|
|
199
|
-
store.setValues(data
|
|
200
|
+
store.setValues(data, undefined, undefined, undefined, {
|
|
201
|
+
type: 'api'
|
|
202
|
+
});
|
|
200
203
|
if (!api.isEffectiveApi(initAsyncApi, store.data) ||
|
|
201
204
|
store.data[initFinishedField || 'finished']) {
|
|
202
205
|
return;
|
|
@@ -392,7 +395,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
392
395
|
case 3:
|
|
393
396
|
// 派发初始化接口请求完成事件
|
|
394
397
|
this.dispatchInited(result);
|
|
395
|
-
return [2 /*return
|
|
398
|
+
return [2 /*return*/, store.data];
|
|
396
399
|
}
|
|
397
400
|
});
|
|
398
401
|
});
|
|
@@ -403,7 +406,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
403
406
|
return this.reload();
|
|
404
407
|
};
|
|
405
408
|
Form.prototype.silentReload = function (target, query) {
|
|
406
|
-
this.reload(target, query, undefined, true);
|
|
409
|
+
return this.reload(target, query, undefined, true);
|
|
407
410
|
};
|
|
408
411
|
Form.prototype.initInterval = function (value) {
|
|
409
412
|
var _a = this.props, interval = _a.interval, silentPolling = _a.silentPolling, stopAutoRefreshWhen = _a.stopAutoRefreshWhen, data = _a.data;
|
|
@@ -463,7 +466,9 @@ var Form = /** @class */ (function (_super) {
|
|
|
463
466
|
Form.prototype.setValues = function (value, replace) {
|
|
464
467
|
var store = this.props.store;
|
|
465
468
|
this.flush();
|
|
466
|
-
store.setValues(value, undefined, replace
|
|
469
|
+
store.setValues(value, undefined, replace, undefined, {
|
|
470
|
+
type: 'action'
|
|
471
|
+
});
|
|
467
472
|
};
|
|
468
473
|
Form.prototype.submit = function (fn, throwErrors, skipFlush) {
|
|
469
474
|
if (throwErrors === void 0) { throwErrors = false; }
|
|
@@ -573,13 +578,15 @@ var Form = /** @class */ (function (_super) {
|
|
|
573
578
|
}
|
|
574
579
|
}
|
|
575
580
|
};
|
|
576
|
-
Form.prototype.handleChange = function (value, name, submit, changePristine) {
|
|
581
|
+
Form.prototype.handleChange = function (value, name, submit, changePristine, changeReason) {
|
|
577
582
|
if (changePristine === void 0) { changePristine = false; }
|
|
578
583
|
var _a = this.props, store = _a.store, formLazyChange = _a.formLazyChange, persistDataKeys = _a.persistDataKeys;
|
|
579
584
|
if (typeof name !== 'string') {
|
|
580
585
|
return;
|
|
581
586
|
}
|
|
582
|
-
store.changeValue(name, value, changePristine
|
|
587
|
+
store.changeValue(name, value, changePristine, undefined, undefined, changeReason || {
|
|
588
|
+
type: 'input'
|
|
589
|
+
});
|
|
583
590
|
if (!changePristine || typeof value !== 'undefined') {
|
|
584
591
|
(formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
|
|
585
592
|
}
|
|
@@ -617,7 +624,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
617
624
|
if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
|
|
618
625
|
onChange && onChange.apply(null, changeProps);
|
|
619
626
|
}
|
|
620
|
-
store.clearRestError();
|
|
627
|
+
mobxStateTree.isAlive(store) && store.clearRestError();
|
|
621
628
|
if (!(!emitedFromWatch && (submit || (submitOnChange && store.inited)))) return [3 /*break*/, 3];
|
|
622
629
|
return [4 /*yield*/, this.handleAction(undefined, {
|
|
623
630
|
type: 'submit',
|
|
@@ -637,9 +644,11 @@ var Form = /** @class */ (function (_super) {
|
|
|
637
644
|
});
|
|
638
645
|
});
|
|
639
646
|
};
|
|
640
|
-
Form.prototype.handleBulkChange = function (values, submit) {
|
|
647
|
+
Form.prototype.handleBulkChange = function (values, submit, changeReason) {
|
|
641
648
|
var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
|
|
642
|
-
store.setValues(values
|
|
649
|
+
store.setValues(values, undefined, undefined, undefined, changeReason || {
|
|
650
|
+
type: 'input'
|
|
651
|
+
});
|
|
643
652
|
// store.updateData(values);
|
|
644
653
|
// store.items.forEach(formItem => {
|
|
645
654
|
// const updatedValue = getVariable(values, formItem.name, false);
|
|
@@ -689,6 +698,9 @@ var Form = /** @class */ (function (_super) {
|
|
|
689
698
|
_f.sent();
|
|
690
699
|
_f.label = 2;
|
|
691
700
|
case 2:
|
|
701
|
+
if (!mobxStateTree.isAlive(store)) {
|
|
702
|
+
return [2 /*return*/];
|
|
703
|
+
}
|
|
692
704
|
if (trimValues) {
|
|
693
705
|
store.trimValues();
|
|
694
706
|
}
|
|
@@ -889,7 +901,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
889
901
|
if (values === false) {
|
|
890
902
|
return store.data;
|
|
891
903
|
}
|
|
892
|
-
if (onFinished && onFinished(values, action) === false) {
|
|
904
|
+
if (onFinished && onFinished(values, action, store) === false) {
|
|
893
905
|
return values;
|
|
894
906
|
}
|
|
895
907
|
resetAfterSubmit && store.reset(_this.handleReset(action));
|
|
@@ -1248,7 +1260,8 @@ var Form = /** @class */ (function (_super) {
|
|
|
1248
1260
|
removeHook: this.removeHook,
|
|
1249
1261
|
renderFormItems: this.renderFormItems,
|
|
1250
1262
|
formItemDispatchEvent: this.formItemDispatchEvent,
|
|
1251
|
-
formPristine: form.pristine
|
|
1263
|
+
formPristine: form.pristine,
|
|
1264
|
+
onFlushForm: this.flush
|
|
1252
1265
|
// value: (control as any)?.name
|
|
1253
1266
|
// ? getVariable(form.data, (control as any)?.name, canAccessSuperData)
|
|
1254
1267
|
// : (control as any)?.value,
|