@formily/core
Version:
English | [简体中文](./README.zh-cn.md)
71 lines (70 loc) • 2.49 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
var model_1 = require("../shared/model");
var shared_1 = require("@formily/shared");
exports.FormState = model_1.createStateModel((_a = (function () {
function FormState(state, props) {
this.state = state;
this.state.initialValues = shared_1.clone(props.initialValues || {});
this.state.values = shared_1.clone(props.values || props.initialValues || {});
this.state.editable = props.editable;
}
FormState.prototype.computeState = function (draft, prevState) {
draft.errors = shared_1.toArr(draft.errors).filter(function (v) { return !!v; });
draft.warnings = shared_1.toArr(draft.warnings).filter(function (v) { return !!v; });
if (draft.errors.length) {
draft.invalid = true;
draft.valid = false;
}
else {
draft.invalid = false;
draft.valid = true;
}
if (!shared_1.isValid(draft.props)) {
draft.props = prevState.props;
}
if (draft.initialized && prevState.initialized && !draft.modified) {
if (!shared_1.isEqual(prevState.values, draft.values)) {
draft.modified = true;
}
}
if (draft.validating !== prevState.validating) {
if (draft.validating === true) {
draft.loading = true;
}
else if (draft.validating === false) {
draft.loading = false;
}
}
if (draft.mounted === true && draft.mounted !== prevState.mounted) {
draft.unmounted = false;
}
if (draft.unmounted === true && draft.unmounted !== prevState.unmounted) {
draft.mounted = false;
}
};
return FormState;
}()),
_a.displayName = 'FormState',
_a.defaultState = {
valid: true,
invalid: false,
loading: false,
validating: false,
initialized: false,
submitting: false,
editable: true,
modified: false,
errors: [],
warnings: [],
values: {},
initialValues: {},
mounted: false,
unmounted: false,
props: {}
},
_a.defaultProps = {
lifecycles: []
},
_a));