@kephas/ui
Version:
Provides a common infrastructure for UI components.
104 lines • 11 kB
JavaScript
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==