ecabs-components 1.1.92 → 1.1.94

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.
Files changed (36) hide show
  1. package/README.md +12 -0
  2. package/esm2022/lib/base/consts/badge.consts.mjs +2 -2
  3. package/esm2022/lib/base/directives/action-menu-trigger.directive.mjs +1 -1
  4. package/esm2022/lib/base/directives/badge.directive.mjs +106 -0
  5. package/esm2022/lib/base/directives/badge.directive.module.mjs +18 -0
  6. package/esm2022/lib/base/directives/tooltip-if-truncated.directive.module.mjs +6 -5
  7. package/esm2022/lib/base/models/action-menu.models.mjs +1 -1
  8. package/esm2022/lib/ecabs-action-menu/ecabs-action-menu.component.mjs +12 -7
  9. package/esm2022/lib/ecabs-action-menu/ecabs-action-menu.module.mjs +1 -1
  10. package/esm2022/lib/ecabs-badge/ecabs-badge.component.mjs +12 -13
  11. package/esm2022/lib/ecabs-badge/ecabs-badge.module.mjs +16 -3
  12. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +19 -12
  13. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +7 -7
  14. package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +1 -1
  15. package/esm2022/public-api.mjs +3 -1
  16. package/fesm2022/ecabs-components.mjs +366 -231
  17. package/fesm2022/ecabs-components.mjs.map +1 -1
  18. package/lib/base/consts/badge.consts.d.ts +1 -0
  19. package/lib/base/directives/badge.directive.d.ts +26 -0
  20. package/lib/base/directives/badge.directive.module.d.ts +8 -0
  21. package/lib/base/directives/tooltip-if-truncated.directive.module.d.ts +2 -1
  22. package/lib/ecabs-action-menu/ecabs-action-menu.component.d.ts +5 -3
  23. package/lib/ecabs-badge/ecabs-badge.component.d.ts +2 -3
  24. package/lib/ecabs-badge/ecabs-badge.module.d.ts +5 -4
  25. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +3 -2
  26. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +3 -3
  27. package/package.json +1 -1
  28. package/public-api.d.ts +2 -0
  29. package/src/assets/styles/material/overrides/_badge.scss +107 -0
  30. package/src/assets/styles/material/overrides/_expansion.scss +43 -1
  31. package/src/assets/styles/material/overrides/_menu.scss +61 -61
  32. package/src/assets/styles/scss/modules/_badge.scss +26 -9
  33. package/src/assets/styles/scss/modules/_button.scss +1 -0
  34. package/src/assets/styles/scss/modules/_menu.scss +48 -48
  35. package/src/assets/styles/scss/modules/index.scss +25 -25
  36. package/src/assets/styles/tailwind/index.scss +1 -1
@@ -4,7 +4,7 @@ import * as i1 from '@angular/common';
4
4
  import { CommonModule, DecimalPipe, getLocaleFirstDayOfWeek, DOCUMENT } from '@angular/common';
5
5
  import * as i2 from '@angular/material/button';
6
6
  import { MatButton, MatButtonModule } from '@angular/material/button';
7
- import * as i2$2 from '@angular/material/icon';
7
+ import * as i4 from '@angular/material/icon';
8
8
  import { MatIconModule } from '@angular/material/icon';
9
9
  import * as i3 from '@angular/forms';
10
10
  import { NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS, NgControl, FormsModule, UntypedFormControl, ReactiveFormsModule, UntypedFormGroup, FormControl } from '@angular/forms';
@@ -18,19 +18,19 @@ import * as i7 from '@angular/material/form-field';
18
18
  import { MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldControl } from '@angular/material/form-field';
19
19
  import * as i5 from '@angular/cdk/overlay';
20
20
  import { Overlay, CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
21
- import * as i4 from '@angular/material/select';
21
+ import * as i4$1 from '@angular/material/select';
22
22
  import { MAT_SELECT_SCROLL_STRATEGY, MatSelectModule } from '@angular/material/select';
23
23
  import * as i6$1 from '@angular/material/input';
24
24
  import { MatInputModule } from '@angular/material/input';
25
25
  import * as i9 from 'ngx-mat-select-search';
26
26
  import { MatSelectSearchComponent, NgxMatSelectSearchModule } from 'ngx-mat-select-search';
27
- import * as i4$1 from '@angular/material/core';
27
+ import * as i4$2 from '@angular/material/core';
28
28
  import { mixinErrorState, ErrorStateMatcher, NativeDateAdapter } from '@angular/material/core';
29
- import * as i4$3 from '@ng-select/ng-select';
29
+ import * as i4$4 from '@ng-select/ng-select';
30
30
  import { NgSelectComponent, NgSelectModule } from '@ng-select/ng-select';
31
31
  import * as i3$1 from '@angular/material/checkbox';
32
32
  import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
33
- import * as i4$2 from '@angular/material/slide-toggle';
33
+ import * as i4$3 from '@angular/material/slide-toggle';
34
34
  import { MatSlideToggle, MatSlideToggleModule } from '@angular/material/slide-toggle';
35
35
  import { format, isValid, isEqual, parse, setSeconds, setMinutes, setHours, isSameMinute } from 'date-fns';
36
36
  import Holidays from 'date-holidays';
@@ -42,19 +42,19 @@ import { parsePhoneNumber, getExampleNumber, parsePhoneNumberFromString, AsYouTy
42
42
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
43
43
  import * as i7$1 from '@angular/material/menu';
44
44
  import { MatMenu, MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
45
- import * as i2$3 from '@angular/cdk/a11y';
45
+ import * as i2$2 from '@angular/cdk/a11y';
46
46
  import * as i3$2 from '@angular/material/divider';
47
47
  import { MatDividerModule } from '@angular/material/divider';
48
- import * as i4$4 from '@angular/router';
48
+ import * as i4$5 from '@angular/router';
49
49
  import { RouterModule, NavigationStart, RouterLink, RouterLinkActive } from '@angular/router';
50
50
  import * as i3$3 from '@angular/material/radio';
51
51
  import { MatRadioGroup, MatRadioModule } from '@angular/material/radio';
52
52
  import * as i3$4 from '@angular/material/expansion';
53
53
  import { MatExpansionPanel, MatExpansionModule } from '@angular/material/expansion';
54
- import * as i2$4 from '@angular/material/chips';
54
+ import * as i2$3 from '@angular/material/chips';
55
55
  import { MatChipsModule } from '@angular/material/chips';
56
56
  import { MatTable, MatTableModule } from '@angular/material/table';
57
- import * as i2$5 from '@angular/material/progress-bar';
57
+ import * as i2$4 from '@angular/material/progress-bar';
58
58
  import { MatProgressBarModule } from '@angular/material/progress-bar';
59
59
  import * as i1$2 from '@angular/material/dialog';
60
60
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
@@ -66,9 +66,9 @@ import * as i3$6 from '@angular/platform-browser';
66
66
  import { MatSidenavModule } from '@angular/material/sidenav';
67
67
  import { Platform } from '@angular/cdk/platform';
68
68
  import { isEqual as isEqual$1 } from 'lodash';
69
- import * as i4$5 from '@angular/material/autocomplete';
69
+ import * as i4$6 from '@angular/material/autocomplete';
70
70
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
71
- import * as i2$6 from '@angular/material/card';
71
+ import * as i2$5 from '@angular/material/card';
72
72
  import { MatCardModule } from '@angular/material/card';
73
73
  import { MatListModule } from '@angular/material/list';
74
74
 
@@ -809,7 +809,7 @@ class EcabsElementWrapperComponent {
809
809
  this.decrease.emit();
810
810
  }
811
811
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsElementWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
812
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: { data: "data", showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", showPassword: "showPassword", control: "control" }, outputs: { showHidePassword: "showHidePassword", clear: "clear", increase: "increase", decrease: "decrease" }, ngImport: i0, template: "<div\n class=\"form-field\"\n [ngClass]=\"{\n 'form-field--invalid':\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\n disabled: data?.disabled,\n 'form-field--required': data?.required && data?.showAsterisk\n }\"\n>\n <div class=\"flex\">\n <label *ngIf=\"data?.label && data?.showLabel\"\n class=\"form-field__label\"\n [attr.for]=\"data?.name || data?.label\">\n <span [innerHTML]=\"data?.label\"></span>\n </label>\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\" *ngIf=\"data?.tooltip\"\n [matTooltip]=\"data?.tooltip\">error_outline\n </mat-icon>\n </div>\n\n <div class=\"form-field__label-note\" *ngIf=\"data?.labelNote\" [innerHTML]=\"data?.labelNote\"></div>\n\n <ng-content></ng-content>\n\n <ecabs-loading-spinner *ngIf=\"data?.showLocalLoading && data?.loading\"\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\n\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\n\n <ecabs-validations-messages\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\n [element]=\"data?.control\"\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\n >\n </ecabs-validations-messages>\n</div>\n", styles: [":host ::ng-deep .break-line-tooltip{white-space:pre-line}:host ::ng-deep .mat-icon-input-tooltip{font-size:18px;height:18px;width:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: ValidationComponent, selector: "ecabs-validations-messages", inputs: ["element", "label", "showValidationOnNotTouched", "updatedErrors"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: EcabsHintComponent, selector: "ecabs-hint", inputs: ["element", "maxValue", "showHint"] }] });
812
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: { data: "data", showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", showPassword: "showPassword", control: "control" }, outputs: { showHidePassword: "showHidePassword", clear: "clear", increase: "increase", decrease: "decrease" }, ngImport: i0, template: "<div\n class=\"form-field\"\n [ngClass]=\"{\n 'form-field--invalid':\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\n disabled: data?.disabled,\n 'form-field--required': data?.required && data?.showAsterisk\n }\"\n>\n <div class=\"flex\">\n <label *ngIf=\"data?.label && data?.showLabel\"\n class=\"form-field__label\"\n [attr.for]=\"data?.name || data?.label\">\n <span [innerHTML]=\"data?.label\"></span>\n </label>\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\" *ngIf=\"data?.tooltip\"\n [matTooltip]=\"data?.tooltip\">error_outline\n </mat-icon>\n </div>\n\n <div class=\"form-field__label-note\" *ngIf=\"data?.labelNote\" [innerHTML]=\"data?.labelNote\"></div>\n\n <ng-content></ng-content>\n\n <ecabs-loading-spinner *ngIf=\"data?.showLocalLoading && data?.loading\"\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\n\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\n\n <ecabs-validations-messages\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\n [element]=\"data?.control\"\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\n >\n </ecabs-validations-messages>\n</div>\n", styles: [":host ::ng-deep .break-line-tooltip{white-space:pre-line}:host ::ng-deep .mat-icon-input-tooltip{font-size:18px;height:18px;width:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: ValidationComponent, selector: "ecabs-validations-messages", inputs: ["element", "label", "showValidationOnNotTouched", "updatedErrors"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: EcabsHintComponent, selector: "ecabs-hint", inputs: ["element", "maxValue", "showHint"] }] });
813
813
  }
814
814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsElementWrapperComponent, decorators: [{
815
815
  type: Component,
@@ -1687,7 +1687,7 @@ class EcabsSelectIconComponent {
1687
1687
  this.svgIcon = getPhosphorSvgIcon(option);
1688
1688
  }
1689
1689
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1690
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: { option: "option" }, ngImport: i0, template: "<mat-icon *ngIf=\"svgIcon\"\r\n [svgIcon]=\"svgIcon\"\r\n class=\"!w-5 !h-5 !text-xl !leading-5 translate-y-1 mr-2\"></mat-icon>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
1690
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: { option: "option" }, ngImport: i0, template: "<mat-icon *ngIf=\"svgIcon\"\r\n [svgIcon]=\"svgIcon\"\r\n class=\"!w-5 !h-5 !text-xl !leading-5 translate-y-1 mr-2\"></mat-icon>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
1691
1691
  }
1692
1692
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconComponent, decorators: [{
1693
1693
  type: Component,
@@ -1741,15 +1741,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1741
1741
 
1742
1742
  class EcabsTooltipIfTruncatedDirectiveModule {
1743
1743
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTooltipIfTruncatedDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1744
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsTooltipIfTruncatedDirectiveModule, declarations: [EcabsTooltipIfTruncatedDirective], imports: [CommonModule], exports: [EcabsTooltipIfTruncatedDirective] });
1745
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTooltipIfTruncatedDirectiveModule, imports: [CommonModule] });
1744
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsTooltipIfTruncatedDirectiveModule, declarations: [EcabsTooltipIfTruncatedDirective], imports: [CommonModule, MatTooltipModule], exports: [EcabsTooltipIfTruncatedDirective, MatTooltipModule] });
1745
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTooltipIfTruncatedDirectiveModule, imports: [CommonModule, MatTooltipModule, MatTooltipModule] });
1746
1746
  }
1747
1747
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTooltipIfTruncatedDirectiveModule, decorators: [{
1748
1748
  type: NgModule,
1749
1749
  args: [{
1750
- imports: [CommonModule],
1750
+ imports: [CommonModule, MatTooltipModule],
1751
1751
  declarations: [EcabsTooltipIfTruncatedDirective],
1752
- exports: [EcabsTooltipIfTruncatedDirective],
1752
+ exports: [EcabsTooltipIfTruncatedDirective, MatTooltipModule],
1753
1753
  }]
1754
1754
  }] });
1755
1755
 
@@ -2055,7 +2055,7 @@ class EcabsSelectComponent extends EcabsElementBaseComponent {
2055
2055
  useExisting: EcabsSelectComponent,
2056
2056
  multi: true,
2057
2057
  },
2058
- ], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n [matTooltip]=\"trigger\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mat-select-value'\">\r\n <mat-select-trigger>\r\n <ecabs-select-icon [option]=\"triggerOption\"></ecabs-select-icon>\r\n <span>{{ trigger }}</span>\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n\r\n <mat-option *ngIf=\"useNoneOption\"\r\n (click)=\"toggleNone()\"\r\n (keydown.enter)=\"toggleNone()\">\r\n {{ noneLabel }}\r\n </mat-option>\r\n\r\n <mat-option #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n (keydown.enter)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">\r\n {{ allLabel }}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\"\r\n [value]=\"item.value\"\r\n (click)=\"togglePerOne()\"\r\n (keydown.enter)=\"togglePerOne()\"\r\n [matTooltip]=\"item.label\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mdc-list-item__primary-text'\">\r\n \r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</ecabs-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: ["option"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: EcabsTooltipIfTruncatedDirective, selector: "[matTooltip][ecabsTooltipIfTruncated]", inputs: ["classNameTruncatedTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2058
+ ], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n [matTooltip]=\"trigger\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mat-select-value'\">\r\n <mat-select-trigger>\r\n <ecabs-select-icon [option]=\"triggerOption\"></ecabs-select-icon>\r\n <span>{{ trigger }}</span>\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n\r\n <mat-option *ngIf=\"useNoneOption\"\r\n (click)=\"toggleNone()\"\r\n (keydown.enter)=\"toggleNone()\">\r\n {{ noneLabel }}\r\n </mat-option>\r\n\r\n <mat-option #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n (keydown.enter)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">\r\n {{ allLabel }}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\"\r\n [value]=\"item.value\"\r\n (click)=\"togglePerOne()\"\r\n (keydown.enter)=\"togglePerOne()\"\r\n [matTooltip]=\"item.label\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mdc-list-item__primary-text'\">\r\n \r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</ecabs-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: ["option"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: EcabsTooltipIfTruncatedDirective, selector: "[matTooltip][ecabsTooltipIfTruncated]", inputs: ["classNameTruncatedTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2059
2059
  }
