ngx-config-form
Version:
use configuration to generate form
60 lines • 4.78 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { FormGroup, FormControl } from '@angular/forms';
export class Utils {
/**
* @param {?} info
* @return {?}
*/
static getErrorMsgs(info) {
/** @type {?} */
const obj = info['_errMsg_'];
/** @type {?} */
const arr = [];
if (obj) {
Object.keys(obj).forEach((/**
* @param {?} prop
* @return {?}
*/
prop => {
Object.keys(obj[prop]).forEach((/**
* @param {?} propChild
* @return {?}
*/
propChild => {
/** @type {?} */
const item = obj[prop][propChild];
if (item.dirty) {
arr.push(item['msg']);
}
}));
}));
}
return arr;
}
/**
* @param {?} formGroup
* @return {?}
*/
static validateAllFormFields(formGroup) {
Object.keys(formGroup.controls).forEach((/**
* @param {?} field
* @return {?}
*/
field => {
/** @type {?} */
const control = formGroup.get(field);
if (control instanceof FormControl) {
control.markAsDirty({ onlySelf: true });
control.markAsTouched({ onlySelf: true });
control.updateValueAndValidity({ onlySelf: true, emitEvent: true });
}
else if (control instanceof FormGroup) {
Utils.validateAllFormFields(control);
}
}));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtY29uZmlnLWZvcm0vIiwic291cmNlcyI6WyJsaWIvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE1BQU0sT0FBTyxLQUFLOzs7OztJQUVoQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQVk7O2NBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDOztjQUN0QixHQUFHLEdBQUcsRUFBRTtRQUNkLElBQUksR0FBRyxFQUFFO1lBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTzs7OztnQkFBQyxTQUFTLENBQUMsRUFBRTs7MEJBQ25DLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ2QsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDdkI7Z0JBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDTCxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFvQjtRQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUU7O2tCQUN4QyxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDcEMsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO2dCQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNyRTtpQkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7Z0JBQ3ZDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIHtcblxuICBzdGF0aWMgZ2V0RXJyb3JNc2dzKGluZm86IG9iamVjdCkge1xuICAgIGNvbnN0IG9iaiA9IGluZm9bJ19lcnJNc2dfJ107XG4gICAgY29uc3QgYXJyID0gW107XG4gICAgaWYgKG9iaikge1xuICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhvYmpbcHJvcF0pLmZvckVhY2gocHJvcENoaWxkID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gb2JqW3Byb3BdW3Byb3BDaGlsZF07XG4gICAgICAgICAgaWYgKGl0ZW0uZGlydHkpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKGl0ZW1bJ21zZyddKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICBVdGlscy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIl19