amis-core 6.7.0 → 6.9.0-rc.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.d.ts +0 -1
- package/esm/SchemaRenderer.js +43 -20
- package/esm/Scoped.js +2 -1
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +8 -8
- package/esm/actions/Action.js +2 -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 +1 -1
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +1 -1
- package/esm/actions/CustomAction.js +2 -1
- package/esm/actions/DialogAction.js +3 -1
- package/esm/actions/DrawerAction.js +2 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/EventAction.js +2 -1
- package/esm/actions/LinkAction.js +1 -1
- package/esm/actions/LoopAction.js +2 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.js +1 -1
- package/esm/actions/PrintAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +1 -1
- package/esm/actions/WaitAction.js +1 -1
- package/esm/components/CustomStyle.js +1 -1
- package/esm/components/ErrorBoundary.js +1 -1
- package/esm/components/LazyComponent.d.ts +40 -2
- package/esm/components/LazyComponent.js +13 -7
- package/esm/components/Overlay.js +2 -1
- package/esm/components/PopOver.d.ts +1 -1
- package/esm/components/PopOver.js +2 -1
- package/esm/env.js +1 -1
- package/esm/envOverwrite.js +1 -1
- package/esm/factory.d.ts +13 -2
- package/esm/factory.js +157 -45
- package/esm/index.d.ts +4 -4
- package/esm/index.js +5 -5
- package/esm/locale.js +2 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.js +44 -18
- package/esm/renderers/Item.d.ts +97 -12
- package/esm/renderers/Item.js +164 -125
- package/esm/renderers/Options.d.ts +3 -3
- package/esm/renderers/Options.js +43 -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.js +2 -1
- package/esm/store/app.js +2 -1
- package/esm/store/combo.d.ts +408 -0
- package/esm/store/combo.js +1 -1
- package/esm/store/crud.js +2 -1
- package/esm/store/form.d.ts +170 -0
- package/esm/store/form.js +2 -1
- package/esm/store/formItem.d.ts +5 -0
- package/esm/store/formItem.js +30 -8
- package/esm/store/iRenderer.js +2 -1
- package/esm/store/index.d.ts +1 -0
- package/esm/store/index.js +3 -2
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.js +2 -1
- package/esm/store/root.d.ts +2 -0
- package/esm/store/root.js +46 -21
- package/esm/store/service.js +2 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +379 -21
- package/esm/store/table.js +84 -54
- package/esm/store/table2.js +1 -1
- package/esm/theme.js +1 -1
- package/esm/types.d.ts +4 -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 +133 -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 +17 -3
- package/esm/utils/decodeEntity.js +1 -1
- package/esm/utils/dom.js +1 -1
- package/esm/utils/errors.js +1 -1
- package/esm/utils/escapeHtml.js +1 -1
- package/esm/utils/filter-schema.js +1 -1
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.js +2 -1
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +1 -1
- package/esm/utils/helper.d.ts +4 -1
- package/esm/utils/helper.js +20 -4
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.js +1 -1
- package/esm/utils/image.js +1 -1
- package/esm/utils/isPureVariable.js +2 -2
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/labelToString.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +1 -1
- package/esm/utils/memoryParse.d.ts +2 -1
- package/esm/utils/memoryParse.js +10 -6
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +1 -1
- package/esm/utils/object.d.ts +2 -4
- package/esm/utils/object.js +1 -1
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +1 -1
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/printElement.js +1 -1
- package/esm/utils/renderer-event.js +1 -1
- package/esm/utils/replaceText.js +1 -1
- package/esm/utils/resize-sensor.js +30 -1
- package/esm/utils/resolveCondition.js +2 -1
- package/esm/utils/resolveVariable.js +1 -1
- package/esm/utils/resolveVariableAndFilter.js +1 -1
- package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/esm/utils/scrollPosition.js +1 -1
- package/esm/utils/string2regExp.js +1 -1
- package/esm/utils/stripNumber.js +1 -1
- package/esm/utils/style-helper.js +1 -1
- package/esm/utils/style.js +2 -1
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +2 -1
- package/esm/utils/tpl-lodash.js +2 -1
- package/esm/utils/tpl.js +1 -1
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validateId.js +1 -1
- package/esm/utils/validations.js +2 -1
- package/esm/utils/visitedCache.d.ts +46 -0
- package/esm/utils/visitedCache.js +124 -0
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.js +23 -1
- package/lib/SchemaRenderer.d.ts +0 -1
- package/lib/SchemaRenderer.js +41 -18
- package/lib/Scoped.js +2 -1
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +8 -8
- package/lib/actions/Action.js +2 -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 +1 -1
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +1 -1
- package/lib/actions/CustomAction.js +2 -1
- package/lib/actions/DialogAction.js +3 -1
- package/lib/actions/DrawerAction.js +2 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/EventAction.js +2 -1
- package/lib/actions/LinkAction.js +1 -1
- package/lib/actions/LoopAction.js +2 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.js +1 -1
- package/lib/actions/PrintAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +1 -1
- package/lib/actions/WaitAction.js +1 -1
- package/lib/components/CustomStyle.js +1 -1
- package/lib/components/ErrorBoundary.js +1 -1
- package/lib/components/LazyComponent.d.ts +40 -2
- package/lib/components/LazyComponent.js +14 -7
- package/lib/components/Overlay.js +2 -1
- package/lib/components/PopOver.d.ts +1 -1
- package/lib/components/PopOver.js +2 -1
- package/lib/env.js +1 -1
- package/lib/envOverwrite.js +1 -1
- package/lib/factory.d.ts +13 -2
- package/lib/factory.js +161 -44
- package/lib/index.d.ts +4 -4
- package/lib/index.js +10 -2
- package/lib/locale.js +2 -1
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.js +41 -15
- package/lib/renderers/Item.d.ts +98 -13
- package/lib/renderers/Item.js +163 -124
- package/lib/renderers/Options.d.ts +3 -3
- package/lib/renderers/Options.js +43 -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.js +2 -1
- package/lib/store/app.js +2 -1
- package/lib/store/combo.d.ts +432 -25
- package/lib/store/combo.js +1 -1
- package/lib/store/crud.js +3 -2
- package/lib/store/form.d.ts +180 -11
- package/lib/store/form.js +2 -1
- package/lib/store/formItem.d.ts +5 -0
- package/lib/store/formItem.js +30 -8
- package/lib/store/iRenderer.js +2 -1
- package/lib/store/index.d.ts +1 -0
- package/lib/store/index.js +3 -1
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.js +2 -1
- package/lib/store/root.d.ts +2 -0
- package/lib/store/root.js +44 -19
- package/lib/store/service.js +2 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +399 -42
- package/lib/store/table.js +84 -54
- package/lib/store/table2.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types.d.ts +4 -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 +136 -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 +18 -4
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +1 -1
- package/lib/utils/errors.js +1 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.js +1 -1
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.js +2 -1
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/helper.d.ts +4 -1
- package/lib/utils/helper.js +19 -3
- package/lib/utils/highlight.js +1 -1
- package/lib/utils/icon.js +1 -1
- package/lib/utils/image.js +1 -1
- package/lib/utils/isPureVariable.js +2 -2
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/labelToString.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +1 -1
- package/lib/utils/memoryParse.d.ts +2 -1
- package/lib/utils/memoryParse.js +10 -6
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +1 -1
- package/lib/utils/object.d.ts +2 -4
- package/lib/utils/object.js +1 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +1 -1
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/printElement.js +1 -1
- package/lib/utils/renderer-event.js +1 -1
- package/lib/utils/replaceText.js +1 -1
- package/lib/utils/resize-sensor.js +30 -1
- package/lib/utils/resolveCondition.js +2 -1
- package/lib/utils/resolveVariable.js +1 -1
- package/lib/utils/resolveVariableAndFilter.js +1 -1
- package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/lib/utils/scrollPosition.js +1 -1
- package/lib/utils/string2regExp.js +1 -1
- package/lib/utils/stripNumber.js +1 -1
- package/lib/utils/style-helper.js +1 -1
- package/lib/utils/style.js +2 -1
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +2 -1
- package/lib/utils/tpl-lodash.js +2 -1
- package/lib/utils/tpl.js +1 -1
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validateId.js +1 -1
- package/lib/utils/validations.js +2 -1
- package/lib/utils/visitedCache.d.ts +46 -0
- package/lib/utils/visitedCache.js +128 -0
- package/package.json +2 -2
package/esm/Root.js
CHANGED
package/esm/RootRenderer.d.ts
CHANGED
|
@@ -30,5 +30,5 @@ export declare class RootRenderer extends React.Component<RootRendererProps> {
|
|
|
30
30
|
renderError(): React.ReactNode;
|
|
31
31
|
renderDialog(): React.ReactNode;
|
|
32
32
|
renderDrawer(): React.ReactNode;
|
|
33
|
-
render(): string | number | boolean |
|
|
33
|
+
render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
|
|
34
34
|
}
|
package/esm/RootRenderer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -8,7 +8,7 @@ import { observer } from 'mobx-react';
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import { filterTarget, ScopedContext } from './Scoped.js';
|
|
10
10
|
import { RootStore } from './store/root.js';
|
|
11
|
-
import { guid, bulkBindFunctions, isVisible } from './utils/helper.js';
|
|
11
|
+
import { guid, bulkBindFunctions, JSONTraverse, isVisible } from './utils/helper.js';
|
|
12
12
|
import { filter } from './utils/tpl.js';
|
|
13
13
|
import qs from 'qs';
|
|
14
14
|
import pick from 'lodash/pick';
|
|
@@ -16,6 +16,8 @@ import mapValues from 'lodash/mapValues';
|
|
|
16
16
|
import { saveAs } from 'file-saver';
|
|
17
17
|
import { normalizeApi } from './utils/api.js';
|
|
18
18
|
import { findDOMNode } from 'react-dom';
|
|
19
|
+
import themedLazyComponent from './components/LazyComponent.js';
|
|
20
|
+
import { hasAsyncRenderers, loadAsyncRenderersByType } from './factory.js';
|
|
19
21
|
|
|
20
22
|
var RootRenderer = /** @class */ (function (_super) {
|
|
21
23
|
__extends(RootRenderer, _super);
|
|
@@ -41,6 +43,23 @@ var RootRenderer = /** @class */ (function (_super) {
|
|
|
41
43
|
'handleDrawerClose',
|
|
42
44
|
'handlePageVisibilityChange'
|
|
43
45
|
]);
|
|
46
|
+
_this.store.init(function () {
|
|
47
|
+
if (!hasAsyncRenderers()) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
var schema = props.schema;
|
|
51
|
+
var types = ['tpl', 'dialog', 'drawer'];
|
|
52
|
+
JSONTraverse(schema, function (value, key) {
|
|
53
|
+
if (key === 'type') {
|
|
54
|
+
types.push(value);
|
|
55
|
+
// form 依赖 panel
|
|
56
|
+
if (value === 'form') {
|
|
57
|
+
types.push('panel');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return loadAsyncRenderersByType(types);
|
|
62
|
+
});
|
|
44
63
|
return _this;
|
|
45
64
|
}
|
|
46
65
|
RootRenderer.prototype.componentDidMount = function () {
|
|
@@ -339,6 +358,9 @@ var RootRenderer = /** @class */ (function (_super) {
|
|
|
339
358
|
if (store.runtimeError) {
|
|
340
359
|
return this.renderRuntimeError();
|
|
341
360
|
}
|
|
361
|
+
else if (!store.ready) {
|
|
362
|
+
return React.createElement(themedLazyComponent, { className: "RootLoader" });
|
|
363
|
+
}
|
|
342
364
|
return (React.createElement(React.Fragment, null,
|
|
343
365
|
render(pathPrefix, schema, __assign(__assign({}, rest), { topStore: this.store, data: this.store.downStream, context: store.context, onAction: this.handleAction })),
|
|
344
366
|
this.renderSpinner(),
|
package/esm/SchemaRenderer.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export declare class SchemaRenderer extends React.Component<SchemaRendererProps,
|
|
|
23
23
|
unbindEvent: (() => void) | undefined;
|
|
24
24
|
isStatic: any;
|
|
25
25
|
constructor(props: SchemaRendererProps);
|
|
26
|
-
componentDidMount(): void;
|
|
27
26
|
componentWillUnmount(): void;
|
|
28
27
|
shouldComponentUpdate(nextProps: SchemaRendererProps): boolean;
|
|
29
28
|
resolveRenderer(props: SchemaRendererProps, force?: boolean): any;
|
package/esm/SchemaRenderer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -8,8 +8,8 @@ import difference from 'lodash/difference';
|
|
|
8
8
|
import omit from 'lodash/omit';
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import { isValidElementType } from 'react-is';
|
|
11
|
-
import
|
|
12
|
-
import { resolveRenderer,
|
|
11
|
+
import themedLazyComponent from './components/LazyComponent.js';
|
|
12
|
+
import { resolveRenderer, loadRendererError, loadAsyncRenderer, filterSchema } from './factory.js';
|
|
13
13
|
import { asFormItem } from './renderers/Item.js';
|
|
14
14
|
import { ScopedContext } from './Scoped.js';
|
|
15
15
|
import { DebugWrapper } from './utils/debug.js';
|
|
@@ -22,6 +22,7 @@ import { reaction } from 'mobx';
|
|
|
22
22
|
import 'amis-formula';
|
|
23
23
|
import 'moment';
|
|
24
24
|
import 'lodash/isPlainObject';
|
|
25
|
+
import './utils/memoryParse.js';
|
|
25
26
|
import '@rc-component/mini-decimal';
|
|
26
27
|
import { resolveVariableAndFilter } from './utils/resolveVariableAndFilter.js';
|
|
27
28
|
import './utils/filter.js';
|
|
@@ -88,10 +89,6 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
88
89
|
}, function () { return _this.forceUpdate(); });
|
|
89
90
|
return _this;
|
|
90
91
|
}
|
|
91
|
-
SchemaRenderer.prototype.componentDidMount = function () {
|
|
92
|
-
// 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播
|
|
93
|
-
this.unbindEvent = bindEvent(this.cRef);
|
|
94
|
-
};
|
|
95
92
|
SchemaRenderer.prototype.componentWillUnmount = function () {
|
|
96
93
|
var _a, _b;
|
|
97
94
|
(_a = this.reaction) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
@@ -167,7 +164,15 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
167
164
|
};
|
|
168
165
|
SchemaRenderer.prototype.childRef = function (ref) {
|
|
169
166
|
var _this = this;
|
|
170
|
-
|
|
167
|
+
var _a;
|
|
168
|
+
// todo 这里有个问题,就是注意以下的这段注释
|
|
169
|
+
// > // 原来表单项的 visible: false 和 hidden: true 表单项的值和验证是有效的
|
|
170
|
+
// > 而 visibleOn 和 hiddenOn 是无效的,
|
|
171
|
+
// > 这个本来就是个bug,但是已经被广泛使用了
|
|
172
|
+
// > 我只能继续实现这个bug了
|
|
173
|
+
// 这样会让子组件去根据是 hidden 的情况去渲染个 null,这样会导致这里 ref 有值,但是 ref.getWrappedInstance() 为 null
|
|
174
|
+
// 这样会和直接渲染的组件时有些区别,至少 cRef 的指向是不一样的
|
|
175
|
+
while ((_a = ref === null || ref === void 0 ? void 0 : ref.getWrappedInstance) === null || _a === void 0 ? void 0 : _a.call(ref)) {
|
|
171
176
|
ref = ref.getWrappedInstance();
|
|
172
177
|
}
|
|
173
178
|
if (ref && !ref.props) {
|
|
@@ -175,6 +180,10 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
175
180
|
get: function () { return _this.props; }
|
|
176
181
|
});
|
|
177
182
|
}
|
|
183
|
+
if (ref) {
|
|
184
|
+
// 这里无法区分监听的是不是广播,所以又bind一下,主要是为了绑广播
|
|
185
|
+
this.unbindEvent = bindEvent(this.ref);
|
|
186
|
+
}
|
|
178
187
|
this.cRef = ref;
|
|
179
188
|
};
|
|
180
189
|
SchemaRenderer.prototype.dispatchEvent = function (e, data, renderer // for didmount
|
|
@@ -196,7 +205,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
196
205
|
var omitList = RENDERER_TRANSMISSION_OMIT_PROPS.concat();
|
|
197
206
|
if (this.renderer) {
|
|
198
207
|
var Component = this.renderer.component;
|
|
199
|
-
Component.propsList &&
|
|
208
|
+
(Component === null || Component === void 0 ? void 0 : Component.propsList) &&
|
|
200
209
|
omitList.push.apply(omitList, Component.propsList);
|
|
201
210
|
}
|
|
202
211
|
return render("".concat($path).concat(region ? "/".concat(region) : ''), node || '', __assign(__assign(__assign(__assign({}, omit(rest, omitList)), { defaultStatic: (_c = (_b = (((_a = this.renderer) === null || _a === void 0 ? void 0 : _a.type) &&
|
|
@@ -213,12 +222,12 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
213
222
|
SchemaRenderer.prototype.render = function () {
|
|
214
223
|
var e_1, _a;
|
|
215
224
|
var _this = this;
|
|
216
|
-
var _b, _c, _d, _e, _f, _g;
|
|
217
|
-
var
|
|
225
|
+
var _b, _c, _d, _e, _f, _g, _h;
|
|
226
|
+
var _j = this.props; _j.$path; var __ = _j.schema, rootStore = _j.rootStore, statusStore = _j.statusStore, render = _j.render, propKey = _j.key, rest = __rest(_j, ["$path", "schema", "rootStore", "statusStore", "render", "key"]);
|
|
218
227
|
if (__ == null) {
|
|
219
228
|
return null;
|
|
220
229
|
}
|
|
221
|
-
var
|
|
230
|
+
var _k = this.resolveRenderer(this.props), $path = _k.path, schema = _k.schema;
|
|
222
231
|
var theme = this.props.env.theme;
|
|
223
232
|
if (Array.isArray(schema)) {
|
|
224
233
|
return render($path, schema, rest);
|
|
@@ -275,7 +284,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
275
284
|
return null;
|
|
276
285
|
}
|
|
277
286
|
else if (!this.renderer) {
|
|
278
|
-
return rest.invisible ? null : (React.createElement(
|
|
287
|
+
return rest.invisible ? null : (React.createElement(themedLazyComponent, { defaultVisible: true, getComponent: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
279
288
|
var result;
|
|
280
289
|
return __generator(this, function (_a) {
|
|
281
290
|
switch (_a.label) {
|
|
@@ -289,10 +298,24 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
289
298
|
return [2 /*return*/, function () { return result; }];
|
|
290
299
|
}
|
|
291
300
|
this.reRender();
|
|
292
|
-
return [2 /*return*/, function () { return
|
|
301
|
+
return [2 /*return*/, function () { return loadRendererError(schema, $path); }];
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
}); } }));
|
|
305
|
+
}
|
|
306
|
+
else if (this.renderer.getComponent && !this.renderer.component) {
|
|
307
|
+
// 处理异步渲染器
|
|
308
|
+
return rest.invisible ? null : (React.createElement(themedLazyComponent, { defaultVisible: true, getComponent: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
309
|
+
return __generator(this, function (_a) {
|
|
310
|
+
switch (_a.label) {
|
|
311
|
+
case 0: return [4 /*yield*/, loadAsyncRenderer(this.renderer)];
|
|
312
|
+
case 1:
|
|
313
|
+
_a.sent();
|
|
314
|
+
this.reRender();
|
|
315
|
+
return [2 /*return*/, function () { return null; }];
|
|
293
316
|
}
|
|
294
317
|
});
|
|
295
|
-
}); }
|
|
318
|
+
}); } }));
|
|
296
319
|
}
|
|
297
320
|
var renderer = this.renderer;
|
|
298
321
|
schema = filterSchema(schema, renderer, rest);
|
|
@@ -316,9 +339,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
316
339
|
}
|
|
317
340
|
var supportRef = ((_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent) ||
|
|
318
341
|
Component.$$typeof === Symbol.for('react.forward_ref');
|
|
319
|
-
var props = __assign(__assign(__assign(__assign(__assign({}, theme.getRendererConfig(renderer.name)), restSchema), chainEvents(rest, restSchema)), exprProps), {
|
|
342
|
+
var props = __assign(__assign(__assign(__assign(__assign(__assign({}, (_f = renderer.defaultProps) === null || _f === void 0 ? void 0 : _f.call(renderer, schema.type, schema)), theme.getRendererConfig(renderer.name)), restSchema), chainEvents(rest, restSchema)), exprProps), {
|
|
320
343
|
// value: defaultValue, // 备注: 此处并没有将value传递给渲染器
|
|
321
|
-
defaultData: (
|
|
344
|
+
defaultData: (_g = restSchema.defaultData) !== null && _g !== void 0 ? _g : defaultData, defaultValue: (_h = restSchema.defaultValue) !== null && _h !== void 0 ? _h : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: schema, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
|
|
322
345
|
// style 支持公式
|
|
323
346
|
if (schema.style) {
|
|
324
347
|
props.style = buildStyle(schema.style, detectData);
|
|
@@ -341,8 +364,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
341
364
|
// 自动解析变量模式,主要是方便直接引入第三方组件库,无需为了支持变量封装一层
|
|
342
365
|
if (renderer.autoVar) {
|
|
343
366
|
try {
|
|
344
|
-
for (var
|
|
345
|
-
var key =
|
|
367
|
+
for (var _l = __values(Object.keys(schema)), _m = _l.next(); !_m.done; _m = _l.next()) {
|
|
368
|
+
var key = _m.value;
|
|
346
369
|
if (typeof props[key] === 'string' && isExpression(props[key])) {
|
|
347
370
|
props[key] = resolveVariableAndFilter(props[key], props.data, '| raw');
|
|
348
371
|
}
|
|
@@ -351,7 +374,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
|
|
|
351
374
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
352
375
|
finally {
|
|
353
376
|
try {
|
|
354
|
-
if (
|
|
377
|
+
if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
|
|
355
378
|
}
|
|
356
379
|
finally { if (e_1) throw e_1.error; }
|
|
357
380
|
}
|
package/esm/Scoped.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -15,6 +15,7 @@ import { memoParse } from './utils/tokenize.js';
|
|
|
15
15
|
import { isPureVariable } from './utils/isPureVariable.js';
|
|
16
16
|
import '@rc-component/mini-decimal';
|
|
17
17
|
import { getVariable } from './utils/getVariable.js';
|
|
18
|
+
import './utils/memoryParse.js';
|
|
18
19
|
import { dataMapping } from './utils/dataMapping.js';
|
|
19
20
|
import './utils/filter.js';
|
|
20
21
|
import { findTree, eachTree, qsparse, qsstringify, parseQuery, autobind } from './utils/helper.js';
|
package/esm/StatusScoped.js
CHANGED
package/esm/WithRootStore.js
CHANGED
package/esm/WithStore.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -15,6 +15,7 @@ import 'amis-formula';
|
|
|
15
15
|
import 'moment';
|
|
16
16
|
import { createObject, extendObject } from './utils/object.js';
|
|
17
17
|
import { tokenize } from './utils/tokenize.js';
|
|
18
|
+
import './utils/memoryParse.js';
|
|
18
19
|
import '@rc-component/mini-decimal';
|
|
19
20
|
import { dataMapping } from './utils/dataMapping.js';
|
|
20
21
|
import './utils/filter.js';
|
|
@@ -130,7 +131,7 @@ function HocStoreFactory(renderer) {
|
|
|
130
131
|
(props.data &&
|
|
131
132
|
prevProps.data &&
|
|
132
133
|
props.data.__super !== prevProps.data.__super))) {
|
|
133
|
-
store.initData(extendObject(props.data, __assign(__assign(__assign({}, (store.hasRemoteData ? store.data : null)), this.formatData(props.defaultData)), this.formatData(props.data))), ((_c = props.updatePristineAfterStoreDataReInit) !== null && _c !== void 0 ? _c : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
134
|
+
store.initData(extendObject(props.data, __assign(__assign(__assign(__assign({}, this.formatData(dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (store.hasRemoteData ? store.data : null)), this.formatData(props.defaultData)), this.formatData(props.data))), ((_c = props.updatePristineAfterStoreDataReInit) !== null && _c !== void 0 ? _c : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
137
|
else if (shouldSync === true ||
|
|
@@ -141,19 +142,18 @@ function HocStoreFactory(renderer) {
|
|
|
141
142
|
(props.syncSuperStore !== false &&
|
|
142
143
|
isSuperDataModified(props.data, prevProps.data, store)))) {
|
|
143
144
|
if (props.store && props.scope === props.data) {
|
|
144
|
-
store.initData(createObject(props.store.data, props.syncSuperStore === false
|
|
145
|
-
? __assign({}, store.data) : syncDataFromSuper(store.data, props.store.data, prevProps.scope, store, props.syncSuperStore === true)), ((_d = props.updatePristineAfterStoreDataReInit) !== null && _d !== void 0 ? _d : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
145
|
+
store.initData(createObject(props.store.data, __assign(__assign({}, this.formatData(dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), (props.syncSuperStore === false
|
|
146
|
+
? __assign({}, store.data) : syncDataFromSuper(store.data, props.store.data, prevProps.scope, store, props.syncSuperStore === true)))), ((_d = props.updatePristineAfterStoreDataReInit) !== null && _d !== void 0 ? _d : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
146
147
|
}
|
|
147
148
|
else if (props.data && props.data.__super) {
|
|
148
|
-
store.initData(extendObject(props.data,
|
|
149
|
-
// 有远程数据
|
|
149
|
+
store.initData(extendObject(props.data, __assign(__assign({}, this.formatData(dataMapping(this.props.defaultData, this.props.data, ignoreSchemaProps))), // 有远程数据
|
|
150
150
|
// 或者顶级 store
|
|
151
|
-
store.hasRemoteData || !store.path.includes('/')
|
|
151
|
+
(store.hasRemoteData || !store.path.includes('/')
|
|
152
152
|
? __assign(__assign({}, store.data), props.data) : // combo 不需要同步,如果要同步,在 Combo.tsx 里面已经实现了相关逻辑
|
|
153
153
|
// 目前主要的问题是,如果 combo 中表单项名字和 combo 本身的名字一样,会导致里面的值会被覆盖成数组
|
|
154
154
|
((_e = props.store) === null || _e === void 0 ? void 0 : _e.storeType) === 'ComboStore'
|
|
155
155
|
? undefined
|
|
156
|
-
: syncDataFromSuper(__assign(__assign({}, store.pristineDiff), props.data), props.data.__super, prevProps.data.__super, store, false)), ((_f = props.updatePristineAfterStoreDataReInit) !== null && _f !== void 0 ? _f : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
156
|
+
: syncDataFromSuper(__assign(__assign({}, store.pristineDiff), props.data), props.data.__super, prevProps.data.__super, store, false)))), ((_f = props.updatePristineAfterStoreDataReInit) !== null && _f !== void 0 ? _f : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
|
157
157
|
}
|
|
158
158
|
else {
|
|
159
159
|
store.initData(createObject(props.scope, props.data), ((_g = props.updatePristineAfterStoreDataReInit) !== null && _g !== void 0 ? _g : props.dataUpdatedAt !== prevProps.dataUpdatedAt) === false);
|
package/esm/actions/Action.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ import { evalExpressionWithConditionBuilderAsync } from '../utils/tpl.js';
|
|
|
10
10
|
import 'amis-formula';
|
|
11
11
|
import 'moment';
|
|
12
12
|
import { createObject } from '../utils/object.js';
|
|
13
|
+
import '../utils/memoryParse.js';
|
|
13
14
|
import '@rc-component/mini-decimal';
|
|
14
15
|
import { dataMapping } from '../utils/dataMapping.js';
|
|
15
16
|
import '../utils/filter.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -11,6 +11,7 @@ import 'react';
|
|
|
11
11
|
import 'lodash/chunk';
|
|
12
12
|
import 'lodash/isPlainObject';
|
|
13
13
|
import 'amis-formula';
|
|
14
|
+
import '../utils/memoryParse.js';
|
|
14
15
|
import '../utils/DataSchema.js';
|
|
15
16
|
import '../utils/DataScope.js';
|
|
16
17
|
import 'moment';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ import '../utils/ColorScale.js';
|
|
|
10
10
|
import 'react';
|
|
11
11
|
import 'lodash/chunk';
|
|
12
12
|
import { extendObject } from '../utils/object.js';
|
|
13
|
+
import '../utils/memoryParse.js';
|
|
13
14
|
import 'amis-formula';
|
|
14
15
|
import 'lodash/isPlainObject';
|
|
15
16
|
import '../utils/DataSchema.js';
|
|
@@ -113,6 +114,7 @@ var CloseDialogAction = /** @class */ (function () {
|
|
|
113
114
|
var _a, _b;
|
|
114
115
|
return __awaiter(this, void 0, void 0, function () {
|
|
115
116
|
return __generator(this, function (_c) {
|
|
117
|
+
// todo 支持 waitForAction,等待弹窗关闭后再执行后续动作
|
|
116
118
|
if (action.componentId) {
|
|
117
119
|
// 关闭指定弹窗
|
|
118
120
|
event.context.scoped.closeById(action.componentId);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ import '../utils/ColorScale.js';
|
|
|
10
10
|
import 'react';
|
|
11
11
|
import 'lodash/chunk';
|
|
12
12
|
import { extendObject } from '../utils/object.js';
|
|
13
|
+
import '../utils/memoryParse.js';
|
|
13
14
|
import 'amis-formula';
|
|
14
15
|
import 'lodash/isPlainObject';
|
|
15
16
|
import '../utils/DataSchema.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ import '../utils/ColorScale.js';
|
|
|
10
10
|
import 'react';
|
|
11
11
|
import 'lodash/chunk';
|
|
12
12
|
import { setVariable, cloneObject } from '../utils/object.js';
|
|
13
|
+
import '../utils/memoryParse.js';
|
|
13
14
|
import 'amis-formula';
|
|
14
15
|
import 'lodash/isPlainObject';
|
|
15
16
|
import '../utils/DataSchema.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
2
|
+
* amis-core v6.9.0-rc.0
|
|
3
3
|
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -9,6 +9,7 @@ import { registerAction, LoopStatus, runActions } from './Action.js';
|
|
|
9
9
|
import 'amis-formula';
|
|
10
10
|
import 'moment';
|
|
11
11
|
import { createObject } from '../utils/object.js';
|
|
12
|
+
import '../utils/memoryParse.js';
|
|
12
13
|
import '@rc-component/mini-decimal';
|
|
13
14
|
import { resolveVariable } from '../utils/resolveVariable.js';
|
|
14
15
|
import 'lodash/isPlainObject';
|
|
@@ -3,20 +3,24 @@
|
|
|
3
3
|
* @description
|
|
4
4
|
* @author fex
|
|
5
5
|
*/
|
|
6
|
+
/// <reference types="hoist-non-react-statics" />
|
|
6
7
|
import React from 'react';
|
|
7
|
-
|
|
8
|
+
import { ThemeProps } from '../theme';
|
|
9
|
+
export interface LazyComponentProps extends ThemeProps {
|
|
8
10
|
component?: React.ElementType;
|
|
9
11
|
getComponent?: () => Promise<React.ElementType>;
|
|
10
12
|
placeholder?: React.ReactNode;
|
|
11
13
|
unMountOnHidden?: boolean;
|
|
12
14
|
childProps?: object;
|
|
15
|
+
defaultVisible?: boolean;
|
|
16
|
+
className?: string;
|
|
13
17
|
[propName: string]: any;
|
|
14
18
|
}
|
|
15
19
|
export interface LazyComponentState {
|
|
16
20
|
visible: boolean;
|
|
17
21
|
component?: React.ElementType;
|
|
18
22
|
}
|
|
19
|
-
export
|
|
23
|
+
export declare class LazyComponent extends React.Component<LazyComponentProps, LazyComponentState> {
|
|
20
24
|
static defaultProps: {
|
|
21
25
|
placeholder: React.JSX.Element;
|
|
22
26
|
unMountOnHidden: boolean;
|
|
@@ -29,3 +33,37 @@ export default class LazyComponent extends React.Component<LazyComponentProps, L
|
|
|
29
33
|
handleVisibleChange(visible: boolean, entry?: any): void;
|
|
30
34
|
render(): React.ReactNode;
|
|
31
35
|
}
|
|
36
|
+
declare const themedLazyComponent: {
|
|
37
|
+
new (props: Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps): {
|
|
38
|
+
ref: any;
|
|
39
|
+
childRef(ref: any): void;
|
|
40
|
+
getWrappedInstance(): any;
|
|
41
|
+
render(): React.JSX.Element;
|
|
42
|
+
context: unknown;
|
|
43
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
44
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
45
|
+
readonly props: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>;
|
|
46
|
+
state: Readonly<{}>;
|
|
47
|
+
refs: {
|
|
48
|
+
[key: string]: React.ReactInstance;
|
|
49
|
+
};
|
|
50
|
+
componentDidMount?(): void;
|
|
51
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
|
52
|
+
componentWillUnmount?(): void;
|
|
53
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
54
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, prevState: Readonly<{}>): any;
|
|
55
|
+
componentDidUpdate?(prevProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
|
56
|
+
componentWillMount?(): void;
|
|
57
|
+
UNSAFE_componentWillMount?(): void;
|
|
58
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextContext: any): void;
|
|
59
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextContext: any): void;
|
|
60
|
+
componentWillUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
|
61
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
|
62
|
+
};
|
|
63
|
+
displayName: string;
|
|
64
|
+
contextType: React.Context<string>;
|
|
65
|
+
ComposedComponent: React.ComponentType<typeof LazyComponent>;
|
|
66
|
+
} & import("hoist-non-react-statics").NonReactStatics<typeof LazyComponent, {}> & {
|
|
67
|
+
ComposedComponent: typeof LazyComponent;
|
|
68
|
+
};
|
|
69
|
+
export default themedLazyComponent;
|