ecabs-components 1.1.19 → 1.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +2 -2
- package/fesm2022/ecabs-components.mjs +2 -2
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/assets/styles/material/overrides/_datepicker.scss +0 -6
- package/src/assets/styles/scss/base/_normalize.scss +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecabs-components.mjs","sources":["../../../projects/ecabs-components/src/lib/ecabs-loading/spinner/spinner.component.ts","../../../projects/ecabs-components/src/lib/ecabs-loading/spinner/spinner.component.html","../../../projects/ecabs-components/src/lib/ecabs-loading/ecabs-loading.component.ts","../../../projects/ecabs-components/src/lib/ecabs-loading/ecabs-loading.component.html","../../../projects/ecabs-components/src/lib/ecabs-loading/ecabs-loading.module.ts","../../../projects/ecabs-components/src/lib/ecabs-buttons/ecabs-buttons.component.ts","../../../projects/ecabs-components/src/lib/ecabs-buttons/ecabs-buttons.component.html","../../../projects/ecabs-components/src/lib/ecabs-buttons/ecabs-buttons.module.ts","../../../projects/ecabs-components/src/lib/base/element-base.ts","../../../projects/ecabs-components/src/lib/base/consts/error-messages.consts.ts","../../../projects/ecabs-components/src/lib/base/consts/translations.consts.ts","../../../projects/ecabs-components/src/lib/base/services/ecabs-components.service.ts","../../../projects/ecabs-components/src/lib/base/validation/validation.component.ts","../../../projects/ecabs-components/src/lib/base/validation/validation.component.html","../../../projects/ecabs-components/src/lib/ecabs-hint/ecabs-hint.component.ts","../../../projects/ecabs-components/src/lib/ecabs-hint/ecabs-hint.component.html","../../../projects/ecabs-components/src/lib/base/element-wrapper/element-wrapper.component.ts","../../../projects/ecabs-components/src/lib/base/element-wrapper/element-wrapper.component.html","../../../projects/ecabs-components/src/lib/base/directives/digits-only.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/min-max.directive.ts","../../../projects/ecabs-components/src/lib/ecabs-input/ecabs-input.component.ts","../../../projects/ecabs-components/src/lib/ecabs-input/ecabs-input.component.html","../../../projects/ecabs-components/src/lib/ecabs-hint/ecabs-hint.module.ts","../../../projects/ecabs-components/src/lib/base/validation/validation.module.ts","../../../projects/ecabs-components/src/lib/base/element-wrapper/element-wrapper.module.ts","../../../projects/ecabs-components/src/lib/base/directives/digits-only.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/min-max.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-input/ecabs-input.module.ts","../../../projects/ecabs-components/src/lib/base/directives/tooltip-if-truncated.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/tooltip-if-truncated.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-select/ecabs-select.component.ts","../../../projects/ecabs-components/src/lib/ecabs-select/ecabs-select.component.html","../../../projects/ecabs-components/src/lib/ecabs-select/ecabs-select.module.ts","../../../projects/ecabs-components/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.ts","../../../projects/ecabs-components/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.html","../../../projects/ecabs-components/src/lib/ecabs-select-v2/ecabs-select-v2.component.ts","../../../projects/ecabs-components/src/lib/ecabs-select-v2/ecabs-select-v2.component.html","../../../projects/ecabs-components/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.ts","../../../projects/ecabs-components/src/lib/ecabs-select-v2/ecabs-select-v2.module.ts","../../../projects/ecabs-components/src/lib/ecabs-textarea/ecabs-textarea.component.ts","../../../projects/ecabs-components/src/lib/ecabs-textarea/ecabs-textarea.component.html","../../../projects/ecabs-components/src/lib/ecabs-textarea/ecabs-textarea.module.ts","../../../projects/ecabs-components/src/lib/base/services/unsubscribe.service.ts","../../../projects/ecabs-components/src/lib/base/services/ecabs-date-picker-translations.service.ts","../../../projects/ecabs-components/src/lib/ecabs-picker-header/ecabs-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-picker-header/ecabs-picker-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-picker/ecabs-date-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker/ecabs-date-picker.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.html","../../../projects/ecabs-components/src/lib/base/directives/number-border.directive.ts","../../../projects/ecabs-components/src/lib/base/consts/date-mask.consts.ts","../../../projects/ecabs-components/src/lib/base/directives/date-mask.directive.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.html","../../../projects/ecabs-components/src/lib/base/directives/date-mask.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/number-border.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-picker-header/ecabs-picker-header.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker/ecabs-date-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.html","../../../projects/ecabs-components/src/lib/base/directives/time-mask.directive.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.html","../../../projects/ecabs-components/src/lib/base/directives/time-mask.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-increment/ecabs-increment.component.ts","../../../projects/ecabs-components/src/lib/ecabs-increment/ecabs-increment.component.html","../../../projects/ecabs-components/src/lib/ecabs-increment/ecabs-increment.module.ts","../../../projects/ecabs-components/src/lib/base/consts/country-codes.ts","../../../projects/ecabs-components/src/lib/base/validators/phone-number.validator.ts","../../../projects/ecabs-components/src/lib/base/pipes/search.pipe.ts","../../../projects/ecabs-components/src/lib/ecabs-base-phone-input/ecabs-base-phone.component.ts","../../../projects/ecabs-components/src/lib/ecabs-base-phone-input/ecabs-base-phone.component.html","../../../projects/ecabs-components/src/lib/ecabs-phone/ecabs-phone.component.ts","../../../projects/ecabs-components/src/lib/ecabs-phone/ecabs-phone.component.html","../../../projects/ecabs-components/src/lib/ecabs-base-phone-input/ecabs-base-phone.module.ts","../../../projects/ecabs-components/src/lib/ecabs-phone/ecabs-phone.module.ts","../../../projects/ecabs-components/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.ts","../../../projects/ecabs-components/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.html","../../../projects/ecabs-components/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.service.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.html","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.component.html","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.module.ts","../../../projects/ecabs-components/src/lib/base/consts/images.consts.ts","../../../projects/ecabs-components/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.ts","../../../projects/ecabs-components/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.html","../../../projects/ecabs-components/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.ts","../../../projects/ecabs-components/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.ts","../../../projects/ecabs-components/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.html","../../../projects/ecabs-components/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.html","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table.component.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table.component.html","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table.module.ts","../../../projects/ecabs-components/src/lib/ecabs-note/ecabs-note.component.ts","../../../projects/ecabs-components/src/lib/ecabs-note/ecabs-note.component.html","../../../projects/ecabs-components/src/lib/ecabs-note/ecabs-note.module.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.html","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.html","../../../projects/ecabs-components/src/lib/ecabs-dialog-message/ecabs-dialog-message.module.ts","../../../projects/ecabs-components/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.ts","../../../projects/ecabs-components/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.html","../../../projects/ecabs-components/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.ts","../../../projects/ecabs-components/src/lib/ecabs-language-selector/ecabs-language-selector.component.ts","../../../projects/ecabs-components/src/lib/ecabs-language-selector/ecabs-language-selector.component.html","../../../projects/ecabs-components/src/lib/ecabs-language-selector/ecabs-language-selector.module.ts","../../../projects/ecabs-components/src/lib/base/directives/dynamic-bg-color.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/dynamic-bg-color.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/paginator.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/paginator.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/check-permissions.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/check-permissions.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/dom-observer.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/dom-observer.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/file-drop.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/file-drop.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/time-range.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/time-range.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/uppercase-mask.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/uppercase-mask.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/attach-embedded-view.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/attach-embedded-view.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/element-multiplier.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/element-multiplier.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/show-on-truncated.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/show-on-truncated.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-validation/ecabs-validation.component.ts","../../../projects/ecabs-components/src/lib/ecabs-validation/ecabs-validation.component.html","../../../projects/ecabs-components/src/lib/ecabs-validation/ecabs-validation.module.ts","../../../projects/ecabs-components/src/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.ts","../../../projects/ecabs-components/src/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.html","../../../projects/ecabs-components/src/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.ts","../../../projects/ecabs-components/src/lib/ecabs-profile/ecabs-profile.component.ts","../../../projects/ecabs-components/src/lib/ecabs-profile/ecabs-profile.component.html","../../../projects/ecabs-components/src/lib/ecabs-profile/ecabs-profile.module.ts","../../../projects/ecabs-components/src/lib/base/services/header.service.ts","../../../projects/ecabs-components/src/lib/ecabs-header/ecabs-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-header/ecabs-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-header/ecabs-header.module.ts","../../../projects/ecabs-components/src/lib/ecabs-slider/ecabs-slider.component.ts","../../../projects/ecabs-components/src/lib/ecabs-slider/ecabs-slider.component.html","../../../projects/ecabs-components/src/lib/ecabs-slider/ecabs-slider.module.ts","../../../projects/ecabs-components/src/lib/base/pipes/truncate.pipe.ts","../../../projects/ecabs-components/src/lib/base/pipes/pipes.module.ts","../../../projects/ecabs-components/src/lib/base/utils/menu-utils.ts","../../../projects/ecabs-components/src/lib/ecabs-menu-items/ecabs-menu-items.component.ts","../../../projects/ecabs-components/src/lib/ecabs-menu-items/ecabs-menu-items.component.html","../../../projects/ecabs-components/src/lib/ecabs-sidebar/ecabs-sidebar.component.ts","../../../projects/ecabs-components/src/lib/ecabs-sidebar/ecabs-sidebar.component.html","../../../projects/ecabs-components/src/lib/ecabs-menu-items/ecabs-menu-items.module.ts","../../../projects/ecabs-components/src/lib/ecabs-logo/ecabs-logo.component.ts","../../../projects/ecabs-components/src/lib/ecabs-logo/ecabs-logo.component.html","../../../projects/ecabs-components/src/lib/ecabs-logo/ecabs-logo.module.ts","../../../projects/ecabs-components/src/lib/ecabs-sidebar/ecabs-sidebar.module.ts","../../../projects/ecabs-components/src/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.ts","../../../projects/ecabs-components/src/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.html","../../../projects/ecabs-components/src/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.module.ts","../../../projects/ecabs-components/src/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.html","../../../projects/ecabs-components/src/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.module.ts","../../../projects/ecabs-components/src/lib/base/utils/object-utils.ts","../../../projects/ecabs-components/src/ecabs-components.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-loading-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsSpinnerComponent {\r\n @Input() size: 'large' | 'medium' | 'tiny' = 'medium';\r\n}\r\n","<div class=\"loadingio-spinner-rolling {{ size }}\">\r\n <div class=\"ldio-inner\">\r\n <div></div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-loading',\r\n templateUrl: './ecabs-loading.component.html',\r\n})\r\nexport class EcabsLoadingComponent {\r\n @Input() loading = false;\r\n @Input() backgroundColor = 'white';\r\n @Input() size: 'large' | 'medium' | 'tiny' = 'medium';\r\n}\r\n","<div\r\n class=\"flex absolute left-0 top-0 right-0 bottom-0 z-50 items-center justify-center\"\r\n [ngStyle]=\"{ backgroundColor: backgroundColor }\"\r\n *ngIf=\"loading\"\r\n>\r\n <ecabs-loading-spinner [size]=\"size\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsLoadingComponent } from './ecabs-loading.component';\r\nimport { EcabsSpinnerComponent } from './spinner/spinner.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsLoadingComponent, EcabsSpinnerComponent],\r\n imports: [CommonModule],\r\n exports: [EcabsLoadingComponent, EcabsSpinnerComponent],\r\n})\r\nexport class EcabsLoadingModule {}\r\n","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ButtonStyle } from '../base/consts/buttons.consts';\r\n\r\n@Component({\r\n selector: 'ecabs-buttons',\r\n styleUrls: ['./ecabs-buttons.component.scss'],\r\n templateUrl: './ecabs-buttons.component.html',\r\n})\r\nexport class ButtonsComponent implements OnInit, OnChanges {\r\n @Input()\r\n disabled!: boolean;\r\n\r\n @Input()\r\n loading!: boolean;\r\n\r\n @Input()\r\n size: 'default' | 'large' = 'default';\r\n\r\n @Input()\r\n type: 'button' | 'submit' = 'button';\r\n\r\n @Input()\r\n style: ButtonStyle = 'flat';\r\n\r\n @Input()\r\n full = false;\r\n\r\n @Input()\r\n color: ThemePalette | 'success' | null = 'primary';\r\n\r\n @HostBinding('style.width')\r\n borderWidth = '';\r\n\r\n @HostBinding('class')\r\n classAttr = '';\r\n\r\n ngOnInit(): void {\r\n if (this.full) {\r\n this.borderWidth = '100%';\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const disabled =\r\n changes['disabled']?.currentValue !== undefined\r\n ? changes['disabled'].currentValue\r\n : this.disabled;\r\n const loading =\r\n changes['loading']?.currentValue !== undefined\r\n ? changes['loading'].currentValue\r\n : this.loading;\r\n\r\n if (disabled || loading) {\r\n this.classAttr = 'pointer-events-none';\r\n } else {\r\n this.classAttr = '';\r\n }\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"style\">\r\n <button\r\n mat-flat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'flat'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-stroked-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'stroked'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-raised-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'raised'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchDefault\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template #content>\r\n <ecabs-loading-spinner size=\"tiny\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n </ng-container>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonsComponent } from './ecabs-buttons.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsLoadingModule } from '../ecabs-loading/ecabs-loading.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [ButtonsComponent],\r\n imports: [CommonModule, MatButtonModule, EcabsLoadingModule, MatIconModule],\r\n exports: [ButtonsComponent],\r\n})\r\nexport class EcabsButtonsModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl } from '@angular/forms';\r\nimport { ElementData } from './models/element.models';\r\n\r\n@Component({\r\n template: '',\r\n standalone: true,\r\n})\r\nexport default class EcabsElementBaseComponent {\r\n @Input() type!: string;\r\n @Input() name!: string;\r\n @Input() label!: string;\r\n @Input() placeholder = '';\r\n @Input() validationLabel!: string;\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() showValidation = true;\r\n @Input() showValidationOnNotTouched = false;\r\n @Input() hideValidationMessage = false;\r\n @Input() iconClass = '';\r\n @Input() loading = false;\r\n @Input() showHint = false;\r\n @Input() maxLength!: number;\r\n @Input() tooltip!: string;\r\n @Input() showAsterisk = true;\r\n @Input() labelNote!: string;\r\n @Input() showLabel = true;\r\n @Input() showLocalLoading = true;\r\n\r\n @Output() focused = new EventEmitter<any>();\r\n @Output() focusOuted = new EventEmitter<any>();\r\n\r\n control!: UntypedFormControl;\r\n required = false;\r\n\r\n getData(): ElementData {\r\n return {\r\n type: this.type || 'text',\r\n label: this.label,\r\n placeholder: this.placeholder,\r\n validationLabel: this.validationLabel,\r\n disabled: this.disabled,\r\n readonly: this.readonly,\r\n showValidation: this.showValidation,\r\n showValidationOnNotTouched: this.showValidationOnNotTouched,\r\n hideValidationMessage: this.hideValidationMessage,\r\n iconClass: this.iconClass,\r\n control: this.control,\r\n loading: this.loading,\r\n showHint: this.showHint,\r\n maxLength: this.maxLength,\r\n tooltip: this.tooltip,\r\n name: this.name,\r\n required: this.isRequired(this.control),\r\n showAsterisk: this.showAsterisk,\r\n labelNote: this.labelNote,\r\n showLabel: this.showLabel,\r\n };\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.disabled !== isDisabled) {\r\n this.disabled = this.readonly = isDisabled;\r\n this.toggleDisableState(!isDisabled);\r\n }\r\n }\r\n\r\n updateDisabledState(): void {\r\n if (this.control) {\r\n this.disabled = this.readonly = this.control.disabled || this.disabled;\r\n this.toggleDisableState(!this.disabled);\r\n }\r\n }\r\n\r\n private enableControl(): void {\r\n if (this.control?.disabled) {\r\n this.control.enable({ emitEvent: false });\r\n }\r\n }\r\n\r\n private disableControl(): void {\r\n if (this.control?.enabled) {\r\n this.control.disable({ emitEvent: false });\r\n }\r\n }\r\n\r\n private toggleDisableState(condition: boolean): void {\r\n if (condition) {\r\n this.enableControl();\r\n } else {\r\n this.disableControl();\r\n }\r\n }\r\n\r\n private isRequired = (ctrl: any): boolean => {\r\n if (ctrl?.validator) {\r\n const validator = ctrl.validator({} as AbstractControl);\r\n if (validator?.['required']) {\r\n return true;\r\n }\r\n }\r\n\r\n if (ctrl?.['controls']) {\r\n for (const name in ctrl['controls']) {\r\n if (ctrl['controls'][name]) {\r\n if (this.isRequired(ctrl['controls'][name])) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n}\r\n","import { ErrorMessage } from '../services/ecabs-components.service';\r\n\r\nexport const errorMessages: ErrorMessage[] = [\r\n {\r\n type: 'required',\r\n message: 'FORMS.VALIDATION.LABEL_REQUIRED',\r\n },\r\n {\r\n type: 'minlength',\r\n message: 'FORMS.VALIDATION.MIN_LENGTH',\r\n },\r\n {\r\n type: 'maxlength',\r\n message: 'FORMS.VALIDATION.MAX_LENGTH',\r\n },\r\n {\r\n type: 'min',\r\n message: 'FORMS.VALIDATION.MIN',\r\n },\r\n {\r\n type: 'max',\r\n message: 'FORMS.VALIDATION.MAX',\r\n },\r\n {\r\n type: 'minValue',\r\n message: 'FORMS.VALIDATION.MIN_VALUE',\r\n },\r\n {\r\n type: 'maxValue',\r\n message: 'FORMS.VALIDATION.MAX_VALUE',\r\n },\r\n {\r\n type: 'validatePhoneNumber',\r\n message: 'FORMS.VALIDATION.VALIDATE_PHONE_NUMBER',\r\n },\r\n {\r\n type: 'pastDate',\r\n message: 'FORMS.VALIDATION.PAST_DATE',\r\n },\r\n {\r\n type: 'affectsError',\r\n message: 'FORMS.VALIDATION.AFFECTS_ERROR',\r\n },\r\n {\r\n type: 'moreThan',\r\n message: 'FORMS.VALIDATION.MORE_THAN',\r\n },\r\n {\r\n type: 'lessThan',\r\n message: 'FORMS.VALIDATION.LESS_THAN',\r\n },\r\n {\r\n type: 'email',\r\n message: 'FORMS.VALIDATION.EMAIL',\r\n },\r\n {\r\n type: 'numberMoreThan',\r\n message: 'FORMS.VALIDATION.VALUE_MORE_THAN',\r\n },\r\n {\r\n type: 'numberLessThan',\r\n message: 'FORMS.VALIDATION.VALUE_LESS_THAN',\r\n },\r\n {\r\n type: 'outOfRange',\r\n message: 'FORMS.VALIDATION.OUT_OF_RANGE',\r\n },\r\n {\r\n type: 'iban',\r\n message: 'FORMS.VALIDATION.IBAN',\r\n },\r\n {\r\n type: 'timeIsAfter',\r\n message: 'FORMS.VALIDATION.LESS_THAN_TIME',\r\n },\r\n {\r\n type: 'blacklisted',\r\n message: 'FORMS.VALIDATION.BLACKLISTED',\r\n },\r\n {\r\n type: 'fromToNotFound',\r\n message: 'FORMS.VALIDATION.FROM_TO_NOT_FOUND',\r\n },\r\n {\r\n type: 'fromToNotCorrectCount',\r\n message: 'FORMS.VALIDATION.FROM_TO_NOT_CORRECT_COUNT',\r\n },\r\n {\r\n type: 'whitespace',\r\n message: 'FORMS.VALIDATION.WHITESPACE',\r\n },\r\n {\r\n type: 'alphanumeric',\r\n message: 'FORMS.VALIDATION.ALPHANUMERIC',\r\n },\r\n];\r\n","import { Ecabsi18n } from '../services/ecabs-components.service';\r\n\r\nexport const i18n: Ecabsi18n = {\r\n confirmLabel: 'ACTIONS.CONFIRM',\r\n cancelLabel: 'ACTIONS.CANCEL',\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { errorMessages } from '../consts/error-messages.consts';\r\nimport { i18n } from '../consts/translations.consts';\r\nimport { UserClaim } from '../models/user-claim.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EcabsComponentsService {\r\n defaultConfig: EcabsComponentsConfig = {\r\n defaultCountries: [],\r\n errorMessages: [...errorMessages],\r\n i18n,\r\n claims: [],\r\n defaultPhoneDebounceTimeMs: 1000,\r\n };\r\n\r\n config: EcabsComponentsConfig;\r\n\r\n private readonly _config = new BehaviorSubject<EcabsComponentsConfig>(\r\n this.defaultConfig,\r\n );\r\n\r\n setConfig(config: EcabsComponentsConfig): void {\r\n this.config = config || this.defaultConfig;\r\n\r\n this._config.next(config);\r\n }\r\n\r\n getConfig(): Observable<EcabsComponentsConfig> {\r\n return this._config.asObservable();\r\n }\r\n\r\n updateConfig(configUpdate: EcabsComponentsConfig): void {\r\n const currentConfig = this._config.getValue();\r\n const updatedConfig: EcabsComponentsConfig = new GenericComponentConfig();\r\n\r\n for (const key in currentConfig) {\r\n if (\r\n Object.prototype.hasOwnProperty.call(currentConfig, key) &&\r\n Object.prototype.hasOwnProperty.call(configUpdate, key)\r\n ) {\r\n updatedConfig[key] = Array.isArray(currentConfig[key])\r\n ? [...currentConfig[key], ...configUpdate[key]]\r\n : { ...currentConfig[key], ...configUpdate[key] };\r\n } else {\r\n updatedConfig[key] = currentConfig[key];\r\n }\r\n }\r\n\r\n this.config = updatedConfig;\r\n\r\n this._config.next(updatedConfig);\r\n }\r\n\r\n hasClaim(allowedClaims: string[] = []): boolean {\r\n const userClaims = this._config.getValue().claims\r\n ? this._config\r\n .getValue()\r\n .claims.map((appUserClaim: UserClaim) => appUserClaim.claim)\r\n : undefined;\r\n\r\n if (allowedClaims.includes('allow')) {\r\n return true;\r\n }\r\n\r\n if (userClaims) {\r\n return allowedClaims.every((claim) => userClaims.includes(claim));\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport interface EcabsComponentsConfig {\r\n defaultCountries?: string[];\r\n errorMessages?: ErrorMessage[];\r\n i18n?: Ecabsi18n;\r\n claims?: UserClaim[];\r\n defaultPhoneDebounceTimeMs?: number;\r\n}\r\n\r\nexport interface ErrorMessage {\r\n type: string;\r\n message?: string;\r\n}\r\n\r\nexport interface Ecabsi18n {\r\n cancelLabel?: string;\r\n confirmLabel?: string;\r\n}\r\n\r\nexport class GenericComponentConfig implements EcabsComponentsConfig {\r\n defaultCountries: string[] = [];\r\n errorMessages: ErrorMessage[] = [];\r\n i18n: Ecabsi18n;\r\n claims: UserClaim[] = [];\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport {\r\n EcabsComponentsConfig,\r\n EcabsComponentsService,\r\n} from '../services/ecabs-components.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ecabs-validations-messages',\r\n templateUrl: './validation.component.html',\r\n styleUrls: ['./validation.component.scss'],\r\n})\r\nexport class ValidationComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() element!: any;\r\n @Input() label!: string;\r\n @Input() showValidationOnNotTouched = false;\r\n @Input() updatedErrors!: { type: string; message: string }[];\r\n config!: EcabsComponentsConfig;\r\n private _messages: any = {};\r\n private configSubscription: Subscription;\r\n\r\n get messages(): any {\r\n if (this.element) {\r\n for (const errorKey in this.element.errors) {\r\n for (const key in this.element.errors[errorKey]) {\r\n if (this._messages[errorKey]) {\r\n this._messages[errorKey] = this._messages[errorKey].replace(\r\n `[${key}]`,\r\n this.element.errors[errorKey][key],\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n return this._messages;\r\n }\r\n\r\n set messages(m) {\r\n this._messages = m;\r\n }\r\n\r\n constructor(private ecabsService: EcabsComponentsService) {}\r\n\r\n ngOnInit(): void {\r\n this.configSubscription = this.ecabsService\r\n .getConfig()\r\n .subscribe((value) => {\r\n this.config = value;\r\n\r\n //eslint-disable-next-line\r\n for (const error of value?.errorMessages) {\r\n this.messages[error.type] = this.replaceTokens(error.message);\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { updatedErrors } = changes;\r\n\r\n if (\r\n updatedErrors &&\r\n updatedErrors.currentValue &&\r\n updatedErrors.currentValue.length > 0\r\n ) {\r\n for (const error of updatedErrors.currentValue) {\r\n this.messages[error.type] = error.message;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.configSubscription) {\r\n this.configSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n replaceTokens(message: string): string {\r\n let retMessage: string;\r\n if (this.label) {\r\n const cleanLabel = this.label.replace(/,.*/, '');\r\n retMessage = message.replace('[label]', cleanLabel);\r\n } else {\r\n retMessage = message;\r\n }\r\n\r\n return retMessage;\r\n }\r\n\r\n getMessageDetail(key: any): string {\r\n return this.messages[key];\r\n }\r\n}\r\n","<div\r\n class=\"form-field__validation\"\r\n *ngIf=\"element && (element?.touched || showValidationOnNotTouched) && element?.invalid\"\r\n>\r\n <div class=\"form-field__validation__item\" *ngFor=\"let item of element?.errors | keyvalue\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-hint',\r\n templateUrl: './ecabs-hint.component.html',\r\n styleUrls: ['./ecabs-hint.component.scss'],\r\n})\r\nexport class EcabsHintComponent {\r\n @Input() element!: any;\r\n @Input() maxValue!: number;\r\n @Input() showHint = false;\r\n}\r\n","<div class=\"hint\" *ngIf=\"element && showHint\">{{ element?.value?.length || 0 }}/{{ this.maxValue }}</div>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-element-wrapper',\r\n templateUrl: './element-wrapper.component.html',\r\n styleUrls: ['./element-wrapper.component.scss'],\r\n})\r\nexport class EcabsElementWrapperComponent {\r\n @Input() data!: any;\r\n @Input() showCloseIcon!: boolean;\r\n @Input() focusedFlag!: any;\r\n @Input() showPassword!: boolean;\r\n @Input() control!: any;\r\n @Output() showHidePassword = new EventEmitter<any>();\r\n @Output() clear = new EventEmitter<any>();\r\n @Output() increase = new EventEmitter<any>();\r\n @Output() decrease = new EventEmitter<any>();\r\n\r\n showHidePasswordFn(event: any): void {\r\n this.showHidePassword.emit(event);\r\n }\r\n\r\n clearFn(): void {\r\n this.clear.emit();\r\n }\r\n\r\n increaseFn(): void {\r\n this.increase.emit();\r\n }\r\n\r\n decreaseFn(): void {\r\n this.decrease.emit();\r\n }\r\n}\r\n","<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div class=\"flex\">\r\n <label\r\n class=\"form-field__label\"\r\n [attr.for]=\"data?.name\" *ngIf=\"data?.label && data?.showLabel\"\r\n >\r\n <span [innerHTML]=\"data?.label\"></span>\r\n </label>\r\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\" *ngIf=\"data?.tooltip\"\r\n [matTooltip]=\"data?.tooltip\">error_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"form-field__label-note\" *ngIf=\"data?.labelNote\" [innerHTML]=\"data?.labelNote\"></div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ecabs-loading-spinner *ngIf=\"data?.showLocalLoading && data?.loading\"\r\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\r\n\r\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\r\n\r\n <ecabs-validations-messages\r\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\r\n [element]=\"data?.control\"\r\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\r\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\r\n >\r\n </ecabs-validations-messages>\r\n</div>\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsDigitsOnly]',\r\n})\r\nexport class EcabsDigitsOnlyDirective implements OnInit {\r\n @Input()\r\n digitsOnly = false;\r\n\r\n @Input()\r\n allowHyphen = false;\r\n\r\n @Input() decimal? = false;\r\n @Input() decimalSeparator? = '.';\r\n @Input() unit? = 0;\r\n\r\n inputElement: HTMLInputElement;\r\n minus = '-';\r\n minusCounter = 0;\r\n regex!: RegExp;\r\n\r\n private decimalCounter = 0;\r\n private readonly navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): void {\r\n if (this.digitsOnly) {\r\n if (\r\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n (e.key === 'a' && e.ctrlKey) || // Allow: Ctrl+A\r\n (e.key === 'c' && e.ctrlKey) || // Allow: Ctrl+C\r\n (e.key === 'v' && e.ctrlKey) || // Allow: Ctrl+V\r\n (e.key === 'x' && e.ctrlKey) || // Allow: Ctrl+X\r\n (e.key === 'a' && e.metaKey) || // Allow: Cmd+A (Mac)\r\n (e.key === 'c' && e.metaKey) || // Allow: Cmd+C (Mac)\r\n (e.key === 'v' && e.metaKey) || // Allow: Cmd+V (Mac)\r\n (e.key === 'x' && e.metaKey) || // Allow: Cmd+X (Mac)\r\n (this.decimal &&\r\n e.key === this.decimalSeparator &&\r\n this.decimalCounter <= 1) || // Allow: only one decimal point\r\n (this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus\r\n ) {\r\n return;\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || !this.regex.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(): void {\r\n if (this.digitsOnly) {\r\n if (!this.decimal) {\r\n const regex = /[.,]/g;\r\n this.inputElement.value = this.inputElement.value.replace(regex, '');\r\n\r\n return;\r\n }\r\n\r\n this.decimalCounter =\r\n this.el.nativeElement.value.split(this.decimalSeparator).length - 1;\r\n this.minusCounter =\r\n this.el.nativeElement.value.split(this.minus).length - 1;\r\n\r\n if (isNaN(+this.inputElement.value)) {\r\n this.inputElement.value = this.sanitizeInput(this.inputElement.value);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent): void {\r\n if (this.digitsOnly) {\r\n const pastedInput = event.clipboardData?.getData('text/plain') as string;\r\n this.pasteData(pastedInput);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.regex = new RegExp(this.allowHyphen ? '^[\\\\d -]+$' : '\\\\d');\r\n }\r\n\r\n private pasteData(pastedContent: string): void {\r\n const sanitizedContent = isNaN(+pastedContent)\r\n ? this.sanitizeInput(pastedContent)\r\n : pastedContent;\r\n const pasted = document.execCommand('insertText', false, sanitizedContent);\r\n if (!pasted) {\r\n const { selectionStart: start, selectionEnd: end } = this.inputElement;\r\n this.inputElement.setRangeText(\r\n sanitizedContent,\r\n start as number,\r\n end as number,\r\n 'end',\r\n );\r\n }\r\n }\r\n\r\n private sanitizeInput(input: string): string {\r\n let result = '';\r\n if (this.decimal && this.isValidDecimal(input)) {\r\n //eslint-disable-next-line\r\n const regex = new RegExp(`^[\\d -${this.decimalSeparator}]+$`, 'g');\r\n result = input.replace(regex, '');\r\n } else {\r\n result = input.replace(`/${this.regex}/g`, '');\r\n }\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n\r\n if (maxLength > 0) {\r\n // the input element has maxLength limit\r\n const allowedLength = maxLength - this.inputElement.value.length;\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private isValidDecimal(inputString: string): boolean {\r\n return inputString.split(this.decimalSeparator as string).length <= 2;\r\n }\r\n}\r\n","import { Directive, forwardRef, Input } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n NG_VALIDATORS,\r\n Validator,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[mini][formControlName],[mini][formControl],[mini][ngModel]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => EcabsMinDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsMinDirective implements Validator {\r\n private _validator: ValidatorFn;\r\n\r\n @Input() public set mini(value: number) {\r\n this._validator = Validators.min(value);\r\n }\r\n\r\n public validate(control: AbstractControl): { [key: string]: any } {\r\n return this._validator(control);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[maxi][formControlName],[maxi][formControl],[maxi][ngModel]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => EcabsMinDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsMaxDirective implements Validator {\r\n private _validator: ValidatorFn;\r\n\r\n @Input() public set maxi(value: number) {\r\n this._validator = Validators.max(value);\r\n }\r\n\r\n public validate(control: AbstractControl): { [key: string]: any } {\r\n return this._validator(control);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-input',\r\n templateUrl: './ecabs-input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsInputComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsInputComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input()\r\n digitsOnly!: boolean;\r\n\r\n @Input()\r\n allowDecimal!: boolean;\r\n\r\n @Input()\r\n allowHyphen!: boolean;\r\n\r\n @Input() max!: number;\r\n @Input() mini!: number;\r\n @Input() maxi!: number;\r\n @Input() step!: number;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n val!: string | number;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n\r\n if (this.getData()?.control?.updateOn !== 'blur') {\r\n this.onTouch(val);\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'number') {\r\n this.digitsOnly = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n onChange: any = () => {};\r\n\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <input\r\n ecabsDigitsOnly\r\n [digitsOnly]=\"digitsOnly\"\r\n [decimal]=\"allowDecimal\"\r\n [allowHyphen]=\"allowHyphen\"\r\n class=\"form-field__input\"\r\n [type]=\"type\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [mini]=\"mini\"\r\n [maxi]=\"maxi\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n (blur)=\"blurChange($event)\"\r\n />\r\n\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content select=\".suffix\"></ng-content>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsHintComponent } from './ecabs-hint.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsHintComponent],\r\n imports: [CommonModule],\r\n exports: [EcabsHintComponent],\r\n})\r\nexport class EcabsHintModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { ValidationComponent } from './validation.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\n@NgModule({\r\n declarations: [ValidationComponent],\r\n imports: [CommonModule, FormsModule, MatFormFieldModule],\r\n exports: [ValidationComponent],\r\n})\r\nexport class EcabsValidationModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { EcabsHintModule } from '../../ecabs-hint/ecabs-hint.module';\r\nimport { EcabsValidationModule } from '../validation/validation.module';\r\nimport { EcabsElementWrapperComponent } from './element-wrapper.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsLoadingModule } from '../../ecabs-loading/ecabs-loading.module';\r\nimport {\r\n MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n MatFormFieldDefaultOptions,\r\n MatFormFieldModule,\r\n} from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { BlockScrollStrategy, Overlay } from '@angular/cdk/overlay';\r\nimport { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';\r\n\r\nconst appearance: MatFormFieldDefaultOptions = {\r\n appearance: 'outline',\r\n floatLabel: 'always',\r\n hideRequiredMarker: true,\r\n subscriptSizing: 'dynamic',\r\n};\r\n\r\nexport function scrollFactory(overlay: Overlay): () => BlockScrollStrategy {\r\n return () => overlay.scrollStrategies.block();\r\n}\r\n\r\n@NgModule({\r\n declarations: [EcabsElementWrapperComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n EcabsLoadingModule,\r\n EcabsValidationModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n EcabsHintModule,\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: appearance,\r\n },\r\n {\r\n provide: MAT_SELECT_SCROLL_STRATEGY,\r\n useFactory: scrollFactory,\r\n deps: [Overlay],\r\n },\r\n ],\r\n exports: [EcabsElementWrapperComponent],\r\n})\r\nexport class ElementWrapperModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsDigitsOnlyDirective } from './digits-only.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsDigitsOnlyDirective],\r\n exports: [EcabsDigitsOnlyDirective],\r\n})\r\nexport class EcabsDigitsOnlyDirectivesModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsMaxDirective, EcabsMinDirective } from './min-max.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsMinDirective, EcabsMaxDirective],\r\n exports: [EcabsMinDirective, EcabsMaxDirective],\r\n})\r\nexport class EcabsMinMaxDirectiveModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsInputComponent } from './ecabs-input.component';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { EcabsMinMaxDirectiveModule } from '../base/directives/min-max.directive.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsInputComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsMinMaxDirectiveModule,\r\n ],\r\n exports: [EcabsInputComponent],\r\n})\r\nexport class EcabsInputModule {}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Directive({\r\n selector: '[matTooltip][ecabsTooltipIfTruncated]',\r\n})\r\nexport class EcabsTooltipIfTruncatedDirective {\r\n @Input() classNameTruncatedTooltip: string;\r\n\r\n constructor(\r\n private readonly matTooltip: MatTooltip,\r\n private readonly elementRef: ElementRef<HTMLElement>,\r\n ) {}\r\n\r\n @HostListener('mouseover')\r\n onMouseOver(): void {\r\n const element =\r\n this.classNameTruncatedTooltip?.length > 0\r\n ? this.elementRef.nativeElement.getElementsByClassName(\r\n this.classNameTruncatedTooltip,\r\n )[0]\r\n : this.elementRef.nativeElement;\r\n this.matTooltip.disabled = element?.scrollWidth <= element?.clientWidth;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsTooltipIfTruncatedDirective } from './tooltip-if-truncated.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsTooltipIfTruncatedDirective],\r\n exports: [EcabsTooltipIfTruncatedDirective],\r\n})\r\nexport class EcabsTooltipIfTruncatedDirectiveModule {}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { MatSelectSearchComponent } from 'ngx-mat-select-search';\r\nimport {\r\n BehaviorSubject,\r\n combineLatest,\r\n debounceTime,\r\n map,\r\n Subscription,\r\n} from 'rxjs';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectOption } from '../base/models/select.models';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-select',\r\n templateUrl: './ecabs-select.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsSelectComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsSelectComponent\r\n extends EcabsElementBaseComponent\r\n implements OnInit, OnChanges, AfterViewInit, OnDestroy\r\n{\r\n @Input() items!: SelectOption[];\r\n @Input() multiple = false;\r\n @Input() useNoneOption = false;\r\n @Input() useOnlyDisabledClass = false;\r\n @Input() searchFieldPlaceholder = 'Search';\r\n @Input() useSearchOption = false;\r\n @Input() useSelectAllOption = false;\r\n @Input() setAllOptionAfterChosenAllItems = true;\r\n @Input() selectAllValue: any = 0;\r\n @Input() noEntriesFoundLabel = 'No matching found';\r\n @Input() noneLabel = 'None';\r\n @Input() allLabel = 'All';\r\n @Input() otherLabel = 'Other';\r\n @Input() othersLabel = 'Others';\r\n @Output() updateFilterItems: EventEmitter<string> =\r\n new EventEmitter<string>();\r\n @Output() selectionChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('allSelected') allSelected!: MatOption;\r\n @ViewChild(MatSelectSearchComponent)\r\n matSelectSearchComponent!: MatSelectSearchComponent;\r\n\r\n val!: any;\r\n filteredItems$: BehaviorSubject<{ label: string; value: any }[]> =\r\n new BehaviorSubject<{ label: string; value: any }[]>([]);\r\n itemFilterCtrl: UntypedFormControl = new UntypedFormControl();\r\n isClearAll = false;\r\n showFilteredAllOption = true;\r\n selectedItems: { label: string; value: any }[] = [];\r\n notSelectedItems: { label: string; value: any }[] = [];\r\n subscriptions = new Subscription();\r\n\r\n get value(): any {\r\n return this.val;\r\n }\r\n\r\n get trigger(): string {\r\n if (this.getAllSelectedChecked()) {\r\n return this.allLabel;\r\n }\r\n const firstChosenValue =\r\n this.val && this.multiple\r\n ? this.getLabel(this.val[0])\r\n : this.getLabel(this.val);\r\n\r\n return this.multiple && this.value?.length > 1\r\n ? `${firstChosenValue} (+${\r\n this.useSelectAllOption && this.allSelected?.selected\r\n ? this.value?.length - 2\r\n : this.value?.length - 1\r\n }\r\n ${this.value?.length === 2 ? this.otherLabel : this.othersLabel})`\r\n : firstChosenValue;\r\n }\r\n\r\n set value(val) {\r\n if (this.val !== val) {\r\n this.val = val;\r\n this.setSelectedItems();\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly changeDetectorRef: ChangeDetectorRef,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { items } = changes;\r\n\r\n if (items && items.currentValue) {\r\n this.filterItems();\r\n\r\n if (\r\n this.multiple &&\r\n this.useSelectAllOption &&\r\n this.allSelected?.selected\r\n ) {\r\n setTimeout(() => {\r\n this.control.patchValue(\r\n [\r\n ...this.filteredItems$.value.map((item) => item.value),\r\n this.selectAllValue,\r\n ],\r\n {\r\n emitEvent: false,\r\n },\r\n );\r\n }, 100);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n if (this.matSelectSearchComponent) {\r\n this.matSelectSearchComponent._showNoEntriesFound$ = combineLatest([\r\n this.itemFilterCtrl.valueChanges,\r\n this.filteredItems$,\r\n ]).pipe(\r\n map(\r\n ([value, items]) =>\r\n this.matSelectSearchComponent.noEntriesFoundLabel &&\r\n value &&\r\n items.length === 0,\r\n ),\r\n );\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.add(\r\n this.itemFilterCtrl.valueChanges\r\n .pipe(debounceTime(200))\r\n .subscribe((value: any) => {\r\n this.filterItems();\r\n this.updateFilterItems.emit(value);\r\n\r\n if (this.isClearAll) {\r\n this.control.patchValue([], { emitEvent: false });\r\n this.isClearAll = false;\r\n }\r\n }),\r\n );\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = () => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n toggleAllSelection(): void {\r\n if (this.allSelected.selected) {\r\n if (this.useSearchOption) {\r\n this.control.patchValue([\r\n ...this.filteredItems$.value.map((item) => item.value),\r\n this.selectAllValue,\r\n ]);\r\n } else {\r\n this.control.patchValue([\r\n ...this.items.map((item) => item.value),\r\n this.selectAllValue,\r\n ]);\r\n }\r\n } else {\r\n this.control.patchValue([]);\r\n this.isClearAll = true;\r\n }\r\n }\r\n\r\n togglePerOne(): void {\r\n setTimeout(() => {\r\n if (this.allSelected) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n }\r\n if (\r\n this.setAllOptionAfterChosenAllItems &&\r\n this.control.value.length === this.items.length\r\n ) {\r\n this.allSelected.select();\r\n }\r\n }\r\n });\r\n\r\n this.isClearAll = false;\r\n }\r\n\r\n toggleNone(): void {\r\n this.selectedItems = [];\r\n }\r\n\r\n getAllSelectedChecked(): boolean {\r\n return this.allSelected !== undefined && this.allSelected.selected;\r\n }\r\n\r\n getLabel(val: any): string {\r\n if (\r\n this.useSelectAllOption &&\r\n this.allSelected?.selected &&\r\n this.items &&\r\n this.items.length > 0\r\n ) {\r\n return this.items[0].label;\r\n }\r\n\r\n let item: { label: string; value: any };\r\n\r\n if (val !== undefined) {\r\n if (this.useSearchOption) {\r\n if (this.selectedItems && this.selectedItems.length > 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n item = this.selectedItems.find((item) => item.value === val);\r\n }\r\n } else {\r\n if (this.items && this.items.length > 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n item = this.items.find((item) => item.value === val);\r\n }\r\n }\r\n\r\n return item ? item.label : '';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onSelectionChanged($event: any): void {\r\n this.selectionChange.emit($event);\r\n }\r\n\r\n private filterItems(): void {\r\n this.setSelectedItems();\r\n\r\n if (!this.items) {\r\n return;\r\n }\r\n\r\n // get the search keyword\r\n let search: string = this.itemFilterCtrl.value;\r\n\r\n if (!search || search === '') {\r\n if (this.useSearchOption && !this.items?.length) {\r\n this.filteredItems$.next([...this.selectedItems]);\r\n } else {\r\n this.filteredItems$.next(this.items?.slice());\r\n }\r\n\r\n this.showFilteredAllOption = true;\r\n\r\n return;\r\n }\r\n\r\n search = search.toLowerCase();\r\n\r\n this.showFilteredAllOption =\r\n this.allLabel.toLowerCase().includes(search.toLowerCase()) ||\r\n (this.value instanceof Array &&\r\n this.value.includes(this.selectAllValue)) ||\r\n (!(this.value instanceof Array) && this.value === this.selectAllValue);\r\n this.changeDetectorRef.detectChanges();\r\n\r\n if (this.useSearchOption) {\r\n const filteredItems =\r\n this.notSelectedItems?.length > 0\r\n ? this.notSelectedItems.filter((item) =>\r\n item.label.toLowerCase().includes(search.toLowerCase()),\r\n )\r\n : [];\r\n this.filteredItems$.next([...this.selectedItems, ...filteredItems]);\r\n } else {\r\n this.filteredItems$.next(\r\n this.items?.length > 0\r\n ? this.items.filter((item) =>\r\n item.label.toLowerCase().includes(search.toLowerCase()),\r\n )\r\n : [],\r\n );\r\n }\r\n }\r\n\r\n private setSelectedItems(): void {\r\n if (this.useSearchOption) {\r\n const selectedItems = [];\r\n\r\n if (this.value) {\r\n if (this.value instanceof Array) {\r\n const skipSteps = this.value.includes(this.selectAllValue);\r\n\r\n if (!skipSteps) {\r\n this.value.forEach((value) => {\r\n const index = this.selectedItems?.findIndex(\r\n (selectedItem) => selectedItem.value === value,\r\n );\r\n\r\n if (index !== -1) {\r\n selectedItems.push(this.selectedItems[index]);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n const item = this.items?.find((item) => item.value === value);\r\n\r\n if (item) {\r\n selectedItems.push(item);\r\n }\r\n }\r\n });\r\n\r\n this.selectedItems.forEach((selectedItem) => {\r\n const index = this.value.find(\r\n (value) => selectedItem.value === value,\r\n );\r\n\r\n if (index === -1) {\r\n selectedItems.splice(index, 1);\r\n }\r\n });\r\n }\r\n } else {\r\n const index = this.selectedItems.findIndex(\r\n (selectedItem) => selectedItem.value === this.value,\r\n );\r\n\r\n if (index !== -1) {\r\n selectedItems.push(this.selectedItems[index]);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n const item = this.items.find((item) => item.value === this.value);\r\n\r\n // eslint-disable-next-line max-depth\r\n if (item) {\r\n selectedItems.push(item);\r\n }\r\n }\r\n }\r\n\r\n this.selectedItems = [...selectedItems];\r\n this.notSelectedItems = this.items?.filter(\r\n (item) =>\r\n this.selectedItems.findIndex(\r\n (selectedItem) => selectedItem.value === item.value,\r\n ) === -1,\r\n );\r\n } else {\r\n this.notSelectedItems = this.items?.slice();\r\n }\r\n }\r\n }\r\n}\r\n","<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 <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 {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</ecabs-element-wrapper>\r\n","import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport {\r\n MAT_SELECT_SCROLL_STRATEGY,\r\n MatSelectModule,\r\n} from '@angular/material/select';\r\nimport { BlockScrollStrategy, Overlay } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { EcabsTooltipIfTruncatedDirectiveModule } from '../base/directives/tooltip-if-truncated.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsSelectComponent } from './ecabs-select.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsSelectComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n NgxMatSelectSearchModule,\r\n ReactiveFormsModule,\r\n EcabsTooltipIfTruncatedDirectiveModule,\r\n ],\r\n exports: [EcabsSelectComponent],\r\n providers: [\r\n {\r\n provide: MAT_SELECT_SCROLL_STRATEGY,\r\n useFactory: scrollFactory,\r\n deps: [Overlay],\r\n },\r\n ],\r\n})\r\nexport class EcabsSelectModule {}\r\n\r\nexport function scrollFactory(overlay: Overlay): () => BlockScrollStrategy {\r\n return () => overlay.scrollStrategies.block();\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-checkbox',\r\n templateUrl: './ecabs-checkbox-toggle.component.html',\r\n styleUrls: ['./ecabs-checkbox-toggle.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsCheckboxToggleComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsCheckboxToggleComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnChanges\r\n{\r\n @Input() override type: 'checkbox' | 'toggle' = 'checkbox';\r\n @Input() text!: string;\r\n @Input() override readonly label: string = '';\r\n @Input() labelPosition: 'before' | 'after' = 'after';\r\n @Input() indeterminate!: boolean;\r\n @Input() checked!: boolean;\r\n //eslint-disable-next-line\r\n @Output() click = new EventEmitter<any>();\r\n @Output() changed = new EventEmitter<any>();\r\n\r\n val!: boolean;\r\n\r\n get value(): boolean {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes ?? {};\r\n\r\n if (type?.currentValue) {\r\n if (!this.labelPosition) {\r\n this.labelPosition = this.type === 'toggle' ? 'before' : 'after';\r\n }\r\n }\r\n }\r\n\r\n change(event): void {\r\n this.onChange(this.value);\r\n this.changed.emit(event);\r\n }\r\n\r\n onClick($event): void {\r\n this.click.emit($event);\r\n }\r\n\r\n onBlur(): void {\r\n setTimeout(() => {\r\n this.onTouch(this.value);\r\n });\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = !!value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <mat-checkbox\r\n (change)=\"change($event)\"\r\n (click)=\"onClick($event)\"\r\n (blur)=\"onBlur()\"\r\n [checked]=\"checked\"\r\n [indeterminate]=\"indeterminate\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n [labelPosition]=\"labelPosition\"\r\n [ngClass]=\"{ 'indeterminate': indeterminate }\"\r\n *ngSwitchCase=\"'checkbox'\"\r\n >\r\n {{ text }}\r\n </mat-checkbox>\r\n\r\n <mat-slide-toggle\r\n (change)=\"change($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [labelPosition]=\"labelPosition\"\r\n *ngSwitchCase=\"'toggle'\"\r\n >{{ text }}</mat-slide-toggle\r\n >\r\n </ng-container>\r\n</ecabs-element-wrapper>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\n\r\nimport { filter, Subject } from 'rxjs';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectValue } from '../base/models/element.models';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-select-v2',\r\n templateUrl: './ecabs-select-v2.component.html',\r\n styleUrls: ['./ecabs-select-v2.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: EcabsSelectV2Component,\r\n },\r\n ],\r\n})\r\nexport class EcabsSelectV2Component\r\n extends EcabsElementBaseComponent\r\n implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit\r\n{\r\n @ViewChild(NgSelectComponent, { static: true })\r\n ngSelect: NgSelectComponent;\r\n\r\n @Input()\r\n appearance: 'underline' | 'outline' = 'outline';\r\n\r\n @Input()\r\n appendTo = '';\r\n\r\n @Input()\r\n items: SelectValue[] = [];\r\n\r\n @Input()\r\n bindLabel = 'label';\r\n\r\n @Input()\r\n bindValue = 'value';\r\n\r\n @Input()\r\n editableSearchTerm = false;\r\n\r\n @Input()\r\n searchable: boolean;\r\n\r\n @Input()\r\n clearable = true;\r\n\r\n @Input()\r\n multiple = false;\r\n\r\n @Input()\r\n notFoundText: string;\r\n\r\n @Input()\r\n hideSelected: boolean;\r\n\r\n @Input()\r\n clearOnBackspace = false;\r\n\r\n @Input()\r\n clearSearchOnAdd: boolean;\r\n\r\n @Input()\r\n trackByFn: any;\r\n\r\n @Input()\r\n minLength: number;\r\n\r\n @Input()\r\n searchPlaceholder: string;\r\n\r\n @Input()\r\n typeahead: Subject<string>;\r\n\r\n @Input()\r\n closeOnSelect = true;\r\n\r\n @Input()\r\n clearAllText: string;\r\n\r\n @Input()\r\n selectAllLabel: string;\r\n\r\n @Input()\r\n otherLabel = 'Other';\r\n\r\n @Input()\r\n othersLabel = 'Others';\r\n\r\n touched = false;\r\n val: string | number;\r\n isOpen: boolean;\r\n groupByKey = 'selectAllIdentifier';\r\n selectedMulti = [];\r\n itemsList: SelectValue[];\r\n isTypeAhead: boolean;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initTrackBy();\r\n\r\n this.placeholder = this.placeholder || this.label;\r\n this.notFoundText = 'No data found';\r\n this.selectAllLabel = 'All';\r\n this.showLocalLoading = false; // hide default loading icon in ElementWrapper\r\n this.clearAllText = 'Clear all';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n\r\n this.typeahead\r\n ?.pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n filter((term) => !!term),\r\n )\r\n .subscribe((val) => {\r\n this.isTypeAhead = !!val;\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { items, multiple } = changes ?? {};\r\n\r\n if (items?.currentValue) {\r\n this.itemsList = this.items;\r\n this.selectAllFn(this.itemsList);\r\n }\r\n\r\n if (multiple?.currentValue) {\r\n this.closeOnSelect = this.closeOnSelect || false;\r\n this.clearSearchOnAdd = true;\r\n }\r\n }\r\n\r\n writeValue(value: number): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouched: any): void {\r\n this.onTouch = onTouched;\r\n }\r\n\r\n markAsTouched(): void {\r\n if (!this.touched) {\r\n this.onTouch();\r\n this.touched = true;\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n\r\n onTouch: any = () => {};\r\n\r\n onBlur(): void {\r\n this.onTouch(this.value);\r\n\r\n if (\r\n this.isTypeAhead &&\r\n !this.ngSelect.isOpen &&\r\n this.selectedMulti.length\r\n ) {\r\n this.itemsList = this.selectedMulti;\r\n }\r\n }\r\n\r\n selectAllFn(items: SelectValue[]): void {\r\n if (!!items?.length && this.multiple && !this.typeahead) {\r\n const allSelect = (elements: SelectValue[]): void => {\r\n elements.forEach((element: SelectValue) => {\r\n element[this.groupByKey] = '';\r\n });\r\n };\r\n\r\n allSelect(items);\r\n }\r\n }\r\n\r\n changed(event: SelectValue[]): void {\r\n if (this.multiple) {\r\n if (!event?.length) {\r\n this.itemsList = this.items;\r\n }\r\n\r\n this.selectedMulti = event;\r\n const valuesToCheck = new Set(event.map(({ value }) => value));\r\n const filteredList =\r\n this.items?.filter(({ value: item }) => !valuesToCheck.has(item)) || [];\r\n this.itemsList = [...this.selectedMulti, ...filteredList];\r\n\r\n if (event?.length === this.itemsList?.length) {\r\n this.ngSelect.close();\r\n }\r\n\r\n this.ngSelect.focus();\r\n }\r\n }\r\n\r\n protected initTrackBy() {\r\n this.trackByFn = (item: SelectValue) => {\r\n return item?.value;\r\n };\r\n }\r\n}\r\n","<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-container *ngIf=\"!typeahead\">\r\n <ng-option *ngFor=\"let item of itemsList\" [value]=\"item?.value\">\r\n {{ item?.label }}\r\n </ng-option>\r\n </ng-container>\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=\"!!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 {{ item?.['label'] }} <span *ngIf=\"items.length > 1\">\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\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\r\n <ng-template ng-option-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"item$?.['label']\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsCheckboxToggleComponent } from './ecabs-checkbox-toggle.component';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n@NgModule({\r\n declarations: [EcabsCheckboxToggleComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n FormsModule,\r\n ],\r\n exports: [EcabsCheckboxToggleComponent],\r\n})\r\nexport class EcabsCheckboxToggleModule {}\r\n","import { MatSelectModule } from '@angular/material/select';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsSelectV2Component } from './ecabs-select-v2.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { EcabsCheckboxToggleModule } from '../ecabs-checkbox-toggle/ecabs-checkbox-toggle.module';\r\nimport { EcabsLoadingModule } from '../ecabs-loading/ecabs-loading.module';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n@NgModule({\r\n declarations: [EcabsSelectV2Component],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n EcabsLoadingModule,\r\n EcabsCheckboxToggleModule,\r\n MatCheckboxModule,\r\n ],\r\n exports: [EcabsSelectV2Component],\r\n})\r\nexport class EcabsSelectV2Module {}\r\n","import { AfterViewInit, Component, Injector, Input } from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\n\r\n@Component({\r\n selector: 'ecabs-textarea',\r\n templateUrl: './ecabs-textarea.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsTextareaComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsTextareaComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input()\r\n rows!: number;\r\n\r\n val!: string;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = (): void => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = (): void => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <textarea\r\n class=\"form-field__textarea\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"\r\n [rows]=\"rows\"\r\n >\r\n </textarea>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTextareaComponent } from './ecabs-textarea.component';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [EcabsTextareaComponent],\r\n imports: [CommonModule, ElementWrapperModule, FormsModule],\r\n exports: [EcabsTextareaComponent],\r\n})\r\nexport class EcabsTextAreaModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UnsubscribeService {\r\n private issued = false;\r\n private unsubscribe$: Subject<void>;\r\n\r\n subscription(): Subject<void> {\r\n if (!this.issued) {\r\n this.issued = true;\r\n this.unsubscribe$ = new Subject<void>();\r\n }\r\n\r\n return this.unsubscribe$;\r\n }\r\n\r\n destroy(): void {\r\n this.unsubscribe$?.next();\r\n this.unsubscribe$?.complete();\r\n this.issued = false;\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { EcabsDatePickerTranslations } from '../models/ecabs-date-picker-translations.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EcabsDatePickerHeaderService {\r\n private defaultTranslations: EcabsDatePickerTranslations = {\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n selectDateLabel: 'Select date',\r\n selectDateRangeLabel: 'Select date range',\r\n startDatePlaceholder: 'Start date',\r\n selectDateTimeRangeLabel: 'Applicable times',\r\n endDatePlaceholder: 'End date',\r\n selectDateTimeLabel: 'Select date and time',\r\n all: 'All',\r\n from: 'From',\r\n to: 'To',\r\n };\r\n\r\n private _config: BehaviorSubject<EcabsDatePickerTranslations> =\r\n new BehaviorSubject<EcabsDatePickerTranslations>(this.defaultTranslations);\r\n\r\n setConfig(config: EcabsDatePickerTranslations): void {\r\n this._config.next(config);\r\n }\r\n\r\n getConfig(): Observable<EcabsDatePickerTranslations> {\r\n return this._config.asObservable();\r\n }\r\n\r\n updateConfig(configUpdate: EcabsDatePickerTranslations): void {\r\n this._config.next({\r\n ...this._config.getValue(),\r\n ...configUpdate,\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { MatCalendar } from '@angular/material/datepicker';\r\nimport { format } from 'date-fns';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport enGbLocale from 'date-fns/locale/en-GB';\r\n\r\n@Component({\r\n selector: 'ecabs-picker-header',\r\n templateUrl: './ecabs-picker-header.component.html',\r\n styleUrls: ['./ecabs-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [UnsubscribeService],\r\n})\r\nexport class EcabsPickerHeaderComponent<D> implements OnDestroy, OnInit {\r\n private unsubscribe$ = new Subject<void>();\r\n private yearsPerPage = 24;\r\n private translationConfig: EcabsDatePickerTranslations;\r\n\r\n get periodLabel(): string {\r\n if (this.calendar.currentView === 'month') {\r\n return format(\r\n new Date(this.calendar.activeDate.toString()),\r\n `MMMM yyyy`,\r\n {\r\n locale: this.translationConfig?.locale ?? enGbLocale,\r\n },\r\n );\r\n }\r\n\r\n return this.dateAdapter?.getYearName(this.calendar?.activeDate);\r\n }\r\n\r\n constructor(\r\n private readonly calendar: MatCalendar<D>,\r\n private readonly dateAdapter: DateAdapter<D>,\r\n private readonly cdr: ChangeDetectorRef,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n calendar.stateChanges\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => cdr.markForCheck());\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n previousClicked(): void {\r\n this.calendar.activeDate =\r\n this.calendar.currentView === 'month'\r\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1)\r\n : this.dateAdapter.addCalendarYears(\r\n this.calendar.activeDate,\r\n this.calendar.currentView === 'year' ? -1 : -this.yearsPerPage,\r\n );\r\n }\r\n\r\n nextClicked(): void {\r\n this.calendar.activeDate =\r\n this.calendar.currentView === 'month'\r\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1)\r\n : this.dateAdapter.addCalendarYears(\r\n this.calendar.activeDate,\r\n this.calendar.currentView === 'year' ? 1 : this.yearsPerPage,\r\n );\r\n }\r\n\r\n currentPeriodClicked(): void {\r\n this.calendar.currentView =\r\n this.calendar.currentView === 'month' ? 'multi-year' : 'month';\r\n }\r\n}\r\n","<div class=\"header\">\r\n <button mat-icon-button (click)=\"previousClicked()\">\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <button mat-flat-button (click)=\"currentPeriodClicked()\">\r\n <span >{{ periodLabel }}</span>\r\n </button>\r\n\r\n <button mat-icon-button (click)=\"nextClicked()\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-date-picker-header',\r\n templateUrl: './ecabs-date-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsDatePickerHeaderComponent {\r\n @Input() selectDateLabel: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{ selectDateLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateLabel}}\r\n</div>\r\n<ecabs-picker-header></ecabs-picker-header>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-date-picker-actions',\r\n templateUrl: './ecabs-date-picker-actions.component.html',\r\n styleUrls: ['./ecabs-date-picker-actions.component.scss'],\r\n})\r\nexport class EcabsDatePickerActionsComponent {\r\n @Input()\r\n cancelLabel = 'Cancel';\r\n\r\n @Input()\r\n applyLabel = 'Apply';\r\n\r\n @Output()\r\n readonly apply: EventEmitter<void> = new EventEmitter();\r\n}\r\n","<div class=\"grid grid-cols-2 gap-4\">\r\n <ecabs-buttons color=\"primary\"\r\n [style]=\"'stroked'\"\r\n matDatepickerCancel>\r\n {{ cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"apply.emit()\"\r\n (keydown.enter)=\"apply.emit()\">\r\n {{ applyLabel }}\r\n </ecabs-buttons>\r\n</div>\r\n","import { format, isEqual, isValid } from 'date-fns';\r\nimport { takeUntil } from 'rxjs';\r\nimport Holidays from 'date-holidays';\r\n\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport {\r\n EcabsDatePickerHolidayOptions,\r\n EcabsDatePickerTranslations,\r\n} from '../base/models/ecabs-date-picker-translations.models';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\n\r\nimport { EcabsDatePickerHeaderComponent } from './components/ecabs-date-picker-header/ecabs-date-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-picker',\r\n templateUrl: './ecabs-date-picker.component.html',\r\n styleUrls: ['./ecabs-date-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDatePickerComponent,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDatePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() excludeHolidays: boolean;\r\n @Input() excludeWeekends: boolean;\r\n @Input() specificDates: Date[];\r\n @Input() holidayOptions: EcabsDatePickerHolidayOptions;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n\r\n val: string | number;\r\n header = EcabsDatePickerHeaderComponent;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val: string | number) {\r\n if (this.val !== val && (!val || isValid(new Date(val)))) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n isDateNotHoliday(date: Date): boolean {\r\n const { countryCode, timeZoneOffset } = this.holidayOptions ?? {};\r\n\r\n if (countryCode && timeZoneOffset) {\r\n const holiday = new Holidays(countryCode.toUpperCase());\r\n\r\n return !holiday.isHoliday(\r\n `${format(date, 'yyyy-MM-dd')}T00:00:00${timeZoneOffset}`,\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n filterDateRange = (date: Date): boolean => {\r\n let result = true;\r\n\r\n if (isValid(new Date(date))) {\r\n const day = date?.getDay();\r\n\r\n if (this.excludeWeekends) {\r\n result = result && day !== 0 && day !== 6;\r\n }\r\n\r\n if (this.excludeHolidays) {\r\n result = result && this.isDateNotHoliday(date);\r\n }\r\n\r\n if (this.specificDates?.length > 0) {\r\n const specificDates = this.specificDates;\r\n if (specificDates && specificDates.length > 0) {\r\n const index = specificDates.findIndex((specificDate) =>\r\n isEqual(date, specificDate),\r\n );\r\n result = result && index === -1;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <input\r\n class=\"form-field__input date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix [for]=\"picker\"\r\n class=\"text-gray-500\"\r\n >\r\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <ecabs-date-picker-actions\r\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n >\r\n </ecabs-date-picker-actions>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-time-date-picker-header',\r\n templateUrl: './ecabs-date-time-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-time-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsDateTimePickerHeaderComponent {\r\n @Input() headerLabel?: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{ headerLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateTimeLabel }}\r\n</div>\r\n<ecabs-picker-header></ecabs-picker-header>\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsNumberBorder]',\r\n})\r\nexport class EcabsNumberBorderDirective {\r\n @Input() maxValue: number;\r\n @Input() minValue: number;\r\n\r\n inputElement: HTMLInputElement;\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e): void {\r\n const value = +e.target.value;\r\n\r\n if (isNaN(value)) {\r\n this.inputElement.value = this.sanitizeInput(e.target.value);\r\n\r\n return;\r\n }\r\n\r\n if (this.maxValue) {\r\n if (value > this.maxValue) {\r\n this.inputElement.value = this.sanitizeInput(this.maxValue.toString());\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (this.minValue && this.minValue !== value) {\r\n if (value < this.minValue) {\r\n this.inputElement.value = this.sanitizeInput(this.minValue.toString());\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n private sanitizeInput(input: string): string {\r\n let result = '';\r\n //eslint-disable-next-line\r\n const regex = new RegExp(`/\\d+/g`);\r\n result = input.replace(regex, '');\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n\r\n if (maxLength > 0) {\r\n const allowedLength = maxLength - this.inputElement.value.length;\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","const maxValueMonth = [31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\nconst formatOrder = ['yyyy', 'yy', 'mm', 'dd', 'HH', 'MM', 'SS'];\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nexport function createAutoCorrectedDatePipe(\r\n dateFormat = 'dd mm yyyy',\r\n { minYear = 1, maxYear = 9999 } = {},\r\n) {\r\n const dateFormatArray = dateFormat\r\n .split(/[^dmyHMS]+/)\r\n .sort((a, b) => formatOrder.indexOf(a) - formatOrder.indexOf(b));\r\n\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n return function (conformedValue) {\r\n const indexesOfPipedChars = [];\r\n const maxValue = {\r\n dd: 31,\r\n mm: 12,\r\n yy: 99,\r\n yyyy: maxYear,\r\n HH: 23,\r\n MM: 59,\r\n SS: 59,\r\n };\r\n const minValue = {\r\n dd: 1,\r\n mm: 1,\r\n yy: 0,\r\n yyyy: minYear,\r\n HH: 0,\r\n MM: 0,\r\n SS: 0,\r\n };\r\n const conformedValueArr = conformedValue.split('');\r\n\r\n // Check first digit\r\n dateFormatArray.forEach((format) => {\r\n const position = dateFormat.indexOf(format);\r\n const maxFirstDigit = parseInt(\r\n maxValue[format].toString().substr(0, 1),\r\n 10,\r\n );\r\n\r\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\r\n conformedValueArr[position + 1] = conformedValueArr[position];\r\n conformedValueArr[position] = 0;\r\n indexesOfPipedChars.push(position);\r\n }\r\n });\r\n\r\n // Check for invalid date\r\n let month = 0;\r\n const isInvalid = dateFormatArray.some((format) => {\r\n const position = dateFormat.indexOf(format);\r\n const length = format.length;\r\n const textValue = conformedValue\r\n .substr(position, length)\r\n .replace(/\\D/g, '');\r\n const value = parseInt(textValue, 10);\r\n\r\n if (format === 'mm') {\r\n // tslint:disable-next-line: strict-boolean-expressions\r\n month = value || 0;\r\n }\r\n\r\n const maxValueForFormat =\r\n format === 'dd' ? maxValueMonth[month] : maxValue[format];\r\n\r\n if (format === 'yyyy' && (minYear !== 1 || maxYear !== 9999)) {\r\n const scopedMaxValue = parseInt(\r\n maxValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n const scopedMinValue = parseInt(\r\n minValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n\r\n return value < scopedMinValue || value > scopedMaxValue;\r\n }\r\n\r\n if (format === 'HH' || format === 'MM') {\r\n const scopedMaxValue = parseInt(\r\n maxValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n const scopedMinValue = parseInt(\r\n minValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n\r\n return value < scopedMinValue || value > scopedMaxValue;\r\n }\r\n\r\n return (\r\n value > maxValueForFormat ||\r\n (textValue.length === length && value < minValue[format])\r\n );\r\n });\r\n\r\n if (isInvalid) {\r\n return false;\r\n }\r\n\r\n return {\r\n value: conformedValueArr.join(''),\r\n indexesOfPipedChars,\r\n };\r\n };\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';\r\nimport { createAutoCorrectedDatePipe } from '../consts/date-mask.consts';\r\n\r\n@Directive({\r\n selector: '[ecabsMaskDate]',\r\n})\r\nexport class EcabsMaskDateDirective implements OnInit, OnDestroy {\r\n @Input() isDateTimeMask = false;\r\n @Input() considerSeconds = false;\r\n\r\n maskedInputController;\r\n mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/]; // dd/mm/yyyy\r\n maskDateTime = [\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n ',',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ]; // dd/mm/yyyy, hh:mm\r\n maskDateTimeWithSeconds = [\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n ',',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ]; // dd/mm/yyyy, hh:mm:ss\r\n config: any;\r\n\r\n constructor(private readonly element: ElementRef) {}\r\n\r\n @HostListener('ngModelChange', ['$event']) onNgModelChange(value): void {\r\n this.config.showMask = true;\r\n\r\n if (!this.containsNumber(value.toString())) {\r\n this.config.showMask = false;\r\n this.maskedInputController.textMaskInputElement.update('');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.config = {\r\n inputElement: this.element.nativeElement,\r\n guide: true,\r\n showMask: true,\r\n pipe: this.isDateTimeMask\r\n ? this.considerSeconds\r\n ? createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM:SS')\r\n : createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM')\r\n : createAutoCorrectedDatePipe('dd/mm/yyyy'),\r\n keepCharPositions: true,\r\n mask: this.isDateTimeMask\r\n ? this.considerSeconds\r\n ? this.maskDateTimeWithSeconds\r\n : this.maskDateTime\r\n : this.mask,\r\n };\r\n\r\n this.maskedInputController = textMask.maskInput(this.config);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.maskedInputController?.destroy();\r\n }\r\n\r\n private containsNumber(value: string): boolean {\r\n // Check if the string contains any digit between 0 and 9\r\n return /\\d/.test(value);\r\n }\r\n}\r\n","import {\r\n format,\r\n isValid,\r\n parse,\r\n setHours,\r\n setMinutes,\r\n setSeconds,\r\n} from 'date-fns';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { DecimalPipe } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDateTimePickerHeaderComponent } from './components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-time-picker',\r\n templateUrl: './ecabs-date-time-picker.component.html',\r\n styleUrls: ['./ecabs-date-time-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDateTimePickerComponent,\r\n multi: true,\r\n },\r\n DecimalPipe,\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDateTimePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() hideSeconds = true;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() applyMinDateAuto = true;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n\r\n _hours = '12';\r\n _minutes = '00';\r\n _seconds = '00';\r\n _date: Date;\r\n _pickerValue: string;\r\n val: Date;\r\n header = EcabsDateTimePickerHeaderComponent;\r\n maxValueHours = 23;\r\n maxValueMinutesSeconds = 59;\r\n preventCallSetterPickerValue = false;\r\n runTimeout = false;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): Date {\r\n return this.val;\r\n }\r\n\r\n get pickerValue(): string {\r\n return this._pickerValue;\r\n }\r\n\r\n get hours(): string {\r\n return this._hours;\r\n }\r\n\r\n get minutes(): string {\r\n return this._minutes;\r\n }\r\n\r\n get seconds(): string {\r\n return this._seconds;\r\n }\r\n\r\n set hours(value: string) {\r\n if (value !== undefined && this._hours !== value) {\r\n this._hours = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set minutes(value: string) {\r\n if (value !== undefined && this._minutes !== value) {\r\n this._minutes = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set seconds(value: string) {\r\n if (value !== undefined && this._seconds !== value) {\r\n this._seconds = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set value(val) {\r\n if (val && this.val?.getTime() !== new Date(val).getTime()) {\r\n if (!this.preventCallSetterPickerValue) {\r\n this.pickerValue = this.formatDateTime(val);\r\n }\r\n this.preventCallSetterPickerValue = false;\r\n }\r\n }\r\n\r\n set pickerValue(val: string) {\r\n if (val) {\r\n const date = parse(\r\n val.replace('_', ''),\r\n this.hideSeconds ? `dd/MM/yyyy, HH:mm` : `dd/MM/yyyy, HH:mm:ss`,\r\n new Date(),\r\n );\r\n\r\n if (isValid(date) && this._pickerValue !== val) {\r\n if (this.minDate && date < this.minDate && this.applyMinDateAuto) {\r\n this.setValues(this.minDate);\r\n this._pickerValue = val;\r\n this.preventCallSetterPickerValue = true;\r\n this.value = this.minDate;\r\n this.runTimeout = true;\r\n this.refreshPickerValue(this.minDate);\r\n\r\n return;\r\n }\r\n\r\n if (this.maxDate && date > this.maxDate) {\r\n this.setValues(this.maxDate);\r\n this._pickerValue = val;\r\n this.preventCallSetterPickerValue = true;\r\n this.value = this.maxDate;\r\n this.runTimeout = true;\r\n this.refreshPickerValue(this.maxDate);\r\n\r\n return;\r\n }\r\n\r\n this.runTimeout = false;\r\n this._pickerValue = val;\r\n this.preventCallSetterPickerValue = true;\r\n this.value = date;\r\n this.setValues(date);\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly decimalPipe: DecimalPipe,\r\n private readonly cd: ChangeDetectorRef,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n\r\n setTimeout(() => {\r\n const controlDate = this.control.value;\r\n\r\n if (controlDate) {\r\n this.setValues(controlDate);\r\n }\r\n }, 10);\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n onApply(): void {\r\n if (this._date && this._seconds && this._minutes && this._hours) {\r\n const date = setSeconds(\r\n setMinutes(\r\n setHours(new Date(this._date), +this._hours),\r\n +this._minutes,\r\n ),\r\n +this._seconds,\r\n );\r\n this.value = date;\r\n }\r\n }\r\n\r\n refreshPickerValue(date: Date): void {\r\n setTimeout(() => {\r\n if (this.runTimeout) {\r\n this._pickerValue = this.formatDateTime(date);\r\n this.cd.detectChanges();\r\n }\r\n }, 3000);\r\n }\r\n\r\n private formatDateTime(date: Date): string {\r\n let result = '';\r\n\r\n if (date && isValid(new Date(date))) {\r\n result = this.hideSeconds\r\n ? format(new Date(date), `dd/MM/yyyy, HH:mm`)\r\n : format(new Date(date), `dd/MM/yyyy, HH:mm:ss`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private roundNumber(num: number): string | null {\r\n return this.decimalPipe.transform(num, '2.0-0') ?? '00';\r\n }\r\n\r\n private setValues(date: Date): void {\r\n this.onChange(date);\r\n this.onTouch(date);\r\n this._date = date;\r\n\r\n if (date && isValid(date)) {\r\n this.hours = date.getHours().toString();\r\n this.minutes = date.getMinutes().toString();\r\n this.seconds = date.getSeconds().toString();\r\n }\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\r\n <mat-datepicker-actions>\r\n <div class=\"actions\">\r\n <div class=\"time--inputs\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hours\"\r\n [value]=\"_hours\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hours\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutes\"\r\n [(ngModel)]=\"minutes\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n\r\n <ng-container *ngIf=\"!hideSeconds\">\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"seconds\"\r\n [(ngModel)]=\"seconds\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </ng-container>\r\n </div>\r\n\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n ecabsMaskDate\r\n [isDateTimeMask]=\"true\"\r\n [considerSeconds]=\"!hideSeconds\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <button mat-icon-button class=\"datepicker-ui__toggle text-gray-500\"\r\n (click)=\"picker.open()\">\r\n <mat-icon>calendar_today</mat-icon>\r\n </button>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsMaskDateDirective } from './date-mask.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsMaskDateDirective],\r\n exports: [EcabsMaskDateDirective],\r\n})\r\nexport class EcabsMaskDateDirectiveModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsNumberBorderDirective } from './number-border.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsNumberBorderDirective],\r\n exports: [EcabsNumberBorderDirective],\r\n})\r\nexport class EcabsNumberBorderDirectiveModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPickerHeaderComponent } from './ecabs-picker-header.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsPickerHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n ],\r\n exports: [EcabsPickerHeaderComponent],\r\n})\r\nexport class EcabsPickerHeaderModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsDatePickerActionsComponent } from './ecabs-date-picker-actions.component';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\n\r\n@NgModule({\r\n declarations: [EcabsDatePickerActionsComponent],\r\n exports: [EcabsDatePickerActionsComponent],\r\n imports: [CommonModule, EcabsButtonsModule, MatDatepickerModule],\r\n})\r\nexport class EcabsDatePickerActionsModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsMaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { EcabsNumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDateTimePickerHeaderComponent } from './components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component';\r\nimport { EcabsDateTimePickerComponent } from './ecabs-date-time-picker.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [\r\n EcabsDateTimePickerComponent,\r\n EcabsDateTimePickerHeaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsButtonsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsNumberBorderDirectiveModule,\r\n EcabsMaskDateDirectiveModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsDateTimePickerComponent, EcabsDateTimePickerHeaderComponent],\r\n})\r\nexport class EcabsDatetimePickerModule {}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-date-range-picker-header',\r\n templateUrl: './ecabs-date-range-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-range-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsDateRangePickerHeaderComponent {\r\n @Input() selectDateRangeLabel: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{selectDateRangeLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateRangeLabel}}\r\n</div>\r\n<ecabs-picker-header></ecabs-picker-header>\r\n","import { takeUntil } from 'rxjs';\r\n\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDateRangePickerHeaderComponent } from './components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-range-picker',\r\n templateUrl: './ecabs-date-range-picker.component.html',\r\n styleUrls: ['./ecabs-date-range-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDateRangePickerComponent,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDateRangePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() startDatePlaceholder: string;\r\n @Input() endDatePlaceholder: string;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n val: {\r\n dateFrom: string;\r\n dateTo: string;\r\n };\r\n\r\n header = EcabsDateRangePickerHeaderComponent;\r\n _dateFrom: string;\r\n _dateTo: string;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): {\r\n dateFrom: string;\r\n dateTo: string;\r\n } {\r\n return this.val;\r\n }\r\n\r\n get dateFrom(): string {\r\n return this._dateFrom;\r\n }\r\n\r\n get dateTo(): string {\r\n return this._dateTo;\r\n }\r\n\r\n //eslint-disable-next-line\r\n set value(val: { dateFrom: string; dateTo: string }) {\r\n if (val !== undefined) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n //eslint-disable-next-line\r\n set dateFrom(val: string) {\r\n if (val !== undefined && this._dateFrom !== val) {\r\n this._dateFrom = val;\r\n }\r\n }\r\n\r\n //eslint-disable-next-line\r\n set dateTo(val: string) {\r\n if (val !== undefined && this._dateTo !== val) {\r\n this._dateTo = val;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n setTimeout(() => {\r\n this.dateFrom = this.value.dateFrom;\r\n this.dateTo = this.value.dateTo;\r\n });\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n onApply(): void {\r\n if (this.dateFrom && this.dateTo) {\r\n this.value = {\r\n dateFrom: this.dateFrom,\r\n dateTo: this.dateTo,\r\n };\r\n }\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <mat-date-range-input [rangePicker]=\"picker\" (blur)=\"onTouch()\">\r\n <input matStartDate class=\"form-field__input\" [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\" [value]=\"dateFrom\" [(ngModel)]=\"dateFrom\" />\r\n <input matEndDate class=\"form-field__input\" [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\" [value]=\"dateTo\" [(ngModel)]=\"dateTo\" />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon class=\"text-gray-500\">calendar_today</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\">\r\n <mat-datepicker-actions>\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </mat-datepicker-actions>\r\n </mat-date-range-picker>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsMaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { EcabsNumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDateRangePickerHeaderComponent } from './components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component';\r\nimport { EcabsDateRangePickerComponent } from './ecabs-date-range-picker.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nexport const MATERIAL_DATETIMEPICKER_FORMATS = {\r\n parse: {\r\n dateInput: 'DD/MMM/YYYY HH:mm:SS',\r\n },\r\n display: {\r\n dateInput: 'DD/MMM/YYYY HH:mm:SS',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'DD/MMM/YYYY HH:mm:SS',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n EcabsDateRangePickerComponent,\r\n EcabsDateRangePickerHeaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsButtonsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsNumberBorderDirectiveModule,\r\n EcabsMaskDateDirectiveModule,\r\n MatInputModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsDateRangePickerComponent, EcabsDateRangePickerHeaderComponent],\r\n})\r\nexport class EcabsDateRangeModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDatePickerHeaderComponent } from './components/ecabs-date-picker-header/ecabs-date-picker-header.component';\r\nimport { EcabsDatePickerComponent } from './ecabs-date-picker.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsDatePickerComponent, EcabsDatePickerHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsDatePickerComponent, EcabsDatePickerHeaderComponent],\r\n})\r\nexport class EcabsDatePickerModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-date-time-range-picker-header',\r\n templateUrl: './ecabs-date-time-range-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-time-range-picker-header.component.scss'],\r\n})\r\nexport class EcabsDateTimeRangePickerHeaderComponent {\r\n @Input() headerLabel: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{ headerLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateTimeRangeLabel}}\r\n </div>\r\n <ecabs-picker-header ></ecabs-picker-header>\r\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';\r\n\r\n@Directive({\r\n selector: '[ecabsTime]',\r\n})\r\nexport class EcabsMaskTimeDirective implements OnInit, OnDestroy {\r\n @Input() timeRange?: boolean = false;\r\n @Input() all: string;\r\n\r\n maskedInputController;\r\n maskTimeRange = [\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ' ',\r\n '-',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ];\r\n maskTime = [/\\d/, /\\d/, ':', /\\d/, /\\d/];\r\n\r\n constructor(private readonly element: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n const all = this.all;\r\n const timeRange = this.timeRange;\r\n this.maskedInputController = textMask.maskInput({\r\n inputElement: this.element.nativeElement,\r\n guide: true,\r\n showMask: false,\r\n keepCharPositions: true,\r\n mask: timeRange ? this.maskTimeRange : this.maskTime,\r\n pipe: function (conformedValue) {\r\n if (conformedValue === (timeRange ? '__:__ - __:__' : '__:__')) {\r\n return all;\r\n }\r\n\r\n return conformedValue;\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.maskedInputController.destroy();\r\n }\r\n}\r\n","import { takeUntil } from 'rxjs';\r\n\r\nimport { DecimalPipe } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-time-range-picker',\r\n templateUrl: './ecabs-date-time-range-picker.component.html',\r\n styleUrls: ['./ecabs-date-time-range-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDateTimeRangePickerComponent,\r\n multi: true,\r\n },\r\n DecimalPipe,\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDateTimeRangePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() all: string;\r\n @Input() from: string;\r\n @Input() to: string;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n\r\n _hoursFrom = '12';\r\n _minutesFrom = '00';\r\n _hoursTo = '12';\r\n _minutesTo = '00';\r\n _seconds = '00';\r\n _date: string;\r\n _pickerValue: string;\r\n val: string;\r\n header = EcabsDateTimeRangePickerHeaderComponent;\r\n maxValueHours = 23;\r\n maxValueMinutesSeconds = 59;\r\n controlDate: UntypedFormControl;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n get pickerValue(): string {\r\n return this._pickerValue;\r\n }\r\n\r\n get hoursFrom(): string {\r\n return this._hoursFrom;\r\n }\r\n\r\n get minutesFrom(): string {\r\n return this._minutesFrom;\r\n }\r\n\r\n get hoursTo(): string {\r\n return this._hoursTo;\r\n }\r\n\r\n get minutesTo(): string {\r\n return this._minutesTo;\r\n }\r\n\r\n get seconds(): string {\r\n return this._seconds;\r\n }\r\n\r\n get allLabel(): string {\r\n return this.all ?? this.translationConfig?.all;\r\n }\r\n\r\n set hoursFrom(value: string) {\r\n if (value !== undefined && this._hoursFrom !== value) {\r\n this._hoursFrom = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set minutesFrom(value: string) {\r\n if (value !== undefined && this._minutesFrom !== value) {\r\n this._minutesFrom = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set hoursTo(value: string) {\r\n if (value !== undefined && this._hoursTo !== value) {\r\n this._hoursTo = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set minutesTo(value: string) {\r\n if (value !== undefined && this._minutesTo !== value) {\r\n this._minutesTo = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set seconds(value: string) {\r\n if (value !== undefined && this._seconds !== value) {\r\n this._seconds = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set value(val) {\r\n if (val && this.val !== val) {\r\n this.val = val;\r\n this.pickerValue = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n set pickerValue(val: string) {\r\n if (val) {\r\n this._pickerValue = val;\r\n this.value = val;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly decimalPipe: DecimalPipe,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n\r\n setTimeout(() => {\r\n this.controlDate = this.control;\r\n const controlDate = this.control.value ? this.control.value : '';\r\n\r\n if (controlDate) {\r\n this.setValues(controlDate);\r\n }\r\n }, 10);\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n keydownChange(e: any): void {\r\n if (e?.target.value === this.allLabel) {\r\n const val = '';\r\n this.val = val;\r\n this._pickerValue = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n onApply(): void {\r\n if (\r\n this._minutesFrom &&\r\n this._hoursFrom &&\r\n this._minutesTo &&\r\n this._hoursTo\r\n ) {\r\n this._hoursFrom = this.validateMaxHour(this._hoursFrom);\r\n this._minutesFrom = this.validateMaxMin(this._minutesFrom);\r\n this._hoursTo = this.validateMaxHour(this._hoursTo);\r\n this._minutesTo = this.validateMaxMin(this._minutesTo);\r\n this.setValues(\r\n this._hoursFrom +\r\n ':' +\r\n this._minutesFrom +\r\n ' - ' +\r\n this._hoursTo +\r\n ':' +\r\n this._minutesTo,\r\n );\r\n this.value =\r\n this._hoursFrom +\r\n ':' +\r\n this._minutesFrom +\r\n ' - ' +\r\n this._hoursTo +\r\n ':' +\r\n this._minutesTo;\r\n\r\n return;\r\n }\r\n }\r\n\r\n opened(): void {\r\n setTimeout(() => {\r\n const elements = document.getElementsByClassName('mat-calendar-content');\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n\r\n const cols = Array.from(\r\n document.getElementsByClassName(\r\n 'mat-calendar',\r\n ) as HTMLCollectionOf<HTMLElement>,\r\n );\r\n //eslint-disable-next-line\r\n for (let i = 0; i < cols.length; i++) {\r\n cols[i].style.height = '50px';\r\n }\r\n });\r\n }\r\n\r\n private roundNumber(num: number): string | null {\r\n return this.decimalPipe.transform(num, '2.0-0') ?? '00';\r\n }\r\n\r\n private setValues(date: string): void {\r\n this._date = date;\r\n }\r\n\r\n private validateMaxHour(hour: string): string {\r\n return parseInt(hour) > this.maxValueHours\r\n ? this.maxValueHours.toString()\r\n : hour;\r\n }\r\n\r\n private validateMaxMin(min: string): string {\r\n return parseInt(min) > this.maxValueMinutesSeconds\r\n ? this.maxValueMinutesSeconds.toString()\r\n : min;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from ?? translationConfig?.from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to ?? translationConfig?.to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n ecabsTime\r\n [all]=\"allLabel\"\r\n [timeRange]=\"true\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"text-gray-500 -translate-x-9\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsMaskTimeDirective } from './time-mask.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsMaskTimeDirective],\r\n exports: [EcabsMaskTimeDirective],\r\n})\r\nexport class EcabsMaskTimeDirectiveModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsMaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { EcabsNumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDateTimeRangePickerComponent } from './ecabs-date-time-range-picker.component';\r\nimport { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { EcabsMaskTimeDirectiveModule } from '../base/directives/time-mask.directive.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [\r\n EcabsDateTimeRangePickerComponent,\r\n EcabsDateTimeRangePickerHeaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsButtonsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsNumberBorderDirectiveModule,\r\n EcabsMaskDateDirectiveModule,\r\n EcabsDatePickerActionsModule,\r\n EcabsMaskTimeDirectiveModule,\r\n ],\r\n exports: [\r\n EcabsDateTimeRangePickerComponent,\r\n EcabsDateTimeRangePickerHeaderComponent,\r\n ],\r\n})\r\nexport class EcabsDatetimeRangePickerModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\n\r\n@Component({\r\n selector: 'ecabs-increment',\r\n templateUrl: './ecabs-increment.component.html',\r\n styleUrls: ['./ecabs-increment.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsIncrementComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsIncrementComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input() digitsOnly!: boolean;\r\n @Input() allowDecimal!: boolean;\r\n @Input() allowHyphen!: boolean;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n val!: string | number;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n increment(): void {\r\n this.value = +this.value + 1;\r\n }\r\n\r\n decrement(): void {\r\n this.value = +this.value - 1;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <input ecabsDigitsOnly [digitsOnly]=\"digitsOnly\" [decimal]=\"allowDecimal\" [allowHyphen]=\"allowHyphen\"\r\n class=\"form-field__input\"\r\n [type]=\"type\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"/>\r\n\r\n <div class=\"incrementor\">\r\n <mat-icon (click)=\"increment()\">add</mat-icon>\r\n <mat-icon (click)=\"decrement()\">remove</mat-icon>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsIncrementComponent } from './ecabs-increment.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@NgModule({\r\n declarations: [EcabsIncrementComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n ],\r\n exports: [EcabsIncrementComponent],\r\n})\r\nexport class EcabsIncrementModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CountryCode {\r\n public allCountries = [\r\n ['Afghanistan (افغانستان)', 'af', '93'],\r\n ['Albania (Shqipëri)', 'al', '355'],\r\n ['Algeria (الجزائر)', 'dz', '213'],\r\n ['American Samoa', 'as', '1684'],\r\n ['Andorra', 'ad', '376'],\r\n ['Angola', 'ao', '244'],\r\n ['Anguilla', 'ai', '1264'],\r\n ['Antigua and Barbuda', 'ag', '1268'],\r\n ['Argentina', 'ar', '54'],\r\n ['Armenia (Հայաստան)', 'am', '374'],\r\n ['Aruba', 'aw', '297'],\r\n ['Australia', 'au', '61', 0],\r\n ['Austria (Österreich)', 'at', '43'],\r\n ['Azerbaijan (Azərbaycan)', 'az', '994'],\r\n ['Bahamas', 'bs', '1242'],\r\n ['Bahrain (البحرين)', 'bh', '973'],\r\n ['Bangladesh (বাংলাদেশ)', 'bd', '880'],\r\n ['Barbados', 'bb', '1246'],\r\n ['Belarus (Беларусь)', 'by', '375'],\r\n ['Belgium (België)', 'be', '32'],\r\n ['Belize', 'bz', '501'],\r\n ['Benin (Bénin)', 'bj', '229'],\r\n ['Bermuda', 'bm', '1441'],\r\n ['Bhutan (འབྲུག)', 'bt', '975'],\r\n ['Bolivia', 'bo', '591'],\r\n ['Bosnia and Herzegovina (Босна и Херцеговина)', 'ba', '387'],\r\n ['Botswana', 'bw', '267'],\r\n ['Brazil (Brasil)', 'br', '55'],\r\n ['British Indian Ocean Territory', 'io', '246'],\r\n ['British Virgin Islands', 'vg', '1284'],\r\n ['Brunei', 'bn', '673'],\r\n ['Bulgaria (България)', 'bg', '359'],\r\n ['Burkina Faso', 'bf', '226'],\r\n ['Burundi (Uburundi)', 'bi', '257'],\r\n ['Cambodia (កម្ពុជា)', 'kh', '855'],\r\n ['Cameroon (Cameroun)', 'cm', '237'],\r\n [\r\n 'Canada',\r\n 'ca',\r\n '1',\r\n 1,\r\n [\r\n '204',\r\n '226',\r\n '236',\r\n '249',\r\n '250',\r\n '289',\r\n '306',\r\n '343',\r\n '365',\r\n '387',\r\n '403',\r\n '416',\r\n '418',\r\n '431',\r\n '437',\r\n '438',\r\n '450',\r\n '506',\r\n '514',\r\n '519',\r\n '548',\r\n '579',\r\n '581',\r\n '587',\r\n '604',\r\n '613',\r\n '639',\r\n '647',\r\n '672',\r\n '705',\r\n '709',\r\n '742',\r\n '778',\r\n '780',\r\n '782',\r\n '807',\r\n '819',\r\n '825',\r\n '867',\r\n '873',\r\n '902',\r\n '905',\r\n ],\r\n ],\r\n ['Cape Verde (Kabu Verdi)', 'cv', '238'],\r\n ['Caribbean Netherlands', 'bq', '599', 1],\r\n ['Cayman Islands', 'ky', '1345'],\r\n ['Central African Republic (République centrafricaine)', 'cf', '236'],\r\n ['Chad (Tchad)', 'td', '235'],\r\n ['Chile', 'cl', '56'],\r\n ['China (中国)', 'cn', '86'],\r\n ['Christmas Island', 'cx', '61', 2],\r\n ['Cocos (Keeling) Islands', 'cc', '61', 1],\r\n ['Colombia', 'co', '57'],\r\n ['Comoros (جزر القمر)', 'km', '269'],\r\n ['Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)', 'cd', '243'],\r\n ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'],\r\n ['Cook Islands', 'ck', '682'],\r\n ['Costa Rica', 'cr', '506'],\r\n ['Côte d’Ivoire', 'ci', '225'],\r\n ['Croatia (Hrvatska)', 'hr', '385'],\r\n ['Cuba', 'cu', '53'],\r\n ['Curaçao', 'cw', '599', 0],\r\n ['Cyprus (Κύπρος)', 'cy', '357'],\r\n ['Czech Republic (Česká republika)', 'cz', '420'],\r\n ['Denmark (Danmark)', 'dk', '45'],\r\n ['Djibouti', 'dj', '253'],\r\n ['Dominica', 'dm', '1767'],\r\n [\r\n 'Dominican Republic (República Dominicana)',\r\n 'do',\r\n '1',\r\n 2,\r\n ['809', '829', '849'],\r\n ],\r\n ['Ecuador', 'ec', '593'],\r\n ['Egypt (مصر)', 'eg', '20'],\r\n ['El Salvador', 'sv', '503'],\r\n ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'],\r\n ['Eritrea', 'er', '291'],\r\n ['Estonia (Eesti)', 'ee', '372'],\r\n ['Ethiopia', 'et', '251'],\r\n ['Falkland Islands (Islas Malvinas)', 'fk', '500'],\r\n ['Faroe Islands (Føroyar)', 'fo', '298'],\r\n ['Fiji', 'fj', '679'],\r\n ['Finland (Suomi)', 'fi', '358', 0],\r\n ['France', 'fr', '33'],\r\n ['French Guiana (Guyane française)', 'gf', '594'],\r\n ['French Polynesia (Polynésie française)', 'pf', '689'],\r\n ['Gabon', 'ga', '241'],\r\n ['Gambia', 'gm', '220'],\r\n ['Georgia (საქართველო)', 'ge', '995'],\r\n ['Germany (Deutschland)', 'de', '49'],\r\n ['Ghana (Gaana)', 'gh', '233'],\r\n ['Gibraltar', 'gi', '350'],\r\n ['Greece (Ελλάδα)', 'gr', '30'],\r\n ['Greenland (Kalaallit Nunaat)', 'gl', '299'],\r\n ['Grenada', 'gd', '1473'],\r\n ['Guadeloupe', 'gp', '590', 0],\r\n ['Guam', 'gu', '1671'],\r\n ['Guatemala', 'gt', '502'],\r\n ['Guernsey', 'gg', '44', 1],\r\n ['Guinea (Guinée)', 'gn', '224'],\r\n ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'],\r\n ['Guyana', 'gy', '592'],\r\n ['Haiti', 'ht', '509'],\r\n ['Honduras', 'hn', '504'],\r\n ['Hong Kong (香港)', 'hk', '852'],\r\n ['Hungary (Magyarország)', 'hu', '36'],\r\n ['Iceland (Ísland)', 'is', '354'],\r\n ['India (भारत)', 'in', '91'],\r\n ['Indonesia', 'id', '62'],\r\n ['Iran (ایران)', 'ir', '98'],\r\n ['Iraq (العراق)', 'iq', '964'],\r\n ['Ireland', 'ie', '353'],\r\n ['Isle of Man', 'im', '44', 2],\r\n ['Israel (ישראל)', 'il', '972'],\r\n ['Italy (Italia)', 'it', '39', 0],\r\n ['Jamaica', 'jm', '1', 4, ['876', '658']],\r\n ['Japan (日本)', 'jp', '81'],\r\n ['Jersey', 'je', '44', 3],\r\n ['Jordan (الأردن)', 'jo', '962'],\r\n ['Kazakhstan (Казахстан)', 'kz', '7', 1],\r\n ['Kenya', 'ke', '254'],\r\n ['Kiribati', 'ki', '686'],\r\n ['Kosovo', 'xk', '383'],\r\n ['Kuwait (الكويت)', 'kw', '965'],\r\n ['Kyrgyzstan (Кыргызстан)', 'kg', '996'],\r\n ['Laos (ລາວ)', 'la', '856'],\r\n ['Latvia (Latvija)', 'lv', '371'],\r\n ['Lebanon (لبنان)', 'lb', '961'],\r\n ['Lesotho', 'ls', '266'],\r\n ['Liberia', 'lr', '231'],\r\n ['Libya (ليبيا)', 'ly', '218'],\r\n ['Liechtenstein', 'li', '423'],\r\n ['Lithuania (Lietuva)', 'lt', '370'],\r\n ['Luxembourg', 'lu', '352'],\r\n ['Macau (澳門)', 'mo', '853'],\r\n ['Macedonia (FYROM) (Македонија)', 'mk', '389'],\r\n ['Madagascar (Madagasikara)', 'mg', '261'],\r\n ['Malawi', 'mw', '265'],\r\n ['Malaysia', 'my', '60'],\r\n ['Maldives', 'mv', '960'],\r\n ['Mali', 'ml', '223'],\r\n ['Malta', 'mt', '356'],\r\n ['Marshall Islands', 'mh', '692'],\r\n ['Martinique', 'mq', '596'],\r\n ['Mauritania (موريتانيا)', 'mr', '222'],\r\n ['Mauritius (Moris)', 'mu', '230'],\r\n ['Mayotte', 'yt', '262', 1],\r\n ['Mexico (México)', 'mx', '52'],\r\n ['Micronesia', 'fm', '691'],\r\n ['Moldova (Republica Moldova)', 'md', '373'],\r\n ['Monaco', 'mc', '377'],\r\n ['Mongolia (Монгол)', 'mn', '976'],\r\n ['Montenegro (Crna Gora)', 'me', '382'],\r\n ['Montserrat', 'ms', '1664'],\r\n ['Morocco (المغرب)', 'ma', '212', 0],\r\n ['Mozambique (Moçambique)', 'mz', '258'],\r\n ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'],\r\n ['Namibia (Namibië)', 'na', '264'],\r\n ['Nauru', 'nr', '674'],\r\n ['Nepal (नेपाल)', 'np', '977'],\r\n ['Netherlands (Nederland)', 'nl', '31'],\r\n ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'],\r\n ['New Zealand', 'nz', '64'],\r\n ['Nicaragua', 'ni', '505'],\r\n ['Niger (Nijar)', 'ne', '227'],\r\n ['Nigeria', 'ng', '234'],\r\n ['Niue', 'nu', '683'],\r\n ['Norfolk Island', 'nf', '672'],\r\n ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'],\r\n ['Northern Mariana Islands', 'mp', '1670'],\r\n ['Norway (Norge)', 'no', '47', 0],\r\n ['Oman (عُمان)', 'om', '968'],\r\n ['Pakistan (پاکستان)', 'pk', '92'],\r\n ['Palau', 'pw', '680'],\r\n ['Palestine (فلسطين)', 'ps', '970'],\r\n ['Panama (Panamá)', 'pa', '507'],\r\n ['Papua New Guinea', 'pg', '675'],\r\n ['Paraguay', 'py', '595'],\r\n ['Peru (Perú)', 'pe', '51'],\r\n ['Philippines', 'ph', '63'],\r\n ['Poland (Polska)', 'pl', '48'],\r\n ['Portugal', 'pt', '351'],\r\n ['Puerto Rico', 'pr', '1', 3, ['787', '939']],\r\n ['Qatar (قطر)', 'qa', '974'],\r\n ['Réunion (La Réunion)', 're', '262', 0],\r\n ['Romania (România)', 'ro', '40'],\r\n ['Russia (Россия)', 'ru', '7', 0],\r\n ['Rwanda', 'rw', '250'],\r\n ['Saint Barthélemy', 'bl', '590', 1],\r\n ['Saint Helena', 'sh', '290'],\r\n ['Saint Kitts and Nevis', 'kn', '1869'],\r\n ['Saint Lucia', 'lc', '1758'],\r\n ['Saint Martin (Saint-Martin (partie française))', 'mf', '590', 2],\r\n ['Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)', 'pm', '508'],\r\n ['Saint Vincent and the Grenadines', 'vc', '1784'],\r\n ['Samoa', 'ws', '685'],\r\n ['San Marino', 'sm', '378'],\r\n ['São Tomé and Príncipe (São Tomé e Príncipe)', 'st', '239'],\r\n ['Saudi Arabia (المملكة العربية السعودية)', 'sa', '966'],\r\n ['Senegal (Sénégal)', 'sn', '221'],\r\n ['Serbia (Србија)', 'rs', '381'],\r\n ['Seychelles', 'sc', '248'],\r\n ['Sierra Leone', 'sl', '232'],\r\n ['Singapore', 'sg', '65'],\r\n ['Sint Maarten', 'sx', '1721'],\r\n ['Slovakia (Slovensko)', 'sk', '421'],\r\n ['Slovenia (Slovenija)', 'si', '386'],\r\n ['Solomon Islands', 'sb', '677'],\r\n ['Somalia (Soomaaliya)', 'so', '252'],\r\n ['South Africa', 'za', '27'],\r\n ['South Korea (대한민국)', 'kr', '82'],\r\n ['South Sudan (جنوب السودان)', 'ss', '211'],\r\n ['Spain (España)', 'es', '34'],\r\n ['Sri Lanka (ශ්රී ලංකාව)', 'lk', '94'],\r\n ['Sudan (السودان)', 'sd', '249'],\r\n ['Suriname', 'sr', '597'],\r\n ['Svalbard and Jan Mayen', 'sj', '47', 1],\r\n ['Swaziland', 'sz', '268'],\r\n ['Sweden (Sverige)', 'se', '46'],\r\n ['Switzerland (Schweiz)', 'ch', '41'],\r\n ['Syria (سوريا)', 'sy', '963'],\r\n ['Taiwan (台灣)', 'tw', '886'],\r\n ['Tajikistan', 'tj', '992'],\r\n ['Tanzania', 'tz', '255'],\r\n ['Thailand (ไทย)', 'th', '66'],\r\n ['Timor-Leste', 'tl', '670'],\r\n ['Togo', 'tg', '228'],\r\n ['Tokelau', 'tk', '690'],\r\n ['Tonga', 'to', '676'],\r\n ['Trinidad and Tobago', 'tt', '1868'],\r\n ['Tunisia (تونس)', 'tn', '216'],\r\n ['Turkey (Türkiye)', 'tr', '90'],\r\n ['Turkmenistan', 'tm', '993'],\r\n ['Turks and Caicos Islands', 'tc', '1649'],\r\n ['Tuvalu', 'tv', '688'],\r\n ['U.S. Virgin Islands', 'vi', '1340'],\r\n ['Uganda', 'ug', '256'],\r\n ['Ukraine (Україна)', 'ua', '380'],\r\n ['United Arab Emirates (الإمارات العربية المتحدة)', 'ae', '971'],\r\n ['United Kingdom', 'gb', '44', 0],\r\n ['United States', 'us', '1', 0],\r\n ['Uruguay', 'uy', '598'],\r\n ['Uzbekistan (Oʻzbekiston)', 'uz', '998'],\r\n ['Vanuatu', 'vu', '678'],\r\n ['Vatican City (Città del Vaticano)', 'va', '39', 1],\r\n ['Venezuela', 've', '58'],\r\n ['Vietnam (Việt Nam)', 'vn', '84'],\r\n ['Wallis and Futuna (Wallis-et-Futuna)', 'wf', '681'],\r\n ['Western Sahara (الصحراء الغربية)', 'eh', '212', 1],\r\n ['Yemen (اليمن)', 'ye', '967'],\r\n ['Zambia', 'zm', '260'],\r\n ['Zimbabwe', 'zw', '263'],\r\n ['Åland Islands', 'ax', '358', 1],\r\n ];\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const Examples: any = {\r\n '001': '001',\r\n AC: '40123',\r\n AD: '312345',\r\n AE: '501234567',\r\n AF: '701234567',\r\n AG: '2684641234',\r\n AI: '2642351234',\r\n AL: '662123456',\r\n AM: '77123456',\r\n AO: '923123456',\r\n AR: '91123456789',\r\n AS: '6847331234',\r\n AT: '664123456',\r\n AU: '412345678',\r\n AW: '5601234',\r\n AX: '412345678',\r\n AZ: '401234567',\r\n BA: '61123456',\r\n BB: '2462501234',\r\n BD: '1812345678',\r\n BE: '470123456',\r\n BF: '70123456',\r\n BG: '48123456',\r\n BH: '36001234',\r\n BI: '79561234',\r\n BJ: '90011234',\r\n BL: '690001234',\r\n BM: '4413701234',\r\n BN: '7123456',\r\n BO: '71234567',\r\n BQ: '3181234',\r\n BR: '11961234567',\r\n BS: '2423591234',\r\n BT: '17123456',\r\n BW: '71123456',\r\n BY: '294911911',\r\n BZ: '6221234',\r\n CA: '5062345678',\r\n CC: '412345678',\r\n CD: '991234567',\r\n CF: '70012345',\r\n CG: '061234567',\r\n CH: '781234567',\r\n CI: '01234567',\r\n CK: '71234',\r\n CL: '221234567',\r\n CM: '671234567',\r\n CN: '13123456789',\r\n CO: '3211234567',\r\n CR: '83123456',\r\n CU: '51234567',\r\n CV: '9911234',\r\n CW: '95181234',\r\n CX: '412345678',\r\n CY: '96123456',\r\n CZ: '601123456',\r\n DE: '15123456789',\r\n DJ: '77831001',\r\n DK: '32123456',\r\n DM: '7672251234',\r\n DO: '8092345678',\r\n DZ: '551234567',\r\n EC: '991234567',\r\n EE: '51234567',\r\n EG: '1001234567',\r\n EH: '650123456',\r\n ER: '7123456',\r\n ES: '612345678',\r\n ET: '911234567',\r\n FI: '412345678',\r\n FJ: '7012345',\r\n FK: '51234',\r\n FM: '3501234',\r\n FO: '211234',\r\n FR: '612345678',\r\n GA: '06031234',\r\n GB: '7400123456',\r\n GD: '4734031234',\r\n GE: '555123456',\r\n GF: '694201234',\r\n GG: '7781123456',\r\n GH: '231234567',\r\n GI: '57123456',\r\n GL: '221234',\r\n GM: '3012345',\r\n GN: '601123456',\r\n GP: '690001234',\r\n GQ: '222123456',\r\n GR: '6912345678',\r\n GT: '51234567',\r\n GU: '6713001234',\r\n GW: '955012345',\r\n GY: '6091234',\r\n HK: '51234567',\r\n HN: '91234567',\r\n HR: '921234567',\r\n HT: '34101234',\r\n HU: '201234567',\r\n ID: '812345678',\r\n IE: '850123456',\r\n IL: '502345678',\r\n IM: '7924123456',\r\n IN: '8123456789',\r\n IO: '3801234',\r\n IQ: '7912345678',\r\n IR: '9123456789',\r\n IS: '6111234',\r\n IT: '3123456789',\r\n JE: '7797712345',\r\n JM: '8762101234',\r\n JO: '790123456',\r\n JP: '9012345678',\r\n KE: '712123456',\r\n KG: '700123456',\r\n KH: '91234567',\r\n KI: '72001234',\r\n KM: '3212345',\r\n KN: '8697652917',\r\n KP: '1921234567',\r\n KR: '1000000000',\r\n KW: '50012345',\r\n KY: '3453231234',\r\n KZ: '7710009998',\r\n LA: '2023123456',\r\n LB: '71123456',\r\n LC: '7582845678',\r\n LI: '660234567',\r\n LK: '712345678',\r\n LR: '770123456',\r\n LS: '50123456',\r\n LT: '61234567',\r\n LU: '628123456',\r\n LV: '21234567',\r\n LY: '912345678',\r\n MA: '650123456',\r\n MC: '612345678',\r\n MD: '62112345',\r\n ME: '67622901',\r\n MF: '690001234',\r\n MG: '321234567',\r\n MH: '2351234',\r\n MK: '72345678',\r\n ML: '65012345',\r\n MM: '92123456',\r\n MN: '88123456',\r\n MO: '66123456',\r\n MP: '6702345678',\r\n MQ: '696201234',\r\n MR: '22123456',\r\n MS: '6644923456',\r\n MT: '96961234',\r\n MU: '52512345',\r\n MV: '7712345',\r\n MW: '991234567',\r\n MX: '12221234567',\r\n MY: '123456789',\r\n MZ: '821234567',\r\n NA: '811234567',\r\n NC: '751234',\r\n NE: '93123456',\r\n NF: '381234',\r\n NG: '8021234567',\r\n NI: '81234567',\r\n NL: '612345678',\r\n NO: '40612345',\r\n NP: '9841234567',\r\n NR: '5551234',\r\n NU: '8884012',\r\n NZ: '211234567',\r\n OM: '92123456',\r\n PA: '61234567',\r\n PE: '912345678',\r\n PF: '87123456',\r\n PG: '70123456',\r\n PH: '9051234567',\r\n PK: '3012345678',\r\n PL: '512345678',\r\n PM: '551234',\r\n PR: '7872345678',\r\n PS: '599123456',\r\n PT: '912345678',\r\n PW: '6201234',\r\n PY: '961456789',\r\n QA: '33123456',\r\n RE: '692123456',\r\n RO: '712034567',\r\n RS: '601234567',\r\n RU: '9123456789',\r\n RW: '720123456',\r\n SA: '512345678',\r\n SB: '7421234',\r\n SC: '2510123',\r\n SD: '911231234',\r\n SE: '701234567',\r\n SG: '81234567',\r\n SH: '51234',\r\n SI: '31234567',\r\n SJ: '41234567',\r\n SK: '912123456',\r\n SL: '25123456',\r\n SM: '66661212',\r\n SN: '701234567',\r\n SO: '71123456',\r\n SR: '7412345',\r\n SS: '977123456',\r\n ST: '9812345',\r\n SV: '70123456',\r\n SX: '7215205678',\r\n SY: '944567890',\r\n SZ: '76123456',\r\n TA: '8999',\r\n TC: '6492311234',\r\n TD: '63012345',\r\n TG: '90112345',\r\n TH: '812345678',\r\n TJ: '917123456',\r\n TK: '7290',\r\n TL: '77212345',\r\n TM: '66123456',\r\n TN: '20123456',\r\n TO: '7715123',\r\n TR: '5012345678',\r\n TT: '8682911234',\r\n TV: '901234',\r\n TW: '912345678',\r\n TZ: '621234567',\r\n UA: '501234567',\r\n UG: '712345678',\r\n US: '2015550123',\r\n UY: '94231234',\r\n UZ: '912345678',\r\n VA: '3123456789',\r\n VC: '7844301234',\r\n VE: '4121234567',\r\n VG: '2843001234',\r\n VI: '3406421234',\r\n VN: '912345678',\r\n VU: '5912345',\r\n WF: '501234',\r\n WS: '7212345',\r\n XK: '43201234',\r\n YE: '712345678',\r\n YT: '639012345',\r\n ZA: '711234567',\r\n ZM: '955123456',\r\n ZW: '712345678',\r\n};\r\n","import { UntypedFormControl } from '@angular/forms';\r\nimport { parsePhoneNumber, PhoneNumber } from 'libphonenumber-js';\r\n\r\nexport const phoneNumberValidator = (control: UntypedFormControl) => {\r\n const error = { validatePhoneNumber: true };\r\n let numberInstance: PhoneNumber;\r\n if (control.value) {\r\n try {\r\n numberInstance = parsePhoneNumber(control.value);\r\n } catch (e) {\r\n control.setValue(null);\r\n\r\n return error;\r\n }\r\n\r\n if (numberInstance && !numberInstance.isValid()) {\r\n control.setValue(null);\r\n if (!control.touched) {\r\n control.markAsTouched();\r\n }\r\n\r\n return error;\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Country } from '../models/phone.models';\r\n\r\n@Pipe({\r\n name: 'search',\r\n standalone: true,\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n transform(country: Country, searchCriteria?: string): boolean {\r\n if (!searchCriteria || searchCriteria === '') {\r\n return true;\r\n }\r\n\r\n return `${country.name}+${country.dialCode}`\r\n .toLowerCase()\r\n .includes(searchCriteria.toLowerCase());\r\n }\r\n}\r\n","// eslint-disable @typescript-eslint/no-explicit-any\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\n\r\nimport {\r\n FormGroupDirective,\r\n NgControl,\r\n NgForm,\r\n NG_VALIDATORS,\r\n} from '@angular/forms';\r\nimport {\r\n AsYouType,\r\n CountryCode as CC,\r\n E164Number,\r\n getExampleNumber,\r\n NationalNumber,\r\n parsePhoneNumberFromString,\r\n PhoneNumber,\r\n} from 'libphonenumber-js';\r\n\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n CanUpdateErrorState,\r\n ErrorStateMatcher,\r\n mixinErrorState,\r\n _AbstractConstructor,\r\n _Constructor,\r\n} from '@angular/material/core';\r\nimport { MatMenu } from '@angular/material/menu';\r\nimport { debounceTime, Subject } from 'rxjs';\r\nimport { CountryCode, Examples } from '../base/consts/country-codes';\r\nimport { phoneNumberValidator } from '../base/validators/phone-number.validator';\r\nimport { Country, PhoneNumberFormat } from '../base/models/phone.models';\r\n\r\nclass NgxMatIntlTelInputBase {\r\n readonly stateChanges = new Subject<void>();\r\n\r\n constructor(\r\n public _defaultErrorStateMatcher: ErrorStateMatcher,\r\n public _parentForm: NgForm,\r\n public _parentFormGroup: FormGroupDirective,\r\n public ngControl: NgControl,\r\n ) {}\r\n}\r\n\r\ndeclare type CanUpdateErrorStateCtor = _Constructor<CanUpdateErrorState> &\r\n _AbstractConstructor<CanUpdateErrorState>;\r\n\r\nconst _NgxMatIntlTelInputMixinBase: CanUpdateErrorStateCtor &\r\n typeof NgxMatIntlTelInputBase = mixinErrorState(NgxMatIntlTelInputBase);\r\n\r\n@Component({\r\n selector: 'ecabs-base-phone',\r\n templateUrl: './ecabs-base-phone.component.html',\r\n styleUrls: ['./ecabs-base-phone.component.scss'],\r\n standalone: false,\r\n providers: [\r\n CountryCode,\r\n { provide: MatFormFieldControl, useExisting: EcabsBasePhoneComponent },\r\n {\r\n provide: NG_VALIDATORS,\r\n useValue: phoneNumberValidator,\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsBasePhoneComponent\r\n extends _NgxMatIntlTelInputMixinBase\r\n implements\r\n OnInit,\r\n OnDestroy,\r\n DoCheck,\r\n CanUpdateErrorState,\r\n MatFormFieldControl<any>\r\n{\r\n @Input() preferredCountries: string[] = [];\r\n @Input() enablePlaceholder = true;\r\n @Input() inputPlaceholder: string | undefined;\r\n @Input() cssClass: string | undefined;\r\n @Input() name: string | undefined;\r\n @Input() onlyCountries: string[] = [];\r\n @Input() override errorStateMatcher: ErrorStateMatcher =\r\n new ErrorStateMatcher();\r\n @Input() enableSearch = false;\r\n @Input() searchPlaceholder: string | undefined;\r\n @Input() describedBy = '';\r\n @Input() debounceTimeMs;\r\n @Input()\r\n get format(): PhoneNumberFormat {\r\n return this._format;\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder || '';\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Output() countryChanged = new EventEmitter<Country>();\r\n\r\n @ViewChild(MatMenu) matMenu: MatMenu | undefined;\r\n @ViewChild('searchInput', { static: false })\r\n searchInput: ElementRef;\r\n\r\n @HostBinding()\r\n id = `ecabs-intl-tel-input-${EcabsBasePhoneComponent.nextId++}`;\r\n\r\n @HostBinding('class.ngx-floating')\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n static nextId = 0;\r\n\r\n private _changeSubject = new Subject();\r\n private _placeholder: string | undefined;\r\n private _required = false;\r\n private _disabled = false;\r\n private _previousFormattedNumber: string | undefined;\r\n private _format: PhoneNumberFormat = 'default';\r\n override stateChanges = new Subject<void>();\r\n\r\n focused = false;\r\n phoneNumber: NationalNumber | string | undefined;\r\n allCountries: Country[] = [];\r\n preferredCountriesInDropDown: Country[] = [];\r\n selectedCountry: Country | undefined;\r\n numberInstance: PhoneNumber | undefined;\r\n value: E164Number | string | undefined;\r\n searchCriteria: string | undefined;\r\n\r\n get empty(): boolean {\r\n return !this.phoneNumber;\r\n }\r\n\r\n set format(value: PhoneNumberFormat) {\r\n this._format = value;\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n static getPhoneNumberPlaceHolder(countryISOCode: CC): string | undefined {\r\n const result = getExampleNumber(countryISOCode, Examples);\r\n\r\n // eslint-disable-next-line no-extra-boolean-cast\r\n return !!result ? result.number.toString() : undefined;\r\n }\r\n\r\n onTouched = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n propagateChange = (_: unknown) => {};\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private countryCodeData: CountryCode,\r\n private fm: FocusMonitor,\r\n private elRef: ElementRef<HTMLElement>,\r\n @Optional() @Self() public override ngControl: NgControl,\r\n @Optional() parentForm: NgForm,\r\n @Optional() parentFormGroup: FormGroupDirective,\r\n defaultErrorStateMatcher: ErrorStateMatcher,\r\n ) {\r\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\r\n\r\n fm.monitor(elRef, true).subscribe((origin) => {\r\n if (this.focused && !origin) {\r\n this.onTouched();\r\n }\r\n this.focused = !!origin;\r\n this.stateChanges.next(undefined);\r\n });\r\n this.fetchCountryData();\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.searchPlaceholder) {\r\n this.searchPlaceholder = 'Search ...';\r\n }\r\n if (this.preferredCountries.length) {\r\n this.preferredCountries.forEach((iso2) => {\r\n const preferredCountry = this.allCountries\r\n .filter((c) => c.iso2 === iso2)\r\n .shift();\r\n if (preferredCountry) {\r\n this.preferredCountriesInDropDown.push(preferredCountry);\r\n }\r\n });\r\n }\r\n if (this.onlyCountries.length) {\r\n this.allCountries = this.allCountries.filter((c) =>\r\n this.onlyCountries.includes(c.iso2),\r\n );\r\n }\r\n if (this.numberInstance && this.numberInstance.country) {\r\n // If an existing number is present, we use it to determine selectedCountry\r\n this.selectedCountry = this.getCountry(this.numberInstance.country);\r\n } else {\r\n if (this.preferredCountriesInDropDown.length) {\r\n this.selectedCountry = this.preferredCountriesInDropDown[0];\r\n } else {\r\n this.selectedCountry = this.allCountries[0];\r\n }\r\n }\r\n this._changeSubject\r\n .pipe(debounceTime(this.debounceTimeMs))\r\n .subscribe(() => {\r\n this.onPhoneNumberChange();\r\n });\r\n this.countryChanged.emit(this.selectedCountry);\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.ngControl) {\r\n this.updateErrorState();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this.fm.stopMonitoring(this.elRef);\r\n this._changeSubject.complete();\r\n }\r\n\r\n onPhoneNumberChangeDebounce(): void {\r\n this._changeSubject.next(undefined);\r\n }\r\n\r\n onPhoneNumberChange(): void {\r\n try {\r\n this.numberInstance = parsePhoneNumberFromString(\r\n this.phoneNumber?.toString() || '',\r\n this.selectedCountry?.iso2.toUpperCase() as CC,\r\n );\r\n this.formatAsYouTypeIfEnabled();\r\n this.value = this.numberInstance?.number;\r\n if (this.numberInstance && this.numberInstance.isValid()) {\r\n if (this.phoneNumber !== this.formattedPhoneNumber) {\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n }\r\n if (\r\n this.selectedCountry?.iso2 !== this.numberInstance.country &&\r\n !!this.numberInstance.country\r\n ) {\r\n this.selectedCountry = this.getCountry(this.numberInstance.country);\r\n this.countryChanged.emit(this.selectedCountry);\r\n }\r\n }\r\n } catch {\r\n // if no possible numbers are there,\r\n // then the full number is passed so that validator could be triggered and proper error could be shown\r\n this.value = this.phoneNumber?.toString();\r\n }\r\n this.propagateChange(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n onCountrySelect(country: Country): void {\r\n if (this.phoneNumber) {\r\n this.phoneNumber = this.numberInstance?.nationalNumber;\r\n }\r\n this.selectedCountry = country;\r\n this.countryChanged.emit(this.selectedCountry);\r\n this.onPhoneNumberChange();\r\n }\r\n\r\n getCountry(code: string): Country {\r\n return (\r\n this.allCountries.find((c) => c.iso2 === code.toLowerCase()) || {\r\n name: 'UN',\r\n iso2: 'UN',\r\n dialCode: '',\r\n priority: 0,\r\n areaCodes: undefined,\r\n flagClass: 'UN',\r\n placeHolder: '',\r\n }\r\n );\r\n }\r\n\r\n onInputKeyPress(event: KeyboardEvent): void {\r\n const pattern = /[0-9+\\- ]/;\r\n if (!pattern.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n flagClass(lang: string): string {\r\n return `fi fi-${lang?.slice(-2).toLowerCase()}`;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.numberInstance = parsePhoneNumberFromString(value);\r\n if (this.numberInstance) {\r\n const countryCode = this.numberInstance.country;\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n if (!countryCode) {\r\n return;\r\n }\r\n setTimeout(() => {\r\n this.selectedCountry = this.getCountry(countryCode);\r\n if (\r\n this.selectedCountry.dialCode &&\r\n !this.preferredCountries.includes(this.selectedCountry.iso2)\r\n ) {\r\n this.preferredCountriesInDropDown.push(this.selectedCountry);\r\n }\r\n this.countryChanged.emit(this.selectedCountry);\r\n\r\n // Initial value is set\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }, 1);\r\n } else {\r\n this.phoneNumber = value;\r\n }\r\n }\r\n\r\n // Value is set from outside using setValue()\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n setDescribedByIds(ids: string[]) {\r\n this.describedBy = ids.join(' ');\r\n }\r\n\r\n onContainerClick(event: MouseEvent): void {\r\n if ((event.target as Element).tagName.toLowerCase() !== 'input') {\r\n this.elRef.nativeElement.querySelector('input')!.focus();\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.phoneNumber = '';\r\n this.propagateChange(null);\r\n\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n onSearchInput(): void {\r\n setTimeout(() => {\r\n this.searchInput?.nativeElement?.focus();\r\n }, 200);\r\n }\r\n\r\n protected fetchCountryData(): void {\r\n this.countryCodeData.allCountries.forEach((c) => {\r\n const country: Country = {\r\n name: c[0].toString(),\r\n iso2: c[1].toString(),\r\n dialCode: c[2].toString(),\r\n priority: +c[3] || 0,\r\n areaCodes: (c[4] as string[]) || undefined,\r\n flagClass: c[1].toString().toUpperCase(),\r\n placeHolder: '',\r\n };\r\n\r\n if (this.enablePlaceholder) {\r\n country.placeHolder = EcabsBasePhoneComponent.getPhoneNumberPlaceHolder(\r\n country.iso2.toUpperCase() as CC,\r\n );\r\n }\r\n\r\n this.allCountries.push(country);\r\n });\r\n }\r\n\r\n private get formattedPhoneNumber(): string {\r\n if (!this.numberInstance) {\r\n return this.phoneNumber?.toString() || '';\r\n }\r\n switch (this.format) {\r\n case 'national':\r\n return this.numberInstance.formatNational();\r\n\r\n case 'international':\r\n return this.numberInstance.formatInternational();\r\n\r\n default:\r\n return this.numberInstance.nationalNumber.toString();\r\n }\r\n }\r\n\r\n private formatAsYouTypeIfEnabled(): void {\r\n if (this.format === 'default') {\r\n return;\r\n }\r\n const asYouType: AsYouType = new AsYouType(\r\n this.selectedCountry?.iso2.toUpperCase() as CC,\r\n );\r\n // To avoid caret positioning we apply formatting only if the caret is at the end:\r\n if (\r\n this.phoneNumber\r\n ?.toString()\r\n .startsWith(this._previousFormattedNumber || '')\r\n ) {\r\n this.phoneNumber = asYouType.input(this.phoneNumber.toString());\r\n }\r\n this._previousFormattedNumber = this.phoneNumber?.toString();\r\n }\r\n}\r\n","<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" \r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsComponentsService } from '../base/services/ecabs-components.service';\r\nimport { EcabsBasePhoneComponent } from '../ecabs-base-phone-input/ecabs-base-phone.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-phone',\r\n templateUrl: './ecabs-phone.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsPhoneComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsPhoneComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit, OnChanges\r\n{\r\n @Input() preferredCountries!: string[];\r\n @Input() enablePlaceholder!: boolean;\r\n @Input() enableSearch = true;\r\n @Input() useOnlyDisabledClass = false;\r\n @Input() declare required: boolean;\r\n @Input() debounceTimeMs;\r\n\r\n @Output() onblur: EventEmitter<{ value: string }> = new EventEmitter();\r\n\r\n @ViewChild('phoneInput')\r\n phoneInput!: EcabsBasePhoneComponent;\r\n\r\n phoneForm: UntypedFormGroup;\r\n phoneSub!: any;\r\n prohibitedCharacters = ['-'];\r\n\r\n get value(): any {\r\n return this.phoneForm.get('phone')?.value;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.value !== val) {\r\n this.phoneForm.setValue({ phone: val });\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsComponentsService: EcabsComponentsService,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('keypress', ['$event']) onInput(event: KeyboardEvent): void {\r\n if (this.prohibitedCharacters.includes(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.phoneForm = new UntypedFormGroup({\r\n phone: new UntypedFormControl(\r\n { value: undefined, disabled: this.disabled },\r\n this.required ? [Validators.required] : [],\r\n ),\r\n });\r\n\r\n this.ecabsComponentsService\r\n .getConfig()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((val) => {\r\n if (!this.preferredCountries?.length) {\r\n this.preferredCountries = val.defaultCountries;\r\n }\r\n\r\n if (!this.debounceTimeMs) {\r\n this.debounceTimeMs = val.defaultPhoneDebounceTimeMs;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n\r\n this.phoneSub = this.phoneForm.valueChanges.subscribe((formVal) => {\r\n this.value = formVal?.phone;\r\n this.onChange(this.value);\r\n this.onTouch(this.value);\r\n this.handleErrors();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['disabled']) {\r\n if (this.disabled) {\r\n this.phoneForm?.get('phone')?.disable();\r\n } else {\r\n this.phoneForm?.get('phone')?.enable();\r\n }\r\n }\r\n }\r\n\r\n onChange: any = (): void => {};\r\n onTouch: any = (): void => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.phoneSub?.unsubscribe();\r\n }\r\n\r\n reset(): void {\r\n this.phoneInput.reset();\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouch(this.value);\r\n this.onChange(this.value);\r\n this.handleErrors();\r\n this.onblur.emit({ value: this.value });\r\n }\r\n\r\n handleErrors(): void {\r\n if (this.value === undefined && !this.phoneInput.empty) {\r\n this.phoneForm.controls['phone'].setErrors({ validatePhoneNumber: true });\r\n }\r\n this.control?.setErrors(this.phoneForm.get('phone').errors);\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"phoneForm\">\r\n <ecabs-base-phone\r\n [ngClass]=\"{ error: phoneForm.invalid && (phoneForm.dirty || phoneForm.touched) }\"\r\n #phoneInput\r\n [preferredCountries]=\"preferredCountries\"\r\n [enablePlaceholder]=\"enablePlaceholder\"\r\n [enableSearch]=\"enableSearch\"\r\n [disabled]=\"disabled\"\r\n [formControlName]=\"'phone'\"\r\n [inputPlaceholder]=\"placeholder\"\r\n [debounceTimeMs]=\"debounceTimeMs\"\r\n name=\"phone\"\r\n (focusout)=\"onBlur()\"\r\n >\r\n </ecabs-base-phone>\r\n </form>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { RouterModule } from '@angular/router';\r\nimport { EcabsBasePhoneComponent } from './ecabs-base-phone.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { SearchPipe } from '../base/pipes/search.pipe';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsBasePhoneComponent],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n RouterModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatDividerModule,\r\n ReactiveFormsModule,\r\n SearchPipe,\r\n ElementWrapperModule,\r\n ],\r\n exports: [EcabsBasePhoneComponent],\r\n})\r\nexport class EcabsBasePhoneModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPhoneComponent } from './ecabs-phone.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { EcabsBasePhoneModule } from '../ecabs-base-phone-input/ecabs-base-phone.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsPhoneComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsBasePhoneModule,\r\n ],\r\n exports: [EcabsPhoneComponent],\r\n})\r\nexport class EcabsPhoneModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectOption } from '../base/models/select.models';\r\n\r\n@Component({\r\n selector: 'ecabs-radio-button-list',\r\n templateUrl: './ecabs-radio-button-list.component.html',\r\n styleUrls: ['ecabs-radio-button-list.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsRadioButtonListComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsRadioButtonListComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input() items: SelectOption[];\r\n @Input() direction: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @Output() changed = new EventEmitter<any>();\r\n\r\n val: string;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [id]=\"name\"\r\n (change)=\"changed.emit($event.value)\"\r\n >\r\n <mat-radio-button\r\n [disabled]=\"item.disabled\"\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsRadioButtonListComponent } from './ecabs-radio-button-list.component';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\n\r\n@NgModule({\r\n declarations: [EcabsRadioButtonListComponent],\r\n imports: [CommonModule, ElementWrapperModule, MatRadioModule, FormsModule],\r\n exports: [EcabsRadioButtonListComponent],\r\n})\r\nexport class EcabsRadioButtonListModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { FormTimePickerConfig } from './config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormTimePickerService {\r\n config: FormTimePickerConfig = {\r\n dayEnd: 'Day End',\r\n dayStart: 'Day Start',\r\n iconClass: '',\r\n };\r\n\r\n public closeSub = new Subject<boolean>();\r\n\r\n setConfig(c: FormTimePickerConfig): void {\r\n this.config = Object.assign(this.config, c);\r\n }\r\n\r\n getConfig(): FormTimePickerConfig {\r\n return this.config;\r\n }\r\n\r\n close(): void {\r\n this.closeSub.next(true);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ListPlacement,\r\n ListPosition,\r\n} from '../../../base/models/timepicker.models';\r\nimport { FormTimePickerService } from '../../ecabs-timepicker.service';\r\n\r\n@Component({\r\n selector: 'ecabs-time-list-panel',\r\n templateUrl: './ecabs-time-list-panel.component.html',\r\n})\r\nexport class EcabsTimeListPanelComponent implements OnInit, OnChanges {\r\n @Input() typedValue: any;\r\n @Input() listPlacement: ListPlacement = 'auto';\r\n @Input() listPosition: ListPosition = {};\r\n\r\n @Input()\r\n dayStartLabel: string;\r\n\r\n @Input()\r\n dayEndLabel: string;\r\n\r\n @Input() appendTo!: string;\r\n @Input() min!: string;\r\n @Input() max!: string;\r\n @Input() showDayStart = true;\r\n @Input() showDayEnd = false;\r\n @Input() position: ListPosition = {};\r\n\r\n @Output() onscroll = new EventEmitter<{ start: number; end: number }>();\r\n @Output() closeMe = new EventEmitter<any>();\r\n\r\n hoveredItemIndex = 0;\r\n timeList: { value: any; title: string }[] = [];\r\n\r\n private listItemHeight!: any;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private timepickerService: FormTimePickerService,\r\n ) {}\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeydown($event: KeyboardEvent): void {\r\n const { key } = $event;\r\n\r\n switch (key) {\r\n case 'ArrowUp':\r\n if (this.hoveredItemIndex) {\r\n this.hoveredItemIndex--;\r\n }\r\n\r\n this.scrollTo(this.hoveredItemIndex);\r\n break;\r\n\r\n case 'ArrowDown':\r\n if (this.hoveredItemIndex + 1 < this.timeList.length) {\r\n this.hoveredItemIndex++;\r\n }\r\n\r\n this.scrollTo(this.hoveredItemIndex);\r\n break;\r\n\r\n case 'Enter' || ' ':\r\n this.setTime(this.timeList[this.hoveredItemIndex].value);\r\n break;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.calcListItems();\r\n if (this.appendTo) {\r\n this.appendListTo();\r\n }\r\n\r\n setTimeout(() => {\r\n this.listItemHeight = this.elementRef.nativeElement\r\n .querySelector('li')\r\n .getBoundingClientRect().height;\r\n this.selectTypedValue(this.typedValue);\r\n });\r\n }\r\n\r\n appendListTo(): void {\r\n const parent = document.querySelector(this.appendTo);\r\n if (!parent) {\r\n throw new Error(\r\n `appendTo selector ${this.appendTo} did not found any parent element`,\r\n );\r\n }\r\n parent.appendChild(this.elementRef.nativeElement);\r\n }\r\n\r\n calcListItems(): void {\r\n if (this.showDayStart) {\r\n const title =\r\n this.dayStartLabel || this.timepickerService.getConfig().dayStart;\r\n\r\n this.timeList.push({\r\n value: '00:00',\r\n title,\r\n });\r\n }\r\n for (let index = 0; index < 24; index++) {\r\n for (const minute of ['00', '30']) {\r\n if (index === 0 && minute === '00') {\r\n continue;\r\n }\r\n this.timeList.push({\r\n value: (index > 9 ? index + '' : '0' + index) + ':' + minute,\r\n title: (index > 9 ? index + '' : '0' + index) + ':' + minute,\r\n });\r\n }\r\n }\r\n if (this.showDayEnd) {\r\n const title =\r\n this.dayEndLabel || this.timepickerService.getConfig().dayEnd;\r\n\r\n this.timeList.push({\r\n value: '23:59',\r\n title,\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.selectTypedValue(this.typedValue);\r\n if (this.elementRef.nativeElement) {\r\n this.elementRef.nativeElement.style.top = this.listPosition.top + 'px';\r\n this.elementRef.nativeElement.style.left = this.listPosition.left + 'px';\r\n this.elementRef.nativeElement.style.width =\r\n this.listPosition.width + 'px';\r\n if (this.appendTo) {\r\n this.elementRef.nativeElement.style.position = 'fixed';\r\n }\r\n }\r\n }\r\n\r\n selectTypedValue(value: any): void {\r\n if (value) {\r\n const hour = parseInt(value.split(':')[0], 10);\r\n const mins = parseInt(value.split(':')[1], 10);\r\n\r\n if (hour || hour === 0) {\r\n this.hoveredItemIndex = hour * 2;\r\n if (mins >= 30) {\r\n this.hoveredItemIndex++;\r\n }\r\n\r\n this.scrollTo(this.hoveredItemIndex);\r\n }\r\n }\r\n }\r\n\r\n scrollTo(index: number): void {\r\n this.elementRef.nativeElement.querySelector('.inner-scroll').scrollTop =\r\n index * this.listItemHeight;\r\n }\r\n\r\n close(): void {\r\n this.closeMe.emit(null);\r\n }\r\n\r\n setTime(value: any): void {\r\n this.closeMe.emit(value);\r\n }\r\n}\r\n","<div class=\"list\">\r\n <div class=\"inner-scroll\">\r\n <div class=\"inner\">\r\n <ul>\r\n <!-- eslint-disable-next-line -->\r\n <li\r\n *ngFor=\"let i of timeList; let counter = index\" \r\n (click)=\"setTime(i.value)\"\r\n (mouseenter)=\"hoveredItemIndex = counter\"\r\n [ngClass]=\"{ active: typedValue === i.value, hovered: counter === hoveredItemIndex }\"\r\n >\r\n {{ i.title }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n Injector,\r\n Input,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\nimport { FormTimePickerService } from './ecabs-timepicker.service';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { ListPlacement, ListPosition } from '../base/models/timepicker.models';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\n\r\n@Component({\r\n selector: 'ecabs-timepicker',\r\n templateUrl: './ecabs-timepicker.component.html',\r\n styleUrls: ['ecabs-timepicker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsTimepickerComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsTimepickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input() showCloseIcon = true;\r\n @Input() @HostBinding('class.form-timepicker-focused') focusedFlag = false;\r\n @Input() listPlacement: ListPlacement = 'auto';\r\n @Input() appendTo!: string;\r\n @Input() min!: string;\r\n @Input() max!: string;\r\n @Input() showDayStart = true;\r\n @Input() showDayEnd = false;\r\n @Input() addSecond = true;\r\n\r\n @Input()\r\n dayStartLabel: string;\r\n\r\n @Input()\r\n dayEndLabel: string;\r\n\r\n position: ListPosition = {};\r\n _data = '';\r\n inputData = '';\r\n _timePicker: { querySelector: (arg0: string) => HTMLElement };\r\n _input!: HTMLElement;\r\n listPosition: ListPosition = {};\r\n translationConfig: EcabsDatePickerTranslations;\r\n isHoverItemChanged: boolean;\r\n\r\n get allLabel(): string {\r\n return '';\r\n }\r\n\r\n get data(): any {\r\n return this._data;\r\n }\r\n\r\n set data(value: any) {\r\n this._data = value;\r\n if (this._data.length === 5) {\r\n if (this._data === '23:59') {\r\n this.onChangeFn(this._data + (this.addSecond ? ':59' : ''));\r\n } else {\r\n this.onChangeFn(this._data + (this.addSecond ? ':00' : ''));\r\n }\r\n } else if (this._data === '') {\r\n this.onChangeFn(this._data);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private readonly timepickerService: FormTimePickerService,\r\n private readonly injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n this.placeholder = '00:00';\r\n this._timePicker = this.elementRef.nativeElement;\r\n setTimeout(() => {\r\n this._input = this._timePicker.querySelector('input');\r\n });\r\n if (!this.iconClass) {\r\n this.iconClass = this.timepickerService.getConfig().iconClass;\r\n }\r\n }\r\n\r\n @HostListener('document:mousedown', ['$event'])\r\n handleMousedown($event: MouseEvent): void {\r\n const target = $event.target as HTMLElement;\r\n const inputWrapper = this._timePicker.querySelector(\r\n '.timeInputFieldWrapper',\r\n );\r\n\r\n if (\r\n target.closest('.form-time-list') ||\r\n target.closest('.timeInputFieldWrapper') === inputWrapper\r\n ) {\r\n inputWrapper?.focus();\r\n\r\n return;\r\n }\r\n if (this.focusedFlag) {\r\n this.close();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n clearInput(): void {\r\n this.data = '';\r\n }\r\n\r\n calcListPosition(): void {\r\n const position = this._timePicker\r\n .querySelector('.timeInputFieldWrapper')\r\n .getBoundingClientRect();\r\n if (this.appendTo) {\r\n this.listPosition = {\r\n left: position.x,\r\n top: position.top + position.height,\r\n width: position.width,\r\n };\r\n } else {\r\n this.listPosition = {\r\n left: 0,\r\n top: position.height,\r\n width: position.width,\r\n };\r\n }\r\n }\r\n\r\n inputKeyDown(event: any): boolean {\r\n const key = event.key;\r\n\r\n const specialKey = this.checkSpecialKeys(key);\r\n const triggers = ['stop', 'tab'];\r\n const isKeyInTriggers = triggers.includes(specialKey);\r\n\r\n if (\r\n key === 'ArrowLeft' ||\r\n key === 'ArrowRight' ||\r\n key === 'Backspace' ||\r\n key === 'Delete'\r\n ) {\r\n return true;\r\n }\r\n\r\n if (this.checkUnUsedKeys(key) || isKeyInTriggers) {\r\n if (specialKey === 'tab') {\r\n this.close();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n updateInputData(event: string): void {\r\n this.inputData = event;\r\n this.isHoverItemChanged = false;\r\n\r\n const newData = this.inputData.replace(new RegExp(/_/gi), '');\r\n\r\n if (this.checkOutOfRangeNumber(newData)) {\r\n this.data = newData;\r\n }\r\n\r\n if (\r\n this.data.length === 2 ||\r\n (this.data.length === 1 && parseInt(this.data) > 2)\r\n ) {\r\n this.makeHourFull();\r\n this.data += ':';\r\n }\r\n }\r\n\r\n checkSpecialKeys(key: any): 'stop' | 'continue' | 'tab' {\r\n if (key === 'Tab' || key === ' ' || key === ':') {\r\n if (!this.data.includes(':') && this.data.length > 0) {\r\n this.makeHourFull();\r\n this.data += ':';\r\n\r\n return 'stop';\r\n }\r\n\r\n if (key === 'Tab') {\r\n return 'tab';\r\n }\r\n\r\n return 'stop';\r\n }\r\n\r\n if (key === 'ArrowDown' || key === 'ArrowUp') {\r\n this.isHoverItemChanged = true;\r\n }\r\n\r\n if (key === 'ArrowDown' && !this.focusedFlag) {\r\n this.show();\r\n }\r\n\r\n return 'continue';\r\n }\r\n\r\n checkUnUsedKeys(key: string): boolean {\r\n const r = /\\d/;\r\n\r\n return !r.test(key);\r\n }\r\n\r\n checkOutOfRangeNumber(time: any): boolean {\r\n const splitTime = time.split(':');\r\n const hour = parseInt(splitTime[0], 10);\r\n let minute = -1;\r\n\r\n if (splitTime.length > 1 && splitTime[1].length) {\r\n minute = parseInt(splitTime[1], 10);\r\n }\r\n\r\n if (hour < 24 && splitTime[0].length < 3 && minute < 60) {\r\n return !(splitTime.length > 1 && splitTime[1].length > 2);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n makeHourFull(): void {\r\n const hourPart = this.data.split(':')[0];\r\n const minutePart =\r\n this.data.split(':').length > 1 ? this.data.split(':')[1] : '';\r\n\r\n if (hourPart.length === 1) {\r\n this.data = '0' + hourPart + (minutePart ? ':' + minutePart : minutePart);\r\n }\r\n\r\n this.inputData = this.data;\r\n }\r\n\r\n makeMinuteFull(): void {\r\n const hourPart = this.data.split(':')[0];\r\n const minutePart =\r\n this.data.split(':').length > 1 ? this.data.split(':')[1] : '';\r\n\r\n if (minutePart.length === 0) {\r\n this.data = hourPart + ':00';\r\n }\r\n\r\n if (minutePart.length === 1) {\r\n this.data = hourPart + ':' + minutePart + '0';\r\n }\r\n\r\n this.inputData = this.data;\r\n }\r\n\r\n fixTimeToNearest(): void {\r\n if (this.data.length > 0) {\r\n this.makeHourFull();\r\n this.makeMinuteFull();\r\n }\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars, @typescript-eslint/no-empty-function\r\n public onChangeFn = (_: any): void => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n public onTouchedFn = (): void => {};\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchedFn = fn;\r\n }\r\n\r\n /* public override setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n } */\r\n\r\n public writeValue(obj: any): void {\r\n if (obj) {\r\n obj = obj.toString();\r\n let temp = '';\r\n\r\n if (obj.split(':').length >= 2) {\r\n temp = obj.split(':')[0] + ':' + obj.split(':')[1];\r\n }\r\n\r\n this._data = temp;\r\n } else {\r\n this._data = '';\r\n }\r\n }\r\n\r\n show(): void {\r\n this.calcListPosition();\r\n this.focusedFlag = true;\r\n this.isHoverItemChanged = true;\r\n }\r\n\r\n close(val = null): void {\r\n if (val && this.isHoverItemChanged) {\r\n this.data = val;\r\n this.inputData = val;\r\n } else {\r\n this.fixTimeToNearest();\r\n }\r\n this.focusedFlag = false;\r\n this.control?.markAsTouched();\r\n }\r\n}\r\n","<div [ngClass]=\"{ disabled: disabled }\">\r\n <ecabs-element-wrapper\r\n [data]=\"getData()\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n [focusedFlag]=\"focusedFlag\"\r\n (clear)=\"clearInput()\"\r\n >\r\n <div class=\"relative inline-block w-full timeInputFieldWrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"form-field__input\"\r\n [value]=\"data\"\r\n [ngModel]=\"data\"\r\n (ngModelChange)=\"updateInputData($event)\"\r\n [disabled]=\"disabled\"\r\n ecabsTime\r\n [all]=\"allLabel\"\r\n (focus)=\"show()\"\r\n (click)=\"show()\"\r\n (keydown)=\"inputKeyDown($event)\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\r\n *ngIf=\"focusedFlag\"\r\n [showDayStart]=\"showDayStart\"\r\n [dayStartLabel]=\"dayStartLabel\"\r\n [dayEndLabel]=\"dayEndLabel\"\r\n [showDayEnd]=\"showDayEnd\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n class=\"form-time-list absolute inline-block\"\r\n [appendTo]=\"appendTo\"\r\n [listPosition]=\"listPosition\"\r\n (closeMe)=\"close($event)\"\r\n ></ecabs-time-list-panel>\r\n </div>\r\n </ecabs-element-wrapper>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTimepickerComponent } from './ecabs-timepicker.component';\r\nimport { EcabsTimeListPanelComponent } from './componets/ecabs-time-list-panel/ecabs-time-list-panel.component';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { EcabsMaskTimeDirectiveModule } from '../base/directives/time-mask.directive.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsTimepickerComponent, EcabsTimeListPanelComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n EcabsMaskTimeDirectiveModule,\r\n FormsModule,\r\n ],\r\n exports: [EcabsTimeListPanelComponent, EcabsTimepickerComponent],\r\n})\r\nexport class EcabsTimepickerModule {}\r\n","export const srcNothingHereImage = '/assets/images/nothing-here.svg';\r\nexport const ecabsLogo =\r\n 'https://storage.googleapis.com/ecabs/assets/logo/blue_v2.svg';\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { srcNothingHereImage } from '../base/consts/images.consts';\r\n\r\nexport interface PlaceholderRedirectPath {\r\n title: string;\r\n path: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ecabs-empty-placeholder',\r\n templateUrl: './ecabs-empty-placeholder.component.html',\r\n styleUrls: ['./ecabs-empty-placeholder.component.scss'],\r\n})\r\nexport class EcabsEmptyPlaceholderComponent implements OnChanges {\r\n @Input()\r\n isEmptyMessage: string;\r\n\r\n @Input()\r\n redirectPath: PlaceholderRedirectPath;\r\n\r\n @Input()\r\n srcImage: string;\r\n\r\n image: string;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { srcImage } = changes ?? {};\r\n\r\n if (srcImage?.currentValue === undefined || null) {\r\n this.image = srcNothingHereImage;\r\n }\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col items-center justify-items-center\">\r\n <img class=\"mt-10 w-60\" [src]=\"image\" alt=\"\" />\r\n\r\n <span class=\"heading--sm text-gray-400 my-2\">{{ isEmptyMessage }}</span>\r\n\r\n <a *ngIf=\"redirectPath\" [routerLink]=\"redirectPath?.path && [redirectPath.path]\" class=\"text-sm\">\r\n {{ redirectPath.title }}\r\n </a>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsEmptyPlaceholderComponent } from './ecabs-empty-placeholder.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [EcabsEmptyPlaceholderComponent],\r\n imports: [CommonModule, RouterModule],\r\n exports: [EcabsEmptyPlaceholderComponent],\r\n})\r\nexport class EcabsEmptyPlaceholderModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatExpansionPanel } from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'ecabs-expansion-panel',\r\n templateUrl: './ecabs-expansion-panel.component.html',\r\n styleUrls: ['./ecabs-expansion-panel.component.scss'],\r\n})\r\nexport class EcabsExpansionPanelComponent implements OnChanges {\r\n @Input()\r\n title = '';\r\n\r\n @Input()\r\n description: string;\r\n\r\n @Input()\r\n actionTitle: TemplateRef<any>;\r\n\r\n @Input()\r\n index;\r\n\r\n @Input()\r\n expanded = false;\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n errorMessage: string;\r\n\r\n @Input()\r\n showErrorMessage: boolean;\r\n\r\n @Input()\r\n closePanel: boolean;\r\n\r\n @Input()\r\n showIcon: boolean;\r\n\r\n @Input()\r\n iconName: string;\r\n\r\n @Input()\r\n showCheckbox: boolean;\r\n\r\n @Input()\r\n showStatus: boolean;\r\n\r\n @Input()\r\n status: string;\r\n\r\n @Input()\r\n hideToggle = false;\r\n\r\n @Output() checked = new EventEmitter<boolean>();\r\n\r\n @Output() opened = new EventEmitter<void>();\r\n\r\n @ViewChild(MatExpansionPanel) expansionPanel: MatExpansionPanel;\r\n\r\n toggle = false;\r\n\r\n onOpened(): void {\r\n this.opened.emit();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { closePanel } = changes;\r\n\r\n if (closePanel && this.expansionPanel) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n closePanel.currentValue === true\r\n ? this.expansionPanel.close()\r\n : this.expansionPanel.open();\r\n }\r\n }\r\n\r\n toggleAction(event: Event): void {\r\n event.stopPropagation();\r\n this.checked.emit(this.expanded);\r\n }\r\n}\r\n","<mat-accordion class=\"example-headers-align\" multi>\r\n <mat-expansion-panel [expanded]=\"expanded\" [disabled]=\"disabled\" (opened)=\"onOpened()\" [hideToggle]=\"hideToggle\">\r\n <mat-expansion-panel-header *ngIf=\"title\">\r\n <mat-panel-title>\r\n <div>\r\n <div class=\"flex flex-row\">\r\n <div *ngIf=\"index && !showErrorMessage\" class=\"border-current border-2 rounded-full mr-3 index\">\r\n {{ index }}\r\n </div>\r\n <div *ngIf=\"!showErrorMessage && showIcon\" class=\"mr-3 rounded\">\r\n <mat-icon class=\"rounded-icon !text-lg -mt-1\">{{ iconName }}</mat-icon>\r\n </div>\r\n <div *ngIf=\"showErrorMessage\" class=\"mt-1 mr-2\">\r\n <mat-icon color=\"warn\">warning</mat-icon>\r\n </div>\r\n {{ title }}\r\n <div *ngIf=\"showCheckbox\" class=\"ml-2 mt-1\">\r\n <ecabs-checkbox [type]=\"'toggle'\" [(ngModel)]=\"toggle\"\r\n (click)=\"toggleAction($event)\"></ecabs-checkbox>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showErrorMessage\" class=\"error-message\">{{ errorMessage }}</div>\r\n </div>\r\n </mat-panel-title>\r\n <mat-panel-description>{{ description }}\r\n <mat-chip *ngIf=\"showStatus\" class=\"{{ status | lowercase }}\">\r\n {{ status | titlecase }}\r\n </mat-chip>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-expansion-panel-header *ngIf=\"actionTitle\">\r\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\r\n </mat-expansion-panel-header>\r\n <ng-content></ng-content>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsExpansionPanelComponent } from './ecabs-expansion-panel.component';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { EcabsCheckboxToggleModule } from '../ecabs-checkbox-toggle/ecabs-checkbox-toggle.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsExpansionPanelComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatChipsModule,\r\n EcabsCheckboxToggleModule,\r\n ],\r\n exports: [EcabsExpansionPanelComponent],\r\n})\r\nexport class EcabsExpansionPanelModule {}\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-table-filter-wrapper',\r\n templateUrl: './ecabs-table-filter-wrapper.component.html',\r\n styleUrls: ['./ecabs-table-filter-wrapper.component.scss'],\r\n})\r\nexport class EcabsTableFilterWrapperComponent {\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n actions: TemplateRef<any>;\r\n}\r\n","<ecabs-expansion-panel [title]=\"title\" class=\"block mb-5\" [expanded]=\"true\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"actions\" class=\"flex justify-end\">\r\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\r\n </div>\r\n</ecabs-expansion-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTableFilterWrapperComponent } from './ecabs-table-filter-wrapper.component';\r\nimport { EcabsExpansionPanelModule } from '../../ecabs-expansion-panel/ecabs-expansion-panel.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsTableFilterWrapperComponent],\r\n imports: [CommonModule, EcabsExpansionPanelModule],\r\n exports: [EcabsTableFilterWrapperComponent],\r\n})\r\nexport class EcabsTableFilterWrapperModule {}\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ContentChild,\r\n Input,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { PlaceholderRedirectPath } from '../ecabs-empty-placeholder/ecabs-empty-placeholder.component';\r\n\r\n@Component({\r\n selector: 'ecabs-table',\r\n templateUrl: './ecabs-table.component.html',\r\n styleUrls: ['./ecabs-table.component.scss'],\r\n})\r\nexport class TableComponent implements AfterContentChecked {\r\n @ContentChild(MatTable)\r\n table: MatTable<any>;\r\n\r\n @Input()\r\n header: TemplateRef<any>;\r\n\r\n @Input()\r\n paginator: TemplateRef<any>;\r\n\r\n @Input()\r\n bordered = true;\r\n\r\n @Input()\r\n loading = false;\r\n\r\n @Input()\r\n isEmpty: boolean;\r\n @Input()\r\n isEmptyMessage: string;\r\n\r\n @Input()\r\n redirectPath: PlaceholderRedirectPath;\r\n\r\n @Input()\r\n srcImageEmpty: string;\r\n\r\n ngAfterContentChecked(): void {\r\n if (this.table) {\r\n this.isEmpty = !this.table['_data']?.length;\r\n }\r\n }\r\n}\r\n","<section class=\"table-ui table-ui--wrapper\" [ngClass]=\"{ 'table-ui__bordered': bordered, loading: loading }\">\r\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\r\n\r\n <div *ngIf=\"header\" class=\"table-ui__header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!(isEmptyMessage && isEmpty); else noDataTemplate\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"paginator\" class=\"table-ui__paginator\">\r\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!--#For Empty state -->\r\n <ng-template #noDataTemplate>\r\n <ecabs-empty-placeholder\r\n *ngIf=\"!loading\"\r\n [redirectPath]=\"redirectPath\"\r\n [isEmptyMessage]=\"isEmptyMessage\"\r\n [srcImage]=\"srcImageEmpty\"\r\n ></ecabs-empty-placeholder>\r\n </ng-template>\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TableComponent } from './ecabs-table.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { RouterModule } from '@angular/router';\r\nimport { EcabsEmptyPlaceholderModule } from '../ecabs-empty-placeholder/ecabs-empty-placeholder.module';\r\nimport { MatTableModule } from '@angular/material/table';\r\n\r\n@NgModule({\r\n declarations: [TableComponent],\r\n imports: [\r\n CommonModule,\r\n MatProgressBarModule,\r\n RouterModule,\r\n EcabsEmptyPlaceholderModule,\r\n ],\r\n exports: [TableComponent, MatTableModule, EcabsEmptyPlaceholderModule],\r\n})\r\nexport class EcabsTableModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-note',\r\n templateUrl: './ecabs-note.component.html',\r\n styleUrls: ['./ecabs-note.component.scss'],\r\n})\r\nexport class EcabsNoteComponent {\r\n @Input()\r\n type: 'default' | 'danger' | 'warn' | 'success' = 'default';\r\n\r\n get classByType(): string {\r\n switch (this.type) {\r\n case 'warn':\r\n return 'note--warn';\r\n\r\n case 'danger':\r\n return 'note--danger';\r\n\r\n case 'success':\r\n return 'note--success';\r\n\r\n default:\r\n return 'note--default';\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"flex flex-row px-2 py-4 note items-center\" [ngClass]=\"classByType\">\r\n <div class=\"flex ml-2\">\r\n <mat-icon>info_outline</mat-icon>\r\n </div>\r\n <div class=\"ml-4 w-full\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsNoteComponent } from './ecabs-note.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsNoteComponent],\r\n imports: [CommonModule, MatIconModule],\r\n exports: [EcabsNoteComponent],\r\n})\r\nexport class EcabsNoteModule {}\r\n","import {\r\n Component,\r\n DestroyRef,\r\n Inject,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Observable, takeUntil } from 'rxjs';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { ButtonStyle } from '../base/consts/buttons.consts';\r\nimport {\r\n EcabsComponentsService,\r\n Ecabsi18n,\r\n} from '../base/services/ecabs-components.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-dialog-confirm',\r\n templateUrl: './ecabs-dialog-confirm.component.html',\r\n styleUrls: ['./ecabs-dialog-confirm.component.scss'],\r\n providers: [UnsubscribeService],\r\n})\r\nexport class EcabsDialogConfirmComponent implements OnInit, OnDestroy {\r\n message: string;\r\n color: ThemePalette = 'primary';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: EcabsDialogConfirmComponentConfig,\r\n public dialogRef: MatDialogRef<EcabsDialogConfirmComponentConfig>,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n private readonly componentsService: EcabsComponentsService,\r\n private readonly destroyRef: DestroyRef,\r\n ) {}\r\n\r\n translations: Ecabsi18n;\r\n\r\n ngOnInit(): void {\r\n this.dialogRef.updateSize(this.data.width || '24rem');\r\n\r\n this.componentsService\r\n .getConfig()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((config) => {\r\n const { i18n } = config ?? {};\r\n const {\r\n confirmLabel,\r\n cancelLabel,\r\n hideConfirmButton,\r\n hideCancelButton,\r\n } = this.data ?? {};\r\n\r\n if (i18n) {\r\n this.data.confirmLabel = !hideConfirmButton\r\n ? confirmLabel || i18n?.confirmLabel\r\n : undefined;\r\n this.data.cancelLabel = !hideCancelButton\r\n ? cancelLabel || i18n?.cancelLabel\r\n : undefined;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeService.destroy();\r\n }\r\n\r\n closeDialog(): void {\r\n if (this.data.loading$) {\r\n this.data.loading$\r\n ?.pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((loading) => {\r\n if (!loading) {\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }\r\n\r\n closeFalsey(): void {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\nexport interface EcabsDialogConfirmComponentConfig {\r\n title?: string;\r\n message?: TemplateRef<NonNullable<unknown>>;\r\n color?: ThemePalette;\r\n titleColor?: ThemePalette;\r\n confirmLabel?: string;\r\n confirmStyle?: ButtonStyle;\r\n cancelLabel?: string;\r\n cancelStyle?: ButtonStyle;\r\n hideCtaButtons?: boolean;\r\n hideConfirmButton?: boolean;\r\n hideCancelButton?: boolean;\r\n isPopover?: boolean;\r\n width?: string;\r\n content?: string;\r\n useFullButtonSize?: boolean;\r\n loading$?: Observable<boolean>;\r\n disableConfirm$?: Observable<boolean>;\r\n}\r\n","<div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\r\n {{ data.title }}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content>\r\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\r\n <div mat-dialog-actions\r\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize}\"\r\n class=\"btn__group flex justify-end w-full\">\r\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n [style]=\"data?.cancelStyle || 'stroked'\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n [color]=\"data?.color || color\"\r\n [style]=\"data?.confirmStyle || 'flat'\"\r\n [loading]=\"data?.loading$ | async\"\r\n (click)=\"closeDialog()\"\r\n [disabled]=\"data?.disableConfirm$ | async\"\r\n (keydown.enter)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsDialogConfirmComponent } from './ecabs-dialog-confirm.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n@NgModule({\r\n declarations: [EcabsDialogConfirmComponent],\r\n imports: [CommonModule, MatDialogModule, EcabsButtonsModule, MatIconModule],\r\n})\r\nexport class EcabsDialogConfirmModule {}\r\n","import { Component, Inject, OnDestroy } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Observable, Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ecabs-dialog-message',\r\n templateUrl: './ecabs-dialog-message.component.html',\r\n styleUrls: ['./ecabs-dialog-message.component.scss'],\r\n})\r\nexport class EcabsDialogMessageComponent implements OnDestroy {\r\n message: string;\r\n color: ThemePalette = 'primary';\r\n titleColor = 'success';\r\n private destroy$: Subject<any> = new Subject<any>();\r\n\r\n get classByType(): string {\r\n switch (this.data?.titleColor || this.titleColor) {\r\n case 'accent':\r\n return 'title--accent';\r\n\r\n case 'warn':\r\n return 'title--warn';\r\n\r\n case 'success':\r\n return 'title--success';\r\n\r\n default:\r\n return 'title--default';\r\n }\r\n }\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<EcabsDialogMessageComponentConfig>,\r\n @Inject(MAT_DIALOG_DATA) public data: EcabsDialogMessageComponentConfig,\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n closeDialog(): void {\r\n if (this.data.loading$) {\r\n this.data.loading$\r\n ?.pipe(takeUntil(this.destroy$))\r\n .subscribe((loading) => {\r\n if (!loading) {\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }\r\n}\r\n\r\nexport interface EcabsDialogMessageComponentConfig {\r\n title?: string;\r\n titleColor?: ThemePalette | 'success';\r\n message: string;\r\n color?: ThemePalette;\r\n confirmLabel?: string;\r\n isPopover?: boolean;\r\n isButtonBlock?: boolean;\r\n loading$?: Observable<boolean>;\r\n}\r\n","<div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon\r\n (click)=\"dialogRef.close(false)\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\"\r\n role=\"button\"\r\n >\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div *ngIf=\"data.title\" class=\"font-semibold heading--xs\" [ngClass]=\"classByType\">\r\n {{ data.title }}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content>\r\n {{data?.message}}\r\n</div>\r\n\r\n<div class=\"pb-6\">\r\n <div mat-dialog-actions class=\"btn__group flex justify-end w-full\" *ngIf=\"!data?.isPopover\">\r\n <ecabs-buttons [color]=\"data?.color || color\" [full]=\"data?.isButtonBlock\" [loading]=\"data.loading$ | async\" (click)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsDialogMessageComponent } from './ecabs-dialog-message.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n@NgModule({\r\n declarations: [EcabsDialogMessageComponent],\r\n imports: [CommonModule, MatDialogModule, EcabsButtonsModule, MatIconModule],\r\n})\r\nexport class EcabsDialogMessageModule {}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { Breadcrumb } from '../base/models/bread-crumb.models';\r\n\r\n@Component({\r\n selector: 'ecabs-breadcrumb',\r\n templateUrl: './ecabs-breadcrumb.component.html',\r\n styleUrls: ['./ecabs-breadcrumb.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsBreadcrumbComponent {\r\n @Input() breadcrumb: Breadcrumb[];\r\n}\r\n","<ul class=\"flex text-gray-500 text-sm\">\r\n <li\r\n *ngFor=\"let item of breadcrumb; let counter = index\"\r\n [routerLink]=\"item.url\"\r\n [ngClass]=\"{ 'cursor-pointer': item.url }\"\r\n class=\"flex\"\r\n >\r\n <mat-icon class=\"!text-sm text-center text-gray-400\" *ngIf=\"counter !== 0\">keyboard_arrow_right</mat-icon>\r\n <span>{{ item.title }}</span>\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsBreadcrumbComponent } from './ecabs-breadcrumb.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [EcabsBreadcrumbComponent],\r\n imports: [CommonModule, MatIconModule, RouterModule],\r\n exports: [EcabsBreadcrumbComponent],\r\n})\r\nexport class EcabsBreadcrumbModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-language-selector',\r\n templateUrl: './ecabs-language-selector.component.html',\r\n styleUrls: ['./ecabs-language-selector.component.scss'],\r\n})\r\nexport class EcabsLanguageSelectorComponent implements OnChanges {\r\n @Input()\r\n languages: string[] = [];\r\n\r\n @Input()\r\n currentLanguage: string;\r\n\r\n @Input()\r\n showLabelTitle = true;\r\n\r\n @Input()\r\n flagOnly: boolean;\r\n\r\n @Input()\r\n tooltip: string;\r\n\r\n @Output()\r\n languageChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n selectedLang: string;\r\n\r\n //eslint-disable-next-line\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.selectedLang = this.currentLanguage || this.languages?.[0];\r\n }\r\n\r\n toggleLang(): void {\r\n return this.matchSelected()\r\n ? this.languageChanged.emit(this.matchSelected())\r\n : undefined;\r\n }\r\n\r\n matchSelected(): string {\r\n return this.languages?.find((lang) => lang === this.selectedLang);\r\n }\r\n\r\n standardLang(code: string): string {\r\n return this.standardise(code);\r\n }\r\n\r\n flagClass(lang: string): string {\r\n return `fi fi-${lang?.slice(-2).toLowerCase()}`;\r\n }\r\n\r\n private standardise(code: string): string {\r\n if (!code) {\r\n return undefined;\r\n }\r\n const lang = new Intl.DisplayNames([code], {\r\n type: 'language',\r\n languageDisplay: 'standard',\r\n });\r\n\r\n return lang.of(code);\r\n }\r\n}\r\n","<mat-form-field appearance=\"outline\"\r\n [ngClass]=\"{'flag-only': flagOnly}\">\r\n <mat-label></mat-label>\r\n <mat-select class=\"capitalize\"\r\n [(ngModel)]=\"selectedLang\"\r\n name=\"language\"\r\n (ngModelChange)=\"toggleLang()\"\r\n panelClass=\"wide-select\">\r\n <mat-select-trigger>\r\n <div class=\"flex items-center\" [matTooltip]=\"tooltip\">\r\n <span [ngClass]=\"flagClass(matchSelected())\"></span>\r\n <div *ngIf=\"!flagOnly\" class=\"ml-2\">{{ standardLang(matchSelected()) }}</div>\r\n </div>\r\n </mat-select-trigger>\r\n <mat-option class=\"capitalize\" *ngFor=\"let lang of languages\" [value]=\"lang\">\r\n <div class=\"flex items-center\">\r\n <span [ngClass]=\"flagClass(lang)\"></span>\r\n <div class=\"ml-2\">{{ standardLang(lang) }}</div>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsLanguageSelectorComponent } from './ecabs-language-selector.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n declarations: [EcabsLanguageSelectorComponent],\r\n imports: [\r\n CommonModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatTooltipModule,\r\n ],\r\n exports: [EcabsLanguageSelectorComponent],\r\n})\r\nexport class EcabsLanguageSelectorModule {}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsDynamicBgColor]',\r\n})\r\nexport class EcabsDynamicBgColorDirective implements OnChanges {\r\n @Input()\r\n params: string;\r\n\r\n @Input()\r\n saturation = 36;\r\n\r\n @Input()\r\n lightness = 80;\r\n\r\n constructor(private readonly elementRef: ElementRef) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { params } = changes ?? {};\r\n\r\n if (params?.currentValue) {\r\n this.changeBgColor(this.elementRef);\r\n }\r\n }\r\n\r\n changeBgColor(el: ElementRef): void {\r\n let hash = 0;\r\n for (let i = 0; i < this.params.length; i++) {\r\n hash = this.params.charCodeAt(i) + ((hash << 5) - hash);\r\n }\r\n\r\n const h = hash % 360;\r\n el.nativeElement.style.backgroundColor = `hsl(${h}, ${this.saturation}%, ${this.lightness}%)`;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsDynamicBgColorDirective } from './dynamic-bg-color.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsDynamicBgColorDirective],\r\n exports: [EcabsDynamicBgColorDirective],\r\n})\r\nexport class EcabsDynamicBgColorDirectiveModule {}\r\n","import {\r\n AfterViewInit,\r\n DestroyRef,\r\n Directive,\r\n Host,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\ninterface PageObject {\r\n length: number;\r\n pageIndex: number;\r\n pageSize: number;\r\n previousPageIndex: number;\r\n}\r\n\r\n@Directive({\r\n selector: '[ecabsPaginator]',\r\n})\r\nexport class EcabsPaginatorDirective implements AfterViewInit, OnChanges {\r\n @Input()\r\n length: number;\r\n\r\n private _rangeStart: number;\r\n private _rangeEnd: number;\r\n private _buttons = [];\r\n private _curPageObj: PageObject = {\r\n length: 0,\r\n pageIndex: 0,\r\n pageSize: 0,\r\n previousPageIndex: 0,\r\n };\r\n private _showTotalPages = 3;\r\n\r\n @Input()\r\n get showTotalPages(): number {\r\n return this._showTotalPages;\r\n }\r\n\r\n get inc(): number {\r\n return this._showTotalPages % 2 === 0\r\n ? this.showTotalPages / 2\r\n : (this.showTotalPages - 1) / 2;\r\n }\r\n\r\n get lastPageIndex(): number {\r\n return this.matPag.getNumberOfPages() - 1;\r\n }\r\n\r\n set showTotalPages(value: number) {\r\n this._showTotalPages = value % 2 === 0 ? value + 1 : value;\r\n }\r\n\r\n constructor(\r\n @Host()\r\n @Self()\r\n @Optional()\r\n private readonly matPag: MatPaginator,\r\n private readonly vr: ViewContainerRef,\r\n private readonly ren: Renderer2,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n // to rerender buttons on items per page change and first, last, next and prior buttons\r\n this.matPag.page\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((e: PageObject) => {\r\n this.pageChanged(e);\r\n });\r\n\r\n this.matPag.selectConfig = {\r\n panelClass: 'paginator--selector',\r\n };\r\n }\r\n\r\n pageChanged(page: PageObject): void {\r\n if (\r\n this._curPageObj.pageSize !== page.pageSize &&\r\n this._curPageObj.pageIndex !== 0\r\n ) {\r\n page.pageIndex = 0;\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n }\r\n this._curPageObj = page;\r\n this.initPageRange();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['length'] && !changes['length']?.firstChange) {\r\n this.pageChanged(this._curPageObj);\r\n }\r\n }\r\n\r\n //Initialize default state after view init\r\n public ngAfterViewInit(): void {\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n this.initPageRange();\r\n }\r\n\r\n private buildPageNumbers(): void {\r\n const actionContainer = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-mdc-paginator-range-actions',\r\n );\r\n\r\n // including flex box in container\r\n const container = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-mdc-paginator-container',\r\n );\r\n\r\n // removing item per page\r\n const itemPerPage = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-mdc-paginator-page-size',\r\n );\r\n this.ren.appendChild(container, itemPerPage);\r\n\r\n // remove buttons before creating new ones\r\n if (this._buttons.length > 0) {\r\n this._buttons.forEach((button) => {\r\n this.ren.removeChild(actionContainer, button);\r\n });\r\n // Empty state array\r\n this._buttons.length = 0;\r\n }\r\n }\r\n\r\n // calculates the button range based on class input parameters and based on current page index value. Used to render new buttons after event.\r\n private initPageRange(): void {\r\n const middleIndex = (this._rangeStart + this._rangeEnd) / 2;\r\n\r\n this._rangeStart = this.calcRangeStart(middleIndex);\r\n this._rangeEnd = this.calcRangeEnd(middleIndex);\r\n\r\n this.buildPageNumbers();\r\n }\r\n\r\n // Helper function To calculate start of button range\r\n private calcRangeStart(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex === 0 && this._rangeStart !== 0:\r\n return 0;\r\n\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex - this.inc * 2\r\n : this._curPageObj.pageIndex - this.inc;\r\n\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeStart + 1;\r\n\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart > 0:\r\n return this._rangeStart - 1;\r\n\r\n default:\r\n return this._rangeStart;\r\n }\r\n }\r\n\r\n // Helper function to calculate end of button range\r\n private calcRangeEnd(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex === 0 &&\r\n this._rangeEnd !== this._showTotalPages:\r\n return this._showTotalPages - 1;\r\n\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex\r\n : this._curPageObj.pageIndex + 1;\r\n\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeEnd + 1;\r\n\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart >= 0 &&\r\n this._rangeEnd > this._showTotalPages - 1:\r\n return this._rangeEnd - 1;\r\n\r\n default:\r\n return this._rangeEnd;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsPaginatorDirective } from './paginator.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsPaginatorDirective],\r\n exports: [EcabsPaginatorDirective],\r\n})\r\nexport class EcabsPaginatorDirectiveModule {}\r\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { EcabsComponentsService } from '../services/ecabs-components.service';\r\n\r\n@Directive({\r\n selector: '[ecabsCheckPermissions]',\r\n})\r\nexport class EcabsCheckPermissionsDirective implements OnInit {\r\n @Input() permissions: string[];\r\n @Input() noPermissionMessage: string;\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private readonly ecabsComponentsService: EcabsComponentsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.ecabsComponentsService.hasClaim(this.permissions)) {\r\n if (this.noPermissionMessage) {\r\n this.elementRef.nativeElement.innerHTML = this.noPermissionMessage;\r\n } else {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsCheckPermissionsDirective } from './check-permissions.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsCheckPermissionsDirective],\r\n exports: [EcabsCheckPermissionsDirective],\r\n})\r\nexport class EcabsCheckPermissionDirectiveModule {}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n OnDestroy,\r\n Output,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsDomObserver]',\r\n})\r\nexport class EcabsDomObserverDirective implements OnDestroy {\r\n @Output() readonly domChange: EventEmitter<MutationRecord> =\r\n new EventEmitter<MutationRecord>();\r\n\r\n changes: MutationObserver;\r\n\r\n constructor(private readonly elementRef: ElementRef) {\r\n const element = this.elementRef.nativeElement;\r\n\r\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n mutations.forEach((mutation: MutationRecord) =>\r\n this.domChange.emit(mutation),\r\n );\r\n });\r\n\r\n this.changes.observe(element, {\r\n attributes: true,\r\n childList: true,\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changes.disconnect();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsDomObserverDirective } from './dom-observer.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsDomObserverDirective],\r\n exports: [EcabsDomObserverDirective],\r\n})\r\nexport class EcabsDomObserverDirectiveModule {}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsFileDrop]',\r\n})\r\nexport class EcabsFileDropDirective {\r\n @Output() readonly filesDropped = new EventEmitter<FileList>();\r\n @Output() readonly filesHovered = new EventEmitter<boolean>();\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop($event): void {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.filesDropped.emit($event.dataTransfer.files);\r\n this.filesHovered.emit(false);\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDragOver($event): void {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.filesHovered.emit(true);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n onDragLeave(): void {\r\n this.filesHovered.emit(false);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsFileDropDirective } from './file-drop.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsFileDropDirective],\r\n exports: [EcabsFileDropDirective],\r\n})\r\nexport class EcabsFileDropDirectiveModule {}\r\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';\r\n\r\n@Directive({\r\n selector: '[ecabsTimeRange]',\r\n})\r\nexport class EcabsTimeRangeDirective implements OnInit, OnDestroy {\r\n @Input() isDateTimeMask = false;\r\n @Input() considerSeconds = false;\r\n @Input() all = 'All';\r\n\r\n maskedInputController;\r\n maskDateTime = [\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ' ',\r\n '-',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ];\r\n\r\n constructor(private readonly element: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.maskedInputController = textMask.maskInput({\r\n inputElement: this.element.nativeElement,\r\n guide: true,\r\n showMask: false,\r\n keepCharPositions: true,\r\n mask: this.maskDateTime,\r\n pipe: function (conformedValue) {\r\n if (conformedValue === '__:__ - __:__') {\r\n return this.all;\r\n }\r\n\r\n return conformedValue;\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.maskedInputController.destroy();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsTimeRangeDirective } from './time-range.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsTimeRangeDirective],\r\n exports: [EcabsTimeRangeDirective],\r\n})\r\nexport class EcabsTimeRangeDirectiveModule {}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControlName][ecabsUppercaseInput]',\r\n})\r\nexport class EcabsUppercaseMaskDirective {\r\n constructor(private readonly control: NgControl) {}\r\n\r\n @HostListener('input', ['$event.target'])\r\n onInput(input: HTMLInputElement): void {\r\n const position = input.selectionStart;\r\n this.control.control.setValue(input.value.toUpperCase());\r\n input.setSelectionRange(position, position);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsUppercaseMaskDirective } from './uppercase-mask.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsUppercaseMaskDirective],\r\n exports: [EcabsUppercaseMaskDirective],\r\n})\r\nexport class EcabsUppercaseMaskDirectiveModule {}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n Input,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsAttachEmbeddedView]',\r\n})\r\nexport class EcabsAttachEmbeddedViewDirective implements AfterViewInit {\r\n @Input()\r\n embeddedTemplate: TemplateRef<any>;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() =>\r\n this.viewContainerRef.createEmbeddedView(this.embeddedTemplate),\r\n );\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsAttachEmbeddedViewDirective } from './attach-embedded-view.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsAttachEmbeddedViewDirective],\r\n exports: [EcabsAttachEmbeddedViewDirective],\r\n})\r\nexport class EcabsAttachEmbeddedViewDirectiveModule {}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsElementMultiplier]',\r\n})\r\nexport class EcabsElementMultiplierDirective {\r\n @Input() set appElementMultiplier(times: number) {\r\n for (let i = 0; i < times; i++) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n }\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n ) {}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsElementMultiplierDirective } from './element-multiplier.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsElementMultiplierDirective],\r\n exports: [EcabsElementMultiplierDirective],\r\n})\r\nexport class EcabsElementMultiplierDirectiveModule {}\r\n","import { Directive, ElementRef, OnInit } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Directive({\r\n selector: '[matTooltip][ecabsShowOnTruncated]',\r\n})\r\nexport class EcabsShowOnTruncatedDirective implements OnInit {\r\n constructor(\r\n private matTooltip: MatTooltip,\r\n private elementRef: ElementRef<HTMLElement>,\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n setTimeout(() => {\r\n const element = this.elementRef.nativeElement;\r\n this.matTooltip.disabled = element.scrollWidth <= element.clientWidth;\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsShowOnTruncatedDirective } from './show-on-truncated.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsShowOnTruncatedDirective],\r\n exports: [EcabsShowOnTruncatedDirective],\r\n})\r\nexport class EcabsShowOnTruncatedDirectiveModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { FormControlValidation } from '../base/models/validation.models';\r\n\r\n@Component({\r\n selector: 'ecabs-validation',\r\n templateUrl: './ecabs-validation.component.html',\r\n styleUrls: ['./ecabs-validation.component.scss'],\r\n})\r\nexport class EcabsValidationComponent {\r\n @Input() validations: FormControlValidation[];\r\n @Input() form: UntypedFormGroup;\r\n @Input() title: string;\r\n}\r\n","<div class=\"form-validations\">\r\n <div class=\"header font-medium\">{{ title }}</div>\r\n <ecabs-validations-messages\r\n *ngFor=\"let validation of validations\"\r\n [showValidationOnNotTouched]=\"true\"\r\n [element]=\"form.controls[validation.controlName]\"\r\n [updatedErrors]=\"validation.errors\"\r\n ></ecabs-validations-messages>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsValidationComponent } from './ecabs-validation.component';\r\nimport { EcabsValidationModule } from '../base/validation/validation.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsValidationComponent],\r\n imports: [CommonModule, EcabsValidationModule],\r\n exports: [EcabsValidationComponent],\r\n})\r\nexport class EcabsValidationViewModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-active-status-filter',\r\n templateUrl: './ecabs-active-status-filter.component.html',\r\n styleUrls: ['./ecabs-active-status-filter.component.scss'],\r\n})\r\nexport class EcabsActiveStatusFilterComponent {\r\n @Input() statuses: { text: string; value: boolean }[] = [];\r\n @Input() initialStatus: boolean;\r\n\r\n @Output()\r\n readonly statusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n onFilter(currFilter: boolean): void {\r\n this.initialStatus = currFilter;\r\n this.statusChange.emit(currFilter);\r\n }\r\n\r\n checkSelectableStatus(status: boolean): boolean {\r\n return this.initialStatus === status;\r\n }\r\n}\r\n","<div class=\"mb-5 mt-10\">\r\n <mat-chip-listbox>\r\n <mat-chip-option *ngFor=\"let status of statuses\"\r\n class=\"!rounded-full\"\r\n [ngClass]=\"checkSelectableStatus(status?.value) ? 'chip--selected' : 'chip--not-selected'\"\r\n [selected]=\"checkSelectableStatus(status?.value)\"\r\n (keydown.enter)=\"onFilter(status?.value)\"\r\n (click)=\"onFilter(status?.value)\">\r\n {{ status.text }}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { EcabsActiveStatusFilterComponent } from './ecabs-active-status-filter.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsActiveStatusFilterComponent],\r\n imports: [CommonModule, MatChipsModule, MatIconModule],\r\n exports: [EcabsActiveStatusFilterComponent],\r\n})\r\nexport class EcabsActiveStatusFilterModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-profile',\r\n templateUrl: './ecabs-profile.component.html',\r\n styleUrls: ['./ecabs-profile.component.scss'],\r\n})\r\nexport class EcabsProfileComponent implements OnChanges {\r\n @Input()\r\n avatar = '/assets/images/profile-icon.png';\r\n\r\n @Input() name: string;\r\n @Input() title: string;\r\n\r\n @Output()\r\n avatarChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n useAvatar = false;\r\n initials: string;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { avatar, name } = changes ?? {};\r\n\r\n this.useAvatar = !!avatar?.currentValue;\r\n\r\n if (name?.currentValue) {\r\n // get only first and last name in case name has multiple words\r\n const shortName = this.name.replace(/([a-z]+) .* ([a-z]+)/i, '$1 $2');\r\n\r\n this.initials = shortName\r\n .split(/\\s/)\r\n .reduce((_, word) => _ + word.slice(0, 1), '')\r\n .toLocaleUpperCase();\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable-next-line -->\r\n<ul (click)=\"avatarChange.emit()\" class=\"flex text-black cursor-pointer\">\r\n <li class=\"md:mr-3\">\r\n <div *ngIf=\"!useAvatar; else avatarTpl\" ecabsDynamicBgColor [params]=\"name\"\r\n class=\"flex h-12 w-12 rounded-full bg-gray-200 items-center justify-center text-white\">\r\n <span class=\"text-xl font-medium\">{{ initials }}</span>\r\n </div>\r\n </li>\r\n\r\n <li class=\"hidden md:flex flex-1 flex-col justify-center\">\r\n <div class=\"font-semibold\">{{ name }}</div>\r\n <div class=\"text-xs\">{{ title }}</div>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #avatarTpl>\r\n <!-- eslint-disable-next-line -->\r\n <img [src]=\"avatar\" class=\"rounded-full\"/>\r\n</ng-template>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsProfileComponent } from './ecabs-profile.component';\r\nimport { EcabsDynamicBgColorDirectiveModule } from '../base/directives/dynamic-bg-color.directive.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsProfileComponent],\r\n imports: [CommonModule, EcabsDynamicBgColorDirectiveModule],\r\n exports: [EcabsProfileComponent],\r\n})\r\nexport class EcabsProfileModule {}\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HeaderService {\r\n _template: Subject<TemplateRef<any>> = new Subject<TemplateRef<any>>();\r\n template$: Observable<TemplateRef<any>> = this._template.asObservable();\r\n\r\n setHeaderTemplate(ref: TemplateRef<any>): void {\r\n this._template.next(ref);\r\n }\r\n\r\n getHeaderTemplate(): Observable<TemplateRef<any>> {\r\n return this.template$.pipe(map((template) => template));\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { HeaderModel } from '../base/models/header.models';\r\nimport { HeaderService } from '../base/services/header.service';\r\n\r\n@Component({\r\n selector: 'ecabs-header',\r\n templateUrl: './ecabs-header.component.html',\r\n styleUrls: ['./ecabs-header.component.scss'],\r\n})\r\nexport class EcabsHeaderComponent implements OnChanges, OnInit, OnDestroy {\r\n private readonly subscription = new Subscription();\r\n\r\n @ViewChild('basicHeader', { static: true })\r\n basicHeader: ElementRef;\r\n\r\n @Input()\r\n header: HeaderModel;\r\n\r\n @Input()\r\n user: { name: string; title: string };\r\n\r\n @Input()\r\n avatar: string;\r\n\r\n @Input()\r\n loading = false;\r\n\r\n @Output()\r\n avatarChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n @Output()\r\n readonly toggleNav: EventEmitter<boolean> = new EventEmitter();\r\n\r\n template: TemplateRef<any>;\r\n\r\n constructor(private readonly panelService: HeaderService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { header } = changes ?? {};\r\n\r\n if (header?.currentValue) {\r\n this.basicHeader.nativeElement.innerHTML = this.header?.title || '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.panelService.getHeaderTemplate().subscribe((template) => {\r\n this.template = template;\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<div [ngClass]=\"{loading}\" class=\"progress-bar\"></div>\r\n\r\n<ul class=\"flex pb-4 pt-3 px-10\">\r\n <li class=\"flex flex-col flex-1 justify-center\">\r\n <div class=\"sm:hidden md:block\">\r\n <ecabs-breadcrumb [breadcrumb]=\"header?.breadcrumb\"></ecabs-breadcrumb>\r\n </div>\r\n\r\n <div class=\"heading--lg text-brand-dark font-medium\">\r\n <mat-icon class=\"mr-3 text-gray-500\" (click)=\"toggleNav.emit()\" role=\"button\">menu</mat-icon>\r\n\r\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\r\n <div #basicHeader></div>\r\n </div>\r\n </li>\r\n\r\n <li>\r\n <div class=\"flex items-center\">\r\n <ecabs-profile [name]=\"user?.name\" [title]=\"user?.title\" [avatar]=\"avatar\"\r\n (avatarChange)=\"avatarChange.emit()\"></ecabs-profile>\r\n </div>\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsHeaderComponent } from './ecabs-header.component';\r\nimport { EcabsBreadcrumbModule } from '../ecabs-breadcrumb/ecabs-breadcrumb.module';\r\nimport { EcabsProfileModule } from '../ecabs-profile/ecabs-profile.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@NgModule({\r\n declarations: [EcabsHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n EcabsBreadcrumbModule,\r\n EcabsProfileModule,\r\n MatIconModule,\r\n ],\r\n exports: [EcabsHeaderComponent],\r\n})\r\nexport class EcabsHeaderModule {}\r\n","import {\r\n ChangeContext,\r\n Options,\r\n SliderComponent,\r\n} from '@angular-slider/ngx-slider';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { PointsConfigSlider } from '../base/models/slider.models';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n} from '@angular/forms';\r\nimport ElementBaseComponent from '../base/element-base';\r\n\r\n@Component({\r\n selector: 'ecabs-slider',\r\n templateUrl: './ecabs-slider.component.html',\r\n styleUrls: ['./ecabs-slider.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsSliderComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsSliderComponent\r\n extends ElementBaseComponent\r\n implements ControlValueAccessor, OnDestroy, OnInit, OnChanges\r\n{\r\n @ViewChild('slider')\r\n slider!: SliderComponent;\r\n @Input() max: number;\r\n @Input() point: number;\r\n @Input() pointsConfig: PointsConfigSlider;\r\n @Output() readonly pointUpdated = new EventEmitter<number>();\r\n sliderForm: UntypedFormGroup;\r\n slideSub!: any;\r\n options: Options = {\r\n floor: 0,\r\n ceil: 0,\r\n enforceRange: true,\r\n enforceStep: true,\r\n };\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n get value(): number {\r\n return this.sliderForm.get('slider').value;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.value !== val) {\r\n this.sliderForm.setValue({ slider: val });\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sliderForm = new UntypedFormGroup({\r\n slider: new UntypedFormControl({ value: 0 }),\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n\r\n this.slideSub = this.sliderForm.valueChanges.subscribe((formVal) => {\r\n this.value = formVal?.slider;\r\n this.onChange(this.value);\r\n this.onTouch(this.value);\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes['max'] &&\r\n changes['max']?.currentValue != changes['max']?.previousValue\r\n ) {\r\n this.options = {\r\n floor: this.pointsConfig.floor,\r\n ceil: this.pointsConfig.ceil,\r\n step: this.pointsConfig.step,\r\n maxLimit: this.max,\r\n tickStep: this.pointsConfig.tickStep,\r\n showTicks: true,\r\n enforceRange: true,\r\n enforceStep: true,\r\n };\r\n }\r\n }\r\n\r\n onChangeValue($event: ChangeContext): void {\r\n this.pointUpdated.emit($event.value);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.slideSub?.unsubscribe();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = (): void => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = (): void => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"sliderForm\">\r\n <ngx-slider\r\n #slider\r\n class=\"custom-slider\"\r\n [formControlName]=\"'slider'\"\r\n [value]=\"point\"\r\n name=\"slider\"\r\n (userChangeEnd)=\"onChangeValue($event)\"\r\n [options]=\"options\"\r\n ></ngx-slider>\r\n </form>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsSliderComponent } from './ecabs-slider.component';\r\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [EcabsSliderComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxSliderModule,\r\n ],\r\n exports: [EcabsSliderComponent],\r\n})\r\nexport class EcabsSliderModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncate',\r\n})\r\nexport class EcabsTruncatePipe implements PipeTransform {\r\n transform(\r\n value: string,\r\n limit = 24,\r\n trimAtWords = false,\r\n trail = '...',\r\n ): string {\r\n if (trimAtWords) {\r\n limit = value.substr(0, limit).lastIndexOf(' ');\r\n }\r\n\r\n return value?.length > limit ? value.substr(0, limit) + trail : value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTruncatePipe } from './truncate.pipe';\r\n\r\n@NgModule({\r\n declarations: [EcabsTruncatePipe],\r\n\r\n imports: [CommonModule],\r\n exports: [EcabsTruncatePipe],\r\n})\r\nexport class EcabsPipesModule {}\r\n","import { SidebarMenuItem } from '../models/sidebar.models';\r\n\r\nexport function matchMenuToUrl(\r\n url: string,\r\n menu: SidebarMenuItem[],\r\n): SidebarMenuItem {\r\n if (!menu?.length) {\r\n return undefined;\r\n }\r\n\r\n for (const node of menu) {\r\n if (node.url === url || url.includes(node.url)) {\r\n return node;\r\n }\r\n\r\n if (node.subItems) {\r\n const child = matchMenuToUrl(url, node.subItems);\r\n\r\n if (child) {\r\n return node;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { SidebarMenuItem } from '../base/models/sidebar.models';\r\nimport { matchMenuToUrl } from '../base/utils/menu-utils';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { filter, first, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ecabs-menu-items',\r\n templateUrl: './ecabs-menu-items.component.html',\r\n styleUrls: ['./ecabs-menu-items.component.scss'],\r\n providers: [UnsubscribeService],\r\n})\r\nexport class EcabsMenuItemsComponent implements OnChanges, OnDestroy {\r\n @Input()\r\n menuItems: SidebarMenuItem[];\r\n\r\n @Input()\r\n minimizeSidebar: boolean;\r\n\r\n @Input()\r\n truncateTo = 20;\r\n\r\n @Output()\r\n toggleSidebar = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private readonly unsubscribeService: UnsubscribeService,\r\n private readonly iconRegistry: MatIconRegistry,\r\n private readonly sanitizer: DomSanitizer,\r\n private readonly router: Router,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { menuItems } = changes;\r\n\r\n if (menuItems?.currentValue?.length) {\r\n const itemsWithResources = this.menuItems.filter(\r\n (item) => !!item.iconResource,\r\n );\r\n\r\n itemsWithResources?.map(({ iconResource }) => {\r\n const { name, path } = iconResource ?? {};\r\n\r\n this.iconRegistry.addSvgIcon(\r\n name,\r\n this.sanitizer.bypassSecurityTrustResourceUrl(path),\r\n );\r\n });\r\n\r\n this.matchMenuItemsOnLoad();\r\n this.trackMenu();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeService.destroy();\r\n }\r\n\r\n matchMenuItemsOnLoad(): void {\r\n this.router.events\r\n .pipe(\r\n first(),\r\n takeUntil(this.unsubscribeService.subscription()),\r\n filter((event) => event instanceof NavigationStart),\r\n )\r\n .subscribe((event: NavigationStart) => {\r\n const matchedMenuItemFromRoute: SidebarMenuItem = matchMenuToUrl(\r\n event.url,\r\n this.menuItems,\r\n );\r\n\r\n if (matchedMenuItemFromRoute) {\r\n if (matchedMenuItemFromRoute?.subItems?.length > 0) {\r\n const matchedSubmenuItem = matchMenuToUrl(\r\n event.url,\r\n matchedMenuItemFromRoute.subItems,\r\n );\r\n\r\n if (matchedSubmenuItem) {\r\n matchedSubmenuItem.expand = true;\r\n }\r\n }\r\n\r\n this.menuItems\r\n .filter((item) => item.expand)\r\n ?.map((item) => this.closeMenuGroup(item));\r\n const toExpand = this.menuItems.find(\r\n (item) =>\r\n JSON.stringify(item) ===\r\n JSON.stringify(matchedMenuItemFromRoute) && !item.expand,\r\n );\r\n toExpand.expand = this.minimizeSidebar ? true : !toExpand.expand;\r\n }\r\n });\r\n }\r\n\r\n trackMenu(): void {\r\n this.router.events\r\n .pipe(\r\n takeUntil(this.unsubscribeService.subscription()),\r\n filter((event) => event instanceof NavigationStart),\r\n )\r\n .subscribe((event: NavigationStart) => {\r\n if (!matchMenuToUrl(event.url, this.menuItems)) {\r\n this.menuItems\r\n ?.filter((item) => !!item.expand)\r\n ?.map((item) => {\r\n this.closeMenuGroup(item);\r\n });\r\n } else {\r\n this.matchActiveItem(event.url);\r\n }\r\n });\r\n }\r\n\r\n toggleItem(item: SidebarMenuItem, index: number): void {\r\n if (this.minimizeSidebar) {\r\n this.toggleSidebar.emit();\r\n\r\n setTimeout(() => {\r\n const element = document.getElementById(`${index}`);\r\n element.scrollIntoView({ behavior: 'smooth' });\r\n }, 100);\r\n }\r\n\r\n this.menuItems\r\n .filter(\r\n (menuItem) =>\r\n JSON.stringify(menuItem) !== JSON.stringify(item) &&\r\n !!menuItem?.expand,\r\n )\r\n ?.map((menu) => {\r\n this.closeMenuGroup(menu);\r\n });\r\n\r\n item.expand = item.url !== this.router.url ? true : item.expand;\r\n }\r\n\r\n toggleSubItem(item: SidebarMenuItem, siblings: SidebarMenuItem[]): void {\r\n siblings\r\n .filter(({ url }) => url !== item.url)\r\n .map((filtered) => (filtered.expand = false));\r\n\r\n if (item.url !== this.router.url) {\r\n item.expand = !item.expand;\r\n }\r\n }\r\n\r\n closeMenuGroup(item: SidebarMenuItem): void {\r\n item.expand = false;\r\n item.subItems?.map((subItem) => (subItem.expand = false));\r\n }\r\n\r\n matchActiveItem(url: string): void {\r\n const matchedMenuItemFromRoute: SidebarMenuItem = matchMenuToUrl(\r\n url,\r\n this.menuItems,\r\n );\r\n\r\n if (matchedMenuItemFromRoute?.subItems?.length > 0) {\r\n const matchedSubmenuItem: SidebarMenuItem = matchMenuToUrl(\r\n url,\r\n matchedMenuItemFromRoute.subItems,\r\n );\r\n\r\n this.menuItems\r\n ?.find((item) => item.url === matchedMenuItemFromRoute.url)\r\n ?.subItems.map((subItem) => {\r\n subItem.expand = subItem?.url === matchedSubmenuItem?.url;\r\n });\r\n }\r\n }\r\n}\r\n","<ul>\r\n <li\r\n *ngFor=\"let item of menuItems; let i = index\"\r\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\r\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\r\n >\r\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n class=\"p-4 flex items-center h-max\"\r\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\"\r\n >\r\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\r\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\r\n {{ item.icon }}\r\n </mat-icon>\r\n <span *ngIf=\"!minimizeSidebar\"\r\n class=\"inline-block align-middle\">\r\n {{ item.title }}\r\n </span>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #firstChildren let-subItems=\"subItems\">\r\n <ng-container *ngIf=\"!minimizeSidebar\">\r\n <ul class=\"ml-12\">\r\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\r\n <a #rla=\"routerLinkActive\"\r\n (click)=\"toggleSubItem(item, subItems)\"\r\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n >\r\n <span [title]=\"item.title\">\r\n {{ item.title | truncate: truncateTo }}\r\n </span>\r\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\r\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\r\n keyboard_arrow_right\r\n </mat-icon>\r\n </div>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #secondChildren let-subItems=\"subItems\">\r\n <ul class=\"ml-3\">\r\n <li *ngFor=\"let item of subItems\">\r\n <a #rla=\"routerLinkActive\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\r\n <span>{{ item.title }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { SidebarMenuItem } from '../base/models/sidebar.models';\r\n\r\n@Component({\r\n selector: 'ecabs-sidebar',\r\n templateUrl: './ecabs-sidebar.component.html',\r\n styleUrls: ['./ecabs-sidebar.component.scss'],\r\n})\r\nexport class EcabsSidebarComponent {\r\n @Input()\r\n allMenuItems: SidebarMenuItem[];\r\n\r\n @Input()\r\n logoutText = 'Logout';\r\n\r\n @Input()\r\n secondaryMenu: TemplateRef<any>;\r\n\r\n @Input()\r\n logo: TemplateRef<any>;\r\n\r\n @Output()\r\n readonly logout = new EventEmitter();\r\n\r\n @Output()\r\n readonly langChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n readonly sidebarChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n minimizeSidebar: boolean;\r\n\r\n onLogout(): void {\r\n this.logout.emit();\r\n }\r\n\r\n toggle(): void {\r\n this.minimizeSidebar = !this.minimizeSidebar;\r\n this.sidebarChange.emit(this.minimizeSidebar);\r\n }\r\n}\r\n","<section [ngClass]=\"minimizeSidebar ? 'w-16' : 'w-72'\" class=\"h-full\">\r\n <ul class=\"relative h-full p-2 flex flex-col\">\r\n <li *ngIf=\"logo\" [ngClass]=\"minimizeSidebar ? 'w-full items-center text-center' : 'w-20 ml-10'\" class=\"py-8\">\r\n <ng-container *ngTemplateOutlet=\"logo\"></ng-container>\r\n </li>\r\n\r\n <li [ngClass]=\"minimizeSidebar ? 'overflow-visible' : 'overflow-auto'\" class=\"mb-16 pr-1\">\r\n <ecabs-menu-items [menuItems]=\"allMenuItems\" [minimizeSidebar]=\"minimizeSidebar\"\r\n (toggleSidebar)=\"toggle()\"></ecabs-menu-items>\r\n </li>\r\n\r\n <li class=\"mt-auto\">\r\n <ul>\r\n <li *ngIf=\"secondaryMenu\" class=\"flex justify-center mb-5\">\r\n <ng-container *ngTemplateOutlet=\"secondaryMenu\"></ng-container>\r\n </li>\r\n\r\n <li class=\"flex cursor-pointer items-center w-full p-4 logout-btn\">\r\n <!-- eslint-disable-next-line -->\r\n <a class=\"text-gray-500\" (click)=\"onLogout()\">\r\n <mat-icon class=\"inline-block align-middle mr-4\">exit_to_app</mat-icon>\r\n <span class=\"inline-block align-middle\" *ngIf=\"!minimizeSidebar\">{{ logoutText }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n\r\n <!--#::TODO Find alternative to display correctly -->\r\n<!-- <div class=\"hidden md:block absolute z-20 -right-3 top-[calc(85%-1rem)]-->\r\n<!-- rounded-full bg-white text-brand-dark shadow-md cursor-pointer hover:bg-gray-100\"-->\r\n<!-- (click)=\"toggle()\">-->\r\n<!-- <mat-icon class=\"inline-block align-middle {{ !minimizeSidebar ? 'rotate-180' : '' }}\">keyboard_arrow_right</mat-icon>-->\r\n<!-- </div>-->\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsMenuItemsComponent } from './ecabs-menu-items.component';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsPipesModule } from '../base/pipes/pipes.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsMenuItemsComponent],\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n MatIconModule,\r\n EcabsPipesModule,\r\n ],\r\n exports: [EcabsMenuItemsComponent],\r\n})\r\nexport class EcabsMenuItemsModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-logo',\r\n templateUrl: './ecabs-logo.component.html',\r\n styleUrls: ['./ecabs-logo.component.scss'],\r\n})\r\nexport class EcabsLogoComponent {\r\n @Input()\r\n collapsed = false;\r\n\r\n @Input()\r\n logo: string;\r\n\r\n @Input()\r\n subtitle: string;\r\n\r\n @Input()\r\n logoAlt: string;\r\n}\r\n","<ul *ngIf=\"logo || subtitle\">\r\n <li *ngIf=\"logo\" class=\"w-full\">\r\n <img [src]=\"logo\" [alt]=\"logoAlt\"/>\r\n </li>\r\n\r\n <li *ngIf=\"subtitle\" [ngClass]=\"collapsed ? 'text-collapse' : 'text-sm'\" class=\"text-brand-dark mt-2\">\r\n {{ subtitle }}\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsLogoComponent } from './ecabs-logo.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsLogoComponent],\r\n imports: [CommonModule],\r\n exports: [EcabsLogoComponent],\r\n})\r\nexport class EcabsLogoModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsSidebarComponent } from './ecabs-sidebar.component';\r\nimport { EcabsLanguageSelectorModule } from '../ecabs-language-selector/ecabs-language-selector.module';\r\nimport { EcabsMenuItemsModule } from '../ecabs-menu-items/ecabs-menu-items.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { RouterLink } from '@angular/router';\r\nimport { EcabsLogoModule } from '../ecabs-logo/ecabs-logo.module';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\n\r\n@NgModule({\r\n declarations: [EcabsSidebarComponent],\r\n imports: [\r\n CommonModule,\r\n EcabsLanguageSelectorModule,\r\n EcabsMenuItemsModule,\r\n MatIconModule,\r\n RouterLink,\r\n EcabsLogoModule,\r\n MatSidenavModule,\r\n ],\r\n exports: [EcabsSidebarComponent],\r\n})\r\nexport class EcabsSidebarModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { UnsubscribeService } from '../../public-api';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport PlaceResult = google.maps.places.PlaceResult;\r\n\r\n@Component({\r\n selector: 'ecabs-place-autocomplete',\r\n templateUrl: './ecabs-place-autocomplete.component.html',\r\n styleUrls: ['./ecabs-place-autocomplete.component.scss'],\r\n providers: [\r\n UnsubscribeService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsPlaceAutocompleteComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsPlaceAutocompleteComponent\r\n extends EcabsElementBaseComponent\r\n implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor\r\n{\r\n @Input() showDeleteItem = false;\r\n @Input() showSuffix = false;\r\n @Input() countryCode = 'MT';\r\n @Input() googleLoaded: boolean;\r\n\r\n @Output() readonly placeResult: EventEmitter<{\r\n place: PlaceResult;\r\n text: string;\r\n }> = new EventEmitter();\r\n\r\n @Output() deleteItem = new EventEmitter();\r\n\r\n val!: string;\r\n listener: google.maps.MapsEventListener;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && val !== null && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly ngZone: NgZone,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n private readonly elementRef: ElementRef,\r\n private readonly injector: Injector,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { googleLoaded } = changes ?? {};\r\n\r\n if (googleLoaded?.currentValue) {\r\n this.initGoogle();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeService.destroy();\r\n\r\n if (this.listener) {\r\n this.listener.remove();\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n onDeleteItem(): void {\r\n this.deleteItem.emit();\r\n }\r\n\r\n onClean(): void {\r\n this.value = '';\r\n this.onTouch();\r\n }\r\n\r\n private initGoogle(): void {\r\n const autocomplete = new google.maps.places.Autocomplete(\r\n this.getElement(),\r\n {\r\n types: [],\r\n componentRestrictions: { country: [this.countryCode] },\r\n fields: ['address_components', 'geometry.location'],\r\n },\r\n );\r\n\r\n this.listener = autocomplete.addListener('place_changed', () => {\r\n this.ngZone.run(() => {\r\n const place = autocomplete.getPlace();\r\n\r\n // verify result\r\n if (place.geometry === undefined || place.geometry === null) {\r\n return;\r\n }\r\n\r\n this.placeResult.emit({\r\n place: place,\r\n text: this.getElement().value,\r\n });\r\n });\r\n });\r\n }\r\n\r\n private getElement(): any {\r\n return this.elementRef.nativeElement.querySelector('.form-field__input');\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\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 autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (click)=\"onDeleteItem()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsPlaceAutocompleteComponent } from './ecabs-place-autocomplete.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsPlaceAutocompleteComponent],\r\n imports: [CommonModule, ElementWrapperModule, FormsModule, MatIconModule],\r\n exports: [EcabsPlaceAutocompleteComponent],\r\n})\r\nexport class EcabsPlaceAutocompleteModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { format, isValid } from 'date-fns';\r\nimport Holidays from 'date-holidays';\r\n\r\nimport {\r\n MatDatepicker,\r\n MatDatepickerInputEvent,\r\n} from '@angular/material/datepicker';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport {\r\n EcabsDatePickerHolidayOptions,\r\n EcabsDatePickerTranslations,\r\n} from '../base/models/ecabs-date-picker-translations.models';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\n\r\nimport { EcabsDatePickerHeaderComponent } from '../../public-api';\r\n\r\n@Component({\r\n selector: 'ecabs-multiple-dates-picker',\r\n templateUrl: './ecabs-multiple-dates-picker.component.html',\r\n styleUrls: ['./ecabs-multiple-dates-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsMultipleDatesPickerComponent,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsMultipleDatesPickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @ViewChild('picker', { static: true }) _picker: MatDatepicker<Date>;\r\n\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() excludeHolidays: boolean;\r\n @Input() excludeWeekends: boolean;\r\n @Input() holidayOptions: EcabsDatePickerHolidayOptions;\r\n\r\n @Output() modelChange = new EventEmitter<Date[]>();\r\n\r\n val: string | number;\r\n header = EcabsDatePickerHeaderComponent;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n public CLOSE_ON_SELECTED = false;\r\n public init = new Date();\r\n public resetModel = new Date();\r\n public model = [];\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val: string | number) {\r\n if (val && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n public dateClass = (date: Date): string[] => {\r\n if (this._findDate(date) !== -1) {\r\n return ['selected'];\r\n }\r\n\r\n return [];\r\n };\r\n\r\n public dateChanged(event: MatDatepickerInputEvent<Date>): void {\r\n if (event.value) {\r\n const date = event.value;\r\n const index = this._findDate(date);\r\n if (index === -1) {\r\n this.model.push(date);\r\n this.modelChange.emit(this.model);\r\n } else {\r\n this.model.splice(index, 1);\r\n this.modelChange.emit(this.model);\r\n }\r\n this.resetModel = new Date();\r\n if (!this.CLOSE_ON_SELECTED) {\r\n const closeFn = this._picker.close;\r\n this._picker.close = (): any => {};\r\n this._picker[\r\n '_popupComponentRef'\r\n ]?.instance._calendar.monthView._createWeekCells();\r\n setTimeout(() => {\r\n this._picker.close = closeFn;\r\n });\r\n }\r\n }\r\n }\r\n\r\n public remove(date: Date): void {\r\n const index = this._findDate(date);\r\n this.model.splice(index, 1);\r\n this.modelChange.emit(this.model);\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n isDateNotHoliday(date: Date): boolean {\r\n const { countryCode, timeZoneOffset } = this.holidayOptions ?? {};\r\n\r\n if (countryCode && timeZoneOffset) {\r\n const holiday = new Holidays(countryCode.toUpperCase());\r\n\r\n return !holiday.isHoliday(\r\n `${format(date, 'yyyy-MM-dd')}T00:00:00${timeZoneOffset}`,\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n filterDateRange = (date: Date): boolean => {\r\n let result = true;\r\n\r\n if (isValid(new Date(date))) {\r\n const day = date?.getDay();\r\n\r\n if (this.excludeWeekends) {\r\n result = result && day !== 0 && day !== 6;\r\n }\r\n\r\n if (this.excludeHolidays) {\r\n result = result && this.isDateNotHoliday(date);\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n private _findDate(date: Date): number {\r\n return this.model.map((m) => +m).indexOf(+date);\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <mat-chip-grid\r\n #chipList aria-label=\"Choose a date\"\r\n (click)=\"picker.open()\"\r\n class=\"w-full\"\r\n >\r\n <mat-chip-option\r\n class=\"form-field__input\"\r\n *ngFor=\"let value of model\"\r\n [selectable]=\"false\" [removable]=\"true\"\r\n (removed)=\"remove(value)\"\r\n >\r\n {{ value | date: 'dd/MM/yyyy' }}\r\n <mat-icon matChipRemove *ngIf=\"true\">cancel</mat-icon>\r\n </mat-chip-option>\r\n <input\r\n class=\"form-field__input fake-input\"\r\n [value]=\"resetModel\"\r\n [(ngModel)]=\"value\"\r\n [matDatepicker]=\"picker\"\r\n placeholder=\"Select dates\"\r\n (dateChange)=\"dateChanged($event)\"\r\n [matChipInputFor]=\"chipList\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n />\r\n </mat-chip-grid>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n [dateClass]=\"dateClass\"\r\n >\r\n <mat-datepicker-actions>\r\n <ecabs-date-picker-actions\r\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n >\r\n </ecabs-date-picker-actions>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\n\r\nimport { EcabsMultipleDatesPickerComponent } from './ecabs-multiple-dates-picker.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsMultipleDatesPickerComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsMultipleDatesPickerComponent],\r\n})\r\nexport class EcabsMultipleDatesPickerModule {}\r\n","export interface Sorter<T> {\r\n property: Extract<keyof T, string | number | Date>;\r\n isDescending: boolean;\r\n dataType?: 'string' | 'number' | 'date';\r\n}\r\n\r\nconst getValue = <T>(obj: T, sortParams: Sorter<T>): any => {\r\n const value = obj[sortParams.property];\r\n\r\n switch (sortParams.dataType) {\r\n case 'date': {\r\n const date = new Date(value as any);\r\n\r\n return isNaN(date.getTime()) ? 0 : date.getTime();\r\n }\r\n\r\n case 'string':\r\n return (value as string).toLowerCase();\r\n\r\n case 'number':\r\n return typeof value === 'number' ? value : parseFloat(value as any);\r\n\r\n default:\r\n return value;\r\n }\r\n};\r\n\r\nexport const sortGeneric = <T>(\r\n objX: T,\r\n objY: T,\r\n sortParams: Sorter<T>,\r\n): number => {\r\n const valueX = getValue(objX, sortParams);\r\n const valueY = getValue(objY, sortParams);\r\n\r\n if (valueX > valueY) {\r\n return sortParams.isDescending ? -1 : 1;\r\n } else if (valueX < valueY) {\r\n return sortParams.isDescending ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n};\r\n\r\nexport const removeNullUndefineds = <T>(\r\n obj,\r\n exceptProperties: string[] = [],\r\n): T => {\r\n const newObj = {};\r\n\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key] === Object(obj[key])) {\r\n newObj[key] = removeNullUndefineds(obj[key], exceptProperties);\r\n } else if (obj[key] !== undefined) {\r\n newObj[key] = obj[key];\r\n }\r\n });\r\n\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n const pickBy = (object, predicate = (v) => v) =>\r\n Object.entries(object)\r\n //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\r\n .filter(([k, v]) => predicate(v))\r\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});\r\n\r\n return removeEmpty(\r\n pickBy(obj, (v) => v !== null),\r\n exceptProperties,\r\n ) as T;\r\n};\r\n\r\nexport const removeEmpty = <T>(o, exceptProperties: string[] = []): T => {\r\n for (const k in o) {\r\n if (\r\n !o[k] ||\r\n typeof o[k] !== 'object' ||\r\n exceptProperties.findIndex((property) => property === k) !== -1\r\n ) {\r\n continue;\r\n }\r\n\r\n removeEmpty(o[k]);\r\n if (Object.keys(o[k]).length === 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n delete o[k];\r\n }\r\n }\r\n\r\n return o;\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EcabsSpinnerComponent","i2","i3.EcabsSpinnerComponent","i1.EcabsComponentsService","i3.ValidationComponent","i4","i5","i6.EcabsHintComponent","i2.EcabsElementWrapperComponent","i4.EcabsDigitsOnlyDirective","i5.EcabsMinDirective","i5.EcabsMaxDirective","scrollFactory","i1","i3","i6","i7","i9.EcabsTooltipIfTruncatedDirective","i5.EcabsSpinnerComponent","i6.EcabsCheckboxToggleComponent","i1.EcabsElementWrapperComponent","i3.EcabsDatePickerHeaderService","i4.UnsubscribeService","i1.EcabsDatePickerHeaderService","i2.EcabsPickerHeaderComponent","i1.ButtonsComponent","i2.UnsubscribeService","i3.EcabsElementWrapperComponent","i8.EcabsDatePickerActionsComponent","i2.EcabsDatePickerHeaderService","i3.UnsubscribeService","i4.EcabsElementWrapperComponent","i8","i9.EcabsDigitsOnlyDirective","i10.EcabsNumberBorderDirective","i11.EcabsMaskDateDirective","i12.EcabsDatePickerActionsComponent","i8.EcabsDigitsOnlyDirective","i9.EcabsNumberBorderDirective","i10.EcabsDatePickerActionsComponent","i11.EcabsMaskTimeDirective","i1.CountryCode","i10.SearchPipe","i5.EcabsBasePhoneComponent","i1.FormTimePickerService","i4.EcabsMaskTimeDirective","i6.EcabsTimeListPanelComponent","i2.EcabsExpansionPanelComponent","i3.EcabsEmptyPlaceholderComponent","i3.EcabsComponentsService","i5.ButtonsComponent","i3.ButtonsComponent","i2.ValidationComponent","i2.EcabsDynamicBgColorDirective","map","i1.HeaderService","i3.EcabsBreadcrumbComponent","i4.EcabsProfileComponent","ElementBaseComponent","i1.UnsubscribeService","i6.EcabsTruncatePipe","i2.EcabsMenuItemsComponent","i9"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ecabs-components.mjs","sources":["../../../projects/ecabs-components/src/lib/ecabs-loading/spinner/spinner.component.ts","../../../projects/ecabs-components/src/lib/ecabs-loading/spinner/spinner.component.html","../../../projects/ecabs-components/src/lib/ecabs-loading/ecabs-loading.component.ts","../../../projects/ecabs-components/src/lib/ecabs-loading/ecabs-loading.component.html","../../../projects/ecabs-components/src/lib/ecabs-loading/ecabs-loading.module.ts","../../../projects/ecabs-components/src/lib/ecabs-buttons/ecabs-buttons.component.ts","../../../projects/ecabs-components/src/lib/ecabs-buttons/ecabs-buttons.component.html","../../../projects/ecabs-components/src/lib/ecabs-buttons/ecabs-buttons.module.ts","../../../projects/ecabs-components/src/lib/base/element-base.ts","../../../projects/ecabs-components/src/lib/base/consts/error-messages.consts.ts","../../../projects/ecabs-components/src/lib/base/consts/translations.consts.ts","../../../projects/ecabs-components/src/lib/base/services/ecabs-components.service.ts","../../../projects/ecabs-components/src/lib/base/validation/validation.component.ts","../../../projects/ecabs-components/src/lib/base/validation/validation.component.html","../../../projects/ecabs-components/src/lib/ecabs-hint/ecabs-hint.component.ts","../../../projects/ecabs-components/src/lib/ecabs-hint/ecabs-hint.component.html","../../../projects/ecabs-components/src/lib/base/element-wrapper/element-wrapper.component.ts","../../../projects/ecabs-components/src/lib/base/element-wrapper/element-wrapper.component.html","../../../projects/ecabs-components/src/lib/base/directives/digits-only.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/min-max.directive.ts","../../../projects/ecabs-components/src/lib/ecabs-input/ecabs-input.component.ts","../../../projects/ecabs-components/src/lib/ecabs-input/ecabs-input.component.html","../../../projects/ecabs-components/src/lib/ecabs-hint/ecabs-hint.module.ts","../../../projects/ecabs-components/src/lib/base/validation/validation.module.ts","../../../projects/ecabs-components/src/lib/base/element-wrapper/element-wrapper.module.ts","../../../projects/ecabs-components/src/lib/base/directives/digits-only.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/min-max.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-input/ecabs-input.module.ts","../../../projects/ecabs-components/src/lib/base/directives/tooltip-if-truncated.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/tooltip-if-truncated.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-select/ecabs-select.component.ts","../../../projects/ecabs-components/src/lib/ecabs-select/ecabs-select.component.html","../../../projects/ecabs-components/src/lib/ecabs-select/ecabs-select.module.ts","../../../projects/ecabs-components/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.ts","../../../projects/ecabs-components/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.html","../../../projects/ecabs-components/src/lib/ecabs-select-v2/ecabs-select-v2.component.ts","../../../projects/ecabs-components/src/lib/ecabs-select-v2/ecabs-select-v2.component.html","../../../projects/ecabs-components/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.ts","../../../projects/ecabs-components/src/lib/ecabs-select-v2/ecabs-select-v2.module.ts","../../../projects/ecabs-components/src/lib/ecabs-textarea/ecabs-textarea.component.ts","../../../projects/ecabs-components/src/lib/ecabs-textarea/ecabs-textarea.component.html","../../../projects/ecabs-components/src/lib/ecabs-textarea/ecabs-textarea.module.ts","../../../projects/ecabs-components/src/lib/base/services/unsubscribe.service.ts","../../../projects/ecabs-components/src/lib/base/services/ecabs-date-picker-translations.service.ts","../../../projects/ecabs-components/src/lib/ecabs-picker-header/ecabs-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-picker-header/ecabs-picker-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-picker/ecabs-date-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker/ecabs-date-picker.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.html","../../../projects/ecabs-components/src/lib/base/directives/number-border.directive.ts","../../../projects/ecabs-components/src/lib/base/consts/date-mask.consts.ts","../../../projects/ecabs-components/src/lib/base/directives/date-mask.directive.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.html","../../../projects/ecabs-components/src/lib/base/directives/date-mask.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/number-border.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-picker-header/ecabs-picker-header.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.html","../../../projects/ecabs-components/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-picker/ecabs-date-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.html","../../../projects/ecabs-components/src/lib/base/directives/time-mask.directive.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.html","../../../projects/ecabs-components/src/lib/base/directives/time-mask.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.ts","../../../projects/ecabs-components/src/lib/ecabs-increment/ecabs-increment.component.ts","../../../projects/ecabs-components/src/lib/ecabs-increment/ecabs-increment.component.html","../../../projects/ecabs-components/src/lib/ecabs-increment/ecabs-increment.module.ts","../../../projects/ecabs-components/src/lib/base/consts/country-codes.ts","../../../projects/ecabs-components/src/lib/base/validators/phone-number.validator.ts","../../../projects/ecabs-components/src/lib/base/pipes/search.pipe.ts","../../../projects/ecabs-components/src/lib/ecabs-base-phone-input/ecabs-base-phone.component.ts","../../../projects/ecabs-components/src/lib/ecabs-base-phone-input/ecabs-base-phone.component.html","../../../projects/ecabs-components/src/lib/ecabs-phone/ecabs-phone.component.ts","../../../projects/ecabs-components/src/lib/ecabs-phone/ecabs-phone.component.html","../../../projects/ecabs-components/src/lib/ecabs-base-phone-input/ecabs-base-phone.module.ts","../../../projects/ecabs-components/src/lib/ecabs-phone/ecabs-phone.module.ts","../../../projects/ecabs-components/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.ts","../../../projects/ecabs-components/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.html","../../../projects/ecabs-components/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.service.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.html","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.component.html","../../../projects/ecabs-components/src/lib/ecabs-timepicker/ecabs-timepicker.module.ts","../../../projects/ecabs-components/src/lib/base/consts/images.consts.ts","../../../projects/ecabs-components/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.ts","../../../projects/ecabs-components/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.html","../../../projects/ecabs-components/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.ts","../../../projects/ecabs-components/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.ts","../../../projects/ecabs-components/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.html","../../../projects/ecabs-components/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.html","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table.component.ts","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table.component.html","../../../projects/ecabs-components/src/lib/ecabs-table/ecabs-table.module.ts","../../../projects/ecabs-components/src/lib/ecabs-note/ecabs-note.component.ts","../../../projects/ecabs-components/src/lib/ecabs-note/ecabs-note.component.html","../../../projects/ecabs-components/src/lib/ecabs-note/ecabs-note.module.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.html","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.html","../../../projects/ecabs-components/src/lib/ecabs-dialog-message/ecabs-dialog-message.module.ts","../../../projects/ecabs-components/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.ts","../../../projects/ecabs-components/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.html","../../../projects/ecabs-components/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.ts","../../../projects/ecabs-components/src/lib/ecabs-language-selector/ecabs-language-selector.component.ts","../../../projects/ecabs-components/src/lib/ecabs-language-selector/ecabs-language-selector.component.html","../../../projects/ecabs-components/src/lib/ecabs-language-selector/ecabs-language-selector.module.ts","../../../projects/ecabs-components/src/lib/base/directives/dynamic-bg-color.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/dynamic-bg-color.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/paginator.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/paginator.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/check-permissions.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/check-permissions.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/dom-observer.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/dom-observer.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/file-drop.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/file-drop.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/time-range.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/time-range.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/uppercase-mask.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/uppercase-mask.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/attach-embedded-view.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/attach-embedded-view.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/element-multiplier.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/element-multiplier.directive.module.ts","../../../projects/ecabs-components/src/lib/base/directives/show-on-truncated.directive.ts","../../../projects/ecabs-components/src/lib/base/directives/show-on-truncated.directive.module.ts","../../../projects/ecabs-components/src/lib/ecabs-validation/ecabs-validation.component.ts","../../../projects/ecabs-components/src/lib/ecabs-validation/ecabs-validation.component.html","../../../projects/ecabs-components/src/lib/ecabs-validation/ecabs-validation.module.ts","../../../projects/ecabs-components/src/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.ts","../../../projects/ecabs-components/src/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.html","../../../projects/ecabs-components/src/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.ts","../../../projects/ecabs-components/src/lib/ecabs-profile/ecabs-profile.component.ts","../../../projects/ecabs-components/src/lib/ecabs-profile/ecabs-profile.component.html","../../../projects/ecabs-components/src/lib/ecabs-profile/ecabs-profile.module.ts","../../../projects/ecabs-components/src/lib/base/services/header.service.ts","../../../projects/ecabs-components/src/lib/ecabs-header/ecabs-header.component.ts","../../../projects/ecabs-components/src/lib/ecabs-header/ecabs-header.component.html","../../../projects/ecabs-components/src/lib/ecabs-header/ecabs-header.module.ts","../../../projects/ecabs-components/src/lib/ecabs-slider/ecabs-slider.component.ts","../../../projects/ecabs-components/src/lib/ecabs-slider/ecabs-slider.component.html","../../../projects/ecabs-components/src/lib/ecabs-slider/ecabs-slider.module.ts","../../../projects/ecabs-components/src/lib/base/pipes/truncate.pipe.ts","../../../projects/ecabs-components/src/lib/base/pipes/pipes.module.ts","../../../projects/ecabs-components/src/lib/base/utils/menu-utils.ts","../../../projects/ecabs-components/src/lib/ecabs-menu-items/ecabs-menu-items.component.ts","../../../projects/ecabs-components/src/lib/ecabs-menu-items/ecabs-menu-items.component.html","../../../projects/ecabs-components/src/lib/ecabs-sidebar/ecabs-sidebar.component.ts","../../../projects/ecabs-components/src/lib/ecabs-sidebar/ecabs-sidebar.component.html","../../../projects/ecabs-components/src/lib/ecabs-menu-items/ecabs-menu-items.module.ts","../../../projects/ecabs-components/src/lib/ecabs-logo/ecabs-logo.component.ts","../../../projects/ecabs-components/src/lib/ecabs-logo/ecabs-logo.component.html","../../../projects/ecabs-components/src/lib/ecabs-logo/ecabs-logo.module.ts","../../../projects/ecabs-components/src/lib/ecabs-sidebar/ecabs-sidebar.module.ts","../../../projects/ecabs-components/src/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.ts","../../../projects/ecabs-components/src/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.html","../../../projects/ecabs-components/src/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.module.ts","../../../projects/ecabs-components/src/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.ts","../../../projects/ecabs-components/src/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.html","../../../projects/ecabs-components/src/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.module.ts","../../../projects/ecabs-components/src/lib/base/utils/object-utils.ts","../../../projects/ecabs-components/src/ecabs-components.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-loading-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsSpinnerComponent {\r\n @Input() size: 'large' | 'medium' | 'tiny' = 'medium';\r\n}\r\n","<div class=\"loadingio-spinner-rolling {{ size }}\">\r\n <div class=\"ldio-inner\">\r\n <div></div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-loading',\r\n templateUrl: './ecabs-loading.component.html',\r\n})\r\nexport class EcabsLoadingComponent {\r\n @Input() loading = false;\r\n @Input() backgroundColor = 'white';\r\n @Input() size: 'large' | 'medium' | 'tiny' = 'medium';\r\n}\r\n","<div\r\n class=\"flex absolute left-0 top-0 right-0 bottom-0 z-50 items-center justify-center\"\r\n [ngStyle]=\"{ backgroundColor: backgroundColor }\"\r\n *ngIf=\"loading\"\r\n>\r\n <ecabs-loading-spinner [size]=\"size\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsLoadingComponent } from './ecabs-loading.component';\r\nimport { EcabsSpinnerComponent } from './spinner/spinner.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsLoadingComponent, EcabsSpinnerComponent],\r\n imports: [CommonModule],\r\n exports: [EcabsLoadingComponent, EcabsSpinnerComponent],\r\n})\r\nexport class EcabsLoadingModule {}\r\n","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ButtonStyle } from '../base/consts/buttons.consts';\r\n\r\n@Component({\r\n selector: 'ecabs-buttons',\r\n styleUrls: ['./ecabs-buttons.component.scss'],\r\n templateUrl: './ecabs-buttons.component.html',\r\n})\r\nexport class ButtonsComponent implements OnInit, OnChanges {\r\n @Input()\r\n disabled!: boolean;\r\n\r\n @Input()\r\n loading!: boolean;\r\n\r\n @Input()\r\n size: 'default' | 'large' = 'default';\r\n\r\n @Input()\r\n type: 'button' | 'submit' = 'button';\r\n\r\n @Input()\r\n style: ButtonStyle = 'flat';\r\n\r\n @Input()\r\n full = false;\r\n\r\n @Input()\r\n color: ThemePalette | 'success' | null = 'primary';\r\n\r\n @HostBinding('style.width')\r\n borderWidth = '';\r\n\r\n @HostBinding('class')\r\n classAttr = '';\r\n\r\n ngOnInit(): void {\r\n if (this.full) {\r\n this.borderWidth = '100%';\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const disabled =\r\n changes['disabled']?.currentValue !== undefined\r\n ? changes['disabled'].currentValue\r\n : this.disabled;\r\n const loading =\r\n changes['loading']?.currentValue !== undefined\r\n ? changes['loading'].currentValue\r\n : this.loading;\r\n\r\n if (disabled || loading) {\r\n this.classAttr = 'pointer-events-none';\r\n } else {\r\n this.classAttr = '';\r\n }\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"style\">\r\n <button\r\n mat-flat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'flat'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-stroked-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'stroked'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-raised-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'raised'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchDefault\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template #content>\r\n <ecabs-loading-spinner size=\"tiny\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n </ng-container>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonsComponent } from './ecabs-buttons.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsLoadingModule } from '../ecabs-loading/ecabs-loading.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [ButtonsComponent],\r\n imports: [CommonModule, MatButtonModule, EcabsLoadingModule, MatIconModule],\r\n exports: [ButtonsComponent],\r\n})\r\nexport class EcabsButtonsModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl } from '@angular/forms';\r\nimport { ElementData } from './models/element.models';\r\n\r\n@Component({\r\n template: '',\r\n standalone: true,\r\n})\r\nexport default class EcabsElementBaseComponent {\r\n @Input() type!: string;\r\n @Input() name!: string;\r\n @Input() label!: string;\r\n @Input() placeholder = '';\r\n @Input() validationLabel!: string;\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() showValidation = true;\r\n @Input() showValidationOnNotTouched = false;\r\n @Input() hideValidationMessage = false;\r\n @Input() iconClass = '';\r\n @Input() loading = false;\r\n @Input() showHint = false;\r\n @Input() maxLength!: number;\r\n @Input() tooltip!: string;\r\n @Input() showAsterisk = true;\r\n @Input() labelNote!: string;\r\n @Input() showLabel = true;\r\n @Input() showLocalLoading = true;\r\n\r\n @Output() focused = new EventEmitter<any>();\r\n @Output() focusOuted = new EventEmitter<any>();\r\n\r\n control!: UntypedFormControl;\r\n required = false;\r\n\r\n getData(): ElementData {\r\n return {\r\n type: this.type || 'text',\r\n label: this.label,\r\n placeholder: this.placeholder,\r\n validationLabel: this.validationLabel,\r\n disabled: this.disabled,\r\n readonly: this.readonly,\r\n showValidation: this.showValidation,\r\n showValidationOnNotTouched: this.showValidationOnNotTouched,\r\n hideValidationMessage: this.hideValidationMessage,\r\n iconClass: this.iconClass,\r\n control: this.control,\r\n loading: this.loading,\r\n showHint: this.showHint,\r\n maxLength: this.maxLength,\r\n tooltip: this.tooltip,\r\n name: this.name,\r\n required: this.isRequired(this.control),\r\n showAsterisk: this.showAsterisk,\r\n labelNote: this.labelNote,\r\n showLabel: this.showLabel,\r\n };\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.disabled !== isDisabled) {\r\n this.disabled = this.readonly = isDisabled;\r\n this.toggleDisableState(!isDisabled);\r\n }\r\n }\r\n\r\n updateDisabledState(): void {\r\n if (this.control) {\r\n this.disabled = this.readonly = this.control.disabled || this.disabled;\r\n this.toggleDisableState(!this.disabled);\r\n }\r\n }\r\n\r\n private enableControl(): void {\r\n if (this.control?.disabled) {\r\n this.control.enable({ emitEvent: false });\r\n }\r\n }\r\n\r\n private disableControl(): void {\r\n if (this.control?.enabled) {\r\n this.control.disable({ emitEvent: false });\r\n }\r\n }\r\n\r\n private toggleDisableState(condition: boolean): void {\r\n if (condition) {\r\n this.enableControl();\r\n } else {\r\n this.disableControl();\r\n }\r\n }\r\n\r\n private isRequired = (ctrl: any): boolean => {\r\n if (ctrl?.validator) {\r\n const validator = ctrl.validator({} as AbstractControl);\r\n if (validator?.['required']) {\r\n return true;\r\n }\r\n }\r\n\r\n if (ctrl?.['controls']) {\r\n for (const name in ctrl['controls']) {\r\n if (ctrl['controls'][name]) {\r\n if (this.isRequired(ctrl['controls'][name])) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n}\r\n","import { ErrorMessage } from '../services/ecabs-components.service';\r\n\r\nexport const errorMessages: ErrorMessage[] = [\r\n {\r\n type: 'required',\r\n message: 'FORMS.VALIDATION.LABEL_REQUIRED',\r\n },\r\n {\r\n type: 'minlength',\r\n message: 'FORMS.VALIDATION.MIN_LENGTH',\r\n },\r\n {\r\n type: 'maxlength',\r\n message: 'FORMS.VALIDATION.MAX_LENGTH',\r\n },\r\n {\r\n type: 'min',\r\n message: 'FORMS.VALIDATION.MIN',\r\n },\r\n {\r\n type: 'max',\r\n message: 'FORMS.VALIDATION.MAX',\r\n },\r\n {\r\n type: 'minValue',\r\n message: 'FORMS.VALIDATION.MIN_VALUE',\r\n },\r\n {\r\n type: 'maxValue',\r\n message: 'FORMS.VALIDATION.MAX_VALUE',\r\n },\r\n {\r\n type: 'validatePhoneNumber',\r\n message: 'FORMS.VALIDATION.VALIDATE_PHONE_NUMBER',\r\n },\r\n {\r\n type: 'pastDate',\r\n message: 'FORMS.VALIDATION.PAST_DATE',\r\n },\r\n {\r\n type: 'affectsError',\r\n message: 'FORMS.VALIDATION.AFFECTS_ERROR',\r\n },\r\n {\r\n type: 'moreThan',\r\n message: 'FORMS.VALIDATION.MORE_THAN',\r\n },\r\n {\r\n type: 'lessThan',\r\n message: 'FORMS.VALIDATION.LESS_THAN',\r\n },\r\n {\r\n type: 'email',\r\n message: 'FORMS.VALIDATION.EMAIL',\r\n },\r\n {\r\n type: 'numberMoreThan',\r\n message: 'FORMS.VALIDATION.VALUE_MORE_THAN',\r\n },\r\n {\r\n type: 'numberLessThan',\r\n message: 'FORMS.VALIDATION.VALUE_LESS_THAN',\r\n },\r\n {\r\n type: 'outOfRange',\r\n message: 'FORMS.VALIDATION.OUT_OF_RANGE',\r\n },\r\n {\r\n type: 'iban',\r\n message: 'FORMS.VALIDATION.IBAN',\r\n },\r\n {\r\n type: 'timeIsAfter',\r\n message: 'FORMS.VALIDATION.LESS_THAN_TIME',\r\n },\r\n {\r\n type: 'blacklisted',\r\n message: 'FORMS.VALIDATION.BLACKLISTED',\r\n },\r\n {\r\n type: 'fromToNotFound',\r\n message: 'FORMS.VALIDATION.FROM_TO_NOT_FOUND',\r\n },\r\n {\r\n type: 'fromToNotCorrectCount',\r\n message: 'FORMS.VALIDATION.FROM_TO_NOT_CORRECT_COUNT',\r\n },\r\n {\r\n type: 'whitespace',\r\n message: 'FORMS.VALIDATION.WHITESPACE',\r\n },\r\n {\r\n type: 'alphanumeric',\r\n message: 'FORMS.VALIDATION.ALPHANUMERIC',\r\n },\r\n];\r\n","import { Ecabsi18n } from '../services/ecabs-components.service';\r\n\r\nexport const i18n: Ecabsi18n = {\r\n confirmLabel: 'ACTIONS.CONFIRM',\r\n cancelLabel: 'ACTIONS.CANCEL',\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { errorMessages } from '../consts/error-messages.consts';\r\nimport { i18n } from '../consts/translations.consts';\r\nimport { UserClaim } from '../models/user-claim.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EcabsComponentsService {\r\n defaultConfig: EcabsComponentsConfig = {\r\n defaultCountries: [],\r\n errorMessages: [...errorMessages],\r\n i18n,\r\n claims: [],\r\n defaultPhoneDebounceTimeMs: 1000,\r\n };\r\n\r\n config: EcabsComponentsConfig;\r\n\r\n private readonly _config = new BehaviorSubject<EcabsComponentsConfig>(\r\n this.defaultConfig,\r\n );\r\n\r\n setConfig(config: EcabsComponentsConfig): void {\r\n this.config = config || this.defaultConfig;\r\n\r\n this._config.next(config);\r\n }\r\n\r\n getConfig(): Observable<EcabsComponentsConfig> {\r\n return this._config.asObservable();\r\n }\r\n\r\n updateConfig(configUpdate: EcabsComponentsConfig): void {\r\n const currentConfig = this._config.getValue();\r\n const updatedConfig: EcabsComponentsConfig = new GenericComponentConfig();\r\n\r\n for (const key in currentConfig) {\r\n if (\r\n Object.prototype.hasOwnProperty.call(currentConfig, key) &&\r\n Object.prototype.hasOwnProperty.call(configUpdate, key)\r\n ) {\r\n updatedConfig[key] = Array.isArray(currentConfig[key])\r\n ? [...currentConfig[key], ...configUpdate[key]]\r\n : { ...currentConfig[key], ...configUpdate[key] };\r\n } else {\r\n updatedConfig[key] = currentConfig[key];\r\n }\r\n }\r\n\r\n this.config = updatedConfig;\r\n\r\n this._config.next(updatedConfig);\r\n }\r\n\r\n hasClaim(allowedClaims: string[] = []): boolean {\r\n const userClaims = this._config.getValue().claims\r\n ? this._config\r\n .getValue()\r\n .claims.map((appUserClaim: UserClaim) => appUserClaim.claim)\r\n : undefined;\r\n\r\n if (allowedClaims.includes('allow')) {\r\n return true;\r\n }\r\n\r\n if (userClaims) {\r\n return allowedClaims.every((claim) => userClaims.includes(claim));\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport interface EcabsComponentsConfig {\r\n defaultCountries?: string[];\r\n errorMessages?: ErrorMessage[];\r\n i18n?: Ecabsi18n;\r\n claims?: UserClaim[];\r\n defaultPhoneDebounceTimeMs?: number;\r\n}\r\n\r\nexport interface ErrorMessage {\r\n type: string;\r\n message?: string;\r\n}\r\n\r\nexport interface Ecabsi18n {\r\n cancelLabel?: string;\r\n confirmLabel?: string;\r\n}\r\n\r\nexport class GenericComponentConfig implements EcabsComponentsConfig {\r\n defaultCountries: string[] = [];\r\n errorMessages: ErrorMessage[] = [];\r\n i18n: Ecabsi18n;\r\n claims: UserClaim[] = [];\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport {\r\n EcabsComponentsConfig,\r\n EcabsComponentsService,\r\n} from '../services/ecabs-components.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ecabs-validations-messages',\r\n templateUrl: './validation.component.html',\r\n styleUrls: ['./validation.component.scss'],\r\n})\r\nexport class ValidationComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() element!: any;\r\n @Input() label!: string;\r\n @Input() showValidationOnNotTouched = false;\r\n @Input() updatedErrors!: { type: string; message: string }[];\r\n config!: EcabsComponentsConfig;\r\n private _messages: any = {};\r\n private configSubscription: Subscription;\r\n\r\n get messages(): any {\r\n if (this.element) {\r\n for (const errorKey in this.element.errors) {\r\n for (const key in this.element.errors[errorKey]) {\r\n if (this._messages[errorKey]) {\r\n this._messages[errorKey] = this._messages[errorKey].replace(\r\n `[${key}]`,\r\n this.element.errors[errorKey][key],\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n return this._messages;\r\n }\r\n\r\n set messages(m) {\r\n this._messages = m;\r\n }\r\n\r\n constructor(private ecabsService: EcabsComponentsService) {}\r\n\r\n ngOnInit(): void {\r\n this.configSubscription = this.ecabsService\r\n .getConfig()\r\n .subscribe((value) => {\r\n this.config = value;\r\n\r\n //eslint-disable-next-line\r\n for (const error of value?.errorMessages) {\r\n this.messages[error.type] = this.replaceTokens(error.message);\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { updatedErrors } = changes;\r\n\r\n if (\r\n updatedErrors &&\r\n updatedErrors.currentValue &&\r\n updatedErrors.currentValue.length > 0\r\n ) {\r\n for (const error of updatedErrors.currentValue) {\r\n this.messages[error.type] = error.message;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.configSubscription) {\r\n this.configSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n replaceTokens(message: string): string {\r\n let retMessage: string;\r\n if (this.label) {\r\n const cleanLabel = this.label.replace(/,.*/, '');\r\n retMessage = message.replace('[label]', cleanLabel);\r\n } else {\r\n retMessage = message;\r\n }\r\n\r\n return retMessage;\r\n }\r\n\r\n getMessageDetail(key: any): string {\r\n return this.messages[key];\r\n }\r\n}\r\n","<div\r\n class=\"form-field__validation\"\r\n *ngIf=\"element && (element?.touched || showValidationOnNotTouched) && element?.invalid\"\r\n>\r\n <div class=\"form-field__validation__item\" *ngFor=\"let item of element?.errors | keyvalue\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-hint',\r\n templateUrl: './ecabs-hint.component.html',\r\n styleUrls: ['./ecabs-hint.component.scss'],\r\n})\r\nexport class EcabsHintComponent {\r\n @Input() element!: any;\r\n @Input() maxValue!: number;\r\n @Input() showHint = false;\r\n}\r\n","<div class=\"hint\" *ngIf=\"element && showHint\">{{ element?.value?.length || 0 }}/{{ this.maxValue }}</div>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-element-wrapper',\r\n templateUrl: './element-wrapper.component.html',\r\n styleUrls: ['./element-wrapper.component.scss'],\r\n})\r\nexport class EcabsElementWrapperComponent {\r\n @Input() data!: any;\r\n @Input() showCloseIcon!: boolean;\r\n @Input() focusedFlag!: any;\r\n @Input() showPassword!: boolean;\r\n @Input() control!: any;\r\n @Output() showHidePassword = new EventEmitter<any>();\r\n @Output() clear = new EventEmitter<any>();\r\n @Output() increase = new EventEmitter<any>();\r\n @Output() decrease = new EventEmitter<any>();\r\n\r\n showHidePasswordFn(event: any): void {\r\n this.showHidePassword.emit(event);\r\n }\r\n\r\n clearFn(): void {\r\n this.clear.emit();\r\n }\r\n\r\n increaseFn(): void {\r\n this.increase.emit();\r\n }\r\n\r\n decreaseFn(): void {\r\n this.decrease.emit();\r\n }\r\n}\r\n","<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div class=\"flex\">\r\n <label\r\n class=\"form-field__label\"\r\n [attr.for]=\"data?.name\" *ngIf=\"data?.label && data?.showLabel\"\r\n >\r\n <span [innerHTML]=\"data?.label\"></span>\r\n </label>\r\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\" *ngIf=\"data?.tooltip\"\r\n [matTooltip]=\"data?.tooltip\">error_outline\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"form-field__label-note\" *ngIf=\"data?.labelNote\" [innerHTML]=\"data?.labelNote\"></div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ecabs-loading-spinner *ngIf=\"data?.showLocalLoading && data?.loading\"\r\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\r\n\r\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\r\n\r\n <ecabs-validations-messages\r\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\r\n [element]=\"data?.control\"\r\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\r\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\r\n >\r\n </ecabs-validations-messages>\r\n</div>\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsDigitsOnly]',\r\n})\r\nexport class EcabsDigitsOnlyDirective implements OnInit {\r\n @Input()\r\n digitsOnly = false;\r\n\r\n @Input()\r\n allowHyphen = false;\r\n\r\n @Input() decimal? = false;\r\n @Input() decimalSeparator? = '.';\r\n @Input() unit? = 0;\r\n\r\n inputElement: HTMLInputElement;\r\n minus = '-';\r\n minusCounter = 0;\r\n regex!: RegExp;\r\n\r\n private decimalCounter = 0;\r\n private readonly navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): void {\r\n if (this.digitsOnly) {\r\n if (\r\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n (e.key === 'a' && e.ctrlKey) || // Allow: Ctrl+A\r\n (e.key === 'c' && e.ctrlKey) || // Allow: Ctrl+C\r\n (e.key === 'v' && e.ctrlKey) || // Allow: Ctrl+V\r\n (e.key === 'x' && e.ctrlKey) || // Allow: Ctrl+X\r\n (e.key === 'a' && e.metaKey) || // Allow: Cmd+A (Mac)\r\n (e.key === 'c' && e.metaKey) || // Allow: Cmd+C (Mac)\r\n (e.key === 'v' && e.metaKey) || // Allow: Cmd+V (Mac)\r\n (e.key === 'x' && e.metaKey) || // Allow: Cmd+X (Mac)\r\n (this.decimal &&\r\n e.key === this.decimalSeparator &&\r\n this.decimalCounter <= 1) || // Allow: only one decimal point\r\n (this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus\r\n ) {\r\n return;\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || !this.regex.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(): void {\r\n if (this.digitsOnly) {\r\n if (!this.decimal) {\r\n const regex = /[.,]/g;\r\n this.inputElement.value = this.inputElement.value.replace(regex, '');\r\n\r\n return;\r\n }\r\n\r\n this.decimalCounter =\r\n this.el.nativeElement.value.split(this.decimalSeparator).length - 1;\r\n this.minusCounter =\r\n this.el.nativeElement.value.split(this.minus).length - 1;\r\n\r\n if (isNaN(+this.inputElement.value)) {\r\n this.inputElement.value = this.sanitizeInput(this.inputElement.value);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent): void {\r\n if (this.digitsOnly) {\r\n const pastedInput = event.clipboardData?.getData('text/plain') as string;\r\n this.pasteData(pastedInput);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.regex = new RegExp(this.allowHyphen ? '^[\\\\d -]+$' : '\\\\d');\r\n }\r\n\r\n private pasteData(pastedContent: string): void {\r\n const sanitizedContent = isNaN(+pastedContent)\r\n ? this.sanitizeInput(pastedContent)\r\n : pastedContent;\r\n const pasted = document.execCommand('insertText', false, sanitizedContent);\r\n if (!pasted) {\r\n const { selectionStart: start, selectionEnd: end } = this.inputElement;\r\n this.inputElement.setRangeText(\r\n sanitizedContent,\r\n start as number,\r\n end as number,\r\n 'end',\r\n );\r\n }\r\n }\r\n\r\n private sanitizeInput(input: string): string {\r\n let result = '';\r\n if (this.decimal && this.isValidDecimal(input)) {\r\n //eslint-disable-next-line\r\n const regex = new RegExp(`^[\\d -${this.decimalSeparator}]+$`, 'g');\r\n result = input.replace(regex, '');\r\n } else {\r\n result = input.replace(`/${this.regex}/g`, '');\r\n }\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n\r\n if (maxLength > 0) {\r\n // the input element has maxLength limit\r\n const allowedLength = maxLength - this.inputElement.value.length;\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private isValidDecimal(inputString: string): boolean {\r\n return inputString.split(this.decimalSeparator as string).length <= 2;\r\n }\r\n}\r\n","import { Directive, forwardRef, Input } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n NG_VALIDATORS,\r\n Validator,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[mini][formControlName],[mini][formControl],[mini][ngModel]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => EcabsMinDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsMinDirective implements Validator {\r\n private _validator: ValidatorFn;\r\n\r\n @Input() public set mini(value: number) {\r\n this._validator = Validators.min(value);\r\n }\r\n\r\n public validate(control: AbstractControl): { [key: string]: any } {\r\n return this._validator(control);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[maxi][formControlName],[maxi][formControl],[maxi][ngModel]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => EcabsMinDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsMaxDirective implements Validator {\r\n private _validator: ValidatorFn;\r\n\r\n @Input() public set maxi(value: number) {\r\n this._validator = Validators.max(value);\r\n }\r\n\r\n public validate(control: AbstractControl): { [key: string]: any } {\r\n return this._validator(control);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-input',\r\n templateUrl: './ecabs-input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsInputComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsInputComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input()\r\n digitsOnly!: boolean;\r\n\r\n @Input()\r\n allowDecimal!: boolean;\r\n\r\n @Input()\r\n allowHyphen!: boolean;\r\n\r\n @Input() max!: number;\r\n @Input() mini!: number;\r\n @Input() maxi!: number;\r\n @Input() step!: number;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n val!: string | number;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n\r\n if (this.getData()?.control?.updateOn !== 'blur') {\r\n this.onTouch(val);\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'number') {\r\n this.digitsOnly = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n onChange: any = () => {};\r\n\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <input\r\n ecabsDigitsOnly\r\n [digitsOnly]=\"digitsOnly\"\r\n [decimal]=\"allowDecimal\"\r\n [allowHyphen]=\"allowHyphen\"\r\n class=\"form-field__input\"\r\n [type]=\"type\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [mini]=\"mini\"\r\n [maxi]=\"maxi\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n (blur)=\"blurChange($event)\"\r\n />\r\n\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content select=\".suffix\"></ng-content>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsHintComponent } from './ecabs-hint.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsHintComponent],\r\n imports: [CommonModule],\r\n exports: [EcabsHintComponent],\r\n})\r\nexport class EcabsHintModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { ValidationComponent } from './validation.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\n@NgModule({\r\n declarations: [ValidationComponent],\r\n imports: [CommonModule, FormsModule, MatFormFieldModule],\r\n exports: [ValidationComponent],\r\n})\r\nexport class EcabsValidationModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { EcabsHintModule } from '../../ecabs-hint/ecabs-hint.module';\r\nimport { EcabsValidationModule } from '../validation/validation.module';\r\nimport { EcabsElementWrapperComponent } from './element-wrapper.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsLoadingModule } from '../../ecabs-loading/ecabs-loading.module';\r\nimport {\r\n MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n MatFormFieldDefaultOptions,\r\n MatFormFieldModule,\r\n} from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { BlockScrollStrategy, Overlay } from '@angular/cdk/overlay';\r\nimport { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';\r\n\r\nconst appearance: MatFormFieldDefaultOptions = {\r\n appearance: 'outline',\r\n floatLabel: 'always',\r\n hideRequiredMarker: true,\r\n subscriptSizing: 'dynamic',\r\n};\r\n\r\nexport function scrollFactory(overlay: Overlay): () => BlockScrollStrategy {\r\n return () => overlay.scrollStrategies.block();\r\n}\r\n\r\n@NgModule({\r\n declarations: [EcabsElementWrapperComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n EcabsLoadingModule,\r\n EcabsValidationModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n EcabsHintModule,\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: appearance,\r\n },\r\n {\r\n provide: MAT_SELECT_SCROLL_STRATEGY,\r\n useFactory: scrollFactory,\r\n deps: [Overlay],\r\n },\r\n ],\r\n exports: [EcabsElementWrapperComponent],\r\n})\r\nexport class ElementWrapperModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsDigitsOnlyDirective } from './digits-only.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsDigitsOnlyDirective],\r\n exports: [EcabsDigitsOnlyDirective],\r\n})\r\nexport class EcabsDigitsOnlyDirectivesModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsMaxDirective, EcabsMinDirective } from './min-max.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsMinDirective, EcabsMaxDirective],\r\n exports: [EcabsMinDirective, EcabsMaxDirective],\r\n})\r\nexport class EcabsMinMaxDirectiveModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsInputComponent } from './ecabs-input.component';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { EcabsMinMaxDirectiveModule } from '../base/directives/min-max.directive.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsInputComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsMinMaxDirectiveModule,\r\n ],\r\n exports: [EcabsInputComponent],\r\n})\r\nexport class EcabsInputModule {}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Directive({\r\n selector: '[matTooltip][ecabsTooltipIfTruncated]',\r\n})\r\nexport class EcabsTooltipIfTruncatedDirective {\r\n @Input() classNameTruncatedTooltip: string;\r\n\r\n constructor(\r\n private readonly matTooltip: MatTooltip,\r\n private readonly elementRef: ElementRef<HTMLElement>,\r\n ) {}\r\n\r\n @HostListener('mouseover')\r\n onMouseOver(): void {\r\n const element =\r\n this.classNameTruncatedTooltip?.length > 0\r\n ? this.elementRef.nativeElement.getElementsByClassName(\r\n this.classNameTruncatedTooltip,\r\n )[0]\r\n : this.elementRef.nativeElement;\r\n this.matTooltip.disabled = element?.scrollWidth <= element?.clientWidth;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsTooltipIfTruncatedDirective } from './tooltip-if-truncated.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsTooltipIfTruncatedDirective],\r\n exports: [EcabsTooltipIfTruncatedDirective],\r\n})\r\nexport class EcabsTooltipIfTruncatedDirectiveModule {}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { MatSelectSearchComponent } from 'ngx-mat-select-search';\r\nimport {\r\n BehaviorSubject,\r\n combineLatest,\r\n debounceTime,\r\n map,\r\n Subscription,\r\n} from 'rxjs';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectOption } from '../base/models/select.models';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-select',\r\n templateUrl: './ecabs-select.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsSelectComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsSelectComponent\r\n extends EcabsElementBaseComponent\r\n implements OnInit, OnChanges, AfterViewInit, OnDestroy\r\n{\r\n @Input() items!: SelectOption[];\r\n @Input() multiple = false;\r\n @Input() useNoneOption = false;\r\n @Input() useOnlyDisabledClass = false;\r\n @Input() searchFieldPlaceholder = 'Search';\r\n @Input() useSearchOption = false;\r\n @Input() useSelectAllOption = false;\r\n @Input() setAllOptionAfterChosenAllItems = true;\r\n @Input() selectAllValue: any = 0;\r\n @Input() noEntriesFoundLabel = 'No matching found';\r\n @Input() noneLabel = 'None';\r\n @Input() allLabel = 'All';\r\n @Input() otherLabel = 'Other';\r\n @Input() othersLabel = 'Others';\r\n @Output() updateFilterItems: EventEmitter<string> =\r\n new EventEmitter<string>();\r\n @Output() selectionChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('allSelected') allSelected!: MatOption;\r\n @ViewChild(MatSelectSearchComponent)\r\n matSelectSearchComponent!: MatSelectSearchComponent;\r\n\r\n val!: any;\r\n filteredItems$: BehaviorSubject<{ label: string; value: any }[]> =\r\n new BehaviorSubject<{ label: string; value: any }[]>([]);\r\n itemFilterCtrl: UntypedFormControl = new UntypedFormControl();\r\n isClearAll = false;\r\n showFilteredAllOption = true;\r\n selectedItems: { label: string; value: any }[] = [];\r\n notSelectedItems: { label: string; value: any }[] = [];\r\n subscriptions = new Subscription();\r\n\r\n get value(): any {\r\n return this.val;\r\n }\r\n\r\n get trigger(): string {\r\n if (this.getAllSelectedChecked()) {\r\n return this.allLabel;\r\n }\r\n const firstChosenValue =\r\n this.val && this.multiple\r\n ? this.getLabel(this.val[0])\r\n : this.getLabel(this.val);\r\n\r\n return this.multiple && this.value?.length > 1\r\n ? `${firstChosenValue} (+${\r\n this.useSelectAllOption && this.allSelected?.selected\r\n ? this.value?.length - 2\r\n : this.value?.length - 1\r\n }\r\n ${this.value?.length === 2 ? this.otherLabel : this.othersLabel})`\r\n : firstChosenValue;\r\n }\r\n\r\n set value(val) {\r\n if (this.val !== val) {\r\n this.val = val;\r\n this.setSelectedItems();\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly changeDetectorRef: ChangeDetectorRef,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { items } = changes;\r\n\r\n if (items && items.currentValue) {\r\n this.filterItems();\r\n\r\n if (\r\n this.multiple &&\r\n this.useSelectAllOption &&\r\n this.allSelected?.selected\r\n ) {\r\n setTimeout(() => {\r\n this.control.patchValue(\r\n [\r\n ...this.filteredItems$.value.map((item) => item.value),\r\n this.selectAllValue,\r\n ],\r\n {\r\n emitEvent: false,\r\n },\r\n );\r\n }, 100);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n if (this.matSelectSearchComponent) {\r\n this.matSelectSearchComponent._showNoEntriesFound$ = combineLatest([\r\n this.itemFilterCtrl.valueChanges,\r\n this.filteredItems$,\r\n ]).pipe(\r\n map(\r\n ([value, items]) =>\r\n this.matSelectSearchComponent.noEntriesFoundLabel &&\r\n value &&\r\n items.length === 0,\r\n ),\r\n );\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.add(\r\n this.itemFilterCtrl.valueChanges\r\n .pipe(debounceTime(200))\r\n .subscribe((value: any) => {\r\n this.filterItems();\r\n this.updateFilterItems.emit(value);\r\n\r\n if (this.isClearAll) {\r\n this.control.patchValue([], { emitEvent: false });\r\n this.isClearAll = false;\r\n }\r\n }),\r\n );\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = () => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n toggleAllSelection(): void {\r\n if (this.allSelected.selected) {\r\n if (this.useSearchOption) {\r\n this.control.patchValue([\r\n ...this.filteredItems$.value.map((item) => item.value),\r\n this.selectAllValue,\r\n ]);\r\n } else {\r\n this.control.patchValue([\r\n ...this.items.map((item) => item.value),\r\n this.selectAllValue,\r\n ]);\r\n }\r\n } else {\r\n this.control.patchValue([]);\r\n this.isClearAll = true;\r\n }\r\n }\r\n\r\n togglePerOne(): void {\r\n setTimeout(() => {\r\n if (this.allSelected) {\r\n if (this.allSelected.selected) {\r\n this.allSelected.deselect();\r\n }\r\n if (\r\n this.setAllOptionAfterChosenAllItems &&\r\n this.control.value.length === this.items.length\r\n ) {\r\n this.allSelected.select();\r\n }\r\n }\r\n });\r\n\r\n this.isClearAll = false;\r\n }\r\n\r\n toggleNone(): void {\r\n this.selectedItems = [];\r\n }\r\n\r\n getAllSelectedChecked(): boolean {\r\n return this.allSelected !== undefined && this.allSelected.selected;\r\n }\r\n\r\n getLabel(val: any): string {\r\n if (\r\n this.useSelectAllOption &&\r\n this.allSelected?.selected &&\r\n this.items &&\r\n this.items.length > 0\r\n ) {\r\n return this.items[0].label;\r\n }\r\n\r\n let item: { label: string; value: any };\r\n\r\n if (val !== undefined) {\r\n if (this.useSearchOption) {\r\n if (this.selectedItems && this.selectedItems.length > 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n item = this.selectedItems.find((item) => item.value === val);\r\n }\r\n } else {\r\n if (this.items && this.items.length > 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n item = this.items.find((item) => item.value === val);\r\n }\r\n }\r\n\r\n return item ? item.label : '';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onSelectionChanged($event: any): void {\r\n this.selectionChange.emit($event);\r\n }\r\n\r\n private filterItems(): void {\r\n this.setSelectedItems();\r\n\r\n if (!this.items) {\r\n return;\r\n }\r\n\r\n // get the search keyword\r\n let search: string = this.itemFilterCtrl.value;\r\n\r\n if (!search || search === '') {\r\n if (this.useSearchOption && !this.items?.length) {\r\n this.filteredItems$.next([...this.selectedItems]);\r\n } else {\r\n this.filteredItems$.next(this.items?.slice());\r\n }\r\n\r\n this.showFilteredAllOption = true;\r\n\r\n return;\r\n }\r\n\r\n search = search.toLowerCase();\r\n\r\n this.showFilteredAllOption =\r\n this.allLabel.toLowerCase().includes(search.toLowerCase()) ||\r\n (this.value instanceof Array &&\r\n this.value.includes(this.selectAllValue)) ||\r\n (!(this.value instanceof Array) && this.value === this.selectAllValue);\r\n this.changeDetectorRef.detectChanges();\r\n\r\n if (this.useSearchOption) {\r\n const filteredItems =\r\n this.notSelectedItems?.length > 0\r\n ? this.notSelectedItems.filter((item) =>\r\n item.label.toLowerCase().includes(search.toLowerCase()),\r\n )\r\n : [];\r\n this.filteredItems$.next([...this.selectedItems, ...filteredItems]);\r\n } else {\r\n this.filteredItems$.next(\r\n this.items?.length > 0\r\n ? this.items.filter((item) =>\r\n item.label.toLowerCase().includes(search.toLowerCase()),\r\n )\r\n : [],\r\n );\r\n }\r\n }\r\n\r\n private setSelectedItems(): void {\r\n if (this.useSearchOption) {\r\n const selectedItems = [];\r\n\r\n if (this.value) {\r\n if (this.value instanceof Array) {\r\n const skipSteps = this.value.includes(this.selectAllValue);\r\n\r\n if (!skipSteps) {\r\n this.value.forEach((value) => {\r\n const index = this.selectedItems?.findIndex(\r\n (selectedItem) => selectedItem.value === value,\r\n );\r\n\r\n if (index !== -1) {\r\n selectedItems.push(this.selectedItems[index]);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n const item = this.items?.find((item) => item.value === value);\r\n\r\n if (item) {\r\n selectedItems.push(item);\r\n }\r\n }\r\n });\r\n\r\n this.selectedItems.forEach((selectedItem) => {\r\n const index = this.value.find(\r\n (value) => selectedItem.value === value,\r\n );\r\n\r\n if (index === -1) {\r\n selectedItems.splice(index, 1);\r\n }\r\n });\r\n }\r\n } else {\r\n const index = this.selectedItems.findIndex(\r\n (selectedItem) => selectedItem.value === this.value,\r\n );\r\n\r\n if (index !== -1) {\r\n selectedItems.push(this.selectedItems[index]);\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n const item = this.items.find((item) => item.value === this.value);\r\n\r\n // eslint-disable-next-line max-depth\r\n if (item) {\r\n selectedItems.push(item);\r\n }\r\n }\r\n }\r\n\r\n this.selectedItems = [...selectedItems];\r\n this.notSelectedItems = this.items?.filter(\r\n (item) =>\r\n this.selectedItems.findIndex(\r\n (selectedItem) => selectedItem.value === item.value,\r\n ) === -1,\r\n );\r\n } else {\r\n this.notSelectedItems = this.items?.slice();\r\n }\r\n }\r\n }\r\n}\r\n","<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 <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 {{ item.label }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</ecabs-element-wrapper>\r\n","import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport {\r\n MAT_SELECT_SCROLL_STRATEGY,\r\n MatSelectModule,\r\n} from '@angular/material/select';\r\nimport { BlockScrollStrategy, Overlay } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { EcabsTooltipIfTruncatedDirectiveModule } from '../base/directives/tooltip-if-truncated.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsSelectComponent } from './ecabs-select.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsSelectComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n NgxMatSelectSearchModule,\r\n ReactiveFormsModule,\r\n EcabsTooltipIfTruncatedDirectiveModule,\r\n ],\r\n exports: [EcabsSelectComponent],\r\n providers: [\r\n {\r\n provide: MAT_SELECT_SCROLL_STRATEGY,\r\n useFactory: scrollFactory,\r\n deps: [Overlay],\r\n },\r\n ],\r\n})\r\nexport class EcabsSelectModule {}\r\n\r\nexport function scrollFactory(overlay: Overlay): () => BlockScrollStrategy {\r\n return () => overlay.scrollStrategies.block();\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-checkbox',\r\n templateUrl: './ecabs-checkbox-toggle.component.html',\r\n styleUrls: ['./ecabs-checkbox-toggle.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsCheckboxToggleComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsCheckboxToggleComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnChanges\r\n{\r\n @Input() override type: 'checkbox' | 'toggle' = 'checkbox';\r\n @Input() text!: string;\r\n @Input() override readonly label: string = '';\r\n @Input() labelPosition: 'before' | 'after' = 'after';\r\n @Input() indeterminate!: boolean;\r\n @Input() checked!: boolean;\r\n //eslint-disable-next-line\r\n @Output() click = new EventEmitter<any>();\r\n @Output() changed = new EventEmitter<any>();\r\n\r\n val!: boolean;\r\n\r\n get value(): boolean {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes ?? {};\r\n\r\n if (type?.currentValue) {\r\n if (!this.labelPosition) {\r\n this.labelPosition = this.type === 'toggle' ? 'before' : 'after';\r\n }\r\n }\r\n }\r\n\r\n change(event): void {\r\n this.onChange(this.value);\r\n this.changed.emit(event);\r\n }\r\n\r\n onClick($event): void {\r\n this.click.emit($event);\r\n }\r\n\r\n onBlur(): void {\r\n setTimeout(() => {\r\n this.onTouch(this.value);\r\n });\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = !!value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <mat-checkbox\r\n (change)=\"change($event)\"\r\n (click)=\"onClick($event)\"\r\n (blur)=\"onBlur()\"\r\n [checked]=\"checked\"\r\n [indeterminate]=\"indeterminate\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n [labelPosition]=\"labelPosition\"\r\n [ngClass]=\"{ 'indeterminate': indeterminate }\"\r\n *ngSwitchCase=\"'checkbox'\"\r\n >\r\n {{ text }}\r\n </mat-checkbox>\r\n\r\n <mat-slide-toggle\r\n (change)=\"change($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [labelPosition]=\"labelPosition\"\r\n *ngSwitchCase=\"'toggle'\"\r\n >{{ text }}</mat-slide-toggle\r\n >\r\n </ng-container>\r\n</ecabs-element-wrapper>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\n\r\nimport { filter, Subject } from 'rxjs';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectValue } from '../base/models/element.models';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-select-v2',\r\n templateUrl: './ecabs-select-v2.component.html',\r\n styleUrls: ['./ecabs-select-v2.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: EcabsSelectV2Component,\r\n },\r\n ],\r\n})\r\nexport class EcabsSelectV2Component\r\n extends EcabsElementBaseComponent\r\n implements AfterViewInit, ControlValueAccessor, OnChanges, OnInit\r\n{\r\n @ViewChild(NgSelectComponent, { static: true })\r\n ngSelect: NgSelectComponent;\r\n\r\n @Input()\r\n appearance: 'underline' | 'outline' = 'outline';\r\n\r\n @Input()\r\n appendTo = '';\r\n\r\n @Input()\r\n items: SelectValue[] = [];\r\n\r\n @Input()\r\n bindLabel = 'label';\r\n\r\n @Input()\r\n bindValue = 'value';\r\n\r\n @Input()\r\n editableSearchTerm = false;\r\n\r\n @Input()\r\n searchable: boolean;\r\n\r\n @Input()\r\n clearable = true;\r\n\r\n @Input()\r\n multiple = false;\r\n\r\n @Input()\r\n notFoundText: string;\r\n\r\n @Input()\r\n hideSelected: boolean;\r\n\r\n @Input()\r\n clearOnBackspace = false;\r\n\r\n @Input()\r\n clearSearchOnAdd: boolean;\r\n\r\n @Input()\r\n trackByFn: any;\r\n\r\n @Input()\r\n minLength: number;\r\n\r\n @Input()\r\n searchPlaceholder: string;\r\n\r\n @Input()\r\n typeahead: Subject<string>;\r\n\r\n @Input()\r\n closeOnSelect = true;\r\n\r\n @Input()\r\n clearAllText: string;\r\n\r\n @Input()\r\n selectAllLabel: string;\r\n\r\n @Input()\r\n otherLabel = 'Other';\r\n\r\n @Input()\r\n othersLabel = 'Others';\r\n\r\n touched = false;\r\n val: string | number;\r\n isOpen: boolean;\r\n groupByKey = 'selectAllIdentifier';\r\n selectedMulti = [];\r\n itemsList: SelectValue[];\r\n isTypeAhead: boolean;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initTrackBy();\r\n\r\n this.placeholder = this.placeholder || this.label;\r\n this.notFoundText = 'No data found';\r\n this.selectAllLabel = 'All';\r\n this.showLocalLoading = false; // hide default loading icon in ElementWrapper\r\n this.clearAllText = 'Clear all';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n\r\n this.typeahead\r\n ?.pipe(\r\n takeUntilDestroyed(this.destroyRef),\r\n filter((term) => !!term),\r\n )\r\n .subscribe((val) => {\r\n this.isTypeAhead = !!val;\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { items, multiple } = changes ?? {};\r\n\r\n if (items?.currentValue) {\r\n this.itemsList = this.items;\r\n this.selectAllFn(this.itemsList);\r\n }\r\n\r\n if (multiple?.currentValue) {\r\n this.closeOnSelect = this.closeOnSelect || false;\r\n this.clearSearchOnAdd = true;\r\n }\r\n }\r\n\r\n writeValue(value: number): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouched: any): void {\r\n this.onTouch = onTouched;\r\n }\r\n\r\n markAsTouched(): void {\r\n if (!this.touched) {\r\n this.onTouch();\r\n this.touched = true;\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n\r\n onTouch: any = () => {};\r\n\r\n onBlur(): void {\r\n this.onTouch(this.value);\r\n\r\n if (\r\n this.isTypeAhead &&\r\n !this.ngSelect.isOpen &&\r\n this.selectedMulti.length\r\n ) {\r\n this.itemsList = this.selectedMulti;\r\n }\r\n }\r\n\r\n selectAllFn(items: SelectValue[]): void {\r\n if (!!items?.length && this.multiple && !this.typeahead) {\r\n const allSelect = (elements: SelectValue[]): void => {\r\n elements.forEach((element: SelectValue) => {\r\n element[this.groupByKey] = '';\r\n });\r\n };\r\n\r\n allSelect(items);\r\n }\r\n }\r\n\r\n changed(event: SelectValue[]): void {\r\n if (this.multiple) {\r\n if (!event?.length) {\r\n this.itemsList = this.items;\r\n }\r\n\r\n this.selectedMulti = event;\r\n const valuesToCheck = new Set(event.map(({ value }) => value));\r\n const filteredList =\r\n this.items?.filter(({ value: item }) => !valuesToCheck.has(item)) || [];\r\n this.itemsList = [...this.selectedMulti, ...filteredList];\r\n\r\n if (event?.length === this.itemsList?.length) {\r\n this.ngSelect.close();\r\n }\r\n\r\n this.ngSelect.focus();\r\n }\r\n }\r\n\r\n protected initTrackBy() {\r\n this.trackByFn = (item: SelectValue) => {\r\n return item?.value;\r\n };\r\n }\r\n}\r\n","<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-container *ngIf=\"!typeahead\">\r\n <ng-option *ngFor=\"let item of itemsList\" [value]=\"item?.value\">\r\n {{ item?.label }}\r\n </ng-option>\r\n </ng-container>\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=\"!!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 {{ item?.['label'] }} <span *ngIf=\"items.length > 1\">\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\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\r\n <ng-template ng-option-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"item$?.['label']\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsCheckboxToggleComponent } from './ecabs-checkbox-toggle.component';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n@NgModule({\r\n declarations: [EcabsCheckboxToggleComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n FormsModule,\r\n ],\r\n exports: [EcabsCheckboxToggleComponent],\r\n})\r\nexport class EcabsCheckboxToggleModule {}\r\n","import { MatSelectModule } from '@angular/material/select';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsSelectV2Component } from './ecabs-select-v2.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { EcabsCheckboxToggleModule } from '../ecabs-checkbox-toggle/ecabs-checkbox-toggle.module';\r\nimport { EcabsLoadingModule } from '../ecabs-loading/ecabs-loading.module';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\n@NgModule({\r\n declarations: [EcabsSelectV2Component],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n EcabsLoadingModule,\r\n EcabsCheckboxToggleModule,\r\n MatCheckboxModule,\r\n ],\r\n exports: [EcabsSelectV2Component],\r\n})\r\nexport class EcabsSelectV2Module {}\r\n","import { AfterViewInit, Component, Injector, Input } from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\n\r\n@Component({\r\n selector: 'ecabs-textarea',\r\n templateUrl: './ecabs-textarea.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsTextareaComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsTextareaComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input()\r\n rows!: number;\r\n\r\n val!: string;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = (): void => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = (): void => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <textarea\r\n class=\"form-field__textarea\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"\r\n [rows]=\"rows\"\r\n >\r\n </textarea>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTextareaComponent } from './ecabs-textarea.component';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [EcabsTextareaComponent],\r\n imports: [CommonModule, ElementWrapperModule, FormsModule],\r\n exports: [EcabsTextareaComponent],\r\n})\r\nexport class EcabsTextAreaModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UnsubscribeService {\r\n private issued = false;\r\n private unsubscribe$: Subject<void>;\r\n\r\n subscription(): Subject<void> {\r\n if (!this.issued) {\r\n this.issued = true;\r\n this.unsubscribe$ = new Subject<void>();\r\n }\r\n\r\n return this.unsubscribe$;\r\n }\r\n\r\n destroy(): void {\r\n this.unsubscribe$?.next();\r\n this.unsubscribe$?.complete();\r\n this.issued = false;\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { EcabsDatePickerTranslations } from '../models/ecabs-date-picker-translations.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EcabsDatePickerHeaderService {\r\n private defaultTranslations: EcabsDatePickerTranslations = {\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n selectDateLabel: 'Select date',\r\n selectDateRangeLabel: 'Select date range',\r\n startDatePlaceholder: 'Start date',\r\n selectDateTimeRangeLabel: 'Applicable times',\r\n endDatePlaceholder: 'End date',\r\n selectDateTimeLabel: 'Select date and time',\r\n all: 'All',\r\n from: 'From',\r\n to: 'To',\r\n };\r\n\r\n private _config: BehaviorSubject<EcabsDatePickerTranslations> =\r\n new BehaviorSubject<EcabsDatePickerTranslations>(this.defaultTranslations);\r\n\r\n setConfig(config: EcabsDatePickerTranslations): void {\r\n this._config.next(config);\r\n }\r\n\r\n getConfig(): Observable<EcabsDatePickerTranslations> {\r\n return this._config.asObservable();\r\n }\r\n\r\n updateConfig(configUpdate: EcabsDatePickerTranslations): void {\r\n this._config.next({\r\n ...this._config.getValue(),\r\n ...configUpdate,\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { MatCalendar } from '@angular/material/datepicker';\r\nimport { format } from 'date-fns';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport enGbLocale from 'date-fns/locale/en-GB';\r\n\r\n@Component({\r\n selector: 'ecabs-picker-header',\r\n templateUrl: './ecabs-picker-header.component.html',\r\n styleUrls: ['./ecabs-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [UnsubscribeService],\r\n})\r\nexport class EcabsPickerHeaderComponent<D> implements OnDestroy, OnInit {\r\n private unsubscribe$ = new Subject<void>();\r\n private yearsPerPage = 24;\r\n private translationConfig: EcabsDatePickerTranslations;\r\n\r\n get periodLabel(): string {\r\n if (this.calendar.currentView === 'month') {\r\n return format(\r\n new Date(this.calendar.activeDate.toString()),\r\n `MMMM yyyy`,\r\n {\r\n locale: this.translationConfig?.locale ?? enGbLocale,\r\n },\r\n );\r\n }\r\n\r\n return this.dateAdapter?.getYearName(this.calendar?.activeDate);\r\n }\r\n\r\n constructor(\r\n private readonly calendar: MatCalendar<D>,\r\n private readonly dateAdapter: DateAdapter<D>,\r\n private readonly cdr: ChangeDetectorRef,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n calendar.stateChanges\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => cdr.markForCheck());\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n previousClicked(): void {\r\n this.calendar.activeDate =\r\n this.calendar.currentView === 'month'\r\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1)\r\n : this.dateAdapter.addCalendarYears(\r\n this.calendar.activeDate,\r\n this.calendar.currentView === 'year' ? -1 : -this.yearsPerPage,\r\n );\r\n }\r\n\r\n nextClicked(): void {\r\n this.calendar.activeDate =\r\n this.calendar.currentView === 'month'\r\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1)\r\n : this.dateAdapter.addCalendarYears(\r\n this.calendar.activeDate,\r\n this.calendar.currentView === 'year' ? 1 : this.yearsPerPage,\r\n );\r\n }\r\n\r\n currentPeriodClicked(): void {\r\n this.calendar.currentView =\r\n this.calendar.currentView === 'month' ? 'multi-year' : 'month';\r\n }\r\n}\r\n","<div class=\"header\">\r\n <button mat-icon-button (click)=\"previousClicked()\">\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <button mat-flat-button (click)=\"currentPeriodClicked()\">\r\n <span >{{ periodLabel }}</span>\r\n </button>\r\n\r\n <button mat-icon-button (click)=\"nextClicked()\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-date-picker-header',\r\n templateUrl: './ecabs-date-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsDatePickerHeaderComponent {\r\n @Input() selectDateLabel: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{ selectDateLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateLabel}}\r\n</div>\r\n<ecabs-picker-header></ecabs-picker-header>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-date-picker-actions',\r\n templateUrl: './ecabs-date-picker-actions.component.html',\r\n styleUrls: ['./ecabs-date-picker-actions.component.scss'],\r\n})\r\nexport class EcabsDatePickerActionsComponent {\r\n @Input()\r\n cancelLabel = 'Cancel';\r\n\r\n @Input()\r\n applyLabel = 'Apply';\r\n\r\n @Output()\r\n readonly apply: EventEmitter<void> = new EventEmitter();\r\n}\r\n","<div class=\"grid grid-cols-2 gap-4\">\r\n <ecabs-buttons color=\"primary\"\r\n [style]=\"'stroked'\"\r\n matDatepickerCancel>\r\n {{ cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons color=\"primary\"\r\n matDatepickerApply\r\n (click)=\"apply.emit()\"\r\n (keydown.enter)=\"apply.emit()\">\r\n {{ applyLabel }}\r\n </ecabs-buttons>\r\n</div>\r\n","import { format, isEqual, isValid } from 'date-fns';\r\nimport { takeUntil } from 'rxjs';\r\nimport Holidays from 'date-holidays';\r\n\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport {\r\n EcabsDatePickerHolidayOptions,\r\n EcabsDatePickerTranslations,\r\n} from '../base/models/ecabs-date-picker-translations.models';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\n\r\nimport { EcabsDatePickerHeaderComponent } from './components/ecabs-date-picker-header/ecabs-date-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-picker',\r\n templateUrl: './ecabs-date-picker.component.html',\r\n styleUrls: ['./ecabs-date-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDatePickerComponent,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDatePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() excludeHolidays: boolean;\r\n @Input() excludeWeekends: boolean;\r\n @Input() specificDates: Date[];\r\n @Input() holidayOptions: EcabsDatePickerHolidayOptions;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n\r\n val: string | number;\r\n header = EcabsDatePickerHeaderComponent;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val: string | number) {\r\n if (this.val !== val && (!val || isValid(new Date(val)))) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n isDateNotHoliday(date: Date): boolean {\r\n const { countryCode, timeZoneOffset } = this.holidayOptions ?? {};\r\n\r\n if (countryCode && timeZoneOffset) {\r\n const holiday = new Holidays(countryCode.toUpperCase());\r\n\r\n return !holiday.isHoliday(\r\n `${format(date, 'yyyy-MM-dd')}T00:00:00${timeZoneOffset}`,\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n filterDateRange = (date: Date): boolean => {\r\n let result = true;\r\n\r\n if (isValid(new Date(date))) {\r\n const day = date?.getDay();\r\n\r\n if (this.excludeWeekends) {\r\n result = result && day !== 0 && day !== 6;\r\n }\r\n\r\n if (this.excludeHolidays) {\r\n result = result && this.isDateNotHoliday(date);\r\n }\r\n\r\n if (this.specificDates?.length > 0) {\r\n const specificDates = this.specificDates;\r\n if (specificDates && specificDates.length > 0) {\r\n const index = specificDates.findIndex((specificDate) =>\r\n isEqual(date, specificDate),\r\n );\r\n result = result && index === -1;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <input\r\n class=\"form-field__input date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix [for]=\"picker\"\r\n class=\"text-gray-500\"\r\n >\r\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <ecabs-date-picker-actions\r\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n >\r\n </ecabs-date-picker-actions>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-time-date-picker-header',\r\n templateUrl: './ecabs-date-time-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-time-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsDateTimePickerHeaderComponent {\r\n @Input() headerLabel?: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{ headerLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateTimeLabel }}\r\n</div>\r\n<ecabs-picker-header></ecabs-picker-header>\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsNumberBorder]',\r\n})\r\nexport class EcabsNumberBorderDirective {\r\n @Input() maxValue: number;\r\n @Input() minValue: number;\r\n\r\n inputElement: HTMLInputElement;\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e): void {\r\n const value = +e.target.value;\r\n\r\n if (isNaN(value)) {\r\n this.inputElement.value = this.sanitizeInput(e.target.value);\r\n\r\n return;\r\n }\r\n\r\n if (this.maxValue) {\r\n if (value > this.maxValue) {\r\n this.inputElement.value = this.sanitizeInput(this.maxValue.toString());\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (this.minValue && this.minValue !== value) {\r\n if (value < this.minValue) {\r\n this.inputElement.value = this.sanitizeInput(this.minValue.toString());\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n private sanitizeInput(input: string): string {\r\n let result = '';\r\n //eslint-disable-next-line\r\n const regex = new RegExp(`/\\d+/g`);\r\n result = input.replace(regex, '');\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n\r\n if (maxLength > 0) {\r\n const allowedLength = maxLength - this.inputElement.value.length;\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","const maxValueMonth = [31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\nconst formatOrder = ['yyyy', 'yy', 'mm', 'dd', 'HH', 'MM', 'SS'];\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nexport function createAutoCorrectedDatePipe(\r\n dateFormat = 'dd mm yyyy',\r\n { minYear = 1, maxYear = 9999 } = {},\r\n) {\r\n const dateFormatArray = dateFormat\r\n .split(/[^dmyHMS]+/)\r\n .sort((a, b) => formatOrder.indexOf(a) - formatOrder.indexOf(b));\r\n\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n return function (conformedValue) {\r\n const indexesOfPipedChars = [];\r\n const maxValue = {\r\n dd: 31,\r\n mm: 12,\r\n yy: 99,\r\n yyyy: maxYear,\r\n HH: 23,\r\n MM: 59,\r\n SS: 59,\r\n };\r\n const minValue = {\r\n dd: 1,\r\n mm: 1,\r\n yy: 0,\r\n yyyy: minYear,\r\n HH: 0,\r\n MM: 0,\r\n SS: 0,\r\n };\r\n const conformedValueArr = conformedValue.split('');\r\n\r\n // Check first digit\r\n dateFormatArray.forEach((format) => {\r\n const position = dateFormat.indexOf(format);\r\n const maxFirstDigit = parseInt(\r\n maxValue[format].toString().substr(0, 1),\r\n 10,\r\n );\r\n\r\n if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {\r\n conformedValueArr[position + 1] = conformedValueArr[position];\r\n conformedValueArr[position] = 0;\r\n indexesOfPipedChars.push(position);\r\n }\r\n });\r\n\r\n // Check for invalid date\r\n let month = 0;\r\n const isInvalid = dateFormatArray.some((format) => {\r\n const position = dateFormat.indexOf(format);\r\n const length = format.length;\r\n const textValue = conformedValue\r\n .substr(position, length)\r\n .replace(/\\D/g, '');\r\n const value = parseInt(textValue, 10);\r\n\r\n if (format === 'mm') {\r\n // tslint:disable-next-line: strict-boolean-expressions\r\n month = value || 0;\r\n }\r\n\r\n const maxValueForFormat =\r\n format === 'dd' ? maxValueMonth[month] : maxValue[format];\r\n\r\n if (format === 'yyyy' && (minYear !== 1 || maxYear !== 9999)) {\r\n const scopedMaxValue = parseInt(\r\n maxValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n const scopedMinValue = parseInt(\r\n minValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n\r\n return value < scopedMinValue || value > scopedMaxValue;\r\n }\r\n\r\n if (format === 'HH' || format === 'MM') {\r\n const scopedMaxValue = parseInt(\r\n maxValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n const scopedMinValue = parseInt(\r\n minValue[format].toString().substring(0, textValue.length),\r\n 10,\r\n );\r\n\r\n return value < scopedMinValue || value > scopedMaxValue;\r\n }\r\n\r\n return (\r\n value > maxValueForFormat ||\r\n (textValue.length === length && value < minValue[format])\r\n );\r\n });\r\n\r\n if (isInvalid) {\r\n return false;\r\n }\r\n\r\n return {\r\n value: conformedValueArr.join(''),\r\n indexesOfPipedChars,\r\n };\r\n };\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';\r\nimport { createAutoCorrectedDatePipe } from '../consts/date-mask.consts';\r\n\r\n@Directive({\r\n selector: '[ecabsMaskDate]',\r\n})\r\nexport class EcabsMaskDateDirective implements OnInit, OnDestroy {\r\n @Input() isDateTimeMask = false;\r\n @Input() considerSeconds = false;\r\n\r\n maskedInputController;\r\n mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/]; // dd/mm/yyyy\r\n maskDateTime = [\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n ',',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ]; // dd/mm/yyyy, hh:mm\r\n maskDateTimeWithSeconds = [\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n '/',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n ',',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ]; // dd/mm/yyyy, hh:mm:ss\r\n config: any;\r\n\r\n constructor(private readonly element: ElementRef) {}\r\n\r\n @HostListener('ngModelChange', ['$event']) onNgModelChange(value): void {\r\n this.config.showMask = true;\r\n\r\n if (!this.containsNumber(value.toString())) {\r\n this.config.showMask = false;\r\n this.maskedInputController.textMaskInputElement.update('');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.config = {\r\n inputElement: this.element.nativeElement,\r\n guide: true,\r\n showMask: true,\r\n pipe: this.isDateTimeMask\r\n ? this.considerSeconds\r\n ? createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM:SS')\r\n : createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM')\r\n : createAutoCorrectedDatePipe('dd/mm/yyyy'),\r\n keepCharPositions: true,\r\n mask: this.isDateTimeMask\r\n ? this.considerSeconds\r\n ? this.maskDateTimeWithSeconds\r\n : this.maskDateTime\r\n : this.mask,\r\n };\r\n\r\n this.maskedInputController = textMask.maskInput(this.config);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.maskedInputController?.destroy();\r\n }\r\n\r\n private containsNumber(value: string): boolean {\r\n // Check if the string contains any digit between 0 and 9\r\n return /\\d/.test(value);\r\n }\r\n}\r\n","import {\r\n format,\r\n isValid,\r\n parse,\r\n setHours,\r\n setMinutes,\r\n setSeconds,\r\n} from 'date-fns';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { DecimalPipe } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDateTimePickerHeaderComponent } from './components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-time-picker',\r\n templateUrl: './ecabs-date-time-picker.component.html',\r\n styleUrls: ['./ecabs-date-time-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDateTimePickerComponent,\r\n multi: true,\r\n },\r\n DecimalPipe,\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDateTimePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() hideSeconds = true;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() applyMinDateAuto = true;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n\r\n _hours = '12';\r\n _minutes = '00';\r\n _seconds = '00';\r\n _date: Date;\r\n _pickerValue: string;\r\n val: Date;\r\n header = EcabsDateTimePickerHeaderComponent;\r\n maxValueHours = 23;\r\n maxValueMinutesSeconds = 59;\r\n preventCallSetterPickerValue = false;\r\n runTimeout = false;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): Date {\r\n return this.val;\r\n }\r\n\r\n get pickerValue(): string {\r\n return this._pickerValue;\r\n }\r\n\r\n get hours(): string {\r\n return this._hours;\r\n }\r\n\r\n get minutes(): string {\r\n return this._minutes;\r\n }\r\n\r\n get seconds(): string {\r\n return this._seconds;\r\n }\r\n\r\n set hours(value: string) {\r\n if (value !== undefined && this._hours !== value) {\r\n this._hours = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set minutes(value: string) {\r\n if (value !== undefined && this._minutes !== value) {\r\n this._minutes = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set seconds(value: string) {\r\n if (value !== undefined && this._seconds !== value) {\r\n this._seconds = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set value(val) {\r\n if (val && this.val?.getTime() !== new Date(val).getTime()) {\r\n if (!this.preventCallSetterPickerValue) {\r\n this.pickerValue = this.formatDateTime(val);\r\n }\r\n this.preventCallSetterPickerValue = false;\r\n }\r\n }\r\n\r\n set pickerValue(val: string) {\r\n if (val) {\r\n const date = parse(\r\n val.replace('_', ''),\r\n this.hideSeconds ? `dd/MM/yyyy, HH:mm` : `dd/MM/yyyy, HH:mm:ss`,\r\n new Date(),\r\n );\r\n\r\n if (isValid(date) && this._pickerValue !== val) {\r\n if (this.minDate && date < this.minDate && this.applyMinDateAuto) {\r\n this.setValues(this.minDate);\r\n this._pickerValue = val;\r\n this.preventCallSetterPickerValue = true;\r\n this.value = this.minDate;\r\n this.runTimeout = true;\r\n this.refreshPickerValue(this.minDate);\r\n\r\n return;\r\n }\r\n\r\n if (this.maxDate && date > this.maxDate) {\r\n this.setValues(this.maxDate);\r\n this._pickerValue = val;\r\n this.preventCallSetterPickerValue = true;\r\n this.value = this.maxDate;\r\n this.runTimeout = true;\r\n this.refreshPickerValue(this.maxDate);\r\n\r\n return;\r\n }\r\n\r\n this.runTimeout = false;\r\n this._pickerValue = val;\r\n this.preventCallSetterPickerValue = true;\r\n this.value = date;\r\n this.setValues(date);\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly decimalPipe: DecimalPipe,\r\n private readonly cd: ChangeDetectorRef,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n\r\n setTimeout(() => {\r\n const controlDate = this.control.value;\r\n\r\n if (controlDate) {\r\n this.setValues(controlDate);\r\n }\r\n }, 10);\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n onApply(): void {\r\n if (this._date && this._seconds && this._minutes && this._hours) {\r\n const date = setSeconds(\r\n setMinutes(\r\n setHours(new Date(this._date), +this._hours),\r\n +this._minutes,\r\n ),\r\n +this._seconds,\r\n );\r\n this.value = date;\r\n }\r\n }\r\n\r\n refreshPickerValue(date: Date): void {\r\n setTimeout(() => {\r\n if (this.runTimeout) {\r\n this._pickerValue = this.formatDateTime(date);\r\n this.cd.detectChanges();\r\n }\r\n }, 3000);\r\n }\r\n\r\n private formatDateTime(date: Date): string {\r\n let result = '';\r\n\r\n if (date && isValid(new Date(date))) {\r\n result = this.hideSeconds\r\n ? format(new Date(date), `dd/MM/yyyy, HH:mm`)\r\n : format(new Date(date), `dd/MM/yyyy, HH:mm:ss`);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private roundNumber(num: number): string | null {\r\n return this.decimalPipe.transform(num, '2.0-0') ?? '00';\r\n }\r\n\r\n private setValues(date: Date): void {\r\n this.onChange(date);\r\n this.onTouch(date);\r\n this._date = date;\r\n\r\n if (date && isValid(date)) {\r\n this.hours = date.getHours().toString();\r\n this.minutes = date.getMinutes().toString();\r\n this.seconds = date.getSeconds().toString();\r\n }\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [matDatepicker]=\"picker\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\r\n <mat-datepicker-actions>\r\n <div class=\"actions\">\r\n <div class=\"time--inputs\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hours\"\r\n [value]=\"_hours\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hours\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutes\"\r\n [(ngModel)]=\"minutes\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n\r\n <ng-container *ngIf=\"!hideSeconds\">\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"seconds\"\r\n [(ngModel)]=\"seconds\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </ng-container>\r\n </div>\r\n\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n ecabsMaskDate\r\n [isDateTimeMask]=\"true\"\r\n [considerSeconds]=\"!hideSeconds\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <button mat-icon-button class=\"datepicker-ui__toggle text-gray-500\"\r\n (click)=\"picker.open()\">\r\n <mat-icon>calendar_today</mat-icon>\r\n </button>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsMaskDateDirective } from './date-mask.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsMaskDateDirective],\r\n exports: [EcabsMaskDateDirective],\r\n})\r\nexport class EcabsMaskDateDirectiveModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsNumberBorderDirective } from './number-border.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsNumberBorderDirective],\r\n exports: [EcabsNumberBorderDirective],\r\n})\r\nexport class EcabsNumberBorderDirectiveModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPickerHeaderComponent } from './ecabs-picker-header.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsPickerHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n ],\r\n exports: [EcabsPickerHeaderComponent],\r\n})\r\nexport class EcabsPickerHeaderModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsDatePickerActionsComponent } from './ecabs-date-picker-actions.component';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\n\r\n@NgModule({\r\n declarations: [EcabsDatePickerActionsComponent],\r\n exports: [EcabsDatePickerActionsComponent],\r\n imports: [CommonModule, EcabsButtonsModule, MatDatepickerModule],\r\n})\r\nexport class EcabsDatePickerActionsModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsMaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { EcabsNumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDateTimePickerHeaderComponent } from './components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component';\r\nimport { EcabsDateTimePickerComponent } from './ecabs-date-time-picker.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [\r\n EcabsDateTimePickerComponent,\r\n EcabsDateTimePickerHeaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsButtonsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsNumberBorderDirectiveModule,\r\n EcabsMaskDateDirectiveModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsDateTimePickerComponent, EcabsDateTimePickerHeaderComponent],\r\n})\r\nexport class EcabsDatetimePickerModule {}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-date-range-picker-header',\r\n templateUrl: './ecabs-date-range-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-range-picker-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsDateRangePickerHeaderComponent {\r\n @Input() selectDateRangeLabel: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{selectDateRangeLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateRangeLabel}}\r\n</div>\r\n<ecabs-picker-header></ecabs-picker-header>\r\n","import { takeUntil } from 'rxjs';\r\n\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDateRangePickerHeaderComponent } from './components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-range-picker',\r\n templateUrl: './ecabs-date-range-picker.component.html',\r\n styleUrls: ['./ecabs-date-range-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDateRangePickerComponent,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDateRangePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() startDatePlaceholder: string;\r\n @Input() endDatePlaceholder: string;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n val: {\r\n dateFrom: string;\r\n dateTo: string;\r\n };\r\n\r\n header = EcabsDateRangePickerHeaderComponent;\r\n _dateFrom: string;\r\n _dateTo: string;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): {\r\n dateFrom: string;\r\n dateTo: string;\r\n } {\r\n return this.val;\r\n }\r\n\r\n get dateFrom(): string {\r\n return this._dateFrom;\r\n }\r\n\r\n get dateTo(): string {\r\n return this._dateTo;\r\n }\r\n\r\n //eslint-disable-next-line\r\n set value(val: { dateFrom: string; dateTo: string }) {\r\n if (val !== undefined) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n //eslint-disable-next-line\r\n set dateFrom(val: string) {\r\n if (val !== undefined && this._dateFrom !== val) {\r\n this._dateFrom = val;\r\n }\r\n }\r\n\r\n //eslint-disable-next-line\r\n set dateTo(val: string) {\r\n if (val !== undefined && this._dateTo !== val) {\r\n this._dateTo = val;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n setTimeout(() => {\r\n this.dateFrom = this.value.dateFrom;\r\n this.dateTo = this.value.dateTo;\r\n });\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n onApply(): void {\r\n if (this.dateFrom && this.dateTo) {\r\n this.value = {\r\n dateFrom: this.dateFrom,\r\n dateTo: this.dateTo,\r\n };\r\n }\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <mat-date-range-input [rangePicker]=\"picker\" (blur)=\"onTouch()\">\r\n <input matStartDate class=\"form-field__input\" [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\" [value]=\"dateFrom\" [(ngModel)]=\"dateFrom\" />\r\n <input matEndDate class=\"form-field__input\" [placeholder]=\"endDatePlaceholder ?? translationConfig?.endDatePlaceholder\" [value]=\"dateTo\" [(ngModel)]=\"dateTo\" />\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon class=\"text-gray-500\">calendar_today</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\">\r\n <mat-datepicker-actions>\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </mat-datepicker-actions>\r\n </mat-date-range-picker>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsMaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { EcabsNumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDateRangePickerHeaderComponent } from './components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component';\r\nimport { EcabsDateRangePickerComponent } from './ecabs-date-range-picker.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nexport const MATERIAL_DATETIMEPICKER_FORMATS = {\r\n parse: {\r\n dateInput: 'DD/MMM/YYYY HH:mm:SS',\r\n },\r\n display: {\r\n dateInput: 'DD/MMM/YYYY HH:mm:SS',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'DD/MMM/YYYY HH:mm:SS',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n EcabsDateRangePickerComponent,\r\n EcabsDateRangePickerHeaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsButtonsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsNumberBorderDirectiveModule,\r\n EcabsMaskDateDirectiveModule,\r\n MatInputModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsDateRangePickerComponent, EcabsDateRangePickerHeaderComponent],\r\n})\r\nexport class EcabsDateRangeModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDatePickerHeaderComponent } from './components/ecabs-date-picker-header/ecabs-date-picker-header.component';\r\nimport { EcabsDatePickerComponent } from './ecabs-date-picker.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsDatePickerComponent, EcabsDatePickerHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsDatePickerComponent, EcabsDatePickerHeaderComponent],\r\n})\r\nexport class EcabsDatePickerModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../../../base/services/ecabs-date-picker-translations.service';\r\n\r\n@Component({\r\n selector: 'ecabs-date-time-range-picker-header',\r\n templateUrl: './ecabs-date-time-range-picker-header.component.html',\r\n styleUrls: ['./ecabs-date-time-range-picker-header.component.scss'],\r\n})\r\nexport class EcabsDateTimeRangePickerHeaderComponent {\r\n @Input() headerLabel: string;\r\n\r\n constructor(\r\n public readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n ) {}\r\n}\r\n","<div class=\"select-date-label text-xl font-semibold\">\r\n {{ headerLabel ?? (ecabsDatePickerHeaderService.getConfig() | async)?.selectDateTimeRangeLabel}}\r\n </div>\r\n <ecabs-picker-header ></ecabs-picker-header>\r\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';\r\n\r\n@Directive({\r\n selector: '[ecabsTime]',\r\n})\r\nexport class EcabsMaskTimeDirective implements OnInit, OnDestroy {\r\n @Input() timeRange?: boolean = false;\r\n @Input() all: string;\r\n\r\n maskedInputController;\r\n maskTimeRange = [\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ' ',\r\n '-',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ];\r\n maskTime = [/\\d/, /\\d/, ':', /\\d/, /\\d/];\r\n\r\n constructor(private readonly element: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n const all = this.all;\r\n const timeRange = this.timeRange;\r\n this.maskedInputController = textMask.maskInput({\r\n inputElement: this.element.nativeElement,\r\n guide: true,\r\n showMask: false,\r\n keepCharPositions: true,\r\n mask: timeRange ? this.maskTimeRange : this.maskTime,\r\n pipe: function (conformedValue) {\r\n if (conformedValue === (timeRange ? '__:__ - __:__' : '__:__')) {\r\n return all;\r\n }\r\n\r\n return conformedValue;\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.maskedInputController.destroy();\r\n }\r\n}\r\n","import { takeUntil } from 'rxjs';\r\n\r\nimport { DecimalPipe } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';\r\n\r\n@Component({\r\n selector: 'ecabs-date-time-range-picker',\r\n templateUrl: './ecabs-date-time-range-picker.component.html',\r\n styleUrls: ['./ecabs-date-time-range-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsDateTimeRangePickerComponent,\r\n multi: true,\r\n },\r\n DecimalPipe,\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsDateTimeRangePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() all: string;\r\n @Input() from: string;\r\n @Input() to: string;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n\r\n _hoursFrom = '12';\r\n _minutesFrom = '00';\r\n _hoursTo = '12';\r\n _minutesTo = '00';\r\n _seconds = '00';\r\n _date: string;\r\n _pickerValue: string;\r\n val: string;\r\n header = EcabsDateTimeRangePickerHeaderComponent;\r\n maxValueHours = 23;\r\n maxValueMinutesSeconds = 59;\r\n controlDate: UntypedFormControl;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n get pickerValue(): string {\r\n return this._pickerValue;\r\n }\r\n\r\n get hoursFrom(): string {\r\n return this._hoursFrom;\r\n }\r\n\r\n get minutesFrom(): string {\r\n return this._minutesFrom;\r\n }\r\n\r\n get hoursTo(): string {\r\n return this._hoursTo;\r\n }\r\n\r\n get minutesTo(): string {\r\n return this._minutesTo;\r\n }\r\n\r\n get seconds(): string {\r\n return this._seconds;\r\n }\r\n\r\n get allLabel(): string {\r\n return this.all ?? this.translationConfig?.all;\r\n }\r\n\r\n set hoursFrom(value: string) {\r\n if (value !== undefined && this._hoursFrom !== value) {\r\n this._hoursFrom = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set minutesFrom(value: string) {\r\n if (value !== undefined && this._minutesFrom !== value) {\r\n this._minutesFrom = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set hoursTo(value: string) {\r\n if (value !== undefined && this._hoursTo !== value) {\r\n this._hoursTo = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set minutesTo(value: string) {\r\n if (value !== undefined && this._minutesTo !== value) {\r\n this._minutesTo = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set seconds(value: string) {\r\n if (value !== undefined && this._seconds !== value) {\r\n this._seconds = this.roundNumber(+value);\r\n }\r\n }\r\n\r\n set value(val) {\r\n if (val && this.val !== val) {\r\n this.val = val;\r\n this.pickerValue = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n set pickerValue(val: string) {\r\n if (val) {\r\n this._pickerValue = val;\r\n this.value = val;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly decimalPipe: DecimalPipe,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n\r\n setTimeout(() => {\r\n this.controlDate = this.control;\r\n const controlDate = this.control.value ? this.control.value : '';\r\n\r\n if (controlDate) {\r\n this.setValues(controlDate);\r\n }\r\n }, 10);\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n keydownChange(e: any): void {\r\n if (e?.target.value === this.allLabel) {\r\n const val = '';\r\n this.val = val;\r\n this._pickerValue = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n onApply(): void {\r\n if (\r\n this._minutesFrom &&\r\n this._hoursFrom &&\r\n this._minutesTo &&\r\n this._hoursTo\r\n ) {\r\n this._hoursFrom = this.validateMaxHour(this._hoursFrom);\r\n this._minutesFrom = this.validateMaxMin(this._minutesFrom);\r\n this._hoursTo = this.validateMaxHour(this._hoursTo);\r\n this._minutesTo = this.validateMaxMin(this._minutesTo);\r\n this.setValues(\r\n this._hoursFrom +\r\n ':' +\r\n this._minutesFrom +\r\n ' - ' +\r\n this._hoursTo +\r\n ':' +\r\n this._minutesTo,\r\n );\r\n this.value =\r\n this._hoursFrom +\r\n ':' +\r\n this._minutesFrom +\r\n ' - ' +\r\n this._hoursTo +\r\n ':' +\r\n this._minutesTo;\r\n\r\n return;\r\n }\r\n }\r\n\r\n opened(): void {\r\n setTimeout(() => {\r\n const elements = document.getElementsByClassName('mat-calendar-content');\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n\r\n const cols = Array.from(\r\n document.getElementsByClassName(\r\n 'mat-calendar',\r\n ) as HTMLCollectionOf<HTMLElement>,\r\n );\r\n //eslint-disable-next-line\r\n for (let i = 0; i < cols.length; i++) {\r\n cols[i].style.height = '50px';\r\n }\r\n });\r\n }\r\n\r\n private roundNumber(num: number): string | null {\r\n return this.decimalPipe.transform(num, '2.0-0') ?? '00';\r\n }\r\n\r\n private setValues(date: string): void {\r\n this._date = date;\r\n }\r\n\r\n private validateMaxHour(hour: string): string {\r\n return parseInt(hour) > this.maxValueHours\r\n ? this.maxValueHours.toString()\r\n : hour;\r\n }\r\n\r\n private validateMaxMin(min: string): string {\r\n return parseInt(min) > this.maxValueMinutesSeconds\r\n ? this.maxValueMinutesSeconds.toString()\r\n : min;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n class=\"fake-input\"\r\n [id]=\"_date\"\r\n [(ngModel)]=\"_date\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n [matDatepicker]=\"picker\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <mat-datepicker\r\n (opened)=\"opened()\"\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n >\r\n <mat-datepicker-actions>\r\n <div class=\"flex flex-col w-full gap-y-4\">\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ from ?? translationConfig?.from }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"block form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursFrom\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursFrom\"\r\n />\r\n\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesFrom\"\r\n [(ngModel)]=\"minutesFrom\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"time--inputs\"></div>\r\n <div class=\"flex gap-2 justify-center items-center mb-5\">\r\n <div class=\"flex flex-col justify-center\">\r\n <div class=\"text-center\">{{ to ?? translationConfig?.to }}</div>\r\n <div class=\"flex gap-2 justify-center items-center\">\r\n <input\r\n class=\"form-field__input time\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [id]=\"hoursTo\"\r\n [maxValue]=\"maxValueHours\"\r\n [(ngModel)]=\"hoursTo\"\r\n />\r\n <span class=\"font-bold\">:</span>\r\n <input\r\n class=\"form-field__input time\"\r\n [id]=\"minutesTo\"\r\n [(ngModel)]=\"minutesTo\"\r\n ecabsDigitsOnly\r\n ecabsNumberBorder\r\n [digitsOnly]=\"true\"\r\n [maxValue]=\"maxValueMinutesSeconds\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n (apply)=\"onApply()\">\r\n </ecabs-date-picker-actions>\r\n </div>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n <input\r\n class=\"form-field__input w-full date-input\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"pickerValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || controlDate?.disabled\"\r\n ecabsTime\r\n [all]=\"allLabel\"\r\n [timeRange]=\"true\"\r\n (blur)=\"onTouch()\"\r\n (blur)=\"blurChange($event)\"\r\n (keyup)=\"blurChange($event)\"\r\n (keydown)=\"keydownChange($event)\"\r\n />\r\n <button type=\"button\" class=\"text-gray-500 -translate-x-9\" (click)=\"picker.open()\">\r\n <mat-icon>access_time</mat-icon>\r\n </button>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsMaskTimeDirective } from './time-mask.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsMaskTimeDirective],\r\n exports: [EcabsMaskTimeDirective],\r\n})\r\nexport class EcabsMaskTimeDirectiveModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsMaskDateDirectiveModule } from '../base/directives/date-mask.directive.module';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { EcabsNumberBorderDirectiveModule } from '../base/directives/number-border.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDateTimeRangePickerComponent } from './ecabs-date-time-range-picker.component';\r\nimport { EcabsDateTimeRangePickerHeaderComponent } from './components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\nimport { EcabsMaskTimeDirectiveModule } from '../base/directives/time-mask.directive.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [\r\n EcabsDateTimeRangePickerComponent,\r\n EcabsDateTimeRangePickerHeaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatButtonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsButtonsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n EcabsNumberBorderDirectiveModule,\r\n EcabsMaskDateDirectiveModule,\r\n EcabsDatePickerActionsModule,\r\n EcabsMaskTimeDirectiveModule,\r\n ],\r\n exports: [\r\n EcabsDateTimeRangePickerComponent,\r\n EcabsDateTimeRangePickerHeaderComponent,\r\n ],\r\n})\r\nexport class EcabsDatetimeRangePickerModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\n\r\n@Component({\r\n selector: 'ecabs-increment',\r\n templateUrl: './ecabs-increment.component.html',\r\n styleUrls: ['./ecabs-increment.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsIncrementComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsIncrementComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input() digitsOnly!: boolean;\r\n @Input() allowDecimal!: boolean;\r\n @Input() allowHyphen!: boolean;\r\n\r\n @Output() onblur = new EventEmitter<any>();\r\n val!: string | number;\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n blurChange(e: any): void {\r\n this.onblur.emit(e);\r\n }\r\n\r\n increment(): void {\r\n this.value = +this.value + 1;\r\n }\r\n\r\n decrement(): void {\r\n this.value = +this.value - 1;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper\">\r\n <input ecabsDigitsOnly [digitsOnly]=\"digitsOnly\" [decimal]=\"allowDecimal\" [allowHyphen]=\"allowHyphen\"\r\n class=\"form-field__input\"\r\n [type]=\"type\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onTouch()\"\r\n [disabled]=\"disabled\"\r\n [maxlength]=\"maxLength\"/>\r\n\r\n <div class=\"incrementor\">\r\n <mat-icon (click)=\"increment()\">add</mat-icon>\r\n <mat-icon (click)=\"decrement()\">remove</mat-icon>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsDigitsOnlyDirectivesModule } from '../base/directives/digits-only.directive.module';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsIncrementComponent } from './ecabs-increment.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@NgModule({\r\n declarations: [EcabsIncrementComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n EcabsDigitsOnlyDirectivesModule,\r\n ],\r\n exports: [EcabsIncrementComponent],\r\n})\r\nexport class EcabsIncrementModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CountryCode {\r\n public allCountries = [\r\n ['Afghanistan (افغانستان)', 'af', '93'],\r\n ['Albania (Shqipëri)', 'al', '355'],\r\n ['Algeria (الجزائر)', 'dz', '213'],\r\n ['American Samoa', 'as', '1684'],\r\n ['Andorra', 'ad', '376'],\r\n ['Angola', 'ao', '244'],\r\n ['Anguilla', 'ai', '1264'],\r\n ['Antigua and Barbuda', 'ag', '1268'],\r\n ['Argentina', 'ar', '54'],\r\n ['Armenia (Հայաստան)', 'am', '374'],\r\n ['Aruba', 'aw', '297'],\r\n ['Australia', 'au', '61', 0],\r\n ['Austria (Österreich)', 'at', '43'],\r\n ['Azerbaijan (Azərbaycan)', 'az', '994'],\r\n ['Bahamas', 'bs', '1242'],\r\n ['Bahrain (البحرين)', 'bh', '973'],\r\n ['Bangladesh (বাংলাদেশ)', 'bd', '880'],\r\n ['Barbados', 'bb', '1246'],\r\n ['Belarus (Беларусь)', 'by', '375'],\r\n ['Belgium (België)', 'be', '32'],\r\n ['Belize', 'bz', '501'],\r\n ['Benin (Bénin)', 'bj', '229'],\r\n ['Bermuda', 'bm', '1441'],\r\n ['Bhutan (འབྲུག)', 'bt', '975'],\r\n ['Bolivia', 'bo', '591'],\r\n ['Bosnia and Herzegovina (Босна и Херцеговина)', 'ba', '387'],\r\n ['Botswana', 'bw', '267'],\r\n ['Brazil (Brasil)', 'br', '55'],\r\n ['British Indian Ocean Territory', 'io', '246'],\r\n ['British Virgin Islands', 'vg', '1284'],\r\n ['Brunei', 'bn', '673'],\r\n ['Bulgaria (България)', 'bg', '359'],\r\n ['Burkina Faso', 'bf', '226'],\r\n ['Burundi (Uburundi)', 'bi', '257'],\r\n ['Cambodia (កម្ពុជា)', 'kh', '855'],\r\n ['Cameroon (Cameroun)', 'cm', '237'],\r\n [\r\n 'Canada',\r\n 'ca',\r\n '1',\r\n 1,\r\n [\r\n '204',\r\n '226',\r\n '236',\r\n '249',\r\n '250',\r\n '289',\r\n '306',\r\n '343',\r\n '365',\r\n '387',\r\n '403',\r\n '416',\r\n '418',\r\n '431',\r\n '437',\r\n '438',\r\n '450',\r\n '506',\r\n '514',\r\n '519',\r\n '548',\r\n '579',\r\n '581',\r\n '587',\r\n '604',\r\n '613',\r\n '639',\r\n '647',\r\n '672',\r\n '705',\r\n '709',\r\n '742',\r\n '778',\r\n '780',\r\n '782',\r\n '807',\r\n '819',\r\n '825',\r\n '867',\r\n '873',\r\n '902',\r\n '905',\r\n ],\r\n ],\r\n ['Cape Verde (Kabu Verdi)', 'cv', '238'],\r\n ['Caribbean Netherlands', 'bq', '599', 1],\r\n ['Cayman Islands', 'ky', '1345'],\r\n ['Central African Republic (République centrafricaine)', 'cf', '236'],\r\n ['Chad (Tchad)', 'td', '235'],\r\n ['Chile', 'cl', '56'],\r\n ['China (中国)', 'cn', '86'],\r\n ['Christmas Island', 'cx', '61', 2],\r\n ['Cocos (Keeling) Islands', 'cc', '61', 1],\r\n ['Colombia', 'co', '57'],\r\n ['Comoros (جزر القمر)', 'km', '269'],\r\n ['Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)', 'cd', '243'],\r\n ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'],\r\n ['Cook Islands', 'ck', '682'],\r\n ['Costa Rica', 'cr', '506'],\r\n ['Côte d’Ivoire', 'ci', '225'],\r\n ['Croatia (Hrvatska)', 'hr', '385'],\r\n ['Cuba', 'cu', '53'],\r\n ['Curaçao', 'cw', '599', 0],\r\n ['Cyprus (Κύπρος)', 'cy', '357'],\r\n ['Czech Republic (Česká republika)', 'cz', '420'],\r\n ['Denmark (Danmark)', 'dk', '45'],\r\n ['Djibouti', 'dj', '253'],\r\n ['Dominica', 'dm', '1767'],\r\n [\r\n 'Dominican Republic (República Dominicana)',\r\n 'do',\r\n '1',\r\n 2,\r\n ['809', '829', '849'],\r\n ],\r\n ['Ecuador', 'ec', '593'],\r\n ['Egypt (مصر)', 'eg', '20'],\r\n ['El Salvador', 'sv', '503'],\r\n ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'],\r\n ['Eritrea', 'er', '291'],\r\n ['Estonia (Eesti)', 'ee', '372'],\r\n ['Ethiopia', 'et', '251'],\r\n ['Falkland Islands (Islas Malvinas)', 'fk', '500'],\r\n ['Faroe Islands (Føroyar)', 'fo', '298'],\r\n ['Fiji', 'fj', '679'],\r\n ['Finland (Suomi)', 'fi', '358', 0],\r\n ['France', 'fr', '33'],\r\n ['French Guiana (Guyane française)', 'gf', '594'],\r\n ['French Polynesia (Polynésie française)', 'pf', '689'],\r\n ['Gabon', 'ga', '241'],\r\n ['Gambia', 'gm', '220'],\r\n ['Georgia (საქართველო)', 'ge', '995'],\r\n ['Germany (Deutschland)', 'de', '49'],\r\n ['Ghana (Gaana)', 'gh', '233'],\r\n ['Gibraltar', 'gi', '350'],\r\n ['Greece (Ελλάδα)', 'gr', '30'],\r\n ['Greenland (Kalaallit Nunaat)', 'gl', '299'],\r\n ['Grenada', 'gd', '1473'],\r\n ['Guadeloupe', 'gp', '590', 0],\r\n ['Guam', 'gu', '1671'],\r\n ['Guatemala', 'gt', '502'],\r\n ['Guernsey', 'gg', '44', 1],\r\n ['Guinea (Guinée)', 'gn', '224'],\r\n ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'],\r\n ['Guyana', 'gy', '592'],\r\n ['Haiti', 'ht', '509'],\r\n ['Honduras', 'hn', '504'],\r\n ['Hong Kong (香港)', 'hk', '852'],\r\n ['Hungary (Magyarország)', 'hu', '36'],\r\n ['Iceland (Ísland)', 'is', '354'],\r\n ['India (भारत)', 'in', '91'],\r\n ['Indonesia', 'id', '62'],\r\n ['Iran (ایران)', 'ir', '98'],\r\n ['Iraq (العراق)', 'iq', '964'],\r\n ['Ireland', 'ie', '353'],\r\n ['Isle of Man', 'im', '44', 2],\r\n ['Israel (ישראל)', 'il', '972'],\r\n ['Italy (Italia)', 'it', '39', 0],\r\n ['Jamaica', 'jm', '1', 4, ['876', '658']],\r\n ['Japan (日本)', 'jp', '81'],\r\n ['Jersey', 'je', '44', 3],\r\n ['Jordan (الأردن)', 'jo', '962'],\r\n ['Kazakhstan (Казахстан)', 'kz', '7', 1],\r\n ['Kenya', 'ke', '254'],\r\n ['Kiribati', 'ki', '686'],\r\n ['Kosovo', 'xk', '383'],\r\n ['Kuwait (الكويت)', 'kw', '965'],\r\n ['Kyrgyzstan (Кыргызстан)', 'kg', '996'],\r\n ['Laos (ລາວ)', 'la', '856'],\r\n ['Latvia (Latvija)', 'lv', '371'],\r\n ['Lebanon (لبنان)', 'lb', '961'],\r\n ['Lesotho', 'ls', '266'],\r\n ['Liberia', 'lr', '231'],\r\n ['Libya (ليبيا)', 'ly', '218'],\r\n ['Liechtenstein', 'li', '423'],\r\n ['Lithuania (Lietuva)', 'lt', '370'],\r\n ['Luxembourg', 'lu', '352'],\r\n ['Macau (澳門)', 'mo', '853'],\r\n ['Macedonia (FYROM) (Македонија)', 'mk', '389'],\r\n ['Madagascar (Madagasikara)', 'mg', '261'],\r\n ['Malawi', 'mw', '265'],\r\n ['Malaysia', 'my', '60'],\r\n ['Maldives', 'mv', '960'],\r\n ['Mali', 'ml', '223'],\r\n ['Malta', 'mt', '356'],\r\n ['Marshall Islands', 'mh', '692'],\r\n ['Martinique', 'mq', '596'],\r\n ['Mauritania (موريتانيا)', 'mr', '222'],\r\n ['Mauritius (Moris)', 'mu', '230'],\r\n ['Mayotte', 'yt', '262', 1],\r\n ['Mexico (México)', 'mx', '52'],\r\n ['Micronesia', 'fm', '691'],\r\n ['Moldova (Republica Moldova)', 'md', '373'],\r\n ['Monaco', 'mc', '377'],\r\n ['Mongolia (Монгол)', 'mn', '976'],\r\n ['Montenegro (Crna Gora)', 'me', '382'],\r\n ['Montserrat', 'ms', '1664'],\r\n ['Morocco (المغرب)', 'ma', '212', 0],\r\n ['Mozambique (Moçambique)', 'mz', '258'],\r\n ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'],\r\n ['Namibia (Namibië)', 'na', '264'],\r\n ['Nauru', 'nr', '674'],\r\n ['Nepal (नेपाल)', 'np', '977'],\r\n ['Netherlands (Nederland)', 'nl', '31'],\r\n ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'],\r\n ['New Zealand', 'nz', '64'],\r\n ['Nicaragua', 'ni', '505'],\r\n ['Niger (Nijar)', 'ne', '227'],\r\n ['Nigeria', 'ng', '234'],\r\n ['Niue', 'nu', '683'],\r\n ['Norfolk Island', 'nf', '672'],\r\n ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'],\r\n ['Northern Mariana Islands', 'mp', '1670'],\r\n ['Norway (Norge)', 'no', '47', 0],\r\n ['Oman (عُمان)', 'om', '968'],\r\n ['Pakistan (پاکستان)', 'pk', '92'],\r\n ['Palau', 'pw', '680'],\r\n ['Palestine (فلسطين)', 'ps', '970'],\r\n ['Panama (Panamá)', 'pa', '507'],\r\n ['Papua New Guinea', 'pg', '675'],\r\n ['Paraguay', 'py', '595'],\r\n ['Peru (Perú)', 'pe', '51'],\r\n ['Philippines', 'ph', '63'],\r\n ['Poland (Polska)', 'pl', '48'],\r\n ['Portugal', 'pt', '351'],\r\n ['Puerto Rico', 'pr', '1', 3, ['787', '939']],\r\n ['Qatar (قطر)', 'qa', '974'],\r\n ['Réunion (La Réunion)', 're', '262', 0],\r\n ['Romania (România)', 'ro', '40'],\r\n ['Russia (Россия)', 'ru', '7', 0],\r\n ['Rwanda', 'rw', '250'],\r\n ['Saint Barthélemy', 'bl', '590', 1],\r\n ['Saint Helena', 'sh', '290'],\r\n ['Saint Kitts and Nevis', 'kn', '1869'],\r\n ['Saint Lucia', 'lc', '1758'],\r\n ['Saint Martin (Saint-Martin (partie française))', 'mf', '590', 2],\r\n ['Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)', 'pm', '508'],\r\n ['Saint Vincent and the Grenadines', 'vc', '1784'],\r\n ['Samoa', 'ws', '685'],\r\n ['San Marino', 'sm', '378'],\r\n ['São Tomé and Príncipe (São Tomé e Príncipe)', 'st', '239'],\r\n ['Saudi Arabia (المملكة العربية السعودية)', 'sa', '966'],\r\n ['Senegal (Sénégal)', 'sn', '221'],\r\n ['Serbia (Србија)', 'rs', '381'],\r\n ['Seychelles', 'sc', '248'],\r\n ['Sierra Leone', 'sl', '232'],\r\n ['Singapore', 'sg', '65'],\r\n ['Sint Maarten', 'sx', '1721'],\r\n ['Slovakia (Slovensko)', 'sk', '421'],\r\n ['Slovenia (Slovenija)', 'si', '386'],\r\n ['Solomon Islands', 'sb', '677'],\r\n ['Somalia (Soomaaliya)', 'so', '252'],\r\n ['South Africa', 'za', '27'],\r\n ['South Korea (대한민국)', 'kr', '82'],\r\n ['South Sudan (جنوب السودان)', 'ss', '211'],\r\n ['Spain (España)', 'es', '34'],\r\n ['Sri Lanka (ශ්රී ලංකාව)', 'lk', '94'],\r\n ['Sudan (السودان)', 'sd', '249'],\r\n ['Suriname', 'sr', '597'],\r\n ['Svalbard and Jan Mayen', 'sj', '47', 1],\r\n ['Swaziland', 'sz', '268'],\r\n ['Sweden (Sverige)', 'se', '46'],\r\n ['Switzerland (Schweiz)', 'ch', '41'],\r\n ['Syria (سوريا)', 'sy', '963'],\r\n ['Taiwan (台灣)', 'tw', '886'],\r\n ['Tajikistan', 'tj', '992'],\r\n ['Tanzania', 'tz', '255'],\r\n ['Thailand (ไทย)', 'th', '66'],\r\n ['Timor-Leste', 'tl', '670'],\r\n ['Togo', 'tg', '228'],\r\n ['Tokelau', 'tk', '690'],\r\n ['Tonga', 'to', '676'],\r\n ['Trinidad and Tobago', 'tt', '1868'],\r\n ['Tunisia (تونس)', 'tn', '216'],\r\n ['Turkey (Türkiye)', 'tr', '90'],\r\n ['Turkmenistan', 'tm', '993'],\r\n ['Turks and Caicos Islands', 'tc', '1649'],\r\n ['Tuvalu', 'tv', '688'],\r\n ['U.S. Virgin Islands', 'vi', '1340'],\r\n ['Uganda', 'ug', '256'],\r\n ['Ukraine (Україна)', 'ua', '380'],\r\n ['United Arab Emirates (الإمارات العربية المتحدة)', 'ae', '971'],\r\n ['United Kingdom', 'gb', '44', 0],\r\n ['United States', 'us', '1', 0],\r\n ['Uruguay', 'uy', '598'],\r\n ['Uzbekistan (Oʻzbekiston)', 'uz', '998'],\r\n ['Vanuatu', 'vu', '678'],\r\n ['Vatican City (Città del Vaticano)', 'va', '39', 1],\r\n ['Venezuela', 've', '58'],\r\n ['Vietnam (Việt Nam)', 'vn', '84'],\r\n ['Wallis and Futuna (Wallis-et-Futuna)', 'wf', '681'],\r\n ['Western Sahara (الصحراء الغربية)', 'eh', '212', 1],\r\n ['Yemen (اليمن)', 'ye', '967'],\r\n ['Zambia', 'zm', '260'],\r\n ['Zimbabwe', 'zw', '263'],\r\n ['Åland Islands', 'ax', '358', 1],\r\n ];\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const Examples: any = {\r\n '001': '001',\r\n AC: '40123',\r\n AD: '312345',\r\n AE: '501234567',\r\n AF: '701234567',\r\n AG: '2684641234',\r\n AI: '2642351234',\r\n AL: '662123456',\r\n AM: '77123456',\r\n AO: '923123456',\r\n AR: '91123456789',\r\n AS: '6847331234',\r\n AT: '664123456',\r\n AU: '412345678',\r\n AW: '5601234',\r\n AX: '412345678',\r\n AZ: '401234567',\r\n BA: '61123456',\r\n BB: '2462501234',\r\n BD: '1812345678',\r\n BE: '470123456',\r\n BF: '70123456',\r\n BG: '48123456',\r\n BH: '36001234',\r\n BI: '79561234',\r\n BJ: '90011234',\r\n BL: '690001234',\r\n BM: '4413701234',\r\n BN: '7123456',\r\n BO: '71234567',\r\n BQ: '3181234',\r\n BR: '11961234567',\r\n BS: '2423591234',\r\n BT: '17123456',\r\n BW: '71123456',\r\n BY: '294911911',\r\n BZ: '6221234',\r\n CA: '5062345678',\r\n CC: '412345678',\r\n CD: '991234567',\r\n CF: '70012345',\r\n CG: '061234567',\r\n CH: '781234567',\r\n CI: '01234567',\r\n CK: '71234',\r\n CL: '221234567',\r\n CM: '671234567',\r\n CN: '13123456789',\r\n CO: '3211234567',\r\n CR: '83123456',\r\n CU: '51234567',\r\n CV: '9911234',\r\n CW: '95181234',\r\n CX: '412345678',\r\n CY: '96123456',\r\n CZ: '601123456',\r\n DE: '15123456789',\r\n DJ: '77831001',\r\n DK: '32123456',\r\n DM: '7672251234',\r\n DO: '8092345678',\r\n DZ: '551234567',\r\n EC: '991234567',\r\n EE: '51234567',\r\n EG: '1001234567',\r\n EH: '650123456',\r\n ER: '7123456',\r\n ES: '612345678',\r\n ET: '911234567',\r\n FI: '412345678',\r\n FJ: '7012345',\r\n FK: '51234',\r\n FM: '3501234',\r\n FO: '211234',\r\n FR: '612345678',\r\n GA: '06031234',\r\n GB: '7400123456',\r\n GD: '4734031234',\r\n GE: '555123456',\r\n GF: '694201234',\r\n GG: '7781123456',\r\n GH: '231234567',\r\n GI: '57123456',\r\n GL: '221234',\r\n GM: '3012345',\r\n GN: '601123456',\r\n GP: '690001234',\r\n GQ: '222123456',\r\n GR: '6912345678',\r\n GT: '51234567',\r\n GU: '6713001234',\r\n GW: '955012345',\r\n GY: '6091234',\r\n HK: '51234567',\r\n HN: '91234567',\r\n HR: '921234567',\r\n HT: '34101234',\r\n HU: '201234567',\r\n ID: '812345678',\r\n IE: '850123456',\r\n IL: '502345678',\r\n IM: '7924123456',\r\n IN: '8123456789',\r\n IO: '3801234',\r\n IQ: '7912345678',\r\n IR: '9123456789',\r\n IS: '6111234',\r\n IT: '3123456789',\r\n JE: '7797712345',\r\n JM: '8762101234',\r\n JO: '790123456',\r\n JP: '9012345678',\r\n KE: '712123456',\r\n KG: '700123456',\r\n KH: '91234567',\r\n KI: '72001234',\r\n KM: '3212345',\r\n KN: '8697652917',\r\n KP: '1921234567',\r\n KR: '1000000000',\r\n KW: '50012345',\r\n KY: '3453231234',\r\n KZ: '7710009998',\r\n LA: '2023123456',\r\n LB: '71123456',\r\n LC: '7582845678',\r\n LI: '660234567',\r\n LK: '712345678',\r\n LR: '770123456',\r\n LS: '50123456',\r\n LT: '61234567',\r\n LU: '628123456',\r\n LV: '21234567',\r\n LY: '912345678',\r\n MA: '650123456',\r\n MC: '612345678',\r\n MD: '62112345',\r\n ME: '67622901',\r\n MF: '690001234',\r\n MG: '321234567',\r\n MH: '2351234',\r\n MK: '72345678',\r\n ML: '65012345',\r\n MM: '92123456',\r\n MN: '88123456',\r\n MO: '66123456',\r\n MP: '6702345678',\r\n MQ: '696201234',\r\n MR: '22123456',\r\n MS: '6644923456',\r\n MT: '96961234',\r\n MU: '52512345',\r\n MV: '7712345',\r\n MW: '991234567',\r\n MX: '12221234567',\r\n MY: '123456789',\r\n MZ: '821234567',\r\n NA: '811234567',\r\n NC: '751234',\r\n NE: '93123456',\r\n NF: '381234',\r\n NG: '8021234567',\r\n NI: '81234567',\r\n NL: '612345678',\r\n NO: '40612345',\r\n NP: '9841234567',\r\n NR: '5551234',\r\n NU: '8884012',\r\n NZ: '211234567',\r\n OM: '92123456',\r\n PA: '61234567',\r\n PE: '912345678',\r\n PF: '87123456',\r\n PG: '70123456',\r\n PH: '9051234567',\r\n PK: '3012345678',\r\n PL: '512345678',\r\n PM: '551234',\r\n PR: '7872345678',\r\n PS: '599123456',\r\n PT: '912345678',\r\n PW: '6201234',\r\n PY: '961456789',\r\n QA: '33123456',\r\n RE: '692123456',\r\n RO: '712034567',\r\n RS: '601234567',\r\n RU: '9123456789',\r\n RW: '720123456',\r\n SA: '512345678',\r\n SB: '7421234',\r\n SC: '2510123',\r\n SD: '911231234',\r\n SE: '701234567',\r\n SG: '81234567',\r\n SH: '51234',\r\n SI: '31234567',\r\n SJ: '41234567',\r\n SK: '912123456',\r\n SL: '25123456',\r\n SM: '66661212',\r\n SN: '701234567',\r\n SO: '71123456',\r\n SR: '7412345',\r\n SS: '977123456',\r\n ST: '9812345',\r\n SV: '70123456',\r\n SX: '7215205678',\r\n SY: '944567890',\r\n SZ: '76123456',\r\n TA: '8999',\r\n TC: '6492311234',\r\n TD: '63012345',\r\n TG: '90112345',\r\n TH: '812345678',\r\n TJ: '917123456',\r\n TK: '7290',\r\n TL: '77212345',\r\n TM: '66123456',\r\n TN: '20123456',\r\n TO: '7715123',\r\n TR: '5012345678',\r\n TT: '8682911234',\r\n TV: '901234',\r\n TW: '912345678',\r\n TZ: '621234567',\r\n UA: '501234567',\r\n UG: '712345678',\r\n US: '2015550123',\r\n UY: '94231234',\r\n UZ: '912345678',\r\n VA: '3123456789',\r\n VC: '7844301234',\r\n VE: '4121234567',\r\n VG: '2843001234',\r\n VI: '3406421234',\r\n VN: '912345678',\r\n VU: '5912345',\r\n WF: '501234',\r\n WS: '7212345',\r\n XK: '43201234',\r\n YE: '712345678',\r\n YT: '639012345',\r\n ZA: '711234567',\r\n ZM: '955123456',\r\n ZW: '712345678',\r\n};\r\n","import { UntypedFormControl } from '@angular/forms';\r\nimport { parsePhoneNumber, PhoneNumber } from 'libphonenumber-js';\r\n\r\nexport const phoneNumberValidator = (control: UntypedFormControl) => {\r\n const error = { validatePhoneNumber: true };\r\n let numberInstance: PhoneNumber;\r\n if (control.value) {\r\n try {\r\n numberInstance = parsePhoneNumber(control.value);\r\n } catch (e) {\r\n control.setValue(null);\r\n\r\n return error;\r\n }\r\n\r\n if (numberInstance && !numberInstance.isValid()) {\r\n control.setValue(null);\r\n if (!control.touched) {\r\n control.markAsTouched();\r\n }\r\n\r\n return error;\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Country } from '../models/phone.models';\r\n\r\n@Pipe({\r\n name: 'search',\r\n standalone: true,\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n transform(country: Country, searchCriteria?: string): boolean {\r\n if (!searchCriteria || searchCriteria === '') {\r\n return true;\r\n }\r\n\r\n return `${country.name}+${country.dialCode}`\r\n .toLowerCase()\r\n .includes(searchCriteria.toLowerCase());\r\n }\r\n}\r\n","// eslint-disable @typescript-eslint/no-explicit-any\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\n\r\nimport {\r\n FormGroupDirective,\r\n NgControl,\r\n NgForm,\r\n NG_VALIDATORS,\r\n} from '@angular/forms';\r\nimport {\r\n AsYouType,\r\n CountryCode as CC,\r\n E164Number,\r\n getExampleNumber,\r\n NationalNumber,\r\n parsePhoneNumberFromString,\r\n PhoneNumber,\r\n} from 'libphonenumber-js';\r\n\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n CanUpdateErrorState,\r\n ErrorStateMatcher,\r\n mixinErrorState,\r\n _AbstractConstructor,\r\n _Constructor,\r\n} from '@angular/material/core';\r\nimport { MatMenu } from '@angular/material/menu';\r\nimport { debounceTime, Subject } from 'rxjs';\r\nimport { CountryCode, Examples } from '../base/consts/country-codes';\r\nimport { phoneNumberValidator } from '../base/validators/phone-number.validator';\r\nimport { Country, PhoneNumberFormat } from '../base/models/phone.models';\r\n\r\nclass NgxMatIntlTelInputBase {\r\n readonly stateChanges = new Subject<void>();\r\n\r\n constructor(\r\n public _defaultErrorStateMatcher: ErrorStateMatcher,\r\n public _parentForm: NgForm,\r\n public _parentFormGroup: FormGroupDirective,\r\n public ngControl: NgControl,\r\n ) {}\r\n}\r\n\r\ndeclare type CanUpdateErrorStateCtor = _Constructor<CanUpdateErrorState> &\r\n _AbstractConstructor<CanUpdateErrorState>;\r\n\r\nconst _NgxMatIntlTelInputMixinBase: CanUpdateErrorStateCtor &\r\n typeof NgxMatIntlTelInputBase = mixinErrorState(NgxMatIntlTelInputBase);\r\n\r\n@Component({\r\n selector: 'ecabs-base-phone',\r\n templateUrl: './ecabs-base-phone.component.html',\r\n styleUrls: ['./ecabs-base-phone.component.scss'],\r\n standalone: false,\r\n providers: [\r\n CountryCode,\r\n { provide: MatFormFieldControl, useExisting: EcabsBasePhoneComponent },\r\n {\r\n provide: NG_VALIDATORS,\r\n useValue: phoneNumberValidator,\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsBasePhoneComponent\r\n extends _NgxMatIntlTelInputMixinBase\r\n implements\r\n OnInit,\r\n OnDestroy,\r\n DoCheck,\r\n CanUpdateErrorState,\r\n MatFormFieldControl<any>\r\n{\r\n @Input() preferredCountries: string[] = [];\r\n @Input() enablePlaceholder = true;\r\n @Input() inputPlaceholder: string | undefined;\r\n @Input() cssClass: string | undefined;\r\n @Input() name: string | undefined;\r\n @Input() onlyCountries: string[] = [];\r\n @Input() override errorStateMatcher: ErrorStateMatcher =\r\n new ErrorStateMatcher();\r\n @Input() enableSearch = false;\r\n @Input() searchPlaceholder: string | undefined;\r\n @Input() describedBy = '';\r\n @Input() debounceTimeMs;\r\n @Input()\r\n get format(): PhoneNumberFormat {\r\n return this._format;\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder || '';\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Output() countryChanged = new EventEmitter<Country>();\r\n\r\n @ViewChild(MatMenu) matMenu: MatMenu | undefined;\r\n @ViewChild('searchInput', { static: false })\r\n searchInput: ElementRef;\r\n\r\n @HostBinding()\r\n id = `ecabs-intl-tel-input-${EcabsBasePhoneComponent.nextId++}`;\r\n\r\n @HostBinding('class.ngx-floating')\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n static nextId = 0;\r\n\r\n private _changeSubject = new Subject();\r\n private _placeholder: string | undefined;\r\n private _required = false;\r\n private _disabled = false;\r\n private _previousFormattedNumber: string | undefined;\r\n private _format: PhoneNumberFormat = 'default';\r\n override stateChanges = new Subject<void>();\r\n\r\n focused = false;\r\n phoneNumber: NationalNumber | string | undefined;\r\n allCountries: Country[] = [];\r\n preferredCountriesInDropDown: Country[] = [];\r\n selectedCountry: Country | undefined;\r\n numberInstance: PhoneNumber | undefined;\r\n value: E164Number | string | undefined;\r\n searchCriteria: string | undefined;\r\n\r\n get empty(): boolean {\r\n return !this.phoneNumber;\r\n }\r\n\r\n set format(value: PhoneNumberFormat) {\r\n this._format = value;\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n static getPhoneNumberPlaceHolder(countryISOCode: CC): string | undefined {\r\n const result = getExampleNumber(countryISOCode, Examples);\r\n\r\n // eslint-disable-next-line no-extra-boolean-cast\r\n return !!result ? result.number.toString() : undefined;\r\n }\r\n\r\n onTouched = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n propagateChange = (_: unknown) => {};\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private countryCodeData: CountryCode,\r\n private fm: FocusMonitor,\r\n private elRef: ElementRef<HTMLElement>,\r\n @Optional() @Self() public override ngControl: NgControl,\r\n @Optional() parentForm: NgForm,\r\n @Optional() parentFormGroup: FormGroupDirective,\r\n defaultErrorStateMatcher: ErrorStateMatcher,\r\n ) {\r\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\r\n\r\n fm.monitor(elRef, true).subscribe((origin) => {\r\n if (this.focused && !origin) {\r\n this.onTouched();\r\n }\r\n this.focused = !!origin;\r\n this.stateChanges.next(undefined);\r\n });\r\n this.fetchCountryData();\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.searchPlaceholder) {\r\n this.searchPlaceholder = 'Search ...';\r\n }\r\n if (this.preferredCountries.length) {\r\n this.preferredCountries.forEach((iso2) => {\r\n const preferredCountry = this.allCountries\r\n .filter((c) => c.iso2 === iso2)\r\n .shift();\r\n if (preferredCountry) {\r\n this.preferredCountriesInDropDown.push(preferredCountry);\r\n }\r\n });\r\n }\r\n if (this.onlyCountries.length) {\r\n this.allCountries = this.allCountries.filter((c) =>\r\n this.onlyCountries.includes(c.iso2),\r\n );\r\n }\r\n if (this.numberInstance && this.numberInstance.country) {\r\n // If an existing number is present, we use it to determine selectedCountry\r\n this.selectedCountry = this.getCountry(this.numberInstance.country);\r\n } else {\r\n if (this.preferredCountriesInDropDown.length) {\r\n this.selectedCountry = this.preferredCountriesInDropDown[0];\r\n } else {\r\n this.selectedCountry = this.allCountries[0];\r\n }\r\n }\r\n this._changeSubject\r\n .pipe(debounceTime(this.debounceTimeMs))\r\n .subscribe(() => {\r\n this.onPhoneNumberChange();\r\n });\r\n this.countryChanged.emit(this.selectedCountry);\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.ngControl) {\r\n this.updateErrorState();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this.fm.stopMonitoring(this.elRef);\r\n this._changeSubject.complete();\r\n }\r\n\r\n onPhoneNumberChangeDebounce(): void {\r\n this._changeSubject.next(undefined);\r\n }\r\n\r\n onPhoneNumberChange(): void {\r\n try {\r\n this.numberInstance = parsePhoneNumberFromString(\r\n this.phoneNumber?.toString() || '',\r\n this.selectedCountry?.iso2.toUpperCase() as CC,\r\n );\r\n this.formatAsYouTypeIfEnabled();\r\n this.value = this.numberInstance?.number;\r\n if (this.numberInstance && this.numberInstance.isValid()) {\r\n if (this.phoneNumber !== this.formattedPhoneNumber) {\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n }\r\n if (\r\n this.selectedCountry?.iso2 !== this.numberInstance.country &&\r\n !!this.numberInstance.country\r\n ) {\r\n this.selectedCountry = this.getCountry(this.numberInstance.country);\r\n this.countryChanged.emit(this.selectedCountry);\r\n }\r\n }\r\n } catch {\r\n // if no possible numbers are there,\r\n // then the full number is passed so that validator could be triggered and proper error could be shown\r\n this.value = this.phoneNumber?.toString();\r\n }\r\n this.propagateChange(this.value);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n onCountrySelect(country: Country): void {\r\n if (this.phoneNumber) {\r\n this.phoneNumber = this.numberInstance?.nationalNumber;\r\n }\r\n this.selectedCountry = country;\r\n this.countryChanged.emit(this.selectedCountry);\r\n this.onPhoneNumberChange();\r\n }\r\n\r\n getCountry(code: string): Country {\r\n return (\r\n this.allCountries.find((c) => c.iso2 === code.toLowerCase()) || {\r\n name: 'UN',\r\n iso2: 'UN',\r\n dialCode: '',\r\n priority: 0,\r\n areaCodes: undefined,\r\n flagClass: 'UN',\r\n placeHolder: '',\r\n }\r\n );\r\n }\r\n\r\n onInputKeyPress(event: KeyboardEvent): void {\r\n const pattern = /[0-9+\\- ]/;\r\n if (!pattern.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n flagClass(lang: string): string {\r\n return `fi fi-${lang?.slice(-2).toLowerCase()}`;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.numberInstance = parsePhoneNumberFromString(value);\r\n if (this.numberInstance) {\r\n const countryCode = this.numberInstance.country;\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n if (!countryCode) {\r\n return;\r\n }\r\n setTimeout(() => {\r\n this.selectedCountry = this.getCountry(countryCode);\r\n if (\r\n this.selectedCountry.dialCode &&\r\n !this.preferredCountries.includes(this.selectedCountry.iso2)\r\n ) {\r\n this.preferredCountriesInDropDown.push(this.selectedCountry);\r\n }\r\n this.countryChanged.emit(this.selectedCountry);\r\n\r\n // Initial value is set\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }, 1);\r\n } else {\r\n this.phoneNumber = value;\r\n }\r\n }\r\n\r\n // Value is set from outside using setValue()\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n setDescribedByIds(ids: string[]) {\r\n this.describedBy = ids.join(' ');\r\n }\r\n\r\n onContainerClick(event: MouseEvent): void {\r\n if ((event.target as Element).tagName.toLowerCase() !== 'input') {\r\n this.elRef.nativeElement.querySelector('input')!.focus();\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.phoneNumber = '';\r\n this.propagateChange(null);\r\n\r\n this.changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n onSearchInput(): void {\r\n setTimeout(() => {\r\n this.searchInput?.nativeElement?.focus();\r\n }, 200);\r\n }\r\n\r\n protected fetchCountryData(): void {\r\n this.countryCodeData.allCountries.forEach((c) => {\r\n const country: Country = {\r\n name: c[0].toString(),\r\n iso2: c[1].toString(),\r\n dialCode: c[2].toString(),\r\n priority: +c[3] || 0,\r\n areaCodes: (c[4] as string[]) || undefined,\r\n flagClass: c[1].toString().toUpperCase(),\r\n placeHolder: '',\r\n };\r\n\r\n if (this.enablePlaceholder) {\r\n country.placeHolder = EcabsBasePhoneComponent.getPhoneNumberPlaceHolder(\r\n country.iso2.toUpperCase() as CC,\r\n );\r\n }\r\n\r\n this.allCountries.push(country);\r\n });\r\n }\r\n\r\n private get formattedPhoneNumber(): string {\r\n if (!this.numberInstance) {\r\n return this.phoneNumber?.toString() || '';\r\n }\r\n switch (this.format) {\r\n case 'national':\r\n return this.numberInstance.formatNational();\r\n\r\n case 'international':\r\n return this.numberInstance.formatInternational();\r\n\r\n default:\r\n return this.numberInstance.nationalNumber.toString();\r\n }\r\n }\r\n\r\n private formatAsYouTypeIfEnabled(): void {\r\n if (this.format === 'default') {\r\n return;\r\n }\r\n const asYouType: AsYouType = new AsYouType(\r\n this.selectedCountry?.iso2.toUpperCase() as CC,\r\n );\r\n // To avoid caret positioning we apply formatting only if the caret is at the end:\r\n if (\r\n this.phoneNumber\r\n ?.toString()\r\n .startsWith(this._previousFormattedNumber || '')\r\n ) {\r\n this.phoneNumber = asYouType.input(this.phoneNumber.toString());\r\n }\r\n this._previousFormattedNumber = this.phoneNumber?.toString();\r\n }\r\n}\r\n","<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" \r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { EcabsComponentsService } from '../base/services/ecabs-components.service';\r\nimport { EcabsBasePhoneComponent } from '../ecabs-base-phone-input/ecabs-base-phone.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-phone',\r\n templateUrl: './ecabs-phone.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsPhoneComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsPhoneComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit, OnChanges\r\n{\r\n @Input() preferredCountries!: string[];\r\n @Input() enablePlaceholder!: boolean;\r\n @Input() enableSearch = true;\r\n @Input() useOnlyDisabledClass = false;\r\n @Input() declare required: boolean;\r\n @Input() debounceTimeMs;\r\n\r\n @Output() onblur: EventEmitter<{ value: string }> = new EventEmitter();\r\n\r\n @ViewChild('phoneInput')\r\n phoneInput!: EcabsBasePhoneComponent;\r\n\r\n phoneForm: UntypedFormGroup;\r\n phoneSub!: any;\r\n prohibitedCharacters = ['-'];\r\n\r\n get value(): any {\r\n return this.phoneForm.get('phone')?.value;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.value !== val) {\r\n this.phoneForm.setValue({ phone: val });\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsComponentsService: EcabsComponentsService,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('keypress', ['$event']) onInput(event: KeyboardEvent): void {\r\n if (this.prohibitedCharacters.includes(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.phoneForm = new UntypedFormGroup({\r\n phone: new UntypedFormControl(\r\n { value: undefined, disabled: this.disabled },\r\n this.required ? [Validators.required] : [],\r\n ),\r\n });\r\n\r\n this.ecabsComponentsService\r\n .getConfig()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((val) => {\r\n if (!this.preferredCountries?.length) {\r\n this.preferredCountries = val.defaultCountries;\r\n }\r\n\r\n if (!this.debounceTimeMs) {\r\n this.debounceTimeMs = val.defaultPhoneDebounceTimeMs;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n\r\n this.phoneSub = this.phoneForm.valueChanges.subscribe((formVal) => {\r\n this.value = formVal?.phone;\r\n this.onChange(this.value);\r\n this.onTouch(this.value);\r\n this.handleErrors();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['disabled']) {\r\n if (this.disabled) {\r\n this.phoneForm?.get('phone')?.disable();\r\n } else {\r\n this.phoneForm?.get('phone')?.enable();\r\n }\r\n }\r\n }\r\n\r\n onChange: any = (): void => {};\r\n onTouch: any = (): void => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.phoneSub?.unsubscribe();\r\n }\r\n\r\n reset(): void {\r\n this.phoneInput.reset();\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouch(this.value);\r\n this.onChange(this.value);\r\n this.handleErrors();\r\n this.onblur.emit({ value: this.value });\r\n }\r\n\r\n handleErrors(): void {\r\n if (this.value === undefined && !this.phoneInput.empty) {\r\n this.phoneForm.controls['phone'].setErrors({ validatePhoneNumber: true });\r\n }\r\n this.control?.setErrors(this.phoneForm.get('phone').errors);\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"phoneForm\">\r\n <ecabs-base-phone\r\n [ngClass]=\"{ error: phoneForm.invalid && (phoneForm.dirty || phoneForm.touched) }\"\r\n #phoneInput\r\n [preferredCountries]=\"preferredCountries\"\r\n [enablePlaceholder]=\"enablePlaceholder\"\r\n [enableSearch]=\"enableSearch\"\r\n [disabled]=\"disabled\"\r\n [formControlName]=\"'phone'\"\r\n [inputPlaceholder]=\"placeholder\"\r\n [debounceTimeMs]=\"debounceTimeMs\"\r\n name=\"phone\"\r\n (focusout)=\"onBlur()\"\r\n >\r\n </ecabs-base-phone>\r\n </form>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { RouterModule } from '@angular/router';\r\nimport { EcabsBasePhoneComponent } from './ecabs-base-phone.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { SearchPipe } from '../base/pipes/search.pipe';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsBasePhoneComponent],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n RouterModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatDividerModule,\r\n ReactiveFormsModule,\r\n SearchPipe,\r\n ElementWrapperModule,\r\n ],\r\n exports: [EcabsBasePhoneComponent],\r\n})\r\nexport class EcabsBasePhoneModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPhoneComponent } from './ecabs-phone.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { EcabsBasePhoneModule } from '../ecabs-base-phone-input/ecabs-base-phone.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsPhoneComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsBasePhoneModule,\r\n ],\r\n exports: [EcabsPhoneComponent],\r\n})\r\nexport class EcabsPhoneModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectOption } from '../base/models/select.models';\r\n\r\n@Component({\r\n selector: 'ecabs-radio-button-list',\r\n templateUrl: './ecabs-radio-button-list.component.html',\r\n styleUrls: ['ecabs-radio-button-list.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsRadioButtonListComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsRadioButtonListComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input() items: SelectOption[];\r\n @Input() direction: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @Output() changed = new EventEmitter<any>();\r\n\r\n val: string;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-radio-group\r\n [ngClass]=\"{ 'flex flex-col my-1': direction === 'vertical' }\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [id]=\"name\"\r\n (change)=\"changed.emit($event.value)\"\r\n >\r\n <mat-radio-button\r\n [disabled]=\"item.disabled\"\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n *ngFor=\"let item of items\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsRadioButtonListComponent } from './ecabs-radio-button-list.component';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\n\r\n@NgModule({\r\n declarations: [EcabsRadioButtonListComponent],\r\n imports: [CommonModule, ElementWrapperModule, MatRadioModule, FormsModule],\r\n exports: [EcabsRadioButtonListComponent],\r\n})\r\nexport class EcabsRadioButtonListModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { FormTimePickerConfig } from './config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormTimePickerService {\r\n config: FormTimePickerConfig = {\r\n dayEnd: 'Day End',\r\n dayStart: 'Day Start',\r\n iconClass: '',\r\n };\r\n\r\n public closeSub = new Subject<boolean>();\r\n\r\n setConfig(c: FormTimePickerConfig): void {\r\n this.config = Object.assign(this.config, c);\r\n }\r\n\r\n getConfig(): FormTimePickerConfig {\r\n return this.config;\r\n }\r\n\r\n close(): void {\r\n this.closeSub.next(true);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n ListPlacement,\r\n ListPosition,\r\n} from '../../../base/models/timepicker.models';\r\nimport { FormTimePickerService } from '../../ecabs-timepicker.service';\r\n\r\n@Component({\r\n selector: 'ecabs-time-list-panel',\r\n templateUrl: './ecabs-time-list-panel.component.html',\r\n})\r\nexport class EcabsTimeListPanelComponent implements OnInit, OnChanges {\r\n @Input() typedValue: any;\r\n @Input() listPlacement: ListPlacement = 'auto';\r\n @Input() listPosition: ListPosition = {};\r\n\r\n @Input()\r\n dayStartLabel: string;\r\n\r\n @Input()\r\n dayEndLabel: string;\r\n\r\n @Input() appendTo!: string;\r\n @Input() min!: string;\r\n @Input() max!: string;\r\n @Input() showDayStart = true;\r\n @Input() showDayEnd = false;\r\n @Input() position: ListPosition = {};\r\n\r\n @Output() onscroll = new EventEmitter<{ start: number; end: number }>();\r\n @Output() closeMe = new EventEmitter<any>();\r\n\r\n hoveredItemIndex = 0;\r\n timeList: { value: any; title: string }[] = [];\r\n\r\n private listItemHeight!: any;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private timepickerService: FormTimePickerService,\r\n ) {}\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeydown($event: KeyboardEvent): void {\r\n const { key } = $event;\r\n\r\n switch (key) {\r\n case 'ArrowUp':\r\n if (this.hoveredItemIndex) {\r\n this.hoveredItemIndex--;\r\n }\r\n\r\n this.scrollTo(this.hoveredItemIndex);\r\n break;\r\n\r\n case 'ArrowDown':\r\n if (this.hoveredItemIndex + 1 < this.timeList.length) {\r\n this.hoveredItemIndex++;\r\n }\r\n\r\n this.scrollTo(this.hoveredItemIndex);\r\n break;\r\n\r\n case 'Enter' || ' ':\r\n this.setTime(this.timeList[this.hoveredItemIndex].value);\r\n break;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.calcListItems();\r\n if (this.appendTo) {\r\n this.appendListTo();\r\n }\r\n\r\n setTimeout(() => {\r\n this.listItemHeight = this.elementRef.nativeElement\r\n .querySelector('li')\r\n .getBoundingClientRect().height;\r\n this.selectTypedValue(this.typedValue);\r\n });\r\n }\r\n\r\n appendListTo(): void {\r\n const parent = document.querySelector(this.appendTo);\r\n if (!parent) {\r\n throw new Error(\r\n `appendTo selector ${this.appendTo} did not found any parent element`,\r\n );\r\n }\r\n parent.appendChild(this.elementRef.nativeElement);\r\n }\r\n\r\n calcListItems(): void {\r\n if (this.showDayStart) {\r\n const title =\r\n this.dayStartLabel || this.timepickerService.getConfig().dayStart;\r\n\r\n this.timeList.push({\r\n value: '00:00',\r\n title,\r\n });\r\n }\r\n for (let index = 0; index < 24; index++) {\r\n for (const minute of ['00', '30']) {\r\n if (index === 0 && minute === '00') {\r\n continue;\r\n }\r\n this.timeList.push({\r\n value: (index > 9 ? index + '' : '0' + index) + ':' + minute,\r\n title: (index > 9 ? index + '' : '0' + index) + ':' + minute,\r\n });\r\n }\r\n }\r\n if (this.showDayEnd) {\r\n const title =\r\n this.dayEndLabel || this.timepickerService.getConfig().dayEnd;\r\n\r\n this.timeList.push({\r\n value: '23:59',\r\n title,\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.selectTypedValue(this.typedValue);\r\n if (this.elementRef.nativeElement) {\r\n this.elementRef.nativeElement.style.top = this.listPosition.top + 'px';\r\n this.elementRef.nativeElement.style.left = this.listPosition.left + 'px';\r\n this.elementRef.nativeElement.style.width =\r\n this.listPosition.width + 'px';\r\n if (this.appendTo) {\r\n this.elementRef.nativeElement.style.position = 'fixed';\r\n }\r\n }\r\n }\r\n\r\n selectTypedValue(value: any): void {\r\n if (value) {\r\n const hour = parseInt(value.split(':')[0], 10);\r\n const mins = parseInt(value.split(':')[1], 10);\r\n\r\n if (hour || hour === 0) {\r\n this.hoveredItemIndex = hour * 2;\r\n if (mins >= 30) {\r\n this.hoveredItemIndex++;\r\n }\r\n\r\n this.scrollTo(this.hoveredItemIndex);\r\n }\r\n }\r\n }\r\n\r\n scrollTo(index: number): void {\r\n this.elementRef.nativeElement.querySelector('.inner-scroll').scrollTop =\r\n index * this.listItemHeight;\r\n }\r\n\r\n close(): void {\r\n this.closeMe.emit(null);\r\n }\r\n\r\n setTime(value: any): void {\r\n this.closeMe.emit(value);\r\n }\r\n}\r\n","<div class=\"list\">\r\n <div class=\"inner-scroll\">\r\n <div class=\"inner\">\r\n <ul>\r\n <!-- eslint-disable-next-line -->\r\n <li\r\n *ngFor=\"let i of timeList; let counter = index\" \r\n (click)=\"setTime(i.value)\"\r\n (mouseenter)=\"hoveredItemIndex = counter\"\r\n [ngClass]=\"{ active: typedValue === i.value, hovered: counter === hoveredItemIndex }\"\r\n >\r\n {{ i.title }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n Injector,\r\n Input,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\nimport { FormTimePickerService } from './ecabs-timepicker.service';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { ListPlacement, ListPosition } from '../base/models/timepicker.models';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { EcabsDatePickerTranslations } from '../base/models/ecabs-date-picker-translations.models';\r\n\r\n@Component({\r\n selector: 'ecabs-timepicker',\r\n templateUrl: './ecabs-timepicker.component.html',\r\n styleUrls: ['ecabs-timepicker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsTimepickerComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsTimepickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input() showCloseIcon = true;\r\n @Input() @HostBinding('class.form-timepicker-focused') focusedFlag = false;\r\n @Input() listPlacement: ListPlacement = 'auto';\r\n @Input() appendTo!: string;\r\n @Input() min!: string;\r\n @Input() max!: string;\r\n @Input() showDayStart = true;\r\n @Input() showDayEnd = false;\r\n @Input() addSecond = true;\r\n\r\n @Input()\r\n dayStartLabel: string;\r\n\r\n @Input()\r\n dayEndLabel: string;\r\n\r\n position: ListPosition = {};\r\n _data = '';\r\n inputData = '';\r\n _timePicker: { querySelector: (arg0: string) => HTMLElement };\r\n _input!: HTMLElement;\r\n listPosition: ListPosition = {};\r\n translationConfig: EcabsDatePickerTranslations;\r\n isHoverItemChanged: boolean;\r\n\r\n get allLabel(): string {\r\n return '';\r\n }\r\n\r\n get data(): any {\r\n return this._data;\r\n }\r\n\r\n set data(value: any) {\r\n this._data = value;\r\n if (this._data.length === 5) {\r\n if (this._data === '23:59') {\r\n this.onChangeFn(this._data + (this.addSecond ? ':59' : ''));\r\n } else {\r\n this.onChangeFn(this._data + (this.addSecond ? ':00' : ''));\r\n }\r\n } else if (this._data === '') {\r\n this.onChangeFn(this._data);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private readonly timepickerService: FormTimePickerService,\r\n private readonly injector: Injector,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n super();\r\n this.placeholder = '00:00';\r\n this._timePicker = this.elementRef.nativeElement;\r\n setTimeout(() => {\r\n this._input = this._timePicker.querySelector('input');\r\n });\r\n if (!this.iconClass) {\r\n this.iconClass = this.timepickerService.getConfig().iconClass;\r\n }\r\n }\r\n\r\n @HostListener('document:mousedown', ['$event'])\r\n handleMousedown($event: MouseEvent): void {\r\n const target = $event.target as HTMLElement;\r\n const inputWrapper = this._timePicker.querySelector(\r\n '.timeInputFieldWrapper',\r\n );\r\n\r\n if (\r\n target.closest('.form-time-list') ||\r\n target.closest('.timeInputFieldWrapper') === inputWrapper\r\n ) {\r\n inputWrapper?.focus();\r\n\r\n return;\r\n }\r\n if (this.focusedFlag) {\r\n this.close();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n this.control.statusChanges\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.updateDisabledState();\r\n });\r\n }\r\n\r\n this.updateDisabledState();\r\n }\r\n\r\n clearInput(): void {\r\n this.data = '';\r\n }\r\n\r\n calcListPosition(): void {\r\n const position = this._timePicker\r\n .querySelector('.timeInputFieldWrapper')\r\n .getBoundingClientRect();\r\n if (this.appendTo) {\r\n this.listPosition = {\r\n left: position.x,\r\n top: position.top + position.height,\r\n width: position.width,\r\n };\r\n } else {\r\n this.listPosition = {\r\n left: 0,\r\n top: position.height,\r\n width: position.width,\r\n };\r\n }\r\n }\r\n\r\n inputKeyDown(event: any): boolean {\r\n const key = event.key;\r\n\r\n const specialKey = this.checkSpecialKeys(key);\r\n const triggers = ['stop', 'tab'];\r\n const isKeyInTriggers = triggers.includes(specialKey);\r\n\r\n if (\r\n key === 'ArrowLeft' ||\r\n key === 'ArrowRight' ||\r\n key === 'Backspace' ||\r\n key === 'Delete'\r\n ) {\r\n return true;\r\n }\r\n\r\n if (this.checkUnUsedKeys(key) || isKeyInTriggers) {\r\n if (specialKey === 'tab') {\r\n this.close();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n updateInputData(event: string): void {\r\n this.inputData = event;\r\n this.isHoverItemChanged = false;\r\n\r\n const newData = this.inputData.replace(new RegExp(/_/gi), '');\r\n\r\n if (this.checkOutOfRangeNumber(newData)) {\r\n this.data = newData;\r\n }\r\n\r\n if (\r\n this.data.length === 2 ||\r\n (this.data.length === 1 && parseInt(this.data) > 2)\r\n ) {\r\n this.makeHourFull();\r\n this.data += ':';\r\n }\r\n }\r\n\r\n checkSpecialKeys(key: any): 'stop' | 'continue' | 'tab' {\r\n if (key === 'Tab' || key === ' ' || key === ':') {\r\n if (!this.data.includes(':') && this.data.length > 0) {\r\n this.makeHourFull();\r\n this.data += ':';\r\n\r\n return 'stop';\r\n }\r\n\r\n if (key === 'Tab') {\r\n return 'tab';\r\n }\r\n\r\n return 'stop';\r\n }\r\n\r\n if (key === 'ArrowDown' || key === 'ArrowUp') {\r\n this.isHoverItemChanged = true;\r\n }\r\n\r\n if (key === 'ArrowDown' && !this.focusedFlag) {\r\n this.show();\r\n }\r\n\r\n return 'continue';\r\n }\r\n\r\n checkUnUsedKeys(key: string): boolean {\r\n const r = /\\d/;\r\n\r\n return !r.test(key);\r\n }\r\n\r\n checkOutOfRangeNumber(time: any): boolean {\r\n const splitTime = time.split(':');\r\n const hour = parseInt(splitTime[0], 10);\r\n let minute = -1;\r\n\r\n if (splitTime.length > 1 && splitTime[1].length) {\r\n minute = parseInt(splitTime[1], 10);\r\n }\r\n\r\n if (hour < 24 && splitTime[0].length < 3 && minute < 60) {\r\n return !(splitTime.length > 1 && splitTime[1].length > 2);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n makeHourFull(): void {\r\n const hourPart = this.data.split(':')[0];\r\n const minutePart =\r\n this.data.split(':').length > 1 ? this.data.split(':')[1] : '';\r\n\r\n if (hourPart.length === 1) {\r\n this.data = '0' + hourPart + (minutePart ? ':' + minutePart : minutePart);\r\n }\r\n\r\n this.inputData = this.data;\r\n }\r\n\r\n makeMinuteFull(): void {\r\n const hourPart = this.data.split(':')[0];\r\n const minutePart =\r\n this.data.split(':').length > 1 ? this.data.split(':')[1] : '';\r\n\r\n if (minutePart.length === 0) {\r\n this.data = hourPart + ':00';\r\n }\r\n\r\n if (minutePart.length === 1) {\r\n this.data = hourPart + ':' + minutePart + '0';\r\n }\r\n\r\n this.inputData = this.data;\r\n }\r\n\r\n fixTimeToNearest(): void {\r\n if (this.data.length > 0) {\r\n this.makeHourFull();\r\n this.makeMinuteFull();\r\n }\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars, @typescript-eslint/no-empty-function\r\n public onChangeFn = (_: any): void => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n public onTouchedFn = (): void => {};\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchedFn = fn;\r\n }\r\n\r\n /* public override setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n } */\r\n\r\n public writeValue(obj: any): void {\r\n if (obj) {\r\n obj = obj.toString();\r\n let temp = '';\r\n\r\n if (obj.split(':').length >= 2) {\r\n temp = obj.split(':')[0] + ':' + obj.split(':')[1];\r\n }\r\n\r\n this._data = temp;\r\n } else {\r\n this._data = '';\r\n }\r\n }\r\n\r\n show(): void {\r\n this.calcListPosition();\r\n this.focusedFlag = true;\r\n this.isHoverItemChanged = true;\r\n }\r\n\r\n close(val = null): void {\r\n if (val && this.isHoverItemChanged) {\r\n this.data = val;\r\n this.inputData = val;\r\n } else {\r\n this.fixTimeToNearest();\r\n }\r\n this.focusedFlag = false;\r\n this.control?.markAsTouched();\r\n }\r\n}\r\n","<div [ngClass]=\"{ disabled: disabled }\">\r\n <ecabs-element-wrapper\r\n [data]=\"getData()\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n [focusedFlag]=\"focusedFlag\"\r\n (clear)=\"clearInput()\"\r\n >\r\n <div class=\"relative inline-block w-full timeInputFieldWrapper\">\r\n <input\r\n type=\"text\"\r\n class=\"form-field__input\"\r\n [value]=\"data\"\r\n [ngModel]=\"data\"\r\n (ngModelChange)=\"updateInputData($event)\"\r\n [disabled]=\"disabled\"\r\n ecabsTime\r\n [all]=\"allLabel\"\r\n (focus)=\"show()\"\r\n (click)=\"show()\"\r\n (keydown)=\"inputKeyDown($event)\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"type !== 'number'\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\r\n *ngIf=\"focusedFlag\"\r\n [showDayStart]=\"showDayStart\"\r\n [dayStartLabel]=\"dayStartLabel\"\r\n [dayEndLabel]=\"dayEndLabel\"\r\n [showDayEnd]=\"showDayEnd\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n class=\"form-time-list absolute inline-block\"\r\n [appendTo]=\"appendTo\"\r\n [listPosition]=\"listPosition\"\r\n (closeMe)=\"close($event)\"\r\n ></ecabs-time-list-panel>\r\n </div>\r\n </ecabs-element-wrapper>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTimepickerComponent } from './ecabs-timepicker.component';\r\nimport { EcabsTimeListPanelComponent } from './componets/ecabs-time-list-panel/ecabs-time-list-panel.component';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { EcabsMaskTimeDirectiveModule } from '../base/directives/time-mask.directive.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsTimepickerComponent, EcabsTimeListPanelComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n EcabsMaskTimeDirectiveModule,\r\n FormsModule,\r\n ],\r\n exports: [EcabsTimeListPanelComponent, EcabsTimepickerComponent],\r\n})\r\nexport class EcabsTimepickerModule {}\r\n","export const srcNothingHereImage = '/assets/images/nothing-here.svg';\r\nexport const ecabsLogo =\r\n 'https://storage.googleapis.com/ecabs/assets/logo/blue_v2.svg';\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { srcNothingHereImage } from '../base/consts/images.consts';\r\n\r\nexport interface PlaceholderRedirectPath {\r\n title: string;\r\n path: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ecabs-empty-placeholder',\r\n templateUrl: './ecabs-empty-placeholder.component.html',\r\n styleUrls: ['./ecabs-empty-placeholder.component.scss'],\r\n})\r\nexport class EcabsEmptyPlaceholderComponent implements OnChanges {\r\n @Input()\r\n isEmptyMessage: string;\r\n\r\n @Input()\r\n redirectPath: PlaceholderRedirectPath;\r\n\r\n @Input()\r\n srcImage: string;\r\n\r\n image: string;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { srcImage } = changes ?? {};\r\n\r\n if (srcImage?.currentValue === undefined || null) {\r\n this.image = srcNothingHereImage;\r\n }\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col items-center justify-items-center\">\r\n <img class=\"mt-10 w-60\" [src]=\"image\" alt=\"\" />\r\n\r\n <span class=\"heading--sm text-gray-400 my-2\">{{ isEmptyMessage }}</span>\r\n\r\n <a *ngIf=\"redirectPath\" [routerLink]=\"redirectPath?.path && [redirectPath.path]\" class=\"text-sm\">\r\n {{ redirectPath.title }}\r\n </a>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsEmptyPlaceholderComponent } from './ecabs-empty-placeholder.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [EcabsEmptyPlaceholderComponent],\r\n imports: [CommonModule, RouterModule],\r\n exports: [EcabsEmptyPlaceholderComponent],\r\n})\r\nexport class EcabsEmptyPlaceholderModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatExpansionPanel } from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'ecabs-expansion-panel',\r\n templateUrl: './ecabs-expansion-panel.component.html',\r\n styleUrls: ['./ecabs-expansion-panel.component.scss'],\r\n})\r\nexport class EcabsExpansionPanelComponent implements OnChanges {\r\n @Input()\r\n title = '';\r\n\r\n @Input()\r\n description: string;\r\n\r\n @Input()\r\n actionTitle: TemplateRef<any>;\r\n\r\n @Input()\r\n index;\r\n\r\n @Input()\r\n expanded = false;\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n errorMessage: string;\r\n\r\n @Input()\r\n showErrorMessage: boolean;\r\n\r\n @Input()\r\n closePanel: boolean;\r\n\r\n @Input()\r\n showIcon: boolean;\r\n\r\n @Input()\r\n iconName: string;\r\n\r\n @Input()\r\n showCheckbox: boolean;\r\n\r\n @Input()\r\n showStatus: boolean;\r\n\r\n @Input()\r\n status: string;\r\n\r\n @Input()\r\n hideToggle = false;\r\n\r\n @Output() checked = new EventEmitter<boolean>();\r\n\r\n @Output() opened = new EventEmitter<void>();\r\n\r\n @ViewChild(MatExpansionPanel) expansionPanel: MatExpansionPanel;\r\n\r\n toggle = false;\r\n\r\n onOpened(): void {\r\n this.opened.emit();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { closePanel } = changes;\r\n\r\n if (closePanel && this.expansionPanel) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n closePanel.currentValue === true\r\n ? this.expansionPanel.close()\r\n : this.expansionPanel.open();\r\n }\r\n }\r\n\r\n toggleAction(event: Event): void {\r\n event.stopPropagation();\r\n this.checked.emit(this.expanded);\r\n }\r\n}\r\n","<mat-accordion class=\"example-headers-align\" multi>\r\n <mat-expansion-panel [expanded]=\"expanded\" [disabled]=\"disabled\" (opened)=\"onOpened()\" [hideToggle]=\"hideToggle\">\r\n <mat-expansion-panel-header *ngIf=\"title\">\r\n <mat-panel-title>\r\n <div>\r\n <div class=\"flex flex-row\">\r\n <div *ngIf=\"index && !showErrorMessage\" class=\"border-current border-2 rounded-full mr-3 index\">\r\n {{ index }}\r\n </div>\r\n <div *ngIf=\"!showErrorMessage && showIcon\" class=\"mr-3 rounded\">\r\n <mat-icon class=\"rounded-icon !text-lg -mt-1\">{{ iconName }}</mat-icon>\r\n </div>\r\n <div *ngIf=\"showErrorMessage\" class=\"mt-1 mr-2\">\r\n <mat-icon color=\"warn\">warning</mat-icon>\r\n </div>\r\n {{ title }}\r\n <div *ngIf=\"showCheckbox\" class=\"ml-2 mt-1\">\r\n <ecabs-checkbox [type]=\"'toggle'\" [(ngModel)]=\"toggle\"\r\n (click)=\"toggleAction($event)\"></ecabs-checkbox>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showErrorMessage\" class=\"error-message\">{{ errorMessage }}</div>\r\n </div>\r\n </mat-panel-title>\r\n <mat-panel-description>{{ description }}\r\n <mat-chip *ngIf=\"showStatus\" class=\"{{ status | lowercase }}\">\r\n {{ status | titlecase }}\r\n </mat-chip>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-expansion-panel-header *ngIf=\"actionTitle\">\r\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\r\n </mat-expansion-panel-header>\r\n <ng-content></ng-content>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsExpansionPanelComponent } from './ecabs-expansion-panel.component';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { EcabsCheckboxToggleModule } from '../ecabs-checkbox-toggle/ecabs-checkbox-toggle.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsExpansionPanelComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatChipsModule,\r\n EcabsCheckboxToggleModule,\r\n ],\r\n exports: [EcabsExpansionPanelComponent],\r\n})\r\nexport class EcabsExpansionPanelModule {}\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-table-filter-wrapper',\r\n templateUrl: './ecabs-table-filter-wrapper.component.html',\r\n styleUrls: ['./ecabs-table-filter-wrapper.component.scss'],\r\n})\r\nexport class EcabsTableFilterWrapperComponent {\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n actions: TemplateRef<any>;\r\n}\r\n","<ecabs-expansion-panel [title]=\"title\" class=\"block mb-5\" [expanded]=\"true\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"actions\" class=\"flex justify-end\">\r\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\r\n </div>\r\n</ecabs-expansion-panel>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTableFilterWrapperComponent } from './ecabs-table-filter-wrapper.component';\r\nimport { EcabsExpansionPanelModule } from '../../ecabs-expansion-panel/ecabs-expansion-panel.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsTableFilterWrapperComponent],\r\n imports: [CommonModule, EcabsExpansionPanelModule],\r\n exports: [EcabsTableFilterWrapperComponent],\r\n})\r\nexport class EcabsTableFilterWrapperModule {}\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ContentChild,\r\n Input,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { MatTable } from '@angular/material/table';\r\nimport { PlaceholderRedirectPath } from '../ecabs-empty-placeholder/ecabs-empty-placeholder.component';\r\n\r\n@Component({\r\n selector: 'ecabs-table',\r\n templateUrl: './ecabs-table.component.html',\r\n styleUrls: ['./ecabs-table.component.scss'],\r\n})\r\nexport class TableComponent implements AfterContentChecked {\r\n @ContentChild(MatTable)\r\n table: MatTable<any>;\r\n\r\n @Input()\r\n header: TemplateRef<any>;\r\n\r\n @Input()\r\n paginator: TemplateRef<any>;\r\n\r\n @Input()\r\n bordered = true;\r\n\r\n @Input()\r\n loading = false;\r\n\r\n @Input()\r\n isEmpty: boolean;\r\n @Input()\r\n isEmptyMessage: string;\r\n\r\n @Input()\r\n redirectPath: PlaceholderRedirectPath;\r\n\r\n @Input()\r\n srcImageEmpty: string;\r\n\r\n ngAfterContentChecked(): void {\r\n if (this.table) {\r\n this.isEmpty = !this.table['_data']?.length;\r\n }\r\n }\r\n}\r\n","<section class=\"table-ui table-ui--wrapper\" [ngClass]=\"{ 'table-ui__bordered': bordered, loading: loading }\">\r\n <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\r\n\r\n <div *ngIf=\"header\" class=\"table-ui__header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!(isEmptyMessage && isEmpty); else noDataTemplate\">\r\n <ng-content></ng-content>\r\n\r\n <div *ngIf=\"paginator\" class=\"table-ui__paginator\">\r\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!--#For Empty state -->\r\n <ng-template #noDataTemplate>\r\n <ecabs-empty-placeholder\r\n *ngIf=\"!loading\"\r\n [redirectPath]=\"redirectPath\"\r\n [isEmptyMessage]=\"isEmptyMessage\"\r\n [srcImage]=\"srcImageEmpty\"\r\n ></ecabs-empty-placeholder>\r\n </ng-template>\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TableComponent } from './ecabs-table.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { RouterModule } from '@angular/router';\r\nimport { EcabsEmptyPlaceholderModule } from '../ecabs-empty-placeholder/ecabs-empty-placeholder.module';\r\nimport { MatTableModule } from '@angular/material/table';\r\n\r\n@NgModule({\r\n declarations: [TableComponent],\r\n imports: [\r\n CommonModule,\r\n MatProgressBarModule,\r\n RouterModule,\r\n EcabsEmptyPlaceholderModule,\r\n ],\r\n exports: [TableComponent, MatTableModule, EcabsEmptyPlaceholderModule],\r\n})\r\nexport class EcabsTableModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-note',\r\n templateUrl: './ecabs-note.component.html',\r\n styleUrls: ['./ecabs-note.component.scss'],\r\n})\r\nexport class EcabsNoteComponent {\r\n @Input()\r\n type: 'default' | 'danger' | 'warn' | 'success' = 'default';\r\n\r\n get classByType(): string {\r\n switch (this.type) {\r\n case 'warn':\r\n return 'note--warn';\r\n\r\n case 'danger':\r\n return 'note--danger';\r\n\r\n case 'success':\r\n return 'note--success';\r\n\r\n default:\r\n return 'note--default';\r\n }\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"flex flex-row px-2 py-4 note items-center\" [ngClass]=\"classByType\">\r\n <div class=\"flex ml-2\">\r\n <mat-icon>info_outline</mat-icon>\r\n </div>\r\n <div class=\"ml-4 w-full\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsNoteComponent } from './ecabs-note.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsNoteComponent],\r\n imports: [CommonModule, MatIconModule],\r\n exports: [EcabsNoteComponent],\r\n})\r\nexport class EcabsNoteModule {}\r\n","import {\r\n Component,\r\n DestroyRef,\r\n Inject,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Observable, takeUntil } from 'rxjs';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { ButtonStyle } from '../base/consts/buttons.consts';\r\nimport {\r\n EcabsComponentsService,\r\n Ecabsi18n,\r\n} from '../base/services/ecabs-components.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ecabs-dialog-confirm',\r\n templateUrl: './ecabs-dialog-confirm.component.html',\r\n styleUrls: ['./ecabs-dialog-confirm.component.scss'],\r\n providers: [UnsubscribeService],\r\n})\r\nexport class EcabsDialogConfirmComponent implements OnInit, OnDestroy {\r\n message: string;\r\n color: ThemePalette = 'primary';\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: EcabsDialogConfirmComponentConfig,\r\n public dialogRef: MatDialogRef<EcabsDialogConfirmComponentConfig>,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n private readonly componentsService: EcabsComponentsService,\r\n private readonly destroyRef: DestroyRef,\r\n ) {}\r\n\r\n translations: Ecabsi18n;\r\n\r\n ngOnInit(): void {\r\n this.dialogRef.updateSize(this.data.width || '24rem');\r\n\r\n this.componentsService\r\n .getConfig()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((config) => {\r\n const { i18n } = config ?? {};\r\n const {\r\n confirmLabel,\r\n cancelLabel,\r\n hideConfirmButton,\r\n hideCancelButton,\r\n } = this.data ?? {};\r\n\r\n if (i18n) {\r\n this.data.confirmLabel = !hideConfirmButton\r\n ? confirmLabel || i18n?.confirmLabel\r\n : undefined;\r\n this.data.cancelLabel = !hideCancelButton\r\n ? cancelLabel || i18n?.cancelLabel\r\n : undefined;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeService.destroy();\r\n }\r\n\r\n closeDialog(): void {\r\n if (this.data.loading$) {\r\n this.data.loading$\r\n ?.pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((loading) => {\r\n if (!loading) {\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }\r\n\r\n closeFalsey(): void {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\nexport interface EcabsDialogConfirmComponentConfig {\r\n title?: string;\r\n message?: TemplateRef<NonNullable<unknown>>;\r\n color?: ThemePalette;\r\n titleColor?: ThemePalette;\r\n confirmLabel?: string;\r\n confirmStyle?: ButtonStyle;\r\n cancelLabel?: string;\r\n cancelStyle?: ButtonStyle;\r\n hideCtaButtons?: boolean;\r\n hideConfirmButton?: boolean;\r\n hideCancelButton?: boolean;\r\n isPopover?: boolean;\r\n width?: string;\r\n content?: string;\r\n useFullButtonSize?: boolean;\r\n loading$?: Observable<boolean>;\r\n disableConfirm$?: Observable<boolean>;\r\n}\r\n","<div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\r\n {{ data.title }}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content>\r\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\r\n <div mat-dialog-actions\r\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize}\"\r\n class=\"btn__group flex justify-end w-full\">\r\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n [style]=\"data?.cancelStyle || 'stroked'\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n [color]=\"data?.color || color\"\r\n [style]=\"data?.confirmStyle || 'flat'\"\r\n [loading]=\"data?.loading$ | async\"\r\n (click)=\"closeDialog()\"\r\n [disabled]=\"data?.disableConfirm$ | async\"\r\n (keydown.enter)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsDialogConfirmComponent } from './ecabs-dialog-confirm.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n@NgModule({\r\n declarations: [EcabsDialogConfirmComponent],\r\n imports: [CommonModule, MatDialogModule, EcabsButtonsModule, MatIconModule],\r\n})\r\nexport class EcabsDialogConfirmModule {}\r\n","import { Component, Inject, OnDestroy } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { Observable, Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ecabs-dialog-message',\r\n templateUrl: './ecabs-dialog-message.component.html',\r\n styleUrls: ['./ecabs-dialog-message.component.scss'],\r\n})\r\nexport class EcabsDialogMessageComponent implements OnDestroy {\r\n message: string;\r\n color: ThemePalette = 'primary';\r\n titleColor = 'success';\r\n private destroy$: Subject<any> = new Subject<any>();\r\n\r\n get classByType(): string {\r\n switch (this.data?.titleColor || this.titleColor) {\r\n case 'accent':\r\n return 'title--accent';\r\n\r\n case 'warn':\r\n return 'title--warn';\r\n\r\n case 'success':\r\n return 'title--success';\r\n\r\n default:\r\n return 'title--default';\r\n }\r\n }\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<EcabsDialogMessageComponentConfig>,\r\n @Inject(MAT_DIALOG_DATA) public data: EcabsDialogMessageComponentConfig,\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n closeDialog(): void {\r\n if (this.data.loading$) {\r\n this.data.loading$\r\n ?.pipe(takeUntil(this.destroy$))\r\n .subscribe((loading) => {\r\n if (!loading) {\r\n this.dialogRef.close(true);\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }\r\n}\r\n\r\nexport interface EcabsDialogMessageComponentConfig {\r\n title?: string;\r\n titleColor?: ThemePalette | 'success';\r\n message: string;\r\n color?: ThemePalette;\r\n confirmLabel?: string;\r\n isPopover?: boolean;\r\n isButtonBlock?: boolean;\r\n loading$?: Observable<boolean>;\r\n}\r\n","<div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon\r\n (click)=\"dialogRef.close(false)\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\"\r\n role=\"button\"\r\n >\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div *ngIf=\"data.title\" class=\"font-semibold heading--xs\" [ngClass]=\"classByType\">\r\n {{ data.title }}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content>\r\n {{data?.message}}\r\n</div>\r\n\r\n<div class=\"pb-6\">\r\n <div mat-dialog-actions class=\"btn__group flex justify-end w-full\" *ngIf=\"!data?.isPopover\">\r\n <ecabs-buttons [color]=\"data?.color || color\" [full]=\"data?.isButtonBlock\" [loading]=\"data.loading$ | async\" (click)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsDialogMessageComponent } from './ecabs-dialog-message.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n@NgModule({\r\n declarations: [EcabsDialogMessageComponent],\r\n imports: [CommonModule, MatDialogModule, EcabsButtonsModule, MatIconModule],\r\n})\r\nexport class EcabsDialogMessageModule {}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { Breadcrumb } from '../base/models/bread-crumb.models';\r\n\r\n@Component({\r\n selector: 'ecabs-breadcrumb',\r\n templateUrl: './ecabs-breadcrumb.component.html',\r\n styleUrls: ['./ecabs-breadcrumb.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EcabsBreadcrumbComponent {\r\n @Input() breadcrumb: Breadcrumb[];\r\n}\r\n","<ul class=\"flex text-gray-500 text-sm\">\r\n <li\r\n *ngFor=\"let item of breadcrumb; let counter = index\"\r\n [routerLink]=\"item.url\"\r\n [ngClass]=\"{ 'cursor-pointer': item.url }\"\r\n class=\"flex\"\r\n >\r\n <mat-icon class=\"!text-sm text-center text-gray-400\" *ngIf=\"counter !== 0\">keyboard_arrow_right</mat-icon>\r\n <span>{{ item.title }}</span>\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsBreadcrumbComponent } from './ecabs-breadcrumb.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [EcabsBreadcrumbComponent],\r\n imports: [CommonModule, MatIconModule, RouterModule],\r\n exports: [EcabsBreadcrumbComponent],\r\n})\r\nexport class EcabsBreadcrumbModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-language-selector',\r\n templateUrl: './ecabs-language-selector.component.html',\r\n styleUrls: ['./ecabs-language-selector.component.scss'],\r\n})\r\nexport class EcabsLanguageSelectorComponent implements OnChanges {\r\n @Input()\r\n languages: string[] = [];\r\n\r\n @Input()\r\n currentLanguage: string;\r\n\r\n @Input()\r\n showLabelTitle = true;\r\n\r\n @Input()\r\n flagOnly: boolean;\r\n\r\n @Input()\r\n tooltip: string;\r\n\r\n @Output()\r\n languageChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n selectedLang: string;\r\n\r\n //eslint-disable-next-line\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.selectedLang = this.currentLanguage || this.languages?.[0];\r\n }\r\n\r\n toggleLang(): void {\r\n return this.matchSelected()\r\n ? this.languageChanged.emit(this.matchSelected())\r\n : undefined;\r\n }\r\n\r\n matchSelected(): string {\r\n return this.languages?.find((lang) => lang === this.selectedLang);\r\n }\r\n\r\n standardLang(code: string): string {\r\n return this.standardise(code);\r\n }\r\n\r\n flagClass(lang: string): string {\r\n return `fi fi-${lang?.slice(-2).toLowerCase()}`;\r\n }\r\n\r\n private standardise(code: string): string {\r\n if (!code) {\r\n return undefined;\r\n }\r\n const lang = new Intl.DisplayNames([code], {\r\n type: 'language',\r\n languageDisplay: 'standard',\r\n });\r\n\r\n return lang.of(code);\r\n }\r\n}\r\n","<mat-form-field appearance=\"outline\"\r\n [ngClass]=\"{'flag-only': flagOnly}\">\r\n <mat-label></mat-label>\r\n <mat-select class=\"capitalize\"\r\n [(ngModel)]=\"selectedLang\"\r\n name=\"language\"\r\n (ngModelChange)=\"toggleLang()\"\r\n panelClass=\"wide-select\">\r\n <mat-select-trigger>\r\n <div class=\"flex items-center\" [matTooltip]=\"tooltip\">\r\n <span [ngClass]=\"flagClass(matchSelected())\"></span>\r\n <div *ngIf=\"!flagOnly\" class=\"ml-2\">{{ standardLang(matchSelected()) }}</div>\r\n </div>\r\n </mat-select-trigger>\r\n <mat-option class=\"capitalize\" *ngFor=\"let lang of languages\" [value]=\"lang\">\r\n <div class=\"flex items-center\">\r\n <span [ngClass]=\"flagClass(lang)\"></span>\r\n <div class=\"ml-2\">{{ standardLang(lang) }}</div>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsLanguageSelectorComponent } from './ecabs-language-selector.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n declarations: [EcabsLanguageSelectorComponent],\r\n imports: [\r\n CommonModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatTooltipModule,\r\n ],\r\n exports: [EcabsLanguageSelectorComponent],\r\n})\r\nexport class EcabsLanguageSelectorModule {}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsDynamicBgColor]',\r\n})\r\nexport class EcabsDynamicBgColorDirective implements OnChanges {\r\n @Input()\r\n params: string;\r\n\r\n @Input()\r\n saturation = 36;\r\n\r\n @Input()\r\n lightness = 80;\r\n\r\n constructor(private readonly elementRef: ElementRef) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { params } = changes ?? {};\r\n\r\n if (params?.currentValue) {\r\n this.changeBgColor(this.elementRef);\r\n }\r\n }\r\n\r\n changeBgColor(el: ElementRef): void {\r\n let hash = 0;\r\n for (let i = 0; i < this.params.length; i++) {\r\n hash = this.params.charCodeAt(i) + ((hash << 5) - hash);\r\n }\r\n\r\n const h = hash % 360;\r\n el.nativeElement.style.backgroundColor = `hsl(${h}, ${this.saturation}%, ${this.lightness}%)`;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsDynamicBgColorDirective } from './dynamic-bg-color.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsDynamicBgColorDirective],\r\n exports: [EcabsDynamicBgColorDirective],\r\n})\r\nexport class EcabsDynamicBgColorDirectiveModule {}\r\n","import {\r\n AfterViewInit,\r\n DestroyRef,\r\n Directive,\r\n Host,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\ninterface PageObject {\r\n length: number;\r\n pageIndex: number;\r\n pageSize: number;\r\n previousPageIndex: number;\r\n}\r\n\r\n@Directive({\r\n selector: '[ecabsPaginator]',\r\n})\r\nexport class EcabsPaginatorDirective implements AfterViewInit, OnChanges {\r\n @Input()\r\n length: number;\r\n\r\n private _rangeStart: number;\r\n private _rangeEnd: number;\r\n private _buttons = [];\r\n private _curPageObj: PageObject = {\r\n length: 0,\r\n pageIndex: 0,\r\n pageSize: 0,\r\n previousPageIndex: 0,\r\n };\r\n private _showTotalPages = 3;\r\n\r\n @Input()\r\n get showTotalPages(): number {\r\n return this._showTotalPages;\r\n }\r\n\r\n get inc(): number {\r\n return this._showTotalPages % 2 === 0\r\n ? this.showTotalPages / 2\r\n : (this.showTotalPages - 1) / 2;\r\n }\r\n\r\n get lastPageIndex(): number {\r\n return this.matPag.getNumberOfPages() - 1;\r\n }\r\n\r\n set showTotalPages(value: number) {\r\n this._showTotalPages = value % 2 === 0 ? value + 1 : value;\r\n }\r\n\r\n constructor(\r\n @Host()\r\n @Self()\r\n @Optional()\r\n private readonly matPag: MatPaginator,\r\n private readonly vr: ViewContainerRef,\r\n private readonly ren: Renderer2,\r\n private readonly destroyRef: DestroyRef,\r\n ) {\r\n // to rerender buttons on items per page change and first, last, next and prior buttons\r\n this.matPag.page\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((e: PageObject) => {\r\n this.pageChanged(e);\r\n });\r\n\r\n this.matPag.selectConfig = {\r\n panelClass: 'paginator--selector',\r\n };\r\n }\r\n\r\n pageChanged(page: PageObject): void {\r\n if (\r\n this._curPageObj.pageSize !== page.pageSize &&\r\n this._curPageObj.pageIndex !== 0\r\n ) {\r\n page.pageIndex = 0;\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n }\r\n this._curPageObj = page;\r\n this.initPageRange();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['length'] && !changes['length']?.firstChange) {\r\n this.pageChanged(this._curPageObj);\r\n }\r\n }\r\n\r\n //Initialize default state after view init\r\n public ngAfterViewInit(): void {\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n this.initPageRange();\r\n }\r\n\r\n private buildPageNumbers(): void {\r\n const actionContainer = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-mdc-paginator-range-actions',\r\n );\r\n\r\n // including flex box in container\r\n const container = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-mdc-paginator-container',\r\n );\r\n\r\n // removing item per page\r\n const itemPerPage = this.vr.element.nativeElement.querySelector(\r\n 'div.mat-mdc-paginator-page-size',\r\n );\r\n this.ren.appendChild(container, itemPerPage);\r\n\r\n // remove buttons before creating new ones\r\n if (this._buttons.length > 0) {\r\n this._buttons.forEach((button) => {\r\n this.ren.removeChild(actionContainer, button);\r\n });\r\n // Empty state array\r\n this._buttons.length = 0;\r\n }\r\n }\r\n\r\n // calculates the button range based on class input parameters and based on current page index value. Used to render new buttons after event.\r\n private initPageRange(): void {\r\n const middleIndex = (this._rangeStart + this._rangeEnd) / 2;\r\n\r\n this._rangeStart = this.calcRangeStart(middleIndex);\r\n this._rangeEnd = this.calcRangeEnd(middleIndex);\r\n\r\n this.buildPageNumbers();\r\n }\r\n\r\n // Helper function To calculate start of button range\r\n private calcRangeStart(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex === 0 && this._rangeStart !== 0:\r\n return 0;\r\n\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex - this.inc * 2\r\n : this._curPageObj.pageIndex - this.inc;\r\n\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeStart + 1;\r\n\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart > 0:\r\n return this._rangeStart - 1;\r\n\r\n default:\r\n return this._rangeStart;\r\n }\r\n }\r\n\r\n // Helper function to calculate end of button range\r\n private calcRangeEnd(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex === 0 &&\r\n this._rangeEnd !== this._showTotalPages:\r\n return this._showTotalPages - 1;\r\n\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex\r\n : this._curPageObj.pageIndex + 1;\r\n\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeEnd + 1;\r\n\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart >= 0 &&\r\n this._rangeEnd > this._showTotalPages - 1:\r\n return this._rangeEnd - 1;\r\n\r\n default:\r\n return this._rangeEnd;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsPaginatorDirective } from './paginator.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsPaginatorDirective],\r\n exports: [EcabsPaginatorDirective],\r\n})\r\nexport class EcabsPaginatorDirectiveModule {}\r\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { EcabsComponentsService } from '../services/ecabs-components.service';\r\n\r\n@Directive({\r\n selector: '[ecabsCheckPermissions]',\r\n})\r\nexport class EcabsCheckPermissionsDirective implements OnInit {\r\n @Input() permissions: string[];\r\n @Input() noPermissionMessage: string;\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private readonly ecabsComponentsService: EcabsComponentsService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.ecabsComponentsService.hasClaim(this.permissions)) {\r\n if (this.noPermissionMessage) {\r\n this.elementRef.nativeElement.innerHTML = this.noPermissionMessage;\r\n } else {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsCheckPermissionsDirective } from './check-permissions.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsCheckPermissionsDirective],\r\n exports: [EcabsCheckPermissionsDirective],\r\n})\r\nexport class EcabsCheckPermissionDirectiveModule {}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n OnDestroy,\r\n Output,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsDomObserver]',\r\n})\r\nexport class EcabsDomObserverDirective implements OnDestroy {\r\n @Output() readonly domChange: EventEmitter<MutationRecord> =\r\n new EventEmitter<MutationRecord>();\r\n\r\n changes: MutationObserver;\r\n\r\n constructor(private readonly elementRef: ElementRef) {\r\n const element = this.elementRef.nativeElement;\r\n\r\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n mutations.forEach((mutation: MutationRecord) =>\r\n this.domChange.emit(mutation),\r\n );\r\n });\r\n\r\n this.changes.observe(element, {\r\n attributes: true,\r\n childList: true,\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changes.disconnect();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsDomObserverDirective } from './dom-observer.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsDomObserverDirective],\r\n exports: [EcabsDomObserverDirective],\r\n})\r\nexport class EcabsDomObserverDirectiveModule {}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsFileDrop]',\r\n})\r\nexport class EcabsFileDropDirective {\r\n @Output() readonly filesDropped = new EventEmitter<FileList>();\r\n @Output() readonly filesHovered = new EventEmitter<boolean>();\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop($event): void {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.filesDropped.emit($event.dataTransfer.files);\r\n this.filesHovered.emit(false);\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDragOver($event): void {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.filesHovered.emit(true);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n onDragLeave(): void {\r\n this.filesHovered.emit(false);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsFileDropDirective } from './file-drop.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsFileDropDirective],\r\n exports: [EcabsFileDropDirective],\r\n})\r\nexport class EcabsFileDropDirectiveModule {}\r\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';\r\n\r\n@Directive({\r\n selector: '[ecabsTimeRange]',\r\n})\r\nexport class EcabsTimeRangeDirective implements OnInit, OnDestroy {\r\n @Input() isDateTimeMask = false;\r\n @Input() considerSeconds = false;\r\n @Input() all = 'All';\r\n\r\n maskedInputController;\r\n maskDateTime = [\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ' ',\r\n '-',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n ':',\r\n /\\d/,\r\n /\\d/,\r\n ];\r\n\r\n constructor(private readonly element: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.maskedInputController = textMask.maskInput({\r\n inputElement: this.element.nativeElement,\r\n guide: true,\r\n showMask: false,\r\n keepCharPositions: true,\r\n mask: this.maskDateTime,\r\n pipe: function (conformedValue) {\r\n if (conformedValue === '__:__ - __:__') {\r\n return this.all;\r\n }\r\n\r\n return conformedValue;\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.maskedInputController.destroy();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { EcabsTimeRangeDirective } from './time-range.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsTimeRangeDirective],\r\n exports: [EcabsTimeRangeDirective],\r\n})\r\nexport class EcabsTimeRangeDirectiveModule {}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControlName][ecabsUppercaseInput]',\r\n})\r\nexport class EcabsUppercaseMaskDirective {\r\n constructor(private readonly control: NgControl) {}\r\n\r\n @HostListener('input', ['$event.target'])\r\n onInput(input: HTMLInputElement): void {\r\n const position = input.selectionStart;\r\n this.control.control.setValue(input.value.toUpperCase());\r\n input.setSelectionRange(position, position);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsUppercaseMaskDirective } from './uppercase-mask.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsUppercaseMaskDirective],\r\n exports: [EcabsUppercaseMaskDirective],\r\n})\r\nexport class EcabsUppercaseMaskDirectiveModule {}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n Input,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsAttachEmbeddedView]',\r\n})\r\nexport class EcabsAttachEmbeddedViewDirective implements AfterViewInit {\r\n @Input()\r\n embeddedTemplate: TemplateRef<any>;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() =>\r\n this.viewContainerRef.createEmbeddedView(this.embeddedTemplate),\r\n );\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsAttachEmbeddedViewDirective } from './attach-embedded-view.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsAttachEmbeddedViewDirective],\r\n exports: [EcabsAttachEmbeddedViewDirective],\r\n})\r\nexport class EcabsAttachEmbeddedViewDirectiveModule {}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ecabsElementMultiplier]',\r\n})\r\nexport class EcabsElementMultiplierDirective {\r\n @Input() set appElementMultiplier(times: number) {\r\n for (let i = 0; i < times; i++) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n }\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n ) {}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsElementMultiplierDirective } from './element-multiplier.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsElementMultiplierDirective],\r\n exports: [EcabsElementMultiplierDirective],\r\n})\r\nexport class EcabsElementMultiplierDirectiveModule {}\r\n","import { Directive, ElementRef, OnInit } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Directive({\r\n selector: '[matTooltip][ecabsShowOnTruncated]',\r\n})\r\nexport class EcabsShowOnTruncatedDirective implements OnInit {\r\n constructor(\r\n private matTooltip: MatTooltip,\r\n private elementRef: ElementRef<HTMLElement>,\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n setTimeout(() => {\r\n const element = this.elementRef.nativeElement;\r\n this.matTooltip.disabled = element.scrollWidth <= element.clientWidth;\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsShowOnTruncatedDirective } from './show-on-truncated.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [EcabsShowOnTruncatedDirective],\r\n exports: [EcabsShowOnTruncatedDirective],\r\n})\r\nexport class EcabsShowOnTruncatedDirectiveModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { FormControlValidation } from '../base/models/validation.models';\r\n\r\n@Component({\r\n selector: 'ecabs-validation',\r\n templateUrl: './ecabs-validation.component.html',\r\n styleUrls: ['./ecabs-validation.component.scss'],\r\n})\r\nexport class EcabsValidationComponent {\r\n @Input() validations: FormControlValidation[];\r\n @Input() form: UntypedFormGroup;\r\n @Input() title: string;\r\n}\r\n","<div class=\"form-validations\">\r\n <div class=\"header font-medium\">{{ title }}</div>\r\n <ecabs-validations-messages\r\n *ngFor=\"let validation of validations\"\r\n [showValidationOnNotTouched]=\"true\"\r\n [element]=\"form.controls[validation.controlName]\"\r\n [updatedErrors]=\"validation.errors\"\r\n ></ecabs-validations-messages>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsValidationComponent } from './ecabs-validation.component';\r\nimport { EcabsValidationModule } from '../base/validation/validation.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsValidationComponent],\r\n imports: [CommonModule, EcabsValidationModule],\r\n exports: [EcabsValidationComponent],\r\n})\r\nexport class EcabsValidationViewModule {}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-active-status-filter',\r\n templateUrl: './ecabs-active-status-filter.component.html',\r\n styleUrls: ['./ecabs-active-status-filter.component.scss'],\r\n})\r\nexport class EcabsActiveStatusFilterComponent {\r\n @Input() statuses: { text: string; value: boolean }[] = [];\r\n @Input() initialStatus: boolean;\r\n\r\n @Output()\r\n readonly statusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n onFilter(currFilter: boolean): void {\r\n this.initialStatus = currFilter;\r\n this.statusChange.emit(currFilter);\r\n }\r\n\r\n checkSelectableStatus(status: boolean): boolean {\r\n return this.initialStatus === status;\r\n }\r\n}\r\n","<div class=\"mb-5 mt-10\">\r\n <mat-chip-listbox>\r\n <mat-chip-option *ngFor=\"let status of statuses\"\r\n class=\"!rounded-full\"\r\n [ngClass]=\"checkSelectableStatus(status?.value) ? 'chip--selected' : 'chip--not-selected'\"\r\n [selected]=\"checkSelectableStatus(status?.value)\"\r\n (keydown.enter)=\"onFilter(status?.value)\"\r\n (click)=\"onFilter(status?.value)\">\r\n {{ status.text }}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { EcabsActiveStatusFilterComponent } from './ecabs-active-status-filter.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsActiveStatusFilterComponent],\r\n imports: [CommonModule, MatChipsModule, MatIconModule],\r\n exports: [EcabsActiveStatusFilterComponent],\r\n})\r\nexport class EcabsActiveStatusFilterModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-profile',\r\n templateUrl: './ecabs-profile.component.html',\r\n styleUrls: ['./ecabs-profile.component.scss'],\r\n})\r\nexport class EcabsProfileComponent implements OnChanges {\r\n @Input()\r\n avatar = '/assets/images/profile-icon.png';\r\n\r\n @Input() name: string;\r\n @Input() title: string;\r\n\r\n @Output()\r\n avatarChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n useAvatar = false;\r\n initials: string;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { avatar, name } = changes ?? {};\r\n\r\n this.useAvatar = !!avatar?.currentValue;\r\n\r\n if (name?.currentValue) {\r\n // get only first and last name in case name has multiple words\r\n const shortName = this.name.replace(/([a-z]+) .* ([a-z]+)/i, '$1 $2');\r\n\r\n this.initials = shortName\r\n .split(/\\s/)\r\n .reduce((_, word) => _ + word.slice(0, 1), '')\r\n .toLocaleUpperCase();\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable-next-line -->\r\n<ul (click)=\"avatarChange.emit()\" class=\"flex text-black cursor-pointer\">\r\n <li class=\"md:mr-3\">\r\n <div *ngIf=\"!useAvatar; else avatarTpl\" ecabsDynamicBgColor [params]=\"name\"\r\n class=\"flex h-12 w-12 rounded-full bg-gray-200 items-center justify-center text-white\">\r\n <span class=\"text-xl font-medium\">{{ initials }}</span>\r\n </div>\r\n </li>\r\n\r\n <li class=\"hidden md:flex flex-1 flex-col justify-center\">\r\n <div class=\"font-semibold\">{{ name }}</div>\r\n <div class=\"text-xs\">{{ title }}</div>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #avatarTpl>\r\n <!-- eslint-disable-next-line -->\r\n <img [src]=\"avatar\" class=\"rounded-full\"/>\r\n</ng-template>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsProfileComponent } from './ecabs-profile.component';\r\nimport { EcabsDynamicBgColorDirectiveModule } from '../base/directives/dynamic-bg-color.directive.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsProfileComponent],\r\n imports: [CommonModule, EcabsDynamicBgColorDirectiveModule],\r\n exports: [EcabsProfileComponent],\r\n})\r\nexport class EcabsProfileModule {}\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HeaderService {\r\n _template: Subject<TemplateRef<any>> = new Subject<TemplateRef<any>>();\r\n template$: Observable<TemplateRef<any>> = this._template.asObservable();\r\n\r\n setHeaderTemplate(ref: TemplateRef<any>): void {\r\n this._template.next(ref);\r\n }\r\n\r\n getHeaderTemplate(): Observable<TemplateRef<any>> {\r\n return this.template$.pipe(map((template) => template));\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { HeaderModel } from '../base/models/header.models';\r\nimport { HeaderService } from '../base/services/header.service';\r\n\r\n@Component({\r\n selector: 'ecabs-header',\r\n templateUrl: './ecabs-header.component.html',\r\n styleUrls: ['./ecabs-header.component.scss'],\r\n})\r\nexport class EcabsHeaderComponent implements OnChanges, OnInit, OnDestroy {\r\n private readonly subscription = new Subscription();\r\n\r\n @ViewChild('basicHeader', { static: true })\r\n basicHeader: ElementRef;\r\n\r\n @Input()\r\n header: HeaderModel;\r\n\r\n @Input()\r\n user: { name: string; title: string };\r\n\r\n @Input()\r\n avatar: string;\r\n\r\n @Input()\r\n loading = false;\r\n\r\n @Output()\r\n avatarChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n @Output()\r\n readonly toggleNav: EventEmitter<boolean> = new EventEmitter();\r\n\r\n template: TemplateRef<any>;\r\n\r\n constructor(private readonly panelService: HeaderService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { header } = changes ?? {};\r\n\r\n if (header?.currentValue) {\r\n this.basicHeader.nativeElement.innerHTML = this.header?.title || '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.panelService.getHeaderTemplate().subscribe((template) => {\r\n this.template = template;\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","<div [ngClass]=\"{loading}\" class=\"progress-bar\"></div>\r\n\r\n<ul class=\"flex pb-4 pt-3 px-10\">\r\n <li class=\"flex flex-col flex-1 justify-center\">\r\n <div class=\"sm:hidden md:block\">\r\n <ecabs-breadcrumb [breadcrumb]=\"header?.breadcrumb\"></ecabs-breadcrumb>\r\n </div>\r\n\r\n <div class=\"heading--lg text-brand-dark font-medium\">\r\n <mat-icon class=\"mr-3 text-gray-500\" (click)=\"toggleNav.emit()\" role=\"button\">menu</mat-icon>\r\n\r\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\r\n <div #basicHeader></div>\r\n </div>\r\n </li>\r\n\r\n <li>\r\n <div class=\"flex items-center\">\r\n <ecabs-profile [name]=\"user?.name\" [title]=\"user?.title\" [avatar]=\"avatar\"\r\n (avatarChange)=\"avatarChange.emit()\"></ecabs-profile>\r\n </div>\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsHeaderComponent } from './ecabs-header.component';\r\nimport { EcabsBreadcrumbModule } from '../ecabs-breadcrumb/ecabs-breadcrumb.module';\r\nimport { EcabsProfileModule } from '../ecabs-profile/ecabs-profile.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@NgModule({\r\n declarations: [EcabsHeaderComponent],\r\n imports: [\r\n CommonModule,\r\n EcabsBreadcrumbModule,\r\n EcabsProfileModule,\r\n MatIconModule,\r\n ],\r\n exports: [EcabsHeaderComponent],\r\n})\r\nexport class EcabsHeaderModule {}\r\n","import {\r\n ChangeContext,\r\n Options,\r\n SliderComponent,\r\n} from '@angular-slider/ngx-slider';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { PointsConfigSlider } from '../base/models/slider.models';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n} from '@angular/forms';\r\nimport ElementBaseComponent from '../base/element-base';\r\n\r\n@Component({\r\n selector: 'ecabs-slider',\r\n templateUrl: './ecabs-slider.component.html',\r\n styleUrls: ['./ecabs-slider.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsSliderComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsSliderComponent\r\n extends ElementBaseComponent\r\n implements ControlValueAccessor, OnDestroy, OnInit, OnChanges\r\n{\r\n @ViewChild('slider')\r\n slider!: SliderComponent;\r\n @Input() max: number;\r\n @Input() point: number;\r\n @Input() pointsConfig: PointsConfigSlider;\r\n @Output() readonly pointUpdated = new EventEmitter<number>();\r\n sliderForm: UntypedFormGroup;\r\n slideSub!: any;\r\n options: Options = {\r\n floor: 0,\r\n ceil: 0,\r\n enforceRange: true,\r\n enforceStep: true,\r\n };\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n get value(): number {\r\n return this.sliderForm.get('slider').value;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && this.value !== val) {\r\n this.sliderForm.setValue({ slider: val });\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sliderForm = new UntypedFormGroup({\r\n slider: new UntypedFormControl({ value: 0 }),\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n\r\n this.slideSub = this.sliderForm.valueChanges.subscribe((formVal) => {\r\n this.value = formVal?.slider;\r\n this.onChange(this.value);\r\n this.onTouch(this.value);\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes['max'] &&\r\n changes['max']?.currentValue != changes['max']?.previousValue\r\n ) {\r\n this.options = {\r\n floor: this.pointsConfig.floor,\r\n ceil: this.pointsConfig.ceil,\r\n step: this.pointsConfig.step,\r\n maxLimit: this.max,\r\n tickStep: this.pointsConfig.tickStep,\r\n showTicks: true,\r\n enforceRange: true,\r\n enforceStep: true,\r\n };\r\n }\r\n }\r\n\r\n onChangeValue($event: ChangeContext): void {\r\n this.pointUpdated.emit($event.value);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.slideSub?.unsubscribe();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = (): void => {};\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = (): void => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"sliderForm\">\r\n <ngx-slider\r\n #slider\r\n class=\"custom-slider\"\r\n [formControlName]=\"'slider'\"\r\n [value]=\"point\"\r\n name=\"slider\"\r\n (userChangeEnd)=\"onChangeValue($event)\"\r\n [options]=\"options\"\r\n ></ngx-slider>\r\n </form>\r\n</ecabs-element-wrapper>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { EcabsSliderComponent } from './ecabs-slider.component';\r\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [EcabsSliderComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxSliderModule,\r\n ],\r\n exports: [EcabsSliderComponent],\r\n})\r\nexport class EcabsSliderModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncate',\r\n})\r\nexport class EcabsTruncatePipe implements PipeTransform {\r\n transform(\r\n value: string,\r\n limit = 24,\r\n trimAtWords = false,\r\n trail = '...',\r\n ): string {\r\n if (trimAtWords) {\r\n limit = value.substr(0, limit).lastIndexOf(' ');\r\n }\r\n\r\n return value?.length > limit ? value.substr(0, limit) + trail : value;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsTruncatePipe } from './truncate.pipe';\r\n\r\n@NgModule({\r\n declarations: [EcabsTruncatePipe],\r\n\r\n imports: [CommonModule],\r\n exports: [EcabsTruncatePipe],\r\n})\r\nexport class EcabsPipesModule {}\r\n","import { SidebarMenuItem } from '../models/sidebar.models';\r\n\r\nexport function matchMenuToUrl(\r\n url: string,\r\n menu: SidebarMenuItem[],\r\n): SidebarMenuItem {\r\n if (!menu?.length) {\r\n return undefined;\r\n }\r\n\r\n for (const node of menu) {\r\n if (node.url === url || url.includes(node.url)) {\r\n return node;\r\n }\r\n\r\n if (node.subItems) {\r\n const child = matchMenuToUrl(url, node.subItems);\r\n\r\n if (child) {\r\n return node;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { SidebarMenuItem } from '../base/models/sidebar.models';\r\nimport { matchMenuToUrl } from '../base/utils/menu-utils';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\nimport { filter, first, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ecabs-menu-items',\r\n templateUrl: './ecabs-menu-items.component.html',\r\n styleUrls: ['./ecabs-menu-items.component.scss'],\r\n providers: [UnsubscribeService],\r\n})\r\nexport class EcabsMenuItemsComponent implements OnChanges, OnDestroy {\r\n @Input()\r\n menuItems: SidebarMenuItem[];\r\n\r\n @Input()\r\n minimizeSidebar: boolean;\r\n\r\n @Input()\r\n truncateTo = 20;\r\n\r\n @Output()\r\n toggleSidebar = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private readonly unsubscribeService: UnsubscribeService,\r\n private readonly iconRegistry: MatIconRegistry,\r\n private readonly sanitizer: DomSanitizer,\r\n private readonly router: Router,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { menuItems } = changes;\r\n\r\n if (menuItems?.currentValue?.length) {\r\n const itemsWithResources = this.menuItems.filter(\r\n (item) => !!item.iconResource,\r\n );\r\n\r\n itemsWithResources?.map(({ iconResource }) => {\r\n const { name, path } = iconResource ?? {};\r\n\r\n this.iconRegistry.addSvgIcon(\r\n name,\r\n this.sanitizer.bypassSecurityTrustResourceUrl(path),\r\n );\r\n });\r\n\r\n this.matchMenuItemsOnLoad();\r\n this.trackMenu();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeService.destroy();\r\n }\r\n\r\n matchMenuItemsOnLoad(): void {\r\n this.router.events\r\n .pipe(\r\n first(),\r\n takeUntil(this.unsubscribeService.subscription()),\r\n filter((event) => event instanceof NavigationStart),\r\n )\r\n .subscribe((event: NavigationStart) => {\r\n const matchedMenuItemFromRoute: SidebarMenuItem = matchMenuToUrl(\r\n event.url,\r\n this.menuItems,\r\n );\r\n\r\n if (matchedMenuItemFromRoute) {\r\n if (matchedMenuItemFromRoute?.subItems?.length > 0) {\r\n const matchedSubmenuItem = matchMenuToUrl(\r\n event.url,\r\n matchedMenuItemFromRoute.subItems,\r\n );\r\n\r\n if (matchedSubmenuItem) {\r\n matchedSubmenuItem.expand = true;\r\n }\r\n }\r\n\r\n this.menuItems\r\n .filter((item) => item.expand)\r\n ?.map((item) => this.closeMenuGroup(item));\r\n const toExpand = this.menuItems.find(\r\n (item) =>\r\n JSON.stringify(item) ===\r\n JSON.stringify(matchedMenuItemFromRoute) && !item.expand,\r\n );\r\n toExpand.expand = this.minimizeSidebar ? true : !toExpand.expand;\r\n }\r\n });\r\n }\r\n\r\n trackMenu(): void {\r\n this.router.events\r\n .pipe(\r\n takeUntil(this.unsubscribeService.subscription()),\r\n filter((event) => event instanceof NavigationStart),\r\n )\r\n .subscribe((event: NavigationStart) => {\r\n if (!matchMenuToUrl(event.url, this.menuItems)) {\r\n this.menuItems\r\n ?.filter((item) => !!item.expand)\r\n ?.map((item) => {\r\n this.closeMenuGroup(item);\r\n });\r\n } else {\r\n this.matchActiveItem(event.url);\r\n }\r\n });\r\n }\r\n\r\n toggleItem(item: SidebarMenuItem, index: number): void {\r\n if (this.minimizeSidebar) {\r\n this.toggleSidebar.emit();\r\n\r\n setTimeout(() => {\r\n const element = document.getElementById(`${index}`);\r\n element.scrollIntoView({ behavior: 'smooth' });\r\n }, 100);\r\n }\r\n\r\n this.menuItems\r\n .filter(\r\n (menuItem) =>\r\n JSON.stringify(menuItem) !== JSON.stringify(item) &&\r\n !!menuItem?.expand,\r\n )\r\n ?.map((menu) => {\r\n this.closeMenuGroup(menu);\r\n });\r\n\r\n item.expand = item.url !== this.router.url ? true : item.expand;\r\n }\r\n\r\n toggleSubItem(item: SidebarMenuItem, siblings: SidebarMenuItem[]): void {\r\n siblings\r\n .filter(({ url }) => url !== item.url)\r\n .map((filtered) => (filtered.expand = false));\r\n\r\n if (item.url !== this.router.url) {\r\n item.expand = !item.expand;\r\n }\r\n }\r\n\r\n closeMenuGroup(item: SidebarMenuItem): void {\r\n item.expand = false;\r\n item.subItems?.map((subItem) => (subItem.expand = false));\r\n }\r\n\r\n matchActiveItem(url: string): void {\r\n const matchedMenuItemFromRoute: SidebarMenuItem = matchMenuToUrl(\r\n url,\r\n this.menuItems,\r\n );\r\n\r\n if (matchedMenuItemFromRoute?.subItems?.length > 0) {\r\n const matchedSubmenuItem: SidebarMenuItem = matchMenuToUrl(\r\n url,\r\n matchedMenuItemFromRoute.subItems,\r\n );\r\n\r\n this.menuItems\r\n ?.find((item) => item.url === matchedMenuItemFromRoute.url)\r\n ?.subItems.map((subItem) => {\r\n subItem.expand = subItem?.url === matchedSubmenuItem?.url;\r\n });\r\n }\r\n }\r\n}\r\n","<ul>\r\n <li\r\n *ngFor=\"let item of menuItems; let i = index\"\r\n class=\"mb-2 hover:text-brand-dark cursor-pointer\"\r\n [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\"\r\n >\r\n <a (click)=\"toggleItem(item, i)\" [id]=\"i\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n class=\"p-4 flex items-center h-max\"\r\n [ngClass]=\"item.expand ? 'text-brand-dark' : 'text-gray-500'\"\r\n >\r\n <mat-icon [svgIcon]=\"item.iconResource?.name || ''\"\r\n class=\"inline-block align-middle mr-4 text-inherit hover:text-inherit\">\r\n {{ item.icon }}\r\n </mat-icon>\r\n <span *ngIf=\"!minimizeSidebar\"\r\n class=\"inline-block align-middle\">\r\n {{ item.title }}\r\n </span>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n</ul>\r\n\r\n<ng-template #firstChildren let-subItems=\"subItems\">\r\n <ng-container *ngIf=\"!minimizeSidebar\">\r\n <ul class=\"ml-12\">\r\n <li *ngFor=\"let item of subItems\" [ngClass]=\"item.expand ? 'font-bold text-brand-dark' : 'text-gray-500'\">\r\n <a #rla=\"routerLinkActive\"\r\n (click)=\"toggleSubItem(item, subItems)\"\r\n class=\"text-sm font-light p-4 h-12 rounded-md hover:text-brand-dark flex items-center\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n >\r\n <span [title]=\"item.title\">\r\n {{ item.title | truncate: truncateTo }}\r\n </span>\r\n <div *ngIf=\"item.subItems?.length > 0\" class=\"flex-1 text-right\">\r\n <mat-icon class=\"align-middle hover:text-inherit\" [ngClass]=\"{ 'rotate-90': item.expand }\">\r\n keyboard_arrow_right\r\n </mat-icon>\r\n </div>\r\n </a>\r\n <ng-container *ngIf=\"item.expand && item.subItems?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\r\n </ng-container>\r\n </li>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #secondChildren let-subItems=\"subItems\">\r\n <ul class=\"ml-3\">\r\n <li *ngFor=\"let item of subItems\">\r\n <a #rla=\"routerLinkActive\"\r\n [ngClass]=\"item.expand && rla.isActive ? 'text-brand-dark' : 'text-gray-500'\"\r\n [routerLink]=\"item.url ? [item.url] : []\"\r\n [routerLinkActive]=\" item.url ? 'bg-brand-300 text-brand-dark' : ''\"\r\n class=\"text-xs font-light block p-4 h-12 rounded-md hover:text-brand-dark\">\r\n <span>{{ item.title }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</ng-template>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { SidebarMenuItem } from '../base/models/sidebar.models';\r\n\r\n@Component({\r\n selector: 'ecabs-sidebar',\r\n templateUrl: './ecabs-sidebar.component.html',\r\n styleUrls: ['./ecabs-sidebar.component.scss'],\r\n})\r\nexport class EcabsSidebarComponent {\r\n @Input()\r\n allMenuItems: SidebarMenuItem[];\r\n\r\n @Input()\r\n logoutText = 'Logout';\r\n\r\n @Input()\r\n secondaryMenu: TemplateRef<any>;\r\n\r\n @Input()\r\n logo: TemplateRef<any>;\r\n\r\n @Output()\r\n readonly logout = new EventEmitter();\r\n\r\n @Output()\r\n readonly langChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n readonly sidebarChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n minimizeSidebar: boolean;\r\n\r\n onLogout(): void {\r\n this.logout.emit();\r\n }\r\n\r\n toggle(): void {\r\n this.minimizeSidebar = !this.minimizeSidebar;\r\n this.sidebarChange.emit(this.minimizeSidebar);\r\n }\r\n}\r\n","<section [ngClass]=\"minimizeSidebar ? 'w-16' : 'w-72'\" class=\"h-full\">\r\n <ul class=\"relative h-full p-2 flex flex-col\">\r\n <li *ngIf=\"logo\" [ngClass]=\"minimizeSidebar ? 'w-full items-center text-center' : 'w-20 ml-10'\" class=\"py-8\">\r\n <ng-container *ngTemplateOutlet=\"logo\"></ng-container>\r\n </li>\r\n\r\n <li [ngClass]=\"minimizeSidebar ? 'overflow-visible' : 'overflow-auto'\" class=\"mb-16 pr-1\">\r\n <ecabs-menu-items [menuItems]=\"allMenuItems\" [minimizeSidebar]=\"minimizeSidebar\"\r\n (toggleSidebar)=\"toggle()\"></ecabs-menu-items>\r\n </li>\r\n\r\n <li class=\"mt-auto\">\r\n <ul>\r\n <li *ngIf=\"secondaryMenu\" class=\"flex justify-center mb-5\">\r\n <ng-container *ngTemplateOutlet=\"secondaryMenu\"></ng-container>\r\n </li>\r\n\r\n <li class=\"flex cursor-pointer items-center w-full p-4 logout-btn\">\r\n <!-- eslint-disable-next-line -->\r\n <a class=\"text-gray-500\" (click)=\"onLogout()\">\r\n <mat-icon class=\"inline-block align-middle mr-4\">exit_to_app</mat-icon>\r\n <span class=\"inline-block align-middle\" *ngIf=\"!minimizeSidebar\">{{ logoutText }}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n\r\n <!--#::TODO Find alternative to display correctly -->\r\n<!-- <div class=\"hidden md:block absolute z-20 -right-3 top-[calc(85%-1rem)]-->\r\n<!-- rounded-full bg-white text-brand-dark shadow-md cursor-pointer hover:bg-gray-100\"-->\r\n<!-- (click)=\"toggle()\">-->\r\n<!-- <mat-icon class=\"inline-block align-middle {{ !minimizeSidebar ? 'rotate-180' : '' }}\">keyboard_arrow_right</mat-icon>-->\r\n<!-- </div>-->\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsMenuItemsComponent } from './ecabs-menu-items.component';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { EcabsPipesModule } from '../base/pipes/pipes.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsMenuItemsComponent],\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n MatIconModule,\r\n EcabsPipesModule,\r\n ],\r\n exports: [EcabsMenuItemsComponent],\r\n})\r\nexport class EcabsMenuItemsModule {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecabs-logo',\r\n templateUrl: './ecabs-logo.component.html',\r\n styleUrls: ['./ecabs-logo.component.scss'],\r\n})\r\nexport class EcabsLogoComponent {\r\n @Input()\r\n collapsed = false;\r\n\r\n @Input()\r\n logo: string;\r\n\r\n @Input()\r\n subtitle: string;\r\n\r\n @Input()\r\n logoAlt: string;\r\n}\r\n","<ul *ngIf=\"logo || subtitle\">\r\n <li *ngIf=\"logo\" class=\"w-full\">\r\n <img [src]=\"logo\" [alt]=\"logoAlt\"/>\r\n </li>\r\n\r\n <li *ngIf=\"subtitle\" [ngClass]=\"collapsed ? 'text-collapse' : 'text-sm'\" class=\"text-brand-dark mt-2\">\r\n {{ subtitle }}\r\n </li>\r\n</ul>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsLogoComponent } from './ecabs-logo.component';\r\n\r\n@NgModule({\r\n declarations: [EcabsLogoComponent],\r\n imports: [CommonModule],\r\n exports: [EcabsLogoComponent],\r\n})\r\nexport class EcabsLogoModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsSidebarComponent } from './ecabs-sidebar.component';\r\nimport { EcabsLanguageSelectorModule } from '../ecabs-language-selector/ecabs-language-selector.module';\r\nimport { EcabsMenuItemsModule } from '../ecabs-menu-items/ecabs-menu-items.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { RouterLink } from '@angular/router';\r\nimport { EcabsLogoModule } from '../ecabs-logo/ecabs-logo.module';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\n\r\n@NgModule({\r\n declarations: [EcabsSidebarComponent],\r\n imports: [\r\n CommonModule,\r\n EcabsLanguageSelectorModule,\r\n EcabsMenuItemsModule,\r\n MatIconModule,\r\n RouterLink,\r\n EcabsLogoModule,\r\n MatSidenavModule,\r\n ],\r\n exports: [EcabsSidebarComponent],\r\n})\r\nexport class EcabsSidebarModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { UnsubscribeService } from '../../public-api';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport PlaceResult = google.maps.places.PlaceResult;\r\n\r\n@Component({\r\n selector: 'ecabs-place-autocomplete',\r\n templateUrl: './ecabs-place-autocomplete.component.html',\r\n styleUrls: ['./ecabs-place-autocomplete.component.scss'],\r\n providers: [\r\n UnsubscribeService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsPlaceAutocompleteComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EcabsPlaceAutocompleteComponent\r\n extends EcabsElementBaseComponent\r\n implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor\r\n{\r\n @Input() showDeleteItem = false;\r\n @Input() showSuffix = false;\r\n @Input() countryCode = 'MT';\r\n @Input() googleLoaded: boolean;\r\n\r\n @Output() readonly placeResult: EventEmitter<{\r\n place: PlaceResult;\r\n text: string;\r\n }> = new EventEmitter();\r\n\r\n @Output() deleteItem = new EventEmitter();\r\n\r\n val!: string;\r\n listener: google.maps.MapsEventListener;\r\n\r\n get value(): string {\r\n return this.val;\r\n }\r\n\r\n set value(val) {\r\n if (val !== undefined && val !== null && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly ngZone: NgZone,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n private readonly elementRef: ElementRef,\r\n private readonly injector: Injector,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { googleLoaded } = changes ?? {};\r\n\r\n if (googleLoaded?.currentValue) {\r\n this.initGoogle();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(\r\n NgControl,\r\n null,\r\n ) as NgControl;\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeService.destroy();\r\n\r\n if (this.listener) {\r\n this.listener.remove();\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n onDeleteItem(): void {\r\n this.deleteItem.emit();\r\n }\r\n\r\n onClean(): void {\r\n this.value = '';\r\n this.onTouch();\r\n }\r\n\r\n private initGoogle(): void {\r\n const autocomplete = new google.maps.places.Autocomplete(\r\n this.getElement(),\r\n {\r\n types: [],\r\n componentRestrictions: { country: [this.countryCode] },\r\n fields: ['address_components', 'geometry.location'],\r\n },\r\n );\r\n\r\n this.listener = autocomplete.addListener('place_changed', () => {\r\n this.ngZone.run(() => {\r\n const place = autocomplete.getPlace();\r\n\r\n // verify result\r\n if (place.geometry === undefined || place.geometry === null) {\r\n return;\r\n }\r\n\r\n this.placeResult.emit({\r\n place: place,\r\n text: this.getElement().value,\r\n });\r\n });\r\n });\r\n }\r\n\r\n private getElement(): any {\r\n return this.elementRef.nativeElement.querySelector('.form-field__input');\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\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 autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (click)=\"onDeleteItem()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EcabsPlaceAutocompleteComponent } from './ecabs-place-autocomplete.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsPlaceAutocompleteComponent],\r\n imports: [CommonModule, ElementWrapperModule, FormsModule, MatIconModule],\r\n exports: [EcabsPlaceAutocompleteComponent],\r\n})\r\nexport class EcabsPlaceAutocompleteModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n UntypedFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { format, isValid } from 'date-fns';\r\nimport Holidays from 'date-holidays';\r\n\r\nimport {\r\n MatDatepicker,\r\n MatDatepickerInputEvent,\r\n} from '@angular/material/datepicker';\r\n\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport {\r\n EcabsDatePickerHolidayOptions,\r\n EcabsDatePickerTranslations,\r\n} from '../base/models/ecabs-date-picker-translations.models';\r\n\r\nimport { EcabsDatePickerHeaderService } from '../base/services/ecabs-date-picker-translations.service';\r\nimport { UnsubscribeService } from '../base/services/unsubscribe.service';\r\n\r\nimport { EcabsDatePickerHeaderComponent } from '../../public-api';\r\n\r\n@Component({\r\n selector: 'ecabs-multiple-dates-picker',\r\n templateUrl: './ecabs-multiple-dates-picker.component.html',\r\n styleUrls: ['./ecabs-multiple-dates-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: EcabsMultipleDatesPickerComponent,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n})\r\nexport class EcabsMultipleDatesPickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @ViewChild('picker', { static: true }) _picker: MatDatepicker<Date>;\r\n\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() touchUi = false;\r\n @Input() cancelLabel: string;\r\n @Input() applyLabel: string;\r\n @Input() excludeHolidays: boolean;\r\n @Input() excludeWeekends: boolean;\r\n @Input() holidayOptions: EcabsDatePickerHolidayOptions;\r\n\r\n @Output() modelChange = new EventEmitter<Date[]>();\r\n\r\n val: string | number;\r\n header = EcabsDatePickerHeaderComponent;\r\n translationConfig: EcabsDatePickerTranslations;\r\n\r\n public CLOSE_ON_SELECTED = false;\r\n public init = new Date();\r\n public resetModel = new Date();\r\n public model = [];\r\n\r\n get value(): string | number {\r\n return this.val;\r\n }\r\n\r\n set value(val: string | number) {\r\n if (val && this.val !== val) {\r\n this.val = val;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly ecabsDatePickerHeaderService: EcabsDatePickerHeaderService,\r\n private readonly unsubscribeService: UnsubscribeService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.ecabsDatePickerHeaderService\r\n .getConfig()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((config) => (this.translationConfig = config));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ngControl: NgControl = this.injector.get(NgControl, null);\r\n if (ngControl) {\r\n this.control = ngControl.control as UntypedFormControl;\r\n }\r\n }\r\n\r\n public dateClass = (date: Date): string[] => {\r\n if (this._findDate(date) !== -1) {\r\n return ['selected'];\r\n }\r\n\r\n return [];\r\n };\r\n\r\n public dateChanged(event: MatDatepickerInputEvent<Date>): void {\r\n if (event.value) {\r\n const date = event.value;\r\n const index = this._findDate(date);\r\n if (index === -1) {\r\n this.model.push(date);\r\n this.modelChange.emit(this.model);\r\n } else {\r\n this.model.splice(index, 1);\r\n this.modelChange.emit(this.model);\r\n }\r\n this.resetModel = new Date();\r\n if (!this.CLOSE_ON_SELECTED) {\r\n const closeFn = this._picker.close;\r\n this._picker.close = (): any => {};\r\n this._picker[\r\n '_popupComponentRef'\r\n ]?.instance._calendar.monthView._createWeekCells();\r\n setTimeout(() => {\r\n this._picker.close = closeFn;\r\n });\r\n }\r\n }\r\n }\r\n\r\n public remove(date: Date): void {\r\n const index = this._findDate(date);\r\n this.model.splice(index, 1);\r\n this.modelChange.emit(this.model);\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n isDateNotHoliday(date: Date): boolean {\r\n const { countryCode, timeZoneOffset } = this.holidayOptions ?? {};\r\n\r\n if (countryCode && timeZoneOffset) {\r\n const holiday = new Holidays(countryCode.toUpperCase());\r\n\r\n return !holiday.isHoliday(\r\n `${format(date, 'yyyy-MM-dd')}T00:00:00${timeZoneOffset}`,\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n filterDateRange = (date: Date): boolean => {\r\n let result = true;\r\n\r\n if (isValid(new Date(date))) {\r\n const day = date?.getDay();\r\n\r\n if (this.excludeWeekends) {\r\n result = result && day !== 0 && day !== 6;\r\n }\r\n\r\n if (this.excludeHolidays) {\r\n result = result && this.isDateNotHoliday(date);\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n private _findDate(date: Date): number {\r\n return this.model.map((m) => +m).indexOf(+date);\r\n }\r\n}\r\n","<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <mat-chip-grid\r\n #chipList aria-label=\"Choose a date\"\r\n (click)=\"picker.open()\"\r\n class=\"w-full\"\r\n >\r\n <mat-chip-option\r\n class=\"form-field__input\"\r\n *ngFor=\"let value of model\"\r\n [selectable]=\"false\" [removable]=\"true\"\r\n (removed)=\"remove(value)\"\r\n >\r\n {{ value | date: 'dd/MM/yyyy' }}\r\n <mat-icon matChipRemove *ngIf=\"true\">cancel</mat-icon>\r\n </mat-chip-option>\r\n <input\r\n class=\"form-field__input fake-input\"\r\n [value]=\"resetModel\"\r\n [(ngModel)]=\"value\"\r\n [matDatepicker]=\"picker\"\r\n placeholder=\"Select dates\"\r\n (dateChange)=\"dateChanged($event)\"\r\n [matChipInputFor]=\"chipList\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [matDatepickerFilter]=\"filterDateRange\"\r\n />\r\n </mat-chip-grid>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker\r\n #picker\r\n [calendarHeaderComponent]=\"header\"\r\n [touchUi]=\"touchUi\"\r\n [dateClass]=\"dateClass\"\r\n >\r\n <mat-datepicker-actions>\r\n <ecabs-date-picker-actions\r\n [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\r\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\r\n >\r\n </ecabs-date-picker-actions>\r\n </mat-datepicker-actions>\r\n </mat-datepicker>\r\n </div>\r\n</ecabs-element-wrapper>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\r\nimport { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';\r\nimport { EcabsPickerHeaderModule } from '../ecabs-picker-header/ecabs-picker-header.module';\r\nimport { EcabsDatePickerActionsModule } from '../ecabs-date-picker-actions/ecabs-date-picker-actions.module';\r\n\r\nimport { EcabsMultipleDatesPickerComponent } from './ecabs-multiple-dates-picker.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [EcabsMultipleDatesPickerComponent],\r\n imports: [\r\n CommonModule,\r\n ElementWrapperModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsPickerHeaderModule,\r\n EcabsDatePickerActionsModule,\r\n ],\r\n exports: [EcabsMultipleDatesPickerComponent],\r\n})\r\nexport class EcabsMultipleDatesPickerModule {}\r\n","export interface Sorter<T> {\r\n property: Extract<keyof T, string | number | Date>;\r\n isDescending: boolean;\r\n dataType?: 'string' | 'number' | 'date';\r\n}\r\n\r\nconst getValue = <T>(obj: T, sortParams: Sorter<T>): any => {\r\n const value = obj[sortParams.property];\r\n\r\n switch (sortParams.dataType) {\r\n case 'date': {\r\n const date = new Date(value as any);\r\n\r\n return isNaN(date.getTime()) ? 0 : date.getTime();\r\n }\r\n\r\n case 'string':\r\n return (value as string).toLowerCase();\r\n\r\n case 'number':\r\n return typeof value === 'number' ? value : parseFloat(value as any);\r\n\r\n default:\r\n return value;\r\n }\r\n};\r\n\r\nexport const sortGeneric = <T>(\r\n objX: T,\r\n objY: T,\r\n sortParams: Sorter<T>,\r\n): number => {\r\n const valueX = getValue(objX, sortParams);\r\n const valueY = getValue(objY, sortParams);\r\n\r\n if (valueX > valueY) {\r\n return sortParams.isDescending ? -1 : 1;\r\n } else if (valueX < valueY) {\r\n return sortParams.isDescending ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n};\r\n\r\nexport const removeNullUndefineds = <T>(\r\n obj,\r\n exceptProperties: string[] = [],\r\n): T => {\r\n const newObj = {};\r\n\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key] === Object(obj[key])) {\r\n newObj[key] = removeNullUndefineds(obj[key], exceptProperties);\r\n } else if (obj[key] !== undefined) {\r\n newObj[key] = obj[key];\r\n }\r\n });\r\n\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n const pickBy = (object, predicate = (v) => v) =>\r\n Object.entries(object)\r\n //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\r\n .filter(([k, v]) => predicate(v))\r\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});\r\n\r\n return removeEmpty(\r\n pickBy(obj, (v) => v !== null),\r\n exceptProperties,\r\n ) as T;\r\n};\r\n\r\nexport const removeEmpty = <T>(o, exceptProperties: string[] = []): T => {\r\n for (const k in o) {\r\n if (\r\n !o[k] ||\r\n typeof o[k] !== 'object' ||\r\n exceptProperties.findIndex((property) => property === k) !== -1\r\n ) {\r\n continue;\r\n }\r\n\r\n removeEmpty(o[k]);\r\n if (Object.keys(o[k]).length === 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n delete o[k];\r\n }\r\n }\r\n\r\n return o;\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EcabsSpinnerComponent","i2","i3.EcabsSpinnerComponent","i1.EcabsComponentsService","i3.ValidationComponent","i4","i5","i6.EcabsHintComponent","i2.EcabsElementWrapperComponent","i4.EcabsDigitsOnlyDirective","i5.EcabsMinDirective","i5.EcabsMaxDirective","scrollFactory","i1","i3","i6","i7","i9.EcabsTooltipIfTruncatedDirective","i5.EcabsSpinnerComponent","i6.EcabsCheckboxToggleComponent","i1.EcabsElementWrapperComponent","i3.EcabsDatePickerHeaderService","i4.UnsubscribeService","i1.EcabsDatePickerHeaderService","i2.EcabsPickerHeaderComponent","i1.ButtonsComponent","i2.UnsubscribeService","i3.EcabsElementWrapperComponent","i8.EcabsDatePickerActionsComponent","i2.EcabsDatePickerHeaderService","i3.UnsubscribeService","i4.EcabsElementWrapperComponent","i8","i9.EcabsDigitsOnlyDirective","i10.EcabsNumberBorderDirective","i11.EcabsMaskDateDirective","i12.EcabsDatePickerActionsComponent","i8.EcabsDigitsOnlyDirective","i9.EcabsNumberBorderDirective","i10.EcabsDatePickerActionsComponent","i11.EcabsMaskTimeDirective","i1.CountryCode","i10.SearchPipe","i5.EcabsBasePhoneComponent","i1.FormTimePickerService","i4.EcabsMaskTimeDirective","i6.EcabsTimeListPanelComponent","i2.EcabsExpansionPanelComponent","i3.EcabsEmptyPlaceholderComponent","i3.EcabsComponentsService","i5.ButtonsComponent","i3.ButtonsComponent","i2.ValidationComponent","i2.EcabsDynamicBgColorDirective","map","i1.HeaderService","i3.EcabsBreadcrumbComponent","i4.EcabsProfileComponent","ElementBaseComponent","i1.UnsubscribeService","i6.EcabsTruncatePipe","i2.EcabsMenuItemsComponent","i9"],"mappings":"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"}
|