UNPKG

@kephas/ui

Version:

Provides a common infrastructure for UI components.

104 lines 11 kB
import { __decorate, __metadata } from "tslib"; import { SingletonAppServiceContract, AppService, Priority, Logger, LogLevel } from '@kephas/core'; /** * Notification service. * * @export * @class NotificationService */ let NotificationService = class NotificationService { /** * Creates an instance of Notification. * @param {Logger} [logger] Optional. The logger. * @memberof NotificationService */ constructor(logger) { this.logger = logger || new Logger(); } /** * Notifies the message at error level. * * @param {*} data The information to be displayed. * @memberof NotificationService */ notifyError(data) { // debugger; const severityString = data.severity || LogLevel[LogLevel.Error]; const severity = severityString === LogLevel[LogLevel.Warning] ? LogLevel.Warning : LogLevel.Error; this.show(this.formatData(data), severity); } /** * Notifies the message at warning level. * * @param {*} data The information to be displayed. * @memberof NotificationService */ notifyWarning(data) { // debugger; const severityString = data.severity || LogLevel[LogLevel.Warning]; const severity = severityString === LogLevel[LogLevel.Warning] ? LogLevel.Warning : LogLevel.Error; this.show(this.formatData(data), severity); } /** * Notifies the message at information level. * * @param {*} data The information to be displayed. * @memberof NotificationService */ notifyInfo(data) { this.show(this.formatData(data), LogLevel.Info); } /** * Shows the notification. * * @protected * @param {*} formattedData The formatted data. * @param {LogLevel} severity The severity. * @memberof NotificationService */ show(formattedData, severity) { this.logger.log(severity, null, formattedData); } /** * Formats the data. By default it returns a formatted string. * * @protected * @param {*} data The information to be formatted. * @returns {string} * @memberof NotificationService */ formatData(data) { if (!data) { return 'Unknown error. Please check the client and server logs for more information.'; } if (data.message && data.url) { return `${data.message} (url: ${data.url}).`; } if (typeof (data) === 'object') { if (data.error) { // this is the case of Kendo data objects. if (typeof data.error === 'object') { if (data.error.responseStatus) { return data.error.responseStatus.message; } } return data.error; } if (data.message) { return data.message; } } return data; } }; NotificationService = __decorate([ AppService({ overridePriority: Priority.Low }), SingletonAppServiceContract(), __metadata("design:paramtypes", [Logger]) ], NotificationService); export { NotificationService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlcGhhcy91aS9zcmMvbGliL25vdGlmaWNhdGlvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkc7Ozs7O0dBS0c7QUFHSCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQVU1Qjs7OztPQUlHO0lBQ0gsWUFBWSxNQUFlO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLElBQVM7UUFDeEIsWUFBWTtRQUNaLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLFFBQVEsR0FBRyxjQUFjLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2xCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxhQUFhLENBQUMsSUFBUztRQUMxQixZQUFZO1FBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUFHLGNBQWMsS0FBSyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUMxRCxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDbEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsQ0FBQyxJQUFTO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxJQUFJLENBQUMsYUFBa0IsRUFBRSxRQUFrQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sVUFBVSxDQUFDLElBQVM7UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sOEVBQThFLENBQUM7U0FDekY7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDaEQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLDBDQUEwQztnQkFDMUMsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO29CQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFO3dCQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztxQkFDNUM7aUJBQ0o7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN2QjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKLENBQUE7QUExR1ksbUJBQW1CO0lBRi9CLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5QywyQkFBMkIsRUFBRTtxQ0FnQkwsTUFBTTtHQWZsQixtQkFBbUIsQ0EwRy9CO1NBMUdZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpbmdsZXRvbkFwcFNlcnZpY2VDb250cmFjdCwgQXBwU2VydmljZSwgUHJpb3JpdHksIExvZ2dlciwgTG9nTGV2ZWwgfSBmcm9tICdAa2VwaGFzL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIE5vdGlmaWNhdGlvbiBzZXJ2aWNlLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAqL1xyXG5AQXBwU2VydmljZSh7IG92ZXJyaWRlUHJpb3JpdHk6IFByaW9yaXR5LkxvdyB9KVxyXG5AU2luZ2xldG9uQXBwU2VydmljZUNvbnRyYWN0KClcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgdGhlIGxvZ2dlci5cclxuICAgICAqXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKiBAdHlwZSB7TG9nZ2VyfVxyXG4gICAgICogQG1lbWJlcm9mIE5vdGlmaWNhdGlvblNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBOb3RpZmljYXRpb24uXHJcbiAgICAgKiBAcGFyYW0ge0xvZ2dlcn0gW2xvZ2dlcl0gT3B0aW9uYWwuIFRoZSBsb2dnZXIuXHJcbiAgICAgKiBAbWVtYmVyb2YgTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihsb2dnZXI/OiBMb2dnZXIpIHtcclxuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciB8fCBuZXcgTG9nZ2VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb3RpZmllcyB0aGUgbWVzc2FnZSBhdCBlcnJvciBsZXZlbC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyp9IGRhdGEgVGhlIGluZm9ybWF0aW9uIHRvIGJlIGRpc3BsYXllZC5cclxuICAgICAqIEBtZW1iZXJvZiBOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBub3RpZnlFcnJvcihkYXRhOiBhbnkpIHtcclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuICAgICAgICBjb25zdCBzZXZlcml0eVN0cmluZyA9IGRhdGEuc2V2ZXJpdHkgfHwgTG9nTGV2ZWxbTG9nTGV2ZWwuRXJyb3JdO1xyXG4gICAgICAgIGNvbnN0IHNldmVyaXR5ID0gc2V2ZXJpdHlTdHJpbmcgPT09IExvZ0xldmVsW0xvZ0xldmVsLldhcm5pbmddXHJcbiAgICAgICAgICAgID8gTG9nTGV2ZWwuV2FybmluZ1xyXG4gICAgICAgICAgICA6IExvZ0xldmVsLkVycm9yO1xyXG4gICAgICAgIHRoaXMuc2hvdyh0aGlzLmZvcm1hdERhdGEoZGF0YSksIHNldmVyaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vdGlmaWVzIHRoZSBtZXNzYWdlIGF0IHdhcm5pbmcgbGV2ZWwuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBpbmZvcm1hdGlvbiB0byBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgKiBAbWVtYmVyb2YgTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbm90aWZ5V2FybmluZyhkYXRhOiBhbnkpIHtcclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuICAgICAgICBjb25zdCBzZXZlcml0eVN0cmluZyA9IGRhdGEuc2V2ZXJpdHkgfHwgTG9nTGV2ZWxbTG9nTGV2ZWwuV2FybmluZ107XHJcbiAgICAgICAgY29uc3Qgc2V2ZXJpdHkgPSBzZXZlcml0eVN0cmluZyA9PT0gTG9nTGV2ZWxbTG9nTGV2ZWwuV2FybmluZ11cclxuICAgICAgICAgICAgPyBMb2dMZXZlbC5XYXJuaW5nXHJcbiAgICAgICAgICAgIDogTG9nTGV2ZWwuRXJyb3I7XHJcbiAgICAgICAgdGhpcy5zaG93KHRoaXMuZm9ybWF0RGF0YShkYXRhKSwgc2V2ZXJpdHkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm90aWZpZXMgdGhlIG1lc3NhZ2UgYXQgaW5mb3JtYXRpb24gbGV2ZWwuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBpbmZvcm1hdGlvbiB0byBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgKiBAbWVtYmVyb2YgTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbm90aWZ5SW5mbyhkYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNob3codGhpcy5mb3JtYXREYXRhKGRhdGEpLCBMb2dMZXZlbC5JbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIHRoZSBub3RpZmljYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHBhcmFtIHsqfSBmb3JtYXR0ZWREYXRhIFRoZSBmb3JtYXR0ZWQgZGF0YS5cclxuICAgICAqIEBwYXJhbSB7TG9nTGV2ZWx9IHNldmVyaXR5IFRoZSBzZXZlcml0eS5cclxuICAgICAqIEBtZW1iZXJvZiBOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzaG93KGZvcm1hdHRlZERhdGE6IGFueSwgc2V2ZXJpdHk6IExvZ0xldmVsKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKHNldmVyaXR5LCBudWxsLCBmb3JtYXR0ZWREYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm1hdHMgdGhlIGRhdGEuIEJ5IGRlZmF1bHQgaXQgcmV0dXJucyBhIGZvcm1hdHRlZCBzdHJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBpbmZvcm1hdGlvbiB0byBiZSBmb3JtYXR0ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxyXG4gICAgICogQG1lbWJlcm9mIE5vdGlmaWNhdGlvblNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGZvcm1hdERhdGEoZGF0YTogYW55KTogYW55IHtcclxuICAgICAgICBpZiAoIWRhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdVbmtub3duIGVycm9yLiBQbGVhc2UgY2hlY2sgdGhlIGNsaWVudCBhbmQgc2VydmVyIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRhLm1lc3NhZ2UgJiYgZGF0YS51cmwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke2RhdGEubWVzc2FnZX0gKHVybDogJHtkYXRhLnVybH0pLmA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIChkYXRhKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGEuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIGNhc2Ugb2YgS2VuZG8gZGF0YSBvYmplY3RzLlxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmVycm9yID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmVycm9yLnJlc3BvbnNlU3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmVycm9yLnJlc3BvbnNlU3RhdHVzLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChkYXRhLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==