ecabs-components 2.0.0-alpha.2 → 2.0.0-alpha.5
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 +11 -2
- package/fesm2022/ecabs-components.mjs +647 -472
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/models/ecabs-date-picker-translations.models.d.ts +1 -0
- package/lib/base/validators/date-range.validator.d.ts +14 -0
- package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +3 -0
- package/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.d.ts +3 -1
- package/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.d.ts +3 -0
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +0 -1
- package/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.d.ts +33 -0
- package/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module.d.ts +12 -0
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +3 -1
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/src/assets/styles/material/_theme.scss +12 -12
- package/src/assets/styles/material/overrides/_autocomplete.scss +4 -2
- package/src/assets/styles/material/overrides/_button.scss +19 -17
- package/src/assets/styles/material/overrides/_card.scss +6 -4
- package/src/assets/styles/material/overrides/_chip.scss +12 -9
- package/src/assets/styles/material/overrides/_datepicker.scss +11 -6
- package/src/assets/styles/material/overrides/_dialog.scss +6 -3
- package/src/assets/styles/material/overrides/_divider.scss +3 -1
- package/src/assets/styles/material/overrides/_expansion.scss +11 -7
- package/src/assets/styles/material/overrides/_form.scss +11 -8
- package/src/assets/styles/material/overrides/_icon.scss +3 -1
- package/src/assets/styles/material/overrides/_menu.scss +3 -1
- package/src/assets/styles/material/overrides/_paginator.scss +7 -5
- package/src/assets/styles/material/overrides/_phone.scss +10 -7
- package/src/assets/styles/material/overrides/_progress.scss +1 -1
- package/src/assets/styles/material/overrides/_select.scss +21 -17
- package/src/assets/styles/material/overrides/_sidebar.scss +3 -1
- package/src/assets/styles/material/overrides/_tab.scss +7 -4
- package/src/assets/styles/material/overrides/_table.scss +5 -2
- package/src/assets/styles/material/overrides/_toaster.scss +8 -6
- package/src/assets/styles/material/overrides/_tooltip.scss +4 -2
- package/src/assets/styles/material/overrides/index.scss +22 -22
- package/src/assets/styles/scss/base/_heading.scss +11 -8
- package/src/assets/styles/scss/base/_normalize.scss +14 -9
- package/src/assets/styles/scss/base/index.scss +2 -2
- package/src/assets/styles/scss/modules/_autocomplete.scss +10 -6
- package/src/assets/styles/scss/modules/_button.scss +39 -36
- package/src/assets/styles/scss/modules/_card.scss +13 -8
- package/src/assets/styles/scss/modules/_chip.scss +23 -19
- package/src/assets/styles/scss/modules/_datepicker.scss +7 -4
- package/src/assets/styles/scss/modules/_dialog.scss +10 -6
- package/src/assets/styles/scss/modules/_form.scss +50 -45
- package/src/assets/styles/scss/modules/_icon.scss +6 -3
- package/src/assets/styles/scss/modules/_legend.scss +20 -15
- package/src/assets/styles/scss/modules/_list.scss +9 -6
- package/src/assets/styles/scss/modules/_map.scss +24 -21
- package/src/assets/styles/scss/modules/_phone.scss +5 -4
- package/src/assets/styles/scss/modules/_select.scss +7 -4
- package/src/assets/styles/scss/modules/_statuses.scss +15 -15
- package/src/assets/styles/scss/modules/_tab.scss +3 -1
- package/src/assets/styles/scss/modules/_table.scss +25 -20
- package/src/assets/styles/scss/modules/_timepicker.scss +10 -6
- package/src/assets/styles/scss/modules/_tooltip.scss +7 -3
- package/src/assets/styles/scss/modules/drag-drop.scss +12 -8
- package/src/assets/styles/scss/modules/index.scss +23 -23
- package/src/assets/styles/scss/utilities/_functions.scss +4 -3
- package/src/assets/styles/scss/utilities/_mixins.scss +11 -7
- package/src/assets/styles/scss/utilities/index.scss +6 -6
- package/src/assets/styles/styles.scss +7 -6
- package/src/assets/styles/tailwind/index.scss +2 -2
|
@@ -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/lib/base/adapters/date.adapter.ts","../../../projects/ecabs-components/src/lib/base/consts/waypoint.consts.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 standalone: false\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 standalone: false\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","@if (loading) {\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 >\r\n @if (loading) {\r\n <ecabs-loading-spinner [size]=\"size\"></ecabs-loading-spinner>\r\n }\r\n </div>\r\n}\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 ViewChild,\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ButtonStyle } from '../base/consts/buttons.consts';\r\nimport { MatButton } from '@angular/material/button';\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 standalone: false\r\n})\r\nexport class ButtonsComponent implements OnInit, OnChanges {\r\n @ViewChild(MatButton, { static: false })\r\n matButton: MatButton;\r\n\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","\r\n@switch (style) {\r\n @case ('flat') {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n @case ('stroked') {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n @case ('raised') {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n @default {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n}\r\n\r\n<ng-template #content>\r\n @if (loading) {\r\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\r\n }\r\n @if (!loading) {\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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","@if (element && (element?.touched || showValidationOnNotTouched) && element?.invalid) {\r\n <div\r\n class=\"form-field__validation\"\r\n >\r\n @for (item of element?.errors | keyvalue; track item) {\r\n <div class=\"form-field__validation__item\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n }\r\n </div>\r\n}\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 standalone: false\r\n})\r\nexport class EcabsHintComponent {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() element!: any;\r\n @Input() maxValue!: number;\r\n @Input() showHint = false;\r\n}\r\n","@if (element && showHint) {\r\n <div class=\"hint\">{{ element?.value?.length || 0 }}/{{ this.maxValue }}</div>\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 @if (data?.label && data?.showLabel) {\r\n <label\r\n class=\"form-field__label\"\r\n [attr.for]=\"data?.name\"\r\n >\r\n <span [innerHTML]=\"data?.label\"></span>\r\n </label>\r\n }\r\n @if (data?.tooltip) {\r\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\"\r\n [matTooltip]=\"data?.tooltip\">error_outline\r\n </mat-icon>\r\n }\r\n </div>\r\n\r\n @if (data?.labelNote) {\r\n <div class=\"form-field__label-note\" [innerHTML]=\"data?.labelNote\"></div>\r\n }\r\n\r\n <ng-content></ng-content>\r\n\r\n @if (data?.showLocalLoading && data?.loading) {\r\n <ecabs-loading-spinner\r\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\r\n }\r\n\r\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\r\n\r\n @if (data?.showValidation && !data?.hideValidationMessage) {\r\n <ecabs-validations-messages\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 }\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 standalone: false\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 @HostListener('wheel', ['$event'])\r\n onWheel(event: Event): void {\r\n event.preventDefault();\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\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\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 standalone: false\r\n})\r\nexport class EcabsInputComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\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 #matCustomInput\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 @if (type !== 'number') {\r\n <div class=\"form-field__input--suffix\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content select=\".suffix\"></ng-content>\r\n </div>\r\n }\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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() 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 \r\n onChange: any = () => {};\r\n \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 \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 \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 \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 \r\n const item = this.items.find((item) => item.value === this.value);\r\n\r\n \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-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 @if (useSearchOption) {\r\n <mat-option>\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\r\n @if (useNoneOption) {\r\n <mat-option\r\n (click)=\"toggleNone()\"\r\n (keydown.enter)=\"toggleNone()\">\r\n {{ noneLabel }}\r\n </mat-option>\r\n }\r\n\r\n @if (useSelectAllOption && showFilteredAllOption) {\r\n <mat-option #allSelected\r\n (click)=\"toggleAllSelection()\"\r\n (keydown.enter)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">\r\n {{ allLabel }}\r\n </mat-option>\r\n }\r\n\r\n @for (item of filteredItems$ | async; track item) {\r\n <mat-option\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 }\r\n </mat-select>\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 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 EcabsElementBaseComponent from '../base/element-base';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatCheckbox } from '@angular/material/checkbox';\r\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\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 standalone: false\r\n})\r\nexport class EcabsCheckboxToggleComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnChanges\r\n{\r\n @ViewChild(MatCheckbox, { static: false })\r\n matCheckbox: MatCheckbox;\r\n\r\n @ViewChild(MatSlideToggle, { static: false })\r\n matSlideToggle: MatSlideToggle;\r\n\r\n @Input()\r\n override type: 'checkbox' | 'toggle' = 'checkbox';\r\n\r\n @Input()\r\n text!: string;\r\n\r\n @Input()\r\n override readonly label: string = '';\r\n\r\n @Input()\r\n labelPosition: 'before' | 'after' = 'after';\r\n\r\n @Input()\r\n indeterminate!: boolean;\r\n\r\n @Input()\r\n checked!: boolean;\r\n\r\n @Output()\r\n readonly click = new EventEmitter<any>();\r\n\r\n @Output()\r\n readonly 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 @switch (type) {\r\n @case ('checkbox') {\r\n <mat-checkbox (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 {{ text }}\r\n </mat-checkbox>\r\n }\r\n @case ('toggle') {\r\n <mat-slide-toggle (change)=\"change($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [labelPosition]=\"labelPosition\">{{ text }}\r\n </mat-slide-toggle>\r\n }\r\n }\r\n</ecabs-element-wrapper>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\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} 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 standalone: false\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 @Output()\r\n readonly selectionChange = new EventEmitter<any>();\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 this.selectionChange.emit($event);\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 [labelForId]=\"name\"\r\n [appendTo]=\"appendTo\"\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 @if (!typeahead) {\r\n @for (item of itemsList; track item) {\r\n <ng-option [value]=\"item?.value\">\r\n {{ item?.label }}\r\n </ng-option>\r\n }\r\n }\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 @if (!!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 @if (!isOpen) {\r\n @for (item of items | slice:0:1; track item) {\r\n <div>\r\n {{ item?.['label'] }} @if (items.length > 1) {\r\n <span>\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n }\r\n </div>\r\n }\r\n }\r\n </ng-template>\r\n }\r\n\r\n @if (multiple) {\r\n <!--#Add selectAll and individual checkboxes for multiple-enabled list -->\r\n <ng-template ng-optgroup-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"selectAllLabel\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n <ng-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 }\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 {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Injector,\r\n Input,\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 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 standalone: false\r\n})\r\nexport class EcabsTextareaComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\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 \r\n onChange: any = (): void => {};\r\n \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 #matCustomInput\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 * as Locales from 'date-fns/locale';\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 standalone: false\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 ?? Locales.enGB,\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 standalone: false\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 standalone: false\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 standalone: false\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 \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 \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 standalone: false\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n format,\r\n isSameMinute,\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 ElementRef,\r\n forwardRef,\r\n Injector,\r\n Input,\r\n OnInit,\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 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\nimport { MatDatepicker } from '@angular/material/datepicker';\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: forwardRef(() => EcabsDateTimePickerComponent),\r\n multi: true,\r\n },\r\n DecimalPipe,\r\n UnsubscribeService,\r\n ],\r\n standalone: false\r\n})\r\nexport class EcabsDateTimePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\r\n\r\n @ViewChild('picker', { static: false })\r\n matCustomPicker: MatDatepicker<Date>;\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 /** When true, preserves the original value (with timezone) if user hasn't changed the date/time */\r\n @Input() preserveOriginalValue = false;\r\n\r\n _hours = '12';\r\n _minutes = '00';\r\n _seconds = '00';\r\n _date: Date;\r\n /** Stores the original input value to preserve string format with timezone */\r\n private _originalValue: Date | string;\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 isEmptyFormat = '_/__/____, __:__';\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 || val === this.isEmptyFormat) {\r\n this.value = undefined;\r\n this.setValues(undefined);\r\n\r\n return;\r\n }\r\n\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 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\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n // Store original value on first write to preserve string format with timezone\r\n if (this.preserveOriginalValue && !this._originalValue && value) {\r\n this._originalValue = value;\r\n }\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 onApply(): void {\r\n if (this._date && this._seconds && this._minutes && this._hours) {\r\n this.value = 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 }\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 // Preserve original value if time unchanged\r\n const shouldReturnOriginalValue =\r\n this._originalValue && isSameMinute(new Date(this._originalValue), date);\r\n\r\n const valueToEmit = shouldReturnOriginalValue ? this._originalValue : date;\r\n\r\n this.onChange(valueToEmit);\r\n this.onTouch(valueToEmit);\r\n\r\n const dateToUse = valueToEmit ? new Date(valueToEmit) : date;\r\n this._date = dateToUse;\r\n\r\n if (dateToUse && isValid(dateToUse)) {\r\n this.hours = dateToUse.getHours().toString();\r\n this.minutes = dateToUse.getMinutes().toString();\r\n this.seconds = dateToUse.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 @if (!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 }\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 #matCustomInput\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\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon\r\n class=\"text-gray-500\">\r\n calendar_today\r\n </mat-icon>\r\n </mat-datepicker-toggle>\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\nimport { MatFormFieldModule } from '@angular/material/form-field';\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 MatFormFieldModule,\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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\nimport { isValid } from 'date-fns';\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 standalone: false\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 \r\n set value(val: { dateFrom: string; dateTo: string }) {\r\n if (this.val !== val) {\r\n this.val = val;\r\n this.dateFrom = val.dateFrom;\r\n this.dateTo = val.dateTo;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n \r\n set dateFrom(val: string) {\r\n if (this._dateFrom !== val && isValid(new Date(val))) {\r\n this._dateFrom = val;\r\n this.onApply();\r\n }\r\n }\r\n\r\n \r\n set dateTo(val: string) {\r\n if (this._dateTo !== val && isValid(new Date(val))) {\r\n this._dateTo = val;\r\n this.onApply();\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 this.value = {\r\n dateFrom: this.dateFrom,\r\n dateTo: this.dateTo,\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 \r\n [rangePicker]=\"picker\" \r\n [min]=\"minDate\"\r\n [max]=\"maxDate\" \r\n (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 standalone: false\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 \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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 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 NgControl,\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 ErrorStateMatcher,\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\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 implements\r\n OnInit,\r\n OnDestroy,\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() 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 @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\r\n\r\n static nextId = 0;\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 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 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 ngControl: 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 errorState: boolean;\r\n controlType?: string;\r\n autofilled?: boolean;\r\n userAriaDescribedBy?: string;\r\n disableAutomaticLabeling?: boolean;\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 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 @if (selectedCountry?.dialCode) {\r\n <span class=\"country-selector-code\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\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 @if (enableSearch) {\r\n <input\r\n #searchInput\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 }\r\n @if (!searchCriteria) {\r\n @for (country of preferredCountriesInDropDown; track country) {\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\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 @if (country?.dialCode) {\r\n <span>+{{ country.dialCode }}</span>\r\n }\r\n </div>\r\n </button>\r\n }\r\n @if (preferredCountriesInDropDown?.length) {\r\n <mat-divider></mat-divider>\r\n }\r\n }\r\n @for (country of allCountries; track country) {\r\n @if (country | search: searchCriteria) {\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\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 }\r\n }\r\n </mat-menu>\r\n\r\n <input #matCustomInput\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>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false,\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.writeValue('');\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.value !== '' && this.phoneInput.value !== undefined ) {\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>","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 { 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 ElementWrapperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsBasePhoneModule,\r\n ],\r\n exports: [ EcabsPhoneComponent],\r\n})\r\nexport class EcabsPhoneModule {}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 @for (item of items; track item) {\r\n <mat-radio-button\r\n [disabled]=\"item.disabled\"\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-radio-button>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 case ' ':\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 @for (i of timeList; track i; let counter = $index) {\r\n <li\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 }\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n forwardRef,\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 {\r\n ListPlacement,\r\n ListPosition,\r\n TimepickerSpecialKey,\r\n} 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: forwardRef(() => EcabsTimepickerComponent),\r\n multi: true,\r\n },\r\n ],\r\n standalone: false\r\n})\r\nexport class EcabsTimepickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input()\r\n @HostBinding('class.form-timepicker-focused')\r\n focusedFlag = false;\r\n\r\n @Input()\r\n showCloseIcon = true;\r\n\r\n @Input()\r\n listPlacement: ListPlacement = 'auto';\r\n\r\n @Input()\r\n appendTo!: string;\r\n\r\n @Input()\r\n min!: string;\r\n\r\n @Input()\r\n max!: string;\r\n\r\n @Input()\r\n showDayStart = true;\r\n\r\n @Input()\r\n showDayEnd = false;\r\n\r\n @Input()\r\n 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(): string {\r\n return this._data;\r\n }\r\n\r\n set data(value: string) {\r\n this._data = value;\r\n\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\r\n setTimeout(() => {\r\n this._input = this._timePicker.querySelector('input');\r\n });\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\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 if (!event) {\r\n this.data = event;\r\n\r\n return;\r\n }\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: TimepickerSpecialKey): TimepickerSpecialKey {\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\r\n public onChangeFn = (_: any): void => {};\r\n \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 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\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 (blur)=\"onTouchedFn()\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n @if (type !== 'number') {\r\n <div class=\"form-field__input--suffix\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n }\r\n @if (focusedFlag) {\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\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 }\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 standalone: false\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 @if (redirectPath) {\r\n <a [routerLink]=\"redirectPath?.path && [redirectPath.path]\" class=\"text-sm\">\r\n {{ redirectPath.title }}\r\n </a>\r\n }\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 standalone: false\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 @if (title) {\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div>\r\n <div class=\"flex flex-row\">\r\n @if (index && !showErrorMessage) {\r\n <div class=\"border-current border-2 rounded-full mr-3 index\">\r\n {{ index }}\r\n </div>\r\n }\r\n @if (!showErrorMessage && showIcon) {\r\n <div class=\"mr-3 rounded\">\r\n <mat-icon class=\"rounded-icon !text-lg -mt-1\">{{ iconName }}</mat-icon>\r\n </div>\r\n }\r\n @if (showErrorMessage) {\r\n <div class=\"mt-1 mr-2\">\r\n <mat-icon color=\"warn\">warning</mat-icon>\r\n </div>\r\n }\r\n {{ title }}\r\n @if (showCheckbox) {\r\n <div 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 }\r\n </div>\r\n @if (showErrorMessage) {\r\n <div class=\"error-message\">{{ errorMessage }}</div>\r\n }\r\n </div>\r\n </mat-panel-title>\r\n <mat-panel-description>{{ description }}\r\n @if (showStatus) {\r\n <mat-chip class=\"{{ status | lowercase }}\">\r\n {{ status | titlecase }}\r\n </mat-chip>\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n }\r\n\r\n @if (actionTitle) {\r\n <mat-expansion-panel-header>\r\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\r\n </mat-expansion-panel-header>\r\n }\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 standalone: false\r\n})\r\nexport class EcabsTableFilterWrapperComponent {\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 @if (actions) {\r\n <div class=\"flex justify-end\">\r\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\r\n </div>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 @if (loading) {\r\n <mat-progress-bar mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\r\n }\r\n\r\n @if (header) {\r\n <div class=\"table-ui__header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </div>\r\n }\r\n\r\n @if (!(isEmptyMessage && isEmpty)) {\r\n <ng-content></ng-content>\r\n @if (paginator) {\r\n <div class=\"table-ui__paginator\">\r\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\r\n </div>\r\n }\r\n } @else {\r\n @if (!loading) {\r\n <ecabs-empty-placeholder\r\n [redirectPath]=\"redirectPath\"\r\n [isEmptyMessage]=\"isEmptyMessage\"\r\n [srcImage]=\"srcImageEmpty\"\r\n ></ecabs-empty-placeholder>\r\n }\r\n }\r\n\r\n <!--#For Empty state -->\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 standalone: false\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","<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","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 standalone: false\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(this.data.confirmResult ?? true);\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close(this.data.confirmResult ?? true);\r\n }\r\n }\r\n\r\n closeFalsey(): void {\r\n this.dialogRef.close(this.data.cancelResult ?? false);\r\n }\r\n\r\n closeOnPopover(): void {\r\n this.dialogRef.close(this.data.popoverResult ?? false);\r\n }\r\n}\r\n\r\nexport interface EcabsDialogConfirmComponentConfig {\r\n title?: string;\r\n titleTemplate?: TemplateRef<NonNullable<unknown>>;\r\n message?: TemplateRef<NonNullable<unknown>>;\r\n color?: ThemePalette;\r\n titleColor?: ThemePalette;\r\n confirmLabel?: string;\r\n confirmStyle?: ButtonStyle;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n confirmResult?: any;\r\n cancelLabel?: string;\r\n cancelStyle?: ButtonStyle;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n cancelResult?: any;\r\n hideCtaButtons?: boolean;\r\n hideConfirmButton?: boolean;\r\n hideCancelButton?: boolean;\r\n isPopover?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n popoverResult?: any;\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","@if (data?.titleTemplate) {\r\n <div class=\"flex items-center justify-between modal-title\">\r\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\r\n\r\n @if (!!data?.isPopover) {\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\r\n close\r\n </mat-icon>\r\n }\r\n </div>\r\n} @else {\r\n @if (data?.title || !!data?.isPopover) {\r\n <div matDialogTitle class=\"flex flex-column\">\r\n @if (!!data?.isPopover) {\r\n <div class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\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 @if (data.title) {\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\">\r\n {{ data.title }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n}\r\n\r\n<div mat-dialog-content>\r\n @if (data?.content) {\r\n <div>{{ data?.content }}</div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n@if ((!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons) {\r\n <div>\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 @if (!!data?.cancelLabel) {\r\n <ecabs-buttons\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 @if (!!data?.confirmLabel) {\r\n <ecabs-buttons\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 }\r\n </div>\r\n </div>\r\n}\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 standalone: false\r\n})\r\nexport class EcabsDialogMessageComponent implements OnDestroy {\r\n message: string;\r\n color: ThemePalette = 'primary';\r\n titleColor = 'success';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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","@if (data?.title || !!data?.isPopover) {\r\n <div matDialogTitle class=\"flex flex-column\">\r\n @if (!!data?.isPopover) {\r\n <div 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 @if (data.title) {\r\n <div class=\"title font-semibold heading--xs\" [ngClass]=\"classByType\">\r\n {{ data.title }}\r\n </div>\r\n }\r\n </div>\r\n}\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 @if (!data?.isPopover) {\r\n <div mat-dialog-actions class=\"btn__group flex justify-end w-full\">\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 }\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 standalone: false\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 @for (item of breadcrumb; track item; let counter = $index) {\r\n <li\r\n [routerLink]=\"item.url\"\r\n [ngClass]=\"{ 'cursor-pointer': item.url }\"\r\n class=\"flex\"\r\n >\r\n @if (counter !== 0) {\r\n <mat-icon class=\"!text-sm text-center text-gray-400\">keyboard_arrow_right</mat-icon>\r\n }\r\n <span>{{ item.title }}</span>\r\n </li>\r\n }\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 standalone: false\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 @if (!flagOnly) {\r\n <div class=\"ml-2\">{{ standardLang(matchSelected()) }}</div>\r\n }\r\n </div>\r\n </mat-select-trigger>\r\n @for (lang of languages; track lang) {\r\n <mat-option class=\"capitalize\" [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 }\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 standalone: false\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 standalone: false\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false\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 @for (validation of validations; track validation) {\r\n <ecabs-validations-messages\r\n [showValidationOnNotTouched]=\"true\"\r\n [element]=\"form.controls[validation.controlName]\"\r\n [updatedErrors]=\"validation.errors\"\r\n ></ecabs-validations-messages>\r\n }\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 standalone: false\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 @for (status of statuses; track status) {\r\n <mat-chip-option\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 }\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 standalone: false\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 @if (!useAvatar) {\r\n <div 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 } @else {\r\n <!-- eslint-disable-next-line -->\r\n <img [src]=\"avatar\" class=\"rounded-full\"/>\r\n }\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\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 standalone: false,\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 \r\n onChange: any = (): void => {};\r\n \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 standalone: false\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 standalone: false\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 @for (item of menuItems; track item; let i = $index) {\r\n <li\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 @if (!minimizeSidebar) {\r\n <span\r\n class=\"inline-block align-middle\">\r\n {{ item.title }}\r\n </span>\r\n @if (item.badget) {\r\n <div class=\"badget text-white\">\r\n {{ item.badget }}\r\n </div>\r\n }\r\n }\r\n </a>\r\n @if (item.expand && item.subItems?.length > 0) {\r\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\r\n }\r\n </li>\r\n }\r\n</ul>\r\n\r\n<ng-template #firstChildren let-subItems=\"subItems\">\r\n @if (!minimizeSidebar) {\r\n <ul class=\"ml-12\">\r\n @for (item of subItems; track item) {\r\n <li [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 @if (item.badget) {\r\n <div class=\"badget text-white\">\r\n {{ item.badget }}\r\n </div>\r\n } \r\n @if (item.subItems?.length > 0) {\r\n <div 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 }\r\n </a>\r\n @if (item.expand && item.subItems?.length > 0) {\r\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #secondChildren let-subItems=\"subItems\">\r\n <ul class=\"ml-3\">\r\n @for (item of subItems; track item) {\r\n <li>\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 @if (item.badget) {\r\n <div class=\"badget text-white\">\r\n {{ item.badget }}\r\n </div>\r\n }\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n</ng-template>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 @if (logo) {\r\n <li [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\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 @if (secondaryMenu) {\r\n <li class=\"flex justify-center mb-5\">\r\n <ng-container *ngTemplateOutlet=\"secondaryMenu\"></ng-container>\r\n </li>\r\n }\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 @if (!minimizeSidebar) {\r\n <span class=\"inline-block align-middle\">{{ logoutText }}</span>\r\n }\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 standalone: false\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","@if (logo || subtitle) {\r\n <ul>\r\n @if (logo) {\r\n <li class=\"w-full\">\r\n <img [src]=\"logo\" [alt]=\"logoAlt\"/>\r\n </li>\r\n }\r\n @if (subtitle) {\r\n <li [ngClass]=\"collapsed ? 'text-collapse' : 'text-sm'\" class=\"text-brand-dark mt-2\">\r\n {{ subtitle }}\r\n </li>\r\n }\r\n </ul>\r\n}\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 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 { UnsubscribeService } from '../../public-api';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport PlaceResult = google.maps.places.PlaceResult;\r\nimport { WaypointTypeEnum } from '../base/consts/waypoint.consts';\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 standalone: false\r\n})\r\nexport class EcabsPlaceAutocompleteComponent\r\n extends EcabsElementBaseComponent\r\n implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor\r\n{\r\n @ViewChild('matCustomAutocompleteInput', { static: false })\r\n matCustomInput: ElementRef;\r\n\r\n @Input()\r\n showDeleteItem = false;\r\n\r\n @Input()\r\n showSuffix = false;\r\n\r\n @Input()\r\n countryCode = 'MT';\r\n\r\n @Input()\r\n googleLoaded: boolean;\r\n\r\n @Input()\r\n waypointType: WaypointTypeEnum;\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 #matCustomAutocompleteInput\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 @if (showSuffix) {\r\n <div class=\"form-field__input--suffix\">\r\n @if (showDeleteItem) {\r\n <mat-icon\r\n class=\"suffix cursor-pointer delete-button\"\r\n (click)=\"onDeleteItem()\">\r\n delete\r\n </mat-icon>\r\n }\r\n @if (!showDeleteItem && value) {\r\n <mat-icon class=\"suffix cursor-pointer\" (click)=\"onClean()\">close</mat-icon>\r\n }\r\n </div>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\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 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 standalone: false\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 @for (value of model; track value) {\r\n <mat-chip-option\r\n class=\"form-field__input\"\r\n [selectable]=\"false\" [removable]=\"true\"\r\n (removed)=\"remove(value)\"\r\n >\r\n {{ value | date: 'dd/MM/yyyy' }}\r\n @if (true) {\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n }\r\n </mat-chip-option>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nexport 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 \r\n const pickBy = (object, predicate = (v) => v) =>\r\n Object.entries(object)\r\n //eslint-disable-next-line @typescript-eslint/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 \r\n delete o[k];\r\n }\r\n }\r\n\r\n return o;\r\n};\r\n","import { Platform } from '@angular/cdk/platform';\r\nimport { getLocaleFirstDayOfWeek, WeekDay } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { NativeDateAdapter } from '@angular/material/core';\r\n\r\n@Injectable()\r\nexport class EcabsDateAdapter extends NativeDateAdapter {\r\n constructor(@Inject(String) dateTimeLocale: string) {\r\n super(dateTimeLocale ?? 'en-GB', new Platform(1));\r\n }\r\n\r\n override parse(value: string): Date {\r\n const dateAsArray = value.split('/');\r\n \r\n if (dateAsArray.length === 3) {\r\n let year = +dateAsArray[2];\r\n\r\n if (dateAsArray[2].length === 2) {\r\n if (year > 30) {\r\n year = +`19${year}`;\r\n } else {\r\n year = +`20${year}`;\r\n }\r\n }\r\n\r\n return new Date(\r\n year,\r\n +dateAsArray[1] - 1,\r\n +dateAsArray[0],\r\n 12,\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n override format(date: Date): string {\r\n return (\r\n ('0' + date.getDate()).slice(-2) +\r\n '/' +\r\n ('0' + (date.getMonth() + 1)).slice(-2) +\r\n '/' +\r\n date?.getFullYear()\r\n );\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars, @typescript-eslint/no-explicit-any\r\n override getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): any[] {\r\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\r\n }\r\n\r\n override getFirstDayOfWeek(): WeekDay {\r\n return getLocaleFirstDayOfWeek(this.locale);\r\n }\r\n}\r\n","export enum WaypointTypeEnum {\r\n PICKUP = 'PICKUP',\r\n DROPOFF = 'DROPOFF',\r\n GENERIC = 'GENERIC',\r\n DIVERSION = 'DIVERSION',\r\n CUSTOM = 'CUSTOM',\r\n LOCATION = 'LOCATION',\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","i5","i6.EcabsHintComponent","i1.EcabsElementWrapperComponent","i3.EcabsDigitsOnlyDirective","i4.EcabsMinDirective","i4.EcabsMaxDirective","scrollFactory","i1","i3","i4","i6.EcabsTooltipIfTruncatedDirective","i7","i2.EcabsElementWrapperComponent","i4.EcabsSpinnerComponent","i5.EcabsCheckboxToggleComponent","i6","i3.EcabsDatePickerHeaderService","i4.UnsubscribeService","i1.EcabsDatePickerHeaderService","i2.EcabsPickerHeaderComponent","i1.ButtonsComponent","i2.UnsubscribeService","i3.EcabsElementWrapperComponent","i8.EcabsDatePickerActionsComponent","i2.EcabsDatePickerHeaderService","i3.UnsubscribeService","i4.EcabsElementWrapperComponent","i8.EcabsDigitsOnlyDirective","i9.EcabsNumberBorderDirective","i10.EcabsMaskDateDirective","i11.EcabsDatePickerActionsComponent","i12","i10.EcabsDatePickerActionsComponent","i11.EcabsMaskTimeDirective","i4.EcabsDigitsOnlyDirective","i1.CountryCode","i9.SearchPipe","i5.EcabsBasePhoneComponent","i1.FormTimePickerService","i4.EcabsMaskTimeDirective","i6.EcabsTimeListPanelComponent","i6.EcabsCheckboxToggleComponent","i2.EcabsExpansionPanelComponent","i3.EcabsEmptyPlaceholderComponent","i3.EcabsComponentsService","i5.ButtonsComponent","i3.ButtonsComponent","i1.ValidationComponent","i1.EcabsDynamicBgColorDirective","map","i1.HeaderService","i3.EcabsBreadcrumbComponent","i4.EcabsProfileComponent","ElementBaseComponent","i1.UnsubscribeService","i6.EcabsTruncatePipe","i2.EcabsMenuItemsComponent","i8","i9.EcabsDatePickerActionsComponent","i10"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASa,qBAAqB,CAAA;IACvB,IAAI,GAAgC,QAAQ;wGAD1C,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,4GCTlC,mIAKA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDIa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,mIAAA,EAAA,MAAA,EAAA,CAAA,08BAAA,CAAA,EAAA;8BAGV,IAAI,EAAA,CAAA;sBAAZ;;;MEHU,qBAAqB,CAAA;IACvB,OAAO,GAAG,KAAK;IACf,eAAe,GAAG,OAAO;IACzB,IAAI,GAAgC,QAAQ;wGAH1C,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,4JCPlC,0TAUA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDHa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAEb,KAAK,EAAA,QAAA,EAAA,0TAAA,EAAA;8BAGV,OAAO,EAAA,CAAA;sBAAf;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MEAU,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAlB,kBAAkB,EAAA,YAAA,EAAA,CAJd,qBAAqB,EAAE,qBAAqB,aACjD,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,qBAAqB,EAAE,qBAAqB,CAAA,EAAA,CAAA;AAE3C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA;;4FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;oBAC5D,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;AACxD,iBAAA;;;MCUY,gBAAgB,CAAA;AAE3B,IAAA,SAAS;AAGT,IAAA,QAAQ;AAGR,IAAA,OAAO;IAGP,IAAI,GAAwB,SAAS;IAGrC,IAAI,GAAwB,QAAQ;IAGpC,KAAK,GAAgB,MAAM;IAG3B,IAAI,GAAG,KAAK;IAGZ,KAAK,GAAoC,SAAS;IAGlD,WAAW,GAAG,EAAE;IAGhB,SAAS,GAAG,EAAE;IAEd,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;;;AAI7B,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,QAAQ,GACZ,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,KAAK;AACpC,cAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACtB,cAAE,IAAI,CAAC,QAAQ;QACnB,MAAM,OAAO,GACX,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,KAAK;AACnC,cAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACrB,cAAE,IAAI,CAAC,OAAO;AAElB,QAAA,IAAI,QAAQ,IAAI,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB;;aACjC;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;;wGAlDZ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAChB,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBtB,2oDAqEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDlDa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAGb,KAAK,EAAA,QAAA,EAAA,2oDAAA,EAAA;8BAInB,SAAS,EAAA,CAAA;sBADR,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAIvC,QAAQ,EAAA,CAAA;sBADP;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,IAAI,EAAA,CAAA;sBADH;gBAID,IAAI,EAAA,CAAA;sBADH;gBAID,KAAK,EAAA,CAAA;sBADJ;gBAID,IAAI,EAAA,CAAA;sBADH;gBAID,KAAK,EAAA,CAAA;sBADJ;gBAID,WAAW,EAAA,CAAA;sBADV,WAAW;uBAAC,aAAa;gBAI1B,SAAS,EAAA,CAAA;sBADR,WAAW;uBAAC,OAAO;;;MEnCT,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAlB,kBAAkB,EAAA,YAAA,EAAA,CAJd,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAChE,gBAAgB,CAAA,EAAA,CAAA;AAEf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAA,EAAA,CAAA;;4FAG/D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC;oBAC3E,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA;;;ACXD;AASc,MAAO,yBAAyB,CAAA;AACnC,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;IACL,WAAW,GAAG,EAAE;AAChB,IAAA,eAAe;IACf,QAAQ,GAAG,KAAK;IAChB,QAAQ,GAAG,KAAK;IAChB,cAAc,GAAG,IAAI;IACrB,0BAA0B,GAAG,KAAK;IAClC,qBAAqB,GAAG,KAAK;IAC7B,SAAS,GAAG,EAAE;IACd,OAAO,GAAG,KAAK;IACf,QAAQ,GAAG,KAAK;AAChB,IAAA,SAAS;AACT,IAAA,OAAO;IACP,YAAY,GAAG,IAAI;AACnB,IAAA,SAAS;IACT,SAAS,GAAG,IAAI;IAChB,gBAAgB,GAAG,IAAI;AAEtB,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;AACjC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAO;AAE9C,IAAA,OAAO;IACP,QAAQ,GAAG,KAAK;IAEhB,OAAO,GAAA;QACL,OAAO;AACL,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;;AAGH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU;AAC1C,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC;;;IAIxC,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YACtE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAInC,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;;IAIrC,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;;AAItC,IAAA,kBAAkB,CAAC,SAAkB,EAAA;QAC3C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,aAAa,EAAE;;aACf;YACL,IAAI,CAAC,cAAc,EAAE;;;AAIjB,IAAA,UAAU,GAAG,CAAC,IAAS,KAAa;AAC1C,QAAA,IAAI,IAAI,EAAE,SAAS,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAqB,CAAC;AACvD,YAAA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC3B,gBAAA,OAAO,IAAI;;;AAIf,QAAA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;YACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE;AAC1B,oBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3C,wBAAA,OAAO,IAAI;;;;;AAMnB,QAAA,OAAO,KAAK;AACd,KAAC;wGAzGkB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,qpBAHlC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;4FAGO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJ7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAES,OAAO,EAAA,CAAA;sBAAhB;gBACS,UAAU,EAAA,CAAA;sBAAnB;;;AC7BI,MAAM,aAAa,GAAmB;AAC3C,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE,6BAA6B;AACvC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE,6BAA6B;AACvC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,OAAO,EAAE,sBAAsB;AAChC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,OAAO,EAAE,sBAAsB;AAChC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,4BAA4B;AACtC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,4BAA4B;AACtC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,OAAO,EAAE,wCAAwC;AAClD,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,4BAA4B;AACtC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,OAAO,EAAE,gCAAgC;AAC1C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,4BAA4B;AACtC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,4BAA4B;AACtC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,wBAAwB;AAClC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,OAAO,EAAE,kCAAkC;AAC5C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,OAAO,EAAE,kCAAkC;AAC5C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,uBAAuB;AACjC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,OAAO,EAAE,8BAA8B;AACxC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,OAAO,EAAE,oCAAoC;AAC9C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,uBAAuB;AAC7B,QAAA,OAAO,EAAE,4CAA4C;AACtD,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,OAAO,EAAE,6BAA6B;AACvC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA;CACF;;AC7FM,MAAM,IAAI,GAAc;AAC7B,IAAA,YAAY,EAAE,iBAAiB;AAC/B,IAAA,WAAW,EAAE,gBAAgB;CAC9B;;MCKY,sBAAsB,CAAA;AACjC,IAAA,aAAa,GAA0B;AACrC,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC;QACjC,IAAI;AACJ,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,0BAA0B,EAAE,IAAI;KACjC;AAED,IAAA,MAAM;IAEW,OAAO,GAAG,IAAI,eAAe,CAC5C,IAAI,CAAC,aAAa,CACnB;AAED,IAAA,SAAS,CAAC,MAA6B,EAAA;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,aAAa;AAE1C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;IAG3B,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;;AAGpC,IAAA,YAAY,CAAC,YAAmC,EAAA;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC7C,QAAA,MAAM,aAAa,GAA0B,IAAI,sBAAsB,EAAE;AAEzE,QAAA,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;YAC/B,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;AACxD,gBAAA,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EACvD;AACA,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC;AACnD,sBAAE,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC;AAC9C,sBAAE,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE;;iBAC9C;gBACL,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;;;AAI3C,QAAA,IAAI,CAAC,MAAM,GAAG,aAAa;AAE3B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;;IAGlC,QAAQ,CAAC,gBAA0B,EAAE,EAAA;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;cACvC,IAAI,CAAC;AACF,iBAAA,QAAQ;iBACR,MAAM,CAAC,GAAG,CAAC,CAAC,YAAuB,KAAK,YAAY,CAAC,KAAK;cAC7D,SAAS;AAEb,QAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI;;QAGb,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAGnE,QAAA,OAAO,KAAK;;wGA9DH,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;MAqFY,sBAAsB,CAAA;IACjC,gBAAgB,GAAa,EAAE;IAC/B,aAAa,GAAmB,EAAE;AAClC,IAAA,IAAI;IACJ,MAAM,GAAgB,EAAE;AACzB;;ACnGD;MAqBa,mBAAmB,CAAA;AA8BV,IAAA,YAAA;AA7BX,IAAA,OAAO;AACP,IAAA,KAAK;IACL,0BAA0B,GAAG,KAAK;AAClC,IAAA,aAAa;AACtB,IAAA,MAAM;IACE,SAAS,GAAQ,EAAE;AACnB,IAAA,kBAAkB;AAE1B,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC1C,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC/C,oBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AAC5B,wBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CACzD,CAAI,CAAA,EAAA,GAAG,CAAG,CAAA,CAAA,EACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CACnC;;;;;QAMT,OAAO,IAAI,CAAC,SAAS;;IAGvB,IAAI,QAAQ,CAAC,CAAC,EAAA;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;;AAGpB,IAAA,WAAA,CAAoB,YAAoC,EAAA;QAApC,IAAY,CAAA,YAAA,GAAZ,YAAY;;IAEhC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC5B,aAAA,SAAS;AACT,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;AAGnB,YAAA,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,aAAa,EAAE;AACxC,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;;AAEjE,SAAC,CAAC;;AAGN,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO;AAEjC,QAAA,IACE,aAAa;AACb,YAAA,aAAa,CAAC,YAAY;AAC1B,YAAA,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EACrC;AACA,YAAA,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,YAAY,EAAE;gBAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO;;;;IAK/C,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;;;AAIzC,IAAA,aAAa,CAAC,OAAe,EAAA;AAC3B,QAAA,IAAI,UAAkB;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAChD,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC;;aAC9C;YACL,UAAU,GAAG,OAAO;;AAGtB,QAAA,OAAO,UAAU;;AAGnB,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;;wGA9EhB,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,sPCrBhC,mWAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA;;4FDUa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,cAG1B,KAAK,EAAA,QAAA,EAAA,mWAAA,EAAA;wFAGV,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,aAAa,EAAA,CAAA;sBAArB;;;MEjBU,kBAAkB,CAAA;;AAEpB,IAAA,OAAO;AACP,IAAA,QAAQ;IACR,QAAQ,GAAG,KAAK;wGAJd,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,mJCR/B,2HAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDKa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAGV,KAAK,EAAA,QAAA,EAAA,2HAAA,EAAA;8BAIV,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;AEZH;MASa,4BAA4B,CAAA;AAC9B,IAAA,IAAI;AACJ,IAAA,aAAa;AACb,IAAA,WAAW;AACX,IAAA,YAAY;AACZ,IAAA,OAAO;AACN,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO;AAC1C,IAAA,KAAK,GAAG,IAAI,YAAY,EAAO;AAC/B,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAClC,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAE5C,IAAA,kBAAkB,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGnC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;;IAGnB,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;IAGtB,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;wGAxBX,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,yUCTzC,ymDA+CA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,mBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDtCa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAGrB,KAAK,EAAA,QAAA,EAAA,ymDAAA,EAAA,MAAA,EAAA,CAAA,2IAAA,CAAA,EAAA;8BAGV,IAAI,EAAA,CAAA;sBAAZ;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;gBACS,KAAK,EAAA,CAAA;sBAAd;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;;;MENU,wBAAwB,CAAA;AAgChB,IAAA,EAAA;IA9BnB,UAAU,GAAG,KAAK;IAGlB,WAAW,GAAG,KAAK;IAEV,OAAO,GAAI,KAAK;IAChB,gBAAgB,GAAI,GAAG;IACvB,IAAI,GAAI,CAAC;AAElB,IAAA,YAAY;IACZ,KAAK,GAAG,GAAG;IACX,YAAY,GAAG,CAAC;AAChB,IAAA,KAAK;IAEG,cAAc,GAAG,CAAC;AACT,IAAA,cAAc,GAAG;QAChC,WAAW;QACX,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,WAAW;QACX,YAAY;QACZ,OAAO;QACP,MAAM;QACN,OAAO;KACR;AAED,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,aAAa;;AAItC,IAAA,SAAS,CAAC,CAAgB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IACE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACtC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;iBAC3B,IAAI,CAAC,OAAO;AACX,oBAAA,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB;AAC/B,oBAAA,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;AAC3B,iBAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;cAC/D;gBACA;;;AAIF,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC5C,CAAC,CAAC,cAAc,EAAE;;;;IAMxB,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,MAAM,KAAK,GAAG,OAAO;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAEpE;;AAGF,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC;AACrE,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YAE1D,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;;;AAM3E,IAAA,OAAO,CAAC,KAAqB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAW;AACxE,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAC3B,KAAK,CAAC,cAAc,EAAE;;;AAK1B,IAAA,OAAO,CAAC,KAAY,EAAA;QAClB,KAAK,CAAC,cAAc,EAAE;;IAGxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;;AAG1D,IAAA,SAAS,CAAC,aAAqB,EAAA;AACrC,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,aAAa;AAC3C,cAAE,IAAI,CAAC,aAAa,CAAC,aAAa;cAChC,aAAa;AACjB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,CAAC;QAC1E,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY;AACtE,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAC5B,gBAAgB,EAChB,KAAe,EACf,GAAa,EACb,KAAK,CACN;;;AAIG,IAAA,aAAa,CAAC,KAAa,EAAA;QACjC,IAAI,MAAM,GAAG,EAAE;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;;AAE9C,YAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,MAAA,EAAS,IAAI,CAAC,gBAAgB,CAAA,GAAA,CAAK,EAAE,GAAG,CAAC;YAClE,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;;aAC5B;AACL,YAAA,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,EAAA,CAAI,EAAE,EAAE,CAAC;;AAGhD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS;AAE7C,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;;YAEjB,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;AAChE,YAAA,MAAM,GAAG,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE;;AAGtE,QAAA,OAAO,MAAM;;AAGP,IAAA,cAAc,CAAC,WAAmB,EAAA;AACxC,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,gBAA0B,CAAC,CAAC,MAAM,IAAI,CAAC;;wGA7I5D,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAxB,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAGC,UAAU,EAAA,CAAA;sBADT;gBAID,WAAW,EAAA,CAAA;sBADV;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBA4BD,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;gBA6BnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAsBjC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAUjC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AC1GnC;MAqBa,iBAAiB,CAAA;AACpB,IAAA,UAAU;IAElB,IAAoB,IAAI,CAAC,KAAa,EAAA;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;;AAGlC,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;;wGARtB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EATf,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAGQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6DAA6D;AACvE,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAIqB,IAAI,EAAA,CAAA;sBAAvB;;MAoBU,iBAAiB,CAAA;AACpB,IAAA,UAAU;IAElB,IAAoB,IAAI,CAAC,KAAa,EAAA;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;;AAGlC,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;;wGARtB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EATf,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAGQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6DAA6D;AACvE,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAIqB,IAAI,EAAA,CAAA;sBAAvB;;;AC/CH;AAkCM,MAAO,mBACX,SAAQ,yBAAyB,CAAA;AAuCvB,IAAA,QAAA;AACS,IAAA,UAAA;AApCnB,IAAA,cAAc;AAGd,IAAA,UAAU;AAGV,IAAA,YAAY;AAGZ,IAAA,WAAW;AAEF,IAAA,GAAG;AACH,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,IAAI;AAEH,IAAA,MAAM,GAAG,IAAI,YAAY,EAAO;AAC1C,IAAA,GAAG;AAEH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzC,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAElB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,KAAK,MAAM,EAAE;AAChD,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;;IAKvB,WACU,CAAA,QAAkB,EACT,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE;QAHC,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACC,IAAU,CAAA,UAAA,GAAV,UAAU;;IAK7B,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;;IAI1B,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YACtD,IAAI,CAAC,OAAO,CAAC;AACV,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,mBAAmB,EAAE;AAC5B,aAAC,CAAC;;QAGN,IAAI,CAAC,mBAAmB,EAAE;;AAG5B,IAAA,QAAQ,GAAQ,MAAK,GAAG;AAExB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,UAAU,CAAC,CAAM,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;wGAnFV,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EATjB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,mBAAmB;AAChC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BL,wgCA8BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDIa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEZ,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAqB,mBAAA;AAChC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,wgCAAA,EAAA;sGAOnB,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAI9C,UAAU,EAAA,CAAA;sBADT;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,WAAW,EAAA,CAAA;sBADV;gBAGQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBAES,MAAM,EAAA,CAAA;sBAAf;;;ME9CU,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJX,YAAA,EAAA,CAAA,kBAAkB,CACvB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,kBAAkB,CAAA,EAAA,CAAA;AAEjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,YAAY,CAAA,EAAA,CAAA;;4FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA;;;MCGY,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAArB,qBAAqB,EAAA,YAAA,EAAA,CAJjB,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAC7C,mBAAmB,CAAA,EAAA,CAAA;AAElB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAHtB,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,kBAAkB,CAAA,EAAA,CAAA;;4FAG5C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,CAAC;oBACxD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA;;;ACQD,MAAM,UAAU,GAA+B;AAC7C,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,kBAAkB,EAAE,IAAI;AACxB,IAAA,eAAe,EAAE,SAAS;CAC3B;AAEK,SAAUC,eAAa,CAAC,OAAgB,EAAA;IAC5C,OAAO,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC/C;MA2Ba,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAApB,oBAAoB,EAAA,YAAA,EAAA,CAxBhB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEzC,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,qBAAqB;YACrB,kBAAkB;YAClB,aAAa;YACb,gBAAgB;AAChB,YAAA,eAAe,aAaP,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAbpB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,UAAU;AACrB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,UAAU,EAAEA,eAAa;gBACzB,IAAI,EAAE,CAAC,OAAO,CAAC;AAChB,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAnBC,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,qBAAqB;YACrB,kBAAkB;YAClB,aAAa;YACb,gBAAgB;YAChB,eAAe,CAAA,EAAA,CAAA;;4FAeN,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAzBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,kBAAkB;wBAClB,qBAAqB;wBACrB,kBAAkB;wBAClB,aAAa;wBACb,gBAAgB;wBAChB,eAAe;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,QAAQ,EAAE,UAAU;AACrB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,UAAU,EAAEA,eAAa;4BACzB,IAAI,EAAE,CAAC,OAAO,CAAC;AAChB,yBAAA;AACF,qBAAA;oBACD,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;MC3CY,+BAA+B,CAAA;wGAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,EAH3B,YAAA,EAAA,CAAA,wBAAwB,CAD7B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,wBAAwB,CAAA,EAAA,CAAA;AAEvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,YAJhC,YAAY,CAAA,EAAA,CAAA;;4FAIX,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA;;;MCAY,0BAA0B,CAAA;wGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA1B,0BAA0B,EAAA,YAAA,EAAA,CAHtB,iBAAiB,EAAE,iBAAiB,aADzC,YAAY,CAAA,EAAA,OAAA,EAAA,CAEZ,iBAAiB,EAAE,iBAAiB,CAAA,EAAA,CAAA;AAEnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAJ3B,YAAY,CAAA,EAAA,CAAA;;4FAIX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AACpD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AAChD,iBAAA;;;MCaY,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAhB,gBAAgB,EAAA,YAAA,EAAA,CAXZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEhC,YAAY;YACZ,cAAc;YACd,oBAAoB;YACpB,WAAW;YACX,+BAA+B;AAC/B,YAAA,0BAA0B,aAElB,mBAAmB,CAAA,EAAA,CAAA;AAElB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YATzB,YAAY;YACZ,cAAc;YACd,oBAAoB;YACpB,WAAW;YACX,+BAA+B;YAC/B,0BAA0B,CAAA,EAAA,CAAA;;4FAIjB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,oBAAoB;wBACpB,WAAW;wBACX,+BAA+B;wBAC/B,0BAA0B;AAC3B,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA;;;MCbY,gCAAgC,CAAA;AAIxB,IAAA,UAAA;AACA,IAAA,UAAA;AAJV,IAAA,yBAAyB;IAElC,WACmB,CAAA,UAAsB,EACtB,UAAmC,EAAA;QADnC,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAU,CAAA,UAAA,GAAV,UAAU;;IAI7B,WAAW,GAAA;QACT,MAAM,OAAO,GACX,IAAI,CAAC,yBAAyB,EAAE,MAAM,GAAG;AACvC,cAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAClD,IAAI,CAAC,yBAAyB,CAC/B,CAAC,CAAC;AACL,cAAE,IAAI,CAAC,UAAU,CAAC,aAAa;AACnC,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,WAAW;;wGAhB9D,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhC,gCAAgC,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,UAAU,EAAE;AACf,iBAAA;0GAEU,yBAAyB,EAAA,CAAA;sBAAjC;gBAQD,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW;;;MCNd,sCAAsC,CAAA;wGAAtC,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAtC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,EAHlC,YAAA,EAAA,CAAA,gCAAgC,CADrC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,gCAAgC,CAAA,EAAA,CAAA;AAE/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,YAJvC,YAAY,CAAA,EAAA,CAAA;;4FAIX,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,gCAAgC,CAAC;oBAChD,OAAO,EAAE,CAAC,gCAAgC,CAAC;AAC5C,iBAAA;;;ACRD;AA8CM,MAAO,oBACX,SAAQ,yBAAyB,CAAA;AAmEd,IAAA,QAAA;AACA,IAAA,iBAAA;AACA,IAAA,UAAA;AAlEV,IAAA,KAAK;IACL,QAAQ,GAAG,KAAK;IAChB,aAAa,GAAG,KAAK;IACrB,sBAAsB,GAAG,QAAQ;IACjC,eAAe,GAAG,KAAK;IACvB,kBAAkB,GAAG,KAAK;IAC1B,+BAA+B,GAAG,IAAI;IACtC,cAAc,GAAQ,CAAC;IACvB,mBAAmB,GAAG,mBAAmB;IACzC,SAAS,GAAG,MAAM;IAClB,QAAQ,GAAG,KAAK;IAChB,UAAU,GAAG,OAAO;IACpB,WAAW,GAAG,QAAQ;AACrB,IAAA,iBAAiB,GACzB,IAAI,YAAY,EAAU;AAClB,IAAA,eAAe,GAAsB,IAAI,YAAY,EAAO;AAE5C,IAAA,WAAW;AAErC,IAAA,wBAAwB;AAExB,IAAA,GAAG;AACH,IAAA,cAAc,GACZ,IAAI,eAAe,CAAkC,EAAE,CAAC;AAC1D,IAAA,cAAc,GAAuB,IAAI,kBAAkB,EAAE;IAC7D,UAAU,GAAG,KAAK;IAClB,qBAAqB,GAAG,IAAI;IAC5B,aAAa,GAAoC,EAAE;IACnD,gBAAgB,GAAoC,EAAE;AACtD,IAAA,aAAa,GAAG,IAAI,YAAY,EAAE;AAElC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;AAGjB,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,OAAO,IAAI,CAAC,QAAQ;;QAEtB,MAAM,gBAAgB,GACpB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;cACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;cACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAE7B,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG;AAC3C,cAAE,CAAA,EAAG,gBAAgB,CAAA,GAAA,EACjB,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3C,kBAAE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG;AACvB,kBAAE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAC3B,CAAA;AACI,UAAA,EAAA,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAG,CAAA;cACpE,gBAAgB;;IAGtB,IAAI,KAAK,CAAC,GAAG,EAAA;AACX,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;YACd,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CACmB,QAAkB,EAClB,iBAAoC,EACpC,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE;QAJU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACjB,IAAU,CAAA,UAAA,GAAV,UAAU;;AAK7B,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;AAEzB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;YAC/B,IAAI,CAAC,WAAW,EAAE;YAElB,IACE,IAAI,CAAC,QAAQ;AACb,gBAAA,IAAI,CAAC,kBAAkB;AACvB,gBAAA,IAAI,CAAC,WAAW,EAAE,QAAQ,EAC1B;gBACA,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CACrB;AACE,wBAAA,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;AACtD,wBAAA,IAAI,CAAC,cAAc;qBACpB,EACD;AACE,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CACF;iBACF,EAAE,GAAG,CAAC;;;;IAKb,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAE/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YACtD,IAAI,CAAC,OAAO,CAAC;AACV,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,mBAAmB,EAAE;AAC5B,aAAC,CAAC;;AAGN,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,GAAG,aAAa,CAAC;gBACjE,IAAI,CAAC,cAAc,CAAC,YAAY;AAChC,gBAAA,IAAI,CAAC,cAAc;AACpB,aAAA,CAAC,CAAC,IAAI,CACL,GAAG,CACD,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KACb,IAAI,CAAC,wBAAwB,CAAC,mBAAmB;gBACjD,KAAK;AACL,gBAAA,KAAK,CAAC,MAAM,KAAK,CAAC,CACrB,CACF;;QAGH,IAAI,CAAC,mBAAmB,EAAE;;IAG5B,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,cAAc,CAAC;AACjB,aAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACtB,aAAA,SAAS,CAAC,CAAC,KAAU,KAAI;YACxB,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AAElC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACjD,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;SAE1B,CAAC,CACL;;AAIH,IAAA,QAAQ,GAAQ,MAAK,GAAG;AAExB,IAAA,OAAO,GAAQ,MAAK,GAAG;IAEvB,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACtB,oBAAA,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;AACtD,oBAAA,IAAI,CAAC,cAAc;AACpB,iBAAA,CAAC;;iBACG;AACL,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACtB,oBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;AACvC,oBAAA,IAAI,CAAC,cAAc;AACpB,iBAAA,CAAC;;;aAEC;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;;IAI1B,YAAY,GAAA;QACV,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC7B,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;gBAE7B,IACE,IAAI,CAAC,+BAA+B;AACpC,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAC/C;AACA,oBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;;;AAG/B,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;IAGzB,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;;IAGzB,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ;;AAGpE,IAAA,QAAQ,CAAC,GAAQ,EAAA;QACf,IACE,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,WAAW,EAAE,QAAQ;AAC1B,YAAA,IAAI,CAAC,KAAK;AACV,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACrB;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;;AAG5B,QAAA,IAAI,IAAmC;AAEvC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAEvD,oBAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;;;iBAEzD;AACL,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAEvC,oBAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;;;YAIxD,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;;AAG/B,QAAA,OAAO,EAAE;;AAGX,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGnB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;;AAGlC,IAAA,kBAAkB,CAAC,MAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;IAG3B,WAAW,GAAA;QACjB,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf;;;AAIF,QAAA,IAAI,MAAM,GAAW,IAAI,CAAC,cAAc,CAAC,KAAK;AAE9C,QAAA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/C,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;;iBAC5C;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;;AAG/C,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;YAEjC;;AAGF,QAAA,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AAE7B,QAAA,IAAI,CAAC,qBAAqB;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAC1D,iBAAC,IAAI,CAAC,KAAK,YAAY,KAAK;oBAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3C,iBAAC,EAAE,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;AACxE,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;AAEtC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,aAAa,GACjB,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG;kBAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,KAChC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;kBAEzD,EAAE;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC;;aAC9D;YACL,IAAI,CAAC,cAAc,CAAC,IAAI,CACtB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG;kBACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KACrB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;kBAEzD,EAAE,CACP;;;IAIG,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,aAAa,GAAG,EAAE;AAExB,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAE;AAC/B,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;oBAE1D,IAAI,CAAC,SAAS,EAAE;wBACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC3B,4BAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CACzC,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,KAAK,KAAK,CAC/C;AAED,4BAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gCAChB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;iCACxC;AAEL,gCAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;gCAE7D,IAAI,IAAI,EAAE;AACR,oCAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAG9B,yBAAC,CAAC;wBAEF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;AAC1C,4BAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAC3B,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,KAAK,KAAK,CACxC;AAED,4BAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gCAAA,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;AAElC,yBAAC,CAAC;;;qBAEC;oBACL,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACxC,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CACpD;AAED,oBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBAChB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;yBACxC;wBAEL,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;wBAGjE,IAAI,IAAI,EAAE;AACR,4BAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;;;AAK9B,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC;AACvC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CACxC,CAAC,IAAI,KACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAC1B,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CACpD,KAAK,CAAC,CAAC,CACX;;iBACI;gBACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;;;;wGAvWtC,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EATlB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,iCAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;SACJ,EAyBQ,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,4FCpErC,w/DAwDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uCAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,kCAAA,EAAA,uBAAA,EAAA,mCAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA;;4FDVa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAEb,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAsB,oBAAA;AACjC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,w/DAAA,EAAA;sIAMV,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,+BAA+B,EAAA,CAAA;sBAAvC;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACS,iBAAiB,EAAA,CAAA;sBAA1B;gBAES,eAAe,EAAA,CAAA;sBAAxB;gBAEyB,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa;gBAExB,wBAAwB,EAAA,CAAA;sBADvB,SAAS;uBAAC,wBAAwB;;;MEhCxB,iBAAiB,CAAA;wGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAjB,iBAAiB,EAAA,YAAA,EAAA,CApBb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEjC,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,gBAAgB;YAChB,WAAW;YACX,wBAAwB;YACxB,mBAAmB;AACnB,YAAA,sCAAsC,aAE9B,oBAAoB,CAAA,EAAA,CAAA;AASnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,CAAC,OAAO,CAAC;AAChB,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAhBC,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,gBAAgB;YAChB,WAAW;YACX,wBAAwB;YACxB,mBAAmB;YACnB,sCAAsC,CAAA,EAAA,CAAA;;4FAW7B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBArB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,eAAe;wBACf,gBAAgB;wBAChB,WAAW;wBACX,wBAAwB;wBACxB,mBAAmB;wBACnB,sCAAsC;AACvC,qBAAA;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,UAAU,EAAE,aAAa;4BACzB,IAAI,EAAE,CAAC,OAAO,CAAC;AAChB,yBAAA;AACF,qBAAA;AACF,iBAAA;;AAGK,SAAU,aAAa,CAAC,OAAgB,EAAA;IAC5C,OAAO,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC/C;;ACxCA;AAqCM,MAAO,4BACX,SAAQ,yBAAyB,CAAA;AA8Cd,IAAA,QAAA;AACA,IAAA,UAAA;AA3CnB,IAAA,WAAW;AAGX,IAAA,cAAc;IAGL,IAAI,GAA0B,UAAU;AAGjD,IAAA,IAAI;IAGc,KAAK,GAAW,EAAE;IAGpC,aAAa,GAAuB,OAAO;AAG3C,IAAA,aAAa;AAGb,IAAA,OAAO;AAGE,IAAA,KAAK,GAAG,IAAI,YAAY,EAAO;AAG/B,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;AAE1C,IAAA,GAAG;AAEH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzC,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;;IAIlB,WACmB,CAAA,QAAkB,EAClB,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE;QAHU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAU,CAAA,UAAA,GAAV,UAAU;;AAK7B,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;IAEvB,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YACtD,IAAI,CAAC,OAAO,CAAC;AACV,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,mBAAmB,EAAE;AAC5B,aAAC,CAAC;;QAGN,IAAI,CAAC,mBAAmB,EAAE;;AAG5B,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE;AAE9B,QAAA,IAAI,IAAI,EAAE,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,OAAO;;;;AAKtE,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG1B,IAAA,OAAO,CAAC,MAAM,EAAA;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;IAGzB,MAAM,GAAA;QACJ,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,SAAC,CAAC;;AAGJ,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;;AAGtB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;wGAxGR,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAT1B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,4BAA4B;AACzC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOQ,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGX,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5C3B,49BAyBA,EAAA,MAAA,EAAA,CAAA,uuMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDYa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAbxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGf,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA8B,4BAAA;AACzC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,49BAAA,EAAA,MAAA,EAAA,CAAA,uuMAAA,CAAA,EAAA;sGAOnB,WAAW,EAAA,CAAA;sBADV,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAIzC,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAInC,IAAI,EAAA,CAAA;sBADZ;gBAID,IAAI,EAAA,CAAA;sBADH;gBAIiB,KAAK,EAAA,CAAA;sBADtB;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAID,OAAO,EAAA,CAAA;sBADN;gBAIQ,KAAK,EAAA,CAAA;sBADb;gBAIQ,OAAO,EAAA,CAAA;sBADf;;;AEpEH;AAwCM,MAAO,sBACX,SAAQ,yBAAyB,CAAA;AAgGd,IAAA,QAAA;AACA,IAAA,UAAA;AA7FnB,IAAA,QAAQ;IAGR,UAAU,GAA4B,SAAS;IAG/C,QAAQ,GAAG,EAAE;IAGb,KAAK,GAAkB,EAAE;IAGzB,SAAS,GAAG,OAAO;IAGnB,SAAS,GAAG,OAAO;IAGnB,kBAAkB,GAAG,KAAK;AAG1B,IAAA,UAAU;IAGV,SAAS,GAAG,IAAI;IAGhB,QAAQ,GAAG,KAAK;AAGhB,IAAA,YAAY;AAGZ,IAAA,YAAY;IAGZ,gBAAgB,GAAG,KAAK;AAGxB,IAAA,gBAAgB;AAGhB,IAAA,SAAS;AAGT,IAAA,SAAS;AAGT,IAAA,iBAAiB;AAGjB,IAAA,SAAS;IAGT,aAAa,GAAG,IAAI;AAGpB,IAAA,YAAY;AAGZ,IAAA,cAAc;IAGd,UAAU,GAAG,OAAO;IAGpB,WAAW,GAAG,QAAQ;AAGb,IAAA,eAAe,GAAG,IAAI,YAAY,EAAO;IAElD,OAAO,GAAG,KAAK;AACf,IAAA,GAAG;AACH,IAAA,MAAM;IACN,UAAU,GAAG,qBAAqB;IAClC,aAAa,GAAG,EAAE;AAClB,IAAA,SAAS;AACT,IAAA,WAAW;AAEX,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzC,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;IAIrB,WACmB,CAAA,QAAkB,EAClB,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE;QAHU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAU,CAAA,UAAA,GAAV,UAAU;;IAK7B,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE;QAElB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK;AACjD,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe;AACnC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;;IAGjC,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAE/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YAEtD,IAAI,CAAC,OAAO,CAAC;AACV,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,mBAAmB,EAAE;AAC5B,aAAC,CAAC;;QAGN,IAAI,CAAC,mBAAmB,EAAE;AAE1B,QAAA,IAAI,CAAC;cACD,IAAI,CACJ,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AAEzB,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG;AAC1B,SAAC,CAAC;;AAGN,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE;AAEzC,QAAA,IAAI,KAAK,EAAE,YAAY,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;;AAGlC,QAAA,IAAI,QAAQ,EAAE,YAAY,EAAE;YAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK;AAChD,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;;;AAIhC,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,QAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,iBAAiB,CAAC,SAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;;IAG1B,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;;AAIvB,IAAA,QAAQ,GAAQ,MAAK,GAAG;AAExB,IAAA,OAAO,GAAQ,MAAK,GAAG;IAEvB,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAExB,IACE,IAAI,CAAC,WAAW;AAChB,YAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;AACrB,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;;;AAIvC,IAAA,WAAW,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvD,YAAA,MAAM,SAAS,GAAG,CAAC,QAAuB,KAAU;AAClD,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAoB,KAAI;AACxC,oBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;AAC/B,iBAAC,CAAC;AACJ,aAAC;YAED,SAAS,CAAC,KAAK,CAAC;;;AAIpB,IAAA,OAAO,CAAC,MAAqB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;;AAG7B,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,YAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;YAC/D,MAAM,YAAY,GAChB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AACzE,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC;YAEzD,IAAI,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AAC7C,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;AAGvB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;AAGvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;IAGzB,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAiB,KAAI;YACrC,OAAO,IAAI,EAAE,KAAK;AACpB,SAAC;;wGAhOQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EATpB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,WAAW,EAAE,sBAAsB;AACtC,aAAA;SACJ,EAOQ,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,0GC5C9B,mpGAiFA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA;;4FDzCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGhB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAwB,sBAAA;AACtC,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,mpGAAA,EAAA;sGAOnB,QAAQ,EAAA,CAAA;sBADP,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAI9C,UAAU,EAAA,CAAA;sBADT;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,KAAK,EAAA,CAAA;sBADJ;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,kBAAkB,EAAA,CAAA;sBADjB;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,gBAAgB,EAAA,CAAA;sBADf;gBAID,gBAAgB,EAAA,CAAA;sBADf;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,iBAAiB,EAAA,CAAA;sBADhB;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,cAAc,EAAA,CAAA;sBADb;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,WAAW,EAAA,CAAA;sBADV;gBAIQ,eAAe,EAAA,CAAA;sBADvB;;;ME9FU,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAzB,yBAAyB,EAAA,YAAA,EAAA,CAVrB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEzC,YAAY;YACZ,oBAAoB;YACpB,iBAAiB;YACjB,oBAAoB;AACpB,YAAA,WAAW,aAEH,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YARlC,YAAY;YACZ,oBAAoB;YACpB,iBAAiB;YACjB,oBAAoB;YACpB,WAAW,CAAA,EAAA,CAAA;;4FAIF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,iBAAiB;wBACjB,oBAAoB;wBACpB,WAAW;AACZ,qBAAA;oBACD,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;MCQY,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAnB,mBAAmB,EAAA,YAAA,EAAA,CAdf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAEnC,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,kBAAkB;YAClB,yBAAyB;AACzB,YAAA,iBAAiB,aAET,sBAAsB,CAAA,EAAA,CAAA;AAErB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAZ5B,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,kBAAkB;YAClB,yBAAyB;YACzB,iBAAiB,CAAA,EAAA,CAAA;;4FAIR,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,kBAAkB;wBAClB,yBAAyB;wBACzB,iBAAiB;AAClB,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;ACGK,MAAO,sBACX,SAAQ,yBAAyB,CAAA;AAuBb,IAAA,QAAA;AAnBpB,IAAA,cAAc;AAGd,IAAA,IAAI;AAEJ,IAAA,GAAG;AAEH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzC,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CAAoB,QAAkB,EAAA;AACpC,QAAA,KAAK,EAAE;QADW,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAI5B,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC5C,SAAS,EACT,IAAI,CACQ;QACd,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;;AAK1D,IAAA,QAAQ,GAAQ,MAAW,GAAG;AAE9B,IAAA,OAAO,GAAQ,MAAW,GAAG;AAE7B,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;wGApDR,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EATpB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,sBAAsB;AACnC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBL,qXAaA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAEf,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAwB,sBAAA;AACnC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,qXAAA,EAAA;6EAOnB,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAI9C,IAAI,EAAA,CAAA;sBADH;;;MExBU,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJf,sBAAsB,CAC3B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,oBAAoB,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAC/C,sBAAsB,CAAA,EAAA,CAAA;AAErB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHpB,OAAA,EAAA,CAAA,YAAY,EAAE,oBAAoB,EAAE,WAAW,CAAA,EAAA,CAAA;;4FAG9C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,WAAW,CAAC;oBAC1D,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;MCNY,kBAAkB,CAAA;IACrB,MAAM,GAAG,KAAK;AACd,IAAA,YAAY;IAEpB,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAQ;;QAGzC,OAAO,IAAI,CAAC,YAAY;;IAG1B,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;AACzB,QAAA,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;wGAhBV,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAlB,kBAAkB,EAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;MCMY,4BAA4B,CAAA;AAC/B,IAAA,mBAAmB,GAAgC;AACzD,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,oBAAoB,EAAE,mBAAmB;AACzC,QAAA,oBAAoB,EAAE,YAAY;AAClC,QAAA,wBAAwB,EAAE,kBAAkB;AAC5C,QAAA,kBAAkB,EAAE,UAAU;AAC9B,QAAA,mBAAmB,EAAE,sBAAsB;AAC3C,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,EAAE,EAAE,IAAI;KACT;IAEO,OAAO,GACb,IAAI,eAAe,CAA8B,IAAI,CAAC,mBAAmB,CAAC;AAE5E,IAAA,SAAS,CAAC,MAAmC,EAAA;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;IAG3B,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;;AAGpC,IAAA,YAAY,CAAC,YAAyC,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC1B,YAAA,GAAG,YAAY;AAChB,SAAA,CAAC;;wGA9BO,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCgBY,0BAA0B,CAAA;AAoBlB,IAAA,QAAA;AACA,IAAA,WAAA;AACA,IAAA,GAAA;AACA,IAAA,4BAAA;AACA,IAAA,kBAAA;AAvBX,IAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;IAClC,YAAY,GAAG,EAAE;AACjB,IAAA,iBAAiB;AAEzB,IAAA,IAAI,WAAW,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,EAAE;AACzC,YAAA,OAAO,MAAM,CACX,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAC7C,WAAW,EACX;gBACE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,OAAO,CAAC,IAAI;AACvD,aAAA,CACF;;AAGH,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;;IAGjE,WACmB,CAAA,QAAwB,EACxB,WAA2B,EAC3B,GAAsB,EACtB,4BAA0D,EAC1D,kBAAsC,EAAA;QAJtC,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;AAEnC,QAAA,QAAQ,CAAC;AACN,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;aACjC,SAAS,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;;IAGxC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;aACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;;IAG7D,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;IAG9B,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,CAAC,UAAU;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK;AAC5B,kBAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AACjE,kBAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAC/D;;IAGT,WAAW,GAAA;QACT,IAAI,CAAC,QAAQ,CAAC,UAAU;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK;AAC5B,kBAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAChE,kBAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAC7D;;IAGT,oBAAoB,GAAA;QAClB,IAAI,CAAC,QAAQ,CAAC,WAAW;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,GAAG,YAAY,GAAG,OAAO;;wGAjEvD,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAX,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAoB,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAHxB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,0BCrBnC,oZAYA,EAAA,MAAA,EAAA,CAAA,wwCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDYa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,aACpC,CAAC,kBAAkB,CAAC,EAAA,UAAA,EACnB,KAAK,EAAA,QAAA,EAAA,oZAAA,EAAA,MAAA,EAAA,CAAA,wwCAAA,CAAA,EAAA;;;MEXR,8BAA8B,CAAA;AAIvB,IAAA,4BAAA;AAHT,IAAA,eAAe;AAExB,IAAA,WAAA,CACkB,4BAA0D,EAAA;QAA1D,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;;wGAJnC,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAkB,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,qICX3C,uNAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDOa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,uNAAA,EAAA;8FAGV,eAAe,EAAA,CAAA;sBAAvB;;;MEJU,+BAA+B,CAAA;IAE1C,WAAW,GAAG,QAAQ;IAGtB,UAAU,GAAG,OAAO;AAGX,IAAA,KAAK,GAAuB,IAAI,YAAY,EAAE;wGAR5C,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,qLCR5C,gcAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxB,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA;;4FDNa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,cAGzB,KAAK,EAAA,QAAA,EAAA,gcAAA,EAAA;8BAInB,WAAW,EAAA,CAAA;sBADV;gBAID,UAAU,EAAA,CAAA;sBADT;gBAIQ,KAAK,EAAA,CAAA;sBADb;;;AEfH;AA8CM,MAAO,wBACX,SAAQ,yBAAyB,CAAA;AAgCd,IAAA,QAAA;AACA,IAAA,4BAAA;AACA,IAAA,kBAAA;AA/BV,IAAA,OAAO;AACP,IAAA,OAAO;IACP,OAAO,GAAG,KAAK;AACf,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,eAAe;AACf,IAAA,eAAe;AACf,IAAA,aAAa;AACb,IAAA,cAAc;AAEb,IAAA,MAAM,GAAG,IAAI,YAAY,EAAO;AAE1C,IAAA,GAAG;IACH,MAAM,GAAG,8BAA8B;AACvC,IAAA,iBAAiB;AAEjB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAoB,EAAA;QAC5B,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACxD,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CACmB,QAAkB,EAClB,4BAA0D,EAC1D,kBAAsC,EAAA;AAEvD,QAAA,KAAK,EAAE;QAJU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;IAKrC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;aACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;;IAG7D,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;;AAI1D,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,UAAU,CAAC,CAAM,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;AAGrB,IAAA,gBAAgB,CAAC,IAAU,EAAA;QACzB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE;AAEjE,QAAA,IAAI,WAAW,IAAI,cAAc,EAAE;YACjC,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAEvD,YAAA,OAAO,CAAC,OAAO,CAAC,SAAS,CACvB,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA,SAAA,EAAY,cAAc,CAAA,CAAE,CAC1D;;AAGH,QAAA,OAAO,IAAI;;AAGb,IAAA,eAAe,GAAG,CAAC,IAAU,KAAa;QACxC,IAAI,MAAM,GAAG,IAAI;QAEjB,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3B,YAAA,MAAM,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE;AAE1B,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,GAAG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;;AAG3C,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;;YAGhD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AAClC,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;gBACxC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,oBAAA,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,YAAY,KACjD,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5B;AACD,oBAAA,MAAM,GAAG,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC;;;;AAKrC,QAAA,OAAO,MAAM;AACf,KAAC;wGAjHU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAsB,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAVtB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;YACD,kBAAkB;AACrB,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CL,ipCAkCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,+BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDYa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAdpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGlB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA0B,wBAAA;AACrC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,kBAAkB;AACrB,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,ipCAAA,EAAA;mJAMV,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAES,MAAM,EAAA,CAAA;sBAAf;;;MEjDU,kCAAkC,CAAA;AAI3B,IAAA,4BAAA;AAHT,IAAA,WAAW;AAEpB,IAAA,WAAA,CACkB,4BAA0D,EAAA;QAA1D,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;;wGAJnC,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,kICX/C,wNAIA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDOa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAP9C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAGxB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,wNAAA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA;8FAGV,WAAW,EAAA,CAAA;sBAAnB;;;MENU,0BAA0B,CAAA;AAMlB,IAAA,EAAA;AALV,IAAA,QAAQ;AACR,IAAA,QAAQ;AAEjB,IAAA,YAAY;AAEZ,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,aAAa;;AAItC,IAAA,OAAO,CAAC,CAAC,EAAA;QACP,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AAE7B,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE5D;;AAGF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAEtE;;;QAIJ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAEtE;;;;AAKE,IAAA,aAAa,CAAC,KAAa,EAAA;QACjC,IAAI,MAAM,GAAG,EAAE;;AAEf,QAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,MAAA,CAAQ,CAAC;QAClC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAEjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS;AAE7C,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;AAChE,YAAA,MAAM,GAAG,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE;;AAGtE,QAAA,OAAO,MAAM;;wGAlDJ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA1B,0BAA0B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAEU,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBASD,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AChBnC,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC1E,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;SAGhD,2BAA2B,CACzC,UAAU,GAAG,YAAY,EACzB,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,EAAA;IAEpC,MAAM,eAAe,GAAG;SACrB,KAAK,CAAC,YAAY;SAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAGlE,IAAA,OAAO,UAAU,cAAc,EAAA;QAC7B,MAAM,mBAAmB,GAAG,EAAE;AAC9B,QAAA,MAAM,QAAQ,GAAG;AACf,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;SACP;AACD,QAAA,MAAM,QAAQ,GAAG;AACf,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;SACN;QACD,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;;AAGlD,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3C,MAAM,aAAa,GAAG,QAAQ,CAC5B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACxC,EAAE,CACH;AAED,YAAA,IAAI,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,EAAE;gBAC7D,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AAC7D,gBAAA,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC/B,gBAAA,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAEtC,SAAC,CAAC;;QAGF,IAAI,KAAK,GAAG,CAAC;QACb,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3C,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;YAC5B,MAAM,SAAS,GAAG;AACf,iBAAA,MAAM,CAAC,QAAQ,EAAE,MAAM;AACvB,iBAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;AAErC,YAAA,IAAI,MAAM,KAAK,IAAI,EAAE;;AAEnB,gBAAA,KAAK,GAAG,KAAK,IAAI,CAAC;;AAGpB,YAAA,MAAM,iBAAiB,GACrB,MAAM,KAAK,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAE3D,YAAA,IAAI,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,IAAI,CAAC,EAAE;gBAC5D,MAAM,cAAc,GAAG,QAAQ,CAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1D,EAAE,CACH;gBACD,MAAM,cAAc,GAAG,QAAQ,CAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1D,EAAE,CACH;AAED,gBAAA,OAAO,KAAK,GAAG,cAAc,IAAI,KAAK,GAAG,cAAc;;YAGzD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE;gBACtC,MAAM,cAAc,GAAG,QAAQ,CAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1D,EAAE,CACH;gBACD,MAAM,cAAc,GAAG,QAAQ,CAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAC1D,EAAE,CACH;AAED,gBAAA,OAAO,KAAK,GAAG,cAAc,IAAI,KAAK,GAAG,cAAc;;YAGzD,QACE,KAAK,GAAG,iBAAiB;AACzB,iBAAC,SAAS,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE7D,SAAC,CAAC;QAEF,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,KAAK;;QAGd,OAAO;AACL,YAAA,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,mBAAmB;SACpB;AACH,KAAC;AACH;;MC9Fa,sBAAsB,CAAA;AAkDJ,IAAA,OAAA;IAjDpB,cAAc,GAAG,KAAK;IACtB,eAAe,GAAG,KAAK;AAEhC,IAAA,qBAAqB;IACrB,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,IAAA,YAAY,GAAG;QACb,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;AACL,KAAA,CAAC;AACF,IAAA,uBAAuB,GAAG;QACxB,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;AACL,KAAA,CAAC;;AAEF,IAAA,MAAM;AAEN,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO;;AAEO,IAAA,eAAe,CAAC,KAAK,EAAA;AAC9D,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;QAE3B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK;YAC5B,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;;;IAI9D,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;AACxC,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,CAAC;kBACP,IAAI,CAAC;AACL,sBAAE,2BAA2B,CAAC,sBAAsB;AACpD,sBAAE,2BAA2B,CAAC,mBAAmB;AACnD,kBAAE,2BAA2B,CAAC,YAAY,CAAC;AAC7C,YAAA,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE,IAAI,CAAC;kBACP,IAAI,CAAC;sBACH,IAAI,CAAC;sBACL,IAAI,CAAC;kBACP,IAAI,CAAC,IAAI;SACd;QAED,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;IAG9D,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE;;AAG/B,IAAA,cAAc,CAAC,KAAa,EAAA;;AAElC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;wGAxFd,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAEU,cAAc,EAAA,CAAA;sBAAtB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBAkD0C,eAAe,EAAA,CAAA;sBAAzD,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;ACnE3C;AAqDM,MAAO,4BACX,SAAQ,yBAAyB,CAAA;AAgId,IAAA,QAAA;AACA,IAAA,WAAA;AACA,IAAA,EAAA;AACA,IAAA,4BAAA;AACA,IAAA,kBAAA;AAhInB,IAAA,cAAc;AAGd,IAAA,eAAe;AAEN,IAAA,OAAO;AACP,IAAA,OAAO;IACP,OAAO,GAAG,KAAK;IACf,WAAW,GAAG,IAAI;AAClB,IAAA,WAAW;AACX,IAAA,UAAU;IACV,gBAAgB,GAAG,IAAI;;IAEvB,qBAAqB,GAAG,KAAK;IAEtC,MAAM,GAAG,IAAI;IACb,QAAQ,GAAG,IAAI;IACf,QAAQ,GAAG,IAAI;AACf,IAAA,KAAK;;AAEG,IAAA,cAAc;AACtB,IAAA,YAAY;AACZ,IAAA,GAAG;IACH,MAAM,GAAG,kCAAkC;IAC3C,aAAa,GAAG,EAAE;IAClB,sBAAsB,GAAG,EAAE;IAC3B,4BAA4B,GAAG,KAAK;IACpC,UAAU,GAAG,KAAK;AAClB,IAAA,iBAAiB;IACjB,aAAa,GAAG,kBAAkB;AAElC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;AAGjB,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;;AAG1B,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;AAGpB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;AAGtB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAGtB,IAAI,KAAK,CAAC,KAAa,EAAA;QACrB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI1C,IAAI,OAAO,CAAC,KAAa,EAAA;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI5C,IAAI,OAAO,CAAC,KAAa,EAAA;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI5C,IAAI,KAAK,CAAC,GAAG,EAAA;AACX,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;AAC1D,YAAA,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;;AAE7C,YAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK;;;IAI7C,IAAI,WAAW,CAAC,GAAW,EAAA;QACzB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,aAAa,EAAE;AACtC,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAEzB;;AAGF,QAAA,MAAM,IAAI,GAAG,KAAK,CAChB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EACpB,IAAI,CAAC,WAAW,GAAG,CAAA,iBAAA,CAAmB,GAAG,CAAA,oBAAA,CAAsB,EAC/D,IAAI,IAAI,EAAE,CACX;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG,EAAE;AAC9C,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAChE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,gBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI;AACxC,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO;AACzB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAErC;;YAGF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AACvC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,gBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI;AACxC,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO;AACzB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAErC;;AAGF,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,YAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI;AACxC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;IAIxB,WACmB,CAAA,QAAkB,EAClB,WAAwB,EACxB,EAAqB,EACrB,4BAA0D,EAC1D,kBAAsC,EAAA;AAEvD,QAAA,KAAK,EAAE;QANU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;IAKrC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;aACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;;IAG7D,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YAEtD,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;gBAEtC,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;aAE9B,EAAE,EAAE,CAAC;;;AAIV,IAAA,QAAQ,GAAQ,MAAK,GAAG;AAExB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;;QAEnB,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,EAAE;AAC/D,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAE7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGnB,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/D,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CACrB,UAAU,CACR,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5C,CAAC,IAAI,CAAC,QAAQ,CACf,EACD,CAAC,IAAI,CAAC,QAAQ,CACf;;;AAIL,IAAA,kBAAkB,CAAC,IAAU,EAAA;QAC3B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC7C,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;SAE1B,EAAE,IAAI,CAAC;;AAGF,IAAA,cAAc,CAAC,IAAU,EAAA;QAC/B,IAAI,MAAM,GAAG,EAAE;QAEf,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACnC,MAAM,GAAG,IAAI,CAAC;kBACV,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA,iBAAA,CAAmB;kBAC1C,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAsB,oBAAA,CAAA,CAAC;;AAGpD,QAAA,OAAO,MAAM;;AAGP,IAAA,WAAW,CAAC,GAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI;;AAGjD,IAAA,SAAS,CAAC,IAAU,EAAA;;AAE1B,QAAA,MAAM,yBAAyB,GAC7B,IAAI,CAAC,cAAc,IAAI,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;AAE1E,QAAA,MAAM,WAAW,GAAG,yBAAyB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI;AAE1E,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAEzB,QAAA,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI;AAC5D,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AAEtB,QAAA,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC5C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;YAChD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;;;wGAzOzC,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAX5B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;YACD,WAAW;YACX,kBAAkB;AACnB,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClDH,0mGA+EA,EAAA,MAAA,EAAA,CAAA,yjBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD1Ba,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAfxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGvB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,kCAAkC,CAAC;AAC3D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;wBACD,WAAW;wBACX,kBAAkB;AACnB,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,0mGAAA,EAAA,MAAA,EAAA,CAAA,yjBAAA,CAAA,EAAA;6MAOjB,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAI9C,eAAe,EAAA,CAAA;sBADd,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAG7B,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAEQ,qBAAqB,EAAA,CAAA;sBAA7B;;;ME9DU,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAHxB,YAAA,EAAA,CAAA,sBAAsB,CAD3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,sBAAsB,CAAA,EAAA,CAAA;AAErB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAJ7B,YAAY,CAAA,EAAA,CAAA;;4FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;MCCY,gCAAgC,CAAA;wGAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,EAH5B,YAAA,EAAA,CAAA,0BAA0B,CAD/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,0BAA0B,CAAA,EAAA,CAAA;AAEzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,YAJjC,YAAY,CAAA,EAAA,CAAA;;4FAIX,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA;;;MCYY,uBAAuB,CAAA;wGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAvB,uBAAuB,EAAA,YAAA,EAAA,CAVnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAEvC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,eAAe;AACf,YAAA,mBAAmB,aAEX,0BAA0B,CAAA,EAAA,CAAA;AAEzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YARhC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,eAAe;YACf,mBAAmB,CAAA,EAAA,CAAA;;4FAIV,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;AAC1C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,aAAa;wBACb,eAAe;wBACf,mBAAmB;AACpB,qBAAA;oBACD,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA;;;MCRY,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA5B,4BAA4B,EAAA,YAAA,EAAA,CAJxB,+BAA+B,CAEpC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CADrD,+BAA+B,CAAA,EAAA,CAAA;AAG9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAF7B,OAAA,EAAA,CAAA,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAA,EAAA,CAAA;;4FAEpD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC1C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;AACjE,iBAAA;;;MC8BY,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,iBArBlC,4BAA4B;AAC5B,YAAA,kCAAkC,aAGlC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,+BAA+B;YAC/B,gCAAgC;YAChC,4BAA4B;YAC5B,4BAA4B;YAC5B,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEV,4BAA4B,EAAE,kCAAkC,CAAA,EAAA,CAAA;AAE/D,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAjBlC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,+BAA+B;YAC/B,gCAAgC;YAChC,4BAA4B;YAC5B,4BAA4B;YAC5B,kBAAkB,CAAA,EAAA,CAAA;;4FAIT,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAvBrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;wBAC5B,kCAAkC;AACnC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,aAAa;wBACb,mBAAmB;wBACnB,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,kBAAkB;wBAClB,+BAA+B;wBAC/B,gCAAgC;wBAChC,4BAA4B;wBAC5B,4BAA4B;wBAC5B,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,4BAA4B,EAAE,kCAAkC,CAAC;AAC5E,iBAAA;;;MC5BY,mCAAmC,CAAA;AAI5B,IAAA,4BAAA;AAHT,IAAA,oBAAoB;AAE7B,IAAA,WAAA,CACkB,4BAA0D,EAAA;QAA1D,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;;wGAJnC,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAb,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,qJCXhD,gOAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDOa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAP/C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,EAGzB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,gOAAA,EAAA;8FAGV,oBAAoB,EAAA,CAAA;sBAA5B;;;AEZH;AAwCM,MAAO,6BACX,SAAQ,yBAAyB,CAAA;AAiEd,IAAA,QAAA;AACA,IAAA,4BAAA;AACA,IAAA,kBAAA;AAhEV,IAAA,OAAO;AACP,IAAA,OAAO;IACP,OAAO,GAAG,KAAK;AACf,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,oBAAoB;AACpB,IAAA,kBAAkB;AAEjB,IAAA,MAAM,GAAG,IAAI,YAAY,EAAO;AAC1C,IAAA,GAAG;IAKH,MAAM,GAAG,mCAAmC;AAC5C,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,iBAAiB;AAEjB,IAAA,IAAI,KAAK,GAAA;QAIP,OAAO,IAAI,CAAC,GAAG;;AAGjB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;IAIrB,IAAI,KAAK,CAAC,GAAyC,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC5B,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;IAKrB,IAAI,QAAQ,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG;YACpB,IAAI,CAAC,OAAO,EAAE;;;IAKlB,IAAI,MAAM,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,OAAO,GAAG,GAAG;YAClB,IAAI,CAAC,OAAO,EAAE;;;AAIlB,IAAA,WAAA,CACmB,QAAkB,EAClB,4BAA0D,EAC1D,kBAAsC,EAAA;AAEvD,QAAA,KAAK,EAAE;QAJU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;IAKrC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;aACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;;IAG7D,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YACtD,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AACjC,aAAC,CAAC;;;AAIN,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;IAGrB,OAAO,GAAA;QACL,IAAI,CAAC,KAAK,GAAG;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;;wGAlHQ,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAV3B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,6BAA6B;AAC1C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;YACD,kBAAkB;AACrB,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCL,01CAuBA,EAAA,MAAA,EAAA,CAAA,k6ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,+BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDiBa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAdzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAGxB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA+B,6BAAA;AAC1C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,kBAAkB;AACrB,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,01CAAA,EAAA,MAAA,EAAA,CAAA,k6ZAAA,CAAA,EAAA;mJAMV,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAES,MAAM,EAAA,CAAA;sBAAf;;;AEnCU,MAAA,+BAA+B,GAAG;AAC7C,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,sBAAsB;AAClC,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,sBAAsB;AACrC,QAAA,kBAAkB,EAAE,WAAW;AAChC,KAAA;;MA0BU,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBArB7B,6BAA6B;AAC7B,YAAA,mCAAmC,aAGnC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,+BAA+B;YAC/B,gCAAgC;YAChC,4BAA4B;YAC5B,cAAc;YACd,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEpB,6BAA6B,EAAE,mCAAmC,CAAA,EAAA,CAAA;AAEjE,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAjB7B,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,+BAA+B;YAC/B,gCAAgC;YAChC,4BAA4B;YAC5B,cAAc;YACd,4BAA4B,CAAA,EAAA,CAAA;;4FAInB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,mCAAmC;AACpC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,aAAa;wBACb,mBAAmB;wBACnB,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,kBAAkB;wBAClB,+BAA+B;wBAC/B,gCAAgC;wBAChC,4BAA4B;wBAC5B,cAAc;wBACd,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,6BAA6B,EAAE,mCAAmC,CAAC;AAC9E,iBAAA;;;MCrBY,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAfjB,YAAA,EAAA,CAAA,wBAAwB,EAAE,8BAA8B,aAErE,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,eAAe;YACf,cAAc;YACd,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEpB,wBAAwB,EAAE,8BAA8B,CAAA,EAAA,CAAA;AAEvD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAb9B,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,eAAe;YACf,cAAc;YACd,4BAA4B,CAAA,EAAA,CAAA;;4FAInB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;AACxE,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,aAAa;wBACb,mBAAmB;wBACnB,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,eAAe;wBACf,cAAc;wBACd,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;AACpE,iBAAA;;;MCnBY,uCAAuC,CAAA;AAIhC,IAAA,4BAAA;AAHT,IAAA,WAAW;AAEpB,IAAA,WAAA,CACkB,4BAA0D,EAAA;QAA1D,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;;wGAJnC,uCAAuC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uCAAuC,wICVpD,iOAIA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA;;4FDMa,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBANnD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qCAAqC,cAGnC,KAAK,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA;8FAGV,WAAW,EAAA,CAAA;sBAAnB;;;MEJU,sBAAsB,CAAA;AAsBJ,IAAA,OAAA;IArBpB,SAAS,GAAa,KAAK;AAC3B,IAAA,GAAG;AAEZ,IAAA,qBAAqB;AACrB,IAAA,aAAa,GAAG;QACd,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;KACL;AACD,IAAA,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AAExC,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO;;IAEpC,QAAQ,GAAA;AACN,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC9C,YAAA,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;AACxC,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;YACpD,IAAI,EAAE,UAAU,cAAc,EAAA;AAC5B,gBAAA,IAAI,cAAc,MAAM,SAAS,GAAG,eAAe,GAAG,OAAO,CAAC,EAAE;AAC9D,oBAAA,OAAO,GAAG;;AAGZ,gBAAA,OAAO,cAAc;aACtB;AACF,SAAA,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;;wGA5C3B,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAEU,SAAS,EAAA,CAAA;sBAAjB;gBACQ,GAAG,EAAA,CAAA;sBAAX;;;ACTH;AAyCM,MAAO,iCACX,SAAQ,yBAAyB,CAAA;AAyGd,IAAA,QAAA;AACA,IAAA,WAAA;AACA,IAAA,4BAAA;AACA,IAAA,kBAAA;IAzGV,OAAO,GAAG,KAAK;AACf,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,GAAG;AACH,IAAA,IAAI;AACJ,IAAA,EAAE;AAED,IAAA,MAAM,GAAG,IAAI,YAAY,EAAO;IAE1C,UAAU,GAAG,IAAI;IACjB,YAAY,GAAG,IAAI;IACnB,QAAQ,GAAG,IAAI;IACf,UAAU,GAAG,IAAI;IACjB,QAAQ,GAAG,IAAI;AACf,IAAA,KAAK;AACL,IAAA,YAAY;AACZ,IAAA,GAAG;IACH,MAAM,GAAG,uCAAuC;IAChD,aAAa,GAAG,EAAE;IAClB,sBAAsB,GAAG,EAAE;AAC3B,IAAA,WAAW;AACX,IAAA,iBAAiB;AAEjB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;AAGjB,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;;AAG1B,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;;AAGxB,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;;AAG1B,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;AAGtB,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;;AAGxB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;AAGtB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,GAAG;;IAGhD,IAAI,SAAS,CAAC,KAAa,EAAA;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI9C,IAAI,WAAW,CAAC,KAAa,EAAA;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAIhD,IAAI,OAAO,CAAC,KAAa,EAAA;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI5C,IAAI,SAAS,CAAC,KAAa,EAAA;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI9C,IAAI,OAAO,CAAC,KAAa,EAAA;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;;;IAI5C,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;IAIrB,IAAI,WAAW,CAAC,GAAW,EAAA;QACzB,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG;;;AAIpB,IAAA,WAAA,CACmB,QAAkB,EAClB,WAAwB,EACxB,4BAA0D,EAC1D,kBAAsC,EAAA;AAEvD,QAAA,KAAK,EAAE;QALU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;IAKrC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;aACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;;IAG7D,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YAEtD,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO;AAC/B,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;gBAEhE,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;aAE9B,EAAE,EAAE,CAAC;;;AAIV,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,UAAU,CAAC,CAAM,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;AAGrB,IAAA,aAAa,CAAC,CAAM,EAAA;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;YACrC,MAAM,GAAG,GAAG,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;IAIrB,OAAO,GAAA;QACL,IACE,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC,UAAU;AACf,YAAA,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,QAAQ,EACb;YACA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;YAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,YAAA,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,UAAU;gBACb,GAAG;AACH,gBAAA,IAAI,CAAC,YAAY;gBACjB,KAAK;AACL,gBAAA,IAAI,CAAC,QAAQ;gBACb,GAAG;gBACH,IAAI,CAAC,UAAU,CAClB;AACD,YAAA,IAAI,CAAC,KAAK;AACR,gBAAA,IAAI,CAAC,UAAU;oBACf,GAAG;AACH,oBAAA,IAAI,CAAC,YAAY;oBACjB,KAAK;AACL,oBAAA,IAAI,CAAC,QAAQ;oBACb,GAAG;oBACH,IAAI,CAAC,UAAU;YAEjB;;;IAIJ,MAAM,GAAA;QACJ,UAAU,CAAC,MAAK;YACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;AACxE,YAAA,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAGjD,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,QAAQ,CAAC,sBAAsB,CAC7B,cAAc,CACkB,CACnC;AAED,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;;AAEjC,SAAC,CAAC;;AAGI,IAAA,WAAW,CAAC,GAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI;;AAGjD,IAAA,SAAS,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;AAGX,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3B,cAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;cAC3B,IAAI;;AAGF,IAAA,cAAc,CAAC,GAAW,EAAA;AAChC,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1B,cAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ;cACpC,GAAG;;wGA3OE,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,EAX/B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,iCAAiC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;YACD,WAAW;YACX,kBAAkB;AACrB,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCL,g6HAmGA,EAAA,MAAA,EAAA,CAAA,gXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,+BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD1Da,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAf7C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAG7B,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAmC,iCAAA;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,WAAW;wBACX,kBAAkB;AACrB,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,g6HAAA,EAAA,MAAA,EAAA,CAAA,gXAAA,CAAA,EAAA;6KAMV,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,EAAE,EAAA,CAAA;sBAAV;gBAES,MAAM,EAAA,CAAA;sBAAf;;;ME3CU,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAHxB,YAAA,EAAA,CAAA,sBAAsB,CAD3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,sBAAsB,CAAA,EAAA,CAAA;AAErB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAJ7B,YAAY,CAAA,EAAA,CAAA;;4FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;MCmCY,8BAA8B,CAAA;wGAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,iBAxBvC,iCAAiC;AACjC,YAAA,uCAAuC,aAGvC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,+BAA+B;YAC/B,gCAAgC;YAChC,4BAA4B;YAC5B,4BAA4B;AAC5B,YAAA,4BAA4B,aAG5B,iCAAiC;YACjC,uCAAuC,CAAA,EAAA,CAAA;AAG9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,YApBvC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,+BAA+B;YAC/B,gCAAgC;YAChC,4BAA4B;YAC5B,4BAA4B;YAC5B,4BAA4B,CAAA,EAAA,CAAA;;4FAOnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBA1B1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iCAAiC;wBACjC,uCAAuC;AACxC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,aAAa;wBACb,mBAAmB;wBACnB,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,kBAAkB;wBAClB,+BAA+B;wBAC/B,gCAAgC;wBAChC,4BAA4B;wBAC5B,4BAA4B;wBAC5B,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iCAAiC;wBACjC,uCAAuC;AACxC,qBAAA;AACF,iBAAA;;;AC1CD;AA8BM,MAAO,uBACX,SAAQ,yBAAyB,CAAA;AAsBb,IAAA,QAAA;AAnBX,IAAA,UAAU;AACV,IAAA,YAAY;AACZ,IAAA,WAAW;AAEV,IAAA,MAAM,GAAG,IAAI,YAAY,EAAO;AAC1C,IAAA,GAAG;AAEH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzC,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CAAoB,QAAkB,EAAA;AACpC,QAAA,KAAK,EAAE;QADW,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAI5B,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC5C,SAAS,EACT,IAAI,CACQ;QACd,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;;AAI1D,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,UAAU,CAAC,CAAM,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;IAGrB,SAAS,GAAA;QACP,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;;IAG9B,SAAS,GAAA;QACP,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;;wGA7DnB,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EATrB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,uBAAuB;AACpC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BL,gtBAkBA,EAAA,MAAA,EAAA,CAAA,smDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDYa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGhB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAyB,uBAAA;AACpC,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,gtBAAA,EAAA,MAAA,EAAA,CAAA,smDAAA,CAAA,EAAA;6EAMV,UAAU,EAAA,CAAA;sBAAlB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAES,MAAM,EAAA,CAAA;sBAAf;;;MEjBU,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAApB,oBAAoB,EAAA,YAAA,EAAA,CAXhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;YACZ,cAAc;YACd,aAAa;YACb,oBAAoB;YACpB,WAAW;AACX,YAAA,+BAA+B,aAEvB,uBAAuB,CAAA,EAAA,CAAA;AAEtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAT7B,YAAY;YACZ,cAAc;YACd,aAAa;YACb,oBAAoB;YACpB,WAAW;YACX,+BAA+B,CAAA,EAAA,CAAA;;4FAItB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,oBAAoB;wBACpB,WAAW;wBACX,+BAA+B;AAChC,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA;;;MCjBY,WAAW,CAAA;AACf,IAAA,YAAY,GAAG;AACpB,QAAA,CAAC,4BAA4B,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1C,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC;AAChC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1B,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5B,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AACzB,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,KAAK,CAAC;AACtC,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1B,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AAChC,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AACzB,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,8CAA8C,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7D,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/C,QAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC;AACxC,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC;AACpC,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC;AACpC,QAAA;YACE,QAAQ;YACR,IAAI;YACJ,GAAG;YACH,CAAC;AACD,YAAA;gBACE,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;AACN,aAAA;AACF,SAAA;AACD,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC;AAChC,QAAA,CAAC,sDAAsD,EAAE,IAAI,EAAE,KAAK,CAAC;AACrE,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AACrB,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1B,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnC,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;AACxB,QAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,KAAK,CAAC;AACvC,QAAA,CAAC,gDAAgD,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/D,QAAA,CAAC,sCAAsC,EAAE,IAAI,EAAE,KAAK,CAAC;AACrD,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AACpB,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC;AACjD,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC;AACjC,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1B,QAAA;YACE,2CAA2C;YAC3C,IAAI;YACJ,GAAG;YACH,CAAC;AACD,YAAA,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACtB,SAAA;AACD,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9B,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5B,QAAA,CAAC,uCAAuC,EAAE,IAAI,EAAE,KAAK,CAAC;AACtD,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,mCAAmC,EAAE,IAAI,EAAE,KAAK,CAAC;AAClD,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACnC,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;AACtB,QAAA,CAAC,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC;AACjD,QAAA,CAAC,wCAAwC,EAAE,IAAI,EAAE,KAAK,CAAC;AACvD,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AACzB,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9B,QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AACtB,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,QAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,CAAC;AACtC,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5B,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9B,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1B,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzB,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACxC,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC;AACpC,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/C,QAAA,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1C,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;AACxB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1C,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,6BAA6B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5C,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,KAAK,CAAC;AACvC,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC;AAC5B,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,QAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,CAAC;AACxC,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,QAAA,CAAC,oCAAoC,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,QAAA,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1C,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,KAAK,CAAC;AACtC,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC;AACjC,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACjC,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC;AACvC,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC;AAC7B,QAAA,CAAC,gDAAgD,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,QAAA,CAAC,sDAAsD,EAAE,IAAI,EAAE,KAAK,CAAC;AACrE,QAAA,CAAC,kCAAkC,EAAE,IAAI,EAAE,MAAM,CAAC;AAClD,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,6CAA6C,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5D,QAAA,CAAC,4CAA4C,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3D,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;AAC9B,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,QAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,QAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5B,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC;AAClC,QAAA,CAAC,+BAA+B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9C,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9B,QAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AAChC,QAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5B,QAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9B,QAAA,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5B,QAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AAChC,QAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1C,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,QAAA,CAAC,oDAAoD,EAAE,IAAI,EAAE,KAAK,CAAC;AACnE,QAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,KAAK,CAAC;AACzC,QAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,QAAA,CAAC,mCAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,QAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,QAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC;AAClC,QAAA,CAAC,sCAAsC,EAAE,IAAI,EAAE,KAAK,CAAC;AACrD,QAAA,CAAC,qCAAqC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,QAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,QAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,QAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,QAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;KAClC;wGA5SU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAX,WAAW,EAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;AAgTD;AACO,MAAM,QAAQ,GAAQ;AAC3B,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,MAAM;AACV,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,MAAM;AACV,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;CAChB;;ACviBM,MAAM,oBAAoB,GAAG,CAAC,OAA2B,KAAI;AAClE,IAAA,MAAM,KAAK,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;AAC3C,IAAA,IAAI,cAA2B;AAC/B,IAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,QAAA,IAAI;AACF,YAAA,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;;QAChD,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEtB,YAAA,OAAO,KAAK;;QAGd,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;AAC/C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAO,CAAC,aAAa,EAAE;;AAGzB,YAAA,OAAO,KAAK;;;AAIhB,IAAA,OAAO,IAAI;AACb,CAAC;;MCnBY,UAAU,CAAA;IACrB,SAAS,CAAC,OAAgB,EAAE,cAAuB,EAAA;AACjD,QAAA,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,EAAE,EAAE;AAC5C,YAAA,OAAO,IAAI;;QAGb,OAAO,CAAA,EAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAE;AACzC,aAAA,WAAW;AACX,aAAA,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;;wGARhC,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACND;MA2Da,uBAAuB,CAAA;AAgHxB,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,EAAA;AACA,IAAA,KAAA;AACmB,IAAA,SAAA;IA9GpB,kBAAkB,GAAa,EAAE;IACjC,iBAAiB,GAAG,IAAI;AACxB,IAAA,gBAAgB;AAChB,IAAA,QAAQ;AACR,IAAA,IAAI;IACJ,aAAa,GAAa,EAAE;AAC5B,IAAA,iBAAiB,GACxB,IAAI,iBAAiB,EAAE;IAChB,YAAY,GAAG,KAAK;AACpB,IAAA,iBAAiB;IACjB,WAAW,GAAG,EAAE;AAChB,IAAA,cAAc;AACvB,IAAA,IACI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;AAGrB,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,EAAE;;AAGhC,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGb,IAAA,cAAc,GAAG,IAAI,YAAY,EAAW;AAElC,IAAA,OAAO;AAE3B,IAAA,WAAW;AAGX,IAAA,cAAc;AAEd,IAAA,OAAO,MAAM,GAAG,CAAC;AAGjB,IAAA,EAAE,GAAG,CAAwB,qBAAA,EAAA,uBAAuB,CAAC,MAAM,EAAE,EAAE;AAE/D,IAAA,IACI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;;AAG5B,IAAA,cAAc,GAAG,IAAI,OAAO,EAAE;AAC9B,IAAA,YAAY;IACZ,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,KAAK;AACjB,IAAA,wBAAwB;IACxB,OAAO,GAAsB,SAAS;AAC9C,IAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;IAElC,OAAO,GAAG,KAAK;AACf,IAAA,WAAW;IACX,YAAY,GAAc,EAAE;IAC5B,4BAA4B,GAAc,EAAE;AAC5C,IAAA,eAAe;AACf,IAAA,cAAc;AACd,IAAA,KAAK;AACL,IAAA,cAAc;AAEd,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW;;IAG1B,IAAI,MAAM,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGnC,IAAI,WAAW,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGnC,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGnC,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGnC,OAAO,yBAAyB,CAAC,cAAkB,EAAA;QACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC;;AAGzD,QAAA,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS;;AAGxD,IAAA,SAAS,GAAG,MAAK,GAAG;;AAGpB,IAAA,eAAe,GAAG,CAAC,CAAU,KAAI,GAAG;IAEpC,WACU,CAAA,iBAAoC,EACpC,eAA4B,EAC5B,EAAgB,EAChB,KAA8B,EACX,SAAoB,EAAA;QAJvC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACjB,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAK,CAAA,KAAA,GAAL,KAAK;QACc,IAAS,CAAA,SAAA,GAAT,SAAS;AAEpC,QAAA,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC3C,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;gBAC3B,IAAI,CAAC,SAAS,EAAE;;AAElB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC,SAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;;;AAGvC,IAAA,UAAU;AACV,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,mBAAmB;AACnB,IAAA,wBAAwB;IAExB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,IAAI,CAAC,iBAAiB,GAAG,YAAY;;AAEvC,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACvC,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;qBAC3B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI;AAC7B,qBAAA,KAAK,EAAE;gBACV,IAAI,gBAAgB,EAAE;AACpB,oBAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC;;AAE5D,aAAC,CAAC;;AAEJ,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAC7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACpC;;QAEH,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;;AAEtD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;;aAC9D;AACL,YAAA,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE;gBAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;;iBACtD;gBACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;;;AAG/C,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;aACtC,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,mBAAmB,EAAE;AAC5B,SAAC,CAAC;QACJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AAC9C,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGnC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5B,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;IAGhC,2BAA2B,GAAA;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGrC,mBAAmB,GAAA;AACjB,QAAA,IAAI;YACF,IAAI,CAAC,cAAc,GAAG,0BAA0B,CAC9C,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAQ,CAC/C;YACD,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM;YACxC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;gBACxD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,oBAAoB,EAAE;AAClD,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB;;gBAE9C,IACE,IAAI,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO;AAC1D,oBAAA,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAC7B;AACA,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBACnE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;;;AAGlD,QAAA,MAAM;;;YAGN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;;AAE3C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;AAGvC,IAAA,eAAe,CAAC,OAAgB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc;;AAExD,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE;;AAG5B,IAAA,UAAU,CAAC,IAAY,EAAA;QACrB,QACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI;AAC9D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,EAAE;AAChB,SAAA;;AAIL,IAAA,eAAe,CAAC,KAAoB,EAAA;QAClC,MAAM,OAAO,GAAG,WAAW;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC5B,KAAK,CAAC,cAAc,EAAE;;;AAI1B,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,CAAS,MAAA,EAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE;;AAGjD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;AAG3B,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;AAGnC,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,GAAG,0BAA0B,CAAC,KAAK,CAAC;AACvD,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO;AAC/C,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB;gBAC5C,IAAI,CAAC,WAAW,EAAE;oBAChB;;gBAEF,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AACnD,oBAAA,IACE,IAAI,CAAC,eAAe,CAAC,QAAQ;AAC7B,wBAAA,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAC5D;wBACA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;oBAE9D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;AAG9C,oBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;iBAClC,EAAE,CAAC,CAAC;;iBACA;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;;;AAK5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;AAGnC,IAAA,iBAAiB,CAAC,GAAa,EAAA;QAC7B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;;AAGlC,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QAChC,IAAK,KAAK,CAAC,MAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AAC/D,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE;;;IAI5D,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAE1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGnC,aAAa,GAAA;QACX,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE;SACzC,EAAE,GAAG,CAAC;;IAGC,gBAAgB,GAAA;QACxB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC9C,YAAA,MAAM,OAAO,GAAY;AACvB,gBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrB,gBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrB,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACzB,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpB,gBAAA,SAAS,EAAG,CAAC,CAAC,CAAC,CAAc,IAAI,SAAS;gBAC1C,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;AACxC,gBAAA,WAAW,EAAE,EAAE;aAChB;AAED,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,OAAO,CAAC,WAAW,GAAG,uBAAuB,CAAC,yBAAyB,CACrE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAQ,CACjC;;AAGH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,SAAC,CAAC;;AAGJ,IAAA,IAAY,oBAAoB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;;AAE3C,QAAA,QAAQ,IAAI,CAAC,MAAM;AACjB,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;AAE7C,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE;AAElD,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE;;;IAIlD,wBAAwB,GAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B;;AAEF,QAAA,MAAM,SAAS,GAAc,IAAI,SAAS,CACxC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAQ,CAC/C;;QAED,IACE,IAAI,CAAC;AACH,cAAE,QAAQ;aACT,UAAU,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC,EAClD;AACA,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;;QAEjE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;;wGApXnD,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAvC,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAXvB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,WAAW;AACX,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACtE,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,QAAQ,EAAE,oBAAoB;AAC9B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EA2CU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,gPCnGpB,6hGA2FA,EAAA,MAAA,EAAA,CAAA,6vCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAyB,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDhCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhBnC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAGhB,KAAK,EACN,SAAA,EAAA;wBACT,WAAW;AACX,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,yBAAyB,EAAE;AACtE,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,QAAQ,EAAE,oBAAoB;AAC9B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6hGAAA,EAAA,MAAA,EAAA,CAAA,6vCAAA,CAAA,EAAA;;0BAsH5C;;0BAAY;yCA9GN,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAEG,MAAM,EAAA,CAAA;sBADT;gBAMG,WAAW,EAAA,CAAA;sBADd;gBAMG,QAAQ,EAAA,CAAA;sBADX;gBAMG,QAAQ,EAAA,CAAA;sBADX;gBAKS,cAAc,EAAA,CAAA;sBAAvB;gBAEmB,OAAO,EAAA,CAAA;sBAA1B,SAAS;uBAAC,OAAO;gBAElB,WAAW,EAAA,CAAA;sBADV,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAI3C,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAM9C,EAAE,EAAA,CAAA;sBADD;gBAIG,gBAAgB,EAAA,CAAA;sBADnB,WAAW;uBAAC,oBAAoB;;;AE/GnC;AAyCM,MAAO,mBACX,SAAQ,yBAAyB,CAAA;AA8Bd,IAAA,QAAA;AACA,IAAA,sBAAA;AACA,IAAA,UAAA;AA7BV,IAAA,kBAAkB;AAClB,IAAA,iBAAiB;IACjB,YAAY,GAAG,IAAI;IACnB,oBAAoB,GAAG,KAAK;AACpB,IAAA,QAAQ;AAChB,IAAA,cAAc;AAEb,IAAA,MAAM,GAAoC,IAAI,YAAY,EAAE;AAGtE,IAAA,UAAU;AAEV,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,oBAAoB,GAAG,CAAC,GAAG,CAAC;AAE5B,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK;;IAG3C,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;;;AAI3C,IAAA,WAAA,CACmB,QAAkB,EAClB,sBAA8C,EAC9C,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE;QAJU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB;QACtB,IAAU,CAAA,UAAA,GAAV,UAAU;;AAKS,IAAA,OAAO,CAAC,KAAoB,EAAA;QAChE,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACjD,KAAK,CAAC,cAAc,EAAE;;;IAI1B,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAA,KAAK,EAAE,IAAI,kBAAkB,CAC3B,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC7C,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAC3C;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;AACT,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE;AACpC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,gBAAgB;;AAGhD,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,0BAA0B;;AAExD,SAAC,CAAC;;IAGN,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;AAGxD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAChE,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE;AACrB,SAAC,CAAC;;AAGJ,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;;iBAClC;gBACL,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;;;;AAK5C,IAAA,QAAQ,GAAQ,MAAW,GAAG;AAC9B,IAAA,OAAO,GAAQ,MAAW,GAAG;AAE7B,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGnB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;;IAG9B,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;;IAGhC,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;IAGzC,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAG;AACpG,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;;AAE3E,QAAA,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;;wGA5HlD,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAtC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EARnB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,mBAAmB;AAChC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvCH,ksBAiBwB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA4B,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDwBX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;+BACE,aAAa,EAAA,UAAA,EAEX,KAAK,EACN,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAqB,mBAAA;AAChC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,ksBAAA,EAAA;wIAMQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACgB,QAAQ,EAAA,CAAA;sBAAxB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAES,MAAM,EAAA,CAAA;sBAAf;gBAGD,UAAU,EAAA,CAAA;sBADT,SAAS;uBAAC,YAAY;gBAyBe,OAAO,EAAA,CAAA;sBAA5C,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;;;MEjDzB,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAApB,oBAAoB,EAAA,YAAA,EAAA,CAhBhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,WAAW;YACX,cAAc;YACd,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,mBAAmB;YACnB,UAAU;AACV,YAAA,oBAAoB,aAEZ,uBAAuB,CAAA,EAAA,CAAA;AAEtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAd7B,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,WAAW;YACX,cAAc;YACd,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,mBAAmB;YAEnB,oBAAoB,CAAA,EAAA,CAAA;;4FAIX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,aAAa;wBACb,eAAe;wBACf,gBAAgB;wBAChB,mBAAmB;wBACnB,UAAU;wBACV,oBAAoB;AACrB,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA;;;MCVY,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAhB,gBAAgB,EAAA,YAAA,EAAA,CAVZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEhC,YAAY;YACZ,oBAAoB;YACpB,WAAW;YACX,mBAAmB;AACnB,YAAA,oBAAoB,aAEX,mBAAmB,CAAA,EAAA,CAAA;AAEnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YARzB,YAAY;YACZ,oBAAoB;YACpB,WAAW;YACX,mBAAmB;YACnB,oBAAoB,CAAA,EAAA,CAAA;;4FAIX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,WAAW;wBACX,mBAAmB;wBACnB,oBAAoB;AACrB,qBAAA;oBACD,OAAO,EAAE,CAAE,mBAAmB,CAAC;AAChC,iBAAA;;;AClBD;AA+BM,MAAO,6BACX,SAAQ,yBAAyB,CAAA;AAsBb,IAAA,QAAA;AAnBX,IAAA,KAAK;IACL,SAAS,GAA8B,YAAY;AAElD,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;AAE3C,IAAA,GAAG;AAEH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzC,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CAAoB,QAAkB,EAAA;AACpC,QAAA,KAAK,EAAE;QADW,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAI5B,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;IAEvB,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;;AAI1D,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;wGA9CR,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAT3B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,6BAA6B;AAC1C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BL,moBAoBA,EAAA,MAAA,EAAA,CAAA,4HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzB,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDWa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAbzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAGxB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA+B,6BAAA;AAC1C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,moBAAA,EAAA,MAAA,EAAA,CAAA,4HAAA,CAAA,EAAA;6EAMV,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAES,OAAO,EAAA,CAAA;sBAAhB;;;ME1BU,0BAA0B,CAAA;wGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA1B,0BAA0B,EAAA,YAAA,EAAA,CAJtB,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAClC,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAC/D,6BAA6B,CAAA,EAAA,CAAA;AAE5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAH3B,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,CAAA;;4FAG9D,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,WAAW,CAAC;oBAC1E,OAAO,EAAE,CAAC,6BAA6B,CAAC;AACzC,iBAAA;;;MCJY,qBAAqB,CAAA;AAChC,IAAA,MAAM,GAAyB;AAC7B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,EAAE;KACd;AAEM,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAW;AAExC,IAAA,SAAS,CAAC,CAAuB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;;IAG7C,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAGpB,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;wGAlBf,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACND;MAsBa,2BAA2B,CAAA;AA2B5B,IAAA,UAAA;AACA,IAAA,iBAAA;AA3BD,IAAA,UAAU;IACV,aAAa,GAAkB,MAAM;IACrC,YAAY,GAAiB,EAAE;AAGxC,IAAA,aAAa;AAGb,IAAA,WAAW;AAEF,IAAA,QAAQ;AACR,IAAA,GAAG;AACH,IAAA,GAAG;IACH,YAAY,GAAG,IAAI;IACnB,UAAU,GAAG,KAAK;IAClB,QAAQ,GAAiB,EAAE;AAE1B,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAkC;AAC7D,IAAA,OAAO,GAAG,IAAI,YAAY,EAAO;IAE3C,gBAAgB,GAAG,CAAC;IACpB,QAAQ,GAAoC,EAAE;AAEtC,IAAA,cAAc;IAEtB,WACU,CAAA,UAAsB,EACtB,iBAAwC,EAAA;QADxC,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;;AAI3B,IAAA,aAAa,CAAC,MAAqB,EAAA;AACjC,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM;QAEtB,QAAQ,GAAG;AACT,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACzB,IAAI,CAAC,gBAAgB,EAAE;;AAGzB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACpC;AAEF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpD,IAAI,CAAC,gBAAgB,EAAE;;AAGzB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACpC;AAEF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC;gBACxD;AAEA,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC;gBACxD;;;IAIR,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,EAAE;;QAGrB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;iBACnC,aAAa,CAAC,IAAI;iBAClB,qBAAqB,EAAE,CAAC,MAAM;AACjC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,SAAC,CAAC;;IAGJ,YAAY,GAAA;QACV,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,CAAA,kBAAA,EAAqB,IAAI,CAAC,QAAQ,CAAmC,iCAAA,CAAA,CACtE;;QAEH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;;IAGnD,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,KAAK,GACT,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,QAAQ;AAEnE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,KAAK,EAAE,OAAO;gBACd,KAAK;AACN,aAAA,CAAC;;AAEJ,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBACjC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;oBAClC;;AAEF,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,MAAM;oBAC5D,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,MAAM;AAC7D,iBAAA,CAAC;;;AAGN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,MAAM,KAAK,GACT,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,MAAM;AAE/D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,KAAK,EAAE,OAAO;gBACd,KAAK;AACN,aAAA,CAAC;;;IAIN,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI;AACtE,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI;AACxE,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI;AAChC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;;;;AAK5D,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACzB,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9C,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAE9C,YAAA,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC;AAChC,gBAAA,IAAI,IAAI,IAAI,EAAE,EAAE;oBACd,IAAI,CAAC,gBAAgB,EAAE;;AAGzB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;AAK1C,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,SAAS;AACpE,YAAA,KAAK,GAAG,IAAI,CAAC,cAAc;;IAG/B,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGzB,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;wGA7Jf,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA6B,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,ggBCtBxC,qjBAkBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1C,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDIa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAErB,KAAK,EAAA,QAAA,EAAA,qjBAAA,EAAA;gHAGV,UAAU,EAAA,CAAA;sBAAlB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBAGD,aAAa,EAAA,CAAA;sBADZ;gBAID,WAAW,EAAA,CAAA;sBADV;gBAGQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;gBACS,OAAO,EAAA,CAAA;sBAAhB;gBAaD,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;AErD9C;AAyCM,MAAO,wBACX,SAAQ,yBAAyB,CAAA;AAqEd,IAAA,UAAA;AACA,IAAA,iBAAA;AACA,IAAA,QAAA;AACA,IAAA,UAAA;IAnEnB,WAAW,GAAG,KAAK;IAGnB,aAAa,GAAG,IAAI;IAGpB,aAAa,GAAkB,MAAM;AAGrC,IAAA,QAAQ;AAGR,IAAA,GAAG;AAGH,IAAA,GAAG;IAGH,YAAY,GAAG,IAAI;IAGnB,UAAU,GAAG,KAAK;IAGlB,SAAS,GAAG,IAAI;AAGhB,IAAA,aAAa;AAGb,IAAA,WAAW;IAEX,QAAQ,GAAiB,EAAE;IAC3B,KAAK,GAAG,EAAE;IACV,SAAS,GAAG,EAAE;AACd,IAAA,WAAW;AACX,IAAA,MAAM;IACN,YAAY,GAAiB,EAAE;AAC/B,IAAA,iBAAiB;AACjB,IAAA,kBAAkB;AAElB,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,EAAE;;AAGX,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAGnB,IAAI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAElB,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;;iBACtD;gBACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;;;AAExD,aAAA,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI/B,IAAA,WAAA,CACmB,UAAsB,EACtB,iBAAwC,EACxC,QAAkB,EAClB,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE;QALU,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACjB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAU,CAAA,UAAA,GAAV,UAAU;AAG3B,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QAEhD,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC;AACvD,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,SAAS;;;AAKjE,IAAA,eAAe,CAAC,MAAkB,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAqB;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CACjD,wBAAwB,CACzB;AAED,QAAA,IACE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,YAAY,EACzD;YACA,YAAY,EAAE,KAAK,EAAE;YAErB;;AAGF,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE;;;IAIhB,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAE/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;YACtD,IAAI,CAAC,OAAO,CAAC;AACV,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,mBAAmB,EAAE;AAC5B,aAAC,CAAC;;QAGN,IAAI,CAAC,mBAAmB,EAAE;;IAG5B,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;;IAGhB,gBAAgB,GAAA;AACd,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;aACnB,aAAa,CAAC,wBAAwB;AACtC,aAAA,qBAAqB,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,GAAG;gBAClB,IAAI,EAAE,QAAQ,CAAC,CAAC;AAChB,gBAAA,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM;gBACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB;;aACI;YACL,IAAI,CAAC,YAAY,GAAG;AAClB,gBAAA,IAAI,EAAE,CAAC;gBACP,GAAG,EAAE,QAAQ,CAAC,MAAM;gBACpB,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB;;;AAIL,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;QAErB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAC7C,QAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QAErD,IACE,GAAG,KAAK,WAAW;AACnB,YAAA,GAAG,KAAK,YAAY;AACpB,YAAA,GAAG,KAAK,WAAW;YACnB,GAAG,KAAK,QAAQ,EAChB;AACA,YAAA,OAAO,IAAI;;QAGb,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE;AAChD,YAAA,IAAI,UAAU,KAAK,KAAK,EAAE;gBACxB,IAAI,CAAC,KAAK,EAAE;;AAGd,YAAA,OAAO,KAAK;;AAGd,QAAA,OAAO,SAAS;;AAGlB,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAE/B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;YAEjB;;AAGF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAE7D,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,IAAI,GAAG,OAAO;;AAGrB,QAAA,IACE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;AACtB,aAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACnD;YACA,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,IAAI,GAAG;;;AAIpB,IAAA,gBAAgB,CAAC,GAAyB,EAAA;AACxC,QAAA,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpD,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,IAAI,GAAG;AAEhB,gBAAA,OAAO,MAAM;;AAGf,YAAA,IAAI,GAAG,KAAK,KAAK,EAAE;AACjB,gBAAA,OAAO,KAAK;;AAGd,YAAA,OAAO,MAAM;;QAGf,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,EAAE;AAC5C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;QAGhC,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5C,IAAI,CAAC,IAAI,EAAE;;AAGb,QAAA,OAAO,UAAU;;AAGnB,IAAA,eAAe,CAAC,GAAW,EAAA;QACzB,MAAM,CAAC,GAAG,IAAI;AAEd,QAAA,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAGrB,IAAA,qBAAqB,CAAC,IAAS,EAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACvC,QAAA,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YAC/C,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;AAGrC,QAAA,IAAI,IAAI,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE;AACvD,YAAA,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;;AAG3D,QAAA,OAAO,KAAK;;IAGd,YAAY,GAAA;AACV,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAEhE,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,IAAI,UAAU,GAAG,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC;;AAG3E,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;;IAG5B,cAAc,GAAA;AACZ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAEhE,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,KAAK;;AAG9B,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG;;AAG/C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;;IAG5B,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE;;;;AAKlB,IAAA,UAAU,GAAG,CAAC,CAAM,KAAU,GAAG;AAEjC,IAAA,WAAW,GAAG,MAAW,GAAG;AAE5B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGf,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;AAGhB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,IAAI,GAAG,EAAE;AACP,YAAA,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE;YACpB,IAAI,IAAI,GAAG,EAAE;YAEb,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC9B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;AAGpD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;aACZ;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;;IAInB,IAAI,GAAA;QACF,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;IAGhC,KAAK,CAAC,GAAG,GAAG,IAAI,EAAA;AACd,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAClC,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG;;aACf;YACL,IAAI,CAAC,gBAAgB,EAAE;;AAGzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE;;wGAtUpB,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA0C,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EATtB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCH,wkDA8CA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1C,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwC,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDLa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACvD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACa,KAAK,EAAA,QAAA,EAAA,wkDAAA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA;gKAQnB,WAAW,EAAA,CAAA;sBAFV;;sBACA,WAAW;uBAAC,+BAA+B;gBAI5C,aAAa,EAAA,CAAA;sBADZ;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,GAAG,EAAA,CAAA;sBADF;gBAID,GAAG,EAAA,CAAA;sBADF;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAID,WAAW,EAAA,CAAA;sBADV;gBAsDD,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;;ME/GnC,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EATjB,YAAA,EAAA,CAAA,wBAAwB,EAAE,2BAA2B,aAElE,YAAY;YACZ,oBAAoB;YACpB,4BAA4B;YAC5B,WAAW,CAAA,EAAA,OAAA,EAAA,CAEH,2BAA2B,EAAE,wBAAwB,CAAA,EAAA,CAAA;AAEpD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAP9B,YAAY;YACZ,oBAAoB;YACpB,4BAA4B;YAC5B,WAAW,CAAA,EAAA,CAAA;;4FAIF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,wBAAwB,EAAE,2BAA2B,CAAC;AACrE,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,4BAA4B;wBAC5B,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,CAAC;AACjE,iBAAA;;;ACjBM,MAAM,mBAAmB,GAAG,iCAAiC;AAC7D,MAAM,SAAS,GACpB,8DAA8D;;MCYnD,8BAA8B,CAAA;AAEzC,IAAA,cAAc;AAGd,IAAA,YAAY;AAGZ,IAAA,QAAQ;AAER,IAAA,KAAK;AAEL,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE;QAElC,IAAI,QAAQ,EAAE,YAAY,KAAK,SAAS,IAAI,IAAI,EAAE;AAChD,YAAA,IAAI,CAAC,KAAK,GAAG,mBAAmB;;;wGAhBzB,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,2MCd3C,gZAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDGa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,cAGvB,KAAK,EAAA,QAAA,EAAA,gZAAA,EAAA;8BAInB,cAAc,EAAA,CAAA;sBADb;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,QAAQ,EAAA,CAAA;sBADP;;;MEXU,2BAA2B,CAAA;wGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,iBAJvB,8BAA8B,CAAA,EAAA,OAAA,EAAA,CACnC,YAAY,EAAE,YAAY,aAC1B,8BAA8B,CAAA,EAAA,CAAA;yGAE7B,2BAA2B,EAAA,OAAA,EAAA,CAH5B,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA;;4FAGzB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;AAC9C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;oBACrC,OAAO,EAAE,CAAC,8BAA8B,CAAC;AAC1C,iBAAA;;;MCSY,4BAA4B,CAAA;IAEvC,KAAK,GAAG,EAAE;AAGV,IAAA,WAAW;;AAIX,IAAA,WAAW;AAGX,IAAA,KAAK;IAGL,QAAQ,GAAG,KAAK;IAGhB,QAAQ,GAAG,KAAK;AAGhB,IAAA,YAAY;AAGZ,IAAA,gBAAgB;AAGhB,IAAA,UAAU;AAGV,IAAA,QAAQ;AAGR,IAAA,QAAQ;AAGR,IAAA,YAAY;AAGZ,IAAA,UAAU;AAGV,IAAA,MAAM;IAGN,UAAU,GAAG,KAAK;AAER,IAAA,OAAO,GAAG,IAAI,YAAY,EAAW;AAErC,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAEb,IAAA,cAAc;IAE5C,MAAM,GAAG,KAAK;IAEd,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;AAGpB,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO;AAE9B,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;;YAErC,UAAU,CAAC,YAAY,KAAK;AAC1B,kBAAE,IAAI,CAAC,cAAc,CAAC,KAAK;AAC3B,kBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;;;AAIlC,IAAA,YAAY,CAAC,KAAY,EAAA;QACvB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;;wGAxEvB,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA5B,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAmD5B,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrE9B,siEAqDA,EAAA,MAAA,EAAA,CAAA,yxCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAyC,4BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;4FDnCa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAGrB,KAAK,EAAA,QAAA,EAAA,siEAAA,EAAA,MAAA,EAAA,CAAA,yxCAAA,CAAA,EAAA;8BAInB,KAAK,EAAA,CAAA;sBADJ;gBAID,WAAW,EAAA,CAAA;sBADV;;;QAKD,WAAW,EAAA,CAAA;sBAFV;gBAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,gBAAgB,EAAA,CAAA;sBADf;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,MAAM,EAAA,CAAA;sBADL;gBAID,UAAU,EAAA,CAAA;sBADT;gBAGS,OAAO,EAAA,CAAA;sBAAhB;gBAES,MAAM,EAAA,CAAA;sBAAf;gBAE6B,cAAc,EAAA,CAAA;sBAA3C,SAAS;uBAAC,iBAAiB;;;ME9CjB,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAzB,yBAAyB,EAAA,YAAA,EAAA,CAZrB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEzC,YAAY;YACZ,WAAW;YACX,eAAe;YACf,kBAAkB;YAClB,aAAa;YACb,cAAc;AACd,YAAA,yBAAyB,aAEjB,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAVlC,YAAY;YACZ,WAAW;YACX,eAAe;YACf,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,yBAAyB,CAAA,EAAA,CAAA;;4FAIhB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAbrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,yBAAyB;AAC1B,qBAAA;oBACD,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;MCdY,gCAAgC,CAAA;AAE3C,IAAA,KAAK;;AAIL,IAAA,OAAO;wGANI,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,uICR7C,8SASA,EAAA,MAAA,EAAA,CAAA,ysCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDDa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,cAG1B,KAAK,EAAA,QAAA,EAAA,8SAAA,EAAA,MAAA,EAAA,CAAA,ysCAAA,CAAA,EAAA;8BAInB,KAAK,EAAA,CAAA;sBADJ;;;QAKD,OAAO,EAAA,CAAA;sBAFN;;;MEFU,6BAA6B,CAAA;wGAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,iBAJzB,gCAAgC,CAAA,EAAA,OAAA,EAAA,CACrC,YAAY,EAAE,yBAAyB,aACvC,gCAAgC,CAAA,EAAA,CAAA;yGAE/B,6BAA6B,EAAA,OAAA,EAAA,CAH9B,YAAY,EAAE,yBAAyB,CAAA,EAAA,CAAA;;4FAGtC,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gCAAgC,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,yBAAyB,CAAC;oBAClD,OAAO,EAAE,CAAC,gCAAgC,CAAC;AAC5C,iBAAA;;;ACTD;MAiBa,cAAc,CAAA;AAEzB,IAAA,KAAK;AAGL,IAAA,MAAM;AAGN,IAAA,SAAS;IAGT,QAAQ,GAAG,IAAI;IAGf,OAAO,GAAG,KAAK;AAGf,IAAA,OAAO;AAEP,IAAA,cAAc;AAGd,IAAA,YAAY;AAGZ,IAAA,aAAa;IAEb,qBAAqB,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;;;wGA7BpC,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACX,QAAQ,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBxB,o7BA8BA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9C,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+C,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDba,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAGX,KAAK,EAAA,QAAA,EAAA,o7BAAA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA;8BAInB,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,QAAQ;gBAItB,MAAM,EAAA,CAAA;sBADL;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,OAAO,EAAA,CAAA;sBADN;gBAGD,cAAc,EAAA,CAAA;sBADb;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,aAAa,EAAA,CAAA;sBADZ;;;MEvBU,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAhB,gBAAgB,EAAA,YAAA,EAAA,CATZ,cAAc,CAAA,EAAA,OAAA,EAAA,CAE3B,YAAY;YACZ,oBAAoB;YACpB,YAAY;AACZ,YAAA,2BAA2B,CAEnB,EAAA,OAAA,EAAA,CAAA,cAAc,EAAE,cAAc,EAAE,2BAA2B,CAAA,EAAA,CAAA;AAE1D,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAPzB,YAAY;YACZ,oBAAoB;YACpB,YAAY;YACZ,2BAA2B,EAEH,cAAc,EAAE,2BAA2B,CAAA,EAAA,CAAA;;4FAE1D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,YAAY;wBACZ,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,2BAA2B,CAAC;AACvE,iBAAA;;;MCTY,kBAAkB,CAAA;IAE7B,IAAI,GAA8C,SAAS;AAE3D,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,YAAY;AAErB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,cAAc;AAEvB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,eAAe;AAExB,YAAA;AACE,gBAAA,OAAO,eAAe;;;wGAhBjB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,iGCR/B,qQAQA,EAAA,MAAA,EAAA,CAAA,w/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA/C,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDAa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAGV,KAAK,EAAA,QAAA,EAAA,qQAAA,EAAA,MAAA,EAAA,CAAA,w/CAAA,CAAA,EAAA;8BAInB,IAAI,EAAA,CAAA;sBADH;;;MECU,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAJX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CACvB,YAAY,EAAE,aAAa,aAC3B,kBAAkB,CAAA,EAAA,CAAA;yGAEjB,eAAe,EAAA,OAAA,EAAA,CAHhB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA;;4FAG1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA;;;MCiBY,2BAA2B,CAAA;AAKJ,IAAA,IAAA;AACzB,IAAA,SAAA;AACU,IAAA,kBAAA;AACA,IAAA,iBAAA;AACA,IAAA,UAAA;AARnB,IAAA,OAAO;IACP,KAAK,GAAiB,SAAS;IAE/B,WACkC,CAAA,IAAuC,EAChE,SAA0D,EAChD,kBAAsC,EACtC,iBAAyC,EACzC,UAAsB,EAAA;QAJP,IAAI,CAAA,IAAA,GAAJ,IAAI;QAC7B,IAAS,CAAA,SAAA,GAAT,SAAS;QACC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAClB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACjB,IAAU,CAAA,UAAA,GAAV,UAAU;;AAG7B,IAAA,YAAY;IAEZ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;AAErD,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;AACT,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE;AAC7B,YAAA,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;YAEnB,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC;AACxB,sBAAE,YAAY,IAAI,IAAI,EAAE;sBACtB,SAAS;AACb,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC;AACvB,sBAAE,WAAW,IAAI,IAAI,EAAE;sBACrB,SAAS;;AAEjB,SAAC,CAAC;;IAGN,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;;IAGnC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC;kBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACvD,iBAAA,SAAS,CAAC,CAAC,OAAO,KAAI;gBACrB,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;;AAEzD,aAAC,CAAC;;aACC;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;;;IAIzD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;;IAGvD,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;;AA/D7C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAK5B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAAW,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AALd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAHzB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,0BCvBnC,gzEAqEA,EAAA,MAAA,EAAA,CAAA,sKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsC,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA;;4FD3Ca,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGrB,SAAA,EAAA,CAAC,kBAAkB,CAAC,cACnB,KAAK,EAAA,QAAA,EAAA,gzEAAA,EAAA,MAAA,EAAA,CAAA,sKAAA,CAAA,EAAA;;0BAOhB,MAAM;2BAAC,eAAe;;;MEpBd,wBAAwB,CAAA;wGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAxB,wBAAwB,EAAA,YAAA,EAAA,CAHpB,2BAA2B,CAChC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAA,EAAA,CAAA;AAE/D,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAFzB,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAA,EAAA,CAAA;;4FAE/D,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC;AAC5E,iBAAA;;;MCCY,2BAA2B,CAAA;AAwB7B,IAAA,SAAA;AACyB,IAAA,IAAA;AAxBlC,IAAA,OAAO;IACP,KAAK,GAAiB,SAAS;IAC/B,UAAU,GAAG,SAAS;;AAEd,IAAA,QAAQ,GAAiB,IAAI,OAAO,EAAO;AAEnD,IAAA,IAAI,WAAW,GAAA;QACb,QAAQ,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU;AAC9C,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,eAAe;AAExB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,aAAa;AAEtB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,gBAAgB;AAEzB,YAAA;AACE,gBAAA,OAAO,gBAAgB;;;IAI7B,WACS,CAAA,SAA0D,EACjC,IAAuC,EAAA;QADhE,IAAS,CAAA,SAAA,GAAT,SAAS;QACgB,IAAI,CAAA,IAAA,GAAJ,IAAI;;IAGtC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;IAG1B,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC;kBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,iBAAA,SAAS,CAAC,CAAC,OAAO,KAAI;gBACrB,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;;AAE9B,aAAC,CAAC;;aACC;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;;;AA3CnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,gDAyB5B,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAzBd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,iFCXxC,8iCAkCA,EAAA,MAAA,EAAA,CAAA,8hDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuC,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA;;4FDvBa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,cAGpB,KAAK,EAAA,QAAA,EAAA,8iCAAA,EAAA,MAAA,EAAA,CAAA,8hDAAA,CAAA,EAAA;;0BA2BhB,MAAM;2BAAC,eAAe;;;MEzBd,wBAAwB,CAAA;wGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAxB,wBAAwB,EAAA,YAAA,EAAA,CAHpB,2BAA2B,CAChC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAA,EAAA,CAAA;AAE/D,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAFzB,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAA,EAAA,CAAA;;4FAE/D,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC;AAC5E,iBAAA;;;MCAY,wBAAwB,CAAA;AAC1B,IAAA,UAAU;wGADR,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,mHCVrC,ycAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDJa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,ycAAA,EAAA;8BAGV,UAAU,EAAA,CAAA;sBAAlB;;;MEAU,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAArB,qBAAqB,EAAA,YAAA,EAAA,CAJjB,wBAAwB,CAC7B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CACzC,wBAAwB,CAAA,EAAA,CAAA;AAEvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAHtB,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,YAAY,CAAA,EAAA,CAAA;;4FAGxC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;AACxC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;oBACpD,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA;;;MCKY,8BAA8B,CAAA;IAEzC,SAAS,GAAa,EAAE;AAGxB,IAAA,eAAe;IAGf,cAAc,GAAG,IAAI;AAGrB,IAAA,QAAQ;AAGR,IAAA,OAAO;AAGP,IAAA,eAAe,GAAyB,IAAI,YAAY,EAAU;AAElE,IAAA,YAAY;;AAGZ,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;;IAGjE,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,aAAa;cACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;cAC9C,SAAS;;IAGf,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC;;AAGnE,IAAA,YAAY,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;AAG/B,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,CAAS,MAAA,EAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE;;AAGzC,IAAA,WAAW,CAAC,IAAY,EAAA;QAC9B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,SAAS;;QAElB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;AACzC,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,eAAe,EAAE,UAAU;AAC5B,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;wGArDX,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,8SCf3C,i9BA0BA,EAAA,MAAA,EAAA,CAAA,++DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDXa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,cAGvB,KAAK,EAAA,QAAA,EAAA,i9BAAA,EAAA,MAAA,EAAA,CAAA,++DAAA,CAAA,EAAA;8BAInB,SAAS,EAAA,CAAA;sBADR;gBAID,eAAe,EAAA,CAAA;sBADd;gBAID,cAAc,EAAA,CAAA;sBADb;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,eAAe,EAAA,CAAA;sBADd;;;MEbU,2BAA2B,CAAA;wGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA3B,2BAA2B,EAAA,YAAA,EAAA,CAVvB,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAE3C,YAAY;YACZ,eAAe;YACf,WAAW;YACX,mBAAmB;AACnB,YAAA,gBAAgB,aAER,8BAA8B,CAAA,EAAA,CAAA;AAE7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YARpC,YAAY;YACZ,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,gBAAgB,CAAA,EAAA,CAAA;;4FAIP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAXvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;AAC9C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;AACjB,qBAAA;oBACD,OAAO,EAAE,CAAC,8BAA8B,CAAC;AAC1C,iBAAA;;;MCLY,4BAA4B,CAAA;AAUV,IAAA,UAAA;AAR7B,IAAA,MAAM;IAGN,UAAU,GAAG,EAAE;IAGf,SAAS,GAAG,EAAE;AAEd,IAAA,WAAA,CAA6B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;;AAEvC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE;AAEhC,QAAA,IAAI,MAAM,EAAE,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;;;AAIvC,IAAA,aAAa,CAAC,EAAc,EAAA;QAC1B,IAAI,IAAI,GAAG,CAAC;AACZ,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;;AAGzD,QAAA,MAAM,CAAC,GAAG,IAAI,GAAG,GAAG;AACpB,QAAA,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,CAAO,IAAA,EAAA,CAAC,CAAK,EAAA,EAAA,IAAI,CAAC,UAAU,CAAA,GAAA,EAAM,IAAI,CAAC,SAAS,IAAI;;wGA3BpF,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA5B,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE;AACf,iBAAA;+EAGC,MAAM,EAAA,CAAA;sBADL;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,SAAS,EAAA,CAAA;sBADR;;;MCVU,kCAAkC,CAAA;wGAAlC,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kCAAkC,EAH9B,YAAA,EAAA,CAAA,4BAA4B,CADjC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kCAAkC,YAJnC,YAAY,CAAA,EAAA,CAAA;;4FAIX,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,4BAA4B,CAAC;oBAC5C,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;MCmBY,uBAAuB,CAAA;AAsCf,IAAA,MAAA;AACA,IAAA,EAAA;AACA,IAAA,GAAA;AACA,IAAA,UAAA;AAvCnB,IAAA,MAAM;AAEE,IAAA,WAAW;AACX,IAAA,SAAS;IACT,QAAQ,GAAG,EAAE;AACb,IAAA,WAAW,GAAe;AAChC,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,iBAAiB,EAAE,CAAC;KACrB;IACO,eAAe,GAAG,CAAC;AAE3B,IAAA,IACI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;;AAG7B,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK;AAClC,cAAE,IAAI,CAAC,cAAc,GAAG;cACtB,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC;;AAGnC,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC;;IAG3C,IAAI,cAAc,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK;;AAG5D,IAAA,WAAA,CAImB,MAAoB,EACpB,EAAoB,EACpB,GAAc,EACd,UAAsB,EAAA;QAHtB,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAAU,CAAA,UAAA,GAAV,UAAU;;QAG3B,IAAI,CAAC,MAAM,CAAC;AACT,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,CAAa,KAAI;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACrB,SAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG;AACzB,YAAA,UAAU,EAAE,qBAAqB;SAClC;;AAGH,IAAA,WAAW,CAAC,IAAgB,EAAA;QAC1B,IACE,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;AAC3C,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,CAAC,EAChC;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC;;AAE3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACvB,IAAI,CAAC,aAAa,EAAE;;AAGtB,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE;AACxD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;;;;IAK/B,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE;;IAGd,gBAAgB,GAAA;AACtB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CACjE,qCAAqC,CACtC;;AAGD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAC3D,iCAAiC,CAClC;;AAGD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAC7D,iCAAiC,CAClC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC;;QAG5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;gBAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC;AAC/C,aAAC,CAAC;;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;;;;IAKpB,aAAa,GAAA;AACnB,QAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;QAE3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAE/C,IAAI,CAAC,gBAAgB,EAAE;;;AAIjB,IAAA,cAAc,CAAC,WAAmB,EAAA;QACxC,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC;AAC7D,gBAAA,OAAO,CAAC;YAEV,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9C,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;sBAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,GAAG;sBAChC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG;YAE3C,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB;AAClE,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,WAAW;AACxC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AACnC,gBAAA,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC;YAE7B,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB;AAClE,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,WAAW;gBACxC,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,gBAAA,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC;AAE7B,YAAA;gBACE,OAAO,IAAI,CAAC,WAAW;;;;AAKrB,IAAA,YAAY,CAAC,WAAmB,EAAA;QACtC,QAAQ,IAAI;AACV,YAAA,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,eAAe;AACvC,gBAAA,OAAO,IAAI,CAAC,eAAe,GAAG,CAAC;YAEjC,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9C,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;sBAChD,IAAI,CAAC;sBACL,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC;YAEpC,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB;AAClE,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,WAAW;AACxC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;AACnC,gBAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC;YAE3B,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB;AAClE,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,WAAW;gBACxC,IAAI,CAAC,WAAW,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC;AACzC,gBAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC;AAE3B,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS;;;wGAvKhB,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAoCI;;0BACA;;0BACA;yHAnCH,MAAM,EAAA,CAAA;sBADL;gBAeG,cAAc,EAAA,CAAA;sBADjB;;;MCjCU,6BAA6B,CAAA;wGAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EAHzB,YAAA,EAAA,CAAA,uBAAuB,CAD5B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,uBAAuB,CAAA,EAAA,CAAA;AAEtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YAJ9B,YAAY,CAAA,EAAA,CAAA;;4FAIX,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA;;;MCDY,8BAA8B,CAAA;AAKtB,IAAA,UAAA;AACA,IAAA,sBAAA;AALV,IAAA,WAAW;AACX,IAAA,mBAAmB;IAE5B,WACmB,CAAA,UAAsB,EACtB,sBAA8C,EAAA;QAD9C,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB;;IAGzC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC3D,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB;;iBAC7D;AACL,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;;;;wGAdjC,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA9B,8BAA8B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;iHAEU,WAAW,EAAA,CAAA;sBAAnB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;;;MCAU,mCAAmC,CAAA;wGAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,EAH/B,YAAA,EAAA,CAAA,8BAA8B,CADnC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,8BAA8B,CAAA,EAAA,CAAA;AAE7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,YAJpC,YAAY,CAAA,EAAA,CAAA;;4FAIX,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,8BAA8B,CAAC;oBAC9C,OAAO,EAAE,CAAC,8BAA8B,CAAC;AAC1C,iBAAA;;;MCIY,yBAAyB,CAAA;AAMP,IAAA,UAAA;AALV,IAAA,SAAS,GAC1B,IAAI,YAAY,EAAkB;AAEpC,IAAA,OAAO;AAEP,IAAA,WAAA,CAA6B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QAE7C,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAA2B,KAAI;AAClE,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAwB,KACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC9B;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;AAC5B,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;;wGAtBhB,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;+EAEoB,SAAS,EAAA,CAAA;sBAA3B;;;MCHU,+BAA+B,CAAA;wGAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,EAH3B,YAAA,EAAA,CAAA,yBAAyB,CAD9B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,yBAAyB,CAAA,EAAA,CAAA;AAExB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,YAJhC,YAAY,CAAA,EAAA,CAAA;;4FAIX,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA;;;MCHY,sBAAsB,CAAA;AACd,IAAA,YAAY,GAAG,IAAI,YAAY,EAAY;AAC3C,IAAA,YAAY,GAAG,IAAI,YAAY,EAAW;AAG7D,IAAA,MAAM,CAAC,MAAM,EAAA;QACX,MAAM,CAAC,cAAc,EAAE;QACvB,MAAM,CAAC,eAAe,EAAE;QAExB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;AAI/B,IAAA,UAAU,CAAC,MAAM,EAAA;QACf,MAAM,CAAC,cAAc,EAAE;QACvB,MAAM,CAAC,eAAe,EAAE;AAExB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;IAI9B,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;wGAvBpB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;8BAEoB,YAAY,EAAA,CAAA;sBAA9B;gBACkB,YAAY,EAAA,CAAA;sBAA9B;gBAGD,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAUhC,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;gBASpC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;;;MCjB1B,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAHxB,YAAA,EAAA,CAAA,sBAAsB,CAD3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,sBAAsB,CAAA,EAAA,CAAA;AAErB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAJ7B,YAAY,CAAA,EAAA,CAAA;;4FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;MCFY,uBAAuB,CAAA;AAsBL,IAAA,OAAA;IArBpB,cAAc,GAAG,KAAK;IACtB,eAAe,GAAG,KAAK;IACvB,GAAG,GAAG,KAAK;AAEpB,IAAA,qBAAqB;AACrB,IAAA,YAAY,GAAG;QACb,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;KACL;AAED,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO;;IAEpC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC9C,YAAA,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;AACxC,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,IAAI,EAAE,UAAU,cAAc,EAAA;AAC5B,gBAAA,IAAI,cAAc,KAAK,eAAe,EAAE;oBACtC,OAAO,IAAI,CAAC,GAAG;;AAGjB,gBAAA,OAAO,cAAc;aACtB;AACF,SAAA,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;;wGA1C3B,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;+EAEU,cAAc,EAAA,CAAA;sBAAtB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,GAAG,EAAA,CAAA;sBAAX;;;MCAU,6BAA6B,CAAA;wGAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EAHzB,YAAA,EAAA,CAAA,uBAAuB,CAD5B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,uBAAuB,CAAA,EAAA,CAAA;AAEtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YAJ9B,YAAY,CAAA,EAAA,CAAA;;4FAIX,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA;;;MCFY,2BAA2B,CAAA;AACT,IAAA,OAAA;AAA7B,IAAA,WAAA,CAA6B,OAAkB,EAAA;QAAlB,IAAO,CAAA,OAAA,GAAP,OAAO;;AAGpC,IAAA,OAAO,CAAC,KAAuB,EAAA;AAC7B,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;;wGAPlC,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAS,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;8EAKC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,eAAe,CAAC;;;MCD7B,iCAAiC,CAAA;wGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,EAH7B,YAAA,EAAA,CAAA,2BAA2B,CADhC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,2BAA2B,CAAA,EAAA,CAAA;AAE1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,YAJlC,YAAY,CAAA,EAAA,CAAA;;4FAIX,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA;;;MCIY,gCAAgC,CAAA;AAIxB,IAAA,gBAAA;AAFnB,IAAA,gBAAgB;AAEhB,IAAA,WAAA,CAAmB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;;IAEnC,eAAe,GAAA;AACb,QAAA,UAAU,CAAC,MACT,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAChE;;wGATQ,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhC,gCAAgC,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;qFAGC,gBAAgB,EAAA,CAAA;sBADf;;;MCJU,sCAAsC,CAAA;wGAAtC,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAtC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,EAHlC,YAAA,EAAA,CAAA,gCAAgC,CADrC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,gCAAgC,CAAA,EAAA,CAAA;AAE/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,YAJvC,YAAY,CAAA,EAAA,CAAA;;4FAIX,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,gCAAgC,CAAC;oBAChD,OAAO,EAAE,CAAC,gCAAgC,CAAC;AAC5C,iBAAA;;;MCFY,+BAA+B,CAAA;AAQhC,IAAA,WAAA;AACA,IAAA,aAAA;IARV,IAAa,oBAAoB,CAAC,KAAa,EAAA;AAC7C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;;;IAI3D,WACU,CAAA,WAA6B,EAC7B,aAA+B,EAAA;QAD/B,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAa,CAAA,aAAA,GAAb,aAAa;;wGATZ,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA/B,+BAA+B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;+GAEc,oBAAoB,EAAA,CAAA;sBAAhC;;;MCEU,qCAAqC,CAAA;wGAArC,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAArC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,EAHjC,YAAA,EAAA,CAAA,+BAA+B,CADpC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,+BAA+B,CAAA,EAAA,CAAA;AAE9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qCAAqC,YAJtC,YAAY,CAAA,EAAA,CAAA;;4FAIX,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC3C,iBAAA;;;MCDY,6BAA6B,CAAA;AAE9B,IAAA,UAAA;AACA,IAAA,UAAA;IAFV,WACU,CAAA,UAAsB,EACtB,UAAmC,EAAA;QADnC,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAU,CAAA,UAAA,GAAV,UAAU;;IAGb,QAAQ,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;AACvE,SAAC,CAAC;;wGAVO,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCGY,mCAAmC,CAAA;wGAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAnC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,EAH/B,YAAA,EAAA,CAAA,6BAA6B,CADlC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,6BAA6B,CAAA,EAAA,CAAA;AAE5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,YAJpC,YAAY,CAAA,EAAA,CAAA;;4FAIX,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,6BAA6B,CAAC;AACzC,iBAAA;;;MCEY,wBAAwB,CAAA;AAC1B,IAAA,WAAW;AACX,IAAA,IAAI;AACJ,IAAA,KAAK;wGAHH,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,mJCVrC,8YAUA,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwC,mBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDAa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,KAAK,EAAA,QAAA,EAAA,8YAAA,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA;8BAGV,WAAW,EAAA,CAAA;sBAAnB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;;;MEHU,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,iBAJrB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAC7B,YAAY,EAAE,qBAAqB,aACnC,wBAAwB,CAAA,EAAA,CAAA;yGAEvB,yBAAyB,EAAA,OAAA,EAAA,CAH1B,YAAY,EAAE,qBAAqB,CAAA,EAAA,CAAA;;4FAGlC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;AACxC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;oBAC9C,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA;;;MCDY,gCAAgC,CAAA;IAClC,QAAQ,GAAuC,EAAE;AACjD,IAAA,aAAa;AAGb,IAAA,YAAY,GAA0B,IAAI,YAAY,EAAW;AAE1E,IAAA,QAAQ,CAAC,UAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGpC,IAAA,qBAAqB,CAAC,MAAe,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,MAAM;;wGAb3B,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,oMCR7C,yhBAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,oFAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDNa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,cAG1B,KAAK,EAAA,QAAA,EAAA,yhBAAA,EAAA;8BAGV,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBAGQ,YAAY,EAAA,CAAA;sBADpB;;;MEAU,6BAA6B,CAAA;wGAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA7B,6BAA6B,EAAA,YAAA,EAAA,CAJzB,gCAAgC,CACrC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC3C,gCAAgC,CAAA,EAAA,CAAA;AAE/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EAH9B,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,aAAa,CAAA,EAAA,CAAA;;4FAG1C,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gCAAgC,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;oBACtD,OAAO,EAAE,CAAC,gCAAgC,CAAC;AAC5C,iBAAA;;;MCIY,qBAAqB,CAAA;IAEhC,MAAM,GAAG,iCAAiC;AAEjC,IAAA,IAAI;AACJ,IAAA,KAAK;AAGd,IAAA,YAAY,GAA0B,IAAI,YAAY,EAAE;IAExD,SAAS,GAAG,KAAK;AACjB,IAAA,QAAQ;AAER,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE;QAEtC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY;AAEvC,QAAA,IAAI,IAAI,EAAE,YAAY,EAAE;;AAEtB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;YAErE,IAAI,CAAC,QAAQ,GAAG;iBACb,KAAK,CAAC,IAAI;iBACV,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;AAC5C,iBAAA,iBAAiB,EAAE;;;wGAzBf,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,sMCflC,2uBAqBA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoD,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDNa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAGb,KAAK,EAAA,QAAA,EAAA,2uBAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA;8BAInB,MAAM,EAAA,CAAA;sBADL;gBAGQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAGD,YAAY,EAAA,CAAA;sBADX;;;MEZU,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAJd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,YAAY,EAAE,kCAAkC,aAChD,qBAAqB,CAAA,EAAA,CAAA;yGAEpB,kBAAkB,EAAA,OAAA,EAAA,CAHnB,YAAY,EAAE,kCAAkC,CAAA,EAAA,CAAA;;4FAG/C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kCAAkC,CAAC;oBAC3D,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;ACTD;MAQa,aAAa,CAAA;AACxB,IAAA,SAAS,GAA8B,IAAI,OAAO,EAAoB;AACtE,IAAA,SAAS,GAAiC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAEvE,IAAA,iBAAiB,CAAC,GAAqB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG1B,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAACC,KAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;;wGAT9C,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCiBY,oBAAoB,CAAA;AA2BF,IAAA,YAAA;AA1BZ,IAAA,YAAY,GAAG,IAAI,YAAY,EAAE;AAGlD,IAAA,WAAW;AAGX,IAAA,MAAM;AAGN,IAAA,IAAI;AAGJ,IAAA,MAAM;IAGN,OAAO,GAAG,KAAK;AAGf,IAAA,YAAY,GAA0B,IAAI,YAAY,EAAE;AAG/C,IAAA,SAAS,GAA0B,IAAI,YAAY,EAAE;;AAG9D,IAAA,QAAQ;AAER,IAAA,WAAA,CAA6B,YAA2B,EAAA;QAA3B,IAAY,CAAA,YAAA,GAAZ,YAAY;;AAEzC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE;AAEhC,QAAA,IAAI,MAAM,EAAE,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;;;IAIvE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC3D,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;SACzB,CAAC,CACH;;IAGH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;;wGA9CtB,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6WCxBjC,s2BAuBA,EAAA,MAAA,EAAA,CAAA,gYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuD,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cAGZ,KAAK,EAAA,QAAA,EAAA,s2BAAA,EAAA,MAAA,EAAA,CAAA,gYAAA,CAAA,EAAA;+EAMnB,WAAW,EAAA,CAAA;sBADV,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAI1C,MAAM,EAAA,CAAA;sBADL;gBAID,IAAI,EAAA,CAAA;sBADH;gBAID,MAAM,EAAA,CAAA;sBADL;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,YAAY,EAAA,CAAA;sBADX;gBAIQ,SAAS,EAAA,CAAA;sBADjB;;;ME5BU,iBAAiB,CAAA;wGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAjB,iBAAiB,EAAA,YAAA,EAAA,CATb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEjC,YAAY;YACZ,qBAAqB;YACrB,kBAAkB;AAClB,YAAA,aAAa,aAEL,oBAAoB,CAAA,EAAA,CAAA;AAEnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAP1B,YAAY;YACZ,qBAAqB;YACrB,kBAAkB;YAClB,aAAa,CAAA,EAAA,CAAA;;4FAIJ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,qBAAqB;wBACrB,kBAAkB;wBAClB,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA;;;ACwBK,MAAO,oBACX,SAAQqD,yBAAoB,CAAA;AAkBR,IAAA,QAAA;AAdpB,IAAA,MAAM;AACG,IAAA,GAAG;AACH,IAAA,KAAK;AACL,IAAA,YAAY;AACF,IAAA,YAAY,GAAG,IAAI,YAAY,EAAU;AAC5D,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,OAAO,GAAY;AACjB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,WAAW,EAAE,IAAI;KAClB;AAED,IAAA,WAAA,CAAoB,QAAkB,EAAA;AACpC,QAAA,KAAK,EAAE;QADW,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAI5B,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK;;IAG5C,IAAI,KAAK,CAAC,GAAG,EAAA;QACX,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;YAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;IAIrB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC;YACrC,MAAM,EAAE,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC7C,SAAA,CAAC;;IAGJ,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC5C,SAAS,EACT,IAAI,CACQ;QACd,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;AAGxD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AACjE,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,SAAC,CAAC;;AAGJ,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IACE,OAAO,CAAC,KAAK,CAAC;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAC7D;YACA,IAAI,CAAC,OAAO,GAAG;AACb,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;AAC9B,gBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;AAC5B,gBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;gBAC5B,QAAQ,EAAE,IAAI,CAAC,GAAG;AAClB,gBAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;AACpC,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,WAAW,EAAE,IAAI;aAClB;;;AAIL,IAAA,aAAa,CAAC,MAAqB,EAAA;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;IAGtC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;;AAI9B,IAAA,QAAQ,GAAQ,MAAW,GAAG;AAE9B,IAAA,OAAO,GAAQ,MAAW,GAAG;AAE7B,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;wGAjGR,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EARpB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCH,yZAaA,EAAA,MAAA,EAAA,CAAA,ksBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnD,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FD2Ba,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;+BACE,cAAc,EAAA,UAAA,EAGZ,KAAK,EACN,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAsB,oBAAA;AACjC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,yZAAA,EAAA,MAAA,EAAA,CAAA,ksBAAA,CAAA,EAAA;6EAOD,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,QAAQ;gBAEV,GAAG,EAAA,CAAA;sBAAX;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACkB,YAAY,EAAA,CAAA;sBAA9B;;;ME/BU,iBAAiB,CAAA;wGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAjB,iBAAiB,EAAA,YAAA,EAAA,CAVb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEjC,YAAY;YACZ,oBAAoB;YACpB,WAAW;YACX,mBAAmB;AACnB,YAAA,eAAe,aAEP,oBAAoB,CAAA,EAAA,CAAA;AAEnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAR1B,YAAY;YACZ,oBAAoB;YACpB,WAAW;YACX,mBAAmB;YACnB,eAAe,CAAA,EAAA,CAAA;;4FAIN,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,WAAW;wBACX,mBAAmB;wBACnB,eAAe;AAChB,qBAAA;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA;;;MCXY,iBAAiB,CAAA;AAC5B,IAAA,SAAS,CACP,KAAa,EACb,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,KAAK,EACnB,KAAK,GAAG,KAAK,EAAA;QAEb,IAAI,WAAW,EAAE;AACf,YAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;;QAGjD,OAAO,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK;;wGAX5D,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAjB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCKY,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EALZ,YAAA,EAAA,CAAA,iBAAiB,CAEtB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,iBAAiB,CAAA,EAAA,CAAA;AAEhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHjB,YAAY,CAAA,EAAA,CAAA;;4FAGX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBAEjC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACPe,SAAA,cAAc,CAC5B,GAAW,EACX,IAAuB,EAAA;AAEvB,IAAA,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AACjB,QAAA,OAAO,SAAS;;AAGlB,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC9C,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;YAEhD,IAAI,KAAK,EAAE;AACT,gBAAA,OAAO,IAAI;;;;AAKjB,IAAA,OAAO,SAAS;AAClB;;MCDa,uBAAuB,CAAA;AAcf,IAAA,kBAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AAfnB,IAAA,SAAS;AAGT,IAAA,eAAe;IAGf,UAAU,GAAG,EAAE;AAGf,IAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAE3C,IAAA,WAAA,CACmB,kBAAsC,EACtC,YAA6B,EAC7B,SAAuB,EACvB,MAAc,EAAA;QAHd,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAClB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAM,CAAA,MAAA,GAAN,MAAM;;AAGzB,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO;AAE7B,QAAA,IAAI,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE;AACnC,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC9C,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAC9B;YAED,kBAAkB,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,KAAI;gBAC3C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,YAAY,IAAI,EAAE;AAEzC,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,CACpD;AACH,aAAC,CAAC;YAEF,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,SAAS,EAAE;;;IAIpB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;;IAGnC,oBAAoB,GAAA;QAClB,IAAI,CAAC,MAAM,CAAC;aACT,IAAI,CACH,KAAK,EAAE,EACP,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,EACjD,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC;AAEpD,aAAA,SAAS,CAAC,CAAC,KAAsB,KAAI;AACpC,YAAA,MAAM,wBAAwB,GAAoB,cAAc,CAC9D,KAAK,CAAC,GAAG,EACT,IAAI,CAAC,SAAS,CACf;YAED,IAAI,wBAAwB,EAAE;gBAC5B,IAAI,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;AAClD,oBAAA,MAAM,kBAAkB,GAAG,cAAc,CACvC,KAAK,CAAC,GAAG,EACT,wBAAwB,CAAC,QAAQ,CAClC;oBAED,IAAI,kBAAkB,EAAE;AACtB,wBAAA,kBAAkB,CAAC,MAAM,GAAG,IAAI;;;AAIpC,gBAAA,IAAI,CAAC;qBACF,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM;AAC7B,sBAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC5C,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAClC,CAAC,IAAI,KACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAC7D;AACD,gBAAA,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM;;AAEpE,SAAC,CAAC;;IAGN,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC;aACT,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,EACjD,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC;AAEpD,aAAA,SAAS,CAAC,CAAC,KAAsB,KAAI;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC;AACH,sBAAE,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;AAChC,sBAAE,GAAG,CAAC,CAAC,IAAI,KAAI;AACb,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC3B,iBAAC,CAAC;;iBACC;AACL,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;;AAEnC,SAAC,CAAC;;IAGN,UAAU,CAAC,IAAqB,EAAE,KAAa,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YAEzB,UAAU,CAAC,MAAK;gBACd,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAG,EAAA,KAAK,CAAE,CAAA,CAAC;gBACnD,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;aAC/C,EAAE,GAAG,CAAC;;AAGT,QAAA,IAAI,CAAC;AACF,aAAA,MAAM,CACL,CAAC,QAAQ,KACP,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACjD,YAAA,CAAC,CAAC,QAAQ,EAAE,MAAM;AAEtB,cAAE,GAAG,CAAC,CAAC,IAAI,KAAI;AACb,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC3B,SAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;;IAGjE,aAAa,CAAC,IAAqB,EAAE,QAA2B,EAAA;QAC9D;AACG,aAAA,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG;AACpC,aAAA,GAAG,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;;;AAI9B,IAAA,cAAc,CAAC,IAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;;AAG3D,IAAA,eAAe,CAAC,GAAW,EAAA;QACzB,MAAM,wBAAwB,GAAoB,cAAc,CAC9D,GAAG,EACH,IAAI,CAAC,SAAS,CACf;QAED,IAAI,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;YAClD,MAAM,kBAAkB,GAAoB,cAAc,CACxD,GAAG,EACH,wBAAwB,CAAC,QAAQ,CAClC;AAED,YAAA,IAAI,CAAC;AACH,kBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,wBAAwB,CAAC,GAAG;AAC1D,kBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;gBACzB,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,KAAK,kBAAkB,EAAE,GAAG;AAC3D,aAAC,CAAC;;;wGA7JG,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA8C,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA1D,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAHrB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,+CCrBnC,2hHA2FA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA2D,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA;;4FDnEa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA,CAAC,kBAAkB,CAAC,cACnB,KAAK,EAAA,QAAA,EAAA,2hHAAA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA;sKAInB,SAAS,EAAA,CAAA;sBADR;gBAID,eAAe,EAAA,CAAA;sBADd;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,aAAa,EAAA,CAAA;sBADZ;;;AElCH;MAgBa,qBAAqB,CAAA;AAEhC,IAAA,YAAY;IAGZ,UAAU,GAAG,QAAQ;AAGrB,IAAA,aAAa;AAGb,IAAA,IAAI;AAGK,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAG3B,IAAA,UAAU,GAAyB,IAAI,YAAY,EAAU;AAG7D,IAAA,aAAa,GAA0B,IAAI,YAAY,EAAW;AAE3E,IAAA,eAAe;IAEf,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;IAGpB,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;wGA9BpC,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qRChBlC,gyDAyCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDzBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAGb,KAAK,EAAA,QAAA,EAAA,gyDAAA,EAAA;8BAInB,YAAY,EAAA,CAAA;sBADX;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,aAAa,EAAA,CAAA;sBADZ;gBAID,IAAI,EAAA,CAAA;sBADH;gBAIQ,MAAM,EAAA,CAAA;sBADd;gBAIQ,UAAU,EAAA,CAAA;sBADlB;gBAIQ,aAAa,EAAA,CAAA;sBADrB;;;MEjBU,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAApB,oBAAoB,EAAA,YAAA,EAAA,CAVhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;YACZ,UAAU;YACV,gBAAgB;YAChB,aAAa;AACb,YAAA,gBAAgB,aAER,uBAAuB,CAAA,EAAA,CAAA;AAEtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAR7B,YAAY;YAGZ,aAAa;YACb,gBAAgB,CAAA,EAAA,CAAA;;4FAIP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,UAAU;wBACV,gBAAgB;wBAChB,aAAa;wBACb,gBAAgB;AACjB,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA;;;MCTY,kBAAkB,CAAA;IAE7B,SAAS,GAAG,KAAK;AAGjB,IAAA,IAAI;AAGJ,IAAA,QAAQ;AAGR,IAAA,OAAO;wGAXI,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,mKCR/B,mWAcA,EAAA,MAAA,EAAA,CAAA,0DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDNa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAGV,KAAK,EAAA,QAAA,EAAA,mWAAA,EAAA,MAAA,EAAA,CAAA,0DAAA,CAAA,EAAA;8BAInB,SAAS,EAAA,CAAA;sBADR;gBAID,IAAI,EAAA,CAAA;sBADH;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,OAAO,EAAA,CAAA;sBADN;;;METU,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJX,YAAA,EAAA,CAAA,kBAAkB,CACvB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,kBAAkB,CAAA,EAAA,CAAA;AAEjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,YAAY,CAAA,EAAA,CAAA;;4FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA;;;MCeY,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAlB,kBAAkB,EAAA,YAAA,EAAA,CAZd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAElC,YAAY;YACZ,2BAA2B;YAC3B,oBAAoB;YACpB,aAAa;YACb,UAAU;YACV,eAAe;AACf,YAAA,gBAAgB,aAER,qBAAqB,CAAA,EAAA,CAAA;AAEpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAV3B,YAAY;YACZ,2BAA2B;YAC3B,oBAAoB;YACpB,aAAa;YAEb,eAAe;YACf,gBAAgB,CAAA,EAAA,CAAA;;4FAIP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,2BAA2B;wBAC3B,oBAAoB;wBACpB,aAAa;wBACb,UAAU;wBACV,eAAe;wBACf,gBAAgB;AACjB,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;ACtBD;AAyCM,MAAO,+BACX,SAAQ,yBAAyB,CAAA;AA4Cd,IAAA,MAAA;AACA,IAAA,kBAAA;AACA,IAAA,UAAA;AACA,IAAA,QAAA;AA3CnB,IAAA,cAAc;IAGd,cAAc,GAAG,KAAK;IAGtB,UAAU,GAAG,KAAK;IAGlB,WAAW,GAAG,IAAI;AAGlB,IAAA,YAAY;AAGZ,IAAA,YAAY;AAEO,IAAA,WAAW,GAGzB,IAAI,YAAY,EAAE;AAEb,IAAA,UAAU,GAAG,IAAI,YAAY,EAAE;AAEzC,IAAA,GAAG;AACH,IAAA,QAAQ;AAER,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAG,EAAA;AACX,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AACzD,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CACmB,MAAc,EACd,kBAAsC,EACtC,UAAsB,EACtB,QAAkB,EAAA;AAEnC,QAAA,KAAK,EAAE;QALU,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAClB,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAK3B,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,IAAI,EAAE;AAEtC,QAAA,IAAI,YAAY,EAAE,YAAY,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE;;;IAIrB,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC5C,SAAS,EACT,IAAI,CACQ;QACd,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;;IAI1D,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAEjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;;;AAI1B,IAAA,QAAQ,GAAQ,MAAK,GAAG;AAExB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGnB,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;;IAGxB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,OAAO,EAAE;;IAGR,UAAU,GAAA;AAChB,QAAA,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CACtD,IAAI,CAAC,UAAU,EAAE,EACjB;AACE,YAAA,KAAK,EAAE,EAAE;YACT,qBAAqB,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACtD,YAAA,MAAM,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AACpD,SAAA,CACF;QAED,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,MAAK;AAC7D,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,gBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE;;AAGrC,gBAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;oBAC3D;;AAGF,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,oBAAA,KAAK,EAAE,KAAK;AACZ,oBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK;AAC9B,iBAAA,CAAC;AACJ,aAAC,CAAC;AACJ,SAAC,CAAC;;IAGI,UAAU,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC;;wGApI/D,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA8C,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAV7B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;YACP,kBAAkB;AAClB,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,+BAA+B;AAC5C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCL,k+BA6BA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1C,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDYa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAd3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGzB,SAAA,EAAA;wBACP,kBAAkB;AAClB,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAiC,+BAAA;AAC5C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,k+BAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA;yJAOnB,cAAc,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,4BAA4B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAI1D,cAAc,EAAA,CAAA;sBADb;gBAID,UAAU,EAAA,CAAA;sBADT;gBAID,WAAW,EAAA,CAAA;sBADV;gBAID,YAAY,EAAA,CAAA;sBADX;gBAID,YAAY,EAAA,CAAA;sBADX;gBAGkB,WAAW,EAAA,CAAA;sBAA7B;gBAKS,UAAU,EAAA,CAAA;sBAAnB;;;MExDU,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA5B,4BAA4B,EAAA,YAAA,EAAA,CAJxB,+BAA+B,CAAA,EAAA,OAAA,EAAA,CACpC,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC9D,+BAA+B,CAAA,EAAA,CAAA;AAE9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAH7B,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,CAAA;;4FAG7D,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,CAAC;oBACzE,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC3C,iBAAA;;;ACXD;AAqDM,MAAO,iCACX,SAAQ,yBAAyB,CAAA;AAsCd,IAAA,QAAA;AACA,IAAA,4BAAA;AACA,IAAA,kBAAA;AArCoB,IAAA,OAAO;AAErC,IAAA,OAAO;AACP,IAAA,OAAO;IACP,OAAO,GAAG,KAAK;AACf,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,eAAe;AACf,IAAA,eAAe;AACf,IAAA,cAAc;AAEb,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AAElD,IAAA,GAAG;IACH,MAAM,GAAG,8BAA8B;AACvC,IAAA,iBAAiB;IAEV,iBAAiB,GAAG,KAAK;AACzB,IAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACjB,IAAA,UAAU,GAAG,IAAI,IAAI,EAAE;IACvB,KAAK,GAAG,EAAE;AAEjB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;;IAGjB,IAAI,KAAK,CAAC,GAAoB,EAAA;QAC5B,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;AAIrB,IAAA,WAAA,CACmB,QAAkB,EAClB,4BAA0D,EAC1D,kBAAsC,EAAA;AAEvD,QAAA,KAAK,EAAE;QAJU,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B;QAC5B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;IAKrC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,SAAS;aACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACtD,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;;IAG7D,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAA6B;;;AAInD,IAAA,SAAS,GAAG,CAAC,IAAU,KAAc;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC;;AAGrB,QAAA,OAAO,EAAE;AACX,KAAC;AAEM,IAAA,WAAW,CAAC,KAAoC,EAAA;AACrD,QAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;iBAC5B;gBACL,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEnC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;gBAClC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAY,GAAC;AAClC,gBAAA,IAAI,CAAC,OAAO,CACV,oBAAoB,CACrB,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBAClD,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AAC9B,iBAAC,CAAC;;;;AAKD,IAAA,MAAM,CAAC,IAAU,EAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGnC,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;AAGnB,IAAA,gBAAgB,CAAC,IAAU,EAAA;QACzB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE;AAEjE,QAAA,IAAI,WAAW,IAAI,cAAc,EAAE;YACjC,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAEvD,YAAA,OAAO,CAAC,OAAO,CAAC,SAAS,CACvB,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA,SAAA,EAAY,cAAc,CAAA,CAAE,CAC1D;;AAGH,QAAA,OAAO,IAAI;;AAGb,IAAA,eAAe,GAAG,CAAC,IAAU,KAAa;QACxC,IAAI,MAAM,GAAG,IAAI;QAEjB,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3B,YAAA,MAAM,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE;AAE1B,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,GAAG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;;AAG3C,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;;;AAIlD,QAAA,OAAO,MAAM;AACf,KAAC;AAEO,IAAA,SAAS,CAAC,IAAU,EAAA;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;;wGAnJtC,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,EAV/B,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,iCAAiC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;YACD,kBAAkB;AACrB,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClDL,0zDAmDA,EAAA,MAAA,EAAA,CAAA,uuDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,oFAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0C,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;4FDEa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAd7C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAG5B,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAmC,iCAAA;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,kBAAkB;AACrB,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,0zDAAA,EAAA,MAAA,EAAA,CAAA,uuDAAA,CAAA,EAAA;mJAMoB,OAAO,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAE5B,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAES,WAAW,EAAA,CAAA;sBAApB;;;MEpCU,8BAA8B,CAAA;wGAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAA9B,8BAA8B,EAAA,YAAA,EAAA,CAhB1B,iCAAiC,CAAA,EAAA,OAAA,EAAA,CAE9C,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,uBAAuB;AACvB,YAAA,4BAA4B,aAEpB,iCAAiC,CAAA,EAAA,CAAA;AAEhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,YAdvC,YAAY;YACZ,oBAAoB;YACpB,aAAa;YACb,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,4BAA4B,CAAA,EAAA,CAAA;;4FAInB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAjB1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iCAAiC,CAAC;AACjD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,aAAa;wBACb,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,4BAA4B;AAC7B,qBAAA;oBACD,OAAO,EAAE,CAAC,iCAAiC,CAAC;AAC7C,iBAAA;;;ACxBD,MAAM,QAAQ,GAAG,CAAI,GAAM,EAAE,UAAqB,KAAS;IACzD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;AAEtC,IAAA,QAAQ,UAAU,CAAC,QAAQ;QACzB,KAAK,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAY,CAAC;AAEnC,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;;AAGnD,QAAA,KAAK,QAAQ;AACX,YAAA,OAAQ,KAAgB,CAAC,WAAW,EAAE;AAExC,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,KAAY,CAAC;AAErE,QAAA;AACE,YAAA,OAAO,KAAK;;AAElB,CAAC;AAEY,MAAA,WAAW,GAAG,CACzB,IAAO,EACP,IAAO,EACP,UAAqB,KACX;IACV,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;AAEzC,IAAA,IAAI,MAAM,GAAG,MAAM,EAAE;AACnB,QAAA,OAAO,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC;;AAClC,SAAA,IAAI,MAAM,GAAG,MAAM,EAAE;AAC1B,QAAA,OAAO,UAAU,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;;AAGzC,IAAA,OAAO,CAAC;AACV;AAEa,MAAA,oBAAoB,GAAG,CAClC,GAAG,EACH,gBAAA,GAA6B,EAAE,KAC1B;IACL,MAAM,MAAM,GAAG,EAAE;IAEjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC/B,QAAA,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC;;AACzD,aAAA,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;;AAE1B,KAAC,CAAC;IAGF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,KAC1C,MAAM,CAAC,OAAO,CAAC,MAAM;;AAElB,SAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAEtD,IAAA,OAAO,WAAW,CAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAC9B,gBAAgB,CACZ;AACR;AAEa,MAAA,WAAW,GAAG,CAAI,CAAC,EAAE,gBAAA,GAA6B,EAAE,KAAO;AACtE,IAAA,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;AACjB,QAAA,IACE,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ;AACxB,YAAA,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAC/D;YACA;;AAGF,QAAA,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAElC,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC;;;AAIf,IAAA,OAAO,CAAC;AACV;;ACpFM,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AACrD,IAAA,WAAA,CAA4B,cAAsB,EAAA;QAChD,KAAK,CAAC,cAAc,IAAI,OAAO,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAG1C,IAAA,KAAK,CAAC,KAAa,EAAA;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAEpC,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YAE1B,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,gBAAA,IAAI,IAAI,GAAG,EAAE,EAAE;AACb,oBAAA,IAAI,GAAG,CAAC,CAAK,EAAA,EAAA,IAAI,EAAE;;qBACd;AACL,oBAAA,IAAI,GAAG,CAAC,CAAK,EAAA,EAAA,IAAI,EAAE;;;YAIvB,OAAO,IAAI,IAAI,CACb,IAAI,EACJ,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EACnB,CAAC,WAAW,CAAC,CAAC,CAAC,EACf,EAAE,CACH;;AAGH,QAAA,OAAO,IAAI;;AAGJ,IAAA,MAAM,CAAC,IAAU,EAAA;AACxB,QAAA,QACE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG;AACH,YAAA,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,GAAG;AACH,YAAA,IAAI,EAAE,WAAW,EAAE;;;AAKd,IAAA,iBAAiB,CAAC,KAAkC,EAAA;AAC3D,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;;IAG1C,iBAAiB,GAAA;AACxB,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;;AA9ClC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBACP,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GADf,gBAAgB,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAEc,MAAM;2BAAC,MAAM;;;ICPhB;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,GAO3B,EAAA,CAAA,CAAA;;ACPD;;AAEG;;;;"}
|
|
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/base/validators/date-range.validator.ts","../../../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/lib/base/adapters/date.adapter.ts","../../../projects/ecabs-components/src/lib/base/consts/waypoint.consts.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.ts","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.html","../../../projects/ecabs-components/src/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module.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 standalone: false\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 standalone: false\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","@if (loading) {\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 >\r\n @if (loading) {\r\n <ecabs-loading-spinner [size]=\"size\"></ecabs-loading-spinner>\r\n }\r\n </div>\r\n}\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 ViewChild,\r\n} from '@angular/core';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ButtonStyle } from '../base/consts/buttons.consts';\r\nimport { MatButton } from '@angular/material/button';\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 standalone: false\r\n})\r\nexport class ButtonsComponent implements OnInit, OnChanges {\r\n @ViewChild(MatButton, { static: false })\r\n matButton: MatButton;\r\n\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","\r\n@switch (style) {\r\n @case ('flat') {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n @case ('stroked') {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n @case ('raised') {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n @default {\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 >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n }\r\n}\r\n\r\n<ng-template #content>\r\n @if (loading) {\r\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\r\n }\r\n @if (!loading) {\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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","@if (element && (element?.touched || showValidationOnNotTouched) && element?.invalid) {\r\n <div\r\n class=\"form-field__validation\"\r\n >\r\n @for (item of element?.errors | keyvalue; track item) {\r\n <div class=\"form-field__validation__item\">\r\n {{ getMessageDetail(item.key) }}\r\n </div>\r\n }\r\n </div>\r\n}\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 standalone: false\r\n})\r\nexport class EcabsHintComponent {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() element!: any;\r\n @Input() maxValue!: number;\r\n @Input() showHint = false;\r\n}\r\n","@if (element && showHint) {\r\n <div class=\"hint\">{{ element?.value?.length || 0 }}/{{ this.maxValue }}</div>\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 @if (data?.label && data?.showLabel) {\r\n <label\r\n class=\"form-field__label\"\r\n [attr.for]=\"data?.name\"\r\n >\r\n <span [innerHTML]=\"data?.label\"></span>\r\n </label>\r\n }\r\n @if (data?.tooltip) {\r\n <mat-icon class=\"icon ml-4 mat-icon-input-tooltip\" matTooltipClass=\"break-line-tooltip\"\r\n [matTooltip]=\"data?.tooltip\">error_outline\r\n </mat-icon>\r\n }\r\n </div>\r\n\r\n @if (data?.labelNote) {\r\n <div class=\"form-field__label-note\" [innerHTML]=\"data?.labelNote\"></div>\r\n }\r\n\r\n <ng-content></ng-content>\r\n\r\n @if (data?.showLocalLoading && data?.loading) {\r\n <ecabs-loading-spinner\r\n class=\"spinner\" size=\"tiny\"></ecabs-loading-spinner>\r\n }\r\n\r\n <ecabs-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></ecabs-hint>\r\n\r\n @if (data?.showValidation && !data?.hideValidationMessage) {\r\n <ecabs-validations-messages\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 }\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 standalone: false\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 @HostListener('wheel', ['$event'])\r\n onWheel(event: Event): void {\r\n event.preventDefault();\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\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\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 standalone: false\r\n})\r\nexport class EcabsInputComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\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 #matCustomInput\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 @if (type !== 'number') {\r\n <div class=\"form-field__input--suffix\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content select=\".suffix\"></ng-content>\r\n </div>\r\n }\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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() 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 \r\n onChange: any = () => {};\r\n \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 \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 \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 \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 \r\n const item = this.items.find((item) => item.value === this.value);\r\n\r\n \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-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 @if (useSearchOption) {\r\n <mat-option>\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\r\n @if (useNoneOption) {\r\n <mat-option\r\n (click)=\"toggleNone()\"\r\n (keydown.enter)=\"toggleNone()\">\r\n {{ noneLabel }}\r\n </mat-option>\r\n }\r\n\r\n @if (useSelectAllOption && showFilteredAllOption) {\r\n <mat-option #allSelected\r\n (click)=\"toggleAllSelection()\"\r\n (keydown.enter)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">\r\n {{ allLabel }}\r\n </mat-option>\r\n }\r\n\r\n @for (item of filteredItems$ | async; track item) {\r\n <mat-option\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 }\r\n </mat-select>\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 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 EcabsElementBaseComponent from '../base/element-base';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatCheckbox } from '@angular/material/checkbox';\r\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\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 standalone: false\r\n})\r\nexport class EcabsCheckboxToggleComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnChanges\r\n{\r\n @ViewChild(MatCheckbox, { static: false })\r\n matCheckbox: MatCheckbox;\r\n\r\n @ViewChild(MatSlideToggle, { static: false })\r\n matSlideToggle: MatSlideToggle;\r\n\r\n @Input()\r\n override type: 'checkbox' | 'toggle' = 'checkbox';\r\n\r\n @Input()\r\n text!: string;\r\n\r\n @Input()\r\n override readonly label: string = '';\r\n\r\n @Input()\r\n labelPosition: 'before' | 'after' = 'after';\r\n\r\n @Input()\r\n indeterminate!: boolean;\r\n\r\n @Input()\r\n checked!: boolean;\r\n\r\n @Output()\r\n readonly click = new EventEmitter<any>();\r\n\r\n @Output()\r\n readonly 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 @switch (type) {\r\n @case ('checkbox') {\r\n <mat-checkbox (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 {{ text }}\r\n </mat-checkbox>\r\n }\r\n @case ('toggle') {\r\n <mat-slide-toggle (change)=\"change($event)\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [labelPosition]=\"labelPosition\">{{ text }}\r\n </mat-slide-toggle>\r\n }\r\n }\r\n</ecabs-element-wrapper>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\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} 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 standalone: false\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 @Output()\r\n readonly selectionChange = new EventEmitter<any>();\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 this.selectionChange.emit($event);\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 [labelForId]=\"name\"\r\n [appendTo]=\"appendTo\"\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 @if (!typeahead) {\r\n @for (item of itemsList; track item) {\r\n <ng-option [value]=\"item?.value\">\r\n {{ item?.label }}\r\n </ng-option>\r\n }\r\n }\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 @if (!!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 @if (!isOpen) {\r\n @for (item of items | slice:0:1; track item) {\r\n <div>\r\n {{ item?.['label'] }} @if (items.length > 1) {\r\n <span>\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n }\r\n </div>\r\n }\r\n }\r\n </ng-template>\r\n }\r\n\r\n @if (multiple) {\r\n <!--#Add selectAll and individual checkboxes for multiple-enabled list -->\r\n <ng-template ng-optgroup-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"selectAllLabel\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n <ng-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 }\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 {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Injector,\r\n Input,\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 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 standalone: false\r\n})\r\nexport class EcabsTextareaComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\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 \r\n onChange: any = (): void => {};\r\n \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 #matCustomInput\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 * as Locales from 'date-fns/locale';\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 standalone: false\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 ?? Locales.enGB,\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 standalone: false\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 standalone: false\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 @Input()\r\n isDateRange = false;\r\n\r\n @Input()\r\n disabledApplyButton = false;\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 @if (!isDateRange) {\r\n <ecabs-buttons color=\"primary\"\r\n [style]=\"'stroked'\"\r\n matDatepickerCancel>\r\n {{ cancelLabel }}\r\n </ecabs-buttons>\r\n <ecabs-buttons color=\"primary\"\r\n matDatepickerApply\r\n [disabled]=\"disabledApplyButton\"\r\n (click)=\"apply.emit()\"\r\n (keydown.enter)=\"apply.emit()\">\r\n {{ applyLabel }}\r\n </ecabs-buttons>\r\n }\r\n @if (isDateRange) {\r\n <ecabs-buttons color=\"primary\"\r\n [style]=\"'stroked'\"\r\n matDateRangePickerCancel>\r\n {{ cancelLabel }}\r\n </ecabs-buttons>\r\n <ecabs-buttons color=\"primary\"\r\n matDateRangePickerApply\r\n [disabled]=\"disabledApplyButton\"\r\n (click)=\"apply.emit()\"\r\n (keydown.enter)=\"apply.emit()\">\r\n {{ applyLabel }}\r\n </ecabs-buttons>\r\n }\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 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 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\nimport { MatDatepicker } from '@angular/material/datepicker';\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 standalone: false\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 @ViewChild('picker') datepicker: MatDatepicker<any> | undefined;\r\n\r\n val: string | number;\r\n header = EcabsDatePickerHeaderComponent;\r\n translationConfig: EcabsDatePickerTranslations;\r\n disabledApplyButton = true;\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 this.datepicker?.openedStream\r\n .asObservable()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe(() => {\r\n setTimeout(() => {\r\n const calendar = (this.datepicker as any)._componentRef?.instance\r\n ._calendar;\r\n calendar?._userSelection\r\n .asObservable()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((lastChosenDate) => {\r\n this.disabledApplyButton = !lastChosenDate.value;\r\n });\r\n }, 100);\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 [disabledApplyButton]=\"disabledApplyButton\"\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 standalone: false\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 standalone: false\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 \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 \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 standalone: false\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n format,\r\n isSameMinute,\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 ElementRef,\r\n forwardRef,\r\n Injector,\r\n Input,\r\n OnInit,\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 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\nimport { MatDatepicker } from '@angular/material/datepicker';\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: forwardRef(() => EcabsDateTimePickerComponent),\r\n multi: true,\r\n },\r\n DecimalPipe,\r\n UnsubscribeService,\r\n ],\r\n standalone: false\r\n})\r\nexport class EcabsDateTimePickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit, OnInit\r\n{\r\n @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\r\n\r\n @ViewChild('picker', { static: false })\r\n matCustomPicker: MatDatepicker<Date>;\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 /** When true, preserves the original value (with timezone) if user hasn't changed the date/time */\r\n @Input() preserveOriginalValue = false;\r\n\r\n _hours = '12';\r\n _minutes = '00';\r\n _seconds = '00';\r\n _date: Date;\r\n /** Stores the original input value to preserve string format with timezone */\r\n private _originalValue: Date | string;\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 isEmptyFormat = '_/__/____, __:__';\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 || val === this.isEmptyFormat) {\r\n this.value = undefined;\r\n this.setValues(undefined);\r\n\r\n return;\r\n }\r\n\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 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\r\n onTouch: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n // Store original value on first write to preserve string format with timezone\r\n if (this.preserveOriginalValue && !this._originalValue && value) {\r\n this._originalValue = value;\r\n }\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 onApply(): void {\r\n if (this._date && this._seconds && this._minutes && this._hours) {\r\n this.value = 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 }\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 // Preserve original value if time unchanged\r\n const shouldReturnOriginalValue =\r\n this._originalValue && isSameMinute(new Date(this._originalValue), date);\r\n\r\n const valueToEmit = shouldReturnOriginalValue ? this._originalValue : date;\r\n\r\n this.onChange(valueToEmit);\r\n this.onTouch(valueToEmit);\r\n\r\n const dateToUse = valueToEmit ? new Date(valueToEmit) : date;\r\n this._date = dateToUse;\r\n\r\n if (dateToUse && isValid(dateToUse)) {\r\n this.hours = dateToUse.getHours().toString();\r\n this.minutes = dateToUse.getMinutes().toString();\r\n this.seconds = dateToUse.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 @if (!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 }\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 #matCustomInput\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\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\r\n <mat-icon matDatepickerToggleIcon\r\n class=\"text-gray-500\">\r\n calendar_today\r\n </mat-icon>\r\n </mat-datepicker-toggle>\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\nimport { MatFormFieldModule } from '@angular/material/form-field';\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 MatFormFieldModule,\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 standalone: false\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 { UntypedFormControl } from '@angular/forms';\r\n\r\nexport const dateRangeValidator = (control: UntypedFormControl) => {\r\n if (control.value) {\r\n const { dateFrom, dateTo } = control.value;\r\n control.setErrors(null);\r\n\r\n if (!dateFrom && dateTo) {\r\n return { dateFromRangeRequired: true };\r\n }\r\n\r\n if (dateFrom && !dateTo) {\r\n return { dateToRangeRequired: true };\r\n }\r\n\r\n if (dateFrom > dateTo) {\r\n return { dateFromMoreThanDateTo: true };\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\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\nimport { MatDateRangePicker } from '@angular/material/datepicker';\r\nimport { isValid } from 'date-fns';\r\nimport { dateRangeValidator } from '../base/validators/date-range.validator';\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 {\r\n provide: NG_VALIDATORS,\r\n useValue: dateRangeValidator,\r\n multi: true,\r\n },\r\n UnsubscribeService,\r\n ],\r\n standalone: false\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 @ViewChild('picker') datepicker: MatDateRangePicker<any> | undefined;\r\n\r\n header = EcabsDateRangePickerHeaderComponent;\r\n _dateFrom: string;\r\n _dateTo: string;\r\n translationConfig: EcabsDatePickerTranslations;\r\n disabledApplyButton = true;\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 \r\n set value(val: { dateFrom: string; dateTo: string }) {\r\n if (this.val !== val) {\r\n this.val = val;\r\n this.dateFrom = val.dateFrom;\r\n this.dateTo = val.dateTo;\r\n this.onChange(val);\r\n this.onTouch(val);\r\n }\r\n }\r\n\r\n \r\n set dateFrom(val: string) {\r\n if (this._dateFrom !== val && isValid(new Date(val))) {\r\n this._dateFrom = val;\r\n this.onApply();\r\n }\r\n }\r\n\r\n \r\n set dateTo(val: string) {\r\n if (this._dateTo !== val && isValid(new Date(val))) {\r\n this._dateTo = val;\r\n this.onApply();\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 this.datepicker?.openedStream\r\n .asObservable()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe(() => {\r\n setTimeout(() => {\r\n const calendar = (this.datepicker as any)._componentRef?.instance\r\n ._calendar;\r\n calendar?._userSelection\r\n .asObservable()\r\n .pipe(takeUntil(this.unsubscribeService.subscription()))\r\n .subscribe((lastChosenDate) => {\r\n let startRange: Date;\r\n let endRange: Date;\r\n const { start, end } = calendar.selected ?? {};\r\n\r\n if (lastChosenDate.value && (!start || (start && end))) {\r\n startRange = lastChosenDate.value;\r\n }\r\n\r\n if (lastChosenDate.value && start && !end) {\r\n startRange = start;\r\n }\r\n\r\n if (start > lastChosenDate.value) {\r\n startRange = lastChosenDate.value;\r\n } else if (lastChosenDate.value && start && !end) {\r\n endRange = lastChosenDate.value;\r\n }\r\n\r\n this.disabledApplyButton = !(startRange && endRange);\r\n });\r\n }, 100);\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 this.value = {\r\n dateFrom: this.dateFrom,\r\n dateTo: this.dateTo,\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 \r\n [rangePicker]=\"picker\" \r\n [min]=\"minDate\"\r\n [max]=\"maxDate\" \r\n (blur)=\"onTouch()\">\r\n <input matStartDate name=\"startDateRange\" [placeholder]=\"startDatePlaceholder ?? translationConfig?.startDatePlaceholder\" [value]=\"dateFrom\" [(ngModel)]=\"dateFrom\" />\r\n <input matEndDate name=\"endDateRange\" [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 [isDateRange]=\"true\"\r\n [disabledApplyButton]=\"disabledApplyButton\"\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 standalone: false\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 standalone: false\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 \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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 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 NgControl,\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 ErrorStateMatcher,\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\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 implements\r\n OnInit,\r\n OnDestroy,\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() 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 @ViewChild('matCustomInput', { static: false })\r\n matCustomInput: ElementRef;\r\n\r\n static nextId = 0;\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 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 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 ngControl: 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 errorState: boolean;\r\n controlType?: string;\r\n autofilled?: boolean;\r\n userAriaDescribedBy?: string;\r\n disableAutomaticLabeling?: boolean;\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 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 @if (selectedCountry?.dialCode) {\r\n <span class=\"country-selector-code\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\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 @if (enableSearch) {\r\n <input\r\n #searchInput\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 }\r\n @if (!searchCriteria) {\r\n @for (country of preferredCountriesInDropDown; track country) {\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\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 @if (country?.dialCode) {\r\n <span>+{{ country.dialCode }}</span>\r\n }\r\n </div>\r\n </button>\r\n }\r\n @if (preferredCountriesInDropDown?.length) {\r\n <mat-divider></mat-divider>\r\n }\r\n }\r\n @for (country of allCountries; track country) {\r\n @if (country | search: searchCriteria) {\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\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 }\r\n }\r\n </mat-menu>\r\n\r\n <input #matCustomInput\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>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false,\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.writeValue('');\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.value !== '' && this.phoneInput.value !== undefined ) {\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>","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 { 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 ElementWrapperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EcabsBasePhoneModule,\r\n ],\r\n exports: [ EcabsPhoneComponent],\r\n})\r\nexport class EcabsPhoneModule {}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Injector,\r\n Input,\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\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport { SelectOption } from '../base/models/select.models';\r\nimport { MatRadioChange, MatRadioGroup } from '@angular/material/radio';\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 standalone: false\r\n})\r\nexport class EcabsRadioButtonListComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @ViewChild(MatRadioGroup, { static: false })\r\n matRadioGroup: MatRadioGroup;\r\n\r\n @Input()\r\n items: SelectOption[];\r\n\r\n @Input()\r\n direction: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @Output()\r\n readonly changed = new EventEmitter<MatRadioChange>();\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 [name]=\"name\"\r\n (change)=\"changed.emit($event)\"\r\n >\r\n @for (item of items; track item) {\r\n <mat-radio-button\r\n [disabled]=\"item.disabled\"\r\n [ngClass]=\"{ 'my-1': direction === 'vertical' }\"\r\n class=\"mr-4\"\r\n [value]=\"item.value\"\r\n >\r\n {{ item.label }}\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n</ecabs-element-wrapper>","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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 case ' ':\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 @for (i of timeList; track i; let counter = $index) {\r\n <li\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 }\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n forwardRef,\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 {\r\n ListPlacement,\r\n ListPosition,\r\n TimepickerSpecialKey,\r\n} 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: forwardRef(() => EcabsTimepickerComponent),\r\n multi: true,\r\n },\r\n ],\r\n standalone: false\r\n})\r\nexport class EcabsTimepickerComponent\r\n extends EcabsElementBaseComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n @Input()\r\n @HostBinding('class.form-timepicker-focused')\r\n focusedFlag = false;\r\n\r\n @Input()\r\n showCloseIcon = true;\r\n\r\n @Input()\r\n listPlacement: ListPlacement = 'auto';\r\n\r\n @Input()\r\n appendTo!: string;\r\n\r\n @Input()\r\n min!: string;\r\n\r\n @Input()\r\n max!: string;\r\n\r\n @Input()\r\n showDayStart = true;\r\n\r\n @Input()\r\n showDayEnd = false;\r\n\r\n @Input()\r\n 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(): string {\r\n return this._data;\r\n }\r\n\r\n set data(value: string) {\r\n this._data = value;\r\n\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\r\n setTimeout(() => {\r\n this._input = this._timePicker.querySelector('input');\r\n });\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\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 if (!event) {\r\n this.data = event;\r\n\r\n return;\r\n }\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: TimepickerSpecialKey): TimepickerSpecialKey {\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\r\n public onChangeFn = (_: any): void => {};\r\n \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 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\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 (blur)=\"onTouchedFn()\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n @if (type !== 'number') {\r\n <div class=\"form-field__input--suffix\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n </div>\r\n }\r\n @if (focusedFlag) {\r\n <ecabs-time-list-panel\r\n [typedValue]=\"data\"\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 }\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 standalone: false\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 @if (redirectPath) {\r\n <a [routerLink]=\"redirectPath?.path && [redirectPath.path]\" class=\"text-sm\">\r\n {{ redirectPath.title }}\r\n </a>\r\n }\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 standalone: false\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 @Output() closed = 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 onClosed(): void {\r\n this.closed.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()\" (closed)=\"onClosed()\" [hideToggle]=\"hideToggle\">\r\n @if (title) {\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div>\r\n <div class=\"flex flex-row\">\r\n @if (index && !showErrorMessage) {\r\n <div class=\"border-current border-2 rounded-full mr-3 index\">\r\n {{ index }}\r\n </div>\r\n }\r\n @if (!showErrorMessage && showIcon) {\r\n <div class=\"mr-3 rounded\">\r\n <mat-icon class=\"rounded-icon !text-lg -mt-1\">{{ iconName }}</mat-icon>\r\n </div>\r\n }\r\n @if (showErrorMessage) {\r\n <div class=\"mt-1 mr-2\">\r\n <mat-icon color=\"warn\">warning</mat-icon>\r\n </div>\r\n }\r\n {{ title }}\r\n @if (showCheckbox) {\r\n <div 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 }\r\n </div>\r\n @if (showErrorMessage) {\r\n <div class=\"error-message\">{{ errorMessage }}</div>\r\n }\r\n </div>\r\n </mat-panel-title>\r\n <mat-panel-description>{{ description }}\r\n @if (showStatus) {\r\n <mat-chip class=\"{{ status | lowercase }}\">\r\n {{ status | titlecase }}\r\n </mat-chip>\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n }\r\n\r\n @if (actionTitle) {\r\n <mat-expansion-panel-header>\r\n <ng-container *ngTemplateOutlet=\"actionTitle\"></ng-container>\r\n </mat-expansion-panel-header>\r\n }\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 standalone: false\r\n})\r\nexport class EcabsTableFilterWrapperComponent {\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 @if (actions) {\r\n <div class=\"flex justify-end\">\r\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\r\n </div>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 @if (loading) {\r\n <mat-progress-bar mode=\"indeterminate\" class=\"table-ui__progress\"></mat-progress-bar>\r\n }\r\n\r\n @if (header) {\r\n <div class=\"table-ui__header\">\r\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\r\n </div>\r\n }\r\n\r\n @if (!(isEmptyMessage && isEmpty)) {\r\n <ng-content></ng-content>\r\n @if (paginator) {\r\n <div class=\"table-ui__paginator\">\r\n <ng-container *ngTemplateOutlet=\"paginator\"></ng-container>\r\n </div>\r\n }\r\n } @else {\r\n @if (!loading) {\r\n <ecabs-empty-placeholder\r\n [redirectPath]=\"redirectPath\"\r\n [isEmptyMessage]=\"isEmptyMessage\"\r\n [srcImage]=\"srcImageEmpty\"\r\n ></ecabs-empty-placeholder>\r\n }\r\n }\r\n\r\n <!--#For Empty state -->\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 standalone: false\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","<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","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 standalone: false\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.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(this.data.confirmResult ?? true);\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close(this.data.confirmResult ?? true);\r\n }\r\n }\r\n\r\n closeFalsey(): void {\r\n this.dialogRef.close(this.data.cancelResult ?? false);\r\n }\r\n\r\n closeOnPopover(): void {\r\n this.dialogRef.close(this.data.popoverResult ?? false);\r\n }\r\n}\r\n\r\nexport interface EcabsDialogConfirmComponentConfig {\r\n title?: string;\r\n titleTemplate?: TemplateRef<NonNullable<unknown>>;\r\n message?: TemplateRef<NonNullable<unknown>>;\r\n color?: ThemePalette;\r\n titleColor?: ThemePalette;\r\n confirmLabel?: string;\r\n confirmStyle?: ButtonStyle;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n confirmResult?: any;\r\n cancelLabel?: string;\r\n cancelStyle?: ButtonStyle;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n cancelResult?: any;\r\n hideCtaButtons?: boolean;\r\n hideConfirmButton?: boolean;\r\n hideCancelButton?: boolean;\r\n isPopover?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n popoverResult?: any;\r\n content?: string;\r\n useFullButtonSize?: boolean;\r\n loading$?: Observable<boolean>;\r\n disableConfirm$?: Observable<boolean>;\r\n}\r\n","@if (data?.titleTemplate) {\r\n <div class=\"flex items-center justify-between modal-title\">\r\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\r\n\r\n @if (!!data?.isPopover) {\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\r\n close\r\n </mat-icon>\r\n }\r\n </div>\r\n} @else {\r\n @if (data?.title || !!data?.isPopover) {\r\n <div matDialogTitle class=\"flex flex-column\">\r\n @if (!!data?.isPopover) {\r\n <div class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\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 @if (data.title) {\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\">\r\n {{ data.title }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n}\r\n\r\n<div mat-dialog-content>\r\n @if (data?.content) {\r\n <div>{{ data?.content }}</div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n@if ((!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons) {\r\n <div>\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 @if (!!data?.cancelLabel) {\r\n <ecabs-buttons\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 @if (!!data?.confirmLabel) {\r\n <ecabs-buttons\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 }\r\n </div>\r\n </div>\r\n}\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 standalone: false\r\n})\r\nexport class EcabsDialogMessageComponent implements OnDestroy {\r\n message: string;\r\n color: ThemePalette = 'primary';\r\n titleColor = 'success';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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","@if (data?.title || !!data?.isPopover) {\r\n <div matDialogTitle class=\"flex flex-column\">\r\n @if (!!data?.isPopover) {\r\n <div 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 @if (data.title) {\r\n <div class=\"title font-semibold heading--xs\" [ngClass]=\"classByType\">\r\n {{ data.title }}\r\n </div>\r\n }\r\n </div>\r\n}\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 @if (!data?.isPopover) {\r\n <div mat-dialog-actions class=\"btn__group flex justify-end w-full\">\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 }\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 standalone: false\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 @for (item of breadcrumb; track item; let counter = $index) {\r\n <li\r\n [routerLink]=\"item.url\"\r\n [ngClass]=\"{ 'cursor-pointer': item.url }\"\r\n class=\"flex\"\r\n >\r\n @if (counter !== 0) {\r\n <mat-icon class=\"!text-sm text-center text-gray-400\">keyboard_arrow_right</mat-icon>\r\n }\r\n <span>{{ item.title }}</span>\r\n </li>\r\n }\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 standalone: false\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 @if (!flagOnly) {\r\n <div class=\"ml-2\">{{ standardLang(matchSelected()) }}</div>\r\n }\r\n </div>\r\n </mat-select-trigger>\r\n @for (lang of languages; track lang) {\r\n <mat-option class=\"capitalize\" [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 }\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 standalone: false\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 standalone: false\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false,\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 standalone: false\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 @for (validation of validations; track validation) {\r\n <ecabs-validations-messages\r\n [showValidationOnNotTouched]=\"true\"\r\n [element]=\"form.controls[validation.controlName]\"\r\n [updatedErrors]=\"validation.errors\"\r\n ></ecabs-validations-messages>\r\n }\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 standalone: false\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 @for (status of statuses; track status) {\r\n <mat-chip-option\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 }\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 standalone: false\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 @if (!useAvatar) {\r\n <div 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 } @else {\r\n <!-- eslint-disable-next-line -->\r\n <img [src]=\"avatar\" class=\"rounded-full\"/>\r\n }\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\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { 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 standalone: false\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 standalone: false,\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 \r\n onChange: any = (): void => {};\r\n \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 standalone: false\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 standalone: false\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 @for (item of menuItems; track item; let i = $index) {\r\n <li\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 @if (!minimizeSidebar) {\r\n <span\r\n class=\"inline-block align-middle\">\r\n {{ item.title }}\r\n </span>\r\n @if (item.badget) {\r\n <div class=\"badget text-white\">\r\n {{ item.badget }}\r\n </div>\r\n }\r\n }\r\n </a>\r\n @if (item.expand && item.subItems?.length > 0) {\r\n <ng-container *ngTemplateOutlet=\"firstChildren; context: item\"></ng-container>\r\n }\r\n </li>\r\n }\r\n</ul>\r\n\r\n<ng-template #firstChildren let-subItems=\"subItems\">\r\n @if (!minimizeSidebar) {\r\n <ul class=\"ml-12\">\r\n @for (item of subItems; track item) {\r\n <li [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 @if (item.badget) {\r\n <div class=\"badget text-white\">\r\n {{ item.badget }}\r\n </div>\r\n } \r\n @if (item.subItems?.length > 0) {\r\n <div 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 }\r\n </a>\r\n @if (item.expand && item.subItems?.length > 0) {\r\n <ng-container *ngTemplateOutlet=\"secondChildren; context: item\"></ng-container>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #secondChildren let-subItems=\"subItems\">\r\n <ul class=\"ml-3\">\r\n @for (item of subItems; track item) {\r\n <li>\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 @if (item.badget) {\r\n <div class=\"badget text-white\">\r\n {{ item.badget }}\r\n </div>\r\n }\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n</ng-template>\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 standalone: false\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 @if (logo) {\r\n <li [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\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 @if (secondaryMenu) {\r\n <li class=\"flex justify-center mb-5\">\r\n <ng-container *ngTemplateOutlet=\"secondaryMenu\"></ng-container>\r\n </li>\r\n }\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 @if (!minimizeSidebar) {\r\n <span class=\"inline-block align-middle\">{{ logoutText }}</span>\r\n }\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 standalone: false\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","@if (logo || subtitle) {\r\n <ul>\r\n @if (logo) {\r\n <li class=\"w-full\">\r\n <img [src]=\"logo\" [alt]=\"logoAlt\"/>\r\n </li>\r\n }\r\n @if (subtitle) {\r\n <li [ngClass]=\"collapsed ? 'text-collapse' : 'text-sm'\" class=\"text-brand-dark mt-2\">\r\n {{ subtitle }}\r\n </li>\r\n }\r\n </ul>\r\n}\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\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 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 { UnsubscribeService } from '../../public-api';\r\nimport EcabsElementBaseComponent from '../base/element-base';\r\nimport PlaceResult = google.maps.places.PlaceResult;\r\nimport { WaypointTypeEnum } from '../base/consts/waypoint.consts';\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 standalone: false\r\n})\r\nexport class EcabsPlaceAutocompleteComponent\r\n extends EcabsElementBaseComponent\r\n implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor\r\n{\r\n @ViewChild('matCustomAutocompleteInput', { static: false })\r\n matCustomInput: ElementRef;\r\n\r\n @Input()\r\n showDeleteItem = false;\r\n\r\n @Input()\r\n showSuffix = false;\r\n\r\n @Input()\r\n countryCode = 'MT';\r\n\r\n @Input()\r\n googleLoaded: boolean;\r\n\r\n @Input()\r\n waypointType: WaypointTypeEnum;\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 #matCustomAutocompleteInput\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 @if (showSuffix) {\r\n <div class=\"form-field__input--suffix\">\r\n @if (showDeleteItem) {\r\n <mat-icon\r\n class=\"suffix cursor-pointer delete-button\"\r\n (click)=\"onDeleteItem()\">\r\n delete\r\n </mat-icon>\r\n }\r\n @if (!showDeleteItem && value) {\r\n <mat-icon class=\"suffix cursor-pointer\" (click)=\"onClean()\">close</mat-icon>\r\n }\r\n </div>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\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 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 standalone: false\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 @for (value of model; track value) {\r\n <mat-chip-option\r\n class=\"form-field__input\"\r\n [selectable]=\"false\" [removable]=\"true\"\r\n (removed)=\"remove(value)\"\r\n >\r\n {{ value | date: 'dd/MM/yyyy' }}\r\n @if (true) {\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n }\r\n </mat-chip-option>\r\n }\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","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nexport 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 \r\n const pickBy = (object, predicate = (v) => v) =>\r\n Object.entries(object)\r\n //eslint-disable-next-line @typescript-eslint/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 \r\n delete o[k];\r\n }\r\n }\r\n\r\n return o;\r\n};\r\n","import { Platform } from '@angular/cdk/platform';\r\nimport { getLocaleFirstDayOfWeek, WeekDay } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { NativeDateAdapter } from '@angular/material/core';\r\n\r\n@Injectable()\r\nexport class EcabsDateAdapter extends NativeDateAdapter {\r\n constructor(@Inject(String) dateTimeLocale: string) {\r\n super(dateTimeLocale ?? 'en-GB', new Platform(1));\r\n }\r\n\r\n override parse(value: string): Date {\r\n const dateAsArray = value.split('/');\r\n\r\n if (dateAsArray.length === 3) {\r\n let year = +dateAsArray[2];\r\n\r\n if (dateAsArray[2].length === 2) {\r\n if (year > 30) {\r\n year = +`19${year}`;\r\n } else {\r\n year = +`20${year}`;\r\n }\r\n }\r\n\r\n return new Date(year, +dateAsArray[1] - 1, +dateAsArray[0], 12);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n override format(date: Date): string {\r\n return (\r\n ('0' + date.getDate()).slice(-2) +\r\n '/' +\r\n ('0' + (date.getMonth() + 1)).slice(-2) +\r\n '/' +\r\n date?.getFullYear()\r\n );\r\n }\r\n\r\n //eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars, @typescript-eslint/no-explicit-any\r\n override getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): any[] {\r\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\r\n }\r\n\r\n override getFirstDayOfWeek(): WeekDay {\r\n return getLocaleFirstDayOfWeek(this.locale);\r\n }\r\n}\r\n","export enum WaypointTypeEnum {\r\n PICKUP = 'PICKUP',\r\n DROPOFF = 'DROPOFF',\r\n GENERIC = 'GENERIC',\r\n DIVERSION = 'DIVERSION',\r\n CUSTOM = 'CUSTOM',\r\n LOCATION = 'LOCATION',\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n Inject,\r\n OnInit,\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { EcabsComponentsService } 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-deletion',\r\n templateUrl: './ecabs-dialog-confirm-deletion.component.html',\r\n styleUrls: ['./ecabs-dialog-confirm-deletion.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class EcabsDialogConfirmationDeletionComponent implements OnInit {\r\n form: UntypedFormGroup;\r\n color: ThemePalette = 'warn';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<EcabsDialogConfirmationDeletionComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: EcabsDeleteConfirmationModal,\r\n private readonly fb: UntypedFormBuilder,\r\n private readonly componentsService: EcabsComponentsService,\r\n private readonly destroyRef: DestroyRef,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n name: [null, Validators.required],\r\n });\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 { confirmLabel, cancelLabel } = this.data ?? {};\r\n\r\n if (i18n) {\r\n this.data.confirmLabel = confirmLabel || i18n?.confirmLabel;\r\n this.data.cancelLabel = cancelLabel || i18n?.cancelLabel;\r\n }\r\n });\r\n }\r\n\r\n onConfirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\nexport interface EcabsDeleteConfirmationModal {\r\n actionName?: string;\r\n alertText?: string;\r\n color?: ThemePalette;\r\n comparisonText?: string;\r\n confirmLabel?: string;\r\n cancelLabel?: string;\r\n entityName?: string;\r\n entityNameLabel?: string;\r\n entityNamePlaceholder?: string;\r\n showEntityNameInHeader?: boolean;\r\n}\r\n","<div class=\"p-6\">\r\n <h3 class=\"modal-title font-semibold\" [ngClass]=\"(data?.color || color) === 'primary' ? 'primary' : 'warn'\">\r\n {{ data.actionName }} {{ data.showEntityNameInHeader ? (data.entityName | lowercase) : '' }}\r\n </h3>\r\n <div class=\"mt-1\">\r\n @if (data.alertText && data.alertText.length > 0) {\r\n <div class=\"alert-item\">\r\n <span class=\"alert-text\">\r\n {{ data.alertText }}\r\n </span>\r\n </div>\r\n }\r\n\r\n <form [formGroup]=\"form\" class=\"mt-1\">\r\n <ecabs-input\r\n [placeholder]=\"data.entityNamePlaceholder\"\r\n [label]=\"data.entityNameLabel\"\r\n name=\"name\"\r\n formControlName=\"name\"\r\n ></ecabs-input>\r\n </form>\r\n </div>\r\n\r\n <div class=\"btn__group flex flex-row gap-x-4 justify-end\">\r\n <ecabs-buttons class=\"grow\" [style]=\"'stroked'\" (click)=\"onCancel()\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons\r\n class=\"grow\"\r\n [color]=\"data?.color || color\"\r\n (click)=\"onConfirm()\"\r\n [disabled]=\"form.value.name !== data.comparisonText\"\r\n >\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\nimport { EcabsDialogConfirmationDeletionComponent } from './ecabs-dialog-confirm-deletion.component';\r\nimport { EcabsButtonsModule } from '../ecabs-buttons/ecabs-buttons.module';\r\nimport { EcabsInputModule } from '../ecabs-input/ecabs-input.module';\r\n\r\n@NgModule({\r\n declarations: [EcabsDialogConfirmationDeletionComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatDialogModule,\r\n EcabsButtonsModule,\r\n EcabsInputModule,\r\n ],\r\n})\r\nexport class EcabsDialogConfirmDeletionModule {}\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","i5","i6.EcabsHintComponent","i1.EcabsElementWrapperComponent","i3.EcabsDigitsOnlyDirective","i4.EcabsMinDirective","i4.EcabsMaxDirective","scrollFactory","i1","i3","i4","i6.EcabsTooltipIfTruncatedDirective","i7","i2.EcabsElementWrapperComponent","i4.EcabsSpinnerComponent","i5.EcabsCheckboxToggleComponent","i6","i3.EcabsDatePickerHeaderService","i4.UnsubscribeService","i1.EcabsDatePickerHeaderService","i2.EcabsPickerHeaderComponent","i1.ButtonsComponent","i2.UnsubscribeService","i3.EcabsElementWrapperComponent","i8.EcabsDatePickerActionsComponent","i2.EcabsDatePickerHeaderService","i3.UnsubscribeService","i4.EcabsElementWrapperComponent","i8.EcabsDigitsOnlyDirective","i9.EcabsNumberBorderDirective","i10.EcabsMaskDateDirective","i11.EcabsDatePickerActionsComponent","i12","i10.EcabsDatePickerActionsComponent","i11.EcabsMaskTimeDirective","i4.EcabsDigitsOnlyDirective","i1.CountryCode","i9.SearchPipe","i5.EcabsBasePhoneComponent","i1.FormTimePickerService","i4.EcabsMaskTimeDirective","i6.EcabsTimeListPanelComponent","i6.EcabsCheckboxToggleComponent","i2.EcabsExpansionPanelComponent","i3.EcabsEmptyPlaceholderComponent","i3.EcabsComponentsService","i5.ButtonsComponent","i3.ButtonsComponent","i1.ValidationComponent","i1.EcabsDynamicBgColorDirective","map","i1.HeaderService","i3.EcabsBreadcrumbComponent","i4.EcabsProfileComponent","ElementBaseComponent","i1.UnsubscribeService","i6.EcabsTruncatePipe","i2.EcabsMenuItemsComponent","i8","i9.EcabsDatePickerActionsComponent","i10","i6.EcabsInputComponent"],"mappings":"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"}
|