2060
2060
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectComponent, decorators: [{
2061
2061
  type: Component,
@@ -2240,7 +2240,7 @@ class EcabsCheckboxToggleComponent extends EcabsElementBaseComponent {
2240
2240
  useExisting: EcabsCheckboxToggleComponent,
2241
2241
  multi: true,
2242
2242
  },
2243
- ], viewQueries: [{ propertyName: "matCheckbox", first: true, predicate: MatCheckbox, descendants: true }, { propertyName: "matSlideToggle", first: true, predicate: MatSlideToggle, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <ng-container [ngSwitch]=\"type\">\n <mat-checkbox\n (change)=\"change($event)\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [id]=\"name\"\n [labelPosition]=\"labelPosition\"\n [ngClass]=\"{ 'indeterminate': indeterminate }\"\n *ngSwitchCase=\"'checkbox'\"\n >\n {{ text }}\n </mat-checkbox>\n\n <mat-slide-toggle\n (change)=\"change($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [labelPosition]=\"labelPosition\"\n *ngSwitchCase=\"'toggle'\"\n >{{ text }}</mat-slide-toggle\n >\n </ng-container>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.form-field__subscript--wrapper,form-field__subscript--wrapper,.form-field--required .form-field__label:after,form-field--required .form-field__label:after{position:absolute;content:\"\"}.form-field--required .form-field__label:after,form-field--required .form-field__label:after{content:\"*\"!important;margin-left:.2rem;margin-top:2px;color:var(--color-error)}.form-field,form-field{margin-bottom:1rem;position:relative}.form-field__label,form-field__label{font-size:12px;font-size:.75rem;display:inline-block;margin-bottom:.25rem;color:var(--color-gray-500);cursor:pointer}.form-field__label .icon,form-field__label .icon{font-size:16px;font-size:1rem;display:inline;vertical-align:middle;margin-left:.375rem}.form-field__label-note,form-field__label-note{font-size:14px;font-size:.875rem;display:inline-block;margin-bottom:.25rem;color:var(--color-gray-400);cursor:pointer}.form-field__input,form-field__input{font-size:16px;font-size:1rem;display:block;width:100%;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--color-gray-300);color:var(--color-black);line-height:1.5}.form-field__input:focus,form-field__input:focus{border-color:var(--color-brand-dark)}.form-field__input:focus-visible,form-field__input:focus-visible{outline:none}.form-field__input--wrapper,form-field__input--wrapper{display:flex;position:relative;line-height:1}.form-field__input--wrapper--fluid,form-field__input--wrapper--fluid{width:-moz-fit-content;width:fit-content;max-width:100%;margin-left:auto;align-items:stretch;overflow:hidden;border:1px solid var(--color-gray-300);border-radius:6px;background-color:var(--color-white, #fff)}.form-field__input--wrapper--fluid:focus-within,form-field__input--wrapper--fluid:focus-within{border-color:var(--color-brand-dark)}.form-field__input--wrapper--fluid .form-field__input,form-field__input--wrapper--fluid .form-field__input{width:auto;min-width:0;flex:0 0 auto;box-sizing:border-box;border:0;border-radius:0;padding-right:0;text-align:right;background-color:transparent}.form-field__input--wrapper--fluid .form-field__input:focus,form-field__input--wrapper--fluid .form-field__input:focus{border-color:transparent}.form-field__input--wrapper--fluid .form-field__input--suffix,.form-field__input--wrapper--fluid .form-field__textarea--prefix,.form-field__input--wrapper--fluid form-field__textarea--prefix,.form-field__input--wrapper--fluid .form-field__input--prefix,.form-field__input--wrapper--fluid form-field__input--prefix,form-field__input--wrapper--fluid .form-field__input--suffix,form-field__input--wrapper--fluid .form-field__textarea--prefix,form-field__input--wrapper--fluid form-field__textarea--prefix,form-field__input--wrapper--fluid .form-field__input--prefix,form-field__input--wrapper--fluid form-field__input--prefix{position:static!important;top:auto;right:auto;flex:0 0 auto;display:inline-flex;align-items:center;transform:none;margin-left:.25rem;padding-right:1rem;white-space:nowrap;pointer-events:none}.form-field__input--wrapper--fluid .form-field__input--suffix,.form-field__input--wrapper--fluid .form-field__textarea--prefix,.form-field__input--wrapper--fluid form-field__textarea--prefix,.form-field__input--wrapper--fluid .form-field__input--prefix,.form-field__input--wrapper--fluid form-field__input--prefix,.form-field__input--wrapper--fluid .form-field__input--suffix i,.form-field__input--wrapper--fluid .form-field__textarea--prefix i,.form-field__input--wrapper--fluid form-field__textarea--prefix i,.form-field__input--wrapper--fluid .form-field__input--prefix i,.form-field__input--wrapper--fluid form-field__input--prefix i,.form-field__input--wrapper--fluid .form-field__input--suffix .mat-icon,.form-field__input--wrapper--fluid .form-field__textarea--prefix .mat-icon,.form-field__input--wrapper--fluid form-field__textarea--prefix .mat-icon,.form-field__input--wrapper--fluid .form-field__input--prefix .mat-icon,.form-field__input--wrapper--fluid form-field__input--prefix .mat-icon,form-field__input--wrapper--fluid .form-field__input--suffix,form-field__input--wrapper--fluid .form-field__textarea--prefix,form-field__input--wrapper--fluid form-field__textarea--prefix,form-field__input--wrapper--fluid .form-field__input--prefix,form-field__input--wrapper--fluid form-field__input--prefix,form-field__input--wrapper--fluid .form-field__input--suffix i,form-field__input--wrapper--fluid .form-field__textarea--prefix i,form-field__input--wrapper--fluid form-field__textarea--prefix i,form-field__input--wrapper--fluid .form-field__input--prefix i,form-field__input--wrapper--fluid form-field__input--prefix i,form-field__input--wrapper--fluid .form-field__input--suffix .mat-icon,form-field__input--wrapper--fluid .form-field__textarea--prefix .mat-icon,form-field__input--wrapper--fluid form-field__textarea--prefix .mat-icon,form-field__input--wrapper--fluid .form-field__input--prefix .mat-icon,form-field__input--wrapper--fluid form-field__input--prefix .mat-icon{font-size:16px;font-size:1rem;width:auto;height:auto}.form-field__input--sizer,form-field__input--sizer{font-size:16px;font-size:1rem;position:absolute;top:0;left:0;height:0;padding:0 0 0 1rem;border:0;box-sizing:border-box;overflow:hidden;visibility:hidden;pointer-events:none;white-space:pre;line-height:1.5}.form-field__input--suffix,.form-field__textarea--prefix,form-field__textarea--prefix,.form-field__input--prefix,form-field__input--prefix,form-field__input--suffix{position:absolute!important;top:50%;right:1rem;color:var(--color-gray-300);transform:translateY(-50%)}.form-field__input--suffix,.form-field__textarea--prefix,form-field__textarea--prefix,.form-field__input--prefix,form-field__input--prefix,.form-field__input--suffix i,.form-field__textarea--prefix i,form-field__textarea--prefix i,.form-field__input--prefix i,form-field__input--prefix i,.form-field__input--suffix .mat-icon,.form-field__textarea--prefix .mat-icon,form-field__textarea--prefix .mat-icon,.form-field__input--prefix .mat-icon,form-field__input--prefix .mat-icon,form-field__input--suffix,form-field__input--suffix i,form-field__input--suffix .mat-icon{font-size:18px;font-size:1.125rem;width:1.125rem;height:1.125rem}.form-field__input--prefix,form-field__input--prefix{right:unset;left:1rem}.form-field__input--disabled,form-field__input--disabled{background-color:var(--color-gray-100);opacity:.5;pointer-events:none}.form-field__input--invalid,form-field__input--invalid{border-color:var(--color-error);color:var(--color-error)}.form-field__textarea,form-field__textarea{font-size:16px;font-size:1rem;display:block;width:100%;padding:1rem;border-radius:6px;border:1px solid var(--color-gray-300);color:var(--color-black);line-height:1.5}.form-field__textarea:focus,form-field__textarea:focus{border-color:var(--color-brand-dark)}.form-field__textarea--wrapper,form-field__textarea--wrapper{display:flex;position:relative;line-height:1}.form-field__textarea--suffix,form-field__textarea--suffix{position:absolute!important;top:50%;right:1rem;color:var(--color-gray-100);transform:translateY(-50%)}.form-field__textarea--suffix,.form-field__textarea--suffix i,.form-field__textarea--suffix .mat-icon,form-field__textarea--suffix,form-field__textarea--suffix i,form-field__textarea--suffix .mat-icon{font-size:18px;font-size:1.125rem;width:1.125rem;height:1.125rem}.form-field__textarea--prefix,form-field__textarea--prefix{right:unset;left:1rem}.form-field__textarea--disabled,form-field__textarea--disabled{background-color:var(--color-gray-100);opacity:.5;pointer-events:none}.form-field__range,form-field__range{font-size:16px;font-size:1rem;display:block;width:100%;padding:.5rem 1rem;color:var(--color-black);line-height:1.5;border:none}.form-field__range:focus-visible,form-field__range:focus-visible{outline:none}.form-field__range--wrapper,form-field__range--wrapper{display:grid;grid-template-columns:1fr auto 1fr;border-radius:.5rem;border:1px solid var(--color-gray-300);align-items:center;line-height:1;background-color:var(--color-white)}.form-field__range--wrapper:focus-within,form-field__range--wrapper:focus-within{border-color:var(--color-brand-dark)}.form-field__range--suffix,.form-field__range--prefix,form-field__range--prefix,form-field__range--suffix{position:absolute!important;top:50%;right:1rem;color:var(--color-gray-100);transform:translateY(-50%)}.form-field__range--suffix,.form-field__range--prefix,form-field__range--prefix,.form-field__range--suffix i,.form-field__range--prefix i,form-field__range--prefix i,.form-field__range--suffix .mat-icon,.form-field__range--prefix .mat-icon,form-field__range--prefix .mat-icon,form-field__range--suffix,form-field__range--suffix i,form-field__range--suffix .mat-icon{font-size:18px;font-size:1.125rem;width:1.125rem;height:1.125rem}.form-field__range--prefix,form-field__range--prefix{right:unset;left:1rem}.form-field__range--disabled,form-field__range--disabled{background-color:var(--color-gray-100);opacity:.5;pointer-events:none}.form-field__range--invalid,form-field__range--invalid{border-color:var(--color-error)!important;color:var(--color-error)!important}.form-field--invalid,.form-field--invalid .form-field__input,.form-field--invalid .form-field__textarea,.form-field--invalid .form-field__range,form-field--invalid,form-field--invalid .form-field__input,form-field--invalid .form-field__textarea,form-field--invalid .form-field__range{color:var(--color-error);border-color:var(--color-error)}.form-field--invalid,.form-field--invalid .form-field__range--wrapper,form-field--invalid,form-field--invalid .form-field__range--wrapper{border-color:var(--color-error)}.form-field__validation,form-field__validation{font-size:12px;font-size:.75rem;padding-top:.5rem;color:var(--color-error)}.form-field__validation--item,form-field__validation--item{padding-bottom:.6rem}.form-field__validation--item:last-of-type,form-field__validation--item:last-of-type{padding-bottom:0}.form-field__subscript--wrapper,form-field__subscript--wrapper{margin-top:1.2rem}.form-field .spinner,form-field .spinner{position:absolute;right:.25rem;top:1.85rem}.form-field .hint,form-field .hint{font-size:10px;text-align:right;margin-right:1.0625rem;transform:translateY(-1rem);margin-bottom:-1rem}.form .mat-mdc-form-field-appearance-standard .mat-mdc-form-field-flex,form .mat-mdc-form-field-appearance-standard .mat-mdc-form-field-flex{padding-top:0}.form .mat-mdc-form-field-infix,form .mat-mdc-form-field-infix{border-top:0}.form .mat-mdc-form-field .mat-mdc-form-field-flex,form .mat-mdc-form-field .mat-mdc-form-field-flex{padding-top:0}.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix{width:auto}.mat-mdc-text-field-wrapper{padding-bottom:0}:host::ng-deep .form-field{display:flex;margin:0}:host::ng-deep .mat-mdc-slide-toggle{margin-right:.96rem}:host::ng-deep .mat-mdc-slide-toggle .mdc-label{font-size:14px;font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
2243
+ ], viewQueries: [{ propertyName: "matCheckbox", first: true, predicate: MatCheckbox, descendants: true }, { propertyName: "matSlideToggle", first: true, predicate: MatSlideToggle, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <ng-container [ngSwitch]=\"type\">\n <mat-checkbox\n (change)=\"change($event)\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [id]=\"name\"\n [labelPosition]=\"labelPosition\"\n [ngClass]=\"{ 'indeterminate': indeterminate }\"\n *ngSwitchCase=\"'checkbox'\"\n >\n {{ text }}\n </mat-checkbox>\n\n <mat-slide-toggle\n (change)=\"change($event)\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [labelPosition]=\"labelPosition\"\n *ngSwitchCase=\"'toggle'\"\n >{{ text }}</mat-slide-toggle\n >\n </ng-container>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.form-field__subscript--wrapper,form-field__subscript--wrapper,.form-field--required .form-field__label:after,form-field--required .form-field__label:after{position:absolute;content:\"\"}.form-field--required .form-field__label:after,form-field--required .form-field__label:after{content:\"*\"!important;margin-left:.2rem;margin-top:2px;color:var(--color-error)}.form-field,form-field{margin-bottom:1rem;position:relative}.form-field__label,form-field__label{font-size:12px;font-size:.75rem;display:inline-block;margin-bottom:.25rem;color:var(--color-gray-500);cursor:pointer}.form-field__label .icon,form-field__label .icon{font-size:16px;font-size:1rem;display:inline;vertical-align:middle;margin-left:.375rem}.form-field__label-note,form-field__label-note{font-size:14px;font-size:.875rem;display:inline-block;margin-bottom:.25rem;color:var(--color-gray-400);cursor:pointer}.form-field__input,form-field__input{font-size:16px;font-size:1rem;display:block;width:100%;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--color-gray-300);color:var(--color-black);line-height:1.5}.form-field__input:focus,form-field__input:focus{border-color:var(--color-brand-dark)}.form-field__input:focus-visible,form-field__input:focus-visible{outline:none}.form-field__input--wrapper,form-field__input--wrapper{display:flex;position:relative;line-height:1}.form-field__input--wrapper--fluid,form-field__input--wrapper--fluid{width:-moz-fit-content;width:fit-content;max-width:100%;margin-left:auto;align-items:stretch;overflow:hidden;border:1px solid var(--color-gray-300);border-radius:6px;background-color:var(--color-white, #fff)}.form-field__input--wrapper--fluid:focus-within,form-field__input--wrapper--fluid:focus-within{border-color:var(--color-brand-dark)}.form-field__input--wrapper--fluid .form-field__input,form-field__input--wrapper--fluid .form-field__input{width:auto;min-width:0;flex:0 0 auto;box-sizing:border-box;border:0;border-radius:0;padding-right:0;text-align:right;background-color:transparent}.form-field__input--wrapper--fluid .form-field__input:focus,form-field__input--wrapper--fluid .form-field__input:focus{border-color:transparent}.form-field__input--wrapper--fluid .form-field__input--suffix,.form-field__input--wrapper--fluid .form-field__textarea--prefix,.form-field__input--wrapper--fluid form-field__textarea--prefix,.form-field__input--wrapper--fluid .form-field__input--prefix,.form-field__input--wrapper--fluid form-field__input--prefix,form-field__input--wrapper--fluid .form-field__input--suffix,form-field__input--wrapper--fluid .form-field__textarea--prefix,form-field__input--wrapper--fluid form-field__textarea--prefix,form-field__input--wrapper--fluid .form-field__input--prefix,form-field__input--wrapper--fluid form-field__input--prefix{position:static!important;top:auto;right:auto;flex:0 0 auto;display:inline-flex;align-items:center;transform:none;margin-left:.25rem;padding-right:1rem;white-space:nowrap;pointer-events:none}.form-field__input--wrapper--fluid .form-field__input--suffix,.form-field__input--wrapper--fluid .form-field__textarea--prefix,.form-field__input--wrapper--fluid form-field__textarea--prefix,.form-field__input--wrapper--fluid .form-field__input--prefix,.form-field__input--wrapper--fluid form-field__input--prefix,.form-field__input--wrapper--fluid .form-field__input--suffix i,.form-field__input--wrapper--fluid .form-field__textarea--prefix i,.form-field__input--wrapper--fluid form-field__textarea--prefix i,.form-field__input--wrapper--fluid .form-field__input--prefix i,.form-field__input--wrapper--fluid form-field__input--prefix i,.form-field__input--wrapper--fluid .form-field__input--suffix .mat-icon,.form-field__input--wrapper--fluid .form-field__textarea--prefix .mat-icon,.form-field__input--wrapper--fluid form-field__textarea--prefix .mat-icon,.form-field__input--wrapper--fluid .form-field__input--prefix .mat-icon,.form-field__input--wrapper--fluid form-field__input--prefix .mat-icon,form-field__input--wrapper--fluid .form-field__input--suffix,form-field__input--wrapper--fluid .form-field__textarea--prefix,form-field__input--wrapper--fluid form-field__textarea--prefix,form-field__input--wrapper--fluid .form-field__input--prefix,form-field__input--wrapper--fluid form-field__input--prefix,form-field__input--wrapper--fluid .form-field__input--suffix i,form-field__input--wrapper--fluid .form-field__textarea--prefix i,form-field__input--wrapper--fluid form-field__textarea--prefix i,form-field__input--wrapper--fluid .form-field__input--prefix i,form-field__input--wrapper--fluid form-field__input--prefix i,form-field__input--wrapper--fluid .form-field__input--suffix .mat-icon,form-field__input--wrapper--fluid .form-field__textarea--prefix .mat-icon,form-field__input--wrapper--fluid form-field__textarea--prefix .mat-icon,form-field__input--wrapper--fluid .form-field__input--prefix .mat-icon,form-field__input--wrapper--fluid form-field__input--prefix .mat-icon{font-size:16px;font-size:1rem;width:auto;height:auto}.form-field__input--sizer,form-field__input--sizer{font-size:16px;font-size:1rem;position:absolute;top:0;left:0;height:0;padding:0 0 0 1rem;border:0;box-sizing:border-box;overflow:hidden;visibility:hidden;pointer-events:none;white-space:pre;line-height:1.5}.form-field__input--suffix,.form-field__textarea--prefix,form-field__textarea--prefix,.form-field__input--prefix,form-field__input--prefix,form-field__input--suffix{position:absolute!important;top:50%;right:1rem;color:var(--color-gray-300);transform:translateY(-50%)}.form-field__input--suffix,.form-field__textarea--prefix,form-field__textarea--prefix,.form-field__input--prefix,form-field__input--prefix,.form-field__input--suffix i,.form-field__textarea--prefix i,form-field__textarea--prefix i,.form-field__input--prefix i,form-field__input--prefix i,.form-field__input--suffix .mat-icon,.form-field__textarea--prefix .mat-icon,form-field__textarea--prefix .mat-icon,.form-field__input--prefix .mat-icon,form-field__input--prefix .mat-icon,form-field__input--suffix,form-field__input--suffix i,form-field__input--suffix .mat-icon{font-size:18px;font-size:1.125rem;width:1.125rem;height:1.125rem}.form-field__input--prefix,form-field__input--prefix{right:unset;left:1rem}.form-field__input--disabled,form-field__input--disabled{background-color:var(--color-gray-100);opacity:.5;pointer-events:none}.form-field__input--invalid,form-field__input--invalid{border-color:var(--color-error);color:var(--color-error)}.form-field__textarea,form-field__textarea{font-size:16px;font-size:1rem;display:block;width:100%;padding:1rem;border-radius:6px;border:1px solid var(--color-gray-300);color:var(--color-black);line-height:1.5}.form-field__textarea:focus,form-field__textarea:focus{border-color:var(--color-brand-dark)}.form-field__textarea--wrapper,form-field__textarea--wrapper{display:flex;position:relative;line-height:1}.form-field__textarea--suffix,form-field__textarea--suffix{position:absolute!important;top:50%;right:1rem;color:var(--color-gray-100);transform:translateY(-50%)}.form-field__textarea--suffix,.form-field__textarea--suffix i,.form-field__textarea--suffix .mat-icon,form-field__textarea--suffix,form-field__textarea--suffix i,form-field__textarea--suffix .mat-icon{font-size:18px;font-size:1.125rem;width:1.125rem;height:1.125rem}.form-field__textarea--prefix,form-field__textarea--prefix{right:unset;left:1rem}.form-field__textarea--disabled,form-field__textarea--disabled{background-color:var(--color-gray-100);opacity:.5;pointer-events:none}.form-field__range,form-field__range{font-size:16px;font-size:1rem;display:block;width:100%;padding:.5rem 1rem;color:var(--color-black);line-height:1.5;border:none}.form-field__range:focus-visible,form-field__range:focus-visible{outline:none}.form-field__range--wrapper,form-field__range--wrapper{display:grid;grid-template-columns:1fr auto 1fr;border-radius:.5rem;border:1px solid var(--color-gray-300);align-items:center;line-height:1;background-color:var(--color-white)}.form-field__range--wrapper:focus-within,form-field__range--wrapper:focus-within{border-color:var(--color-brand-dark)}.form-field__range--suffix,.form-field__range--prefix,form-field__range--prefix,form-field__range--suffix{position:absolute!important;top:50%;right:1rem;color:var(--color-gray-100);transform:translateY(-50%)}.form-field__range--suffix,.form-field__range--prefix,form-field__range--prefix,.form-field__range--suffix i,.form-field__range--prefix i,form-field__range--prefix i,.form-field__range--suffix .mat-icon,.form-field__range--prefix .mat-icon,form-field__range--prefix .mat-icon,form-field__range--suffix,form-field__range--suffix i,form-field__range--suffix .mat-icon{font-size:18px;font-size:1.125rem;width:1.125rem;height:1.125rem}.form-field__range--prefix,form-field__range--prefix{right:unset;left:1rem}.form-field__range--disabled,form-field__range--disabled{background-color:var(--color-gray-100);opacity:.5;pointer-events:none}.form-field__range--invalid,form-field__range--invalid{border-color:var(--color-error)!important;color:var(--color-error)!important}.form-field--invalid,.form-field--invalid .form-field__input,.form-field--invalid .form-field__textarea,.form-field--invalid .form-field__range,form-field--invalid,form-field--invalid .form-field__input,form-field--invalid .form-field__textarea,form-field--invalid .form-field__range{color:var(--color-error);border-color:var(--color-error)}.form-field--invalid,.form-field--invalid .form-field__range--wrapper,form-field--invalid,form-field--invalid .form-field__range--wrapper{border-color:var(--color-error)}.form-field__validation,form-field__validation{font-size:12px;font-size:.75rem;padding-top:.5rem;color:var(--color-error)}.form-field__validation--item,form-field__validation--item{padding-bottom:.6rem}.form-field__validation--item:last-of-type,form-field__validation--item:last-of-type{padding-bottom:0}.form-field__subscript--wrapper,form-field__subscript--wrapper{margin-top:1.2rem}.form-field .spinner,form-field .spinner{position:absolute;right:.25rem;top:1.85rem}.form-field .hint,form-field .hint{font-size:10px;text-align:right;margin-right:1.0625rem;transform:translateY(-1rem);margin-bottom:-1rem}.form .mat-mdc-form-field-appearance-standard .mat-mdc-form-field-flex,form .mat-mdc-form-field-appearance-standard .mat-mdc-form-field-flex{padding-top:0}.form .mat-mdc-form-field-infix,form .mat-mdc-form-field-infix{border-top:0}.form .mat-mdc-form-field .mat-mdc-form-field-flex,form .mat-mdc-form-field .mat-mdc-form-field-flex{padding-top:0}.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix{width:auto}.mat-mdc-text-field-wrapper{padding-bottom:0}:host::ng-deep .form-field{display:flex;margin:0}:host::ng-deep .mat-mdc-slide-toggle{margin-right:.96rem}:host::ng-deep .mat-mdc-slide-toggle .mdc-label{font-size:14px;font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
2244
2244
  }
2245
2245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsCheckboxToggleComponent, decorators: [{
2246
2246
  type: Component,
@@ -2426,7 +2426,7 @@ class EcabsSelectV2Component extends EcabsElementBaseComponent {
2426
2426
  };
2427
2427
  }
2428
2428
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectV2Component, deps: [{ token: i3.NgControl, optional: true, self: true }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
2429
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectV2Component, selector: "ecabs-select-v2", inputs: { appearance: "appearance", appendTo: "appendTo", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", editableSearchTerm: "editableSearchTerm", searchable: "searchable", clearable: "clearable", multiple: "multiple", notFoundText: "notFoundText", hideSelected: "hideSelected", clearOnBackspace: "clearOnBackspace", clearSearchOnAdd: "clearSearchOnAdd", trackByFn: "trackByFn", minLength: "minLength", searchPlaceholder: "searchPlaceholder", typeahead: "typeahead", closeOnSelect: "closeOnSelect", clearAllText: "clearAllText", selectAllLabel: "selectAllLabel", otherLabel: "otherLabel", othersLabel: "othersLabel" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: NgSelectComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <ng-select class=\"form-field__select\"\r\n [appearance]=\"appearance\"\r\n [appendTo]=\"appendTo\"\r\n [labelForId]=\"name\"\r\n [bindLabel]=\"bindLabel || null\"\r\n [bindValue]=\"bindValue || null\"\r\n [searchable]=\"searchable\"\r\n [clearable]=\"clearable\"\r\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\r\n [groupBy]=\"groupByKey\"\r\n [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\"\r\n [items]=\"itemsList\"\r\n [multiple]=\"multiple\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onBlur()\"\r\n [hideSelected]=\"hideSelected\"\r\n [trackByFn]=\"trackByFn\"\r\n [minTermLength]=\"minLength\"\r\n [typeToSearchText]=\"searchPlaceholder\"\r\n [typeahead]=\"typeahead\"\r\n [loading]=\"loading\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [editableSearchTerm]=\"editableSearchTerm\"\r\n (open)=\"this.isOpen = true\"\r\n (close)=\"this.isOpen = false\"\r\n (change)=\"changed($event)\"\r\n [notFoundText]=\"notFoundText\"\r\n [clearAllText]=\"clearAllText\"\r\n [readonly]=\"this.disabled\">\r\n\r\n <ng-template ng-loadingspinner-tmp>\r\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"!multiple\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-label=\"label\">\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ label }}\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!!bindValue && !!bindLabel\">\r\n <ng-template ng-multi-label-tmp let-items=\"items\">\r\n <!--#Custom display of first selected item and (+1 more) pattern -->\r\n <ng-container *ngIf=\"!isOpen\">\r\n <div *ngFor=\"let item of items | slice:0:1\"\r\n class=\"inline-flex items-center\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <ecabs-select-icon [option]=\"option\"></ecabs-select-icon>\r\n <span>\r\n {{ option.label }} <span *ngIf=\"items.length > 1\">\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox *ngIf=\"multiple\"\r\n [ngModel]=\"item$.selected\"\r\n [name]=\"index\">\r\n </ecabs-checkbox>\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item$?.['label'] }}\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"multiple\">\r\n <!--#Add selectAll and individual checkboxes for multiple-enabled list -->\r\n <ng-template ng-optgroup-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"selectAllLabel\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n</ecabs-element-wrapper>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4$3.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i4$3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4$3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i4$3.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i4$3.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { kind: "component", type: EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: EcabsCheckboxToggleComponent, selector: "ecabs-checkbox", inputs: ["type", "text", "label", "labelPosition", "indeterminate", "checked"], outputs: ["click", "changed"] }, { kind: "component", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: ["option"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] });
2429
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectV2Component, selector: "ecabs-select-v2", inputs: { appearance: "appearance", appendTo: "appendTo", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", editableSearchTerm: "editableSearchTerm", searchable: "searchable", clearable: "clearable", multiple: "multiple", notFoundText: "notFoundText", hideSelected: "hideSelected", clearOnBackspace: "clearOnBackspace", clearSearchOnAdd: "clearSearchOnAdd", trackByFn: "trackByFn", minLength: "minLength", searchPlaceholder: "searchPlaceholder", typeahead: "typeahead", closeOnSelect: "closeOnSelect", clearAllText: "clearAllText", selectAllLabel: "selectAllLabel", otherLabel: "otherLabel", othersLabel: "othersLabel" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: NgSelectComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <ng-select class=\"form-field__select\"\r\n [appearance]=\"appearance\"\r\n [appendTo]=\"appendTo\"\r\n [labelForId]=\"name\"\r\n [bindLabel]=\"bindLabel || null\"\r\n [bindValue]=\"bindValue || null\"\r\n [searchable]=\"searchable\"\r\n [clearable]=\"clearable\"\r\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\r\n [groupBy]=\"groupByKey\"\r\n [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\"\r\n [items]=\"itemsList\"\r\n [multiple]=\"multiple\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onBlur()\"\r\n [hideSelected]=\"hideSelected\"\r\n [trackByFn]=\"trackByFn\"\r\n [minTermLength]=\"minLength\"\r\n [typeToSearchText]=\"searchPlaceholder\"\r\n [typeahead]=\"typeahead\"\r\n [loading]=\"loading\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [editableSearchTerm]=\"editableSearchTerm\"\r\n (open)=\"this.isOpen = true\"\r\n (close)=\"this.isOpen = false\"\r\n (change)=\"changed($event)\"\r\n [notFoundText]=\"notFoundText\"\r\n [clearAllText]=\"clearAllText\"\r\n [readonly]=\"this.disabled\">\r\n\r\n <ng-template ng-loadingspinner-tmp>\r\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"!multiple\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-label=\"label\">\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ label }}\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!!bindValue && !!bindLabel\">\r\n <ng-template ng-multi-label-tmp let-items=\"items\">\r\n <!--#Custom display of first selected item and (+1 more) pattern -->\r\n <ng-container *ngIf=\"!isOpen\">\r\n <div *ngFor=\"let item of items | slice:0:1\"\r\n class=\"inline-flex items-center\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <ecabs-select-icon [option]=\"option\"></ecabs-select-icon>\r\n <span>\r\n {{ option.label }} <span *ngIf=\"items.length > 1\">\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox *ngIf=\"multiple\"\r\n [ngModel]=\"item$.selected\"\r\n [name]=\"index\">\r\n </ecabs-checkbox>\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item$?.['label'] }}\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"multiple\">\r\n <!--#Add selectAll and individual checkboxes for multiple-enabled list -->\r\n <ng-template ng-optgroup-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"selectAllLabel\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n</ecabs-element-wrapper>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4$4.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i4$4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4$4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i4$4.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i4$4.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { kind: "component", type: EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: EcabsCheckboxToggleComponent, selector: "ecabs-checkbox", inputs: ["type", "text", "label", "labelPosition", "indeterminate", "checked"], outputs: ["click", "changed"] }, { kind: "component", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: ["option"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] });
2430
2430
  }
2431
2431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectV2Component, decorators: [{
2432
2432
  type: Component,
@@ -2900,13 +2900,13 @@ class EcabsPickerHeaderComponent {
2900
2900
  this.calendar.currentView =
2901
2901
  this.calendar.currentView === 'month' ? 'multi-year' : 'month';
2902
2902
  }
2903
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPickerHeaderComponent, deps: [{ token: i6.MatCalendar }, { token: i4$1.DateAdapter }, { token: i0.ChangeDetectorRef }, { token: EcabsDatePickerHeaderService }, { token: UnsubscribeService }], target: i0.ɵɵFactoryTarget.Component });
2904
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPickerHeaderComponent, selector: "ecabs-picker-header", providers: [UnsubscribeService], ngImport: i0, template: "<div class=\"header\">\n <button mat-icon-button (click)=\"previousClicked()\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-flat-button (click)=\"currentPeriodClicked()\">\n <span >{{ periodLabel }}</span>\n </button>\n\n <button mat-icon-button (click)=\"nextClicked()\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem}.select-date-label{color:var(--color-brand-dark)}button{background-color:inherit}\n"], dependencies: [{ kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2903
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPickerHeaderComponent, deps: [{ token: i6.MatCalendar }, { token: i4$2.DateAdapter }, { token: i0.ChangeDetectorRef }, { token: EcabsDatePickerHeaderService }, { token: UnsubscribeService }], target: i0.ɵɵFactoryTarget.Component });
2904
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPickerHeaderComponent, selector: "ecabs-picker-header", providers: [UnsubscribeService], ngImport: i0, template: "<div class=\"header\">\n <button mat-icon-button (click)=\"previousClicked()\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-flat-button (click)=\"currentPeriodClicked()\">\n <span >{{ periodLabel }}</span>\n </button>\n\n <button mat-icon-button (click)=\"nextClicked()\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem}.select-date-label{color:var(--color-brand-dark)}button{background-color:inherit}\n"], dependencies: [{ kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2905
2905
  }
2906
2906
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPickerHeaderComponent, decorators: [{
2907
2907
  type: Component,
2908
2908
  args: [{ selector: 'ecabs-picker-header', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UnsubscribeService], template: "<div class=\"header\">\n <button mat-icon-button (click)=\"previousClicked()\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-flat-button (click)=\"currentPeriodClicked()\">\n <span >{{ periodLabel }}</span>\n </button>\n\n <button mat-icon-button (click)=\"nextClicked()\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem}.select-date-label{color:var(--color-brand-dark)}button{background-color:inherit}\n"] }]
2909
- }], ctorParameters: function () { return [{ type: i6.MatCalendar }, { type: i4$1.DateAdapter }, { type: i0.ChangeDetectorRef }, { type: EcabsDatePickerHeaderService }, { type: UnsubscribeService }]; } });
2909
+ }], ctorParameters: function () { return [{ type: i6.MatCalendar }, { type: i4$2.DateAdapter }, { type: i0.ChangeDetectorRef }, { type: EcabsDatePickerHeaderService }, { type: UnsubscribeService }]; } });
2910
2910
 
2911
2911
  class EcabsDatePickerHeaderComponent {
2912
2912
  ecabsDatePickerHeaderService;
@@ -3060,7 +3060,7 @@ class EcabsDatePickerComponent extends EcabsElementBaseComponent {
3060
3060
  multi: true,
3061
3061
  },
3062
3062
  UnsubscribeService,
3063
- ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <input\n class=\"form-field__input date-input\"\n [id]=\"name\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matDatepicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [matDatepickerFilter]=\"filterDateRange\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker-toggle\n matSuffix [for]=\"picker\"\n class=\"text-gray-500\"\n >\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n >\n <mat-datepicker-actions>\n <ecabs-date-picker-actions\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n [disabledApplyButton]=\"disabledApplyButton\"\n >\n </ecabs-date-picker-actions>\n </mat-datepicker-actions>\n </mat-datepicker>\n </div>\n</ecabs-element-wrapper>\n", styles: [""], dependencies: [{ kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }] });
3063
+ ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <input\n class=\"form-field__input date-input\"\n [id]=\"name\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matDatepicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [matDatepickerFilter]=\"filterDateRange\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker-toggle\n matSuffix [for]=\"picker\"\n class=\"text-gray-500\"\n >\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n >\n <mat-datepicker-actions>\n <ecabs-date-picker-actions\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n [disabledApplyButton]=\"disabledApplyButton\"\n >\n </ecabs-date-picker-actions>\n </mat-datepicker-actions>\n </mat-datepicker>\n </div>\n</ecabs-element-wrapper>\n", styles: [""], dependencies: [{ kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }] });
3064
3064
  }
3065
3065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDatePickerComponent, decorators: [{
3066
3066
  type: Component,
@@ -3546,7 +3546,7 @@ class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
3546
3546
  },
3547
3547
  DecimalPipe,
3548
3548
  UnsubscribeService,
3549
- ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }, { propertyName: "matCustomPicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matDatepicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\n <mat-datepicker-actions>\n <div class=\"actions\">\n <div class=\"time--inputs\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hours\"\n [value]=\"_hours\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hours\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutes\"\n [(ngModel)]=\"minutes\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n\n <ng-container *ngIf=\"!hideSeconds\">\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"seconds\"\n [(ngModel)]=\"seconds\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </ng-container>\n </div>\n\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input #matCustomInput\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"dd/MM/yyyy, HH:mm\"\n [disabled]=\"disabled\"\n ecabsMaskDate\n [isDateTimeMask]=\"true\"\n [considerSeconds]=\"!hideSeconds\"\n (blur)=\"onTouch()\"\n />\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon\n class=\"text-gray-500\">\n calendar_today\n </mat-icon>\n </mat-datepicker-toggle>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:before,.time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0;margin:0}.time--inputs{position:relative;display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:2.4rem;margin-bottom:2.4rem}.time--inputs:before,.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300)}.time--inputs:before{top:-1.6rem}.time--inputs:after{bottom:-1.6rem}.font-bold{font-weight:700}.actions{display:flex;flex-direction:column;width:100%!important;row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: ["isDateTimeMask", "considerSeconds"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] });
3549
+ ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }, { propertyName: "matCustomPicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matDatepicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\n <mat-datepicker-actions>\n <div class=\"actions\">\n <div class=\"time--inputs\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hours\"\n [value]=\"_hours\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hours\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutes\"\n [(ngModel)]=\"minutes\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n\n <ng-container *ngIf=\"!hideSeconds\">\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"seconds\"\n [(ngModel)]=\"seconds\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </ng-container>\n </div>\n\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input #matCustomInput\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"dd/MM/yyyy, HH:mm\"\n [disabled]=\"disabled\"\n ecabsMaskDate\n [isDateTimeMask]=\"true\"\n [considerSeconds]=\"!hideSeconds\"\n (blur)=\"onTouch()\"\n />\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon\n class=\"text-gray-500\">\n calendar_today\n </mat-icon>\n </mat-datepicker-toggle>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:before,.time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0;margin:0}.time--inputs{position:relative;display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:2.4rem;margin-bottom:2.4rem}.time--inputs:before,.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300)}.time--inputs:before{top:-1.6rem}.time--inputs:after{bottom:-1.6rem}.font-bold{font-weight:700}.actions{display:flex;flex-direction:column;width:100%!important;row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: ["isDateTimeMask", "considerSeconds"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] });
3550
3550
  }
