@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
47 lines • 6.64 kB
JavaScript
import { Pipe } from '@angular/core';
import { gettext } from '@c8y/ngx-components';
import { TranslateService } from '@ngx-translate/core';
import * as i0 from "@angular/core";
import * as i1 from "@ngx-translate/core";
/**
* A pipe for transforming audit record data into localized messages.
* It specifically addresses changes in the audit records, with an emphasis on status changes.
*/
export class AuditChangesMessagePipe {
constructor(translateService) {
this.translateService = translateService;
}
/**
* Transforms an IAuditRecord into a localized string message.
* If the record contains changes, and if the first change is related to the 'status' attribute,
* it formats a message indicating the status change. Otherwise, it returns a general activity message.
* Example when there is a status change: "Alarm status changed from ACKNOWLEDGED to ACTIVE".
* Example when record does not have a status attribute: "Alarm updated".
*
* @param record - The audit record to be transformed.
* @returns The localized message describing the audit record,
* particularly focusing on status changes if applicable.
*/
transform(record) {
const firstItem = !!record.changes && Array.from(record.changes)[0];
if (!firstItem || firstItem.attribute !== 'status') {
const activityString = gettext(record.activity);
return this.translateService.instant(activityString);
}
const { newValue, previousValue } = firstItem;
const message = gettext(`Alarm status changed from {{ previousValue }} to {{ newValue }}`);
return this.translateService.instant(message, {
previousValue: this.translateService.instant(previousValue),
newValue: this.translateService.instant(newValue)
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditChangesMessagePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AuditChangesMessagePipe, name: "auditChangesMessage" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditChangesMessagePipe, decorators: [{
type: Pipe,
args: [{
name: 'auditChangesMessage'
}]
}], ctorParameters: () => [{ type: i1.TranslateService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY2hhbmdlcy1tZXNzYWdlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hbGFybXMvYXVkaXQtY2hhbmdlcy1tZXNzYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFdkQ7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILFNBQVMsQ0FBQyxNQUFvQjtRQUM1QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBRTlDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBRTNGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDNUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUNsRCxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTdCVSx1QkFBdUI7NkdBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFIbkMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUscUJBQXFCO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElBdWRpdFJlY29yZCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLyoqXG4gKiBBIHBpcGUgZm9yIHRyYW5zZm9ybWluZyBhdWRpdCByZWNvcmQgZGF0YSBpbnRvIGxvY2FsaXplZCBtZXNzYWdlcy5cbiAqIEl0IHNwZWNpZmljYWxseSBhZGRyZXNzZXMgY2hhbmdlcyBpbiB0aGUgYXVkaXQgcmVjb3Jkcywgd2l0aCBhbiBlbXBoYXNpcyBvbiBzdGF0dXMgY2hhbmdlcy5cbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnYXVkaXRDaGFuZ2VzTWVzc2FnZSdcbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRDaGFuZ2VzTWVzc2FnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGFuIElBdWRpdFJlY29yZCBpbnRvIGEgbG9jYWxpemVkIHN0cmluZyBtZXNzYWdlLlxuICAgKiBJZiB0aGUgcmVjb3JkIGNvbnRhaW5zIGNoYW5nZXMsIGFuZCBpZiB0aGUgZmlyc3QgY2hhbmdlIGlzIHJlbGF0ZWQgdG8gdGhlICdzdGF0dXMnIGF0dHJpYnV0ZSxcbiAgICogaXQgZm9ybWF0cyBhIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGUgc3RhdHVzIGNoYW5nZS4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIGEgZ2VuZXJhbCBhY3Rpdml0eSBtZXNzYWdlLlxuICAgKiBFeGFtcGxlIHdoZW4gdGhlcmUgaXMgYSBzdGF0dXMgY2hhbmdlOiBcIkFsYXJtIHN0YXR1cyBjaGFuZ2VkIGZyb20gQUNLTk9XTEVER0VEIHRvIEFDVElWRVwiLlxuICAgKiBFeGFtcGxlIHdoZW4gcmVjb3JkIGRvZXMgbm90IGhhdmUgYSBzdGF0dXMgYXR0cmlidXRlOiBcIkFsYXJtIHVwZGF0ZWRcIi5cbiAgICpcbiAgICogQHBhcmFtIHJlY29yZCAtIFRoZSBhdWRpdCByZWNvcmQgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAqIEByZXR1cm5zIFRoZSBsb2NhbGl6ZWQgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBhdWRpdCByZWNvcmQsXG4gICAqICAgICAgICAgICAgICAgICAgIHBhcnRpY3VsYXJseSBmb2N1c2luZyBvbiBzdGF0dXMgY2hhbmdlcyBpZiBhcHBsaWNhYmxlLlxuICAgKi9cbiAgdHJhbnNmb3JtKHJlY29yZDogSUF1ZGl0UmVjb3JkKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaXJzdEl0ZW0gPSAhIXJlY29yZC5jaGFuZ2VzICYmIEFycmF5LmZyb20ocmVjb3JkLmNoYW5nZXMpWzBdO1xuICAgIGlmICghZmlyc3RJdGVtIHx8IGZpcnN0SXRlbS5hdHRyaWJ1dGUgIT09ICdzdGF0dXMnKSB7XG4gICAgICBjb25zdCBhY3Rpdml0eVN0cmluZyA9IGdldHRleHQocmVjb3JkLmFjdGl2aXR5KTtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChhY3Rpdml0eVN0cmluZyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBuZXdWYWx1ZSwgcHJldmlvdXNWYWx1ZSB9ID0gZmlyc3RJdGVtO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGdldHRleHQoYEFsYXJtIHN0YXR1cyBjaGFuZ2VkIGZyb20ge3sgcHJldmlvdXNWYWx1ZSB9fSB0byB7eyBuZXdWYWx1ZSB9fWApO1xuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UsIHtcbiAgICAgIHByZXZpb3VzVmFsdWU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHByZXZpb3VzVmFsdWUpLFxuICAgICAgbmV3VmFsdWU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG5ld1ZhbHVlKVxuICAgIH0pO1xuICB9XG59XG4iXX0=