@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
61 lines • 6.21 kB
JavaScript
import { TemplateRef } from '@angular/core';
export class AlertOutletBase {
constructor(alertService) {
this.alertService = alertService;
/**
* Currently displayed details of an alert. Only one alert’s details can be displayed at a time.
*/
this.detailDisplayedAlert = {};
}
/**
* Expands details part of particular alert, and collapses details for another alerts.
* @param alert The alert which details should be expanded.
*/
showDetails(alert) {
if (alert.onDetail) {
return alert.onDetail();
}
this.detailDisplayedAlert = Object.assign({}, alert);
this.detailDisplayedAlert.mode = 'raw';
this.setDetailsContent(alert);
}
/**
* Returns true if alert has extra detailedData or defines custom onDetail method.
*/
hasDetails(alert) {
return alert.detailedData || alert.onDetail;
}
/**
* Collapses alert's details.
*/
closeDetails() {
this.detailDisplayedAlert = {};
}
/**
* Returns true if details part of alert is expanded.
*/
isDetailsShow(alert) {
return this.alertService.areSame(alert, this.detailDisplayedAlert);
}
/**
* @ignore
*/
isTemplateRef(value) {
return value instanceof TemplateRef;
}
/**
* @ignore
*/
template(content) {
return this.isTemplateRef(content) ? content : undefined;
}
setDetailsContent(alert) {
if (this.isTemplateRef(alert.detailedData) || typeof alert.detailedData === 'string') {
this.detailDisplayedAlert.contents = alert.detailedData;
}
else {
this.detailDisplayedAlert.contents = JSON.stringify(alert.detailedData, null, 2);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtb3V0bGV0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2FsZXJ0L2FsZXJ0LW91dGxldC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJNUMsTUFBTSxPQUFnQixlQUFlO0lBTW5DLFlBQW1CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTDdDOztXQUVHO1FBQ0gseUJBQW9CLEdBQVEsRUFBRSxDQUFDO0lBRWlCLENBQUM7SUFFakQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQVk7UUFDdEIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLEtBQVk7UUFDckIsT0FBTyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDOUMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEtBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEtBQUs7UUFDakIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBWTtRQUNwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyRixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4vYWxlcnQubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFsZXJ0T3V0bGV0QmFzZSB7XG4gIC8qKlxuICAgKiBDdXJyZW50bHkgZGlzcGxheWVkIGRldGFpbHMgb2YgYW4gYWxlcnQuIE9ubHkgb25lIGFsZXJ04oCZcyBkZXRhaWxzIGNhbiBiZSBkaXNwbGF5ZWQgYXQgYSB0aW1lLlxuICAgKi9cbiAgZGV0YWlsRGlzcGxheWVkQWxlcnQ6IGFueSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge31cblxuICAvKipcbiAgICogRXhwYW5kcyBkZXRhaWxzIHBhcnQgb2YgcGFydGljdWxhciBhbGVydCwgYW5kIGNvbGxhcHNlcyBkZXRhaWxzIGZvciBhbm90aGVyIGFsZXJ0cy5cbiAgICogQHBhcmFtIGFsZXJ0IFRoZSBhbGVydCB3aGljaCBkZXRhaWxzIHNob3VsZCBiZSBleHBhbmRlZC5cbiAgICovXG4gIHNob3dEZXRhaWxzKGFsZXJ0OiBBbGVydCkge1xuICAgIGlmIChhbGVydC5vbkRldGFpbCkge1xuICAgICAgcmV0dXJuIGFsZXJ0Lm9uRGV0YWlsKCk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWlsRGlzcGxheWVkQWxlcnQgPSBPYmplY3QuYXNzaWduKHt9LCBhbGVydCk7XG4gICAgdGhpcy5kZXRhaWxEaXNwbGF5ZWRBbGVydC5tb2RlID0gJ3Jhdyc7XG4gICAgdGhpcy5zZXREZXRhaWxzQ29udGVudChhbGVydCk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbGVydCBoYXMgZXh0cmEgZGV0YWlsZWREYXRhIG9yIGRlZmluZXMgY3VzdG9tIG9uRGV0YWlsIG1ldGhvZC5cbiAgICovXG4gIGhhc0RldGFpbHMoYWxlcnQ6IEFsZXJ0KSB7XG4gICAgcmV0dXJuIGFsZXJ0LmRldGFpbGVkRGF0YSB8fCBhbGVydC5vbkRldGFpbDtcbiAgfVxuICAvKipcbiAgICogQ29sbGFwc2VzIGFsZXJ0J3MgZGV0YWlscy5cbiAgICovXG4gIGNsb3NlRGV0YWlscygpIHtcbiAgICB0aGlzLmRldGFpbERpc3BsYXllZEFsZXJ0ID0ge307XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBkZXRhaWxzIHBhcnQgb2YgYWxlcnQgaXMgZXhwYW5kZWQuXG4gICAqL1xuICBpc0RldGFpbHNTaG93KGFsZXJ0OiBBbGVydCkge1xuICAgIHJldHVybiB0aGlzLmFsZXJ0U2VydmljZS5hcmVTYW1lKGFsZXJ0LCB0aGlzLmRldGFpbERpc3BsYXllZEFsZXJ0KTtcbiAgfVxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaXNUZW1wbGF0ZVJlZih2YWx1ZSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICB0ZW1wbGF0ZShjb250ZW50KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5pc1RlbXBsYXRlUmVmKGNvbnRlbnQpID8gY29udGVudCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGV0YWlsc0NvbnRlbnQoYWxlcnQ6IEFsZXJ0KSB7XG4gICAgaWYgKHRoaXMuaXNUZW1wbGF0ZVJlZihhbGVydC5kZXRhaWxlZERhdGEpIHx8IHR5cGVvZiBhbGVydC5kZXRhaWxlZERhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmRldGFpbERpc3BsYXllZEFsZXJ0LmNvbnRlbnRzID0gYWxlcnQuZGV0YWlsZWREYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRldGFpbERpc3BsYXllZEFsZXJ0LmNvbnRlbnRzID0gSlNPTi5zdHJpbmdpZnkoYWxlcnQuZGV0YWlsZWREYXRhLCBudWxsLCAyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==