3551
3551
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimePickerComponent, decorators: [{
3552
3552
  type: Component,
@@ -3882,7 +3882,7 @@ class EcabsDateRangePickerComponent extends EcabsElementBaseComponent {
3882
3882
  multi: true,
3883
3883
  },
3884
3884
  UnsubscribeService,
3885
- ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <mat-date-range-input \n [rangePicker]=\"picker\" \n [min]=\"minDate\"\n [max]=\"maxDate\" \n (blur)=\"onTouch()\">\n <input matStartDate class=\"form-field__input\" [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\" [value]=\"dateFrom\" [(ngModel)]=\"dateFrom\" />\n <input matEndDate class=\"form-field__input\" [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\" [value]=\"dateTo\" [(ngModel)]=\"dateTo\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon class=\"text-gray-500\">calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\">\n <mat-datepicker-actions>\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n [isDateRange]=\"true\"\n [disabledApplyButton]=\"disabledApplyButton\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </mat-datepicker-actions>\n </mat-date-range-picker>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.header{display:flex;align-items:center;padding:.5em}.datepicker-ui__toggle.mat-mdc-icon-button.mat-mdc-button-base,.mat-mdc-icon-button.mat-mdc-button-base.mat-datepicker-toggle{padding:0;width:2.5rem;height:2.5rem;line-height:2}.header-label{flex:1;height:1em;font-weight:500;text-align:center}.select-date-label{color:var(--color-brand-dark);padding-top:1.6rem;padding-left:1.6rem}.mat-calendar-table .mat-calendar-body tr:first-child[aria-hidden=true]{display:none}.mat-calendar-body-label{visibility:hidden}.mat-calendar-body-cell-content{border-radius:.25rem!important}.mat-calendar-body-active .mat-calendar-body-today{color:var(--color-brand-light)!important;background-color:var(--color-brand-light2)!important}.mat-calendar{align-self:center}.mat-calendar .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--color-brand-light2);color:var(--color-black)}.mat-calendar .mat-calendar-body-cell.mat-calendar-body-active .mat-calendar-body-cell-content.mat-calendar-body-selected,.mat-calendar .mat-calendar-body-cell.mat-calendar-body-active:hover .mat-calendar-body-cell-content.mat-calendar-body-selected{background-color:var(--color-brand-light)!important;color:var(--color-white)!important}.mat-calendar .mat-calendar-body-selected{background-color:var(--color-brand-light);color:var(--color-white)!important}.mat-calendar .mat-calendar-body-selected .mat-calendar-body-today{color:var(--color-white)!important}.mat-calendar .mat-calendar-table-header,.mat-calendar .mat-calendar-body-label{color:var(--color-gray-500)}.mat-calendar .mat-calendar-body-cell>.mat-calendar-body-today{opacity:1}.mat-calendar .mat-calendar-body-cell-content,.mat-calendar .mat-date-range-input-separator{color:var(--color-black)}.mat-calendar .mat-calendar-content{padding:0 1.6rem}.mat-calendar .mat-calendar-table-header th{font-size:16px;font-size:1rem}.mat-calendar .mat-calendar-table-header-divider:after{display:none}.mat-calendar .mat-calendar-body{font-size:16px;font-size:1rem}.mat-calendar .mat-calendar-body-in-range:before{background-color:var(--color-brand-light2)}.mat-calendar .mat-calendar-body-in-range .mat-calendar-body-cell-content{color:var(--color-black)!important}.mat-calendar .mat-calendar-body-range-start .mat-calendar-body-cell-content,.mat-calendar .mat-calendar-body-range-end .mat-calendar-body-cell-content{color:var(--color-white)!important}.mat-datepicker-popup .mat-datepicker-content{color:var(--color-black);box-shadow:0 0 25px #0003}.mat-datepicker-popup .mat-datepicker-actions{display:unset;margin-top:1rem;padding:0 1.6rem 1.6rem}.mat-datepicker-popup .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:unset}.mat-datepicker-popup .mat-datepicker-actions button.mat-button-base{min-width:100%}.mat-datepicker-popup .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--color-gray-300)}.ecabs-date-range-picker-v2 .mat-calendar-content{padding:0 1.6rem 1.6rem}ecabs-date-range-picker-v2 .mat-datepicker-input{text-align:center}ecabs-date-range-picker-v2 input{border:none;box-shadow:none}ecabs-date-range-picker-v2 input:focus{outline:none;box-shadow:none}.datepicker-ui__toggle,.mat-datepicker-toggle{position:absolute!important;right:0;line-height:1.25;padding:0}.datepicker-ui__toggle mat-icon,.mat-datepicker-toggle mat-icon{color:var(--color-gray-500)}ecabs-date-picker .dateTimeWrapper{position:relative;display:flex;width:100%}ecabs-date-picker .dateTimeWrapper .datePart{flex:2}ecabs-date-picker .dateTimeWrapper .timePart{flex:1;padding-left:10px;vertical-align:top;max-width:10rem}ecabs-date-picker .dateTimeWrapper .timePart ecabs-timepicker .timeInputWrapper{display:block}ecabs-date-picker .dateTimeWrapper .timePart ecabs-timepicker{width:100%}ecabs-date-picker .dateTimeWrapper .timePart ecabs-timepicker .inputWrapper{display:block}ecabs-date-picker .dateTimeWrapper .dateInputWrapper{position:relative}ecabs-date-picker .dateTimeWrapper input{min-height:42px;width:100%;display:block;box-sizing:border-box;font-size:14px;font-weight:500;padding-left:10px;border-radius:4px;border:1px solid rgb(107,109,115);outline:none;transition:all .3s ease-in-out}ecabs-date-picker .dateTimeWrapper input:disabled{border-bottom-width:1px;background-color:var(--color-white-opacity-05)}ecabs-date-picker .dateTimeWrapper input[type=date]::-webkit-calendar-picker-indicator,ecabs-date-picker .dateTimeWrapper input[type=date]::-webkit-inner-spin-button{display:none}ecabs-date-picker .dateTimeWrapper input[type=date]::-webkit-clear-button{display:none}ecabs-date-picker .dateTimeWrapper .calendar-icon{float:right;margin-top:-38px;padding:5px 10px 5px 5px;display:block;font-size:13px;line-height:20px;color:var(--color-gray-500);position:relative;width:40px;height:30px;cursor:pointer;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjQuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OCA0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDggNDg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojNkI2RDczO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTksNDRjLTAuOCwwLTEuNS0wLjMtMi4xLTAuOUM2LjMsNDIuNSw2LDQxLjgsNiw0MVYxMGMwLTAuOCwwLjMtMS41LDAuOS0yLjFTOC4yLDcsOSw3aDMuMlY0aDMuMnYzaDE3VjRoMy4ydjMKCUgzOWMwLjgsMCwxLjUsMC4zLDIuMSwwLjlDNDEuNyw4LjUsNDIsOS4yLDQyLDEwdjMxYzAsMC44LTAuMywxLjUtMC45LDIuMUM0MC41LDQzLjcsMzkuOCw0NCwzOSw0NEg5eiBNOSw0MWgzMGwwLDBsMCwwVjE5LjVIOVY0MQoJTDksNDFMOSw0MXogTTksMTYuNWgzMFYxMGwwLDBsMCwwSDlsMCwwbDAsMFYxNi41eiBNOSwxNi41VjEwbDAsMGwwLDBsMCwwbDAsMFYxNi41eiIvPgo8L3N2Zz4K);background-position:center center;background-repeat:no-repeat;background-size:1.375rem}ecabs-date-picker .dateTimeWrapper .calendar-icon.disabled{cursor:not-allowed}ecabs-date-picker .ecabs-element-wrapper.focused label{color:#376bfb}ecabs-date-picker .ecabs-element-wrapper.focused input{border-bottom-width:2px;border-bottom-color:#376bfb}ecabs-date-picker .ecabs-element-wrapper.validationError label{color:#ff4c4c}ecabs-date-picker .ecabs-element-wrapper.validationError input{border-bottom-color:#ff4c4c;border-bottom-width:2px}.ng-mydp .myDpSelector{border:0;padding:0;box-shadow:0 4px 6px #162a4c14,0 2px 16px #162a4c0f,0 8px 12px #162a4c0a;border-radius:0 0 4px 4px;background:#fff}.ng-mydp .myDpSelector:focus{box-shadow:0 4px 6px #162a4c14,0 2px 16px #162a4c0f,0 8px 12px #162a4c0a}.ng-mydp .myDpSelector .myDpWeekDayTitle{background-color:#fff;font-weight:500;font-size:11px;color:#162a4cb3}.ng-mydp .myDpSelector .myDpNextBtn{margin-left:auto;margin-right:16px}.ng-mydp .myDpSelector .myDpNextBtn .myDpIconRightArrow{line-height:26px;height:25px}.ng-mydp .myDpSelector .myDpNextBtn .myDpIconRightArrow:before{color:#376bfb;font-size:13px}.ng-mydp .myDpSelector .myDpPrevBtn{margin-left:16px}.ng-mydp .myDpSelector .myDpPrevBtn .myDpIconLeftArrow{line-height:26px;height:25px}.ng-mydp .myDpSelector .myDpPrevBtn .myDpIconLeftArrow:before{color:#376bfb;font-size:13px}.ng-mydp .myDpSelector .myDpMonthYearSelBar{height:52px;padding-top:10px;border:0}.ng-mydp .myDpSelector .myDpMonthYearText button{font-weight:500;font-size:13px;line-height:20px;color:#376bfb}.ng-mydp .myDpSelector .myDpMonthYearText .myDpMonthBtn{padding-right:7px;position:relative;margin-right:15px}.ng-mydp .myDpSelector .myDpMonthYearText .myDpMonthBtn:after{position:absolute;content:\"\";height:14px;width:1px;right:-7px;top:6px;background:#162a4c80}.ng-mydp .myDpSelector .myDpMonthYearText .myDpYearBtn{padding-left:6px}.ng-mydp .myDpSelector .myDpCalTable{height:calc(100% - 54px);width:calc(100% - 20px);margin:0 10px}.ng-mydp .myDpSelector table.myDpCalTable td .myDpDayValue{border-radius:4px;background:#f0f2f5;display:inline-block;box-sizing:border-box;width:32px;height:28px;font-size:13px;line-height:28px;text-align:center;color:#162a4ce6}.ng-mydp .myDpSelector table.myDpCalTable td .myDpDayValue.myDpMarkCurrDay{border-bottom:0;color:#376bfb}.ng-mydp .myDpSelector table.myDpCalTable td.myDpSelectedDay .myDpDayValue{color:#fff!important;background:#6ab72a!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDisabled{background:unset}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDisabled .myDpDayValue{background:unset!important;color:#162a4c80;cursor:not-allowed}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDisabled .myDpDayValue:hover{background:unset!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpRangeColor{background-color:#fff}.ng-mydp .myDpSelector table.myDpCalTable td.myDpRangeColor .myDpDayValue{background:#bee39d!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpRangeColor.myDpSelectedDay .myDpDayValue{color:#fff!important;background:#6ab72a!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDaycell:focus{box-shadow:unset;outline:unset}.ng-mydp .myDpSelector table.myDpCalTable td.myDpPrevMonth .myDpDayValue,.ng-mydp .myDpSelector table.myDpCalTable td.myDpNextMonth .myDpDayValue{background:#f6f7f9;color:#162a4c80}.ng-mydp .myDpSelector table.myDpCalTable td .myDpDimDay{opacity:1}.ng-mydp .myDpSelector table.myDpCalTable .myDpTableSingleDay:hover{background-color:#fff}.ng-mydp .myDpSelector table.myDpCalTable .myDpTableSingleDay:hover .myDpDayValue{background:#bee39d;color:#162a4ce6}.ng-mydp .myDpSelector table.myDpCalTable .myDpSelectedDay,.ng-mydp .myDpSelector table.myDpCalTable .myDpSelectedMonth,.ng-mydp .myDpSelector table.myDpCalTable .myDpSelectedYear{background-color:#fff;border-radius:0}.ng-mydp .myDpSelector .myDpMonthTable{height:128px;width:calc(100% - 20px);margin:0 10px}.ng-mydp .myDpSelector .myDpMonthTable td .myDpMonthValue{display:inline-block;height:28px;width:80px;background:#f0f2f5;vertical-align:middle;text-align:center;line-height:28px;font-weight:400;font-size:13px;color:#162a4ce6;border-radius:4px}.ng-mydp .myDpSelector .myDpMonthTable td .myDpMonthValue.myDpMarkCurrMonth{border:0;color:#376bfb}.ng-mydp .myDpSelector .myDpMonthTable td .myDpMonthValue:hover{background:#bee39d}.ng-mydp .myDpSelector .myDpMonthTable td.myDpDisabled{background:unset}.ng-mydp .myDpSelector .myDpMonthTable td.myDpDisabled .myDpMonthValue{background:unset!important;color:#162a4c80!important;cursor:not-allowed}.ng-mydp .myDpSelector .myDpMonthTable td.myDpSelectedMonth{background-color:#fff}.ng-mydp .myDpSelector .myDpMonthTable td.myDpSelectedMonth .myDpMonthValue{background:#6ab72a!important;color:#fff!important}.ng-mydp .myDpSelector .myDpMonthTable td.myDpTableSingleMonth:hover{background-color:#fff}.ng-mydp .myDpSelector .myDpYearTable{height:160px;width:calc(100% - 20px);margin:0 10px}.ng-mydp .myDpSelector .myDpYearTable td .myDpYearValue{display:inline-block;height:28px;width:46px;background:#f0f2f5;vertical-align:middle;text-align:center;line-height:28px;font-weight:400;font-size:13px;color:#162a4ce6;border-radius:4px}.ng-mydp .myDpSelector .myDpYearTable td .myDpYearValue.myDpMarkCurrYear{border:0;color:#376bfb}.ng-mydp .myDpSelector .myDpYearTable td .myDpYearValue:hover{background:#bee39d}.ng-mydp .myDpSelector .myDpYearTable td.myDpDisabled{background:unset}.ng-mydp .myDpSelector .myDpYearTable td.myDpDisabled .myDpYearValue{background:unset!important;color:#162a4c80!important;cursor:not-allowed}.ng-mydp .myDpSelector .myDpYearTable td.myDpSelectedYear{background-color:#fff}.ng-mydp .myDpSelector .myDpYearTable td.myDpSelectedYear .myDpYearValue{background:#6ab72a!important;color:#fff!important}.ng-mydp .myDpSelector .myDpYearTable td.myDpTableSingleYear:hover{background-color:#fff}.ng-mydp .myDpSelectorArrow{height:272px!important;width:268px!important;margin-top:-12px}.ng-mydp .myDpSelectorArrow:after{display:none}.ng-mydp .myDpSelectorArrow:before{display:none}:root{--mat-standard-button-toggle-shape: .5rem;--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.mat-date-range-input{display:block;width:100%;padding:.5rem 1rem;border-radius:.25rem;border:1px solid var(--color-gray-300);color:var(--color-black);line-height:1.5}:host ::ng-deep .mat-mdc-icon-button{max-width:2.5rem;max-height:2.5rem}\n"], dependencies: [{ kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }] });
3885
+ ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <mat-date-range-input \n [rangePicker]=\"picker\" \n [min]=\"minDate\"\n [max]=\"maxDate\" \n (blur)=\"onTouch()\">\n <input matStartDate class=\"form-field__input\" [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\" [value]=\"dateFrom\" [(ngModel)]=\"dateFrom\" />\n <input matEndDate class=\"form-field__input\" [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\" [value]=\"dateTo\" [(ngModel)]=\"dateTo\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon class=\"text-gray-500\">calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\">\n <mat-datepicker-actions>\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n [isDateRange]=\"true\"\n [disabledApplyButton]=\"disabledApplyButton\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </mat-datepicker-actions>\n </mat-date-range-picker>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.header{display:flex;align-items:center;padding:.5em}.datepicker-ui__toggle.mat-mdc-icon-button.mat-mdc-button-base,.mat-mdc-icon-button.mat-mdc-button-base.mat-datepicker-toggle{padding:0;width:2.5rem;height:2.5rem;line-height:2}.header-label{flex:1;height:1em;font-weight:500;text-align:center}.select-date-label{color:var(--color-brand-dark);padding-top:1.6rem;padding-left:1.6rem}.mat-calendar-table .mat-calendar-body tr:first-child[aria-hidden=true]{display:none}.mat-calendar-body-label{visibility:hidden}.mat-calendar-body-cell-content{border-radius:.25rem!important}.mat-calendar-body-active .mat-calendar-body-today{color:var(--color-brand-light)!important;background-color:var(--color-brand-light2)!important}.mat-calendar{align-self:center}.mat-calendar .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--color-brand-light2);color:var(--color-black)}.mat-calendar .mat-calendar-body-cell.mat-calendar-body-active .mat-calendar-body-cell-content.mat-calendar-body-selected,.mat-calendar .mat-calendar-body-cell.mat-calendar-body-active:hover .mat-calendar-body-cell-content.mat-calendar-body-selected{background-color:var(--color-brand-light)!important;color:var(--color-white)!important}.mat-calendar .mat-calendar-body-selected{background-color:var(--color-brand-light);color:var(--color-white)!important}.mat-calendar .mat-calendar-body-selected .mat-calendar-body-today{color:var(--color-white)!important}.mat-calendar .mat-calendar-table-header,.mat-calendar .mat-calendar-body-label{color:var(--color-gray-500)}.mat-calendar .mat-calendar-body-cell>.mat-calendar-body-today{opacity:1}.mat-calendar .mat-calendar-body-cell-content,.mat-calendar .mat-date-range-input-separator{color:var(--color-black)}.mat-calendar .mat-calendar-content{padding:0 1.6rem}.mat-calendar .mat-calendar-table-header th{font-size:16px;font-size:1rem}.mat-calendar .mat-calendar-table-header-divider:after{display:none}.mat-calendar .mat-calendar-body{font-size:16px;font-size:1rem}.mat-calendar .mat-calendar-body-in-range:before{background-color:var(--color-brand-light2)}.mat-calendar .mat-calendar-body-in-range .mat-calendar-body-cell-content{color:var(--color-black)!important}.mat-calendar .mat-calendar-body-range-start .mat-calendar-body-cell-content,.mat-calendar .mat-calendar-body-range-end .mat-calendar-body-cell-content{color:var(--color-white)!important}.mat-datepicker-popup .mat-datepicker-content{color:var(--color-black);box-shadow:0 0 25px #0003}.mat-datepicker-popup .mat-datepicker-actions{display:unset;margin-top:1rem;padding:0 1.6rem 1.6rem}.mat-datepicker-popup .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:unset}.mat-datepicker-popup .mat-datepicker-actions button.mat-button-base{min-width:100%}.mat-datepicker-popup .mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--color-gray-300)}.ecabs-date-range-picker-v2 .mat-calendar-content{padding:0 1.6rem 1.6rem}ecabs-date-range-picker-v2 .mat-datepicker-input{text-align:center}ecabs-date-range-picker-v2 input{border:none;box-shadow:none}ecabs-date-range-picker-v2 input:focus{outline:none;box-shadow:none}.datepicker-ui__toggle,.mat-datepicker-toggle{position:absolute!important;right:0;line-height:1.25;padding:0}.datepicker-ui__toggle mat-icon,.mat-datepicker-toggle mat-icon{color:var(--color-gray-500)}ecabs-date-picker .dateTimeWrapper{position:relative;display:flex;width:100%}ecabs-date-picker .dateTimeWrapper .datePart{flex:2}ecabs-date-picker .dateTimeWrapper .timePart{flex:1;padding-left:10px;vertical-align:top;max-width:10rem}ecabs-date-picker .dateTimeWrapper .timePart ecabs-timepicker .timeInputWrapper{display:block}ecabs-date-picker .dateTimeWrapper .timePart ecabs-timepicker{width:100%}ecabs-date-picker .dateTimeWrapper .timePart ecabs-timepicker .inputWrapper{display:block}ecabs-date-picker .dateTimeWrapper .dateInputWrapper{position:relative}ecabs-date-picker .dateTimeWrapper input{min-height:42px;width:100%;display:block;box-sizing:border-box;font-size:14px;font-weight:500;padding-left:10px;border-radius:4px;border:1px solid rgb(107,109,115);outline:none;transition:all .3s ease-in-out}ecabs-date-picker .dateTimeWrapper input:disabled{border-bottom-width:1px;background-color:var(--color-white-opacity-05)}ecabs-date-picker .dateTimeWrapper input[type=date]::-webkit-calendar-picker-indicator,ecabs-date-picker .dateTimeWrapper input[type=date]::-webkit-inner-spin-button{display:none}ecabs-date-picker .dateTimeWrapper input[type=date]::-webkit-clear-button{display:none}ecabs-date-picker .dateTimeWrapper .calendar-icon{float:right;margin-top:-38px;padding:5px 10px 5px 5px;display:block;font-size:13px;line-height:20px;color:var(--color-gray-500);position:relative;width:40px;height:30px;cursor:pointer;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjQuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OCA0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDggNDg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojNkI2RDczO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTksNDRjLTAuOCwwLTEuNS0wLjMtMi4xLTAuOUM2LjMsNDIuNSw2LDQxLjgsNiw0MVYxMGMwLTAuOCwwLjMtMS41LDAuOS0yLjFTOC4yLDcsOSw3aDMuMlY0aDMuMnYzaDE3VjRoMy4ydjMKCUgzOWMwLjgsMCwxLjUsMC4zLDIuMSwwLjlDNDEuNyw4LjUsNDIsOS4yLDQyLDEwdjMxYzAsMC44LTAuMywxLjUtMC45LDIuMUM0MC41LDQzLjcsMzkuOCw0NCwzOSw0NEg5eiBNOSw0MWgzMGwwLDBsMCwwVjE5LjVIOVY0MQoJTDksNDFMOSw0MXogTTksMTYuNWgzMFYxMGwwLDBsMCwwSDlsMCwwbDAsMFYxNi41eiBNOSwxNi41VjEwbDAsMGwwLDBsMCwwbDAsMFYxNi41eiIvPgo8L3N2Zz4K);background-position:center center;background-repeat:no-repeat;background-size:1.375rem}ecabs-date-picker .dateTimeWrapper .calendar-icon.disabled{cursor:not-allowed}ecabs-date-picker .ecabs-element-wrapper.focused label{color:#376bfb}ecabs-date-picker .ecabs-element-wrapper.focused input{border-bottom-width:2px;border-bottom-color:#376bfb}ecabs-date-picker .ecabs-element-wrapper.validationError label{color:#ff4c4c}ecabs-date-picker .ecabs-element-wrapper.validationError input{border-bottom-color:#ff4c4c;border-bottom-width:2px}.ng-mydp .myDpSelector{border:0;padding:0;box-shadow:0 4px 6px #162a4c14,0 2px 16px #162a4c0f,0 8px 12px #162a4c0a;border-radius:0 0 4px 4px;background:#fff}.ng-mydp .myDpSelector:focus{box-shadow:0 4px 6px #162a4c14,0 2px 16px #162a4c0f,0 8px 12px #162a4c0a}.ng-mydp .myDpSelector .myDpWeekDayTitle{background-color:#fff;font-weight:500;font-size:11px;color:#162a4cb3}.ng-mydp .myDpSelector .myDpNextBtn{margin-left:auto;margin-right:16px}.ng-mydp .myDpSelector .myDpNextBtn .myDpIconRightArrow{line-height:26px;height:25px}.ng-mydp .myDpSelector .myDpNextBtn .myDpIconRightArrow:before{color:#376bfb;font-size:13px}.ng-mydp .myDpSelector .myDpPrevBtn{margin-left:16px}.ng-mydp .myDpSelector .myDpPrevBtn .myDpIconLeftArrow{line-height:26px;height:25px}.ng-mydp .myDpSelector .myDpPrevBtn .myDpIconLeftArrow:before{color:#376bfb;font-size:13px}.ng-mydp .myDpSelector .myDpMonthYearSelBar{height:52px;padding-top:10px;border:0}.ng-mydp .myDpSelector .myDpMonthYearText button{font-weight:500;font-size:13px;line-height:20px;color:#376bfb}.ng-mydp .myDpSelector .myDpMonthYearText .myDpMonthBtn{padding-right:7px;position:relative;margin-right:15px}.ng-mydp .myDpSelector .myDpMonthYearText .myDpMonthBtn:after{position:absolute;content:\"\";height:14px;width:1px;right:-7px;top:6px;background:#162a4c80}.ng-mydp .myDpSelector .myDpMonthYearText .myDpYearBtn{padding-left:6px}.ng-mydp .myDpSelector .myDpCalTable{height:calc(100% - 54px);width:calc(100% - 20px);margin:0 10px}.ng-mydp .myDpSelector table.myDpCalTable td .myDpDayValue{border-radius:4px;background:#f0f2f5;display:inline-block;box-sizing:border-box;width:32px;height:28px;font-size:13px;line-height:28px;text-align:center;color:#162a4ce6}.ng-mydp .myDpSelector table.myDpCalTable td .myDpDayValue.myDpMarkCurrDay{border-bottom:0;color:#376bfb}.ng-mydp .myDpSelector table.myDpCalTable td.myDpSelectedDay .myDpDayValue{color:#fff!important;background:#6ab72a!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDisabled{background:unset}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDisabled .myDpDayValue{background:unset!important;color:#162a4c80;cursor:not-allowed}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDisabled .myDpDayValue:hover{background:unset!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpRangeColor{background-color:#fff}.ng-mydp .myDpSelector table.myDpCalTable td.myDpRangeColor .myDpDayValue{background:#bee39d!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpRangeColor.myDpSelectedDay .myDpDayValue{color:#fff!important;background:#6ab72a!important}.ng-mydp .myDpSelector table.myDpCalTable td.myDpDaycell:focus{box-shadow:unset;outline:unset}.ng-mydp .myDpSelector table.myDpCalTable td.myDpPrevMonth .myDpDayValue,.ng-mydp .myDpSelector table.myDpCalTable td.myDpNextMonth .myDpDayValue{background:#f6f7f9;color:#162a4c80}.ng-mydp .myDpSelector table.myDpCalTable td .myDpDimDay{opacity:1}.ng-mydp .myDpSelector table.myDpCalTable .myDpTableSingleDay:hover{background-color:#fff}.ng-mydp .myDpSelector table.myDpCalTable .myDpTableSingleDay:hover .myDpDayValue{background:#bee39d;color:#162a4ce6}.ng-mydp .myDpSelector table.myDpCalTable .myDpSelectedDay,.ng-mydp .myDpSelector table.myDpCalTable .myDpSelectedMonth,.ng-mydp .myDpSelector table.myDpCalTable .myDpSelectedYear{background-color:#fff;border-radius:0}.ng-mydp .myDpSelector .myDpMonthTable{height:128px;width:calc(100% - 20px);margin:0 10px}.ng-mydp .myDpSelector .myDpMonthTable td .myDpMonthValue{display:inline-block;height:28px;width:80px;background:#f0f2f5;vertical-align:middle;text-align:center;line-height:28px;font-weight:400;font-size:13px;color:#162a4ce6;border-radius:4px}.ng-mydp .myDpSelector .myDpMonthTable td .myDpMonthValue.myDpMarkCurrMonth{border:0;color:#376bfb}.ng-mydp .myDpSelector .myDpMonthTable td .myDpMonthValue:hover{background:#bee39d}.ng-mydp .myDpSelector .myDpMonthTable td.myDpDisabled{background:unset}.ng-mydp .myDpSelector .myDpMonthTable td.myDpDisabled .myDpMonthValue{background:unset!important;color:#162a4c80!important;cursor:not-allowed}.ng-mydp .myDpSelector .myDpMonthTable td.myDpSelectedMonth{background-color:#fff}.ng-mydp .myDpSelector .myDpMonthTable td.myDpSelectedMonth .myDpMonthValue{background:#6ab72a!important;color:#fff!important}.ng-mydp .myDpSelector .myDpMonthTable td.myDpTableSingleMonth:hover{background-color:#fff}.ng-mydp .myDpSelector .myDpYearTable{height:160px;width:calc(100% - 20px);margin:0 10px}.ng-mydp .myDpSelector .myDpYearTable td .myDpYearValue{display:inline-block;height:28px;width:46px;background:#f0f2f5;vertical-align:middle;text-align:center;line-height:28px;font-weight:400;font-size:13px;color:#162a4ce6;border-radius:4px}.ng-mydp .myDpSelector .myDpYearTable td .myDpYearValue.myDpMarkCurrYear{border:0;color:#376bfb}.ng-mydp .myDpSelector .myDpYearTable td .myDpYearValue:hover{background:#bee39d}.ng-mydp .myDpSelector .myDpYearTable td.myDpDisabled{background:unset}.ng-mydp .myDpSelector .myDpYearTable td.myDpDisabled .myDpYearValue{background:unset!important;color:#162a4c80!important;cursor:not-allowed}.ng-mydp .myDpSelector .myDpYearTable td.myDpSelectedYear{background-color:#fff}.ng-mydp .myDpSelector .myDpYearTable td.myDpSelectedYear .myDpYearValue{background:#6ab72a!important;color:#fff!important}.ng-mydp .myDpSelector .myDpYearTable td.myDpTableSingleYear:hover{background-color:#fff}.ng-mydp .myDpSelectorArrow{height:272px!important;width:268px!important;margin-top:-12px}.ng-mydp .myDpSelectorArrow:after{display:none}.ng-mydp .myDpSelectorArrow:before{display:none}:root{--mat-standard-button-toggle-shape: .5rem;--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.mat-date-range-input{display:block;width:100%;padding:.5rem 1rem;border-radius:.25rem;border:1px solid var(--color-gray-300);color:var(--color-black);line-height:1.5}:host ::ng-deep .mat-mdc-icon-button{max-width:2.5rem;max-height:2.5rem}\n"], dependencies: [{ kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }] });
3886
3886
  }
