@unifylib/ui-lib 1.1.41 → 1.1.43
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.
- package/esm2022/lib/components/action-comment/action-comment.component.mjs +11 -4
- package/esm2022/lib/components/shared/action-card/action-card.component.mjs +3 -3
- package/esm2022/lib/services/backend-service.mjs +4 -4
- package/fesm2022/unifylib-ui-lib.mjs +28 -24
- package/fesm2022/unifylib-ui-lib.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Inject, Input, HostListener, EventEmitter, Output, Injectable, signal, ViewChild, forwardRef, Directive, model, computed, effect, inject } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
|
-
import { CommonModule,
|
|
4
|
+
import { CommonModule, NgForOf, NgIf, NgClass, AsyncPipe, NgSwitch, NgTemplateOutlet, KeyValuePipe, NgSwitchCase, DatePipe, CurrencyPipe, NgStyle, formatDate, NgSwitchDefault, DecimalPipe } from '@angular/common';
|
|
5
5
|
import * as i1 from '@angular/material/dialog';
|
|
6
6
|
import { MAT_DIALOG_DATA, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';
|
|
7
7
|
import * as i2 from '@ngx-translate/core';
|
|
@@ -23,6 +23,8 @@ import * as i9 from '@angular/cdk/text-field';
|
|
|
23
23
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
|
24
24
|
import * as i4$2 from '@angular/material/input';
|
|
25
25
|
import { MatInput, MatInputModule, MatFormField as MatFormField$2, MatLabel as MatLabel$1, MatSuffix } from '@angular/material/input';
|
|
26
|
+
import { MatOption, DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
27
|
+
import { MatSelect, MatOption as MatOption$2, MatFormField as MatFormField$1, MatSelectModule } from '@angular/material/select';
|
|
26
28
|
import { MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';
|
|
27
29
|
import * as i4$1 from '@angular/material/chips';
|
|
28
30
|
import { MatChipListbox, MatChipOption, MatChip, MatChipsModule, MatChipInput, MatChipGrid, MatChipRow, MatChipRemove } from '@angular/material/chips';
|
|
@@ -33,12 +35,11 @@ import { ENTER, COMMA, SEMICOLON } from '@angular/cdk/keycodes';
|
|
|
33
35
|
import { MatDatepickerInput, MatDatepicker, MatDatepickerToggle, MatDateRangeInput } from '@angular/material/datepicker';
|
|
34
36
|
import { MatRadioGroup, MatRadioButton } from '@angular/material/radio';
|
|
35
37
|
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
|
36
|
-
import { MatSelect, MatOption as MatOption$1, MatFormField as MatFormField$1, MatSelectModule } from '@angular/material/select';
|
|
37
38
|
import { MatDivider } from '@angular/material/divider';
|
|
38
39
|
import * as i10 from 'ngx-json-viewer';
|
|
39
40
|
import { NgxJsonViewerModule } from 'ngx-json-viewer';
|
|
40
41
|
import { NgxMatIntlTelInputComponent } from 'ngx-mat-intl-tel-input';
|
|
41
|
-
import { MatAutocompleteTrigger, MatAutocomplete, MatOption } from '@angular/material/autocomplete';
|
|
42
|
+
import { MatAutocompleteTrigger, MatAutocomplete, MatOption as MatOption$1 } from '@angular/material/autocomplete';
|
|
42
43
|
import { BehaviorSubject, Subject, of, map, takeUntil } from 'rxjs';
|
|
43
44
|
import * as i1$2 from '@angular/common/http';
|
|
44
45
|
import { HttpHeaders, HttpParams } from '@angular/common/http';
|
|
@@ -46,7 +47,6 @@ import { distinctUntilChanged, catchError } from 'rxjs/operators';
|
|
|
46
47
|
import * as i3$1 from '@angular/router';
|
|
47
48
|
import { MatTooltip } from '@angular/material/tooltip';
|
|
48
49
|
import moment from 'moment/moment';
|
|
49
|
-
import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatOption as MatOption$2 } from '@angular/material/core';
|
|
50
50
|
import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
|
|
51
51
|
import * as i5 from '@angular/cdk/a11y';
|
|
52
52
|
import { MatExpansionPanelTitle, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelDescription } from '@angular/material/expansion';
|
|
@@ -175,7 +175,7 @@ class ActionCommentComponent {
|
|
|
175
175
|
this.dialogRef.close();
|
|
176
176
|
}
|
|
177
177
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCommentComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCommentComponent, isStandalone: true, selector: "app-action-comment", host: { listeners: { "window:keyup.esc": "onKeyUp()" } }, ngImport: i0, template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n placeholder=\"{{ placeholderKey | translate }}\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{itemName}}\r\n </div>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n placeholder=\"{{ placeholderKey | translate }}\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCommentComponent, isStandalone: true, selector: "app-action-comment", host: { listeners: { "window:keyup.esc": "onKeyUp()" } }, ngImport: i0, template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n\r\n <!-- OPTIONS MODE -->\r\n <ng-container *ngIf=\"data?.options?.length; else textMode\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? (item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <!-- TEXTAREA MODE -->\r\n <ng-template #textMode>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{ itemName }}\r\n </div>\r\n\r\n <ng-container *ngIf=\"data?.options?.length; else mobileText\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n class=\"textarea-mobile\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? ( item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <ng-template #mobileText>\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
179
179
|
}
|
|
180
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCommentComponent, decorators: [{
|
|
181
181
|
type: Component,
|
|
@@ -189,8 +189,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
189
189
|
MatDialogActions,
|
|
190
190
|
MatButton,
|
|
191
191
|
MatInput,
|
|
192
|
-
MatIcon
|
|
193
|
-
|
|
192
|
+
MatIcon,
|
|
193
|
+
MatOption,
|
|
194
|
+
MatSelect,
|
|
195
|
+
NgForOf,
|
|
196
|
+
NgIf
|
|
197
|
+
], template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n\r\n <!-- OPTIONS MODE -->\r\n <ng-container *ngIf=\"data?.options?.length; else textMode\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? (item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <!-- TEXTAREA MODE -->\r\n <ng-template #textMode>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{ itemName }}\r\n </div>\r\n\r\n <ng-container *ngIf=\"data?.options?.length; else mobileText\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n class=\"textarea-mobile\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? ( item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <ng-template #mobileText>\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"] }]
|
|
194
198
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
195
199
|
type: Inject,
|
|
196
200
|
args: [MAT_DIALOG_DATA]
|
|
@@ -1105,7 +1109,7 @@ class BackendService {
|
|
|
1105
1109
|
return this.http.post(url, listItems, { headers: this.buildSecuredHeader() }).pipe(distinctUntilChanged(), catchError(err => of(err.message || err)));
|
|
1106
1110
|
}
|
|
1107
1111
|
downloadReport(reportRequest, pageApiPath, readyPath) {
|
|
1108
|
-
const s = readyPath === true ? `/api/v1${pageApiPath}` : `/api/v1${pageApiPath}/
|
|
1112
|
+
const s = readyPath === true ? `/api/v1${pageApiPath}` : `/api/v1${pageApiPath}/extractAndDownloadListReport`;
|
|
1109
1113
|
return this.http.post(this.getApiBasePath() + s, reportRequest, { headers: this.buildSecuredHeader() }).subscribe((resp) => {
|
|
1110
1114
|
if (resp.valid) {
|
|
1111
1115
|
if (resp.body) {
|
|
@@ -1133,11 +1137,11 @@ class BackendService {
|
|
|
1133
1137
|
}
|
|
1134
1138
|
}
|
|
1135
1139
|
else {
|
|
1136
|
-
this.
|
|
1140
|
+
this.topPanelMessage$.next(new SnackMessage(resp.message.toString(), true, 'info'));
|
|
1137
1141
|
}
|
|
1138
1142
|
}
|
|
1139
1143
|
else {
|
|
1140
|
-
this.
|
|
1144
|
+
this.topPanelMessage$.next(new SnackMessage(resp.message.toString(), false, 'error'));
|
|
1141
1145
|
}
|
|
1142
1146
|
});
|
|
1143
1147
|
}
|
|
@@ -1425,7 +1429,7 @@ class MultiAutoCompleteComponent {
|
|
|
1425
1429
|
return this.field.property;
|
|
1426
1430
|
}
|
|
1427
1431
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiAutoCompleteComponent, deps: [{ token: BackendService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1428
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiAutoCompleteComponent, isStandalone: true, selector: "app-multi-auto-complete", inputs: { field: "field", form: "form", defaultValue: "defaultValue", pathParam: "pathParam", readonly: "readonly" }, outputs: { selectedValue: "selectedValue" }, viewQueries: [{ propertyName: "itemInput", first: true, predicate: ["itemInput"], descendants: true }, { propertyName: "matACTrigger", first: true, predicate: ["autocompleteTrigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"this.field\" class=\"main-multi-auto\">\r\n <div class=\"matField\" (click)=\"this.filterLookupItems('', autocompleteTrigger)\">\r\n <mat-form-field class=\"full-width\" appearance=\"outline\" floatLabel=\"always\">\r\n <mat-label>{{ getLabel() }}</mat-label>\r\n <mat-chip-listbox #chipList [selectable]=\"true\">\r\n <mat-chip\r\n *ngFor=\"let item of selectedItems\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(item)\">\r\n {{ itemNameByLag(item) }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input class=\"chip-input\" type=\"text\"\r\n [id]=\"getId()\" #itemInput\r\n [formControl]=\"multiControl\"\r\n [matAutocomplete]=\"auto\" matInput\r\n [readonly]=\"readonly\"\r\n [required]=\"isRequired\"\r\n (keydown)=\"onKeydown($event, autocompleteTrigger)\"\r\n [disabled]=\"field.readonly\"\r\n #autocompleteTrigger=\"matAutocompleteTrigger\"\r\n >\r\n </mat-chip-listbox>\r\n\r\n <mat-icon class=\"arrow_drop_down_autocomplete\">arrow_drop_down</mat-icon>\r\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption [displayWith]=\"displayFn\"\r\n (optionSelected)=\"selected($event.option.value)\">\r\n <ng-container *ngIf=\"!field.readonly\">\r\n <mat-option *ngFor=\"let item of lookupItems$ | async\" [value]=\"item\"\r\n [disabled]=\"field.readonly || isSelected(item)\"\r\n (click)=\"$event.stopPropagation(); autocompleteTrigger.openPanel()\">\r\n {{ itemNameByLag(item) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n</ng-container>\r\n", styles: [":is() .matField{margin-bottom:24px!important}:is() .matField .mat-form-field-wrapper{padding:0!important;margin-bottom:0!important}.full-width{width:100%}.chip-input{flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
|
|
1432
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiAutoCompleteComponent, isStandalone: true, selector: "app-multi-auto-complete", inputs: { field: "field", form: "form", defaultValue: "defaultValue", pathParam: "pathParam", readonly: "readonly" }, outputs: { selectedValue: "selectedValue" }, viewQueries: [{ propertyName: "itemInput", first: true, predicate: ["itemInput"], descendants: true }, { propertyName: "matACTrigger", first: true, predicate: ["autocompleteTrigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"this.field\" class=\"main-multi-auto\">\r\n <div class=\"matField\" (click)=\"this.filterLookupItems('', autocompleteTrigger)\">\r\n <mat-form-field class=\"full-width\" appearance=\"outline\" floatLabel=\"always\">\r\n <mat-label>{{ getLabel() }}</mat-label>\r\n <mat-chip-listbox #chipList [selectable]=\"true\">\r\n <mat-chip\r\n *ngFor=\"let item of selectedItems\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(item)\">\r\n {{ itemNameByLag(item) }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input class=\"chip-input\" type=\"text\"\r\n [id]=\"getId()\" #itemInput\r\n [formControl]=\"multiControl\"\r\n [matAutocomplete]=\"auto\" matInput\r\n [readonly]=\"readonly\"\r\n [required]=\"isRequired\"\r\n (keydown)=\"onKeydown($event, autocompleteTrigger)\"\r\n [disabled]=\"field.readonly\"\r\n #autocompleteTrigger=\"matAutocompleteTrigger\"\r\n >\r\n </mat-chip-listbox>\r\n\r\n <mat-icon class=\"arrow_drop_down_autocomplete\">arrow_drop_down</mat-icon>\r\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption [displayWith]=\"displayFn\"\r\n (optionSelected)=\"selected($event.option.value)\">\r\n <ng-container *ngIf=\"!field.readonly\">\r\n <mat-option *ngFor=\"let item of lookupItems$ | async\" [value]=\"item\"\r\n [disabled]=\"field.readonly || isSelected(item)\"\r\n (click)=\"$event.stopPropagation(); autocompleteTrigger.openPanel()\">\r\n {{ itemNameByLag(item) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n</ng-container>\r\n", styles: [":is() .matField{margin-bottom:24px!important}:is() .matField .mat-form-field-wrapper{padding:0!important;margin-bottom:0!important}.full-width{width:100%}.chip-input{flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
|
|
1429
1433
|
}
|
|
1430
1434
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiAutoCompleteComponent, decorators: [{
|
|
1431
1435
|
type: Component,
|
|
@@ -1441,7 +1445,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1441
1445
|
MatChipInput,
|
|
1442
1446
|
MatInput,
|
|
1443
1447
|
MatAutocomplete,
|
|
1444
|
-
MatOption,
|
|
1448
|
+
MatOption$1,
|
|
1445
1449
|
AsyncPipe,
|
|
1446
1450
|
NgIf,
|
|
1447
1451
|
MatChipGrid,
|
|
@@ -1698,7 +1702,7 @@ class AutoCompleteComponent {
|
|
|
1698
1702
|
}
|
|
1699
1703
|
}
|
|
1700
1704
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: BackendService }, { token: i2.TranslateService }, { token: 'secretsManager' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1701
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AutoCompleteComponent, isStandalone: true, selector: "app-auto-complete", inputs: { field: "field", form: "form", defaultValue: "defaultValue", readonly: "readonly", supportingAttributes: "supportingAttributes" }, outputs: { selectedValue: "selectedValue" }, viewQueries: [{ propertyName: "matACTrigger", first: true, predicate: ["autocompleteTrigger"], descendants: true }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"field\" class=\"main-auto-complete\">\r\n <div class=\"mat-field-wrapper\" [formGroup]=\"form\">\r\n\r\n <div class=\"label-and-asterisk-container\">\r\n <span class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n\r\n <mat-form-field class=\"autocomplete-field\" appearance=\"outline\">\r\n <input type=\"text\"\r\n [placeholder]=\"'search_placeholder' | translate\"\r\n [id]=\"getId()\"\r\n [formControl]=\"myControl\"\r\n (keydown)=\"onKeydown($event, autocompleteTrigger)\"\r\n [matAutocomplete]=\"auto\"\r\n matInput\r\n [required]=\"isRequired\"\r\n #autocompleteTrigger=\"matAutocompleteTrigger\"\r\n [readonly]=\"readonly\"\r\n >\r\n\r\n <button mat-button matSuffix\r\n color=\"primary\"\r\n class=\"autocomplete-button\"\r\n (click)=\"autocompleteTrigger.openPanel(); filterLookupItems('', autocompleteTrigger); $event.stopPropagation()\"\r\n [attr.id]=\"'autocomplete-trigger-' + field.property\">\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n\r\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption [displayWith]=\"displayFn.bind(this)\"\r\n (optionSelected)=\"itemSelected($event.option.value)\"\r\n (closed)=\"closed()\">\r\n <ng-container *ngIf=\"!field.readonly\">\r\n <mat-option *ngIf=\"items.length > 1 && lookupItems$\" [value]=\"null\">{{ \"none\" | translate }}</mat-option>\r\n <mat-option *ngFor=\"let item of lookupItems$ | async\" [value]=\"item\" [ngClass]=\"_allowSelection(item)\">\r\n {{ itemNameByLag(item) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n </div>\r\n</ng-container>\r\n", styles: [".main-auto-complete,.mat-field-wrapper{display:flex;flex-direction:column;width:100%}.label-and-asterisk-container{display:flex;align-items:center;gap:4px;margin-bottom:4px}.custom-label{font-weight:500}.required-asterisk{color:red}.optional-text{color:#9b9b9b;font-size:14px;font-weight:400}.autocomplete-field{width:100%;display:flex;align-items:center}.autocomplete-button{margin-left:4px}@media (max-width: 600px){.main-auto-complete,.mat-field-wrapper,.autocomplete-field{flex-direction:column;width:100%}.autocomplete-button{margin-left:0;margin-top:4px}}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
1705
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AutoCompleteComponent, isStandalone: true, selector: "app-auto-complete", inputs: { field: "field", form: "form", defaultValue: "defaultValue", readonly: "readonly", supportingAttributes: "supportingAttributes" }, outputs: { selectedValue: "selectedValue" }, viewQueries: [{ propertyName: "matACTrigger", first: true, predicate: ["autocompleteTrigger"], descendants: true }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"field\" class=\"main-auto-complete\">\r\n <div class=\"mat-field-wrapper\" [formGroup]=\"form\">\r\n\r\n <div class=\"label-and-asterisk-container\">\r\n <span class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n\r\n <mat-form-field class=\"autocomplete-field\" appearance=\"outline\">\r\n <input type=\"text\"\r\n [placeholder]=\"'search_placeholder' | translate\"\r\n [id]=\"getId()\"\r\n [formControl]=\"myControl\"\r\n (keydown)=\"onKeydown($event, autocompleteTrigger)\"\r\n [matAutocomplete]=\"auto\"\r\n matInput\r\n [required]=\"isRequired\"\r\n #autocompleteTrigger=\"matAutocompleteTrigger\"\r\n [readonly]=\"readonly\"\r\n >\r\n\r\n <button mat-button matSuffix\r\n color=\"primary\"\r\n class=\"autocomplete-button\"\r\n (click)=\"autocompleteTrigger.openPanel(); filterLookupItems('', autocompleteTrigger); $event.stopPropagation()\"\r\n [attr.id]=\"'autocomplete-trigger-' + field.property\">\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n\r\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption [displayWith]=\"displayFn.bind(this)\"\r\n (optionSelected)=\"itemSelected($event.option.value)\"\r\n (closed)=\"closed()\">\r\n <ng-container *ngIf=\"!field.readonly\">\r\n <mat-option *ngIf=\"items.length > 1 && lookupItems$\" [value]=\"null\">{{ \"none\" | translate }}</mat-option>\r\n <mat-option *ngFor=\"let item of lookupItems$ | async\" [value]=\"item\" [ngClass]=\"_allowSelection(item)\">\r\n {{ itemNameByLag(item) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n </div>\r\n</ng-container>\r\n", styles: [".main-auto-complete,.mat-field-wrapper{display:flex;flex-direction:column;width:100%}.label-and-asterisk-container{display:flex;align-items:center;gap:4px;margin-bottom:4px}.custom-label{font-weight:500}.required-asterisk{color:red}.optional-text{color:#9b9b9b;font-size:14px;font-weight:400}.autocomplete-field{width:100%;display:flex;align-items:center}.autocomplete-button{margin-left:4px}@media (max-width: 600px){.main-auto-complete,.mat-field-wrapper,.autocomplete-field{flex-direction:column;width:100%}.autocomplete-button{margin-left:0;margin-top:4px}}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
1702
1706
|
}
|
|
1703
1707
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
1704
1708
|
type: Component,
|
|
@@ -1711,7 +1715,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1711
1715
|
NgIf,
|
|
1712
1716
|
MatAutocomplete,
|
|
1713
1717
|
AsyncPipe,
|
|
1714
|
-
MatOption,
|
|
1718
|
+
MatOption$1,
|
|
1715
1719
|
NgClass,
|
|
1716
1720
|
MatIcon,
|
|
1717
1721
|
NgForOf,
|
|
@@ -2418,7 +2422,7 @@ class BaseFormCanvasComponent {
|
|
|
2418
2422
|
},
|
|
2419
2423
|
{ provide: MAT_DATE_FORMATS, useValue: DD_MM_YYYY_Format },
|
|
2420
2424
|
{ provide: MAT_DATE_LOCALE, useValue: 'en-GB' }
|
|
2421
|
-
], viewQueries: [{ propertyName: "fieldsInput", first: true, predicate: ["EquationValueInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"main-form-canvas\">\r\n <div class=\"form-wrapper\">\r\n <ng-container *ngIf=\"defaults\">\r\n <ng-container *ngIf=\"editable; else readonlyView\" class=\"form-container\">\r\n <form [formGroup]=\"formParam\" class=\"form-content\">\r\n <div class=\"form-row\">\r\n <div class=\"form-column\">\r\n <ng-container *ngFor=\"let row of screenFields | keyvalue\">\r\n <div class=\"row-container\">\r\n <ng-container *ngFor=\"let field of row.value\">\r\n <div class=\"field-column\" [style.flex]=\"field.fieldSize ? ('0 0 ' + field.fieldSize + '%') : '1 1 0'\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput\r\n [matDatepicker]=\"picker\"\r\n [value]=\"formParam.get(field.property)?.value\"\r\n (dateChange)=\"formParam.get(field.property).setValue($event.value)\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n formControlName=\"{{field.property}}\"\r\n [required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n\r\n <mat-datepicker #picker\r\n [startView]=\"getView(field)\"\r\n (yearSelected)=\"setMonthAndYear($event, picker, field)\"\r\n panelClass=\"example-month-picker\">\r\n </mat-datepicker>\r\n\r\n <mat-error *ngIf=\"showError(field.property)\" aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'phone-number'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container class=\"custom-ngx-mat-intl-tel-input\" *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <div class=\"phone-input-wrapper\">\r\n <ngx-mat-intl-tel-input\r\n formControlName=\"{{ field.property }}\"\r\n [inputPlaceholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [preferredCountries]=\"['qa']\"\r\n [enablePlaceholder]=\"true\"\r\n [enableSearch]=\"true\"\r\n [onlyCountries]=\"getCountryCodeList()\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n </ngx-mat-intl-tel-input>\r\n </div>\r\n\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'iban-text'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput\r\n class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n [type]=\"hide && !field.disabled ? 'password' : 'text'\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <!-- <mat-icon matSuffix-->\r\n <!-- (click)=\"hide = !hide\">-->\r\n <!-- {{ hide ? 'visibility_off' : 'visibility' }}-->\r\n <!-- </mat-icon>-->\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-icon *ngIf=\"field.showSearchIcon\" matPrefix>search</mat-icon>\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n (keyup)=\"fixArabicNumbers($event.target)\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'chip-list'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n\r\n <mat-chip-grid [attr.aria-labelledby]=\"'label-' + field.property\"\r\n formControlName=\"{{ field.property }}\">\r\n <mat-chip-row\r\n *ngFor=\"let mail of splittedChips(formParam, field.property); let idx = index\"\r\n [removable]=\"removable\"\r\n (removed)=\"removeChipsItem(formParam, field.property, idx)\">\r\n {{ mail }}\r\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip-row>\r\n\r\n <input [attr.aria-labelledby]=\"'label-' + field.property\" [matChipInputFor]=\"null\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n (matChipInputTokenEnd)=\"addEmailToChips($event, formParam, field.property)\">\r\n </mat-chip-grid>\r\n <mat-error id=\"error-{{ field.property }}\" *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'amount'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"amountReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n type=\"number\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'sequence'\">\r\n <ng-container\r\n *ngIf=\"referenceAttributeTrue(field.property, 'autoGenerated'); else noSequence\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"true\"\r\n [disabled]=\"true\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #noSequence>\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [readonly]=\"false\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [required]=\"field.required\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-template>\r\n\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textareaReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <textarea cdkFocusInitial\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"3\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"></textarea>\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"numberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n type=\"number\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [required]=\"field.readonly ? false : field.required\"\r\n [readonly]=\"field.readonly\"\r\n [pattern]=\"field.pattern\">\r\n <mat-error id=\"error-{{ field.property }}\" *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'bigdecimal'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"numberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n inputmode=\"numeric\"\r\n formControlName=\"{{ field.property }}\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n numbersOnly [maxDecimals]=\"field.maxDecimals\"\r\n [pattern]=\"field.pattern\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [required]=\"field.readonly ? false : field.required\"\r\n [readonly]=\"field.readonly\">\r\n <mat-error id=\"error-{{ field.property }}\" *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"timeReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n type=\"time\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [required]=\"field.required\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"checkboxReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <mat-checkbox\r\n appearance=\"outline\"\r\n style=\"padding-bottom: 14px; padding-top: 14px;\"\r\n [disabled]=\"field.readonly\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n formControlName=\"{{ field.property }}\">\r\n {{ field.label! | translate }}\r\n <mat-error *ngIf=\"showError(field.property)\" aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-checkbox>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"toggleReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-slide-toggle\r\n [disabled]=\"field.readonly\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n formControlName=\"{{ field.property }}\">\r\n </mat-slide-toggle>\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'color-picker'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center\">\r\n <h4 style=\"margin-right: 10px\">{{ field.label! | translate }}</h4>\r\n <input\r\n ejs-colorpicker\r\n type=\"color\"\r\n id=\"colorpicker\"\r\n formControlName=\"{{ field.property }}\"\r\n [attr.aria-label]=\"field.label! | translate\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n />\r\n </div>\r\n <mat-error *ngIf=\"showError(field.property)\" aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'radio-button'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"radioButtonReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <mat-radio-group\r\n formControlName=\"{{field.property}}\"\r\n class=\"app-radio\"\r\n [attr.aria-label]=\"field.label! | translate\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\">\r\n <div class=\"field-row\">\r\n <div class=\"field-label\">\r\n <span class=\"custom-label\">{{ field.label! | translate }}</span>\r\n </div>\r\n <div class=\"field-input\">\r\n <div class=\"radio-group-custom\">\r\n <mat-radio-button\r\n *ngFor=\"let option of field.listOptions\"\r\n [value]=\"option\"\r\n [attr.aria-labelledby]=\"option\">\r\n {{ option | translate }}\r\n </mat-radio-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-radio-group>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"listReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\r\n <mat-select\r\n formControlName=\"{{field.property}}\"\r\n [attr.aria-label]=\"field.label! | translate\"\r\n [attr.aria-required]=\"field.required\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [disabled]=\"field.readonly\"\r\n [multiple]=\"field.multi || false\"\r\n [required]=\"field.readonly ? false : field.required\"\r\n [(value)]=\"field.defaultListOption\">\r\n <ng-container *ngIf=\"field.translate; else lookup_no_translation\">\r\n <mat-option\r\n *ngFor=\"let item of field.listOptions; let i = index\"\r\n [value]=\"item\">\r\n {{ friendlyName(field.label, field.property, item) | translate }}\r\n </mat-option>\r\n </ng-container>\r\n <ng-template #lookup_no_translation>\r\n <mat-option\r\n *ngFor=\"let item of field.listOptions\"\r\n [value]=\"item\">\r\n {{ getOptionValue(item) }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'attachment'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <app-attachment-uploader\r\n [acceptedTypes]=\"getAcceptedFileTypes(field)\"\r\n (fileSelected)=\"onAttachmentFileSelected($event, field)\"\r\n style=\"margin-top: 5px\">\r\n </app-attachment-uploader>\r\n </ng-container>\r\n <mat-error class=\"iq-error\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'lookup'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"lookupReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <app-auto-complete\r\n [form]=\"formParam\"\r\n [field]=\"field\"\r\n [supportingAttributes]=\"supportingAttributes\"\r\n [defaultValue]=\"this.formParam.get(field.property)?.value\"\r\n (selectedValue)=\"patchLookupValue($event, field.property)\">\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </app-auto-complete>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"currencyReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <!-- Uncomment and use the currency control when ready -->\r\n <!-- <app-currency\r\n [form]=\"formParam\"\r\n [field]=\"field\"\r\n [defaultValue]=\"this.formParam.get(field.property)?.value\"\r\n (selectedValue)=\"patchCurrencyValue($event, field.property)\">\r\n </app-currency> -->\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multi-select'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"multiSelectReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <app-multi-auto-complete\r\n [form]=\"formParam\"\r\n [field]=\"field\"\r\n [defaultValue]=\"getMultiValue(field)\"\r\n (selectedValue)=\"patchMultiSelectValue($event, field.property)\">\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </app-multi-auto-complete>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'rich-text'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <!-- Uncomment and use the rich text editor when ready -->\r\n <!-- <ckeditor\r\n [editor]=\"Editor\"\r\n [disabled]=\"field.readonly\"\r\n formControlName=\"{{field.property}}\">\r\n </ckeditor> -->\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'divider'\">\r\n <mat-divider></mat-divider>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'hyper-text'\">\r\n <div>\r\n <mat-label\r\n (click)=\"getHyperTextEvent()\"\r\n class=\"hyper-link\">\r\n {{ field.label! | translate }}\r\n </mat-label>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'section-title'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div class=\"hrdivider-mid\">\r\n <span>{{ field.label | translate }}</span>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'equation-builder'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\" dir=\"ltr\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- <ng-container *ngSwitchCase=\"'equation-builder'\" [formGroup]=\"formParam\">-->\r\n <!-- <ng-container *ngIf=\"showField(defaults, field)\">-->\r\n <!-- <ng-container *ngIf=\"!workflowEditableField(field)\">-->\r\n <!-- <ng-container-->\r\n <!-- [ngTemplateOutlet]=\"dateReadonly\"-->\r\n <!-- [ngTemplateOutletContext]=\"{ field: field }\">-->\r\n <!-- </ng-container>-->\r\n <!-- </ng-container>-->\r\n <!-- <ng-container *ngIf=\"workflowEditableField(field)\">-->\r\n <!-- <div style=\"display: flex; width: 350%\">-->\r\n <!-- <mat-label>{{ field.label! | translate }}</mat-label>-->\r\n <!-- <mat-form-field style=\"width: 400%\" appearance=\"outline\">-->\r\n <!-- <mat-chip-grid #chipGrid>-->\r\n <!-- <ng-container *ngFor=\"let equationValue of equationValues(); let i = index\">-->\r\n <!-- <mat-chip-row (removed)=\"remove(equationValue, i)\">-->\r\n <!-- {{ equationValue }}-->\r\n <!-- <button-->\r\n <!-- matChipRemove-->\r\n <!-- [attr.aria-label]=\"'remove ' + equationValue\">-->\r\n <!-- <mat-icon>cancel</mat-icon>-->\r\n <!-- </button>-->\r\n <!-- </mat-chip-row>-->\r\n <!-- </ng-container>-->\r\n <!-- </mat-chip-grid>-->\r\n <!-- <input-->\r\n <!-- [(ngModel)]=\"currentEquationValue\"-->\r\n <!-- [matChipInputFor]=\"chipGrid\"-->\r\n <!-- [matAutocomplete]=\"auto\"-->\r\n <!-- [ngModelOptions]=\"{ standalone: true }\"-->\r\n <!-- [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"-->\r\n <!-- (matChipInputTokenEnd)=\"add($event)\"-->\r\n <!-- aria-label=\"Add equation value\" />-->\r\n <!-- <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">-->\r\n <!-- <ng-container *ngFor=\"let filteredField of (equationFilteredFields() | async)\">-->\r\n <!-- <mat-option [value]=\"filteredField\">{{ filteredField }}</mat-option>-->\r\n <!-- </ng-container>-->\r\n <!-- </mat-autocomplete>-->\r\n <!-- </mat-form-field>-->\r\n <!-- </div>-->\r\n <!-- <mat-error class=\"iq-error\" *ngIf=\"showError(field.property)\" aria-live=\"assertive\">-->\r\n <!-- {{ getErrors(field.property) | translate }}-->\r\n <!-- </mat-error>-->\r\n <!-- </ng-container>-->\r\n <!-- </ng-container>-->\r\n <!-- </ng-container>-->\r\n\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n</div>\r\n<ng-template #dateReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) | date: 'dd/MM/yyyy' }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #timeReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ formatTimeToDate(defaults[field.property]) | date: 'shortTime' }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #phoneNumberReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #textReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\" *ngIf=\"!field.advancedFilter\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #textareaReadonly let-field=\"field\">\r\n <ng-container *ngIf=\"field.textFormat === 'json'; else normalText\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <div class=\"readonly-value json-viewer\">\r\n <ngx-json-viewer [json]=\"extractJsonFieldName(defaults, field.property)\" [expanded]=\"true\"></ngx-json-viewer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #normalText>\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #numberReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #currencyReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #radioButtonReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ translateLable(defaults[field.property]) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #richTextReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\" [innerHtml]=\"extractFieldName(defaults, field.property)\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #checkboxReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n <mat-icon color=\"warn\" *ngIf=\"extractFieldName(defaults, field.property); else showNo\">done</mat-icon>\r\n <ng-template #showNo>\r\n <mat-icon color=\"warn\">close</mat-icon>\r\n </ng-template>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n <mat-icon color=\"warn\" *ngIf=\"extractFieldName(defaults, field.property); else showNo\">done</mat-icon>\r\n <ng-template #showNo>\r\n <mat-icon color=\"warn\">close</mat-icon>\r\n </ng-template>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #listReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\" *ngIf=\"field.translate; else noTranslate\">\r\n {{ listShowValue(defaults, field) | translate }}\r\n </span>\r\n <ng-template #noTranslate>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #sequenceReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #lookupReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n {{ extractFieldName(defaults, field.property)?.[translateService.getDefaultLang() === 'en' ? 'englishName' : 'arabicName'] }}\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #amountReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n {{ extractFieldName(defaults, field.property) | currency: currency }}\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #multiSelectReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <mat-chip-grid class=\"readonly-value chipList\">\r\n <mat-chip *ngFor=\"let filedProp of showMultiSelectValuesAsReadonly(field)\">\r\n {{ filedProp }}\r\n </mat-chip>\r\n </mat-chip-grid>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #chipListReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHTML]=\"field.label | translate\"></label>\r\n <mat-chip-listbox class=\"readonly-value chipList\">\r\n <mat-chip-option *ngFor=\"let loc of splitReadonly(extractFieldName(defaults, field.property))\"\r\n [selectable]=\"true\"\r\n color=\"warn\"\r\n [removable]=\"false\">\r\n {{ loc }}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #readonlyView>\r\n <div class=\"row-wrapper\">\r\n <div class=\"column-wrapper\">\r\n <ng-container *ngFor=\"let row of screenFields | keyvalue\">\r\n <div class=\"row-container\">\r\n <ng-container *ngFor=\"let field of row.value\">\r\n <div class=\"field-column readonly-item\" [style.flex]=\"field.fieldSize ? ('0 0 ' + field.fieldSize + '%') : '1 1 0'\">\r\n\r\n <ng-container [ngSwitch]=\"field.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngTemplateOutlet]=\"dateReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ng-container [ngTemplateOutlet]=\"timeReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'phone-number'\">\r\n <ng-container [ngTemplateOutlet]=\"phoneNumberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <ng-container [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ng-container [ngTemplateOutlet]=\"textareaReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ng-container [ngTemplateOutlet]=\"numberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <ng-container [ngTemplateOutlet]=\"currencyReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radio-button'\">\r\n <ng-container [ngTemplateOutlet]=\"radioButtonReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container [ngTemplateOutlet]=\"checkboxReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ng-container [ngTemplateOutlet]=\"toggleReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'status'\">\r\n <ng-container [ngTemplateOutlet]=\"checkboxReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'lookup'\">\r\n <ng-container [ngTemplateOutlet]=\"lookupReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'amount'\">\r\n <ng-container [ngTemplateOutlet]=\"amountReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multi-select'\">\r\n <ng-container [ngTemplateOutlet]=\"multiSelectReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'chip-list'\">\r\n <ng-container [ngTemplateOutlet]=\"chipListReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'sequence'\">\r\n <ng-container [ngTemplateOutlet]=\"sequenceReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <ng-container [ngTemplateOutlet]=\"listReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'iban-text'\">\r\n <p class=\"label\">\r\n <span [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></span>\r\n <span> : </span>\r\n <span class=\"value\" [innerHtml]=\"extractFieldName(defaults, field.property)\"></span>\r\n </p>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'section-title'\">\r\n <div class=\"hrdivider-mid\">\r\n <span>{{ field.label | translate }}</span>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n", styles: [".main-form-canvas{display:flex;flex-direction:row;gap:10px;align-items:flex-start;justify-content:flex-start;width:100%;flex-wrap:wrap}.form-wrapper{display:flex;flex-direction:column;flex:1}.form-container{display:flex;flex-direction:column;width:100%}.row-container{display:flex;flex-direction:row;gap:20px;flex-wrap:wrap;width:100%}.field-column{display:flex;flex-direction:column;flex:1}.label-and-asterisk-container{display:flex;align-items:center;gap:4px}.optional-text{color:#9b9b9b;font-size:11px;font-weight:400;line-height:1.4}.full-width{width:100%}.readonly-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:14px;padding:4px 0;width:100%}.readonly-item .readonly-label{font-weight:500;color:#9b9b9b;font-size:14px}.readonly-item .readonly-value{font-weight:500;color:#222;word-break:break-word;font-size:14px}.readonly-item .json-viewer{width:100%}.readonly-item .chipList{display:flex;flex-wrap:wrap;gap:4px}.readonly-item mat-icon{font-size:18px;vertical-align:middle}.row-wrapper{display:flex;flex-direction:row;gap:20px;width:100%;flex-wrap:wrap}.column-wrapper{display:flex;flex-direction:column;width:100%;align-items:flex-start}.row-container{display:flex;flex-direction:row;gap:20px;width:100%;flex-wrap:wrap}.field-column{display:flex;flex-direction:column;min-width:50px!important}.field-row{display:flex;flex-direction:row;gap:10px;width:100%;align-items:flex-start}.field-label{flex:0 0 40%;display:flex;flex-direction:column;justify-content:center}.field-input{flex:0 0 60%;display:flex;flex-direction:column}.radio-group-custom{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px}@media (max-width: 600px){.main-form-canvas{flex-direction:column}.row-container{flex-direction:column;gap:10px}.field-column{width:100%;flex:1 1 100%!important}.column-wrapper{align-items:center}.field-row{flex-direction:column}.field-label,.field-input{flex:1 1 100%}.radio-group-custom{flex-direction:column;gap:5px}}.custom-ngx-mat-intl-tel-input[readonly] input,.custom-ngx-mat-intl-tel-input.ngx-mat-intl-tel-input input[disabled]{pointer-events:none!important;background-color:#f5f5f5!important;color:#444!important}.custom-ngx-mat-intl-tel-input .iti__flag-container,.custom-ngx-mat-intl-tel-input .iti__selected-flag{pointer-events:none!important;opacity:.6}.custom-ngx-mat-intl-tel-input{pointer-events:none!important}@media (max-width: 960px){.row-wrapper,.row-container{flex-direction:column}.row-container{gap:15px}.field-column{flex:1 1 100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "ngmodule", type: NgxJsonViewerModule }, { kind: "component", type: i10.NgxJsonViewerComponent, selector: "ngx-json-viewer", inputs: ["json", "expanded", "depth", "_currentDepth"] }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "component", type: NgxMatIntlTelInputComponent, selector: "ngx-mat-intl-tel-input", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }, { kind: "component", type: MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: MultiAutoCompleteComponent, selector: "app-multi-auto-complete", inputs: ["field", "form", "defaultValue", "pathParam", "readonly"], outputs: ["selectedValue"] }, { kind: "component", type: AutoCompleteComponent, selector: "app-auto-complete", inputs: ["field", "form", "defaultValue", "readonly", "supportingAttributes"], outputs: ["selectedValue"] }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: AttachmentUploaderComponent, selector: "app-attachment-uploader", inputs: ["acceptedTypes"], outputs: ["fileSelected"] }, { kind: "directive", type: DecimalOnlyDirective, selector: "[numbersOnly]", inputs: ["maxDecimals"] }] }); }
|
|
2425
|
+
], viewQueries: [{ propertyName: "fieldsInput", first: true, predicate: ["EquationValueInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"main-form-canvas\">\r\n <div class=\"form-wrapper\">\r\n <ng-container *ngIf=\"defaults\">\r\n <ng-container *ngIf=\"editable; else readonlyView\" class=\"form-container\">\r\n <form [formGroup]=\"formParam\" class=\"form-content\">\r\n <div class=\"form-row\">\r\n <div class=\"form-column\">\r\n <ng-container *ngFor=\"let row of screenFields | keyvalue\">\r\n <div class=\"row-container\">\r\n <ng-container *ngFor=\"let field of row.value\">\r\n <div class=\"field-column\" [style.flex]=\"field.fieldSize ? ('0 0 ' + field.fieldSize + '%') : '1 1 0'\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput\r\n [matDatepicker]=\"picker\"\r\n [value]=\"formParam.get(field.property)?.value\"\r\n (dateChange)=\"formParam.get(field.property).setValue($event.value)\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n formControlName=\"{{field.property}}\"\r\n [required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n\r\n <mat-datepicker #picker\r\n [startView]=\"getView(field)\"\r\n (yearSelected)=\"setMonthAndYear($event, picker, field)\"\r\n panelClass=\"example-month-picker\">\r\n </mat-datepicker>\r\n\r\n <mat-error *ngIf=\"showError(field.property)\" aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'phone-number'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container class=\"custom-ngx-mat-intl-tel-input\" *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <div class=\"phone-input-wrapper\">\r\n <ngx-mat-intl-tel-input\r\n formControlName=\"{{ field.property }}\"\r\n [inputPlaceholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [preferredCountries]=\"['qa']\"\r\n [enablePlaceholder]=\"true\"\r\n [enableSearch]=\"true\"\r\n [onlyCountries]=\"getCountryCodeList()\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n </ngx-mat-intl-tel-input>\r\n </div>\r\n\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'iban-text'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput\r\n class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n [type]=\"hide && !field.disabled ? 'password' : 'text'\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <!-- <mat-icon matSuffix-->\r\n <!-- (click)=\"hide = !hide\">-->\r\n <!-- {{ hide ? 'visibility_off' : 'visibility' }}-->\r\n <!-- </mat-icon>-->\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-icon *ngIf=\"field.showSearchIcon\" matPrefix>search</mat-icon>\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n (keyup)=\"fixArabicNumbers($event.target)\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'chip-list'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n\r\n <mat-chip-grid [attr.aria-labelledby]=\"'label-' + field.property\"\r\n formControlName=\"{{ field.property }}\">\r\n <mat-chip-row\r\n *ngFor=\"let mail of splittedChips(formParam, field.property); let idx = index\"\r\n [removable]=\"removable\"\r\n (removed)=\"removeChipsItem(formParam, field.property, idx)\">\r\n {{ mail }}\r\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip-row>\r\n\r\n <input [attr.aria-labelledby]=\"'label-' + field.property\" [matChipInputFor]=\"null\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n (matChipInputTokenEnd)=\"addEmailToChips($event, formParam, field.property)\">\r\n </mat-chip-grid>\r\n <mat-error id=\"error-{{ field.property }}\" *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'amount'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"amountReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n type=\"number\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'sequence'\">\r\n <ng-container\r\n *ngIf=\"referenceAttributeTrue(field.property, 'autoGenerated'); else noSequence\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"true\"\r\n [disabled]=\"true\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #noSequence>\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required\" class=\"required-asterisk\"> * </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [readonly]=\"false\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [required]=\"field.required\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-template>\r\n\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textareaReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <textarea cdkFocusInitial\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"3\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"></textarea>\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"numberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n type=\"number\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [required]=\"field.readonly ? false : field.required\"\r\n [readonly]=\"field.readonly\"\r\n [pattern]=\"field.pattern\">\r\n <mat-error id=\"error-{{ field.property }}\" *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'bigdecimal'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"numberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n inputmode=\"numeric\"\r\n formControlName=\"{{ field.property }}\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n numbersOnly [maxDecimals]=\"field.maxDecimals\"\r\n [pattern]=\"field.pattern\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [required]=\"field.readonly ? false : field.required\"\r\n [readonly]=\"field.readonly\">\r\n <mat-error id=\"error-{{ field.property }}\" *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"timeReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n class=\"app-input\"\r\n formControlName=\"{{ field.property }}\"\r\n type=\"time\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n [required]=\"field.required\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"checkboxReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <mat-checkbox\r\n appearance=\"outline\"\r\n style=\"padding-bottom: 14px; padding-top: 14px;\"\r\n [disabled]=\"field.readonly\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n formControlName=\"{{ field.property }}\">\r\n {{ field.label! | translate }}\r\n <mat-error *ngIf=\"showError(field.property)\" aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-checkbox>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"toggleReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-slide-toggle\r\n [disabled]=\"field.readonly\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\"\r\n formControlName=\"{{ field.property }}\">\r\n </mat-slide-toggle>\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'color-picker'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center\">\r\n <h4 style=\"margin-right: 10px\">{{ field.label! | translate }}</h4>\r\n <input\r\n ejs-colorpicker\r\n type=\"color\"\r\n id=\"colorpicker\"\r\n formControlName=\"{{ field.property }}\"\r\n [attr.aria-label]=\"field.label! | translate\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n />\r\n </div>\r\n <mat-error *ngIf=\"showError(field.property)\" aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'radio-button'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"radioButtonReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <mat-radio-group\r\n formControlName=\"{{field.property}}\"\r\n class=\"app-radio\"\r\n [attr.aria-label]=\"field.label! | translate\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\">\r\n <div class=\"field-row\">\r\n <div class=\"field-label\">\r\n <span class=\"custom-label\">{{ field.label! | translate }}</span>\r\n </div>\r\n <div class=\"field-input\">\r\n <div class=\"radio-group-custom\">\r\n <mat-radio-button\r\n *ngFor=\"let option of field.listOptions\"\r\n [value]=\"option\"\r\n [attr.aria-labelledby]=\"option\">\r\n {{ option | translate }}\r\n </mat-radio-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-radio-group>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"listReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\r\n <mat-select\r\n formControlName=\"{{field.property}}\"\r\n [attr.aria-label]=\"field.label! | translate\"\r\n [attr.aria-required]=\"field.required\"\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [disabled]=\"field.readonly\"\r\n [multiple]=\"field.multi || false\"\r\n [required]=\"field.readonly ? false : field.required\"\r\n [(value)]=\"field.defaultListOption\">\r\n <ng-container *ngIf=\"field.translate; else lookup_no_translation\">\r\n <mat-option\r\n *ngFor=\"let item of field.listOptions; let i = index\"\r\n [value]=\"item\">\r\n {{ friendlyName(field.label, field.property, item) | translate }}\r\n </mat-option>\r\n </ng-container>\r\n <ng-template #lookup_no_translation>\r\n <mat-option\r\n *ngFor=\"let item of field.listOptions\"\r\n [value]=\"item\">\r\n {{ getOptionValue(item) }}\r\n </mat-option>\r\n </ng-template>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'attachment'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <app-attachment-uploader\r\n [acceptedTypes]=\"getAcceptedFileTypes(field)\"\r\n (fileSelected)=\"onAttachmentFileSelected($event, field)\"\r\n style=\"margin-top: 5px\">\r\n </app-attachment-uploader>\r\n </ng-container>\r\n <mat-error class=\"iq-error\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'lookup'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"lookupReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <app-auto-complete\r\n [form]=\"formParam\"\r\n [field]=\"field\"\r\n [supportingAttributes]=\"supportingAttributes\"\r\n [defaultValue]=\"this.formParam.get(field.property)?.value\"\r\n (selectedValue)=\"patchLookupValue($event, field.property)\">\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </app-auto-complete>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"currencyReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <!-- Uncomment and use the currency control when ready -->\r\n <!-- <app-currency\r\n [form]=\"formParam\"\r\n [field]=\"field\"\r\n [defaultValue]=\"this.formParam.get(field.property)?.value\"\r\n (selectedValue)=\"patchCurrencyValue($event, field.property)\">\r\n </app-currency> -->\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multi-select'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"multiSelectReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <app-multi-auto-complete\r\n [form]=\"formParam\"\r\n [field]=\"field\"\r\n [defaultValue]=\"getMultiValue(field)\"\r\n (selectedValue)=\"patchMultiSelectValue($event, field.property)\">\r\n <mat-error\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </app-multi-auto-complete>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'rich-text'\" [formGroup]=\"formParam\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <!-- Uncomment and use the rich text editor when ready -->\r\n <!-- <ckeditor\r\n [editor]=\"Editor\"\r\n [disabled]=\"field.readonly\"\r\n formControlName=\"{{field.property}}\">\r\n </ckeditor> -->\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'divider'\">\r\n <mat-divider></mat-divider>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'hyper-text'\">\r\n <div>\r\n <mat-label\r\n (click)=\"getHyperTextEvent()\"\r\n class=\"hyper-link\">\r\n {{ field.label! | translate }}\r\n </mat-label>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'section-title'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <div class=\"hrdivider-mid\">\r\n <span>{{ field.label | translate }}</span>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'equation-builder'\">\r\n <ng-container *ngIf=\"showField(defaults, field)\">\r\n <ng-container *ngIf=\"!workflowEditableField(field)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"workflowEditableField(field)\">\r\n <div class=\"label-and-asterisk-container\">\r\n <span *ngIf=\"!field.hideLabel\" class=\"custom-label\" id=\"label-{{field.property}}\">\r\n {{ field.label! | translate }}\r\n </span>\r\n <span *ngIf=\"field.required && !field.hideLabel\" class=\"required-asterisk\"> * </span>\r\n <span *ngIf=\"!field.required && !field.hideLabel && !field.readonly\" class=\"optional-text\"> {{ 'optional' | translate }} </span>\r\n </div>\r\n <mat-form-field appearance=\"outline\">\r\n <input class=\"app-input\" dir=\"ltr\"\r\n formControlName=\"{{ field.property }}\"\r\n matInput\r\n [placeholder]=\"field.placeholder ? (labelKeyPlaceHolder(field) | translate) : ''\"\r\n [readonly]=\"field.readonly\"\r\n [required]=\"field.required\"\r\n [attr.aria-required]=\"field.required\"\r\n [attr.aria-invalid]=\"showError(field.property)\"\r\n [attr.aria-labelledby]=\"'label-' + field.property\"\r\n [attr.aria-describedby]=\"'error-' + field.property\">\r\n <mat-error\r\n id=\"error-{{ field.property }}\"\r\n *ngIf=\"showError(field.property)\"\r\n aria-live=\"assertive\">\r\n {{ getErrors(field.property) | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- <ng-container *ngSwitchCase=\"'equation-builder'\" [formGroup]=\"formParam\">-->\r\n <!-- <ng-container *ngIf=\"showField(defaults, field)\">-->\r\n <!-- <ng-container *ngIf=\"!workflowEditableField(field)\">-->\r\n <!-- <ng-container-->\r\n <!-- [ngTemplateOutlet]=\"dateReadonly\"-->\r\n <!-- [ngTemplateOutletContext]=\"{ field: field }\">-->\r\n <!-- </ng-container>-->\r\n <!-- </ng-container>-->\r\n <!-- <ng-container *ngIf=\"workflowEditableField(field)\">-->\r\n <!-- <div style=\"display: flex; width: 350%\">-->\r\n <!-- <mat-label>{{ field.label! | translate }}</mat-label>-->\r\n <!-- <mat-form-field style=\"width: 400%\" appearance=\"outline\">-->\r\n <!-- <mat-chip-grid #chipGrid>-->\r\n <!-- <ng-container *ngFor=\"let equationValue of equationValues(); let i = index\">-->\r\n <!-- <mat-chip-row (removed)=\"remove(equationValue, i)\">-->\r\n <!-- {{ equationValue }}-->\r\n <!-- <button-->\r\n <!-- matChipRemove-->\r\n <!-- [attr.aria-label]=\"'remove ' + equationValue\">-->\r\n <!-- <mat-icon>cancel</mat-icon>-->\r\n <!-- </button>-->\r\n <!-- </mat-chip-row>-->\r\n <!-- </ng-container>-->\r\n <!-- </mat-chip-grid>-->\r\n <!-- <input-->\r\n <!-- [(ngModel)]=\"currentEquationValue\"-->\r\n <!-- [matChipInputFor]=\"chipGrid\"-->\r\n <!-- [matAutocomplete]=\"auto\"-->\r\n <!-- [ngModelOptions]=\"{ standalone: true }\"-->\r\n <!-- [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"-->\r\n <!-- (matChipInputTokenEnd)=\"add($event)\"-->\r\n <!-- aria-label=\"Add equation value\" />-->\r\n <!-- <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">-->\r\n <!-- <ng-container *ngFor=\"let filteredField of (equationFilteredFields() | async)\">-->\r\n <!-- <mat-option [value]=\"filteredField\">{{ filteredField }}</mat-option>-->\r\n <!-- </ng-container>-->\r\n <!-- </mat-autocomplete>-->\r\n <!-- </mat-form-field>-->\r\n <!-- </div>-->\r\n <!-- <mat-error class=\"iq-error\" *ngIf=\"showError(field.property)\" aria-live=\"assertive\">-->\r\n <!-- {{ getErrors(field.property) | translate }}-->\r\n <!-- </mat-error>-->\r\n <!-- </ng-container>-->\r\n <!-- </ng-container>-->\r\n <!-- </ng-container>-->\r\n\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n</div>\r\n<ng-template #dateReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) | date: 'dd/MM/yyyy' }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #timeReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ formatTimeToDate(defaults[field.property]) | date: 'shortTime' }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #phoneNumberReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #textReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\" *ngIf=\"!field.advancedFilter\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #textareaReadonly let-field=\"field\">\r\n <ng-container *ngIf=\"field.textFormat === 'json'; else normalText\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <div class=\"readonly-value json-viewer\">\r\n <ngx-json-viewer [json]=\"extractJsonFieldName(defaults, field.property)\" [expanded]=\"true\"></ngx-json-viewer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #normalText>\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #numberReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #currencyReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #radioButtonReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ translateLable(defaults[field.property]) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #richTextReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\" [innerHtml]=\"extractFieldName(defaults, field.property)\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #checkboxReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n <mat-icon color=\"warn\" *ngIf=\"extractFieldName(defaults, field.property); else showNo\">done</mat-icon>\r\n <ng-template #showNo>\r\n <mat-icon color=\"warn\">close</mat-icon>\r\n </ng-template>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n <mat-icon color=\"warn\" *ngIf=\"extractFieldName(defaults, field.property); else showNo\">done</mat-icon>\r\n <ng-template #showNo>\r\n <mat-icon color=\"warn\">close</mat-icon>\r\n </ng-template>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #listReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\" *ngIf=\"field.translate; else noTranslate\">\r\n {{ listShowValue(defaults, field) | translate }}\r\n </span>\r\n <ng-template #noTranslate>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #sequenceReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">{{ extractFieldName(defaults, field.property) }}</span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #lookupReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n {{ extractFieldName(defaults, field.property)?.[translateService.getDefaultLang() === 'en' ? 'englishName' : 'arabicName'] }}\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #amountReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <span class=\"readonly-value\">\r\n {{ extractFieldName(defaults, field.property) | currency: currency }}\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #multiSelectReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></label>\r\n <mat-chip-grid class=\"readonly-value chipList\">\r\n <mat-chip *ngFor=\"let filedProp of showMultiSelectValuesAsReadonly(field)\">\r\n {{ filedProp }}\r\n </mat-chip>\r\n </mat-chip-grid>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #chipListReadonly let-field=\"field\">\r\n <div class=\"readonly-item\">\r\n <label class=\"readonly-label\" [innerHTML]=\"field.label | translate\"></label>\r\n <mat-chip-listbox class=\"readonly-value chipList\">\r\n <mat-chip-option *ngFor=\"let loc of splitReadonly(extractFieldName(defaults, field.property))\"\r\n [selectable]=\"true\"\r\n color=\"warn\"\r\n [removable]=\"false\">\r\n {{ loc }}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #readonlyView>\r\n <div class=\"row-wrapper\">\r\n <div class=\"column-wrapper\">\r\n <ng-container *ngFor=\"let row of screenFields | keyvalue\">\r\n <div class=\"row-container\">\r\n <ng-container *ngFor=\"let field of row.value\">\r\n <div class=\"field-column readonly-item\" [style.flex]=\"field.fieldSize ? ('0 0 ' + field.fieldSize + '%') : '1 1 0'\">\r\n\r\n <ng-container [ngSwitch]=\"field.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngTemplateOutlet]=\"dateReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ng-container [ngTemplateOutlet]=\"timeReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'phone-number'\">\r\n <ng-container [ngTemplateOutlet]=\"phoneNumberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <ng-container [ngTemplateOutlet]=\"textReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ng-container [ngTemplateOutlet]=\"textareaReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ng-container [ngTemplateOutlet]=\"numberReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <ng-container [ngTemplateOutlet]=\"currencyReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radio-button'\">\r\n <ng-container [ngTemplateOutlet]=\"radioButtonReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container [ngTemplateOutlet]=\"checkboxReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ng-container [ngTemplateOutlet]=\"toggleReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'status'\">\r\n <ng-container [ngTemplateOutlet]=\"checkboxReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'lookup'\">\r\n <ng-container [ngTemplateOutlet]=\"lookupReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'amount'\">\r\n <ng-container [ngTemplateOutlet]=\"amountReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multi-select'\">\r\n <ng-container [ngTemplateOutlet]=\"multiSelectReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'chip-list'\">\r\n <ng-container [ngTemplateOutlet]=\"chipListReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'sequence'\">\r\n <ng-container [ngTemplateOutlet]=\"sequenceReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <ng-container [ngTemplateOutlet]=\"listReadonly\"\r\n [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'iban-text'\">\r\n <p class=\"label\">\r\n <span [innerHtml]=\"!field.hideLabel ? (field.label | translate) : ''\"></span>\r\n <span> : </span>\r\n <span class=\"value\" [innerHtml]=\"extractFieldName(defaults, field.property)\"></span>\r\n </p>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'section-title'\">\r\n <div class=\"hrdivider-mid\">\r\n <span>{{ field.label | translate }}</span>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n", styles: [".main-form-canvas{display:flex;flex-direction:row;gap:10px;align-items:flex-start;justify-content:flex-start;width:100%;flex-wrap:wrap}.form-wrapper{display:flex;flex-direction:column;flex:1}.form-container{display:flex;flex-direction:column;width:100%}.row-container{display:flex;flex-direction:row;gap:20px;flex-wrap:wrap;width:100%}.field-column{display:flex;flex-direction:column;flex:1}.label-and-asterisk-container{display:flex;align-items:center;gap:4px}.optional-text{color:#9b9b9b;font-size:11px;font-weight:400;line-height:1.4}.full-width{width:100%}.readonly-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:14px;padding:4px 0;width:100%}.readonly-item .readonly-label{font-weight:500;color:#9b9b9b;font-size:14px}.readonly-item .readonly-value{font-weight:500;color:#222;word-break:break-word;font-size:14px}.readonly-item .json-viewer{width:100%}.readonly-item .chipList{display:flex;flex-wrap:wrap;gap:4px}.readonly-item mat-icon{font-size:18px;vertical-align:middle}.row-wrapper{display:flex;flex-direction:row;gap:20px;width:100%;flex-wrap:wrap}.column-wrapper{display:flex;flex-direction:column;width:100%;align-items:flex-start}.row-container{display:flex;flex-direction:row;gap:20px;width:100%;flex-wrap:wrap}.field-column{display:flex;flex-direction:column;min-width:50px!important}.field-row{display:flex;flex-direction:row;gap:10px;width:100%;align-items:flex-start}.field-label{flex:0 0 40%;display:flex;flex-direction:column;justify-content:center}.field-input{flex:0 0 60%;display:flex;flex-direction:column}.radio-group-custom{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px}@media (max-width: 600px){.main-form-canvas{flex-direction:column}.row-container{flex-direction:column;gap:10px}.field-column{width:100%;flex:1 1 100%!important}.column-wrapper{align-items:center}.field-row{flex-direction:column}.field-label,.field-input{flex:1 1 100%}.radio-group-custom{flex-direction:column;gap:5px}}.custom-ngx-mat-intl-tel-input[readonly] input,.custom-ngx-mat-intl-tel-input.ngx-mat-intl-tel-input input[disabled]{pointer-events:none!important;background-color:#f5f5f5!important;color:#444!important}.custom-ngx-mat-intl-tel-input .iti__flag-container,.custom-ngx-mat-intl-tel-input .iti__selected-flag{pointer-events:none!important;opacity:.6}.custom-ngx-mat-intl-tel-input{pointer-events:none!important}@media (max-width: 960px){.row-wrapper,.row-container{flex-direction:column}.row-container{gap:15px}.field-column{flex:1 1 100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$2, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "ngmodule", type: NgxJsonViewerModule }, { kind: "component", type: i10.NgxJsonViewerComponent, selector: "ngx-json-viewer", inputs: ["json", "expanded", "depth", "_currentDepth"] }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "component", type: NgxMatIntlTelInputComponent, selector: "ngx-mat-intl-tel-input", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }, { kind: "component", type: MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: MultiAutoCompleteComponent, selector: "app-multi-auto-complete", inputs: ["field", "form", "defaultValue", "pathParam", "readonly"], outputs: ["selectedValue"] }, { kind: "component", type: AutoCompleteComponent, selector: "app-auto-complete", inputs: ["field", "form", "defaultValue", "readonly", "supportingAttributes"], outputs: ["selectedValue"] }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: AttachmentUploaderComponent, selector: "app-attachment-uploader", inputs: ["acceptedTypes"], outputs: ["fileSelected"] }, { kind: "directive", type: DecimalOnlyDirective, selector: "[numbersOnly]", inputs: ["maxDecimals"] }] }); }
|
|
2422
2426
|
}
|
|
2423
2427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseFormCanvasComponent, decorators: [{
|
|
2424
2428
|
type: Component,
|
|
@@ -2449,7 +2453,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2449
2453
|
MatRadioButton,
|
|
2450
2454
|
MatSlideToggle,
|
|
2451
2455
|
MatSelect,
|
|
2452
|
-
MatOption$
|
|
2456
|
+
MatOption$2,
|
|
2453
2457
|
MatDivider,
|
|
2454
2458
|
DatePipe,
|
|
2455
2459
|
NgxJsonViewerModule,
|
|
@@ -3593,14 +3597,14 @@ class EquationBuilderComponent {
|
|
|
3593
3597
|
this.emitChange();
|
|
3594
3598
|
}
|
|
3595
3599
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EquationBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3596
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EquationBuilderComponent, isStandalone: true, selector: "lib-equation-builder", inputs: { form: "form", field: "field", isPending: "isPending", readOnly: "readOnly" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: "<div class=\"flex-row gap-10 fill align-start-center\">\r\n <ng-container *ngFor=\"let item of items; let i = index\">\r\n <div class=\"flex-row align-start-center gap-5\">\r\n <ng-container [ngSwitch]=\"item.type\">\r\n <ng-container *ngSwitchCase=\"'lookup'\">\r\n <app-auto-complete\r\n class=\"flex-full\"\r\n [field]=\"field\"\r\n [form]=\"form\"\r\n [defaultValue]=\"item.value\"\r\n (selectedValue)=\"onLookupChange(i, $event)\">\r\n </app-auto-complete>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <mat-form-field class=\"flex-none\" appearance=\"outline\" style=\"width: 100px\">\r\n <mat-select [disabled]=\"readOnly\" [value]=\"item.value\" (selectionChange)=\"onDropdownChange(i, $event.value)\">\r\n <mat-option *ngFor=\"let opt of operators\" [value]=\"opt.value\">\r\n {{ opt.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <button [disabled]=\"isPending\" mat-icon-button color=\"warn\" (click)=\"onClearAll()\" *ngIf=\"items.length > 0\" id=\"equation-clear-all-btn\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".flex-row{display:flex;flex-direction:row}.flex-column{display:flex;flex-direction:column}.flex-full{flex:1 1 auto}.flex-none{flex:0 0 auto}.fill{width:100%}.align-start-center{align-items:center;justify-content:flex-start}.align-center-center{align-items:center;justify-content:center}.gap-5{gap:5px}.gap-10{gap:10px}\n"], dependencies: [{ kind: "component", type: AutoCompleteComponent, selector: "app-auto-complete", inputs: ["field", "form", "defaultValue", "readonly", "supportingAttributes"], outputs: ["selectedValue"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$
|
|
3600
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EquationBuilderComponent, isStandalone: true, selector: "lib-equation-builder", inputs: { form: "form", field: "field", isPending: "isPending", readOnly: "readOnly" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: "<div class=\"flex-row gap-10 fill align-start-center\">\r\n <ng-container *ngFor=\"let item of items; let i = index\">\r\n <div class=\"flex-row align-start-center gap-5\">\r\n <ng-container [ngSwitch]=\"item.type\">\r\n <ng-container *ngSwitchCase=\"'lookup'\">\r\n <app-auto-complete\r\n class=\"flex-full\"\r\n [field]=\"field\"\r\n [form]=\"form\"\r\n [defaultValue]=\"item.value\"\r\n (selectedValue)=\"onLookupChange(i, $event)\">\r\n </app-auto-complete>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <mat-form-field class=\"flex-none\" appearance=\"outline\" style=\"width: 100px\">\r\n <mat-select [disabled]=\"readOnly\" [value]=\"item.value\" (selectionChange)=\"onDropdownChange(i, $event.value)\">\r\n <mat-option *ngFor=\"let opt of operators\" [value]=\"opt.value\">\r\n {{ opt.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <button [disabled]=\"isPending\" mat-icon-button color=\"warn\" (click)=\"onClearAll()\" *ngIf=\"items.length > 0\" id=\"equation-clear-all-btn\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [".flex-row{display:flex;flex-direction:row}.flex-column{display:flex;flex-direction:column}.flex-full{flex:1 1 auto}.flex-none{flex:0 0 auto}.fill{width:100%}.align-start-center{align-items:center;justify-content:flex-start}.align-center-center{align-items:center;justify-content:center}.gap-5{gap:5px}.gap-10{gap:10px}\n"], dependencies: [{ kind: "component", type: AutoCompleteComponent, selector: "app-auto-complete", inputs: ["field", "form", "defaultValue", "readonly", "supportingAttributes"], outputs: ["selectedValue"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$2, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
3597
3601
|
}
|
|
3598
3602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EquationBuilderComponent, decorators: [{
|
|
3599
3603
|
type: Component,
|
|
3600
3604
|
args: [{ selector: 'lib-equation-builder', standalone: true, imports: [
|
|
3601
3605
|
AutoCompleteComponent,
|
|
3602
3606
|
MatSelect,
|
|
3603
|
-
MatOption$
|
|
3607
|
+
MatOption$2,
|
|
3604
3608
|
MatFormField$1,
|
|
3605
3609
|
NgSwitch,
|
|
3606
3610
|
NgForOf,
|
|
@@ -4000,7 +4004,7 @@ class EditableBaseTableComponent extends BaseUtils {
|
|
|
4000
4004
|
// deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
4001
4005
|
// },
|
|
4002
4006
|
// { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
4003
|
-
], viewQueries: [{ propertyName: "uploaderComponent", first: true, predicate: ["uploader"], descendants: true }, { propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"baseTable flex-column\">\r\n <div class=\"left-align\">\r\n <app-attachment-uploader #uploader\r\n *ngIf=\"isBulkItemsSupported\"\r\n (fileSelected)=\"handleFileUpload($event)\">\r\n </app-attachment-uploader>\r\n </div>\r\n\r\n <div class=\"flex-row full-width\">\r\n <div class=\"flex-half flex-column align-center-start\">\r\n <app-title-bar [pageTitle]=\"pageInfo.hideTitle ? '' : pageInfo.labelsSection+'.list_title'\"\r\n [titleMode]=\"''\"\r\n [newAction]=\"false\"\r\n [showExtractButton]=\"!pageInfo.hideExtractButton\">\r\n </app-title-bar>\r\n <span class=\"font-small\">{{ 'totalCountItem' | translate }} : {{ this.totalElements }}</span>\r\n </div>\r\n <div class=\"flex-half flex-column align-start-end\">\r\n <mat-chip-listbox #box aria-label=\"Color selection\" [multiple]=\"false\" [value]=\"isPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\" *ngIf=\"pageInfo.draftSupported\">\r\n <mat-chip-option [selected]=\"!isPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n {{ 'finished' | translate }}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"isPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n {{ 'todo' | translate }}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"showSearch()\">\r\n <div class=\"flex-row full-width\">\r\n <div class=\"flex-80 flex-column align-start-end\">\r\n <app-base-form-canvas class=\"flex-fill\"\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"searchFormFields\"\r\n [editable]=\"true\"\r\n (formUpdated)=\"updateSearchForm($event)\">\r\n </app-base-form-canvas>\r\n </div>\r\n <div class=\"flex-15 flex-column align-start-end\">\r\n <div class=\"flex-row align-center-center gap-8 full-width\">\r\n <button mat-button color=\"primary\" type=\"button\" (click)=\"doSearch()\" id=\"editable-search-btn\">\r\n <mat-icon>search</mat-icon>\r\n {{ 'search' | translate }}\r\n </button>\r\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clearSearch()\" id=\"editable-clear-search-btn\">\r\n <mat-icon>clear</mat-icon>\r\n {{ 'clear' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"flex-row full-width baseTable__detailsColumn\">\r\n <div class=\"flex-full\">\r\n <ng-container *ngIf=\"isLoaded\">\r\n <div class=\"flex-row mainTable gap-0 align-start-start\">\r\n <form [formGroup]=\"formParam\" class=\"flex-fill\">\r\n <table [dataSource]=\"dataFormArray.controls\" class=\"flex-fill\" mat-table matSort>\r\n <ng-container *ngFor=\"let column of this.fields; let i = index\">\r\n <ng-container matColumnDef=\"{{column.property}}\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'equation-builder'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\" mat-cell>\r\n <lib-equation-builder\r\n [form]=\"element\"\r\n [field]=\"column\"\r\n [readOnly]=\"column.readonly\"\r\n [isPending]=\"isPending\"\r\n (valueChanged)=\"handleEquationChange($event, element, column)\">\r\n </lib-equation-builder>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'lookup'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <app-auto-complete\r\n [form]=\"element\"\r\n [field]=\"column\"\r\n [defaultValue]=\"element.get(column.property)?.value\"\r\n (selectedValue)=\"patchLookupValue($event, column.property)\">\r\n </app-auto-complete>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}</th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-label>{{element}}</mat-label>\r\n <mat-select\r\n formControlName=\"{{column.property}}\"\r\n [attr.aria-label]=\"column.label! | translate\"\r\n [multiple]=\"false\"\r\n [(value)]=\"element[column.property]\">\r\n <ng-container>\r\n <mat-option\r\n *ngFor=\"let item of column.listOptions\"\r\n [value]=\"item\">\r\n {{ getOptionValue(item) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stateType'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ 'action' | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td mainTable__td__text-secondary__td\" mat-cell>\r\n <div class=\"flex-column\">\r\n <div class=\"flex-row full-width\">\r\n <div class=\"flex-third flex-column align-center-center\">\r\n <button mat-button class=\"btn-none-background-primary\"\r\n color=\"primary\"\r\n [disabled]=\"disabledSaveButton(element)\"\r\n (click)=\"fieldButtonEvent(column,element,SAVE)\"\r\n [attr.id]=\"'editable-save-' + (element.value?.id || '')\">\r\n {{ getPositiveWfActionKey(element.value.stateType) | translate }}\r\n </button>\r\n </div>\r\n <div class=\"flex-third flex-column align-center-center\">\r\n <button *ngIf=\"isPending\" mat-button class=\"btn-none-background-primary\"\r\n color=\"accent\"\r\n (click)=\"fieldButtonEvent(column,element,REJECT)\"\r\n [attr.id]=\"'editable-reject-' + (element.value?.id || '')\">\r\n {{ getNegativeWfActionKey(element.value.stateType) | translate }}\r\n </button>\r\n </div>\r\n <div class=\"flex-third flex-column align-center-center\"></div>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <mat-label>{{ labelKey(column) | translate }}</mat-label>\r\n <input matInput\r\n [disabled]=\"column.readonly\"\r\n [readonly]=\"column.readonly\"\r\n [matDatepicker]=\"picker\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"multi-year\"\r\n (yearSelected)=\"setMonthAndYear($event, picker, element,column)\"\r\n panelClass=\"example-month-picker\"></mat-datepicker>\r\n\r\n </mat-form-field>\r\n <!-- <mat-form-field class=\"flex-auto\" appearance=\"outline\" fxFlexFill>-->\r\n <!-- <input matInput [formControl]=\"getField(element, column)\">-->\r\n <!-- </mat-form-field>-->\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <!-- Visually hidden label just to trigger the floating label and asterisk -->\r\n <mat-label>\r\n </mat-label>\r\n\r\n <input matInput\r\n type=\"number\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [readonly]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'status'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-checkbox\r\n style=\"padding-bottom: 14px; padding-top: 14px;\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\"\r\n [style.pointer-events]=\"column.readonly ? 'none' : 'auto'\"\r\n [style.opacity]=\"column.readonly ? 0.7 : 1\"\r\n (click)=\"column.readonly ? $event.preventDefault() : null\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <mat-label>\r\n {{ labelKey(column) | translate }}\r\n </mat-label>\r\n <input matInput\r\n type=\"text\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [readonly]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <input matInput\r\n [matDatepicker]=\"xpicker\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [readonly]=\"column.readonly\"\r\n [disabled]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"xpicker\"\r\n [disabled]=\"column.readonly\">\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #xpicker></mat-datepicker>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <input matInput\r\n [readonly]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [formControl]=\"getField(element, column)\">\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <tr *matHeaderRowDef=\"visibleColumns\" mat-header-row></tr>\r\n <tr (click)=\"onSelectItem(row)\" (auxclick)=\"openNewTab(row)\"\r\n *matRowDef=\"let row; columns: visibleColumns | paginate:config\"\r\n [attr.id]=\"'editable-row-' + (row?.value?.id || row?.value?.key || '')\"\r\n mat-row></tr>\r\n </table>\r\n </form>\r\n </div>\r\n\r\n <div *ngIf=\"noDataFound && !pageInfo.lazyLoadData\" class=\"flex-row dataNotFound\">\r\n <div class=\"flex-column flex-full\">\r\n <span class=\"dataNotFound__details\">\r\n <mat-icon class=\"dataNotFound__details__icon\">info</mat-icon>\r\n <span>{{ 'dataNotFound' | translate }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-row mainTable\" *ngIf=\"!selectedFileFromUploader\">\r\n <div>\r\n <button *ngIf=\"!isPending && pageInfo.hasAddButton\" mat-button color=\"primary\" type=\"button\"\r\n (click)=\"addNewItem()\" id=\"editable-add-item-btn\">\r\n <mat-icon>add_box</mat-icon>\r\n {{ translationKey | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-row flex-wrap align-center-center main-pagination\" *ngIf=\"totalElements > 0\">\r\n <div class=\"flex-column flex-full\">\r\n <app-paginator [currentPage]=\"pageIndex\" [totalItems]=\"totalElements\" [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"[5, 10, 25, 50]\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></app-paginator>\r\n </div>\r\n <div class=\"flex-column flex-full countItem hide-gt-xs\">\r\n <span class=\"countItem__totalElement\">{{ 'totalCountItem' | translate }} : {{ this.totalElements }}</span>\r\n </div>\r\n <div class=\"flex-column flex-2\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isBulkItemsSupported\" class=\"flex-row gap-10 align-start-start mainTable\">\r\n <div>\r\n <button mat-flat-button color=\"primary\" type=\"button\" (click)=\"addBulkItems()\" [disabled]=\"shouldDisableBulkAdd()\" id=\"editable-bulk-add-btn\">\r\n <mat-icon>add_box</mat-icon>\r\n {{ 'addAll' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <button mat-flat-button color=\"warn\" type=\"button\" [disabled]=\"!hasDataToClear()\" (click)=\"clearBulkItems()\" id=\"editable-bulk-clear-btn\">\r\n <mat-icon>delete</mat-icon>\r\n {{ 'clearAll' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".baseTable{padding:20px}.example-month-picker .mat-calendar-period-button{pointer-events:none}.example-month-picker .mat-calendar-arrow{display:none}.responsive-top-gap{margin-top:20px}@media (max-width: 959px){.responsive-top-gap{margin-top:1px}.baseTable{padding:20px;margin-inline:8px;width:max-content}}.flex-row{display:flex;flex-direction:row}.flex-column{display:flex;flex-direction:column}.flex-half{flex:0 0 50%}.flex-80{flex:0 0 80%}.flex-15{flex:0 0 15%}.flex-2{flex:0 0 2%}.flex-full{flex:0 0 100%}.align-start-start{justify-content:flex-start;align-items:flex-start}.align-start-end{justify-content:flex-end;align-items:flex-start}.align-center-start{justify-content:flex-start;align-items:center}.align-center-center{justify-content:center;align-items:center}.align-end-start{justify-content:flex-start;align-items:flex-end}.align-end-end{justify-content:flex-end;align-items:flex-end}.gap-8{gap:8px}.gap-10{gap:10px}.gap-0{gap:0px}@media (max-width: 959px){.flex-column.lt-md{flex-direction:column}.flex-row.lt-md{flex-direction:row}.flex-full.lt-md{flex:0 0 100%}.align-center-center.lt-md{justify-content:center;align-items:center}}@media (max-width: 599px){.flex-hide.gt-xs{display:none!important}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "ngmodule", type: NgxPaginationModule }, { kind: "pipe", type: i9$1.PaginatePipe, name: "paginate" }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: AutoCompleteComponent, selector: "app-auto-complete", inputs: ["field", "form", "defaultValue", "readonly", "supportingAttributes"], outputs: ["selectedValue"] }, { kind: "component", type: MatFormField$2, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: MatLabel$1, selector: "mat-label" }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { 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: PaginatorComponent, selector: "app-paginator", inputs: ["currentPage", "totalItems", "pageSize", "pageSizeOptions", "mobileLoadMoreIncrement", "displayedItems"], outputs: ["pageChange", "pageSizeChange", "loadMore"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "app-attachment-uploader", inputs: ["acceptedTypes"], outputs: ["fileSelected"] }, { kind: "component", type: EquationBuilderComponent, selector: "lib-equation-builder", inputs: ["form", "field", "isPending", "readOnly"], outputs: ["valueChanged"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$2, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], animations: [] }); }
|
|
4007
|
+
], viewQueries: [{ propertyName: "uploaderComponent", first: true, predicate: ["uploader"], descendants: true }, { propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"baseTable flex-column\">\r\n <div class=\"left-align\">\r\n <app-attachment-uploader #uploader\r\n *ngIf=\"isBulkItemsSupported\"\r\n (fileSelected)=\"handleFileUpload($event)\">\r\n </app-attachment-uploader>\r\n </div>\r\n\r\n <div class=\"flex-row full-width\">\r\n <div class=\"flex-half flex-column align-center-start\">\r\n <app-title-bar [pageTitle]=\"pageInfo.hideTitle ? '' : pageInfo.labelsSection+'.list_title'\"\r\n [titleMode]=\"''\"\r\n [newAction]=\"false\"\r\n [showExtractButton]=\"!pageInfo.hideExtractButton\">\r\n </app-title-bar>\r\n <span class=\"font-small\">{{ 'totalCountItem' | translate }} : {{ this.totalElements }}</span>\r\n </div>\r\n <div class=\"flex-half flex-column align-start-end\">\r\n <mat-chip-listbox #box aria-label=\"Color selection\" [multiple]=\"false\" [value]=\"isPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\" *ngIf=\"pageInfo.draftSupported\">\r\n <mat-chip-option [selected]=\"!isPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n {{ 'finished' | translate }}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"isPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n {{ 'todo' | translate }}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"showSearch()\">\r\n <div class=\"flex-row full-width\">\r\n <div class=\"flex-80 flex-column align-start-end\">\r\n <app-base-form-canvas class=\"flex-fill\"\r\n [pageInfo]=\"pageInfo\"\r\n [fields]=\"searchFormFields\"\r\n [editable]=\"true\"\r\n (formUpdated)=\"updateSearchForm($event)\">\r\n </app-base-form-canvas>\r\n </div>\r\n <div class=\"flex-15 flex-column align-start-end\">\r\n <div class=\"flex-row align-center-center gap-8 full-width\">\r\n <button mat-button color=\"primary\" type=\"button\" (click)=\"doSearch()\" id=\"editable-search-btn\">\r\n <mat-icon>search</mat-icon>\r\n {{ 'search' | translate }}\r\n </button>\r\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clearSearch()\" id=\"editable-clear-search-btn\">\r\n <mat-icon>clear</mat-icon>\r\n {{ 'clear' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"flex-row full-width baseTable__detailsColumn\">\r\n <div class=\"flex-full\">\r\n <ng-container *ngIf=\"isLoaded\">\r\n <div class=\"flex-row mainTable gap-0 align-start-start\">\r\n <form [formGroup]=\"formParam\" class=\"flex-fill\">\r\n <table [dataSource]=\"dataFormArray.controls\" class=\"flex-fill\" mat-table matSort>\r\n <ng-container *ngFor=\"let column of this.fields; let i = index\">\r\n <ng-container matColumnDef=\"{{column.property}}\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'equation-builder'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\" mat-cell>\r\n <lib-equation-builder\r\n [form]=\"element\"\r\n [field]=\"column\"\r\n [readOnly]=\"column.readonly\"\r\n [isPending]=\"isPending\"\r\n (valueChanged)=\"handleEquationChange($event, element, column)\">\r\n </lib-equation-builder>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'lookup'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <app-auto-complete\r\n [form]=\"element\"\r\n [field]=\"column\"\r\n [defaultValue]=\"element.get(column.property)?.value\"\r\n (selectedValue)=\"patchLookupValue($event, column.property)\">\r\n </app-auto-complete>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}</th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-label>{{element}}</mat-label>\r\n <mat-select\r\n formControlName=\"{{column.property}}\"\r\n [attr.aria-label]=\"column.label! | translate\"\r\n [multiple]=\"false\"\r\n [(value)]=\"element[column.property]\">\r\n <ng-container>\r\n <mat-option\r\n *ngFor=\"let item of column.listOptions\"\r\n [value]=\"item\">\r\n {{ getOptionValue(item) }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stateType'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ 'action' | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td mainTable__td__text-secondary__td\" mat-cell>\r\n <div class=\"flex-column\">\r\n <div class=\"flex-row full-width\">\r\n <div class=\"flex-third flex-column align-center-center\">\r\n <button mat-button class=\"btn-none-background-primary\"\r\n color=\"primary\"\r\n [disabled]=\"disabledSaveButton(element)\"\r\n (click)=\"fieldButtonEvent(column,element,SAVE)\"\r\n [attr.id]=\"'editable-save-' + (element.value?.id || '')\">\r\n {{ getPositiveWfActionKey(element.value.stateType) | translate }}\r\n </button>\r\n </div>\r\n <div class=\"flex-third flex-column align-center-center\">\r\n <button *ngIf=\"isPending\" mat-button class=\"btn-none-background-primary\"\r\n color=\"accent\"\r\n (click)=\"fieldButtonEvent(column,element,REJECT)\"\r\n [attr.id]=\"'editable-reject-' + (element.value?.id || '')\">\r\n {{ getNegativeWfActionKey(element.value.stateType) | translate }}\r\n </button>\r\n </div>\r\n <div class=\"flex-third flex-column align-center-center\"></div>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <mat-label>{{ labelKey(column) | translate }}</mat-label>\r\n <input matInput\r\n [disabled]=\"column.readonly\"\r\n [readonly]=\"column.readonly\"\r\n [matDatepicker]=\"picker\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"multi-year\"\r\n (yearSelected)=\"setMonthAndYear($event, picker, element,column)\"\r\n panelClass=\"example-month-picker\"></mat-datepicker>\r\n\r\n </mat-form-field>\r\n <!-- <mat-form-field class=\"flex-auto\" appearance=\"outline\" fxFlexFill>-->\r\n <!-- <input matInput [formControl]=\"getField(element, column)\">-->\r\n <!-- </mat-form-field>-->\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <!-- Visually hidden label just to trigger the floating label and asterisk -->\r\n <mat-label>\r\n </mat-label>\r\n\r\n <input matInput\r\n type=\"number\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [readonly]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'status'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-checkbox\r\n style=\"padding-bottom: 14px; padding-top: 14px;\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\"\r\n [style.pointer-events]=\"column.readonly ? 'none' : 'auto'\"\r\n [style.opacity]=\"column.readonly ? 0.7 : 1\"\r\n (click)=\"column.readonly ? $event.preventDefault() : null\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <mat-label>\r\n {{ labelKey(column) | translate }}\r\n </mat-label>\r\n <input matInput\r\n type=\"text\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [readonly]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>\r\n {{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <input matInput\r\n [matDatepicker]=\"xpicker\"\r\n [formControl]=\"getField(element, column)\"\r\n [required]=\"column.required\"\r\n [readonly]=\"column.readonly\"\r\n [disabled]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [attr.aria-labelledby]=\"'label-' + column.property\"\r\n [attr.aria-describedby]=\"'error-' + column.property\">\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"xpicker\"\r\n [disabled]=\"column.readonly\">\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #xpicker></mat-datepicker>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <th *matHeaderCellDef class=\"mainTable__th\" mat-header-cell>{{ labelKey(column) | translate }}\r\n </th>\r\n <td *matCellDef=\"let element\" class=\"mainTable__td\"\r\n [ngClass]=\"['mainTable__td__text-secondary__td']\"\r\n mat-cell>\r\n <mat-form-field class=\"flex-auto fx-flex-fill\" appearance=\"outline\">\r\n <input matInput\r\n [readonly]=\"column.readonly\"\r\n [attr.aria-required]=\"column.required\"\r\n [formControl]=\"getField(element, column)\">\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <tr *matHeaderRowDef=\"visibleColumns\" mat-header-row></tr>\r\n <tr (click)=\"onSelectItem(row)\" (auxclick)=\"openNewTab(row)\"\r\n *matRowDef=\"let row; columns: visibleColumns | paginate:config\"\r\n [attr.id]=\"'editable-row-' + (row?.value?.id || row?.value?.key || '')\"\r\n mat-row></tr>\r\n </table>\r\n </form>\r\n </div>\r\n\r\n <div *ngIf=\"noDataFound && !pageInfo.lazyLoadData\" class=\"flex-row dataNotFound\">\r\n <div class=\"flex-column flex-full\">\r\n <span class=\"dataNotFound__details\">\r\n <mat-icon class=\"dataNotFound__details__icon\">info</mat-icon>\r\n <span>{{ 'dataNotFound' | translate }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-row mainTable\" *ngIf=\"!selectedFileFromUploader\">\r\n <div>\r\n <button *ngIf=\"!isPending && pageInfo.hasAddButton\" mat-button color=\"primary\" type=\"button\"\r\n (click)=\"addNewItem()\" id=\"editable-add-item-btn\">\r\n <mat-icon>add_box</mat-icon>\r\n {{ translationKey | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-row flex-wrap align-center-center main-pagination\" *ngIf=\"totalElements > 0\">\r\n <div class=\"flex-column flex-full\">\r\n <app-paginator [currentPage]=\"pageIndex\" [totalItems]=\"totalElements\" [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"[5, 10, 25, 50]\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></app-paginator>\r\n </div>\r\n <div class=\"flex-column flex-full countItem hide-gt-xs\">\r\n <span class=\"countItem__totalElement\">{{ 'totalCountItem' | translate }} : {{ this.totalElements }}</span>\r\n </div>\r\n <div class=\"flex-column flex-2\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"isBulkItemsSupported\" class=\"flex-row gap-10 align-start-start mainTable\">\r\n <div>\r\n <button mat-flat-button color=\"primary\" type=\"button\" (click)=\"addBulkItems()\" [disabled]=\"shouldDisableBulkAdd()\" id=\"editable-bulk-add-btn\">\r\n <mat-icon>add_box</mat-icon>\r\n {{ 'addAll' | translate }}\r\n </button>\r\n </div>\r\n <div>\r\n <button mat-flat-button color=\"warn\" type=\"button\" [disabled]=\"!hasDataToClear()\" (click)=\"clearBulkItems()\" id=\"editable-bulk-clear-btn\">\r\n <mat-icon>delete</mat-icon>\r\n {{ 'clearAll' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".baseTable{padding:20px}.example-month-picker .mat-calendar-period-button{pointer-events:none}.example-month-picker .mat-calendar-arrow{display:none}.responsive-top-gap{margin-top:20px}@media (max-width: 959px){.responsive-top-gap{margin-top:1px}.baseTable{padding:20px;margin-inline:8px;width:max-content}}.flex-row{display:flex;flex-direction:row}.flex-column{display:flex;flex-direction:column}.flex-half{flex:0 0 50%}.flex-80{flex:0 0 80%}.flex-15{flex:0 0 15%}.flex-2{flex:0 0 2%}.flex-full{flex:0 0 100%}.align-start-start{justify-content:flex-start;align-items:flex-start}.align-start-end{justify-content:flex-end;align-items:flex-start}.align-center-start{justify-content:flex-start;align-items:center}.align-center-center{justify-content:center;align-items:center}.align-end-start{justify-content:flex-start;align-items:flex-end}.align-end-end{justify-content:flex-end;align-items:flex-end}.gap-8{gap:8px}.gap-10{gap:10px}.gap-0{gap:0px}@media (max-width: 959px){.flex-column.lt-md{flex-direction:column}.flex-row.lt-md{flex-direction:row}.flex-full.lt-md{flex:0 0 100%}.align-center-center.lt-md{justify-content:center;align-items:center}}@media (max-width: 599px){.flex-hide.gt-xs{display:none!important}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "ngmodule", type: NgxPaginationModule }, { kind: "pipe", type: i9$1.PaginatePipe, name: "paginate" }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: AutoCompleteComponent, selector: "app-auto-complete", inputs: ["field", "form", "defaultValue", "readonly", "supportingAttributes"], outputs: ["selectedValue"] }, { kind: "component", type: MatFormField$2, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: MatLabel$1, selector: "mat-label" }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { 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: PaginatorComponent, selector: "app-paginator", inputs: ["currentPage", "totalItems", "pageSize", "pageSizeOptions", "mobileLoadMoreIncrement", "displayedItems"], outputs: ["pageChange", "pageSizeChange", "loadMore"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "app-attachment-uploader", inputs: ["acceptedTypes"], outputs: ["fileSelected"] }, { kind: "component", type: EquationBuilderComponent, selector: "lib-equation-builder", inputs: ["form", "field", "isPending", "readOnly"], outputs: ["valueChanged"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], animations: [] }); }
|
|
4004
4008
|
}
|
|
4005
4009
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditableBaseTableComponent, decorators: [{
|
|
4006
4010
|
type: Component,
|
|
@@ -4043,7 +4047,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
4043
4047
|
AttachmentUploaderComponent,
|
|
4044
4048
|
EquationBuilderComponent,
|
|
4045
4049
|
MatSelect,
|
|
4046
|
-
MatOption
|
|
4050
|
+
MatOption,
|
|
4047
4051
|
BaseFormCanvasComponent,
|
|
4048
4052
|
MatCheckbox,
|
|
4049
4053
|
], providers: [
|
|
@@ -5658,14 +5662,14 @@ class SearchBarComponent {
|
|
|
5658
5662
|
return this.columns.filter((column) => ['text', 'date', 'localDateTime'].includes(column.type));
|
|
5659
5663
|
}
|
|
5660
5664
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5661
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchBarComponent, isStandalone: true, selector: "ag-search-bar", inputs: { columns: "columns", defaultSortKey: "defaultSortKey" }, outputs: { searchTriggered: "searchTriggered" }, ngImport: i0, template: "<div class=\"mainSearchBar\">\r\n <div class=\"search row align-start-center gap-16\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-50\">\r\n <input\r\n matInput\r\n class=\"search__input\"\r\n placeholder=\"Search...\"\r\n (keydown.enter)=\"onSearch()\"\r\n [(ngModel)]=\"searchValue\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-15\">\r\n <mat-select\r\n class=\"search__toggle\"\r\n [(ngModel)]=\"searchType\"\r\n placeholder=\"Type\">\r\n <mat-option value=\"exact\">Exact</mat-option>\r\n <mat-option value=\"like\">Like</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-15\">\r\n <mat-select\r\n class=\"search__toggle\"\r\n [(ngModel)]=\"selectedSortKey\"\r\n placeholder=\"Sort By\">\r\n <mat-option *ngFor=\"let col of getColumns()\" [value]=\"col.property\">\r\n {{ labelKey(col) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-10\">\r\n <mat-select\r\n class=\"search__toggle\"\r\n [(ngModel)]=\"selectedSortType\"\r\n placeholder=\"Type\">\r\n <mat-option value=\"ASC\">ASC</mat-option>\r\n <mat-option value=\"DESC\">DESC</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div class=\"search__button row align-center-center\">\r\n <div class=\"icon-design\" (click)=\"onSearch()\">\r\n <mat-icon class=\"icon-search\" color=\"primary\">search</mat-icon>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .search__button{display:flex;align-items:center;justify-content:center;height:56px;margin-top:-6px}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:100%}.align-start-center{align-items:center;justify-content:flex-start}.align-center-center{align-items:center;justify-content:center}.gap-16>*+*{margin-left:16px}.flex-50{flex:0 0 50%}.flex-15{flex:0 0 15%}.flex-10{flex:0 0 10%}.search{width:100%;padding:0 16px;margin-bottom:16px}.search__button{margin-bottom:6px}.icon-search{height:30px;width:30px;font-size:30px;margin-bottom:15px;cursor:pointer}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$
|
|
5665
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchBarComponent, isStandalone: true, selector: "ag-search-bar", inputs: { columns: "columns", defaultSortKey: "defaultSortKey" }, outputs: { searchTriggered: "searchTriggered" }, ngImport: i0, template: "<div class=\"mainSearchBar\">\r\n <div class=\"search row align-start-center gap-16\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-50\">\r\n <input\r\n matInput\r\n class=\"search__input\"\r\n placeholder=\"Search...\"\r\n (keydown.enter)=\"onSearch()\"\r\n [(ngModel)]=\"searchValue\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-15\">\r\n <mat-select\r\n class=\"search__toggle\"\r\n [(ngModel)]=\"searchType\"\r\n placeholder=\"Type\">\r\n <mat-option value=\"exact\">Exact</mat-option>\r\n <mat-option value=\"like\">Like</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-15\">\r\n <mat-select\r\n class=\"search__toggle\"\r\n [(ngModel)]=\"selectedSortKey\"\r\n placeholder=\"Sort By\">\r\n <mat-option *ngFor=\"let col of getColumns()\" [value]=\"col.property\">\r\n {{ labelKey(col) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"search__field flex-10\">\r\n <mat-select\r\n class=\"search__toggle\"\r\n [(ngModel)]=\"selectedSortType\"\r\n placeholder=\"Type\">\r\n <mat-option value=\"ASC\">ASC</mat-option>\r\n <mat-option value=\"DESC\">DESC</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div class=\"search__button row align-center-center\">\r\n <div class=\"icon-design\" (click)=\"onSearch()\">\r\n <mat-icon class=\"icon-search\" color=\"primary\">search</mat-icon>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .search__button{display:flex;align-items:center;justify-content:center;height:56px;margin-top:-6px}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:100%}.align-start-center{align-items:center;justify-content:flex-start}.align-center-center{align-items:center;justify-content:center}.gap-16>*+*{margin-left:16px}.flex-50{flex:0 0 50%}.flex-15{flex:0 0 15%}.flex-10{flex:0 0 10%}.search{width:100%;padding:0 16px;margin-bottom:16px}.search__button{margin-bottom:6px}.icon-search{height:30px;width:30px;font-size:30px;margin-bottom:15px;cursor:pointer}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$2, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
5662
5666
|
}
|
|
5663
5667
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchBarComponent, decorators: [{
|
|
5664
5668
|
type: Component,
|
|
5665
5669
|
args: [{ selector: 'ag-search-bar', standalone: true, imports: [
|
|
5666
5670
|
MatFormField,
|
|
5667
5671
|
MatSelect,
|
|
5668
|
-
MatOption$
|
|
5672
|
+
MatOption$2,
|
|
5669
5673
|
FormsModule,
|
|
5670
5674
|
MatIcon,
|
|
5671
5675
|
MatInput,
|
|
@@ -5787,7 +5791,7 @@ class ActionCardComponent {
|
|
|
5787
5791
|
this.buttonClick.emit();
|
|
5788
5792
|
}
|
|
5789
5793
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5790
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCardComponent, isStandalone: true, selector: "lib-action-card", inputs: { icon: "icon", iconSvg: "iconSvg", title: "title", description: "description", buttonText: "buttonText", buttonTextKey: "buttonTextKey", titleKey: "titleKey", descriptionKey: "descriptionKey", iconColor: "iconColor", borderColor: "borderColor", borderLeftColor: "borderLeftColor", borderRightColor: "borderRightColor", borderBottomColor: "borderBottomColor", topBorderColor: "topBorderColor", topBorderGradient: "topBorderGradient", buttonGradient: "buttonGradient", decorativeIconColor: "decorativeIconColor", featureCheckIconColor: "featureCheckIconColor", variant: "variant", iconSize: "iconSize", features: "features", featuresHeading: "featuresHeading", featuresHeadingKey: "featuresHeadingKey", showDivider: "showDivider", topBorderHeight: "topBorderHeight" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:auto}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ActionButtonComponent, selector: "lib-action-button", inputs: ["buttonText", "buttonTextKey", "buttonGradient", "id"], outputs: ["buttonClick"] }] }); }
|
|
5794
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCardComponent, isStandalone: true, selector: "lib-action-card", inputs: { icon: "icon", iconSvg: "iconSvg", title: "title", description: "description", buttonText: "buttonText", buttonTextKey: "buttonTextKey", titleKey: "titleKey", descriptionKey: "descriptionKey", iconColor: "iconColor", borderColor: "borderColor", borderLeftColor: "borderLeftColor", borderRightColor: "borderRightColor", borderBottomColor: "borderBottomColor", topBorderColor: "topBorderColor", topBorderGradient: "topBorderGradient", buttonGradient: "buttonGradient", decorativeIconColor: "decorativeIconColor", featureCheckIconColor: "featureCheckIconColor", variant: "variant", iconSize: "iconSize", features: "features", featuresHeading: "featuresHeading", featuresHeadingKey: "featuresHeadingKey", showDivider: "showDivider", topBorderHeight: "topBorderHeight" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:100px}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ActionButtonComponent, selector: "lib-action-button", inputs: ["buttonText", "buttonTextKey", "buttonGradient", "id"], outputs: ["buttonClick"] }] }); }
|
|
5791
5795
|
}
|
|
5792
5796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCardComponent, decorators: [{
|
|
5793
5797
|
type: Component,
|
|
@@ -5796,7 +5800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
5796
5800
|
MatIconModule,
|
|
5797
5801
|
TranslateModule,
|
|
5798
5802
|
ActionButtonComponent
|
|
5799
|
-
], template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:
|
|
5803
|
+
], template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:100px}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"] }]
|
|
5800
5804
|
}], propDecorators: { icon: [{
|
|
5801
5805
|
type: Input
|
|
5802
5806
|
}], iconSvg: [{
|