UNPKG

ngx-mat-dynamic-form-builder

Version:

Build dynamic forms in Angular Material using Reactive forms.

21 lines 3.55 kB
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==