3887
3887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateRangePickerComponent, decorators: [{
3888
3888
  type: Component,
@@ -4285,7 +4285,7 @@ class EcabsDateTimeRangePickerComponent extends EcabsElementBaseComponent {
4285
4285
  },
4286
4286
  DecimalPipe,
4287
4287
  UnsubscribeService,
4288
- ], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || controlDate?.disabled\"\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker\n (opened)=\"opened()\"\n #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n >\n <mat-datepicker-actions>\n <div class=\"flex flex-col w-full gap-y-4\">\n <div class=\"flex gap-2 justify-center items-center\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ from ?? translationConfig?.from }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"block form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursFrom\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursFrom\"\n />\n\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesFrom\"\n [(ngModel)]=\"minutesFrom\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <div class=\"time--inputs\"></div>\n <div class=\"flex gap-2 justify-center items-center mb-5\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ to ?? translationConfig?.to }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursTo\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursTo\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesTo\"\n [(ngModel)]=\"minutesTo\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"00:00 - 00:00\"\n [disabled]=\"disabled || controlDate?.disabled\"\n ecabsTime\n [all]=\"allLabel\"\n [timeRange]=\"true\"\n (blur)=\"onTouch()\"\n (blur)=\"blurChange($event)\"\n (keyup)=\"blurChange($event)\"\n (keydown)=\"keydownChange($event)\"\n />\n <button type=\"button\" class=\"text-gray-500 -translate-x-9\" (click)=\"picker.open()\">\n <mat-icon>access_time</mat-icon>\n </button>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: EcabsMaskTimeDirective, selector: "[ecabsTime]", inputs: ["timeRange", "all"] }] });
4288
+ ], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || controlDate?.disabled\"\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker\n (opened)=\"opened()\"\n #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n >\n <mat-datepicker-actions>\n <div class=\"flex flex-col w-full gap-y-4\">\n <div class=\"flex gap-2 justify-center items-center\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ from ?? translationConfig?.from }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"block form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursFrom\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursFrom\"\n />\n\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesFrom\"\n [(ngModel)]=\"minutesFrom\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <div class=\"time--inputs\"></div>\n <div class=\"flex gap-2 justify-center items-center mb-5\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ to ?? translationConfig?.to }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursTo\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursTo\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesTo\"\n [(ngModel)]=\"minutesTo\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"00:00 - 00:00\"\n [disabled]=\"disabled || controlDate?.disabled\"\n ecabsTime\n [all]=\"allLabel\"\n [timeRange]=\"true\"\n (blur)=\"onTouch()\"\n (blur)=\"blurChange($event)\"\n (keyup)=\"blurChange($event)\"\n (keydown)=\"keydownChange($event)\"\n />\n <button type=\"button\" class=\"text-gray-500 -translate-x-9\" (click)=\"picker.open()\">\n <mat-icon>access_time</mat-icon>\n </button>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: EcabsMaskTimeDirective, selector: "[ecabsTime]", inputs: ["timeRange", "all"] }] });
4289
4289
  }
4290
4290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, decorators: [{
4291
4291
  type: Component,
@@ -4445,7 +4445,7 @@ class EcabsIncrementComponent extends EcabsElementBaseComponent {
4445
4445
  useExisting: EcabsIncrementComponent,
4446
4446
  multi: true,
4447
4447
  },
4448
- ], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <input ecabsDigitsOnly [digitsOnly]=\"digitsOnly\" [decimal]=\"allowDecimal\" [allowHyphen]=\"allowHyphen\"\n class=\"form-field__input\"\n [type]=\"type\"\n [id]=\"name\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxLength\"/>\n\n <div class=\"incrementor\">\n <mat-icon (click)=\"increment()\">add</mat-icon>\n <mat-icon (click)=\"decrement()\">remove</mat-icon>\n </div>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host::ng-deep .incrementor{border-left:1px solid var(--color-gray-300);position:absolute;display:flex;flex-direction:column;top:1px;bottom:1px;right:1px}:host::ng-deep .incrementor .mat-icon{font-size:20px;font-size:1.25rem;margin-right:0;line-height:20px;cursor:pointer;text-align:center;flex:1}:host::ng-deep .incrementor .mat-icon:first-of-type{border-bottom:1px solid var(--color-gray-300)}:host::ng-deep .incrementor .mat-icon:hover{color:var(--color-brand-dark)}:host::ng-deep .form-field>div{line-height:1}\n"], dependencies: [{ kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }] });
4448
+ ], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <input ecabsDigitsOnly [digitsOnly]=\"digitsOnly\" [decimal]=\"allowDecimal\" [allowHyphen]=\"allowHyphen\"\n class=\"form-field__input\"\n [type]=\"type\"\n [id]=\"name\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxLength\"/>\n\n <div class=\"incrementor\">\n <mat-icon (click)=\"increment()\">add</mat-icon>\n <mat-icon (click)=\"decrement()\">remove</mat-icon>\n </div>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host::ng-deep .incrementor{border-left:1px solid var(--color-gray-300);position:absolute;display:flex;flex-direction:column;top:1px;bottom:1px;right:1px}:host::ng-deep .incrementor .mat-icon{font-size:20px;font-size:1.25rem;margin-right:0;line-height:20px;cursor:pointer;text-align:center;flex:1}:host::ng-deep .incrementor .mat-icon:first-of-type{border-bottom:1px solid var(--color-gray-300)}:host::ng-deep .incrementor .mat-icon:hover{color:var(--color-brand-dark)}:host::ng-deep .form-field>div{line-height:1}\n"], dependencies: [{ kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }] });
4449
4449
  }
4450
4450
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsIncrementComponent, decorators: [{
4451
4451
  type: Component,
@@ -5416,7 +5416,7 @@ class EcabsBasePhoneComponent extends _NgxMatIntlTelInputMixinBase {
5416
5416
  }
5417
5417
  this._previousFormattedNumber = this.phoneNumber?.toString();
5418
5418
  }
5419
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CountryCode }, { token: i2$3.FocusMonitor }, { token: i0.ElementRef }, { token: i3.NgControl, optional: true, self: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i4$1.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component });
5419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CountryCode }, { token: i2$2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.NgControl, optional: true, self: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i4$2.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component });
5420
5420
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBasePhoneComponent, selector: "ecabs-base-phone", inputs: { preferredCountries: "preferredCountries", enablePlaceholder: "enablePlaceholder", inputPlaceholder: "inputPlaceholder", cssClass: "cssClass", name: "name", onlyCountries: "onlyCountries", errorStateMatcher: "errorStateMatcher", enableSearch: "enableSearch", searchPlaceholder: "searchPlaceholder", describedBy: "describedBy", debounceTimeMs: "debounceTimeMs", format: "format", placeholder: "placeholder", required: "required", disabled: "disabled" }, outputs: { countryChanged: "countryChanged" }, host: { properties: { "id": "this.id", "class.ngx-floating": "this.shouldLabelFloat" } }, providers: [
5421
5421
  CountryCode,
5422
5422
  { provide: MatFormFieldControl, useExisting: EcabsBasePhoneComponent },
@@ -5438,7 +5438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5438
5438
  multi: true,
5439
5439
  },
5440
5440
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ecabs-tel-input-container\">\n <button\n type=\"button\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n class=\"country-selector\"\n [disabled]=\"disabled\"\n >\n <span\n class=\"country-selector-flag flag\"\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\n ></span>\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\n >+{{ selectedCountry.dialCode }}</span\n >\n </button>\n <mat-menu #menu=\"matMenu\"\n class=\"ecabs-tel-input-mat-menu-panel\"\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\n <input\n #searchInput\n *ngIf=\"enableSearch\"\n class=\"country-search\"\n [(ngModel)]=\"searchCriteria\"\n (ngModelChange)=\"onSearchInput()\"\n type=\"text\"\n [placeholder]=\"searchPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n />\n <ng-container *ngIf=\"!searchCriteria\">\n <button\n type=\"button\"\n mat-menu-item\n class=\"country-list-button\"\n *ngFor=\"let country of preferredCountriesInDropDown\"\n (click)=\"onCountrySelect(country)\"\n >\n <div class=\"icon-wrapper\">\n <div class=\"flag\"\n [ngClass]=\"flagClass(country.flagClass)\"></div>\n </div>\n <div class=\"label-wrapper\">\n {{ country.name }}\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\n </div>\n </button>\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\n </ng-container>\n <ng-container *ngFor=\"let country of allCountries\">\n <button\n type=\"button\"\n mat-menu-item\n class=\"country-list-button\"\n *ngIf=\"country | search: searchCriteria\"\n (click)=\"onCountrySelect(country)\"\n >\n <div class=\"icon-wrapper\">\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\n </div>\n <div class=\"label-wrapper\">\n {{ country.name }} +{{ country.dialCode }}\n </div>\n </button>\n </ng-container>\n </mat-menu>\n\n <input #matCustomInput\n matInput\n type=\"tel\"\n autocomplete=\"tel\"\n [ngClass]=\"cssClass\"\n (blur)=\"onTouched()\"\n (keypress)=\"onInputKeyPress($event)\"\n [(ngModel)]=\"phoneNumber\"\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [placeholder]=\"inputPlaceholder\"\n [disabled]=\"disabled\"\n [aria-describedby]=\"describedBy\"\n />\n</div>\n", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"] }]
5441
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CountryCode }, { type: i2$3.FocusMonitor }, { type: i0.ElementRef }, { type: i3.NgControl, decorators: [{
5441
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CountryCode }, { type: i2$2.FocusMonitor }, { type: i0.ElementRef }, { type: i3.NgControl, decorators: [{
5442
5442
  type: Optional
5443
5443
  }, {
5444
5444
  type: Self
@@ -5446,7 +5446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5446
5446
  type: Optional
5447
5447
  }] }, { type: i3.FormGroupDirective, decorators: [{
5448
5448
  type: Optional
5449
- }] }, { type: i4$1.ErrorStateMatcher }]; }, propDecorators: { preferredCountries: [{
5449
+ }] }, { type: i4$2.ErrorStateMatcher }]; }, propDecorators: { preferredCountries: [{
5450
5450
  type: Input
5451
5451
  }], enablePlaceholder: [{
5452
5452
  type: Input
@@ -6257,7 +6257,7 @@ class EcabsEmptyPlaceholderComponent {
6257
6257
  }
6258
6258
  }
6259
6259
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsEmptyPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6260
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsEmptyPlaceholderComponent, selector: "ecabs-empty-placeholder", inputs: { title: "title", isEmptyMessage: "isEmptyMessage", redirectPath: "redirectPath", srcImage: "srcImage" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"w-full flex flex-col items-center justify-items-center text-center gap-2\">\n <img class=\"mt-10 w-60\" [src]=\"image\" alt=\"\" />\n\n <ng-container *ngIf=\"title\">\n <p class=\"text-lg font-bold leading-7 text-black\">{{ title }}</p>\n </ng-container>\n\n <ng-container *ngIf=\"isEmptyMessage\">\n <p class=\"text-gray-400\">{{ isEmptyMessage }}</p>\n </ng-container>\n\n <ng-content></ng-content>\n\n <a *ngIf=\"redirectPath\" [routerLink]=\"redirectPath?.path && [redirectPath.path]\" class=\"text-sm mt-2\">\n {{ redirectPath.title }}\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
6260
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsEmptyPlaceholderComponent, selector: "ecabs-empty-placeholder", inputs: { title: "title", isEmptyMessage: "isEmptyMessage", redirectPath: "redirectPath", srcImage: "srcImage" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"w-full flex flex-col items-center justify-items-center text-center gap-2\">\n <img class=\"mt-10 w-60\" [src]=\"image\" alt=\"\" />\n\n <ng-container *ngIf=\"title\">\n <p class=\"text-lg font-bold leading-7 text-black\">{{ title }}</p>\n </ng-container>\n\n <ng-container *ngIf=\"isEmptyMessage\">\n <p class=\"text-gray-400\">{{ isEmptyMessage }}</p>\n </ng-container>\n\n <ng-content></ng-content>\n\n <a *ngIf=\"redirectPath\" [routerLink]=\"redirectPath?.path && [redirectPath.path]\" class=\"text-sm mt-2\">\n {{ redirectPath.title }}\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
6261
6261
  }
6262
6262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsEmptyPlaceholderComponent, decorators: [{
6263
6263
  type: Component,
@@ -6286,6 +6286,239 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6286
6286
  }]
6287
6287
  }] });
6288
6288
 
