UNPKG

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
/** * @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