UNPKG

@vendasta/store

Version:

Components and data for Store

48 lines 4.28 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; export class FieldService { /** * @param {?} field * @return {?} */ createFormControl(field) { if (field.required) { return new FormControl(field.value, Validators.required); } else { return new FormControl(field.value); } } /** * @param {?} formFields * @param {?} subscriptions * @return {?} */ toFormGroup(formFields, subscriptions) { /** @type {?} */ const group = {}; formFields.forEach(field => { /** @type {?} */ let formControl; if (field.controlType === 'checkbox') { formControl = new FormControl(field.value); } else { formControl = this.createFormControl(field); } group[field.id] = formControl; if (subscriptions) { subscriptions.push(formControl.valueChanges.subscribe(value => (field.value = value))); } }); return new FormGroup(group); } } FieldService.decorators = [ { type: Injectable } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B2ZW5kYXN0YS9zdG9yZS8iLCJzb3VyY2VzIjpbImxpYi9vcmRlci1mb3JtL2ZpZWxkcy9maWVsZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE1BQU0sT0FBTyxZQUFZOzs7OztJQUN2QixpQkFBaUIsQ0FBQyxLQUFxQjtRQUNyQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxRDthQUFNO1lBQ0wsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDOzs7Ozs7SUFFRCxXQUFXLENBQUMsVUFBNEIsRUFBRSxhQUE2Qjs7Y0FDL0QsS0FBSyxHQUFRLEVBQUU7UUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTs7Z0JBQ3JCLFdBQXdCO1lBQzVCLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUU7Z0JBQ3BDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0wsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QztZQUNELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDO1lBQzlCLElBQUksYUFBYSxFQUFFO2dCQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4RjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7WUF6QkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gJy4vZmllbGQtYmFzZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaWVsZFNlcnZpY2Uge1xuICBjcmVhdGVGb3JtQ29udHJvbChmaWVsZDogRmllbGRCYXNlPGFueT4pOiBGb3JtQ29udHJvbCB7XG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gbmV3IEZvcm1Db250cm9sKGZpZWxkLnZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbChmaWVsZC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgdG9Gb3JtR3JvdXAoZm9ybUZpZWxkczogRmllbGRCYXNlPGFueT5bXSwgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10pOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGdyb3VwOiBhbnkgPSB7fTtcbiAgICBmb3JtRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgbGV0IGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgICAgIGlmIChmaWVsZC5jb250cm9sVHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmaWVsZC52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29udHJvbCA9IHRoaXMuY3JlYXRlRm9ybUNvbnRyb2woZmllbGQpO1xuICAgICAgfVxuICAgICAgZ3JvdXBbZmllbGQuaWRdID0gZm9ybUNvbnRyb2w7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9ucykge1xuICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiAoZmllbGQudmFsdWUgPSB2YWx1ZSkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cCk7XG4gIH1cbn1cbiJdfQ==