6289
+ const CHIP_LABEL_CLASS = 'mdc-evolution-chip__text-label';
6290
+
6291
+ class EcabsBadgeDirective {
6292
+ elementRef;
6293
+ chip;
6294
+ truncationTooltip;
6295
+ variant = 'default';
6296
+ size = 'medium';
6297
+ set bordered(value) {
6298
+ this.hasBorder = coerceBooleanProperty(value);
6299
+ }
6300
+ set disableRipple(value) {
6301
+ this.rippleDisabled = coerceBooleanProperty(value);
6302
+ this.syncChip();
6303
+ }
6304
+ set interactive(value) {
6305
+ this.isInteractive = coerceBooleanProperty(value);
6306
+ this.syncChip();
6307
+ }
6308
+ get badgeClasses() {
6309
+ return [
6310
+ 'badge',
6311
+ `badge--${this.variant}`,
6312
+ `badge--${this.size}`,
6313
+ this.hasBorder && 'badge--bordered',
6314
+ !!this.chip && this.noRipple && 'badge--no-ripple',
6315
+ this.isInteractive && 'badge--interactive',
6316
+ ]
6317
+ .filter(Boolean)
6318
+ .join(' ');
6319
+ }
6320
+ hasBorder = true;
6321
+ rippleDisabled;
6322
+ isInteractive = false;
6323
+ get noRipple() {
6324
+ return this.rippleDisabled ?? !this.isInteractive;
6325
+ }
6326
+ syncChip() {
6327
+ if (!this.chip) {
6328
+ return;
6329
+ }
6330
+ this.chip.role = this.isInteractive ? 'button' : null;
6331
+ this.chip.disableRipple = this.noRipple;
6332
+ if (this.isInteractive) {
6333
+ this.chip.tabIndex = 0;
6334
+ }
6335
+ }
6336
+ constructor(elementRef, menuTrigger, chip, truncationTooltip) {
6337
+ this.elementRef = elementRef;
6338
+ this.chip = chip;
6339
+ this.truncationTooltip = truncationTooltip;
6340
+ if (this.chip && this.truncationTooltip) {
6341
+ this.truncationTooltip.classNameTruncatedTooltip = CHIP_LABEL_CLASS;
6342
+ }
6343
+ this.interactive = !!menuTrigger;
6344
+ }
6345
+ onKeydown(event) {
6346
+ const element = this.elementRef.nativeElement;
6347
+ if (!this.isInteractive ||
6348
+ !this.chip ||
6349
+ event.target !== element ||
6350
+ (event.key !== 'Enter' && event.key !== ' ')) {
6351
+ return;
6352
+ }
6353
+ event.preventDefault();
6354
+ setTimeout(() => element.click());
6355
+ }
6356
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeDirective, deps: [{ token: i0.ElementRef }, { token: i7$1.MatMenuTrigger, optional: true, self: true }, { token: i2$3.MatChip, optional: true }, { token: EcabsTooltipIfTruncatedDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
6357
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBadgeDirective, selector: "[ecabsBadge]", inputs: { variant: "variant", size: "size", bordered: "bordered", disableRipple: "disableRipple", interactive: "interactive" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "this.badgeClasses" } }, ngImport: i0 });
6358
+ }
6359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeDirective, decorators: [{
6360
+ type: Directive,
6361
+ args: [{
6362
+ selector: '[ecabsBadge]',
6363
+ }]
6364
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i7$1.MatMenuTrigger, decorators: [{
6365
+ type: Optional
6366
+ }, {
6367
+ type: Self
6368
+ }] }, { type: i2$3.MatChip, decorators: [{
6369
+ type: Optional
6370
+ }] }, { type: EcabsTooltipIfTruncatedDirective, decorators: [{
6371
+ type: Optional
6372
+ }] }]; }, propDecorators: { variant: [{
6373
+ type: Input
6374
+ }], size: [{
6375
+ type: Input
6376
+ }], bordered: [{
6377
+ type: Input
6378
+ }], disableRipple: [{
6379
+ type: Input
6380
+ }], interactive: [{
6381
+ type: Input
6382
+ }], badgeClasses: [{
6383
+ type: HostBinding,
6384
+ args: ['class']
6385
+ }], onKeydown: [{
6386
+ type: HostListener,
6387
+ args: ['keydown', ['$event']]
6388
+ }] } });
6389
+
6390
+ class EcabsBadgeComponent {
6391
+ variant = 'default';
6392
+ size = 'medium';
6393
+ set bordered(value) {
6394
+ this.hasBorder = coerceBooleanProperty(value);
6395
+ }
6396
+ hasBorder = true;
6397
+ /**
6398
+ * Icon name, resolved through whichever icon set the library is on (Phosphor
6399
+ * today). Deliberately not named after the vendor so a future icon-set change
6400
+ * does not ripple out to every call site.
6401
+ */
6402
+ icon;
6403
+ /**
6404
+ * Defaults to `bold`: at badge icon sizes (12-18px) a `regular` stroke falls
6405
+ * below one device pixel and antialiases into a ragged edge. `bold` also
6406
+ * matches the ~26/256 ring thickness of the reference design.
6407
+ */
6408
+ iconWeight = 'bold';
6409
+ /**
6410
+ * Material icon ligature, for the cases that need a Material glyph
6411
+ * specifically. Used only when no `icon` is supplied.
6412
+ */
6413
+ materialIcon;
6414
+ /**
6415
+ * Static so it resolves before the first change detection run, keeping the
6416
+ * tooltip binding stable instead of changing after the view is checked.
6417
+ */
6418
+ labelRef;
6419
+ get svgIcon() {
6420
+ return buildPhosphorSvgIcon(this.icon, this.iconWeight);
6421
+ }
6422
+ /**
6423
+ * Tooltip message for a clipped label. Read from the DOM rather than an input
6424
+ * because the label is projected content. `ecabsTooltipIfTruncated` measures
6425
+ * on mouseover, and that host listener also marks this view dirty, so the
6426
+ * message is re-read on hover without any explicit change detection call.
6427
+ * The directive suppresses the tooltip unless the text is actually clipped.
6428
+ */
6429
+ get labelText() {
6430
+ return this.labelRef?.nativeElement?.textContent?.trim() ?? '';
6431
+ }
6432
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6433
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBadgeComponent, selector: "ecabs-badge", inputs: { variant: "variant", size: "size", bordered: "bordered", icon: "icon", iconWeight: "iconWeight", materialIcon: "materialIcon" }, viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], ngImport: i0, template: "<span ecabsBadge\r\n [variant]=\"variant\"\r\n [size]=\"size\"\r\n [bordered]=\"hasBorder\">\r\n <span class=\"badge__icon badge__icon--slot\">\r\n <ng-content select=\"[ecabsBadgeIcon]\"></ng-content>\r\n </span>\r\n\r\n <mat-icon *ngIf=\"svgIcon\"\r\n class=\"badge__icon\"\r\n [svgIcon]=\"svgIcon\">\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"!svgIcon && materialIcon\"\r\n class=\"badge__icon\">{{ materialIcon }}\r\n </mat-icon>\r\n\r\n <span #label\r\n ecabsTooltipIfTruncated\r\n class=\"badge__label\"\r\n [matTooltip]=\"labelText\">\r\n <ng-content></ng-content>\r\n </span>\r\n</span>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EcabsBadgeDirective, selector: "[ecabsBadge]", inputs: ["variant", "size", "bordered", "disableRipple", "interactive"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: EcabsTooltipIfTruncatedDirective, selector: "[matTooltip][ecabsTooltipIfTruncated]", inputs: ["classNameTruncatedTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6434
+ }
6435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeComponent, decorators: [{
6436
+ type: Component,
6437
+ args: [{ selector: 'ecabs-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span ecabsBadge\r\n [variant]=\"variant\"\r\n [size]=\"size\"\r\n [bordered]=\"hasBorder\">\r\n <span class=\"badge__icon badge__icon--slot\">\r\n <ng-content select=\"[ecabsBadgeIcon]\"></ng-content>\r\n </span>\r\n\r\n <mat-icon *ngIf=\"svgIcon\"\r\n class=\"badge__icon\"\r\n [svgIcon]=\"svgIcon\">\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"!svgIcon && materialIcon\"\r\n class=\"badge__icon\">{{ materialIcon }}\r\n </mat-icon>\r\n\r\n <span #label\r\n ecabsTooltipIfTruncated\r\n class=\"badge__label\"\r\n [matTooltip]=\"labelText\">\r\n <ng-content></ng-content>\r\n </span>\r\n</span>\r\n" }]
6438
+ }], propDecorators: { variant: [{
6439
+ type: Input
6440
+ }], size: [{
6441
+ type: Input
6442
+ }], bordered: [{
6443
+ type: Input
6444
+ }], icon: [{
6445
+ type: Input
6446
+ }], iconWeight: [{
6447
+ type: Input
6448
+ }], materialIcon: [{
6449
+ type: Input
6450
+ }], labelRef: [{
6451
+ type: ViewChild,
6452
+ args: ['label', { static: true }]
6453
+ }] } });
6454
+
6455
+ const STATUS_BADGE_VARIANTS = {
6456
+ /* #Neutral */
6457
+ PENDING: 'default',
6458
+ DRAFT: 'default',
6459
+ ARCHIVED: 'default',
6460
+ RECALLED: 'default',
6461
+ INITIALIZED: 'default',
6462
+ INACTIVE: 'default',
6463
+ /* #Awaiting something */
6464
+ RESERVED: 'warning',
6465
+ SCHEDULED: 'warning',
6466
+ ENDED: 'warning',
6467
+ PENDING_DATA: 'warning',
6468
+ PARTIAL: 'warning',
6469
+ /* #Under way */
6470
+ DISPATCHED: 'info',
6471
+ CAB_ARRIVED_AT_PICKUP: 'info',
6472
+ CAB_ARRIVED_AT_INTERMEDIARY_WAYPOINT: 'info',
6473
+ TRIP_STARTED: 'info',
6474
+ STARTED: 'info',
6475
+ DROPPED_OFF: 'info',
6476
+ TRIP_ONGOING: 'info',
6477
+ IN_PROGRESS: 'info',
6478
+ IN_PROGRESS_ADJUSTMENT: 'info',
6479
+ IN_PROGRESS_PAYOUT: 'info',
6480
+ PROCESSING: 'info',
6481
+ PUBLISHED: 'info',
6482
+ PENDING_REVIEW: 'info',
6483
+ /* #Landed well */
6484
+ ACCEPTED: 'success',
6485
+ CAB_ARRIVED_AT_DROPOFF: 'success',
6486
+ TRIP_ENDED: 'success',
6487
+ COMPLETED: 'success',
6488
+ ADJUSTMENT_COMPLETED: 'success',
6489
+ CASHED_IN: 'success',
6490
+ DONE: 'success',
6491
+ SUCCESS: 'success',
6492
+ ACTIVE: 'success',
6493
+ /* #Landed badly */
6494
+ CANCELLED: 'danger',
6495
+ REJECTED: 'danger',
6496
+ SUSPENDED: 'danger',
6497
+ SICK: 'danger',
6498
+ NO_SHOW: 'danger',
6499
+ UNABLE_TO_COMPLETE: 'danger',
6500
+ UNAVAILABLE: 'danger',
6501
+ FAILED: 'danger',
6502
+ EXPIRED: 'danger',
6503
+ BLACKLISTED: 'danger',
6504
+ };
6505
+ const normaliseStatusEnum = (status) => status.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();
6506
+ const resolveStatusBadgeVariant = (status) => (status && STATUS_BADGE_VARIANTS[normaliseStatusEnum(status)]) || 'default';
6507
+
6508
+ class EcabsStatusBadgeVariantPipe {
6509
+ transform(status) {
6510
+ return resolveStatusBadgeVariant(status);
6511
+ }
6512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStatusBadgeVariantPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
6513
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsStatusBadgeVariantPipe, name: "statusBadgeVariant" });
6514
+ }
6515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStatusBadgeVariantPipe, decorators: [{
6516
+ type: Pipe,
6517
+ args: [{
6518
+ name: 'statusBadgeVariant',
6519
+ }]
6520
+ }] });
6521
+
6289
6522
  class EcabsExpansionPanelComponent {
6290
6523
  title = '';
6291
6524
  description;
@@ -6301,21 +6534,27 @@ class EcabsExpansionPanelComponent {
6301
6534
  showCheckbox;
6302
6535
  showStatus;
6303
6536
  status;
6304
- hideToggle = false;
6537
+ collapsible = true;
6305
6538
  checked = new EventEmitter();
6306
6539
  opened = new EventEmitter();
6307
6540
  expansionPanel;
6308
6541
  toggle = false;
6542
+ // `titlecase` alone renders a `PENDING_REVIEW` style status as `Pending_review`.
6543
+ get statusLabel() {
6544
+ return (this.status ?? '').replace(/_/g, ' ');
6545
+ }
6309
6546
  onOpened() {
6310
6547
  this.opened.emit();
6311
6548
  }
6312
6549
  ngOnChanges(changes) {
6313
6550
  const { closePanel } = changes;
6314
- if (closePanel && this.expansionPanel) {
6315
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
6316
- closePanel.currentValue === true
6317
- ? this.expansionPanel.close()
6318
- : this.expansionPanel.open();
6551
+ if (closePanel && this.expansionPanel && this.collapsible) {
6552
+ if (closePanel.currentValue === true) {
6553
+ this.expansionPanel.close();
6554
+ }
6555
+ else {
6556
+ this.expansionPanel.open();
6557
+ }
6319
6558
  }
6320
6559
  }
6321
6560
  toggleAction(event) {
@@ -6323,11 +6562,11 @@ class EcabsExpansionPanelComponent {
6323
6562
  this.checked.emit(this.expanded);
6324
6563
  }
6325
6564
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsExpansionPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6326
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsExpansionPanelComponent, selector: "ecabs-expansion-panel", inputs: { title: "title", description: "description", actionTitle: "actionTitle", index: "index", expanded: "expanded", disabled: "disabled", errorMessage: "errorMessage", showErrorMessage: "showErrorMessage", closePanel: "closePanel", showIcon: "showIcon", iconName: "iconName", showCheckbox: "showCheckbox", showStatus: "showStatus", status: "status", hideToggle: "hideToggle" }, outputs: { checked: "checked", opened: "opened" }, viewQueries: [{ propertyName: "expansionPanel", first: true, predicate: MatExpansionPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-accordion class=\"example-headers-align\" multi>\n <mat-expansion-panel [expanded]=\"expanded\" [disabled]=\"disabled\" (opened)=\"onOpened()\" [hideToggle]=\"hideToggle\">\n <mat-expansion-panel-header *ngIf=\"title\">\n <mat-panel-title>\n <div>\n <div class=\"flex flex-row\">\n <div *ngIf=\"index && !showErrorMessage\" class=\"border-current border-2 rounded-full mr-3 index\">\n {{ index }}\n </div>\n <div *ngIf=\"!showErrorMessage && showIcon\" class=\"mr-3 rounded\">\n <mat-icon class=\"rounded-icon !text-lg -mt-1\">{{ iconName }}</mat-icon>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"mt-1 mr-2\">\n <mat-icon color=\"warn\">warning</mat-icon>\n </div>\n {{ title }}\n <div *ngIf=\"showCheckbox\" class=\"ml-2 mt-1\">\n <ecabs-checkbox [type]=\"'toggle'\" [(ngModel)]=\"toggle\"\n (click)=\"toggleAction($event)\"></ecabs-checkbox>\n </div>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"error-message\">{{ errorMessage }}</div>\n </div>\n </mat-panel-title>\n <mat-panel-description>{{ description }}\n <mat-chip *ngIf=\"showStatus\" class=\"{{ status | lowercase }}\">\n {{ status | titlecase }}\n </mat-chip>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <mat-expansion-panel-header *ngIf=\"actionTitle\">\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: [".example-action-buttons{padding-bottom:20px}.example-headers-align .mat-expansion-panel-header-title,.example-headers-align .mat-expansion-panel-header-description{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:flex-end;align-items:center}.example-headers-align .mat-mdc-form-field+.mat-mdc-form-field{margin-left:8px}:host ::ng-deep .mat-expansion-indicator:after{border-color:var(--color-gray-500)}.index{height:28px;width:28px;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:3px;font-size:16px}.error-message{font-size:.75rem!important;color:var(--color-error);margin-left:2.125rem;margin-top:-.75rem}.rounded{background-color:var(--color-brand-dark);border-radius:50%;height:28px;width:28px;display:flex;align-items:center;justify-content:center;text-align:center}.rounded-icon{color:var(--color-white)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$4.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3$4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3$4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i3$4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3$4.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: EcabsCheckboxToggleComponent, selector: "ecabs-checkbox", inputs: ["type", "text", "label", "labelPosition", "indeterminate", "checked"], outputs: ["click", "changed"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }] });
6565
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsExpansionPanelComponent, selector: "ecabs-expansion-panel", inputs: { title: "title", description: "description", actionTitle: "actionTitle", index: "index", expanded: "expanded", disabled: "disabled", errorMessage: "errorMessage", showErrorMessage: "showErrorMessage", closePanel: "closePanel", showIcon: "showIcon", iconName: "iconName", showCheckbox: "showCheckbox", showStatus: "showStatus", status: "status", collapsible: "collapsible" }, outputs: { checked: "checked", opened: "opened" }, viewQueries: [{ propertyName: "expansionPanel", first: true, predicate: MatExpansionPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-accordion multi>\n <mat-expansion-panel #panel=\"matExpansionPanel\"\n [expanded]=\"collapsible ? expanded : true\"\n [disabled]=\"disabled\"\n (opened)=\"onOpened()\"\n [hideToggle]=\"!collapsible\">\n <mat-expansion-panel-header *ngIf=\"collapsible && title && !actionTitle\">\n <mat-panel-title>\n <ng-container *ngTemplateOutlet=\"titleContent\"></ng-container>\n </mat-panel-title>\n <mat-panel-description>\n <ng-container *ngTemplateOutlet=\"descriptionContent\"></ng-container>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <mat-expansion-panel-header *ngIf=\"collapsible && actionTitle\">\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\n </mat-expansion-panel-header>\n\n <div *ngIf=\"!collapsible && (title || actionTitle)\"\n class=\"ecabs-expansion-panel__heading\"\n [attr.id]=\"panel._headerId\">\n <ng-container *ngIf=\"!actionTitle; else staticActionTitle\">\n <span class=\"mat-content\">\n <div class=\"mat-expansion-panel-header-title\">\n <ng-container *ngTemplateOutlet=\"titleContent\"></ng-container>\n </div>\n <div class=\"mat-expansion-panel-header-description\">\n <ng-container *ngTemplateOutlet=\"descriptionContent\"></ng-container>\n </div>\n </span>\n </ng-container>\n\n <ng-template #staticActionTitle>\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\n </ng-template>\n </div>\n\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n\n<ng-template #titleContent>\n <div>\n <div class=\"flex flex-row\">\n <div *ngIf=\"index && !showErrorMessage\"\n class=\"border-current border-2 rounded-full mr-3 index\">\n {{ index }}\n </div>\n <div *ngIf=\"!showErrorMessage && showIcon\"\n class=\"mr-3 flex h-7 w-7 items-center justify-center rounded-full bg-brand-dark\">\n <mat-icon class=\"!text-lg -mt-1 text-white\">{{ iconName }}</mat-icon>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"mt-1 mr-2\">\n <mat-icon color=\"warn\">warning</mat-icon>\n </div>\n {{ title }}\n <div *ngIf=\"showCheckbox\"\n class=\"ml-2 mt-1\">\n <ecabs-checkbox [type]=\"'toggle'\"\n [(ngModel)]=\"toggle\"\n (click)=\"toggleAction($event)\"\n (keydown.enter)=\"toggleAction($event)\">\n </ecabs-checkbox>\n </div>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"error-message\">{{ errorMessage }}</div>\n </div>\n</ng-template>\n\n<ng-template #descriptionContent>\n {{ description }}\n <ecabs-badge *ngIf=\"showStatus\"\n [variant]=\"status | statusBadgeVariant\">\n {{ statusLabel | titlecase }}\n </ecabs-badge>\n</ng-template>\n", styles: [".index{height:28px;width:28px;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:3px;font-size:16px}.error-message{font-size:.75rem!important;color:var(--color-error);margin-left:2.125rem;margin-top:-.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$4.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3$4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3$4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i3$4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3$4.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: EcabsCheckboxToggleComponent, selector: "ecabs-checkbox", inputs: ["type", "text", "label", "labelPosition", "indeterminate", "checked"], outputs: ["click", "changed"] }, { kind: "component", type: EcabsBadgeComponent, selector: "ecabs-badge", inputs: ["variant", "size", "bordered", "icon", "iconWeight", "materialIcon"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: EcabsStatusBadgeVariantPipe, name: "statusBadgeVariant" }] });
6327
6566
  }
6328
6567
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsExpansionPanelComponent, decorators: [{
6329
6568
  type: Component,
6330
- args: [{ selector: 'ecabs-expansion-panel', template: "<mat-accordion class=\"example-headers-align\" multi>\n <mat-expansion-panel [expanded]=\"expanded\" [disabled]=\"disabled\" (opened)=\"onOpened()\" [hideToggle]=\"hideToggle\">\n <mat-expansion-panel-header *ngIf=\"title\">\n <mat-panel-title>\n <div>\n <div class=\"flex flex-row\">\n <div *ngIf=\"index && !showErrorMessage\" class=\"border-current border-2 rounded-full mr-3 index\">\n {{ index }}\n </div>\n <div *ngIf=\"!showErrorMessage && showIcon\" class=\"mr-3 rounded\">\n <mat-icon class=\"rounded-icon !text-lg -mt-1\">{{ iconName }}</mat-icon>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"mt-1 mr-2\">\n <mat-icon color=\"warn\">warning</mat-icon>\n </div>\n {{ title }}\n <div *ngIf=\"showCheckbox\" class=\"ml-2 mt-1\">\n <ecabs-checkbox [type]=\"'toggle'\" [(ngModel)]=\"toggle\"\n (click)=\"toggleAction($event)\"></ecabs-checkbox>\n </div>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"error-message\">{{ errorMessage }}</div>\n </div>\n </mat-panel-title>\n <mat-panel-description>{{ description }}\n <mat-chip *ngIf=\"showStatus\" class=\"{{ status | lowercase }}\">\n {{ status | titlecase }}\n </mat-chip>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <mat-expansion-panel-header *ngIf=\"actionTitle\">\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: [".example-action-buttons{padding-bottom:20px}.example-headers-align .mat-expansion-panel-header-title,.example-headers-align .mat-expansion-panel-header-description{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:flex-end;align-items:center}.example-headers-align .mat-mdc-form-field+.mat-mdc-form-field{margin-left:8px}:host ::ng-deep .mat-expansion-indicator:after{border-color:var(--color-gray-500)}.index{height:28px;width:28px;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:3px;font-size:16px}.error-message{font-size:.75rem!important;color:var(--color-error);margin-left:2.125rem;margin-top:-.75rem}.rounded{background-color:var(--color-brand-dark);border-radius:50%;height:28px;width:28px;display:flex;align-items:center;justify-content:center;text-align:center}.rounded-icon{color:var(--color-white)}\n"] }]
6569
+ args: [{ selector: 'ecabs-expansion-panel', template: "<mat-accordion multi>\n <mat-expansion-panel #panel=\"matExpansionPanel\"\n [expanded]=\"collapsible ? expanded : true\"\n [disabled]=\"disabled\"\n (opened)=\"onOpened()\"\n [hideToggle]=\"!collapsible\">\n <mat-expansion-panel-header *ngIf=\"collapsible && title && !actionTitle\">\n <mat-panel-title>\n <ng-container *ngTemplateOutlet=\"titleContent\"></ng-container>\n </mat-panel-title>\n <mat-panel-description>\n <ng-container *ngTemplateOutlet=\"descriptionContent\"></ng-container>\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <mat-expansion-panel-header *ngIf=\"collapsible && actionTitle\">\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\n </mat-expansion-panel-header>\n\n <div *ngIf=\"!collapsible && (title || actionTitle)\"\n class=\"ecabs-expansion-panel__heading\"\n [attr.id]=\"panel._headerId\">\n <ng-container *ngIf=\"!actionTitle; else staticActionTitle\">\n <span class=\"mat-content\">\n <div class=\"mat-expansion-panel-header-title\">\n <ng-container *ngTemplateOutlet=\"titleContent\"></ng-container>\n </div>\n <div class=\"mat-expansion-panel-header-description\">\n <ng-container *ngTemplateOutlet=\"descriptionContent\"></ng-container>\n </div>\n </span>\n </ng-container>\n\n <ng-template #staticActionTitle>\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\n </ng-template>\n </div>\n\n <ng-content></ng-content>\n </mat-expansion-panel>\n</mat-accordion>\n\n<ng-template #titleContent>\n <div>\n <div class=\"flex flex-row\">\n <div *ngIf=\"index && !showErrorMessage\"\n class=\"border-current border-2 rounded-full mr-3 index\">\n {{ index }}\n </div>\n <div *ngIf=\"!showErrorMessage && showIcon\"\n class=\"mr-3 flex h-7 w-7 items-center justify-center rounded-full bg-brand-dark\">\n <mat-icon class=\"!text-lg -mt-1 text-white\">{{ iconName }}</mat-icon>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"mt-1 mr-2\">\n <mat-icon color=\"warn\">warning</mat-icon>\n </div>\n {{ title }}\n <div *ngIf=\"showCheckbox\"\n class=\"ml-2 mt-1\">\n <ecabs-checkbox [type]=\"'toggle'\"\n [(ngModel)]=\"toggle\"\n (click)=\"toggleAction($event)\"\n (keydown.enter)=\"toggleAction($event)\">\n </ecabs-checkbox>\n </div>\n </div>\n <div *ngIf=\"showErrorMessage\" class=\"error-message\">{{ errorMessage }}</div>\n </div>\n</ng-template>\n\n<ng-template #descriptionContent>\n {{ description }}\n <ecabs-badge *ngIf=\"showStatus\"\n [variant]=\"status | statusBadgeVariant\">\n {{ statusLabel | titlecase }}\n </ecabs-badge>\n</ng-template>\n", styles: [".index{height:28px;width:28px;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:3px;font-size:16px}.error-message{font-size:.75rem!important;color:var(--color-error);margin-left:2.125rem;margin-top:-.75rem}\n"] }]
6331
6570
  }], propDecorators: { title: [{
6332
6571
  type: Input
6333
6572
  }], description: [{
@@ -6356,7 +6595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6356
6595
  type: Input
6357
6596
  }], status: [{
6358
6597
  type: Input
6359
- }], hideToggle: [{
6598
+ }], collapsible: [{
6360
6599
  type: Input
6361
6600
  }], checked: [{
6362
6601
  type: Output
@@ -6367,6 +6606,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6367
6606
  args: [MatExpansionPanel]
6368
6607
  }] } });
6369
6608
 
6609
+ class EcabsBadgeDirectiveModule {
6610
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6611
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeDirectiveModule, declarations: [EcabsBadgeDirective], imports: [CommonModule], exports: [EcabsBadgeDirective] });
6612
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeDirectiveModule, imports: [CommonModule] });
6613
+ }
6614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeDirectiveModule, decorators: [{
6615
+ type: NgModule,
6616
+ args: [{
6617
+ imports: [CommonModule],
6618
+ declarations: [EcabsBadgeDirective],
6619
+ exports: [EcabsBadgeDirective],
6620
+ }]
6621
+ }] });
6622
+
6623
+ class EcabsBadgeModule {
6624
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6625
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, declarations: [EcabsBadgeComponent, EcabsStatusBadgeVariantPipe], imports: [CommonModule,
6626
+ EcabsBadgeDirectiveModule,
6627
+ MatIconModule,
6628
+ MatTooltipModule,
6629
+ EcabsTooltipIfTruncatedDirectiveModule], exports: [EcabsBadgeComponent,
6630
+ EcabsBadgeDirectiveModule,
6631
+ EcabsStatusBadgeVariantPipe,
6632
+ EcabsTooltipIfTruncatedDirectiveModule] });
6633
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, imports: [CommonModule,
6634
+ EcabsBadgeDirectiveModule,
6635
+ MatIconModule,
6636
+ MatTooltipModule,
6637
+ EcabsTooltipIfTruncatedDirectiveModule, EcabsBadgeDirectiveModule,
6638
+ EcabsTooltipIfTruncatedDirectiveModule] });
6639
+ }
6640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, decorators: [{
6641
+ type: NgModule,
6642
+ args: [{
6643
+ declarations: [EcabsBadgeComponent, EcabsStatusBadgeVariantPipe],
6644
+ imports: [
6645
+ CommonModule,
6646
+ EcabsBadgeDirectiveModule,
6647
+ MatIconModule,
6648
+ MatTooltipModule,
6649
+ EcabsTooltipIfTruncatedDirectiveModule,
6650
+ ],
6651
+ exports: [
6652
+ EcabsBadgeComponent,
6653
+ EcabsBadgeDirectiveModule,
6654
+ EcabsStatusBadgeVariantPipe,
6655
+ EcabsTooltipIfTruncatedDirectiveModule,
6656
+ ],
6657
+ }]
6658
+ }] });
6659
+
6370
6660
  class EcabsExpansionPanelModule {
6371
6661
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsExpansionPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6372
6662
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsExpansionPanelModule, declarations: [EcabsExpansionPanelComponent], imports: [CommonModule,
@@ -6374,15 +6664,15 @@ class EcabsExpansionPanelModule {
6374
6664
  MatButtonModule,
6375
6665
  MatExpansionModule,
6376
6666
  MatIconModule,
6377
- MatChipsModule,
6378
- EcabsCheckboxToggleModule], exports: [EcabsExpansionPanelComponent] });
6667
+ EcabsCheckboxToggleModule,
6668
+ EcabsBadgeModule], exports: [EcabsExpansionPanelComponent] });
6379
6669
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsExpansionPanelModule, imports: [CommonModule,
6380
6670
  FormsModule,
6381
6671
  MatButtonModule,
6382
6672
  MatExpansionModule,
6383
6673
  MatIconModule,
6384
- MatChipsModule,
6385
- EcabsCheckboxToggleModule] });
6674
+ EcabsCheckboxToggleModule,
6675
+ EcabsBadgeModule] });
6386
6676
  }
6387
6677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsExpansionPanelModule, decorators: [{
6388
6678
  type: NgModule,
@@ -6394,8 +6684,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6394
6684
  MatButtonModule,
6395
6685
  MatExpansionModule,
6396
6686
  MatIconModule,
6397
- MatChipsModule,
6398
6687
  EcabsCheckboxToggleModule,
6688
+ EcabsBadgeModule,
6399
6689
  ],
6400
6690
  exports: [EcabsExpansionPanelComponent],
6401
6691
  }]
@@ -6405,7 +6695,7 @@ class EcabsTableFilterWrapperComponent {
6405
6695
  title;
6406
6696
  actions;
6407
6697
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTableFilterWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6408
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsTableFilterWrapperComponent, selector: "ecabs-table-filter-wrapper", inputs: { title: "title", actions: "actions" }, ngImport: i0, template: "<ecabs-expansion-panel [title]=\"title\" class=\"block mb-5\" [expanded]=\"true\">\n <ng-content></ng-content>\n\n <div *ngIf=\"actions\" class=\"flex justify-end\">\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </div>\n</ecabs-expansion-panel>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.mat-expansion-panel-header-title{font-size:22px}:host::ng-deep .btn__group{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EcabsExpansionPanelComponent, selector: "ecabs-expansion-panel", inputs: ["title", "description", "actionTitle", "index", "expanded", "disabled", "errorMessage", "showErrorMessage", "closePanel", "showIcon", "iconName", "showCheckbox", "showStatus", "status", "hideToggle"], outputs: ["checked", "opened"] }] });
6698
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsTableFilterWrapperComponent, selector: "ecabs-table-filter-wrapper", inputs: { title: "title", actions: "actions" }, ngImport: i0, template: "<ecabs-expansion-panel [title]=\"title\" class=\"block mb-5\" [expanded]=\"true\">\n <ng-content></ng-content>\n\n <div *ngIf=\"actions\" class=\"flex justify-end\">\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </div>\n</ecabs-expansion-panel>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.mat-expansion-panel-header-title{font-size:22px}:host::ng-deep .btn__group{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EcabsExpansionPanelComponent, selector: "ecabs-expansion-panel", inputs: ["title", "description", "actionTitle", "index", "expanded", "disabled", "errorMessage", "showErrorMessage", "closePanel", "showIcon", "iconName", "showCheckbox", "showStatus", "status", "collapsible"], outputs: ["checked", "opened"] }] });
6409
6699
  }
6410
6700
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsTableFilterWrapperComponent, decorators: [{
6411
6701
  type: Component,
@@ -6451,7 +6741,7 @@ class TableComponent {
6451
6741
  }
6452
6742
  }
6453
6743
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6454
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, selector: "ecabs-table", inputs: { header: "header", paginator: "paginator", bordered: "bordered", loading: "loading", isEmpty: "isEmpty", isEmptyMessage: "isEmptyMessage", isEmptyMessageTitle: "isEmptyMessageTitle", isEmptyExtrasTemplate: "isEmptyExtrasTemplate", redirectPath: "redirectPath", srcImageEmpty: "srcImageEmpty" }, queries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }], ngImport: i0, template: "<section class=\"table-ui table-ui--wrapper\" [ngClass]=\"{ 'table-ui__bordered': bordered, loading: loading }\">\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\n\n <div *ngIf=\"header\" class=\"table-ui__header\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"showTableContent; else noDataTemplate\">\n <ng-content></ng-content>\n\n <div *ngIf=\"paginator\" class=\"table-ui__paginator\">\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\n </div>\n </ng-container>\n\n <!--#For Empty state -->\n <ng-template #noDataTemplate>\n <ecabs-empty-placeholder *ngIf=\"!loading\"\n [redirectPath]=\"redirectPath\"\n [title]=\"isEmptyMessageTitle\"\n [isEmptyMessage]=\"isEmptyMessage\"\n [srcImage]=\"srcImageEmpty\">\n <ng-container *ngIf=\"isEmptyExtrasTemplate\">\n <ng-container *ngTemplateOutlet=\"isEmptyExtrasTemplate\"></ng-container>\n </ng-container>\n </ecabs-empty-placeholder>\n </ng-template>\n</section>\n", styles: [":host mat-progress-bar{position:absolute;width:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: EcabsEmptyPlaceholderComponent, selector: "ecabs-empty-placeholder", inputs: ["title", "isEmptyMessage", "redirectPath", "srcImage"] }] });
6744
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, selector: "ecabs-table", inputs: { header: "header", paginator: "paginator", bordered: "bordered", loading: "loading", isEmpty: "isEmpty", isEmptyMessage: "isEmptyMessage", isEmptyMessageTitle: "isEmptyMessageTitle", isEmptyExtrasTemplate: "isEmptyExtrasTemplate", redirectPath: "redirectPath", srcImageEmpty: "srcImageEmpty" }, queries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }], ngImport: i0, template: "<section class=\"table-ui table-ui--wrapper\" [ngClass]=\"{ 'table-ui__bordered': bordered, loading: loading }\">\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\n\n <div *ngIf=\"header\" class=\"table-ui__header\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"showTableContent; else noDataTemplate\">\n <ng-content></ng-content>\n\n <div *ngIf=\"paginator\" class=\"table-ui__paginator\">\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\n </div>\n </ng-container>\n\n <!--#For Empty state -->\n <ng-template #noDataTemplate>\n <ecabs-empty-placeholder *ngIf=\"!loading\"\n [redirectPath]=\"redirectPath\"\n [title]=\"isEmptyMessageTitle\"\n [isEmptyMessage]=\"isEmptyMessage\"\n [srcImage]=\"srcImageEmpty\">\n <ng-container *ngIf=\"isEmptyExtrasTemplate\">\n <ng-container *ngTemplateOutlet=\"isEmptyExtrasTemplate\"></ng-container>\n </ng-container>\n </ecabs-empty-placeholder>\n </ng-template>\n</section>\n", styles: [":host mat-progress-bar{position:absolute;width:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: EcabsEmptyPlaceholderComponent, selector: "ecabs-empty-placeholder", inputs: ["title", "isEmptyMessage", "redirectPath", "srcImage"] }] });
6455
6745
  }
6456
6746
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
6457
6747
  type: Component,
@@ -6521,7 +6811,7 @@ class EcabsNoteComponent {
6521
6811
  }
6522
6812
  }
6523
6813
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsNoteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6524
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsNoteComponent, selector: "ecabs-note", inputs: { type: "type" }, ngImport: i0, template: "<div class=\"flex flex-row px-2 py-4 note items-center\" [ngClass]=\"classByType\">\n <div class=\"flex ml-2\">\n <mat-icon>info_outline</mat-icon>\n </div>\n <div class=\"ml-4 w-full\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.note{border-radius:.25rem}.note .mat-icon{color:inherit}.note--danger{color:var(--color-error);background-color:var(--color-error-opacity)}.note--warn{background-color:var(--color-warning-opacity);color:var(--color-warning)}.note--success{background-color:var(--color-success--opacity);color:var(--color-success)}.note--default{background-color:rgba(var(--color-info-rgb),.06);color:var(--color-info)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
6814
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsNoteComponent, selector: "ecabs-note", inputs: { type: "type" }, ngImport: i0, template: "<div class=\"flex flex-row px-2 py-4 note items-center\" [ngClass]=\"classByType\">\n <div class=\"flex ml-2\">\n <mat-icon>info_outline</mat-icon>\n </div>\n <div class=\"ml-4 w-full\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}.note{border-radius:.25rem}.note .mat-icon{color:inherit}.note--danger{color:var(--color-error);background-color:var(--color-error-opacity)}.note--warn{background-color:var(--color-warning-opacity);color:var(--color-warning)}.note--success{background-color:var(--color-success--opacity);color:var(--color-success)}.note--default{background-color:rgba(var(--color-info-rgb),.06);color:var(--color-info)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
6525
6815
  }
6526
6816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsNoteComponent, decorators: [{
6527
6817
  type: Component,
@@ -6544,166 +6834,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6544
6834
  }]
6545
6835
  }] });
6546
6836
 
