form-control-errors
Version:
This is a package built to make displaying validation errors from Angular Form Controls easier.
129 lines (120 loc) • 8.53 kB
JavaScript
import { Component, Input, Pipe, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
class NgFormErrorsComponent {
constructor() { }
}
NgFormErrorsComponent.decorators = [
{ type: Component, args: [{
selector: 'lib-form-errors',
template: `
<div *ngFor="let control of form.controls | objectToArray">
<ng-container *ngIf="(control | propertyValues : 0); let controlValue">
<ng-container *ngFor="let error of errorMsgs | objectToArray">
<div class="form-errors" *ngIf="controlValue.errors &&
controlValue.errors[(error | propertyNames)] &&
controlValue.touched">
{{control | propertyNames}} {{error | propertyValues : 0}}
</div>
</ng-container>
</ng-container>
</div>
`
}] }
];
/** @nocollapse */
NgFormErrorsComponent.ctorParameters = () => [];
NgFormErrorsComponent.propDecorators = {
form: [{ type: Input }],
errorMsgs: [{ type: Input }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
class ObjectToArrayPipe {
/**
* @param {?} data
* @return {?}
*/
transform(data) {
return ((/** @type {?} */ (Object))).keys(data).map(key => {
return { [key]: data[key] };
});
}
}
ObjectToArrayPipe.decorators = [
{ type: Pipe, args: [{
name: 'objectToArray'
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
class PropertyNamesPipe {
/**
* @param {?} data
* @return {?}
*/
transform(data) {
return ((/** @type {?} */ (Object))).getOwnPropertyNames(data);
}
}
PropertyNamesPipe.decorators = [
{ type: Pipe, args: [{
name: 'propertyNames'
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
class PropertyValuesPipe {
/**
* @param {?} data
* @param {?} index
* @return {?}
*/
transform(data, index) {
return (((/** @type {?} */ (Object))).values(data)) ? ((/** @type {?} */ (Object))).values(data)[index] : null;
}
}
PropertyValuesPipe.decorators = [
{ type: Pipe, args: [{
name: 'propertyValues'
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
class NgFormErrorsModule {
}
NgFormErrorsModule.decorators = [
{ type: NgModule, args: [{
imports: [
CommonModule
],
declarations: [
NgFormErrorsComponent,
ObjectToArrayPipe,
PropertyNamesPipe,
PropertyValuesPipe
],
exports: [NgFormErrorsComponent]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
export { NgFormErrorsComponent, NgFormErrorsModule, ObjectToArrayPipe as ɵa, PropertyNamesPipe as ɵb, PropertyValuesPipe as ɵc };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWVycm9ycy5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vZm9ybS1jb250cm9sLWVycm9ycy9saWIvbmctZm9ybS1lcnJvcnMuY29tcG9uZW50LnRzIiwibmc6Ly9mb3JtLWNvbnRyb2wtZXJyb3JzL2xpYi9vYmplY3QtYXJyYXktcGlwZS50cyIsIm5nOi8vZm9ybS1jb250cm9sLWVycm9ycy9saWIvcHJvcGVydHktbmFtZS1waXBlLnRzIiwibmc6Ly9mb3JtLWNvbnRyb2wtZXJyb3JzL2xpYi9wcm9wZXJ0eS12YWx1ZS1waXBlLnRzIiwibmc6Ly9mb3JtLWNvbnRyb2wtZXJyb3JzL2xpYi9uZy1mb3JtLWVycm9ycy5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWVycm9ycycsXG4gIHRlbXBsYXRlOiBgXG4gIDxkaXYgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgZm9ybS5jb250cm9scyB8IG9iamVjdFRvQXJyYXlcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjb250cm9sIHwgcHJvcGVydHlWYWx1ZXMgOiAwKTsgbGV0IGNvbnRyb2xWYWx1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JNc2dzIHwgb2JqZWN0VG9BcnJheVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWVycm9yc1wiICpuZ0lmPVwiY29udHJvbFZhbHVlLmVycm9ycyAmJlxuICAgICAgICAgIGNvbnRyb2xWYWx1ZS5lcnJvcnNbKGVycm9yIHwgcHJvcGVydHlOYW1lcyldICYmXG4gICAgICAgICAgY29udHJvbFZhbHVlLnRvdWNoZWRcIj5cbiAgICAgICAgICAgICAge3tjb250cm9sIHwgcHJvcGVydHlOYW1lc319IHt7ZXJyb3IgfCBwcm9wZXJ0eVZhbHVlcyA6IDB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgTmdGb3JtRXJyb3JzQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBmb3JtXG4gIEBJbnB1dCgpIGVycm9yTXNnc1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iLCJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdvYmplY3RUb0FycmF5J1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE9iamVjdFRvQXJyYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0oZGF0YTogT2JqZWN0KSB7XHJcbiAgICAgICAgcmV0dXJuICg8YW55Pk9iamVjdCkua2V5cyhkYXRhKS5tYXAoa2V5ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtba2V5XTogZGF0YVtrZXldfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbn1cclxuIiwiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAncHJvcGVydHlOYW1lcydcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eU5hbWVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKGRhdGE6IE9iamVjdCkge1xyXG4gICAgICAgIHJldHVybiAoPGFueT5PYmplY3QpLmdldE93blByb3BlcnR5TmFtZXMoZGF0YSlcclxuICAgIH1cclxufVxyXG4iLCJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdwcm9wZXJ0eVZhbHVlcydcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZhbHVlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHRyYW5zZm9ybShkYXRhOiBPYmplY3QsIGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gKCg8YW55Pk9iamVjdCkudmFsdWVzKGRhdGEpKSA/ICg8YW55Pk9iamVjdCkudmFsdWVzKGRhdGEpW2luZGV4XSA6IG51bGxcclxuICAgIH1cclxufVxyXG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ0Zvcm1FcnJvcnNDb21wb25lbnQgfSBmcm9tICcuL25nLWZvcm0tZXJyb3JzLmNvbXBvbmVudCdcbmltcG9ydCB7IE9iamVjdFRvQXJyYXlQaXBlIH0gZnJvbSAnLi9vYmplY3QtYXJyYXktcGlwZSdcbmltcG9ydCB7IFByb3BlcnR5TmFtZXNQaXBlIH0gZnJvbSAnLi9wcm9wZXJ0eS1uYW1lLXBpcGUnXG5pbXBvcnQgeyBQcm9wZXJ0eVZhbHVlc1BpcGUgfSBmcm9tICcuL3Byb3BlcnR5LXZhbHVlLXBpcGUnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmdGb3JtRXJyb3JzQ29tcG9uZW50LFxuICAgIE9iamVjdFRvQXJyYXlQaXBlLFxuICAgIFByb3BlcnR5TmFtZXNQaXBlLFxuICAgIFByb3BlcnR5VmFsdWVzUGlwZVxuICBdLFxuICBleHBvcnRzOiBbTmdGb3JtRXJyb3JzQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBOZ0Zvcm1FcnJvcnNNb2R1bGUgeyB9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE1BbUJhLHFCQUFxQjtJQUtoQyxpQkFBaUI7OztZQXRCbEIsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7O0dBWVQ7YUFFRjs7Ozs7bUJBR0UsS0FBSzt3QkFDTCxLQUFLOzs7Ozs7O0FDdEJSLE1BTWEsaUJBQWlCOzs7OztJQUMxQixTQUFTLENBQUMsSUFBWTtRQUNsQixPQUFPLG9CQUFNLE1BQU0sSUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUc7WUFDbkMsT0FBTyxFQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFBO1NBQzVCLENBQUMsQ0FBQTtLQUNMOzs7WUFUSixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLGVBQWU7YUFDeEI7Ozs7Ozs7QUNKRCxNQU1hLGlCQUFpQjs7Ozs7SUFDMUIsU0FBUyxDQUFDLElBQVk7UUFDbEIsT0FBTyxvQkFBTSxNQUFNLElBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7S0FDakQ7OztZQVBKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsZUFBZTthQUN4Qjs7Ozs7OztBQ0pELE1BTWEsa0JBQWtCOzs7Ozs7SUFDM0IsU0FBUyxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ2pDLE9BQU8sQ0FBQyxvQkFBTSxNQUFNLElBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFNLE1BQU0sSUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFBO0tBQ2pGOzs7WUFQSixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjthQUN6Qjs7Ozs7OztBQ0pELE1BbUJhLGtCQUFrQjs7O1lBWjlCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzthQUNqQzs7Ozs7Ozs7Ozs7Ozs7OyJ9