UNPKG

vue-forms-builder

Version:

Typescript forms builder package written specifically for Vue

77 lines 3.08 kB
"use strict"; 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