ng-error-message
Version:
Displays error messages when a form control is invalid avoiding the long list of tags for each error
79 lines • 5.81 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
import { NgErrorMessageService } from './ng-error-message.service';
export class NgErrorMessagePipe {
/**
* @param {?} _errorMessageSrv
*/
constructor(_errorMessageSrv) {
this._errorMessageSrv = _errorMessageSrv;
/**
* Saves the untransformed message
*/
this._cachedCleanMessage = null;
/**
* Saves the transformed message
*/
this._cachedTransformedMessage = null;
}
/**
* @param {?} errors
* @param {?=} args
* @return {?}
*/
transform(errors, args = {}) {
if (!errors || typeof errors !== 'object' || Array.isArray(errors) || typeof args !== 'object' || Array.isArray(args))
return null;
/** @type {?} */
const errKey = Object.keys(errors)[0];
// The first found error
/** @type {?} */
const errArgs = args[errKey];
/** @type {?} */
let msg = errKey !== undefined && this._errorMessageSrv.errors[errKey] || null;
if (this._cachedCleanMessage === msg) {
return this._cachedTransformedMessage;
}
this._cachedCleanMessage = msg;
if (msg) {
for (let p in errArgs) {
msg = msg.replace(new RegExp("{{\\s?" + p + "\\s?}}", 'g'), errArgs[p]);
}
}
this._cachedTransformedMessage = msg;
return msg;
}
}
NgErrorMessagePipe.decorators = [
{ type: Pipe, args: [{
name: 'errorMessage',
pure: false
},] }
];
/** @nocollapse */
NgErrorMessagePipe.ctorParameters = () => [
{ type: NgErrorMessageService }
];
if (false) {
/**
* Saves the untransformed message
* @type {?}
* @private
*/
NgErrorMessagePipe.prototype._cachedCleanMessage;
/**
* Saves the transformed message
* @type {?}
* @private
*/
NgErrorMessagePipe.prototype._cachedTransformedMessage;
/**
* @type {?}
* @private
*/
NgErrorMessagePipe.prototype._errorMessageSrv;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZXJyb3ItbWVzc2FnZS5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZXJyb3ItbWVzc2FnZS8iLCJzb3VyY2VzIjpbImxpYi9uZy1lcnJvci1tZXNzYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTW5FLE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUFZN0IsWUFDVSxnQkFBdUM7UUFBdkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF1Qjs7OztRQVJ6Qyx3QkFBbUIsR0FBVyxJQUFJLENBQUM7Ozs7UUFLbkMsOEJBQXlCLEdBQVcsSUFBSSxDQUFDO0lBSTlDLENBQUM7Ozs7OztJQUVKLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBWSxFQUFFO1FBRW5DLElBQUssQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7O2NBRTlILE1BQU0sR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFFLE1BQU0sQ0FBRSxDQUFFLENBQUMsQ0FBRTs7O2NBQzNDLE9BQU8sR0FBUSxJQUFJLENBQUUsTUFBTSxDQUFFOztZQUMvQixHQUFHLEdBQVcsTUFBTSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFFLE1BQU0sQ0FBRSxJQUFJLElBQUk7UUFFeEYsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssR0FBRyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztRQUUvQixJQUFJLEdBQUcsRUFBRTtZQUNQLEtBQUssSUFBSSxDQUFDLElBQUksT0FBTyxFQUFFO2dCQUNyQixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6RTtTQUNGO1FBRUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztRQUVyQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OztZQTNDRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxLQUFLO2FBQ1o7Ozs7WUFMUSxxQkFBcUI7Ozs7Ozs7O0lBVzVCLGlEQUEyQzs7Ozs7O0lBSzNDLHVEQUFpRDs7Ozs7SUFHL0MsOENBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdFcnJvck1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9uZy1lcnJvci1tZXNzYWdlLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdlcnJvck1lc3NhZ2UnLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBOZ0Vycm9yTWVzc2FnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAvKipcbiAgICogU2F2ZXMgdGhlIHVudHJhbnNmb3JtZWQgbWVzc2FnZVxuICAgKi9cbiAgcHJpdmF0ZSBfY2FjaGVkQ2xlYW5NZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgdHJhbnNmb3JtZWQgbWVzc2FnZVxuICAgKi9cbiAgcHJpdmF0ZSBfY2FjaGVkVHJhbnNmb3JtZWRNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2Vycm9yTWVzc2FnZVNydjogTmdFcnJvck1lc3NhZ2VTZXJ2aWNlXG4gICkge31cblxuICB0cmFuc2Zvcm0oZXJyb3JzOiBhbnksIGFyZ3M6IGFueSA9IHt9KTogYW55IHtcblxuICAgIGlmICggIWVycm9ycyB8fCB0eXBlb2YgZXJyb3JzICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGVycm9ycykgfHwgdHlwZW9mIGFyZ3MgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoYXJncykpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZXJyS2V5OiBzdHJpbmcgPSBPYmplY3Qua2V5cyggZXJyb3JzIClbIDAgXTsgLy8gVGhlIGZpcnN0IGZvdW5kIGVycm9yXG4gICAgY29uc3QgZXJyQXJnczogYW55ID0gYXJnc1sgZXJyS2V5IF07XG4gICAgbGV0IG1zZzogc3RyaW5nID0gZXJyS2V5ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fZXJyb3JNZXNzYWdlU3J2LmVycm9yc1sgZXJyS2V5IF0gfHwgbnVsbDtcbiAgICBcbiAgICBpZiAodGhpcy5fY2FjaGVkQ2xlYW5NZXNzYWdlID09PSBtc2cpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jYWNoZWRUcmFuc2Zvcm1lZE1lc3NhZ2U7XG4gICAgfVxuXG4gICAgdGhpcy5fY2FjaGVkQ2xlYW5NZXNzYWdlID0gbXNnO1xuXG4gICAgaWYgKG1zZykge1xuICAgICAgZm9yIChsZXQgcCBpbiBlcnJBcmdzKSB7XG4gICAgICAgIG1zZyA9IG1zZy5yZXBsYWNlKG5ldyBSZWdFeHAoXCJ7e1xcXFxzP1wiICsgcCArIFwiXFxcXHM/fX1cIiwgJ2cnKSwgZXJyQXJnc1twXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fY2FjaGVkVHJhbnNmb3JtZWRNZXNzYWdlID0gbXNnO1xuXG4gICAgcmV0dXJuIG1zZztcbiAgfVxuXG59Il19