ngx-mat-dynamic-form-builder
Version:
Build dynamic forms in Angular Material using Reactive forms.
21 lines • 3.55 kB
JavaScript
import { Injectable } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
export class QuestionControlService {
constructor() { }
toFormGroup(questions) {
let group = {};
questions.some(question => {
if (question.controlType === 'spacer') {
return;
}
group[question.key] = question.validators ? new FormControl({ value: question.value !== undefined || question.value !== null ? question.value : undefined, disabled: question.disabled }, question.validators)
: new FormControl({ value: question.value !== undefined || question.value !== null ? question.value : undefined, disabled: question.disabled });
});
return new FormGroup(group);
}
}
QuestionControlService.decorators = [
{ type: Injectable }
];
QuestionControlService.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdC1keW5hbWljLWZvcm0tYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VydmljZXMvcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBYyxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLGdCQUFnQixDQUFDO0lBRWpCLFdBQVcsQ0FBQyxTQUE4QjtRQUN4QyxJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7UUFFcEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4QixJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFO2dCQUNyQyxPQUFPO2FBQ1I7WUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUM1TSxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEosQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7OztZQWhCRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVlc3Rpb25CYXNlIH0gZnJvbSAnLi4vaGVscGVyLWNsYXNzZXMvcXVlc3Rpb24tYmFzZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Db250cm9sU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICB0b0Zvcm1Hcm91cChxdWVzdGlvbnM6IFF1ZXN0aW9uQmFzZTxhbnk+W10pIHtcbiAgICBsZXQgZ3JvdXA6IGFueSA9IHt9O1xuXG4gICAgcXVlc3Rpb25zLnNvbWUocXVlc3Rpb24gPT4ge1xuICAgICAgaWYgKHF1ZXN0aW9uLmNvbnRyb2xUeXBlID09PSAnc3BhY2VyJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBncm91cFtxdWVzdGlvbi5rZXldID0gcXVlc3Rpb24udmFsaWRhdG9ycyA/IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBxdWVzdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IHF1ZXN0aW9uLnZhbHVlICE9PSBudWxsID8gcXVlc3Rpb24udmFsdWUgOiB1bmRlZmluZWQsIGRpc2FibGVkOiBxdWVzdGlvbi5kaXNhYmxlZCB9LCBxdWVzdGlvbi52YWxpZGF0b3JzKVxuICAgICAgICA6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBxdWVzdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IHF1ZXN0aW9uLnZhbHVlICE9PSBudWxsID8gcXVlc3Rpb24udmFsdWUgOiB1bmRlZmluZWQsIGRpc2FibGVkOiBxdWVzdGlvbi5kaXNhYmxlZCB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cCk7XG4gIH1cbn1cbiJdfQ==