amis-core 6.8.0 → 6.9.0-beta.1
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.d.ts +13 -0
- package/esm/SchemaRenderer.js +104 -20
- package/esm/Scoped.d.ts +1 -1
- package/esm/Scoped.js +1 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/StyleManager.d.ts +18 -0
- package/esm/StyleManager.js +55 -0
- 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 +6 -4
- package/esm/index.js +12 -6
- 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 +21 -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/animations.d.ts +19 -0
- package/esm/utils/animations.js +58 -0
- 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.d.ts +1 -0
- package/esm/utils/helper.js +15 -2
- 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 +13 -10
- package/esm/utils/visitedCache.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.js +23 -1
- package/lib/SchemaRenderer.d.ts +13 -0
- package/lib/SchemaRenderer.js +101 -17
- package/lib/Scoped.d.ts +1 -1
- package/lib/Scoped.js +1 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/StyleManager.d.ts +18 -0
- package/lib/StyleManager.js +63 -0
- 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 +6 -4
- package/lib/index.js +21 -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 -39
- 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 -17
- 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 -35
- 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 +21 -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/animations.d.ts +19 -0
- package/lib/utils/animations.js +62 -0
- 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.d.ts +1 -0
- package/lib/utils/helper.js +15 -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 +13 -10
- package/lib/utils/visitedCache.js +1 -1
- package/package.json +3 -2
package/esm/factory.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.1
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { __assign } from 'tslib';
|
|
6
|
+
import { __assign, __awaiter, __generator } from 'tslib';
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { RendererStore } from './store/index.js';
|
|
9
9
|
import { destroy, getEnv } from 'mobx-state-tree';
|
|
@@ -19,6 +19,8 @@ import { string2regExp } from './utils/string2regExp.js';
|
|
|
19
19
|
|
|
20
20
|
var _a, _b;
|
|
21
21
|
var renderers = [];
|
|
22
|
+
// type 与 RendererConfig 的映射关系
|
|
23
|
+
var renderersTypeMap = {};
|
|
22
24
|
var renderersMap = {};
|
|
23
25
|
var schemaFilters = [];
|
|
24
26
|
var anonymousIndex = 1;
|
|
@@ -34,53 +36,124 @@ function Renderer(config) {
|
|
|
34
36
|
return renderer.component;
|
|
35
37
|
};
|
|
36
38
|
}
|
|
39
|
+
// mobx-react 的 observer 会修改原型链的 render 方法
|
|
40
|
+
// 如果想继承覆盖组件的 render 方法,需要把原型链 render 还原回来
|
|
41
|
+
// 否则无法调用 super.render 方法
|
|
42
|
+
function fixMobxInjectRender(klass) {
|
|
43
|
+
var _a;
|
|
44
|
+
var target = klass.prototype;
|
|
45
|
+
// mobx-react 篡改之前先记录原始 render
|
|
46
|
+
if (target === null || target === void 0 ? void 0 : target.render) {
|
|
47
|
+
target.__originRender = target.render;
|
|
48
|
+
}
|
|
49
|
+
// 将父级类上面被 mobx 篡改的 render 方法还原回来
|
|
50
|
+
// 而且当前类的 render 也是会被篡改的,所以父级上的其实不需要篡改
|
|
51
|
+
if ((_a = target === null || target === void 0 ? void 0 : target.__proto__) === null || _a === void 0 ? void 0 : _a.hasOwnProperty('__originRender')) {
|
|
52
|
+
var originProto = target.__proto__;
|
|
53
|
+
target.__proto__ = Object.create(originProto.__proto__ || Object);
|
|
54
|
+
Object.assign(target.__proto__, originProto);
|
|
55
|
+
target.__proto__.render = originProto.__originRender;
|
|
56
|
+
}
|
|
57
|
+
return klass;
|
|
58
|
+
}
|
|
59
|
+
// 将 renderer 转成组件
|
|
60
|
+
function rendererToComponent(component, config) {
|
|
61
|
+
if (config.storeType && config.component) {
|
|
62
|
+
component = HocStoreFactory({
|
|
63
|
+
storeType: config.storeType,
|
|
64
|
+
extendsData: config.storeExtendsData,
|
|
65
|
+
shouldSyncSuperStore: config.shouldSyncSuperStore
|
|
66
|
+
})(observer(fixMobxInjectRender(component)));
|
|
67
|
+
}
|
|
68
|
+
if (config.isolateScope) {
|
|
69
|
+
component = HocScoped(component, config.type);
|
|
70
|
+
}
|
|
71
|
+
return component;
|
|
72
|
+
}
|
|
37
73
|
function registerRenderer(config) {
|
|
38
74
|
if (!config.test && !config.type) {
|
|
39
|
-
throw new TypeError('please set config.
|
|
75
|
+
throw new TypeError('please set config.type or config.test');
|
|
40
76
|
}
|
|
41
|
-
else if (!config.
|
|
42
|
-
|
|
77
|
+
else if (!config.type && config.name !== 'static') {
|
|
78
|
+
// todo static 目前还没办法不用 test 来实现
|
|
79
|
+
console.warn("config.type is recommended for register renderer(".concat(config.test, ")"));
|
|
43
80
|
}
|
|
44
81
|
if (typeof config.type === 'string' && config.type) {
|
|
45
82
|
config.type = config.type.toLowerCase();
|
|
46
83
|
config.test =
|
|
47
|
-
config.test ||
|
|
84
|
+
config.test ||
|
|
85
|
+
new RegExp("(^|/)(?:".concat((config.alias || [])
|
|
86
|
+
.concat(config.type)
|
|
87
|
+
.map(function (type) { return string2regExp(type); })
|
|
88
|
+
.join('|'), ")$"), 'i');
|
|
48
89
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
90
|
+
var exists = renderersTypeMap[config.type || ''];
|
|
91
|
+
var renderer = __assign({}, config);
|
|
92
|
+
if (exists &&
|
|
93
|
+
exists.component &&
|
|
94
|
+
exists.component !== Placeholder &&
|
|
95
|
+
config.component &&
|
|
96
|
+
!exists.origin &&
|
|
97
|
+
!config.override) {
|
|
98
|
+
throw new Error("The renderer with type \"".concat(config.type, "\" has already exists, please try another type!"));
|
|
54
99
|
}
|
|
55
|
-
else if (
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
100
|
+
else if (exists) {
|
|
101
|
+
// 如果已经存在,合并配置,并用合并后的配置
|
|
102
|
+
Object.assign(exists, config);
|
|
103
|
+
renderer = exists;
|
|
59
104
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
105
|
+
renderer.weight = renderer.weight || 0;
|
|
106
|
+
renderer.name =
|
|
107
|
+
renderer.name || renderer.type || "anonymous-".concat(anonymousIndex++);
|
|
108
|
+
if (config.component) {
|
|
109
|
+
renderer.Renderer = config.component;
|
|
110
|
+
renderer.component = rendererToComponent(config.component, renderer);
|
|
66
111
|
}
|
|
67
|
-
if (
|
|
68
|
-
|
|
112
|
+
if (!exists) {
|
|
113
|
+
var idx = findIndex(renderers, function (item) { return config.weight < item.weight; });
|
|
114
|
+
~idx ? renderers.splice(idx, 0, renderer) : renderers.push(renderer);
|
|
69
115
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
116
|
+
renderersMap[renderer.name] = !!(renderer.component && renderer.component !== Placeholder);
|
|
117
|
+
renderer.type && (renderersTypeMap[renderer.type] = renderer);
|
|
118
|
+
(renderer.alias || []).forEach(function (alias) {
|
|
119
|
+
var fork = __assign(__assign({}, renderer), { type: alias, name: alias, alias: undefined, origin: renderer });
|
|
120
|
+
var idx = renderers.findIndex(function (item) { return item.name === alias; });
|
|
121
|
+
if (~idx) {
|
|
122
|
+
Object.assign(renderers[idx], fork);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
renderers.push(fork);
|
|
126
|
+
}
|
|
127
|
+
renderersTypeMap[alias] = fork;
|
|
128
|
+
renderersMap[alias] = true;
|
|
129
|
+
});
|
|
130
|
+
return renderer;
|
|
74
131
|
}
|
|
75
132
|
function unRegisterRenderer(config) {
|
|
133
|
+
var _a;
|
|
76
134
|
var name = (typeof config === 'string' ? config : config.name);
|
|
77
135
|
var idx = renderers.findIndex(function (item) { return item.name === name; });
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
136
|
+
if (~idx) {
|
|
137
|
+
var renderer_1 = renderers[idx];
|
|
138
|
+
renderers.splice(idx, 1);
|
|
139
|
+
delete renderersMap[name];
|
|
140
|
+
delete renderersTypeMap[renderer_1.type || ''];
|
|
141
|
+
(_a = renderer_1.alias) === null || _a === void 0 ? void 0 : _a.forEach(function (alias) {
|
|
142
|
+
var idx = renderers.findIndex(function (item) { return item.name === alias; });
|
|
143
|
+
idx > -1 && renderers.splice(idx, 1);
|
|
144
|
+
delete renderersTypeMap[alias];
|
|
145
|
+
delete renderersMap[alias];
|
|
146
|
+
});
|
|
147
|
+
// 清空渲染器定位缓存
|
|
148
|
+
Object.keys(cache).forEach(function (key) {
|
|
149
|
+
var value = cache[key];
|
|
150
|
+
if (value === renderer_1) {
|
|
151
|
+
delete cache[key];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
82
155
|
}
|
|
83
|
-
function
|
|
156
|
+
function loadRendererError(schema, path) {
|
|
84
157
|
return (React.createElement("div", { className: "RuntimeError" },
|
|
85
158
|
React.createElement("p", null, "Error: \u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u6E32\u67D3\u5668"),
|
|
86
159
|
React.createElement("p", null,
|
|
@@ -89,12 +162,97 @@ function loadRenderer(schema, path) {
|
|
|
89
162
|
React.createElement("pre", null,
|
|
90
163
|
React.createElement("code", null, JSON.stringify(schema, null, 2)))));
|
|
91
164
|
}
|
|
165
|
+
function loadAsyncRenderer(renderer) {
|
|
166
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
167
|
+
var result;
|
|
168
|
+
return __generator(this, function (_a) {
|
|
169
|
+
switch (_a.label) {
|
|
170
|
+
case 0:
|
|
171
|
+
if (!isAsyncRenderer(renderer)) {
|
|
172
|
+
// already loaded
|
|
173
|
+
return [2 /*return*/];
|
|
174
|
+
}
|
|
175
|
+
return [4 /*yield*/, renderer.getComponent()];
|
|
176
|
+
case 1:
|
|
177
|
+
result = _a.sent();
|
|
178
|
+
// 如果异步加载的组件没有注册渲染器
|
|
179
|
+
// 同时默认导出了一个组件,则自动注册
|
|
180
|
+
if (!renderer.component && result.default) {
|
|
181
|
+
registerRenderer(__assign(__assign({}, renderer), { component: result.default }));
|
|
182
|
+
}
|
|
183
|
+
return [2 /*return*/];
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
function isAsyncRenderer(item) {
|
|
189
|
+
return (item &&
|
|
190
|
+
(!item.component || item.component === Placeholder) &&
|
|
191
|
+
item.getComponent);
|
|
192
|
+
}
|
|
193
|
+
function hasAsyncRenderers() {
|
|
194
|
+
return renderers.some(isAsyncRenderer);
|
|
195
|
+
}
|
|
196
|
+
function loadAsyncRenderersByType(type, ignore) {
|
|
197
|
+
if (ignore === void 0) { ignore = false; }
|
|
198
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
199
|
+
var types, asyncRenderers;
|
|
200
|
+
return __generator(this, function (_a) {
|
|
201
|
+
switch (_a.label) {
|
|
202
|
+
case 0:
|
|
203
|
+
types = Array.isArray(type) ? type : [type];
|
|
204
|
+
asyncRenderers = types
|
|
205
|
+
.map(function (type) {
|
|
206
|
+
var renderer = renderersTypeMap[type];
|
|
207
|
+
if (!renderer && !ignore) {
|
|
208
|
+
throw new Error("Can not find the renderer by type: ".concat(type));
|
|
209
|
+
}
|
|
210
|
+
return renderer;
|
|
211
|
+
})
|
|
212
|
+
.filter(isAsyncRenderer);
|
|
213
|
+
if (!asyncRenderers.length) return [3 /*break*/, 2];
|
|
214
|
+
return [4 /*yield*/, Promise.all(asyncRenderers.map(function (item) { return loadAsyncRenderer(item); }))];
|
|
215
|
+
case 1:
|
|
216
|
+
_a.sent();
|
|
217
|
+
_a.label = 2;
|
|
218
|
+
case 2: return [2 /*return*/];
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
function loadAllAsyncRenderers() {
|
|
224
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
225
|
+
var asyncRenderers;
|
|
226
|
+
var _this = this;
|
|
227
|
+
return __generator(this, function (_a) {
|
|
228
|
+
switch (_a.label) {
|
|
229
|
+
case 0:
|
|
230
|
+
asyncRenderers = renderers.filter(isAsyncRenderer);
|
|
231
|
+
if (!asyncRenderers.length) return [3 /*break*/, 2];
|
|
232
|
+
return [4 /*yield*/, Promise.all(renderers.map(function (renderer) { return __awaiter(_this, void 0, void 0, function () {
|
|
233
|
+
return __generator(this, function (_a) {
|
|
234
|
+
switch (_a.label) {
|
|
235
|
+
case 0: return [4 /*yield*/, loadAsyncRenderer(renderer)];
|
|
236
|
+
case 1:
|
|
237
|
+
_a.sent();
|
|
238
|
+
return [2 /*return*/];
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}); }))];
|
|
242
|
+
case 1:
|
|
243
|
+
_a.sent();
|
|
244
|
+
_a.label = 2;
|
|
245
|
+
case 2: return [2 /*return*/];
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
}
|
|
92
250
|
var defaultOptions = {
|
|
93
251
|
session: 'global',
|
|
94
252
|
richTextToken: '',
|
|
95
253
|
useMobileUI: true,
|
|
96
254
|
enableAMISDebug: (_b = (_a = window.enableAMISDebug) !== null && _a !== void 0 ? _a : location.search.indexOf('amisDebug=1') !== -1) !== null && _b !== void 0 ? _b : false,
|
|
97
|
-
loadRenderer:
|
|
255
|
+
loadRenderer: loadRendererError,
|
|
98
256
|
fetcher: function () {
|
|
99
257
|
return Promise.reject('fetcher is required');
|
|
100
258
|
},
|
|
@@ -261,8 +419,9 @@ function extendDefaultEnv(env) {
|
|
|
261
419
|
var cache = {};
|
|
262
420
|
function resolveRenderer(path, schema) {
|
|
263
421
|
var type = typeof (schema === null || schema === void 0 ? void 0 : schema.type) == 'string' ? schema.type.toLowerCase() : '';
|
|
264
|
-
|
|
265
|
-
|
|
422
|
+
// 直接匹配类型,后续注册渲染都应该用这个方式而不是之前的判断路径。
|
|
423
|
+
if (type && renderersTypeMap[type]) {
|
|
424
|
+
return renderersTypeMap[type];
|
|
266
425
|
}
|
|
267
426
|
else if (cache[path]) {
|
|
268
427
|
return cache[path];
|
|
@@ -273,15 +432,7 @@ function resolveRenderer(path, schema) {
|
|
|
273
432
|
var renderer = null;
|
|
274
433
|
renderers.some(function (item) {
|
|
275
434
|
var matched = false;
|
|
276
|
-
|
|
277
|
-
if (item.type && type) {
|
|
278
|
-
matched = item.type === type;
|
|
279
|
-
// 如果是type来命中的,那么cache的key直接用 type 即可。
|
|
280
|
-
if (matched) {
|
|
281
|
-
cache[type] = item;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
else if (typeof item.test === 'function') {
|
|
435
|
+
if (typeof item.test === 'function') {
|
|
285
436
|
// 不应该搞得这么复杂的,让每个渲染器唯一 id,自己不晕别人用起来也不晕。
|
|
286
437
|
matched = item.test(path, schema, resolveRenderer);
|
|
287
438
|
}
|
|
@@ -311,5 +462,14 @@ function getRenderers() {
|
|
|
311
462
|
function getRendererByName(name) {
|
|
312
463
|
return find(renderers, function (item) { return item.name === name; });
|
|
313
464
|
}
|
|
465
|
+
var GlobalOptions = {
|
|
466
|
+
pdfjsWorkerSrc: ''
|
|
467
|
+
};
|
|
468
|
+
function setGlobalOptions(options) {
|
|
469
|
+
Object.assign(GlobalOptions, options);
|
|
470
|
+
}
|
|
471
|
+
function getGlobalOptions() {
|
|
472
|
+
return GlobalOptions;
|
|
473
|
+
}
|
|
314
474
|
|
|
315
|
-
export { Renderer, addSchemaFilter, clearStoresCache, defaultOptions, extendDefaultEnv, filterSchema, getRendererByName, getRenderers,
|
|
475
|
+
export { Renderer, addSchemaFilter, clearStoresCache, defaultOptions, extendDefaultEnv, filterSchema, getGlobalOptions, getRendererByName, getRenderers, hasAsyncRenderers, isAsyncRenderer, loadAllAsyncRenderers, loadAsyncRenderer, loadAsyncRenderersByType, loadRendererError, registerRenderer, renderersMap, resolveRenderer, setGlobalOptions, stores, unRegisterRenderer, updateEnv };
|
package/esm/index.d.ts
CHANGED
|
@@ -6,16 +6,17 @@
|
|
|
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';
|
|
14
14
|
export * from './utils/index';
|
|
15
|
+
export * from './utils/animations';
|
|
15
16
|
export * from './types';
|
|
16
17
|
export * from './store';
|
|
17
18
|
import * as utils from './utils/helper';
|
|
18
|
-
import { RegisterStore } from './store';
|
|
19
|
+
import { RegisterStore, registerStore } from './store';
|
|
19
20
|
import type { IColumn, IColumn2, IRow, IRow2 } from './store';
|
|
20
21
|
import { setDefaultLocale, getDefaultLocale, makeTranslator, register as registerLocale, extendLocale, removeLocaleData, localeable } from './locale';
|
|
21
22
|
import type { LocaleProps, TranslateFn } from './locale';
|
|
@@ -50,6 +51,7 @@ import { RENDERER_TRANSMISSION_OMIT_PROPS } from './SchemaRenderer';
|
|
|
50
51
|
import type { IItem } from './store/list';
|
|
51
52
|
import CustomStyle from './components/CustomStyle';
|
|
52
53
|
import { StatusScoped } from './StatusScoped';
|
|
54
|
+
import styleManager from './StyleManager';
|
|
53
55
|
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 };
|
|
56
|
+
export { styleManager, 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
57
|
export declare function render(schema: Schema, props?: RootRenderProps, options?: RenderOptions, pathPrefix?: string): JSX.Element;
|
package/esm/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.1
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { __assign, __rest } from 'tslib';
|
|
7
7
|
import { stores, defaultOptions } from './factory.js';
|
|
8
|
-
export { Renderer, addSchemaFilter, clearStoresCache, extendDefaultEnv, filterSchema, getRendererByName, getRenderers, registerRenderer, resolveRenderer, unRegisterRenderer, updateEnv } from './factory.js';
|
|
8
|
+
export { Renderer, addSchemaFilter, clearStoresCache, extendDefaultEnv, filterSchema, getGlobalOptions, getRendererByName, getRenderers, loadAllAsyncRenderers, loadAsyncRenderer, loadAsyncRenderersByType, registerRenderer, resolveRenderer, setGlobalOptions, unRegisterRenderer, updateEnv } from './factory.js';
|
|
9
9
|
import './polyfills.js';
|
|
10
10
|
import './renderers/builtin.js';
|
|
11
11
|
import './renderers/register.js';
|
|
12
12
|
import { wrapFetcher } from './utils/api.js';
|
|
13
|
-
export { buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher } from './utils/api.js';
|
|
13
|
+
export { addApiRequestAdaptor, addApiResponseAdator, buildApi, callStrFunction, clearApiCache, getApiCache, isApiOutdated, isApiOutdatedWithData, isEffectiveApi, isSameApi, isValidApi, jsFetcher, jsonpFetcher, normalizeApi, normalizeApiResponseData, removeApiRequestAdaptor, removeApiResponseAdaptor, responseAdaptor, setApiCache, str2AsyncFunction, str2function, wrapAdaptor, wrapFetcher } from './utils/api.js';
|
|
14
14
|
export { attachmentAdpator } from './utils/attachmentAdpator.js';
|
|
15
15
|
export { autobindMethod, bind } from './utils/autobind.js';
|
|
16
16
|
export { chromeVersion, isSafari } from './utils/browser.js';
|
|
@@ -36,7 +36,7 @@ export { handleAction } from './utils/handleAction.js';
|
|
|
36
36
|
import { promisify } from './utils/helper.js';
|
|
37
37
|
import * as helper from './utils/helper.js';
|
|
38
38
|
export { helper as utils };
|
|
39
|
-
export { JSONTraverse, JSONValueMap, SkipOperation, TEST_ID_KEY, TestIdBuilder, ValidateError, __uri, anyChanged, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, countTree, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, getLevelFromClassName, getPropValue, getRange, getScrollParent, getScrollbarWidth, getTree, getTreeAncestors, getTreeDepth, getTreeParent, getWidthRate, guid, hasAbility, hasFile, hasOwnPropertyInPath, hasVisibleExpression, hashCode, immutableExtends, importLazyComponent, injectPropsToObject, isArrayChildrenModified, isBreakpoint, isClickOnInput, isDisabled, isEmpty, isMobile, isNumeric, isObjectShallowModified, isSuperDataModified, isUnfolded, isVisible, lcFirst, loadScript, loadStyle, makeColumnClassBuild, makeHorizontalDeeper, mapObject, mapTree, noop, normalizeNodePath, object2formData, omitControls, padArr, parsePrimitiveQueryString, parseQuery, pickEventsProps, preventDefault, promisify, qsparse, qsstringify, range, removeHTMLTag, repeatCount, replaceUrlParams, rmUndefined, someTree, sortArray, spliceTree, supportsMjs, syncDataFromSuper, ucFirst, until, uuid, uuidv4, visibilityFilter } from './utils/helper.js';
|
|
39
|
+
export { JSONTraverse, JSONValueMap, SkipOperation, TEST_ID_KEY, TestIdBuilder, ValidateError, __uri, anyChanged, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, countTree, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, formateId, getLevelFromClassName, getPropValue, getRange, getScrollParent, getScrollbarWidth, getTree, getTreeAncestors, getTreeDepth, getTreeParent, getWidthRate, guid, hasAbility, hasFile, hasOwnPropertyInPath, hasVisibleExpression, hashCode, immutableExtends, importLazyComponent, injectPropsToObject, isArrayChildrenModified, isBreakpoint, isClickOnInput, isDisabled, isEmpty, isMobile, isNumeric, isObjectShallowModified, isSuperDataModified, isUnfolded, isVisible, lcFirst, loadScript, loadStyle, makeColumnClassBuild, makeHorizontalDeeper, mapObject, mapTree, noop, normalizeNodePath, object2formData, omitControls, padArr, parsePrimitiveQueryString, parseQuery, pickEventsProps, preventDefault, promisify, qsparse, qsstringify, range, removeHTMLTag, repeatCount, replaceUrlParams, rmUndefined, someTree, sortArray, spliceTree, supportsMjs, syncDataFromSuper, ucFirst, until, uuid, uuidv4, visibilityFilter } from './utils/helper.js';
|
|
40
40
|
export { highlight } from './utils/highlight.js';
|
|
41
41
|
export { generateIcon } from './utils/icon.js';
|
|
42
42
|
export { getImageDimensions, toDataURL } from './utils/image.js';
|
|
@@ -77,8 +77,9 @@ export { getConditionComputers, registerConditionComputer, resolveCondition, res
|
|
|
77
77
|
export { arraySlice } from './utils/arraySlice.js';
|
|
78
78
|
export { isIntegerInRange, numberFormatter, safeAdd, safeSub } from './utils/math.js';
|
|
79
79
|
export { default as animation } from './utils/Animation.js';
|
|
80
|
+
export { createAnimationStyle } from './utils/animations.js';
|
|
80
81
|
import { RendererStore } from './store/index.js';
|
|
81
|
-
export { RegisterStore, RendererStore } from './store/index.js';
|
|
82
|
+
export { RegisterStore, RendererStore, registerStore } from './store/index.js';
|
|
82
83
|
import { getEnv } from 'mobx-state-tree';
|
|
83
84
|
import { getDefaultLocale, makeTranslator } from './locale.js';
|
|
84
85
|
export { extendLocale, getDefaultLocale, localeable, makeTranslator, register as registerLocale, removeLocaleData, setDefaultLocale } from './locale.js';
|
|
@@ -124,6 +125,7 @@ export { FormRenderer } from './renderers/Form.js';
|
|
|
124
125
|
export { RENDERER_TRANSMISSION_OMIT_PROPS } from './SchemaRenderer.js';
|
|
125
126
|
export { default as CustomStyle } from './components/CustomStyle.js';
|
|
126
127
|
export { StatusScoped } from './StatusScoped.js';
|
|
128
|
+
export { default as styleManager } from './StyleManager.js';
|
|
127
129
|
export { stripNumber } from './utils/stripNumber.js';
|
|
128
130
|
export { iRendererStore } from './store/iRenderer.js';
|
|
129
131
|
export { ServiceStore } from './store/service.js';
|
|
@@ -148,7 +150,11 @@ export { StoreNode } from './store/node.js';
|
|
|
148
150
|
*/
|
|
149
151
|
var classPrefix = getClassPrefix();
|
|
150
152
|
// @ts-ignore
|
|
151
|
-
var version = '6.
|
|
153
|
+
var version = '6.9.0-beta.1';
|
|
154
|
+
window.amisVersionInfo = {
|
|
155
|
+
version: '6.9.0-beta.1',
|
|
156
|
+
buildTime: '2024-10-30T01:54:53.165Z'
|
|
157
|
+
};
|
|
152
158
|
function render(schema, props, options, pathPrefix) {
|
|
153
159
|
if (props === void 0) { props = {}; }
|
|
154
160
|
if (options === void 0) { options = {}; }
|
package/esm/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/esm/locale.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.1
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -86,7 +86,7 @@ function setDefaultLocale(locale) {
|
|
|
86
86
|
defaultLocale = locale;
|
|
87
87
|
}
|
|
88
88
|
var LocaleContext = React.createContext('');
|
|
89
|
-
function localeable(ComposedComponent) {
|
|
89
|
+
function localeable(ComposedComponent, methods) {
|
|
90
90
|
var _a;
|
|
91
91
|
var result = hoistNonReactStatic((_a = /** @class */ (function (_super) {
|
|
92
92
|
__extends(class_1, _super);
|
|
@@ -128,6 +128,17 @@ function localeable(ComposedComponent) {
|
|
|
128
128
|
_a.contextType = LocaleContext,
|
|
129
129
|
_a.ComposedComponent = ComposedComponent,
|
|
130
130
|
_a), ComposedComponent);
|
|
131
|
+
if (Array.isArray(methods)) {
|
|
132
|
+
methods.forEach(function (method) {
|
|
133
|
+
if (ComposedComponent.prototype[method]) {
|
|
134
|
+
result.prototype[method] = function () {
|
|
135
|
+
var _a;
|
|
136
|
+
var fn = (_a = this.ref) === null || _a === void 0 ? void 0 : _a[method];
|
|
137
|
+
return fn ? fn.apply(this.ref, arguments) : undefined;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
131
142
|
return result;
|
|
132
143
|
}
|
|
133
144
|
|
package/esm/polyfills.js
CHANGED
package/esm/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/esm/renderers/Form.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-beta.1
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -22,7 +22,7 @@ import '@rc-component/mini-decimal';
|
|
|
22
22
|
import { dataMapping } from '../utils/dataMapping.js';
|
|
23
23
|
import '../utils/filter.js';
|
|
24
24
|
import { isEffectiveApi, isApiOutdated } from '../utils/api.js';
|
|
25
|
-
import
|
|
25
|
+
import themedLazyComponent from '../components/LazyComponent.js';
|
|
26
26
|
import { isAlive } from 'mobx-state-tree';
|
|
27
27
|
import '../utils/browser.js';
|
|
28
28
|
import '../utils/ColorScale.js';
|
|
@@ -92,6 +92,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
92
92
|
_this.blockRouting = _this.blockRouting.bind(_this);
|
|
93
93
|
_this.beforePageUnload = _this.beforePageUnload.bind(_this);
|
|
94
94
|
_this.formItemDispatchEvent = _this.formItemDispatchEvent.bind(_this);
|
|
95
|
+
_this.flush = _this.flush.bind(_this);
|
|
95
96
|
var store = props.store, canAccessSuperData = props.canAccessSuperData, persistData = props.persistData, simpleMode = props.simpleMode, formLazyChange = props.formLazyChange;
|
|
96
97
|
store.setCanAccessSuperData(canAccessSuperData !== false);
|
|
97
98
|
store.setPersistData(persistData);
|
|
@@ -177,7 +178,9 @@ var Form = /** @class */ (function (_super) {
|
|
|
177
178
|
successMessage: fetchSuccess,
|
|
178
179
|
errorMessage: fetchFailed,
|
|
179
180
|
onSuccess: function (json, data) {
|
|
180
|
-
store.setValues(data
|
|
181
|
+
store.setValues(data, undefined, undefined, undefined, {
|
|
182
|
+
type: 'api'
|
|
183
|
+
});
|
|
181
184
|
if (!isEffectiveApi(initAsyncApi, store.data) ||
|
|
182
185
|
store.data[initFinishedField || 'finished']) {
|
|
183
186
|
return;
|
|
@@ -373,7 +376,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
373
376
|
case 3:
|
|
374
377
|
// 派发初始化接口请求完成事件
|
|
375
378
|
this.dispatchInited(result);
|
|
376
|
-
return [2 /*return
|
|
379
|
+
return [2 /*return*/, store.data];
|
|
377
380
|
}
|
|
378
381
|
});
|
|
379
382
|
});
|
|
@@ -384,7 +387,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
384
387
|
return this.reload();
|
|
385
388
|
};
|
|
386
389
|
Form.prototype.silentReload = function (target, query) {
|
|
387
|
-
this.reload(target, query, undefined, true);
|
|
390
|
+
return this.reload(target, query, undefined, true);
|
|
388
391
|
};
|
|
389
392
|
Form.prototype.initInterval = function (value) {
|
|
390
393
|
var _a = this.props, interval = _a.interval, silentPolling = _a.silentPolling, stopAutoRefreshWhen = _a.stopAutoRefreshWhen, data = _a.data;
|
|
@@ -444,7 +447,9 @@ var Form = /** @class */ (function (_super) {
|
|
|
444
447
|
Form.prototype.setValues = function (value, replace) {
|
|
445
448
|
var store = this.props.store;
|
|
446
449
|
this.flush();
|
|
447
|
-
store.setValues(value, undefined, replace
|
|
450
|
+
store.setValues(value, undefined, replace, undefined, {
|
|
451
|
+
type: 'action'
|
|
452
|
+
});
|
|
448
453
|
};
|
|
449
454
|
Form.prototype.submit = function (fn, throwErrors, skipFlush) {
|
|
450
455
|
if (throwErrors === void 0) { throwErrors = false; }
|
|
@@ -554,13 +559,15 @@ var Form = /** @class */ (function (_super) {
|
|
|
554
559
|
}
|
|
555
560
|
}
|
|
556
561
|
};
|
|
557
|
-
Form.prototype.handleChange = function (value, name, submit, changePristine) {
|
|
562
|
+
Form.prototype.handleChange = function (value, name, submit, changePristine, changeReason) {
|
|
558
563
|
if (changePristine === void 0) { changePristine = false; }
|
|
559
564
|
var _a = this.props, store = _a.store, formLazyChange = _a.formLazyChange, persistDataKeys = _a.persistDataKeys;
|
|
560
565
|
if (typeof name !== 'string') {
|
|
561
566
|
return;
|
|
562
567
|
}
|
|
563
|
-
store.changeValue(name, value, changePristine
|
|
568
|
+
store.changeValue(name, value, changePristine, undefined, undefined, changeReason || {
|
|
569
|
+
type: 'input'
|
|
570
|
+
});
|
|
564
571
|
if (!changePristine || typeof value !== 'undefined') {
|
|
565
572
|
(formLazyChange === false ? this.emitChange : this.lazyEmitChange)(submit);
|
|
566
573
|
}
|
|
@@ -598,7 +605,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
598
605
|
if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
|
|
599
606
|
onChange && onChange.apply(null, changeProps);
|
|
600
607
|
}
|
|
601
|
-
store.clearRestError();
|
|
608
|
+
isAlive(store) && store.clearRestError();
|
|
602
609
|
if (!(!emitedFromWatch && (submit || (submitOnChange && store.inited)))) return [3 /*break*/, 3];
|
|
603
610
|
return [4 /*yield*/, this.handleAction(undefined, {
|
|
604
611
|
type: 'submit',
|
|
@@ -618,9 +625,11 @@ var Form = /** @class */ (function (_super) {
|
|
|
618
625
|
});
|
|
619
626
|
});
|
|
620
627
|
};
|
|
621
|
-
Form.prototype.handleBulkChange = function (values, submit) {
|
|
628
|
+
Form.prototype.handleBulkChange = function (values, submit, changeReason) {
|
|
622
629
|
var _a = this.props; _a.onChange; var store = _a.store, formLazyChange = _a.formLazyChange;
|
|
623
|
-
store.setValues(values
|
|
630
|
+
store.setValues(values, undefined, undefined, undefined, changeReason || {
|
|
631
|
+
type: 'input'
|
|
632
|
+
});
|
|
624
633
|
// store.updateData(values);
|
|
625
634
|
// store.items.forEach(formItem => {
|
|
626
635
|
// const updatedValue = getVariable(values, formItem.name, false);
|
|
@@ -670,6 +679,9 @@ var Form = /** @class */ (function (_super) {
|
|
|
670
679
|
_f.sent();
|
|
671
680
|
_f.label = 2;
|
|
672
681
|
case 2:
|
|
682
|
+
if (!isAlive(store)) {
|
|
683
|
+
return [2 /*return*/];
|
|
684
|
+
}
|
|
673
685
|
if (trimValues) {
|
|
674
686
|
store.trimValues();
|
|
675
687
|
}
|
|
@@ -870,7 +882,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
870
882
|
if (values === false) {
|
|
871
883
|
return store.data;
|
|
872
884
|
}
|
|
873
|
-
if (onFinished && onFinished(values, action) === false) {
|
|
885
|
+
if (onFinished && onFinished(values, action, store) === false) {
|
|
874
886
|
return values;
|
|
875
887
|
}
|
|
876
888
|
resetAfterSubmit && store.reset(_this.handleReset(action));
|
|
@@ -1229,7 +1241,8 @@ var Form = /** @class */ (function (_super) {
|
|
|
1229
1241
|
removeHook: this.removeHook,
|
|
1230
1242
|
renderFormItems: this.renderFormItems,
|
|
1231
1243
|
formItemDispatchEvent: this.formItemDispatchEvent,
|
|
1232
|
-
formPristine: form.pristine
|
|
1244
|
+
formPristine: form.pristine,
|
|
1245
|
+
onFlushForm: this.flush
|
|
1233
1246
|
// value: (control as any)?.name
|
|
1234
1247
|
// ? getVariable(form.data, (control as any)?.name, canAccessSuperData)
|
|
1235
1248
|
// : (control as any)?.value,
|
|
@@ -1383,7 +1396,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
1383
1396
|
});
|
|
1384
1397
|
}
|
|
1385
1398
|
if (lazyLoad) {
|
|
1386
|
-
body = React.createElement(
|
|
1399
|
+
body = React.createElement(themedLazyComponent, null, body);
|
|
1387
1400
|
}
|
|
1388
1401
|
return body;
|
|
1389
1402
|
};
|