Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/forms / build / dist / new-forms / plugins / FieldSetPlugin.js
Size: Mime:
"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