@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
47 lines • 9.33 kB
JavaScript
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { AuditRecordType, AuditService } from '@c8y/client';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/client";
import * as i2 from "../common/forOf.directive";
import * as i3 from "../i18n/c8y-translate.pipe";
import * as i4 from "@angular/common";
import * as i5 from "../common/date.pipe";
/**
* Audit log component allows to show audits list. Component fetches audit records for the source object given as input.
*
* **Example**
*
* ```html
* <c8y-audit-log [source]="sourceId"></c8y-audit-log>
* ```
*/
export class AuditLogComponent {
/**
* @ignore
*/
constructor(audit) {
this.audit = audit;
}
/**
* After page view is initialized, component gets audit records from auditRecords endpoint.
*/
ngOnInit() {
const { source, type } = this;
this.records = this.audit.list({
withTotalPages: true,
source,
type
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogComponent, deps: [{ token: i1.AuditService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuditLogComponent, selector: "c8y-audit-log", inputs: { source: "source", type: "type" }, ngImport: i0, template: "<div class=\"inner-scroll\">\n <ul class=\"c8y-list__group c8y-list--timeline m-t-16\">\n <li\n class=\"c8y-list--timeline__item\"\n *c8yFor=\"let record of records | async\"\n >\n <small class=\"c8y-list--timeline__item__date\">\n {{ record.time | c8yDate }}\n </small>\n <div class=\"c8y-list__item\">\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__body text-truncate-wrap\">\n <div class=\"row\">\n <div class=\"col-md-5 d-flex a-i-baseline\">\n <span\n class=\"text-truncate\"\n title=\"{{ record.activity | translate }}\"\n >\n {{ record.activity | translate }}\n </span>\n <small class=\"m-l-4 text-muted flex-no-shrink\">{{ record.user }}</small>\n </div>\n <div class=\"col-md-7\">\n <div class=\"small text-truncate-wrap\">{{ record.text | translate }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.DatePipe, name: "c8yDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditLogComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-audit-log', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inner-scroll\">\n <ul class=\"c8y-list__group c8y-list--timeline m-t-16\">\n <li\n class=\"c8y-list--timeline__item\"\n *c8yFor=\"let record of records | async\"\n >\n <small class=\"c8y-list--timeline__item__date\">\n {{ record.time | c8yDate }}\n </small>\n <div class=\"c8y-list__item\">\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__body text-truncate-wrap\">\n <div class=\"row\">\n <div class=\"col-md-5 d-flex a-i-baseline\">\n <span\n class=\"text-truncate\"\n title=\"{{ record.activity | translate }}\"\n >\n {{ record.activity | translate }}\n </span>\n <small class=\"m-l-4 text-muted flex-no-shrink\">{{ record.user }}</small>\n </div>\n <div class=\"col-md-7\">\n <div class=\"small text-truncate-wrap\">{{ record.text | translate }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n" }]
}], ctorParameters: () => [{ type: i1.AuditService }], propDecorators: { source: [{
type: Input
}], type: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYXVkaXQtbG9nL2F1ZGl0LWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2F1ZGl0LWxvZy9hdWRpdC1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQTZCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBRXZGOzs7Ozs7OztHQVFHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQWtCNUI7O09BRUc7SUFDSCxZQUFvQixLQUFtQjtRQUFuQixVQUFLLEdBQUwsS0FBSyxDQUFjO0lBQUcsQ0FBQztJQUUzQzs7T0FFRztJQUNILFFBQVE7UUFDTixNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzdCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLE1BQU07WUFDTixJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FqQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsaUdDakI5Qix3bkNBZ0NBOzs0RkRmYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNO2lGQU8vQyxNQUFNO3NCQURMLEtBQUs7Z0JBT04sSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXVkaXRSZWNvcmRUeXBlLCBBdWRpdFNlcnZpY2UsIElBdWRpdFJlY29yZCwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbi8qKlxuICogQXVkaXQgbG9nIGNvbXBvbmVudCBhbGxvd3MgdG8gc2hvdyBhdWRpdHMgbGlzdC4gQ29tcG9uZW50IGZldGNoZXMgYXVkaXQgcmVjb3JkcyBmb3IgdGhlIHNvdXJjZSBvYmplY3QgZ2l2ZW4gYXMgaW5wdXQuXG4gKlxuICogKipFeGFtcGxlKipcbiAqXG4gKiBgYGBodG1sXG4gKiAgPGM4eS1hdWRpdC1sb2cgW3NvdXJjZV09XCJzb3VyY2VJZFwiPjwvYzh5LWF1ZGl0LWxvZz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXVkaXQtbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgSUQgZm9yIHdoaWNoIGF1ZGl0cyB3aWxsIGJlIHNob3duIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgc291cmNlOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGF1ZGl0IHJlY29yZCB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgdHlwZTogQXVkaXRSZWNvcmRUeXBlO1xuXG4gIC8qKlxuICAgKiBBdWRpdCByZWNvcmRzIHJldHJpZXZlZCBmcm9tIGF1ZGl0UmVjb3JkcyBlbmRwb2ludC5cbiAgICovXG4gIHJlY29yZHM6IFByb21pc2U8SVJlc3VsdExpc3Q8SUF1ZGl0UmVjb3JkPj47XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXVkaXQ6IEF1ZGl0U2VydmljZSkge31cblxuICAvKipcbiAgICogQWZ0ZXIgcGFnZSB2aWV3IGlzIGluaXRpYWxpemVkLCBjb21wb25lbnQgZ2V0cyBhdWRpdCByZWNvcmRzIGZyb20gYXVkaXRSZWNvcmRzIGVuZHBvaW50LlxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgeyBzb3VyY2UsIHR5cGUgfSA9IHRoaXM7XG4gICAgdGhpcy5yZWNvcmRzID0gdGhpcy5hdWRpdC5saXN0KHtcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLFxuICAgICAgc291cmNlLFxuICAgICAgdHlwZVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5uZXItc2Nyb2xsXCI+XG4gIDx1bCBjbGFzcz1cImM4eS1saXN0X19ncm91cCBjOHktbGlzdC0tdGltZWxpbmUgbS10LTE2XCI+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cImM4eS1saXN0LS10aW1lbGluZV9faXRlbVwiXG4gICAgICAqYzh5Rm9yPVwibGV0IHJlY29yZCBvZiByZWNvcmRzIHwgYXN5bmNcIlxuICAgID5cbiAgICAgIDxzbWFsbCBjbGFzcz1cImM4eS1saXN0LS10aW1lbGluZV9faXRlbV9fZGF0ZVwiPlxuICAgICAgICB7eyByZWNvcmQudGltZSB8IGM4eURhdGUgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19ibG9ja1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fYm9keSB0ZXh0LXRydW5jYXRlLXdyYXBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGQtZmxleCBhLWktYmFzZWxpbmVcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgcmVjb3JkLmFjdGl2aXR5IHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyByZWNvcmQuYWN0aXZpdHkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwibS1sLTQgdGV4dC1tdXRlZCBmbGV4LW5vLXNocmlua1wiPnt7IHJlY29yZC51c2VyIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbCB0ZXh0LXRydW5jYXRlLXdyYXBcIj57eyByZWNvcmQudGV4dCB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==