6547
- class EcabsBadgeComponent {
6548
- variant = 'default';
6549
- size = 'medium';
6550
- bordered = true;
6551
- /**
6552
- * Icon name, resolved through whichever icon set the library is on (Phosphor
6553
- * today). Deliberately not named after the vendor so a future icon-set change
6554
- * does not ripple out to every call site.
6555
- */
6556
- icon;
6557
- /**
6558
- * Defaults to `bold`: at badge icon sizes (12-18px) a `regular` stroke falls
6559
- * below one device pixel and antialiases into a ragged edge. `bold` also
6560
- * matches the ~26/256 ring thickness of the reference design.
6561
- */
6562
- iconWeight = 'bold';
6563
- /**
6564
- * Material icon ligature, for the cases that need a Material glyph
6565
- * specifically. Used only when no `icon` is supplied.
6566
- */
6567
- materialIcon;
6568
- /**
6569
- * Static so it resolves before the first change detection run, keeping the
6570
- * tooltip binding stable instead of changing after the view is checked.
6571
- */
6572
- labelRef;
6573
- get variantClass() {
6574
- return `badge--${this.variant}`;
6575
- }
6576
- get sizeClass() {
6577
- return `badge--${this.size}`;
6578
- }
6579
- get svgIcon() {
6580
- return buildPhosphorSvgIcon(this.icon, this.iconWeight);
6581
- }
6582
- /**
6583
- * Tooltip message for a clipped label. Read from the DOM rather than an input
6584
- * because the label is projected content. `ecabsTooltipIfTruncated` measures
6585
- * on mouseover, and that host listener also marks this view dirty, so the
6586
- * message is re-read on hover without any explicit change detection call.
6587
- * The directive suppresses the tooltip unless the text is actually clipped.
6588
- */
6589
- get labelText() {
6590
- return this.labelRef?.nativeElement?.textContent?.trim() ?? '';
6591
- }
6592
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6593
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBadgeComponent, selector: "ecabs-badge", inputs: { variant: "variant", size: "size", bordered: "bordered", icon: "icon", iconWeight: "iconWeight", materialIcon: "materialIcon" }, viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], ngImport: i0, template: "<span class=\"badge\"\r\n [ngClass]=\"[variantClass, sizeClass, bordered ? 'badge--bordered' : '']\">\r\n <span class=\"badge__icon badge__icon--slot\">\r\n <ng-content select=\"[ecabsBadgeIcon]\"></ng-content>\r\n </span>\r\n\r\n <mat-icon *ngIf=\"svgIcon\"\r\n class=\"badge__icon\"\r\n [svgIcon]=\"svgIcon\">\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"!svgIcon && materialIcon\"\r\n class=\"badge__icon\">{{ materialIcon }}\r\n </mat-icon>\r\n\r\n <span #label\r\n ecabsTooltipIfTruncated\r\n class=\"badge__label\"\r\n [matTooltip]=\"labelText\">\r\n <ng-content></ng-content>\r\n </span>\r\n</span>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: EcabsTooltipIfTruncatedDirective, selector: "[matTooltip][ecabsTooltipIfTruncated]", inputs: ["classNameTruncatedTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6594
- }
6595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeComponent, decorators: [{
6596
- type: Component,
6597
- args: [{ selector: 'ecabs-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"badge\"\r\n [ngClass]=\"[variantClass, sizeClass, bordered ? 'badge--bordered' : '']\">\r\n <span class=\"badge__icon badge__icon--slot\">\r\n <ng-content select=\"[ecabsBadgeIcon]\"></ng-content>\r\n </span>\r\n\r\n <mat-icon *ngIf=\"svgIcon\"\r\n class=\"badge__icon\"\r\n [svgIcon]=\"svgIcon\">\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"!svgIcon && materialIcon\"\r\n class=\"badge__icon\">{{ materialIcon }}\r\n </mat-icon>\r\n\r\n <span #label\r\n ecabsTooltipIfTruncated\r\n class=\"badge__label\"\r\n [matTooltip]=\"labelText\">\r\n <ng-content></ng-content>\r\n </span>\r\n</span>\r\n" }]
6598
- }], propDecorators: { variant: [{
6599
- type: Input
6600
- }], size: [{
6601
- type: Input
6602
- }], bordered: [{
6603
- type: Input
6604
- }], icon: [{
6605
- type: Input
6606
- }], iconWeight: [{
6607
- type: Input
6608
- }], materialIcon: [{
6609
- type: Input
6610
- }], labelRef: [{
6611
- type: ViewChild,
6612
- args: ['label', { static: true }]
6613
- }] } });
6614
-
6615
- const STATUS_BADGE_VARIANTS = {
6616
- /* #Neutral */
6617
- PENDING: 'default',
6618
- DRAFT: 'default',
6619
- ARCHIVED: 'default',
6620
- RECALLED: 'default',
6621
- INITIALIZED: 'default',
6622
- INACTIVE: 'default',
6623
- /* #Awaiting something */
6624
- RESERVED: 'warning',
6625
- SCHEDULED: 'warning',
6626
- ENDED: 'warning',
6627
- PENDING_DATA: 'warning',
6628
- PARTIAL: 'warning',
6629
- /* #Under way */
6630
- DISPATCHED: 'info',
6631
- CAB_ARRIVED_AT_PICKUP: 'info',
6632
- CAB_ARRIVED_AT_INTERMEDIARY_WAYPOINT: 'info',
6633
- TRIP_STARTED: 'info',
6634
- STARTED: 'info',
6635
- DROPPED_OFF: 'info',
6636
- TRIP_ONGOING: 'info',
6637
- IN_PROGRESS: 'info',
6638
- IN_PROGRESS_ADJUSTMENT: 'info',
6639
- IN_PROGRESS_PAYOUT: 'info',
6640
- PROCESSING: 'info',
6641
- PUBLISHED: 'info',
6642
- PENDING_REVIEW: 'info',
6643
- /* #Landed well */
6644
- ACCEPTED: 'success',
6645
- CAB_ARRIVED_AT_DROPOFF: 'success',
6646
- TRIP_ENDED: 'success',
6647
- COMPLETED: 'success',
6648
- ADJUSTMENT_COMPLETED: 'success',
6649
- CASHED_IN: 'success',
6650
- DONE: 'success',
6651
- SUCCESS: 'success',
6652
- ACTIVE: 'success',
6653
- /* #Landed badly */
6654
- CANCELLED: 'danger',
6655
- REJECTED: 'danger',
6656
- SUSPENDED: 'danger',
6657
- SICK: 'danger',
6658
- NO_SHOW: 'danger',
6659
- UNABLE_TO_COMPLETE: 'danger',
6660
- UNAVAILABLE: 'danger',
6661
- FAILED: 'danger',
6662
- EXPIRED: 'danger',
6663
- BLACKLISTED: 'danger',
6664
- };
6665
- const normaliseStatusEnum = (status) => status.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();
6666
- const resolveStatusBadgeVariant = (status) => (status && STATUS_BADGE_VARIANTS[normaliseStatusEnum(status)]) || 'default';
6667
-
6668
- class EcabsStatusBadgeVariantPipe {
6669
- transform(status) {
6670
- return resolveStatusBadgeVariant(status);
6671
- }
6672
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStatusBadgeVariantPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
6673
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsStatusBadgeVariantPipe, name: "statusBadgeVariant" });
6674
- }
6675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStatusBadgeVariantPipe, decorators: [{
6676
- type: Pipe,
6677
- args: [{
6678
- name: 'statusBadgeVariant',
6679
- }]
6680
- }] });
6681
-
6682
- class EcabsBadgeModule {
6683
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6684
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, declarations: [EcabsBadgeComponent, EcabsStatusBadgeVariantPipe], imports: [CommonModule,
6685
- MatIconModule,
6686
- MatTooltipModule,
6687
- EcabsTooltipIfTruncatedDirectiveModule], exports: [EcabsBadgeComponent, EcabsStatusBadgeVariantPipe] });
6688
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, imports: [CommonModule,
6689
- MatIconModule,
6690
- MatTooltipModule,
6691
- EcabsTooltipIfTruncatedDirectiveModule] });
6692
- }
6693
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBadgeModule, decorators: [{
6694
- type: NgModule,
6695
- args: [{
6696
- declarations: [EcabsBadgeComponent, EcabsStatusBadgeVariantPipe],
6697
- imports: [
6698
- CommonModule,
6699
- MatIconModule,
6700
- MatTooltipModule,
6701
- EcabsTooltipIfTruncatedDirectiveModule,
6702
- ],
6703
- exports: [EcabsBadgeComponent, EcabsStatusBadgeVariantPipe],
6704
- }]
6705
- }] });
6706
-
6707
6837
  class EcabsActionMenuTriggerDirective {
6708
6838
  templateRef;
6709
6839
  constructor(templateRef) {
@@ -6727,7 +6857,9 @@ class EcabsActionMenuComponent {
6727
6857
  xPosition = 'before';
6728
6858
  menuClass = '';
6729
6859
  triggerFocusable = true;
6860
+ showTrigger = true;
6730
6861
  customTrigger;
6862
+ menu;
6731
6863
  menuTrigger;
6732
6864
  get panelClass() {
6733
6865
  return this.menuClass
@@ -6740,9 +6872,7 @@ class EcabsActionMenuComponent {
6740
6872
  itemSvgIcon(item) {
6741
6873
  return buildPhosphorSvgIcon(item.icon, item.iconWeight);
6742
6874
  }
6743
- // A key press bubbling up from a projected button has already opened the menu
6744
- // through that button's click.
6745
- onTriggerKeydown(event) {
6875
+ triggerKeydown(event) {
6746
6876
  if (!this.triggerFocusable || event.target !== event.currentTarget) {
6747
6877
  return;
6748
6878
  }
@@ -6756,11 +6886,11 @@ class EcabsActionMenuComponent {
6756
6886
  return item.label;
6757
6887
  }
6758
6888
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsActionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6759
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsActionMenuComponent, selector: "ecabs-action-menu", inputs: { groups: "groups", triggerIcon: "triggerIcon", triggerIconWeight: "triggerIconWeight", triggerAriaLabel: "triggerAriaLabel", xPosition: "xPosition", menuClass: "menuClass", triggerFocusable: "triggerFocusable" }, queries: [{ propertyName: "customTrigger", first: true, predicate: EcabsActionMenuTriggerDirective, descendants: true }], viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"groups.length\">\n <span *ngIf=\"customTrigger; else defaultTrigger\"\n class=\"action-menu__trigger\"\n [attr.tabindex]=\"triggerFocusable ? 0 : -1\"\n [attr.role]=\"triggerFocusable ? 'button' : null\"\n [matMenuTriggerFor]=\"menu\"\n (keydown.enter)=\"onTriggerKeydown($event)\"\n (keydown.space)=\"onTriggerKeydown($event)\">\n <ng-container *ngTemplateOutlet=\"customTrigger.templateRef\"></ng-container>\n </span>\n\n <ng-template #defaultTrigger>\n <button mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"triggerAriaLabel || null\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon class=\"action-menu__trigger-icon\"\n [svgIcon]=\"triggerSvgIcon\"\n aria-hidden=\"true\">\n </mat-icon>\n </button>\n </ng-template>\n</ng-container>\n\n<mat-menu #menu=\"matMenu\"\n [class]=\"panelClass\"\n [xPosition]=\"xPosition\">\n <ng-container *ngFor=\"let group of groups; let isFirst = first; trackBy: trackByGroup\">\n <mat-divider *ngIf=\"!isFirst\"></mat-divider>\n <button *ngFor=\"let item of group; trackBy: trackByItem\"\n mat-menu-item\n type=\"button\"\n class=\"action-menu-item\"\n [class.action-menu-item--destructive]=\"item.isDestructive\"\n (click)=\"item.action()\">\n <mat-icon *ngIf=\"item.icon\"\n class=\"action-menu-item__icon\"\n [svgIcon]=\"itemSvgIcon(item)\"\n aria-hidden=\"true\">\n </mat-icon>\n <span class=\"action-menu-item__label\">{{ item.label }}</span>\n </button>\n </ng-container>\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6889
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsActionMenuComponent, selector: "ecabs-action-menu", inputs: { groups: "groups", triggerIcon: "triggerIcon", triggerIconWeight: "triggerIconWeight", triggerAriaLabel: "triggerAriaLabel", xPosition: "xPosition", menuClass: "menuClass", triggerFocusable: "triggerFocusable", showTrigger: "showTrigger" }, queries: [{ propertyName: "customTrigger", first: true, predicate: EcabsActionMenuTriggerDirective, descendants: true }], viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenu, descendants: true, static: true }, { propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"showTrigger && groups.length\">\r\n <span *ngIf=\"customTrigger; else defaultTrigger\"\r\n class=\"action-menu__trigger\"\r\n [attr.tabindex]=\"triggerFocusable ? 0 : -1\"\r\n [attr.role]=\"triggerFocusable ? 'button' : null\"\r\n [matMenuTriggerFor]=\"menu\"\r\n (keydown.enter)=\"triggerKeydown($event)\"\r\n (keydown.space)=\"triggerKeydown($event)\">\r\n <ng-container *ngTemplateOutlet=\"customTrigger.templateRef\"></ng-container>\r\n </span>\r\n\r\n <ng-template #defaultTrigger>\r\n <button mat-icon-button\r\n type=\"button\"\r\n [attr.aria-label]=\"triggerAriaLabel || null\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon class=\"action-menu__trigger-icon\"\r\n [svgIcon]=\"triggerSvgIcon\"\r\n aria-hidden=\"true\">\r\n </mat-icon>\r\n </button>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\"\r\n [class]=\"panelClass\"\r\n [xPosition]=\"xPosition\">\r\n <ng-container *ngFor=\"let group of groups; let isFirst = first; trackBy: trackByGroup\">\r\n <mat-divider *ngIf=\"!isFirst\"></mat-divider>\r\n <button *ngFor=\"let item of group; trackBy: trackByItem\"\r\n mat-menu-item\r\n type=\"button\"\r\n class=\"action-menu-item\"\r\n [class.action-menu-item--destructive]=\"item.isDestructive\"\r\n (click)=\"item.action()\">\r\n <mat-icon *ngIf=\"item.icon\"\r\n class=\"action-menu-item__icon\"\r\n [svgIcon]=\"itemSvgIcon(item)\"\r\n aria-hidden=\"true\">\r\n </mat-icon>\r\n <span class=\"action-menu-item__label\">{{ item.label }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6760
6890
  }
6761
6891
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsActionMenuComponent, decorators: [{
6762
6892
  type: Component,
6763
- args: [{ selector: 'ecabs-action-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"groups.length\">\n <span *ngIf=\"customTrigger; else defaultTrigger\"\n class=\"action-menu__trigger\"\n [attr.tabindex]=\"triggerFocusable ? 0 : -1\"\n [attr.role]=\"triggerFocusable ? 'button' : null\"\n [matMenuTriggerFor]=\"menu\"\n (keydown.enter)=\"onTriggerKeydown($event)\"\n (keydown.space)=\"onTriggerKeydown($event)\">\n <ng-container *ngTemplateOutlet=\"customTrigger.templateRef\"></ng-container>\n </span>\n\n <ng-template #defaultTrigger>\n <button mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"triggerAriaLabel || null\"\n [matMenuTriggerFor]=\"menu\">\n <mat-icon class=\"action-menu__trigger-icon\"\n [svgIcon]=\"triggerSvgIcon\"\n aria-hidden=\"true\">\n </mat-icon>\n </button>\n </ng-template>\n</ng-container>\n\n<mat-menu #menu=\"matMenu\"\n [class]=\"panelClass\"\n [xPosition]=\"xPosition\">\n <ng-container *ngFor=\"let group of groups; let isFirst = first; trackBy: trackByGroup\">\n <mat-divider *ngIf=\"!isFirst\"></mat-divider>\n <button *ngFor=\"let item of group; trackBy: trackByItem\"\n mat-menu-item\n type=\"button\"\n class=\"action-menu-item\"\n [class.action-menu-item--destructive]=\"item.isDestructive\"\n (click)=\"item.action()\">\n <mat-icon *ngIf=\"item.icon\"\n class=\"action-menu-item__icon\"\n [svgIcon]=\"itemSvgIcon(item)\"\n aria-hidden=\"true\">\n </mat-icon>\n <span class=\"action-menu-item__label\">{{ item.label }}</span>\n </button>\n </ng-container>\n</mat-menu>\n" }]
6893
+ args: [{ selector: 'ecabs-action-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"showTrigger && groups.length\">\r\n <span *ngIf=\"customTrigger; else defaultTrigger\"\r\n class=\"action-menu__trigger\"\r\n [attr.tabindex]=\"triggerFocusable ? 0 : -1\"\r\n [attr.role]=\"triggerFocusable ? 'button' : null\"\r\n [matMenuTriggerFor]=\"menu\"\r\n (keydown.enter)=\"triggerKeydown($event)\"\r\n (keydown.space)=\"triggerKeydown($event)\">\r\n <ng-container *ngTemplateOutlet=\"customTrigger.templateRef\"></ng-container>\r\n </span>\r\n\r\n <ng-template #defaultTrigger>\r\n <button mat-icon-button\r\n type=\"button\"\r\n [attr.aria-label]=\"triggerAriaLabel || null\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon class=\"action-menu__trigger-icon\"\r\n [svgIcon]=\"triggerSvgIcon\"\r\n aria-hidden=\"true\">\r\n </mat-icon>\r\n </button>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\"\r\n [class]=\"panelClass\"\r\n [xPosition]=\"xPosition\">\r\n <ng-container *ngFor=\"let group of groups; let isFirst = first; trackBy: trackByGroup\">\r\n <mat-divider *ngIf=\"!isFirst\"></mat-divider>\r\n <button *ngFor=\"let item of group; trackBy: trackByItem\"\r\n mat-menu-item\r\n type=\"button\"\r\n class=\"action-menu-item\"\r\n [class.action-menu-item--destructive]=\"item.isDestructive\"\r\n (click)=\"item.action()\">\r\n <mat-icon *ngIf=\"item.icon\"\r\n class=\"action-menu-item__icon\"\r\n [svgIcon]=\"itemSvgIcon(item)\"\r\n aria-hidden=\"true\">\r\n </mat-icon>\r\n <span class=\"action-menu-item__label\">{{ item.label }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n" }]
6764
6894
  }], propDecorators: { groups: [{
6765
6895
  type: Input
6766
6896
  }], triggerIcon: [{
@@ -6775,9 +6905,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6775
6905
  type: Input
6776
6906
  }], triggerFocusable: [{
6777
6907
  type: Input
6908
+ }], showTrigger: [{
6909
+ type: Input
6778
6910
  }], customTrigger: [{
6779
6911
  type: ContentChild,
6780
6912
  args: [EcabsActionMenuTriggerDirective]
6913
+ }], menu: [{
6914
+ type: ViewChild,
6915
+ args: [MatMenu, { static: true }]
6781
6916
  }], menuTrigger: [{
6782
6917
  type: ViewChild,
6783
6918
  args: [MatMenuTrigger]
@@ -6868,7 +7003,7 @@ class EcabsDialogConfirmComponent {
6868
7003
  this.dialogRef.close(this.data.popoverResult ?? false);
6869
7004
  }
6870
7005
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }, { token: UnsubscribeService }, { token: EcabsComponentsService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
6871
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogConfirmComponent, selector: "ecabs-dialog-confirm", providers: [UnsubscribeService], ngImport: i0, template: "<div matDialogTitle *ngIf=\"data?.titleTemplate; else title\">\n <div class=\"flex items-center justify-between modal-title\">\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\n\n <mat-icon *ngIf=\"!!data?.isPopover\" (click)=\"closeOnPopover()\"\n (keydown.enter)=\"closeOnPopover()\"\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\n close\n </mat-icon>\n </div>\n</div>\n\n\n<ng-template #title>\n <div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\n <mat-icon (click)=\"closeOnPopover()\"\n (keydown.enter)=\"closeOnPopover()\"\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\n close\n </mat-icon>\n </div>\n\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\n {{ data.title }}\n </div>\n </div>\n</ng-template>\n\n\n<div mat-dialog-content>\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\n</div>\n\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\n <div mat-dialog-actions\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize || data?.splitButtonsWidth}\"\n class=\"btn__group flex justify-end w-full\">\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\n [full]=\"data?.useFullButtonSize\"\n (click)=\"closeFalsey()\"\n (keydown.enter)=\"closeFalsey()\"\n [style]=\"data?.cancelStyle || 'stroked'\">\n {{ data?.cancelLabel }}\n </ecabs-buttons>\n\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\n [full]=\"data?.useFullButtonSize\"\n [color]=\"data?.color || color\"\n [style]=\"data?.confirmStyle || 'flat'\"\n [loading]=\"data?.loading$ | async\"\n (click)=\"closeDialog()\"\n [disabled]=\"data?.disableConfirm$ | async\"\n (keydown.enter)=\"closeDialog()\">\n {{ data?.confirmLabel }}\n </ecabs-buttons>\n </div>\n</div>\n", styles: [":host .mat-icon.icon--close,:host ::ng-deep .mat-icon.icon--close{cursor:pointer;color:var(--color-gray-500)}.modal-title.warn{color:var(--color-error)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
7006
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogConfirmComponent, selector: "ecabs-dialog-confirm", providers: [UnsubscribeService], ngImport: i0, template: "<div matDialogTitle *ngIf=\"data?.titleTemplate; else title\">\n <div class=\"flex items-center justify-between modal-title\">\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\n\n <mat-icon *ngIf=\"!!data?.isPopover\" (click)=\"closeOnPopover()\"\n (keydown.enter)=\"closeOnPopover()\"\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\n close\n </mat-icon>\n </div>\n</div>\n\n\n<ng-template #title>\n <div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\n <mat-icon (click)=\"closeOnPopover()\"\n (keydown.enter)=\"closeOnPopover()\"\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\n close\n </mat-icon>\n </div>\n\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\n {{ data.title }}\n </div>\n </div>\n</ng-template>\n\n\n<div mat-dialog-content>\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\n</div>\n\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\n <div mat-dialog-actions\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize || data?.splitButtonsWidth}\"\n class=\"btn__group flex justify-end w-full\">\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\n [full]=\"data?.useFullButtonSize\"\n (click)=\"closeFalsey()\"\n (keydown.enter)=\"closeFalsey()\"\n [style]=\"data?.cancelStyle || 'stroked'\">\n {{ data?.cancelLabel }}\n </ecabs-buttons>\n\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\n [full]=\"data?.useFullButtonSize\"\n [color]=\"data?.color || color\"\n [style]=\"data?.confirmStyle || 'flat'\"\n [loading]=\"data?.loading$ | async\"\n (click)=\"closeDialog()\"\n [disabled]=\"data?.disableConfirm$ | async\"\n (keydown.enter)=\"closeDialog()\">\n {{ data?.confirmLabel }}\n </ecabs-buttons>\n </div>\n</div>\n", styles: [":host .mat-icon.icon--close,:host ::ng-deep .mat-icon.icon--close{cursor:pointer;color:var(--color-gray-500)}.modal-title.warn{color:var(--color-error)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
6872
7007
  }
6873
7008
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogConfirmComponent, decorators: [{
6874
7009
  type: Component,
@@ -6933,7 +7068,7 @@ class EcabsDialogMessageComponent {
6933
7068
  }
6934
7069
  }
6935
7070
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogMessageComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
6936
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogMessageComponent, selector: "ecabs-dialog-message", ngImport: i0, template: "<div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\n <mat-icon\n (click)=\"dialogRef.close(false)\"\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\"\n role=\"button\"\n >\n close\n </mat-icon>\n </div>\n\n <div *ngIf=\"data.title\" class=\"font-semibold heading--xs\" [ngClass]=\"classByType\">\n {{ data.title }}\n </div>\n</div>\n\n<div mat-dialog-content>\n {{data?.message}}\n</div>\n\n<div class=\"pb-6\">\n <div mat-dialog-actions class=\"btn__group flex justify-end w-full\" *ngIf=\"!data?.isPopover\">\n <ecabs-buttons [color]=\"data?.color || color\" [full]=\"data?.isButtonBlock\" [loading]=\"data.loading$ | async\" (click)=\"closeDialog()\">\n {{ data?.confirmLabel }}\n </ecabs-buttons>\n </div>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host .mat-mdc-dialog-title .mat-icon.icon--close,:host ::ng-deep .mat-mdc-dialog-title .mat-icon.icon--close{width:20px;height:20px;line-height:20px;font-size:20px}:host app-buttons,:host ::ng-deep app-buttons{width:calc(50% - .5rem)}:host button,:host ::ng-deep button{width:100%}.title--accent{color:var(--color-error)}.title--warn{color:var(--color-warning)}.title--success{color:var(--color-success)}.title--default{color:var(--color-info)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
7071
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogMessageComponent, selector: "ecabs-dialog-message", ngImport: i0, template: "<div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\n <mat-icon\n (click)=\"dialogRef.close(false)\"\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\"\n role=\"button\"\n >\n close\n </mat-icon>\n </div>\n\n <div *ngIf=\"data.title\" class=\"font-semibold heading--xs\" [ngClass]=\"classByType\">\n {{ data.title }}\n </div>\n</div>\n\n<div mat-dialog-content>\n {{data?.message}}\n</div>\n\n<div class=\"pb-6\">\n <div mat-dialog-actions class=\"btn__group flex justify-end w-full\" *ngIf=\"!data?.isPopover\">\n <ecabs-buttons [color]=\"data?.color || color\" [full]=\"data?.isButtonBlock\" [loading]=\"data.loading$ | async\" (click)=\"closeDialog()\">\n {{ data?.confirmLabel }}\n </ecabs-buttons>\n </div>\n</div>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host .mat-mdc-dialog-title .mat-icon.icon--close,:host ::ng-deep .mat-mdc-dialog-title .mat-icon.icon--close{width:20px;height:20px;line-height:20px;font-size:20px}:host app-buttons,:host ::ng-deep app-buttons{width:calc(50% - .5rem)}:host button,:host ::ng-deep button{width:100%}.title--accent{color:var(--color-error)}.title--warn{color:var(--color-warning)}.title--success{color:var(--color-success)}.title--default{color:var(--color-info)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
6937
7072
  }
6938
7073
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogMessageComponent, decorators: [{
6939
7074
  type: Component,
@@ -6959,7 +7094,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6959
7094
  class EcabsBreadcrumbComponent {
6960
7095
  breadcrumb;
6961
7096
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6962
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBreadcrumbComponent, selector: "ecabs-breadcrumb", inputs: { breadcrumb: "breadcrumb" }, ngImport: i0, template: "<ul class=\"flex text-gray-500 text-sm\">\n <li\n *ngFor=\"let item of breadcrumb; let counter = index\"\n [routerLink]=\"item.url\"\n [ngClass]=\"{ 'cursor-pointer': item.url }\"\n class=\"flex\"\n >\n <mat-icon class=\"!text-sm text-center text-gray-400\" *ngIf=\"counter !== 0\">keyboard_arrow_right</mat-icon>\n <span>{{ item.title }}</span>\n </li>\n</ul>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7097
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBreadcrumbComponent, selector: "ecabs-breadcrumb", inputs: { breadcrumb: "breadcrumb" }, ngImport: i0, template: "<ul class=\"flex text-gray-500 text-sm\">\n <li\n *ngFor=\"let item of breadcrumb; let counter = index\"\n [routerLink]=\"item.url\"\n [ngClass]=\"{ 'cursor-pointer': item.url }\"\n class=\"flex\"\n >\n <mat-icon class=\"!text-sm text-center text-gray-400\" *ngIf=\"counter !== 0\">keyboard_arrow_right</mat-icon>\n <span>{{ item.title }}</span>\n </li>\n</ul>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6963
7098
  }
6964
7099
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBreadcrumbComponent, decorators: [{
6965
7100
  type: Component,
@@ -7019,7 +7154,7 @@ class EcabsLanguageSelectorComponent {
7019
7154
  return lang.of(code);
7020
7155
  }
7021
7156
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLanguageSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7022
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsLanguageSelectorComponent, selector: "ecabs-language-selector", inputs: { languages: "languages", currentLanguage: "currentLanguage", showLabelTitle: "showLabelTitle", flagOnly: "flagOnly", tooltip: "tooltip" }, outputs: { languageChanged: "languageChanged" }, usesOnChanges: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\"\n [ngClass]=\"{'flag-only': flagOnly}\">\n <mat-label></mat-label>\n <mat-select class=\"capitalize\"\n [(ngModel)]=\"selectedLang\"\n name=\"language\"\n (ngModelChange)=\"toggleLang()\"\n panelClass=\"wide-select\">\n <mat-select-trigger>\n <div class=\"flex items-center\" [matTooltip]=\"tooltip\">\n <span [ngClass]=\"flagClass(matchSelected())\"></span>\n <div *ngIf=\"!flagOnly\" class=\"ml-2\">{{ standardLang(matchSelected()) }}</div>\n </div>\n </mat-select-trigger>\n <mat-option class=\"capitalize\" *ngFor=\"let lang of languages\" [value]=\"lang\">\n <div class=\"flex items-center\">\n <span [ngClass]=\"flagClass(lang)\"></span>\n <div class=\"ml-2\">{{ standardLang(lang) }}</div>\n </div>\n </mat-option>\n </mat-select>\n</mat-form-field>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host::ng-deep .mat-mdc-select{padding:0;border:0}:host::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host::ng-deep .mat-mdc-select,:host::ng-deep .mat-mdc-select .mdc-list-item{font-size:12px;font-size:.75rem}:host::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item{font-size:12px;font-size:.75rem}:host::ng-deep .mat-mdc-form-field{width:auto}:host::ng-deep .flag-only .mat-mdc-select .mat-mdc-select-arrow-wrapper{width:0}:host::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,:host::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,:host::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
7157
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsLanguageSelectorComponent, selector: "ecabs-language-selector", inputs: { languages: "languages", currentLanguage: "currentLanguage", showLabelTitle: "showLabelTitle", flagOnly: "flagOnly", tooltip: "tooltip" }, outputs: { languageChanged: "languageChanged" }, usesOnChanges: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\"\n [ngClass]=\"{'flag-only': flagOnly}\">\n <mat-label></mat-label>\n <mat-select class=\"capitalize\"\n [(ngModel)]=\"selectedLang\"\n name=\"language\"\n (ngModelChange)=\"toggleLang()\"\n panelClass=\"wide-select\">\n <mat-select-trigger>\n <div class=\"flex items-center\" [matTooltip]=\"tooltip\">\n <span [ngClass]=\"flagClass(matchSelected())\"></span>\n <div *ngIf=\"!flagOnly\" class=\"ml-2\">{{ standardLang(matchSelected()) }}</div>\n </div>\n </mat-select-trigger>\n <mat-option class=\"capitalize\" *ngFor=\"let lang of languages\" [value]=\"lang\">\n <div class=\"flex items-center\">\n <span [ngClass]=\"flagClass(lang)\"></span>\n <div class=\"ml-2\">{{ standardLang(lang) }}</div>\n </div>\n </mat-option>\n </mat-select>\n</mat-form-field>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host::ng-deep .mat-mdc-select{padding:0;border:0}:host::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host::ng-deep .mat-mdc-select,:host::ng-deep .mat-mdc-select .mdc-list-item{font-size:12px;font-size:.75rem}:host::ng-deep .mat-mdc-select-panel .mat-mdc-option.mdc-list-item{font-size:12px;font-size:.75rem}:host::ng-deep .mat-mdc-form-field{width:auto}:host::ng-deep .flag-only .mat-mdc-select .mat-mdc-select-arrow-wrapper{width:0}:host::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,:host::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,:host::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
7023
7158
  }
7024
7159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsLanguageSelectorComponent, decorators: [{
7025
7160
  type: Component,
@@ -7666,7 +7801,7 @@ class EcabsActiveStatusFilterComponent {
7666
7801
  return this.initialStatus === status;
7667
7802
  }
7668
7803
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsActiveStatusFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7669
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsActiveStatusFilterComponent, selector: "ecabs-active-status-filter", inputs: { statuses: "statuses", initialStatus: "initialStatus" }, outputs: { statusChange: "statusChange" }, ngImport: i0, template: "<div class=\"mb-5 mt-10\">\n <mat-chip-listbox>\n <mat-chip-option *ngFor=\"let status of statuses\"\n class=\"!rounded-full\"\n [ngClass]=\"checkSelectableStatus(status?.value) ? 'chip--selected' : 'chip--not-selected'\"\n [selected]=\"checkSelectableStatus(status?.value)\"\n (keydown.enter)=\"onFilter(status?.value)\"\n (click)=\"onFilter(status?.value)\">\n {{ status.text }}\n </mat-chip-option>\n </mat-chip-listbox>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i2$4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }] });
7804
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsActiveStatusFilterComponent, selector: "ecabs-active-status-filter", inputs: { statuses: "statuses", initialStatus: "initialStatus" }, outputs: { statusChange: "statusChange" }, ngImport: i0, template: "<div class=\"mb-5 mt-10\">\n <mat-chip-listbox>\n <mat-chip-option *ngFor=\"let status of statuses\"\n class=\"!rounded-full\"\n [ngClass]=\"checkSelectableStatus(status?.value) ? 'chip--selected' : 'chip--not-selected'\"\n [selected]=\"checkSelectableStatus(status?.value)\"\n (keydown.enter)=\"onFilter(status?.value)\"\n (click)=\"onFilter(status?.value)\">\n {{ status.text }}\n </mat-chip-option>\n </mat-chip-listbox>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$3.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i2$3.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }] });
7670
7805
  }
7671
7806
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsActiveStatusFilterComponent, decorators: [{
7672
7807
  type: Component,
@@ -7790,7 +7925,7 @@ class EcabsHeaderComponent {
7790
7925
  this.subscription.unsubscribe();
7791
7926
  }
7792
7927
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsHeaderComponent, deps: [{ token: HeaderService }], target: i0.ɵɵFactoryTarget.Component });
7793
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsHeaderComponent, selector: "ecabs-header", inputs: { header: "header", user: "user", avatar: "avatar", loading: "loading" }, outputs: { avatarChange: "avatarChange", toggleNav: "toggleNav" }, viewQueries: [{ propertyName: "basicHeader", first: true, predicate: ["basicHeader"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{loading}\" class=\"progress-bar\"></div>\n\n<ul class=\"flex pb-4 pt-3 px-10\">\n <li class=\"flex flex-col flex-1 justify-center\">\n <div class=\"sm:hidden md:block\">\n <ecabs-breadcrumb [breadcrumb]=\"header?.breadcrumb\"></ecabs-breadcrumb>\n </div>\n\n <div class=\"heading--lg text-brand-dark font-medium\">\n <mat-icon class=\"mr-3 text-gray-500\" (click)=\"toggleNav.emit()\" role=\"button\">menu</mat-icon>\n\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div #basicHeader></div>\n </div>\n </li>\n\n <li>\n <div class=\"flex items-center\">\n <ecabs-profile [name]=\"user?.name\" [title]=\"user?.title\" [avatar]=\"avatar\"\n (avatarChange)=\"avatarChange.emit()\"></ecabs-profile>\n </div>\n </li>\n</ul>\n", styles: ["@keyframes progressMove{0%{margin-left:0}to{margin-left:80%}}.progress-bar{height:4px}.progress-bar.loading:before{animation-name:progressMove;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:ease-out;display:inline-block;vertical-align:top;width:20%;content:\"\";background-color:var(--color-brand-dark);height:4px;animation-direction:alternate}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EcabsBreadcrumbComponent, selector: "ecabs-breadcrumb", inputs: ["breadcrumb"] }, { kind: "component", type: EcabsProfileComponent, selector: "ecabs-profile", inputs: ["avatar", "name", "title"], outputs: ["avatarChange"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
7928
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsHeaderComponent, selector: "ecabs-header", inputs: { header: "header", user: "user", avatar: "avatar", loading: "loading" }, outputs: { avatarChange: "avatarChange", toggleNav: "toggleNav" }, viewQueries: [{ propertyName: "basicHeader", first: true, predicate: ["basicHeader"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{loading}\" class=\"progress-bar\"></div>\n\n<ul class=\"flex pb-4 pt-3 px-10\">\n <li class=\"flex flex-col flex-1 justify-center\">\n <div class=\"sm:hidden md:block\">\n <ecabs-breadcrumb [breadcrumb]=\"header?.breadcrumb\"></ecabs-breadcrumb>\n </div>\n\n <div class=\"heading--lg text-brand-dark font-medium\">\n <mat-icon class=\"mr-3 text-gray-500\" (click)=\"toggleNav.emit()\" role=\"button\">menu</mat-icon>\n\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div #basicHeader></div>\n </div>\n </li>\n\n <li>\n <div class=\"flex items-center\">\n <ecabs-profile [name]=\"user?.name\" [title]=\"user?.title\" [avatar]=\"avatar\"\n (avatarChange)=\"avatarChange.emit()\"></ecabs-profile>\n </div>\n </li>\n</ul>\n", styles: ["@keyframes progressMove{0%{margin-left:0}to{margin-left:80%}}.progress-bar{height:4px}.progress-bar.loading:before{animation-name:progressMove;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:ease-out;display:inline-block;vertical-align:top;width:20%;content:\"\";background-color:var(--color-brand-dark);height:4px;animation-direction:alternate}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EcabsBreadcrumbComponent, selector: "ecabs-breadcrumb", inputs: ["breadcrumb"] }, { kind: "component", type: EcabsProfileComponent, selector: "ecabs-profile", inputs: ["avatar", "name", "title"], outputs: ["avatarChange"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
7794
7929
  }
7795
7930
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsHeaderComponent, decorators: [{
7796
7931
  type: Component,
@@ -8225,13 +8360,13 @@ class EcabsMenuItemsComponent {
8225
8360
  });
8226
8361
  }
8227
8362
  }
8228
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsComponent, deps: [{ token: UnsubscribeService }, { token: i2$2.MatIconRegistry }, { token: i3$6.DomSanitizer }, { token: i4$4.Router }], target: i0.ɵɵFactoryTarget.Component });
8229
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsMenuItemsComponent, selector: "ecabs-menu-items", inputs: { menuItems: "menuItems", minimizeSidebar: "minimizeSidebar", truncateTo: "truncateTo" }, outputs: { toggleSidebar: "toggleSidebar" }, providers: [UnsubscribeService], usesOnChanges: true, ngImport: i0, template: "<ul>\n <li\n *ngFor=\"let item of menuItems; let i = index\"\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\n >\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\n [routerLink]=\"item.url ? [item.url] : []\"\n class=\"p-4 flex items-center h-max\"\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\"\n >\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\n {{ item.icon }}\n </mat-icon>\n <span *ngIf=\"!minimizeSidebar\"\n class=\"inline-block align-middle\">\n {{ item.title }}\n </span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n </a>\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\n </ng-container>\n </li>\n</ul>\n\n<ng-template #firstChildren let-subItems=\"subItems\">\n <ng-container *ngIf=\"!minimizeSidebar\">\n <ul class=\"ml-12\">\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\n <a #rla=\"routerLinkActive\"\n (click)=\"toggleSubItem(item, subItems)\"\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\n [routerLink]=\"item.url ? [item.url] : []\"\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\n >\n <span [title]=\"item.title\">\n {{ item.title | truncate: truncateTo }}\n </span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\n keyboard_arrow_right\n </mat-icon>\n </div>\n </a>\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #secondChildren let-subItems=\"subItems\">\n <ul class=\"ml-3\">\n <li *ngFor=\"let item of subItems\">\n <a #rla=\"routerLinkActive\"\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\n [routerLink]=\"item.url ? [item.url] : []\"\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\n <span>{{ item.title }}</span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n </a>\n </li>\n </ul>\n</ng-template>\n", styles: [":host::ng-deep li.text-brand-dark svg path{fill:currentColor}:host::ng-deep .badge{display:inline-flex;justify-content:center;align-items:center;width:41px;height:24px;border-radius:4px;font-size:12px;margin-left:12px;background-color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4$4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4$4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: EcabsTruncatePipe, name: "truncate" }] });
8363
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsComponent, deps: [{ token: UnsubscribeService }, { token: i4.MatIconRegistry }, { token: i3$6.DomSanitizer }, { token: i4$5.Router }], target: i0.ɵɵFactoryTarget.Component });
8364
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsMenuItemsComponent, selector: "ecabs-menu-items", inputs: { menuItems: "menuItems", minimizeSidebar: "minimizeSidebar", truncateTo: "truncateTo" }, outputs: { toggleSidebar: "toggleSidebar" }, providers: [UnsubscribeService], usesOnChanges: true, ngImport: i0, template: "<ul>\n <li\n *ngFor=\"let item of menuItems; let i = index\"\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\n >\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\n [routerLink]=\"item.url ? [item.url] : []\"\n class=\"p-4 flex items-center h-max\"\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\"\n >\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\n {{ item.icon }}\n </mat-icon>\n <span *ngIf=\"!minimizeSidebar\"\n class=\"inline-block align-middle\">\n {{ item.title }}\n </span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n </a>\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\n </ng-container>\n </li>\n</ul>\n\n<ng-template #firstChildren let-subItems=\"subItems\">\n <ng-container *ngIf=\"!minimizeSidebar\">\n <ul class=\"ml-12\">\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\n <a #rla=\"routerLinkActive\"\n (click)=\"toggleSubItem(item, subItems)\"\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\n [routerLink]=\"item.url ? [item.url] : []\"\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\n >\n <span [title]=\"item.title\">\n {{ item.title | truncate: truncateTo }}\n </span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\n keyboard_arrow_right\n </mat-icon>\n </div>\n </a>\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #secondChildren let-subItems=\"subItems\">\n <ul class=\"ml-3\">\n <li *ngFor=\"let item of subItems\">\n <a #rla=\"routerLinkActive\"\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\n [routerLink]=\"item.url ? [item.url] : []\"\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\n <span>{{ item.title }}</span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n </a>\n </li>\n </ul>\n</ng-template>\n", styles: [":host::ng-deep li.text-brand-dark svg path{fill:currentColor}:host::ng-deep .badge{display:inline-flex;justify-content:center;align-items:center;width:41px;height:24px;border-radius:4px;font-size:12px;margin-left:12px;background-color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4$5.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: EcabsTruncatePipe, name: "truncate" }] });
8230
8365
  }
8231
8366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMenuItemsComponent, decorators: [{
8232
8367
  type: Component,
8233
8368
  args: [{ selector: 'ecabs-menu-items', providers: [UnsubscribeService], template: "<ul>\n <li\n *ngFor=\"let item of menuItems; let i = index\"\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\n >\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\n [routerLink]=\"item.url ? [item.url] : []\"\n class=\"p-4 flex items-center h-max\"\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\"\n >\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\n {{ item.icon }}\n </mat-icon>\n <span *ngIf=\"!minimizeSidebar\"\n class=\"inline-block align-middle\">\n {{ item.title }}\n </span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n </a>\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\n </ng-container>\n </li>\n</ul>\n\n<ng-template #firstChildren let-subItems=\"subItems\">\n <ng-container *ngIf=\"!minimizeSidebar\">\n <ul class=\"ml-12\">\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\n <a #rla=\"routerLinkActive\"\n (click)=\"toggleSubItem(item, subItems)\"\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\n [routerLink]=\"item.url ? [item.url] : []\"\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\n >\n <span [title]=\"item.title\">\n {{ item.title | truncate: truncateTo }}\n </span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\n keyboard_arrow_right\n </mat-icon>\n </div>\n </a>\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #secondChildren let-subItems=\"subItems\">\n <ul class=\"ml-3\">\n <li *ngFor=\"let item of subItems\">\n <a #rla=\"routerLinkActive\"\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\n [routerLink]=\"item.url ? [item.url] : []\"\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\n <span>{{ item.title }}</span>\n <div *ngIf=\"item.badge\" class=\"badge text-white\">\n {{ item.badge }}\n </div>\n </a>\n </li>\n </ul>\n</ng-template>\n", styles: [":host::ng-deep li.text-brand-dark svg path{fill:currentColor}:host::ng-deep .badge{display:inline-flex;justify-content:center;align-items:center;width:41px;height:24px;border-radius:4px;font-size:12px;margin-left:12px;background-color:var(--color-error)}\n"] }]
8234
- }], ctorParameters: function () { return [{ type: UnsubscribeService }, { type: i2$2.MatIconRegistry }, { type: i3$6.DomSanitizer }, { type: i4$4.Router }]; }, propDecorators: { menuItems: [{
8369
+ }], ctorParameters: function () { return [{ type: UnsubscribeService }, { type: i4.MatIconRegistry }, { type: i3$6.DomSanitizer }, { type: i4$5.Router }]; }, propDecorators: { menuItems: [{
8235
8370
  type: Input
8236
8371
  }], minimizeSidebar: [{
8237
8372
  type: Input
@@ -8258,7 +8393,7 @@ class EcabsSidebarComponent {
8258
8393
  this.sidebarChange.emit(this.minimizeSidebar);
8259
8394
  }
8260
8395
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSidebarComponent, selector: "ecabs-sidebar", inputs: { allMenuItems: "allMenuItems", logoutText: "logoutText", secondaryMenu: "secondaryMenu", logo: "logo" }, outputs: { logout: "logout", langChange: "langChange", sidebarChange: "sidebarChange" }, ngImport: i0, template: "<section [ngClass]=\"minimizeSidebar ? 'w-16' : 'w-72'\" class=\"h-full\">\n <ul class=\"relative h-full p-2 flex flex-col\">\n <li *ngIf=\"logo\" [ngClass]=\"minimizeSidebar ? 'w-full items-center text-center' : 'w-20 ml-10'\" class=\"py-8\">\n <ng-container *ngTemplateOutlet=\"logo\"></ng-container>\n </li>\n\n <li [ngClass]=\"minimizeSidebar ? 'overflow-visible' : 'overflow-auto'\" class=\"mb-16 pr-1\">\n <ecabs-menu-items [menuItems]=\"allMenuItems\" [minimizeSidebar]=\"minimizeSidebar\"\n (toggleSidebar)=\"toggle()\"></ecabs-menu-items>\n </li>\n\n <li class=\"mt-auto\">\n <ul>\n <li *ngIf=\"secondaryMenu\" class=\"flex justify-center mb-5\">\n <ng-container *ngTemplateOutlet=\"secondaryMenu\"></ng-container>\n </li>\n\n <li class=\"flex cursor-pointer items-center w-full p-4 logout-btn\">\n <!-- eslint-disable-next-line -->\n <a class=\"text-gray-500\" (click)=\"onLogout()\">\n <mat-icon class=\"inline-block align-middle mr-4\">exit_to_app</mat-icon>\n <span class=\"inline-block align-middle\" *ngIf=\"!minimizeSidebar\">{{ logoutText }}</span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n\n <!--#::TODO Find alternative to display correctly -->\n<!-- <div class=\"hidden md:block absolute z-20 -right-3 top-[calc(85%-1rem)]-->\n<!-- rounded-full bg-white text-brand-dark shadow-md cursor-pointer hover:bg-gray-100\"-->\n<!-- (click)=\"toggle()\">-->\n<!-- <mat-icon class=\"inline-block align-middle {{ !minimizeSidebar ? 'rotate-180' : '' }}\">keyboard_arrow_right</mat-icon>-->\n<!-- </div>-->\n</section>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EcabsMenuItemsComponent, selector: "ecabs-menu-items", inputs: ["menuItems", "minimizeSidebar", "truncateTo"], outputs: ["toggleSidebar"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
8396
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSidebarComponent, selector: "ecabs-sidebar", inputs: { allMenuItems: "allMenuItems", logoutText: "logoutText", secondaryMenu: "secondaryMenu", logo: "logo" }, outputs: { logout: "logout", langChange: "langChange", sidebarChange: "sidebarChange" }, ngImport: i0, template: "<section [ngClass]=\"minimizeSidebar ? 'w-16' : 'w-72'\" class=\"h-full\">\n <ul class=\"relative h-full p-2 flex flex-col\">\n <li *ngIf=\"logo\" [ngClass]=\"minimizeSidebar ? 'w-full items-center text-center' : 'w-20 ml-10'\" class=\"py-8\">\n <ng-container *ngTemplateOutlet=\"logo\"></ng-container>\n </li>\n\n <li [ngClass]=\"minimizeSidebar ? 'overflow-visible' : 'overflow-auto'\" class=\"mb-16 pr-1\">\n <ecabs-menu-items [menuItems]=\"allMenuItems\" [minimizeSidebar]=\"minimizeSidebar\"\n (toggleSidebar)=\"toggle()\"></ecabs-menu-items>\n </li>\n\n <li class=\"mt-auto\">\n <ul>\n <li *ngIf=\"secondaryMenu\" class=\"flex justify-center mb-5\">\n <ng-container *ngTemplateOutlet=\"secondaryMenu\"></ng-container>\n </li>\n\n <li class=\"flex cursor-pointer items-center w-full p-4 logout-btn\">\n <!-- eslint-disable-next-line -->\n <a class=\"text-gray-500\" (click)=\"onLogout()\">\n <mat-icon class=\"inline-block align-middle mr-4\">exit_to_app</mat-icon>\n <span class=\"inline-block align-middle\" *ngIf=\"!minimizeSidebar\">{{ logoutText }}</span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n\n <!--#::TODO Find alternative to display correctly -->\n<!-- <div class=\"hidden md:block absolute z-20 -right-3 top-[calc(85%-1rem)]-->\n<!-- rounded-full bg-white text-brand-dark shadow-md cursor-pointer hover:bg-gray-100\"-->\n<!-- (click)=\"toggle()\">-->\n<!-- <mat-icon class=\"inline-block align-middle {{ !minimizeSidebar ? 'rotate-180' : '' }}\">keyboard_arrow_right</mat-icon>-->\n<!-- </div>-->\n</section>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EcabsMenuItemsComponent, selector: "ecabs-menu-items", inputs: ["menuItems", "minimizeSidebar", "truncateTo"], outputs: ["toggleSidebar"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
8262
8397
  }
8263
8398
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSidebarComponent, decorators: [{
8264
8399
  type: Component,
@@ -8472,7 +8607,7 @@ class EcabsPlaceAutocompleteComponent extends EcabsElementBaseComponent {
8472
8607
  useExisting: EcabsPlaceAutocompleteComponent,
8473
8608
  multi: true,
8474
8609
  },
8475
- ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input #matCustomAutocompleteInput\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [id]=\"name\"\n class=\"form-field__input w-full\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"off\"\n (blur)=\"onTouch()\"\n />\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\n <mat-icon *ngIf=\"showDeleteItem\"\n class=\"suffix cursor-pointer delete-button\"\n (click)=\"onDeleteItem()\">\n delete\n </mat-icon>\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\n </div>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400)}mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
8610
+ ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input #matCustomAutocompleteInput\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [id]=\"name\"\n class=\"form-field__input w-full\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"off\"\n (blur)=\"onTouch()\"\n />\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\n <mat-icon *ngIf=\"showDeleteItem\"\n class=\"suffix cursor-pointer delete-button\"\n (click)=\"onDeleteItem()\">\n delete\n </mat-icon>\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\n </div>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400)}mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
8476
8611
  }
8477
8612
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteComponent, decorators: [{
8478
8613
  type: Component,
@@ -8787,7 +8922,7 @@ class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent {
8787
8922
  useExisting: EcabsPlaceAutocompleteV2Component,
8788
8923
  multi: true,
8789
8924
  },
8790
- ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"autocomplete-ui w-full\">\r\n <section class=\"form-field__input--wrapper w-full\">\r\n <input #matCustomAutocompleteInput\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocomplete=\"off\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (focus)=\"onFocus()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (ngModelChange)=\"onUserInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <div *ngIf=\"showSuffix\"\r\n class=\"form-field__input--suffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (keydown.enter)=\"delete()\"\r\n (click)=\"delete()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon *ngIf=\"!showDeleteItem && value\"\r\n class=\"suffix cursor-pointer\"\r\n (keydown.enter)=\"clear()\"\r\n (click)=\"clear()\">\r\n close\r\n </mat-icon>\r\n </div>\r\n </section>\r\n <!-- Custom dropdown -->\r\n <ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"false\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isFocused$ | async\">\r\n <ul class=\"autocomplete-ui__container\">\r\n <li *ngFor=\"let suggestion of waypointSuggestions$ | async; let i = index; trackBy: trackBySuggestion\"\r\n class=\"autocomplete-ui--item flex items-center justify-between hover:bg-gray-100\"\r\n [class.active]=\"i === selectedIndex\"\r\n (mousedown)=\"onSelectSuggestion(suggestion)\">\r\n <ng-container *ngIf=\"!suggestion?.prediction_term; else purePlaceResultTpl\">\r\n <div class=\"w-full truncate\">\r\n {{ suggestion?.additional_info }}\r\n </div>\r\n <mat-icon svgIcon=\"ph-regular:clock-counter\"\r\n class=\"w-5 h-5 text-xl text-gray-400 hover:!text-gray-400\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <ng-template #purePlaceResultTpl>\r\n <ul class=\"w-full flex items-center gap-x-1 leading-0 overflow-hidden whitespace-nowrap\">\r\n <li class=\"leading-none\">\r\n {{ suggestion?.prediction_term?.[0]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[1]?.value\"\r\n class=\"text-xs text-gray-600 truncate\">\r\n {{ suggestion?.prediction_term?.[1]?.value | separatorAppend: suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[2]?.value\"\r\n class=\"text-xs text-gray-600 font-semibold truncate\">\r\n {{ suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400)}mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: SeparatorAppendPipe, name: "separatorAppend" }] });
8925
+ ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"autocomplete-ui w-full\">\r\n <section class=\"form-field__input--wrapper w-full\">\r\n <input #matCustomAutocompleteInput\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocomplete=\"off\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (focus)=\"onFocus()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (ngModelChange)=\"onUserInput($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <div *ngIf=\"showSuffix\"\r\n class=\"form-field__input--suffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (keydown.enter)=\"delete()\"\r\n (click)=\"delete()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon *ngIf=\"!showDeleteItem && value\"\r\n class=\"suffix cursor-pointer\"\r\n (keydown.enter)=\"clear()\"\r\n (click)=\"clear()\">\r\n close\r\n </mat-icon>\r\n </div>\r\n </section>\r\n <!-- Custom dropdown -->\r\n <ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"false\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isFocused$ | async\">\r\n <ul class=\"autocomplete-ui__container\">\r\n <li *ngFor=\"let suggestion of waypointSuggestions$ | async; let i = index; trackBy: trackBySuggestion\"\r\n class=\"autocomplete-ui--item flex items-center justify-between hover:bg-gray-100\"\r\n [class.active]=\"i === selectedIndex\"\r\n (mousedown)=\"onSelectSuggestion(suggestion)\">\r\n <ng-container *ngIf=\"!suggestion?.prediction_term; else purePlaceResultTpl\">\r\n <div class=\"w-full truncate\">\r\n {{ suggestion?.additional_info }}\r\n </div>\r\n <mat-icon svgIcon=\"ph-regular:clock-counter\"\r\n class=\"w-5 h-5 text-xl text-gray-400 hover:!text-gray-400\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <ng-template #purePlaceResultTpl>\r\n <ul class=\"w-full flex items-center gap-x-1 leading-0 overflow-hidden whitespace-nowrap\">\r\n <li class=\"leading-none\">\r\n {{ suggestion?.prediction_term?.[0]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[1]?.value\"\r\n class=\"text-xs text-gray-600 truncate\">\r\n {{ suggestion?.prediction_term?.[1]?.value | separatorAppend: suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term?.[2]?.value\"\r\n class=\"text-xs text-gray-600 font-semibold truncate\">\r\n {{ suggestion?.prediction_term?.[2]?.value }}\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400)}mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: SeparatorAppendPipe, name: "separatorAppend" }] });
8791
8926
  }
8792
8927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, decorators: [{
8793
8928
  type: Component,
@@ -8980,7 +9115,7 @@ class EcabsMultipleDatesPickerComponent extends EcabsElementBaseComponent {
8980
9115
  multi: true,
8981
9116
  },
8982
9117
  UnsubscribeService,
8983
- ], viewQueries: [{ propertyName: "_picker", first: true, predicate: ["picker"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <mat-chip-grid\n #chipList aria-label=\"Choose a date\"\n (click)=\"picker.open()\"\n class=\"w-full\"\n >\n <mat-chip-option\n class=\"form-field__input\"\n *ngFor=\"let value of model\"\n [selectable]=\"false\" [removable]=\"true\"\n (removed)=\"remove(value)\"\n >\n {{ value | date: 'dd/MM/yyyy' }}\n <mat-icon matChipRemove *ngIf=\"true\">cancel</mat-icon>\n </mat-chip-option>\n <input\n class=\"form-field__input fake-input\"\n [value]=\"resetModel\"\n [(ngModel)]=\"value\"\n [matDatepicker]=\"picker\"\n placeholder=\"Select dates\"\n (dateChange)=\"dateChanged($event)\"\n [matChipInputFor]=\"chipList\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [matDatepickerFilter]=\"filterDateRange\"\n />\n </mat-chip-grid>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker\n #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n [dateClass]=\"dateClass\"\n >\n <mat-datepicker-actions>\n <ecabs-date-picker-actions\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n >\n </ecabs-date-picker-actions>\n </mat-datepicker-actions>\n </mat-datepicker>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host ::ng-deep .mat-chip-list-wrapper{padding:5px}:host ::ng-deep .mat-chip-list-wrapper .mat-standard-chip{margin:0 5px 0 0}:host ::ng-deep .fake-input{visibility:hidden;width:0;padding:0;margin:0}:host ::ng-deep .form-field__input--wrapper{border:1px solid var(--color-gray-500);padding:5px;align-items:center;background:#fff;border-radius:.25rem}::ng-deep .mat-calendar-body-cell.selected>.mat-calendar-body-cell-content,::ng-deep .mat-calendar-body-cell.selected:hover>.mat-calendar-body-cell-content,::ng-deep .mat-calendar-body-cell.selected>.mat-calendar-body-cell-content:hover{background-color:#673ab7!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "component", type: i2$4.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2$4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "component", type: i2$4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i2$4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
9118
+ ], viewQueries: [{ propertyName: "_picker", first: true, predicate: ["picker"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <mat-chip-grid\n #chipList aria-label=\"Choose a date\"\n (click)=\"picker.open()\"\n class=\"w-full\"\n >\n <mat-chip-option\n class=\"form-field__input\"\n *ngFor=\"let value of model\"\n [selectable]=\"false\" [removable]=\"true\"\n (removed)=\"remove(value)\"\n >\n {{ value | date: 'dd/MM/yyyy' }}\n <mat-icon matChipRemove *ngIf=\"true\">cancel</mat-icon>\n </mat-chip-option>\n <input\n class=\"form-field__input fake-input\"\n [value]=\"resetModel\"\n [(ngModel)]=\"value\"\n [matDatepicker]=\"picker\"\n placeholder=\"Select dates\"\n (dateChange)=\"dateChanged($event)\"\n [matChipInputFor]=\"chipList\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [matDatepickerFilter]=\"filterDateRange\"\n />\n </mat-chip-grid>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-datepicker\n #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n [dateClass]=\"dateClass\"\n >\n <mat-datepicker-actions>\n <ecabs-date-picker-actions\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n >\n </ecabs-date-picker-actions>\n </mat-datepicker-actions>\n </mat-datepicker>\n </div>\n</ecabs-element-wrapper>\n", styles: [":root{--mat-standard-button-toggle-shape: calc-rem(8px);--mat-option-label-text-color: var(--color-gray-900);--mat-option-focus-state-layer-color: var(--color-gray-100);--mat-option-hover-state-layer-color: var(--color-gray-50);--mat-divider-color: var(--color-gray-100);--mat-select-placeholder-text-color: var(--color-gray-400);--color-black: #020618;--color-white: #ffffff;--color-white-opacity-05: rgba(0, 0, 0, .05);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CAD5E2;--color-gray-400: #90A1B9;--color-gray-500: #62748E;--color-gray-600: #45556C;--color-gray-700: #314158;--color-gray-800: #1D293D;--color-gray-900: #0F172B;--color-gray-950: #020618;--color-brand-dark: #193273;--color-brand-dark-rgb: 25, 50, 115;--color-brand-light: #325FDA;--color-brand-light2: #e7efff;--color-brand-light-rgb: 50, 95, 218;--color-brand-300: #e7efff;--color-brand-300-rgb: 231, 239, 255;--color-error: #bb032a;--color-error-opacity: #FFF0EE;--color-error-border: #FFCDC6;--color-error-rgb: 223, 56, 56;--color-notification: #f4d04f;--color-notification-rgb: 244, 208, 79;--color-info: #325fda;--color-info-rgb: 50, 95, 218;--color-info-messages: #e3e9f3;--color-info-border: #D1D8F7;--color-warning: #845201;--color-warning-opacity: #FDF2DC;--color-warning-border: #FBE5B6;--color-success: #166C3B;--color-success--opacity: #EAF6ED;--color-success-border: #CEEAD5;--color-success-rgb: 7, 81, 69;--color-default-border: #D5E1ED;--color-allocation-started: #E8F8E5;--color-allocation-scheduled: #FDF0E4;--color-allocation-ended: #FBE4E4;--color-allocation-sick: #E7EFFF;--color-allocation-no-show: #EAE5FF;--color-allocation-unavailable: #F2F2F2;--cropper-outline-color: rgba(0, 0, 0, .5);--mat-option-label-text-size: 13px}:host ::ng-deep .mat-chip-list-wrapper{padding:5px}:host ::ng-deep .mat-chip-list-wrapper .mat-standard-chip{margin:0 5px 0 0}:host ::ng-deep .fake-input{visibility:hidden;width:0;padding:0;margin:0}:host ::ng-deep .form-field__input--wrapper{border:1px solid var(--color-gray-500);padding:5px;align-items:center;background:#fff;border-radius:.25rem}::ng-deep .mat-calendar-body-cell.selected>.mat-calendar-body-cell-content,::ng-deep .mat-calendar-body-cell.selected:hover>.mat-calendar-body-cell-content,::ng-deep .mat-calendar-body-cell.selected>.mat-calendar-body-cell-content:hover{background-color:#673ab7!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "component", type: i2$3.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2$3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "component", type: i2$3.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i2$3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
8984
9119
  }
8985
9120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsMultipleDatesPickerComponent, decorators: [{
8986
9121
  type: Component,
@@ -9518,7 +9653,7 @@ class EcabsChipGroupComponent {
9518
9653
  useExisting: forwardRef(() => EcabsChipGroupComponent),
9519
9654
  multi: true,
9520
9655
  },
9521
- ], ngImport: i0, template: "<mat-chip-listbox [multiple]=\"multiple\"\n [compareWith]=\"compareFn\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"_value()\"\n (ngModelChange)=\"chipValueChange($event)\">\n <mat-chip-option *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [disableRipple]=\"disableRipple\">\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n </mat-chip-option>\n</mat-chip-listbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i2$4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: EcabsTruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9656
+ ], ngImport: i0, template: "<mat-chip-listbox [multiple]=\"multiple\"\n [compareWith]=\"compareFn\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"_value()\"\n (ngModelChange)=\"chipValueChange($event)\">\n <mat-chip-option *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [disableRipple]=\"disableRipple\">\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n </mat-chip-option>\n</mat-chip-listbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i2$3.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: EcabsTruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9522
9657
  }
9523
9658
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsChipGroupComponent, decorators: [{
9524
9659
  type: Component,
@@ -9728,7 +9863,7 @@ class EcabsChipAutocompleteComponent extends EcabsElementBaseComponent {
9728
9863
  useExisting: forwardRef(() => EcabsChipAutocompleteComponent),
9729
9864
  multi: true,
9730
9865
  },
9731
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElem"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <input matInput\n [id]=\"label\"\n [name]=\"label\"\n class=\"form-field__input\"\n [ngClass]=\"disabled ? 'form-field__input--disabled' : null\"\n #inputElem\n [matChipInputFor]=\"chipGrid\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"inputControl\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (blur)=\"blur()\"/>\n </div>\n</ecabs-element-wrapper>\n\n<mat-autocomplete #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n (optionSelected)=\"setSelection($event)\"\n (opened)=\"setOverlayHeight()\"\n [class]=\"overlayPanelClass\">\n <mat-option *ngFor=\"let option of filteredOptions(); trackBy: trackByFn\"\n [value]=\"option\"\n [disabled]=\"option.disabled ?? false\">\n <ng-container [ngTemplateOutlet]=\"avatarContext\"\n [ngTemplateOutletContext]=\"{ $implicit: option}\">\n </ng-container>\n {{ option.label }}\n </mat-option>\n\n <mat-option *ngIf=\"loading\" disabled>\n <div class=\"flex items-center\">\n <div class=\"mr-2\">{{ loadingText }}</div>\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\n </div>\n </mat-option>\n\n <mat-option disabled *ngIf=\"noMatchResult()\">\n {{ noResultsText }}\n </mat-option>\n</mat-autocomplete>\n\n<mat-chip-grid #chipGrid\n [disabled]=\"disabled\"\n [class.mt-4]=\"selectedOptions().length > 0\">\n <mat-chip-row *ngFor=\"let option of selectedOptions(); trackBy: trackByFn\"\n [disabled]=\"disabled || option.disabled\"\n (removed)=\"removeSelection(option)\">\n <ng-container [ngTemplateOutlet]=\"avatarContext\"\n [ngTemplateOutletContext]=\"{ $implicit: option}\">\n </ng-container>\n\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n <mat-icon matChipRemove\n svgIcon=\"ph-light:x\">\n </mat-icon>\n </mat-chip-row>\n</mat-chip-grid>\n\n<ng-template #avatarContext let-option>\n <ng-container *ngIf=\"avatarTemplate\">\n <ng-container [ngTemplateOutlet]=\"avatarTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option}\">\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: EcabsInputModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2$4.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2$4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2$4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2$4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4$5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4$5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.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: ElementWrapperModule }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: EcabsPipesModule }, { kind: "pipe", type: EcabsTruncatePipe, name: "truncate" }, { kind: "ngmodule", type: EcabsLoadingModule }, { kind: "component", type: EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9866
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElem"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper\">\n <input matInput\n [id]=\"label\"\n [name]=\"label\"\n class=\"form-field__input\"\n [ngClass]=\"disabled ? 'form-field__input--disabled' : null\"\n #inputElem\n [matChipInputFor]=\"chipGrid\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"inputControl\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (blur)=\"blur()\"/>\n </div>\n</ecabs-element-wrapper>\n\n<mat-autocomplete #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n (optionSelected)=\"setSelection($event)\"\n (opened)=\"setOverlayHeight()\"\n [class]=\"overlayPanelClass\">\n <mat-option *ngFor=\"let option of filteredOptions(); trackBy: trackByFn\"\n [value]=\"option\"\n [disabled]=\"option.disabled ?? false\">\n <ng-container [ngTemplateOutlet]=\"avatarContext\"\n [ngTemplateOutletContext]=\"{ $implicit: option}\">\n </ng-container>\n {{ option.label }}\n </mat-option>\n\n <mat-option *ngIf=\"loading\" disabled>\n <div class=\"flex items-center\">\n <div class=\"mr-2\">{{ loadingText }}</div>\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\n </div>\n </mat-option>\n\n <mat-option disabled *ngIf=\"noMatchResult()\">\n {{ noResultsText }}\n </mat-option>\n</mat-autocomplete>\n\n<mat-chip-grid #chipGrid\n [disabled]=\"disabled\"\n [class.mt-4]=\"selectedOptions().length > 0\">\n <mat-chip-row *ngFor=\"let option of selectedOptions(); trackBy: trackByFn\"\n [disabled]=\"disabled || option.disabled\"\n (removed)=\"removeSelection(option)\">\n <ng-container [ngTemplateOutlet]=\"avatarContext\"\n [ngTemplateOutletContext]=\"{ $implicit: option}\">\n </ng-container>\n\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n <mat-icon matChipRemove\n svgIcon=\"ph-light:x\">\n </mat-icon>\n </mat-chip-row>\n</mat-chip-grid>\n\n<ng-template #avatarContext let-option>\n <ng-container *ngIf=\"avatarTemplate\">\n <ng-container [ngTemplateOutlet]=\"avatarTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option}\">\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: EcabsInputModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2$3.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2$3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2$3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2$3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4$6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.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: ElementWrapperModule }, { kind: "component", type: EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: EcabsPipesModule }, { kind: "pipe", type: EcabsTruncatePipe, name: "truncate" }, { kind: "ngmodule", type: EcabsLoadingModule }, { kind: "component", type: EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9732
9867
  }
9733
9868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsChipAutocompleteComponent, decorators: [{
9734
9869
  type: Component,
@@ -10109,7 +10244,7 @@ class EcabsSegmentComponent {
10109
10244
  subtitle;
10110
10245
  showTitleDivider = true;
10111
10246
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSegmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10112
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSegmentComponent, isStandalone: true, selector: "ecabs-segment", inputs: { title: "title", subtitle: "subtitle", showTitleDivider: "showTitleDivider" }, ngImport: i0, template: "<mat-card>\n <mat-card-header>\n <mat-card-title>{{ title }}</mat-card-title>\n <mat-card-subtitle *ngIf=\"subtitle\">\n {{ subtitle }}\n </mat-card-subtitle>\n </mat-card-header>\n\n <mat-divider *ngIf=\"showTitleDivider\"\n class=\"card__title--divider\"></mat-divider>\n\n <ng-content></ng-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2$6.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$6.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
10247
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSegmentComponent, isStandalone: true, selector: "ecabs-segment", inputs: { title: "title", subtitle: "subtitle", showTitleDivider: "showTitleDivider" }, ngImport: i0, template: "<mat-card>\n <mat-card-header>\n <mat-card-title>{{ title }}</mat-card-title>\n <mat-card-subtitle *ngIf=\"subtitle\">\n {{ subtitle }}\n </mat-card-subtitle>\n </mat-card-header>\n\n <mat-divider *ngIf=\"showTitleDivider\"\n class=\"card__title--divider\"></mat-divider>\n\n <ng-content></ng-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i2$5.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$5.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i2$5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
10113
10248
  }
10114
10249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSegmentComponent, decorators: [{
10115
10250
  type: Component,
@@ -10126,5 +10261,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10126
10261
  * Generated bundle index. Do not edit.
10127
10262
  */
10128
10263
 
10129
- export { ButtonsComponent, ButtonsV2Component, EcabsActionMenuComponent, EcabsActionMenuModule, EcabsActionMenuTriggerDirective, EcabsActiveStatusFilterComponent, EcabsActiveStatusFilterModule, EcabsAttachEmbeddedViewDirective, EcabsAttachEmbeddedViewDirectiveModule, EcabsBadgeComponent, EcabsBadgeModule, EcabsBasePhoneComponent, EcabsBasePhoneModule, EcabsBreadcrumbComponent, EcabsBreadcrumbModule, EcabsButtonToggleComponent, EcabsButtonToggleModule, EcabsButtonsModule, EcabsButtonsV2Module, EcabsCheckPermissionDirectiveModule, EcabsCheckPermissionsDirective, EcabsCheckboxToggleComponent, EcabsCheckboxToggleModule, EcabsCheckboxV2Component, EcabsCheckboxV2Module, EcabsChipAutocompleteComponent, EcabsChipGroupComponent, EcabsChipGroupModule, EcabsComponentsService, EcabsDateAdapter, EcabsDatePickerComponent, EcabsDatePickerHeaderComponent, EcabsDatePickerHeaderService, EcabsDatePickerModule, EcabsDateRangeModule, EcabsDateRangeModuleV2, EcabsDateRangePickerComponent, EcabsDateRangePickerComponentV2, EcabsDateRangePickerHeaderComponent, EcabsDateRangePickerHeaderComponentV2, EcabsDateTimePickerComponent, EcabsDateTimePickerHeaderComponent, EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, EcabsDatetimePickerModule, EcabsDatetimeRangePickerModule, EcabsDialogConfirmComponent, EcabsDialogConfirmDeletionModule, EcabsDialogConfirmModule, EcabsDialogConfirmationDeletionComponent, EcabsDialogMessageComponent, EcabsDialogMessageModule, EcabsDigitsOnlyDirective, EcabsDigitsOnlyDirectivesModule, EcabsDomObserverDirective, EcabsDomObserverDirectiveModule, EcabsDynamicBgColorDirective, EcabsDynamicBgColorDirectiveModule, EcabsElementMultiplierDirective, EcabsElementMultiplierDirectiveModule, EcabsEmptyPlaceholderComponent, EcabsEmptyPlaceholderModule, EcabsExpansionPanelComponent, EcabsExpansionPanelModule, EcabsFileDropDirective, EcabsFileDropDirectiveModule, EcabsHeaderComponent, EcabsHeaderModule, EcabsHintComponent, EcabsHintModule, EcabsIncrementComponent, EcabsIncrementModule, EcabsInputComponent, EcabsInputModule, EcabsInputRangeComponent, EcabsInputRangeModule, EcabsLanguageSelectorComponent, EcabsLanguageSelectorModule, EcabsLoadingComponent, EcabsLoadingModule, EcabsLogoComponent, EcabsLogoModule, EcabsMaskDateDirective, EcabsMaskDateDirectiveModule, EcabsMaskTimeDirective, EcabsMaskTimeDirectiveModule, EcabsMaxDirective, EcabsMenuItemsComponent, EcabsMenuItemsModule, EcabsMinDirective, EcabsMinMaxDirectiveModule, EcabsMultipleDatesPickerComponent, EcabsMultipleDatesPickerModule, EcabsNoteComponent, EcabsNoteModule, EcabsNumberBorderDirective, EcabsNumberBorderDirectiveModule, EcabsPaginatorDirective, EcabsPaginatorDirectiveModule, EcabsPhoneComponent, EcabsPhoneModule, EcabsPipesModule, EcabsPlaceAutocompleteComponent, EcabsPlaceAutocompleteModule, EcabsPlaceAutocompleteV2Component, EcabsPlaceAutocompleteV2Module, EcabsProfileComponent, EcabsProfileModule, EcabsRadioButtonListComponent, EcabsRadioButtonListModule, EcabsSegmentComponent, EcabsSelectComponent, EcabsSelectModule, EcabsSelectV2Component, EcabsSelectV2Module, EcabsShowOnTruncatedDirective, EcabsShowOnTruncatedDirectiveModule, EcabsSidebarComponent, EcabsSidebarModule, EcabsSliderComponent, EcabsSliderModule, EcabsSpinnerComponent, EcabsStatusBadgeVariantPipe, EcabsTableFilterWrapperComponent, EcabsTableFilterWrapperModule, EcabsTableModule, EcabsTextAreaModule, EcabsTextareaComponent, EcabsTimeListPanelComponent, EcabsTimeRangeDirective, EcabsTimeRangeDirectiveModule, EcabsTimeRangeInputV2Component, EcabsTimeRangeInputV2Module, EcabsTimepickerComponent, EcabsTimepickerModule, EcabsTooltipIfTruncatedDirective, EcabsTooltipIfTruncatedDirectiveModule, EcabsTruncatePipe, EcabsUppercaseMaskDirective, EcabsUppercaseMaskDirectiveModule, EcabsValidationComponent, EcabsValidationModule, EcabsValidationViewModule, FormTimePickerService, FormTimePickerServiceV2, GenericComponentConfig, HeaderService, MATERIAL_DATETIMEPICKER_FORMATS, NumberToCountryCodePipe, STATUS_BADGE_VARIANTS, SeparatorAppendPipe, TableComponent, UnsubscribeService, ValidationComponent, WAYPOINT_SUGGESTIONS, WAYPOINT_SUGGESTIONS2, WaypointTypeEnum, buildPhosphorSvgIcon, extractCallingCodeFromIso, extractCountryFromIso, extractCountryPrefixFromNumber, extractDialingCode, extractPhoneNumberCode, getPhosphorSvgIcon, getRandomItems, getSupportedCountryIsoCodes, removeEmpty, removeNullUndefineds, resolveStatusBadgeVariant, scrollFactory, sortGeneric };
10264
+ export { ButtonsComponent, ButtonsV2Component, CHIP_LABEL_CLASS, EcabsActionMenuComponent, EcabsActionMenuModule, EcabsActionMenuTriggerDirective, EcabsActiveStatusFilterComponent, EcabsActiveStatusFilterModule, EcabsAttachEmbeddedViewDirective, EcabsAttachEmbeddedViewDirectiveModule, EcabsBadgeComponent, EcabsBadgeDirective, EcabsBadgeDirectiveModule, EcabsBadgeModule, EcabsBasePhoneComponent, EcabsBasePhoneModule, EcabsBreadcrumbComponent, EcabsBreadcrumbModule, EcabsButtonToggleComponent, EcabsButtonToggleModule, EcabsButtonsModule, EcabsButtonsV2Module, EcabsCheckPermissionDirectiveModule, EcabsCheckPermissionsDirective, EcabsCheckboxToggleComponent, EcabsCheckboxToggleModule, EcabsCheckboxV2Component, EcabsCheckboxV2Module, EcabsChipAutocompleteComponent, EcabsChipGroupComponent, EcabsChipGroupModule, EcabsComponentsService, EcabsDateAdapter, EcabsDatePickerComponent, EcabsDatePickerHeaderComponent, EcabsDatePickerHeaderService, EcabsDatePickerModule, EcabsDateRangeModule, EcabsDateRangeModuleV2, EcabsDateRangePickerComponent, EcabsDateRangePickerComponentV2, EcabsDateRangePickerHeaderComponent, EcabsDateRangePickerHeaderComponentV2, EcabsDateTimePickerComponent, EcabsDateTimePickerHeaderComponent, EcabsDateTimeRangePickerComponent, EcabsDateTimeRangePickerHeaderComponent, EcabsDatetimePickerModule, EcabsDatetimeRangePickerModule, EcabsDialogConfirmComponent, EcabsDialogConfirmDeletionModule, EcabsDialogConfirmModule, EcabsDialogConfirmationDeletionComponent, EcabsDialogMessageComponent, EcabsDialogMessageModule, EcabsDigitsOnlyDirective, EcabsDigitsOnlyDirectivesModule, EcabsDomObserverDirective, EcabsDomObserverDirectiveModule, EcabsDynamicBgColorDirective, EcabsDynamicBgColorDirectiveModule, EcabsElementMultiplierDirective, EcabsElementMultiplierDirectiveModule, EcabsEmptyPlaceholderComponent, EcabsEmptyPlaceholderModule, EcabsExpansionPanelComponent, EcabsExpansionPanelModule, EcabsFileDropDirective, EcabsFileDropDirectiveModule, EcabsHeaderComponent, EcabsHeaderModule, EcabsHintComponent, EcabsHintModule, EcabsIncrementComponent, EcabsIncrementModule, EcabsInputComponent, EcabsInputModule, EcabsInputRangeComponent, EcabsInputRangeModule, EcabsLanguageSelectorComponent, EcabsLanguageSelectorModule, EcabsLoadingComponent, EcabsLoadingModule, EcabsLogoComponent, EcabsLogoModule, EcabsMaskDateDirective, EcabsMaskDateDirectiveModule, EcabsMaskTimeDirective, EcabsMaskTimeDirectiveModule, EcabsMaxDirective, EcabsMenuItemsComponent, EcabsMenuItemsModule, EcabsMinDirective, EcabsMinMaxDirectiveModule, EcabsMultipleDatesPickerComponent, EcabsMultipleDatesPickerModule, EcabsNoteComponent, EcabsNoteModule, EcabsNumberBorderDirective, EcabsNumberBorderDirectiveModule, EcabsPaginatorDirective, EcabsPaginatorDirectiveModule, EcabsPhoneComponent, EcabsPhoneModule, EcabsPipesModule, EcabsPlaceAutocompleteComponent, EcabsPlaceAutocompleteModule, EcabsPlaceAutocompleteV2Component, EcabsPlaceAutocompleteV2Module, EcabsProfileComponent, EcabsProfileModule, EcabsRadioButtonListComponent, EcabsRadioButtonListModule, EcabsSegmentComponent, EcabsSelectComponent, EcabsSelectModule, EcabsSelectV2Component, EcabsSelectV2Module, EcabsShowOnTruncatedDirective, EcabsShowOnTruncatedDirectiveModule, EcabsSidebarComponent, EcabsSidebarModule, EcabsSliderComponent, EcabsSliderModule, EcabsSpinnerComponent, EcabsStatusBadgeVariantPipe, EcabsTableFilterWrapperComponent, EcabsTableFilterWrapperModule, EcabsTableModule, EcabsTextAreaModule, EcabsTextareaComponent, EcabsTimeListPanelComponent, EcabsTimeRangeDirective, EcabsTimeRangeDirectiveModule, EcabsTimeRangeInputV2Component, EcabsTimeRangeInputV2Module, EcabsTimepickerComponent, EcabsTimepickerModule, EcabsTooltipIfTruncatedDirective, EcabsTooltipIfTruncatedDirectiveModule, EcabsTruncatePipe, EcabsUppercaseMaskDirective, EcabsUppercaseMaskDirectiveModule, EcabsValidationComponent, EcabsValidationModule, EcabsValidationViewModule, FormTimePickerService, FormTimePickerServiceV2, GenericComponentConfig, HeaderService, MATERIAL_DATETIMEPICKER_FORMATS, NumberToCountryCodePipe, STATUS_BADGE_VARIANTS, SeparatorAppendPipe, TableComponent, UnsubscribeService, ValidationComponent, WAYPOINT_SUGGESTIONS, WAYPOINT_SUGGESTIONS2, WaypointTypeEnum, buildPhosphorSvgIcon, extractCallingCodeFromIso, extractCountryFromIso, extractCountryPrefixFromNumber, extractDialingCode, extractPhoneNumberCode, getPhosphorSvgIcon, getRandomItems, getSupportedCountryIsoCodes, removeEmpty, removeNullUndefineds, resolveStatusBadgeVariant, scrollFactory, sortGeneric };
10130
10265
  //# sourceMappingURL=ecabs-components.mjs.map