vue-forms-builder
Version:
Typescript forms builder package written specifically for Vue
77 lines • 3.08 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FormBuilder = void 0;
var FormArray_1 = require("./FormArray");
var FormControl_1 = require("./FormControl");
var FormGroup_1 = require("./FormGroup");
var FormBuilder = /** @class */ (function () {
function FormBuilder() {
}
var _a;
_a = FormBuilder;
/**
* Construct a new FormControl instance
* @param value - value for the FormControl
* @param validators - validator or array of validators for the control
* @returns new FormControl instance
*/
FormBuilder.control = function (value, validators) {
return new FormControl_1.FormControl(value, validators);
};
/**
* Construct a new FormGroup instance
* @param controls - controls for FromGroup
* @returns new FormGroup instance
*/
FormBuilder.group = function (controls) {
var formGroup = {};
var value = null;
var validators = null;
Object.keys(controls).forEach(function (control) {
var _b, _c, _d;
var controlElement = controls[control];
if (controlElement instanceof FormGroup_1.FormGroup ||
controlElement instanceof FormControl_1.FormControl ||
controlElement instanceof FormArray_1.FormArray) {
formGroup = __assign(__assign({}, formGroup), (_b = {}, _b[control] = controlElement, _b));
}
else if (controlElement instanceof Object && !(controlElement instanceof Array)) {
formGroup = __assign(__assign({}, formGroup), (_c = {}, _c[control] = _a.group(controlElement), _c));
}
else {
if (controlElement instanceof Array && controlElement.length > 1) {
value = controlElement[0];
validators = controlElement[1];
}
else {
value = controlElement instanceof Array ? controlElement[0] : controlElement;
validators = null;
}
formGroup = __assign(__assign({}, formGroup), (_d = {}, _d[control] = validators ? _a.control(value, validators) : _a.control(value), _d));
}
});
return new FormGroup_1.FormGroup(formGroup);
};
/**
* Construct a new FormArray instance
* @param controls - controls for FromArray as AbstractControl array
* @returns new FormArray instance
*/
FormBuilder.array = function (controls) {
return new FormArray_1.FormArray(controls);
};
return FormBuilder;
}());
exports.FormBuilder = FormBuilder;
//# sourceMappingURL=FormBuilder.js.map