Repository URL to install this package:
|
Version:
3.7.1 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const React = require("react");
const mobx_1 = require("xmobx/mobx");
const mobx_react_1 = require("xmobx/mobx-react");
const deps_1 = require("../deps");
const FieldSet_1 = require("../FieldSet");
const inputs_1 = require("../inputs");
const fieldSetSerializer = (inputState) => {
return deps_1.serializeListIntoMergedObj(inputState.attributes.elementList);
};
let FieldSetPlugin = class FieldSetPlugin extends React.Component {
static isSatisfiedByProps(props) {
return ['fieldset', 'groupElements'].includes(props.type);
}
render() {
const _a = this.props, { ref, renderFieldSet, state } = _a, remainingProps = tslib_1.__rest(_a, ["ref", "renderFieldSet", "state"]);
const elementList = state.attributes.elementList;
const props = Object.assign({}, remainingProps, { state, elementList });
return renderFieldSet(props);
}
};
FieldSetPlugin.defaultState = mobx_1.action((inputState) => {
// @todo need to improve
const inputConfigList = inputState.attributes.elementList;
const fieldSetInputsList = inputConfigList.map(inputs_1.InputState.from);
inputState.attributes.elementList = fieldSetInputsList;
return {
serializer: fieldSetSerializer,
validator: (value) => {
return fieldSetInputsList.every(subInputState => subInputState.isValid);
},
};
});
FieldSetPlugin.defaultProps = {
// just pass through right now, could do children & className...
renderFieldSet: (props) => React.createElement(FieldSet_1.FieldSet, Object.assign({}, props)),
};
FieldSetPlugin = tslib_1.__decorate([
mobx_react_1.observer
], FieldSetPlugin);
exports.FieldSetPlugin = FieldSetPlugin;
exports.default = FieldSetPlugin;
//# sourceMappingURL=FieldSetPlugin.js.map