bpm-core 0.0.27 → 0.0.28
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/app-component-sections/activities/activities.component.mjs +3 -3
- package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +2 -2
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +3 -3
- package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +2 -2
- package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +42 -31
- package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +63 -14
- package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +70 -137
- package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +42 -78
- package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +5 -19
- package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +23 -115
- package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +20 -72
- package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +20 -74
- package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +20 -104
- package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +20 -39
- package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +27 -59
- package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +3 -6
- package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +2 -2
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +37 -23
- package/fesm2022/bpm-core.mjs +524 -908
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/components/app-component-sections/activities/activities.component.d.ts +2 -2
- package/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.d.ts +1 -1
- package/lib/components/app-component-sections/form-section/form-section.component.d.ts +1 -1
- package/lib/components/app-component-sections/service-header/service-header.component.d.ts +1 -1
- package/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.d.ts +1 -1
- package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +10 -7
- package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +15 -5
- package/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.d.ts +15 -15
- package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +6 -13
- package/lib/components/shared-components/form-field/input/input.component.d.ts +2 -6
- package/lib/components/shared-components/form-field/input-currency/input-currency.component.d.ts +6 -23
- package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +4 -18
- package/lib/components/shared-components/form-field/input-mask/input-mask.component.d.ts +4 -18
- package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +5 -20
- package/lib/components/shared-components/form-field/input-telephone/input-telephone.component.d.ts +4 -15
- package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +5 -14
- package/lib/components/shared-components/form-field/validation-errors/validation-errors.component.d.ts +1 -2
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +5 -7
- package/package.json +3 -2
- package/esm2022/lib/testComponent/services/state-machine.service.mjs +0 -148
- package/lib/testComponent/services/state-machine.service.d.ts +0 -29
package/fesm2022/bpm-core.mjs
CHANGED
|
@@ -1,56 +1,59 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Inject, Component, CUSTOM_ELEMENTS_SCHEMA, Pipe, forwardRef, EventEmitter, Input, Output, ViewChild, Directive, HostListener, NO_ERRORS_SCHEMA, PLATFORM_ID, InjectionToken } from '@angular/core';
|
|
2
|
+
import { Injectable, Inject, Component, CUSTOM_ELEMENTS_SCHEMA, Pipe, forwardRef, EventEmitter, Input, Output, ViewChild, Directive, inject, HostListener, NO_ERRORS_SCHEMA, PLATFORM_ID, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/material/dialog';
|
|
4
|
-
import { MAT_DIALOG_DATA, MatDialogContent, MatDialogActions, MatDialogClose, MatDialogTitle } from '@angular/material/dialog';
|
|
4
|
+
import { MAT_DIALOG_DATA, MatDialogContent, MatDialogActions, MatDialogClose, MatDialogTitle, MatDialog } from '@angular/material/dialog';
|
|
5
5
|
import { Subject, ReplaySubject, BehaviorSubject, catchError, throwError, switchMap, of, from } from 'rxjs';
|
|
6
6
|
import * as i1 from '@angular/common/http';
|
|
7
7
|
import { HttpHeaders } from '@angular/common/http';
|
|
8
|
-
import { map
|
|
8
|
+
import { map } from 'rxjs/operators';
|
|
9
9
|
import * as i1$2 from '@angular/common';
|
|
10
|
-
import { NgIf, NgClass, NgForOf, NgTemplateOutlet, NgSwitchCase, DecimalPipe, DatePipe, NgSwitchDefault, NgSwitch,
|
|
10
|
+
import { NgIf, NgClass, NgForOf, NgTemplateOutlet, NgSwitchCase, DecimalPipe, DatePipe, NgSwitchDefault, NgSwitch, CommonModule, NgFor, SlicePipe, NgComponentOutlet, DOCUMENT } from '@angular/common';
|
|
11
11
|
import { MatButton } from '@angular/material/button';
|
|
12
12
|
import { NoopScrollStrategy } from '@angular/cdk/overlay';
|
|
13
13
|
import * as i4 from '@angular/material/core';
|
|
14
14
|
import { MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
15
15
|
import * as i2 from '@angular/forms';
|
|
16
|
-
import { NG_VALUE_ACCESSOR, FormControl, ControlContainer, NgForm,
|
|
16
|
+
import { NG_VALUE_ACCESSOR, FormControl, ControlContainer, NgForm, NgControl, FormControlName, FormGroupDirective, Validators, FormsModule, ReactiveFormsModule, FormGroup } from '@angular/forms';
|
|
17
17
|
import * as i7 from '@angular/platform-browser';
|
|
18
18
|
import * as FileSaver from 'file-saver';
|
|
19
19
|
import { ImageCropperComponent } from 'ngx-image-cropper';
|
|
20
|
-
import
|
|
20
|
+
import * as i2$1 from '@angular/material/form-field';
|
|
21
|
+
import { MatError, MatHint, MatFormField, MatFormFieldModule } from '@angular/material/form-field';
|
|
21
22
|
import { MatCheckbox } from '@angular/material/checkbox';
|
|
22
23
|
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
|
23
24
|
import * as i1$4 from '@angular/material/autocomplete';
|
|
24
25
|
import { MatAutocomplete, MatOption, MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
26
|
+
import * as i3 from '@angular/material/input';
|
|
27
|
+
import { MatInputModule, MatInput } from '@angular/material/input';
|
|
25
28
|
import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
|
|
26
29
|
import { MatDatepicker, MatDatepickerToggle, MatDatepickerInput } from '@angular/material/datepicker';
|
|
27
30
|
import * as moment from 'moment';
|
|
31
|
+
import { MatIcon } from '@angular/material/icon';
|
|
28
32
|
import * as i1$3 from '@ncstate/sat-popover';
|
|
29
33
|
import { SatPopoverModule } from '@ncstate/sat-popover';
|
|
30
|
-
import { MatInput } from '@angular/material/input';
|
|
31
34
|
import { NgxMaskDirective } from 'ngx-mask';
|
|
32
35
|
import { MatSelect, MatOption as MatOption$1, MatLabel, MatError as MatError$1, MatFormField as MatFormField$1 } from '@angular/material/select';
|
|
33
36
|
import { MatProgressSpinner } from '@angular/material/progress-spinner';
|
|
34
37
|
import { MatButtonToggleGroup, MatButtonToggle } from '@angular/material/button-toggle';
|
|
35
|
-
import * as i2$
|
|
38
|
+
import * as i2$2 from '@angular/material/table';
|
|
36
39
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
37
40
|
import * as i1$5 from '@angular/material/paginator';
|
|
38
41
|
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
39
|
-
import * as i2$
|
|
42
|
+
import * as i2$5 from '@angular/router';
|
|
40
43
|
import { RouterLink, RouterModule, RouterLinkActive, RouterOutlet } from '@angular/router';
|
|
41
44
|
import * as i5 from '@angular/material/menu';
|
|
42
45
|
import { MatMenu, MatMenuTrigger, MatMenuItem, MatMenuModule } from '@angular/material/menu';
|
|
43
46
|
import { moveItemInArray, CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';
|
|
44
|
-
import * as i3$
|
|
47
|
+
import * as i3$2 from '@angular/material/tooltip';
|
|
45
48
|
import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
|
|
46
49
|
import { MatRadioButton, MatRadioGroup } from '@angular/material/radio';
|
|
47
|
-
import * as i2$
|
|
48
|
-
import * as i2$
|
|
50
|
+
import * as i2$3 from 'ngx-toastr';
|
|
51
|
+
import * as i2$4 from '@angular/material/expansion';
|
|
49
52
|
import { MatAccordion, MatExpansionPanel, MatExpansionPanelTitle, MatExpansionModule } from '@angular/material/expansion';
|
|
50
53
|
import { MatDivider } from '@angular/material/divider';
|
|
51
|
-
import * as i3 from 'ng-dynamic-component';
|
|
54
|
+
import * as i3$1 from 'ng-dynamic-component';
|
|
52
55
|
import { ComponentOutletIoDirective, DynamicModule, DynamicComponentInjectorToken } from 'ng-dynamic-component';
|
|
53
|
-
import * as i3$
|
|
56
|
+
import * as i3$3 from '@angular/material/sidenav';
|
|
54
57
|
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
55
58
|
import * as i6 from '@angular/material/toolbar';
|
|
56
59
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
@@ -2404,48 +2407,216 @@ class AttatchmentFile {
|
|
|
2404
2407
|
}
|
|
2405
2408
|
}
|
|
2406
2409
|
|
|
2410
|
+
class ControlValueAccessorDirective {
|
|
2411
|
+
injector;
|
|
2412
|
+
i18n;
|
|
2413
|
+
isReadOnly;
|
|
2414
|
+
labelTextWriteMode;
|
|
2415
|
+
labelTextReadMode;
|
|
2416
|
+
hint = '';
|
|
2417
|
+
loading;
|
|
2418
|
+
placeholder;
|
|
2419
|
+
type;
|
|
2420
|
+
showErrorMessage;
|
|
2421
|
+
showHint;
|
|
2422
|
+
showIfEmpty;
|
|
2423
|
+
insideTable;
|
|
2424
|
+
mask;
|
|
2425
|
+
label;
|
|
2426
|
+
matSuffix;
|
|
2427
|
+
minDateValue;
|
|
2428
|
+
maxDateValue;
|
|
2429
|
+
maxDate;
|
|
2430
|
+
// @ViewChild('default')
|
|
2431
|
+
datepickerObj;
|
|
2432
|
+
minDate;
|
|
2433
|
+
customMaxDate;
|
|
2434
|
+
customMinDate;
|
|
2435
|
+
value;
|
|
2436
|
+
control;
|
|
2437
|
+
required = false;
|
|
2438
|
+
maxLength;
|
|
2439
|
+
isDisabled = false;
|
|
2440
|
+
constructor(injector, i18n) {
|
|
2441
|
+
this.injector = injector;
|
|
2442
|
+
this.i18n = i18n;
|
|
2443
|
+
}
|
|
2444
|
+
ngOnInit() {
|
|
2445
|
+
this.setFormControl();
|
|
2446
|
+
}
|
|
2447
|
+
setFormControl() {
|
|
2448
|
+
try {
|
|
2449
|
+
const formControl = this.injector.get(NgControl);
|
|
2450
|
+
switch (formControl.constructor) {
|
|
2451
|
+
case FormControlName:
|
|
2452
|
+
this.control = this.injector
|
|
2453
|
+
.get(FormGroupDirective)
|
|
2454
|
+
.getControl(formControl);
|
|
2455
|
+
break;
|
|
2456
|
+
default:
|
|
2457
|
+
this.control = formControl
|
|
2458
|
+
.form;
|
|
2459
|
+
break;
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
catch (err) {
|
|
2463
|
+
this.control = new FormControl();
|
|
2464
|
+
}
|
|
2465
|
+
this.setFormValidators();
|
|
2466
|
+
this.setDateFormControl();
|
|
2467
|
+
}
|
|
2468
|
+
setFormValidators() {
|
|
2469
|
+
console.log(this.control);
|
|
2470
|
+
this.required = this.control?.hasValidator(Validators.required) ?? false;
|
|
2471
|
+
}
|
|
2472
|
+
setDateFormControl() {
|
|
2473
|
+
const today = new Date();
|
|
2474
|
+
const currentYear = today.getFullYear();
|
|
2475
|
+
const currentMonth = today.getMonth();
|
|
2476
|
+
const currentDay = today.getDate();
|
|
2477
|
+
if (this.minDate) {
|
|
2478
|
+
if (this.minDate == 'today') {
|
|
2479
|
+
this.minDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
2480
|
+
}
|
|
2481
|
+
}
|
|
2482
|
+
if (this.maxDate) {
|
|
2483
|
+
if (this.maxDate == 'today') {
|
|
2484
|
+
this.maxDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
2485
|
+
}
|
|
2486
|
+
else if (this.maxDate == 'oneYear') {
|
|
2487
|
+
this.maxDateValue = new Date(currentYear + 1, currentMonth, currentDay - 1);
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
else if (this.customMaxDate) {
|
|
2491
|
+
const date = new Date(this.customMaxDate);
|
|
2492
|
+
this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
2493
|
+
}
|
|
2494
|
+
// if (this.field) {
|
|
2495
|
+
// this.date.setValue(this.field);
|
|
2496
|
+
// }
|
|
2497
|
+
if (this.required)
|
|
2498
|
+
this.control.addValidators(Validators.required);
|
|
2499
|
+
}
|
|
2500
|
+
writeValue(value) {
|
|
2501
|
+
this.value = value;
|
|
2502
|
+
}
|
|
2503
|
+
registerOnChange(fn) {
|
|
2504
|
+
}
|
|
2505
|
+
registerOnTouched(fn) {
|
|
2506
|
+
}
|
|
2507
|
+
setDisabledState(isDisabled) {
|
|
2508
|
+
this.isDisabled = isDisabled;
|
|
2509
|
+
}
|
|
2510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, deps: [{ token: i0.Injector }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2511
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ControlValueAccessorDirective, selector: "[appControlValueAccessor]", inputs: { isReadOnly: "isReadOnly", labelTextWriteMode: "labelTextWriteMode", labelTextReadMode: "labelTextReadMode", hint: "hint", loading: "loading", placeholder: "placeholder", type: "type", showErrorMessage: "showErrorMessage", showHint: "showHint", showIfEmpty: "showIfEmpty", insideTable: "insideTable", mask: "mask", label: "label", matSuffix: "matSuffix", maxDate: "maxDate", minDate: "minDate", customMaxDate: "customMaxDate", customMinDate: "customMinDate" }, ngImport: i0 });
|
|
2512
|
+
}
|
|
2513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, decorators: [{
|
|
2514
|
+
type: Directive,
|
|
2515
|
+
args: [{
|
|
2516
|
+
selector: '[appControlValueAccessor]',
|
|
2517
|
+
}]
|
|
2518
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: CoreI18nService }], propDecorators: { isReadOnly: [{
|
|
2519
|
+
type: Input
|
|
2520
|
+
}], labelTextWriteMode: [{
|
|
2521
|
+
type: Input
|
|
2522
|
+
}], labelTextReadMode: [{
|
|
2523
|
+
type: Input
|
|
2524
|
+
}], hint: [{
|
|
2525
|
+
type: Input
|
|
2526
|
+
}], loading: [{
|
|
2527
|
+
type: Input
|
|
2528
|
+
}], placeholder: [{
|
|
2529
|
+
type: Input
|
|
2530
|
+
}], type: [{
|
|
2531
|
+
type: Input
|
|
2532
|
+
}], showErrorMessage: [{
|
|
2533
|
+
type: Input
|
|
2534
|
+
}], showHint: [{
|
|
2535
|
+
type: Input
|
|
2536
|
+
}], showIfEmpty: [{
|
|
2537
|
+
type: Input
|
|
2538
|
+
}], insideTable: [{
|
|
2539
|
+
type: Input
|
|
2540
|
+
}], mask: [{
|
|
2541
|
+
type: Input
|
|
2542
|
+
}], label: [{
|
|
2543
|
+
type: Input
|
|
2544
|
+
}], matSuffix: [{
|
|
2545
|
+
type: Input
|
|
2546
|
+
}], maxDate: [{
|
|
2547
|
+
type: Input
|
|
2548
|
+
}], minDate: [{
|
|
2549
|
+
type: Input
|
|
2550
|
+
}], customMaxDate: [{
|
|
2551
|
+
type: Input
|
|
2552
|
+
}], customMinDate: [{
|
|
2553
|
+
type: Input
|
|
2554
|
+
}] } });
|
|
2555
|
+
|
|
2556
|
+
class TermsConditionsComponent {
|
|
2557
|
+
dialogRef;
|
|
2558
|
+
i18n;
|
|
2559
|
+
data;
|
|
2560
|
+
termsBody = null;
|
|
2561
|
+
constructor(dialogRef, i18n, data) {
|
|
2562
|
+
this.dialogRef = dialogRef;
|
|
2563
|
+
this.i18n = i18n;
|
|
2564
|
+
this.data = data;
|
|
2565
|
+
this.termsBody = data;
|
|
2566
|
+
}
|
|
2567
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, deps: [{ token: i1$1.MatDialogRef }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
2568
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TermsConditionsComponent, isStandalone: true, selector: "app-terms-conditions", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }] });
|
|
2569
|
+
}
|
|
2570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, decorators: [{
|
|
2571
|
+
type: Component,
|
|
2572
|
+
args: [{ selector: 'app-terms-conditions', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
|
|
2573
|
+
MatDialogContent,
|
|
2574
|
+
MatDialogClose,
|
|
2575
|
+
MatDialogTitle
|
|
2576
|
+
], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"] }]
|
|
2577
|
+
}], ctorParameters: () => [{ type: i1$1.MatDialogRef }, { type: CoreI18nService }, { type: undefined, decorators: [{
|
|
2578
|
+
type: Inject,
|
|
2579
|
+
args: [MAT_DIALOG_DATA]
|
|
2580
|
+
}] }] });
|
|
2581
|
+
|
|
2407
2582
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2408
2583
|
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
2409
2584
|
/* eslint-disable @angular-eslint/component-selector */
|
|
2410
|
-
class CheckBoxComponent extends
|
|
2585
|
+
class CheckBoxComponent extends ControlValueAccessorDirective {
|
|
2411
2586
|
containTerms;
|
|
2412
2587
|
termsLabel;
|
|
2413
2588
|
linkText;
|
|
2414
2589
|
hrefLink;
|
|
2590
|
+
link;
|
|
2591
|
+
name;
|
|
2592
|
+
randomID;
|
|
2593
|
+
termsBody;
|
|
2415
2594
|
downloadCheckBox = new EventEmitter();
|
|
2416
|
-
|
|
2417
|
-
this.value = this.field ? JSON.parse(this.field) : false;
|
|
2418
|
-
// this.resetPropagator.subscribe(this, this.resetCheckBoxData);
|
|
2419
|
-
}
|
|
2420
|
-
resetCheckBoxData() {
|
|
2421
|
-
if (!this.isReadOnly) {
|
|
2422
|
-
this.emitedValue.emit('false');
|
|
2423
|
-
this.value = false;
|
|
2424
|
-
}
|
|
2425
|
-
}
|
|
2595
|
+
dialog = inject(MatDialog);
|
|
2426
2596
|
openUrl() {
|
|
2427
2597
|
window.open(this.hrefLink);
|
|
2428
2598
|
}
|
|
2429
2599
|
valueChange(event) {
|
|
2430
2600
|
const checked = event.checked;
|
|
2431
|
-
this.
|
|
2432
|
-
this.field = (checked).toString();
|
|
2433
|
-
this.emitedValue.emit(this.field);
|
|
2434
|
-
}
|
|
2435
|
-
downloadFile() {
|
|
2436
|
-
this.downloadCheckBox.emit();
|
|
2601
|
+
this.control.setValue(checked);
|
|
2437
2602
|
}
|
|
2438
2603
|
openTermsPopup() {
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2604
|
+
const dialogRef = this.dialog.open(TermsConditionsComponent, {
|
|
2605
|
+
data: this.termsBody,
|
|
2606
|
+
width: '700px',
|
|
2607
|
+
panelClass: ['main-popup'],
|
|
2608
|
+
});
|
|
2609
|
+
dialogRef.afterClosed().subscribe(() => {
|
|
2610
|
+
});
|
|
2446
2611
|
}
|
|
2447
2612
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2448
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2613
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: CheckBoxComponent, isStandalone: true, selector: "app-checkbox", inputs: { containTerms: "containTerms", termsLabel: "termsLabel", linkText: "linkText", hrefLink: "hrefLink", link: "link", name: "name", randomID: "randomID", termsBody: "termsBody" }, outputs: { downloadCheckBox: "downloadCheckBox" }, providers: [
|
|
2614
|
+
{
|
|
2615
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2616
|
+
useExisting: forwardRef(() => CheckBoxComponent),
|
|
2617
|
+
multi: true,
|
|
2618
|
+
},
|
|
2619
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isDisabled\" id=\"{{name}}{{randomID}}\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"control.value\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n @if(containTerms){\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n }\r\n @if (link){\r\n <ng-container>\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n }\r\n \r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }] });
|
|
2449
2620
|
}
|
|
2450
2621
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckBoxComponent, decorators: [{
|
|
2451
2622
|
type: Component,
|
|
@@ -2453,7 +2624,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
2453
2624
|
MatCheckbox,
|
|
2454
2625
|
FormsModule,
|
|
2455
2626
|
NgIf
|
|
2456
|
-
], standalone: true,
|
|
2627
|
+
], standalone: true, providers: [
|
|
2628
|
+
{
|
|
2629
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2630
|
+
useExisting: forwardRef(() => CheckBoxComponent),
|
|
2631
|
+
multi: true,
|
|
2632
|
+
},
|
|
2633
|
+
], template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isDisabled\" id=\"{{name}}{{randomID}}\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"control.value\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n @if(containTerms){\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n }\r\n @if (link){\r\n <ng-container>\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n }\r\n \r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"] }]
|
|
2457
2634
|
}], propDecorators: { containTerms: [{
|
|
2458
2635
|
type: Input
|
|
2459
2636
|
}], termsLabel: [{
|
|
@@ -2462,6 +2639,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
2462
2639
|
type: Input
|
|
2463
2640
|
}], hrefLink: [{
|
|
2464
2641
|
type: Input
|
|
2642
|
+
}], link: [{
|
|
2643
|
+
type: Input
|
|
2644
|
+
}], name: [{
|
|
2645
|
+
type: Input
|
|
2646
|
+
}], randomID: [{
|
|
2647
|
+
type: Input
|
|
2648
|
+
}], termsBody: [{
|
|
2649
|
+
type: Input
|
|
2465
2650
|
}], downloadCheckBox: [{
|
|
2466
2651
|
type: Output
|
|
2467
2652
|
}] } });
|
|
@@ -2533,187 +2718,150 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
2533
2718
|
type: Input
|
|
2534
2719
|
}] } });
|
|
2535
2720
|
|
|
2721
|
+
class ValidationErrorsComponent extends ControlValueAccessorDirective {
|
|
2722
|
+
errors = {};
|
|
2723
|
+
customErrorMessages = {};
|
|
2724
|
+
errorMessages = {
|
|
2725
|
+
required: 'This field is required',
|
|
2726
|
+
maxlength: 'This field max length',
|
|
2727
|
+
minlength: 'This field min length',
|
|
2728
|
+
};
|
|
2729
|
+
ngOnChanges(changes) {
|
|
2730
|
+
const { customErrorMessages } = changes;
|
|
2731
|
+
if (customErrorMessages) {
|
|
2732
|
+
this.errorMessages = {
|
|
2733
|
+
...this.errorMessages,
|
|
2734
|
+
...customErrorMessages.currentValue,
|
|
2735
|
+
};
|
|
2736
|
+
}
|
|
2737
|
+
}
|
|
2738
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidationErrorsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2739
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ValidationErrorsComponent, isStandalone: true, selector: "app-validation-errors", inputs: { errors: "errors", customErrorMessages: "customErrorMessages" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] });
|
|
2740
|
+
}
|
|
2741
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidationErrorsComponent, decorators: [{
|
|
2742
|
+
type: Component,
|
|
2743
|
+
args: [{ selector: 'app-validation-errors', standalone: true, imports: [
|
|
2744
|
+
NgFor,
|
|
2745
|
+
CommonModule,
|
|
2746
|
+
MatError
|
|
2747
|
+
], template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }" }]
|
|
2748
|
+
}], propDecorators: { errors: [{
|
|
2749
|
+
type: Input
|
|
2750
|
+
}], customErrorMessages: [{
|
|
2751
|
+
type: Input
|
|
2752
|
+
}] } });
|
|
2753
|
+
|
|
2536
2754
|
/* eslint-disable @typescript-eslint/no-this-alias */
|
|
2537
2755
|
/* eslint-disable no-var */
|
|
2538
|
-
class CustomSearchableComponent extends
|
|
2539
|
-
myControl = new FormControl();
|
|
2756
|
+
class CustomSearchableComponent extends ControlValueAccessorDirective {
|
|
2540
2757
|
options;
|
|
2541
|
-
label;
|
|
2542
2758
|
selectedValue = new EventEmitter();
|
|
2543
|
-
resetByDeleteBtn = new EventEmitter();
|
|
2544
2759
|
isLengthGreaterThan4 = new EventEmitter();
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2760
|
+
disabled = false;
|
|
2761
|
+
name = 'name';
|
|
2762
|
+
displayedLable;
|
|
2763
|
+
key = 'description';
|
|
2548
2764
|
floatLabel = 'auto';
|
|
2549
2765
|
className = 'bordered-input';
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
// this.resetPropagator.subscribe(this, this.clearInput);
|
|
2554
|
-
if (this.field?.key) {
|
|
2555
|
-
const obj = {
|
|
2556
|
-
description: this.field.value,
|
|
2557
|
-
value: this.field.key
|
|
2558
|
-
};
|
|
2559
|
-
this.myControl.setValue(obj);
|
|
2560
|
-
}
|
|
2561
|
-
if (this.required) {
|
|
2562
|
-
this.controller.setValidators([Validators.required]);
|
|
2563
|
-
}
|
|
2564
|
-
// var leftDomain = false;
|
|
2565
|
-
// const self = this
|
|
2566
|
-
// var interval = setInterval(function () {
|
|
2567
|
-
// try {
|
|
2568
|
-
// if (self.field?.key) {
|
|
2569
|
-
// if (self.lov?.options?.length) {
|
|
2570
|
-
// const obj = {
|
|
2571
|
-
// description: self.field.value,
|
|
2572
|
-
// value: self.field.key
|
|
2573
|
-
// }
|
|
2574
|
-
// self.myControl.setValue(obj)
|
|
2575
|
-
// }
|
|
2576
|
-
// else {
|
|
2577
|
-
// leftDomain = true;
|
|
2578
|
-
// }
|
|
2579
|
-
// } else {
|
|
2580
|
-
// leftDomain = true;
|
|
2581
|
-
// }
|
|
2582
|
-
// }
|
|
2583
|
-
// catch (e) {
|
|
2584
|
-
// if (leftDomain || !self.field?.key) {
|
|
2585
|
-
// clearInterval(interval);
|
|
2586
|
-
// return;
|
|
2587
|
-
// }
|
|
2588
|
-
// leftDomain = true;
|
|
2589
|
-
// }
|
|
2590
|
-
// }, 1000);
|
|
2591
|
-
}
|
|
2766
|
+
noData = false;
|
|
2767
|
+
filteredOptions;
|
|
2768
|
+
searchControl = new FormControl();
|
|
2592
2769
|
clearInput() {
|
|
2770
|
+
this.control.setValue(null);
|
|
2771
|
+
this.searchControl.setValue(null);
|
|
2593
2772
|
if (!this.isReadOnly) {
|
|
2594
|
-
this.
|
|
2595
|
-
this.controller.setValue(null);
|
|
2596
|
-
this.emitedValue.emit({
|
|
2597
|
-
key: null,
|
|
2598
|
-
value: null
|
|
2599
|
-
});
|
|
2773
|
+
this.setFilteredOptions();
|
|
2600
2774
|
}
|
|
2601
2775
|
}
|
|
2776
|
+
onFocusOut() {
|
|
2777
|
+
this.control.markAsTouched();
|
|
2778
|
+
}
|
|
2602
2779
|
onKeyDown(e, input) {
|
|
2603
2780
|
setTimeout(() => {
|
|
2604
2781
|
//reset in case no value and delete or backspace pressed
|
|
2605
|
-
if ((e.keyCode == 8 || e.keyCode == 46) && !this.
|
|
2606
|
-
if (this.
|
|
2607
|
-
this.
|
|
2608
|
-
this.field.value = null;
|
|
2782
|
+
if ((e.keyCode == 8 || e.keyCode == 46) && !this.control.value) {
|
|
2783
|
+
if (this.control) {
|
|
2784
|
+
this.control.setValue(null);
|
|
2609
2785
|
}
|
|
2610
|
-
this.myControl.setValue(null);
|
|
2611
2786
|
input.focus();
|
|
2612
|
-
this.resetByDeleteBtn.emit();
|
|
2613
2787
|
}
|
|
2614
2788
|
});
|
|
2615
2789
|
}
|
|
2616
2790
|
ngOnChanges(changes) {
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2791
|
+
this.setFilteredOptions();
|
|
2792
|
+
}
|
|
2793
|
+
onValueChange(data) {
|
|
2794
|
+
this.setFilteredOptions(data);
|
|
2795
|
+
}
|
|
2796
|
+
setFilteredOptions(data) {
|
|
2797
|
+
if (this.options.length > 0) {
|
|
2798
|
+
this.noData = false;
|
|
2799
|
+
// this.loading = false
|
|
2800
|
+
this.filteredOptions = data?.target?.value ? this._filter(data.target.value) : this.options.slice(0, 30);
|
|
2801
|
+
this.filteredOptions;
|
|
2623
2802
|
}
|
|
2624
2803
|
else {
|
|
2625
|
-
this.
|
|
2626
|
-
}
|
|
2627
|
-
this.loading = !!(changes['loading'] && changes['loading'].currentValue);
|
|
2628
|
-
if (changes['options'] && changes['options'].currentValue) {
|
|
2629
|
-
// this.loading = true
|
|
2630
|
-
this.options = changes['options'].currentValue;
|
|
2631
|
-
if (this.options.length > 0) {
|
|
2632
|
-
// console.log('yes')
|
|
2633
|
-
this.noData = false;
|
|
2634
|
-
// this.loading = false
|
|
2635
|
-
this.filteredOptions = this.myControl.valueChanges.pipe(startWith(''), map(value => {
|
|
2636
|
-
console.log(value);
|
|
2637
|
-
return (value ? this._filter(value) : this.options.slice(0, 30));
|
|
2638
|
-
}));
|
|
2639
|
-
}
|
|
2640
|
-
else {
|
|
2641
|
-
this.noData = true;
|
|
2642
|
-
}
|
|
2804
|
+
this.noData = true;
|
|
2643
2805
|
}
|
|
2644
2806
|
}
|
|
2645
|
-
onValueChange() {
|
|
2646
|
-
// this.myControl.setErrors({'incorrect': true});
|
|
2647
|
-
}
|
|
2648
|
-
focusOutFunction(event) {
|
|
2649
|
-
console.log("event", event);
|
|
2650
|
-
// if(!this.field.key || !this.myControl?.valid){
|
|
2651
|
-
// this.clearInput()
|
|
2652
|
-
// // this.field.key=null
|
|
2653
|
-
// // this.myControl.setValue(null);
|
|
2654
|
-
// }
|
|
2655
|
-
}
|
|
2656
2807
|
_filter(value) {
|
|
2657
2808
|
const filterValue = typeof value === 'string' ? value?.toLowerCase() : value;
|
|
2658
2809
|
return this.options.filter((option) => Object.values(option).join('')?.toLowerCase().includes(filterValue)).slice(0, 30);
|
|
2659
2810
|
}
|
|
2660
2811
|
displayFn(option) {
|
|
2661
|
-
return option ? option
|
|
2812
|
+
return option ? option : '';
|
|
2662
2813
|
}
|
|
2663
2814
|
getAutoComplete(value) {
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
this.emitedValue.emit({
|
|
2667
|
-
key: value.value,
|
|
2668
|
-
orgId: value.orgId,
|
|
2669
|
-
value: value.description
|
|
2670
|
-
});
|
|
2671
|
-
}
|
|
2672
|
-
else {
|
|
2673
|
-
this.myControl.setValue(value.value);
|
|
2674
|
-
this.emitedValue.emit({
|
|
2675
|
-
key: value.value,
|
|
2676
|
-
value: value.description
|
|
2677
|
-
});
|
|
2678
|
-
}
|
|
2679
|
-
}
|
|
2680
|
-
onLoadOptions(event) {
|
|
2681
|
-
const input = event.target.value;
|
|
2682
|
-
if (input.length >= 4) {
|
|
2683
|
-
this.isLengthGreaterThan4.emit(input);
|
|
2684
|
-
}
|
|
2815
|
+
this.control.setValue({ key: value[this.key] });
|
|
2816
|
+
this.searchControl.setValue(value[this.key]);
|
|
2685
2817
|
}
|
|
2686
2818
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomSearchableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2687
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CustomSearchableComponent, isStandalone: true, selector: "app-custom-searchable", inputs: {
|
|
2819
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CustomSearchableComponent, isStandalone: true, selector: "app-custom-searchable", inputs: { options: "options", disabled: "disabled", name: "name", displayedLable: "displayedLable", key: "key", floatLabel: "floatLabel", className: "className" }, outputs: { selectedValue: "selectedValue", isLengthGreaterThan4: "isLengthGreaterThan4" }, providers: [
|
|
2820
|
+
{
|
|
2821
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2822
|
+
useExisting: forwardRef(() => CustomSearchableComponent),
|
|
2823
|
+
multi: true,
|
|
2824
|
+
},
|
|
2825
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isReadOnly && control?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\" [value]=\"control?.value\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : (disabled || loading) }\"\r\n [floatLabel]=\"floatLabel\" >\r\n <!-- (click)=\"clearInput()\" -->\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <!-- <bdi> -->\r\n <input #autocompleteInput type=\"text\" (keydown)=\"onKeyDown($event, autocompleteInput)\" [attr.disabled]=\"disabled \" [placeholder]=\"label\" aria-label=\"Number\" matInput\r\n (input)=\"onValueChange($event)\" [formControl]=\"searchControl\"\r\n ngDefaultControl [name]=\"'test'\" [matAutocomplete]=\"auto\" [value]=\"value\" (focusout)=\"onFocusOut()\">\r\n <!-- </bdi> -->\r\n </label>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <span class=\"sfi sfi-close d-inline-block fc-black cursor-pointer\" (click)=\"clearInput()\" matSuffix\r\n *ngIf=\"!loading && control?.value\"></span>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" \r\n (optionSelected)='getAutoComplete($event.option.value)'>\r\n <ng-container *ngIf=\"!noData\">\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n <figure *ngIf=\"option['avatar_url']\" class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\">\r\n </figure>\r\n <span *ngIf=\"option['avatar_url']\" class=\"mx-2\"></span>\r\n <!-- <bdi> -->\r\n {{option[displayedLable]}}\r\n <!-- </bdi> -->\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <!-- <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error> -->\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n</ng-container>\r\n", styles: [".small-input~.btn{height:41px}:host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
|
|
2688
2826
|
}
|
|
2689
2827
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomSearchableComponent, decorators: [{
|
|
2690
2828
|
type: Component,
|
|
2691
|
-
args: [{ selector: 'app-custom-searchable', imports: [
|
|
2829
|
+
args: [{ selector: 'app-custom-searchable', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
|
|
2692
2830
|
InfoItemComponent,
|
|
2693
2831
|
NgClass,
|
|
2694
2832
|
NgIf,
|
|
2695
2833
|
ReactiveFormsModule,
|
|
2696
2834
|
MatAutocomplete,
|
|
2697
2835
|
MatOption,
|
|
2698
|
-
AsyncPipe,
|
|
2699
2836
|
MatAutocompleteTrigger,
|
|
2700
2837
|
MatError,
|
|
2701
2838
|
MatHint,
|
|
2702
2839
|
NgForOf,
|
|
2703
|
-
MatFormField
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2840
|
+
MatFormField,
|
|
2841
|
+
MatFormFieldModule,
|
|
2842
|
+
MatInputModule,
|
|
2843
|
+
ValidationErrorsComponent
|
|
2844
|
+
], standalone: true, providers: [
|
|
2845
|
+
{
|
|
2846
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2847
|
+
useExisting: forwardRef(() => CustomSearchableComponent),
|
|
2848
|
+
multi: true,
|
|
2849
|
+
},
|
|
2850
|
+
], template: "<ng-container *ngIf=\"isReadOnly && control?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\" [value]=\"control?.value\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : (disabled || loading) }\"\r\n [floatLabel]=\"floatLabel\" >\r\n <!-- (click)=\"clearInput()\" -->\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <!-- <bdi> -->\r\n <input #autocompleteInput type=\"text\" (keydown)=\"onKeyDown($event, autocompleteInput)\" [attr.disabled]=\"disabled \" [placeholder]=\"label\" aria-label=\"Number\" matInput\r\n (input)=\"onValueChange($event)\" [formControl]=\"searchControl\"\r\n ngDefaultControl [name]=\"'test'\" [matAutocomplete]=\"auto\" [value]=\"value\" (focusout)=\"onFocusOut()\">\r\n <!-- </bdi> -->\r\n </label>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <span class=\"sfi sfi-close d-inline-block fc-black cursor-pointer\" (click)=\"clearInput()\" matSuffix\r\n *ngIf=\"!loading && control?.value\"></span>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" \r\n (optionSelected)='getAutoComplete($event.option.value)'>\r\n <ng-container *ngIf=\"!noData\">\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n <figure *ngIf=\"option['avatar_url']\" class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\">\r\n </figure>\r\n <span *ngIf=\"option['avatar_url']\" class=\"mx-2\"></span>\r\n <!-- <bdi> -->\r\n {{option[displayedLable]}}\r\n <!-- </bdi> -->\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <!-- <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error> -->\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n</ng-container>\r\n", styles: [".small-input~.btn{height:41px}:host{flex-grow:1}\n"] }]
|
|
2851
|
+
}], propDecorators: { options: [{
|
|
2710
2852
|
type: Input
|
|
2711
2853
|
}], selectedValue: [{
|
|
2712
2854
|
type: Output
|
|
2713
|
-
}], resetByDeleteBtn: [{
|
|
2714
|
-
type: Output
|
|
2715
2855
|
}], isLengthGreaterThan4: [{
|
|
2716
2856
|
type: Output
|
|
2857
|
+
}], disabled: [{
|
|
2858
|
+
type: Input
|
|
2859
|
+
}], name: [{
|
|
2860
|
+
type: Input
|
|
2861
|
+
}], displayedLable: [{
|
|
2862
|
+
type: Input
|
|
2863
|
+
}], key: [{
|
|
2864
|
+
type: Input
|
|
2717
2865
|
}], floatLabel: [{
|
|
2718
2866
|
type: Input
|
|
2719
2867
|
}], className: [{
|
|
@@ -2731,7 +2879,7 @@ const YEAR_ONLY_FORMAT = {
|
|
|
2731
2879
|
monthYearA11yLabel: 'YYYY',
|
|
2732
2880
|
},
|
|
2733
2881
|
};
|
|
2734
|
-
class DatePickerComponent extends
|
|
2882
|
+
class DatePickerComponent extends ControlValueAccessorDirective {
|
|
2735
2883
|
date = new FormControl();
|
|
2736
2884
|
tooltip;
|
|
2737
2885
|
className;
|
|
@@ -2742,14 +2890,7 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2742
2890
|
dateValue = new EventEmitter();
|
|
2743
2891
|
showIslamic = false;
|
|
2744
2892
|
error;
|
|
2745
|
-
|
|
2746
|
-
maxDateValue;
|
|
2747
|
-
maxDate;
|
|
2748
|
-
// @ViewChild('default')
|
|
2749
|
-
datepickerObj;
|
|
2750
|
-
minDate;
|
|
2751
|
-
customMaxDate;
|
|
2752
|
-
customMinDate;
|
|
2893
|
+
dateFormat;
|
|
2753
2894
|
set format(_format) {
|
|
2754
2895
|
if (_format) {
|
|
2755
2896
|
this.dateFormat.updateDateFormat({ dateInput: _format }, { dateInput: _format });
|
|
@@ -2764,41 +2905,7 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2764
2905
|
get shouldSetDateFormateInAr() {
|
|
2765
2906
|
return false;
|
|
2766
2907
|
}
|
|
2767
|
-
ngOnInit() {
|
|
2768
|
-
// this.resetPropagator.subscribe(this, this.resetDateData);
|
|
2769
|
-
const today = new Date();
|
|
2770
|
-
const currentYear = today.getFullYear();
|
|
2771
|
-
const currentMonth = today.getMonth();
|
|
2772
|
-
const currentDay = today.getDate();
|
|
2773
|
-
if (this.minDate) {
|
|
2774
|
-
if (this.minDate == 'today') {
|
|
2775
|
-
this.minDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
2776
|
-
}
|
|
2777
|
-
}
|
|
2778
|
-
if (this.maxDate) {
|
|
2779
|
-
if (this.maxDate == 'today') {
|
|
2780
|
-
this.maxDateValue = new Date(currentYear, currentMonth, currentDay);
|
|
2781
|
-
}
|
|
2782
|
-
else if (this.maxDate == 'oneYear') {
|
|
2783
|
-
this.maxDateValue = new Date(currentYear + 1, currentMonth, currentDay - 1);
|
|
2784
|
-
}
|
|
2785
|
-
}
|
|
2786
|
-
else if (this.customMaxDate) {
|
|
2787
|
-
const date = new Date(this.customMaxDate);
|
|
2788
|
-
this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
2789
|
-
}
|
|
2790
|
-
if (this.field) {
|
|
2791
|
-
this.date.setValue(this.field);
|
|
2792
|
-
}
|
|
2793
|
-
if (this.required)
|
|
2794
|
-
this.date.addValidators(Validators.required);
|
|
2795
|
-
}
|
|
2796
2908
|
ngOnChanges(changes) {
|
|
2797
|
-
if (this.resetDate && this.field == null) {
|
|
2798
|
-
this.field = '';
|
|
2799
|
-
this.date.setValue(this.field);
|
|
2800
|
-
this.emitedValue.emit(this.field);
|
|
2801
|
-
}
|
|
2802
2909
|
if (changes) {
|
|
2803
2910
|
if (this.customMaxDate) {
|
|
2804
2911
|
const date = new Date(this.customMaxDate);
|
|
@@ -2812,13 +2919,6 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2812
2919
|
}
|
|
2813
2920
|
}
|
|
2814
2921
|
}
|
|
2815
|
-
resetDateData() {
|
|
2816
|
-
if (!this.isReadOnly) {
|
|
2817
|
-
this.field = '';
|
|
2818
|
-
this.date.setValue(this.field);
|
|
2819
|
-
this.emitedValue.emit(this.field);
|
|
2820
|
-
}
|
|
2821
|
-
}
|
|
2822
2922
|
focusPicker(picker) {
|
|
2823
2923
|
picker.open();
|
|
2824
2924
|
}
|
|
@@ -2826,40 +2926,42 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2826
2926
|
this.datepickerObj.show();
|
|
2827
2927
|
}
|
|
2828
2928
|
dateChange(event) {
|
|
2829
|
-
if (!this.
|
|
2929
|
+
if (!this.isDisabled) {
|
|
2830
2930
|
if (event?.value) {
|
|
2831
2931
|
let inputValue;
|
|
2832
2932
|
const eventDate = moment(event.value);
|
|
2833
2933
|
const minDate = moment(this.minDateValue);
|
|
2834
2934
|
const maxDate = moment(this.maxDateValue);
|
|
2835
2935
|
if (eventDate < minDate && this.minDateValue) {
|
|
2836
|
-
this.
|
|
2936
|
+
this.control.setValue(null);
|
|
2837
2937
|
this.datepickerObj.value = '';
|
|
2838
2938
|
inputValue = '';
|
|
2839
2939
|
}
|
|
2840
2940
|
else if (eventDate > maxDate && this.maxDateValue) {
|
|
2841
|
-
this.
|
|
2941
|
+
this.control.setValue(null);
|
|
2842
2942
|
this.datepickerObj.value = '';
|
|
2843
2943
|
inputValue = '';
|
|
2844
2944
|
}
|
|
2845
2945
|
else {
|
|
2846
2946
|
inputValue = moment(event.value).locale('en-US').format("YYYY-MM-DDTHH:mm:ss.SSSZ");
|
|
2847
|
-
this.
|
|
2947
|
+
this.control.setValue(inputValue);
|
|
2848
2948
|
}
|
|
2849
|
-
this.
|
|
2949
|
+
this.control.setValue(inputValue);
|
|
2850
2950
|
}
|
|
2851
2951
|
else {
|
|
2852
|
-
this.section.body.details[this.name] = ''
|
|
2952
|
+
// this.section.body.details[this.name] = ''
|
|
2853
2953
|
}
|
|
2854
2954
|
}
|
|
2855
2955
|
}
|
|
2856
2956
|
clearDateValue(event) {
|
|
2857
|
-
this.
|
|
2957
|
+
this.control.setValue(null);
|
|
2858
2958
|
event?.preventDefault();
|
|
2859
2959
|
event?.stopPropagation();
|
|
2960
|
+
console.log(this.control.errors);
|
|
2860
2961
|
}
|
|
2861
2962
|
removeDate() {
|
|
2862
|
-
this.field = ''
|
|
2963
|
+
// this.field = ''
|
|
2964
|
+
this.control.setValue('');
|
|
2863
2965
|
// this.controller.setValue('')
|
|
2864
2966
|
}
|
|
2865
2967
|
toggleIslamicCal() {
|
|
@@ -2867,13 +2969,12 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2867
2969
|
}
|
|
2868
2970
|
activateYearOnlyMode() {
|
|
2869
2971
|
this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);
|
|
2870
|
-
if (this.
|
|
2871
|
-
this.
|
|
2972
|
+
if (this.control) {
|
|
2973
|
+
this.control.setValue(moment(this.control.value).format('yyyy'));
|
|
2872
2974
|
}
|
|
2873
2975
|
this.datepicker.startView = 'multi-year';
|
|
2874
2976
|
this.datepicker.yearSelected.subscribe(e => {
|
|
2875
|
-
this.
|
|
2876
|
-
this.emitedValue.emit(moment(e).format('yyyy'));
|
|
2977
|
+
this.control.setValue(moment(e).format('yyyy'));
|
|
2877
2978
|
this.datepicker.close();
|
|
2878
2979
|
});
|
|
2879
2980
|
this.datepicker.openedStream.subscribe(() => {
|
|
@@ -2884,7 +2985,7 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2884
2985
|
});
|
|
2885
2986
|
}
|
|
2886
2987
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DatePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2887
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DatePickerComponent, isStandalone: true, selector: "app-datepicker", inputs: { tooltip: "tooltip", className: "className", calendarType: "calendarType", showLabel: "showLabel", yearOnly: "yearOnly", resetDate: "resetDate", error: "error",
|
|
2988
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DatePickerComponent, isStandalone: true, selector: "app-datepicker", inputs: { tooltip: "tooltip", className: "className", calendarType: "calendarType", showLabel: "showLabel", yearOnly: "yearOnly", resetDate: "resetDate", error: "error", format: "format" }, outputs: { dateValue: "dateValue" }, providers: [
|
|
2888
2989
|
{
|
|
2889
2990
|
provide: DateAdapter,
|
|
2890
2991
|
useClass: MomentDateAdapter,
|
|
@@ -2894,7 +2995,12 @@ class DatePickerComponent extends BaseComponent {
|
|
|
2894
2995
|
provide: MAT_DATE_FORMATS,
|
|
2895
2996
|
useClass: CustomDateFormat
|
|
2896
2997
|
},
|
|
2897
|
-
|
|
2998
|
+
{
|
|
2999
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3000
|
+
useExisting: forwardRef(() => DatePickerComponent),
|
|
3001
|
+
multi: true,
|
|
3002
|
+
},
|
|
3003
|
+
], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n </div>\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : isDisabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"label ? (i18n.translate('select') + ' ' + labelTextWriteMode) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"control\">\r\n </label>\r\n <ds-icon *ngIf=\"control?.value\" matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && control\">\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"control.value\" [hasLabel]=\"!!label\">\r\n </app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { 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: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
|
|
2898
3004
|
}
|
|
2899
3005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
2900
3006
|
type: Component,
|
|
@@ -2908,16 +3014,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
2908
3014
|
provide: MAT_DATE_FORMATS,
|
|
2909
3015
|
useClass: CustomDateFormat
|
|
2910
3016
|
},
|
|
3017
|
+
{
|
|
3018
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3019
|
+
useExisting: forwardRef(() => DatePickerComponent),
|
|
3020
|
+
multi: true,
|
|
3021
|
+
},
|
|
2911
3022
|
], imports: [
|
|
2912
3023
|
MatFormField,
|
|
3024
|
+
MatInput,
|
|
3025
|
+
MatIcon,
|
|
2913
3026
|
MatDatepickerToggle,
|
|
2914
3027
|
MatDatepicker,
|
|
2915
3028
|
MatDatepickerInput,
|
|
2916
3029
|
NgClass,
|
|
2917
3030
|
NgIf,
|
|
2918
3031
|
InfoItemComponent,
|
|
2919
|
-
ReactiveFormsModule
|
|
2920
|
-
|
|
3032
|
+
ReactiveFormsModule,
|
|
3033
|
+
ValidationErrorsComponent
|
|
3034
|
+
], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n </div>\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : isDisabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"label ? (i18n.translate('select') + ' ' + labelTextWriteMode) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"control\">\r\n </label>\r\n <ds-icon *ngIf=\"control?.value\" matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <!-- <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error> -->\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && control\">\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"control.value\" [hasLabel]=\"!!label\">\r\n </app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\n"] }]
|
|
2921
3035
|
}], propDecorators: { tooltip: [{
|
|
2922
3036
|
type: Input
|
|
2923
3037
|
}], className: [{
|
|
@@ -2934,14 +3048,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
2934
3048
|
type: Output
|
|
2935
3049
|
}], error: [{
|
|
2936
3050
|
type: Input
|
|
2937
|
-
}],
|
|
2938
|
-
type:
|
|
2939
|
-
|
|
2940
|
-
type: Input
|
|
2941
|
-
}], customMaxDate: [{
|
|
2942
|
-
type: Input
|
|
2943
|
-
}], customMinDate: [{
|
|
2944
|
-
type: Input
|
|
3051
|
+
}], dateFormat: [{
|
|
3052
|
+
type: Inject,
|
|
3053
|
+
args: [MAT_DATE_FORMATS]
|
|
2945
3054
|
}], format: [{
|
|
2946
3055
|
type: Input
|
|
2947
3056
|
}], datepicker: [{
|
|
@@ -3000,169 +3109,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3000
3109
|
type: Input
|
|
3001
3110
|
}] } });
|
|
3002
3111
|
|
|
3003
|
-
class ControlValueAccessorDirective {
|
|
3004
|
-
injector;
|
|
3005
|
-
i18n;
|
|
3006
|
-
hasLabel = true;
|
|
3007
|
-
isReadOnly;
|
|
3008
|
-
hideOption = false;
|
|
3009
|
-
labelTextWriteMode;
|
|
3010
|
-
hint = '';
|
|
3011
|
-
loading;
|
|
3012
|
-
placeholder;
|
|
3013
|
-
type;
|
|
3014
|
-
value;
|
|
3015
|
-
showErrorMessage;
|
|
3016
|
-
showHint;
|
|
3017
|
-
showIfEmpty;
|
|
3018
|
-
insideTable;
|
|
3019
|
-
control;
|
|
3020
|
-
required = false;
|
|
3021
|
-
maxLength;
|
|
3022
|
-
_isDisabled = false;
|
|
3023
|
-
constructor(injector, i18n) {
|
|
3024
|
-
this.injector = injector;
|
|
3025
|
-
this.i18n = i18n;
|
|
3026
|
-
}
|
|
3027
|
-
ngOnInit() {
|
|
3028
|
-
this.setFormControl();
|
|
3029
|
-
}
|
|
3030
|
-
setFormControl() {
|
|
3031
|
-
try {
|
|
3032
|
-
const formControl = this.injector.get(NgControl);
|
|
3033
|
-
switch (formControl.constructor) {
|
|
3034
|
-
case FormControlName:
|
|
3035
|
-
this.control = this.injector
|
|
3036
|
-
.get(FormGroupDirective)
|
|
3037
|
-
.getControl(formControl);
|
|
3038
|
-
break;
|
|
3039
|
-
default:
|
|
3040
|
-
this.control = formControl
|
|
3041
|
-
.form;
|
|
3042
|
-
break;
|
|
3043
|
-
}
|
|
3044
|
-
}
|
|
3045
|
-
catch (err) {
|
|
3046
|
-
this.control = new FormControl();
|
|
3047
|
-
}
|
|
3048
|
-
this.setFormValidators();
|
|
3049
|
-
}
|
|
3050
|
-
setFormValidators() {
|
|
3051
|
-
console.log(this.control);
|
|
3052
|
-
this.required = this.control?.hasValidator(Validators.required) ?? false;
|
|
3053
|
-
}
|
|
3054
|
-
writeValue(value) {
|
|
3055
|
-
this.value = value;
|
|
3056
|
-
}
|
|
3057
|
-
registerOnChange(fn) {
|
|
3058
|
-
}
|
|
3059
|
-
registerOnTouched(fn) {
|
|
3060
|
-
}
|
|
3061
|
-
setDisabledState(isDisabled) {
|
|
3062
|
-
this._isDisabled = isDisabled;
|
|
3063
|
-
}
|
|
3064
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, deps: [{ token: i0.Injector }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3065
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ControlValueAccessorDirective, selector: "[appControlValueAccessor]", inputs: { hasLabel: "hasLabel", isReadOnly: "isReadOnly", hideOption: "hideOption", labelTextWriteMode: "labelTextWriteMode", hint: "hint", loading: "loading", placeholder: "placeholder", type: "type", value: "value", showErrorMessage: "showErrorMessage", showHint: "showHint", showIfEmpty: "showIfEmpty", insideTable: "insideTable" }, ngImport: i0 });
|
|
3066
|
-
}
|
|
3067
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, decorators: [{
|
|
3068
|
-
type: Directive,
|
|
3069
|
-
args: [{
|
|
3070
|
-
selector: '[appControlValueAccessor]',
|
|
3071
|
-
}]
|
|
3072
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: CoreI18nService }], propDecorators: { hasLabel: [{
|
|
3073
|
-
type: Input
|
|
3074
|
-
}], isReadOnly: [{
|
|
3075
|
-
type: Input
|
|
3076
|
-
}], hideOption: [{
|
|
3077
|
-
type: Input
|
|
3078
|
-
}], labelTextWriteMode: [{
|
|
3079
|
-
type: Input
|
|
3080
|
-
}], hint: [{
|
|
3081
|
-
type: Input
|
|
3082
|
-
}], loading: [{
|
|
3083
|
-
type: Input
|
|
3084
|
-
}], placeholder: [{
|
|
3085
|
-
type: Input
|
|
3086
|
-
}], type: [{
|
|
3087
|
-
type: Input
|
|
3088
|
-
}], value: [{
|
|
3089
|
-
type: Input
|
|
3090
|
-
}], showErrorMessage: [{
|
|
3091
|
-
type: Input
|
|
3092
|
-
}], showHint: [{
|
|
3093
|
-
type: Input
|
|
3094
|
-
}], showIfEmpty: [{
|
|
3095
|
-
type: Input
|
|
3096
|
-
}], insideTable: [{
|
|
3097
|
-
type: Input
|
|
3098
|
-
}] } });
|
|
3099
|
-
|
|
3100
|
-
class ValidationErrorsComponent extends ControlValueAccessorDirective {
|
|
3101
|
-
errors = {};
|
|
3102
|
-
customErrorMessages = {};
|
|
3103
|
-
label;
|
|
3104
|
-
errorMessages = {
|
|
3105
|
-
required: 'This field is required',
|
|
3106
|
-
maxlength: 'This field max length',
|
|
3107
|
-
minlength: 'This field min length',
|
|
3108
|
-
};
|
|
3109
|
-
ngOnChanges(changes) {
|
|
3110
|
-
const { customErrorMessages } = changes;
|
|
3111
|
-
if (customErrorMessages) {
|
|
3112
|
-
this.errorMessages = {
|
|
3113
|
-
...this.errorMessages,
|
|
3114
|
-
...customErrorMessages.currentValue,
|
|
3115
|
-
};
|
|
3116
|
-
}
|
|
3117
|
-
}
|
|
3118
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidationErrorsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3119
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ValidationErrorsComponent, isStandalone: true, selector: "app-validation-errors", inputs: { errors: "errors", customErrorMessages: "customErrorMessages", label: "label" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }\r\n\r\n ", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] });
|
|
3120
|
-
}
|
|
3121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidationErrorsComponent, decorators: [{
|
|
3122
|
-
type: Component,
|
|
3123
|
-
args: [{ selector: 'app-validation-errors', standalone: true, imports: [
|
|
3124
|
-
NgFor,
|
|
3125
|
-
CommonModule,
|
|
3126
|
-
MatError
|
|
3127
|
-
], template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }\r\n\r\n " }]
|
|
3128
|
-
}], propDecorators: { errors: [{
|
|
3129
|
-
type: Input
|
|
3130
|
-
}], customErrorMessages: [{
|
|
3131
|
-
type: Input
|
|
3132
|
-
}], label: [{
|
|
3133
|
-
type: Input
|
|
3134
|
-
}] } });
|
|
3135
|
-
|
|
3136
3112
|
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
3137
3113
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3138
3114
|
/* eslint-disable @angular-eslint/component-selector */
|
|
3139
3115
|
class InputComponent extends ControlValueAccessorDirective {
|
|
3140
|
-
label;
|
|
3141
3116
|
hasTooltip = false;
|
|
3142
3117
|
tooltip;
|
|
3143
3118
|
floatLabel = 'auto';
|
|
3144
3119
|
className = 'bordered-input';
|
|
3145
3120
|
showLabel = true;
|
|
3146
3121
|
iconPrefixName;
|
|
3147
|
-
matSuffix;
|
|
3148
3122
|
iconSuffixName;
|
|
3149
3123
|
emitedChangedValue1 = new EventEmitter();
|
|
3150
|
-
// ngOnInit(): void {
|
|
3151
|
-
// }
|
|
3152
|
-
ngAfterViewChecked() {
|
|
3153
|
-
// this.cdRef.detectChanges();
|
|
3154
|
-
}
|
|
3155
|
-
ngOnChanges(changes) {
|
|
3156
|
-
console.log(this.control.errors);
|
|
3157
|
-
}
|
|
3158
3124
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3159
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "app-input", inputs: {
|
|
3125
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "app-input", inputs: { hasTooltip: "hasTooltip", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", emitedChangedValue1: "emitedChangedValue1" }, providers: [
|
|
3160
3126
|
{
|
|
3161
3127
|
provide: NG_VALUE_ACCESSOR,
|
|
3162
3128
|
useExisting: forwardRef(() => InputComponent),
|
|
3163
3129
|
multi: true,
|
|
3164
3130
|
},
|
|
3165
|
-
], usesInheritance: true,
|
|
3131
|
+
], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n<app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!required\"\r\n [hideOption]=\"required\"\r\n [showLabel]=\"showLabel\"\r\n></app-form-label>\r\n@if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{ label }}</span\r\n >} @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ labelTextWriteMode }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n <!-- -->\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(matSuffix){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(!control?.valid){\r\n <!-- <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error> -->\r\n \r\n } @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n\r\n\r\n<!-- <span class=\"fc-coral\" style=\"color: #f44336\">\r\n {{ control.errors }}\r\n</span> -->\r\n\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<!-- <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover> -->\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$3.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1$3.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { 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: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
|
|
3166
3132
|
}
|
|
3167
3133
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, decorators: [{
|
|
3168
3134
|
type: Component,
|
|
@@ -3183,10 +3149,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3183
3149
|
useExisting: forwardRef(() => InputComponent),
|
|
3184
3150
|
multi: true,
|
|
3185
3151
|
},
|
|
3186
|
-
], template: "@if(!isReadOnly){\r\n<app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!required\"\r\n [hideOption]=\"
|
|
3187
|
-
}], propDecorators: {
|
|
3188
|
-
type: Input
|
|
3189
|
-
}], hasTooltip: [{
|
|
3152
|
+
], template: "@if(!isReadOnly){\r\n<app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!required\"\r\n [hideOption]=\"required\"\r\n [showLabel]=\"showLabel\"\r\n></app-form-label>\r\n@if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{ label }}</span\r\n >} @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ labelTextWriteMode }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n <!-- -->\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(matSuffix){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(!control?.valid){\r\n <!-- <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error> -->\r\n \r\n } @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n\r\n\r\n<!-- <span class=\"fc-coral\" style=\"color: #f44336\">\r\n {{ control.errors }}\r\n</span> -->\r\n\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<!-- <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover> -->\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"] }]
|
|
3153
|
+
}], propDecorators: { hasTooltip: [{
|
|
3190
3154
|
type: Input
|
|
3191
3155
|
}], tooltip: [{
|
|
3192
3156
|
type: Input
|
|
@@ -3198,8 +3162,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3198
3162
|
type: Input
|
|
3199
3163
|
}], iconPrefixName: [{
|
|
3200
3164
|
type: Input
|
|
3201
|
-
}], matSuffix: [{
|
|
3202
|
-
type: Input
|
|
3203
3165
|
}], iconSuffixName: [{
|
|
3204
3166
|
type: Input
|
|
3205
3167
|
}], emitedChangedValue1: [{
|
|
@@ -3209,93 +3171,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3209
3171
|
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
3210
3172
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3211
3173
|
/* eslint-disable @angular-eslint/component-selector */
|
|
3212
|
-
class InputNumberComponent extends
|
|
3213
|
-
label;
|
|
3214
|
-
displayValue;
|
|
3215
|
-
hasError = false;
|
|
3216
|
-
error;
|
|
3174
|
+
class InputNumberComponent extends ControlValueAccessorDirective {
|
|
3217
3175
|
tooltip;
|
|
3218
3176
|
floatLabel = 'auto';
|
|
3219
3177
|
className = 'bordered-input';
|
|
3220
|
-
showLabel = true;
|
|
3221
|
-
matPrefix;
|
|
3222
3178
|
iconPrefixName;
|
|
3223
|
-
matSuffix;
|
|
3224
3179
|
iconSuffixName;
|
|
3225
3180
|
numberSuffixName;
|
|
3226
|
-
optional = false;
|
|
3227
|
-
showArrows = false;
|
|
3228
|
-
decimals = 0;
|
|
3229
3181
|
allowedPattern = '';
|
|
3230
3182
|
emitedChangedValue = new EventEmitter();
|
|
3231
|
-
ngOnInit() {
|
|
3232
|
-
// this.resetPropagator.subscribe(this, this.resetData);
|
|
3233
|
-
this.field == undefined ? (this.field = '') : this.field;
|
|
3234
|
-
this.controller.setValue(this.field);
|
|
3235
|
-
if (this.type == 'email') {
|
|
3236
|
-
this.controller.setValidators([
|
|
3237
|
-
Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$'),
|
|
3238
|
-
]);
|
|
3239
|
-
}
|
|
3240
|
-
if (this.minLength) {
|
|
3241
|
-
this.controller.setValidators([Validators.minLength(+this.minLength)]);
|
|
3242
|
-
}
|
|
3243
|
-
if (this.maxLength && !this.mask) {
|
|
3244
|
-
// this.controller.setValidators([Validators.maxLength(+this.maxLength)]);
|
|
3245
|
-
//this.mask = '0'.repeat(+this.maxLength)
|
|
3246
|
-
}
|
|
3247
|
-
if (this.maxValue) {
|
|
3248
|
-
this.controller.setValidators([Validators.max(+this.maxValue)]);
|
|
3249
|
-
}
|
|
3250
|
-
}
|
|
3251
|
-
ngAfterViewChecked() {
|
|
3252
|
-
this.cdRef.detectChanges();
|
|
3253
|
-
}
|
|
3254
|
-
ngOnChanges(changes) {
|
|
3255
|
-
console.log("showErrorMessage :", this.showErrorMessage);
|
|
3256
|
-
console.log("errorMessage :", this.errorMessage);
|
|
3257
|
-
if (changes?.['field']) {
|
|
3258
|
-
if (changes['field'].currentValue == '' || changes['field'].currentValue == null) {
|
|
3259
|
-
this.controller.setValue('');
|
|
3260
|
-
}
|
|
3261
|
-
else {
|
|
3262
|
-
this.controller.setValue(changes['field'].currentValue);
|
|
3263
|
-
}
|
|
3264
|
-
}
|
|
3265
|
-
}
|
|
3266
|
-
onValueChange(data) {
|
|
3267
|
-
let currentValue = data.target.value;
|
|
3268
|
-
if (+currentValue.length > +this.maxLength) {
|
|
3269
|
-
currentValue = currentValue.substr(0, +this.maxLength).toString();
|
|
3270
|
-
}
|
|
3271
|
-
if (+currentValue < +this.minValue) {
|
|
3272
|
-
currentValue = this.minValue.toString();
|
|
3273
|
-
}
|
|
3274
|
-
if (+currentValue > +this.maxValue) {
|
|
3275
|
-
currentValue = this.maxValue.toString();
|
|
3276
|
-
}
|
|
3277
|
-
this.field = currentValue;
|
|
3278
|
-
this.controller.setValue(this.field);
|
|
3279
|
-
this.emitedValue.emit(this.field.trim());
|
|
3280
|
-
}
|
|
3281
|
-
onValueChangeEvent(data) {
|
|
3282
|
-
console.log("showErrorMessage :", this.showErrorMessage);
|
|
3283
|
-
let currentValue = data.target.value;
|
|
3284
|
-
if (+currentValue.length > +this.maxLength) {
|
|
3285
|
-
currentValue = currentValue.substr(0, +this.maxLength).toString();
|
|
3286
|
-
}
|
|
3287
|
-
if (+currentValue < +this.minValue) {
|
|
3288
|
-
currentValue = this.minValue.toString();
|
|
3289
|
-
}
|
|
3290
|
-
if (+currentValue > +this.maxValue) {
|
|
3291
|
-
currentValue = this.maxValue.toString();
|
|
3292
|
-
}
|
|
3293
|
-
this.field = currentValue;
|
|
3294
|
-
this.controller.setValue(this.field);
|
|
3295
|
-
this.emitedChangedValue.emit(this.field.trim());
|
|
3296
|
-
}
|
|
3297
3183
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3298
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputNumberComponent, isStandalone: true, selector: "app-input-number", inputs: {
|
|
3184
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputNumberComponent, isStandalone: true, selector: "app-input-number", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", allowedPattern: "allowedPattern" }, outputs: { emitedChangedValue: "emitedChangedValue" }, providers: [
|
|
3185
|
+
{
|
|
3186
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3187
|
+
useExisting: forwardRef(() => InputNumberComponent),
|
|
3188
|
+
multi: true,
|
|
3189
|
+
},
|
|
3190
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"isDisabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"isDisabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\" \r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span> -->\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && control\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\"\r\n [value]=\"control\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$3.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { 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"] }] });
|
|
3299
3191
|
}
|
|
3300
3192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputNumberComponent, decorators: [{
|
|
3301
3193
|
type: Component,
|
|
@@ -3308,39 +3200,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3308
3200
|
InfoItemComponent,
|
|
3309
3201
|
SatPopoverModule,
|
|
3310
3202
|
MatInput
|
|
3311
|
-
],
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
type: Input
|
|
3320
|
-
}], tooltip: [{
|
|
3203
|
+
], providers: [
|
|
3204
|
+
{
|
|
3205
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3206
|
+
useExisting: forwardRef(() => InputNumberComponent),
|
|
3207
|
+
multi: true,
|
|
3208
|
+
},
|
|
3209
|
+
], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"label\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"isDisabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"isDisabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\" \r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!control?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span> -->\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && control\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\"\r\n [value]=\"control\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"] }]
|
|
3210
|
+
}], propDecorators: { tooltip: [{
|
|
3321
3211
|
type: Input
|
|
3322
3212
|
}], floatLabel: [{
|
|
3323
3213
|
type: Input
|
|
3324
3214
|
}], className: [{
|
|
3325
3215
|
type: Input
|
|
3326
|
-
}], showLabel: [{
|
|
3327
|
-
type: Input
|
|
3328
|
-
}], matPrefix: [{
|
|
3329
|
-
type: Input
|
|
3330
3216
|
}], iconPrefixName: [{
|
|
3331
3217
|
type: Input
|
|
3332
|
-
}], matSuffix: [{
|
|
3333
|
-
type: Input
|
|
3334
3218
|
}], iconSuffixName: [{
|
|
3335
3219
|
type: Input
|
|
3336
3220
|
}], numberSuffixName: [{
|
|
3337
3221
|
type: Input
|
|
3338
|
-
}], optional: [{
|
|
3339
|
-
type: Input
|
|
3340
|
-
}], showArrows: [{
|
|
3341
|
-
type: Input
|
|
3342
|
-
}], decimals: [{
|
|
3343
|
-
type: Input
|
|
3344
3222
|
}], allowedPattern: [{
|
|
3345
3223
|
type: Input
|
|
3346
3224
|
}], emitedChangedValue: [{
|
|
@@ -3350,302 +3228,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3350
3228
|
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
3351
3229
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3352
3230
|
/* eslint-disable @angular-eslint/component-selector */
|
|
3353
|
-
class InputEmailComponent extends
|
|
3354
|
-
label;
|
|
3355
|
-
displayValue;
|
|
3356
|
-
hasError = false;
|
|
3357
|
-
error;
|
|
3231
|
+
class InputEmailComponent extends ControlValueAccessorDirective {
|
|
3358
3232
|
tooltip;
|
|
3359
3233
|
floatLabel = 'auto';
|
|
3360
3234
|
className = 'bordered-input';
|
|
3361
|
-
showLabel = true;
|
|
3362
3235
|
matPrefix;
|
|
3363
3236
|
iconPrefixName;
|
|
3364
|
-
matSuffix;
|
|
3365
3237
|
iconSuffixName;
|
|
3366
3238
|
numberSuffixName;
|
|
3367
|
-
optional = false;
|
|
3368
|
-
showArrows = false;
|
|
3369
|
-
decimals = 0;
|
|
3370
|
-
ngOnInit() {
|
|
3371
|
-
// this.resetPropagator.subscribe(this, this.resetData);
|
|
3372
|
-
this.field == undefined ? (this.field = '') : this.field;
|
|
3373
|
-
this.controller.setValue(this.field);
|
|
3374
|
-
this.controller.setValidators([
|
|
3375
|
-
Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$'),
|
|
3376
|
-
]);
|
|
3377
|
-
this.mask = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$';
|
|
3378
|
-
}
|
|
3379
|
-
ngAfterViewChecked() {
|
|
3380
|
-
this.cdRef.detectChanges();
|
|
3381
|
-
}
|
|
3382
|
-
ngOnChanges(changes) {
|
|
3383
|
-
if (changes?.['field']) {
|
|
3384
|
-
if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {
|
|
3385
|
-
this.controller.setValue('');
|
|
3386
|
-
}
|
|
3387
|
-
else {
|
|
3388
|
-
this.controller.setValue(changes['field'].currentValue);
|
|
3389
|
-
}
|
|
3390
|
-
}
|
|
3391
|
-
}
|
|
3392
|
-
onValueChange(data) {
|
|
3393
|
-
let currentValue = data.target.value;
|
|
3394
|
-
if (+currentValue.length > +this.maxLength) {
|
|
3395
|
-
currentValue = currentValue.substr(0, +this.maxLength).toString();
|
|
3396
|
-
}
|
|
3397
|
-
if (+currentValue < +this.minValue) {
|
|
3398
|
-
currentValue = this.minValue.toString();
|
|
3399
|
-
}
|
|
3400
|
-
if (+currentValue > +this.maxValue) {
|
|
3401
|
-
currentValue = this.maxValue.toString();
|
|
3402
|
-
}
|
|
3403
|
-
this.field = currentValue;
|
|
3404
|
-
this.controller.setValue(this.field);
|
|
3405
|
-
this.emitedValue.emit(this.field.trim());
|
|
3406
|
-
}
|
|
3407
3239
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3408
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3240
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputEmailComponent, isStandalone: true, selector: "app-input-email", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName" }, providers: [
|
|
3241
|
+
{
|
|
3242
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3243
|
+
useExisting: forwardRef(() => InputEmailComponent),
|
|
3244
|
+
multi: true,
|
|
3245
|
+
},
|
|
3246
|
+
], usesInheritance: true, ngImport: i0, template: "\r\n@if(!isReadOnly){\r\n <ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n \r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\" [disabled]=\"isDisabled\">\r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"isDisabled\" \r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n }\r\n @if(type === 'number'){\r\n <div matSuffix class=\"d-flex align-items-center gap-2\">\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{numberSuffixName}}</span>\r\n }\r\n </div>\r\n }\r\n <!-- <mat-error *ngIf=\"(!control?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error> -->\r\n @if(showHint){\r\n <mat-hint>\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n \r\n \r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && control.value)\">\r\n {{errorMessage}}\r\n </span> -->\r\n \r\n </ng-container>\r\n}\r\n @if(isReadOnly && control){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true : false\"\r\n [value]=\"control\"></app-info-item>\r\n </ng-container>\r\n }\r\n\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$3.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
3409
3247
|
}
|
|
3410
3248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputEmailComponent, decorators: [{
|
|
3411
3249
|
type: Component,
|
|
3412
3250
|
args: [{ selector: 'app-input-email', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
|
|
3413
|
-
MatFormField,
|
|
3414
|
-
NgIf,
|
|
3415
|
-
InfoItemComponent,
|
|
3416
|
-
SatPopoverModule,
|
|
3417
|
-
NgClass,
|
|
3418
|
-
ReactiveFormsModule
|
|
3419
|
-
],
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
type: Input
|
|
3428
|
-
}], tooltip: [{
|
|
3251
|
+
MatFormField,
|
|
3252
|
+
NgIf,
|
|
3253
|
+
InfoItemComponent,
|
|
3254
|
+
SatPopoverModule,
|
|
3255
|
+
NgClass,
|
|
3256
|
+
ReactiveFormsModule
|
|
3257
|
+
], providers: [
|
|
3258
|
+
{
|
|
3259
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3260
|
+
useExisting: forwardRef(() => InputEmailComponent),
|
|
3261
|
+
multi: true,
|
|
3262
|
+
},
|
|
3263
|
+
], template: "\r\n@if(!isReadOnly){\r\n <ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n \r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\" [disabled]=\"isDisabled\">\r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"isDisabled\" \r\n oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n }\r\n @if(type === 'number'){\r\n <div matSuffix class=\"d-flex align-items-center gap-2\">\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{numberSuffixName}}</span>\r\n }\r\n </div>\r\n }\r\n <!-- <mat-error *ngIf=\"(!control?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error> -->\r\n @if(showHint){\r\n <mat-hint>\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n \r\n \r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && control.value)\">\r\n {{errorMessage}}\r\n </span> -->\r\n \r\n </ng-container>\r\n}\r\n @if(isReadOnly && control){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true : false\"\r\n [value]=\"control\"></app-info-item>\r\n </ng-container>\r\n }\r\n\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"] }]
|
|
3264
|
+
}], propDecorators: { tooltip: [{
|
|
3429
3265
|
type: Input
|
|
3430
3266
|
}], floatLabel: [{
|
|
3431
3267
|
type: Input
|
|
3432
3268
|
}], className: [{
|
|
3433
3269
|
type: Input
|
|
3434
|
-
}], showLabel: [{
|
|
3435
|
-
type: Input
|
|
3436
3270
|
}], matPrefix: [{
|
|
3437
3271
|
type: Input
|
|
3438
3272
|
}], iconPrefixName: [{
|
|
3439
3273
|
type: Input
|
|
3440
|
-
}], matSuffix: [{
|
|
3441
|
-
type: Input
|
|
3442
3274
|
}], iconSuffixName: [{
|
|
3443
3275
|
type: Input
|
|
3444
3276
|
}], numberSuffixName: [{
|
|
3445
3277
|
type: Input
|
|
3446
|
-
}], optional: [{
|
|
3447
|
-
type: Input
|
|
3448
|
-
}], showArrows: [{
|
|
3449
|
-
type: Input
|
|
3450
|
-
}], decimals: [{
|
|
3451
|
-
type: Input
|
|
3452
3278
|
}] } });
|
|
3453
3279
|
|
|
3454
3280
|
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
3455
3281
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3456
3282
|
/* eslint-disable @angular-eslint/component-selector */
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
displayValue;
|
|
3460
|
-
hasError = false;
|
|
3461
|
-
error;
|
|
3283
|
+
// import { Validators } from '@angular/forms';
|
|
3284
|
+
class InputMaskComponent extends ControlValueAccessorDirective {
|
|
3462
3285
|
tooltip;
|
|
3463
3286
|
floatLabel = 'auto';
|
|
3464
3287
|
className = 'bordered-input';
|
|
3465
|
-
showLabel = true;
|
|
3466
3288
|
matPrefix;
|
|
3467
3289
|
iconPrefixName;
|
|
3468
|
-
matSuffix;
|
|
3469
3290
|
iconSuffixName;
|
|
3470
3291
|
numberSuffixName;
|
|
3471
|
-
optional = false;
|
|
3472
|
-
showArrows = false;
|
|
3473
|
-
decimals = 0;
|
|
3474
|
-
ngOnInit() {
|
|
3475
|
-
// this.resetPropagator.subscribe(this, this.resetData);
|
|
3476
|
-
this.field == undefined ? (this.field = '') : this.field;
|
|
3477
|
-
// code meaning
|
|
3478
|
-
// 0 digits (like 0 to 9 numbers)
|
|
3479
|
-
// 9 digits (like 0 to 9 numbers), but optional
|
|
3480
|
-
// A letters (uppercase or lowercase) and digits
|
|
3481
|
-
// S only letters (uppercase or lowercase)
|
|
3482
|
-
// U only letters uppercase
|
|
3483
|
-
// L only letters lowercase
|
|
3484
|
-
}
|
|
3485
|
-
ngAfterViewChecked() {
|
|
3486
|
-
this.cdRef.detectChanges();
|
|
3487
|
-
}
|
|
3488
|
-
ngOnChanges(changes) {
|
|
3489
|
-
if (changes?.['field']) {
|
|
3490
|
-
if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {
|
|
3491
|
-
this.controller.setValue('');
|
|
3492
|
-
}
|
|
3493
|
-
else {
|
|
3494
|
-
this.controller.setValue(changes['field'].currentValue);
|
|
3495
|
-
}
|
|
3496
|
-
}
|
|
3497
|
-
}
|
|
3498
|
-
onValueChange(data) {
|
|
3499
|
-
let currentValue = data.target.value;
|
|
3500
|
-
if (+currentValue.length > +this.maxLength) {
|
|
3501
|
-
currentValue = currentValue.substr(0, +this.maxLength).toString();
|
|
3502
|
-
}
|
|
3503
|
-
if (+currentValue < +this.minValue) {
|
|
3504
|
-
currentValue = this.minValue.toString();
|
|
3505
|
-
}
|
|
3506
|
-
if (+currentValue > +this.maxValue) {
|
|
3507
|
-
currentValue = this.maxValue.toString();
|
|
3508
|
-
}
|
|
3509
|
-
this.field = currentValue;
|
|
3510
|
-
this.controller.setValue(this.field);
|
|
3511
|
-
this.emitedValue.emit(this.field.trim());
|
|
3512
|
-
}
|
|
3513
3292
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputMaskComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3514
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3293
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputMaskComponent, isStandalone: true, selector: "app-input-mask", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName" }, providers: [
|
|
3294
|
+
{
|
|
3295
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3296
|
+
useExisting: forwardRef(() => InputMaskComponent),
|
|
3297
|
+
multi: true,
|
|
3298
|
+
},
|
|
3299
|
+
], usesInheritance: true, ngImport: i0, template: "\r\n@if(!isReadOnly){\r\n <ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n }\r\n </div>\r\n }\r\n \r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n \r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"isDisabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n \r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n }\r\n @if(type === 'number'){\r\n <div matSuffix class=\"d-flex align-items-center gap-2\">\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{numberSuffixName}}</span>\r\n }\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n }\r\n <!-- @if((!control?.valid)){\r\n <mat-error class=\"mb-2\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n } -->\r\n \r\n \r\n <!-- <mat-error *ngIf=\"(type ==='email' && !control?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error> -->\r\n @if(showHint){\r\n <mat-hint>\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && control.value)\">\r\n {{errorMessage}}\r\n </span> -->\r\n \r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\"\r\n [value]=\"control\"></app-info-item>\r\n </ng-container>\r\n \r\n}\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$3.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
3515
3300
|
}
|
|
3516
3301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputMaskComponent, decorators: [{
|
|
3517
3302
|
type: Component,
|
|
3518
|
-
args: [{ selector: 'app-input-mask', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true,
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
|
|
3526
|
-
type: Input
|
|
3527
|
-
}], tooltip: [{
|
|
3303
|
+
args: [{ selector: 'app-input-mask', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, providers: [
|
|
3304
|
+
{
|
|
3305
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3306
|
+
useExisting: forwardRef(() => InputMaskComponent),
|
|
3307
|
+
multi: true,
|
|
3308
|
+
},
|
|
3309
|
+
], imports: [SatPopoverModule, MatFormField, NgxMaskDirective, NgIf, InfoItemComponent, ReactiveFormsModule, NgClass], template: "\r\n@if(!isReadOnly){\r\n <ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n }\r\n </div>\r\n }\r\n \r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : isDisabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n \r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"isDisabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"control\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n \r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n }\r\n @if(type === 'number'){\r\n <div matSuffix class=\"d-flex align-items-center gap-2\">\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{numberSuffixName}}</span>\r\n }\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n }\r\n <!-- @if((!control?.valid)){\r\n <mat-error class=\"mb-2\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n } -->\r\n \r\n \r\n <!-- <mat-error *ngIf=\"(type ==='email' && !control?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error> -->\r\n @if(showHint){\r\n <mat-hint>\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <!-- <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && control.value)\">\r\n {{errorMessage}}\r\n </span> -->\r\n \r\n </ng-container>\r\n}\r\n\r\n@if(isReadOnly && control){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"label ? true: false\"\r\n [value]=\"control\"></app-info-item>\r\n </ng-container>\r\n \r\n}\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}\n"] }]
|
|
3310
|
+
}], propDecorators: { tooltip: [{
|
|
3528
3311
|
type: Input
|
|
3529
3312
|
}], floatLabel: [{
|
|
3530
3313
|
type: Input
|
|
3531
3314
|
}], className: [{
|
|
3532
3315
|
type: Input
|
|
3533
|
-
}], showLabel: [{
|
|
3534
|
-
type: Input
|
|
3535
3316
|
}], matPrefix: [{
|
|
3536
3317
|
type: Input
|
|
3537
3318
|
}], iconPrefixName: [{
|
|
3538
3319
|
type: Input
|
|
3539
|
-
}], matSuffix: [{
|
|
3540
|
-
type: Input
|
|
3541
3320
|
}], iconSuffixName: [{
|
|
3542
3321
|
type: Input
|
|
3543
3322
|
}], numberSuffixName: [{
|
|
3544
3323
|
type: Input
|
|
3545
|
-
}], optional: [{
|
|
3546
|
-
type: Input
|
|
3547
|
-
}], showArrows: [{
|
|
3548
|
-
type: Input
|
|
3549
|
-
}], decimals: [{
|
|
3550
|
-
type: Input
|
|
3551
3324
|
}] } });
|
|
3552
3325
|
|
|
3553
3326
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3554
3327
|
/* eslint-disable @angular-eslint/use-lifecycle-interface */
|
|
3555
3328
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3556
3329
|
/* eslint-disable @angular-eslint/component-selector */
|
|
3557
|
-
class InputCurrencyComponent extends
|
|
3558
|
-
label;
|
|
3559
|
-
displayValue;
|
|
3560
|
-
hasError = false;
|
|
3561
|
-
error;
|
|
3330
|
+
class InputCurrencyComponent extends ControlValueAccessorDirective {
|
|
3562
3331
|
tooltip;
|
|
3563
3332
|
floatLabel = 'auto';
|
|
3564
3333
|
className = 'bordered-input';
|
|
3565
|
-
showLabel = true;
|
|
3566
|
-
showPlus = true;
|
|
3567
|
-
showMinus = true;
|
|
3568
|
-
matPrefix;
|
|
3569
3334
|
iconPrefixName;
|
|
3570
|
-
matSuffix;
|
|
3571
3335
|
iconSuffixName;
|
|
3572
3336
|
numberSuffixName;
|
|
3573
|
-
|
|
3574
|
-
showArrows = false;
|
|
3575
|
-
decimals = 0;
|
|
3576
|
-
ngOnInit() {
|
|
3577
|
-
// this.resetPropagator.subscribe(this, this.resetData);
|
|
3578
|
-
this.field == undefined ? (this.field = '') : this.field;
|
|
3579
|
-
this.controller.setValue(this.field);
|
|
3580
|
-
if (this.type == 'email') {
|
|
3581
|
-
this.controller.setValidators([
|
|
3582
|
-
Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$'),
|
|
3583
|
-
]);
|
|
3584
|
-
}
|
|
3585
|
-
// if (this.minLength) {
|
|
3586
|
-
// this.controller.setValidators([Validators.minLength(+this.minLength)]);
|
|
3587
|
-
// }
|
|
3588
|
-
if (this.maxLength && !this.mask) {
|
|
3589
|
-
// this.controller.setValidators([Validators.maxLength(+this.maxLength)]);
|
|
3590
|
-
this.mask = '0'.repeat(+this.maxLength);
|
|
3591
|
-
}
|
|
3592
|
-
if (this.maxValue) {
|
|
3593
|
-
this.controller.setValidators([Validators.max(+this.maxValue)]);
|
|
3594
|
-
}
|
|
3595
|
-
}
|
|
3596
|
-
ngAfterViewChecked() {
|
|
3597
|
-
this.cdRef.detectChanges();
|
|
3598
|
-
}
|
|
3599
|
-
ngOnChanges(changes) {
|
|
3600
|
-
if (changes?.['field']) {
|
|
3601
|
-
if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {
|
|
3602
|
-
this.controller.setValue('');
|
|
3603
|
-
}
|
|
3604
|
-
else {
|
|
3605
|
-
this.controller.setValue(changes['field'].currentValue);
|
|
3606
|
-
}
|
|
3607
|
-
}
|
|
3608
|
-
}
|
|
3609
|
-
plus() {
|
|
3610
|
-
let controlValue = (this.controller.value);
|
|
3611
|
-
controlValue = this.mycurrencyPipe.parse(controlValue);
|
|
3612
|
-
controlValue = Number(controlValue);
|
|
3613
|
-
controlValue = controlValue + 1;
|
|
3614
|
-
const currencValue = this.mycurrencyPipe.transform(controlValue.toString());
|
|
3615
|
-
this.controller.setValue(this.mycurrencyPipe.transform(currencValue));
|
|
3616
|
-
this.emitedValue.emit(this.controller.value);
|
|
3617
|
-
}
|
|
3618
|
-
minus() {
|
|
3619
|
-
let controlValue = (this.controller.value);
|
|
3620
|
-
controlValue = this.mycurrencyPipe.parse(controlValue);
|
|
3621
|
-
controlValue = Number(controlValue);
|
|
3622
|
-
if (controlValue > 0) {
|
|
3623
|
-
controlValue = controlValue - 1;
|
|
3624
|
-
const currencValue = this.mycurrencyPipe.transform(controlValue.toString());
|
|
3625
|
-
this.controller.setValue(this.mycurrencyPipe.transform(currencValue));
|
|
3626
|
-
this.emitedValue.emit(this.controller.value);
|
|
3627
|
-
}
|
|
3628
|
-
}
|
|
3629
|
-
onValueChange(data) {
|
|
3630
|
-
let currentValue = data.target.value;
|
|
3631
|
-
if (+currentValue.length > +this.maxLength) {
|
|
3632
|
-
currentValue = currentValue.substr(0, +this.maxLength).toString();
|
|
3633
|
-
}
|
|
3634
|
-
if (+currentValue < +this.minValue) {
|
|
3635
|
-
currentValue = this.minValue.toString();
|
|
3636
|
-
}
|
|
3637
|
-
if (+currentValue > +this.maxValue) {
|
|
3638
|
-
currentValue = this.maxValue.toString();
|
|
3639
|
-
}
|
|
3640
|
-
// currentValue = currentValue?.replaceAll(',', '')
|
|
3641
|
-
// currentValue = Number(currentValue)
|
|
3642
|
-
// this.field = JSON.stringify(currentValue);
|
|
3643
|
-
this.field = currentValue;
|
|
3644
|
-
this.controller.setValue(this.field);
|
|
3645
|
-
this.emitedValue.emit(this.field.trim());
|
|
3646
|
-
}
|
|
3337
|
+
mycurrencyPipe;
|
|
3647
3338
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputCurrencyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3648
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3339
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputCurrencyComponent, isStandalone: true, selector: "app-input-currency", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName" }, providers: [
|
|
3340
|
+
{
|
|
3341
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3342
|
+
useExisting: forwardRef(() => InputCurrencyComponent),
|
|
3343
|
+
multi: true,
|
|
3344
|
+
},
|
|
3345
|
+
], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n<ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{ i18n.translate(\"Optional\") }} </span>\r\n }\r\n </div>\r\n }\r\n\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{ iconPrefixName }}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n (paste)=\"(false)\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>\r\n } @if(type === 'number'){\r\n <div\r\n matSuffix\r\n class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{ numberSuffixName }}</span>\r\n }\r\n </div>\r\n } @if(!control?.valid){\r\n <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error>\r\n } @if(showHint){\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n</ng-container>\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [type]=\"'currency'\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [value]=\"control\"\r\n ></app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{ tooltip }}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$3.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { 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"] }] });
|
|
3649
3346
|
}
|
|
3650
3347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputCurrencyComponent, decorators: [{
|
|
3651
3348
|
type: Component,
|
|
@@ -3657,64 +3354,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3657
3354
|
InfoItemComponent,
|
|
3658
3355
|
SatPopoverModule,
|
|
3659
3356
|
MatFormField,
|
|
3357
|
+
MatInput,
|
|
3660
3358
|
NgIf
|
|
3661
|
-
],
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
type: Input
|
|
3670
|
-
}], tooltip: [{
|
|
3359
|
+
], providers: [
|
|
3360
|
+
{
|
|
3361
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3362
|
+
useExisting: forwardRef(() => InputCurrencyComponent),
|
|
3363
|
+
multi: true,
|
|
3364
|
+
},
|
|
3365
|
+
], template: "@if(!isReadOnly){\r\n<ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{ i18n.translate(\"Optional\") }} </span>\r\n }\r\n </div>\r\n }\r\n\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{ iconPrefixName }}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n (paste)=\"(false)\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>\r\n } @if(type === 'number'){\r\n <div\r\n matSuffix\r\n class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{ numberSuffixName }}</span>\r\n }\r\n </div>\r\n } @if(!control?.valid){\r\n <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error>\r\n } @if(showHint){\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n</ng-container>\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [type]=\"'currency'\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [value]=\"control\"\r\n ></app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{ tooltip }}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"] }]
|
|
3366
|
+
}], propDecorators: { tooltip: [{
|
|
3671
3367
|
type: Input
|
|
3672
3368
|
}], floatLabel: [{
|
|
3673
3369
|
type: Input
|
|
3674
3370
|
}], className: [{
|
|
3675
3371
|
type: Input
|
|
3676
|
-
}], showLabel: [{
|
|
3677
|
-
type: Input
|
|
3678
|
-
}], showPlus: [{
|
|
3679
|
-
type: Input
|
|
3680
|
-
}], showMinus: [{
|
|
3681
|
-
type: Input
|
|
3682
|
-
}], matPrefix: [{
|
|
3683
|
-
type: Input
|
|
3684
3372
|
}], iconPrefixName: [{
|
|
3685
3373
|
type: Input
|
|
3686
|
-
}], matSuffix: [{
|
|
3687
|
-
type: Input
|
|
3688
3374
|
}], iconSuffixName: [{
|
|
3689
3375
|
type: Input
|
|
3690
3376
|
}], numberSuffixName: [{
|
|
3691
3377
|
type: Input
|
|
3692
|
-
}], optional: [{
|
|
3693
|
-
type: Input
|
|
3694
|
-
}], showArrows: [{
|
|
3695
|
-
type: Input
|
|
3696
|
-
}], decimals: [{
|
|
3697
|
-
type: Input
|
|
3698
3378
|
}] } });
|
|
3699
3379
|
|
|
3700
3380
|
// export * from './input-autocomplete.module';
|
|
3701
3381
|
|
|
3702
|
-
class InputTelephoneComponent {
|
|
3703
|
-
i18n;
|
|
3704
|
-
label;
|
|
3705
|
-
value;
|
|
3382
|
+
class InputTelephoneComponent extends ControlValueAccessorDirective {
|
|
3706
3383
|
tooltip;
|
|
3707
3384
|
floatLabel = 'auto';
|
|
3708
3385
|
className = 'bordered-input';
|
|
3709
|
-
placeholder;
|
|
3710
3386
|
showLabel = true;
|
|
3711
|
-
isReadOnly = false;
|
|
3712
3387
|
matPrefix;
|
|
3713
3388
|
iconPrefixName;
|
|
3714
|
-
matSuffix;
|
|
3715
3389
|
iconSuffixName;
|
|
3716
|
-
required = true;
|
|
3717
|
-
disabled = false;
|
|
3718
3390
|
field;
|
|
3719
3391
|
name;
|
|
3720
3392
|
controller = new FormControl();
|
|
@@ -3722,17 +3394,12 @@ class InputTelephoneComponent {
|
|
|
3722
3394
|
checkPhoneError = new EventEmitter();
|
|
3723
3395
|
phoneValue = new EventEmitter();
|
|
3724
3396
|
totalNumber = new EventEmitter();
|
|
3725
|
-
maxLength;
|
|
3726
|
-
minLength;
|
|
3727
3397
|
countryCode = '966';
|
|
3728
3398
|
showEdit = false;
|
|
3729
3399
|
inputValue = new EventEmitter();
|
|
3730
3400
|
emitedValue = new EventEmitter();
|
|
3731
3401
|
telhasError;
|
|
3732
3402
|
emitedError = new EventEmitter();
|
|
3733
|
-
constructor(i18n) {
|
|
3734
|
-
this.i18n = i18n;
|
|
3735
|
-
}
|
|
3736
3403
|
onCountryChange(event) {
|
|
3737
3404
|
this.countryCode = event.dialCode;
|
|
3738
3405
|
// console.log(event)
|
|
@@ -3797,8 +3464,14 @@ class InputTelephoneComponent {
|
|
|
3797
3464
|
// console.log('xxxxxxxxxxxxxx',this.countryCode,data.target.value)
|
|
3798
3465
|
this.inputValue.emit(data.target.value);
|
|
3799
3466
|
}
|
|
3800
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, deps:
|
|
3801
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputTelephoneComponent, isStandalone: true, selector: "app-input-telephone", inputs: {
|
|
3467
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3468
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputTelephoneComponent, isStandalone: true, selector: "app-input-telephone", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", field: "field", name: "name", controller: "controller", error: "error", showEdit: "showEdit" }, outputs: { checkPhoneError: "checkPhoneError", phoneValue: "phoneValue", totalNumber: "totalNumber", inputValue: "inputValue", emitedValue: "emitedValue", emitedError: "emitedError" }, providers: [
|
|
3469
|
+
{
|
|
3470
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3471
|
+
useExisting: forwardRef(() => InputTelephoneComponent),
|
|
3472
|
+
multi: true,
|
|
3473
|
+
},
|
|
3474
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3802
3475
|
}
|
|
3803
3476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, decorators: [{
|
|
3804
3477
|
type: Component,
|
|
@@ -3809,35 +3482,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3809
3482
|
FormsModule,
|
|
3810
3483
|
NgIf,
|
|
3811
3484
|
// Ng2TelInputModule
|
|
3485
|
+
], providers: [
|
|
3486
|
+
{
|
|
3487
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3488
|
+
useExisting: forwardRef(() => InputTelephoneComponent),
|
|
3489
|
+
multi: true,
|
|
3490
|
+
},
|
|
3812
3491
|
], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"] }]
|
|
3813
|
-
}],
|
|
3814
|
-
type: Input
|
|
3815
|
-
}], value: [{
|
|
3816
|
-
type: Input
|
|
3817
|
-
}], tooltip: [{
|
|
3492
|
+
}], propDecorators: { tooltip: [{
|
|
3818
3493
|
type: Input
|
|
3819
3494
|
}], floatLabel: [{
|
|
3820
3495
|
type: Input
|
|
3821
3496
|
}], className: [{
|
|
3822
3497
|
type: Input
|
|
3823
|
-
}], placeholder: [{
|
|
3824
|
-
type: Input
|
|
3825
3498
|
}], showLabel: [{
|
|
3826
3499
|
type: Input
|
|
3827
|
-
}], isReadOnly: [{
|
|
3828
|
-
type: Input
|
|
3829
3500
|
}], matPrefix: [{
|
|
3830
3501
|
type: Input
|
|
3831
3502
|
}], iconPrefixName: [{
|
|
3832
3503
|
type: Input
|
|
3833
|
-
}], matSuffix: [{
|
|
3834
|
-
type: Input
|
|
3835
3504
|
}], iconSuffixName: [{
|
|
3836
3505
|
type: Input
|
|
3837
|
-
}], required: [{
|
|
3838
|
-
type: Input
|
|
3839
|
-
}], disabled: [{
|
|
3840
|
-
type: Input
|
|
3841
3506
|
}], field: [{
|
|
3842
3507
|
type: Input
|
|
3843
3508
|
}], name: [{
|
|
@@ -3852,10 +3517,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
3852
3517
|
type: Output
|
|
3853
3518
|
}], totalNumber: [{
|
|
3854
3519
|
type: Output
|
|
3855
|
-
}], maxLength: [{
|
|
3856
|
-
type: Input
|
|
3857
|
-
}], minLength: [{
|
|
3858
|
-
type: Input
|
|
3859
3520
|
}], showEdit: [{
|
|
3860
3521
|
type: Input
|
|
3861
3522
|
}], inputValue: [{
|
|
@@ -4258,79 +3919,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
4258
3919
|
type: Input
|
|
4259
3920
|
}] } });
|
|
4260
3921
|
|
|
4261
|
-
class TextareaComponent extends
|
|
4262
|
-
label;
|
|
4263
|
-
tooltip;
|
|
3922
|
+
class TextareaComponent extends ControlValueAccessorDirective {
|
|
4264
3923
|
className;
|
|
4265
3924
|
preventSpecailChar;
|
|
4266
|
-
textAreaFocus = false;
|
|
4267
|
-
ngOnChanges(changes) {
|
|
4268
|
-
if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {
|
|
4269
|
-
this.controller.setValue('');
|
|
4270
|
-
}
|
|
4271
|
-
else {
|
|
4272
|
-
this.controller.setValue(changes['field'].currentValue);
|
|
4273
|
-
}
|
|
4274
|
-
if (changes?.['disabled']?.previousValue !== changes?.['disabled']?.currentValue) {
|
|
4275
|
-
if (this.disabled)
|
|
4276
|
-
this.controller.disable();
|
|
4277
|
-
else
|
|
4278
|
-
this.controller.enable();
|
|
4279
|
-
}
|
|
4280
|
-
}
|
|
4281
|
-
ngOnInit() {
|
|
4282
|
-
// this.resetPropagator.subscribe(this, this.resetData);
|
|
4283
|
-
this.field == undefined ? (this.field = '') : this.field;
|
|
4284
|
-
this.controller.setValue(this.field);
|
|
4285
|
-
if (this.minLength) {
|
|
4286
|
-
this.controller.setValidators([
|
|
4287
|
-
Validators.minLength(+this.minLength),
|
|
4288
|
-
]);
|
|
4289
|
-
}
|
|
4290
|
-
if (this.maxLength) {
|
|
4291
|
-
this.controller.setValidators([
|
|
4292
|
-
Validators.maxLength(+this.maxLength),
|
|
4293
|
-
]);
|
|
4294
|
-
}
|
|
4295
|
-
if (this.required) {
|
|
4296
|
-
this.controller.setValidators([Validators.required]);
|
|
4297
|
-
}
|
|
4298
|
-
}
|
|
4299
3925
|
focusInFunction() {
|
|
4300
|
-
this.textAreaFocus = true;
|
|
4301
3926
|
this.validateTextAreaBorder();
|
|
4302
3927
|
}
|
|
4303
3928
|
focusOutFunction() {
|
|
4304
|
-
this.textAreaFocus = false;
|
|
4305
3929
|
this.validateTextAreaBorder();
|
|
4306
3930
|
}
|
|
4307
3931
|
validateTextAreaBorder() {
|
|
4308
|
-
return {
|
|
4309
|
-
|
|
4310
|
-
}
|
|
4311
|
-
}
|
|
4312
|
-
onValueChange(event) {
|
|
4313
|
-
const target = event.target;
|
|
4314
|
-
const data = target.value;
|
|
4315
|
-
this.emitedValue.emit(data.trim());
|
|
3932
|
+
// return {
|
|
3933
|
+
// "field-border-error": (this.field && this.field.length < this.minLength) || (this.field && this.field.length > this.maxLength),
|
|
3934
|
+
// }
|
|
4316
3935
|
}
|
|
4317
3936
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4318
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3937
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "app-textarea", inputs: { className: "className", preventSpecailChar: "preventSpecailChar" }, providers: [
|
|
3938
|
+
{
|
|
3939
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3940
|
+
useExisting: forwardRef(() => TextareaComponent),
|
|
3941
|
+
multi: true,
|
|
3942
|
+
},
|
|
3943
|
+
], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n <ng-container>\r\n @if (label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n @if (type === 'arOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" arOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type !== 'enOnly' && type !== 'arOnly' ){\r\n <textarea [placeholder]=\"placeholder\" \r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n \r\n </label>\r\n @if (showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n \r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n \r\n </ng-container>\r\n}\r\n@if (isReadOnly && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control\" [type]=\"type\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
|
|
4319
3944
|
}
|
|
4320
3945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
4321
3946
|
type: Component,
|
|
4322
3947
|
args: [{ selector: 'app-textarea', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
|
|
4323
3948
|
MatFormField,
|
|
3949
|
+
MatInput,
|
|
4324
3950
|
ReactiveFormsModule,
|
|
4325
3951
|
NgIf,
|
|
4326
3952
|
NgClass,
|
|
4327
|
-
|
|
4328
|
-
], standalone: true,
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
|
|
3953
|
+
ValidationErrorsComponent
|
|
3954
|
+
], standalone: true, providers: [
|
|
3955
|
+
{
|
|
3956
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3957
|
+
useExisting: forwardRef(() => TextareaComponent),
|
|
3958
|
+
multi: true,
|
|
3959
|
+
},
|
|
3960
|
+
], template: "@if(!isReadOnly){\r\n <ng-container>\r\n @if (label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n @if (type === 'arOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" arOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type !== 'enOnly' && type !== 'arOnly' ){\r\n <textarea [placeholder]=\"placeholder\" \r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n \r\n </label>\r\n @if (showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n \r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n \r\n </ng-container>\r\n}\r\n@if (isReadOnly && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control\" [type]=\"type\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"] }]
|
|
3961
|
+
}], propDecorators: { className: [{
|
|
4334
3962
|
type: Input
|
|
4335
3963
|
}], preventSpecailChar: [{
|
|
4336
3964
|
type: Input
|
|
@@ -4529,7 +4157,7 @@ class TableListComponent extends BaseComponent {
|
|
|
4529
4157
|
sentBack() {
|
|
4530
4158
|
}
|
|
4531
4159
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4532
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TableListComponent, isStandalone: true, selector: "app-table-list", inputs: { columns: "columns", columnsConfig: "columnsConfig", rows: "rows", actions: "actions", totalRecords: "totalRecords", className: "className" }, outputs: { pageChanged: "pageChanged", buttonAction: "buttonAction", emitDataRow: "emitDataRow" }, usesInheritance: true, ngImport: i0, template: "<div class=\"overflow-auto\">\r\n <!-- #table (scroll)=\"onPageChange($event)\" -->\r\n <ng-container >\r\n <!-- (matSortChange)=\"sortData($event)\" -->\r\n <table mat-table [dataSource]=\"dataSource\" class=\"primary-table {{className}}\" matSort >\r\n <ng-container *ngFor=\"let column of columns; let i = index;\">\r\n <ng-container [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'last-column' : columnsConfig[i].type === 'actions', 'sortArrow': columnsConfig[i]?.sortName?.length }\" mat-sort-header>\r\n {{i18n.translate(columnsConfig[i].label)}} </th>\r\n \r\n <td mat-cell [ngClass]=\"{'account-disabled': element?.user?.disabledCleanUp===true}\" *matCellDef=\"let element\">\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\" *ngIf=\"rows.length\">\r\n <a [ngClass]=\"columnsConfig[i].type\" [href]=\"element[column]\" *ngSwitchCase=\"'link'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <a [ngClass]=\"columnsConfig[i].type\" [routerLink]=\"[element.id]\" [href]=\"element[column]\"\r\n *ngSwitchCase=\"'rout'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <span class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'date'\">\r\n <span class=\"sfi sfi-clock text-color-coral\" *ngIf=\"!loading\"></span>\r\n <span class=\"mx-2\">\r\n <!-- {{ element?.Date.from }}\r\n <ng-container *ngIf=\"element?.Date.to\">\r\n : {{ element?.Date.to }}\r\n </ng-container> -->\r\n {{ element[column] | date: 'dd/MM/YYYY' }}\r\n </span>\r\n </span>\r\n \r\n <div class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'sla'\">\r\n <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"45\"\r\n [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\"></app-sla>\r\n </div>\r\n \r\n <div class=\"img-card table-img\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'image'\">\r\n <img [src]=\"element?.image\" alt=\"\">\r\n </div>\r\n \r\n <span class=\"{{ element[column].type }}\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'status'\">\r\n {{ element[column].label }}\r\n </span>\r\n \r\n \r\n <div class=\"d-flex mx-n1\" *ngSwitchCase=\"'RequestType'\">\r\n <div class=\"request-type mx-1 {{item.status}}\" *ngFor=\"let item of element?.RequestType\">\r\n {{ item.label }}\r\n <span class=\"mx-1\" *ngIf=\"item.status === 'need-action'\"></span>\r\n <span class=\"sfi sfi-info \" *ngIf=\"item.status === 'need-action'\"></span>\r\n </div>\r\n </div>\r\n \r\n \r\n <span class=\"{{ element[column].type }} {{ element[column] ? 'text-color-coral underline' : '' }}\"\r\n [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'number'\">\r\n {{ element[column] ? element[column] : '-' }}\r\n </span>\r\n \r\n <div class=\"text-nowrap d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'group'\">\r\n <span>{{element?.Group.groupName}}</span>\r\n <span class=\"mx-2\"></span>\r\n <app-repeated-list type=\"users-avatar\" [listOfItems]=\"element?.Group.users\"></app-repeated-list>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-2\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'user'\">\r\n <span class=\"img-card circled-img small\" *ngIf=\"!loading\">\r\n <img src=\"{{'data:image/png;base64,' + element?.user?.personalPhoto}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"font-14 font-weight-medium\">{{element?.user?.name}}</span>\r\n <span class=\"font-12 font-weight-normal text-color-dark-gray mt-1\">{{element?.user?.email}}</span>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"delegate d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'assigned'\">\r\n <div class=\"img-card x-small circled-img\">\r\n <img [src]=\"element?.AssignedTo.image\" alt=\"\">\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"font-14 font-weight-medium text-color-onyx\">{{element?.AssignedTo.name}}</span>\r\n <span class=\"sfi sfi-close text-color-coral\"></span>\r\n </div>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'statusAction'\">\r\n <div class=\"table-action\">\r\n \r\n <div class=\"count-down mx-n1\" *ngIf=\"element[column] === 'need-action'\">\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">01</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Days</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">18</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Hours</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">44</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Mins</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'approved'\">\r\n <span class=\"status approved\">\r\n Approved\r\n </span>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'sent-back'\">\r\n <span class=\"status rejected\">\r\n Sent Back\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n <button mat-stroked-button class=\"btn button-primary square br-w-1 font-14 font-weight-medium\"\r\n (click)=\"sentBack()\">\r\n <span class=\"sfi sfi-chat-o\"></span>\r\n </button>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'pending'\">\r\n <span class=\"status pending\">\r\n Pending\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n \r\n <div class=\"d-flex align-items-center mx-n1\">\r\n <div class=\"img-card circled-img x-small mx-1\">\r\n <img [src]=\"element?.pendingWith.image\" alt=\"\">\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mx-1\">\r\n <span class=\"font-8 font-weight-medium text-color-yellow text-nowrap\">Pending With</span>\r\n <span class=\"font-11 font-weight-medium text-nowrap\">{{element?.pendingWith.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </ng-container>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n \r\n <div class=\"d-flex justify-content-between mx-n2\">\r\n <ng-container *ngFor=\"let action of element[column]\">\r\n \r\n <div class=\"flex-grow-1\">\r\n <ng-container *ngIf=\"action.type.buttonType === 'stroked'\">\r\n <button mat-stroked-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'flat'\">\r\n <button mat-flat-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'icon'\">\r\n <button mat-icon-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n <span class=\"sfi sfi-{{action.type.icon}}\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'all'\">\r\n <button mat-icon-button class=\"btn button-transparent square medium mx-2 text-end\"\r\n [matMenuTriggerFor]=\"menuAction\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"sfi sfi-dots text-color-onyx\"></span>\r\n </button>\r\n <mat-menu #menuAction=\"matMenu\" xPosition=\"before\" class=\"actions-menu\">\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEmail', $event)\">\r\n {{i18n.translate('createEmail')}} \r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.enabled==='true'\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEmail', $event)\">\r\n {{ i18n.translate('disableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp===true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'EnableEmail', $event)\">\r\n {{ i18n.translate('enableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user!==null && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEntryPermission', $event)\">\r\n {{ i18n.translate('createCEP')}}\r\n </button>\r\n <!-- <button *ngIf=\"!element?.user?.email\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEntryPermission', $event)\">\r\n {{i18n.translate('disableEntryPermission')}}\r\n </button> -->\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DeleteAccount', $event)\">\r\n {{i18n.translate('deleteAccount')}}\r\n </button>\r\n\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp!==true\" [disabled]=\"!element?.mailExtensionAllowed\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'ExtendAccount', $event)\">\r\n {{ i18n.translate('extendAccount')}}\r\n </button>\r\n <button mat-menu-item class=\"text-color-onyx font-12\" *ngIf=\"element?.user?.disabledCleanUp!==true\" (click)=\"buttonClicked(element,'update', $event)\">\r\n {{ i18n.translate('updateEmploymentInformation')}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n \r\n <span class=\"text-nowrap\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchDefault>\r\n {{ element[column] }}\r\n </span>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <span class=\" d-block loading-bg\"></span>\r\n </ng-container>\r\n \r\n </td>\r\n \r\n \r\n </ng-container>\r\n </ng-container>\r\n \r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" class=\"cursor-pointer\" (click)=\"selectedRow(row)\"></tr>\r\n </table>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"loading\">\r\n <span>loading...</span>\r\n </ng-container> -->\r\n <!-- <ng-container *ngIf=\"loading\">-->\r\n <!-- <td *matCellDef=\"let element\" >loading....</td>-->\r\n <!-- </ng-container>-->\r\n <!--{{this.rows | json}}-->\r\n \r\n<!-- <app-no-data-placeholder *ngIf=\"noData && !loading\" [noDataPlaceholder]=\"noDataObj\"></app-no-data-placeholder> -->\r\n\r\n <mat-paginator [pageSize]=\"10\" [length]=\"totalRecords\" (page)=\"onPageChange($event)\" \r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" aria-label=\"Select page of users\"></mat-paginator>\r\n <!-- style-paginator -->\r\n <!-- showFirstLastButtons -->\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$5.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: RepeatedListComponent, selector: "app-repeated-list", inputs: ["listOfItems", "type"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
4160
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TableListComponent, isStandalone: true, selector: "app-table-list", inputs: { columns: "columns", columnsConfig: "columnsConfig", rows: "rows", actions: "actions", totalRecords: "totalRecords", className: "className" }, outputs: { pageChanged: "pageChanged", buttonAction: "buttonAction", emitDataRow: "emitDataRow" }, usesInheritance: true, ngImport: i0, template: "<div class=\"overflow-auto\">\r\n <!-- #table (scroll)=\"onPageChange($event)\" -->\r\n <ng-container >\r\n <!-- (matSortChange)=\"sortData($event)\" -->\r\n <table mat-table [dataSource]=\"dataSource\" class=\"primary-table {{className}}\" matSort >\r\n <ng-container *ngFor=\"let column of columns; let i = index;\">\r\n <ng-container [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'last-column' : columnsConfig[i].type === 'actions', 'sortArrow': columnsConfig[i]?.sortName?.length }\" mat-sort-header>\r\n {{i18n.translate(columnsConfig[i].label)}} </th>\r\n \r\n <td mat-cell [ngClass]=\"{'account-disabled': element?.user?.disabledCleanUp===true}\" *matCellDef=\"let element\">\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\" *ngIf=\"rows.length\">\r\n <a [ngClass]=\"columnsConfig[i].type\" [href]=\"element[column]\" *ngSwitchCase=\"'link'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <a [ngClass]=\"columnsConfig[i].type\" [routerLink]=\"[element.id]\" [href]=\"element[column]\"\r\n *ngSwitchCase=\"'rout'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <span class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'date'\">\r\n <span class=\"sfi sfi-clock text-color-coral\" *ngIf=\"!loading\"></span>\r\n <span class=\"mx-2\">\r\n <!-- {{ element?.Date.from }}\r\n <ng-container *ngIf=\"element?.Date.to\">\r\n : {{ element?.Date.to }}\r\n </ng-container> -->\r\n {{ element[column] | date: 'dd/MM/YYYY' }}\r\n </span>\r\n </span>\r\n \r\n <div class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'sla'\">\r\n <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"45\"\r\n [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\"></app-sla>\r\n </div>\r\n \r\n <div class=\"img-card table-img\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'image'\">\r\n <img [src]=\"element?.image\" alt=\"\">\r\n </div>\r\n \r\n <span class=\"{{ element[column].type }}\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'status'\">\r\n {{ element[column].label }}\r\n </span>\r\n \r\n \r\n <div class=\"d-flex mx-n1\" *ngSwitchCase=\"'RequestType'\">\r\n <div class=\"request-type mx-1 {{item.status}}\" *ngFor=\"let item of element?.RequestType\">\r\n {{ item.label }}\r\n <span class=\"mx-1\" *ngIf=\"item.status === 'need-action'\"></span>\r\n <span class=\"sfi sfi-info \" *ngIf=\"item.status === 'need-action'\"></span>\r\n </div>\r\n </div>\r\n \r\n \r\n <span class=\"{{ element[column].type }} {{ element[column] ? 'text-color-coral underline' : '' }}\"\r\n [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'number'\">\r\n {{ element[column] ? element[column] : '-' }}\r\n </span>\r\n \r\n <div class=\"text-nowrap d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'group'\">\r\n <span>{{element?.Group.groupName}}</span>\r\n <span class=\"mx-2\"></span>\r\n <app-repeated-list type=\"users-avatar\" [listOfItems]=\"element?.Group.users\"></app-repeated-list>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-2\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'user'\">\r\n <span class=\"img-card circled-img small\" *ngIf=\"!loading\">\r\n <img src=\"{{'data:image/png;base64,' + element?.user?.personalPhoto}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"font-14 font-weight-medium\">{{element?.user?.name}}</span>\r\n <span class=\"font-12 font-weight-normal text-color-dark-gray mt-1\">{{element?.user?.email}}</span>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"delegate d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'assigned'\">\r\n <div class=\"img-card x-small circled-img\">\r\n <img [src]=\"element?.AssignedTo.image\" alt=\"\">\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"font-14 font-weight-medium text-color-onyx\">{{element?.AssignedTo.name}}</span>\r\n <span class=\"sfi sfi-close text-color-coral\"></span>\r\n </div>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'statusAction'\">\r\n <div class=\"table-action\">\r\n \r\n <div class=\"count-down mx-n1\" *ngIf=\"element[column] === 'need-action'\">\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">01</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Days</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">18</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Hours</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">44</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Mins</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'approved'\">\r\n <span class=\"status approved\">\r\n Approved\r\n </span>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'sent-back'\">\r\n <span class=\"status rejected\">\r\n Sent Back\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n <button mat-stroked-button class=\"btn button-primary square br-w-1 font-14 font-weight-medium\"\r\n (click)=\"sentBack()\">\r\n <span class=\"sfi sfi-chat-o\"></span>\r\n </button>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'pending'\">\r\n <span class=\"status pending\">\r\n Pending\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n \r\n <div class=\"d-flex align-items-center mx-n1\">\r\n <div class=\"img-card circled-img x-small mx-1\">\r\n <img [src]=\"element?.pendingWith.image\" alt=\"\">\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mx-1\">\r\n <span class=\"font-8 font-weight-medium text-color-yellow text-nowrap\">Pending With</span>\r\n <span class=\"font-11 font-weight-medium text-nowrap\">{{element?.pendingWith.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </ng-container>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n \r\n <div class=\"d-flex justify-content-between mx-n2\">\r\n <ng-container *ngFor=\"let action of element[column]\">\r\n \r\n <div class=\"flex-grow-1\">\r\n <ng-container *ngIf=\"action.type.buttonType === 'stroked'\">\r\n <button mat-stroked-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'flat'\">\r\n <button mat-flat-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'icon'\">\r\n <button mat-icon-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n <span class=\"sfi sfi-{{action.type.icon}}\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'all'\">\r\n <button mat-icon-button class=\"btn button-transparent square medium mx-2 text-end\"\r\n [matMenuTriggerFor]=\"menuAction\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"sfi sfi-dots text-color-onyx\"></span>\r\n </button>\r\n <mat-menu #menuAction=\"matMenu\" xPosition=\"before\" class=\"actions-menu\">\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEmail', $event)\">\r\n {{i18n.translate('createEmail')}} \r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.enabled==='true'\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEmail', $event)\">\r\n {{ i18n.translate('disableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp===true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'EnableEmail', $event)\">\r\n {{ i18n.translate('enableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user!==null && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEntryPermission', $event)\">\r\n {{ i18n.translate('createCEP')}}\r\n </button>\r\n <!-- <button *ngIf=\"!element?.user?.email\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEntryPermission', $event)\">\r\n {{i18n.translate('disableEntryPermission')}}\r\n </button> -->\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DeleteAccount', $event)\">\r\n {{i18n.translate('deleteAccount')}}\r\n </button>\r\n\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp!==true\" [disabled]=\"!element?.mailExtensionAllowed\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'ExtendAccount', $event)\">\r\n {{ i18n.translate('extendAccount')}}\r\n </button>\r\n <button mat-menu-item class=\"text-color-onyx font-12\" *ngIf=\"element?.user?.disabledCleanUp!==true\" (click)=\"buttonClicked(element,'update', $event)\">\r\n {{ i18n.translate('updateEmploymentInformation')}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n \r\n <span class=\"text-nowrap\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchDefault>\r\n {{ element[column] }}\r\n </span>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <span class=\" d-block loading-bg\"></span>\r\n </ng-container>\r\n \r\n </td>\r\n \r\n \r\n </ng-container>\r\n </ng-container>\r\n \r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" class=\"cursor-pointer\" (click)=\"selectedRow(row)\"></tr>\r\n </table>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"loading\">\r\n <span>loading...</span>\r\n </ng-container> -->\r\n <!-- <ng-container *ngIf=\"loading\">-->\r\n <!-- <td *matCellDef=\"let element\" >loading....</td>-->\r\n <!-- </ng-container>-->\r\n <!--{{this.rows | json}}-->\r\n \r\n<!-- <app-no-data-placeholder *ngIf=\"noData && !loading\" [noDataPlaceholder]=\"noDataObj\"></app-no-data-placeholder> -->\r\n\r\n <mat-paginator [pageSize]=\"10\" [length]=\"totalRecords\" (page)=\"onPageChange($event)\" \r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" aria-label=\"Select page of users\"></mat-paginator>\r\n <!-- style-paginator -->\r\n <!-- showFirstLastButtons -->\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$5.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: RepeatedListComponent, selector: "app-repeated-list", inputs: ["listOfItems", "type"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
4533
4161
|
}
|
|
4534
4162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableListComponent, decorators: [{
|
|
4535
4163
|
type: Component,
|
|
@@ -4803,7 +4431,7 @@ class AttachmentSectionDataComponent extends BaseComponent {
|
|
|
4803
4431
|
});*/
|
|
4804
4432
|
}
|
|
4805
4433
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionDataComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4806
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AttachmentSectionDataComponent, isStandalone: true, selector: "app-add-attachment-section", inputs: { hasColumnBreak: "hasColumnBreak" }, usesInheritance: true, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{i18n.translate('addAttachments')}}</h3>\r\n <ds-button (click)=\"close()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <!-- add [callApi]=\"true\" input mobile issue not able to download it by base 64 -->\r\n\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"i18n.translate('Attachment')\" [labelTextWriteMode]=\"i18n.translate('Attachment')\"\r\n [hasColumnBreak]=\"false\" [label]=\"i18n.translate('Attachment')\" [required]=\"true\" [multiple]=\"dialogData?.multiple\" [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\" (emitedValue)=\"handleAttachmentEmitValue($event)\"\r\n >\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"i18n.translate('description')\" [labelTextWriteMode]=\"i18n.translate('description')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"i18n.translate('description')\" [required]=\"dialogData.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"i18n.translate('comments')\" [labelTextWriteMode]=\"i18n.translate('comments')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" [label]=\"i18n.translate('comments')\"\r\n [required]=\"false\" [minLength]='1' [maxLength]='500' [isReadOnly]=\"section?.header?.readOnly\"\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" (click)=\"close()\" [disabled]=\"(uploading)\" color=\"red\">{{i18n.translate('cancel')}}\r\n </ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(popupData?.fileContents || popupData?.attachmentId ) ||( dialogData.isRequired && !popupData?.fileDescription )|| uploading)\">\r\n @if(!editMode){\r\n <span>{{i18n.translate('add')}}</span>\r\n }\r\n @if(editMode){\r\n <span>{{i18n.translate('edit')}}</span>\r\n }\r\n\r\n </ds-button>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px !important;--popup-width: 100% !important}::ng-deep .default-footer ds-button::part(base){--btn-min-width: 90px }\n"], dependencies: [{ kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["
|
|
4434
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AttachmentSectionDataComponent, isStandalone: true, selector: "app-add-attachment-section", inputs: { hasColumnBreak: "hasColumnBreak" }, usesInheritance: true, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{i18n.translate('addAttachments')}}</h3>\r\n <ds-button (click)=\"close()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <!-- add [callApi]=\"true\" input mobile issue not able to download it by base 64 -->\r\n\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"i18n.translate('Attachment')\" [labelTextWriteMode]=\"i18n.translate('Attachment')\"\r\n [hasColumnBreak]=\"false\" [label]=\"i18n.translate('Attachment')\" [required]=\"true\" [multiple]=\"dialogData?.multiple\" [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\" (emitedValue)=\"handleAttachmentEmitValue($event)\"\r\n >\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"i18n.translate('description')\" [labelTextWriteMode]=\"i18n.translate('description')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"i18n.translate('description')\" [required]=\"dialogData.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"i18n.translate('comments')\" [labelTextWriteMode]=\"i18n.translate('comments')\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" [label]=\"i18n.translate('comments')\"\r\n [required]=\"false\" [minLength]='1' [maxLength]='500' [isReadOnly]=\"section?.header?.readOnly\"\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" (click)=\"close()\" [disabled]=\"(uploading)\" color=\"red\">{{i18n.translate('cancel')}}\r\n </ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(popupData?.fileContents || popupData?.attachmentId ) ||( dialogData.isRequired && !popupData?.fileDescription )|| uploading)\">\r\n @if(!editMode){\r\n <span>{{i18n.translate('add')}}</span>\r\n }\r\n @if(editMode){\r\n <span>{{i18n.translate('edit')}}</span>\r\n }\r\n\r\n </ds-button>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px !important;--popup-width: 100% !important}::ng-deep .default-footer ds-button::part(base){--btn-min-width: 90px }\n"], dependencies: [{ kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "label", "callApi", "tooltip", "attachments", "optional", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "downloadActionClicked"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
4807
4435
|
}
|
|
4808
4436
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionDataComponent, decorators: [{
|
|
4809
4437
|
type: Component,
|
|
@@ -4941,7 +4569,7 @@ class ApprovalsWorkflowComponent {
|
|
|
4941
4569
|
this.coreService.approvals = JSON.stringify(this.approvals);
|
|
4942
4570
|
this.sidenavService.publish('open', ApprovalsComponent);
|
|
4943
4571
|
}
|
|
4944
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ApprovalsWorkflowComponent, deps: [{ token: CoreI18nService }, { token: SidenavService }, { token: CoreService }, { token: i2$
|
|
4572
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ApprovalsWorkflowComponent, deps: [{ token: CoreI18nService }, { token: SidenavService }, { token: CoreService }, { token: i2$3.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4945
4573
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ApprovalsWorkflowComponent, isStandalone: true, selector: "lib-approvals-workflow", inputs: { section: "section", form: "form" }, ngImport: i0, template: "<ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\"\r\n (click)=\"getApproves()\">\r\n <slot name=\"prefix\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n }\r\n </slot>\r\n</ds-button>\r\n", styles: ["::ng-deep .sat-popover-container.sat-popover-before .default-popover:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }] });
|
|
4946
4574
|
}
|
|
4947
4575
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ApprovalsWorkflowComponent, decorators: [{
|
|
@@ -4950,7 +4578,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
4950
4578
|
SatPopoverModule,
|
|
4951
4579
|
NgIf
|
|
4952
4580
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\"\r\n (click)=\"getApproves()\">\r\n <slot name=\"prefix\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n }\r\n </slot>\r\n</ds-button>\r\n", styles: ["::ng-deep .sat-popover-container.sat-popover-before .default-popover:before{display:none}\n"] }]
|
|
4953
|
-
}], ctorParameters: () => [{ type: CoreI18nService }, { type: SidenavService }, { type: CoreService }, { type: i2$
|
|
4581
|
+
}], ctorParameters: () => [{ type: CoreI18nService }, { type: SidenavService }, { type: CoreService }, { type: i2$3.ToastrService }], propDecorators: { section: [{
|
|
4954
4582
|
type: Input
|
|
4955
4583
|
}], form: [{
|
|
4956
4584
|
type: Input
|
|
@@ -5049,7 +4677,7 @@ class ActionButtonsComponent {
|
|
|
5049
4677
|
}
|
|
5050
4678
|
return '';
|
|
5051
4679
|
}
|
|
5052
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonsComponent, deps: [{ token: CoreI18nService }, { token: ActionStateService }, { token: CoreService }, { token: i1$1.MatDialog }, { token: i2$
|
|
4680
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonsComponent, deps: [{ token: CoreI18nService }, { token: ActionStateService }, { token: CoreService }, { token: i1$1.MatDialog }, { token: i2$3.ToastrService }, { token: i0.ChangeDetectorRef }, { token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5053
4681
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ActionButtonsComponent, isStandalone: true, selector: "lib-action-buttons", inputs: { lovOptions: "lovOptions", lovType: "lovType", fieldsForm: "fieldsForm", form: "form", section: "section", sections: "sections", showApprovalCycle: "showApprovalCycle", customCall: "customCall" }, outputs: { resetFormEmit: "resetFormEmit", customCallEmit: "customCallEmit" }, ngImport: i0, template: "<div class=\"mt-4\">\r\n @if (lovType === 'button') {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n @for (item of lovOptions; track $index) {\r\n <ds-button\r\n loading=\"{{isSubmitting[item.value]}}\"\r\n [ngClass]=\"{'disabled': !actionStates[item.value] || submittingForm}\"\r\n shape=\"{{ buttonShape(item) }}\"\r\n color=\"{{ buttonColor(item) }}\"\r\n (click)=\"onSubmit(item?.value)\">\r\n {{ item?.['description'] }}\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ds-button\r\n [ngClass]=\"{'disabled': !actionStates['SUBMIT'] || submittingForm}\"\r\n loading=\"{{isSubmitting['SUBMIT']}}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ApprovalsWorkflowComponent, selector: "lib-approvals-workflow", inputs: ["section", "form"] }] });
|
|
5054
4682
|
}
|
|
5055
4683
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonsComponent, decorators: [{
|
|
@@ -5061,7 +4689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
5061
4689
|
NgForOf,
|
|
5062
4690
|
ApprovalsWorkflowComponent
|
|
5063
4691
|
], template: "<div class=\"mt-4\">\r\n @if (lovType === 'button') {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n @for (item of lovOptions; track $index) {\r\n <ds-button\r\n loading=\"{{isSubmitting[item.value]}}\"\r\n [ngClass]=\"{'disabled': !actionStates[item.value] || submittingForm}\"\r\n shape=\"{{ buttonShape(item) }}\"\r\n color=\"{{ buttonColor(item) }}\"\r\n (click)=\"onSubmit(item?.value)\">\r\n {{ item?.['description'] }}\r\n </ds-button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"text\" color=\"red\" (click)=\"resetForm()\">\r\n <span class=\"fs-16 fw-medium\">{{ i18n.translate('reset') }}</span>\r\n </ds-button>\r\n @if (form?.sections?.length == 1 && showApprovalCycle) {\r\n <lib-approvals-workflow [section]=\"section\" [form]=\"form\"></lib-approvals-workflow>\r\n }\r\n <div class=\"d-flex flex-wrap align-items-center flex-grow-1 flex-row-reverse gap-3\">\r\n <ds-button\r\n [ngClass]=\"{'disabled': !actionStates['SUBMIT'] || submittingForm}\"\r\n loading=\"{{isSubmitting['SUBMIT']}}\"\r\n (click)=\"onSubmit('SUBMIT')\">\r\n {{ i18n.translate('submit') }}\r\n </ds-button>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
5064
|
-
}], ctorParameters: () => [{ type: CoreI18nService }, { type: ActionStateService }, { type: CoreService }, { type: i1$1.MatDialog }, { type: i2$
|
|
4692
|
+
}], ctorParameters: () => [{ type: CoreI18nService }, { type: ActionStateService }, { type: CoreService }, { type: i1$1.MatDialog }, { type: i2$3.ToastrService }, { type: i0.ChangeDetectorRef }, { type: SidenavService }], propDecorators: { lovOptions: [{
|
|
5065
4693
|
type: Input
|
|
5066
4694
|
}], lovType: [{
|
|
5067
4695
|
type: Input
|
|
@@ -5083,32 +4711,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
5083
4711
|
type: Output
|
|
5084
4712
|
}] } });
|
|
5085
4713
|
|
|
5086
|
-
class TermsConditionsComponent {
|
|
5087
|
-
dialogRef;
|
|
5088
|
-
i18n;
|
|
5089
|
-
data;
|
|
5090
|
-
termsBody = null;
|
|
5091
|
-
constructor(dialogRef, i18n, data) {
|
|
5092
|
-
this.dialogRef = dialogRef;
|
|
5093
|
-
this.i18n = i18n;
|
|
5094
|
-
this.data = data;
|
|
5095
|
-
this.termsBody = data;
|
|
5096
|
-
}
|
|
5097
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, deps: [{ token: i1$1.MatDialogRef }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
5098
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TermsConditionsComponent, isStandalone: true, selector: "app-terms-conditions", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }] });
|
|
5099
|
-
}
|
|
5100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, decorators: [{
|
|
5101
|
-
type: Component,
|
|
5102
|
-
args: [{ selector: 'app-terms-conditions', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
|
|
5103
|
-
MatDialogContent,
|
|
5104
|
-
MatDialogClose,
|
|
5105
|
-
MatDialogTitle
|
|
5106
|
-
], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"] }]
|
|
5107
|
-
}], ctorParameters: () => [{ type: i1$1.MatDialogRef }, { type: CoreI18nService }, { type: undefined, decorators: [{
|
|
5108
|
-
type: Inject,
|
|
5109
|
-
args: [MAT_DIALOG_DATA]
|
|
5110
|
-
}] }] });
|
|
5111
|
-
|
|
5112
4714
|
class FaqsComponent {
|
|
5113
4715
|
i18n;
|
|
5114
4716
|
adminView = false;
|
|
@@ -5581,7 +5183,7 @@ class FeedbackSectionComponent {
|
|
|
5581
5183
|
}
|
|
5582
5184
|
}
|
|
5583
5185
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, deps: [{ token: FeedBackService }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
5584
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeedbackSectionComponent, isStandalone: true, selector: "app-feedback-section", inputs: { inboxItem: "inboxItem", profile: "profile" }, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "label", "tooltip", "className", "showLabel", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["label", "tooltip", "className", "preventSpecailChar"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
|
|
5186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeedbackSectionComponent, isStandalone: true, selector: "app-feedback-section", inputs: { inboxItem: "inboxItem", profile: "profile" }, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "label", "tooltip", "className", "showLabel", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
|
|
5585
5187
|
}
|
|
5586
5188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, decorators: [{
|
|
5587
5189
|
type: Component,
|
|
@@ -5630,11 +5232,11 @@ class ActivitiesComponent {
|
|
|
5630
5232
|
this.sidenavService.publish('close', null);
|
|
5631
5233
|
}
|
|
5632
5234
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActivitiesComponent, deps: [{ token: SidenavService }, { token: CoreI18nService }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5633
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ActivitiesComponent, isStandalone: true, selector: "app-activities", ngImport: i0, template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n <div class=\"sidenav-body\">\r\n @if (coreService.activities) {\r\n <ds-activity-log activitiesData=\"{{parsedData}}\" readOnly (downloadEvent)=\"downloadFile($event)\">\r\n </ds-activity-log>\r\n } @else {\r\n <ds-message
|
|
5235
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ActivitiesComponent, isStandalone: true, selector: "app-activities", ngImport: i0, template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n <div class=\"sidenav-body\">\r\n @if (coreService.activities) {\r\n <ds-activity-log activitiesData=\"{{parsedData}}\" readOnly (downloadEvent)=\"downloadFile($event)\">\r\n </ds-activity-log>\r\n } @else {\r\n <ds-message label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n }\r\n </div>\r\n</section>\r\n", styles: [""] });
|
|
5634
5236
|
}
|
|
5635
5237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActivitiesComponent, decorators: [{
|
|
5636
5238
|
type: Component,
|
|
5637
|
-
args: [{ selector: 'app-activities', standalone: true, imports: [], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n <div class=\"sidenav-body\">\r\n @if (coreService.activities) {\r\n <ds-activity-log activitiesData=\"{{parsedData}}\" readOnly (downloadEvent)=\"downloadFile($event)\">\r\n </ds-activity-log>\r\n } @else {\r\n <ds-message
|
|
5239
|
+
args: [{ selector: 'app-activities', standalone: true, imports: [], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n <div class=\"sidenav-body\">\r\n @if (coreService.activities) {\r\n <ds-activity-log activitiesData=\"{{parsedData}}\" readOnly (downloadEvent)=\"downloadFile($event)\">\r\n </ds-activity-log>\r\n } @else {\r\n <ds-message label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n }\r\n </div>\r\n</section>\r\n" }]
|
|
5638
5240
|
}], ctorParameters: () => [{ type: SidenavService }, { type: CoreI18nService }, { type: CoreService }] });
|
|
5639
5241
|
|
|
5640
5242
|
class ServiceHeaderComponent {
|
|
@@ -5672,8 +5274,8 @@ class ServiceHeaderComponent {
|
|
|
5672
5274
|
onCommentsFormClick() {
|
|
5673
5275
|
const comments = this.form.commentsDrop;
|
|
5674
5276
|
const resultData = [];
|
|
5675
|
-
for (
|
|
5676
|
-
const item =
|
|
5277
|
+
for (const element of comments) {
|
|
5278
|
+
const item = element;
|
|
5677
5279
|
const obj = {
|
|
5678
5280
|
name: item['employeeName'],
|
|
5679
5281
|
title: item.jobPosition,
|
|
@@ -5958,7 +5560,7 @@ class FormSectionComponent {
|
|
|
5958
5560
|
}
|
|
5959
5561
|
}
|
|
5960
5562
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, deps: [{ token: CoreI18nService }, { token: CoreService }, { token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5961
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormSectionComponent, isStandalone: true, selector: "app-form-section", inputs: { requestDetails: "requestDetails", section: "section", form: "form", lov: "lov", isReadOnly: "isReadOnly", controllers: "controllers", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, ngImport: i0, template: "<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n\r\n <ng-container *ngIf=\"(!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i2$
|
|
5563
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormSectionComponent, isStandalone: true, selector: "app-form-section", inputs: { requestDetails: "requestDetails", section: "section", form: "form", lov: "lov", isReadOnly: "isReadOnly", controllers: "controllers", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, ngImport: i0, template: "<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n\r\n <ng-container *ngIf=\"(!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i2$4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2$4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: ComponentOutletIoDirective, selector: "[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ngComponentOutletNdcDynamicInputs", "ngComponentOutletNdcDynamicOutputs"], exportAs: ["ndcDynamicIo"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DynamicModule }, { kind: "directive", type: i3$1.ComponentOutletInjectorDirective, selector: "[ngComponentOutlet]", exportAs: ["ndcComponentOutletInjector"] }] });
|
|
5962
5564
|
}
|
|
5963
5565
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, decorators: [{
|
|
5964
5566
|
type: Component,
|
|
@@ -6004,7 +5606,7 @@ class MainRequestDetailsComponent {
|
|
|
6004
5606
|
return this.section?.body?.details?.expandStage === 'true';
|
|
6005
5607
|
}
|
|
6006
5608
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainRequestDetailsComponent, deps: [{ token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6007
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: MainRequestDetailsComponent, isStandalone: true, selector: "app-main-request-details", inputs: { section: "section", lov: "lov", form: "form" }, ngImport: i0, template: "<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{i18n.translate('requestDetailsTitle')}}</h2>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4\">\r\n <ng-content ></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: [".main-request-accordion{--accordion-height: 65px;--accordion-radius: 0 0 4px 4px;--accordion-shadow: 0 7px 10px rgba(var(--rgb-black), 3%);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--gray);--panel-padding: 0 1.5rem;--panel-body-padding: 0 0 1.5rem;position:relative;z-index:1}@media (max-width: 576px){.main-request-accordion{--accordion-height: 55px;--panel-padding: 0 1rem;--panel-body-padding: 0 1rem 1rem}}.main-request-accordion .inner-accordion{--accordion-height: 44px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--light-gray);--panel-body-padding: 0;--accordion-shadow: none;--panel-padding: 0 1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i2$
|
|
5609
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: MainRequestDetailsComponent, isStandalone: true, selector: "app-main-request-details", inputs: { section: "section", lov: "lov", form: "form" }, ngImport: i0, template: "<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{i18n.translate('requestDetailsTitle')}}</h2>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4\">\r\n <ng-content ></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: [".main-request-accordion{--accordion-height: 65px;--accordion-radius: 0 0 4px 4px;--accordion-shadow: 0 7px 10px rgba(var(--rgb-black), 3%);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--gray);--panel-padding: 0 1.5rem;--panel-body-padding: 0 0 1.5rem;position:relative;z-index:1}@media (max-width: 576px){.main-request-accordion{--accordion-height: 55px;--panel-padding: 0 1rem;--panel-body-padding: 0 1rem 1rem}}.main-request-accordion .inner-accordion{--accordion-height: 44px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--light-gray);--panel-body-padding: 0;--accordion-shadow: none;--panel-padding: 0 1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i2$4.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i2$4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2$4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
6008
5610
|
}
|
|
6009
5611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainRequestDetailsComponent, decorators: [{
|
|
6010
5612
|
type: Component,
|
|
@@ -6308,7 +5910,7 @@ class HeaderComponent {
|
|
|
6308
5910
|
// this.sidenavSubscription.unsubscribe()
|
|
6309
5911
|
}
|
|
6310
5912
|
location = location;
|
|
6311
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, deps: [{ token: CoreI18nService }, { token: SidenavService }, { token: CoreService }, { token: i2$
|
|
5913
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, deps: [{ token: CoreI18nService }, { token: SidenavService }, { token: CoreService }, { token: i2$5.Router }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
6312
5914
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: HeaderComponent, isStandalone: true, selector: "app-header", ngImport: i0, template: "<ng-container *ngIf=\"!isMobile\">\r\n <mat-toolbar\r\n class=\"align-items-center justify-content-between gap-3 border-bottom\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n icon\r\n color=\"light-gray\"\r\n square\r\n (click)=\"toggleSideNav()\"\r\n >\r\n <ds-icon icon=\"burger-menu-1\" class=\"fs-24 fc-dark-gray\"></ds-icon>\r\n </ds-button>\r\n\r\n <a [href]=\"location.origin\">\r\n <figure class=\"m-0 d-flex\">\r\n <img class=\"main-logo\" src=\"assets/images/hub.svg\" alt=\"\" />\r\n </figure>\r\n </a>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n color=\"light-gray\"\r\n class=\"user-menu-btn\"\r\n [matMenuTriggerFor]=\"userMenu\"\r\n >\r\n <ds-avatar\r\n image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{userData?.email}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user2.jpg'\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n >\r\n </ds-avatar>\r\n\r\n <span class=\"fs-14 fw-medium fc-black\">\r\n {{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}\r\n </span>\r\n\r\n <ds-icon\r\n slot=\"suffix\"\r\n icon=\"arrow\"\r\n class=\"fc-dark-gray fs-16\"\r\n ></ds-icon>\r\n </ds-button>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <!-- User Menu -->\r\n <mat-menu #userMenu=\"matMenu\" class=\"user-menu\">\r\n <div mat-menu-item>\r\n <span class=\"fs-14\">{{ translate.translate('welcome') }}, </span>\r\n <br />\r\n <span class=\"fs-14 fw-medium line-height-1\">{{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}</span>\r\n </div>\r\n <button mat-menu-item (click)=\"setLanguage()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"globe\" class=\"fs-25 fc-purple\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('otherLang')\r\n }}</span>\r\n </div>\r\n </button>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"logout\" class=\"fs-25 fc-red\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('logout')\r\n }}</span>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n</ng-container>\r\n", styles: [".test-user-agent{position:fixed;top:90px;width:100%;z-index:99999;color:#fff}ds-button[square].burger-menu::part(base){--btn-padding: 10px;margin-bottom:-1px;width:37px;height:37px;--default-size: 37px}[dir=rtl] :host ds-button::part(overlay){inset:0}mat-toolbar{background-color:var(--main-toolbar-bc);height:var(--main-toolbar-height);position:fixed;top:0;z-index:var(--main-toolbar-zIndex);border-bottom:1px solid var(--light-gray)!important}mat-toolbar .logo img{min-width:100px}@media (max-width: 991px){.user-menu-btn::part(base){border:0px;padding:0;--default-size: 40px}.user-menu-btn::part(overlay){border-radius:50%}.user-menu-btn::part(label),.user-menu-btn::part(suffix){display:none}}:host::ng-deep .avatar{min-width:24px;width:24px;height:24px;background-color:transparent}:host::ng-deep ds-button.add::part(base){--btn-bg-color: var(--coral)}@media (max-width: 991px){:host::ng-deep .avatar{min-width:40px;width:40px;height:40px}:host::ng-deep .avatar .avatar--x-small{--default-size: 40px}}.linkS{position:fixed;z-index:2;bottom:100px;right:20px}.dashboard-menu-icon{display:inline-flex;align-items:center;justify-content:center;min-width:56px;width:56px;height:56px;border-radius:50%;background-color:var(--coral);margin-bottom:10px}::ng-deep .inside-mobile-app{--main-toolbar-height: 0px}::ng-deep ds-button.transparent::part(base){--btn-bg-color: transparent;--btn-border-color: transparent;--btn-overlay-color: transparent}::ng-deep .mat-divider-vertical{border-right-color:var(--black)}.mat-divider{--mat-divider-width: 1px;--mat-divider-color: var(--dark-gray)}.header-search{width:500px}@media (max-width: 1130px){.header-search{width:200px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] });
|
|
6313
5915
|
}
|
|
6314
5916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
@@ -6320,7 +5922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
6320
5922
|
MatMenuModule,
|
|
6321
5923
|
MatToolbarModule
|
|
6322
5924
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ng-container *ngIf=\"!isMobile\">\r\n <mat-toolbar\r\n class=\"align-items-center justify-content-between gap-3 border-bottom\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n icon\r\n color=\"light-gray\"\r\n square\r\n (click)=\"toggleSideNav()\"\r\n >\r\n <ds-icon icon=\"burger-menu-1\" class=\"fs-24 fc-dark-gray\"></ds-icon>\r\n </ds-button>\r\n\r\n <a [href]=\"location.origin\">\r\n <figure class=\"m-0 d-flex\">\r\n <img class=\"main-logo\" src=\"assets/images/hub.svg\" alt=\"\" />\r\n </figure>\r\n </a>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n color=\"light-gray\"\r\n class=\"user-menu-btn\"\r\n [matMenuTriggerFor]=\"userMenu\"\r\n >\r\n <ds-avatar\r\n image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{userData?.email}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user2.jpg'\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n >\r\n </ds-avatar>\r\n\r\n <span class=\"fs-14 fw-medium fc-black\">\r\n {{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}\r\n </span>\r\n\r\n <ds-icon\r\n slot=\"suffix\"\r\n icon=\"arrow\"\r\n class=\"fc-dark-gray fs-16\"\r\n ></ds-icon>\r\n </ds-button>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <!-- User Menu -->\r\n <mat-menu #userMenu=\"matMenu\" class=\"user-menu\">\r\n <div mat-menu-item>\r\n <span class=\"fs-14\">{{ translate.translate('welcome') }}, </span>\r\n <br />\r\n <span class=\"fs-14 fw-medium line-height-1\">{{ coreService.getShortName( coreService?.loggedInUserData?.['name']) }}</span>\r\n </div>\r\n <button mat-menu-item (click)=\"setLanguage()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"globe\" class=\"fs-25 fc-purple\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('otherLang')\r\n }}</span>\r\n </div>\r\n </button>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"logout\" class=\"fs-25 fc-red\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('logout')\r\n }}</span>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n</ng-container>\r\n", styles: [".test-user-agent{position:fixed;top:90px;width:100%;z-index:99999;color:#fff}ds-button[square].burger-menu::part(base){--btn-padding: 10px;margin-bottom:-1px;width:37px;height:37px;--default-size: 37px}[dir=rtl] :host ds-button::part(overlay){inset:0}mat-toolbar{background-color:var(--main-toolbar-bc);height:var(--main-toolbar-height);position:fixed;top:0;z-index:var(--main-toolbar-zIndex);border-bottom:1px solid var(--light-gray)!important}mat-toolbar .logo img{min-width:100px}@media (max-width: 991px){.user-menu-btn::part(base){border:0px;padding:0;--default-size: 40px}.user-menu-btn::part(overlay){border-radius:50%}.user-menu-btn::part(label),.user-menu-btn::part(suffix){display:none}}:host::ng-deep .avatar{min-width:24px;width:24px;height:24px;background-color:transparent}:host::ng-deep ds-button.add::part(base){--btn-bg-color: var(--coral)}@media (max-width: 991px){:host::ng-deep .avatar{min-width:40px;width:40px;height:40px}:host::ng-deep .avatar .avatar--x-small{--default-size: 40px}}.linkS{position:fixed;z-index:2;bottom:100px;right:20px}.dashboard-menu-icon{display:inline-flex;align-items:center;justify-content:center;min-width:56px;width:56px;height:56px;border-radius:50%;background-color:var(--coral);margin-bottom:10px}::ng-deep .inside-mobile-app{--main-toolbar-height: 0px}::ng-deep ds-button.transparent::part(base){--btn-bg-color: transparent;--btn-border-color: transparent;--btn-overlay-color: transparent}::ng-deep .mat-divider-vertical{border-right-color:var(--black)}.mat-divider{--mat-divider-width: 1px;--mat-divider-color: var(--dark-gray)}.header-search{width:500px}@media (max-width: 1130px){.header-search{width:200px}}\n"] }]
|
|
6323
|
-
}], ctorParameters: () => [{ type: CoreI18nService }, { type: SidenavService }, { type: CoreService }, { type: i2$
|
|
5925
|
+
}], ctorParameters: () => [{ type: CoreI18nService }, { type: SidenavService }, { type: CoreService }, { type: i2$5.Router }, { type: undefined, decorators: [{
|
|
6324
5926
|
type: Inject,
|
|
6325
5927
|
args: [PLATFORM_ID]
|
|
6326
5928
|
}] }] });
|
|
@@ -6462,13 +6064,13 @@ class SideNavComponent {
|
|
|
6462
6064
|
}
|
|
6463
6065
|
this.router.navigate([url]);
|
|
6464
6066
|
}
|
|
6465
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideNavComponent, deps: [{ token: SidenavService }, { token: i2$
|
|
6466
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SideNavComponent, isStandalone: true, selector: "app-side-nav", inputs: { isOpened: "isOpened" }, viewQueries: [{ propertyName: "MenuTrigger", first: true, predicate: ["MenuTrigger"], descendants: true }], ngImport: i0, template: "<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n", styles: [":host ::ng-deep aside{min-width:var(--main-aside-width);width:var(--main-aside-width);height:calc(100vh - var(--main-toolbar-height));display:flex;position:var(--main-aside-position);right:var(--main-aside-right);left:var(--main-aside-left);top:var(--main-toolbar-height);z-index:var(--main-toolbar-zIndex);background-color:var(--main-aside-bc);transform:var(--main-aside-transform);transition:all .5s cubic-bezier(.685,.0473,.346,1)}@media (max-width: 1024px){:host ::ng-deep aside{height:100%;flex-direction:column;--main-toolbar-height: 0}}:host ::ng-deep aside nav{width:100%}:host ::ng-deep aside ul{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:0rem;margin:37px 0;list-style:none;counter-reset:itemCounter}:host ::ng-deep aside ul li{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:calc(var(--main-aside-width-active) - 15px);width:100%;gap:var(--gap-width, 2.5rem);padding:3px 0 3px 10px;cursor:pointer;color:var(--main-aside-item-fc);border-radius:0;transition:var(--default-transition)}[dir=rtl] :host ::ng-deep aside ul li{padding:3px 10px 3px 0!important}@media (max-width: 1024px){@keyframes liAnimation{0%{transform:translateY(-500px)}to{transform:translateY(0)}}}:host ::ng-deep aside ul li.active,:host ::ng-deep aside ul li:hover{background-color:var(--main-aside-item-bc)}[dir=ltr] :host ::ng-deep aside ul li.active,[dir=ltr] :host ::ng-deep aside ul li:hover{border-left:5px solid var(--coral)}[dir=rtl] :host ::ng-deep aside ul li.active,[dir=rtl] :host ::ng-deep aside ul li:hover{border-right:5px solid var(--coral)}:host ::ng-deep aside ul li .menu-label{font-size:var(--main-aside-item-fs);flex-grow:1;opacity:1;min-width:calc(var(--main-aside-width-active) - 2rem - 40px);display:var(--main-aside-item-display)}:host ::ng-deep aside .header{background-color:#0003!important;padding:15px;flex-direction:row}:host ::ng-deep aside .header div{display:flex;align-items:center;margin-top:auto}:host ::ng-deep aside .footer{margin-top:auto;margin-bottom:80px;padding:0 30px}:host ::ng-deep aside ds-icon{font-size:1.55rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;min-width:40px;width:40px;height:40px}:host ::ng-deep ds-button.close::part(base){height:37px;width:37px}:host ::ng-deep ds-button.close ds-icon{font-size:18px;min-width:18px;width:18px;height:18px}:host ::ng-deep .viewAll:hover{background-color:var(--purple)}:host ::ng-deep .viewAll:hover span{color:var(--white)}:host ::ng-deep .justify-content-between{justify-content:space-between}:host ::ng-deep .flex-column{flex-direction:column}:host ::ng-deep .d-flex{display:flex}:host ::ng-deep .w-100{width:100%}:host ::ng-deep .gap-3{gap:1rem!important}:host ::ng-deep ds-button.purple::part(base){--btn-border-color: var(--purple)}:host ::ng-deep ds-button.purple::part(overlay){--btn-overlay-color: var(--purple)}:host ::ng-deep ds-button.secondary::part(base){--btn-border-color: var(--secondary)}:host ::ng-deep ds-button.secondary::part(overlay){--btn-overlay-color: var(--secondary)}@media (min-width: 1024px){:host ::ng-deep .d-md-none{display:none!important}}@media (max-height: 430px){:host ::ng-deep aside .header{margin-bottom:50px}:host ::ng-deep aside nav{padding:15px 0 0;overflow:auto}:host ::ng-deep aside .footer{margin-bottom:20px}}@media (max-height: 300px){:host ::ng-deep aside .header{margin-bottom:5px}}:host ::ng-deep .logo{color:#fff}::ng-deep .aside-menu .mat-mdc-menu-content{border:none;box-shadow:none;padding:0!important}\n"], dependencies: [{ kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$
|
|
6067
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideNavComponent, deps: [{ token: SidenavService }, { token: i2$5.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
6068
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SideNavComponent, isStandalone: true, selector: "app-side-nav", inputs: { isOpened: "isOpened" }, viewQueries: [{ propertyName: "MenuTrigger", first: true, predicate: ["MenuTrigger"], descendants: true }], ngImport: i0, template: "<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n", styles: [":host ::ng-deep aside{min-width:var(--main-aside-width);width:var(--main-aside-width);height:calc(100vh - var(--main-toolbar-height));display:flex;position:var(--main-aside-position);right:var(--main-aside-right);left:var(--main-aside-left);top:var(--main-toolbar-height);z-index:var(--main-toolbar-zIndex);background-color:var(--main-aside-bc);transform:var(--main-aside-transform);transition:all .5s cubic-bezier(.685,.0473,.346,1)}@media (max-width: 1024px){:host ::ng-deep aside{height:100%;flex-direction:column;--main-toolbar-height: 0}}:host ::ng-deep aside nav{width:100%}:host ::ng-deep aside ul{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:0rem;margin:37px 0;list-style:none;counter-reset:itemCounter}:host ::ng-deep aside ul li{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:calc(var(--main-aside-width-active) - 15px);width:100%;gap:var(--gap-width, 2.5rem);padding:3px 0 3px 10px;cursor:pointer;color:var(--main-aside-item-fc);border-radius:0;transition:var(--default-transition)}[dir=rtl] :host ::ng-deep aside ul li{padding:3px 10px 3px 0!important}@media (max-width: 1024px){@keyframes liAnimation{0%{transform:translateY(-500px)}to{transform:translateY(0)}}}:host ::ng-deep aside ul li.active,:host ::ng-deep aside ul li:hover{background-color:var(--main-aside-item-bc)}[dir=ltr] :host ::ng-deep aside ul li.active,[dir=ltr] :host ::ng-deep aside ul li:hover{border-left:5px solid var(--coral)}[dir=rtl] :host ::ng-deep aside ul li.active,[dir=rtl] :host ::ng-deep aside ul li:hover{border-right:5px solid var(--coral)}:host ::ng-deep aside ul li .menu-label{font-size:var(--main-aside-item-fs);flex-grow:1;opacity:1;min-width:calc(var(--main-aside-width-active) - 2rem - 40px);display:var(--main-aside-item-display)}:host ::ng-deep aside .header{background-color:#0003!important;padding:15px;flex-direction:row}:host ::ng-deep aside .header div{display:flex;align-items:center;margin-top:auto}:host ::ng-deep aside .footer{margin-top:auto;margin-bottom:80px;padding:0 30px}:host ::ng-deep aside ds-icon{font-size:1.55rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;min-width:40px;width:40px;height:40px}:host ::ng-deep ds-button.close::part(base){height:37px;width:37px}:host ::ng-deep ds-button.close ds-icon{font-size:18px;min-width:18px;width:18px;height:18px}:host ::ng-deep .viewAll:hover{background-color:var(--purple)}:host ::ng-deep .viewAll:hover span{color:var(--white)}:host ::ng-deep .justify-content-between{justify-content:space-between}:host ::ng-deep .flex-column{flex-direction:column}:host ::ng-deep .d-flex{display:flex}:host ::ng-deep .w-100{width:100%}:host ::ng-deep .gap-3{gap:1rem!important}:host ::ng-deep ds-button.purple::part(base){--btn-border-color: var(--purple)}:host ::ng-deep ds-button.purple::part(overlay){--btn-overlay-color: var(--purple)}:host ::ng-deep ds-button.secondary::part(base){--btn-border-color: var(--secondary)}:host ::ng-deep ds-button.secondary::part(overlay){--btn-overlay-color: var(--secondary)}@media (min-width: 1024px){:host ::ng-deep .d-md-none{display:none!important}}@media (max-height: 430px){:host ::ng-deep aside .header{margin-bottom:50px}:host ::ng-deep aside nav{padding:15px 0 0;overflow:auto}:host ::ng-deep aside .footer{margin-bottom:20px}}@media (max-height: 300px){:host ::ng-deep aside .header{margin-bottom:5px}}:host ::ng-deep .logo{color:#fff}::ng-deep .aside-menu .mat-mdc-menu-content{border:none;box-shadow:none;padding:0!important}\n"], dependencies: [{ kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] });
|
|
6467
6069
|
}
|
|
6468
6070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideNavComponent, decorators: [{
|
|
6469
6071
|
type: Component,
|
|
6470
6072
|
args: [{ selector: 'app-side-nav', standalone: true, imports: [RouterLinkActive, RouterLink, MatTooltipModule, MatMenu, MatMenuTrigger], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n", styles: [":host ::ng-deep aside{min-width:var(--main-aside-width);width:var(--main-aside-width);height:calc(100vh - var(--main-toolbar-height));display:flex;position:var(--main-aside-position);right:var(--main-aside-right);left:var(--main-aside-left);top:var(--main-toolbar-height);z-index:var(--main-toolbar-zIndex);background-color:var(--main-aside-bc);transform:var(--main-aside-transform);transition:all .5s cubic-bezier(.685,.0473,.346,1)}@media (max-width: 1024px){:host ::ng-deep aside{height:100%;flex-direction:column;--main-toolbar-height: 0}}:host ::ng-deep aside nav{width:100%}:host ::ng-deep aside ul{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:0rem;margin:37px 0;list-style:none;counter-reset:itemCounter}:host ::ng-deep aside ul li{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:calc(var(--main-aside-width-active) - 15px);width:100%;gap:var(--gap-width, 2.5rem);padding:3px 0 3px 10px;cursor:pointer;color:var(--main-aside-item-fc);border-radius:0;transition:var(--default-transition)}[dir=rtl] :host ::ng-deep aside ul li{padding:3px 10px 3px 0!important}@media (max-width: 1024px){@keyframes liAnimation{0%{transform:translateY(-500px)}to{transform:translateY(0)}}}:host ::ng-deep aside ul li.active,:host ::ng-deep aside ul li:hover{background-color:var(--main-aside-item-bc)}[dir=ltr] :host ::ng-deep aside ul li.active,[dir=ltr] :host ::ng-deep aside ul li:hover{border-left:5px solid var(--coral)}[dir=rtl] :host ::ng-deep aside ul li.active,[dir=rtl] :host ::ng-deep aside ul li:hover{border-right:5px solid var(--coral)}:host ::ng-deep aside ul li .menu-label{font-size:var(--main-aside-item-fs);flex-grow:1;opacity:1;min-width:calc(var(--main-aside-width-active) - 2rem - 40px);display:var(--main-aside-item-display)}:host ::ng-deep aside .header{background-color:#0003!important;padding:15px;flex-direction:row}:host ::ng-deep aside .header div{display:flex;align-items:center;margin-top:auto}:host ::ng-deep aside .footer{margin-top:auto;margin-bottom:80px;padding:0 30px}:host ::ng-deep aside ds-icon{font-size:1.55rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;min-width:40px;width:40px;height:40px}:host ::ng-deep ds-button.close::part(base){height:37px;width:37px}:host ::ng-deep ds-button.close ds-icon{font-size:18px;min-width:18px;width:18px;height:18px}:host ::ng-deep .viewAll:hover{background-color:var(--purple)}:host ::ng-deep .viewAll:hover span{color:var(--white)}:host ::ng-deep .justify-content-between{justify-content:space-between}:host ::ng-deep .flex-column{flex-direction:column}:host ::ng-deep .d-flex{display:flex}:host ::ng-deep .w-100{width:100%}:host ::ng-deep .gap-3{gap:1rem!important}:host ::ng-deep ds-button.purple::part(base){--btn-border-color: var(--purple)}:host ::ng-deep ds-button.purple::part(overlay){--btn-overlay-color: var(--purple)}:host ::ng-deep ds-button.secondary::part(base){--btn-border-color: var(--secondary)}:host ::ng-deep ds-button.secondary::part(overlay){--btn-overlay-color: var(--secondary)}@media (min-width: 1024px){:host ::ng-deep .d-md-none{display:none!important}}@media (max-height: 430px){:host ::ng-deep aside .header{margin-bottom:50px}:host ::ng-deep aside nav{padding:15px 0 0;overflow:auto}:host ::ng-deep aside .footer{margin-bottom:20px}}@media (max-height: 300px){:host ::ng-deep aside .header{margin-bottom:5px}}:host ::ng-deep .logo{color:#fff}::ng-deep .aside-menu .mat-mdc-menu-content{border:none;box-shadow:none;padding:0!important}\n"] }]
|
|
6471
|
-
}], ctorParameters: () => [{ type: SidenavService }, { type: i2$
|
|
6073
|
+
}], ctorParameters: () => [{ type: SidenavService }, { type: i2$5.Router }], propDecorators: { isOpened: [{
|
|
6472
6074
|
type: Input
|
|
6473
6075
|
}], MenuTrigger: [{
|
|
6474
6076
|
type: ViewChild,
|
|
@@ -6527,8 +6129,8 @@ class LayoutComponent {
|
|
|
6527
6129
|
closeSideNav() {
|
|
6528
6130
|
this.sidenav.close().then(r => { });
|
|
6529
6131
|
}
|
|
6530
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LayoutComponent, deps: [{ token: DOCUMENT }, { token: i2$
|
|
6531
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: LayoutComponent, isStandalone: true, selector: "core-layout", inputs: { form: "form", formTitle: "formTitle", isLoading: "isLoading", serviceBrief: "serviceBrief" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], ngImport: i0, template: "<app-header></app-header>\r\n<section class=\"d-flex\">\r\n <app-side-nav></app-side-nav>\r\n <mat-sidenav-container\r\n class=\"flex-grow-1\"\r\n [hasBackdrop]=\"true\"\r\n (backdropClick)=\"backdropClick()\"\r\n >\r\n <mat-sidenav\r\n #sidenav\r\n autoFocus=\"false\"\r\n fixedInViewport\r\n [position]=\"'end'\"\r\n (closedStart)=\"onClose()\"\r\n >\r\n <ng-container *ngComponentOutlet=\"sideContent\">\r\n <app-side-nav></app-side-nav>\r\n </ng-container>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <main\r\n class=\"hadPadding service-wrapper\"\r\n [ngClass]=\"form?.header?.status?.key == 'NEW' ? 'hub-container-mini' : 'hub-container'\">\r\n\r\n <ng-content ></ng-content>\r\n <ng-content select=\"[workflow]\"></ng-content>\r\n\r\n </main>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</section>\r\n", styles: [":host ::ng-deep .mat-drawer-container{overflow:visible;margin-top:var(--main-toolbar-height);min-height:calc(100vh - var(--main-toolbar-height));background-color:var(--body-bg)!important;z-index:initial!important;min-width:calc(100% - var(--main-aside-width));width:calc(100% - var(--main-aside-width))}:host ::ng-deep .mat-drawer-container .mat-drawer-content{display:flex;flex-direction:column;overflow:visible}.hup-wrapper :host ::ng-deep .mat-drawer-container .mat-drawer-content{min-height:auto}:host ::ng-deep footer{bottom:-65px}.mat-drawer{border-radius:10px!important;margin:1rem;box-shadow:0 8px 16px 7px rgba(var(--rgb-black),.06);background-color:var(--white)}@media (max-width: 767px){.mat-drawer{padding:0;border-radius:0;margin:0;width:100%}}.customize-btn{min-width:166px}.zer-pt{padding-top:0!important}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header" }, { kind: "component", type: SideNavComponent, selector: "app-side-nav", inputs: ["isOpened"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3$
|
|
6132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LayoutComponent, deps: [{ token: DOCUMENT }, { token: i2$5.Router }, { token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6133
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: LayoutComponent, isStandalone: true, selector: "core-layout", inputs: { form: "form", formTitle: "formTitle", isLoading: "isLoading", serviceBrief: "serviceBrief" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], ngImport: i0, template: "<app-header></app-header>\r\n<section class=\"d-flex\">\r\n <app-side-nav></app-side-nav>\r\n <mat-sidenav-container\r\n class=\"flex-grow-1\"\r\n [hasBackdrop]=\"true\"\r\n (backdropClick)=\"backdropClick()\"\r\n >\r\n <mat-sidenav\r\n #sidenav\r\n autoFocus=\"false\"\r\n fixedInViewport\r\n [position]=\"'end'\"\r\n (closedStart)=\"onClose()\"\r\n >\r\n <ng-container *ngComponentOutlet=\"sideContent\">\r\n <app-side-nav></app-side-nav>\r\n </ng-container>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <main\r\n class=\"hadPadding service-wrapper\"\r\n [ngClass]=\"form?.header?.status?.key == 'NEW' ? 'hub-container-mini' : 'hub-container'\">\r\n\r\n <ng-content ></ng-content>\r\n <ng-content select=\"[workflow]\"></ng-content>\r\n\r\n </main>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</section>\r\n", styles: [":host ::ng-deep .mat-drawer-container{overflow:visible;margin-top:var(--main-toolbar-height);min-height:calc(100vh - var(--main-toolbar-height));background-color:var(--body-bg)!important;z-index:initial!important;min-width:calc(100% - var(--main-aside-width));width:calc(100% - var(--main-aside-width))}:host ::ng-deep .mat-drawer-container .mat-drawer-content{display:flex;flex-direction:column;overflow:visible}.hup-wrapper :host ::ng-deep .mat-drawer-container .mat-drawer-content{min-height:auto}:host ::ng-deep footer{bottom:-65px}.mat-drawer{border-radius:10px!important;margin:1rem;box-shadow:0 8px 16px 7px rgba(var(--rgb-black),.06);background-color:var(--white)}@media (max-width: 767px){.mat-drawer{padding:0;border-radius:0;margin:0;width:100%}}.customize-btn{min-width:166px}.zer-pt{padding-top:0!important}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header" }, { kind: "component", type: SideNavComponent, selector: "app-side-nav", inputs: ["isOpened"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3$3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3$3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
6532
6134
|
}
|
|
6533
6135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
6534
6136
|
type: Component,
|
|
@@ -6536,7 +6138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
6536
6138
|
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
6537
6139
|
type: Inject,
|
|
6538
6140
|
args: [DOCUMENT]
|
|
6539
|
-
}] }, { type: i2$
|
|
6141
|
+
}] }, { type: i2$5.Router }, { type: SidenavService }], propDecorators: { sidenav: [{
|
|
6540
6142
|
type: ViewChild,
|
|
6541
6143
|
args: ["sidenav", { static: true }]
|
|
6542
6144
|
}], form: [{
|
|
@@ -6571,12 +6173,10 @@ class RequestDetailsSectionComponent {
|
|
|
6571
6173
|
form;
|
|
6572
6174
|
lov;
|
|
6573
6175
|
className = "info-section";
|
|
6574
|
-
fieldsForm;
|
|
6575
|
-
|
|
6576
|
-
|
|
6577
|
-
|
|
6578
|
-
countries: new FormControl('', Validators.required),
|
|
6579
|
-
});
|
|
6176
|
+
// fieldsForm: FormGroup;
|
|
6177
|
+
currentSectionId;
|
|
6178
|
+
lastSectionId;
|
|
6179
|
+
formGroup;
|
|
6580
6180
|
constructor(i18n, fb, actionStateService) {
|
|
6581
6181
|
this.i18n = i18n;
|
|
6582
6182
|
this.fb = fb;
|
|
@@ -6592,27 +6192,39 @@ class RequestDetailsSectionComponent {
|
|
|
6592
6192
|
this.lov?.['decision']?.options?.forEach(option => {
|
|
6593
6193
|
newForm[option.value] = [''];
|
|
6594
6194
|
});
|
|
6595
|
-
this.
|
|
6596
|
-
|
|
6195
|
+
this.formGroup = this.fb.group({
|
|
6196
|
+
input: new FormControl('', [Validators.required, Validators.maxLength(3), Validators.minLength(2)]),
|
|
6197
|
+
customSearchable: new FormControl('', Validators.required),
|
|
6198
|
+
checkbox: new FormControl(true, Validators.requiredTrue),
|
|
6199
|
+
textArea: new FormControl('', [Validators.required, Validators.maxLength(10), Validators.minLength(5)]),
|
|
6200
|
+
currencyInput: new FormControl(''),
|
|
6201
|
+
datePicker: new FormControl('', Validators.required),
|
|
6202
|
+
...newForm,
|
|
6203
|
+
});
|
|
6204
|
+
this.formGroup.valueChanges.subscribe(value => {
|
|
6597
6205
|
this.lov?.['decision']?.options?.forEach(option => {
|
|
6598
6206
|
let isActionValid = this.checkValidity(option.value);
|
|
6599
6207
|
this.actionStateService.setActionValid(option.value, isActionValid);
|
|
6600
|
-
this.section.body.details = this.
|
|
6208
|
+
this.section.body.details = this.formGroup.value;
|
|
6209
|
+
/*{
|
|
6210
|
+
input1: this.fieldsForm.get('input1').value
|
|
6211
|
+
}*/
|
|
6601
6212
|
});
|
|
6602
|
-
};
|
|
6603
|
-
checkValidityAndUpdate();
|
|
6604
|
-
this.fieldsForm.valueChanges.subscribe(() => {
|
|
6605
|
-
checkValidityAndUpdate();
|
|
6606
6213
|
});
|
|
6607
6214
|
}
|
|
6215
|
+
formValue(form) {
|
|
6216
|
+
console.log(form.value);
|
|
6217
|
+
}
|
|
6608
6218
|
checkValidity(action) {
|
|
6609
6219
|
switch (action) {
|
|
6220
|
+
case 'SUBMIT':
|
|
6221
|
+
return this.formGroup.valid;
|
|
6610
6222
|
case 'APPROVE':
|
|
6611
6223
|
return true;
|
|
6612
6224
|
case 'REJECT':
|
|
6613
|
-
return this.
|
|
6225
|
+
return this.formGroup.valid;
|
|
6614
6226
|
case 'SENDBACK':
|
|
6615
|
-
return this.
|
|
6227
|
+
return this.formGroup.valid;
|
|
6616
6228
|
default:
|
|
6617
6229
|
return false;
|
|
6618
6230
|
}
|
|
@@ -6621,10 +6233,10 @@ class RequestDetailsSectionComponent {
|
|
|
6621
6233
|
console.log('customCallSubmit', action);
|
|
6622
6234
|
}
|
|
6623
6235
|
resetForm() {
|
|
6624
|
-
this.
|
|
6236
|
+
this.formGroup.reset();
|
|
6625
6237
|
}
|
|
6626
6238
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestDetailsSectionComponent, deps: [{ token: CoreI18nService }, { token: i2.FormBuilder }, { token: ActionStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6627
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n\r\n
|
|
6239
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n\r\n<form [formGroup]=\"formGroup\">\r\n <app-input formControlName=\"input\" label=\"Input\" class=\"section-item\"></app-input>\r\n <app-custom-searchable class=\"section-item\" formControlName=\"customSearchable\" label=\"Custom-searchable\" [options]=\"lov?.['approverActions']?.options\" [displayedLable]=\"'name'\"\r\n [key]=\"'name'\"\r\n ></app-custom-searchable>\r\n <app-checkbox formControlName=\"checkbox\" termsLabel=\"Terms and condtions\" [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-input-currency formControlName=\"currencyInput\" label=\"Currency-input\"></app-input-currency>\r\n <app-datepicker formControlName=\"datePicker\" [matSuffix]=\"true\" label=\"Date-picker\" minDate=\"today\"></app-datepicker>\r\n <app-input formControlName=\"input1\"></app-input>\r\n</form>\r\n<ds-button\r\n(click)=\"formValue(formGroup)\"\r\n[ngClass]=\"{'disabled': !formGroup.valid}\"\r\n>\r\n{{ i18n.translate('submit') }}\r\n</ds-button>\r\n\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <!-- <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\" ></app-input>\r\n </form> -->\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["hasTooltip", "tooltip", "floatLabel", "className", "showLabel", "iconPrefixName", "iconSuffixName", "emitedChangedValue1"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "name", "displayedLable", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "component", type: CheckBoxComponent, selector: "app-checkbox", inputs: ["containTerms", "termsLabel", "linkText", "hrefLink", "link", "name", "randomID", "termsBody"], outputs: ["downloadCheckBox"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "component", type: InputCurrencyComponent, selector: "app-input-currency", inputs: ["tooltip", "floatLabel", "className", "iconPrefixName", "iconSuffixName", "numberSuffixName"] }, { kind: "component", type: DatePickerComponent, selector: "app-datepicker", inputs: ["tooltip", "className", "calendarType", "showLabel", "yearOnly", "resetDate", "error", "format"], outputs: ["dateValue"] }] });
|
|
6628
6240
|
}
|
|
6629
6241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestDetailsSectionComponent, decorators: [{
|
|
6630
6242
|
type: Component,
|
|
@@ -6636,8 +6248,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
6636
6248
|
ActionButtonsComponent,
|
|
6637
6249
|
ReactiveFormsModule,
|
|
6638
6250
|
ValidationErrorsComponent,
|
|
6639
|
-
CustomSearchableComponent
|
|
6640
|
-
|
|
6251
|
+
CustomSearchableComponent,
|
|
6252
|
+
CheckBoxComponent,
|
|
6253
|
+
TextareaComponent,
|
|
6254
|
+
InputCurrencyComponent,
|
|
6255
|
+
DatePickerComponent
|
|
6256
|
+
], template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n\r\n<form [formGroup]=\"formGroup\">\r\n <app-input formControlName=\"input\" label=\"Input\" class=\"section-item\"></app-input>\r\n <app-custom-searchable class=\"section-item\" formControlName=\"customSearchable\" label=\"Custom-searchable\" [options]=\"lov?.['approverActions']?.options\" [displayedLable]=\"'name'\"\r\n [key]=\"'name'\"\r\n ></app-custom-searchable>\r\n <app-checkbox formControlName=\"checkbox\" termsLabel=\"Terms and condtions\" [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-input-currency formControlName=\"currencyInput\" label=\"Currency-input\"></app-input-currency>\r\n <app-datepicker formControlName=\"datePicker\" [matSuffix]=\"true\" label=\"Date-picker\" minDate=\"today\"></app-datepicker>\r\n <app-input formControlName=\"input1\"></app-input>\r\n</form>\r\n<ds-button\r\n(click)=\"formValue(formGroup)\"\r\n[ngClass]=\"{'disabled': !formGroup.valid}\"\r\n>\r\n{{ i18n.translate('submit') }}\r\n</ds-button>\r\n\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <!-- <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\" ></app-input>\r\n </form> -->\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}\n"] }]
|
|
6641
6257
|
}], ctorParameters: () => [{ type: CoreI18nService }, { type: i2.FormBuilder }, { type: ActionStateService }], propDecorators: { isReadOnly: [{
|
|
6642
6258
|
type: Input
|
|
6643
6259
|
}], section: [{
|
|
@@ -6712,7 +6328,7 @@ class GeneralApproverSectionComponent {
|
|
|
6712
6328
|
this.fieldsForm.reset();
|
|
6713
6329
|
}
|
|
6714
6330
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneralApproverSectionComponent, deps: [{ token: CoreI18nService }, { token: i2.FormBuilder }, { token: ActionStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6715
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: GeneralApproverSectionComponent, isStandalone: true, selector: "app-general-approver-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\"></app-input>\r\n </form>\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"fieldsForm\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["
|
|
6331
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: GeneralApproverSectionComponent, isStandalone: true, selector: "app-general-approver-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\"></app-input>\r\n </form>\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"fieldsForm\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["hasTooltip", "tooltip", "floatLabel", "className", "showLabel", "iconPrefixName", "iconSuffixName", "emitedChangedValue1"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
6716
6332
|
}
|
|
6717
6333
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneralApproverSectionComponent, decorators: [{
|
|
6718
6334
|
type: Component,
|
|
@@ -6865,7 +6481,7 @@ class CoreAppComponent {
|
|
|
6865
6481
|
}
|
|
6866
6482
|
window.scrollTo(0, 0);
|
|
6867
6483
|
}
|
|
6868
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CoreAppComponent, deps: [{ token: SegmentDynamicLoaderService }, { token: DOCUMENT }, { token: i2$
|
|
6484
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CoreAppComponent, deps: [{ token: SegmentDynamicLoaderService }, { token: DOCUMENT }, { token: i2$5.Router }, { token: SidenavService }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6869
6485
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: CoreAppComponent, isStandalone: true, selector: "lib-app", providers: [
|
|
6870
6486
|
{ provide: DynamicComponentInjectorToken, useValue: { /* your value here */} }
|
|
6871
6487
|
], ngImport: i0, template: "<core-layout>\r\n @if (!loading['form']) {\r\n <core-service-header\r\n [isLoading]=\"false\"\r\n [formTitle]=\"formTitle\"\r\n [form]=\"form\">\r\n </core-service-header>\r\n <app-workflow-section\r\n workflow\r\n [form]=\"form\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoader\"\r\n [sections]=\"form?.sections\">\r\n\r\n <app-request-details-section [form]=\"form\" [section]=\"form?.sections[0]\" [lov]=\"form?.lovs\" className=\"form-section\"></app-request-details-section>\r\n <!-- [isReadOnly]=\"form.sections[0].header.readOnly\"-->\r\n </app-workflow-section>\r\n } @else {\r\n <core-service-header header [formTitle]=\"formTitle\" [isLoading]=\"true\">\r\n </core-service-header>\r\n }\r\n</core-layout>\r\n", styles: [""], dependencies: [{ kind: "component", type:
|
|
@@ -6886,7 +6502,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
6886
6502
|
}], ctorParameters: () => [{ type: SegmentDynamicLoaderService }, { type: Document, decorators: [{
|
|
6887
6503
|
type: Inject,
|
|
6888
6504
|
args: [DOCUMENT]
|
|
6889
|
-
}] }, { type: i2$
|
|
6505
|
+
}] }, { type: i2$5.Router }, { type: SidenavService }, { type: CoreService }] });
|
|
6890
6506
|
|
|
6891
6507
|
function encodePassword(formId, password) {
|
|
6892
6508
|
const formIdString = Array.from(new TextEncoder().encode(formId), (x) => String.fromCodePoint(x)).join('');
|