amis-core 3.5.2 → 3.6.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 +2 -2
- package/esm/SchemaRenderer.js +1 -1
- package/esm/Scoped.d.ts +2 -0
- package/esm/Scoped.js +49 -7
- package/esm/StatusScoped.js +1 -1
- package/esm/WithRootStore.js +1 -1
- package/esm/WithStore.js +27 -12
- package/esm/actions/Action.js +30 -22
- package/esm/actions/AjaxAction.js +2 -2
- package/esm/actions/BreakAction.js +1 -1
- package/esm/actions/BroadcastAction.js +1 -1
- package/esm/actions/CmptAction.js +31 -32
- package/esm/actions/ContinueAction.js +1 -1
- package/esm/actions/CopyAction.js +3 -3
- package/esm/actions/CustomAction.js +1 -1
- package/esm/actions/DialogAction.js +1 -1
- package/esm/actions/DrawerAction.js +1 -1
- package/esm/actions/EmailAction.js +1 -1
- package/esm/actions/LinkAction.js +5 -5
- package/esm/actions/LoopAction.js +1 -1
- package/esm/actions/PageAction.js +1 -1
- package/esm/actions/ParallelAction.js +1 -1
- package/esm/actions/StatusAction.js +1 -1
- package/esm/actions/SwitchAction.js +1 -1
- package/esm/actions/ToastAction.js +3 -3
- package/esm/components/CustomStyle.js +1 -1
- package/esm/components/ErrorBoundary.d.ts +20 -0
- package/esm/components/ErrorBoundary.js +41 -0
- package/esm/components/LazyComponent.js +1 -1
- package/esm/components/Overlay.js +1 -1
- package/esm/components/PopOver.d.ts +4 -0
- package/esm/components/PopOver.js +66 -3
- package/esm/env.d.ts +9 -0
- package/esm/env.js +1 -1
- package/esm/envOverwrite.d.ts +1 -1
- package/esm/envOverwrite.js +15 -35
- package/esm/factory.js +1 -1
- package/esm/index.d.ts +2 -1
- package/esm/index.js +5 -4
- package/esm/locale.js +1 -1
- package/esm/polyfills.js +1 -1
- package/esm/renderers/Form.d.ts +10 -4
- package/esm/renderers/Form.js +64 -32
- package/esm/renderers/Item.d.ts +54 -0
- package/esm/renderers/Item.js +1 -1
- package/esm/renderers/Options.d.ts +5 -1
- package/esm/renderers/Options.js +11 -9
- 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 +10 -17
- package/esm/store/app.js +1 -1
- package/esm/store/combo.d.ts +1154 -48
- package/esm/store/combo.js +10 -3
- package/esm/store/crud.d.ts +9 -1
- package/esm/store/crud.js +50 -15
- package/esm/store/form.d.ts +480 -20
- package/esm/store/form.js +1 -1
- package/esm/store/formItem.d.ts +23 -1
- package/esm/store/formItem.js +103 -15
- package/esm/store/iRenderer.js +1 -1
- package/esm/store/index.js +1 -1
- package/esm/store/list.js +1 -1
- package/esm/store/manager.js +1 -1
- package/esm/store/modal.js +1 -1
- package/esm/store/node.js +1 -1
- package/esm/store/pagination.js +1 -1
- package/esm/store/root.js +1 -1
- package/esm/store/service.js +1 -1
- package/esm/store/status.js +1 -1
- package/esm/store/table.d.ts +1078 -42
- package/esm/store/table.js +64 -6
- package/esm/store/table2.js +1 -4
- package/esm/theme.js +1 -1
- package/esm/types.d.ts +8 -2
- package/esm/utils/Animation.js +1 -1
- package/esm/utils/ColorScale.js +1 -1
- package/esm/utils/DataSchema.js +1 -1
- package/esm/utils/DataScope.js +1 -1
- package/esm/utils/RootClose.js +1 -1
- package/esm/utils/SimpleMap.js +1 -1
- package/esm/utils/api.js +1 -1
- package/esm/utils/arraySlice.js +1 -1
- package/esm/utils/attachmentAdpator.js +3 -1
- package/esm/utils/autobind.js +1 -1
- package/esm/utils/columnsSplit.js +1 -1
- package/esm/utils/dataMapping.js +1 -1
- package/esm/utils/date.js +1 -1
- package/esm/utils/debug.js +1 -1
- package/esm/utils/decodeEntity.js +1 -1
- package/esm/utils/dom.js +1 -1
- package/esm/utils/errors.js +1 -1
- package/esm/utils/escapeHtml.js +1 -1
- package/esm/utils/filter-schema.d.ts +2 -1
- package/esm/utils/filter-schema.js +14 -5
- package/esm/utils/filter.js +1 -1
- package/esm/utils/formatDuration.js +1 -1
- package/esm/utils/formula.js +1 -1
- package/esm/utils/getVariable.js +1 -1
- package/esm/utils/grammar.js +1 -1
- package/esm/utils/handleAction.js +1 -1
- package/esm/utils/helper.d.ts +2 -2
- package/esm/utils/helper.js +37 -29
- package/esm/utils/highlight.js +1 -1
- package/esm/utils/icon.js +1 -1
- package/esm/utils/image.js +1 -1
- package/esm/utils/isPureVariable.js +1 -1
- package/esm/utils/json-schema-2-amis-schema.js +1 -1
- package/esm/utils/keyToPath.js +1 -1
- package/esm/utils/makeSorter.js +1 -1
- package/esm/utils/math.js +8 -5
- package/esm/utils/memoryParse.js +1 -1
- package/esm/utils/normalizeLink.js +1 -1
- package/esm/utils/normalizeOptions.js +1 -1
- package/esm/utils/object.js +15 -1
- package/esm/utils/offset.js +1 -1
- package/esm/utils/offsetParent.js +1 -1
- package/esm/utils/optionValueCompare.js +1 -1
- package/esm/utils/position.js +1 -1
- package/esm/utils/prettyBytes.js +1 -1
- package/esm/utils/renderer-event.d.ts +7 -0
- package/esm/utils/renderer-event.js +30 -18
- package/esm/utils/replaceText.js +1 -1
- package/esm/utils/resize-sensor.js +1 -1
- package/esm/utils/resolveCondition.js +1 -1
- package/esm/utils/resolveVariable.js +1 -1
- package/esm/utils/resolveVariableAndFilter.js +1 -1
- package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/esm/utils/scrollPosition.js +1 -1
- package/esm/utils/string2regExp.js +1 -1
- package/esm/utils/stripNumber.js +1 -1
- package/esm/utils/style-helper.js +12 -15
- package/esm/utils/style.js +3 -2
- package/esm/utils/toNumber.js +1 -1
- package/esm/utils/tokenize.js +1 -1
- package/esm/utils/tpl-builtin.js +1 -1
- package/esm/utils/tpl-lodash.js +1 -1
- package/esm/utils/tpl.js +1 -1
- package/esm/utils/uncontrollable.js +1 -1
- package/esm/utils/validations.js +1 -1
- package/lib/Root.js +1 -1
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +2 -2
- package/lib/SchemaRenderer.js +1 -1
- package/lib/Scoped.d.ts +2 -0
- package/lib/Scoped.js +48 -6
- package/lib/StatusScoped.js +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithStore.js +26 -11
- package/lib/actions/Action.js +29 -21
- package/lib/actions/AjaxAction.js +2 -2
- package/lib/actions/BreakAction.js +1 -1
- package/lib/actions/BroadcastAction.js +1 -1
- package/lib/actions/CmptAction.js +31 -32
- package/lib/actions/ContinueAction.js +1 -1
- package/lib/actions/CopyAction.js +3 -3
- package/lib/actions/CustomAction.js +1 -1
- package/lib/actions/DialogAction.js +1 -1
- package/lib/actions/DrawerAction.js +1 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/LinkAction.js +5 -5
- package/lib/actions/LoopAction.js +1 -1
- package/lib/actions/PageAction.js +1 -1
- package/lib/actions/ParallelAction.js +1 -1
- package/lib/actions/StatusAction.js +1 -1
- package/lib/actions/SwitchAction.js +1 -1
- package/lib/actions/ToastAction.js +3 -3
- package/lib/components/CustomStyle.js +1 -1
- package/lib/components/ErrorBoundary.d.ts +20 -0
- package/lib/components/ErrorBoundary.js +52 -0
- package/lib/components/LazyComponent.js +1 -1
- package/lib/components/Overlay.js +1 -1
- package/lib/components/PopOver.d.ts +4 -0
- package/lib/components/PopOver.js +64 -1
- package/lib/env.d.ts +9 -0
- package/lib/env.js +1 -1
- package/lib/envOverwrite.d.ts +1 -1
- package/lib/envOverwrite.js +18 -34
- package/lib/factory.js +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +6 -3
- package/lib/locale.js +1 -1
- package/lib/polyfills.js +1 -1
- package/lib/renderers/Form.d.ts +10 -4
- package/lib/renderers/Form.js +64 -32
- package/lib/renderers/Item.d.ts +54 -0
- package/lib/renderers/Item.js +1 -1
- package/lib/renderers/Options.d.ts +5 -1
- package/lib/renderers/Options.js +11 -9
- 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 +10 -17
- package/lib/store/app.js +1 -1
- package/lib/store/combo.d.ts +1154 -49
- package/lib/store/combo.js +10 -3
- package/lib/store/crud.d.ts +9 -1
- package/lib/store/crud.js +50 -15
- package/lib/store/form.d.ts +480 -21
- package/lib/store/form.js +1 -1
- package/lib/store/formItem.d.ts +23 -1
- package/lib/store/formItem.js +104 -15
- package/lib/store/iRenderer.js +1 -1
- package/lib/store/index.js +1 -1
- package/lib/store/list.js +1 -1
- package/lib/store/manager.js +1 -1
- package/lib/store/modal.js +1 -1
- package/lib/store/node.js +1 -1
- package/lib/store/pagination.js +1 -1
- package/lib/store/root.js +1 -1
- package/lib/store/service.js +1 -1
- package/lib/store/status.js +1 -1
- package/lib/store/table.d.ts +1078 -43
- package/lib/store/table.js +63 -5
- package/lib/store/table2.js +1 -4
- package/lib/theme.js +1 -1
- package/lib/types.d.ts +8 -2
- package/lib/utils/Animation.js +1 -1
- package/lib/utils/ColorScale.js +1 -1
- package/lib/utils/DataSchema.js +1 -1
- package/lib/utils/DataScope.js +1 -1
- package/lib/utils/RootClose.js +1 -1
- package/lib/utils/SimpleMap.js +1 -1
- package/lib/utils/api.js +1 -1
- package/lib/utils/arraySlice.js +1 -1
- package/lib/utils/attachmentAdpator.js +3 -1
- package/lib/utils/autobind.js +1 -1
- package/lib/utils/columnsSplit.js +1 -1
- package/lib/utils/dataMapping.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/debug.js +1 -1
- package/lib/utils/decodeEntity.js +1 -1
- package/lib/utils/dom.js +1 -1
- package/lib/utils/errors.js +1 -1
- package/lib/utils/escapeHtml.js +1 -1
- package/lib/utils/filter-schema.d.ts +2 -1
- package/lib/utils/filter-schema.js +14 -4
- package/lib/utils/filter.js +1 -1
- package/lib/utils/formatDuration.js +1 -1
- package/lib/utils/formula.js +1 -1
- package/lib/utils/getVariable.js +1 -1
- package/lib/utils/grammar.js +1 -1
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/helper.d.ts +2 -2
- package/lib/utils/helper.js +36 -28
- package/lib/utils/highlight.js +1 -1
- package/lib/utils/icon.js +1 -1
- package/lib/utils/image.js +1 -1
- package/lib/utils/isPureVariable.js +1 -1
- package/lib/utils/json-schema-2-amis-schema.js +1 -1
- package/lib/utils/keyToPath.js +1 -1
- package/lib/utils/makeSorter.js +1 -1
- package/lib/utils/math.js +8 -5
- package/lib/utils/memoryParse.js +1 -1
- package/lib/utils/normalizeLink.js +1 -1
- package/lib/utils/normalizeOptions.js +1 -1
- package/lib/utils/object.js +15 -1
- package/lib/utils/offset.js +1 -1
- package/lib/utils/offsetParent.js +1 -1
- package/lib/utils/optionValueCompare.js +1 -1
- package/lib/utils/position.js +1 -1
- package/lib/utils/prettyBytes.js +1 -1
- package/lib/utils/renderer-event.d.ts +7 -0
- package/lib/utils/renderer-event.js +30 -18
- package/lib/utils/replaceText.js +1 -1
- package/lib/utils/resize-sensor.js +1 -1
- package/lib/utils/resolveCondition.js +1 -1
- package/lib/utils/resolveVariable.js +1 -1
- package/lib/utils/resolveVariableAndFilter.js +1 -1
- package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
- package/lib/utils/scrollPosition.js +1 -1
- package/lib/utils/string2regExp.js +1 -1
- package/lib/utils/stripNumber.js +1 -1
- package/lib/utils/style-helper.js +12 -15
- package/lib/utils/style.js +3 -2
- package/lib/utils/toNumber.js +1 -1
- package/lib/utils/tokenize.js +1 -1
- package/lib/utils/tpl-builtin.js +1 -1
- package/lib/utils/tpl-lodash.js +1 -1
- package/lib/utils/tpl.js +1 -1
- package/lib/utils/uncontrollable.js +1 -1
- package/lib/utils/validations.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* amis-core v3.6.0
|
|
3
|
+
* Copyright 2018-2023 fex
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
|
+
|
|
10
|
+
var tslib = require('tslib');
|
|
11
|
+
var React = require('react');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
16
|
+
|
|
17
|
+
var __react_jsx__ = require('react');
|
|
18
|
+
var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
19
|
+
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
20
|
+
var ErrorBoundary = /** @class */ (function (_super) {
|
|
21
|
+
tslib.__extends(ErrorBoundary, _super);
|
|
22
|
+
function ErrorBoundary(props) {
|
|
23
|
+
var _this = _super.call(this, props) || this;
|
|
24
|
+
_this.state = { hasError: false };
|
|
25
|
+
return _this;
|
|
26
|
+
}
|
|
27
|
+
ErrorBoundary.prototype.componentDidCatch = function (error, errorInfo) {
|
|
28
|
+
var customErrorMsg = this.props.customErrorMsg;
|
|
29
|
+
if (customErrorMsg) {
|
|
30
|
+
console.warn(customErrorMsg);
|
|
31
|
+
}
|
|
32
|
+
console.warn('错误对象:', error);
|
|
33
|
+
console.warn('错误信息:', errorInfo);
|
|
34
|
+
this.setState({
|
|
35
|
+
hasError: true
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
ErrorBoundary.prototype.render = function () {
|
|
39
|
+
var fallback = this.props.fallback;
|
|
40
|
+
if (this.state.hasError) {
|
|
41
|
+
if (fallback) {
|
|
42
|
+
return fallback();
|
|
43
|
+
}
|
|
44
|
+
// 默认渲染错误信息
|
|
45
|
+
return (_J$X_("div", { className: "renderer-error-boundary" }, "\u6E32\u67D3\u53D1\u751F\u9519\u8BEF\uFF0C\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F\u8BF7\u67E5\u770B\u63A7\u5236\u53F0\u8F93\u51FA\u3002"));
|
|
46
|
+
}
|
|
47
|
+
return this.props.children;
|
|
48
|
+
};
|
|
49
|
+
return ErrorBoundary;
|
|
50
|
+
}(React__default["default"].Component));
|
|
51
|
+
|
|
52
|
+
exports["default"] = ErrorBoundary;
|
|
@@ -46,9 +46,13 @@ export declare class PopOver extends React.PureComponent<PopOverProps, PopOverSt
|
|
|
46
46
|
};
|
|
47
47
|
parent: HTMLElement;
|
|
48
48
|
wrapperRef: React.RefObject<HTMLDivElement>;
|
|
49
|
+
isRootClosed: boolean;
|
|
49
50
|
componentDidMount(): void;
|
|
50
51
|
componentDidUpdate(): void;
|
|
51
52
|
componentWillUnmount(): void;
|
|
53
|
+
handleRootMouseDownCapture(e: MouseEvent): void;
|
|
54
|
+
handleRootMouseUpCapture(e: MouseEvent): void;
|
|
55
|
+
handleRootMouseUp(e: MouseEvent): void;
|
|
52
56
|
mayUpdateOffset(): void;
|
|
53
57
|
render(): React.JSX.Element;
|
|
54
58
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.6.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -66,6 +66,7 @@ var PopOver = /** @class */ (function (_super) {
|
|
|
66
66
|
yOffset: 0
|
|
67
67
|
};
|
|
68
68
|
_this.wrapperRef = React__default["default"].createRef();
|
|
69
|
+
_this.isRootClosed = false;
|
|
69
70
|
return _this;
|
|
70
71
|
}
|
|
71
72
|
PopOver.prototype.componentDidMount = function () {
|
|
@@ -80,6 +81,14 @@ var PopOver = /** @class */ (function (_super) {
|
|
|
80
81
|
capture: false
|
|
81
82
|
});
|
|
82
83
|
}
|
|
84
|
+
// 从弹窗中处理复制过来的,如果要修改,请同步修改
|
|
85
|
+
// 因为 overlay 功能其实是用 postion: fixed 来实现的
|
|
86
|
+
// 目的是加一个蒙层监听蒙层点击然后关闭弹窗。意图就是 closeOnOutside
|
|
87
|
+
// 但是如果上层有个 translateZ 之类的样式就会影响 fixed 的定位,导致功能失效
|
|
88
|
+
// 所以这里兜底加了个 closeOnOutside 的功能
|
|
89
|
+
document.body.addEventListener('mousedown', this.handleRootMouseDownCapture, true);
|
|
90
|
+
document.body.addEventListener('mouseup', this.handleRootMouseUpCapture, true);
|
|
91
|
+
document.body.addEventListener('mouseup', this.handleRootMouseUp);
|
|
83
92
|
};
|
|
84
93
|
PopOver.prototype.componentDidUpdate = function () {
|
|
85
94
|
this.mayUpdateOffset();
|
|
@@ -89,6 +98,42 @@ var PopOver = /** @class */ (function (_super) {
|
|
|
89
98
|
if (this.wrapperRef && this.wrapperRef.current) {
|
|
90
99
|
this.wrapperRef.current.removeEventListener('touchmove', helper.preventDefault);
|
|
91
100
|
}
|
|
101
|
+
document.body.removeEventListener('mouseup', this.handleRootMouseUp);
|
|
102
|
+
document.body.removeEventListener('mousedown', this.handleRootMouseDownCapture, true);
|
|
103
|
+
document.body.removeEventListener('mouseup', this.handleRootMouseUpCapture, true);
|
|
104
|
+
};
|
|
105
|
+
PopOver.prototype.handleRootMouseDownCapture = function (e) {
|
|
106
|
+
var target = e.target;
|
|
107
|
+
var _a = this.props, closeOnOutside = _a.overlay, ns = _a.classPrefix;
|
|
108
|
+
var isLeftButton = (e.button === 1 && window.event !== null) || e.button === 0;
|
|
109
|
+
this.isRootClosed = !!(isLeftButton &&
|
|
110
|
+
closeOnOutside &&
|
|
111
|
+
target &&
|
|
112
|
+
this.wrapperRef.current &&
|
|
113
|
+
((!this.wrapperRef.current.contains(target) &&
|
|
114
|
+
!target.closest('[role=dialog]')) ||
|
|
115
|
+
(target.matches(".".concat(ns, "Modal")) && target === this.wrapperRef.current))); // 干脆过滤掉来自弹框里面的点击
|
|
116
|
+
};
|
|
117
|
+
PopOver.prototype.handleRootMouseUpCapture = function (e) {
|
|
118
|
+
// mousedown 的时候不在弹窗里面,则不需要判断了
|
|
119
|
+
if (!this.isRootClosed) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// 再判断 mouseup 的时候是不是在弹窗里面
|
|
123
|
+
this.handleRootMouseDownCapture(e);
|
|
124
|
+
};
|
|
125
|
+
PopOver.prototype.handleRootMouseUp = function (e) {
|
|
126
|
+
var onHide = this.props.onHide;
|
|
127
|
+
if (this.isRootClosed && !e.defaultPrevented) {
|
|
128
|
+
// 因为原来 overlay 是不会让别的部分还有点击事件的,所以这里要阻止默认事件
|
|
129
|
+
// 参考:https://stackoverflow.com/questions/8643739/cancel-click-event-in-the-mouseup-event-handler
|
|
130
|
+
var captureClick_1 = function (e) {
|
|
131
|
+
e.stopPropagation();
|
|
132
|
+
window.removeEventListener('click', captureClick_1, true);
|
|
133
|
+
};
|
|
134
|
+
window.addEventListener('click', captureClick_1, true);
|
|
135
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
136
|
+
}
|
|
92
137
|
};
|
|
93
138
|
PopOver.prototype.mayUpdateOffset = function () {
|
|
94
139
|
var offset;
|
|
@@ -127,6 +172,24 @@ var PopOver = /** @class */ (function (_super) {
|
|
|
127
172
|
overlay: false,
|
|
128
173
|
placement: 'auto'
|
|
129
174
|
};
|
|
175
|
+
tslib.__decorate([
|
|
176
|
+
helper.autobind,
|
|
177
|
+
tslib.__metadata("design:type", Function),
|
|
178
|
+
tslib.__metadata("design:paramtypes", [MouseEvent]),
|
|
179
|
+
tslib.__metadata("design:returntype", void 0)
|
|
180
|
+
], PopOver.prototype, "handleRootMouseDownCapture", null);
|
|
181
|
+
tslib.__decorate([
|
|
182
|
+
helper.autobind,
|
|
183
|
+
tslib.__metadata("design:type", Function),
|
|
184
|
+
tslib.__metadata("design:paramtypes", [MouseEvent]),
|
|
185
|
+
tslib.__metadata("design:returntype", void 0)
|
|
186
|
+
], PopOver.prototype, "handleRootMouseUpCapture", null);
|
|
187
|
+
tslib.__decorate([
|
|
188
|
+
helper.autobind,
|
|
189
|
+
tslib.__metadata("design:type", Function),
|
|
190
|
+
tslib.__metadata("design:paramtypes", [MouseEvent]),
|
|
191
|
+
tslib.__metadata("design:returntype", void 0)
|
|
192
|
+
], PopOver.prototype, "handleRootMouseUp", null);
|
|
130
193
|
return PopOver;
|
|
131
194
|
}(React__default["default"].PureComponent));
|
|
132
195
|
var PopOver$1 = theme.themeable(PopOver);
|
package/lib/env.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface WsObject {
|
|
|
16
16
|
body?: any;
|
|
17
17
|
}
|
|
18
18
|
export interface RendererEnv {
|
|
19
|
+
forceSilenceInsideError?: boolean;
|
|
19
20
|
session?: string;
|
|
20
21
|
fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;
|
|
21
22
|
isCancel: (val: any) => boolean;
|
|
@@ -63,6 +64,14 @@ export interface RendererEnv {
|
|
|
63
64
|
*/
|
|
64
65
|
affixOffsetBottom?: number;
|
|
65
66
|
richTextToken: string;
|
|
67
|
+
/**
|
|
68
|
+
* 默认的选址组件提供商,目前支持仅 baidu
|
|
69
|
+
*/
|
|
70
|
+
locationPickerVendor?: string;
|
|
71
|
+
/**
|
|
72
|
+
* 选址组件的 ak
|
|
73
|
+
*/
|
|
74
|
+
locationPickerAK?: string;
|
|
66
75
|
loadRenderer: (schema: Schema, path: string, reRender: Function) => Promise<React.ElementType> | React.ElementType | JSX.Element | void;
|
|
67
76
|
loadChartExtends?: () => void | Promise<void>;
|
|
68
77
|
loadTinymcePlugin?: (tinymce: any) => void | Promise<void>;
|
package/lib/env.js
CHANGED
package/lib/envOverwrite.d.ts
CHANGED
package/lib/envOverwrite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.6.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -7,8 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
9
|
|
|
10
|
-
var tslib = require('tslib');
|
|
11
10
|
var helper = require('./utils/helper.js');
|
|
11
|
+
var isPlainObject = require('lodash/isPlainObject');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
|
|
12
16
|
|
|
13
17
|
/**
|
|
14
18
|
* @file 用于在移动端或不同语言环境下使用不同配置
|
|
@@ -19,41 +23,21 @@ var isMobile = ((_b = (_a = window).matchMedia) === null || _b === void 0 ? void
|
|
|
19
23
|
: false;
|
|
20
24
|
// 这里不能用 addSchemaFilter 是因为还需要更深层的替换,比如 select 里的 options
|
|
21
25
|
var envOverwrite = function (schema, locale) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
try {
|
|
26
|
-
for (var schemaNodes_1 = tslib.__values(schemaNodes), schemaNodes_1_1 = schemaNodes_1.next(); !schemaNodes_1_1.done; schemaNodes_1_1 = schemaNodes_1.next()) {
|
|
27
|
-
var schemaNode = schemaNodes_1_1.value;
|
|
28
|
-
Object.assign(schemaNode, schemaNode[locale]);
|
|
29
|
-
delete schemaNode[locale];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
33
|
-
finally {
|
|
34
|
-
try {
|
|
35
|
-
if (schemaNodes_1_1 && !schemaNodes_1_1.done && (_a = schemaNodes_1.return)) _a.call(schemaNodes_1);
|
|
36
|
-
}
|
|
37
|
-
finally { if (e_1) throw e_1.error; }
|
|
26
|
+
return helper.JSONValueMap(schema, function (value) {
|
|
27
|
+
if (!isPlainObject__default["default"](value)) {
|
|
28
|
+
return value;
|
|
38
29
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
for (var schemaNodes_2 = tslib.__values(schemaNodes), schemaNodes_2_1 = schemaNodes_2.next(); !schemaNodes_2_1.done; schemaNodes_2_1 = schemaNodes_2.next()) {
|
|
44
|
-
var schemaNode = schemaNodes_2_1.value;
|
|
45
|
-
Object.assign(schemaNode, schemaNode['mobile']);
|
|
46
|
-
delete schemaNode['mobile'];
|
|
47
|
-
}
|
|
30
|
+
if (locale && value[locale]) {
|
|
31
|
+
var newValue = Object.assign({}, value, value[locale]);
|
|
32
|
+
delete newValue[locale];
|
|
33
|
+
return newValue;
|
|
48
34
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
finally { if (e_2) throw e_2.error; }
|
|
35
|
+
else if (isMobile && value.mobile) {
|
|
36
|
+
var newValue = Object.assign({}, value, value.mobile);
|
|
37
|
+
delete newValue.mobile;
|
|
38
|
+
return newValue;
|
|
55
39
|
}
|
|
56
|
-
}
|
|
40
|
+
}, true);
|
|
57
41
|
};
|
|
58
42
|
|
|
59
43
|
exports.envOverwrite = envOverwrite;
|
package/lib/factory.js
CHANGED
package/lib/index.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ import type { FilterContext } from 'amis-formula';
|
|
|
39
39
|
import LazyComponent from './components/LazyComponent';
|
|
40
40
|
import Overlay from './components/Overlay';
|
|
41
41
|
import PopOver from './components/PopOver';
|
|
42
|
+
import ErrorBoundary from './components/ErrorBoundary';
|
|
42
43
|
import { FormRenderer } from './renderers/Form';
|
|
43
44
|
import type { FormHorizontal, FormSchemaBase } from './renderers/Form';
|
|
44
45
|
import { enableDebug, disableDebug } from './utils/index';
|
|
@@ -49,5 +50,5 @@ import type { IItem } from './store/list';
|
|
|
49
50
|
import CustomStyle from './components/CustomStyle';
|
|
50
51
|
import { StatusScoped } from './StatusScoped';
|
|
51
52
|
export declare const version = "__buildVersion";
|
|
52
|
-
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, addSchemaFilter, OptionsControlProps, FormOptionsControl, FormControlProps, FormBaseControl, extendDefaultEnv, addRootWrapper, RendererConfig, styleMap, RENDERER_TRANSMISSION_OMIT_PROPS, ScopedComponentType, IItem, IColumn, IRow, IColumn2, IRow2, OnEventProps, FormSchemaBase, filterTarget, CustomStyle, enableDebug, disableDebug };
|
|
53
|
+
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, CustomStyle, enableDebug, disableDebug };
|
|
53
54
|
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 v3.
|
|
2
|
+
* amis-core v3.6.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -104,6 +104,7 @@ var amisFormula = require('amis-formula');
|
|
|
104
104
|
var LazyComponent = require('./components/LazyComponent.js');
|
|
105
105
|
var Overlay = require('./components/Overlay.js');
|
|
106
106
|
var PopOver = require('./components/PopOver.js');
|
|
107
|
+
var ErrorBoundary = require('./components/ErrorBoundary.js');
|
|
107
108
|
var Form = require('./renderers/Form.js');
|
|
108
109
|
var SchemaRenderer = require('./SchemaRenderer.js');
|
|
109
110
|
var CustomStyle = require('./components/CustomStyle.js');
|
|
@@ -132,7 +133,7 @@ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
|
|
|
132
133
|
(__react_jsx__["default"] || __react_jsx__).Fragment;
|
|
133
134
|
var classPrefix = theme.getClassPrefix();
|
|
134
135
|
// @ts-ignore
|
|
135
|
-
var version = '3.
|
|
136
|
+
var version = '3.6.0';
|
|
136
137
|
function render(schema, props, options, pathPrefix) {
|
|
137
138
|
if (props === void 0) { props = {}; }
|
|
138
139
|
if (options === void 0) { options = {}; }
|
|
@@ -191,7 +192,7 @@ function AMISRenderer(_a) {
|
|
|
191
192
|
props.mobileUI = env$1.isMobile();
|
|
192
193
|
}
|
|
193
194
|
// 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations
|
|
194
|
-
envOverwrite.envOverwrite(schema, locale$1);
|
|
195
|
+
schema = envOverwrite.envOverwrite(schema, locale$1);
|
|
195
196
|
schema = replaceText.replaceText(schema, options.replaceText, env$1.replaceTextIgnoreKeys);
|
|
196
197
|
return (_J$X_(env.EnvContext.Provider, { value: env$1 },
|
|
197
198
|
_J$X_(Root["default"], tslib.__assign({}, props, { schema: schema, pathPrefix: pathPrefix, rootStore: store, env: env$1, theme: theme$1, locale: locale$1, translate: translate }))));
|
|
@@ -258,6 +259,7 @@ exports.ServerError = errors.ServerError;
|
|
|
258
259
|
exports.escapeHtml = escapeHtml.escapeHtml;
|
|
259
260
|
exports.filterClassNameObject = filterSchema.filterClassNameObject;
|
|
260
261
|
exports.getExprProperties = filterSchema.getExprProperties;
|
|
262
|
+
exports.hasExprPropertiesChanged = filterSchema.hasExprPropertiesChanged;
|
|
261
263
|
exports.formatDuration = formatDuration.formatDuration;
|
|
262
264
|
exports.FormulaExec = formula.FormulaExec;
|
|
263
265
|
exports.formulaExec = formula.formulaExec;
|
|
@@ -530,6 +532,7 @@ Object.defineProperty(exports, 'registerFunction', {
|
|
|
530
532
|
exports.LazyComponent = LazyComponent["default"];
|
|
531
533
|
exports.Overlay = Overlay["default"];
|
|
532
534
|
exports.PopOver = PopOver["default"];
|
|
535
|
+
exports.ErrorBoundary = ErrorBoundary["default"];
|
|
533
536
|
exports.FormRenderer = Form.FormRenderer;
|
|
534
537
|
exports.RENDERER_TRANSMISSION_OMIT_PROPS = SchemaRenderer.RENDERER_TRANSMISSION_OMIT_PROPS;
|
|
535
538
|
exports.CustomStyle = CustomStyle["default"];
|
package/lib/locale.js
CHANGED
package/lib/polyfills.js
CHANGED
package/lib/renderers/Form.d.ts
CHANGED
|
@@ -265,6 +265,7 @@ export interface FormProps extends RendererProps, Omit<FormSchemaBase, 'mode' |
|
|
|
265
265
|
onFailed?: (reason: string, errors: any) => any;
|
|
266
266
|
onFinished: (values: object, action: any) => any;
|
|
267
267
|
onValidate: (values: object, form: any) => any;
|
|
268
|
+
onValidChange?: (valid: boolean, props: any) => void;
|
|
268
269
|
messages: {
|
|
269
270
|
fetchSuccess?: string;
|
|
270
271
|
fetchFailed?: string;
|
|
@@ -315,8 +316,7 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
315
316
|
[propName: string]: Array<() => Promise<any>>;
|
|
316
317
|
};
|
|
317
318
|
asyncCancel: () => void;
|
|
318
|
-
|
|
319
|
-
disposeRulesValidate: () => void;
|
|
319
|
+
toDispose: Array<() => void>;
|
|
320
320
|
shouldLoadInitApi: boolean;
|
|
321
321
|
timer: ReturnType<typeof setTimeout>;
|
|
322
322
|
mounted: boolean;
|
|
@@ -326,6 +326,12 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
326
326
|
componentDidMount(): void;
|
|
327
327
|
componentDidUpdate(prevProps: FormProps): void;
|
|
328
328
|
componentWillUnmount(): void;
|
|
329
|
+
/** 获取表单联合校验的规则 */
|
|
330
|
+
getNormalizedRules(): {
|
|
331
|
+
message: any;
|
|
332
|
+
rule: string;
|
|
333
|
+
name?: string | string[] | undefined;
|
|
334
|
+
}[];
|
|
329
335
|
dispatchInited(value: any): Promise<any>;
|
|
330
336
|
blockRouting(): any;
|
|
331
337
|
beforePageUnload(e: any): any;
|
|
@@ -335,7 +341,7 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
335
341
|
silentReload(target?: string, query?: any): void;
|
|
336
342
|
initInterval(value: any): any;
|
|
337
343
|
isValidated(): boolean;
|
|
338
|
-
validate(forceValidate?: boolean, throwErrors?: boolean): Promise<boolean>;
|
|
344
|
+
validate(forceValidate?: boolean, throwErrors?: boolean, toastErrors?: boolean): Promise<boolean>;
|
|
339
345
|
setErrors(errors: {
|
|
340
346
|
[propName: string]: string;
|
|
341
347
|
}, tag?: string): void;
|
|
@@ -349,7 +355,7 @@ export default class Form extends React.Component<FormProps, object> {
|
|
|
349
355
|
removeHook(fn: () => any, type?: string): void;
|
|
350
356
|
handleChange(value: any, name: string, submit: boolean, changePristine?: boolean): void;
|
|
351
357
|
formItemDispatchEvent(type: string, data: any): any;
|
|
352
|
-
emitChange(submit: boolean): Promise<void>;
|
|
358
|
+
emitChange(submit: boolean, skipIfNothingChanges?: boolean): Promise<void>;
|
|
353
359
|
handleBulkChange(values: Object, submit: boolean): void;
|
|
354
360
|
handleFormSubmit(e: React.UIEvent<any>): any;
|
|
355
361
|
handleReset(action: any): (data: any) => void;
|
package/lib/renderers/Form.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v3.
|
|
2
|
+
* amis-core v3.6.0
|
|
3
3
|
* Copyright 2018-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -56,7 +56,7 @@ require('uncontrollable');
|
|
|
56
56
|
require('hoist-non-react-statics');
|
|
57
57
|
require('../utils/validations.js');
|
|
58
58
|
require('../utils/resolveCondition.js');
|
|
59
|
-
require('mobx');
|
|
59
|
+
var mobx = require('mobx');
|
|
60
60
|
require('../utils/Animation.js');
|
|
61
61
|
|
|
62
62
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -74,6 +74,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
74
74
|
function Form(props) {
|
|
75
75
|
var _this = _super.call(this, props) || this;
|
|
76
76
|
_this.hooks = {};
|
|
77
|
+
_this.toDispose = [];
|
|
77
78
|
_this.shouldLoadInitApi = false;
|
|
78
79
|
_this.lazyEmitChange = debounce__default["default"](_this.emitChange.bind(_this), 250, {
|
|
79
80
|
trailing: true,
|
|
@@ -117,16 +118,23 @@ var Form = /** @class */ (function (_super) {
|
|
|
117
118
|
return form.items.forEach(function (item) { return item.unique && item.syncOptions(undefined, form.data); });
|
|
118
119
|
});
|
|
119
120
|
}
|
|
121
|
+
// withStore 里面与上层数据会做同步
|
|
122
|
+
// 这个时候变更的数据没有同步 onChange 出去,出现数据不一致的问题。
|
|
123
|
+
// https://github.com/baidu/amis/issues/8773
|
|
124
|
+
_this.toDispose.push(mobx.reaction(function () { return store.initedAt; }, function () {
|
|
125
|
+
store.inited && _this.emitChange(!!_this.props.submitOnChange, true);
|
|
126
|
+
}));
|
|
120
127
|
return _this;
|
|
121
128
|
}
|
|
122
129
|
Form.prototype.componentDidMount = function () {
|
|
123
130
|
var _this = this;
|
|
124
131
|
var _a, _b;
|
|
125
|
-
var _c = this.props, initApi = _c.initApi, initFetch = _c.initFetch, initFetchOn = _c.initFetchOn, initAsyncApi = _c.initAsyncApi, initFinishedField = _c.initFinishedField, initCheckInterval = _c.initCheckInterval, store = _c.store, _d = _c.messages, fetchSuccess = _d.fetchSuccess, fetchFailed = _d.fetchFailed, onValidate = _c.onValidate,
|
|
132
|
+
var _c = this.props, initApi = _c.initApi, initFetch = _c.initFetch, initFetchOn = _c.initFetchOn, initAsyncApi = _c.initAsyncApi, initFinishedField = _c.initFinishedField, initCheckInterval = _c.initCheckInterval, store = _c.store, _d = _c.messages, fetchSuccess = _d.fetchSuccess, fetchFailed = _d.fetchFailed, onValidate = _c.onValidate, onValidChange = _c.onValidChange, promptPageLeave = _c.promptPageLeave, env = _c.env;
|
|
133
|
+
var rules = this.getNormalizedRules();
|
|
126
134
|
this.mounted = true;
|
|
127
135
|
if (onValidate) {
|
|
128
136
|
var finalValidate_1 = helper.promisify(onValidate);
|
|
129
|
-
this.
|
|
137
|
+
this.toDispose.push(this.addHook(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
130
138
|
var result;
|
|
131
139
|
return tslib.__generator(this, function (_a) {
|
|
132
140
|
switch (_a.label) {
|
|
@@ -156,10 +164,14 @@ var Form = /** @class */ (function (_super) {
|
|
|
156
164
|
return [2 /*return*/];
|
|
157
165
|
}
|
|
158
166
|
});
|
|
159
|
-
}); });
|
|
167
|
+
}); }));
|
|
160
168
|
}
|
|
161
|
-
|
|
162
|
-
|
|
169
|
+
// 表单校验结果发生变化时,触发 onValidChange
|
|
170
|
+
if (onValidChange) {
|
|
171
|
+
this.toDispose.push(mobx.reaction(function () { return store.valid; }, function (valid) { return onValidChange(valid, _this.props); }));
|
|
172
|
+
}
|
|
173
|
+
if (rules.length) {
|
|
174
|
+
this.toDispose.push(this.addHook(function () {
|
|
163
175
|
if (!store.valid) {
|
|
164
176
|
return;
|
|
165
177
|
}
|
|
@@ -167,7 +179,7 @@ var Form = /** @class */ (function (_super) {
|
|
|
167
179
|
return !tpl.evalExpression(item.rule, store.data) &&
|
|
168
180
|
store.addRestError(item.message, item.name);
|
|
169
181
|
});
|
|
170
|
-
});
|
|
182
|
+
}));
|
|
171
183
|
}
|
|
172
184
|
if (api.isEffectiveApi(initApi, store.data, initFetch, initFetchOn)) {
|
|
173
185
|
store
|
|
@@ -215,11 +227,23 @@ var Form = /** @class */ (function (_super) {
|
|
|
215
227
|
// this.lazyHandleChange.flush();
|
|
216
228
|
this.lazyEmitChange.cancel();
|
|
217
229
|
this.asyncCancel && this.asyncCancel();
|
|
218
|
-
this.
|
|
219
|
-
this.
|
|
230
|
+
this.toDispose.forEach(function (fn) { return fn(); });
|
|
231
|
+
this.toDispose = [];
|
|
220
232
|
window.removeEventListener('beforeunload', this.beforePageUnload);
|
|
221
233
|
(_a = this.unBlockRouting) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
222
234
|
};
|
|
235
|
+
/** 获取表单联合校验的规则 */
|
|
236
|
+
Form.prototype.getNormalizedRules = function () {
|
|
237
|
+
var _a = this.props, rules = _a.rules, __ = _a.translate;
|
|
238
|
+
if (!Array.isArray(rules) || rules.length < 1) {
|
|
239
|
+
return [];
|
|
240
|
+
}
|
|
241
|
+
return rules
|
|
242
|
+
.map(function (item) { return (tslib.__assign(tslib.__assign({}, item), (!item.message || typeof item.message !== 'string'
|
|
243
|
+
? { message: __('Form.rules.message') }
|
|
244
|
+
: {}))); })
|
|
245
|
+
.filter(function (item) { return item.rule && typeof item.rule === 'string'; });
|
|
246
|
+
};
|
|
223
247
|
Form.prototype.dispatchInited = function (value) {
|
|
224
248
|
var _a;
|
|
225
249
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
@@ -367,22 +391,27 @@ var Form = /** @class */ (function (_super) {
|
|
|
367
391
|
Form.prototype.isValidated = function () {
|
|
368
392
|
return this.props.store.validated;
|
|
369
393
|
};
|
|
370
|
-
Form.prototype.validate = function (forceValidate, throwErrors) {
|
|
394
|
+
Form.prototype.validate = function (forceValidate, throwErrors, toastErrors) {
|
|
371
395
|
if (throwErrors === void 0) { throwErrors = false; }
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
.
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
396
|
+
if (toastErrors === void 0) { toastErrors = true; }
|
|
397
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
398
|
+
var _a, store, dispatchEvent, data, messages, __, result;
|
|
399
|
+
return tslib.__generator(this, function (_b) {
|
|
400
|
+
switch (_b.label) {
|
|
401
|
+
case 0:
|
|
402
|
+
_a = this.props, store = _a.store, dispatchEvent = _a.dispatchEvent, data = _a.data, messages = _a.messages, __ = _a.translate;
|
|
403
|
+
this.flush();
|
|
404
|
+
return [4 /*yield*/, store.validate(this.hooks['validate'] || [], forceValidate, throwErrors, toastErrors === false
|
|
405
|
+
? ''
|
|
406
|
+
: typeof (messages === null || messages === void 0 ? void 0 : messages.validateFailed) === 'string'
|
|
407
|
+
? __(tpl.filter(messages.validateFailed, store.data))
|
|
408
|
+
: undefined)];
|
|
409
|
+
case 1:
|
|
410
|
+
result = _b.sent();
|
|
411
|
+
dispatchEvent(result ? 'validateSucc' : 'validateError', data);
|
|
412
|
+
return [2 /*return*/, result];
|
|
413
|
+
}
|
|
414
|
+
});
|
|
386
415
|
});
|
|
387
416
|
};
|
|
388
417
|
Form.prototype.setErrors = function (errors, tag) {
|
|
@@ -466,9 +495,10 @@ var Form = /** @class */ (function (_super) {
|
|
|
466
495
|
var dispatchEvent = this.props.dispatchEvent;
|
|
467
496
|
return dispatchEvent(type, data);
|
|
468
497
|
};
|
|
469
|
-
Form.prototype.emitChange = function (submit) {
|
|
498
|
+
Form.prototype.emitChange = function (submit, skipIfNothingChanges) {
|
|
499
|
+
if (skipIfNothingChanges === void 0) { skipIfNothingChanges = false; }
|
|
470
500
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
471
|
-
var _a, onChange, store, submitOnChange, dispatchEvent, data, changeProps, dispatcher;
|
|
501
|
+
var _a, onChange, store, submitOnChange, dispatchEvent, data, diff, changeProps, dispatcher;
|
|
472
502
|
return tslib.__generator(this, function (_b) {
|
|
473
503
|
switch (_b.label) {
|
|
474
504
|
case 0:
|
|
@@ -476,11 +506,11 @@ var Form = /** @class */ (function (_super) {
|
|
|
476
506
|
if (!mobxStateTree.isAlive(store)) {
|
|
477
507
|
return [2 /*return*/];
|
|
478
508
|
}
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
];
|
|
509
|
+
diff = helper.difference(store.data, store.pristine);
|
|
510
|
+
if (skipIfNothingChanges && !Object.keys(diff).length) {
|
|
511
|
+
return [2 /*return*/];
|
|
512
|
+
}
|
|
513
|
+
changeProps = [store.data, diff, this.props];
|
|
484
514
|
return [4 /*yield*/, dispatchEvent('change', object.createObject(data, store.data))];
|
|
485
515
|
case 1:
|
|
486
516
|
dispatcher = _b.sent();
|
|
@@ -1157,6 +1187,8 @@ var Form = /** @class */ (function (_super) {
|
|
|
1157
1187
|
'onChange',
|
|
1158
1188
|
'onFailed',
|
|
1159
1189
|
'onFinished',
|
|
1190
|
+
'onValidate',
|
|
1191
|
+
'onValidChange',
|
|
1160
1192
|
'onSaved',
|
|
1161
1193
|
'canAccessSuperData',
|
|
1162
1194
|
'lazyChange',
|