@unifylib/ui-lib 1.1.38 → 1.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  export class AuditLogEntry {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWVudHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvYmFzZS1tb2RlbC9hdWRpdC1sb2ctZW50cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7Q0FNekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXVkaXRMb2dFbnRyeSB7XHJcbiAgICBhY3Rpb246IG51bWJlcjtcclxuICAgIGNyZWF0ZWRPbjpEYXRlO1xyXG4gICAgY3JlYXRlZEJ5OnN0cmluZztcclxuICAgIHN1YmplY3Q6YW55O1xyXG4gICAgY29tbWVudDpzdHJpbmc7XHJcbn1cclxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWVudHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvYmFzZS1tb2RlbC9hdWRpdC1sb2ctZW50cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7Q0FNekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXVkaXRMb2dFbnRyeSB7XHJcbiAgICBhY3Rpb246IHN0cmluZztcclxuICAgIGNyZWF0ZWRPbjpEYXRlO1xyXG4gICAgY3JlYXRlZEJ5OnN0cmluZztcclxuICAgIHN1YmplY3Q6YW55O1xyXG4gICAgY29tbWVudDpzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,31 +1,29 @@
1
1
  import { Component, Inject, Input } from '@angular/core';
2
2
  import { Filter, FilterRequest } from "../../base-model";
3
3
  import { TranslateModule } from "@ngx-translate/core";
4
- import { DatePipe, NgForOf, NgIf } from "@angular/common";
5
- import { MatButton, MatButtonModule } from "@angular/material/button";
4
+ import { DatePipe, NgClass, NgForOf, NgIf } from "@angular/common";
5
+ import { MatButtonModule } from "@angular/material/button";
6
6
  import { MatIconModule } from "@angular/material/icon";
7
- import { AuditLogDetailsDialogComponent } from "../audit-log-details-dialog/audit-log-details-dialog.component";
7
+ import { MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle } from "@angular/material/expansion";
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/material/dialog";
10
10
  import * as i2 from "@angular/router";
11
- import * as i3 from "@angular/common";
12
- import * as i4 from "@ngx-translate/core";
13
- import * as i5 from "@angular/cdk/bidi";
14
- import * as i6 from "../../services";
15
- import * as i7 from "@angular/material/button";
11
+ import * as i3 from "@angular/cdk/bidi";
12
+ import * as i4 from "../../services";
13
+ import * as i5 from "@angular/material/button";
14
+ import * as i6 from "@ngx-translate/core";
16
15
  export class AuditLogComponent {
17
- constructor(dialog, activatedRoute, datePipe, translateService, router, directionality, securityManager, backendService) {
16
+ constructor(dialog, activatedRoute, directionality, securityManager, backendService) {
18
17
  this.dialog = dialog;
19
18
  this.activatedRoute = activatedRoute;
20
- this.datePipe = datePipe;
21
- this.translateService = translateService;
22
- this.router = router;
23
19
  this.directionality = directionality;
24
20
  this.securityManager = securityManager;
25
21
  this.backendService = backendService;
26
22
  this.auditLogEntries = [];
27
- this.item = {};
28
- this.isLoaded = false;
23
+ this.fields = [];
24
+ this.showHiddenFields = [];
25
+ this.itemId = 0;
26
+ this.currentDirection = 'ltr';
29
27
  }
30
28
  ngOnInit() {
31
29
  this.currentDirection = this.directionality.value;
@@ -35,15 +33,14 @@ export class AuditLogComponent {
35
33
  this.loadItem();
36
34
  }
37
35
  loadItem() {
38
- if (this.activatedRoute.snapshot.queryParams['token']) {
39
- this.itemId = this.backendService.decrypt(this.activatedRoute.snapshot.queryParams['token']);
36
+ const state = history.state.raw;
37
+ if (state && state.id) {
38
+ this.itemId = state.id;
40
39
  }
41
- const filterRequest = new FilterRequest;
40
+ const filterRequest = new FilterRequest();
42
41
  if (this.itemId > 0) {
43
42
  filterRequest.filters = [];
44
43
  filterRequest.sortDirection = "DESC";
45
- // TODO
46
- // add pagination support here.
47
44
  filterRequest.pageSize = 1000;
48
45
  filterRequest.filters.push(new Filter({
49
46
  key: 0,
@@ -54,27 +51,18 @@ export class AuditLogComponent {
54
51
  operator: 'EQUALS'
55
52
  }));
56
53
  }
57
- this.backendService.getItemAuditLog(filterRequest, this.pageInfo.apiUri).subscribe(resp => {
58
- this.auditLogEntries = resp.body;
54
+ this.backendService.getItemAuditLog(filterRequest, this.pageInfo.apiUri).subscribe({
55
+ next: (resp) => {
56
+ if (resp?.body?.length > 0) {
57
+ this.auditLogEntries = resp.body.map((entry) => ({
58
+ ...entry
59
+ }));
60
+ }
61
+ },
59
62
  });
60
63
  }
61
- viewObject(auditLog) {
62
- const dialogRef = this.dialog.open(AuditLogDetailsDialogComponent, {
63
- data: { pageInfo: this.pageInfo, fields: this.fields, item: auditLog.subject, comment: auditLog.comment, showHiddenFields: this.showHiddenFields },
64
- width: '800px',
65
- height: 'auto',
66
- direction: this.currentDirection
67
- });
68
- }
69
- getDescription(auditLog) {
70
- return `
71
- ${auditLog.createdBy || this.translateService.instant('system')}
72
- ${this.translateService.instant('on')}
73
- ${this.datePipe.transform(auditLog.createdOn, 'medium')}
74
- ${this.translateService.instant('audit-log.executed')} ${this.translateService.instant(auditLog.action.toString())}`;
75
- }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditLogComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActivatedRoute }, { token: i3.DatePipe }, { token: i4.TranslateService }, { token: i2.Router }, { token: i5.Directionality }, { token: 'securityManager' }, { token: i6.BackendService }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AuditLogComponent, isStandalone: true, selector: "app-audit-log", inputs: { pageInfo: "pageInfo", fields: "fields", showHiddenFields: "showHiddenFields" }, providers: [DatePipe], ngImport: i0, template: "<h4>\r\n <span class=\"audit-log-title\">{{ 'audit-log.title' | translate }}</span>\r\n</h4>\r\n\r\n<div class=\"hrdivider-mini\">\r\n <hr class=\"header-hr\" />\r\n</div>\r\n\r\n<div class=\"audit-log-container\" *ngFor=\"let auditLog of auditLogEntries; let i = index\">\r\n <div class=\"audit-log-entry\">\r\n <p *ngIf=\"i === 0\" class=\"audit-log-spacer\"></p>\r\n\r\n <p class=\"audit-log-text\">\r\n {{ getDescription(auditLog) }}\r\n <button mat-stroked-button color=\"secondary\" (click)=\"viewObject(auditLog)\" [attr.id]=\"'audit-view-details-' + i\">\r\n {{ 'audit-log.view_details' | translate }}\r\n </button>\r\n </p>\r\n\r\n <p class=\"invoice-label-text\"></p>\r\n\r\n <div class=\"hrdivider-mini\">\r\n <hr class=\"header-hr\" />\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".audit-log-title{font-weight:400;color:#222}.hrdivider-mini{width:100%}.header-hr{height:4px;background-color:#339dff;border:none;margin:5px 0}.audit-log-container{display:flex;flex-direction:row;gap:5px;justify-content:flex-start;align-items:flex-start;width:100%;flex-wrap:wrap}.audit-log-entry{display:flex;flex-direction:column;align-items:flex-start;flex:1 1 100%}.audit-log-spacer{margin-bottom:15px;margin-top:0}.audit-log-text{margin:0;word-wrap:break-word}@media (max-width: 960px){.audit-log-container{flex-direction:column;align-items:stretch}}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }] }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditLogComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActivatedRoute }, { token: i3.Directionality }, { token: 'securityManager' }, { token: i4.BackendService }], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AuditLogComponent, isStandalone: true, selector: "app-audit-log", inputs: { pageInfo: "pageInfo", statusName: "statusName", module: "module", identifier: "identifier", fields: "fields", showHiddenFields: "showHiddenFields" }, providers: [DatePipe], ngImport: i0, template: "<div *ngIf=\"itemId > 0\">\r\n\r\n<mat-expansion-panel class=\"location-card\"\r\n #panel=\"matExpansionPanel\"\r\n [expanded]=\"true\"\r\n [hideToggle]=\"true\"\r\n (opened)=\" panel.open() \"\r\n (closed)=\" panel.open()\">\r\n <mat-expansion-panel-header class=\"card-header\" >\r\n <mat-panel-title>\r\n <div class=\"title-container\">\r\n <h3 class=\"card-title\">\r\n {{ 'audit-log.title' | translate }}\r\n </h3>\r\n </div>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <div class=\"panel-body\">\r\n <hr class=\"divider\"/>\r\n <div class=\"timeline-container\">\r\n <div *ngFor=\"let auditLog of auditLogEntries; let i = index\" class=\"timeline-item\">\r\n <div class=\"timeline-marker\">\r\n <div class=\"timeline-circle\"></div>\r\n <div *ngIf=\"i !== auditLogEntries.length - 1\" class=\"timeline-line\"></div>\r\n </div>\r\n\r\n <div class=\"timeline-content\">\r\n <div class=\"log-main-text\">\r\n <span class=\"actor-name\">{{ auditLog.createdBy || ('system' | translate) }}</span>\r\n <span class=\"action-text\">\r\n {{\r\n 'audit-log.action_' +\r\n auditLog?.action +\r\n '_' +\r\n module\r\n | translate\r\n }}\r\n</span>\r\n <div *ngIf=\"statusName && auditLog.action === 'EDIT'\" style=\"display: inline\">\r\n <span class=\"action-text\"> to </span>\r\n <button [ngClass]=\"auditLog.subject[statusName]\" class=\"stateType\" mat-button>\r\n {{ pageInfo.labelsSection + '.' + auditLog.subject[statusName] | translate }}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n <div class=\"log-timestamp\">\r\n {{ auditLog.createdOn | date: 'dd MMM, yyyy HH:mm a' }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n</mat-expansion-panel>\r\n\r\n</div>\r\n", styles: [".audit-log-header{font-family:sans-serif;color:#333;margin-bottom:8px;padding-left:10px}.timeline-container{padding:20px;background-color:#fff}.timeline-item{display:flex;margin-bottom:15px;position:relative}.timeline-marker{display:flex;flex-direction:column;align-items:center;margin-right:20px;width:20px;justify-content:center}.timeline-marker .timeline-line{width:1px;background-color:#d1d1d1;flex-grow:1;position:absolute;top:0;height:calc(100% + 80px)}.timeline-circle{width:14px;height:14px;border-radius:50%;border:2px solid #345a7d;background:#fff;z-index:2}.timeline-content{flex-grow:1;background:#fff;border:1px solid #f0f0f0;border-radius:8px;padding:15px 20px;box-shadow:0 2px 4px #0000000d;cursor:pointer;transition:background .2s}.log-main-text{font-size:14px;margin-bottom:4px;color:#333}.log-main-text .actor-name,.log-main-text .target-name{font-weight:800;color:#002c44}.log-timestamp{font-size:12px;color:#888}.location-card{border:1px solid #dcdcdc;border-radius:8px;background:#fff;margin:18px auto;overflow:hidden}.location-card .mat-expansion-panel-header{padding:0 15px}.location-card .mat-expansion-panel-header ::ng-deep .mat-content{margin:0!important}.location-card .panel-body{padding:20px 15px;padding-top:0!important}.location-card .panel-body ::ng-deep app-base-form-canvas .main-form-canvas{margin-top:20px!important}.location-card .panel-description{justify-content:end!important;margin:0!important}.location-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px!important}.location-card .card-header .title-container{display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center}.location-card .card-header .card-title{margin:0;font-size:24px;font-weight:700;line-height:1.2;color:#000;width:fit-content;white-space:nowrap}.location-card .card-header .card-subtitle{margin:0;font-family:lusail-light,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;width:fit-content}.location-card .card-header .btn-edit{width:120px;min-height:32px!important;border-radius:9999px!important;font-size:16px!important}.location-card .card-header .expand-icon{color:#339dff;font-size:16px}.location-card .divider{border:none;border-top:2px solid var(--primary-color-3nd);margin-bottom:20px;margin-top:0}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.row{display:flex;flex-direction:row;width:100%}.gap-20{gap:20px}.buttons-wrapper{display:flex;text-align-last:end;margin:0!important;gap:16px;justify-content:flex-end}.buttons-wrapper .action{min-height:44px!important;min-width:135px!important;width:auto!important}.button-text span{font-size:18px}.button-text mat-icon{font-size:18px!important}.btn-none-background-primary{margin:0!important}@media (max-width: 768px){.desktop-buttons{display:none!important}.desktop-buttons.show-on-mobile{display:flex!important}.mobile-buttons{display:flex;gap:12px;align-items:center;justify-content:flex-end}.btn-download-mobile{width:45px!important;height:44px!important;min-width:45px!important;padding:0!important;border-radius:8px!important;background:#0d4261!important;display:flex;align-items:center;justify-content:center}.btn-download-mobile mat-icon{color:#fff!important;font-size:24px!important;width:24px!important;height:28px!important;margin:0!important}.btn-download-mobile .mdc-button__label{padding:0!important}.btn-menu-mobile{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border-radius:8px!important;border:1px solid #3e627b!important;background:#fff!important;display:flex;align-items:center;justify-content:center}.btn-menu-mobile mat-icon{color:#0d4261!important;font-size:24px!important;width:25px!important;height:24px!important;margin:0!important;rotate:90deg}.btn-menu-mobile .mdc-button__label{padding:0!important}}@media (min-width: 769px){.mobile-buttons{display:none!important}}@media (max-width: 600px){::ng-deep .main-form-canvas{display:block!important}}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }] }); }
78
66
  }
79
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditLogComponent, decorators: [{
80
68
  type: Component,
@@ -84,16 +72,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
84
72
  TranslateModule,
85
73
  NgIf,
86
74
  MatIconModule,
87
- MatButton
88
- ], providers: [DatePipe], template: "<h4>\r\n <span class=\"audit-log-title\">{{ 'audit-log.title' | translate }}</span>\r\n</h4>\r\n\r\n<div class=\"hrdivider-mini\">\r\n <hr class=\"header-hr\" />\r\n</div>\r\n\r\n<div class=\"audit-log-container\" *ngFor=\"let auditLog of auditLogEntries; let i = index\">\r\n <div class=\"audit-log-entry\">\r\n <p *ngIf=\"i === 0\" class=\"audit-log-spacer\"></p>\r\n\r\n <p class=\"audit-log-text\">\r\n {{ getDescription(auditLog) }}\r\n <button mat-stroked-button color=\"secondary\" (click)=\"viewObject(auditLog)\" [attr.id]=\"'audit-view-details-' + i\">\r\n {{ 'audit-log.view_details' | translate }}\r\n </button>\r\n </p>\r\n\r\n <p class=\"invoice-label-text\"></p>\r\n\r\n <div class=\"hrdivider-mini\">\r\n <hr class=\"header-hr\" />\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".audit-log-title{font-weight:400;color:#222}.hrdivider-mini{width:100%}.header-hr{height:4px;background-color:#339dff;border:none;margin:5px 0}.audit-log-container{display:flex;flex-direction:row;gap:5px;justify-content:flex-start;align-items:flex-start;width:100%;flex-wrap:wrap}.audit-log-entry{display:flex;flex-direction:column;align-items:flex-start;flex:1 1 100%}.audit-log-spacer{margin-bottom:15px;margin-top:0}.audit-log-text{margin:0;word-wrap:break-word}@media (max-width: 960px){.audit-log-container{flex-direction:column;align-items:stretch}}\n"] }]
89
- }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.ActivatedRoute }, { type: i3.DatePipe }, { type: i4.TranslateService }, { type: i2.Router }, { type: i5.Directionality }, { type: undefined, decorators: [{
75
+ DatePipe,
76
+ NgClass,
77
+ MatExpansionPanelTitle,
78
+ MatExpansionPanel,
79
+ MatExpansionPanelHeader
80
+ ], providers: [DatePipe], template: "<div *ngIf=\"itemId > 0\">\r\n\r\n<mat-expansion-panel class=\"location-card\"\r\n #panel=\"matExpansionPanel\"\r\n [expanded]=\"true\"\r\n [hideToggle]=\"true\"\r\n (opened)=\" panel.open() \"\r\n (closed)=\" panel.open()\">\r\n <mat-expansion-panel-header class=\"card-header\" >\r\n <mat-panel-title>\r\n <div class=\"title-container\">\r\n <h3 class=\"card-title\">\r\n {{ 'audit-log.title' | translate }}\r\n </h3>\r\n </div>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <div class=\"panel-body\">\r\n <hr class=\"divider\"/>\r\n <div class=\"timeline-container\">\r\n <div *ngFor=\"let auditLog of auditLogEntries; let i = index\" class=\"timeline-item\">\r\n <div class=\"timeline-marker\">\r\n <div class=\"timeline-circle\"></div>\r\n <div *ngIf=\"i !== auditLogEntries.length - 1\" class=\"timeline-line\"></div>\r\n </div>\r\n\r\n <div class=\"timeline-content\">\r\n <div class=\"log-main-text\">\r\n <span class=\"actor-name\">{{ auditLog.createdBy || ('system' | translate) }}</span>\r\n <span class=\"action-text\">\r\n {{\r\n 'audit-log.action_' +\r\n auditLog?.action +\r\n '_' +\r\n module\r\n | translate\r\n }}\r\n</span>\r\n <div *ngIf=\"statusName && auditLog.action === 'EDIT'\" style=\"display: inline\">\r\n <span class=\"action-text\"> to </span>\r\n <button [ngClass]=\"auditLog.subject[statusName]\" class=\"stateType\" mat-button>\r\n {{ pageInfo.labelsSection + '.' + auditLog.subject[statusName] | translate }}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n <div class=\"log-timestamp\">\r\n {{ auditLog.createdOn | date: 'dd MMM, yyyy HH:mm a' }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n</mat-expansion-panel>\r\n\r\n</div>\r\n", styles: [".audit-log-header{font-family:sans-serif;color:#333;margin-bottom:8px;padding-left:10px}.timeline-container{padding:20px;background-color:#fff}.timeline-item{display:flex;margin-bottom:15px;position:relative}.timeline-marker{display:flex;flex-direction:column;align-items:center;margin-right:20px;width:20px;justify-content:center}.timeline-marker .timeline-line{width:1px;background-color:#d1d1d1;flex-grow:1;position:absolute;top:0;height:calc(100% + 80px)}.timeline-circle{width:14px;height:14px;border-radius:50%;border:2px solid #345a7d;background:#fff;z-index:2}.timeline-content{flex-grow:1;background:#fff;border:1px solid #f0f0f0;border-radius:8px;padding:15px 20px;box-shadow:0 2px 4px #0000000d;cursor:pointer;transition:background .2s}.log-main-text{font-size:14px;margin-bottom:4px;color:#333}.log-main-text .actor-name,.log-main-text .target-name{font-weight:800;color:#002c44}.log-timestamp{font-size:12px;color:#888}.location-card{border:1px solid #dcdcdc;border-radius:8px;background:#fff;margin:18px auto;overflow:hidden}.location-card .mat-expansion-panel-header{padding:0 15px}.location-card .mat-expansion-panel-header ::ng-deep .mat-content{margin:0!important}.location-card .panel-body{padding:20px 15px;padding-top:0!important}.location-card .panel-body ::ng-deep app-base-form-canvas .main-form-canvas{margin-top:20px!important}.location-card .panel-description{justify-content:end!important;margin:0!important}.location-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px!important}.location-card .card-header .title-container{display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center}.location-card .card-header .card-title{margin:0;font-size:24px;font-weight:700;line-height:1.2;color:#000;width:fit-content;white-space:nowrap}.location-card .card-header .card-subtitle{margin:0;font-family:lusail-light,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;width:fit-content}.location-card .card-header .btn-edit{width:120px;min-height:32px!important;border-radius:9999px!important;font-size:16px!important}.location-card .card-header .expand-icon{color:#339dff;font-size:16px}.location-card .divider{border:none;border-top:2px solid var(--primary-color-3nd);margin-bottom:20px;margin-top:0}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.row{display:flex;flex-direction:row;width:100%}.gap-20{gap:20px}.buttons-wrapper{display:flex;text-align-last:end;margin:0!important;gap:16px;justify-content:flex-end}.buttons-wrapper .action{min-height:44px!important;min-width:135px!important;width:auto!important}.button-text span{font-size:18px}.button-text mat-icon{font-size:18px!important}.btn-none-background-primary{margin:0!important}@media (max-width: 768px){.desktop-buttons{display:none!important}.desktop-buttons.show-on-mobile{display:flex!important}.mobile-buttons{display:flex;gap:12px;align-items:center;justify-content:flex-end}.btn-download-mobile{width:45px!important;height:44px!important;min-width:45px!important;padding:0!important;border-radius:8px!important;background:#0d4261!important;display:flex;align-items:center;justify-content:center}.btn-download-mobile mat-icon{color:#fff!important;font-size:24px!important;width:24px!important;height:28px!important;margin:0!important}.btn-download-mobile .mdc-button__label{padding:0!important}.btn-menu-mobile{width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border-radius:8px!important;border:1px solid #3e627b!important;background:#fff!important;display:flex;align-items:center;justify-content:center}.btn-menu-mobile mat-icon{color:#0d4261!important;font-size:24px!important;width:25px!important;height:24px!important;margin:0!important;rotate:90deg}.btn-menu-mobile .mdc-button__label{padding:0!important}}@media (min-width: 769px){.mobile-buttons{display:none!important}}@media (max-width: 600px){::ng-deep .main-form-canvas{display:block!important}}\n"] }]
81
+ }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.ActivatedRoute }, { type: i3.Directionality }, { type: undefined, decorators: [{
90
82
  type: Inject,
91
83
  args: ['securityManager']
92
- }] }, { type: i6.BackendService }], propDecorators: { pageInfo: [{
84
+ }] }, { type: i4.BackendService }], propDecorators: { pageInfo: [{
85
+ type: Input
86
+ }], statusName: [{
87
+ type: Input
88
+ }], module: [{
89
+ type: Input
90
+ }], identifier: [{
93
91
  type: Input
94
92
  }], fields: [{
95
93
  type: Input
96
94
  }], showHiddenFields: [{
97
95
  type: Input
98
96
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQVksTUFBTSxFQUFFLGFBQWEsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBSXJELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7Ozs7QUFrQjlHLE1BQU0sT0FBTyxpQkFBaUI7SUFzQjVCLFlBQW1CLE1BQWlCLEVBQ2QsY0FBOEIsRUFDOUIsUUFBa0IsRUFDbEIsZ0JBQWlDLEVBQ2pDLE1BQWEsRUFDYixjQUE4QixFQUNILGVBQW9CLEVBQ2hELGNBQThCO1FBUGhDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixxQkFBZ0IsR0FBaEIs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QUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7U0FDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFDekgsQ0FBQzsrR0FwRlUsaUJBQWlCLHFMQTRCTixpQkFBaUI7bUdBNUI1QixpQkFBaUIsc0pBSmpCLENBQUMsUUFBUSxDQUFDLDBCQ3hCdkIsazBCQTBCQSx1bUJEVEksT0FBTyxrSEFDUCxlQUFlLDJOQUNmLGVBQWUsNEZBQ2YsSUFBSSw0RkFDSixhQUFhOzs0RkFPSixpQkFBaUI7a0JBZjdCLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDVDt3QkFDUCxPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsU0FBUztxQkFDVixhQUNVLENBQUMsUUFBUSxDQUFDOzswQkFnQ04sTUFBTTsyQkFBQyxpQkFBaUI7c0VBeEJ2QyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RmllbGRJbmZvLCBGaWx0ZXIsIEZpbHRlclJlcXVlc3QsIFBhZ2VJbmZvLCBUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQge0RhdGVQaXBlLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtBdWRpdExvZ0VudHJ5fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9hdWRpdC1sb2ctZW50cnlcIjtcclxuaW1wb3J0IHtBdWRpdExvZ0RldGFpbHNEaWFsb2dDb21wb25lbnR9IGZyb20gXCIuLi9hdWRpdC1sb2ctZGV0YWlscy1kaWFsb2cvYXVkaXQtbG9nLWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtYXVkaXQtbG9nJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9hdWRpdC1sb2cuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgYXVkaXRMb2dFbnRyaWVzOiBBdWRpdExvZ0VudHJ5W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwYWdlSW5mbyE6IFBhZ2VJbmZvO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpZWxkczogRmllbGRJbmZvW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0hpZGRlbkZpZWxkcyA6IHN0cmluZ1tdO1xyXG5cclxuXHJcbiAgaXRlbUlkOiBudW1iZXI7XHJcblxyXG4gIGl0ZW0gOiBhbnkgPSB7fTtcclxuICBpc0xvYWRlZCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdO1xyXG5cclxuICBjdXJyZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTpUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6Um91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBkaXJlY3Rpb25hbGl0eTogRGlyZWN0aW9uYWxpdHksXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KCdzZWN1cml0eU1hbmFnZXInKSBwcml2YXRlIHNlY3VyaXR5TWFuYWdlcjogYW55LFxyXG4gICAgICAgICAgICAgICAgcHVibGljIGJhY2tlbmRTZXJ2aWNlOiBCYWNrZW5kU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24gPSB0aGlzLmRpcmVjdGlvbmFsaXR5LnZhbHVlO1xyXG4gICAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gdmFsdWU7XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLmxvYWRJdGVtKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICBwcml2YXRlIGxvYWRJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3Rva2VuJ10pIHtcclxuICAgICAgdGhpcy5pdGVtSWQgPSB0aGlzLmJhY2tlbmRTZXJ2aWNlLmRlY3J5cHQodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sndG9rZW4nXSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3Q7XHJcbiAgICBpZiAodGhpcy5pdGVtSWQgPiAwKSB7XHJcbiAgICAgIGZpbHRlclJlcXVlc3QuZmlsdGVycyA9IFtdO1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LnNvcnREaXJlY3Rpb24gPSBcIkRFU0NcIjtcclxuICAgICAgLy8gVE9ET1xyXG4gICAgICAvLyBhZGQgcGFnaW5hdGlvbiBzdXBwb3J0IGhlcmUuXHJcbiAgICAgIGZpbHRlclJlcXVlc3QucGFnZVNpemUgPSAxMDAwO1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICBrZXk6IDAsXHJcbiAgICAgICAgZmllbGRUeXBlOiAnTG9uZycsXHJcbiAgICAgICAgZmllbGROYW1lOiAnaWQnLFxyXG4gICAgICAgIHZhbHVlT2JqZWN0OiB0aGlzLml0ZW1JZCxcclxuICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJyxcclxuICAgICAgICBvcGVyYXRvcjogJ0VRVUFMUydcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLmdldEl0ZW1BdWRpdExvZyhmaWx0ZXJSZXF1ZXN0LCB0aGlzLnBhZ2VJbmZvIS5hcGlVcmkpLnN1YnNjcmliZShyZXNwID0+IHtcclxuICAgICAgICB0aGlzLmF1ZGl0TG9nRW50cmllcyA9IHJlc3AuYm9keTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdmlld09iamVjdChhdWRpdExvZzogQXVkaXRMb2dFbnRyeSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBdWRpdExvZ0RldGFpbHNEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge3BhZ2VJbmZvOiB0aGlzLnBhZ2VJbmZvLCBmaWVsZHM6IHRoaXMuZmllbGRzLCBpdGVtOmF1ZGl0TG9nLnN1YmplY3QsIGNvbW1lbnQ6IGF1ZGl0TG9nLmNvbW1lbnQsIHNob3dIaWRkZW5GaWVsZHM6dGhpcy5zaG93SGlkZGVuRmllbGRzfSxcclxuICAgICAgd2lkdGg6ICc4MDBweCcsXHJcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudERpcmVjdGlvblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0RGVzY3JpcHRpb24oYXVkaXRMb2c6IEF1ZGl0TG9nRW50cnkpIHtcclxuICAgIHJldHVybiBgXHJcbiAgICAgICAke2F1ZGl0TG9nLmNyZWF0ZWRCeSB8fCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnc3lzdGVtJyl9XHJcbiAgICAgICAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdvbicpfVxyXG4gICAgICAgJHt0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShhdWRpdExvZy5jcmVhdGVkT24sICdtZWRpdW0nKX1cclxuICAgICAgICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2F1ZGl0LWxvZy5leGVjdXRlZCcpfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGF1ZGl0TG9nLmFjdGlvbi50b1N0cmluZygpKX1gXHJcbiAgfVxyXG59XHJcbiIsIjxoND5cclxuICA8c3BhbiBjbGFzcz1cImF1ZGl0LWxvZy10aXRsZVwiPnt7ICdhdWRpdC1sb2cudGl0bGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG48L2g0PlxyXG5cclxuPGRpdiBjbGFzcz1cImhyZGl2aWRlci1taW5pXCI+XHJcbiAgPGhyIGNsYXNzPVwiaGVhZGVyLWhyXCIgLz5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXVkaXQtbG9nLWNvbnRhaW5lclwiICpuZ0Zvcj1cImxldCBhdWRpdExvZyBvZiBhdWRpdExvZ0VudHJpZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICA8ZGl2IGNsYXNzPVwiYXVkaXQtbG9nLWVudHJ5XCI+XHJcbiAgICA8cCAqbmdJZj1cImkgPT09IDBcIiBjbGFzcz1cImF1ZGl0LWxvZy1zcGFjZXJcIj48L3A+XHJcblxyXG4gICAgPHAgY2xhc3M9XCJhdWRpdC1sb2ctdGV4dFwiPlxyXG4gICAgICB7eyBnZXREZXNjcmlwdGlvbihhdWRpdExvZykgfX1cclxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwidmlld09iamVjdChhdWRpdExvZylcIiBbYXR0ci5pZF09XCInYXVkaXQtdmlldy1kZXRhaWxzLScgKyBpXCI+XHJcbiAgICAgICAge3sgJ2F1ZGl0LWxvZy52aWV3X2RldGFpbHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9wPlxyXG5cclxuICAgIDxwIGNsYXNzPVwiaW52b2ljZS1sYWJlbC10ZXh0XCI+PC9wPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJocmRpdmlkZXItbWluaVwiPlxyXG4gICAgICA8aHIgY2xhc3M9XCJoZWFkZXItaHJcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQVksTUFBTSxFQUFFLGFBQWEsRUFBVyxNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUtyRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFxQi9HLE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIsWUFDUyxNQUFpQixFQUNoQixjQUE4QixFQUM5QixjQUE4QixFQUNILGVBQW9CLEVBQ2hELGNBQThCO1FBSjlCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNILG9CQUFlLEdBQWYsZUFBZSxDQUFLO1FBQ2hE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O3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWVsZEluZm8sIEZpbHRlciwgRmlsdGVyUmVxdWVzdCwgUGFnZUluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHtEYXRlUGlwZSwgTmdDbGFzcywgTmdGb3JPZiwgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtBdWRpdExvZ0VudHJ5fSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbC9hdWRpdC1sb2ctZW50cnlcIjtcclxuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7TWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpdC1sb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgRGF0ZVBpcGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTWF0RXhwYW5zaW9uUGFuZWxUaXRsZSxcclxuICAgIE1hdEV4cGFuc2lvblBhbmVsLFxyXG4gICAgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXJcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdWRpdC1sb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGF1ZGl0TG9nRW50cmllczogQXVkaXRMb2dFbnRyeVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHBhZ2VJbmZvITogUGFnZUluZm87XHJcbiAgQElucHV0KCkgc3RhdHVzTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBtb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpZGVudGlmaWVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dIaWRkZW5GaWVsZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIGl0ZW1JZDogbnVtYmVyID0gMDtcclxuICBjdXJyZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnID0gJ2x0cic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIEBJbmplY3QoJ3NlY3VyaXR5TWFuYWdlcicpIHByaXZhdGUgc2VjdXJpdHlNYW5hZ2VyOiBhbnksXHJcbiAgICBwdWJsaWMgYmFja2VuZFNlcnZpY2U6IEJhY2tlbmRTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aW9uYWxpdHkudmFsdWU7XHJcbiAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IHZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5sb2FkSXRlbSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkSXRlbSgpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gaGlzdG9yeS5zdGF0ZS5yYXc7XHJcbiAgICBpZiAoc3RhdGUgJiYgc3RhdGUuaWQpIHtcclxuICAgICAgdGhpcy5pdGVtSWQgPSBzdGF0ZS5pZDtcclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNvbnN0IGZpbHRlclJlcXVlc3QgPSBuZXcgRmlsdGVyUmVxdWVzdCgpO1xyXG4gICAgaWYgKHRoaXMuaXRlbUlkID4gMCkge1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMgPSBbXTtcclxuICAgICAgZmlsdGVyUmVxdWVzdC5zb3J0RGlyZWN0aW9uID0gXCJERVNDXCI7XHJcbiAgICAgIGZpbHRlclJlcXVlc3QucGFnZVNpemUgPSAxMDAwO1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LmZpbHRlcnMucHVzaChuZXcgRmlsdGVyKHtcclxuICAgICAgICBrZXk6IDAsXHJcbiAgICAgICAgZmllbGRUeXBlOiAnTG9uZycsXHJcbiAgICAgICAgZmllbGROYW1lOiAnaWQnLFxyXG4gICAgICAgIHZhbHVlT2JqZWN0OiB0aGlzLml0ZW1JZCxcclxuICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJyxcclxuICAgICAgICBvcGVyYXRvcjogJ0VRVUFMUydcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYmFja2VuZFNlcnZpY2UuZ2V0SXRlbUF1ZGl0TG9nKGZpbHRlclJlcXVlc3QsIHRoaXMucGFnZUluZm8hLmFwaVVyaSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3ApID0+IHtcclxuICAgICAgICBpZiAocmVzcD8uYm9keT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5hdWRpdExvZ0VudHJpZXMgPSByZXNwLmJvZHkubWFwKChlbnRyeTogQXVkaXRMb2dFbnRyeSkgPT4gKHtcclxuICAgICAgICAgICAgLi4uZW50cnlcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIml0ZW1JZCA+IDBcIj5cclxuXHJcbjxtYXQtZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwibG9jYXRpb24tY2FyZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICNwYW5lbD1cIm1hdEV4cGFuc2lvblBhbmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaGlkZVRvZ2dsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKG9wZW5lZCk9XCIgcGFuZWwub3BlbigpIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbG9zZWQpPVwiIHBhbmVsLm9wZW4oKVwiPlxyXG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBjbGFzcz1cImNhcmQtaGVhZGVyXCIgPlxyXG4gICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgIHt7ICdhdWRpdC1sb2cudGl0bGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuXHJcbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYm9keVwiPlxyXG4gICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiLz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYXVkaXRMb2cgb2YgYXVkaXRMb2dFbnRyaWVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0aW1lbGluZS1pdGVtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lLW1hcmtlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lLWNpcmNsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImkgIT09IGF1ZGl0TG9nRW50cmllcy5sZW5ndGggLSAxXCIgY2xhc3M9XCJ0aW1lbGluZS1saW5lXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1jb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nLW1haW4tdGV4dFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdG9yLW5hbWVcIj57eyBhdWRpdExvZy5jcmVhdGVkQnkgfHwgKCdzeXN0ZW0nIHwgdHJhbnNsYXRlKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPlxyXG4gIHt7XHJcbiAgICAgICAgICAgICAgICAnYXVkaXQtbG9nLmFjdGlvbl8nICtcclxuICAgICAgICAgICAgICAgIGF1ZGl0TG9nPy5hY3Rpb24gK1xyXG4gICAgICAgICAgICAgICAgJ18nICtcclxuICAgICAgICAgICAgICAgIG1vZHVsZVxyXG4gICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgIH19XHJcbjwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0YXR1c05hbWUgJiYgYXVkaXRMb2cuYWN0aW9uID09PSAnRURJVCdcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj4gdG8gICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBbbmdDbGFzc109XCJhdWRpdExvZy5zdWJqZWN0W3N0YXR1c05hbWVdXCIgY2xhc3M9XCJzdGF0ZVR5cGVcIiBtYXQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAge3sgcGFnZUluZm8ubGFiZWxzU2VjdGlvbiArICcuJyArIGF1ZGl0TG9nLnN1YmplY3Rbc3RhdHVzTmFtZV0gfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nLXRpbWVzdGFtcFwiPlxyXG4gICAgICAgICAgICB7eyBhdWRpdExvZy5jcmVhdGVkT24gfCBkYXRlOiAnZGQgTU1NLCB5eXl5ICBISDptbSBhJyB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICA8L2Rpdj5cclxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -241,7 +241,7 @@ export class BaseFormComponent extends BaseUtils {
241
241
  return (!this.isPending && element.stateType == 'PENDING') && this.pageInfo.draftSupported;
242
242
  }
243
243
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseFormComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.Directionality }, { token: i4.Location }, { token: 'securityManager' }, { token: i5.BackendService }], target: i0.ɵɵFactoryTarget.Component }); }
244
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BaseFormComponent, isStandalone: true, selector: "app-base-form", inputs: { pageInfo: "pageInfo", fields: "fields", errors: "errors", editable: "editable", itemId: "itemId", hideBackButton: "hideBackButton" }, outputs: { actionResultEmitter: "actionResultEmitter", formUpdated: "formUpdated", itemLoaded: "itemLoaded", extraAction: "extraAction", hyperTextEvent: "hyperTextEvent" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"page-container\">\r\n\r\n <div class=\"row full-width mt-2vh\">\r\n <div class=\"column full-width\">\r\n <app-title-bar\r\n [pageTitle]=\"getTitle()\"\r\n [newAction]=\"false\"\r\n [hideBackButton]=\"hideBackButton\">\r\n </app-title-bar>\r\n </div>\r\n </div>\r\n\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"editable\"\r\n [errors]=\"errors\"\r\n [item]=\"item\"\r\n (formUpdated)=\"updateForm($event)\">\r\n </app-base-form-canvas>\r\n\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-49\">\r\n <div class=\"row row-center-start\">\r\n <button *ngIf=\"hasWfPositivePermission()\" color=\"primary\" mat-flat-button\r\n (click)=\"doSaveApproveAction()\"\r\n [disabled]=\"disabledSaveButton(item)\"\r\n class=\"action-button\"\r\n id=\"base-form-positive-btn\">\r\n {{ getPositiveWfActionKey(item?.stateType) | translate }}\r\n </button>\r\n <button *ngIf=\"hasWfNegativePermission()\" color=\"second\" mat-raised-button\r\n (click)=\"doCancelRejectAction()\"\r\n [disabled]=\"disabledSaveButton(item)\"\r\n class=\"action-button\"\r\n id=\"base-form-negative-btn\">\r\n {{ getNegativeWfActionKey(item?.stateType) | translate }}\r\n </button>\r\n <button *ngIf=\"pageInfo.hideExtractButton === false && itemId > 0 && editable\" color=\"primary\" mat-raised-button\r\n (click)=\"doExtraAction()\"\r\n class=\"action-button\"\r\n id=\"base-form-extra-btn\">\r\n {{ pageInfo.labelsSection + \".\" + \"EXTRA_BUTTON_NAME\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"column flex-49\"></div>\r\n </div>\r\n\r\n\r\n <ng-container *ngIf=\"!pageInfo.hideAuditLog\">\r\n <div class=\"row main-form-canvas mt-4vh pb-5vh\">\r\n <div class=\"column flex-95\">\r\n <app-audit-log [pageInfo]=\"pageInfo\" [fields]=\"fields\"></app-audit-log>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n", styles: [".page-container{display:flex;flex-direction:column;width:100%}.row{display:flex;flex-direction:row;gap:10px;width:100%;flex-wrap:wrap}.column{display:flex;flex-direction:column}.full-width{width:100%}.flex-49{flex:0 0 49%}.flex-95{flex:0 0 95%}.row-center-start{align-items:center;justify-content:flex-start}.mt-2vh{margin-top:2vh}.mt-3vh{margin-top:3vh}.mt-4vh{margin-top:4vh}.pb-5vh{padding-bottom:5vh}.action-button{font-weight:700;min-width:140px;max-width:200px;margin:0 10px}@media (max-width: 960px){.flex-49,.flex-95{flex:1 1 100%}}@media (max-width: 600px){.row{flex-direction:column;align-items:center}.action-button{width:100%;max-width:300px;margin:5px 0}}\n"], dependencies: [{ kind: "component", type: TitleBarComponent, selector: "app-title-bar", inputs: ["pageTitle", "showExtractButton", "totalElements", "titleMode", "pageInfo", "subTitle", "statusDesc", "newAction", "extraButton", "showDetails", "showImport", "showButton", "extraData", "titleCorporateAdmin", "hideBackButton", "buttons", "buttonsDisplayMode", "draftSupported", "isPending", "onViewModeChange"], outputs: ["newActionClicked", "extraButtonClicked", "extractReport", "buttonClicked", "viewModeChanged"] }, { kind: "component", type: BaseFormCanvasComponent, selector: "app-base-form-canvas", inputs: ["pageInfo", "currency", "fields", "errors", "workflowEditableFields", "isWorkflowEditableManaged", "supportingAttributes", "editable", "emitOnValueChanges", "item", "equationSuggestedFields", "currentEquationValue"], outputs: ["attachmentEmitter", "actionEmitter", "formUpdated", "hyperTextEvent", "currentEquationValueChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: AuditLogComponent, selector: "app-audit-log", inputs: ["pageInfo", "fields", "showHiddenFields"] }] }); }
244
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BaseFormComponent, isStandalone: true, selector: "app-base-form", inputs: { pageInfo: "pageInfo", fields: "fields", errors: "errors", editable: "editable", itemId: "itemId", hideBackButton: "hideBackButton" }, outputs: { actionResultEmitter: "actionResultEmitter", formUpdated: "formUpdated", itemLoaded: "itemLoaded", extraAction: "extraAction", hyperTextEvent: "hyperTextEvent" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"page-container\">\r\n\r\n <div class=\"row full-width mt-2vh\">\r\n <div class=\"column full-width\">\r\n <app-title-bar\r\n [pageTitle]=\"getTitle()\"\r\n [newAction]=\"false\"\r\n [hideBackButton]=\"hideBackButton\">\r\n </app-title-bar>\r\n </div>\r\n </div>\r\n\r\n <app-base-form-canvas\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [editable]=\"editable\"\r\n [errors]=\"errors\"\r\n [item]=\"item\"\r\n (formUpdated)=\"updateForm($event)\">\r\n </app-base-form-canvas>\r\n\r\n <div class=\"row main-form-canvas mt-3vh\">\r\n <div class=\"column flex-49\">\r\n <div class=\"row row-center-start\">\r\n <button *ngIf=\"hasWfPositivePermission()\" color=\"primary\" mat-flat-button\r\n (click)=\"doSaveApproveAction()\"\r\n [disabled]=\"disabledSaveButton(item)\"\r\n class=\"action-button\"\r\n id=\"base-form-positive-btn\">\r\n {{ getPositiveWfActionKey(item?.stateType) | translate }}\r\n </button>\r\n <button *ngIf=\"hasWfNegativePermission()\" color=\"second\" mat-raised-button\r\n (click)=\"doCancelRejectAction()\"\r\n [disabled]=\"disabledSaveButton(item)\"\r\n class=\"action-button\"\r\n id=\"base-form-negative-btn\">\r\n {{ getNegativeWfActionKey(item?.stateType) | translate }}\r\n </button>\r\n <button *ngIf=\"pageInfo.hideExtractButton === false && itemId > 0 && editable\" color=\"primary\" mat-raised-button\r\n (click)=\"doExtraAction()\"\r\n class=\"action-button\"\r\n id=\"base-form-extra-btn\">\r\n {{ pageInfo.labelsSection + \".\" + \"EXTRA_BUTTON_NAME\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"column flex-49\"></div>\r\n </div>\r\n\r\n\r\n <ng-container *ngIf=\"!pageInfo.hideAuditLog\">\r\n <div class=\"row main-form-canvas mt-4vh pb-5vh\">\r\n <div class=\"column flex-95\">\r\n <app-audit-log [pageInfo]=\"pageInfo\" [fields]=\"fields\"></app-audit-log>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n", styles: [".page-container{display:flex;flex-direction:column;width:100%}.row{display:flex;flex-direction:row;gap:10px;width:100%;flex-wrap:wrap}.column{display:flex;flex-direction:column}.full-width{width:100%}.flex-49{flex:0 0 49%}.flex-95{flex:0 0 95%}.row-center-start{align-items:center;justify-content:flex-start}.mt-2vh{margin-top:2vh}.mt-3vh{margin-top:3vh}.mt-4vh{margin-top:4vh}.pb-5vh{padding-bottom:5vh}.action-button{font-weight:700;min-width:140px;max-width:200px;margin:0 10px}@media (max-width: 960px){.flex-49,.flex-95{flex:1 1 100%}}@media (max-width: 600px){.row{flex-direction:column;align-items:center}.action-button{width:100%;max-width:300px;margin:5px 0}}\n"], dependencies: [{ kind: "component", type: TitleBarComponent, selector: "app-title-bar", inputs: ["pageTitle", "showExtractButton", "totalElements", "titleMode", "pageInfo", "subTitle", "statusDesc", "newAction", "extraButton", "showDetails", "showImport", "showButton", "extraData", "titleCorporateAdmin", "hideBackButton", "buttons", "buttonsDisplayMode", "draftSupported", "isPending", "onViewModeChange"], outputs: ["newActionClicked", "extraButtonClicked", "extractReport", "buttonClicked", "viewModeChanged"] }, { kind: "component", type: BaseFormCanvasComponent, selector: "app-base-form-canvas", inputs: ["pageInfo", "currency", "fields", "errors", "workflowEditableFields", "isWorkflowEditableManaged", "supportingAttributes", "editable", "emitOnValueChanges", "item", "equationSuggestedFields", "currentEquationValue"], outputs: ["attachmentEmitter", "actionEmitter", "formUpdated", "hyperTextEvent", "currentEquationValueChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: AuditLogComponent, selector: "app-audit-log", inputs: ["pageInfo", "statusName", "module", "identifier", "fields", "showHiddenFields"] }] }); }
245
245
  }
246
246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseFormComponent, decorators: [{
247
247
  type: Component,