ca-components 0.0.24 → 0.0.26
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-components.mjs","sources":["../../../projects/ca-components/src/lib/components/ca-profile-image/ca-profile-image.component.ts","../../../projects/ca-components/src/lib/components/ca-profile-image/ca-profile-image.component.html","../../../projects/ca-components/src/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.ts","../../../projects/ca-components/src/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.html","../../../projects/ca-components/src/lib/animations/animation.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/utils/svg-routes/detail-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/ca-details-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/ca-details-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-dropdown/ca-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-dropdown/ca-dropdown.component.html","../../../projects/ca-components/src/lib/animations/show.animation.ts","../../../projects/ca-components/src/lib/animations/close-form.animation.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/svg-routes/ca-filters-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/helpers/filter.helper.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-set.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-user-box.pipe.ts","../../../projects/ca-components/src/lib/components/ca-map/enums/toolbar-filter-string.enum.ts","../../../projects/ca-components/src/lib/utils/helpers/methods-calculations.helper.ts","../../../projects/ca-components/src/lib/pipes/thousand-separator.pipe.ts","../../../projects/ca-components/src/lib/pipes/ca-svg.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/svg-routes/ca-money-filter-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/enums/money-filter-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/config/ca-money-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-container-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-error.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-type.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/label-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-invalid-danger-mark.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-valid-check.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-dropdown-arrow-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-clear-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/utils/input-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.html","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.html","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-password-eye-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-password/ca-input-password.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-password/ca-input-password.component.html","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-placeholder-icon.class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.html","../../../projects/ca-components/src/lib/components/ca-input/enums/input-commands-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-commands-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/services/ca-input-state.service.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-dropdown-arrow.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/ca-input.component.ts","../../../projects/ca-components/src/lib/components/ca-input/ca-input.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.html","../../../projects/ca-components/src/lib/enums/load-filter-string.enum.ts","../../../projects/ca-components/src/lib/enums/load-status.enum.ts","../../../projects/ca-components/src/lib/pipes/dropdown-load-status-color.pipe.ts","../../../projects/ca-components/src/lib/animations/in-out.animation.ts","../../../projects/ca-components/src/lib/services/truckassist-table.service.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/time-filter.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.html","../../../projects/ca-components/src/lib/enums/trailer-name-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-trailer-color.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/config/ca-user-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.html","../../../projects/ca-components/src/lib/animations/state-header.animation.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/directive.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/filter-icons-routes.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-service-filter/ca-service-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-service-filter/ca-service-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/ca-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/ca-filter.component.html","../../../projects/ca-components/src/lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component.ts","../../../projects/ca-components/src/lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component.html","../../../projects/ca-components/src/lib/components/ca-map-dropdown/utils/svg-routes/map-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/ca-map-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/ca-map-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-map/enums/google-map.enum.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/helpers/map.helper.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/map-svg-routes/map-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-map/ca-map.component.ts","../../../projects/ca-components/src/lib/components/ca-map/ca-map.component.html","../../../projects/ca-components/src/lib/pipes/safe-html.pipe.ts","../../../projects/ca-components/src/lib/directives/placeholder-directive.ts","../../../projects/ca-components/src/lib/components/ca-note/utils/helper/copy-paste.helper.ts","../../../projects/ca-components/src/lib/components/ca-note-container/utils/constants/note-config.constant.ts","../../../projects/ca-components/src/lib/components/ca-note-container/enums/note-selected-color.enum.ts","../../../projects/ca-components/src/lib/components/ca-note-container/enums/note-default-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-note-container/utils/svg-routes/note-container-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-note-container/ca-note-container.component.ts","../../../projects/ca-components/src/lib/components/ca-note-container/ca-note-container.component.html","../../../projects/ca-components/src/lib/components/ca-spinner/ca-spinner.component.ts","../../../projects/ca-components/src/lib/components/ca-spinner/ca-spinner.component.html","../../../projects/ca-components/src/lib/components/ca-note/utils/svg-routes/note-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-note/ca-note.component.ts","../../../projects/ca-components/src/lib/components/ca-note/ca-note.component.html","../../../projects/ca-components/src/lib/animations/accordion-animation.ts","../../../projects/ca-components/src/lib/utils/svg-routes/payroll-list-summary-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.html","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/models/status-types.enum.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/pickup-delivery-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/options-icon.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/constants/pickup-delivery-block.constants.ts","../../../projects/ca-components/src/lib/pipes/format-currency.pipe.ts","../../../projects/ca-components/src/lib/pipes/date-from-string.pipe.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/constants/animation-object-default.constants.ts","../../../projects/ca-components/src/lib/animations/tabs-modal.animation.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/return-arrow.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/helpers/pickup-delivery.helper.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.html","../../../projects/ca-components/src/lib/constants/map.constant.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/constants/progress-bar.constants.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/svg-routes/progress-bar-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/ca-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/ca-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/svg-routes/search-multiple-states.routes.ts","../../../projects/ca-components/src/lib/animations/expand-search-button.animation.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/config/input-config.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.html","../../../projects/ca-components/src/lib/pipes/thousand-to-short-format-pipe.ts","../../../projects/ca-components/src/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-input-note/ca-input-note.component.ts","../../../projects/ca-components/src/lib/components/ca-input-note/ca-input-note.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/utils/svg-routes/period-content.routes.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/constants/color-map.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/constants/payroll-period-dropdown.constant.ts","../../../projects/ca-components/src/lib/components/ca-period-content/enums/payroll-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/helpers/payroll-period-content.helper.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/ca-period-content.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/ca-period-content.component.html","../../../projects/ca-components/src/lib/ca-components.module.ts","../../../projects/ca-components/src/public-api.ts","../../../projects/ca-components/src/ca-components.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, Input, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-ca-profile-image\",\n templateUrl: \"./ca-profile-image.component.html\",\n styleUrls: [\"./ca-profile-image.component.scss\"],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CaProfileImageComponent implements OnInit {\n @Input() avatarImg!: string;\n @Input() avatarColor!: { background?: string; color?: string };\n @Input() textShortName!: string;\n @Input() isRound: boolean = true;\n @Input() size!: string | number;\n @Input() fontSize!: string | number;\n @Input() isHoverEffect: boolean = true;\n constructor() {}\n\n ngOnInit() {}\n}\n","<div \n class=\"avatar-container d-flex\"\n [ngClass]=\"{\n 'avatar-hover': isHoverEffect,\n }\" \n>\n <ng-container *ngIf=\"avatarImg else noImage\">\n <div \n class=\"avatar-img\" \n [ngClass]=\"{\n 'round-avatar': isRound,\n 'regular-avatar': !isRound\n }\" \n [ngStyle]=\"{\n width: size + 'px',\n height: size + 'px'\n }\"\n >\n \n <img class=\"d-flex\" alt=\"avatar\" [src]=\"avatarImg\" />\n </div>\n </ng-container>\n\n <ng-template #noImage>\n <div class=\"avatar-no-img d-flex justify-content-center align-items-center\" \n [ngClass]=\"{\n 'round-avatar': isRound,\n 'regular-avatar': !isRound\n }\" \n [ngStyle]=\"{\n 'background-color': \n avatarColor.background\n ? avatarColor.background\n : 'unset',\n color: avatarColor.color\n ? avatarColor.color\n : 'unset',\n width: size + 'px',\n height: size + 'px',\n 'font-size': fontSize + 'px'\n }\"\n >\n {{ textShortName }}\n </div>\n </ng-template>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport {\n Component,\n Host,\n ViewChild,\n TemplateRef,\n AfterViewInit,\n Input,\n} from \"@angular/core\";\n\n@Component({\n selector: \"mainTooltip, [mainTooltip]\",\n templateUrl: \"./ca-app-tooltip-v2.component.html\",\n styleUrls: [\"./ca-app-tooltip-v2.component.scss\"],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CaAppTooltipV2Component implements AfterViewInit {\n constructor(@Host() private ngbTooltop: NgbTooltip) {\n this.ngbTooltop.container = 'body';\n }\n @Input() mainTooltip?: string = '';\n @Input() position: string = '';\n @Input() openTooltipDelay: number = 300;\n @Input() tooltipBackground?: string = 'rgb(40, 82, 159)';\n @Input() tooltipColor: string = '#fff';\n @Input() tooltipTextAlign: string = 'left';\n @Input() tooltipMarginTop!: string;\n @ViewChild(TemplateRef, { static: false }) template!: TemplateRef<void>;\n ngAfterViewInit() {\n this.bindTemplete();\n }\n public bindTemplete(): void {\n if (this.ngbTooltop) {\n this.ngbTooltop.tooltipClass = 'app-main-tooltip';\n this.ngbTooltop.placement = this.position;\n this.ngbTooltop.ngbTooltip = this.template;\n this.ngbTooltop.openDelay = this.openTooltipDelay;\n }\n }\n}\n","<ng-content> </ng-content>\n<ng-template>\n <div\n class=\"tooltip-holder\"\n [style]=\"\n 'margin-top: ' +\n tooltipMarginTop +\n '; background-color: ' +\n tooltipBackground +\n '; color: ' +\n tooltipColor +\n '; text-align: ' +\n tooltipTextAlign +\n ' '\n \"\n [innerHTML]=\"mainTooltip\"\n ></div>\n</ng-template>\n","import { trigger, transition, style, animate } from \"@angular/animations\";\n\nexport const showAnimation = trigger(\"showAnimation\", [\n transition(\":enter\", [\n style({ height: \"10px\" }),\n animate(\"150ms ease\", style({ height: \"26px\" })),\n ]),\n transition(\":leave\", [animate(\"150ms ease\", style({ height: 0 }))]),\n]);\n\nexport const borderShowAnimation = trigger(\"borderShowAnimation\", [\n transition(\":enter\", [\n style({ height: \"0px\", opacity: 0 }),\n animate(\"300ms ease\", style({ height: \"*\", opacity: 1 })),\n ]),\n transition(\":leave\", [animate(\"300ms ease\", style({ height: 0 }))]),\n]);\n\nexport const pickupAnimation = trigger(\"pickupAnimation\", [\n transition(\":enter\", [\n style({ height: 10 }),\n animate(\"100ms\", style({ height: \"*\" })),\n ]),\n transition(\":leave\", [animate(\"50ms\", style({ height: 0 }))]),\n]);\n\nexport const noteLongAnimation = trigger(\"noteLongAnimation\", [\n transition(\":enter\", [\n style({ width: 10 }),\n animate(\"100ms\", style({ width: \"*\" })),\n ]),\n transition(\":leave\", [animate(\"300ms\", style({ width: 0 }))]),\n]);\n","export class DetailDropdownSvgRoutes {\n static menuRoute: string = \"assets/ca-components/svg/map/details_options_2.svg\";\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgZone } from '@angular/core';\n\n// modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { Options } from '@popperjs/core/lib/popper';\n\n// icon\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//animation\nimport { borderShowAnimation, showAnimation } from '../../animations/animation';\n\n//model\nimport {\n DropDownData,\n IDropDownActions,\n} from '../ca-details-dropdown/models/detail-dropdown.model';\n\n//routes\nimport { DetailDropdownSvgRoutes } from '../ca-details-dropdown/utils/svg-routes/detail-dropdown-svg-routes';\n\n@Component({\n selector: 'app-ca-details-dropdown',\n templateUrl: './ca-details-dropdown.component.html',\n styleUrls: ['./ca-details-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n //modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n ],\n animations: [showAnimation, borderShowAnimation],\n})\nexport class CaDetailsDropdownComponent {\n @Input() options!: DropDownData[];\n @Input() id!: number;\n @Input() customClassDropDown!: string;\n @Input() hasVericalDots!: boolean;\n @Input() data!: DropDownData;\n @Input() leftIcon: boolean = true;\n @Input() public placement: string = 'bottom-right';\n @Output() dropDownActions: EventEmitter<IDropDownActions> =\n new EventEmitter();\n @Output() openModalAction: EventEmitter<string> = new EventEmitter();\n\n public tooltip!: NgbPopover;\n public dropDownActive: number = -1;\n public subtypeHovered: boolean = false;\n\n constructor(\n private chnd: ChangeDetectorRef,\n private ngZone: NgZone\n ) {}\n\n public toggleDropdown(tooltip: NgbPopover): void {\n this.ngZone.run(() => {\n this.tooltip = tooltip;\n if (tooltip.isOpen()) {\n tooltip.close();\n } else {\n if (this.options) {\n tooltip.open({ data: [...this.options] });\n }\n }\n\n this.dropDownActive = tooltip.isOpen() ? this.id : -1;\n this.chnd.detectChanges();\n });\n }\n\n /**Function retrun id */\n public identity(index: number): number {\n return index;\n }\n\n public onAction(action: DropDownData, event?: Event): void | boolean {\n event!.stopPropagation();\n event!.preventDefault();\n\n if (action?.disabled) {\n return false;\n }\n\n this.dropDownActions.emit({\n id: this.id,\n data: this.data,\n type: action.name,\n });\n\n this.tooltip.close();\n }\n\n public dropdownClosed(): void {\n this.options.map((item: DropDownData) => {\n item['mutedStyle'] = false;\n });\n }\n\n public popperOptions = (options: Partial<Options>): Partial<Options> => {\n options.modifiers?.push({\n name: 'custom',\n enabled: true,\n phase: 'main',\n effect: ({ state, instance }) => {\n const observer = new ResizeObserver(() => instance.update());\n observer.observe(state.elements!.reference as any);\n return () => {\n observer.disconnect();\n };\n },\n });\n return options;\n };\n\n public getSvgPath(\n propertyName: keyof typeof DetailDropdownSvgRoutes\n ): string {\n return DetailDropdownSvgRoutes[propertyName] as string;\n }\n\n ngOnDestroy() {\n this.tooltip?.close();\n }\n}\n","<div\n #t2=\"ngbPopover\"\n (click)=\"toggleDropdown(t2)\"\n (hidden)=\"dropdownClosed()\"\n [autoClose]=\"'outside'\"\n [ngbPopover]=\"dropdownPopover\"\n [placement]=\"placement\"\n class=\"details-dropdown-container\"\n [ngClass]=\"{\n 'active-drop': dropDownActive === id,\n rightRotation: leftIcon,\n leftRotation: !leftIcon,\n }\"\n popoverClass=\"details-dropdown-popover\"\n [popperOptions]=\"popperOptions\"\n triggers=\"manual\"\n [container]=\"'body'\"\n (hidden)=\"dropDownActive = -1\"\n container=\"body\"\n>\n <svg-icon class=\"dropdown-dots\" [src]=\"getSvgPath('menuRoute')\"></svg-icon>\n</div>\n\n<ng-template #dropdownPopover let-data=\"data\">\n <div\n class=\"dropdown-main-popover-body d-flex justify-content-center align-items-center\"\n >\n <div class=\"details-dropdown-body\">\n <ng-container\n *ngFor=\"let action of data; let i = index; trackBy: identity\"\n >\n <ng-container\n *ngIf=\"\n action.title !== 'border' &&\n action.title !== 'Add New' &&\n action.title !== 'Request' &&\n action.title !== 'Report' &&\n !action.hide\n \"\n >\n <div\n class=\"action-holder d-flex justify-content-between align-content-center\"\n @showAnimation\n [class.leftIcon]=\"leftIcon\"\n [class.disabledAction]=\"action.disabled\"\n [class.disabledActionMain]=\"action.disabled\"\n (click)=\"onAction(action, $event)\"\n >\n <div class=\"action-select-holder d-flex align-items-center\">\n <div class=\"actionTitle d-flex align-items-center\">\n {{ action.title }}\n </div>\n <div\n class=\"actionIcon d-flex justify-content-center align-items-center\"\n [class.redIcon]=\"\n action.title === 'Delete' || action.title === 'Close Business'\n \"\n [class.blueIcon]=\"action.blueIcon\"\n [class.greenIcon]=\"action.greenIcon\"\n >\n <svg-icon [src]=\"action.svgUrl\"></svg-icon>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"action.hasBorder\">\n <div\n class=\"border-holder d-flex justify-content-center\"\n @borderShowAnimation\n >\n <div class=\"action-border-line\"></div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n SimpleChanges,\n} from '@angular/core';\n//model\nimport { IItemList } from '../../models/dropdown.model';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n selector: 'app-ca-dropdown',\n templateUrl: './ca-dropdown.component.html',\n styleUrls: ['./ca-dropdown.component.scss'],\n standalone: true,\n imports: [CommonModule, AngularSvgIconModule],\n})\nexport class CaDropdownComponent {\n @Input() icon!: string;\n @Input() itemList!: IItemList[];\n @Output() onClick = new EventEmitter<Event>();\n @Input() isPopupShown: boolean = false;\n\n ngOnChanges(changes: SimpleChanges) {\n this.isPopupShown = changes['isPopupShown']?.currentValue;\n }\n\n public toggleMenu(event: Event): void {\n this.isPopupShown = !this.isPopupShown;\n this.onClick.emit(event);\n }\n\n public identity(index: number, item: IItemList): string {\n return item.text;\n }\n}\n","<div class=\"sidemenu-container-box\">\n <svg-icon [src]=\"icon\" (click)=\"toggleMenu($event)\"></svg-icon>\n <ng-container *ngIf=\"isPopupShown\">\n <div class=\"sidemenu\">\n <ng-container *ngFor=\"let item of itemList; trackBy: identity\">\n <div class=\"sidemenu-container\">\n <div class=\"item-container d-flex\">\n <svg-icon [src]=\"item.Icon\" class=\"item-icon\" />\n <span class=\"sidemenu-items\">{{ item.text }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const showAnimation = (type: string) =>\n trigger(type, [\n state(\n 'true',\n style({\n height: '*',\n opacity: 1,\n })\n ),\n state(\n 'false',\n style({\n height: '10px',\n opacity: '0.5',\n })\n ),\n state(\n 'null',\n style({\n height: '10px',\n opacity: '0.5',\n })\n ),\n transition('false => true', [\n animate('150ms cubic-bezier(0, 0, 0.60, 1.99)'),\n ]),\n transition('true => false', [animate('150ms ease')]),\n ]);\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const closeForm = (type: string) =>\n trigger(type, [\n state(\n 'true',\n style({\n height: '*',\n opacity: 1,\n })\n ),\n state(\n 'false',\n style({\n height: '0px',\n 'margin-top': '0px',\n opacity: 0,\n })\n ),\n state(\n 'null',\n style({\n height: '*',\n })\n ),\n transition('false <=> true', [animate('0.1s linear')]),\n transition('true <=> false', [animate('0.1s ease-in-out')]),\n ]);\n","export class CaFiltersSvgRoutes {\n static sortArrowSvgRoute: string = 'assets/ca-components/svg/common/sortArrow_filter.svg';\n static searchIconRoute: string = 'assets/ca-components/svg/common/ic_search.svg';\n static iconConfirm: string = 'assets/ca-components/svg/common/ic_confirm.svg';\n static removeSelectedValue: string = 'assets/ca-components/svg/truckassist-table/x.svg';\n}\n","import { ArrayStatus } from '../../../../models/array-status.model';\nimport { CaFiltersSvgRoutes } from '../svg-routes/ca-filters-svg-routes';\n\nexport class FilterHelper {\n static sortItems(\n sortedFilterArray: ArrayStatus[],\n sortedSelectedFilterArray: ArrayStatus[],\n isAscendingSortOrder: boolean\n ): {\n sortedFilterArray: ArrayStatus[];\n sortedSelectedFilterArray: ArrayStatus[];\n isAscendingSortOrder: boolean;\n } {\n sortedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.name!.localeCompare(b.name!);\n } else {\n return b.name!.localeCompare(a.name!);\n }\n });\n\n sortedSelectedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.name!.localeCompare(b.name!);\n } else {\n return b.name!.localeCompare(a.name!);\n }\n });\n\n isAscendingSortOrder = !isAscendingSortOrder;\n\n return {\n sortedFilterArray,\n sortedSelectedFilterArray,\n isAscendingSortOrder,\n };\n }\n\n static sortItemsCount(\n sortedFilterArray: ArrayStatus[],\n sortedSelectedFilterArray: ArrayStatus[],\n isAscendingSortOrder: boolean\n ): {\n sortedFilterArray: ArrayStatus[];\n sortedSelectedFilterArray: ArrayStatus[];\n isAscendingSortOrder: boolean;\n } {\n sortedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.count! - b.count!;\n } else {\n return b.count! - a.count!;\n }\n });\n\n sortedSelectedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.count! - b.count!;\n } else {\n return b.count! - a.count!;\n }\n });\n\n isAscendingSortOrder = !isAscendingSortOrder;\n\n return {\n sortedFilterArray,\n sortedSelectedFilterArray,\n isAscendingSortOrder,\n };\n }\n\n static checkFilterActiveValue(\n filterArray: ArrayStatus[],\n selectedFilterArray: ArrayStatus[],\n isButtonAvailable: boolean\n ): {\n isButtonAvailable: boolean;\n } {\n const array1 = [...selectedFilterArray];\n const array2 = [...filterArray];\n\n array1.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n array2.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n const stringfy1 = JSON.stringify(array1);\n const stringfy2 = JSON.stringify(array2);\n\n if (stringfy1 === stringfy2) {\n isButtonAvailable = false;\n } else {\n isButtonAvailable = true;\n }\n\n return { isButtonAvailable };\n }\n\n static getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return CaFiltersSvgRoutes[propertyName] as string;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaMoneyFilterComponent } from '../components/ca-money-filter/ca-money-filter.component';\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-filter.component';\nimport { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from '../components/ca-service-filter/ca-service-filter.component';\n\n@Pipe({\n name: 'filterConditionsSet',\n standalone: true,\n pure: false,\n})\nexport class FilterConditionsSetPipe implements PipeTransform {\n transform(\n type: string,\n caMoneyFilter: CaMoneyFilterComponent,\n caStatusFilter: CaStatusFilterComponent,\n caTimeFilter: CaTimeFilterComponent,\n caUserFilter: CaUserFilterComponent,\n caStateFilter: CaStateFilterComponent,\n caTruckTypeFilter: CaTruckTypeFilterComponent,\n caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n caPmFilter: CaPmFilterComponent,\n caServiceFilter: CaServiceFilterComponent\n ): boolean | number {\n switch (type) {\n case 'moneyFilter':\n return caMoneyFilter?.subType === 'all'\n ? caMoneyFilter?.moneyFilterStatus &&\n caMoneyFilter?.isButtonAvailable\n : caMoneyFilter?.moneyFilterStatus &&\n caMoneyFilter?.isButtonAvailable &&\n !caMoneyFilter?.singleFormError;\n case 'statusFilter':\n return caStatusFilter?.selectedUser?.length;\n case 'timeFilter':\n return (\n caTimeFilter?.selectedTimeValue !==\n caTimeFilter?.filterActiveTime\n );\n case 'userFilter':\n return (\n (caUserFilter?.selectedUser.length ||\n caUserFilter?.filterActiveArray.length) &&\n caUserFilter?.isButtonAvailable\n );\n case 'stateFilter':\n return (\n (caStateFilter?.canadaSelectedStates.length ||\n caStateFilter?.usaSelectedStates.length) &&\n caStateFilter?.isButtonAvailable\n );\n case 'truckTypeFilter':\n return (\n caTruckTypeFilter?.selectedTruckTypeArray.length &&\n caTruckTypeFilter?.isButtonAvailable\n );\n case 'trailerTypeFilter':\n return (\n caTrailerTypeFilter?.selectedTrailerTypeArray.length &&\n caTrailerTypeFilter?.isButtonAvailable\n );\n case 'pmFilter':\n return (\n caPmFilter?.selectedPmFilterArray.length &&\n caPmFilter?.isButtonAvailable\n );\n case 'serviceFilter':\n return (\n caServiceFilter?.selectedServiceFilterArray.length &&\n caServiceFilter?.isButtonAvailable\n );\n default:\n return false;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaMoneyFilterComponent } from '../components/ca-money-filter/ca-money-filter.component';\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-filter.component';\nimport { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from '../components/ca-service-filter/ca-service-filter.component';\n\n@Pipe({\n name: 'filterConditionsClear',\n standalone: true,\n pure: false,\n})\nexport class FilterConditionsClearPipe implements PipeTransform {\n transform(\n type: string,\n caMoneyFilter: CaMoneyFilterComponent,\n caStatusFilter: CaStatusFilterComponent,\n caTimeFilter: CaTimeFilterComponent,\n caUserFilter: CaUserFilterComponent,\n caStateFilter: CaStateFilterComponent,\n caTruckTypeFilter: CaTruckTypeFilterComponent,\n caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n caPmFilter: CaPmFilterComponent,\n caServiceFilter: CaServiceFilterComponent\n ): boolean | number {\n switch (type) {\n case 'moneyFilter':\n return caMoneyFilter?.moneyFilterStatus;\n case 'statusFilter':\n return caStatusFilter?.selectedUser?.length;\n case 'timeFilter':\n return (\n caTimeFilter?.selectedTimeValue !==\n caTimeFilter?.filterActiveTime ||\n caTimeFilter?.selectedTimeValue !== ''\n );\n case 'userFilter':\n return (\n caUserFilter?.selectedUser.length ||\n caUserFilter?.filterActiveArray.length\n );\n case 'stateFilter':\n return (\n caStateFilter?.canadaSelectedStates.length ||\n caStateFilter?.usaSelectedStates.length\n );\n case 'truckTypeFilter':\n return caTruckTypeFilter?.selectedTruckTypeArray.length;\n case 'trailerTypeFilter':\n return caTrailerTypeFilter?.selectedTrailerTypeArray.length;\n case 'pmFilter':\n return caPmFilter?.selectedPmFilterArray.length;\n case 'serviceFilter':\n return caServiceFilter?.selectedServiceFilterArray.length;\n default:\n return false;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from '../components/ca-service-filter/ca-service-filter.component';\n\n@Pipe({\n name: 'filterConditionsUserBox',\n standalone: true,\n pure: false,\n})\nexport class FilterConditionsUserBoxPipe implements PipeTransform {\n transform(\n type: string,\n caTruckTypeFilter: CaTruckTypeFilterComponent,\n caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n caPmFilter: CaPmFilterComponent,\n caServiceFilter: CaServiceFilterComponent\n ): boolean | number {\n switch (type) {\n case 'truckTypeFilter':\n return caTruckTypeFilter?.selectedTruckTypeArray?.length;\n case 'trailerTypeFilter':\n return caTrailerTypeFilter?.selectedTrailerTypeArray?.length;\n case 'pmFilter':\n return caPmFilter?.selectedPmFilterArray?.length;\n case 'serviceFilter':\n return caServiceFilter?.selectedServiceFilterArray?.length;\n default:\n return false;\n }\n }\n}\n","export enum ToolbarFilterStringEnum {\n // Filter types\n\n DEPARTMENT_FILTER = 'departmentFilter',\n STATUS_FILTER = 'statusFilter',\n PM_FILTER = 'pmFilter',\n CATEGORY_FUEL_FILTER = 'categoryFuelFilter',\n CATEGORY_REPAIR_FILTER = 'categoryRepairFilter',\n SERVICE_FILTER = 'serviceFilter',\n TRUCK_FILTER = 'truckFilter',\n TRAILER_FILTER = 'trailerFilter',\n FUEL_STOP_FILTER = 'fuelStopFilter',\n BROKER_FILTER = 'brokerFilter',\n DRIVER_FILTER = 'driverFilter',\n TRUCK_TYPE_FILTER = 'truckTypeFilter',\n TRAILER_TYPE_FILTER = 'trailerTypeFilter',\n USER_FILTER = 'userFilter',\n STATE_FILTER = 'stateFilter',\n LABEL_FILTER = 'labelFilter',\n TIME_FILTER = 'timeFilter',\n INJURY_FILTER = 'injuryFilter',\n FATALITY_FILTER = 'fatalityFilter',\n VIOLATION_FILTER = 'violationFilter',\n LOCATION_FILTER = 'locationFilter',\n MONEY_FILTER = 'moneyFilter',\n MILES_FILTER = 'milesFilter',\n PAY_FILTER = 'payFilter',\n\n // State Filter\n CANADA = 'canada',\n CANADA_2 = 'Canada',\n\n // Empty string\n EMPTY_STRING_PLACEHOLDER = '',\n\n // Classes\n ACTIVE = 'active',\n\n // Money filter\n PENDING_STATUS = 'pendingStatus',\n ALL = 'all',\n MIN_VALUE = '0',\n MAX_VALUE = '5,000',\n\n // Service filter\n REPAIR_CATEGORY_UPDATE = 'repair-category-update',\n\n // Pm filter\n PM_SUBTYPE_TRUCK = 'truck',\n PM_SUBTYPE_TRAILER = 'trailer',\n PM_TRAILER_DATA_UPDATE = 'pm-trailer-data-update',\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport moment from 'moment';\n\nexport class MethodsCalculationsHelper {\n //------------------------------- Calculating Parking Slots -------------------------------\n static calculateParkingSlot = (\n value: string,\n formControl: AbstractControl\n ) => {\n // First check if value exist\n if (!value) {\n return 0;\n }\n let arrayStops: any[] = value.split(',');\n // Second check if arrayStops has ',' or ''\n if (arrayStops.includes(',') || arrayStops.includes('')) {\n arrayStops.pop();\n formControl.patchValue(value.substring(0, value.lastIndexOf(',')));\n return;\n }\n return arrayStops\n .map((item: string) => {\n // Third check if value has '-'\n if (item.includes('-')) {\n const doubleValues: string[] = item.split('-');\n // Fourth check lentgh of doubleValues after splitting by -, must be 2\n if (doubleValues.length > 2) {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n const foundSameElements: boolean = arrayStops.some(\n (array1) => doubleValues.includes(array1)\n );\n // Fifth check if values exist, denided, delete, return\n if (foundSameElements) {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n // Sixth check if second value > first value\n if (!doubleValues.includes('')) {\n if (\n parseInt(doubleValues[1]) >\n parseInt(doubleValues[0])\n ) {\n // Seventh check if value in range\n arrayStops.forEach((item) => {\n if (\n parseInt(item) >\n parseInt(doubleValues[0]) &&\n parseInt(item) < parseInt(doubleValues[1])\n ) {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(\n 0,\n value.lastIndexOf(',')\n )\n );\n return;\n }\n });\n return (\n parseInt(doubleValues[1]) -\n parseInt(doubleValues[0])\n );\n } else {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n } else {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n } else {\n // Eight chech has array duplicate items\n if (arrayStops.length !== new Set(arrayStops).size) {\n arrayStops = [...new Set(arrayStops)];\n formControl.patchValue(arrayStops.join(','));\n return;\n } else {\n return 1;\n }\n }\n })\n .reduce((accumulator, item) => {\n return (accumulator! += item!);\n }, 0);\n };\n\n //------------------------------- DATE TO BACKEND -------------------------------\n static convertDateToBackend = (date: string) => {\n return moment(new Date(date)).toISOString(true);\n };\n\n //------------------------------- DATE FROM BACKEND -------------------------------\n static convertDateFromBackend = (date: string) => {\n return moment.utc(date).local().format('MM/DD/YY');\n };\n\n //------------------------------- TIME FROM DATE FROM BACKEND -------------------------------\n static convertDateToTimeFromBackend = (\n date: string,\n show_am_ap?: boolean\n ) => {\n if(!date) {\n return null;\n }\n return moment\n .utc(date)\n .local()\n .format(show_am_ap ? 'HH:mm A' : 'HH:mm:SS');\n };\n\n //------------------------------- TIME FROM BACKEND -------------------------------\n static convertTimeFromBackend = (time: string) => {\n return moment(time, 'HH:mm:SS A').toDate();\n };\n\n //------------------------------- DATE FROM BACKEND TO TIME -------------------------------\n static convertDateFromBackendToTime = (date: string) => {\n return moment(new Date(date)).format('LT');\n };\n\n static combineDateAndTimeToBackend = (date: string, time: string) => {\n if (!time) {\n return moment(new Date(date)).toISOString(true);\n }\n return moment(new Date(date + ' ' + time)).toISOString(true);\n };\n\n //------------------------------- DATE FROM BACKEND TO DATE AND TIME -------------------------------\n static convertDateFromBackendToDateAndTime = (date: Date | string) => {\n return moment(new Date(date)).format('MM/DD/YY, hh:mm A');\n };\n\n //------------------------------- Convert thousand separator in number -------------------------------\n static convertThousanSepInNumber = (value: string) => {\n if (value) return parseFloat(value.toString().replace(/,/g, ''));\n else return 0\n };\n\n //------------------------------- Convert number in thousand separator -------------------------------\n static convertNumberInThousandSep = (value: number) => {\n if (value)\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n else return 0\n };\n\n //------------------------------- Convert number to short format (1.000 to 1K, 1.000.000 to 1M) -------------------------------\n static convertThousandToShortFormat = (value: number) => {\n if (value)\n return new Intl.NumberFormat(undefined, {\n //@ts-ignore\n notation: 'compact',\n compactDisplay: 'short',\n }).format(value);\n else return '0';\n };\n\n //------------------------------- SPECIFIC PRICE CONVERTORS -------------------------------\n static convertNumberWithCurrencyFormatterToBackend = (\n value: number,\n hasDollar: boolean = false\n ) => {\n const formatedValue = value.toLocaleString('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 2,\n });\n\n if (formatedValue.includes('$') && !hasDollar) {\n return formatedValue.slice(1);\n }\n\n return formatedValue;\n };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../utils/helpers/methods-calculations.helper';\n\n@Pipe({\n name: 'thousandSeparator',\n standalone: true,\n})\nexport class ThousandSeparatorPipe implements PipeTransform {\n transform(value: any): any {\n return MethodsCalculationsHelper.convertNumberInThousandSep(\n MethodsCalculationsHelper.convertThousanSepInNumber(\n value ? value : '0'\n )\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n standalone: true,\n name: \"caSvg\",\n})\nexport class CaSvgPipe implements PipeTransform {\n transform(\n svgPath: string,\n folder: string,\n subFolder?: string\n ): string | null {\n if (!svgPath) {\n return null;\n }\n\n if (!svgPath.includes(\".svg\")) {\n svgPath = svgPath.concat(\".svg\");\n }\n\n if (!svgPath.includes(\"ic_\")) {\n svgPath = \"ic_\".concat(svgPath);\n }\n if (!subFolder) {\n return `assets/ca-components/svg/${folder}/${svgPath}`;\n }\n\n return `assets/ca-components/svg/${folder}/${subFolder}/${svgPath}`;\n }\n}\n","export class CaMoneyFilterSvgRoutes {\n static arrowLeftSvgRoute: string = 'assets/ca-components/svg/common/calendar/arrow-left.svg';\n}\n","export enum MoneyFilterStringEnum {\n // Subfilter types\n\n SINGLE_FORM = 'singleForm',\n SINGLE_FROM = 'singleFrom',\n SINGLE_TO = 'singleTo',\n MULTI_FROM_FIRST = 'multiFromFirst',\n MULTI_FROM_FIRST_FROM = 'multiFromFirstFrom',\n MULTI_FROM_FIRST_TO = 'multiFromFirstTo',\n MULTI_FORM_SECOND = 'multiFormSecond',\n MULTI_FORM_SECOND_FROM = 'multiFormSecondFrom',\n MULTI_FORM_SECOND_TO = 'multiFormSecondTo',\n MULTI_FORM_THIRD = 'multiFormThird',\n MULTI_FORM_THIRD_FROM = 'multiFormThirdFrom',\n MULTI_FORM_THIRD_TO = 'multiFormThirdTo',\n CLEAR_ALL = 'clearAll',\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaMoneyFilterConfig {\n static getSingleFormFrom(): ICaInput {\n return {\n name: 'singleFrom',\n type: 'string',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getSingleFormTo(): ICaInput {\n return {\n name: 'singleTo',\n type: 'string',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormFirstFrom(): ICaInput {\n return {\n name: 'multiFromFirstFrom',\n type: 'string',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormFirstTo(): ICaInput {\n return {\n name: 'multiFromFirstTo',\n type: 'string',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormSecondFrom(): ICaInput {\n return {\n name: 'multiFormSecondFrom',\n type: 'number',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormSecondTo(): ICaInput {\n return {\n name: 'multiFormSecondTo',\n type: 'number',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormThirdFrom(): ICaInput {\n return {\n name: 'multiFormThirdFrom',\n type: 'number',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormThirdTo(): ICaInput {\n return {\n name: 'multiFormThirdTo',\n type: 'number',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'inputClass',\n standalone: true,\n})\nexport class InputClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n isTouchedInput: boolean,\n inputConfig: ICaInput,\n input: { value: string },\n isVisibleCommands: boolean,\n value: string,\n isDropdownToggler: boolean,\n isEditInput: boolean,\n template: string\n ): { [key: string]: boolean | undefined | number | null | string } {\n return {\n 'input-fixed-placehoder-input':\n inputConfig.fixedPlacholder && input.value && !isFocusInput,\n focus: isFocusInput && !inputConfig.isInvalidSearchInDropdown,\n 'inactive-empty': !value && inputConfig.isDisabled,\n 'inactive-filled': value && inputConfig.isDisabled,\n 'valid-focus-in':\n ((value || inputConfig.placeholder) &&\n getSuperControl?.valid &&\n isFocusInput &&\n !isVisibleCommands &&\n !inputConfig?.dropdownImageInput?.url &&\n !inputConfig.blackInput &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel) ||\n (inputConfig.multipleInputValues?.options?.length &&\n isFocusInput &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel),\n 'valid-focus-out-filled':\n (((value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !isVisibleCommands &&\n !inputConfig.blackInput) ||\n (!isFocusInput && inputConfig.dropdownImageInput?.url)) &&\n !inputConfig.blackInput) ||\n (inputConfig.multipleInputValues?.options?.length &&\n !isFocusInput &&\n !inputConfig.blackInput),\n 'invalid-focus-in':\n getSuperControl?.invalid &&\n value &&\n isFocusInput &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel &&\n !(\n inputConfig.dropdownImageInput?.url ||\n inputConfig.dropdownImageInput?.nameInitialsInsteadUrl\n ),\n 'invalid-focus-out-filled':\n ((value &&\n getSuperControl?.invalid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.blackInput) ||\n (!inputConfig.dropdownImageInput?.url &&\n (isTouchedInput || getSuperControl?.touched) &&\n getSuperControl?.invalid &&\n !inputConfig.isDisabled &&\n !isFocusInput)) &&\n !inputConfig.blackInput,\n 'invalid-focus-out-empty':\n !isFocusInput &&\n !value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !inputConfig.isDisabled,\n 'invalid-search-in-dropdown-focus-in':\n isFocusInput &&\n value &&\n inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled,\n 'has-placeholderIcon': !!inputConfig.placeholderIcon,\n 'dropdown-placeholder-active':\n inputConfig.isDropdown &&\n inputConfig.placeholder &&\n isDropdownToggler &&\n isFocusInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled &&\n !inputConfig.isInvalidSearchInDropdown,\n 'multiSelect-dropdown-active':\n inputConfig.multiSelectDropdownActive &&\n isFocusInput &&\n !inputConfig.isDisabled,\n 'dropdown-label-active':\n inputConfig.dropdownLabel &&\n isVisibleCommands &&\n isEditInput &&\n !inputConfig.isDisabled,\n 'input-commands': inputConfig.commands?.active && isVisibleCommands,\n 'blue-commands':\n inputConfig.commands?.blueCommands &&\n inputConfig.commands?.active &&\n isVisibleCommands,\n 'dropdown-input-image-truck':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'truck' &&\n !inputConfig?.dropdownImageInput?.remove &&\n !isFocusInput,\n 'dropdown-input-image-truck-focus':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'truck' &&\n !inputConfig?.dropdownImageInput?.remove &&\n isFocusInput,\n 'dropdown-input-image-trailer':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'trailer' &&\n !inputConfig?.dropdownImageInput?.remove &&\n !isFocusInput,\n 'dropdown-input-image-trailer-focus':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'trailer' &&\n !inputConfig?.dropdownImageInput?.remove &&\n isFocusInput,\n 'dropdown-input-image-color':\n inputConfig?.dropdownImageInput?.withText &&\n (inputConfig?.dropdownImageInput?.url ||\n inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl) &&\n inputConfig?.dropdownImageInput?.template === 'color',\n 'dropdown-input-image-user':\n inputConfig?.dropdownImageInput?.withText &&\n !inputConfig?.hideAllItemsInInputDropdown &&\n inputConfig?.dropdownImageInput?.template === 'user' &&\n (inputConfig.selectedDropdown ||\n (inputConfig.placeholder && isFocusInput) ||\n getSuperControl?.value),\n 'dropdown-input-image-pm':\n inputConfig?.dropdownImageInput?.withText &&\n !inputConfig?.hideAllItemsInInputDropdown &&\n inputConfig?.dropdownImageInput?.template === 'pm' &&\n (inputConfig.selectedDropdown ||\n (inputConfig.placeholder && isFocusInput) ||\n getSuperControl?.value),\n 'dropdown-input-image-without-text-transparent':\n inputConfig?.dropdownImageInput &&\n !inputConfig?.dropdownImageInput?.withText &&\n !isFocusInput,\n 'multiple-input-values':\n inputConfig?.multipleInputValues?.options?.length && !isFocusInput,\n 'disable-select-on-focus-out': !isFocusInput,\n 'hide-placeholder-in-multiple-placeholder-input':\n inputConfig?.multipleInputValues?.options?.length && isFocusInput,\n 'cursor-on-right-side': inputConfig?.inputCursorOnRightSide,\n 'merge-dropdown-body-with-input': inputConfig.mergeDropdownBodyWithInput,\n 'dispatch-dropdown': template === 'svgtext-dispatch-template',\n 'ta-font-bold text-uppercase': inputConfig.statusStyle,\n };\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"inputContainerClass\",\n standalone: true,\n})\nexport class InputContainerClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n isTouchedInput: boolean,\n inputConfig: ICaInput,\n value: string\n ): { [key: string]: boolean | undefined | null | string } {\n return {\n \"custom-empty-hover\": !isFocusInput,\n \"custom-filled-hover\":\n value && !isFocusInput && !inputConfig.dropdownLabel,\n \"invalid-filled-focus-out\":\n value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"invalid-empty-focus-out\":\n !value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel,\n \"invalid-focus-in\":\n value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"valid-focus-in\":\n value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"valid-focus-out\":\n value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"inactive-empty\": inputConfig.isDisabled && !value,\n \"inactive-filled\": inputConfig.isDisabled && value,\n \"input-remove-trash-can\": inputConfig.removeInput,\n \"input-remove-background\": inputConfig.isInputBackgroundRemoved,\n \"input-blue-text\": inputConfig.isBlueText,\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inputError',\n standalone: true,\n})\nexport class InputErrorPipe implements PipeTransform {\n transform(value: any, inputName?: string): string {\n let errorMessageValue: string = '';\n\n if (value !== null) {\n if (value['required']) {\n errorMessageValue = 'Required';\n }\n\n if (value['invalid']) {\n errorMessageValue = 'Invalid';\n }\n\n if (value['minlength']) {\n errorMessageValue = `${value['minlength'].requiredLength} Characters Min`;\n }\n\n if (value['maxlength']) {\n errorMessageValue = `${value['maxlength'].requiredLength} Characters Max`;\n }\n\n if (value['min']) {\n errorMessageValue = `${value['min']} Is Minimum Value`;\n }\n\n if (value['max']) {\n errorMessageValue = `${value['max']} Is Maximum Value`;\n }\n\n if (value['passwordDontMatch']) {\n errorMessageValue = \"Passwords don't match.\";\n }\n\n if (value['fuelStore']) {\n errorMessageValue = 'Store already added.';\n }\n\n if (value['fuelStoreCommonMessage']) {\n errorMessageValue = 'Already in use by other fuel stop.';\n }\n\n if (value['pattern']?.requiredPattern) {\n switch (inputName?.toLowerCase()) {\n case 'phone': {\n errorMessageValue = 'Invalid';\n break;\n }\n case 'ssn': {\n errorMessageValue = 'Invalid';\n break;\n }\n case 'ein': {\n errorMessageValue = 'Invalid';\n break;\n }\n default: {\n errorMessageValue = `Invalid`;\n break;\n }\n }\n }\n\n if (value['userDoesntExist']) {\n errorMessageValue = \"This user doesn't exist\";\n }\n\n if (value['userAlreadyRegistered']) {\n errorMessageValue = 'This user is already registered';\n }\n\n if (value['wrongPassword']) {\n errorMessageValue = 'Wrong password, try again';\n }\n\n if (\n value['einAlreadyExist'] ||\n value['phoneAlreadyExist'] ||\n value['emailAlreadyExist'] ||\n value['ssnAlreadyExist']\n ) {\n errorMessageValue = 'Already in use';\n }\n\n if (value['incorrectVinNumber']) {\n errorMessageValue = '13 or 17 characters';\n }\n }\n return errorMessageValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inputType',\n standalone: true\n})\nexport class InputTypePipe implements PipeTransform {\n transform(type: string, value: boolean): any {\n if (type === 'password') {\n if (value) {\n return 'text';\n } else {\n return 'password';\n }\n }\n return type;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'labelClass',\n standalone: true\n})\nexport class LabelClassPipe implements PipeTransform {\n transform(\n value: string,\n isFocusInput: boolean,\n inputConfig: ICaInput\n ): { [key: string]: boolean | null | undefined | string | number } {\n return {\n required: inputConfig.isRequired && !inputConfig.isDisabled,\n 'inactive-empty': !value && inputConfig.isDisabled,\n 'up-label':\n value ||\n isFocusInput ||\n inputConfig?.multipleInputValues?.options?.length ||\n (!inputConfig.dropdownImageInput?.withText &&\n inputConfig.dropdownImageInput?.url &&\n !inputConfig.labelInInput),\n 'input-placeholderIcon-on': inputConfig.placeholderIcon,\n hidden:\n inputConfig.placeholderInsteadOfLabel &&\n (isFocusInput || value),\n 'multiple-labels': inputConfig?.multipleInputValues?.options?.length,\n 'in-label-focus': isFocusInput && inputConfig.labelInInput,\n 'in-label': inputConfig.labelInInput\n };\n }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"showClear\",\n standalone: true\n})\nexport class ShowClearPipe implements PipeTransform {\n transform(inputConfig: ICaInput): boolean | undefined {\n return (\n (!inputConfig.hideClear &&\n (!inputConfig.isDisabled || inputConfig.removeInput) &&\n !inputConfig.customClass?.includes(\"details-pages\") &&\n !inputConfig.commands?.active &&\n !inputConfig?.loadingSpinner?.isLoading) ||\n inputConfig.incorrectInput\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"showInvalidDangerMark\",\n standalone: true,\n})\nexport class ShowInvalidDangerMarkPipe implements PipeTransform {\n transform(\n inputConfig: ICaInput,\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n isTouchedInput: boolean,\n value: string\n ): boolean | undefined {\n return (\n ((isTouchedInput || getSuperControl?.touched) &&\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.incorrectInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDropdown &&\n !inputConfig.dropdownLabel &&\n !inputConfig.hideDangerMark) ||\n inputConfig.dangerMark\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"showValidCheck\",\n standalone: true\n})\nexport class ShowValidCheckPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n value: string\n ): boolean {\n return (\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.placeholderIcon &&\n !inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.hideRequiredCheck &&\n !inputConfig.incorrectInput &&\n !inputConfig?.loadingSpinner?.isLoading &&\n !inputConfig.dropdownLabel\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'inputDropdownArrowClass',\n standalone: true,\n})\nexport class InputDropdownArrowClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n isTouchedInput: boolean,\n value: string\n ): { [key: string]: boolean | undefined } {\n return {\n focus: isFocusInput,\n 'valid-focus-in':\n (!inputConfig.dropdownLabel &&\n (getSuperControl?.value || inputConfig.placeholder) &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.isInvalidSearchInDropdown) ||\n ((inputConfig.dropdownImageInput?.url ||\n inputConfig.dropdownImageInput?.nameInitialsInsteadUrl ||\n inputConfig.placeholder) &&\n isFocusInput &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.isDisabled),\n 'valid-focus-out':\n (getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled) ||\n (!inputConfig.dropdownImageInput?.withText &&\n inputConfig.dropdownImageInput?.url &&\n !isFocusInput &&\n !inputConfig.isDisabled),\n 'invalid-focus-in':\n (getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.isDisabled) ||\n (isFocusInput &&\n getSuperControl?.value &&\n inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled),\n 'invalid-focus-out':\n !getSuperControl?.value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput &&\n !inputConfig.isDisabled,\n 'invalid-search-in-dropdown-focus-in':\n inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n isFocusInput &&\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !inputConfig.isDisabled,\n };\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"inputClearClass\",\n standalone: true,\n})\nexport class InputClearClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n incorrectValue: boolean,\n selectedDropdownLabelColor: boolean,\n value: string\n ): { [key: string]: boolean | undefined } {\n return {\n focus:\n isFocusInput &&\n getSuperControl?.value &&\n !(inputConfig.blackInput && inputConfig.isDropdown),\n \"valid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.customClass?.includes(\"repair-shop-open-hour\") &&\n !inputConfig.blackInput &&\n !inputConfig.dropdownImageInput?.url &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled,\n \"valid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.customClass?.includes(\"repair-shop-open-hour\") &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"invalid-focus-in\":\n (getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled) ||\n (inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n isFocusInput &&\n getSuperControl?.value &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled),\n \"invalid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !isFocusInput &&\n !inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !(\n !inputConfig.dropdownImageInput?.withText &&\n inputConfig.dropdownImageInput?.url\n ) &&\n !inputConfig.isDisabled,\n \"incorrect-input\": inputConfig.incorrectInput && getSuperControl?.value,\n \"incorrect-input-on\":\n inputConfig.incorrectInput && getSuperControl?.value && incorrectValue,\n hidden: getSuperControl?.value && isFocusInput && inputConfig.dropdownLabel,\n \"dropdown-on\":\n (getSuperControl?.value &&\n inputConfig.isDropdown &&\n !inputConfig.isDisabled &&\n !inputConfig.blackInput &&\n !inputConfig.multiSelectDropdownActive &&\n !inputConfig.mergeDropdownBodyWithInput) ||\n (inputConfig.dropdownImageInput?.url &&\n !inputConfig.isDisabled &&\n !inputConfig.blackInput &&\n !inputConfig.multiSelectDropdownActive &&\n !inputConfig.mergeDropdownBodyWithInput) ||\n (!inputConfig.blackInput && selectedDropdownLabelColor) ||\n (inputConfig.dropdownImageInput?.url &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput),\n \"trash-can-svg\": inputConfig.removeInput,\n };\n }\n}\n","export class InputSvgRoutes {\n static removeInputSvg: string =\n 'assets/ca-components/svg/input/ic_remove_input.svg';\n static xClearSvg: string = 'assets/ca-components/svg/input/ic_x.svg';\n static confirmSvg: string = 'assets/ca-components/svg/input/ic_confirm.svg';\n static dangerSvg: string = 'assets/ca-components/svg/input/ic_danger.svg';\n static eyeVisibleSvg: string =\n 'assets/ca-components/svg/input/ic_eye-visible.svg';\n static eyeHiddenSvg: string =\n 'assets/ca-components/svg/input/ic_eye-hidden.svg';\n static decrementSvg: string =\n 'assets/ca-components/svg/input/ic_pm_decrement.svg';\n static incrementSvg: string =\n 'assets/ca-components/svg/input/ic_pm_increment.svg';\n static inputPenSvg: string =\n 'assets/ca-components/svg/input/ic_spec_input_pen.svg';\n static inputDropdownArrowSvg: string =\n 'assets/ca-components/svg/input/ic_arrow_input.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config/ca-input.config';\nimport { LabelColor } from '../../models/label-color.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// pipes\nimport { InputClearClassPipe } from '../../pipes/input-clear-class.pipe';\n\n// helpers\nimport { InputSvgRoutes } from '../../utils/input-svg-routes';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-ca-input-clear',\n templateUrl: './ca-input-clear.component.html',\n styleUrls: ['./ca-input-clear.component.scss'],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n AngularSvgIconModule,\n FormsModule,\n ReactiveFormsModule,\n AngularSvgIconModule,\n NgbModule,\n // Pipes\n InputClearClassPipe,\n\n // Components\n CaAppTooltipV2Component,\n ],\n})\nexport class CaInputClearComponent {\n @Input() inputConfig!: ICaInput;\n @Input() getSuperControl!: AbstractControl<any, any> | null;\n @Input() isFocusInput!: boolean;\n @Input() incorrectValue!: boolean;\n @Input() selectedDropdownLabelColor!: LabelColor;\n\n @Output() clearInputClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor() {}\n\n public clearInput(event: Event): void {\n this.clearInputClick.emit(event);\n }\n\n public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n return InputSvgRoutes[propertyName] as string;\n }\n}\n","<div\n class=\"input-clear {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputClearClass\n : isFocusInput\n : inputConfig\n : incorrectValue\n : !!selectedDropdownLabelColor\n : getSuperControl?.value\n \"\n ngbTooltip\n [mainTooltip]=\"\n inputConfig.incorrectInput\n ? 'Mark Incorrect'\n : inputConfig.removeInput\n ? 'Remove'\n : 'Clear'\n \"\n [tooltipBackground]=\"\n inputConfig.incorrectInput ? '#ef5350' : '#2F2F2F'\n \"\n position=\"top\"\n (click)=\"clearInput($event)\"\n>\n <svg-icon\n [src]=\"\n inputConfig.removeInput\n ? getSvgPath('removeInputSvg')\n : getSvgPath('xClearSvg')\n \"\n class=\"input-clear-x\"\n ></svg-icon>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n// modules\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\n\n// models\nimport { ICaInput } from \"../../config/ca-input.config\";\nimport { CommandClick } from \"../../models/command-click.model\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n@Component({\n selector: \"app-ca-input-commands\",\n templateUrl: \"./ca-input-commands.component.html\",\n styleUrls: [\"./ca-input-commands.component.scss\"],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // Components\n CaAppTooltipV2Component,\n ],\n})\nexport class CaInputCommandsComponent {\n @Input() inputConfig!: ICaInput;\n @Input() isFocusInput!: boolean;\n @Input() isVisibleCommands!: boolean;\n\n @Output() onCommandsClick: EventEmitter<CommandClick> = new EventEmitter();\n\n constructor() {}\n\n public onCommands(event: Event, type: string, action: string): void {\n this.onCommandsClick.emit({ event, type, action });\n }\n}\n","<div\n class=\"ta-input-commands\"\n [ngClass]=\"{\n 'blue-commands': inputConfig.commands?.blueCommands,\n 'blue-commands-focus':\n isFocusInput &&\n inputConfig.commands?.blueCommands &&\n inputConfig.commands?.active &&\n isVisibleCommands\n }\"\n>\n <div\n class=\"ta-input-command-first\"\n ngbTooltip\n [mainTooltip]=\"inputConfig.commands?.firstCommand?.popup?.name\"\n [tooltipBackground]=\"\n inputConfig.commands?.firstCommand?.popup?.backgroundColor\n \"\n [disableTooltip]=\"!inputConfig.commands?.firstCommand?.popup\"\n position=\"top\"\n >\n <svg-icon\n class=\"ta-input-command-svg-first\"\n [src]=\"inputConfig.commands?.firstCommand?.svg!\"\n (click)=\"\n onCommands(\n $event,\n inputConfig.commands?.type!,\n inputConfig.commands?.firstCommand?.name!\n )\n \"\n ></svg-icon>\n </div>\n <div\n class=\"ta-input-command-second\"\n ngbTooltip\n [mainTooltip]=\"inputConfig.commands?.secondCommand?.popup?.name\"\n [tooltipBackground]=\"\n inputConfig.commands?.secondCommand?.popup?.backgroundColor\n \"\n [disableTooltip]=\"!inputConfig.commands?.secondCommand?.popup\"\n position=\"top\"\n >\n <svg-icon\n class=\"ta-input-command-svg-second\"\n [src]=\"inputConfig.commands?.secondCommand?.svg!\"\n (click)=\"\n onCommands(\n $event,\n inputConfig.commands?.type!,\n inputConfig.commands?.secondCommand?.name!\n )\n \"\n ></svg-icon>\n </div>\n <ng-container *ngIf=\"inputConfig.commands?.thirdCommand\">\n <div\n class=\"ta-input-command-third\"\n ngbTooltip\n [mainTooltip]=\"inputConfig.commands?.thirdCommand?.popup?.name\"\n [tooltipBackground]=\"\n inputConfig.commands?.thirdCommand?.popup?.backgroundColor\n \"\n [disableTooltip]=\"!inputConfig.commands?.thirdCommand?.popup\"\n position=\"top\"\n >\n <svg-icon\n class=\"ta-input-command-svg-third\"\n [src]=\"inputConfig.commands?.thirdCommand?.svg!\"\n (click)=\"\n onCommands(\n $event,\n inputConfig.commands?.type!,\n inputConfig.commands?.thirdCommand?.name!\n )\n \"\n ></svg-icon>\n </div>\n </ng-container>\n</div>","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"inputPasswordEyeClass\",\n standalone: true,\n})\nexport class InputPasswordEyeClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n isTouchedInput: boolean,\n value: string\n ): { [key: string]: boolean } {\n return {\n visible: getSuperControl?.value,\n inactive: inputConfig.isDisabled,\n \"valid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled,\n \"valid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.isDisabled,\n \"invalid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !inputConfig.isDisabled &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput,\n \"invalid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.isDisabled,\n };\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AbstractControl } from \"@angular/forms\";\n\n// helpers\nimport { InputSvgRoutes } from \"../../utils/input-svg-routes\";\n\n// models\nimport { ICaInput } from \"../../config/ca-input.config\";\n\n// modules\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n// pipes\nimport { InputPasswordEyeClassPipe } from \"../../pipes/input-password-eye-class.pipe\";\n\n@Component({\n selector: \"app-ca-input-password\",\n templateUrl: \"./ca-input-password.component.html\",\n styleUrls: [\"./ca-input-password.component.scss\"],\n standalone: true,\n imports: [\n // modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // components\n CaAppTooltipV2Component,\n\n // pipes\n InputPasswordEyeClassPipe,\n ],\n})\nexport class CaInputPasswordComponent implements OnInit {\n @Input() inputConfig!: ICaInput;\n @Input() getSuperControl!: AbstractControl<any, any> | null;\n @Input() isFocusInput!: boolean;\n @Input() isTouchedInput!: boolean;\n @Input() isCapsLockOn!: boolean;\n @Input() isTogglePassword!: boolean;\n\n @Output() onTogglePasswordClick: EventEmitter<Event> =\n new EventEmitter<Event>();\n\n constructor() {}\n\n ngOnInit() {}\n\n public onTogglePassword(event: Event): void {\n this.onTogglePasswordClick.emit(event);\n }\n\n public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n return InputSvgRoutes[propertyName] as string;\n }\n}\n","<!-- Input Password Caps Lock -->\n<ng-container\n *ngIf=\"\n isCapsLockOn &&\n inputConfig.type === 'password' &&\n isFocusInput &&\n !inputConfig.isDisabled\n \"\n>\n <p class=\"password-capslock\">Caps Lock is ON</p>\n</ng-container>\n\n<!-- Input Password Eye -->\n<ng-container *ngIf=\"inputConfig.type === 'password' && getSuperControl?.value\">\n <div\n class=\"input-password-eye {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputPasswordEyeClass\n : isFocusInput\n : inputConfig\n : isTouchedInput\n : getSuperControl?.value\n \"\n ngbTooltip\n mainTooltip=\"{{ !isTogglePassword ? 'Show Password' : 'Hide Password' }}\"\n tooltipBackground=\"#2f2f2f\"\n position=\"top\"\n (click)=\"onTogglePassword($event)\"\n >\n <svg-icon\n src=\"{{\n !isTogglePassword\n ? getSvgPath('eyeVisibleSvg')\n : getSvgPath('eyeHiddenSvg')\n }}\"\n ></svg-icon>\n </div>\n</ng-container>\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\nimport { LabelColor } from \"../models/label-color.model\";\n\n@Pipe({\n name: \"inputPlaceholderIconClass\",\n standalone: true,\n})\nexport class InputPlaceholderIconClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n selectedDropdownLabelColor: LabelColor,\n isTouchedInput: boolean,\n value: string\n ): { [key: string]: boolean | undefined } {\n return {\n \"inactive-empty\": !getSuperControl?.value && inputConfig.isDisabled,\n \"inactive-filled\": getSuperControl?.value && inputConfig.isDisabled,\n \"default-svg-color\":\n !(inputConfig.dropdownLabel && isFocusInput) &&\n !(inputConfig.dropdownLabel && selectedDropdownLabelColor),\n focus: isFocusInput && !inputConfig.dropdownLabel,\n \"valid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n !inputConfig.blackInput &&\n !inputConfig.commands?.active &&\n !inputConfig.isDisabled,\n \"valid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n !inputConfig.isDisabled,\n \"valid-focus-out-dropdown-label\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n selectedDropdownLabelColor &&\n inputConfig.dropdownLabel &&\n !inputConfig.isDisabled,\n \"invalid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"invalid-focus-out\":\n getSuperControl?.invalid &&\n !isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n (isTouchedInput || getSuperControl?.touched) &&\n !inputConfig.isDisabled,\n hidden: inputConfig.type === \"password\" && getSuperControl?.value,\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config/ca-input.config';\nimport { LabelColor } from '../../models/label-color.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { InputPlaceholderIconClassPipe } from '../../pipes/input-placeholder-icon.class.pipe';\n\n@Component({\n selector: 'app-ca-input-placeholder-icon',\n templateUrl: './ca-input-placeholder-icon.component.html',\n styleUrls: ['./ca-input-placeholder-icon.component.scss'],\n standalone: true,\n imports: [\n // modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // components\n CaAppTooltipV2Component,\n\n // pipes\n InputPlaceholderIconClassPipe,\n CaSvgPipe,\n ],\n})\nexport class CaInputPlaceholderIconComponent implements OnInit {\n @Input() inputConfig!: ICaInput;\n @Input() getSuperControl!: AbstractControl<any, any> | null;\n @Input() isFocusInput!: boolean;\n @Input() isTouchedInput!: boolean;\n @Input() selectedDropdownLabelColor!: LabelColor;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<div\n [placement]=\"['left', 'left-top']\"\n autoClose=\"outside\"\n [container]=\"'body'\"\n class=\"input-icon {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputPlaceholderIconClass\n : isFocusInput\n : inputConfig\n : selectedDropdownLabelColor\n : isTouchedInput\n : getSuperControl?.value\n \"\n ngbTooltip\n [mainTooltip]=\"'Change Color'\"\n [tooltipBackground]=\"'#424242'\"\n position=\"bottom\"\n [ngStyle]=\"{ opacity: inputConfig.isIconHidden ? '0' : {} }\"\n>\n <svg-icon\n appHoverSvg\n [stretch]=\"true\"\n [src]=\"(inputConfig.placeholderIcon! | caSvg: 'input') ?? ''\"\n ></svg-icon>\n</div>\n","export enum InputCommandsAction {\n DECREMENT = 'decrement',\n INCREMENT = 'increment',\n RESET = 'reset',\n CONFIRM = 'confirm',\n CANCEL = 'cancel',\n MINUS = 'minus',\n PLUS = 'plus',\n}\n","export enum InputCommandsType {\n PM_INCREMENT_DECREMENT = 'pm-increment-decrement',\n CONFIRM_CANCEL = 'confirm-cancel',\n MONTHS = 'months',\n}\n","import { ChangeDetectorRef, ElementRef, Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\nimport { NgControl } from '@angular/forms';\n\n// models\nimport { ICaInput } from '../config/ca-input.config';\nimport { CommandsEvent } from '../models/commands-event.model';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../../../utils/helpers/methods-calculations.helper';\n\n// enums\nimport { InputCommandsAction } from '../enums/input-commands-action.enum';\nimport { InputCommandsType } from '../enums/input-commands-type.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InputStateService {\n private isFocusInputSubject = new BehaviorSubject<boolean>(false);\n public isFocusInput$: Observable<boolean> =\n this.isFocusInputSubject.asObservable();\n\n private isTouchedInputSubject = new BehaviorSubject<boolean>(false);\n public isTouchedInput$: Observable<boolean> =\n this.isTouchedInputSubject.asObservable();\n\n private isVisibleCommandsSubject = new BehaviorSubject<boolean>(false);\n public isVisibleCommands$: Observable<boolean> =\n this.isVisibleCommandsSubject.asObservable();\n\n private isEditInputSubject = new BehaviorSubject<boolean>(false);\n public isEditInput$: Observable<boolean> =\n this.isEditInputSubject.asObservable();\n\n private isDropdownTogglerSubject = new BehaviorSubject<boolean>(false);\n public isDropdownToggler$: Observable<boolean> =\n this.isDropdownTogglerSubject.asObservable();\n\n // Outputs\n private commandEventSubject = new Subject<CommandsEvent>();\n public commandEvent$: Observable<CommandsEvent> =\n this.commandEventSubject.asObservable();\n\n private clearInputEventSubject = new Subject<boolean>();\n public clearInputEvent$: Observable<boolean> =\n this.clearInputEventSubject.asObservable();\n\n private incorrectInputSubject = new Subject<boolean>();\n public incorrectInput$: Observable<boolean> =\n this.incorrectInputSubject.asObservable();\n\n private showHideDropdownSubject = new Subject<boolean>();\n public showHideDropdown$: Observable<boolean> =\n this.showHideDropdownSubject.asObservable();\n\n private dropDownKeyNavigationSubject = new Subject<{\n keyCode: number;\n data: ICaInput | null;\n }>();\n public dropDownKeyNavigation$: Observable<{\n keyCode: number;\n data: ICaInput | null;\n }> = this.dropDownKeyNavigationSubject.asObservable();\n\n private blurInputSubject = new Subject<boolean>();\n public blurInput$: Observable<boolean> = this.blurInputSubject.asObservable();\n\n public combinedVariables$ = combineLatest([\n this.isFocusInput$,\n this.isTouchedInput$,\n this.isVisibleCommands$,\n this.isEditInput$,\n this.isDropdownToggler$,\n ]);\n\n private cdRef!: ChangeDetectorRef;\n\n private inputConfig!: ICaInput;\n private incorrectValue!: boolean;\n\n private input!: ElementRef;\n private superControl!: NgControl;\n\n private inputCommandsTimeout!: NodeJS.Timeout | number;\n private focusBlur!: NodeJS.Timeout | number;\n private timeoutCleaner!: NodeJS.Timeout | number;\n\n constructor() {}\n\n public setIsFocusInput(value: boolean): void {\n this.isFocusInputSubject.next(value);\n }\n\n public setIsTouchedInput(value: boolean): void {\n this.isTouchedInputSubject.next(value);\n }\n\n public setIsVisibleCommands(value: boolean): void {\n this.isVisibleCommandsSubject.next(value);\n }\n\n public setIsEditInput(value: boolean): void {\n this.isEditInputSubject.next(value);\n }\n\n public setIsDropdownToggler(value: boolean): void {\n this.isDropdownTogglerSubject.next(value);\n }\n\n public setInputElementRef(input: ElementRef, cdRef: ChangeDetectorRef): void {\n this.input = input;\n this.cdRef = cdRef;\n }\n\n public setSuperControl(superControl: NgControl): void {\n this.superControl = superControl;\n }\n\n public setInputConfig(config: ICaInput): void {\n this.inputConfig = config;\n }\n\n public setIncorrectValue(incorrectValue: boolean): void {\n this.incorrectValue = incorrectValue;\n }\n\n public setCommandEvent(value: CommandsEvent): void {\n this.commandEventSubject.next(value);\n }\n\n public setClearInputEvent(value: boolean): void {\n this.clearInputEventSubject.next(value);\n }\n\n public setIncorrectInput(value: boolean): void {\n this.incorrectInputSubject.next(value);\n }\n\n public setShowHideDropdown(value: boolean): void {\n this.showHideDropdownSubject.next(value);\n }\n\n public setDropDownKeyNavigation(value: {\n keyCode: number;\n data: ICaInput | null;\n }): void {\n this.dropDownKeyNavigationSubject.next(value);\n }\n\n public setBlurInput(value: boolean): void {\n this.blurInputSubject.next(value);\n }\n\n public clearInput(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n // Clear whole input\n if (this.inputConfig.removeInput) {\n this.setClearInputEvent(true);\n return;\n }\n // Incorrect Input\n if (this.inputConfig.incorrectInput) {\n this.incorrectValue = !this.incorrectValue;\n this.setIncorrectInput(this.incorrectValue);\n }\n // Native clear\n else {\n this.input.nativeElement.value = null;\n this.superControl.control?.setValue(null);\n // this.numberOfConsecutivelySpaces = 0;\n // this.numberOfConsecutivelyPoints = 0;\n // this.numberOfPoints = 0;\n // this.oneSpaceOnlyCounter = 0;\n this.inputConfig.dropdownImageInput = undefined;\n this.setIsTouchedInput(true);\n this.setIsFocusInput(false);\n if (\n ['datepicker', 'timepicker', 'datepickerBankCard'].includes(\n this.inputConfig.name\n )\n ) {\n // this.resetDateTimeInputs();\n }\n\n this.setClearInputEvent(true);\n }\n }\n\n public transformText(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n\n if (value) {\n this.input.nativeElement.value = value;\n }\n\n switch (this.inputConfig.textTransform) {\n case 'capitalize': {\n this.input.nativeElement.value =\n this.input.nativeElement.value.charAt(0)?.toUpperCase() +\n this.input.nativeElement.value.substring(1).toLowerCase();\n this.superControl.control?.patchValue(this.input.nativeElement.value);\n break;\n }\n case 'uppercase': {\n this.input.nativeElement.value =\n this.input.nativeElement.value.toLocaleUpperCase('en-US');\n this.superControl.control?.patchValue(this.input.nativeElement.value);\n break;\n }\n default: {\n this.superControl.control?.patchValue(this.input.nativeElement.value);\n break;\n }\n }\n }\n\n public onCommands(event: Event, type: string, action: string): void {\n event.stopPropagation();\n event.preventDefault();\n\n switch (type) {\n case InputCommandsType.PM_INCREMENT_DECREMENT:\n this.handlePmIncrementDecrement(action);\n break;\n case InputCommandsType.CONFIRM_CANCEL:\n this.handleConfirmCancel(action);\n break;\n case InputCommandsType.MONTHS:\n this.handleMonths(action);\n break;\n default:\n break;\n }\n }\n\n private handlePmIncrementDecrement(action: string): void {\n const value = MethodsCalculationsHelper.convertThousanSepInNumber(\n this.superControl.control?.value\n );\n\n switch (action) {\n case InputCommandsAction.DECREMENT:\n this.decrementPmValue(value);\n break;\n case InputCommandsAction.INCREMENT:\n this.incrementPmValue(value);\n break;\n case InputCommandsAction.RESET:\n this.resetPmValue();\n break;\n default:\n break;\n }\n\n this.setInputCursorAtTheEnd(this.input.nativeElement);\n }\n\n private decrementPmValue(value: number): void {\n if (value >= 10000 && value < 20000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 1000)\n );\n } else if (value >= 20001 && value < 50000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 3000)\n );\n } else if (value >= 50001 && value < 100000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 5000)\n );\n } else if (value >= 10000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 10000)\n );\n } else if (value >= 1000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 500)\n );\n }\n }\n\n private incrementPmValue(value: number): void {\n if (value > 10000 && value < 20000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 1000)\n );\n } else if (value >= 20001 && value < 50000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 3000)\n );\n } else if (value >= 50001 && value < 100000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 5000)\n );\n } else if (value >= 10000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 10000)\n );\n } else {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 500)\n );\n }\n }\n\n private resetPmValue(): void {\n if (this.inputConfig?.defaultValue) {\n this.superControl.control?.patchValue(this.inputConfig?.defaultValue);\n }\n }\n\n private handleConfirmCancel(action: string): void {\n switch (action) {\n case InputCommandsAction.CONFIRM:\n this.confirmCommand();\n break;\n case InputCommandsAction.CANCEL:\n this.cancelCommand();\n break;\n default:\n break;\n }\n\n this.superControl.control?.setErrors(null);\n this.inputConfig.dropdownLabelNew = false;\n this.inputConfig.commands!.active = false;\n this.inputConfig.blackInput = false;\n this.setIsEditInput(false);\n this.setIsVisibleCommands(false);\n this.setIsFocusInput(false);\n }\n\n private confirmCommand(): void {\n this.setCommandEvent({\n data: this.superControl.control?.value,\n action: InputCommandsAction.CONFIRM,\n mode:\n !this.inputConfig.dropdownLabelNew &&\n this.inputConfig.name !== 'Input Dropdown Bank Name'\n ? 'edit'\n : 'new',\n });\n }\n\n private cancelCommand(): void {\n this.setCommandEvent({ action: InputCommandsAction.CANCEL });\n }\n\n private handleMonths(action: string): void {\n clearTimeout(this.inputCommandsTimeout);\n\n switch (action) {\n case InputCommandsAction.MINUS:\n this.decrementMonth();\n break;\n case InputCommandsAction.PLUS:\n this.incrementMonth();\n break;\n default:\n break;\n }\n\n if (\n parseInt(this.superControl.control?.value) < 1 ||\n parseInt(this.superControl.control?.value) > 12\n ) {\n this.superControl.control?.setErrors({ invalid: true });\n } else {\n this.superControl.control?.setErrors(null);\n }\n\n this.setInputCursorAtTheEnd(this.input.nativeElement);\n }\n\n private decrementMonth(): void {\n if (\n parseInt(this.superControl.control?.value) === 1 ||\n !this.superControl.control?.value\n ) {\n this.blurOnCommands();\n return;\n }\n\n this.superControl.control?.patchValue(\n (this.superControl.control?.value\n ? parseInt(this.superControl.control?.value)\n : 0) - 1\n );\n }\n\n private incrementMonth(): void {\n if (parseInt(this.superControl.control?.value) === 12) {\n this.blurOnCommands();\n return;\n }\n\n this.superControl.control?.patchValue(\n (this.superControl.control?.value\n ? parseInt(this.superControl.control?.value)\n : 0) + 1\n );\n }\n\n public onFocus(event?: FocusEvent) {\n // Dropdown\n if (this.inputConfig.isDropdown) {\n this.setIsDropdownToggler(true);\n this.setShowHideDropdown(this.isDropdownTogglerSubject.value);\n }\n\n // Commands\n if (this.inputConfig.commands && !this.inputConfig.isDisabled) {\n if (this.inputConfig.commands.type === InputCommandsType.MONTHS) {\n if (!this.inputConfig.blueInput) this.inputConfig.blackInput = true;\n this.inputConfig.commands.active = true;\n this.setIsVisibleCommands(true);\n }\n\n if (\n this.inputConfig.commands.type ===\n InputCommandsType.PM_INCREMENT_DECREMENT\n ) {\n this.inputConfig.blackInput = false;\n this.inputConfig.commands.active = true;\n this.setIsVisibleCommands(true);\n }\n }\n\n this.setIsFocusInput(true);\n }\n\n public onBlur(event?: FocusEvent): void {\n let selection = window.getSelection();\n selection?.removeAllRanges();\n\n // Input Commands\n if (this.inputConfig.commands) {\n this.blurOnCommands();\n }\n\n // Dropdown\n if (this.inputConfig.isDropdown || this.inputConfig.dropdownLabel) {\n if (\n (this.inputConfig.name === 'datepicker' ||\n this.inputConfig.name === 'timepicker' ||\n this.inputConfig.name === 'datepickerBankCard') &&\n !this.inputConfig.isDisabled\n ) {\n // if (event?.target?.nodeName === 'INPUT') {\n // return;\n // }\n // Datepicker\n // if (\n // this.inputConfig.name === 'datepicker' ||\n // this.inputConfig.name === 'timepicker' ||\n // this.inputConfig.name === 'datepickerBankCard'\n // ) {\n // this.focusBlur = setTimeout(() => {\n // this.blurOnDateTime();\n // }, 100);\n // } else {\n // this.focusInput = false;\n // }\n } else {\n this.blurOnDropDownArrow();\n }\n }\n\n // Password\n if (this.inputConfig.type === 'password') {\n // this.blurOnPassword();\n }\n // Normal focus out\n else {\n this.setIsFocusInput(false);\n }\n\n this.setBlurInput(true);\n this.setIsTouchedInput(true);\n }\n\n private blurOnCommands() {\n this.inputCommandsTimeout = setTimeout(() => {\n this.inputConfig.commands!.active = false;\n this.setIsVisibleCommands(false);\n this.inputConfig.blackInput = false;\n this.cdRef.detectChanges();\n }, 200);\n }\n\n private blurOnDropDownArrow() {\n this.timeoutCleaner = setTimeout(() => {\n this.setIsDropdownToggler(false);\n this.setIsFocusInput(false);\n\n this.setIsDropdownToggler(false);\n this.setIsFocusInput(false);\n this.setShowHideDropdown(this.isDropdownTogglerSubject.value);\n }, 150);\n }\n\n public setInputCursorAtTheEnd(input: any, time: number = 120): void {\n const selectionEnd = input.selectionEnd;\n if (input.setSelectionRange) {\n input.setSelectionRange(selectionEnd, selectionEnd);\n }\n setTimeout(() => {\n input.focus();\n }, time);\n }\n\n public onEditInput(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.setIsEditInput(true);\n this.inputConfig.dropdownLabelNew = false;\n if (!this.inputConfig.blueInput) this.inputConfig.blackInput = true;\n this.inputConfig.commands!.active = true;\n this.setIsVisibleCommands(true);\n this.setIsFocusInput(true);\n\n this.setInputCursorAtTheEnd(this.input.nativeElement);\n this.superControl.control?.setErrors({ required: true });\n\n this.setCommandEvent({\n data: this.superControl.control?.value,\n action: 'Edit Input',\n });\n }\n\n public toggleDropdownOptions() {\n if (this.inputConfig.isDisabled) {\n return;\n }\n\n // if (\n // this.inputConfig.name === 'datepicker' ||\n // this.inputConfig.name === 'timepicker' ||\n // this.inputConfig.name === 'datepickerBankCard'\n // ) {\n // if (this.t2) {\n // if (!this.t2.isOpen()) {\n // clearTimeout(this.dateTimeMainTimer);\n // clearTimeout(this.focusBlur);\n // this.holder1.nativeElement.focus();\n // this.selectionInput = -1;\n // this.setSpanSelection(this.holder1.nativeElement);\n // this.t2.open();\n // } else {\n // this.holder1.nativeElement.blur();\n // this.focusInput = false;\n // let selection = window.getSelection();\n // selection.removeAllRanges();\n // }\n // return;\n // }\n // }\n\n this.setIsDropdownToggler(!this.isDropdownTogglerSubject.value);\n\n this.setShowHideDropdown(this.isDropdownTogglerSubject.value);\n\n if (this.isDropdownTogglerSubject.value) {\n this.input.nativeElement.focus();\n this.setIsFocusInput(true);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'showDropdownArrow',\n standalone: true,\n})\nexport class ShowDropdownArrowPipe implements PipeTransform {\n transform(inputConfig: ICaInput): boolean {\n return (\n (!inputConfig.hideDropdownArrow &&\n (inputConfig.isDropdown || inputConfig.dropdownLabel) &&\n !inputConfig.multiSelectDropdownActive &&\n !inputConfig.isDisabled) ||\n ((inputConfig.name === 'datepicker' ||\n inputConfig.name === 'timepicker' ||\n inputConfig.name === 'datepickerBankCard') &&\n !inputConfig.incorrectInput &&\n !inputConfig.isDisabled)\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Self,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { combineLatest, Observable, Subject, takeUntil } from 'rxjs';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { ICaInput } from './config/ca-input.config';\nimport { CommandsEvent } from './models/commands-event.model';\nimport { LabelColor } from './models/label-color.model';\n\n// pipes\nimport { InputClassPipe } from './pipes/input-class.pipe';\nimport { InputContainerClassPipe } from './pipes/input-container-class.pipe';\nimport { InputErrorPipe } from './pipes/input-error.pipe';\nimport { InputTypePipe } from './pipes/input-type.pipe';\nimport { LabelClassPipe } from './pipes/label-class.pipe';\nimport { ShowClearPipe } from './pipes/show-clear.pipe';\nimport { ShowInvalidDangerMarkPipe } from './pipes/show-invalid-danger-mark.pipe';\nimport { ShowValidCheckPipe } from './pipes/show-valid-check.pipe';\nimport { InputDropdownArrowClassPipe } from './pipes/input-dropdown-arrow-class.pipe';\nimport { CaSvgPipe } from '../../pipes/ca-svg.pipe';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputClearComponent } from './components/ca-input-clear/ca-input-clear.component';\nimport { CaInputCommandsComponent } from './components/ca-input-commands/ca-input-commands.component';\nimport { CaInputPasswordComponent } from './components/ca-input-password/ca-input-password.component';\nimport { CaInputPlaceholderIconComponent } from './components/ca-input-placeholder-icon/ca-input-placeholder-icon.component';\n\n// services\nimport { InputStateService } from './services/ca-input-state.service';\n\n// helpers\nimport { InputSvgRoutes } from './utils/input-svg-routes';\n\n// modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ShowDropdownArrowPipe } from './pipes/show-dropdown-arrow.pipe';\n\n@Component({\n selector: 'app-ca-input',\n templateUrl: './ca-input.component.html',\n styleUrls: ['./ca-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n // Module\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AngularSvgIconModule,\n NgbModule,\n\n // Pipe\n InputErrorPipe,\n InputContainerClassPipe,\n InputClassPipe,\n LabelClassPipe,\n ShowClearPipe,\n ShowInvalidDangerMarkPipe,\n ShowValidCheckPipe,\n InputTypePipe,\n InputDropdownArrowClassPipe,\n ShowDropdownArrowPipe,\n CaSvgPipe,\n\n // Components\n CaInputClearComponent,\n CaAppTooltipV2Component,\n CaInputPasswordComponent,\n CaInputPlaceholderIconComponent,\n CaInputCommandsComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers: [InputStateService],\n})\nexport class CaInputComponent\n implements OnInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n @ViewChild('input', { static: true }) public input!: ElementRef;\n\n @Input() inputConfig!: ICaInput;\n\n @Input() incorrectValue!: boolean;\n @Input() selectedDropdownLabelColor!: LabelColor;\n @Input() template!: string;\n\n @Output('incorrectEvent') incorrectInput: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('blurInput') blurInput: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('focusInput') focusInputEvent: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('change') changeInput: EventEmitter<any> = new EventEmitter<any>();\n @Output('commandEvent') commandEvent: EventEmitter<CommandsEvent> =\n new EventEmitter<CommandsEvent>();\n @Output('clear') clearInputEvent: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n // Dropdown\n @Output('showHideDropdown') showHideDropdownEvent: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('dropDownKeyNavigation') dropDownKeyNavigationEvent: EventEmitter<{\n keyCode: number;\n data: ICaInput | null;\n }> = new EventEmitter<{\n keyCode: number;\n data: ICaInput | null;\n }>();\n\n public isTouchedInput: boolean = false;\n\n // Input Commands\n public isVisibleCommands: boolean = false;\n\n // Edit Input\n public isEditInput: boolean = false;\n\n // Password\n public isTogglePassword: boolean = false;\n public isCapsLockOn: boolean = false;\n\n // Dropdown\n public isDropdownToggler: boolean = false;\n\n // Destroy\n private destroy$: Subject<void> = new Subject<void>();\n public isFocusInput!: boolean;\n\n constructor(\n @Self() public superControl: NgControl,\n private cdRef: ChangeDetectorRef,\n private inputStateService: InputStateService\n ) {\n this.superControl.valueAccessor = this;\n }\n\n get getSuperControl() {\n return this.superControl.control;\n }\n\n ngOnInit(): void {\n this.initChangesListener();\n\n this.initStateService();\n\n this.outputListeners();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setStateInputs(changes);\n }\n\n public initStateService(): void {\n this.inputStateService.setSuperControl(this.superControl);\n this.inputStateService.setInputElementRef(this.input, this.cdRef);\n\n this.inputStateService.combinedVariables$\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n ([\n focus,\n touched,\n isVisibleCommands,\n isEditInput,\n isDropdownToggler,\n ]) => {\n this.isFocusInput = focus;\n this.isTouchedInput = touched;\n this.isVisibleCommands = isVisibleCommands;\n this.isEditInput = isEditInput;\n this.isDropdownToggler = isDropdownToggler;\n }\n );\n }\n\n public outputListeners(): void {\n const observables: {\n stream$: Observable<any>;\n emitter: EventEmitter<any>;\n }[] = [\n {\n stream$: this.inputStateService.commandEvent$,\n emitter: this.commandEvent,\n },\n {\n stream$: this.inputStateService.clearInputEvent$,\n emitter: this.clearInputEvent,\n },\n {\n stream$: this.inputStateService.incorrectInput$,\n emitter: this.incorrectInput,\n },\n {\n stream$: this.inputStateService.blurInput$,\n emitter: this.blurInput,\n },\n {\n stream$: this.inputStateService.showHideDropdown$,\n emitter: this.showHideDropdownEvent,\n },\n {\n stream$: this.inputStateService.dropDownKeyNavigation$,\n emitter: this.dropDownKeyNavigationEvent,\n },\n ];\n\n observables.forEach(({ stream$, emitter }) =>\n stream$\n .pipe(takeUntil(this.destroy$))\n .subscribe((value: any) => emitter.emit(value))\n );\n }\n\n public initChangesListener(): void {\n const combinedChanges = combineLatest([\n this.getSuperControl?.valueChanges,\n this.getSuperControl?.statusChanges,\n ]);\n\n combinedChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.cdRef.detectChanges();\n });\n }\n\n public setStateInputs(changes: SimpleChanges): void {\n this.inputStateService.setInputConfig(changes['inputConfig']?.currentValue);\n this.inputStateService.setIncorrectValue(\n changes['incorrectValue']?.currentValue\n );\n }\n\n public writeValue(obj: any): void {\n this.changeInput.emit(obj);\n this.input.nativeElement.value = obj;\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public onChange(_: any): void {}\n\n public registerOnTouched(): void {}\n\n public onBlur(event?: FocusEvent): void {\n this.inputStateService.onBlur(event);\n\n this.blurInput.emit(true);\n }\n\n public onFocus(event?: FocusEvent): void {\n this.focusInputEvent.emit(true);\n\n this.inputStateService.onFocus(event);\n }\n\n public onKeydown(event: KeyboardEvent): void {\n this.isCapsLockOn = event?.getModifierState?.('CapsLock');\n\n if (event.keyCode === 9) {\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n }\n\n public onKeyup(event: KeyboardEvent): void {\n if (event) {\n this.isCapsLockOn = event?.getModifierState?.('CapsLock');\n }\n\n if (\n this.inputConfig.isDropdown ||\n this.inputConfig.dropdownLabel ||\n this.inputConfig.name == 'Address'\n ) {\n if (event.keyCode === 40 || event.keyCode === 38) {\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n if (event.keyCode === 13) {\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: this.inputConfig,\n });\n\n if (this.inputConfig.name == 'Address') {\n this.input.nativeElement.blur();\n }\n }\n if (event.keyCode === 27) {\n this.isVisibleCommands = false;\n this.onBlur();\n this.input.nativeElement.blur();\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n if (event.keyCode === 9) {\n this.onFocus();\n this.input.nativeElement.focus();\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n }\n }\n\n public transformText(event: Event): void {\n this.inputStateService.transformText(event);\n }\n\n public clearInput(event: Event): void {\n this.inputStateService.clearInput(event);\n }\n\n public onTogglePassword(event: Event): void {\n event.preventDefault();\n this.isTogglePassword = !this.isTogglePassword;\n }\n\n public onCommands(event: {\n event: Event;\n type: string;\n action: string;\n }): void {\n this.inputStateService.onCommands(event.event, event.type, event.action);\n }\n\n public onEditInput(event: Event): void {\n this.inputStateService.onEditInput(event);\n }\n\n public toggleDropdownOptions(): void {\n this.inputStateService.toggleDropdownOptions();\n }\n\n public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n return InputSvgRoutes[propertyName] as string;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"input-custom-group {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputContainerClass\n : isFocusInput\n : isTouchedInput\n : inputConfig\n : getSuperControl?.value\n \"\n>\n <!-- Input Commands -->\n <ng-container *ngIf=\"inputConfig.commands?.active && isVisibleCommands\">\n <app-ca-input-commands\n [inputConfig]=\"inputConfig\"\n [isFocusInput]=\"isFocusInput\"\n [isVisibleCommands]=\"isVisibleCommands\"\n (onCommandsClick)=\"onCommands($event)\"\n >\n </app-ca-input-commands>\n </ng-container>\n\n <input\n #input\n [type]=\"inputConfig.type | inputType: isTogglePassword\"\n [id]=\"inputConfig.id ? inputConfig.id : inputConfig.name\"\n [name]=\"inputConfig.name\"\n [disabled]=\"inputConfig.isDisabled\"\n [autocomplete]=\"inputConfig.autocomplete ? inputConfig.autocomplete : 'off'\"\n [placeholder]=\"\n (inputConfig.placeholderInsteadOfLabel &&\n inputConfig.placeholder &&\n isFocusInput\n ? inputConfig.placeholder\n : '') ||\n (inputConfig.placeholder && isFocusInput ? inputConfig.placeholder : '')\n \"\n [minLength]=\"inputConfig.minLength ? inputConfig.minLength : 0\"\n [maxLength]=\"inputConfig.maxLength ? inputConfig.maxLength : 999\"\n [min]=\"inputConfig.min ? inputConfig.min : 0\"\n [max]=\"inputConfig.max\"\n [step]=\"inputConfig.step ? inputConfig.step : null\"\n [readOnly]=\"inputConfig.readOnly\"\n inputformat=\"dd-mm-yy\"\n class=\"input-control\n {{ inputConfig.textTransform }}\n {{ inputConfig.textAlign }}\n {{ inputConfig.customClass }}\n \"\n [ngClass]=\"\n getSuperControl\n | inputClass\n : isFocusInput\n : isTouchedInput\n : inputConfig\n : input\n : isVisibleCommands\n : getSuperControl?.value\n : isDropdownToggler\n : isEditInput\n : template\n \"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\"\n (input)=\"onChange($event.target); transformText($event)\"\n [(ngModel)]=\"input.value\"\n />\n\n <!-- Input Label -->\n <ng-container *ngIf=\"!inputConfig.multiSelectDropdownActive\">\n <label\n [for]=\"inputConfig.name\"\n class=\"input-label {{ inputConfig.customClass }} {{\n inputConfig.multipleLabel?.customClass\n }}\"\n [ngClass]=\"\n getSuperControl?.value | labelClass: isFocusInput : inputConfig\n \"\n >\n <ng-container *ngIf=\"inputConfig.label\">\n <span>{{ inputConfig.label }} </span>\n </ng-container>\n </label>\n </ng-container>\n\n <!-- Input Clear -->\n <ng-container *ngIf=\"inputConfig | showClear\">\n <app-ca-input-clear\n [inputConfig]=\"inputConfig\"\n [getSuperControl]=\"getSuperControl\"\n [isFocusInput]=\"isFocusInput\"\n [incorrectValue]=\"incorrectValue\"\n [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n (clearInputClick)=\"clearInput($event)\"\n >\n </app-ca-input-clear>\n </ng-container>\n\n <!-- Input Clear for dispatch dropdown -->\n <ng-container *ngIf=\"template === 'svgtext-dispatch-template'\">\n <div\n class=\"input-clear-dispatch\"\n position=\"top\"\n (click)=\"clearInput($event)\"\n >\n <svg-icon\n [src]=\"getSvgPath('xClearSvg')\"\n class=\"input-clear-dispatch-icon\"\n ></svg-icon>\n </div>\n </ng-container>\n\n <!-- Input Pen -->\n <ng-container\n *ngIf=\"\n selectedDropdownLabelColor &&\n !isEditInput &&\n !isFocusInput &&\n getSuperControl?.value\n \"\n >\n <div\n class=\"input-pen-container\"\n ngbTooltip\n [mainTooltip]=\"'Edit'\"\n [tooltipBackground]=\"'#2F2F2F'\"\n position=\"top\"\n (click)=\"onEditInput($event)\"\n >\n <svg-icon [src]=\"getSvgPath('inputPenSvg')\" class=\"input-pen\"></svg-icon>\n </div>\n </ng-container>\n\n <!-- Input Invalid Danger Mark -->\n <ng-container\n *ngIf=\"\n inputConfig\n | showInvalidDangerMark\n : getSuperControl\n : isFocusInput\n : isTouchedInput\n : getSuperControl?.value\n \"\n >\n <svg-icon\n class=\"input-invalid-danger-mark {{ inputConfig.customClass }}\"\n [src]=\"getSvgPath('dangerSvg')\"\n >\n </svg-icon>\n </ng-container>\n\n <!-- Input Valid Check -->\n <ng-container\n *ngIf=\"\n getSuperControl\n | showValidCheck: isFocusInput : inputConfig : getSuperControl?.value\n \"\n >\n <svg-icon\n class=\"input-required-check {{ inputConfig.customClass }}\"\n [src]=\"getSvgPath('confirmSvg')\"\n ></svg-icon>\n </ng-container>\n\n <!-- Input Password Caps Lock And Eye -->\n <ng-container *ngIf=\"inputConfig.type === 'password'\">\n <app-ca-input-password\n [inputConfig]=\"inputConfig\"\n [getSuperControl]=\"getSuperControl\"\n [isFocusInput]=\"isFocusInput\"\n [isTouchedInput]=\"isTouchedInput\"\n [isCapsLockOn]=\"isCapsLockOn\"\n [isTogglePassword]=\"isTogglePassword\"\n (onTogglePasswordClick)=\"onTogglePassword($event)\"\n >\n </app-ca-input-password>\n </ng-container>\n\n <!-- Input Dropdown Arrow -->\n <ng-container *ngIf=\"inputConfig | showDropdownArrow\">\n <svg-icon\n class=\"input-dropdown-arrow {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputDropdownArrowClass\n : isFocusInput\n : inputConfig\n : isTouchedInput\n : getSuperControl?.value\n \"\n [src]=\"getSvgPath('inputDropdownArrowSvg')\"\n (click)=\"toggleDropdownOptions()\"\n ></svg-icon>\n </ng-container>\n\n <!-- Input Placeholder Icon -->\n <ng-container *ngIf=\"inputConfig.placeholderIcon\">\n <app-ca-input-placeholder-icon\n [inputConfig]=\"inputConfig\"\n [getSuperControl]=\"getSuperControl\"\n [isFocusInput]=\"isFocusInput\"\n [isTouchedInput]=\"isTouchedInput\"\n [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n >\n </app-ca-input-placeholder-icon>\n </ng-container>\n\n <!-- Input Error Message -->\n <ng-container\n *ngIf=\"\n !inputConfig.hideErrorMessage &&\n !(!getSuperControl?.value && isFocusInput) &&\n (isTouchedInput || getSuperControl?.touched || getSuperControl?.value) &&\n getSuperControl?.invalid &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.isDisabled\n \"\n >\n <span class=\"input-error {{ inputConfig.customClass }}\">\n {{ getSuperControl?.errors | inputError: inputConfig.name }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"inputConfig.fixedPlacholder && input.value\">\n <span class=\"input-fixed-placehoder-label\">\n {{ inputConfig.fixedPlacholder }}\n </span>\n </ng-container>\n</div>\n","import { Subject, takeUntil } from 'rxjs';\nimport {\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n OnDestroy,\n} from '@angular/core';\nimport {\n FormsModule,\n UntypedFormBuilder,\n UntypedFormGroup,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// modules\nimport { AngularSvgIconModule as SvgIconModule } from 'angular-svg-icon';\nimport { NgbDropdownConfig, NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { ThousandSeparatorPipe as ThousandSeparator } from '../../../../pipes/thousand-separator.pipe';\nimport { CaSvgPipe as CaSvg } from '../../../../pipes/ca-svg.pipe';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { closeForm } from '../../../../animations/close-form.animation';\nimport { CaMoneyFilterSvgRoutes } from '../../utils/svg-routes/ca-money-filter-svg-routes';\n\n// enums\nimport { ToolbarFilterStringEnum as ToolbarFilterString } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { MoneyFilterStringEnum } from './enums/money-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// configs\nimport { CaMoneyFilterConfig } from './config/ca-money-filter.config';\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\n\n@Component({\n selector: 'app-ca-money-filter',\n standalone: true,\n imports: [\n // modules\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgbModule,\n HttpClientModule,\n SvgIconModule,\n CaInputComponent,\n ],\n templateUrl: './ca-money-filter.component.html',\n styleUrls: ['./ca-money-filter.component.scss'],\n providers: [NgbDropdownConfig, ThousandSeparator, CaSvg],\n encapsulation: ViewEncapsulation.None,\n animations: [showAnimation('showAnimation'), closeForm('closeForm')],\n})\nexport class CaMoneyFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() subType: string = ToolbarFilterString.PENDING_STATUS;\n @Input() moneyFilter: boolean = true;\n @Input() fuelType: boolean = false;\n @Input() loadType: boolean = true;\n @Input() isRepairFilter: boolean = false;\n @Input() isFilterActive: boolean = false;\n\n private destroy$ = new Subject<void>();\n\n public showPart1: boolean = true;\n public showPart2: boolean = true;\n public showPart3: boolean = true;\n public moneyForm!: UntypedFormGroup;\n\n public singleFormError!: string | boolean;\n public multiFormFirstError!: string | boolean;\n public multiFormSecondError!: string | boolean;\n public multiFormThirdError!: string | boolean;\n public moneyFilterStatus: boolean = false;\n public isButtonAvailable: boolean = false;\n\n public singleFromActive: number | string = 0;\n public singleToActive: number | string = 0;\n public multiFromFirstFromActive: number | string = 0;\n public multiFromFirstToActive: number | string = 0;\n public multiFormSecondFromActive: number | string = 0;\n public multiFormSecondToActive: number | string = 0;\n public multiFormThirdFromActive: number | string = 0;\n public multiFormThirdToActive: number | string = 0;\n\n public minValueRange: string = ToolbarFilterString.MIN_VALUE;\n public maxValueRange: string = ToolbarFilterString.MAX_VALUE;\n\n public activeFormNum: number = 0;\n public minValueSet: string = ToolbarFilterString.MIN_VALUE;\n public maxValueSet: string = ToolbarFilterString.MAX_VALUE;\n\n public filterActiveArray: ArrayStatus[] = [];\n public swipeActiveRange: number = 0;\n public totalFiltersNum: number = 0;\n public isSingleFormActive: boolean = false;\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n\n // pipes\n private thousandSeparator: ThousandSeparator\n ) {}\n\n ngOnInit(): void {\n this.createForm();\n this.watchMoneyFormValueChanges();\n }\n\n get singleFormFrom(): ICaInput {\n return CaMoneyFilterConfig.getSingleFormFrom();\n }\n\n get singleFormTo(): ICaInput {\n return CaMoneyFilterConfig.getSingleFormTo();\n }\n\n get multiFormFirstFrom(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormFirstFrom();\n }\n\n get multiFormFirstTo(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormFirstTo();\n }\n\n get multiFormSecondFrom(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormSecondFrom();\n }\n\n get multiFormSecondTo(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormSecondTo();\n }\n\n get multiFormThirdFrom(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormThirdFrom();\n }\n\n get multiFormThirdTo(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormThirdTo();\n }\n\n private createForm(): void {\n this.moneyForm = this.formBuilder.group({\n singleFrom: null,\n singleTo: null,\n multiFromFirstFrom: null,\n multiFromFirstTo: null,\n multiFormSecondFrom: null,\n multiFormSecondTo: null,\n multiFormThirdFrom: null,\n multiFormThirdTo: null,\n });\n }\n\n private watchMoneyFormValueChanges(): void {\n this.type = ToolbarFilterString.MONEY_FILTER;\n this.moneyForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((changes) => {\n if (changes.singleFrom || changes.singleTo) {\n if (changes.singleTo) {\n const to = parseInt(changes.singleTo);\n const from = parseInt(changes.singleFrom);\n if (from > to || from === to) {\n this.singleFormError = true;\n } else {\n this.singleFormError = false;\n }\n } else {\n this.singleFormError = false;\n }\n } else {\n this.singleFormError = false;\n }\n\n if (changes.multiFromFirstFrom || changes.multiFromFirstTo) {\n if (changes.multiFromFirstTo) {\n const to = parseInt(changes.multiFromFirstTo);\n const from = parseInt(changes.multiFromFirstFrom);\n\n if (from > to || from === to) {\n this.multiFormFirstError = true;\n } else {\n this.multiFormFirstError = false;\n }\n } else {\n this.multiFormFirstError = false;\n }\n } else {\n this.multiFormFirstError = false;\n }\n\n if (changes.multiFormSecondFrom || changes.multiFormSecondTo) {\n if (changes.multiFormSecondTo) {\n const to = parseInt(changes.multiFormSecondTo);\n const from = parseInt(changes.multiFormSecondFrom);\n\n if (from > to || from === to) {\n this.multiFormSecondError = true;\n } else {\n this.multiFormSecondError = false;\n }\n } else {\n this.multiFormSecondError = false;\n }\n }\n\n if (changes.multiFormThirdFrom || changes.multiFormThirdTo) {\n if (changes.multiFormThirdTo) {\n const to = parseInt(changes.multiFormThirdTo);\n const from = parseInt(changes.multiFormThirdFrom);\n if (from > to || from === to) {\n this.multiFormThirdError = true;\n } else {\n this.multiFormThirdError = false;\n }\n } else {\n this.multiFormThirdError = false;\n }\n }\n\n if (this.subType !== ToolbarFilterString.ALL) {\n let toValueChanged = true;\n let fromValueChanged = true;\n\n const fromActive =\n this.singleFromActive && this.singleFromActive != 'null'\n ? this.singleFromActive\n : 0;\n const toActive =\n this.singleToActive && this.singleToActive != 'null'\n ? this.singleToActive\n : 0;\n\n let to = 0;\n if (changes.singleTo) {\n to = parseInt(changes.singleTo);\n }\n\n let from = 0;\n if (changes.singleFrom) {\n from = parseInt(changes.singleFrom);\n }\n\n if (toActive === to) {\n toValueChanged = false;\n }\n\n if (fromActive === from) {\n fromValueChanged = false;\n }\n\n if (toValueChanged || fromValueChanged) {\n this.isButtonAvailable = true;\n this.moneyFilterStatus = true;\n } else {\n this.isButtonAvailable = false;\n if (!to && !from) {\n this.moneyFilterStatus = false;\n }\n }\n } else {\n if (\n !this.multiFormFirstError &&\n !this.multiFormSecondError &&\n !this.multiFormThirdError\n ) {\n this.moneyFilterStatus = true;\n this.checkMoneyMultiForm(changes);\n } else {\n this.isButtonAvailable = false;\n }\n\n if (\n this.multiFormFirstError ||\n this.multiFormSecondError ||\n this.multiFormThirdError\n ) {\n this.isButtonAvailable = false;\n }\n }\n\n if (this.singleFormError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.SINGLE_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.setErrors(null);\n }\n\n if (this.multiFormFirstError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)\n ?.setErrors(null);\n }\n\n if (this.multiFormSecondError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)\n ?.setErrors(null);\n }\n\n if (this.multiFormThirdError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)\n ?.setErrors(null);\n }\n });\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n switch (this.type) {\n case ToolbarFilterString.MONEY_FILTER:\n if (!this.isRepairFilter) {\n if (this.subType !== ToolbarFilterString.ALL) {\n this.clearForm(MoneyFilterStringEnum.SINGLE_FORM);\n } else {\n this.clearForm(MoneyFilterStringEnum.CLEAR_ALL);\n }\n } else {\n const maxNum = this.thousandSeparator.transform(this.maxValueRange);\n\n this.maxValueSet = maxNum;\n this.minValueSet = this.minValueRange;\n }\n this.activeFormNum = 0;\n break;\n case ToolbarFilterString.MILES_FILTER:\n case ToolbarFilterString.PAY_FILTER:\n case ToolbarFilterString.MONEY_FILTER:\n if (\n this.type === ToolbarFilterString.MONEY_FILTER &&\n !this.isRepairFilter\n ) {\n break;\n }\n const maxNum = this.thousandSeparator.transform(this.maxValueRange);\n\n this.maxValueSet = maxNum;\n this.minValueSet = this.minValueRange;\n break;\n default:\n break;\n }\n\n this.isButtonAvailable = true;\n this.moneyFilterStatus = false;\n this.filterActiveArray = [];\n this.swipeActiveRange = 0;\n this.totalFiltersNum = 0;\n this.isSingleFormActive = false;\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public hideFormPart(mod: string): void {\n if (mod === 'part1') {\n this.showPart1 = !this.showPart1;\n } else if (mod === 'part2') {\n this.showPart2 = !this.showPart2;\n } else {\n this.showPart3 = !this.showPart3;\n }\n }\n\n public clearForm(mod: string, event?: MouseEvent): void {\n event?.stopPropagation();\n switch (mod) {\n case MoneyFilterStringEnum.SINGLE_FORM:\n this.moneyForm\n .get(MoneyFilterStringEnum.SINGLE_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.SINGLE_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.singleFormError = false;\n this.moneyFilterStatus = false;\n this.singleToActive = 0;\n this.singleFromActive = 0;\n this.isButtonAvailable = false;\n break;\n case MoneyFilterStringEnum.MULTI_FROM_FIRST:\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.multiFormFirstError = false;\n break;\n case MoneyFilterStringEnum.MULTI_FORM_SECOND:\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.multiFormSecondError = false;\n break;\n case MoneyFilterStringEnum.MULTI_FORM_THIRD:\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.multiFormThirdError = false;\n break;\n case MoneyFilterStringEnum.CLEAR_ALL:\n this.multiFromFirstFromActive = 0;\n this.multiFromFirstToActive = 0;\n this.multiFormSecondFromActive = 0;\n this.multiFormSecondToActive = 0;\n this.multiFormThirdFromActive = 0;\n this.multiFormThirdToActive = 0;\n this.moneyForm.reset();\n this.multiFormFirstError = false;\n this.multiFormSecondError = false;\n this.multiFormThirdError = false;\n break;\n default:\n break;\n }\n }\n\n public setFilterValue(\n event: Event | undefined\n ): filterOutput | filterOutputWithParams | undefined {\n let queryParams = {};\n let subType = ToolbarFilterString.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n if (this.type === ToolbarFilterString.TIME_FILTER) {\n } else if (\n this.type === ToolbarFilterString.MONEY_FILTER &&\n !this.isRepairFilter\n ) {\n if (this.subType === ToolbarFilterString.ALL) {\n this.multiFromFirstFromActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM)?.value\n ).slice(1);\n this.multiFromFirstToActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)?.value\n ).slice(1);\n this.multiFormSecondFromActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM)\n ?.value\n ).slice(1);\n this.multiFormSecondToActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)?.value\n ).slice(1);\n this.multiFormThirdFromActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM)?.value\n ).slice(1);\n this.multiFormThirdToActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)?.value\n ).slice(1);\n\n queryParams = {\n firstFormFrom: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM\n )?.value,\n firstFormTo: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FROM_FIRST_TO\n )?.value,\n secondFormFrom: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM\n )?.value,\n secondFormTo: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_SECOND_TO\n )?.value,\n thirdFormFrom: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM\n )?.value,\n thirdFormTo: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_THIRD_TO\n )?.value,\n };\n\n let formsActive = 0;\n\n if (\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM)\n ?.value ||\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)?.value\n ) {\n formsActive = formsActive + 1;\n }\n\n if (\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM)\n ?.value ||\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)?.value\n ) {\n formsActive = formsActive + 1;\n }\n\n if (\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM)\n ?.value ||\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)?.value\n ) {\n formsActive = formsActive + 1;\n }\n\n this.activeFormNum = formsActive;\n this.totalFiltersNum = formsActive;\n } else {\n this.singleFromActive = (\n ' ' + this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)?.value\n ).slice(1);\n this.singleToActive = (\n ' ' + this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n ).slice(1);\n\n if (\n !this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)?.value &&\n !this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n ) {\n this.clearAll(event);\n return;\n }\n\n this.isSingleFormActive = true;\n queryParams = {\n singleFrom: this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)\n ?.value\n ? parseInt(\n this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)?.value\n )\n : ToolbarFilterString.EMPTY_STRING_PLACEHOLDER,\n singleTo: this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n ? parseInt(\n this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n )\n : ToolbarFilterString.EMPTY_STRING_PLACEHOLDER,\n };\n }\n }\n\n const action = 'Set';\n const data: filterOutput | filterOutputWithParams = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n return data;\n }\n\n public checkMoneyMultiForm(data: {\n singleForm: string;\n singleTo: string;\n multiFromFirstFrom: string;\n multiFromFirstTo: string;\n multiFormSecondFrom: string;\n multiFormSecondTo: string;\n multiFormThirdFrom: string;\n multiFormThirdTo: string;\n }): void {\n let firstFormChanged = 'none';\n let secondFormChanged = 'none';\n let thirdFormChanged = 'none';\n\n const firstFromActive =\n this.multiFromFirstFromActive && this.multiFromFirstFromActive !== 'null'\n ? this.multiFromFirstFromActive\n : 0;\n const firstToActive =\n this.multiFromFirstToActive && this.multiFromFirstToActive != 'null'\n ? this.multiFromFirstToActive\n : 0;\n\n const secFromActive =\n this.multiFormSecondFromActive &&\n this.multiFormSecondFromActive !== 'null'\n ? this.multiFormSecondFromActive\n : 0;\n const secToActive =\n this.multiFormSecondToActive && this.multiFormSecondToActive !== 'null'\n ? this.multiFormSecondToActive\n : 0;\n\n const thirdFromActive =\n this.multiFormThirdFromActive && this.multiFormThirdFromActive !== 'null'\n ? this.multiFormThirdFromActive\n : 0;\n const thirdToActive =\n this.multiFormThirdToActive && this.multiFormThirdToActive !== 'null'\n ? this.multiFormThirdToActive\n : 0;\n\n const firstFrom =\n data.multiFromFirstFrom && data.multiFromFirstFrom !== 'null'\n ? parseInt(data.multiFromFirstFrom)\n : 0;\n const firstTo =\n data.multiFromFirstTo && data.multiFromFirstTo !== 'null'\n ? parseInt(data.multiFromFirstTo)\n : 0;\n\n const secFrom =\n data.multiFormSecondFrom && data.multiFormSecondFrom !== 'null'\n ? parseInt(data.multiFormSecondFrom)\n : 0;\n const secTo =\n data.multiFormSecondTo && data.multiFormSecondTo !== 'null'\n ? parseInt(data.multiFormSecondTo)\n : 0;\n\n const thirdFrom =\n data.multiFormThirdFrom && data.multiFormThirdFrom !== 'null'\n ? parseInt(data.multiFormThirdFrom)\n : 0;\n const thirdTo =\n data.multiFormThirdTo && data.multiFormThirdTo !== 'null'\n ? parseInt(data.multiFormThirdTo)\n : 0;\n\n if (firstFrom !== firstFromActive || firstTo !== firstToActive) {\n firstFormChanged = 'changed';\n }\n\n if (secFrom !== secFromActive || secTo !== secToActive) {\n secondFormChanged = 'changed';\n }\n\n if (thirdFrom !== thirdFromActive || thirdTo !== thirdToActive) {\n thirdFormChanged = 'changed';\n }\n\n if (\n firstFormChanged === 'changed' ||\n secondFormChanged === 'changed' ||\n thirdFormChanged === 'changed'\n ) {\n this.isButtonAvailable = true;\n } else {\n this.isButtonAvailable = false;\n if (firstFrom || firstTo || secFrom || secTo || thirdFrom || thirdTo) {\n this.moneyFilterStatus = true;\n } else {\n this.moneyFilterStatus = false;\n }\n }\n }\n\n public getSvgPath(propertyName: keyof typeof CaMoneyFilterSvgRoutes): string {\n return CaMoneyFilterSvgRoutes[propertyName] as string;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"moneyFilter && !isRepairFilter\">\n <div [class.multiMoneyForm]=\"subType === 'all'\" [formGroup]=\"moneyForm\">\n <div class=\"border-filter money-top-border-magin\"></div>\n <ng-container *ngIf=\"subType !== 'all'; else showAll\">\n <div class=\"single-form-holder\">\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"singleFormError\"\n >\n <app-ca-input\n formControlName=\"singleFrom\"\n [inputConfig]=\"singleFormFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"singleFormError\"\n >\n <app-ca-input\n formControlName=\"singleTo\"\n [inputConfig]=\"singleFormTo\"\n ></app-ca-input>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #showAll>\n <div class=\"multi-form-holder\">\n <div\n class=\"form-header\"\n [class.hiddenFormTitle]=\"!showPart1\"\n (click)=\"hideFormPart('part1')\"\n >\n <ng-container *ngIf=\"!fuelType && !loadType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Invoice Ageing\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"fuelType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Last Price\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"loadType\">\n <div\n class=\"form-name-gray text-uppercase fw-bold\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n Rate\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n moneyForm.value.multiFromFirstFrom &&\n moneyForm.value.multiFromFirstTo\n \"\n >\n <div\n class=\"clear-money-form d-flex justify-content-center align-items-center fw-bold\"\n (click)=\"clearForm('multiFromFirst', $event)\"\n >\n CLEAR\n </div>\n </ng-container>\n\n <div\n class=\"hide-money-form\"\n [ngClass]=\"{\n svg_rotate: !showPart1,\n rotate_back: showPart1,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('arrowLeftSvgRoute')\"></svg-icon>\n </div>\n </div>\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@closeForm]=\"showPart1\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFromFirstFrom\"\n [inputConfig]=\"multiFormFirstFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"multiFormFirstError\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFromFirstTo\"\n [inputConfig]=\"multiFormFirstTo\"\n ></app-ca-input>\n </div>\n </div>\n <div\n class=\"border-filter money-bottom-border-magin form-border\"\n [class.hiddenFormBorder]=\"!showPart1\"\n ></div>\n <div\n class=\"form-header\"\n [class.hiddenFormTitle]=\"!showPart2\"\n (click)=\"hideFormPart('part2')\"\n >\n <ng-container *ngIf=\"!fuelType && !loadType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Available Credit\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"fuelType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Price Per Gallon\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"loadType\">\n <div\n class=\"form-name-gray text-uppercase fw-bold\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n Paid\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n moneyForm.value.multiFormSecondFrom &&\n moneyForm.value.multiFormSecondTo\n \"\n >\n <div\n class=\"clear-money-form d-flex justify-content-center align-items-center fw-bold\"\n (click)=\"clearForm('multiFormSecond', $event)\"\n >\n CLEAR\n </div>\n </ng-container>\n\n <div\n class=\"hide-money-form\"\n [ngClass]=\"{\n svg_rotate: !showPart2,\n rotate_back: showPart2,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('arrowLeftSvgRoute')\"></svg-icon>\n </div>\n </div>\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@closeForm]=\"showPart2\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormSecondFrom\"\n [inputConfig]=\"multiFormSecondFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"multiFormSecondError\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormSecondTo\"\n [inputConfig]=\"multiFormSecondTo\"\n ></app-ca-input>\n </div>\n </div>\n <div\n class=\"border-filter money-bottom-border-magin form-border\"\n [class.hiddenFormBorder]=\"!showPart2\"\n ></div>\n <div\n class=\"form-header\"\n [class.hiddenFormTitle]=\"!showPart3\"\n (click)=\"hideFormPart('part3')\"\n >\n <ng-container *ngIf=\"!fuelType && !loadType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Revenue\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"fuelType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Total Cost\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"loadType\">\n <div\n class=\"form-name-gray text-uppercase fw-bold\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n Due\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n moneyForm.value.multiFormThirdFrom &&\n moneyForm.value.multiFormThirdTo\n \"\n >\n <div\n class=\"clear-money-form d-flex justify-content-center align-items-center fw-bold\"\n (click)=\"clearForm('multiFormThird', $event)\"\n >\n CLEAR\n </div>\n </ng-container>\n\n <div\n class=\"hide-money-form\"\n [ngClass]=\"{\n svg_rotate: !showPart3,\n rotate_back: showPart3,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('arrowLeftSvgRoute')\"></svg-icon>\n </div>\n </div>\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@closeForm]=\"showPart3\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormThirdFrom\"\n [inputConfig]=\"multiFormThirdFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"multiFormThirdError\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormThirdTo\"\n [inputConfig]=\"multiFormThirdTo\"\n ></app-ca-input>\n </div>\n </div>\n </div>\n </ng-template>\n\n <div\n class=\"border-filter money-bottom-border-magin form-border\"\n [class.hiddenFormBorder]=\"!showPart3\"\n ></div>\n </div>\n</ng-container>\n","export enum LoadFilterStringEnum {\n // Actions\n SET = 'Set',\n CLEAR = 'Clear',\n\n // Filter Types\n TIME_FILTER = 'timeFilter',\n STATUS_FILTER = 'statusFilter',\n USER_FILTER = 'userFilter',\n MONEY_FILTER = 'moneyFilter',\n LOAD_TYPE_FILTER = 'loadTypeFilter',\n\n // Load Tabs\n PENDING = 'pending',\n ACTIVE = 'active',\n CLOSED = 'closed',\n\n // Load Types\n FTL = 'ftl',\n LTL = 'ltl',\n ALL = 'all',\n\n // Other\n DISPATCH_DATA_UPDATE = 'dispatch-data-update',\n}\n","export enum LoadStatusEnum {\n Booked = 1,\n Assigned,\n Unassigned,\n Loaded,\n Offloaded,\n CheckedIn,\n Dispatched,\n Invoiced,\n InvoicedFactoring,\n InvoicedHold,\n Delivered,\n LoadCancelled,\n Paid,\n PaidFactoring,\n RevisedPaidFactoring,\n ShortPaid,\n ShortPaidFactoring,\n RevisedShortPaidFactoring,\n Claim,\n ClaimFactoring,\n RevisedClaimFactoring,\n Unpaid,\n UnpaidFactoring,\n RevisedUnpaidFactoring,\n Tonu,\n TonuInvoiced,\n TonuInvoicedFactoring,\n TonuPaid,\n TonuPaidFactoring,\n TonuClaim,\n TonuClaimFactoring,\n TonuShortPaid,\n TonuShortPaidFactoring,\n TonuUnpaid,\n TonuUnpaidFactoring,\n Hold,\n HoldFactoring,\n Revised,\n RevisedFactoring,\n RevisedPaid,\n RevisedClaim,\n RevisedShortPaid,\n RevisedUnpaid,\n Cancelled,\n Split,\n Loading,\n Offloading,\n ArrivedPickup,\n ArrivedDelivery,\n CheckedInPickup,\n CheckedInDelivery,\n RepairDispatched,\n RepairLoaded,\n RepairOffloaded,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dropdownLoadStatusColor',\n standalone: true,\n})\nexport class DropdownLoadStatusColorPipe implements PipeTransform {\n transform(\n status: string,\n isBadge?: boolean\n ): { color: string; backgroundColor?: string } {\n const adjustedStatus = status.replace(/\\s+/g, '');\n\n const statusGreyColorCondition = adjustedStatus === 'Booked';\n const statusDarkGreyColorCondition = adjustedStatus === 'Unassigned';\n const statusDarkGrey2ColorCondition = [\n 'InvoicedHold',\n 'Hold',\n 'HoldFactoring',\n 'Revised',\n 'RevisedFactoring',\n ].includes(adjustedStatus);\n\n const statusGreenColorCondition = status === 'Assigned';\n const statusBlueColorCondition = [\n 'RepairDispatched',\n 'Dispatched',\n ].includes(status);\n const statusTurquoiseColorCondition = [\n 'Arrived',\n 'ArrivedPickup',\n 'CheckedInPickup',\n 'CheckedIn',\n 'Loading',\n ].includes(adjustedStatus);\n const statusDarkTurquoiseColorCondition = [\n 'Loaded',\n 'RepairLoaded',\n ].includes(adjustedStatus);\n const statusRedColorCondition = [\n 'ArrivedDelivery',\n 'CheckedInDelivery',\n 'Offloading',\n 'Checked-In',\n 'Tonu',\n ].includes(status);\n const statusDarkRedColorCondition = [\n 'Offloaded',\n 'RepairOffloaded',\n ].includes(status);\n const statusDarkRed2ColorCondition = [\n 'Cancelled',\n 'Split',\n 'LoadCancelled',\n ].includes(status);\n const statusOrangeColorCondition = status === 'Delivered';\n const statusYellowColorCondition = [\n 'Invoiced',\n 'Paid',\n 'InvoicedFactoring',\n 'TonuInvoiced',\n 'TonuInvoicedFactoring',\n ].includes(adjustedStatus);\n const statusDarkYellowColorCondition = [\n 'Claim',\n 'Unpaid',\n 'ShortPaid',\n 'TonuUnpaid',\n 'TonuClaim',\n 'TonuClaimFactoring',\n 'ClaimFactoring',\n 'UnpaidFactoring',\n 'RevisedUnpaid',\n 'RevisedUnpaidFactoring',\n 'RevisedClaim',\n 'RevisedClaimFactoring',\n 'TonuUnpaidFactoring',\n ].includes(adjustedStatus);\n const statusMildDarkYellowColorCondition = [\n 'ShortPaidFactoring',\n 'RevisedPaid',\n 'RevisedShortPaidFactoring',\n 'RevisedShortPaid',\n 'TonuShortPaid',\n 'TonuShortPaidFactoring',\n 'TonuPaid',\n 'TonuPaidFactoring',\n 'RevisedPaidFactoring',\n 'PaidFactoring',\n ].includes(adjustedStatus);\n\n if (statusGreyColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#919191' }\n : { color: '#919191' };\n } else if (statusDarkGreyColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#CCCCCC' }\n : { color: '#CCCCCC' };\n } else if (statusGreenColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#9ED186' }\n : { color: '#9ED186' };\n } else if (statusBlueColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FF906D' }\n : { color: '#92B1F5' };\n } else if (statusTurquoiseColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#56B4AC' }\n : { color: '#56B4AC' };\n } else if (statusDarkTurquoiseColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FF906D' }\n : { color: '#86C9C3' };\n } else if (statusRedColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#E66767' }\n : { color: '#E66767' };\n } else if (statusDarkRedColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FF906D' }\n : { color: '#ED9292' };\n } else if (statusOrangeColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FAB15C' }\n : { color: '#FAB15C' };\n } else if (statusYellowColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#b370f0' }\n : { color: '#DFC66C' };\n } else if (statusDarkYellowColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#BD9F41' }\n : { color: '#BD9F41' };\n } else if (statusDarkGrey2ColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#DAAD4F' }\n : { color: '#DADADA' };\n } else if (statusDarkRed2ColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#F4BEBE' }\n : { color: '#F4BEBE' };\n } else if (statusMildDarkYellowColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#CDB255' }\n : { color: '##CDB255' };\n }\n return { color: '' };\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n keyframes,\n} from '@angular/animations';\n\nexport const inOutAnimation = (type: string) =>\n trigger(type, [\n state('in', style({ opacity: 1, scale: 1, height: '28px' })),\n transition(':enter', [\n animate(\n 150,\n keyframes([\n style({\n opacity: 0,\n offset: 0,\n scale: 0.6,\n height: '0px',\n }),\n style({\n opacity: 0.25,\n offset: 0.25,\n scale: 0.7,\n height: '10px',\n }),\n style({\n opacity: 0.5,\n offset: 0.5,\n scale: 0.8,\n height: '15px',\n }),\n style({\n opacity: 0.75,\n offset: 0.75,\n scale: 0.9,\n height: '20px',\n }),\n style({\n opacity: 1,\n offset: 1,\n scale: 1,\n height: '28px',\n }),\n ])\n ),\n ]),\n transition(':leave', [\n animate(\n 150,\n keyframes([\n style({\n opacity: 1,\n offset: 0,\n scale: 1,\n height: '28px',\n }),\n style({\n opacity: 1,\n offset: 0.25,\n scale: 0.9,\n height: '20px',\n }),\n style({\n opacity: 0.75,\n offset: 0.5,\n scale: 0.8,\n height: '15px',\n }),\n style({\n opacity: 0.25,\n offset: 0.75,\n scale: 0.7,\n height: '10px',\n }),\n style({\n opacity: 0,\n offset: 1,\n scale: 0.6,\n height: '0px',\n }),\n ])\n ),\n ]),\n ]);\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n// models\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TruckassistTableService {\n /* Set Load Status Filter Options */\n private setLoadStatusFilterOptions = new BehaviorSubject<any>(null);\n public currentLoadStatusFilterOptions =\n this.setLoadStatusFilterOptions.asObservable();\n\n private actionAnimation = new BehaviorSubject<any>(null);\n public currentActionAnimation = this.actionAnimation.asObservable();\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// enums\nimport { LoadFilterStringEnum } from '../../../../enums/load-filter-string.enum';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { LoadStatusEnum } from '../../../../enums/load-status.enum';\n\n// pipes\nimport { DropdownLoadStatusColorPipe } from '../../../../pipes/dropdown-load-status-color.pipe';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n// constants\nimport { StatusFilterConstants } from '../../utils/constants/status-filter.constants';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n@Component({\n selector: 'app-ca-status-filter',\n standalone: true,\n imports: [\n // modules\n AngularSvgIconModule,\n CommonModule,\n HttpClientModule,\n // pipes\n DropdownLoadStatusColorPipe,\n ],\n templateUrl: './ca-status-filter.component.html',\n styleUrls: ['./ca-status-filter.component.scss'],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaStatusFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isLegendView: boolean = false;\n @Input() isFilterActive: boolean = false;\n @Input() toDoSubType!: string;\n @Input() loadStatusOptionsArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public unselectedVisibleCount: number = 0;\n\n public selectedUser: ArrayStatus[] = [];\n\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n\n public loadStatusEnum = LoadStatusEnum;\n public filterActiveArray: ArrayStatus[] = [];\n public totalFiltersNum: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchLoadStatusFilterValueChanges();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.filterActiveArray = [...this.selectedUser];\n const selectedUsersIdArray: number[] = [];\n this.totalFiltersNum = this.filterActiveArray.length;\n\n const mainArray: ArrayStatus[] = this.loadStatusOptionsArray;\n\n mainArray.map((item) => {\n if (item.isSelected) {\n item['currentSet'] = true;\n } else {\n item['currentSet'] = false;\n }\n });\n\n this.filterActiveArray.map((data) => {\n selectedUsersIdArray.push(data.id!);\n });\n\n queryParams = selectedUsersIdArray;\n subType =\n this.toDoSubType ??\n ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedUser = [];\n\n this.loadStatusOptionsArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n this.totalFiltersNum = 0;\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItemsCount(\n this.loadStatusOptionsArray,\n this.selectedUser,\n this.isAscendingSortOrder\n );\n\n this.loadStatusOptionsArray = sortResult.sortedFilterArray;\n this.selectedUser = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n private watchLoadStatusFilterValueChanges(): void {\n this.type = ToolbarFilterStringEnum.STATUS_FILTER;\n this.tableService.currentLoadStatusFilterOptions\n .pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n if (res && this.type === LoadFilterStringEnum.STATUS_FILTER) {\n this.loadStatusOptionsArray = res.options;\n }\n });\n }\n\n public addToSelectedUser(item: ArrayStatus, indx: number) {\n const mainArray = this.loadStatusOptionsArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedUser.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: ArrayStatus, indx: number): void {\n this.selectedUser.splice(indx, 1);\n const id = item.id;\n const mainArray = this.loadStatusOptionsArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedUser,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"border-filter\"></div>\n<div class=\"user-holder\" *ngIf=\"type === 'statusFilter'\">\n <div class=\"status-data-main-holder\">\n <ng-container\n *ngFor=\"let item of selectedUser; let indx = index; trackBy: trackByIndex\"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <div\n class=\"selected-user-holder d-flex flex-column justify-content-start align-items-start\"\n >\n <div\n class=\"user-main-holder\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div class=\"selected-user-frame d-flex align-items-center fw-bold\">\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"status-circle\"\n [ngStyle]=\"\n loadStatusEnum[item.id!] | dropdownLoadStatusColor: true\n \"\n ></div>\n </div>\n <div\n class=\"selected-name-text d-flex align-items-center\"\n [class.text-uppercase]=\"type === 'statusFilter'\"\n >\n <div\n class=\"selected-name-text d-flex align-items-center\"\n [class.text-uppercase]=\"type === 'statusFilter'\"\n >\n <span> {{ item.name }}</span>\n </div>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount fw-semibold\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div class=\"selected-icon\">\n <svg-icon\n [src]=\"getSvgPath('removeSelectedValue')\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex\"\n [class.counterMargin]=\"item.count\"\n >\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"selectedUser.length > 0 && unselectedVisibleCount\"\n class=\"border-filter border-thrird-margin\"\n ></div>\n </ng-container>\n\n <ng-container\n *ngFor=\"\n let item of loadStatusOptionsArray;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder d-flex align-items-center justify-content-center;\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"status-circle\"\n [ngStyle]=\"\n loadStatusEnum[item.id!] | dropdownLoadStatusColor: true\n \"\n ></div>\n </div>\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div\n class=\"selected-name-text text-uppercase d-flex align-items-center\"\n >\n <span> {{ item.name }} </span>\n </div>\n\n <ng-container *ngIf=\"item?.count\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n<ng-container\n *ngIf=\"!isLegendView && (type === 'statusFilter' || type === 'userFilter')\"\n>\n <div class=\"border-filter\"></div>\n</ng-container>\n","export class TimeFilterConstants {\n static getTimeFilterOptions(lastYear: string, last2Years: string) {\n return [\n {\n label: 'Time Filter',\n items: [{ label: 'Today' }, { label: 'Yesterday' }],\n },\n {\n label: '',\n items: [\n { label: 'This Week' },\n { label: 'Last Week' },\n { label: '1 Week' },\n ],\n },\n {\n label: '',\n items: [\n { label: 'This Month' },\n { label: 'Last Month' },\n { label: '1 Month' },\n { label: '3 Months' },\n ],\n },\n {\n label: '',\n items: [{ label: 'This Quarter' }, { label: 'Last Quarter' }],\n },\n {\n label: '',\n items: [\n { label: 'This Year' },\n { label: '1 Year' },\n { label: lastYear },\n { label: last2Years },\n ],\n },\n {\n label: '',\n items: [{ label: 'Custom' }],\n },\n ];\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// models\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { TimeFilterOptions } from '../../../../models/time-filter.model';\n\n// constants\nimport { TimeFilterConstants } from '../../utils/constants/time-filter.constants';\n\n@Component({\n standalone: true,\n imports: [CommonModule, HttpClientModule, AngularSvgIconModule],\n selector: 'app-ca-time-filter',\n templateUrl: './ca-time-filter.component.html',\n styleUrls: ['./ca-time-filter.component.scss'],\n animations: [showAnimation('showAnimation')],\n})\nexport class CaTimeFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n\n private destroy$ = new Subject<void>();\n public selectedTimeValue!: string;\n public selectedTimeYear: number | null = null;\n public filterActiveTime!: string;\n\n public isButtonAvailable: boolean = false;\n public lastYear: number | null = null;\n public last2Years: number | null = null;\n public timeOptionsArray: TimeFilterOptions[] = [];\n\n ngOnInit(): void {\n this.timeFilterInit();\n this.timeOptionsInit();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private timeFilterInit(): void {\n this.type = ToolbarFilterStringEnum.TIME_FILTER;\n\n const date = new Date();\n const pastYear = date.getFullYear() - 1;\n const past2Year = date.getFullYear() - 2;\n\n this.lastYear = pastYear;\n this.last2Years = past2Year;\n }\n\n private timeOptionsInit(): void {\n this.timeOptionsArray = TimeFilterConstants.getTimeFilterOptions(\n this.lastYear!.toString(),\n this.last2Years!.toString()\n );\n }\n\n public setTimeValue(mod: string, year?: number): void {\n if (this.selectedTimeValue === mod) {\n this.selectedTimeValue = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n } else {\n this.selectedTimeValue = mod;\n }\n\n if (year) {\n if (this.selectedTimeYear === year) this.selectedTimeYear = null;\n else this.selectedTimeYear = year;\n } else {\n this.selectedTimeYear = null;\n }\n\n if (this.filterActiveTime === mod) {\n this.isButtonAvailable = false;\n } else {\n this.isButtonAvailable = true;\n }\n }\n\n public setFilterValue(\n $event: Event\n ): filterOutput | filterOutputWithParams | undefined {\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.filterActiveTime = this.selectedTimeValue;\n const setActionType: string = 'Set';\n\n if (!this.selectedTimeValue) {\n this.clearAll($event);\n return;\n }\n\n if (this.selectedTimeYear) {\n queryParams = {\n timeSelected: this.filterActiveTime,\n year: this.selectedTimeYear,\n };\n } else {\n queryParams = {\n timeSelected: this.filterActiveTime,\n };\n }\n\n const data = {\n filterType: this.type,\n action: setActionType,\n queryParams,\n subType,\n };\n return data;\n }\n\n public clearAll(event?: Event) {\n this.selectedTimeValue = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n this.filterActiveTime = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n\n this.isButtonAvailable = true;\n const clearActionType: string = 'Clear';\n\n const data = {\n action: clearActionType,\n type: this.type,\n filterType: this.type,\n };\n\n return data;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'timeFilter'\">\n <div class=\"time-filter-holder\">\n <div class=\"border-filter\"></div>\n <div\n class=\"time-items-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let timeOption of timeOptionsArray;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <ng-container *ngFor=\"let item of timeOption.items\">\n <div\n class=\"time-items d-flex align-items-center fw-normal\"\n [class.active]=\"selectedTimeValue === item.label\"\n (click)=\"setTimeValue(item.label)\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n {{ item.label }}\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n <div\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </ng-container>\n <div class=\"border-filter time-data-border\"></div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n","export enum TrailerNameStringEnum {\n REEFER = 'Reefer',\n DRY_VAN = 'Dry Van',\n DUMPER = 'Dumper',\n TANKER = 'Tanker',\n PNEUMATIC_TANKER = 'Pneumatic Tanker',\n CAR_HAULER = 'Car Hauler',\n CAR_HAULER_STINGER = 'Car Hauler Stinger',\n CHASSIS = 'Chassis',\n LOW_BOY_RGN = 'Low Boy / RGN',\n STEP_DECK = 'Step Deck',\n FLAT_BED = 'Flat Bed',\n SIDE_KIT = 'Side Kit',\n CONESTOGA = 'Conestoga',\n CONTAINER = 'Container',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n//enum\nimport { TrailerNameStringEnum } from '../../../enums/trailer-name-string.enum';\n\n@Pipe({\n standalone: true,\n name: 'filterTrailerColorPipe',\n})\nexport class FilterTrailerColorPipe implements PipeTransform {\n transform(trailer: string): string {\n if (trailer === TrailerNameStringEnum.DRY_VAN) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.PNEUMATIC_TANKER) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.CAR_HAULER) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.CAR_HAULER_STINGER) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.LOW_BOY_RGN) {\n return trailer.replace(/[\\s\\/]+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.STEP_DECK) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.FLAT_BED) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.SIDE_KIT) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else {\n return trailer.toLowerCase();\n }\n }\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaUserFilterConfig {\n static getDispatcherSearch(): ICaInput {\n return {\n name: 'search',\n type: 'text',\n label: 'Search Dispatcher',\n placeholderIcon: 'ic_search',\n customClass: 'filter-search-input',\n placeholderInsteadOfLabel: true,\n blackInput: true,\n isDisabled: false,\n };\n }\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ReactiveFormsModule,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// enums\nimport { LoadStatusEnum } from '../../../../enums/load-status.enum';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\n\n// pipes\nimport { DropdownLoadStatusColorPipe } from '../../../../pipes/dropdown-load-status-color.pipe';\nimport { FilterTrailerColorPipe } from '../../pipes/filter-trailer-color.pipe';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// configs\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\nimport { CaUserFilterConfig } from '../ca-user-filter/config/ca-user-filter.config';\nimport { userSelected } from '../../../../models/user-selected.model';\n\n@Component({\n selector: 'app-ca-user-filter',\n standalone: true,\n templateUrl: './ca-user-filter.component.html',\n styleUrls: ['./ca-user-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n ReactiveFormsModule,\n HttpClientModule,\n AngularSvgIconModule,\n // components\n CaInputComponent,\n CaProfileImageComponent,\n // pipes\n DropdownLoadStatusColorPipe,\n FilterTrailerColorPipe,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaUserFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() filterTitle!: string;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() toDoSubType!: string;\n @Input() unselectedUser!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n\n public loadStatusEnum = LoadStatusEnum;\n public searchForm!: UntypedFormGroup;\n public searchInputValue!: string;\n\n public unselectedVisibleCount: number = 0;\n public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n public selectedUser: userSelected[] = [];\n public filterActiveArray: ArrayStatus[] = [];\n public isAscendingSortOrder: boolean = true;\n public isButtonAvailable: boolean = false;\n public totalFiltersNum: number = 0;\n\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n ngOnInit(): void {\n this.createForm();\n\n this.watchSearchFormValueChanges();\n }\n\n get dispatcherSearch(): ICaInput {\n return CaUserFilterConfig.getDispatcherSearch();\n }\n\n public setFilterValue(\n $event: Event\n ): filterOutput | filterOutputWithParams | undefined {\n this.filterActiveArray = [...this.selectedUser];\n const selectedUsersIdArray: number[] = [];\n this.totalFiltersNum = this.filterActiveArray.length;\n\n let mainArray: ArrayStatus[] = [];\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n mainArray = this.unselectedUser;\n\n mainArray.map((item) => {\n if (item.isSelected) {\n item['currentSet'] = true;\n } else {\n item['currentSet'] = false;\n }\n });\n\n this.filterActiveArray.map((data) => {\n selectedUsersIdArray.push(data.id!);\n });\n\n if (!selectedUsersIdArray.length) {\n this.clearAll($event);\n return;\n }\n\n queryParams = selectedUsersIdArray;\n subType =\n this.toDoSubType ??\n ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedUser = [];\n this.filterActiveArray = [];\n this.totalFiltersNum = 0;\n\n this.unselectedUser.map((item) => {\n item.isSelected = false;\n item.currentSet = false;\n });\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n private createForm(): void {\n this.type = ToolbarFilterStringEnum.USER_FILTER;\n this.searchForm = this.formBuilder.group({\n search: null,\n });\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.unselectedUser;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedUser.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedUser.splice(indx, 1);\n const id = item.id;\n const mainArray = this.unselectedUser;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedUser,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n private watchSearchFormValueChanges(): void {\n this.searchForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((changes) => {\n if (changes.search) {\n const inputValue = changes.search;\n this.searchInputValue = inputValue;\n\n if (this.type === ToolbarFilterStringEnum.USER_FILTER) {\n this.unselectedUser.map((item) => {\n item.hidden = true;\n if (item.name!.toLowerCase().includes(inputValue.toLowerCase())) {\n item.hidden = false;\n }\n return item;\n });\n }\n } else {\n if (this.type === ToolbarFilterStringEnum.USER_FILTER) {\n this.unselectedUser.map((item) => {\n item.hidden = false;\n });\n }\n this.searchInputValue =\n ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n }\n });\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItemsCount(\n this.unselectedUser,\n this.selectedUser,\n this.isAscendingSortOrder\n );\n\n this.unselectedUser = sortResult.sortedFilterArray;\n this.selectedUser = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'userFilter'\">\n <div class=\"search-input-header\" [formGroup]=\"searchForm\">\n <app-ca-input\n class=\"input-form-holder\"\n formControlName=\"search\"\n [inputConfig]=\"dispatcherSearch\"\n ></app-ca-input>\n </div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedUser;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <ng-container *ngIf=\"!item.avatar; else avatarTemplate\">\n <app-ca-profile-image\n avatarImg=\"https://nyc3.digitaloceanspaces.com/dev.truckassist/9/38/138/a3c5ef96-58cf-4018-a3c0-2855ad1edf69-driverAvatar.png\"\n [size]=\"'small'\"\n ></app-ca-profile-image>\n </ng-container>\n\n <ng-template #avatarTemplate>\n <div\n class=\"user_avatar\"\n style.background-image=\"url('{{ item.avatar }}')\"\n ></div>\n </ng-template>\n </div>\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedUser.length > 0\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div\n class=\"user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of unselectedUser;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <ng-container *ngIf=\"!item.avatar; else avatarTemplate\">\n <app-ca-profile-image\n avatarImg=\"https://nyc3.digitaloceanspaces.com/dev.truckassist/9/38/138/a3c5ef96-58cf-4018-a3c0-2855ad1edf69-driverAvatar.png\"\n [size]=\"'small'\"\n >\n </app-ca-profile-image>\n </ng-container>\n\n <ng-template #avatarTemplate>\n <div\n class=\"user_avatar\"\n style.background-image=\"url('{{ item.avatar }}')\"\n ></div>\n </ng-template>\n </div>\n <div class=\"user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n\n <ng-container *ngIf=\"item?.count\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"unselectedUser?.length !== selectedUser?.length\">\n <div class=\"border-filter\"></div>\n </ng-container>\n</ng-container>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n keyframes,\n} from '@angular/animations';\n\nexport const stateHeader = (type: string) =>\n trigger(type, [\n state('in', style({ opacity: 1, height: '*' })),\n transition(':enter', [\n animate(\n 150,\n keyframes([\n style({ opacity: 0, offset: 0, height: '0px' }),\n style({ opacity: 1, offset: 1, height: '*' }),\n ])\n ),\n ]),\n transition(':leave', [\n animate(\n 150,\n keyframes([\n style({ opacity: 1, offset: 0 }),\n style({ opacity: 0, offset: 1, height: '0px' }),\n ])\n ),\n ]),\n ]);\n","import { ArrayStatus } from '../../../../models/array-status.model';\n\nexport class DirectiveConstants {\n static UNSELECTED_USER: ArrayStatus[] = [\n {\n name: 'Aleksandar Djordjevic',\n id: 1,\n avatar: 'https://www.gradprijepolje.com/wp-content/uploads/2021/09/Divac.jpg',\n count: 3,\n },\n {\n name: 'Denis Rodman',\n id: 2,\n count: 8,\n },\n {\n name: 'Eric Halpert',\n id: 3,\n count: 7,\n },\n {\n name: 'Jacob Forman',\n id: 4,\n count: 2,\n },\n {\n name: 'James Robertson',\n id: 5,\n count: 5,\n },\n {\n name: 'Kevin Malone',\n id: 6,\n count: 9,\n },\n {\n name: 'Michael Tollbert',\n id: 7,\n count: 1,\n },\n {\n name: 'Michael Rodman',\n id: 8,\n count: 4,\n },\n {\n name: 'James Halpert',\n id: 9,\n count: 6,\n },\n {\n name: 'Anna Beasley',\n id: 10,\n count: 3,\n },\n {\n name: 'Denis Halpert',\n id: 11,\n count: 7,\n },\n {\n name: 'Eric James',\n id: 12,\n count: 2,\n },\n {\n name: 'Michael Forman',\n id: 13,\n count: 5,\n },\n {\n name: 'James Lopez',\n id: 14,\n count: 8,\n },\n ];\n\n static USA_STATES: ArrayStatus[] = [\n {\n id: 1,\n name: 'Alabama',\n short: 'AL',\n },\n {\n id: 2,\n name: 'Alaska',\n short: 'AK',\n },\n {\n id: 3,\n name: 'American Samoa',\n short: 'AS',\n },\n {\n id: 4,\n name: 'Arizona',\n short: 'AZ',\n },\n {\n id: 5,\n name: 'Arkansas',\n short: 'AR',\n },\n {\n id: 6,\n name: 'California',\n short: 'CA',\n },\n {\n id: 7,\n name: 'Colorado',\n short: 'CO',\n },\n {\n id: 8,\n name: 'Connecticut',\n short: 'CT',\n },\n {\n id: 9,\n name: 'Delaware',\n short: 'DE',\n },\n {\n id: 10,\n name: 'District Of Columbia',\n short: 'DC',\n },\n {\n id: 11,\n name: 'Florida',\n short: 'FL',\n },\n {\n id: 12,\n name: 'Georgia',\n short: 'GA',\n },\n {\n id: 13,\n name: 'Guam',\n short: 'GU',\n },\n {\n id: 14,\n name: 'Hawaii',\n short: 'HI',\n },\n {\n id: 15,\n name: 'Idaho',\n short: 'ID',\n },\n {\n id: 16,\n name: 'Illinois',\n short: 'IL',\n },\n {\n id: 17,\n name: 'Indiana',\n short: 'IN',\n },\n {\n id: 18,\n name: 'Iowa',\n short: 'IA',\n },\n {\n id: 19,\n name: 'Kansas',\n short: 'KS',\n },\n {\n id: 20,\n name: 'Kentucky',\n short: 'KY',\n },\n {\n id: 21,\n name: 'Louisiana',\n short: 'LA',\n },\n {\n id: 22,\n name: 'Maine',\n short: 'ME',\n },\n {\n id: 23,\n name: 'Maryland',\n short: 'MD',\n },\n {\n id: 24,\n name: 'Massachusetts',\n short: 'MA',\n },\n {\n id: 25,\n name: 'Michigan',\n short: 'MI',\n },\n {\n id: 26,\n name: 'Minnesota',\n short: 'MN',\n },\n {\n id: 27,\n name: 'Mississippi',\n short: 'MS',\n },\n {\n id: 28,\n name: 'Missouri',\n short: 'MO',\n },\n {\n id: 29,\n name: 'Montana',\n short: 'MT',\n },\n {\n id: 30,\n name: 'Nebraska',\n short: 'NE',\n },\n {\n id: 31,\n name: 'Nevada',\n short: 'NV',\n },\n {\n id: 32,\n name: 'New Hampshire',\n short: 'NH',\n },\n {\n id: 33,\n name: 'New Jersey',\n short: 'NJ',\n },\n {\n id: 34,\n name: 'New Mexico',\n short: 'NM',\n },\n {\n id: 35,\n name: 'New York',\n short: 'NY',\n },\n {\n id: 36,\n name: 'North Carolina',\n short: 'NC',\n },\n {\n id: 37,\n name: 'North Dakota',\n short: 'ND',\n },\n {\n id: 38,\n name: 'Northern Mariana Islands',\n short: 'MP',\n },\n {\n id: 39,\n name: 'Ohio',\n short: 'OH',\n },\n {\n id: 40,\n name: 'Oklahoma',\n short: 'OK',\n },\n {\n id: 41,\n name: 'Oregon',\n short: 'OR',\n },\n {\n id: 42,\n name: 'Palau',\n short: 'PW',\n },\n {\n id: 43,\n name: 'Pennsylvania',\n short: 'PA',\n },\n {\n id: 44,\n name: 'Puerto Rico',\n short: 'PR',\n },\n {\n id: 45,\n name: 'Rhode Island',\n short: 'RI',\n },\n {\n id: 46,\n name: 'South Carolina',\n short: 'SC',\n },\n {\n id: 47,\n name: 'South Dakota',\n short: 'SD',\n },\n {\n id: 48,\n name: 'Tennessee',\n short: 'TN',\n },\n {\n id: 49,\n name: 'Texas',\n short: 'TX',\n },\n {\n id: 50,\n name: 'Utah',\n short: 'UT',\n },\n {\n id: 51,\n name: 'Vermont',\n short: 'VT',\n },\n {\n id: 52,\n name: 'Virgin Islands',\n short: 'VI',\n },\n {\n id: 53,\n name: 'Virginia',\n short: 'VA',\n },\n {\n id: 54,\n name: 'Washington',\n short: 'WA',\n },\n {\n id: 55,\n name: 'West Virginia',\n short: 'WV',\n },\n {\n id: 56,\n name: 'Wisconsin',\n short: 'WI',\n },\n {\n id: 57,\n name: 'Wyoming',\n short: 'WY',\n },\n ];\n\n static CANADA_STATES: ArrayStatus[] = [\n {\n id: 1,\n name: 'Alberta',\n short: 'AB',\n },\n {\n id: 2,\n name: 'British Columbia',\n short: 'BC',\n },\n {\n id: 3,\n name: 'Manitoba',\n short: 'MB',\n },\n {\n id: 4,\n name: 'New Brunswick',\n short: 'NB',\n },\n {\n id: 5,\n name: 'Newfoundland and Labrador',\n short: 'NL',\n },\n {\n id: 6,\n name: 'Nova Scotia',\n short: 'NS',\n },\n {\n id: 7,\n name: 'Ontario',\n short: 'ON',\n },\n {\n id: 8,\n name: 'Prince Edward Island',\n short: 'PE',\n },\n {\n id: 9,\n name: 'Quebec',\n short: 'QC',\n },\n {\n id: 10,\n name: 'Saskatchewan',\n short: 'SK',\n },\n {\n id: 11,\n name: 'Northwest Territories',\n short: 'NT',\n },\n {\n id: 12,\n name: 'Nunavut',\n short: 'NU',\n },\n {\n id: 13,\n name: 'Yukon',\n short: 'YT',\n },\n ];\n\n static TRUCK_TYPE_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Semi Truck',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_semi-truck.svg',\n count: 47,\n },\n {\n id: 2,\n name: 'Semi Sleeper',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_semi-wSleeper.svg',\n count: 3,\n },\n {\n id: 3,\n name: 'Box Truck',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_box-truck.svg',\n count: 5,\n },\n {\n id: 4,\n name: 'Cargo Van',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_cargo-van.svg',\n count: 2,\n },\n {\n id: 5,\n name: 'Tow Truck',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_tow-truck.svg',\n count: 7,\n },\n {\n id: 6,\n name: 'Car Hauler',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_car-hauler.svg',\n count: 4,\n },\n {\n id: 7,\n name: 'Spotter',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_spotter.svg',\n count: 1,\n },\n ];\n\n static TRAILER_TYPE_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Reefer',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_reefer.svg',\n count: 47,\n },\n {\n id: 2,\n name: 'Dry Van',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_dryvan.svg',\n count: 7,\n },\n {\n id: 3,\n name: 'Side Kit',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_side-kit.svg',\n count: 4,\n },\n {\n id: 4,\n name: 'Conestoga',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_conestoga.svg',\n count: 12,\n },\n {\n id: 5,\n name: 'Dumper',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_dumper.svg',\n count: 2,\n },\n {\n id: 6,\n name: 'Container',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_container.svg',\n count: 25,\n },\n {\n id: 7,\n name: 'Tanker',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_tanker.svg',\n count: 15,\n },\n {\n id: 8,\n name: 'Car Hauler',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_carhauler.svg',\n count: 6,\n },\n {\n id: 9,\n name: 'Flat Bed',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_flatbed.svg',\n count: 8,\n },\n {\n id: 10,\n name: 'Low Boy/RGN',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_low-boy.svg',\n count: 3,\n },\n {\n id: 11,\n name: 'Chassis',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_chassis.svg',\n count: 9,\n },\n {\n id: 12,\n name: 'Step Deck',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_step-deck.svg',\n count: 5,\n },\n ];\n\n static PM_FILTER_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Engine Oil & Filter',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_oil_pump.svg',\n count: 5,\n },\n {\n id: 2,\n name: 'Air Filter',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_air_filter.svg',\n count: 3,\n },\n {\n id: 3,\n name: 'Belts',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_fuel_pump.svg',\n count: 2,\n },\n {\n id: 4,\n name: 'Transmission Fluid',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_air_compressor.svg',\n count: 4,\n },\n {\n id: 5,\n name: 'Engine Tune-Up',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_ac_compressor.svg',\n count: 7,\n },\n {\n id: 6,\n name: 'Alignment',\n icon: 'assets/ca-components/svg/common/category/ic_alignment.svg',\n count: 6,\n },\n {\n id: 7,\n name: 'Battery',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_battery.svg',\n count: 1,\n },\n {\n id: 8,\n name: 'Brake Chamber',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_brake_filter.svg',\n count: 2,\n },\n ];\n\n static CATEGORY_REPAIR_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Mobile',\n icon: 'assets/ca-components/svg/common/repair-services/ic_mobile.svg',\n },\n {\n id: 2,\n name: 'Shop',\n icon: 'assets/ca-components/svg/common/repair-services/ic_shop.svg',\n activeIcon: 'assets/ca-components/svg/common/ic_shop_cart.svg',\n },\n {\n id: 3,\n name: 'Towing',\n icon: 'assets/ca-components/svg/common/ic_towing.svg',\n },\n {\n id: 4,\n name: 'Parts',\n icon: 'assets/ca-components/svg/common/repair-services/ic_parts.svg',\n },\n {\n id: 5,\n name: 'Tire',\n icon: 'assets/ca-components/svg/common/repair-services/ic_tire.svg',\n },\n {\n id: 6,\n name: 'Dealer',\n icon: 'assets/ca-components/svg/common/repair-services/ic_dealer.svg',\n },\n ];\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { stateHeader } from '../../../../animations/state-header.animation';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\n\n@Component({\n standalone: true,\n selector: 'app-ca-state-filter',\n templateUrl: './ca-state-filter.component.html',\n styleUrls: ['./ca-state-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n stateHeader('stateHeader'),\n ],\n})\nexport class CaStateFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n\n private destroy$ = new Subject<void>();\n public searchForm!: UntypedFormGroup;\n public usaStates: ArrayStatus[] = DirectiveConstants.USA_STATES;\n public canadaStates: ArrayStatus[] = DirectiveConstants.CANADA_STATES;\n public usaSelectedStates: ArrayStatus[] = [];\n public canadaSelectedStates: ArrayStatus[] = [];\n\n public searchInputValue: string | null = null;\n public filterUsaActiveArray: ArrayStatus[] = [];\n public filterCanadaActiveArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public totalFiltersNum: number = 0;\n public unselectedVisibleCount: number = 0;\n public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n ngOnInit(): void {\n this.createForm();\n\n this.watchSearchFormValueChanges();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private createForm(): void {\n this.type = ToolbarFilterStringEnum.STATE_FILTER;\n this.searchForm = this.formBuilder.group({\n search: ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER,\n });\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n private watchSearchFormValueChanges(): void {\n this.searchForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((changes) => {\n const inputValue = changes.search;\n this.searchInputValue = inputValue;\n\n this.usaStates.map((item) => {\n item.hidden = true;\n if (item.name!.toLowerCase().includes(inputValue.toLowerCase())) {\n item.hidden = false;\n }\n return item;\n });\n\n this.canadaStates.map((item) => {\n item.hidden = true;\n if (item.name!.toLowerCase().includes(inputValue.toLowerCase())) {\n item.hidden = false;\n }\n return item;\n });\n });\n }\n\n public addToSelectedUser(\n item: {\n id?: number;\n name?: string;\n count?: number;\n hidden?: boolean;\n isSelected?: boolean;\n },\n indx: number,\n subType?: string\n ) {\n let mainArray: ArrayStatus[] = [];\n\n if (subType === ToolbarFilterStringEnum.CANADA) {\n mainArray = this.canadaStates;\n } else {\n mainArray = this.usaStates;\n }\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n if (subType === ToolbarFilterStringEnum.CANADA) {\n this.canadaSelectedStates.push(item);\n } else {\n this.usaSelectedStates.push(item);\n }\n\n this.checkFilterActiveValue();\n }\n\n public checkFilterActiveValue(): void {\n let usaArrayChanged = false;\n let canadaArrayChanged = false;\n\n const arrayUsaSelected = [...this.usaSelectedStates];\n const arrayUsaActive = [...this.filterUsaActiveArray];\n const arrayCanadaSelected = [...this.canadaSelectedStates];\n const arrayCanadaActive = [...this.filterCanadaActiveArray];\n\n arrayUsaSelected.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n arrayUsaActive.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n arrayCanadaSelected.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n arrayCanadaActive.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n const usaStringfy = JSON.stringify(arrayUsaSelected);\n const usaActiveStringify = JSON.stringify(arrayUsaActive);\n const canadaStringfy = JSON.stringify(arrayCanadaSelected);\n const canadaActiveStringify = JSON.stringify(arrayCanadaActive);\n\n if (usaStringfy === usaActiveStringify) {\n usaArrayChanged = false;\n } else {\n usaArrayChanged = true;\n }\n\n if (canadaStringfy === canadaActiveStringify) {\n canadaArrayChanged = false;\n } else {\n canadaArrayChanged = true;\n }\n\n if (usaArrayChanged || canadaArrayChanged) {\n this.isButtonAvailable = true;\n } else {\n this.isButtonAvailable = false;\n }\n }\n\n public removeFromSelectedUser(\n item: {\n id?: number;\n name?: string;\n count?: number;\n hidden?: boolean;\n isSelected?: boolean;\n },\n indx: number,\n subType?: string\n ): void {\n if (this.type === ToolbarFilterStringEnum.STATE_FILTER) {\n if (subType === ToolbarFilterStringEnum.CANADA) {\n this.canadaSelectedStates.splice(indx, 1);\n } else {\n this.usaSelectedStates.splice(indx, 1);\n }\n }\n\n const id = item.id;\n\n let mainArray: ArrayStatus[] = [];\n\n if (subType === ToolbarFilterStringEnum.CANADA) {\n mainArray = this.canadaStates;\n } else {\n mainArray = this.usaStates;\n }\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.filterUsaActiveArray = [...this.usaSelectedStates];\n this.filterCanadaActiveArray = [...this.canadaSelectedStates];\n\n const totalStatesSelected =\n this.filterUsaActiveArray.length + this.filterCanadaActiveArray.length;\n this.totalFiltersNum = totalStatesSelected;\n\n queryParams = {\n usaArray: this.filterUsaActiveArray,\n canadaArray: this.filterCanadaActiveArray,\n };\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.usaStates.map((item) => {\n item.isSelected = false;\n item.currentSet = false;\n });\n\n this.canadaStates.map((item) => {\n item.isSelected = false;\n item.currentSet = false;\n });\n\n this.usaSelectedStates = [];\n this.canadaSelectedStates = [];\n this.isButtonAvailable = true;\n this.totalFiltersNum = 0;\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"border-filter border-thrird-margin\"></div>\n<div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n *ngIf=\"type === 'stateFilter'\"\n>\n <ng-container *ngIf=\"usaSelectedStates.length\">\n <div class=\"states-selected usa-selected-holder\" [@stateHeader]=\"'in'\">\n <div class=\"state-name-holder\">UNITED STATES</div>\n <ng-container\n *ngFor=\"\n let item of usaSelectedStates;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <div\n class=\"user-main-holder holder-bottom-margin\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"user-profile-img d-flex align-items-center active state-border-radius\"\n >\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"selected-user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n <div\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"canadaSelectedStates.length\">\n <div class=\"states-selected\" [@stateHeader]=\"'in'\">\n <div class=\"state-name-holder\">CANADA</div>\n <ng-container\n *ngFor=\"\n let item of canadaSelectedStates;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <div\n class=\"user-main-holder\"\n (click)=\"removeFromSelectedUser(item, indx, 'canada')\"\n >\n <div class=\"user-profile-img d-flex align-items-center active\">\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"selected-user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n <div class=\"icon-delete\">\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"canadaSelectedStates.length || usaSelectedStates.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n</div>\n\n<div\n class=\"user-holder d-flex justify-content-start align-items-start flex-column\"\n>\n <div class=\"state-name-holder sticky-head-title\">UNITED STATES</div>\n <ng-container\n *ngFor=\"let item of usaStates; let indx = index; trackBy: trackByIdentity\"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder state-main-holder\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"state-name-holder canada-sticky-head-title\">CANADA</div>\n <ng-container\n *ngFor=\"\n let item of canadaStates;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx, 'canada')\"\n class=\"user-main-holder state-main-holder\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n","export class FilterIconRoutes {\n static repairPmSVG = 'assets/ca-components/svg/common/repair-pm/';\n static truckSVG = 'assets/ca-components/svg/common/trucks/';\n static trailerSVG = 'assets/ca-components/svg/common/trailers/';\n static categorySVG = 'assets/ca-components/svg/common/category/';\n}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n@Component({\n standalone: true,\n selector: 'app-ca-truck-type-filter',\n templateUrl: './ca-truck-type-filter.component.html',\n styleUrls: ['./ca-truck-type-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaTruckTypeFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() truckTypeArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedTruckTypeArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.truckTypeArray,\n this.selectedTruckTypeArray,\n this.isAscendingSortOrder\n );\n\n this.truckTypeArray = sortResult.sortedFilterArray;\n this.selectedTruckTypeArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.truckTypeArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedTruckTypeArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedTruckTypeArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.truckTypeArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.TRUCK_TYPE_FILTER;\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n if (this.type === ToolbarFilterStringEnum.TRUCK_TYPE_FILTER) {\n if (res?.animation === 'truck-type-update') {\n const newData = res.data.map((type: any) => {\n type['icon'] = FilterIconRoutes.truckSVG + type.logoName;\n return type;\n });\n\n this.truckTypeArray = newData;\n }\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams | undefined {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedTruckTypeArray = [];\n\n this.truckTypeArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedTruckTypeArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'truckTypeFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedTruckTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n <ng-container *ngIf=\"item.icon\">\n <div class=\"select-item-logo\">\n <svg-icon [src]=\"item.icon\" class=\"truck-logo-icon\"></svg-icon>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedTruckTypeArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of truckTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <div class=\"type-icon d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { AllTableAnimationModel } from '../../../../models/table-models/all-table-animation.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n@Component({\n standalone: true,\n selector: 'app-ca-trailer-type-filter',\n templateUrl: './ca-trailer-type-filter.component.html',\n styleUrls: ['./ca-trailer-type-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaTrailerTypeFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() trailerTypeArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedTrailerTypeArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.trailerTypeArray,\n this.selectedTrailerTypeArray,\n this.isAscendingSortOrder\n );\n\n this.trailerTypeArray = sortResult.sortedFilterArray;\n this.selectedTrailerTypeArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.trailerTypeArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedTrailerTypeArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedTrailerTypeArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.trailerTypeArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.TRAILER_TYPE_FILTER;\n\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: AllTableAnimationModel) => {\n if (this.type === ToolbarFilterStringEnum.TRAILER_TYPE_FILTER) {\n if (res?.animation === 'trailer-type-update') {\n const newData = res.data.map((type: any) => {\n type['icon'] = FilterIconRoutes.trailerSVG + type.logoName;\n return type;\n });\n this.trailerTypeArray = newData;\n }\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedTrailerTypeArray = [];\n\n this.trailerTypeArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedTrailerTypeArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'trailerTypeFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedTrailerTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n <ng-container *ngIf=\"item.icon\">\n <div class=\"select-item-logo\">\n <svg-icon [src]=\"item.icon\" class=\"truck-logo-icon\"></svg-icon>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedTrailerTypeArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of trailerTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <div class=\"type-icon d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\nimport { AllTableAnimationModel } from '../../../../models/table-models/all-table-animation.model';\nimport { RepairModalResponse } from '../../../../models/repairModalResponse';\n\n@Component({\n standalone: true,\n selector: 'app-ca-pm-filter',\n templateUrl: './ca-pm-filter.component.html',\n styleUrls: ['./ca-pm-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaPmFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() pmSubtype!: string;\n @Input() pmFilterArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedPmFilterArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.pmFilterArray,\n this.selectedPmFilterArray,\n this.isAscendingSortOrder\n );\n\n this.pmFilterArray = sortResult.sortedFilterArray;\n this.selectedPmFilterArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.pmFilterArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedPmFilterArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedPmFilterArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.pmFilterArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.PM_FILTER;\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: AllTableAnimationModel) => {\n if (\n this.type === ToolbarFilterStringEnum.PM_FILTER &&\n this.pmSubtype === ToolbarFilterStringEnum.PM_SUBTYPE_TRUCK\n ) {\n if (\n res?.animation === ToolbarFilterStringEnum.PM_TRAILER_DATA_UPDATE\n ) {\n const data = res.data as RepairModalResponse[];\n if (data[0]?.pmTrucks?.length) {\n const newData = data[0]?.pmTrucks.map((type: any) => {\n type['icon'] = FilterIconRoutes.repairPmSVG + type.logoName;\n type['name'] = type.title;\n\n return type;\n });\n\n this.pmFilterArray = newData;\n } else {\n this.pmFilterArray = [];\n }\n }\n } else if (\n this.type === ToolbarFilterStringEnum.PM_FILTER &&\n this.pmSubtype === ToolbarFilterStringEnum.PM_SUBTYPE_TRAILER\n ) {\n if (\n res?.animation === ToolbarFilterStringEnum.PM_TRAILER_DATA_UPDATE\n ) {\n const data = res.data as RepairModalResponse[];\n if (data[0]?.pmTrailers?.length) {\n const newData = data[0]?.pmTrailers?.map((type: any) => {\n type['icon'] = FilterIconRoutes.repairPmSVG + type.logoName;\n type['name'] = type.title;\n\n return type;\n });\n\n this.pmFilterArray = newData;\n } else {\n this.pmFilterArray = [];\n }\n }\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedPmFilterArray = [];\n\n this.pmFilterArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const data = {\n action: 'Clear',\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedPmFilterArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'pmFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedPmFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedPmFilterArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of pmFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div class=\"user-frame-holder d-flex align-items-center\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\nimport { AllTableAnimationModel } from '../../../../models/table-models/all-table-animation.model';\nimport { RepairModalResponse } from '../../../../models/repairModalResponse';\n\n@Component({\n standalone: true,\n selector: 'app-ca-service-filter',\n templateUrl: './ca-service-filter.component.html',\n styleUrls: ['./ca-service-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaServiceFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() pmSubtype!: string;\n @Input() serviceFilterArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedServiceFilterArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.serviceFilterArray,\n this.selectedServiceFilterArray,\n this.isAscendingSortOrder\n );\n\n this.serviceFilterArray = sortResult.sortedFilterArray;\n this.selectedServiceFilterArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.serviceFilterArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedServiceFilterArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedServiceFilterArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.serviceFilterArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.SERVICE_FILTER;\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: AllTableAnimationModel) => {\n if (res?.animation === ToolbarFilterStringEnum.REPAIR_CATEGORY_UPDATE) {\n const data = res.data as RepairModalResponse[];\n const newData = data.map((type: any) => {\n type['icon'] = FilterIconRoutes.categorySVG + type.logo;\n return type;\n });\n this.serviceFilterArray = newData;\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const data = {\n filterType: this.type,\n action: 'Set',\n queryParams: queryParams,\n subType: subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedServiceFilterArray = [];\n\n this.serviceFilterArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedServiceFilterArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'serviceFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedServiceFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedServiceFilterArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of serviceFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div class=\"user-frame-holder d-flex align-items-center\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animations\nimport { showAnimation } from '../../animations/show.animation';\nimport { closeForm } from '../../animations/close-form.animation';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../ca-filters/utils/svg-routes/ca-filters-svg-routes';\nimport { FilterHelper } from './utils/helpers/filter.helper';\n\n// pipes\nimport { FilterConditionsSetPipe } from './pipes/filter-conditions-set.pipe';\nimport { FilterConditionsClearPipe } from './pipes/filter-conditions-clear.pipe';\nimport { FilterConditionsUserBoxPipe } from './pipes/filter-conditions-user-box.pipe';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../ca-map/enums/toolbar-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../models/array-status.model';\nimport { filterOutput } from '../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../models/filter-output-params.model';\n\n// components\nimport { CaMoneyFilterComponent } from './components/ca-money-filter/ca-money-filter.component';\nimport { CaStatusFilterComponent } from './components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from './components/ca-time-filter/ca-time-filter.component';\nimport { CaUserFilterComponent } from './components/ca-user-filter/ca-user-filter.component';\nimport { CaStateFilterComponent } from './components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from './components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from './components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from './components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from './components/ca-service-filter/ca-service-filter.component';\n\n@Component({\n selector: 'app-ca-filter',\n standalone: true,\n templateUrl: './ca-filter.component.html',\n styleUrls: ['./ca-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n // components\n CaMoneyFilterComponent,\n CaStatusFilterComponent,\n CaTimeFilterComponent,\n CaUserFilterComponent,\n CaStateFilterComponent,\n CaTruckTypeFilterComponent,\n CaTrailerTypeFilterComponent,\n CaPmFilterComponent,\n CaServiceFilterComponent,\n // pipes\n FilterConditionsSetPipe,\n FilterConditionsClearPipe,\n FilterConditionsUserBoxPipe,\n ],\n animations: [showAnimation('showAnimation'), closeForm('closeForm')],\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class CaFilterComponent implements OnDestroy {\n @ViewChild(CaStatusFilterComponent)\n caStatusFilter!: CaStatusFilterComponent;\n\n @ViewChild(CaMoneyFilterComponent)\n caMoneyFilter!: CaMoneyFilterComponent;\n\n @ViewChild(CaTimeFilterComponent)\n caTimeFilter!: CaTimeFilterComponent;\n\n @ViewChild(CaUserFilterComponent)\n caUserFilter!: CaUserFilterComponent;\n\n @ViewChild(CaStateFilterComponent)\n caStateFilter!: CaStateFilterComponent;\n\n @ViewChild(CaTruckTypeFilterComponent)\n caTruckTypeFilter!: CaTruckTypeFilterComponent;\n\n @ViewChild(CaTrailerTypeFilterComponent)\n caTrailerTypeFilter!: CaTrailerTypeFilterComponent;\n\n @ViewChild(CaPmFilterComponent)\n caPmFilter!: CaPmFilterComponent;\n\n @ViewChild(CaServiceFilterComponent)\n caServiceFilter!: CaServiceFilterComponent;\n\n @Input() type!: string;\n @Input() subType: string = ToolbarFilterStringEnum.PENDING_STATUS;\n @Input() unselectedUser!: ArrayStatus[];\n @Input() loadStatusOptionsArray!: ArrayStatus[];\n @Input() truckTypeArray!: ArrayStatus[];\n @Input() trailerTypeArray!: ArrayStatus[];\n @Input() pmFilterArray!: ArrayStatus[];\n @Input() serviceFilterArray!: ArrayStatus[];\n\n @Input() isRepairFilter: boolean = false;\n @Input() isDefFilterHolder: boolean = true;\n @Input() hasNoLeftIcon: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() hasLargeLeftIcon: boolean = false;\n\n @Input() isMoneyFilter: boolean = true;\n @Input() isFuelType: boolean = false;\n @Input() isLoadType: boolean = true;\n @Input() filterTitle!: string;\n\n @Output() setFilter = new EventEmitter<\n filterOutput | filterOutputWithParams\n >();\n\n @Output() clearAll = new EventEmitter<\n filterOutput | filterOutputWithParams\n >();\n\n private destroy$ = new Subject<void>();\n public isSearchExpanded!: boolean;\n public isFilterActive: boolean = false;\n public selectedUser: ArrayStatus[] = [];\n public isAscendingSortOrder: boolean = true;\n\n constructor(private renderer: Renderer2) {}\n\n public sortItems(): void {\n switch (this.type) {\n case ToolbarFilterStringEnum.STATUS_FILTER:\n if (this.caStatusFilter) {\n this.caStatusFilter.sortItems();\n this.isAscendingSortOrder = this.caStatusFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.USER_FILTER:\n if (this.caUserFilter) {\n this.caUserFilter.sortItems();\n this.isAscendingSortOrder = this.caUserFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n if (this.caTruckTypeFilter) {\n this.caTruckTypeFilter.sortItems();\n this.isAscendingSortOrder =\n this.caTruckTypeFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n if (this.caTrailerTypeFilter) {\n this.caTrailerTypeFilter.sortItems();\n this.isAscendingSortOrder =\n this.caTrailerTypeFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.PM_FILTER:\n if (this.caPmFilter) {\n this.caPmFilter.sortItems();\n this.isAscendingSortOrder = this.caPmFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.SERVICE_FILTER:\n if (this.caServiceFilter) {\n this.caServiceFilter.sortItems();\n this.isAscendingSortOrder = this.caServiceFilter.isAscendingSortOrder;\n }\n break;\n\n default:\n this.isAscendingSortOrder = true;\n break;\n }\n }\n\n public showSearch(mod?: string): void {\n const filterSearchHead = this.renderer.selectRootElement(\n '.search-input-header'\n );\n const filterTextHead = this.renderer.selectRootElement('.filter-text-part');\n\n if (mod) {\n this.isSearchExpanded = false;\n filterSearchHead?.classList.remove('activeSearch');\n filterSearchHead?.classList.add('inactiveSearch');\n\n filterTextHead?.classList.add('activeHeader');\n filterTextHead?.classList.remove('inactiveHeader');\n } else {\n filterSearchHead?.classList.add('activeSearch');\n filterSearchHead?.classList.remove('inactiveSearch');\n\n filterTextHead?.classList.remove('activeHeader');\n filterTextHead?.classList.add('inactiveHeader');\n this.isSearchExpanded = true;\n }\n }\n\n public setFilterValue(event: Event): void {\n let filterResult: filterOutput | filterOutputWithParams | undefined;\n\n switch (this.type) {\n case ToolbarFilterStringEnum.MONEY_FILTER:\n if (this.caMoneyFilter) {\n filterResult = this.caMoneyFilter.setFilterValue(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATUS_FILTER:\n if (this.caStatusFilter) {\n filterResult = this.caStatusFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.TIME_FILTER:\n if (this.caTimeFilter) {\n filterResult = this.caTimeFilter.setFilterValue(event);\n }\n break;\n\n case ToolbarFilterStringEnum.USER_FILTER:\n if (this.caUserFilter) {\n filterResult = this.caUserFilter.setFilterValue(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATE_FILTER:\n if (this.caStateFilter) {\n filterResult = this.caStateFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n if (this.caTruckTypeFilter) {\n filterResult = this.caTruckTypeFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n if (this.caTrailerTypeFilter) {\n filterResult = this.caTrailerTypeFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.PM_FILTER:\n if (this.caPmFilter) {\n filterResult = this.caPmFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.SERVICE_FILTER:\n if (this.caServiceFilter) {\n filterResult = this.caServiceFilter.setFilterValue();\n }\n break;\n\n default:\n const action = 'Clear';\n const type = 'Unknown';\n const filterType = 'Unknown';\n const data = {\n action,\n type,\n filterType,\n };\n filterResult = data;\n break;\n }\n\n this.setFilterEmit(filterResult);\n }\n\n public setFilterEmit(\n data: filterOutput | filterOutputWithParams | undefined\n ): void {\n if (this.setFilter) {\n this.setFilter.emit(data);\n }\n }\n\n public clearAllValues(event?: Event): void {\n let filterResult: filterOutput | filterOutputWithParams | undefined;\n\n switch (this.type) {\n case ToolbarFilterStringEnum.MONEY_FILTER:\n if (this.caMoneyFilter) {\n filterResult = this.caMoneyFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATUS_FILTER:\n if (this.caStatusFilter) {\n filterResult = this.caStatusFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.TIME_FILTER:\n if (this.caTimeFilter) {\n filterResult = this.caTimeFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.USER_FILTER:\n if (this.caUserFilter) {\n filterResult = this.caUserFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATE_FILTER:\n if (this.caStateFilter) {\n filterResult = this.caStateFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n if (this.caTruckTypeFilter) {\n filterResult = this.caTruckTypeFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n if (this.caTrailerTypeFilter) {\n filterResult = this.caTrailerTypeFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.PM_FILTER:\n if (this.caPmFilter) {\n filterResult = this.caPmFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.SERVICE_FILTER:\n if (this.caServiceFilter) {\n filterResult = this.caServiceFilter.clearAll(event);\n }\n break;\n\n default:\n const action = 'Clear';\n const type = 'Unknown';\n const filterType = 'Unknown';\n const data = {\n action,\n type,\n filterType,\n };\n filterResult = data;\n break;\n }\n\n this.clearAllValuesEmit(filterResult);\n }\n\n public clearAllValuesEmit(\n data: filterOutput | filterOutputWithParams | undefined\n ): void {\n if (this.setFilter) {\n this.clearAll.emit(data);\n }\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"main-popover-body\">\n <ng-container *ngIf=\"isDefFilterHolder\">\n <div\n [@showAnimation]=\"!!isFilterActive\"\n class=\"filter-holder d-flex justify-content-start align-items-start\"\n [class.state-filter]=\"type === 'stateFilter'\"\n [class.department-filter]=\"hasNoLeftIcon\"\n [class.status-filter]=\"type === 'statusFilter'\"\n [class.pm-filter]=\"hasLeftSideIcon\"\n [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n [class.money-filter]=\"type === 'moneyFilter'\"\n >\n <div\n class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n >\n <div\n class=\"user-title-text counter-padd-title d-flex align-items-center fw-bold\"\n >\n {{ filterTitle | uppercase }}\n\n <ng-container\n *ngIf=\"type === 'userFilter' && caUserFilter?.selectedUser?.length\"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center fw-bold ms-1\"\n >\n {{ caUserFilter?.selectedUser?.length }}\n </div>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n type !== 'stateFilter' &&\n type !== 'statusFilter' &&\n type !== 'userFilter' &&\n type !== 'moneyFilter' &&\n type !== 'timeFilter'\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center fw-bold ms-1\"\n >\n {{\n type\n | filterConditionsUserBox\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caServiceFilter\n }}\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n type === 'serviceFilter' ||\n type === 'pmFilter' ||\n type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerTypeFilter' ||\n type === 'trailerFilter' ||\n type === 'statusFilter' ||\n type === 'userFilter';\n else truckFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text ta-font-medium d-flex align-items-center fw-bold justify-content-end\"\n >\n {{\n type === 'statusFilter' || type === 'userFilter'\n ? 'Count'\n : 'Sort Text'\n }}\n <svg-icon\n class=\"sort-arrow ms-1\"\n [class.rotate]=\"!isAscendingSortOrder\"\n [src]=\"getSvgPath('sortArrowSvgRoute')\"\n [svgStyle]=\"{\n 'width.px': '18',\n 'height.px': '18',\n }\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #truckFilter>\n <ng-container\n *ngIf=\"\n (type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerFilter') &&\n isRepairFilter;\n else stateFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text d-flex align-items-center fw-bold justify-content-end\"\n >\n Count\n <svg-icon [src]=\"getSvgPath('sortArrowSvgRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n <ng-template #stateFilter>\n <ng-container *ngIf=\"type === 'stateFilter'; else searchState\">\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center fw-bold ms-1\"\n >\n {{\n (caStateFilter?.canadaSelectedStates)!.length +\n (caStateFilter?.usaSelectedStates)!.length\n }}\n </div>\n </ng-container>\n </ng-template>\n <ng-template #searchState>\n <ng-container *ngIf=\"!searchState\">\n <div\n class=\"search-icon-holder d-flex justify-content-center align-items-center\"\n (click)=\"showSearch()\"\n >\n <svg-icon [src]=\"getSvgPath('searchIconRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"filter-body-holder\">\n <ng-container [ngSwitch]=\"type\">\n <app-ca-money-filter\n *ngSwitchCase=\"'moneyFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [moneyFilter]=\"isMoneyFilter\"\n [fuelType]=\"isFuelType\"\n [loadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n <app-ca-status-filter\n *ngSwitchCase=\"'statusFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [loadStatusOptionsArray]=\"loadStatusOptionsArray\"\n />\n <app-ca-time-filter\n *ngSwitchCase=\"'timeFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n <app-ca-user-filter\n *ngSwitchCase=\"'userFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n />\n <app-ca-state-filter\n *ngSwitchCase=\"'stateFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n <app-ca-truck-type-filter\n *ngSwitchCase=\"'truckTypeFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [truckTypeArray]=\"truckTypeArray\"\n />\n <app-ca-trailer-type-filter\n *ngSwitchCase=\"'trailerTypeFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [trailerTypeArray]=\"trailerTypeArray\"\n />\n <app-ca-pm-filter\n *ngSwitchCase=\"'pmFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n <app-ca-service-filter\n *ngSwitchCase=\"'serviceFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [serviceFilterArray]=\"serviceFilterArray\"\n />\n </ng-container>\n </div>\n <div\n class=\"buttons-holder d-flex justify-content-between align-items-center\"\n >\n <div\n (click)=\"clearAllValues($event)\"\n class=\"button-clear d-flex justify-content-center align-items-center fw-bold\"\n [class.active]=\"\n type\n | filterConditionsClear\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caUserFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caServiceFilter\n \"\n >\n Clear All\n </div>\n <div\n (click)=\"setFilterValue($event)\"\n class=\"button-set d-flex justify-content-center align-items-center fw-bold\"\n [class.active]=\"\n type\n | filterConditionsSet\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caUserFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caServiceFilter\n \"\n >\n Set\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\ninterface RadioButton {\n id: number;\n label: string;\n value: string;\n name: string; // must be same for all radio buttons\n checked: boolean;\n isActive?: boolean; // this field change in this component\n}\n\n@Component({\n selector: 'app-ca-input-radiobuttons',\n templateUrl: './ca-input-radiobuttons.component.html',\n styleUrls: ['./ca-input-radiobuttons.component.scss'],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class CaInputRadiobuttonsComponent {\n @Input() buttons: RadioButton[] | null = null;\n @Input() disabled: boolean = false;\n @Input() displayRequiredNote?: boolean = false;\n\n @Output() changedValue: EventEmitter<RadioButton[]> = new EventEmitter<\n RadioButton[]\n >(undefined);\n\n public onChange(button: RadioButton): void {\n this.buttons?.filter((item) => (item.checked = false));\n button.checked = true;\n this.changedValue.emit(this.buttons!);\n }\n\n public identity(index: number, item: any): string {\n return item.value;\n }\n}\n","<div\n class=\"ta-input-radiobutons\"\n [ngClass]=\"{ disabled, required: displayRequiredNote }\"\n>\n <label\n *ngFor=\"let button of buttons; trackBy: identity\"\n class=\"d-flex justify-content-center align-items-center radio-button-label\"\n [ngClass]=\"{\n checked: button.checked,\n 'no-checked': !button.checked,\n disabled,\n required: displayRequiredNote\n }\"\n for=\"{{ button.id }}\"\n >\n <input\n [id]=\"button.id\"\n [name]=\"button.name\"\n [value]=\"button.value\"\n [checked]=\"button.checked\"\n type=\"radio\"\n class=\"radio-button\"\n (change)=\"onChange(button)\"\n />\n <span class=\"radio-button-text\">{{ button.label }}</span>\n </label>\n</div>\n","export class MapDropdownSvgRoutes {\n static likeRoute: string = \"assets/ca-components/svg/map/like.svg\";\n static dislikeRoute: string = \"assets/ca-components/svg/map/dislike.svg\";\n static reviewRoute: string = \"assets/ca-components/svg/map/review.svg\";\n static phoneRoute: string = \"assets/ca-components/svg/map/phone.svg\";\n static emailRoute: string = \"assets/ca-components/svg/map/email.svg\";\n static addressRoute: string = \"assets/ca-components/svg/map/address.svg\";\n static cornerDownArrowRoute: string = \"assets/ca-components/svg/popup/resize-arrow.svg\";\n static calenderRoute: string = \"assets/ca-components/svg/map/calender_last_used.svg\";\n static calenderTwoRoute: string = \"assets/ca-components/svg/map/18px_tooltip.svg\";\n static cornerTopArrowRoute: string = \"assets/ca-components/svg/map/arrow_corner_top.svg\";\n static vechileRoute: string = \"assets/ca-components/svg/map/accident_vechile.svg\";\n static injuryRoute: string = \"assets/ca-components/svg/map/accident_injury.svg\";\n static hazmatRoute: string = \"assets/ca-components/svg/map/accident_hazmat.svg\";\n static towingRoute: string = \"assets/ca-components/svg/map/accident_towing.svg\";\n static accidentCalenderRoute: string = \"assets/ca-components/svg/map/accident_calender.svg\";\n static ossRoute: string = \"assets/ca-components/svg/map/oss.svg\";\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n//Module\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule, SvgIconRegistryService } from 'angular-svg-icon';\n\n//Components\nimport { CaDetailsDropdownComponent } from '../ca-details-dropdown/ca-details-dropdown.component';\n\n//json\nimport taDetailDropdownJson from '../../../assets/json/ta-detail-dropdown.json';\n\n//svg-routes\nimport { MapDropdownSvgRoutes } from '../ca-map-dropdown/utils/svg-routes/map-dropdown-svg-routes';\n\n//models\nimport {\n DropDownData,\n IDropDownActions,\n} from '../ca-details-dropdown/models/detail-dropdown.model';\n\n@Component({\n selector: 'app-ca-map-dropdown',\n standalone: true,\n imports: [\n //modules\n CommonModule,\n AngularSvgIconModule,\n //components\n CaDetailsDropdownComponent,\n ],\n templateUrl: './ca-map-dropdown.component.html',\n styleUrls: ['./ca-map-dropdown.component.scss'],\n providers: [SvgIconRegistryService],\n})\nexport class CaMapDropdownComponent {\n @Input() isAccidentMap: boolean = false;\n @Output() bodyActions: EventEmitter<IDropDownActions> = new EventEmitter();\n public isPopupShown: boolean = false;\n public isHidden: boolean = false;\n public isDropdownActive: boolean = true;\n public data: DropDownData[] = taDetailDropdownJson.taDetailDropDown;\n\n public openSideMenu(): void {\n this.isPopupShown = !this.isPopupShown;\n }\n\n public showHiddenData(): void {\n this.isDropdownActive = !this.isDropdownActive;\n this.isHidden = !this.isHidden;\n }\n\n public callBodyAction(action: IDropDownActions): void {\n this.bodyActions.emit(action);\n }\n\n public getSvgPath(propertyName: keyof typeof MapDropdownSvgRoutes): string {\n return MapDropdownSvgRoutes[propertyName] as string;\n }\n}\n","<ng-container *ngIf=\"!isAccidentMap\">\n <div class=\"marker-container\" >\n <div class=\"heading-container\">\n <div class=\"heading d-flex justify-content-between align-items-center\">\n <span class=\"header ca-font-extra-bold\">DOGMA BREWERY LOGISTICS</span>\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n <div class=\"action d-flex justify-content-start align-items-center align-content-center\">\n <div class=\"side-space d-flex justify-content-start align-items-center\"><svg-icon [src]=\"getSvgPath('likeRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">2</span></div>\n <div class=\"side-space d-flex justify-content-start align-items-center\"><svg-icon [src]=\"getSvgPath('dislikeRoute')\"></svg-icon><span class=\"count grey-color ca-font-semi-bold\">0</span></div>\n <div class=\"side-space d-flex justify-content-start align-items-center\"><svg-icon [src]=\"getSvgPath('reviewRoute')\"></svg-icon><span class=\"count grey-color ca-font-semi-bold\">0</span></div>\n </div>\n </div>\n\n <div class=\"personal-info d-flex flex-column align-content-center\"> \n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('phoneRoute')\"></svg-icon><span class=\"info ca-font-regular\">(123) 456-7890</span></div>\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('emailRoute')\"></svg-icon><span class=\"info ca-font-regular\">repairs-office@ivs-trucking.com</span></div>\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('addressRoute')\"></svg-icon><span class=\"info ca-font-regular\">3181 Donald Hollowell Pkwy NW Atlanta, GA 30318, USA</span></div>\n </div>\n\n <div class=\"working-info\">\n <div class=\"working-heading ca-font-extra-bold\">Available Hours</div>\n <div class=\"working-info-detail d-flex justify-content-between\">\n <div>\n <div class=\"working-info-item ca-font-bold\">Shipping</div>\n <div class=\"working-time ca-font-regular\">10:00 AM - 02:00 PM</div>\n </div>\n <div>\n <div class=\"working-info-item ca-font-bold\">Receiving </div>\n <div class=\"working-time ca-font-regular\">08:00 AM - 07:00 PM\n </div>\n </div>\n <div class=\"dropdown-arrow align-self-end\">\n <svg-icon [src]=\"getSvgPath('cornerDownArrowRoute')\" (click)=\"showHiddenData()\" *ngIf=\"isDropdownActive\"></svg-icon>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"isHidden\">\n <div class=\"load-info\">\n <div class=\"load-heading ca-font-semi-bold d-flex align-content-center\"><span>Load</span><span class=\"load-head-count\">12</span></div>\n <div class=\"load-info-detail d-flex justify-content-between\">\n <div>\n <div class=\"load-info-item ca-font-regular\">Pickup <span class=\"item-count ca-font-semi-bold\">7</span></div>\n <div class=\"loading-hours\">Avg. Loading <span class=\"load-time ca-font-medium\">32m 45s</span></div>\n </div>\n <div>\n <div class=\"load-info-item ca-font-regular\">Delivery <span class=\"item-count ca-font-semi-bold\">5</span></div>\n <div class=\"loading-hours\">Avg. Offloading <span class=\"load-time ca-font-medium\">43m 23s</span>\n </div>\n </div>\n <div>\n </div>\n </div>\n </div>\n \n <div class=\"avg-info\">\n <div class=\"avg-info-detail d-flex justify-content-between\">\n <div class=\"avg-item d-flex align-items-center\">\n <svg-icon [src]=\"getSvgPath('calenderRoute')\"></svg-icon><span class=\"item-date\">04/04/24</span>\n </div>\n <div class=\"avg-item d-flex align-items-center\">\n <svg-icon [src]=\"getSvgPath('calenderTwoRoute')\"></svg-icon><span class=\"item-date\">04/04/24</span>\n </div>\n <div class=\"avg-item d-flex align-items-center\">\n <svg-icon [src]=\"getSvgPath('cornerTopArrowRoute')\" (click)=\"showHiddenData()\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n</ng-container>\n<ng-container *ngIf=\"isAccidentMap\">\n <div class=\"infowindow-container\">\n\n <div class=\"heading-container\">\n <div class=\"heading d-flex justify-content-between align-items-center\">\n <span class=\"header ca-font-extra-bold\" >MS1017010339</span>\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id!\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n <div class=\"action d-flex justify-content-start align-items-center align-content-center\">\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('vechileRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">2 Vehicle</span></div>\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('injuryRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\"> 4 Injury</span></div>\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('hazmatRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">Hazmat</span></div>\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('towingRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">Towing</span></div>\n </div>\n </div>\n\n <div class=\"personal-info d-flex flex-column align-content-center\">\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('accidentCalenderRoute')\"></svg-icon><span class=\"info ca-font-regular\">04/04/24 08:47 AM</span></div>\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('addressRoute')\"></svg-icon><span class=\"info ca-font-regular\">3181 Donald Hollowell Pkwy NW Atlanta, GA 30318, USA</span></div>\n </div>\n <div class=\"weight-info\" >\n <div class=\"weight-heading ca-font-semi-bold d-flex align-content-center\"><span>Total Weight</span><span class=\"weight-head-count\">21</span></div>\n <div class=\"weight-info-detail d-flex justify-content-between\">\n <div>\n <div class=\"weight-info-item\"><span class=\"item-count ca-font-regular\">Severity Weight</span><span class=\"weight-time ca-font-extra-bold\">7</span> </div>\n </div>\n <div>\n <div class=\"weight-info-item\"><span class=\"item-count ca-font-regular\">Time Weight</span> <span class=\"weight-time ca-font-extra-bold\">3</span></div>\n </div>\n <div class=\"dropdown-arrow align-self-end\">\n <svg-icon [src]=\"getSvgPath('cornerDownArrowRoute')\" (click)=\"showHiddenData()\" *ngIf=\"isDropdownActive\"></svg-icon>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isHidden\">\n\n <div class=\"transport-info\">\n <div class=\"transport-container\">\n <div class=\"driver-info d-flex justify-content-between\">\n <div>\n <div class=\"title ca-font-bold\">Driver </div>\n <div class=\"detail ca-font-regular\">A. Djordjevic <svg-icon [src]=\"getSvgPath('ossRoute')\"></svg-icon></div>\n </div>\n <div class=\"side-space\">\n <div class=\"title ca-font-bold\">Co-Driver </div>\n <div class=\"detail ca-font-regular\">Angelo Trotter</div>\n </div>\n <div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"transport-info\">\n <div class=\"transport-container\">\n <div class=\"truck-info d-flex justify-content-between\">\n <div>\n <div class=\"title ca-font-bold\">Truck </div>\n <div class=\"detail ca-font-regular\">26985A</div>\n </div>\n <div class=\"side-space\">\n <div class=\"title ca-font-bold\">Trailer </div>\n <div class=\"detail ca-font-regular\">W156100</div>\n </div>\n <div class=\"dropdown-arrow align-self-end\">\n <svg-icon [src]=\"getSvgPath('cornerTopArrowRoute')\" (click)=\"showHiddenData()\" ></svg-icon>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n</ng-container>","export enum GoogleMapEnum {\n STROKE_OPACITY = 0.4,\n STROKE_COLOR = \"blue\",\n}\n","export class MapHelper {\n static getIconForUnitViewStops = (color: string, id: number | string) => {\n const svgTemplate = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"31\" height=\"34\" viewBox=\"0 0 44 48.364\">\n <defs>\n <filter id=\"Path_41824\" x=\"0\" y=\"0\" width=\"44\" height=\"48.364\" filterUnits=\"userSpaceOnUse\">\n <feOffset input=\"SourceAlpha\" />\n <feGaussianBlur stdDeviation=\"2\" result=\"blur\"/>\n <feFlood flood-opacity=\"0.149\" />\n <feComposite operator=\"in\" in2=\"blur\"/>\n <feComposite in=\"SourceGraphic\" />\n </filter>\n </defs>\n <g id=\"Group_103737\" data-name=\"Group 103737\" transform=\"translate(-1095 -945)\">\n <circle id=\"Ellipse_9165\" data-name=\"Ellipse 9165\" cx=\"4\" cy=\"4\" r=\"6\" transform=\"translate(1113 983)\" fill=\"${color}\"/>\n <circle id=\"Ellipse_9166\" data-name=\"Ellipse 9166\" cx=\"2\" cy=\"2\" r=\"2\"\n transform=\"translate(1115 985.5)\" fill=\"#fff\" />\n </g>\n <g transform=\"matrix(1, 0, 0, 1, 0, 0)\" filter=\"url(#Path_41824)\">\n <path id=\"Path_41824-2\" data-name=\"Path 41824\" d=\"M32,15.962A15.956,15.956,0,0,1,24.942,29.2c-.035.026-.551.345-.755.479-4.9,3.113-6.863,5.215-7.654,6.394a.641.641,0,0,1-.886.18.665.665,0,0,1-.18-.18c-.791-1.18-2.762-3.281-7.654-6.394-.223-.138-.719-.452-.755-.479A15.975,15.975,0,1,1,32,15.962\"\n transform=\"translate(6 6)\" fill=\"#fff\"/>\n </g>\n <circle id=\"Ellipse_9255\" data-name=\"Ellipse 9255\" cx=\"13\" cy=\"13\" r=\"13\" transform=\"translate(9 9.001)\" fill= \"${color}\"/>\n <text dominant-baseline=\"middle\" text-anchor=\"middle\" id=\"_1\" data-name=\"1\" transform=\"translate(22 27.001)\" fill=\"#fff\" font-size=\"14\"\n font-family=\"Montserrat-Bold, Montserrat\" font-weight=\"700\"><tspan y=\"-3\">${id}</tspan>\n </text>\n </svg>`;\n const url =\n \"data:image/svg+xml;charset=UTF-8,\" + encodeURIComponent(svgTemplate);\n return url;\n };\n\n static getIconForDriveMiles = (color: string, id: number | string) => {\n const svgTemplate = `<svg width=\"18\" height=\"25\" viewBox=\"0 0 18 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"9\" cy=\"22\" r=\"3\" fill=\"${color}\"/>\n <circle cx=\"9\" cy=\"22\" r=\"1.5\" fill=\"white\"/>\n <path d=\"M18 9.09915C18 11.3366 17.166 13.4937 15.66 15.1491L9.39649 21.8286C9.18153 22.0572 8.81849 22.0572 8.60352 21.8286L2.33997 15.1491C-1.85302 10.5362 -0.359978 2.75614 6.409 0.414645C7.55604 0.0176113 8.79346 -0.0978672 9.99354 0.0836513C14.9535 0.833651 18.0015 4.81961 18 9.09915Z\" fill=\"${color}\"/>\n <circle cx=\"9\" cy=\"9\" r=\"7\" fill=\"white\"/>\n <text x=\"9\" y=\"9\" text-anchor=\"middle\" fill=\"${color}\" font-size=\"8\" font-family=\"Montserrat-Bold, Montserrat\" font-weight=\"600\" dy=\".3em\">${id}</text>\n </svg>`;\n const url =\n \"data:image/svg+xml;charset=UTF-8,\" + encodeURIComponent(svgTemplate);\n return url;\n };\n\n static getLocationIcon(color: string) {\n let svgTemplate = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\"><g transform=\"translate(-181 -295)\"><rect width=\"13\" height=\"13\" rx=\"6.5\" transform=\"translate(181 295)\" fill=\"${color}\"/><rect width=\"5\" height=\"5\" rx=\"2.5\" transform=\"translate(185 299)\" fill=\"#fff\"/></g></svg>`;\n const url =\n \"data:image/svg+xml;charset=UTF-8,\" + encodeURIComponent(svgTemplate);\n return url;\n }\n\n static getFillColorForState(\n stateDensity: number,\n View: string\n ): { fillColor: string; fillOpacity: number } {\n let fillColor = \"#EEEEEE\";\n let fillOpacity = 1;\n\n const getFleetViewColor = (density: number) => {\n if (density < 50) return { fillColor: \"#EF5350\", fillOpacity: 0.8 };\n else if (density < 100) return { fillColor: \"#EF5350\", fillOpacity: 1 };\n else if (density < 500) return { fillColor: \"#00967E\", fillOpacity: 0.8 };\n else if (density < 1000) return { fillColor: \"#00967E\", fillOpacity: 1 };\n return { fillColor: \"#EEEEEE\", fillOpacity: 1 };\n };\n\n const getUnitViewColor = (density: number) => {\n if (density < 50) return { fillColor: \"#FFA726\", fillOpacity: 0.3 };\n else if (density < 100) return { fillColor: \"#FFA726\", fillOpacity: 0.6 };\n else if (density < 500) return { fillColor: \"#FFA726\", fillOpacity: 0.9 };\n else if (density < 1000) return { fillColor: \"#FFA726\", fillOpacity: 1 };\n return { fillColor: \"#EEEEEE\", fillOpacity: 1 };\n };\n\n switch (View) {\n case \"fleetView\":\n ({ fillColor, fillOpacity } = getFleetViewColor(stateDensity));\n break;\n case \"unitView\":\n ({ fillColor, fillOpacity } = getUnitViewColor(stateDensity));\n break;\n default:\n break;\n }\n return {\n fillColor: fillColor,\n fillOpacity: fillOpacity,\n };\n }\n}\n","export class MapSvgRoutes {\n static markerSvgRoute: string = \"assets/ca-components/svg/map/routing_marker.svg\";\n static phone: string = \"assets/ca-components/svg/map/phone.svg\";\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\n\n//Modules\nimport {\n GoogleMap,\n GoogleMapsModule,\n MapInfoWindow,\n MapMarker,\n} from '@angular/google-maps';\n\n//icon\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { CaMapDropdownComponent } from '../ca-map-dropdown/ca-map-dropdown.component';\n\n//Enums\nimport { GoogleMapEnum } from '../ca-map/enums/google-map.enum';\n//models\nimport {\n IMapMarkers,\n IMapRoutePath,\n IMapStories,\n} from '../ca-map/models/map.model';\n//HelperFuntion\nimport { MapHelper } from '../ca-map/utils/helpers/map.helper';\n//svg-routes\nimport { MapSvgRoutes } from '../ca-map/utils/map-svg-routes/map-svg-routes';\n\n@Component({\n selector: 'app-ca-map',\n templateUrl: './ca-map.component.html',\n styleUrls: ['./ca-map.component.scss'],\n standalone: true,\n imports: [\n //Modules\n GoogleMapsModule,\n CommonModule,\n AngularSvgIconModule,\n //Components\n CaMapDropdownComponent,\n ],\n})\nexport class CaMapComponent {\n constructor(public cd: ChangeDetectorRef) {}\n @Input() data!: IMapStories | any;\n @Output() markerClick = new EventEmitter<google.maps.MapMouseEvent>();\n @ViewChild(GoogleMap, { static: false }) maps!: GoogleMap;\n @ViewChildren('marker') marker!: QueryList<MapMarker>;\n @ViewChildren(MapInfoWindow) infoWindowsView!: QueryList<MapInfoWindow>;\n @ViewChildren('markerRouting') markerRouting!: QueryList<MapMarker>;\n @ViewChildren(MapInfoWindow)\n public infoWindowsViewRouting!: QueryList<MapInfoWindow>;\n public currentlyOpenWindow!: MapInfoWindow | null;\n public currentlyOpenWindowIndex: number | null = null;\n public currentlyOpenWindowRouting!: MapInfoWindow | null;\n public currentlyOpenWindowIndexRouting: number | null = null;\n public showLabel: boolean = true;\n public previousIconUrl!: string;\n public focusedIcon!: number;\n public previousIconUrlRouting!: string;\n public focusedIconRouting!: number;\n private directionService = new google.maps.DirectionsService();\n public directionsRenderers: google.maps.DirectionsRenderer[] = [];\n public initialIcons: {\n url: string;\n labelOrigin?: google.maps.LatLngLiteral;\n }[] = [];\n public initialMarkerIcons: {\n url: string;\n labelOrigin?: google.maps.LatLngLiteral;\n }[] = [];\n\n ngOnInit() {\n this.storeInitialIconForMarker();\n this.storeInitialIconForRoutingMarker();\n // Reset all icons to their initial state on page load\n this.resetMarkersIcons();\n this.resetRoutingMarkers();\n //Display routes for routingMarkers\n this.calculateAndDisplayRoute();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['routingMarkers']) {\n this.data.routingMarkers = changes['routingMarkers'].currentValue;\n }\n }\n\n public storeInitialIconForMarker(): void {\n this.data!.markers?.forEach((marker: IMapMarkers, index: number) => {\n this.initialMarkerIcons[index] = {\n url: marker.icon!.url,\n labelOrigin: marker.icon!.labelOrigin,\n };\n });\n }\n\n public storeInitialIconForRoutingMarker(): void {\n this.data.routingMarkers?.forEach((marker: IMapMarkers, index: number) => {\n this.initialIcons[index] = {\n url: marker.icon!.url,\n labelOrigin: marker.icon!.labelOrigin,\n };\n });\n }\n\n public onMarkerClick(\n i: number,\n event: google.maps.MapMouseEvent,\n markeritem: IMapMarkers\n ): void {\n if (markeritem?.infoWindowContent) {\n if (this.currentlyOpenWindowIndex === i && this.currentlyOpenWindow) {\n const infoWindow = this.infoWindowsView.toArray()[i];\n // Close the currently open info window and reset the index\n this.data.markers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n item.icon = {\n url: this.initialMarkerIcons[index]!.url,\n labelOrigin: this.initialMarkerIcons[index]!.labelOrigin!,\n };\n }\n });\n\n infoWindow.close();\n this.currentlyOpenWindowIndex = null;\n } else {\n const markerIndex = this.marker.toArray()[i];\n const infoWindow = this.infoWindowsView.toArray()[i];\n if (this.currentlyOpenWindow) {\n this.currentlyOpenWindow.close();\n }\n if (infoWindow) {\n this.data.markers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n this.focusedIcon = i;\n this.showLabel = false;\n item.icon = {\n url: this.initialMarkerIcons[index]!.url,\n scaledSize: new google.maps.Size(70, 70),\n };\n } else {\n this.showLabel = true;\n item.icon = {\n url: this.initialMarkerIcons[index]!.url,\n labelOrigin: this.initialMarkerIcons[index]!.labelOrigin,\n };\n }\n });\n\n infoWindow.open(markerIndex);\n this.currentlyOpenWindow = infoWindow;\n this.currentlyOpenWindowIndex = i;\n this.markerClick.emit(event);\n }\n }\n } else {\n return;\n }\n }\n\n public setDirectionsOnMap(): void {\n if (this.maps?.googleMap) {\n this.directionsRenderers.forEach((renderer) =>\n renderer.setMap(this.maps?.googleMap!)\n );\n }\n }\n\n public calculateAndDisplayRoute(): void {\n if (this.data.routePaths) {\n // Clear previous directions renderers\n this.directionsRenderers.forEach((renderer) => renderer.setMap(null));\n this.directionsRenderers = [];\n\n this.data.routePaths!.forEach((route: IMapRoutePath) => {\n const request: google.maps.DirectionsRequest = {\n origin: route.path[0],\n destination: route.path[route.path.length - 1],\n waypoints: route.path\n .slice(1, route.path.length - 1)\n .map((position) => ({ location: position })),\n travelMode: google.maps.TravelMode.BICYCLING,\n };\n\n this.directionService.route(request, (result, status) => {\n if (status === google.maps.DirectionsStatus.OK && result?.routes[0]) {\n const directionsRenderer = new google.maps.DirectionsRenderer({\n suppressInfoWindows: true,\n suppressMarkers: true,\n preserveViewport: true,\n polylineOptions: {\n strokeColor: route.strokeColor || GoogleMapEnum.STROKE_COLOR,\n strokeOpacity:\n route.strokeOpacity || GoogleMapEnum.STROKE_OPACITY,\n },\n });\n directionsRenderer.setDirections(result);\n this.directionsRenderers.push(directionsRenderer);\n this.setDirectionsOnMap();\n }\n });\n });\n } else {\n return;\n }\n }\n\n public onRoutingMarkerClick(\n i: number,\n event: google.maps.MapMouseEvent,\n markeritem: IMapMarkers\n ): void {\n if (markeritem?.infoWindowContent) {\n if (\n this.currentlyOpenWindowIndexRouting === i &&\n this.currentlyOpenWindowRouting\n ) {\n const infoWindow = this.infoWindowsViewRouting.toArray()[i];\n // Close the currently open info window and reset the index\n this.data.routingMarkers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n item.icon = {\n url: this.initialIcons[index]!.url,\n labelOrigin: this.initialIcons[index]!.labelOrigin,\n };\n }\n });\n\n infoWindow.close();\n this.currentlyOpenWindowIndexRouting = null;\n } else {\n const markerIndex = this.markerRouting.toArray()[i];\n const infoWindow = this.infoWindowsViewRouting.toArray()[i];\n if (this.currentlyOpenWindowRouting) {\n this.currentlyOpenWindowRouting.close();\n }\n if (infoWindow) {\n // Restore the previous icon for the previously focused routing marker\n if (\n this.focusedIconRouting !== undefined &&\n this.focusedIconRouting !== i\n ) {\n const previousFocusedItem =\n this.data.routingMarkers![this.focusedIconRouting];\n if (previousFocusedItem) {\n previousFocusedItem.icon = {\n url: this.initialIcons[this.focusedIconRouting].url,\n labelOrigin:\n this.initialIcons[this.focusedIconRouting].labelOrigin,\n };\n }\n }\n\n // Update the current marker\n this.data.routingMarkers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n this.previousIconUrlRouting = item.icon ? item.icon.url : '';\n this.focusedIconRouting = i;\n this.showLabel = false;\n item.icon = {\n url:\n this.data.isUnitViewStops || this.data.isDriverMiles\n ? item.icon!.url\n : MapSvgRoutes.markerSvgRoute,\n };\n } else {\n this.showLabel = true;\n }\n });\n\n infoWindow.open(markerIndex);\n this.currentlyOpenWindowRouting = infoWindow;\n this.currentlyOpenWindowIndexRouting = i;\n this.markerClick.emit(event);\n }\n }\n } else {\n return;\n }\n }\n\n ngAfterViewInit() {\n this.maps.googleMap?.addListener('click', () => {\n this.infoWindowsView.forEach((window: MapInfoWindow) => {\n window.close();\n this.currentlyOpenWindow = null;\n });\n this.infoWindowsViewRouting.forEach((window: MapInfoWindow) => {\n window.close();\n this.currentlyOpenWindowRouting = null;\n });\n this.data.markers?.map((item: IMapMarkers, i: number) => {\n if (i === this.focusedIcon) {\n item.icon = { url: item.icon ? item.icon.url : '' };\n this.cd.detectChanges();\n }\n });\n\n this.data.routingMarkers?.map((item: IMapMarkers, i: number) => {\n if (i === this.focusedIconRouting) {\n item.icon = {\n url: this.initialIcons[i].url,\n };\n this.cd.detectChanges();\n }\n });\n });\n }\n\n public resetMarkersIcons(): void {\n this.data.markers?.forEach((marker: IMapMarkers, index: number) => {\n marker.icon = {\n url: this.initialMarkerIcons[index].url,\n labelOrigin: this.initialMarkerIcons[index].labelOrigin,\n };\n });\n this.cd.detectChanges();\n }\n\n public resetRoutingMarkers(): void {\n this.data.routingMarkers?.forEach((marker: IMapMarkers, index: number) => {\n marker.icon = {\n url: marker.icon!.url,\n labelOrigin: marker.icon!.labelOrigin,\n };\n });\n }\n\n public onMapReady(): {\n fillColor?: string;\n strokeColor?: string;\n strokeWeight?: number;\n fillOpacity?: number;\n } | void {\n if (this.data.stateBoundariesUrl) {\n const stateBoundariesUrl = this.data.stateBoundariesUrl.url;\n this.maps.googleMap?.data.loadGeoJson(stateBoundariesUrl);\n\n this.maps.googleMap?.data.setStyle((feature) => {\n const stateDensity = feature.getProperty('density');\n const { fillColor, fillOpacity } = MapHelper.getFillColorForState(\n stateDensity as number,\n this.data.view || ''\n );\n return {\n fillColor: fillColor,\n strokeColor: '#EEEEEE',\n strokeWeight: 0.6,\n fillOpacity: fillOpacity,\n };\n });\n } else {\n return;\n }\n }\n\n public identity(index: number): number {\n return index;\n }\n\n ngOnDestroy() {\n this.directionsRenderers.forEach((renderer) => renderer.setMap(null));\n }\n}\n","<google-map\n height=\"500px\"\n width=\"100%\"\n [zoom]=\"data.mapZoom\"\n [center]=\"data.center\"\n [options]=\"data.mapOptions\"\n (idle)=\"onMapReady()\"\n>\n <map-marker\n #marker=\"mapMarker\"\n *ngFor=\"let markeritem of data.markers; let i = index; trackBy: identity\"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIcon !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsView=\"mapInfoWindow\">\n <app-ca-map-dropdown\n [isAccidentMap]=\"data.isAccidentMap ?? false\"\n ></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n <map-marker\n *ngFor=\"let marker of data.clustermarkers; let i = index; trackBy: identity\"\n [position]=\"marker.position\"\n [icon]=\"marker.icon\"\n [label]=\"marker.label!\"\n [title]=\"marker?.title!\"\n >\n </map-marker>\n\n <map-marker\n #markerRouting=\"mapMarker\"\n *ngFor=\"\n let markeritem of data.routingMarkers;\n let i = index;\n trackBy: identity\n \"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIconRouting !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onRoutingMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsViewRouting=\"mapInfoWindow\">\n <app-ca-map-dropdown [isAccidentMap]=\"false\"></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n</google-map>\n","import { DomSanitizer } from \"@angular/platform-browser\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"safeHtml\", standalone: true })\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {}\n\n transform(value: string) {\n return value ? this.sanitized.bypassSecurityTrustHtml(value) : \"\";\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n HostListener,\n} from \"@angular/core\";\n\n@Directive({\n selector: \"[Placeholder]\",\n standalone: true,\n})\nexport class PlaceholderDirective {\n @Input() placeholder: string = \"\";\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.updatePlaceholder();\n }\n\n @HostListener(\"input\") onInput() {\n this.updatePlaceholder();\n }\n\n @HostListener(\"focus\") onFocus() {\n this.updatePlaceholder(true);\n }\n\n @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: KeyboardEvent) {\n this.updatePlaceholder(true);\n }\n\n private updatePlaceholder(focus: boolean = false): void {\n const element = this.el.nativeElement;\n if (!element.innerText.trim() && !focus) {\n this.renderer.setProperty(element, \"innerText\", this.placeholder);\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n } else if (element.innerText === this.placeholder && focus) {\n this.renderer.setProperty(element, \"innerText\", \"\");\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n } else if (element.innerText === this.placeholder) {\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n } else {\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n }\n }\n}\n","export class CopyPasteHelper {\n static onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedData = event.clipboardData!.getData(\"text/plain\");\n document.execCommand(\"insertText\", false, pastedData);\n }\n}\n","import { NoteActiveOptions } from '../../../../models/note-active-options.model';\nimport { NoteColors } from '../../../ca-note-container/models/note-colors.model';\n\nexport class NoteConfigConstants {\n static noteDarkColors: NoteColors[] = [\n {\n color: 'rgb(218, 218, 218)',\n name: 'Gray',\n },\n {\n color: 'rgb(102, 146, 241)',\n name: 'Blue',\n },\n {\n color: 'rgb(86, 180, 172)',\n name: 'Green',\n },\n {\n color: 'rgb(230, 103, 103)',\n name: 'Red',\n },\n {\n color: 'rgb(250, 177, 92)',\n name: 'Yellow',\n },\n {\n color: 'rgb(179, 112, 240)',\n name: 'Purple',\n },\n ];\n\n static noteLightColors: NoteColors[] = [\n {\n color: 'rgb(66, 66, 66)',\n name: 'Black',\n },\n {\n color: 'rgb(59, 115, 237)',\n name: 'Blue',\n },\n {\n color: 'rgb(37, 159, 148)',\n name: 'Green',\n },\n {\n color: 'rgb(223, 60, 60)',\n name: 'Red',\n },\n {\n color: 'rgb(248, 155, 46)',\n name: 'Yellow',\n },\n {\n color: 'rgb(158, 71, 236)',\n name: 'Purple',\n },\n ];\n\n static noteActiveOptions: NoteActiveOptions = {\n bold: false,\n italic: false,\n foreColor: false,\n underline: false,\n };\n}\n","export enum NoteSelectedColorStringEnum {\n GRAY_RGB = \"rgb(218, 218, 218)\",\n GRAY = \"Gray\",\n}\n","export enum NoteDefaultStringEnum {\n FORE_COLOR = \"ForeColor\",\n FORE_COLOR2 = \"foreColor\",\n MAIN_EDITOR = \"main_editor\",\n CSS_STYLE = \"styleWithCSS\",\n FALSE = \"false\",\n COLOR = \"color\",\n DARK = \"dark\",\n}\n","export class NoteContainerSvgRoutes {\n static boldRoute: string = \"assets/ca-components/svg/note/bold.svg\";\n static itallicRoute: string = \"assets/ca-components/svg/note/Itallic.svg\";\n static colorRoute: string = \"assets/ca-components/svg/note/Note - Empty.svg\";\n static underlineRoute: string = \"assets/ca-components/svg/note/Underline.svg\";\n static checkRoute: string = \"assets/ca-components/svg/note/tick.svg\";\n static arrowRoute: string = \"assets/ca-components/svg/note/arrow.svg\";\n}\n","import { Subject } from 'rxjs';\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Animations\nimport { pickupAnimation } from '../../animations/animation';\n\n// Modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Constants\nimport { NoteConfigConstants } from '../ca-note-container/utils/constants/note-config.constant';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Models\nimport { NoteActiveOptions } from '../../models/note-active-options.model';\nimport { NoteColors } from '../ca-note-container/models/note-colors.model';\n\n// Enums\nimport { NoteSelectedColorStringEnum } from '../ca-note-container/enums/note-selected-color.enum';\nimport { NoteDefaultStringEnum } from '../ca-note-container/enums/note-default-string.enum';\n\n//svg-routes\nimport { NoteContainerSvgRoutes } from '../ca-note-container/utils/svg-routes/note-container-svg-routes';\n\n@Component({\n selector: 'app-ca-note-container',\n templateUrl: './ca-note-container.component.html',\n styleUrls: ['./ca-note-container.component.scss'],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // Component\n CaAppTooltipV2Component,\n ],\n animations: [pickupAnimation],\n})\nexport class CaNoteContainerComponent implements OnInit, OnDestroy {\n @Input() value!: string;\n @Input() range!: Range;\n @Input() selectionTaken!: Selection;\n @Input() isExpanded!: boolean | string;\n @Input() isParking: boolean = false;\n @Input() isPopoverNote: boolean = false;\n @Input() isVisibleArrow: boolean = true;\n @Input() type!: string;\n @Input() selectedEditor!: HTMLDivElement;\n\n @Output() stopBlurRemoveTimeout = new EventEmitter();\n\n //Colors\n public selectedPaternColor: string = NoteSelectedColorStringEnum.GRAY_RGB;\n public activeOptions: NoteActiveOptions | any = {\n ...NoteConfigConstants.noteActiveOptions,\n };\n public containerColors!: NoteColors[];\n public selectedColorName!: NoteColors;\n\n //Timeout\n private slowTimeout!: NodeJS.Timeout;\n private lastSavedIndex: number = -1;\n\n //Pattern\n private isDefaultColorSet: boolean = false;\n public isShowColorPattern!: boolean;\n public isClosedPattern: boolean = false;\n public isHoveringArrowPicker: boolean = false;\n\n private destroy$ = new Subject<void>();\n\n constructor() {}\n\n ngOnInit(): void {\n this.setContainerColors();\n }\n\n private filterContainersColor(): void {\n this.containerColors.sort((a) => {\n if (a[NoteDefaultStringEnum.COLOR] !== this.selectedColorName.color) {\n return 1;\n }\n return -1;\n });\n }\n\n public executeEditor(action: string, color?: string, indx?: number): void {\n this.stopBlurRemoveTimeout.emit();\n if (indx || indx === 0) this.selectedColorName = this.containerColors[indx];\n\n if (this.range) {\n this.selectionTaken.removeAllRanges();\n this.selectionTaken.addRange(this.range);\n }\n if (action !== NoteDefaultStringEnum.FORE_COLOR2) {\n this.isShowColorPattern = false;\n this.activeOptions[action] = !this.activeOptions[action];\n if (!this.activeOptions[action]) {\n if (this.value.replace('<br>', '') === '')\n this.selectionTaken.removeAllRanges();\n\n document.execCommand(\n NoteDefaultStringEnum.CSS_STYLE,\n false,\n NoteDefaultStringEnum.FALSE\n );\n document.execCommand(action, false);\n } else {\n this.focusElement();\n document.execCommand(action, false);\n }\n } else {\n if (this.lastSavedIndex != indx) this.filterContainersColor();\n\n this.lastSavedIndex = indx || -1;\n setTimeout(() => {\n this.focusElement();\n setTimeout(() => {\n this.focusElement();\n this.selectedPaternColor = color || 'grey';\n document.execCommand(NoteDefaultStringEnum.FORE_COLOR2, false, color);\n });\n });\n }\n }\n public togglePattern(): void {\n this.isShowColorPattern = !this.isShowColorPattern;\n\n if (!this.isShowColorPattern)\n setTimeout(() => {\n this.isClosedPattern = false;\n }, 300);\n else this.isClosedPattern = true;\n }\n\n public hoveringArrow(value: boolean): void {\n this.isHoveringArrowPicker = value;\n }\n\n private setContainerColors(): void {\n this.containerColors =\n this.type === NoteDefaultStringEnum.DARK\n ? [...NoteConfigConstants.noteDarkColors]\n : [...NoteConfigConstants.noteLightColors];\n\n this.selectedColorName = {\n name: this.containerColors[0].name,\n color: this.containerColors[0].color,\n };\n }\n\n /**Function retrun id */\n public identity(index: number): number {\n return index;\n }\n\n public getSvgPath(propertyName: keyof typeof NoteContainerSvgRoutes): string {\n return NoteContainerSvgRoutes[propertyName] as string;\n }\n\n public focusElement(): void {\n if (this.selectedEditor) this.selectedEditor.focus();\n else document.getElementById(NoteDefaultStringEnum.MAIN_EDITOR)!.focus();\n }\n\n public checkActiveItems(): void {\n for (const act in this.activeOptions) {\n this.activeOptions[act] = document.queryCommandState(act);\n\n clearTimeout(this.slowTimeout);\n this.slowTimeout = setTimeout(() => {\n const findedColor = this.containerColors.find(\n (item) =>\n item.color ===\n document.queryCommandValue(NoteDefaultStringEnum.FORE_COLOR)\n );\n this.selectedColorName = findedColor\n ? findedColor\n : {\n color: NoteSelectedColorStringEnum.GRAY_RGB,\n name: NoteSelectedColorStringEnum.GRAY,\n };\n }, 200);\n this.selectedPaternColor = document.queryCommandValue(\n NoteDefaultStringEnum.FORE_COLOR\n );\n }\n\n if (this.isDefaultColorSet) {\n this.containerColors.map((col, indx) => {\n if (col.color === this.selectedPaternColor) {\n this.selectedColorName = this.containerColors[indx];\n\n if (this.lastSavedIndex != indx) {\n this.filterContainersColor();\n }\n this.lastSavedIndex = indx;\n setTimeout(() => {\n this.focusElement();\n setTimeout(() => {\n this.focusElement();\n this.selectedPaternColor = col.color;\n });\n });\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.isShowColorPattern = false;\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n [class.active]=\"isExpanded\"\n [class.parking_editor_menu]=\"isParking\"\n [class.opened_parking_editor.justify-content-end]=\"\n isParking && isShowColorPattern\n \"\n [class.dark]=\"type === 'dark'\"\n class=\"editor_menu d-flex align-items-center\"\n>\n <ng-container *ngIf=\"!isParking || (isParking && !isShowColorPattern)\">\n <div class=\"font_editor d-flex\" [class.parking_font_editor]=\"isParking\">\n <div\n (click)=\"executeEditor('bold')\"\n [class.active]=\"activeOptions.bold\"\n [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n ngbTooltip\n [mainTooltip]=\"'Bold'\"\n position=\"bottom\"\n class=\"editor_buttons main_commands bold_text d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('boldRoute')\"></svg-icon>\n </div>\n <div\n (click)=\"executeEditor('italic')\"\n [class.active]=\"activeOptions.italic\"\n [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n ngbTooltip\n [mainTooltip]=\"'Italic'\"\n position=\"bottom\"\n class=\"editor_buttons d-flex justify-content-center align-items-center main_commands italic_text\"\n >\n <svg-icon [src]=\"getSvgPath('itallicRoute')\"></svg-icon>\n </div>\n <div\n (click)=\"executeEditor('underline')\"\n [class.active]=\"activeOptions.underline\"\n [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n ngbTooltip\n [mainTooltip]=\"'Underline'\"\n position=\"bottom\"\n class=\"editor_buttons d-flex justify-content-center align-items-center main_commands underline_text\"\n >\n <svg-icon [src]=\"getSvgPath('underlineRoute')\"></svg-icon>\n </div>\n <div class=\"note_separator\"></div>\n </div>\n <div\n (click)=\"togglePattern()\"\n [class.no_opacity]=\"isShowColorPattern\"\n [class.parking_tooltip.d-flex.justify-content-end]=\"\n isParking && isShowColorPattern\n \"\n class=\"editor_buttons d-flex justify-content-center align-items-center text_color justify-content-end\"\n [class.popover_text_color.justify-content-start]=\"isPopoverNote\"\n [class.active]=\"isShowColorPattern\"\n >\n <div\n class=\"colors_patter d-flex align-items-center\"\n id=\"colors_patter\"\n [class.closed_pattern]=\"!isClosedPattern\"\n [class.input_note.flex-reverse]=\"!isPopoverNote\"\n >\n <ng-container\n *ngFor=\"\n let paternCol of containerColors;\n let indx = index;\n trackBy: identity\n \"\n >\n <div\n (click)=\"executeEditor('foreColor', paternCol.color, indx)\"\n [style.backgroundColor]=\"paternCol.color\"\n [class.hide_elements]=\"indx && !isShowColorPattern\"\n [tooltipBackground]=\"\n indx && !isShowColorPattern\n ? ''\n : type === 'dark'\n ? '#2F2F2F'\n : '#6C6C6C'\n \"\n ngbTooltip\n [mainTooltip]=\"\n indx === 0 && !isShowColorPattern\n ? 'Color Picker'\n : indx && !isShowColorPattern\n ? ''\n : !indx && isShowColorPattern\n ? 'Close'\n : paternCol.name\n \"\n position=\"bottom\"\n class=\"editor_buttons_colors d-flex justify-content-center align-items-center\"\n [class.justify-content-start]=\"isPopoverNote\"\n [ngStyle]=\"{\n opacity: !isShowColorPattern && indx ? 0 : 1,\n }\"\n (mouseenter)=\"hoveringArrow(!!isShowColorPattern && !indx)\"\n (mouseleave)=\"hoveringArrow(false)\"\n >\n <ng-container *ngIf=\"!indx\">\n <div\n class=\"color_picker_arrow d-flex\"\n [class.flip_arrow]=\"\n (!isPopoverNote && isShowColorPattern) ||\n (isPopoverNote && !isShowColorPattern)\n \"\n [class.regular_icon]=\"\n !isPopoverNote && isShowColorPattern && !isHoveringArrowPicker\n \"\n [class.active]=\"isShowColorPattern\"\n [class.hovering_picker]=\"\n !isHoveringArrowPicker && isShowColorPattern\n \"\n >\n <svg-icon\n [src]=\"\n !isHoveringArrowPicker && isShowColorPattern\n ? getSvgPath('checkRoute')\n : getSvgPath('arrowRoute')\n \"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isParking && !isPopoverNote && isVisibleArrow\">\n <div class=\"note_border_line\" [class.dark]=\"type === 'dark'\"></div>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { LottieModule } from \"ngx-lottie\";\n\n@Component({\n selector: \"app-ca-spinner\",\n templateUrl: \"./ca-spinner.component.html\",\n styleUrls: [\"./ca-spinner.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n // Module\n CommonModule,\n LottieModule,\n ],\n})\nexport class CaSpinnerComponent implements OnChanges {\n @Input() size?: string; // small, big\n @Input() color?: string; // black, gray, white, blueLight, blueDark\n @Input() isBarSpinner?: boolean = false;\n\n public lottieSpinner!: { path: string };\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.getLottieSpinner(changes);\n }\n\n public getLottieSpinner(changes: SimpleChanges): void {\n if (changes[\"size\"]?.currentValue !== changes[\"size\"]?.previousValue) {\n this.lottieSpinner = {\n path: `lottie/ta-lottie-spinner/${\n this.size === \"small\" ? \"18px\" : \"32px\"\n }/${this.color}.json`,\n };\n }\n }\n}\n","<div\n class=\"d-flex align-items-center justify-content-left spinner-container\"\n [ngStyle]=\"{\n width: isBarSpinner ? '100px' : 'unset',\n 'margin-right': isBarSpinner ? '30px' : 0,\n }\"\n>\n <ng-container *ngIf=\"!isBarSpinner; else barSpinner\">\n <ng-lottie [options]=\"lottieSpinner\"></ng-lottie>\n </ng-container>\n\n <ng-template #barSpinner>\n <span class=\"bar-spinner\"></span>\n </ng-template>\n</div>\n","export class NoteSvgRoutes {\n static trashRoute: string = \"assets/ca-components/svg/popup/trash.svg\";\n static noteRoute: string = \"assets/ca-components/svg/note/note-empty.svg\";\n static noteFilledRoute: string = \"assets/ca-components/svg/note/note-filled.svg\";\n}","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// moment\nimport moment from 'moment';\n\n// animations\nimport { noteLongAnimation, pickupAnimation } from '../../animations/animation';\n\n//pipe\nimport { SafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\n//models\nimport { NoteActiveOptions } from '../../models/note-active-options.model';\nimport { PlaceholderDirective } from '../../directives/placeholder-directive';\n\n//helper\nimport { CopyPasteHelper } from '../ca-note/utils/helper/copy-paste.helper';\n\n//components\nimport { CaNoteContainerComponent } from '../ca-note-container/ca-note-container.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n\n//svg-routess\nimport { NoteSvgRoutes } from '../ca-note/utils/svg-routes/note-svg-routes';\n\n@Component({\n selector: 'app-ca-note',\n templateUrl: './ca-note.component.html',\n styleUrls: ['./ca-note.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n // Module\n CommonModule,\n NgbModule,\n AngularSvgIconModule,\n\n //Components\n CaNoteContainerComponent,\n CaAppTooltipV2Component,\n CaSpinnerComponent,\n\n //Directives\n PlaceholderDirective,\n\n // Pipe\n SafeHtmlPipe,\n ],\n animations: [pickupAnimation, noteLongAnimation],\n})\nexport class CaNoteComponent {\n @Output() saveNoteValue = new EventEmitter();\n\n @Input() isParking: boolean = false;\n @Input() dispatchIndex: number = -1;\n @Input() type!: string;\n @Input() parentWidth!: string;\n @Input() isDispatch: boolean = false;\n @Input() set noteWidth(value: number) {\n this._noteWidth = value;\n }\n @Input() set isOpenAll(value: boolean) {\n this.isAllOpen = value;\n if (this.isDispatch) {\n this.closeNote(true);\n this.setNoteParentWidth();\n }\n }\n @ViewChild('main_editor') public main_editor!: ElementRef;\n @ViewChild('note_popover') public note_popover!: ElementRef;\n @ViewChild('noteContainer') public noteContainer!: CaNoteContainerComponent;\n\n public placeholder = 'Write Something...';\n public _note!: string;\n public _noteWidth: number = 250;\n public _parentWidth: number = 250;\n public isAllOpen!: boolean;\n\n public noteIcon: string =\n this._note !== '' ? NoteSvgRoutes.noteRoute : NoteSvgRoutes.noteFilledRoute;\n\n //note container\n public isShowColorPattern!: boolean;\n public buttonsExpanded = false;\n public activeOptions!: NoteActiveOptions;\n public selectedPaternColor: string = '#6C6C6C';\n\n //properties and values\n\n public isExpanded: boolean = false;\n public isNoteOpened: boolean = false;\n public value: string = '';\n private lastTypeTime!: number;\n public isleavedOpened!: boolean;\n public selectionTaken!: Selection;\n public range!: Range;\n public isFocused: boolean = false;\n private isPreventedClosing: boolean = false;\n\n //saving\n public isSavingNote: boolean = false;\n public savedValue: string = '';\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private ref: ChangeDetectorRef,\n private elRef: ElementRef\n ) {}\n ngAfterViewInit(): void {\n this.value = this._note;\n }\n\n public checkFocus(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.isFocused = true;\n this.isleavedOpened = true;\n this.isExpanded = true;\n setTimeout(() => {\n this.buttonsExpanded = true;\n this.checkActiveItems();\n }, 150);\n }\n\n public toggleNote(data: string, t2: NgbPopover): void {\n this.isPreventedClosing = true;\n setTimeout(() => {\n this.isPreventedClosing = false;\n }, 200);\n\n if (t2?.isOpen()) {\n if (this.isOpenAll) {\n this.isleavedOpened = true;\n } else if (!this.isExpanded) {\n this.isleavedOpened = false;\n this.checkActiveItems();\n this.isExpanded = true;\n this.buttonsExpanded = true;\n setTimeout(() => {\n t2.open();\n }, 1);\n } else {\n this.isExpanded = false;\n this.buttonsExpanded = false;\n this.isleavedOpened = false;\n this.isNoteOpened = false;\n this._note = this.value;\n t2.close();\n }\n this.isShowColorPattern = false;\n } else {\n if (!data || data == '' || this.isOpenAll) {\n this.buttonsExpanded = true;\n this.isExpanded = true;\n }\n this.isleavedOpened = true;\n setTimeout(() => {\n this.isNoteOpened = true;\n }, 1);\n t2.open();\n }\n }\n\n public prepareForTextRange(): void {\n this.isFocused = false;\n this.selectionTaken = window.getSelection()!;\n if (this.selectionTaken.rangeCount && this.selectionTaken.getRangeAt) {\n this.range = this.selectionTaken.getRangeAt(0);\n this.selectionTaken.removeAllRanges();\n this.selectionTaken.addRange(this.range);\n }\n }\n\n public preventMouseDown(ev: Event): void {\n ev.stopPropagation();\n ev.preventDefault();\n }\n\n public valueChange(event: Event | string, deleteAll?: boolean): void {\n if (event) {\n const target = (event as Event).target as HTMLElement;\n this.value = target.innerHTML;\n } else {\n this.value = event;\n }\n this.checkActiveItems();\n this.lastTypeTime = moment().unix();\n this.checkNoteImage(this.value);\n }\n\n public saveNote(autoSave?: boolean, deleteAll?: boolean): void {\n setTimeout(() => {\n if (!autoSave && this.isOpenAll) {\n this.closeNote();\n }\n }, 200);\n if (this.value == '<br>') {\n this.value = this.value.replace('<br>', '');\n }\n\n this.savedValue = this.value;\n if (deleteAll) this.closeNote();\n }\n\n private closeNote(dontTransfer?: boolean): void {\n this.isNoteOpened = false;\n this.isleavedOpened = false;\n this.isShowColorPattern = false;\n this.isExpanded = false;\n this.buttonsExpanded = false;\n this._note = this.value;\n\n if (!dontTransfer) this.transferNoteData();\n }\n public popoverClosed(): void {\n if (!this.isPreventedClosing) {\n this.closeNote();\n }\n\n this.isPreventedClosing = false;\n }\n\n public onPaste(event: ClipboardEvent): void {\n CopyPasteHelper.onPaste(event);\n }\n\n private transferNoteData(): void {\n if (this.dispatchIndex === -1) this.saveNoteValue.emit(this.value);\n else\n this.saveNoteValue.emit({\n note: this.value,\n dispatchIndex: this.dispatchIndex,\n });\n }\n\n private checkNoteImage(note: string): void {\n if (note && note != '') {\n this.noteIcon = this.getSvgPath('noteFilledRoute');\n } else {\n this.noteIcon = this.getSvgPath('noteRoute');\n }\n }\n\n public getSvgPath(propertyName: keyof typeof NoteSvgRoutes): string {\n return NoteSvgRoutes[propertyName] as string;\n }\n\n private checkActiveItems(): void {\n if (this.noteContainer && this.noteContainer?.checkActiveItems) {\n this.noteContainer?.checkActiveItems();\n }\n }\n\n private setNoteParentWidth(): void {\n if (this.parentWidth && this.isAllOpen) {\n setTimeout(() => {\n const parentWidth = this.elRef.nativeElement\n .closest(this.parentWidth)\n .getBoundingClientRect();\n this._parentWidth = this.isDispatch\n ? parentWidth.width - 2\n : parentWidth.width;\n this.ref.detectChanges();\n }, 1000);\n }\n }\n\n ngOnDestroy(): void {\n this.isleavedOpened = false;\n this.isShowColorPattern = false;\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"all_note_holder\"\n [class.closed_main_holder.d-flex]=\"!isAllOpen && isNoteOpened\"\n [class.opened_main_all_holder.d-flex.align-items-center]=\"isAllOpen\"\n #t2=\"ngbPopover\"\n [ngbPopover]=\"note_popover\"\n [autoClose]=\"'outside'\"\n [container]=\"'body'\"\n [placement]=\"'right-top'\"\n popoverClass=\"isAllOpen && isDispatch\n ? 'my-note-popover dispatch-note'\n : 'my-note-popover'\n\"\n triggers=\"manual\"\n (click)=\"isAllOpen ? toggleNote(_note, t2) : ''\"\n>\n <ng-container\n *ngIf=\"!isAllOpen && (isNoteOpened || (!isNoteOpened && !isSavingNote))\"\n >\n <div\n class=\"note_button_hold\"\n [ngClass]=\"{\n 'note-normal-icon': !isAllOpen,\n 'note-note-empty': !_note && !isAllOpen,\n 'note-all-expanded': isNoteOpened,\n }\"\n [tooltipBackground]=\"'#424242'\"\n ngbTooltip\n [mainTooltip]=\"isNoteOpened ? 'Close Note' : 'Note'\"\n position=\"bottom\"\n >\n <svg-icon\n #t2=\"ngbPopover\"\n [ngbPopover]=\"note_popover\"\n [autoClose]=\"'outside'\"\n class=\"note-btn\"\n [container]=\"'body'\"\n [placement]=\"'right-top'\"\n [animation]=\"false\"\n popoverClass=\"my-note-popover\"\n triggers=\"manual\"\n (click)=\"toggleNote(_note, t2)\"\n (hidden)=\"popoverClosed()\"\n [src]=\"noteIcon\"\n >\n </svg-icon>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isAllOpen && !isNoteOpened && isSavingNote\">\n <div class=\"spinner d-flex justify-content-center align-items-center\">\n <app-ca-spinner\n [size]=\"'small'\"\n [color]=\"'blueDark'\"\n ></app-ca-spinner></div\n ></ng-container>\n <ng-container *ngIf=\"isAllOpen\">\n <div [innerHTML]=\"_note | safeHtml\" class=\"note_inner_text\"></div\n ></ng-container>\n</div>\n\n<ng-template #note_popover let-data=\"data\">\n <div\n class=\"kendo-editor-note-wrapper\"\n [class.opened_all_hold]=\"isAllOpen\"\n [class.closed_note_hold]=\"!isAllOpen && isNoteOpened\"\n [class.dispatch]=\"isDispatch\"\n >\n <div\n [class.expanded]=\"isExpanded\"\n class=\"k-widget k-editor custom_editor\"\n [ngStyle]=\"{\n width: parentWidth ? _parentWidth + 'px' : _noteWidth + 'px',\n }\"\n >\n <div\n (blur)=\"prepareForTextRange()\"\n (focus)=\"checkFocus($event)\"\n (input)=\"valueChange($event)\"\n @noteLongAnimation\n [@.disabled]=\"isAllOpen || isParking || isNoteOpened\"\n [class.not_expanded]=\"!isExpanded\"\n [class.parking_text_hold]=\"isParking\"\n [class.opened_all_editor]=\"isAllOpen\"\n [innerHTML]=\"_note | safeHtml\"\n class=\"editor\"\n contenteditable=\"true\"\n spellcheck=\"false\"\n id=\"main_editor\"\n #mainEditorDiv\n (paste)=\"onPaste($event)\"\n Placeholder\n [placeholder]=\"placeholder\"\n ></div>\n <ng-container *ngIf=\"isExpanded\">\n <div class=\"container_separate\">\n <div class=\"container_separate_inner\"></div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isSavingNote && isExpanded\">\n <div class=\"spinner\" *ngIf=\"isSavingNote && isExpanded\">\n <app-ca-spinner\n [size]=\"'small'\"\n [color]=\"'blueDark'\"\n ></app-ca-spinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isSavingNote && isExpanded\">\n <div class=\"spinner\">\n <app-ca-spinner\n [size]=\"'small'\"\n [color]=\"'blueDark'\"\n ></app-ca-spinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isExpanded\">\n <div\n class=\"note_container d-flex align-items-center justify-content-between\"\n (click)=\"preventMouseDown($event)\"\n >\n <app-ca-note-container\n #noteContainer\n [isExpanded]=\"isExpanded\"\n [range]=\"range\"\n [selectionTaken]=\"selectionTaken\"\n [value]=\"value\"\n [isParking]=\"isParking\"\n [isPopoverNote]=\"true\"\n [type]=\"'dark'\"\n [selectedEditor]=\"main_editor?.nativeElement\"\n ></app-ca-note-container>\n <ng-container *ngIf=\"!isSavingNote && value\">\n <div\n [tooltipBackground]=\"'#424242'\"\n ngbTooltip\n [mainTooltip]=\"'Delete'\"\n position=\"bottom\"\n >\n <svg-icon\n [src]=\"getSvgPath('trashRoute')\"\n (click)=\"valueChange('', true)\"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import {\n trigger,\n transition,\n style,\n animate,\n state,\n} from '@angular/animations';\nexport const accordionAnimation = (type: string) =>\n trigger(type, [\n state(\n 'true',\n style({\n height: '*',\n opacity: '1',\n 'margin-top': '{{marginTop}}',\n 'margin-bottom': '{{marginBottom}}',\n }),\n {\n params: {\n marginTop: '{{marginTop}}',\n marginBottom: '{{marginBottom}}',\n },\n }\n ),\n state(\n 'false',\n style({\n height: '0px',\n opacity: '0',\n 'margin-top': '0px',\n })\n ),\n state(\n 'null',\n style({\n height: '*',\n })\n ),\n transition('false <=> true', [animate('.3s ease-in-out')]),\n transition('true <=> false', [animate('.3s ease-in-out')]),\n ]);\n","export class SvgRoutes {\n static downArrow = 'assets/ca-components/svg/common/payroll-down-arrow.svg';\n static upArrow = 'assets/ca-components/svg/common/payroll-up-arrow.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\n//Third-party-module\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//animation\nimport { accordionAnimation } from '../../animations/accordion-animation';\n\n//svg-routes\nimport { SvgRoutes } from '../../utils/svg-routes/payroll-list-summary-svg-routes';\n\n//model\nimport { PayrollListSummaryOverview } from '../../models/payroll-list-summary.model';\n\n@Component({\n selector: 'app-ca-payroll-list-summary-overview',\n templateUrl: './ca-payroll-list-summary-overview.component.html',\n styleUrls: ['./ca-payroll-list-summary-overview.component.scss'],\n standalone: true,\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n ],\n animations: [accordionAnimation('showHideCardBody')],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaPayrollListSummaryOverviewComponent {\n @Input() item!: PayrollListSummaryOverview;\n public isItemExpanded: boolean = true;\n\n @Input() isExpanded: boolean = false;\n @Input() index: number = -1;\n\n @Output() toggle: EventEmitter<void> = new EventEmitter<void>();\n @Input() animationMarginParams = {\n marginTop: '12px',\n marginBottom: '12px',\n };\n constructor() {}\n\n public getSvgPath(propertyName: keyof typeof SvgRoutes): string {\n return SvgRoutes[propertyName] as string;\n }\n\n public toggleAccordion(): void {\n this.isExpanded = !this.isExpanded;\n this.toggle.emit();\n }\n}\n","<div class=\"accordion\" id=\"accordionExample\">\n <div class=\"accordion-item\">\n <div>\n <div\n class=\"d-flex justify-content-between align-items-center accordion-header\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n (click)=\"toggleAccordion()\"\n >\n <div\n class=\"d-flex header-content ca-font-extra-bold\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n >\n <div class=\"me-1\">\n <span>{{ item.text }}</span>\n </div>\n <div class=\"me-1\">({{ item.type }})</div>\n <div\n class=\"small me-1 heading-count d-flex align-items-center\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n >\n <div\n class=\"item-count ca-font-bold\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n >\n {{ item.itemCount }}\n </div>\n </div>\n </div>\n <div\n class=\"d-flex align-items-center header-content-right ca-font-bold\"\n >\n <ng-container *ngIf=\"item.isOpen\">\n <div class=\"me-2 date\" [ngClass]=\"{ 'is-expanded': isExpanded }\">\n {{ item.date | date: 'dd/MM/yyyy' }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.status !== 'success'; else successStatus\">\n <div\n class=\"d-flex amount me-1\"\n [ngClass]=\"{\n danger: item.status === 'danger',\n positive: item.status === 'positive',\n }\"\n [class.is-danger-expanded]=\"\n item.status === 'danger' && isExpanded\n \"\n [class.is-positive-expanded]=\"\n item.status === 'positive' && isExpanded\n \"\n >\n <div class=\"me-1\">{{ item.money | currency }}</div>\n <div>({{ item.moneyCounter }})</div>\n </div>\n </ng-container>\n <ng-template #successStatus\n ><div\n class=\"d-flex amount me-1\"\n [ngClass]=\"{\n success: item.status === 'success',\n }\"\n [class.is-success-expanded]=\"\n item.status === 'success' && isExpanded\n \"\n >\n <div class=\"me-1\">ALL PAID</div>\n </div>\n </ng-template>\n <div\n class=\"accordion-toggle-icon\"\n [ngClass]=\"{\n svg_rotate: isExpanded,\n rotate_back: !isExpanded,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('downArrow')\" alt=\"Toggle\"></svg-icon>\n </div>\n </div>\n </div>\n </div>\n <div\n [id]=\"'collapseOne' + index\"\n class=\"accordion-collapse\"\n [class.show]=\"isExpanded\"\n data-bs-parent=\"#accordionExample\"\n [@showHideCardBody]=\"{\n value: isExpanded.toString(),\n params: animationMarginParams,\n }\"\n >\n <ng-container>\n <div class=\"accordion-body\">\n <!-- Add the expanded content here -->\n <!-- {{ item.description }} -->\n <ng-container *ngIf=\"isExpanded\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//components\nimport { CaPayrollListSummaryOverviewComponent } from '../ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\n\n//models\nimport { PayrollListSummaryOverview } from '../../models/payroll-list-summary.model';\n\n@Component({\n selector: 'app-ca-payroll-list-summary-overview-table',\n standalone: true,\n imports: [CommonModule, CaPayrollListSummaryOverviewComponent],\n templateUrl: './ca-payroll-list-summary-overview-table.component.html',\n styleUrls: ['./ca-payroll-list-summary-overview-table.component.scss'],\n})\nexport class CaPayrollListSummaryOverviewTableComponent {\n @Input() data!: PayrollListSummaryOverview[];\n public openIndex!: number | null;\n\n public identity(index: number, item: PayrollListSummaryOverview): string {\n return item.text;\n }\n\n public toggleItem(index: number): number | void {\n this.openIndex = this.openIndex === index ? null : index;\n }\n}\n","<table class=\"table\">\n <tbody>\n <tr *ngFor=\"let item of data; let i = index; trackBy: identity\">\n <td>\n <app-ca-payroll-list-summary-overview\n [item]=\"item\"\n [index]=\"i\"\n [isExpanded]=\"openIndex === i\"\n (toggle)=\"toggleItem(i)\"\n ></app-ca-payroll-list-summary-overview>\n </td>\n </tr>\n </tbody>\n</table>\n","export enum StatusTypeEnum {\n CLOSED = \"CLOSED\",\n ACTIVE = \"ACTIVE\",\n PENDING = \"PENDING\",\n}\n","export class PickupDeliverySvgRoutes {\n static arrowLeft: string = \"assets/ca-components/svg/pickup-delivery/arrowLeft.svg\";\n static arrowLeftHover: string = \"assets/ca-components/svg/pickup-delivery/arrowLeftHover.svg\";\n static arrowRight: string = \"assets/ca-components/svg/pickup-delivery/arrowRight.svg\";\n static leftArrow: string = \"assets/ca-components/svg/pickup-delivery/leftArrow.svg\";\n static phoneIcon: string = \"assets/ca-components/svg/pickup-delivery/phoneIcon.svg\";\n static mailIcon: string = \"assets/ca-components/svg/pickup-delivery/mailIcon.svg\";\n static markerSvgRoute: string = \"assets/ca-components/svg/pickup-delivery/routing_marker.svg\";\n static vector: string = \"assets/ca-components/svg/pickup-delivery/vector.svg\";\n static userIcon: string = \"assets/ca-components/svg/pickup-delivery/userIcon.svg\";\n static options: string = \"assets/ca-components/svg/pickup-delivery/options.svg\";\n static miles: string = \"/assets/ca-components/svg/pickup-delivery/miles.svg\";\n static optionsVertical: string = \"assets/ca-components/svg/pickup-delivery/optionsVertical.svg\";\n static detailsOptions: string = \"assets/ca-components/svg/pickup-delivery/detailsOptions.svg\";\n}\n","export class OptionsButtonIconsSvgRoutes {\n static optionsDefault: string = \"assets/ca-components/svg/pickup-delivery/detailsOptions.svg\";\n static optionsClicked: string = \"assets/ca-components/svg/pickup-delivery/mapOptionsDark.svg\";\n}\n","export class PickupDeliveryBlockConstants {\n static readonly activeOptions = [\n { Icon: \"assets/ca-components/svg/popup/edit-hover.svg\", text: \"Edit\" },\n { Icon: \"assets/ca-components/svg/popup/ic_info.svg\", text: \"View Details\" },\n { Icon: \"assets/ca-components/svg/popup/share-icon.svg\", text: \"Share\" },\n { Icon: \"assets/ca-components/svg/popup/ic_print.svg\", text: \"Print\" },\n { Icon: \"assets/ca-components/svg/popup/Delete.svg\", text: \"Delete\" },\n ];\n\n static readonly closedOptions = [\n { Icon: \"assets/ca-components/svg/popup/edit-hover.svg\", text: \"Edit\" },\n { Icon: \"assets/ca-components/svg/popup/ic_info.svg\", text: \"View Details\" },\n { Icon: \"assets/ca-components/svg/popup/share-icon.svg\", text: \"Share\" },\n { Icon: \"assets/ca-components/svg/popup/ic_print.svg\", text: \"Print\" },\n { Icon: \"assets/ca-components/svg/popup/Delete.svg\", text: \"Delete\" },\n ];\n\n static readonly pendingOptions = [\n { Icon: \"assets/ca-components/svg/popup/edit-hover.svg\", text: \"Edit\" },\n { Icon: \"assets/ca-components/svg/popup/minus.svg\", text: \"Unassign\" },\n { Icon: \"assets/ca-components/svg/popup/ic_info.svg\", text: \"View Details\" },\n { Icon: \"assets/ca-components/svg/popup/share-icon.svg\", text: \"Share\" },\n { Icon: \"assets/ca-components/svg/popup/ic_print.svg\", text: \"Print\" },\n { Icon: \"assets/ca-components/svg/popup/delete-hover-new.svg\", text: \"Delete\" },\n ];\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"formatCurrency\",\n standalone: true,\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n transform(currency: number) {\n if (currency) {\n return (\n \"$\" + currency.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\")\n );\n } else {\n return \"$\" + 0;\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({\n standalone: true,\n name: 'dateFromStringPipe',\n})\nexport class DateFromStringPipe implements PipeTransform {\n transform(date: string | null | undefined, template?: string): any {\n switch (template) {\n case 'short-format': {\n return moment(date).format('MM/YY');\n }\n case 'month-format': {\n return moment(date, 'YYYY-MM-DDTHH:mm:ss.SSS[Z]').format(\n 'MMMM DD, YYYY | hh:mm A'\n );\n }\n case 'difference-days': {\n let a = moment();\n let b = moment(date);\n let diff = a.diff(b, 'days');\n if (diff < 1) {\n return 'Today';\n } else {\n return diff + (diff === 1 ? ' day' : ' days');\n }\n }\n case 'date-time':\n return moment(date).format('MM/DD/YY hh:mm A');\n default: {\n return moment(date).format('MM/DD/YY');\n }\n }\n }\n}\n","// Angular core modules\nimport { Component, Input } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\n// Third-party modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Models\nimport { LoadShortResponse } from '../../../../../ca-pickup-delivery-block/models/load-short-response';\nimport { IItemList } from '../../../../../../models/dropdown.model';\n\n//Svg routes\nimport { PickupDeliverySvgRoutes } from '../../../../utils/svg-routes/pickup-delivery-svg.routes';\nimport { OptionsButtonIconsSvgRoutes } from '../../../../utils/svg-routes/options-icon.routes';\n\n//Dropdown\nimport { CaDropdownComponent } from '../../../../../ca-dropdown/ca-dropdown.component';\nimport { PickupDeliveryBlockConstants } from '../../../../../ca-pickup-delivery-block/utils/constants/pickup-delivery-block.constants';\n//Pipes\nimport { FormatCurrencyPipe } from '../../../../../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../../../../../pipes/date-from-string.pipe';\n\n//Enums\nimport { StatusTypeEnum } from '../../../../../ca-pickup-delivery-block/models/status-types.enum';\n\n@Component({\n selector: 'app-ca-load-single',\n templateUrl: './ca-load-single.component.html',\n styleUrls: ['./ca-load-single.component.scss'],\n standalone: true,\n providers: [\n //Pipes\n FormatCurrencyPipe,\n ],\n imports: [\n AngularSvgIconModule,\n HttpClientModule,\n CaDropdownComponent,\n CommonModule,\n DateFromStringPipe,\n ],\n})\nexport class ActiveLoadComponent {\n @Input() activeLoad!: Array<LoadShortResponse>;\n @Input() status!: StatusTypeEnum;\n\n //Icons\n public originalIcon: string = OptionsButtonIconsSvgRoutes.optionsDefault;\n public alternateIcon: string = OptionsButtonIconsSvgRoutes.optionsClicked;\n public currentIcon: string = this.originalIcon;\n\n //Dropdown options\n public isDropdownEnabled: boolean = false;\n public dropdownOptions!: IItemList[];\n\n constructor(public formatCurrencyPipe: FormatCurrencyPipe) {}\n\n ngOnInit() {\n this.setDropdownOptions();\n }\n\n private setDropdownOptions(): void {\n switch (this.status) {\n case StatusTypeEnum.ACTIVE:\n this.dropdownOptions = PickupDeliveryBlockConstants.activeOptions;\n break;\n case StatusTypeEnum.CLOSED:\n this.dropdownOptions = PickupDeliveryBlockConstants.closedOptions;\n break;\n case StatusTypeEnum.PENDING:\n this.dropdownOptions = PickupDeliveryBlockConstants.pendingOptions;\n break;\n default:\n this.dropdownOptions = [];\n break;\n }\n }\n\n public dropDownClickEvent() {\n this.isDropdownEnabled = !this.isDropdownEnabled;\n this.currentIcon = this.isDropdownEnabled\n ? this.alternateIcon\n : this.originalIcon;\n }\n\n public getSvgPath(\n propertyName: keyof typeof PickupDeliverySvgRoutes\n ): string {\n return PickupDeliverySvgRoutes[propertyName] as string;\n }\n}\n","<ng-container *ngIf=\"activeLoad && activeLoad.length; else noActiveLoad\">\n <div class=\"load-details d-flex\">\n <div class=\"details-container d-flex flex-column justify-content-between\">\n <div class=\"top-details d-flex justify-content-between\">\n <span class=\"price ca-font-medium\">\n LOAD {{ activeLoad[0].loadNumber }}\n <svg-icon\n [src]=\"getSvgPath('vector')\"\n [svgStyle]=\"{ 'width.px': 18 }\"\n ></svg-icon>\n </span>\n <span class=\"load ca-font-bold\">{{\n formatCurrencyPipe.transform(activeLoad[0].totalRate!)\n }}</span>\n </div>\n\n <div class=\"bottom-details d-flex justify-content-between\">\n <p class=\"miles-ref\">\n <svg-icon\n [src]=\"getSvgPath('miles')\"\n [svgStyle]=\"{ 'width.px': 14 }\"\n ></svg-icon>\n {{ activeLoad[0].totalMiles }}\n <span class=\"ref-text ca-font-bold\">Ref.</span>\n {{ activeLoad[0].referenceNumber }}\n </p>\n <p class=\"ca-font-bold\">\n Adj.\n <span class=\"adj-price\">{{\n formatCurrencyPipe.transform(activeLoad[0].totalAdjustedRate!)\n }}</span>\n </p>\n </div>\n </div>\n\n <div class=\"d-flex flex-column button-container align-items-start\">\n <app-ca-dropdown\n [icon]=\"currentIcon\"\n [itemList]=\"dropdownOptions\"\n (onClick)=\"dropDownClickEvent()\"\n [isPopupShown]=\"isDropdownEnabled\"\n ></app-ca-dropdown>\n </div>\n </div>\n\n <div class=\"stops d-flex justify-content-around\">\n <div class=\"stops-side d-flex align-items-center\">\n <span class=\"line-left d-flex justify-content-center align-items-center\">\n {{ activeLoad[0].pickupCount }}\n </span>\n <div class=\"date-location left d-flex flex-column align-items-start\">\n <span class=\"location ca-font-semi-bold\">\n {{ activeLoad[0].pickup?.shipper?.address?.city }},\n {{ activeLoad[0].pickup?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">{{\n activeLoad[0].pickup?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n </div>\n\n <span class=\"arrow d-flex justify-content-center align-items-center\">\n <svg-icon\n [src]=\"getSvgPath('arrowRight')\"\n [svgStyle]=\"{ 'width.px': 14 }\"\n ></svg-icon>\n </span>\n\n <div class=\"stops-side right d-flex align-items-center\">\n <div class=\"date-location right d-flex flex-column align-items-start\">\n <span class=\"location ca-font-semi-bold\">\n {{ activeLoad[0].delivery?.shipper?.address?.city }},\n {{ activeLoad[0].delivery?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">{{\n activeLoad[0].delivery?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n <span class=\"line-right d-flex justify-content-center align-items-center\">\n {{ activeLoad[0].deliveryCount }}\n </span>\n </div>\n </div>\n\n <div class=\"dispatch-stops\">\n <span class=\"bussiness-name ca-font-bold\">{{\n activeLoad[0].broker?.businessName\n }}</span>\n\n <div class=\"broker ca-font-regular\">\n <ng-container *ngIf=\"activeLoad[0].broker?.contactName\">\n <p>\n <svg-icon\n [src]=\"getSvgPath('userIcon')\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n {{ activeLoad[0].broker?.contactName }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"activeLoad[0].broker?.phone\">\n <p>\n <svg-icon\n [src]=\"getSvgPath('phoneIcon')\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n {{ activeLoad[0].broker?.phone }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"activeLoad[0].broker?.email\">\n <p>\n <svg-icon\n [src]=\"getSvgPath('mailIcon')\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n {{ activeLoad[0].broker?.email }}\n </p>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"status === 'ACTIVE'\">\n <div class=\"driverMessage\">\n <h3 class=\"ca-font-bold\">DRIVER MESSAGE</h3>\n <span class=\"message ca-font-regular\">{{\n activeLoad[0].driverMessage\n }}</span>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #noActiveLoad>\n <div class=\"no-active-load-message\">\n <h2>No active load</h2>\n </div>\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n//Models\nimport { LoadShortResponse } from '../../../../../ca-pickup-delivery-block/models/load-short-response';\nimport { IItemList } from '../../../../../../models/dropdown.model';\nimport { StatusTypeEnum } from '../../../../../ca-pickup-delivery-block/models/status-types.enum';\n//Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { CaDropdownComponent } from '../../../../../ca-dropdown/ca-dropdown.component';\nimport { ActiveLoadComponent } from '../../../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component';\n\n//Svg routes\nimport { PickupDeliverySvgRoutes } from '../../../../../ca-pickup-delivery-block/utils/svg-routes/pickup-delivery-svg.routes';\nimport { OptionsButtonIconsSvgRoutes } from '../../../../../ca-pickup-delivery-block/utils/svg-routes/options-icon.routes';\n\n//Dropdown options\nimport { PickupDeliveryBlockConstants } from '../../../../../ca-pickup-delivery-block/utils/constants/pickup-delivery-block.constants';\n\n//Pipes\nimport { FormatCurrencyPipe } from '../../../../../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../../../../../pipes/date-from-string.pipe';\n\n@Component({\n selector: 'app-ca-load-list',\n templateUrl: './ca-load-list.component.html',\n styleUrls: ['./ca-load-list.component.scss'],\n standalone: true,\n providers: [\n //Pipes\n FormatCurrencyPipe,\n ],\n imports: [\n //Angular\n CommonModule,\n\n //Modules\n AngularSvgIconModule,\n\n //Components\n CaDropdownComponent,\n ActiveLoadComponent,\n\n //Pipes\n DateFromStringPipe,\n ],\n})\nexport class LoadListComponent {\n @Input() loads!: Array<LoadShortResponse>;\n @Input() focusedTab!: StatusTypeEnum;\n @Input() isFocusingLoad: boolean = false;\n @Output() focusLoadEmitter = new EventEmitter<boolean>();\n\n public focusedLoad!: Array<LoadShortResponse>;\n\n //Icons\n public originalIcon: string = OptionsButtonIconsSvgRoutes.optionsDefault;\n public alternateIcon: string = OptionsButtonIconsSvgRoutes.optionsClicked;\n\n //Dropdown options\n public dropdownOptions!: IItemList[];\n private dropdownStates: { [key: string]: boolean } = {};\n private activeLoadNumber: number = -1;\n\n constructor(public formatCurrencyPipe: FormatCurrencyPipe) {}\n\n ngOnInit() {\n this.setDropdownOptions();\n }\n\n private setDropdownOptions(): void {\n switch (this.focusedTab) {\n case StatusTypeEnum.CLOSED:\n this.dropdownOptions = PickupDeliveryBlockConstants.closedOptions;\n break;\n case StatusTypeEnum.PENDING:\n this.dropdownOptions = PickupDeliveryBlockConstants.pendingOptions;\n break;\n default:\n this.dropdownOptions = [];\n break;\n }\n }\n\n public focusLoad(load: LoadShortResponse): void {\n this.isFocusingLoad = !this.isFocusingLoad;\n this.focusLoadEmitter.emit(this.isFocusingLoad);\n this.focusedLoad = [{ ...load }];\n }\n\n public dropDownClickEvent(loadNumber: number): void {\n if (this.activeLoadNumber !== -1 && this.activeLoadNumber !== loadNumber) {\n this.dropdownStates[this.activeLoadNumber] = false;\n }\n\n this.dropdownStates[loadNumber] = !this.dropdownStates[loadNumber];\n this.activeLoadNumber = this.dropdownStates[loadNumber] ? loadNumber : -1;\n }\n\n public isDropdownEnabled(loadNumber: number): boolean {\n return !!this.dropdownStates[loadNumber];\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public getSvgPath(\n propertyName: keyof typeof PickupDeliverySvgRoutes\n ): string {\n return PickupDeliverySvgRoutes[propertyName] as string;\n }\n}\n","<ng-container *ngIf=\"!isFocusingLoad; else focusedLoadTemplate\">\n <ng-template #loadList>\n <div class=\"wrapper-container\">\n <ng-container *ngFor=\"let load of loads; trackBy: trackByIdentity\">\n <div class=\"wrapper\" (click)=\"focusLoad(load)\">\n <div class=\"d-flex justify-content-around dispatch-stops\">\n <div\n class=\"load-num ca-font-bold d-flex justify-content-between align-items-center\"\n >\n <span class=\"loadNumber-companyName\">\n <span class=\"loadNumber\">{{ load.loadNumber }}</span>\n <span class=\"company-name ca-font-regular\">\n {{ load.broker?.businessName }}\n </span>\n </span>\n <span class=\"price\">{{\n formatCurrencyPipe.transform(load.totalRate!)\n }}</span>\n </div>\n <div class=\"button-container d-flex align-items-center\">\n <app-ca-dropdown\n [icon]=\"\n isDropdownEnabled(load.id) ? alternateIcon : originalIcon\n \"\n [itemList]=\"dropdownOptions\"\n [isPopupShown]=\"isDropdownEnabled(load.id)\"\n (click)=\"$event.stopPropagation()\"\n (onClick)=\"dropDownClickEvent(load.id)\"\n ></app-ca-dropdown>\n </div>\n </div>\n <div class=\"stops d-flex justify-content-around\">\n <div class=\"stops-side d-flex align-items-center\">\n <span\n class=\"line-left line-right d-flex justify-content-center align-items-center\"\n >\n {{ load.pickupCount }}</span\n >\n <div\n class=\"date-location left d-flex flex-column align-items-start\"\n >\n <span class=\"location ca-font-semi-bold\">\n {{ load.pickup?.shipper?.address?.city }},\n {{ load.pickup?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">\n {{ load.pickup?.dateFrom | dateFromStringPipe }}\n </span>\n </div>\n </div>\n <span class=\"d-flex justify-content-center align-items-center\">\n <svg-icon\n [src]=\"getSvgPath('arrowRight')\"\n [svgStyle]=\"{ 'width.px': 14 }\"\n ></svg-icon>\n </span>\n <div class=\"stops-side right d-flex align-items-center\">\n <div\n class=\"date-location right d-flex flex-column align-items-end\"\n >\n <span class=\"location ca-font-semi-bold\">\n {{ load.delivery?.shipper?.address?.city }},\n {{ load.delivery?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">\n {{ load.delivery?.dateFrom | dateFromStringPipe }}\n </span>\n </div>\n <span\n class=\"line-right d-flex justify-content-center align-items-center\"\n >\n {{ load.deliveryCount }}</span\n >\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-template>\n\n <div class=\"wrapper-container\">\n <ng-container *ngTemplateOutlet=\"loadList\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #focusedLoadTemplate>\n <div class=\"focused-load-template\">\n <app-ca-load-single\n [activeLoad]=\"focusedLoad\"\n [status]=\"focusedTab\"\n ></app-ca-load-single>\n </div>\n</ng-template>\n","import { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\nimport { AnimationObject } from '../../../ca-pickup-delivery-block/models/animation-model';\nexport class LoadTabsConstants {\n static ANIMATION_OBJECT: AnimationObject = {\n value: StatusTypeEnum.ACTIVE,\n params: { height: '0px' },\n };\n}\n","import {\n animate,\n group,\n keyframes,\n query,\n style,\n transition,\n trigger,\n} from \"@angular/animations\";\n\nexport const tabsModalAnimation = (type: string) =>\n trigger(type, [\n transition(\"ACTIVE => PENDING, CLOSED => ACTIVE, CLOSED => PENDING\", left, {\n params: { height: \"0px\" },\n }),\n transition(\n \"PENDING => ACTIVE, ACTIVE => CLOSED, PENDING => CLOSED\",\n right,\n {\n params: { height: \"0px\" },\n }\n ),\n ]);\n\nconst left = [\n query(\":leave\", style({ position: \"absolute\", width: \"100%\" }), {\n optional: true,\n }),\n group([\n query(\n \":enter\",\n [\n style({\n transform: \"translateX(-8%)\",\n opacity: 0,\n height: \"{{height}}\",\n }),\n animate(\n \".2s\",\n keyframes([\n style({\n transform: \"translateX(0%)\",\n opacity: 1,\n height: \"*\",\n }),\n ])\n ),\n ],\n {\n optional: true,\n }\n ),\n query(\n \":leave\",\n [\n style({\n opacity: 0,\n }),\n animate(\n \".2s\",\n style({\n opacity: 0,\n height: \"*\",\n })\n ),\n ],\n {\n optional: true,\n }\n ),\n ]),\n];\n\nconst right = [\n query(\":leave\", style({ position: \"absolute\", width: \"100%\" }), {\n optional: true,\n }),\n group([\n query(\n \":enter\",\n [\n style({\n transform: \"translateX(8%)\",\n opacity: 0,\n height: \"{{height}}\",\n }),\n animate(\n \".2s\",\n keyframes([\n style({\n transform: \"translateX(0%)\",\n opacity: 1,\n height: \"*\",\n }),\n ])\n ),\n ],\n {\n optional: true,\n }\n ),\n query(\n \":leave\",\n [\n style({\n opacity: 0,\n }),\n animate(\n \".2s\",\n style({\n opacity: 0,\n height: \"*\",\n })\n ),\n ],\n {\n optional: true,\n }\n ),\n ]),\n];\n","export class ReturnArrowIconsSvgRoutes {\n static optionsDefault: string = \"assets/ca-components/svg/pickup-delivery/arrowLeft.svg\";\n static optionsHovered: string = \"assets/ca-components/svg/pickup-delivery/arrowLeftHover.svg\";\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Modules\nimport { NgbNavModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Components\nimport { LoadListComponent } from '../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component';\nimport { ActiveLoadComponent } from '../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component';\n\n// Models\nimport { DispatchAssignedLoadListResponse } from '../../../ca-pickup-delivery-block/models/dispatch-assigned-load-list-response';\nimport { LoadShortResponse } from '../../../ca-pickup-delivery-block/models/load-short-response';\nimport { LoadTabsConstants } from '../../../ca-pickup-delivery-block/utils/constants/animation-object-default.constants';\n\n// Animations\nimport { tabsModalAnimation } from '../../../../animations/tabs-modal.animation';\nimport { AnimationObject } from '../../../ca-pickup-delivery-block/models/animation-model';\n\n// Svg routes\nimport { ReturnArrowIconsSvgRoutes } from '../../../ca-pickup-delivery-block/utils/svg-routes/return-arrow.routes';\n\n// Enums\nimport { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\n\n@Component({\n selector: 'app-ca-load',\n templateUrl: './ca-load.component.html',\n styleUrls: ['./ca-load.component.scss'],\n standalone: true,\n animations: [tabsModalAnimation('animationTabsModal')],\n providers: [AngularSvgIconModule],\n imports: [\n CommonModule,\n HttpClientModule,\n\n //Modules\n NgbNavModule,\n AngularSvgIconModule,\n NgbTooltipModule,\n\n // Components\n ActiveLoadComponent,\n LoadListComponent,\n ],\n})\nexport class LoadComponent {\n @Input() focusedTab!: StatusTypeEnum;\n @Input() loads!: DispatchAssignedLoadListResponse;\n\n //Tabs and load data\n public tabs: StatusTypeEnum[] = Object.values(StatusTypeEnum);\n public activeLoad!: Array<LoadShortResponse>;\n public pendingLoads!: Array<LoadShortResponse>;\n public closedLoads!: Array<LoadShortResponse>;\n public hasLoad = false;\n\n public StatusTypeEnum = StatusTypeEnum;\n\n //Is visible when focusing on an pending or closed load\n public returnButtonVisible: boolean = false;\n\n // Animation\n public animationObject!: AnimationObject;\n\n // Status bar position\n public isTop: boolean = true;\n\n // Icons\n private defaultIcon: string = ReturnArrowIconsSvgRoutes.optionsDefault;\n private hoverIcon: string = ReturnArrowIconsSvgRoutes.optionsHovered;\n public currentIcon: string = this.defaultIcon;\n\n ngOnInit() {\n this.extractLoadStatuses();\n this.getConstantData();\n }\n\n private getConstantData(): void {\n this.animationObject = JSON.parse(\n JSON.stringify(LoadTabsConstants.ANIMATION_OBJECT)\n );\n }\n\n private extractLoadStatuses(): void {\n const { closed, active, pending } = this.loads;\n this.activeLoad = active ?? [];\n this.closedLoads = closed ?? [];\n this.pendingLoads = pending ?? [];\n }\n\n public onMouseEnter(): void {\n this.currentIcon = this.hoverIcon;\n }\n\n public onMouseLeave(): void {\n this.currentIcon = this.defaultIcon;\n }\n\n public toggleFocusedLoad(): void {\n this.returnButtonVisible = !this.returnButtonVisible;\n }\n\n public setFocusedTab(status: StatusTypeEnum): void {\n if (this.returnButtonVisible) {\n this.returnButtonVisible = false;\n }\n this.focusedTab = status;\n const dotAnimation = document.querySelector('.animation-three-tabs');\n this.animationObject = {\n value: status,\n params: { height: `${dotAnimation?.getClientRects()[0].height}px` },\n };\n }\n}\n","<div class=\"load-component\">\n <!-- isTop === TRUE -->\n <ng-container *ngIf=\"isTop; else isTopFalseTemplate\">\n <div class=\"d-flex align-items-center assigned-load-holder\">\n <ng-container *ngIf=\"returnButtonVisible\">\n <button\n class=\"returnButton\"\n placement=\"bottom\"\n ngbTooltip=\"Back\"\n (click)=\"toggleFocusedLoad()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <svg-icon\n [src]=\"currentIcon\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n </button>\n </ng-container>\n <span class=\"ca-font-extra-bold\">ASSIGNED LOAD</span>\n </div>\n\n <div class=\"statusBar d-flex justify-content-evenly\">\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n class=\"ca-font-bold d-flex justify-content-center align-items-center\"\n (click)=\"setFocusedTab(tab)\"\n [class.active]=\"focusedTab === tab\"\n >\n {{ tab }}\n </button>\n </ng-container>\n </div>\n\n <div [@animationTabsModal]=\"animationObject\" class=\"animation-three-tabs\">\n <div [ngSwitch]=\"focusedTab\">\n <ng-container *ngSwitchCase=\"'CLOSED'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!closedLoads\">No closed loads</ng-container>\n <app-ca-load-list\n *ngIf=\"closedLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"closedLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.CLOSED\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n <div class=\"activeLoadInformation\">\n <app-ca-load-single\n *ngIf=\"activeLoad\"\n [status]=\"focusedTab\"\n [activeLoad]=\"activeLoad\"\n ></app-ca-load-single>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'PENDING'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!pendingLoads\">No pending loads</ng-container>\n <app-ca-load-list\n *ngIf=\"pendingLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"pendingLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.PENDING\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- isTop === false -->\n\n <ng-template #isTopFalseTemplate>\n <div [@animationTabsModal]=\"animationObject\" class=\"animation-three-tabs\">\n <div [ngSwitch]=\"focusedTab\">\n <ng-container *ngSwitchCase=\"'CLOSED'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!closedLoads\">No closed loads</ng-container>\n <app-ca-load-list\n *ngIf=\"closedLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"closedLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.CLOSED\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n <div class=\"activeLoadInformation\">\n <app-ca-load-single\n *ngIf=\"activeLoad\"\n [status]=\"focusedTab\"\n [activeLoad]=\"activeLoad\"\n ></app-ca-load-single>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'PENDING'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!pendingLoads\">No pending loads</ng-container>\n <app-ca-load-list\n *ngIf=\"pendingLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"pendingLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.PENDING\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"statusBar d-flex justify-content-evenly\">\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n class=\"ca-font-bold d-flex justify-content-center align-items-center\"\n (click)=\"setFocusedTab(tab)\"\n [class.active]=\"focusedTab === tab\"\n >\n {{ tab }}\n </button>\n </ng-container>\n </div>\n\n <div class=\"d-flex align-items-center assigned-load-holder\">\n <ng-container *ngIf=\"returnButtonVisible\">\n <button\n class=\"returnButton\"\n placement=\"bottom\"\n ngbTooltip=\"Back\"\n (click)=\"toggleFocusedLoad()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <svg-icon\n [src]=\"currentIcon\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n </button>\n </ng-container>\n <span class=\"ca-font-extra-bold\">ASSIGNED LOAD</span>\n </div>\n </ng-template>\n</div>\n","import { DispatchAssignedLoadListResponse } from '../../../ca-pickup-delivery-block/models/dispatch-assigned-load-list-response';\nimport { LoadShortResponse } from '../../../ca-pickup-delivery-block/models/load-short-response';\nimport { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\n\nexport class PickupDeliveryHelper {\n static setLoadDetails(\n loadDetails: DispatchAssignedLoadListResponse | null\n ): {\n load?: LoadShortResponse;\n loadType: StatusTypeEnum;\n } {\n if (loadDetails?.active) {\n return {\n load: loadDetails.active[0],\n loadType: StatusTypeEnum.ACTIVE,\n };\n } else if (loadDetails?.pending && loadDetails.pending.length > 0) {\n return {\n load: loadDetails.pending[0],\n loadType: StatusTypeEnum.PENDING,\n };\n } else if (loadDetails?.closed) {\n return { loadType: StatusTypeEnum.CLOSED };\n } else {\n return { loadType: StatusTypeEnum.CLOSED };\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n// Modals\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Components\nimport { LoadComponent } from '../ca-pickup-delivery-block/components/ca-load/ca-load.component';\n\n// Models\nimport { DispatchAssignedLoadListResponse } from '../ca-pickup-delivery-block/models/dispatch-assigned-load-list-response';\nimport { LoadShortResponse } from '../ca-pickup-delivery-block/models/load-short-response';\n\n// Helpers\nimport { PickupDeliveryHelper } from '../ca-pickup-delivery-block/utils/helpers/pickup-delivery.helper';\nimport { StatusTypeEnum } from '../ca-pickup-delivery-block/models/status-types.enum';\n\n// Pipes\nimport { DateFromStringPipe } from '../../pipes/date-from-string.pipe';\n\n// Modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-ca-pickup-delivery-block',\n templateUrl: './ca-pickup-delivery-block.component.html',\n styleUrls: ['./ca-pickup-delivery-block.component.scss'],\n imports: [CommonModule, DateFromStringPipe, LoadComponent, NgbModule],\n standalone: true,\n})\nexport class PickupDeliveryBlockComponent implements OnInit {\n @Input() loads!: DispatchAssignedLoadListResponse;\n\n public loadInfo: LoadShortResponse = {} as LoadShortResponse;\n public hasLoad: boolean = false;\n public loadType!: StatusTypeEnum;\n public isPopoverOpen: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n this.initializeLoadDetails();\n }\n\n private initializeLoadDetails(): void {\n const { load, loadType } = PickupDeliveryHelper.setLoadDetails(this.loads);\n if (load) {\n this.loadInfo = load;\n this.hasLoad = true;\n this.loadType = loadType;\n } else {\n this.hasLoad = false;\n }\n }\n\n public openPopover(t2: NgbPopover): void {\n t2.open();\n this.isPopoverOpen = true;\n }\n\n public closePopover(t2: NgbPopover): void {\n this.isPopoverOpen = false;\n t2.close();\n }\n}\n","<div class=\"incomplete-table-container\">\n <ng-container *ngIf=\"hasLoad; else noLoadInfo\">\n <div\n class=\"incomplete-table-holder stops d-flex justify-content-between align-items-center\"\n #t2=\"ngbPopover\"\n [ngClass]=\"{ popoverOpen: isPopoverOpen }\"\n [ngbPopover]=\"loadDetailsPopover\"\n triggers=\"manual\"\n [autoClose]=\"'outside'\"\n container=\"body\"\n [placement]=\"'bottom'\"\n (click)=\"openPopover(t2)\"\n (hidden)=\"closePopover(t2)\"\n (shown)=\"isPopoverOpen = true\"\n >\n <div class=\"stops-side d-flex align-items-center left\">\n <span\n class=\"d-flex justify-content-center align-items-center pickupStationNumber ca-font-bold\"\n [ngClass]=\"{\n 'active-pickup': loadType === 'ACTIVE',\n 'pending-pickup': loadType === 'PENDING',\n }\"\n >{{ loadInfo.pickupCount }}</span\n >\n <div class=\"d-flex flex-column\">\n <span class=\"location ca-font-semi-bold\"\n >{{ loadInfo.pickup?.shipper?.address?.city }},\n {{ loadInfo.pickup?.shipper?.address?.state }}</span\n >\n <span class=\"date ca-font-regular d-flex justify-content-start\">{{\n loadInfo.pickup?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n </div>\n\n <div class=\"stops-side d-flex align-items-center right\">\n <span\n class=\"d-flex justify-content-center align-items-center deliveryStationNumber ca-font-bold\"\n [ngClass]=\"{\n 'active-delivery': loadType === 'ACTIVE',\n 'pending-delivery': loadType === 'PENDING',\n }\"\n >{{ loadInfo.deliveryCount }}</span\n >\n <div class=\"d-flex flex-column\">\n <span class=\"location ca-font-semi-bold\"\n >{{ loadInfo.delivery?.shipper?.address?.city }},\n {{ loadInfo.delivery?.shipper?.address?.state }}</span\n >\n <span class=\"date ca-font-regular d-flex justify-content-start\">{{\n loadInfo.delivery?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noLoadInfo>\n <div class=\"incomplete-table-holder\"></div>\n </ng-template>\n\n <ng-template #loadDetailsPopover>\n <app-ca-load [focusedTab]=\"loadType\" [loads]=\"loads\"></app-ca-load>\n </ng-template>\n</div>\n","export class MapConstants {\n static GOOGLE_MAP_STYLES: google.maps.MapTypeStyle[] = [\n {\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#f5f5f5\",\n },\n ],\n },\n {\n elementType: \"labels.icon\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"transit\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n stylers: [\n {\n color: \"#616161\",\n },\n {\n visibility: \"on\",\n },\n {\n weight: 1,\n },\n ],\n },\n {\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: \"#f5f5f5\",\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#bdbdbd\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#eeeeee\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#e5e5e5\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n {\n featureType: \"landscape\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#ffffff\",\n },\n ],\n },\n {\n featureType: \"road\",\n stylers: [\n {\n saturation: -100,\n },\n {\n lightness: 30,\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#dadada\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n {\n featureType: \"transit.line\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#e5e5e5\",\n },\n ],\n },\n {\n featureType: \"transit.station\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#eeeeee\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#c9c9c9\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n ];\n\n static GOOGLE_MAP_DARK_STYLES = [\n {\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#212121\",\n },\n ],\n },\n {\n elementType: \"labels.icon\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: \"#212121\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.locality\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#bdbdbd\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#181818\",\n },\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: \"#1b1b1b\",\n },\n ],\n },\n {\n featureType: \"road\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: \"#2c2c2c\",\n },\n ],\n },\n {\n featureType: \"road\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#8a8a8a\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#373737\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#3c3c3c\",\n },\n ],\n },\n {\n featureType: \"road.highway.controlled_access\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#4e4e4e\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n featureType: \"transit\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#000000\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#3d3d3d\",\n },\n ],\n },\n ];\n\n static NORTH_AMERICA_BOUNDS = {\n north: 75,\n south: 9,\n west: -170,\n east: -50,\n };\n}\n","export const ProgressBarConstants = {\n completed: \"completed\",\n completed_text: \"452.0 mi\",\n total: \"TOTAL\",\n zero: 0,\n percentage: \"%\",\n};\n","export class ProgressBarSvgRoutes {\n static checkRoute: string = \"assets/ca-components/svg/map/check.svg\";\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n//modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n//Components\nimport { CaMapComponent } from '../ca-map/ca-map.component';\n\n//Constants\nimport { MapConstants } from '../../constants/map.constant';\nimport { ProgressBarConstants } from '../ca-progress-bar/utils/constants/progress-bar.constants';\n\n//model\nimport { IGpsProgress } from '../ca-progress-bar/models/gps-progress.model';\n\n//svg-routes\nimport { ProgressBarSvgRoutes } from '../ca-progress-bar/utils/svg-routes/progress-bar-svg-routes';\n\n@Component({\n selector: 'app-ca-progress-bar',\n templateUrl: './ca-progress-bar.component.html',\n styleUrls: ['./ca-progress-bar.component.scss'],\n standalone: true,\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n //Components\n CaMapComponent,\n ],\n})\nexport class ProgressBarComponent {\n @Input() isDropdown: boolean = false;\n @Input() currentPosition!: number;\n @Input() mileageInfo!: string;\n @Input() currentStop!: IGpsProgress;\n @Input() gpsTitle: string = '';\n @Input() gpsIcon!: string;\n @Input() gpsInfo!: {\n gpsheading: string;\n gpsTime: string;\n gpsheadingColor?: string;\n };\n @Input() mileagesPercent!: string;\n @Input() gpsProgress: IGpsProgress[] = [];\n @Input() gpsLocationIcon!: string;\n public hoveredGpsIcon: boolean = false;\n public hoveredGpsCurrentPosition: boolean = false;\n public showDropdown: boolean = false;\n public focusedIcon: number = -1;\n public isIcon: boolean = false;\n public tooltip: string = '';\n public staticConstant = ProgressBarConstants;\n\n public Mapdata = {\n center: { lat: 41.860119, lng: -87.660156 },\n mapZoom: 1,\n markers: [],\n clustermarkers: [],\n routingMarkers: [\n {\n position: { lat: 38.122958832669, lng: -85.6978972106951 },\n icon: {\n url: 'assets/ca-components/svg/map/gps-location.svg',\n labelOrigin: new google.maps.Point(80, 15),\n },\n },\n {\n position: { lat: 34.81629127878479, lng: -84.05705557447767 },\n icon: {\n url: 'assets/ca-components/svg/map/progress_marker_reached.svg',\n labelOrigin: new google.maps.Point(80, 15),\n },\n },\n {\n position: { lat: 29.533042509319234, lng: -82.27005101950496 },\n icon: {\n url: 'assets/ca-components/svg/map/progress_marker-pin-dark.svg',\n labelOrigin: new google.maps.Point(80, 15),\n },\n },\n {\n position: { lat: 34.001049366913065, lng: -84.48820105737911 },\n icon: {\n url: 'assets/ca-components/svg/map/progress-marker-checked.svg',\n labelOrigin: new google.maps.Point(90, 15),\n },\n },\n {\n position: { lat: 38.197103511601675, lng: -85.79030629905438 },\n icon: {\n url: 'assets/ca-components/svg/map/progress-marker-pickup.svg',\n labelOrigin: new google.maps.Point(90, 15),\n },\n },\n {\n position: { lat: 40.324100681086385, lng: -86.37922103258747 },\n icon: {\n url: 'assets/ca-components/svg/map/progress-marker-pickup-checked.svg',\n labelOrigin: new google.maps.Point(90, 15),\n },\n },\n ],\n routePaths: [\n {\n path: [\n { lat: 34.81629127878479, lng: -84.05705557447767 },\n { lat: 29.533042509319234, lng: -82.27005101950496 },\n ],\n strokeColor: 'white',\n },\n {\n path: [\n { lat: 29.533042509319234, lng: -82.27005101950496 },\n { lat: 34.001049366913065, lng: -84.48820105737911 },\n ],\n strokeColor: 'white',\n },\n {\n path: [\n { lat: 34.001049366913065, lng: -84.48820105737911 },\n { lat: 43.121294982393685, lng: -88.02218586773331 },\n ],\n strokeColor: 'red',\n },\n {\n path: [\n { lat: 43.121294982393685, lng: -88.02218586773331 },\n { lat: 38.122958832669, lng: -85.6978972106951 },\n ],\n strokeColor: 'red',\n },\n {\n path: [\n { lat: 38.122958832669, lng: -85.6978972106951 },\n { lat: 38.197103511601675, lng: -85.79030629905438 },\n ],\n strokeColor: 'red',\n },\n ],\n mapOptions: {\n restriction: {\n latLngBounds: MapConstants.NORTH_AMERICA_BOUNDS,\n strictBounds: true,\n },\n streetViewControl: false,\n styles: MapConstants.GOOGLE_MAP_DARK_STYLES,\n keyboardShortcuts: false,\n panControl: true,\n gestureHandling: 'greedy',\n mapTypeControl: false,\n disableDefaultUI: true,\n },\n };\n constructor() {}\n\n public hoverStop(\n stop: IGpsProgress,\n i: number,\n isIcon: boolean = false\n ): void {\n this.hoveredGpsCurrentPosition = true;\n this.gpsTitle = stop.heading || '';\n this.mileageInfo = stop.mileage;\n this.focusedIcon = i;\n this.isIcon = isIcon;\n this.getToolTip();\n }\n\n public leaveStop(): void {\n this.hoveredGpsCurrentPosition = false;\n this.gpsTitle = '128.4 mi';\n this.mileageInfo = '226.3 mi';\n this.focusedIcon = -1;\n }\n\n public getLeftStyle(): string {\n if (this.isIcon) {\n return this.currentStop.position + '%';\n } else {\n return this.gpsProgress[this.focusedIcon].position - 20 + '%';\n }\n }\n\n public getToolTip(): string {\n if (this.isIcon) {\n this.tooltip = this.currentStop?.location;\n return this.tooltip;\n } else {\n this.tooltip = this.gpsProgress[this.focusedIcon].location;\n return this.tooltip;\n }\n }\n\n public identity(index: number): number {\n return index;\n }\n\n public showDropdownMap(t2: NgbPopover): void {\n t2.open();\n }\n\n public getSvgPath(propertyName: keyof typeof ProgressBarSvgRoutes): string {\n return ProgressBarSvgRoutes[propertyName] as string;\n }\n}\n","<div class=\"gps-progress-bar\">\n <div\n class=\"gps-progress-holder d-flex align-items-center\"\n #t2=\"ngbPopover\"\n [ngbPopover]=\"gpsDropdownPopover\"\n [autoClose]=\"'outside'\"\n container=\"body\"\n [placement]=\"'bottom'\"\n popoverClass=\"gps_dropdown_popover\"\n triggers=\"manual\"\n (click)=\"showDropdownMap(t2)\"\n >\n <div\n class=\"gps-progress-img\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <ng-container *ngIf=\"!hoveredGpsIcon\">\n <div class=\"gps-progress-text\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div class=\"mileages ca-font-semi-bold\">{{ gpsTitle }}</div>\n <div class=\"mileage-normal ca-font-regular\">\n {{ mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n <ng-container\n *ngFor=\"let stop of gpsProgress; let i = index; trackBy: identity\"\n >\n <div\n class=\"gps-stop\"\n (mouseenter)=\"hoverStop(stop, i, false)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ></div>\n </ng-container>\n <div\n class=\"current-pos\"\n (mouseenter)=\"hoverStop(currentStop, -2, true)\"\n (mouseleave)=\"leaveStop()\"\n [ngStyle]=\"{ left: currentPosition + '%' }\"\n >\n <svg-icon [src]=\"gpsLocationIcon\"></svg-icon>\n </div>\n <ng-container\n *ngIf=\"hoveredGpsCurrentPosition && focusedIcon !== -1\"\n >\n <div\n class=\"gps_current_info\"\n [ngStyle]=\"{ left: getLeftStyle() }\"\n >\n <div class=\"gps_info_title ca-font-bold\">{{ tooltip }}</div>\n </div>\n </ng-container>\n </div>\n <div class=\"mileages ca-font-semi-bold\">{{ mileagesPercent }}</div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"hoveredGpsIcon\">\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-black\"\n [ngStyle]=\"{ color: gpsInfo?.gpsheadingColor }\"\n >\n {{ gpsInfo?.gpsheading }}\n </div>\n <div class=\"moving_time ca-font-medium\">{{ gpsInfo?.gpsTime }}</div>\n </div>\n </ng-container>\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"map_holder\">\n <app-ca-map [data]=\"Mapdata\"></app-ca-map>\n </div>\n <div class=\"gps_all_hold\">\n <div\n class=\"gps_header d-flex align-items-center\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <div class=\"gps-progress-img\">\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-black\"\n [ngStyle]=\"{ color: gpsInfo?.gpsheadingColor }\"\n >\n {{ gpsInfo?.gpsheading }}\n </div>\n <div class=\"moving_time ca-font-medium\">\n {{ !hoveredGpsIcon ? \"Near Maplewood, MO\" : \"03:47\" }}\n </div>\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_progress_hold\">\n <div\n class=\"gps_progress_hold_inner d-flex flex-column justify-content-between align-items-start\"\n >\n <div class=\"progress_line\">\n <div\n class=\"progress_inner_line\"\n [ngStyle]=\"{\n height: currentPosition + '%',\n }\"\n ></div>\n <div\n class=\"progress_moving_dot d-flex justify-content-center align-items-center\"\n [style.top]=\"'calc(' + currentPosition + '% - 7px)'\"\n >\n <div class=\"moving_dot_inner\"></div>\n </div>\n </div>\n <div class=\"progress_inner\" *ngFor=\"let stop of gpsProgress\">\n <div class=\"progress_header d-flex align-items-center\">\n <div class=\"progress_header_inside d-flex\">\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n [ngClass]=\"{\n pickup_future:\n currentPosition < stop.position &&\n stop.type === 'pickup',\n }\"\n >\n <svg-icon\n *ngIf=\"currentPosition > stop.position\"\n [src]=\"getSvgPath('checkRoute')\"\n ></svg-icon>\n <ng-container *ngIf=\"currentPosition < stop.position\">\n <div\n class=\"progress_dot\"\n [ngStyle]=\"{\n backgroundColor:\n stop.type === 'pickup' ? '#4DB6A2' : '#E57373',\n }\"\n ></div>\n </ng-container>\n </div>\n <div class=\"progress_info_hold d-flex flex-column\">\n <div\n class=\"progress_name ca-font-bold\"\n [ngStyle]=\"{\n color:\n currentPosition < stop.position\n ? '#ffffff'\n : '#919191',\n }\"\n >\n {{ stop.location }}\n </div>\n <ng-container *ngIf=\"currentPosition < stop.position\">\n <div class=\"progress_time ca-font-regular\">\n {{ stop.time }}\n </div></ng-container\n >\n </div>\n </div>\n <div\n class=\"progress_type d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n backgroundColor:\n currentPosition > stop.position\n ? '#AAAAAA'\n : stop.type === 'pickup'\n ? '#4DB6A2'\n : '#E57373',\n }\"\n >\n <div class=\"progress_number ca-font-bold\">\n {{ staticConstant.zero }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"gps_complete_text ca-font-bold\">\n {{ staticConstant.completed }}\n </div>\n <div class=\"gps_complete_text_info ca-font-bold\">\n {{ staticConstant.total }}\n </div>\n </div>\n <div class=\"gps_complete_second_row d-flex\">\n <div class=\"gps_complete_text ca-font-bold\">\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n <div class=\"gps_complete_text_info ca-font-bold\">\n {{ staticConstant.completed_text }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n</div>\n","export class SearchMultipleStatesRoutes {\n static searchButton: string =\n 'assets/ca-components/svg/search-multiple-states/search-button.svg';\n static focusedSearchButton: string =\n 'assets/ca-components/svg/search-multiple-states/focused-search-button.svg';\n static clearSearch: string = 'assets/ca-components/svg/search-multiple-states/clear-search.svg';\n static add: string = 'assets/ca-components/svg/search-multiple-states/add.svg';\n}\n","import { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nexport const toggleAnimation = trigger('focusChange', [\n state('default', style({\n opacity: 1,\n })),\n state('focused', style({\n opacity: 1,\n })),\n transition('default => focused', [\n style({ opacity: 0 }),\n animate('0.25s')\n ]),\n transition('focused => default', [\n animate('0.25s')\n ])\n ]);","import { ICaInput } from '../../../ca-input/config/ca-input.config';\n\nexport const inputConfig: ICaInput = {\n name: 'search-multiple-states',\n label: 'Find',\n isDisabled: false,\n type: 'search-multiple-states',\n blackInput: true,\n hideClear: true,\n};\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule } from '@angular/forms';\n\n// SvgRoutes\nimport { SearchMultipleStatesRoutes } from '../ca-search-multiple-states/utils/svg-routes/search-multiple-states.routes';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputComponent } from '../ca-input/ca-input.component';\n\n// Animation\nimport { toggleAnimation } from '../../animations/expand-search-button.animation';\n\n//odels\nimport { ICaInput } from '../ca-input/config/ca-input.config';\n\n//Input config\nimport { inputConfig } from '../ca-search-multiple-states/utils/config/input-config';\n\n@Component({\n selector: 'app-ca-search-multiple-states',\n standalone: true,\n animations: [toggleAnimation],\n imports: [\n // Angular\n CommonModule,\n AngularSvgIconModule,\n HttpClientModule,\n\n // Modules\n FormsModule,\n NgbTooltipModule,\n\n // Components\n CaAppTooltipV2Component,\n CaInputComponent,\n ],\n templateUrl: './ca-search-multiple-states.component.html',\n styleUrls: ['./ca-search-multiple-states.component.scss'],\n})\nexport class CaSearchMultipleStatesComponent {\n @Output() searchQueriesEmitter = new EventEmitter<string[]>();\n\n public isFocused: boolean = false;\n public searchQueries: string[] = [];\n public searchQuery: string = '';\n public searchMultipleStatesSvgRoutes: typeof SearchMultipleStatesRoutes =\n SearchMultipleStatesRoutes;\n public inputConfig: ICaInput = inputConfig;\n\n get isSearchQueryNotEmpty(): boolean {\n return this.searchQuery.trim() !== '';\n }\n\n public emitSearchQueries(): void {\n this.searchQueriesEmitter.emit(this.searchQueries);\n }\n\n public toggleFocus(): void {\n this.isFocused = !this.isFocused;\n }\n\n public addSearchQuery(): void {\n if (this.searchQuery.trim() && this.searchQueries.length < 3) {\n this.searchQueries.push(this.searchQuery.trim());\n this.searchQuery = '';\n }\n }\n\n public removeSearchQuery(index: number): void {\n this.searchQueries.splice(index, 1);\n }\n\n public clearSearchBar(): void {\n this.searchQuery = '';\n }\n\n public removeSelected(index: number): void {\n this.searchQueries.splice(index, 1);\n this.isFocused = false;\n }\n\n public removeQuery(): void {\n this.searchQueries = [];\n }\n\n public trackByQuery(index: number, query: string): string {\n return query;\n }\n\n public getSvgPath(\n propertyName: keyof typeof SearchMultipleStatesRoutes\n ): string {\n return SearchMultipleStatesRoutes[propertyName] as string;\n }\n}\n","<div [@focusChange]=\"isFocused ? 'focused' : 'default'\">\n <div *ngIf=\"isFocused; else defaultTemplate\">\n <ng-container *ngIf=\"searchQueries.length >= 3; else focusedTemplate\">\n <ng-container *ngTemplateOutlet=\"searchArrayFull\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<!-- Default Template -->\n<ng-template #defaultTemplate>\n <div class=\"d-flex align-items-center justify-content-start wrapper\">\n <span\n class=\"divider d-flex align-items-center justify-content-center\"\n ></span>\n <span class=\"d-flex justify-content-center\">\n <span\n ngbTooltip\n [mainTooltip]=\"'Search'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n (click)=\"toggleFocus()\"\n class=\"search-icon d-flex align-items-center\"\n >\n <svg-icon\n class=\"search-icon d-flex align-items-center\"\n [src]=\"getSvgPath('searchButton')\"\n [svgStyle]=\"{ 'width.px': 26, 'height.px': 26 }\"\n ></svg-icon>\n </span>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n class=\"search-queries d-flex align-items-center justify-content-center\"\n >\n <ng-container\n *ngFor=\"\n let query of searchQueries;\n let i = index;\n trackBy: trackByQuery\n \"\n >\n <span\n (click)=\"removeSelected(i)\"\n class=\"query d-flex justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n {{ query }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n ngbTooltip\n [mainTooltip]=\"'Clear All'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"svg-icon-clear d-flex\"\n [src]=\"getSvgPath('clearSearch')\"\n (click)=\"removeQuery()\"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </span>\n <span class=\"divider d-flex align-items-center\"></span>\n </div>\n</ng-template>\n\n<!-- Focused Template -->\n<ng-template #focusedTemplate>\n <div class=\"d-flex align-items-center justify-content-start wrapperFocused\">\n <span class=\"divider d-flex align-items-center\"></span>\n <div class=\"d-flex align-items-center justify-content-start form\">\n <div\n (click)=\"toggleFocus()\"\n class=\"d-flex align-items-center justify-content-start search\"\n ngbTooltip\n [mainTooltip]=\"'Close'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"search-icon d-flex justify-content-center align-items-center\"\n [src]=\"getSvgPath('focusedSearchButton')\"\n [svgStyle]=\"{ 'width.px': 26, 'height.px': 26 }\"\n ></svg-icon>\n <span\n class=\"divider d-flex align-items-center justify-content-center\"\n ></span>\n </div>\n\n <div class=\"d-flex align-items-center\">\n <app-ca-input\n class=\"input\"\n type=\"text\"\n (keyup.enter)=\"addSearchQuery()\"\n [(ngModel)]=\"searchQuery\"\n name=\"search\"\n placeholder=\"Find Title\"\n [inputConfig]=\"inputConfig\"\n ></app-ca-input>\n <ng-container *ngIf=\"isSearchQueryNotEmpty\">\n <div\n class=\"d-flex justify-content-start align-items-center add-clear-icons\"\n >\n <div\n (click)=\"addSearchQuery()\"\n ngbTooltip\n [mainTooltip]=\"'Confirm'\"\n tooltipBackground=\"#000000\"\n position=\"top\"\n >\n <svg-icon\n class=\"svg-icon-in-form d-flex\"\n [src]=\"getSvgPath('add')\"\n ></svg-icon>\n </div>\n <div\n (click)=\"clearSearchBar()\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"top\"\n >\n <svg-icon\n class=\"svg-icon-in-form d-flex\"\n [src]=\"getSvgPath('clearSearch')\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n class=\"search-queries d-flex align-items-center justify-content-center\"\n >\n <ng-container\n *ngFor=\"\n let query of searchQueries;\n let i = index;\n trackBy: trackByQuery\n \"\n >\n <span\n (click)=\"removeSelected(i)\"\n class=\"query d-flex justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n {{ query }}\n </span>\n </ng-container>\n <div\n (click)=\"removeQuery()\"\n ngbTooltip\n [mainTooltip]=\"'Clear All'\"\n tooltipBackground=\"#000000\"\n position=\"top\"\n >\n <svg-icon\n class=\"svg-icon-clear d-flex align-items-center\"\n [src]=\"getSvgPath('clearSearch')\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n <span class=\"divider d-flex align-items-center\"></span>\n </div>\n</ng-template>\n\n<!-- Search Array Full -->\n<ng-template #searchArrayFull>\n <div class=\"d-flex align-items-center justify-content-start wrapperFocused\">\n <span class=\"divider d-flex align-items-center\"></span>\n <div class=\"d-flex align-items-center justify-content-start\">\n <div\n class=\"d-flex align-items-center justify-content-start search\"\n ngbTooltip\n [mainTooltip]=\"'Max added'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"svg-icon d-flex\"\n [src]=\"getSvgPath('searchButton')\"\n [svgStyle]=\"{ 'width.px': 26, 'height.px': 26 }\"\n ></svg-icon>\n </div>\n </div>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n class=\"d-flex align-items-center search-queries justify-content-center\"\n >\n <ng-container\n *ngFor=\"\n let query of searchQueries;\n let i = index;\n trackBy: trackByQuery\n \"\n >\n <span\n (click)=\"removeSelected(i)\"\n class=\"query d-flex justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n {{ query }}\n </span>\n </ng-container>\n <div\n (click)=\"removeQuery()\"\n ngbTooltip\n [mainTooltip]=\"'Clear All'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"svg-icon-clear d-flex\"\n [src]=\"getSvgPath('clearSearch')\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n <span class=\"divider d-flex align-items-center\"></span>\n </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../utils/helpers/methods-calculations.helper';\n\n@Pipe({\n name: 'thousandToShortFormatPipe',\n standalone: true,\n})\nexport class ThousandToShortFormatPipe implements PipeTransform {\n transform(value: number): string {\n return MethodsCalculationsHelper.convertThousandToShortFormat(\n value ?? 0\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// Pipes\nimport { ThousandToShortFormatPipe } from '../../pipes/thousand-to-short-format-pipe';\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\n\n// Models\nimport { ProgressDropdownData } from '../ca-truck-trailer-progress-bar/models/progress-dropdown-data.model';\n\n//Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n@Component({\n selector: 'app-ca-truck-trailer-progress-bar',\n templateUrl: './ca-truck-trailer-progress-bar.component.html',\n styleUrls: ['./ca-truck-trailer-progress-bar.component.scss'],\n imports: [\n // Modules\n CommonModule,\n NgbModule,\n\n //Components\n CaAppTooltipV2Component,\n\n // Pipes\n ThousandToShortFormatPipe,\n FormatCurrencyPipe,\n ],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaTruckTrailerProgresBarComponent {\n @Input() type: string = '';\n @Input() text: string | number = '';\n @Input() percents!: number;\n @Input() data!: any; // leave this any for now\n @Input() columnField!: string;\n @Input() isTable: boolean = false;\n @Input() daysExpired: boolean = false;\n @Input() daysToPay!: number;\n @Input() hasPopover: boolean = false;\n @Input() pmName: string = 'Add PM Item';\n\n public progressDropdownActive: number = -1;\n public progressDropdownColumnActive: string | any = ''; // leave this any for now\n public progressDropdownData!: ProgressDropdownData;\n public isOpenPopup: boolean = false;\n\n public get daysPluralization(): string {\n const text = isNaN(this.text as number) ? this.text : this.text.toString();\n if (text === '1') {\n return 'Day';\n }\n\n return 'Days';\n }\n\n // Toggle Progress Dropdown\n public toggleProgressDropdown(tooltip: NgbPopover): void {\n if (this.hasPopover) {\n if (tooltip.isOpen()) {\n tooltip.close();\n this.isOpenPopup = false;\n } else {\n tooltip.open();\n this.isOpenPopup = true;\n }\n\n this.progressDropdownActive = tooltip.isOpen() ? this.data.textUnit : -1;\n this.progressDropdownColumnActive = tooltip.isOpen()\n ? this.columnField\n : null;\n this.progressDropdownData = {\n row: this.data,\n column: this.data[this.columnField],\n };\n } else {\n return;\n }\n }\n}\n","<div\n class=\"progress-bar-parent d-flex align-items-center\"\n [class.disable-hover]=\"text === '/'\"\n [class.progress-bar-parent-expired]=\"daysExpired\"\n #ngbProgress=\"ngbPopover\"\n [autoClose]=\"false\"\n [ngbPopover]=\"milesProgressPopover\"\n [placement]=\"'bottom-left bottom-right'\"\n container=\"body\"\n popoverClass=\"table-progress-popover\"\n triggers=\"manual\"\n (hidden)=\"(progressDropdownActive === -1)\"\n (click)=\"\n data[columnField]?.expirationDaysText ||\n data[columnField]?.expirationMilesText ||\n data[columnField]?.expirationCreditText\n ? toggleProgressDropdown(ngbProgress)\n : {}\n \"\n>\n <div\n class=\"progress-bar-tooltip d-flex align-items-center\"\n [class.progress-bar-active-dropdown]=\"isOpenPopup\"\n [tooltipBackground]=\"'#424242'\"\n ngbTooltip\n [mainTooltip]=\"pmName\"\n position=\"bottom\"\n >\n <ng-container *ngIf=\"text !== '/'\">\n <div class=\"progress-bar-holder mx-2\">\n <div\n class=\"progress-child-back\"\n [ngClass]=\"{\n expired: percents === 0,\n 'back-gray': percents > 50 || percents === -1,\n 'back-yellow': percents > 20 && percents <= 50,\n 'back-red': percents <= 20 && percents > 0 && text !== '/',\n }\"\n ></div>\n <div\n class=\"progress-child-front\"\n [ngClass]=\"{\n 'front-gray': percents > 50,\n 'front-yellow': percents > 20 && percents <= 50,\n 'front-red': percents <= 20,\n }\"\n [style.width.%]=\"daysExpired ? 100 - percents : percents\"\n ></div>\n </div>\n </ng-container>\n <!-- In (days) of or ago (days) dispaly text bassed on expired or it will expire -->\n\n <ng-container *ngIf=\"percents && text !== '/'\">\n <span\n class=\"progress-text\"\n [class.table-progress-text]=\"isTable\"\n [class.progress-bar-text]=\"isOpenPopup\"\n >\n <ng-container *ngIf=\"type === 'days'\">\n <ng-container *ngIf=\"daysExpired; else daysExpired\"\n >in {{ text }} days</ng-container\n >\n <ng-template #daysExpired>\n <div class=\"progress-text-title\">\n <span>{{ text }} {{ daysPluralization }} left</span>\n <span>{{ daysToPay }} days</span>\n </div></ng-template\n >\n </ng-container>\n\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'miles'\">\n {{ +text | thousandToShortFormatPipe }} mi to go\n </ng-container>\n <ng-container *ngSwitchCase=\"'credit'\">\n {{ text }}\n </ng-container>\n <ng-container *ngSwitchCase=\"''\">\n {{ text }}\n </ng-container>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngIf=\"percents === 0 && percents !== null && text !== '/'\">\n <span\n class=\"progress-text ta-font-semi-bold\"\n [class.table-progress-text]=\"isTable\"\n [class.progress-bar-text]=\"isOpenPopup\"\n >\n <ng-container *ngIf=\"type === 'days'\">\n <ng-container *ngIf=\"daysExpired; else daysExpired\"\n >{{ text }} days ago</ng-container\n >\n <ng-template #daysExpired>\n <div class=\"progress-text-title\">\n <span>{{ text }} {{ daysPluralization }} over</span>\n <span>{{ daysToPay }} days</span>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'miles'\">\n {{ +text | thousandToShortFormatPipe }} mi over\n </ng-container>\n <ng-container *ngSwitchCase=\"'credit'\">\n {{ text }}\n </ng-container>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngIf=\"text === '/'\">\n <span> / </span>\n </ng-container>\n </div>\n</div>\n\n<!-- MILES PROGRESS POPOVER -->\n<ng-template #milesProgressPopover>\n <div\n class=\"progress-dropdown\"\n [ngClass]=\"{ 'credit-dropdown': type === 'credit' }\"\n >\n <div\n class=\"progress-header d-flex align-items-center justify-content-between\"\n >\n <div class=\"progress-title\">\n <ng-container *ngIf=\"progressDropdownData.column.expirationMilesText\">\n {{ progressDropdownData.column.expirationMilesText ?? 0 }}\n\n <ng-container\n *ngIf=\"percents && percents <= 100; else isPercentsMiles\"\n >\n <span> mi to go</span>\n </ng-container>\n\n <ng-template #isPercentsMiles>\n <span> mi over</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"progressDropdownData.column.expirationDaysText\">\n {{ progressDropdownData.column?.expirationDaysText ?? 0 }}\n <ng-container *ngIf=\"percents && percents < 100; else isPercentsDays\">\n <span> days left</span>\n </ng-container>\n\n <ng-template #isPercentsDays>\n <span> days ago</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"progressDropdownData.column.expirationCreditText\">\n {{ progressDropdownData.column?.expirationCreditText ?? 0 }}\n </ng-container>\n </div>\n <div class=\"progress-total\">\n {{ progressDropdownData.column.totalValueText }}\n </div>\n </div>\n <div\n class=\"table-progress-bar-container\"\n [ngClass]=\"{\n 'bg-expired-container': !percents,\n 'bg-sliver-container': percents >= 50 && percents < 100,\n 'bg-orange-container': percents >= 20 && percents < 50,\n 'bg-danger-container': percents > 0 && percents < 20,\n 'bg-inactive-container': percents === 100,\n }\"\n >\n <div\n [ngClass]=\"{\n 'bg-progress-sliver': percents >= 50 && percents <= 100,\n 'bg-progress-orange': percents >= 20 && percents < 50,\n 'bg-progress-danger': percents > 0 && percents < 20,\n }\"\n [ngStyle]=\"{\n width: percents + '%',\n }\"\n class=\"table-progress-bar bg-progress-danger\"\n ></div>\n </div>\n <div class=\"progress-dropdown-body\">\n <ng-container *ngIf=\"type === 'days' || type === 'miles'\">\n <div class=\"progress-dual-info-container d-flex align-items-center\">\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Last Serviced</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.lastService ?? \"/\" }}\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Odometer</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.textOdometer ?? \"/\" }}\n </div>\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Repair Shop</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.textRepairShop ?? \"/\" }}\n </div>\n </div>\n <div class=\"progress-dual-info-container d-flex align-items-center\">\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Invoice</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.textInv ?? \"/\" }}\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Cost</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row?.cost ?? \"/\" }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'credit'\">\n <div class=\"progress-dual-info-container d-flex align-items-center\">\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Total Credit</div>\n <div class=\"progress-info-text\">\n {{\n progressDropdownData.row.creditLimit\n ? (progressDropdownData.row.creditLimit | formatCurrency)\n : \"/\"\n }}\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Pay Term</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.broker!.payTerm?.name ?? \"/\" }}\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n// modules\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { SafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\n//helper\nimport { CopyPasteHelper } from '../ca-note/utils/helper/copy-paste.helper';\n//components\nimport { CaNoteContainerComponent } from '../ca-note-container/ca-note-container.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n//animation\nimport { accordionAnimation } from '../../animations/accordion-animation';\n//svg-routes\nimport { SvgRoutes } from '../../utils/svg-routes/payroll-list-summary-svg-routes';\n\n@Component({\n selector: 'app-ca-input-note',\n templateUrl: './ca-input-note.component.html',\n styleUrls: ['./ca-input-note.component.scss'],\n animations: [accordionAnimation('showHideCardBody')],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgbModule,\n AngularSvgIconModule,\n // Component\n CaNoteContainerComponent,\n CaSpinnerComponent,\n\n // Pipe\n SafeHtmlPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaInputNoteComponent {\n @ViewChild('main_editor', { static: true }) public noteRef:\n | ElementRef\n | undefined;\n @ViewChild('noteContainer', { static: true })\n public noteContainer!: CaNoteContainerComponent;\n\n @Input() set note(value: string) {\n if (\n (value && value != '' && value != 'null' && !this.isValue) ||\n this.isBlankNote\n ) {\n this.showNote = value;\n }\n }\n @Input() set isVisibleNote(value: boolean) {\n this.noActive = value ? 'active' : 'innactive';\n this._isVisibleNote = value ? true : false;\n }\n @Input() isBlankNote: boolean = false;\n @Input() noteType: string = '';\n @Input() entityId: number = 0;\n @Input() entityType: string = '';\n @Input() hasDefArrow: boolean = true;\n @Input() isVisibleArrow: boolean = true;\n @Input() noteLabel: string = 'Note';\n @Input() placeholder: string = 'Type Something...';\n @Input() isReadOnly: boolean = false;\n @Input() customClass: string = '';\n\n @Output() styledValueEmitter = new EventEmitter<string>();\n //note properties\n public _isVisibleNote: boolean | string = 'null';\n public selectionTaken!: Selection;\n public range!: Range;\n private isValue: boolean = false;\n public showNote!: string;\n public value: string = '';\n public isFocused: boolean = false;\n private blurNoteTimeout!: NodeJS.Timeout;\n public noActive!: string;\n\n //saving\n public isSavingNote: boolean = false;\n private saveInterval: number | undefined;\n private isSaveIntervalStarted!: boolean;\n public savedValue: string = '';\n\n constructor() {}\n\n public openNote(): void {\n this.noActive = '';\n this._isVisibleNote = !this._isVisibleNote;\n\n if (this._isVisibleNote) {\n this.checkActiveItems();\n }\n }\n\n public checkFocus(): void {\n this.isFocused = true;\n if (!this._isVisibleNote) {\n setTimeout(() => {\n this.checkActiveItems();\n }, 150);\n }\n }\n\n public changeValue(event: Event): void {\n this.isValue = true;\n const target = event.target as HTMLElement;\n this.value = target.innerHTML;\n this.checkActiveItems();\n }\n\n public saveNote(allowSave?: boolean): void {\n if (this.value == '<br>') {\n this.value = this.value.replace('<br>', '');\n }\n if (allowSave) {\n this.savedValue = this.value;\n const val = !this.value || this.value == '' ? null : this.value;\n }\n if (\n this.noteType == 'details-card' &&\n this.entityId &&\n this.entityType != ''\n ) {\n this.isSavingNote = true;\n setTimeout(() => {\n this.isSavingNote = false;\n }, 700);\n this.updateNote();\n }\n\n this.styledValueEmitter.emit(this.noteRef!.nativeElement.innerHTML);\n }\n\n public stopBlurRemoveTimeout(): void {\n clearTimeout(this.blurNoteTimeout);\n }\n\n public checkActiveItems(): void {\n if (this.noteContainer && this.noteContainer?.checkActiveItems) {\n this.noteContainer?.checkActiveItems();\n }\n }\n public prepareForTextRange(): void {\n this.isFocused = false;\n this.selectionTaken = window.getSelection()!;\n if (this.selectionTaken.rangeCount && this.selectionTaken.getRangeAt) {\n this.range = this.selectionTaken.getRangeAt(0);\n this.selectionTaken.removeAllRanges();\n this.selectionTaken.addRange(this.range);\n\n this.blurNoteTimeout = setTimeout(() => {\n this.selectionTaken.removeAllRanges();\n }, 100);\n }\n this.isSaveIntervalStarted = false;\n clearInterval(this.saveInterval);\n if (this.savedValue != this.value) {\n this.saveNote(true);\n }\n\n this.styledValueEmitter.emit(this.noteRef!.nativeElement.innerHTML);\n }\n\n public updateNote(): void {\n this.showNote = this.value;\n }\n\n public onPaste(event: ClipboardEvent): void {\n CopyPasteHelper.onPaste(event);\n }\n\n public getSvgPath(propertyName: keyof typeof SvgRoutes): string {\n return SvgRoutes[propertyName] as string;\n }\n}\n","<div class=\"note-container {{ customClass }}\">\n <!-- Header -->\n <div\n class=\"note-header d-flex align-items-center\"\n [class.pointer]=\"isVisibleArrow\"\n >\n <div\n class=\"d-flex align-items-center note-label\"\n [ngStyle]=\"{ color: _isVisibleNote ? '#424242' : '#6C6C6C' }\"\n (click)=\"isVisibleArrow ? openNote() : ''\"\n >\n {{ noteLabel }}\n </div>\n\n <div\n class=\"note_tools_container\"\n (click)=\"isVisibleArrow && !_isVisibleNote ? openNote() : ''\"\n >\n <app-ca-note-container\n #noteContainer\n [isExpanded]=\"_isVisibleNote && _isVisibleNote != 'null'\"\n [range]=\"range\"\n [selectionTaken]=\"selectionTaken\"\n [value]=\"value\"\n [isPopoverNote]=\"false\"\n [selectedEditor]=\"noteRef?.nativeElement\"\n [isVisibleArrow]=\"isVisibleArrow\"\n (stopBlurRemoveTimeout)=\"stopBlurRemoveTimeout()\"\n ></app-ca-note-container>\n </div>\n\n <ng-container *ngIf=\"isVisibleArrow\">\n <div\n class=\"note_upper_hold d-flex justify-content-center align-items-center\"\n >\n <svg-icon\n class=\"note-arrow\"\n [ngClass]=\"{\n rotate: _isVisibleNote && _isVisibleNote != 'null',\n }\"\n [src]=\"hasDefArrow ? getSvgPath('downArrow') : getSvgPath('upArrow')\"\n (click)=\"openNote()\"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n\n <!-- Body -->\n\n <div\n class=\"note-body\"\n [ngClass]=\"noActive\"\n #noteBody\n [@showHideCardBody]=\"{\n value: _isVisibleNote.toString(),\n params: {\n marginTop: '0px',\n marginBottom: '0px',\n },\n }\"\n >\n <div\n #main_editor\n id=\"main_editor\"\n class=\"note-textarea\"\n [class.details_textarea]=\"noteType == 'details-card'\"\n contenteditable=\"true\"\n [attr.data-text]=\"placeholder\"\n spellcheck=\"false\"\n (input)=\"changeValue($event)\"\n (focus)=\"checkFocus()\"\n (blur)=\"prepareForTextRange()\"\n [innerHTML]=\"showNote | safeHtml\"\n (paste)=\"onPaste($event)\"\n ></div>\n\n <!-- Spinner -->\n\n <ng-container *ngIf=\"isSavingNote && noteType == 'details-card'\">\n <div class=\"spinner d-flex\">\n <app-ca-spinner [size]=\"'small'\" [color]=\"'blueDark'\"></app-ca-spinner>\n </div>\n </ng-container>\n </div>\n</div>\n","export class PeriodContentSvgRoutes {\n static active: string = 'assets/ca-components/svg/period-content/status-active-lite.svg';\n static pending: string = 'assets/ca-components/svg/period-content/status-pending-lite.svg';\n static warning: string = 'assets/ca-components/svg/period-content/status-warning-lite.svg';\n static plus: string = 'assets/ca-components/svg/period-content/plus.svg';\n static dolarSign: string = 'assets/ca-components/svg/period-content/dollar-sign.svg';\n static options: string = 'assets/ca-components/svg/period-content/options.svg';\n static optionsClicked: string = 'assets/ca-components/svg/period-content/options-clicked.svg';\n static semiTruck: string = 'assets/ca-components/svg/period-content/semi-truck.svg';\n\n static userAvatar: string = 'png/user-avatar.png';\n static userAvatarMissing: string = 'png/user-avatar-missing.png';\n static dragging: string = 'assets/ca-components/svg/period-content/dragging.svg';\n}\n","export const titleColorMap: { [key: string]: string } = {\n fuel: '#B370F0',\n credit: '#56B4AC',\n deduction: '#E66767',\n payment: '#424242',\n bonus: '#FAB15C',\n};\n","export class PayrollPeriodDropdownConstant {\n static readonly payrollPeriodOpen = [\n { Icon: 'assets/ca-components/svg/popup/edit-hover.svg', text: 'Edit' },\n { Icon: 'assets/ca-components/svg/popup/ic_info.svg', text: 'View Details' },\n { Icon: 'assets/ca-components/svg/popup/share-icon.svg', text: 'Share' },\n { Icon: 'assets/ca-components/svg/popup/ic_print.svg', text: 'Print' },\n { Icon: 'assets/ca-components/svg/popup/Delete.svg', text: 'Delete' },\n ];\n\n static readonly payrollPeriodClosed = [\n { Icon: 'assets/ca-components/svg/popup/ic_info.svg', text: 'View Details' },\n { Icon: 'assets/ca-components/svg/popup/share-icon.svg', text: 'Share' },\n { Icon: 'assets/ca-components/svg/popup/ic_print.svg', text: 'Print' },\n ];\n}\n","export enum PayrollTypeEnum {\n MILEAGE = 'MILEAGE',\n COMMISSION = 'COMMISSION',\n FLAT_RATE = 'FLAT_RATE',\n OWNER_COMMISSION = 'OWNER_COMMISSION',\n}\n\nexport enum userInfoEnum {\n SHORT_PAID = 'SHORT-PAID',\n CLOSED_UNPAID = 'CLOSED UNPAID',\n PAID_IN_FULL = 'PAID IN FULL',\n READY_IN_DAYS = 'READY IN 444 DAYS',\n READY_TO_PROCESS = 'READY TO PROCESS',\n DAYS_OVERDUE = '444 DAYS OVERDUE',\n}\n","//models\nimport { ComponentData } from '../../models/component-data.type';\nimport { ExtraPayments } from '../../../ca-period-content/models/extra-payments';\nimport { DriverInfo } from '../../models/driver-info';\nimport { PayrollCreditResponse } from '../../models/payroll-credit-response';\nimport { PayrollDeductionResponse } from '../../models/payroll-deduction-response';\nimport { PayrollBonusResponse } from '../../models/payroll-bonus-response';\nimport { PayrollFuelMinimalResponse } from '../../models/payroll-fuel-minimal-response';\nimport { PayrollPaymentResponse } from '../../models/payroll-payment-response';\n//enum\nimport { PayrollTypeEnum, userInfoEnum } from '../../enums/payroll-type.enum';\n//svg-routes\nimport { PeriodContentSvgRoutes } from '../svg-routes/period-content.routes';\n\nexport class PayrollPeriodContentHelper {\n public static getSalary(componentData: ComponentData): number {\n if ('salaryAmount' in componentData) {\n return componentData.salaryAmount ?? 0;\n } else if ('salary' in componentData) {\n return componentData.salary ?? 0;\n }\n return 0;\n }\n\n public static calculateTotalEarnings(\n componentData: ComponentData,\n paymentSums: { sum: number; type: string }[]\n ): {\n totalEarnings: number;\n debt: number;\n salary: number;\n } {\n let creditSum: number = 0;\n let deductionSum: number = 0;\n let fuelSum: number = 0;\n let paymentSum: number = 0;\n let totalEarnings: number;\n let debt: number;\n\n let salary = PayrollPeriodContentHelper.getSalary(componentData);\n\n paymentSums.forEach((item: { sum: number; type: string }) => {\n if (item.type === 'Credit') {\n creditSum += item.sum;\n } else if (item.type === 'Deduction') {\n deductionSum += item.sum;\n } else if (item.type === 'Fuel') {\n fuelSum += item.sum;\n } else if (item.type === 'Payment') {\n paymentSum += item.sum;\n }\n });\n totalEarnings = salary + creditSum - deductionSum - fuelSum;\n debt = totalEarnings - paymentSum;\n\n return { salary, totalEarnings, debt };\n }\n\n public static setDebtTitle(\n debt: number,\n totalEarnings: number\n ): { debtTitle: string; isInDebt: boolean; paymentStatus: string } {\n if (debt <= 0) {\n return {\n debtTitle: userInfoEnum.PAID_IN_FULL,\n paymentStatus: userInfoEnum.PAID_IN_FULL,\n isInDebt: false,\n };\n } else if (debt === totalEarnings) {\n return {\n debtTitle: 'DEBT',\n paymentStatus: userInfoEnum.CLOSED_UNPAID,\n isInDebt: true,\n };\n } else {\n return {\n debtTitle: 'DEBT',\n paymentStatus: userInfoEnum.SHORT_PAID,\n isInDebt: true,\n };\n }\n }\n\n public static calculateDriverAndPaymentInfo(\n componentData: ComponentData,\n type: PayrollTypeEnum\n ): {\n driverInfo: DriverInfo;\n extraPayments: ExtraPayments;\n } {\n const driverInfo: DriverInfo = this.extractDriverInfo(componentData, type);\n const extraPayments: ExtraPayments = this.setExtraPayments(componentData);\n\n return { driverInfo, extraPayments };\n }\n\n private static setExtraPayments(componentData: ComponentData): ExtraPayments {\n let credits: PayrollCreditResponse[] = [];\n let deductions: PayrollDeductionResponse[] = [];\n let bonuses: PayrollBonusResponse[] = [];\n let fuels: PayrollFuelMinimalResponse[] = [];\n let payments: PayrollPaymentResponse[] = [];\n\n if ('includedCredits' in componentData) {\n credits = componentData.includedCredits ?? [];\n } else if ('credits' in componentData) {\n credits = componentData.credits ?? [];\n }\n\n if ('includedDeductions' in componentData) {\n deductions = componentData.includedDeductions ?? [];\n } else if ('deductions' in componentData) {\n deductions = componentData.deductions ?? [];\n }\n\n if ('bonuses' in componentData) {\n bonuses = componentData.bonuses ?? [];\n }\n\n if ('payments' in componentData) {\n payments = componentData.payments ?? [];\n } else if ('transactions' in componentData) {\n payments = componentData.transactions ?? [];\n }\n\n if ('fuels' in componentData) {\n fuels = componentData.fuels ?? [];\n } else if ('includedFuels' in componentData) {\n fuels = componentData.includedFuels ?? [];\n }\n\n return {\n bonuses,\n credits,\n deductions,\n fuels,\n payments,\n };\n }\n\n private static extractDriverInfo(\n componentData: ComponentData,\n type: PayrollTypeEnum\n ): DriverInfo {\n const payrollNumber = componentData.payrollNumber || '0';\n\n if (type === PayrollTypeEnum.OWNER_COMMISSION) {\n return this.extractOwnerCommissionInfo(componentData, payrollNumber);\n } else {\n return this.extractDriverOrOwnerInfo(componentData, payrollNumber);\n }\n }\n\n private static extractOwnerCommissionInfo(\n componentData: ComponentData,\n payrollNumber: string\n ): DriverInfo {\n const truckNumber: string =\n 'truckNumber' in componentData ? (componentData.truckNumber ?? '0') : '0';\n\n const truckType: string =\n 'truckType' in componentData ? (componentData.truckType ?? '0') : '0';\n\n return {\n fullName: `${truckNumber} - ${truckType}`,\n payrollNumber,\n };\n }\n\n private static extractDriverOrOwnerInfo(\n componentData: ComponentData,\n payrollNumber: string\n ): DriverInfo {\n if ('driver' in componentData && componentData.driver) {\n const fullName = componentData.driver.fullName || '';\n const driverAvatar =\n componentData.driver.avatarFile?.url ||\n PeriodContentSvgRoutes.userAvatarMissing;\n\n return { driverAvatar, fullName, payrollNumber };\n }\n\n if ('driverName' in componentData && componentData.driverName) {\n const fullName = componentData.driverName;\n const driverAvatar =\n componentData.driverAvatar?.url ||\n PeriodContentSvgRoutes.userAvatarMissing;\n\n return { driverAvatar, fullName, payrollNumber };\n }\n return {\n driverAvatar: PeriodContentSvgRoutes.userAvatarMissing,\n fullName: '',\n payrollNumber,\n };\n }\n public static getIcon(status: string): { title: string; url: string } {\n switch (status) {\n case 'incomplete':\n return {\n title: userInfoEnum.READY_IN_DAYS,\n url: PeriodContentSvgRoutes.pending,\n };\n case 'ready':\n return {\n title: userInfoEnum.READY_TO_PROCESS,\n url: PeriodContentSvgRoutes.active,\n };\n case 'overdue':\n return {\n title: userInfoEnum.DAYS_OVERDUE,\n url: PeriodContentSvgRoutes.warning,\n };\n default:\n return {\n title: userInfoEnum.READY_IN_DAYS,\n url: PeriodContentSvgRoutes.active,\n };\n }\n }\n\n public static getSvgPath(\n propertyName: keyof typeof PeriodContentSvgRoutes\n ): string {\n return PeriodContentSvgRoutes[propertyName] as string;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Svg routes\nimport { PeriodContentSvgRoutes } from '../../../../components/ca-period-content/utils/svg-routes/period-content.routes';\n\n//Modules\nimport {\n CdkDragDrop,\n DragDropModule,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\n//Interfaces\nimport { IItemList } from '../../../../models/dropdown.model';\nimport { formattedComponentData } from '../../models/formatted-component-data.type';\nimport {\n ComponentData,\n PaymentComponentData,\n} from '../../models/component-data.type';\nimport { PayrollFuelMinimalResponse } from '../../models/payroll-fuel-minimal-response';\nimport { PaymentSum } from '../../models/payment-sum.model';\n\n//Constants\nimport { titleColorMap } from '../../utils/constants/color-map';\nimport { PayrollPeriodDropdownConstant } from '../../utils/constants/payroll-period-dropdown.constant';\n\n//Components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaDropdownComponent } from '../../../ca-dropdown/ca-dropdown.component';\n//pipes\nimport { FormatCurrencyPipe } from '../../../../pipes/format-currency.pipe';\n//helper\nimport { PayrollPeriodContentHelper } from '../../utils/helpers/payroll-period-content.helper';\n\n@Component({\n selector: 'app-ca-period-content-payment',\n standalone: true,\n providers: [FormatCurrencyPipe],\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n NgbTooltipModule,\n DragDropModule,\n\n //Components\n CaAppTooltipV2Component,\n CaDropdownComponent,\n //pipes\n FormatCurrencyPipe,\n ],\n templateUrl: './ca-period-content-payment.component.html',\n styleUrls: ['./ca-period-content-payment.component.scss'],\n})\nexport class CaPeriodContentPaymentComponent implements OnInit {\n @Input() isOpen: boolean = false;\n @Input() title!: string;\n @Input() componentData!: PaymentComponentData;\n @Output() sumPaymentTypeEmitter = new EventEmitter<PaymentSum>();\n @Output() reorderedDataEmiter = new EventEmitter<PaymentComponentData>();\n\n public sum!: number;\n public formattedComponentData: formattedComponentData[] = [];\n\n // Dropdown\n public hoverStates: boolean[] = [];\n public clickedStates: boolean[] = [];\n private dropdownStates: { [key: string]: boolean } = {};\n private activeIndex: number = -1;\n public dropdownOptions!: IItemList[];\n\n //Icons\n public periodContentSvgRoutes: PeriodContentSvgRoutes =\n PeriodContentSvgRoutes;\n public originalIcon: string = PeriodContentSvgRoutes.options;\n public alternateIcon: string = PeriodContentSvgRoutes.optionsClicked;\n public currentIcon: string = this.originalIcon;\n public currentIcons: string[] = [];\n\n constructor() {}\n\n ngOnInit() {\n this.processInputData();\n\n this.setDropdownOptions();\n\n this.setHoverOptions();\n\n this.calculateTotalPayment();\n\n this.setInitialIcons();\n }\n\n private setHoverOptions(): void {\n if (this.componentData) {\n this.hoverStates = new Array(this.componentData.length).fill(false);\n this.clickedStates = new Array(this.componentData.length).fill(false);\n }\n }\n\n private processInputData(): void {\n if (!this.componentData) return;\n\n this.formattedComponentData = this.componentData.map((item) => {\n return {\n amount: item.amount,\n description: item.description || '',\n date: item.date,\n galons: (item as PayrollFuelMinimalResponse).galons,\n id: item.id || null,\n } as formattedComponentData;\n });\n }\n\n private setDropdownOptions(): void {\n if (this.isOpen) {\n this.dropdownOptions = PayrollPeriodDropdownConstant.payrollPeriodOpen;\n } else {\n this.dropdownOptions = PayrollPeriodDropdownConstant.payrollPeriodClosed;\n }\n }\n\n private setInitialIcons(): void {\n this.currentIcons = new Array(this.componentData.length).fill(\n this.originalIcon\n );\n }\n\n public dropDownClickEvent(index: number): void {\n if (this.activeIndex !== -1 && this.activeIndex !== index) {\n this.dropdownStates[this.activeIndex] = false;\n this.clickedStates[this.activeIndex] = false;\n this.currentIcons[this.activeIndex] = this.originalIcon;\n }\n\n this.dropdownStates[index] = !this.dropdownStates[index];\n this.clickedStates[index] = this.dropdownStates[index];\n this.currentIcons[index] = this.clickedStates[index]\n ? this.alternateIcon\n : this.originalIcon;\n this.activeIndex = this.dropdownStates[index] ? index : -1;\n }\n\n public isDropdownEnabled(loadNumber: number): boolean {\n return !!this.dropdownStates[loadNumber];\n }\n\n public onMouseEnter(index: number): void {\n this.hoverStates[index] = true;\n }\n\n public onMouseLeave(index: number): void {\n this.hoverStates[index] = false;\n }\n\n public getColor(title: string): string {\n return titleColorMap[title.toLowerCase()] || '#424242';\n }\n\n public getTitleColor(): string {\n if (!this.componentData?.length || !this.componentData) {\n return '#AAAAAA';\n }\n return '#424242';\n }\n\n public calculateTotalPayment(): void {\n const sum =\n this.formattedComponentData?.reduce(\n (sum: number, item: formattedComponentData) => {\n return sum + (item.amount || 0);\n },\n 0\n ) || 0;\n this.sum = sum;\n this.sumPaymentTypeEmitter.emit({ sum: this.sum, type: this.title });\n }\n\n public onDrop(event: CdkDragDrop<ComponentData>): void {\n moveItemInArray(\n this.componentData,\n event.previousIndex,\n event.currentIndex\n );\n\n this.reorderedDataEmiter.emit(this.componentData);\n }\n\n public moveItem(previousIndex: number, currentIndex: number): void {\n const item = this.formattedComponentData[previousIndex];\n this.formattedComponentData.splice(previousIndex, 1);\n this.formattedComponentData.splice(currentIndex, 0, item);\n }\n\n public getSvgPath(propertyName: keyof typeof PeriodContentSvgRoutes): string {\n return PayrollPeriodContentHelper.getSvgPath(propertyName);\n }\n\n public identity(index: number): number {\n return index;\n }\n}\n","<ng-container *ngIf=\"componentData?.length; else emptyComponentData\"\n ><div\n class=\"wrapper d-flex flex-column align-items-center justify-content-start\"\n >\n <div class=\"container d-flex flex-column\">\n <ng-container *ngIf=\"title !== 'Credit' && title !== 'Payment'\">\n <div class=\"divider d-flex justify-content-center\"></div>\n </ng-container>\n <div class=\"text-value d-flex justify-content-between\">\n <div\n class=\"payment-count d-flex align-items-center justify-content-start\"\n >\n <span class=\"text ca-font-extra-bold\">{{ title }}</span>\n <span\n class=\"round ca-font-bold d-flex align-items-center justify-content-center\"\n >\n {{ componentData?.length }}\n </span>\n </div>\n <span class=\"value d-flex align-items-center\">\n <ng-container *ngIf=\"isOpen; else notOpen\">\n <svg-icon\n class=\"d-flex icon\"\n [src]=\"getSvgPath('plus')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n <ng-template #notOpen>\n <span\n class=\"total-money-closed ca-font-semi-bold\"\n [ngStyle]=\"{ color: getColor(title) }\"\n >{{ sum | formatCurrency }}</span\n >\n </ng-template>\n </span>\n </div>\n </div>\n\n <div\n [ngClass]=\"{ 'disabled-drag': title === 'Bonus' }\"\n cdkDropList\n class=\"component-data-container d-flex justify-content-center flex-column\"\n (cdkDropListDropped)=\"onDrop($event)\"\n >\n <ng-container\n *ngFor=\"let data of componentData; let i = index; trackBy: identity\"\n >\n <div\n cdkDrag\n cdkDragLockAxis=\"y\"\n cdkDragBoundary=\".component-data-container\"\n class=\"d-flex justify-content-between align-items-center information\"\n [ngClass]=\"{\n clicked: clickedStates[i],\n 'drag-disabled': title === 'Bonus',\n }\"\n (mouseenter)=\"onMouseEnter(i)\"\n (mouseleave)=\"onMouseLeave(i)\"\n >\n <ng-template cdkDragPreview>\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"d-flex align-items-center\">\n <div class=\"icon-holder mx-2\">\n <svg-icon\n [src]=\"getSvgPath('dragging')\"\n alt=\"Dragging Image\"\n ></svg-icon>\n </div>\n <div class=\"date-location d-flex flex-column\">\n <span class=\"ca-font-semi-bold location\">{{\n data.description\n }}</span>\n <span class=\"date ca-font-medium\">{{ data.date }}</span>\n </div>\n </div>\n <span\n class=\"money d-flex justify-content-end ca-font-regular mx-2\"\n >{{ data.amount ? data.amount : (0 | formatCurrency) }}\n </span>\n </div>\n </ng-template>\n <span\n class=\"number d-flex justify-content-center align-items-center ca-font-medium\"\n >\n <ng-container\n *ngIf=\"!hoverStates[i] && !clickedStates[i]; else hoveredState\"\n >{{ data!.id }}\n </ng-container>\n <ng-template #hoveredState>\n <div\n class=\"icon-holder d-flex align-items-center justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'More'\"\n tooltipBackground=\"#424242\"\n position=\"bottom\"\n [ngStyle]=\"{\n backgroundColor: clickedStates[i] ? '#424242' : 'transparent',\n color: hoverStates[i] ? 'desiredColor' : 'initialColor',\n }\"\n >\n <app-ca-dropdown\n [itemList]=\"dropdownOptions\"\n [icon]=\"currentIcons[i]\"\n (onClick)=\"dropDownClickEvent(i)\"\n [isPopupShown]=\"isDropdownEnabled(i)\"\n ></app-ca-dropdown>\n </div>\n </ng-template>\n </span>\n <div class=\"date-location d-flex flex-column\">\n <span class=\"ca-font-semi-bold location\">{{\n data.description\n }}</span>\n <span class=\"date ca-font-medium\">{{ data.date }}</span>\n </div>\n <span class=\"money d-flex justify-content-end ca-font-regular\"\n >{{ data.amount ? data.amount : (0 | formatCurrency) }}\n </span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isOpen\">\n <div\n class=\"total-money-title d-flex justify-content-between align-items-center\"\n >\n <div class=\"icon-total d-flex align-items-center\">\n <span\n class=\"dolar-icon d-flex align-items-center\"\n [ngStyle]=\"{ color: getColor(title) }\"\n >\n <svg-icon\n class=\"d-flex align-items-center\"\n [src]=\"getSvgPath('dolarSign')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </span>\n <span class=\"total-title ca-font-bold\">Total</span>\n </div>\n <span\n class=\"total-money d-flex justify-content-end align-items-center ca-font-semi-bold\"\n [ngStyle]=\"{ color: getColor(title) }\"\n >{{ sum | formatCurrency }}</span\n >\n </div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #emptyComponentData>\n <div class=\"container-empty d-flex flex-column\">\n <div class=\"divider d-flex justify-content-center\"></div>\n <div class=\"text-value d-flex justify-content-between\">\n <div\n class=\"payment-count d-flex align-items-center justify-content-start\"\n >\n <span\n class=\"text ca-font-extra-bold\"\n [ngStyle]=\"{ color: isOpen ? '#424242' : '#aaaaaa' }\"\n >{{ title }}</span\n >\n </div>\n <span class=\"value d-flex align-items-center\">\n <ng-container *ngIf=\"isOpen; else notOpen\">\n <svg-icon\n class=\"d-flex icon\"\n [src]=\"getSvgPath('plus')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n <ng-template #notOpen>\n <span class=\"total-money-closed ca-font-semi-bold\">$0.00</span>\n </ng-template>\n </span>\n </div>\n </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-ca-period-content-extra-info',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './ca-period-content-extra-info.component.html',\n styleUrls: ['./ca-period-content-extra-info.component.scss'],\n})\nexport class CaPeriodContentExtraInfoComponent {\n @Input() title!: string;\n @Input() amount!: number;\n}\n","<div class=\"mileage-pay d-flex flex-column\">\n <div class=\"divider d-flex justify-content-center\"></div>\n <div class=\"text-value d-flex justify-content-between align-items-end\">\n <div\n class=\"payment-count d-flex align-items-center justify-content-start\"\n >\n <span class=\"text ca-font-extra-bold\">{{ title }}</span>\n </div>\n <div class=\"value d-flex align-items-center\">\n <span class=\"total-money-closed ca-font-semi-bold\"\n >${{ amount }}</span\n >\n </div>\n </div>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Interfaces\nimport { ComponentData } from '../../models/component-data.type';\nimport { DriverInfo } from '../../models/driver-info';\n// Svg routes\nimport { PeriodContentSvgRoutes } from '../../utils/svg-routes/period-content.routes';\n\n// Enum\nimport { PayrollTypeEnum, userInfoEnum } from '../../enums/payroll-type.enum';\n//helper\nimport { PayrollPeriodContentHelper } from '../../utils/helpers/payroll-period-content.helper';\n\n@Component({\n selector: 'app-ca-period-content-user-info',\n standalone: true,\n imports: [CommonModule, AngularSvgIconModule],\n templateUrl: './ca-period-content-user-info.component.html',\n styleUrls: ['./ca-period-content-user-info.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaPeriodContentUserInfoComponent {\n @Input() componentData!: ComponentData;\n @Input() type!: PayrollTypeEnum;\n @Input() paymentStatus!: string;\n @Input() isOpen!: boolean;\n @Input() userInfo!: DriverInfo;\n @Input() status: string = 'incomplete';\n\n public title!: string;\n public currentIcon!: string;\n\n public setCurrentIconAndClass(): string {\n if (this.isOpen) {\n const { title, url } = PayrollPeriodContentHelper.getIcon(this.status);\n this.title = title;\n return url;\n } else {\n if (\n this.paymentStatus === userInfoEnum.SHORT_PAID ||\n this.paymentStatus === userInfoEnum.CLOSED_UNPAID\n ) {\n this.title = this.paymentStatus;\n return PeriodContentSvgRoutes.pending;\n } else if (this.paymentStatus === userInfoEnum.PAID_IN_FULL) {\n this.title = this.paymentStatus;\n return PeriodContentSvgRoutes.active;\n } else {\n this.title = this.paymentStatus;\n return PeriodContentSvgRoutes.warning;\n }\n }\n }\n public getSvgPath(propertyName: keyof typeof PeriodContentSvgRoutes): string {\n return PayrollPeriodContentHelper.getSvgPath(propertyName);\n }\n}\n","<div class=\"title d-flex align-items-center\">\n <div class=\"container d-flex align-items-center\">\n <ng-container *ngIf=\"type !== 'OWNER_COMMISSION'; else ownerCommission\">\n <img class=\"img-frame\" [src]=\"userInfo.driverAvatar\" alt=\"User Avatar\" />\n </ng-container>\n <div class=\"user-information d-flex flex-column justify-content-center\">\n <span class=\"user-detail d-flex align-items-center ca-font-extra-bold\"\n >{{ userInfo.fullName }}\n </span>\n <span class=\"user-detail d-flex align-items-center ca-font-medium\">{{\n userInfo.payrollNumber\n }}</span>\n <span class=\"user-detail d-flex align-items-center ca-font-bold icon-row\">\n <svg-icon\n class=\"d-flex icon align-items-center\"\n [src]=\"setCurrentIconAndClass()\"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n fill: 'red',\n }\"\n ></svg-icon>\n <span\n [ngClass]=\"{\n incomplete: status === 'incomplete',\n ready: status === 'ready',\n overdue: status === 'overdue',\n }\"\n >{{ title }}</span\n >\n </span>\n </div>\n\n <ng-template #ownerCommission>\n <div class=\"semi-div d-flex align-items-end\">\n <img\n class=\"img-frame-semi\"\n [src]=\"getSvgPath('semiTruck')\"\n alt=\"User Avatar\"\n />\n </div>\n </ng-template>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { CaPeriodContentPaymentComponent } from './components/ca-period-content-payment/ca-period-content-payment.component';\nimport { CaPeriodContentExtraInfoComponent } from './components/ca-period-content-extra-info/ca-period-content-extra-info.component';\nimport { CaPeriodContentUserInfoComponent } from './components/ca-period-content-user-info/ca-period-content-user-info.component';\n//Svg routes\nimport { PeriodContentSvgRoutes } from '../ca-period-content/utils/svg-routes/period-content.routes';\n//enum\nimport { PayrollTypeEnum } from './enums/payroll-type.enum';\n//Interface\nimport {\n ComponentData,\n PaymentComponentData,\n} from './models/component-data.type';\nimport { DriverInfo } from '../ca-period-content/models/driver-info';\nimport { ExtraPayments } from '../ca-period-content/models/extra-payments';\nimport { PaymentSum } from './models/payment-sum.model';\nimport { formattedComponentData } from './models/formatted-component-data.type';\n\n//Helpers\nimport { PayrollPeriodContentHelper } from '../ca-period-content/utils/helpers/payroll-period-content.helper';\n//pipes\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\n\n@Component({\n selector: 'app-ca-period-content',\n standalone: true,\n providers: [FormatCurrencyPipe],\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n\n //Components\n CaPeriodContentPaymentComponent,\n CaPeriodContentUserInfoComponent,\n CaPeriodContentExtraInfoComponent,\n //pipes\n FormatCurrencyPipe,\n ],\n templateUrl: './ca-period-content.component.html',\n styleUrls: ['./ca-period-content.component.scss'],\n})\nexport class CaPeriodContentComponent {\n @Input() isOpen!: boolean;\n @Input() type!: PayrollTypeEnum;\n @Input() componentData!: ComponentData;\n @Input() status!: string;\n @Output() reorderedDataEmiter = new EventEmitter<\n PaymentComponentData | ExtraPayments\n >();\n\n public salary!: number;\n public totalEarnings!: number;\n public debt!: number;\n private paymentSums: PaymentSum[] = [];\n public debtTitle!: string;\n public isInDebt?: boolean;\n public paymentStatus!: string;\n public driverInfo!: DriverInfo;\n public extraPayments!: ExtraPayments;\n\n //svg-routes\n public periodContentSvgRoutes: PeriodContentSvgRoutes =\n PeriodContentSvgRoutes;\n\n ngOnInit() {\n this.getAllInfo();\n }\n\n constructor() {}\n\n private getAllInfo(): void {\n const { driverInfo, extraPayments } =\n PayrollPeriodContentHelper.calculateDriverAndPaymentInfo(\n this.componentData,\n this.type\n );\n\n this.driverInfo = driverInfo;\n this.extraPayments = extraPayments;\n }\n\n public getAllPaymentSums(event: { sum: number; type: string }): void {\n this.paymentSums.push(event);\n this.calculateTotalEarnings();\n this.setDebtTitle();\n }\n\n private calculateTotalEarnings(): void {\n const { debt, salary, totalEarnings } =\n PayrollPeriodContentHelper.calculateTotalEarnings(\n this.componentData,\n this.paymentSums\n );\n this.debt = debt;\n this.salary = salary;\n this.totalEarnings = totalEarnings;\n }\n\n private setDebtTitle(): void {\n const { debtTitle, isInDebt, paymentStatus } =\n PayrollPeriodContentHelper.setDebtTitle(this.debt, this.totalEarnings);\n this.isInDebt = isInDebt;\n this.debtTitle = debtTitle;\n this.paymentStatus = paymentStatus;\n }\n\n public processPayment(): void {\n console.log('process early');\n }\n\n public addPayment(): void {\n console.log('add payment');\n }\n\n public getReorderedData(): void {\n this.reorderedDataEmiter.emit(this.extraPayments);\n }\n}\n","<!-- User info -->\n\n<app-ca-period-content-user-info\n [componentData]=\"componentData\"\n [type]=\"type\"\n [paymentStatus]=\"paymentStatus\"\n [isOpen]=\"isOpen\"\n [userInfo]=\"driverInfo\"\n [status]=\"status\"\n></app-ca-period-content-user-info>\n\n<!-- Bonues, salary... -->\n\n<div class=\"payment-container d-flex flex-column align-items-center\">\n <div>\n <ng-container *ngIf=\"type === 'MILEAGE'; else flatRate\">\n <app-ca-period-content-extra-info\n title=\"Mileage pay\"\n [amount]=\"160.56\"\n ></app-ca-period-content-extra-info>\n\n <app-ca-period-content-extra-info\n title=\"Extra stop\"\n [amount]=\"430.41\"\n ></app-ca-period-content-extra-info>\n </ng-container>\n\n <ng-template #flatRate>\n <app-ca-period-content-extra-info\n title=\"Load pay\"\n [amount]=\"160.56\"\n ></app-ca-period-content-extra-info>\n </ng-template>\n </div>\n\n <!-- BONUS -->\n\n <ng-container *ngIf=\"type === 'MILEAGE' || type === 'FLAT_RATE'\">\n <app-ca-period-content-payment\n [title]=\"'Bonus'\"\n [isOpen]=\"isOpen\"\n [componentData]=\"extraPayments.bonuses\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment>\n </ng-container>\n\n <div class=\"salary d-flex justify-content-between align-items-center\">\n <span class=\"ca-font-extra-bold\">SALARY</span>\n <span class=\"ca-font-bold\">{{ salary | formatCurrency }}</span>\n </div>\n\n <!-- CREDIT -->\n\n <app-ca-period-content-payment\n [title]=\"'Credit'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.credits\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment>\n\n <!-- FUEL -->\n\n <ng-container *ngIf=\"type === 'OWNER_COMMISSION'\">\n <app-ca-period-content-payment\n [title]=\"'Fuel'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.fuels\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment\n ></ng-container>\n\n <!-- DEDUCTION -->\n\n <app-ca-period-content-payment\n [title]=\"'Deduction'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.deductions\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment>\n\n <div class=\"earnings d-flex justify-content-between align-items-center\">\n <span class=\"ca-font-extra-bold\">EARNINGS</span>\n <span class=\"ca-font-bold\">{{ totalEarnings | formatCurrency }}</span>\n </div>\n\n <!-- PROCESS BUTTON -->\n\n <ng-container *ngIf=\"isOpen; else notOpen\">\n <div\n class=\"button-cnt process-btn d-flex justify-content-between align-items-center\"\n >\n <button\n (click)=\"processPayment()\"\n class=\"earnings process-button ca-font-bold\"\n [class.incomplete-status]=\"status === 'incomplete'\"\n >\n {{ status === 'incomplete' ? 'Process Early' : 'Process' }}\n </button>\n </div>\n </ng-container>\n\n <!-- PAYMENT -->\n\n <ng-template #notOpen>\n <app-ca-period-content-payment\n [title]=\"'Payment'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.payments\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n debt\n ></app-ca-period-content-payment>\n\n <div\n [ngStyle]=\"{\n backgroundColor: isInDebt ? '#FBE9E9' : '#F7F7F7',\n color: isInDebt ? '#DF3C3C' : '#259F94',\n }\"\n class=\"earnings paid-in-full d-flex justify-content-between align-items-center\"\n >\n <span class=\"ca-font-extra-bold\">{{ debtTitle }}</span>\n <span class=\"ca-font-bold\">{{\n isInDebt ? this.debt : (this.totalEarnings | formatCurrency)\n }}</span>\n </div>\n <ng-container *ngIf=\"isInDebt\">\n <div class=\"button-cnt d-flex justify-content-between align-items-center\">\n <button\n class=\"earnings process-button ca-font-bold\"\n (click)=\"addPayment()\"\n >\n Add payment\n </button>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CaProfileImageComponent } from './components/ca-profile-image/ca-profile-image.component';\nimport { CaAppTooltipV2Component } from './components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaDetailsDropdownComponent } from './components/ca-details-dropdown/ca-details-dropdown.component';\nimport { CaDropdownComponent } from './components/ca-dropdown/ca-dropdown.component';\nimport { CaFilterComponent } from './components/ca-filters/ca-filter.component';\nimport { CaInputComponent } from './components/ca-input/ca-input.component';\nimport { CaInputRadiobuttonsComponent } from './components/ca-input-radiobuttons/ca-input-radiobuttons.component';\nimport { CaMapComponent } from './components/ca-map/ca-map.component';\nimport { CaMapDropdownComponent } from './components/ca-map-dropdown/ca-map-dropdown.component';\nimport { CaNoteComponent } from './components/ca-note/ca-note.component';\nimport { CaNoteContainerComponent } from './components/ca-note-container/ca-note-container.component';\nimport { CaPayrollListSummaryOverviewComponent } from './components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\nimport { CaPayrollListSummaryOverviewTableComponent } from './components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component';\nimport { PickupDeliveryBlockComponent } from './components/ca-pickup-delivery-block/ca-pickup-delivery-block.component';\nimport { ProgressBarComponent } from './components/ca-progress-bar/ca-progress-bar.component';\nimport { CaSearchMultipleStatesComponent } from './components/ca-search-multiple-states/ca-search-multiple-states.component';\nimport { CaSpinnerComponent } from './components/ca-spinner/ca-spinner.component';\nimport { CaTruckTrailerProgresBarComponent } from './components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nimport { CaInputNoteComponent } from './components/ca-input-note/ca-input-note.component';\nimport { CaPeriodContentComponent } from './components/ca-period-content/ca-period-content.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n CaProfileImageComponent,\n CaAppTooltipV2Component,\n CaDetailsDropdownComponent,\n CaDropdownComponent,\n CaFilterComponent,\n CaInputComponent,\n CaInputRadiobuttonsComponent,\n CaMapComponent,\n CaMapDropdownComponent,\n CaNoteComponent,\n CaNoteContainerComponent,\n CaPayrollListSummaryOverviewComponent,\n CaPayrollListSummaryOverviewTableComponent,\n PickupDeliveryBlockComponent,\n ProgressBarComponent,\n CaSearchMultipleStatesComponent,\n CaSpinnerComponent,\n CaTruckTrailerProgresBarComponent,\n CaPeriodContentComponent,\n CaInputNoteComponent,\n ],\n exports: [\n CaProfileImageComponent,\n CaAppTooltipV2Component,\n CaDetailsDropdownComponent,\n CaDropdownComponent,\n CaFilterComponent,\n CaInputComponent,\n CaInputRadiobuttonsComponent,\n CaMapComponent,\n CaMapDropdownComponent,\n CaNoteComponent,\n CaNoteContainerComponent,\n CaPayrollListSummaryOverviewComponent,\n CaPayrollListSummaryOverviewTableComponent,\n PickupDeliveryBlockComponent,\n ProgressBarComponent,\n CaSearchMultipleStatesComponent,\n CaSpinnerComponent,\n CaTruckTrailerProgresBarComponent,\n CaPeriodContentComponent,\n CaInputNoteComponent,\n ],\n})\nexport class CaComponentsLibModule {}\n","/*\n * Public API Surface of ca-components\n */\n\nexport * from './lib/ca-components.module';\nexport * from './lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nexport * from './lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nexport * from './lib/components/ca-details-dropdown/ca-details-dropdown.component';\nexport * from './lib/components/ca-dropdown/ca-dropdown.component';\nexport * from './lib/components/ca-filters/ca-filter.component';\nexport * from './lib/components/ca-input/ca-input.component';\nexport * from './lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component';\nexport * from './lib/components/ca-map/ca-map.component';\nexport * from './lib/components/ca-map-dropdown/ca-map-dropdown.component';\nexport * from './lib/components/ca-note/ca-note.component';\nexport * from './lib/components/ca-note-container/ca-note-container.component';\nexport * from './lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\nexport * from './lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component';\nexport * from './lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component';\nexport * from './lib/components/ca-profile-image/ca-profile-image.component';\nexport * from './lib/components/ca-progress-bar/ca-progress-bar.component';\nexport * from './lib/components/ca-search-multiple-states/ca-search-multiple-states.component';\nexport * from './lib/components/ca-spinner/ca-spinner.component';\nexport * from './lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nexport * from './lib/components/ca-period-content/ca-period-content.component';\nexport * from './lib/components/ca-input-note/ca-input-note.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","showAnimation","i2.InputStateService","i5","ToolbarFilterString","i2.ThousandSeparatorPipe","ThousandSeparator","CaSvg","i3","SvgIconModule","i4","i1.TruckassistTableService","i2","i1.FormatCurrencyPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ca-components.mjs","sources":["../../../projects/ca-components/src/lib/components/ca-profile-image/ca-profile-image.component.ts","../../../projects/ca-components/src/lib/components/ca-profile-image/ca-profile-image.component.html","../../../projects/ca-components/src/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.ts","../../../projects/ca-components/src/lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component.html","../../../projects/ca-components/src/lib/animations/animation.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/utils/svg-routes/detail-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/ca-details-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-details-dropdown/ca-details-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-dropdown/ca-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-dropdown/ca-dropdown.component.html","../../../projects/ca-components/src/lib/animations/show.animation.ts","../../../projects/ca-components/src/lib/animations/close-form.animation.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/svg-routes/ca-filters-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/helpers/filter.helper.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-set.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-conditions-user-box.pipe.ts","../../../projects/ca-components/src/lib/components/ca-map/enums/toolbar-filter-string.enum.ts","../../../projects/ca-components/src/lib/utils/helpers/methods-calculations.helper.ts","../../../projects/ca-components/src/lib/pipes/thousand-separator.pipe.ts","../../../projects/ca-components/src/lib/pipes/ca-svg.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/svg-routes/ca-money-filter-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/enums/money-filter-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/config/ca-money-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-container-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-error.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-type.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/label-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-clear.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-invalid-danger-mark.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-valid-check.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-dropdown-arrow-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-clear-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/utils/input-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-clear/ca-input-clear.component.html","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-commands/ca-input-commands.component.html","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-password-eye-class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-password/ca-input-password.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-password/ca-input-password.component.html","../../../projects/ca-components/src/lib/components/ca-input/pipes/input-placeholder-icon.class.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.ts","../../../projects/ca-components/src/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.html","../../../projects/ca-components/src/lib/components/ca-input/enums/input-commands-action.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/enums/input-commands-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-input/services/ca-input-state.service.ts","../../../projects/ca-components/src/lib/components/ca-input/pipes/show-dropdown-arrow.pipe.ts","../../../projects/ca-components/src/lib/components/ca-input/ca-input.component.ts","../../../projects/ca-components/src/lib/components/ca-input/ca-input.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.html","../../../projects/ca-components/src/lib/enums/load-filter-string.enum.ts","../../../projects/ca-components/src/lib/enums/load-status.enum.ts","../../../projects/ca-components/src/lib/pipes/dropdown-load-status-color.pipe.ts","../../../projects/ca-components/src/lib/animations/in-out.animation.ts","../../../projects/ca-components/src/lib/services/truckassist-table.service.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/time-filter.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.html","../../../projects/ca-components/src/lib/enums/trailer-name-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-filters/pipes/filter-trailer-color.pipe.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/config/ca-user-filter.config.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.html","../../../projects/ca-components/src/lib/animations/state-header.animation.ts","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/directive.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/utils/constants/filter-icons-routes.constants.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-service-filter/ca-service-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/components/ca-service-filter/ca-service-filter.component.html","../../../projects/ca-components/src/lib/components/ca-filters/ca-filter.component.ts","../../../projects/ca-components/src/lib/components/ca-filters/ca-filter.component.html","../../../projects/ca-components/src/lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component.ts","../../../projects/ca-components/src/lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component.html","../../../projects/ca-components/src/lib/components/ca-map-dropdown/utils/svg-routes/map-dropdown-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/ca-map-dropdown.component.ts","../../../projects/ca-components/src/lib/components/ca-map-dropdown/ca-map-dropdown.component.html","../../../projects/ca-components/src/lib/components/ca-map/enums/google-map.enum.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/helpers/map.helper.ts","../../../projects/ca-components/src/lib/components/ca-map/utils/map-svg-routes/map-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-map/ca-map.component.ts","../../../projects/ca-components/src/lib/components/ca-map/ca-map.component.html","../../../projects/ca-components/src/lib/pipes/safe-html.pipe.ts","../../../projects/ca-components/src/lib/directives/placeholder-directive.ts","../../../projects/ca-components/src/lib/components/ca-note/utils/helper/copy-paste.helper.ts","../../../projects/ca-components/src/lib/components/ca-note-container/utils/constants/note-config.constant.ts","../../../projects/ca-components/src/lib/components/ca-note-container/enums/note-selected-color.enum.ts","../../../projects/ca-components/src/lib/components/ca-note-container/enums/note-default-string.enum.ts","../../../projects/ca-components/src/lib/components/ca-note-container/utils/svg-routes/note-container-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-note-container/ca-note-container.component.ts","../../../projects/ca-components/src/lib/components/ca-note-container/ca-note-container.component.html","../../../projects/ca-components/src/lib/components/ca-spinner/ca-spinner.component.ts","../../../projects/ca-components/src/lib/components/ca-spinner/ca-spinner.component.html","../../../projects/ca-components/src/lib/components/ca-note/utils/svg-routes/note-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-note/ca-note.component.ts","../../../projects/ca-components/src/lib/components/ca-note/ca-note.component.html","../../../projects/ca-components/src/lib/animations/accordion-animation.ts","../../../projects/ca-components/src/lib/utils/svg-routes/payroll-list-summary-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.html","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.ts","../../../projects/ca-components/src/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/models/status-types.enum.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/pickup-delivery-svg.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/options-icon.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/constants/pickup-delivery-block.constants.ts","../../../projects/ca-components/src/lib/pipes/format-currency.pipe.ts","../../../projects/ca-components/src/lib/pipes/date-from-string.pipe.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/constants/animation-object-default.constants.ts","../../../projects/ca-components/src/lib/animations/tabs-modal.animation.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/svg-routes/return-arrow.routes.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.html","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/utils/helpers/pickup-delivery.helper.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.ts","../../../projects/ca-components/src/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.html","../../../projects/ca-components/src/lib/constants/map.constant.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/constants/progress-bar.constants.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/utils/svg-routes/progress-bar-svg-routes.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/ca-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-progress-bar/ca-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/svg-routes/search-multiple-states.routes.ts","../../../projects/ca-components/src/lib/animations/expand-search-button.animation.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/utils/config/input-config.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.ts","../../../projects/ca-components/src/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.html","../../../projects/ca-components/src/lib/pipes/thousand-to-short-format-pipe.ts","../../../projects/ca-components/src/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.ts","../../../projects/ca-components/src/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.html","../../../projects/ca-components/src/lib/components/ca-input-note/ca-input-note.component.ts","../../../projects/ca-components/src/lib/components/ca-input-note/ca-input-note.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/utils/svg-routes/period-content.routes.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/constants/color-map.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/constants/payroll-period-dropdown.constant.ts","../../../projects/ca-components/src/lib/components/ca-period-content/enums/payroll-type.enum.ts","../../../projects/ca-components/src/lib/components/ca-period-content/utils/helpers/payroll-period-content.helper.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.html","../../../projects/ca-components/src/lib/components/ca-period-content/ca-period-content.component.ts","../../../projects/ca-components/src/lib/components/ca-period-content/ca-period-content.component.html","../../../projects/ca-components/src/lib/ca-components.module.ts","../../../projects/ca-components/src/public-api.ts","../../../projects/ca-components/src/ca-components.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, Input, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-ca-profile-image\",\n templateUrl: \"./ca-profile-image.component.html\",\n styleUrls: [\"./ca-profile-image.component.scss\"],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CaProfileImageComponent implements OnInit {\n @Input() avatarImg!: string;\n @Input() avatarColor!: { background?: string; color?: string };\n @Input() textShortName!: string;\n @Input() isRound: boolean = true;\n @Input() size!: string | number;\n @Input() fontSize!: string | number;\n @Input() isHoverEffect: boolean = true;\n constructor() {}\n\n ngOnInit() {}\n}\n","<div \n class=\"avatar-container d-flex\"\n [ngClass]=\"{\n 'avatar-hover': isHoverEffect,\n }\" \n>\n <ng-container *ngIf=\"avatarImg else noImage\">\n <div \n class=\"avatar-img\" \n [ngClass]=\"{\n 'round-avatar': isRound,\n 'regular-avatar': !isRound\n }\" \n [ngStyle]=\"{\n width: size + 'px',\n height: size + 'px'\n }\"\n >\n \n <img class=\"d-flex\" alt=\"avatar\" [src]=\"avatarImg\" />\n </div>\n </ng-container>\n\n <ng-template #noImage>\n <div class=\"avatar-no-img d-flex justify-content-center align-items-center\" \n [ngClass]=\"{\n 'round-avatar': isRound,\n 'regular-avatar': !isRound\n }\" \n [ngStyle]=\"{\n 'background-color': \n avatarColor.background\n ? avatarColor.background\n : 'unset',\n color: avatarColor.color\n ? avatarColor.color\n : 'unset',\n width: size + 'px',\n height: size + 'px',\n 'font-size': fontSize + 'px'\n }\"\n >\n {{ textShortName }}\n </div>\n </ng-template>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport {\n Component,\n Host,\n ViewChild,\n TemplateRef,\n AfterViewInit,\n Input,\n} from \"@angular/core\";\n\n@Component({\n selector: \"mainTooltip, [mainTooltip]\",\n templateUrl: \"./ca-app-tooltip-v2.component.html\",\n styleUrls: [\"./ca-app-tooltip-v2.component.scss\"],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CaAppTooltipV2Component implements AfterViewInit {\n constructor(@Host() private ngbTooltop: NgbTooltip) {\n this.ngbTooltop.container = 'body';\n }\n @Input() mainTooltip?: string = '';\n @Input() position: string = '';\n @Input() openTooltipDelay: number = 300;\n @Input() tooltipBackground?: string = 'rgb(40, 82, 159)';\n @Input() tooltipColor: string = '#fff';\n @Input() tooltipTextAlign: string = 'left';\n @Input() tooltipMarginTop!: string;\n @ViewChild(TemplateRef, { static: false }) template!: TemplateRef<void>;\n ngAfterViewInit() {\n this.bindTemplete();\n }\n public bindTemplete(): void {\n if (this.ngbTooltop) {\n this.ngbTooltop.tooltipClass = 'app-main-tooltip';\n this.ngbTooltop.placement = this.position;\n this.ngbTooltop.ngbTooltip = this.template;\n this.ngbTooltop.openDelay = this.openTooltipDelay;\n }\n }\n}\n","<ng-content> </ng-content>\n<ng-template>\n <div\n class=\"tooltip-holder\"\n [style]=\"\n 'margin-top: ' +\n tooltipMarginTop +\n '; background-color: ' +\n tooltipBackground +\n '; color: ' +\n tooltipColor +\n '; text-align: ' +\n tooltipTextAlign +\n ' '\n \"\n [innerHTML]=\"mainTooltip\"\n ></div>\n</ng-template>\n","import { trigger, transition, style, animate } from \"@angular/animations\";\n\nexport const showAnimation = trigger(\"showAnimation\", [\n transition(\":enter\", [\n style({ height: \"10px\" }),\n animate(\"150ms ease\", style({ height: \"26px\" })),\n ]),\n transition(\":leave\", [animate(\"150ms ease\", style({ height: 0 }))]),\n]);\n\nexport const borderShowAnimation = trigger(\"borderShowAnimation\", [\n transition(\":enter\", [\n style({ height: \"0px\", opacity: 0 }),\n animate(\"300ms ease\", style({ height: \"*\", opacity: 1 })),\n ]),\n transition(\":leave\", [animate(\"300ms ease\", style({ height: 0 }))]),\n]);\n\nexport const pickupAnimation = trigger(\"pickupAnimation\", [\n transition(\":enter\", [\n style({ height: 10 }),\n animate(\"100ms\", style({ height: \"*\" })),\n ]),\n transition(\":leave\", [animate(\"50ms\", style({ height: 0 }))]),\n]);\n\nexport const noteLongAnimation = trigger(\"noteLongAnimation\", [\n transition(\":enter\", [\n style({ width: 10 }),\n animate(\"100ms\", style({ width: \"*\" })),\n ]),\n transition(\":leave\", [animate(\"300ms\", style({ width: 0 }))]),\n]);\n","export class DetailDropdownSvgRoutes {\n static menuRoute: string = \"assets/ca-components/svg/map/details_options_2.svg\";\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgZone } from '@angular/core';\n\n// modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { Options } from '@popperjs/core/lib/popper';\n\n// icon\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//animation\nimport { borderShowAnimation, showAnimation } from '../../animations/animation';\n\n//model\nimport {\n DropDownData,\n IDropDownActions,\n} from '../ca-details-dropdown/models/detail-dropdown.model';\n\n//routes\nimport { DetailDropdownSvgRoutes } from '../ca-details-dropdown/utils/svg-routes/detail-dropdown-svg-routes';\n\n@Component({\n selector: 'app-ca-details-dropdown',\n templateUrl: './ca-details-dropdown.component.html',\n styleUrls: ['./ca-details-dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n //modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n ],\n animations: [showAnimation, borderShowAnimation],\n})\nexport class CaDetailsDropdownComponent {\n @Input() options!: DropDownData[];\n @Input() id!: number;\n @Input() customClassDropDown!: string;\n @Input() hasVericalDots!: boolean;\n @Input() data!: DropDownData;\n @Input() leftIcon: boolean = true;\n @Input() public placement: string = 'bottom-right';\n @Output() dropDownActions: EventEmitter<IDropDownActions> =\n new EventEmitter();\n @Output() openModalAction: EventEmitter<string> = new EventEmitter();\n\n public tooltip!: NgbPopover;\n public dropDownActive: number = -1;\n public subtypeHovered: boolean = false;\n\n constructor(\n private chnd: ChangeDetectorRef,\n private ngZone: NgZone\n ) {}\n\n public toggleDropdown(tooltip: NgbPopover): void {\n this.ngZone.run(() => {\n this.tooltip = tooltip;\n if (tooltip.isOpen()) {\n tooltip.close();\n } else {\n if (this.options) {\n tooltip.open({ data: [...this.options] });\n }\n }\n\n this.dropDownActive = tooltip.isOpen() ? this.id : -1;\n this.chnd.detectChanges();\n });\n }\n\n /**Function retrun id */\n public identity(index: number): number {\n return index;\n }\n\n public onAction(action: DropDownData, event?: Event): void | boolean {\n event!.stopPropagation();\n event!.preventDefault();\n\n if (action?.disabled) {\n return false;\n }\n\n this.dropDownActions.emit({\n id: this.id,\n data: this.data,\n type: action.name,\n });\n\n this.tooltip.close();\n }\n\n public dropdownClosed(): void {\n this.options.map((item: DropDownData) => {\n item['mutedStyle'] = false;\n });\n }\n\n public popperOptions = (options: Partial<Options>): Partial<Options> => {\n options.modifiers?.push({\n name: 'custom',\n enabled: true,\n phase: 'main',\n effect: ({ state, instance }) => {\n const observer = new ResizeObserver(() => instance.update());\n observer.observe(state.elements!.reference as any);\n return () => {\n observer.disconnect();\n };\n },\n });\n return options;\n };\n\n public getSvgPath(\n propertyName: keyof typeof DetailDropdownSvgRoutes\n ): string {\n return DetailDropdownSvgRoutes[propertyName] as string;\n }\n\n ngOnDestroy() {\n this.tooltip?.close();\n }\n}\n","<div\n #t2=\"ngbPopover\"\n (click)=\"toggleDropdown(t2)\"\n (hidden)=\"dropdownClosed()\"\n [autoClose]=\"'outside'\"\n [ngbPopover]=\"dropdownPopover\"\n [placement]=\"placement\"\n class=\"details-dropdown-container\"\n [ngClass]=\"{\n 'active-drop': dropDownActive === id,\n rightRotation: leftIcon,\n leftRotation: !leftIcon,\n }\"\n popoverClass=\"details-dropdown-popover\"\n [popperOptions]=\"popperOptions\"\n triggers=\"manual\"\n [container]=\"'body'\"\n (hidden)=\"dropDownActive = -1\"\n container=\"body\"\n>\n <svg-icon class=\"dropdown-dots\" [src]=\"getSvgPath('menuRoute')\"></svg-icon>\n</div>\n\n<ng-template #dropdownPopover let-data=\"data\">\n <div\n class=\"dropdown-main-popover-body d-flex justify-content-center align-items-center\"\n >\n <div class=\"details-dropdown-body\">\n <ng-container\n *ngFor=\"let action of data; let i = index; trackBy: identity\"\n >\n <ng-container\n *ngIf=\"\n action.title !== 'border' &&\n action.title !== 'Add New' &&\n action.title !== 'Request' &&\n action.title !== 'Report' &&\n !action.hide\n \"\n >\n <div\n class=\"action-holder d-flex justify-content-between align-content-center\"\n @showAnimation\n [class.leftIcon]=\"leftIcon\"\n [class.disabledAction]=\"action.disabled\"\n [class.disabledActionMain]=\"action.disabled\"\n (click)=\"onAction(action, $event)\"\n >\n <div class=\"action-select-holder d-flex align-items-center\">\n <div class=\"actionTitle d-flex align-items-center\">\n {{ action.title }}\n </div>\n <div\n class=\"actionIcon d-flex justify-content-center align-items-center\"\n [class.redIcon]=\"\n action.title === 'Delete' || action.title === 'Close Business'\n \"\n [class.blueIcon]=\"action.blueIcon\"\n [class.greenIcon]=\"action.greenIcon\"\n >\n <svg-icon [src]=\"action.svgUrl\"></svg-icon>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"action.hasBorder\">\n <div\n class=\"border-holder d-flex justify-content-center\"\n @borderShowAnimation\n >\n <div class=\"action-border-line\"></div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n SimpleChanges,\n} from '@angular/core';\n//model\nimport { IItemList } from '../../models/dropdown.model';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@Component({\n selector: 'app-ca-dropdown',\n templateUrl: './ca-dropdown.component.html',\n styleUrls: ['./ca-dropdown.component.scss'],\n standalone: true,\n imports: [CommonModule, AngularSvgIconModule],\n})\nexport class CaDropdownComponent {\n @Input() icon!: string;\n @Input() itemList!: IItemList[];\n @Output() onClick = new EventEmitter<Event>();\n @Input() isPopupShown: boolean = false;\n\n ngOnChanges(changes: SimpleChanges) {\n this.isPopupShown = changes['isPopupShown']?.currentValue;\n }\n\n public toggleMenu(event: Event): void {\n this.isPopupShown = !this.isPopupShown;\n this.onClick.emit(event);\n }\n\n public identity(index: number, item: IItemList): string {\n return item.text;\n }\n}\n","<div class=\"sidemenu-container-box\">\n <svg-icon [src]=\"icon\" (click)=\"toggleMenu($event)\"></svg-icon>\n <ng-container *ngIf=\"isPopupShown\">\n <div class=\"sidemenu\">\n <ng-container *ngFor=\"let item of itemList; trackBy: identity\">\n <div class=\"sidemenu-container\">\n <div class=\"item-container d-flex\">\n <svg-icon [src]=\"item.Icon\" class=\"item-icon\" />\n <span class=\"sidemenu-items\">{{ item.text }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const showAnimation = (type: string) =>\n trigger(type, [\n state(\n 'true',\n style({\n height: '*',\n opacity: 1,\n })\n ),\n state(\n 'false',\n style({\n height: '10px',\n opacity: '0.5',\n })\n ),\n state(\n 'null',\n style({\n height: '10px',\n opacity: '0.5',\n })\n ),\n transition('false => true', [\n animate('150ms cubic-bezier(0, 0, 0.60, 1.99)'),\n ]),\n transition('true => false', [animate('150ms ease')]),\n ]);\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const closeForm = (type: string) =>\n trigger(type, [\n state(\n 'true',\n style({\n height: '*',\n opacity: 1,\n })\n ),\n state(\n 'false',\n style({\n height: '0px',\n 'margin-top': '0px',\n opacity: 0,\n })\n ),\n state(\n 'null',\n style({\n height: '*',\n })\n ),\n transition('false <=> true', [animate('0.1s linear')]),\n transition('true <=> false', [animate('0.1s ease-in-out')]),\n ]);\n","export class CaFiltersSvgRoutes {\n static sortArrowSvgRoute: string = 'assets/ca-components/svg/common/sortArrow_filter.svg';\n static searchIconRoute: string = 'assets/ca-components/svg/common/ic_search.svg';\n static iconConfirm: string = 'assets/ca-components/svg/common/ic_confirm.svg';\n static removeSelectedValue: string = 'assets/ca-components/svg/truckassist-table/x.svg';\n}\n","import { ArrayStatus } from '../../../../models/array-status.model';\nimport { CaFiltersSvgRoutes } from '../svg-routes/ca-filters-svg-routes';\n\nexport class FilterHelper {\n static sortItems(\n sortedFilterArray: ArrayStatus[],\n sortedSelectedFilterArray: ArrayStatus[],\n isAscendingSortOrder: boolean\n ): {\n sortedFilterArray: ArrayStatus[];\n sortedSelectedFilterArray: ArrayStatus[];\n isAscendingSortOrder: boolean;\n } {\n sortedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.name!.localeCompare(b.name!);\n } else {\n return b.name!.localeCompare(a.name!);\n }\n });\n\n sortedSelectedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.name!.localeCompare(b.name!);\n } else {\n return b.name!.localeCompare(a.name!);\n }\n });\n\n isAscendingSortOrder = !isAscendingSortOrder;\n\n return {\n sortedFilterArray,\n sortedSelectedFilterArray,\n isAscendingSortOrder,\n };\n }\n\n static sortItemsCount(\n sortedFilterArray: ArrayStatus[],\n sortedSelectedFilterArray: ArrayStatus[],\n isAscendingSortOrder: boolean\n ): {\n sortedFilterArray: ArrayStatus[];\n sortedSelectedFilterArray: ArrayStatus[];\n isAscendingSortOrder: boolean;\n } {\n sortedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.count! - b.count!;\n } else {\n return b.count! - a.count!;\n }\n });\n\n sortedSelectedFilterArray.sort((a, b) => {\n if (isAscendingSortOrder) {\n return a.count! - b.count!;\n } else {\n return b.count! - a.count!;\n }\n });\n\n isAscendingSortOrder = !isAscendingSortOrder;\n\n return {\n sortedFilterArray,\n sortedSelectedFilterArray,\n isAscendingSortOrder,\n };\n }\n\n static checkFilterActiveValue(\n filterArray: ArrayStatus[],\n selectedFilterArray: ArrayStatus[],\n isButtonAvailable: boolean\n ): {\n isButtonAvailable: boolean;\n } {\n const array1 = [...selectedFilterArray];\n const array2 = [...filterArray];\n\n array1.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n array2.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n const stringfy1 = JSON.stringify(array1);\n const stringfy2 = JSON.stringify(array2);\n\n if (stringfy1 === stringfy2) {\n isButtonAvailable = false;\n } else {\n isButtonAvailable = true;\n }\n\n return { isButtonAvailable };\n }\n\n static getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return CaFiltersSvgRoutes[propertyName] as string;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaMoneyFilterComponent } from '../components/ca-money-filter/ca-money-filter.component';\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-filter.component';\nimport { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from '../components/ca-service-filter/ca-service-filter.component';\n\n@Pipe({\n name: 'filterConditionsSet',\n standalone: true,\n pure: false,\n})\nexport class FilterConditionsSetPipe implements PipeTransform {\n transform(\n type: string,\n caMoneyFilter: CaMoneyFilterComponent,\n caStatusFilter: CaStatusFilterComponent,\n caTimeFilter: CaTimeFilterComponent,\n caUserFilter: CaUserFilterComponent,\n caStateFilter: CaStateFilterComponent,\n caTruckTypeFilter: CaTruckTypeFilterComponent,\n caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n caPmFilter: CaPmFilterComponent,\n caServiceFilter: CaServiceFilterComponent\n ): boolean | number {\n switch (type) {\n case 'moneyFilter':\n return caMoneyFilter?.subType === 'all'\n ? caMoneyFilter?.moneyFilterStatus &&\n caMoneyFilter?.isButtonAvailable\n : caMoneyFilter?.moneyFilterStatus &&\n caMoneyFilter?.isButtonAvailable &&\n !caMoneyFilter?.singleFormError;\n case 'statusFilter':\n return caStatusFilter?.selectedUser?.length;\n case 'timeFilter':\n return (\n caTimeFilter?.selectedTimeValue !==\n caTimeFilter?.filterActiveTime\n );\n case 'userFilter':\n return (\n (caUserFilter?.selectedUser.length ||\n caUserFilter?.filterActiveArray.length) &&\n caUserFilter?.isButtonAvailable\n );\n case 'stateFilter':\n return (\n (caStateFilter?.canadaSelectedStates.length ||\n caStateFilter?.usaSelectedStates.length) &&\n caStateFilter?.isButtonAvailable\n );\n case 'truckTypeFilter':\n return (\n caTruckTypeFilter?.selectedTruckTypeArray.length &&\n caTruckTypeFilter?.isButtonAvailable\n );\n case 'trailerTypeFilter':\n return (\n caTrailerTypeFilter?.selectedTrailerTypeArray.length &&\n caTrailerTypeFilter?.isButtonAvailable\n );\n case 'pmFilter':\n return (\n caPmFilter?.selectedPmFilterArray.length &&\n caPmFilter?.isButtonAvailable\n );\n case 'serviceFilter':\n return (\n caServiceFilter?.selectedServiceFilterArray.length &&\n caServiceFilter?.isButtonAvailable\n );\n default:\n return false;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaMoneyFilterComponent } from '../components/ca-money-filter/ca-money-filter.component';\nimport { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-filter.component';\nimport { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component';\nimport { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from '../components/ca-service-filter/ca-service-filter.component';\n\n@Pipe({\n name: 'filterConditionsClear',\n standalone: true,\n pure: false,\n})\nexport class FilterConditionsClearPipe implements PipeTransform {\n transform(\n type: string,\n caMoneyFilter: CaMoneyFilterComponent,\n caStatusFilter: CaStatusFilterComponent,\n caTimeFilter: CaTimeFilterComponent,\n caUserFilter: CaUserFilterComponent,\n caStateFilter: CaStateFilterComponent,\n caTruckTypeFilter: CaTruckTypeFilterComponent,\n caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n caPmFilter: CaPmFilterComponent,\n caServiceFilter: CaServiceFilterComponent\n ): boolean | number {\n switch (type) {\n case 'moneyFilter':\n return caMoneyFilter?.moneyFilterStatus;\n case 'statusFilter':\n return caStatusFilter?.selectedUser?.length;\n case 'timeFilter':\n return (\n caTimeFilter?.selectedTimeValue !==\n caTimeFilter?.filterActiveTime ||\n caTimeFilter?.selectedTimeValue !== ''\n );\n case 'userFilter':\n return (\n caUserFilter?.selectedUser.length ||\n caUserFilter?.filterActiveArray.length\n );\n case 'stateFilter':\n return (\n caStateFilter?.canadaSelectedStates.length ||\n caStateFilter?.usaSelectedStates.length\n );\n case 'truckTypeFilter':\n return caTruckTypeFilter?.selectedTruckTypeArray.length;\n case 'trailerTypeFilter':\n return caTrailerTypeFilter?.selectedTrailerTypeArray.length;\n case 'pmFilter':\n return caPmFilter?.selectedPmFilterArray.length;\n case 'serviceFilter':\n return caServiceFilter?.selectedServiceFilterArray.length;\n default:\n return false;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from '../components/ca-service-filter/ca-service-filter.component';\n\n@Pipe({\n name: 'filterConditionsUserBox',\n standalone: true,\n pure: false,\n})\nexport class FilterConditionsUserBoxPipe implements PipeTransform {\n transform(\n type: string,\n caTruckTypeFilter: CaTruckTypeFilterComponent,\n caTrailerTypeFilter: CaTrailerTypeFilterComponent,\n caPmFilter: CaPmFilterComponent,\n caServiceFilter: CaServiceFilterComponent\n ): boolean | number {\n switch (type) {\n case 'truckTypeFilter':\n return caTruckTypeFilter?.selectedTruckTypeArray?.length;\n case 'trailerTypeFilter':\n return caTrailerTypeFilter?.selectedTrailerTypeArray?.length;\n case 'pmFilter':\n return caPmFilter?.selectedPmFilterArray?.length;\n case 'serviceFilter':\n return caServiceFilter?.selectedServiceFilterArray?.length;\n default:\n return false;\n }\n }\n}\n","export enum ToolbarFilterStringEnum {\n // Filter types\n\n DEPARTMENT_FILTER = 'departmentFilter',\n STATUS_FILTER = 'statusFilter',\n PM_FILTER = 'pmFilter',\n CATEGORY_FUEL_FILTER = 'categoryFuelFilter',\n CATEGORY_REPAIR_FILTER = 'categoryRepairFilter',\n SERVICE_FILTER = 'serviceFilter',\n TRUCK_FILTER = 'truckFilter',\n TRAILER_FILTER = 'trailerFilter',\n FUEL_STOP_FILTER = 'fuelStopFilter',\n BROKER_FILTER = 'brokerFilter',\n DRIVER_FILTER = 'driverFilter',\n TRUCK_TYPE_FILTER = 'truckTypeFilter',\n TRAILER_TYPE_FILTER = 'trailerTypeFilter',\n USER_FILTER = 'userFilter',\n STATE_FILTER = 'stateFilter',\n LABEL_FILTER = 'labelFilter',\n TIME_FILTER = 'timeFilter',\n INJURY_FILTER = 'injuryFilter',\n FATALITY_FILTER = 'fatalityFilter',\n VIOLATION_FILTER = 'violationFilter',\n LOCATION_FILTER = 'locationFilter',\n MONEY_FILTER = 'moneyFilter',\n MILES_FILTER = 'milesFilter',\n PAY_FILTER = 'payFilter',\n\n // State Filter\n CANADA = 'canada',\n CANADA_2 = 'Canada',\n\n // Empty string\n EMPTY_STRING_PLACEHOLDER = '',\n\n // Classes\n ACTIVE = 'active',\n\n // Money filter\n PENDING_STATUS = 'pendingStatus',\n ALL = 'all',\n MIN_VALUE = '0',\n MAX_VALUE = '5,000',\n\n // Service filter\n REPAIR_CATEGORY_UPDATE = 'repair-category-update',\n\n // Pm filter\n PM_SUBTYPE_TRUCK = 'truck',\n PM_SUBTYPE_TRAILER = 'trailer',\n PM_TRAILER_DATA_UPDATE = 'pm-trailer-data-update',\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport moment from 'moment';\n\nexport class MethodsCalculationsHelper {\n //------------------------------- Calculating Parking Slots -------------------------------\n static calculateParkingSlot = (\n value: string,\n formControl: AbstractControl\n ) => {\n // First check if value exist\n if (!value) {\n return 0;\n }\n let arrayStops: any[] = value.split(',');\n // Second check if arrayStops has ',' or ''\n if (arrayStops.includes(',') || arrayStops.includes('')) {\n arrayStops.pop();\n formControl.patchValue(value.substring(0, value.lastIndexOf(',')));\n return;\n }\n return arrayStops\n .map((item: string) => {\n // Third check if value has '-'\n if (item.includes('-')) {\n const doubleValues: string[] = item.split('-');\n // Fourth check lentgh of doubleValues after splitting by -, must be 2\n if (doubleValues.length > 2) {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n const foundSameElements: boolean = arrayStops.some(\n (array1) => doubleValues.includes(array1)\n );\n // Fifth check if values exist, denided, delete, return\n if (foundSameElements) {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n // Sixth check if second value > first value\n if (!doubleValues.includes('')) {\n if (\n parseInt(doubleValues[1]) >\n parseInt(doubleValues[0])\n ) {\n // Seventh check if value in range\n arrayStops.forEach((item) => {\n if (\n parseInt(item) >\n parseInt(doubleValues[0]) &&\n parseInt(item) < parseInt(doubleValues[1])\n ) {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(\n 0,\n value.lastIndexOf(',')\n )\n );\n return;\n }\n });\n return (\n parseInt(doubleValues[1]) -\n parseInt(doubleValues[0])\n );\n } else {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n } else {\n arrayStops.pop();\n formControl.patchValue(\n value.substring(0, value.lastIndexOf(','))\n );\n return;\n }\n } else {\n // Eight chech has array duplicate items\n if (arrayStops.length !== new Set(arrayStops).size) {\n arrayStops = [...new Set(arrayStops)];\n formControl.patchValue(arrayStops.join(','));\n return;\n } else {\n return 1;\n }\n }\n })\n .reduce((accumulator, item) => {\n return (accumulator! += item!);\n }, 0);\n };\n\n //------------------------------- DATE TO BACKEND -------------------------------\n static convertDateToBackend = (date: string) => {\n return moment(new Date(date)).toISOString(true);\n };\n\n //------------------------------- DATE FROM BACKEND -------------------------------\n static convertDateFromBackend = (date: string) => {\n return moment.utc(date).local().format('MM/DD/YY');\n };\n\n //------------------------------- TIME FROM DATE FROM BACKEND -------------------------------\n static convertDateToTimeFromBackend = (\n date: string,\n show_am_ap?: boolean\n ) => {\n if(!date) {\n return null;\n }\n return moment\n .utc(date)\n .local()\n .format(show_am_ap ? 'HH:mm A' : 'HH:mm:SS');\n };\n\n //------------------------------- TIME FROM BACKEND -------------------------------\n static convertTimeFromBackend = (time: string) => {\n return moment(time, 'HH:mm:SS A').toDate();\n };\n\n //------------------------------- DATE FROM BACKEND TO TIME -------------------------------\n static convertDateFromBackendToTime = (date: string) => {\n return moment(new Date(date)).format('LT');\n };\n\n static combineDateAndTimeToBackend = (date: string, time: string) => {\n if (!time) {\n return moment(new Date(date)).toISOString(true);\n }\n return moment(new Date(date + ' ' + time)).toISOString(true);\n };\n\n //------------------------------- DATE FROM BACKEND TO DATE AND TIME -------------------------------\n static convertDateFromBackendToDateAndTime = (date: Date | string) => {\n return moment(new Date(date)).format('MM/DD/YY, hh:mm A');\n };\n\n //------------------------------- Convert thousand separator in number -------------------------------\n static convertThousanSepInNumber = (value: string) => {\n if (value) return parseFloat(value.toString().replace(/,/g, ''));\n else return 0\n };\n\n //------------------------------- Convert number in thousand separator -------------------------------\n static convertNumberInThousandSep = (value: number) => {\n if (value)\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n else return 0\n };\n\n //------------------------------- Convert number to short format (1.000 to 1K, 1.000.000 to 1M) -------------------------------\n static convertThousandToShortFormat = (value: number) => {\n if (value)\n return new Intl.NumberFormat(undefined, {\n //@ts-ignore\n notation: 'compact',\n compactDisplay: 'short',\n }).format(value);\n else return '0';\n };\n\n //------------------------------- SPECIFIC PRICE CONVERTORS -------------------------------\n static convertNumberWithCurrencyFormatterToBackend = (\n value: number,\n hasDollar: boolean = false\n ) => {\n const formatedValue = value.toLocaleString('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 2,\n });\n\n if (formatedValue.includes('$') && !hasDollar) {\n return formatedValue.slice(1);\n }\n\n return formatedValue;\n };\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../utils/helpers/methods-calculations.helper';\n\n@Pipe({\n name: 'thousandSeparator',\n standalone: true,\n})\nexport class ThousandSeparatorPipe implements PipeTransform {\n transform(value: any): any {\n return MethodsCalculationsHelper.convertNumberInThousandSep(\n MethodsCalculationsHelper.convertThousanSepInNumber(\n value ? value : '0'\n )\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n standalone: true,\n name: \"caSvg\",\n})\nexport class CaSvgPipe implements PipeTransform {\n transform(\n svgPath: string,\n folder: string,\n subFolder?: string\n ): string | null {\n if (!svgPath) {\n return null;\n }\n\n if (!svgPath.includes(\".svg\")) {\n svgPath = svgPath.concat(\".svg\");\n }\n\n if (!svgPath.includes(\"ic_\")) {\n svgPath = \"ic_\".concat(svgPath);\n }\n if (!subFolder) {\n return `assets/ca-components/svg/${folder}/${svgPath}`;\n }\n\n return `assets/ca-components/svg/${folder}/${subFolder}/${svgPath}`;\n }\n}\n","export class CaMoneyFilterSvgRoutes {\n static arrowLeftSvgRoute: string = 'assets/ca-components/svg/common/calendar/arrow-left.svg';\n}\n","export enum MoneyFilterStringEnum {\n // Subfilter types\n\n SINGLE_FORM = 'singleForm',\n SINGLE_FROM = 'singleFrom',\n SINGLE_TO = 'singleTo',\n MULTI_FROM_FIRST = 'multiFromFirst',\n MULTI_FROM_FIRST_FROM = 'multiFromFirstFrom',\n MULTI_FROM_FIRST_TO = 'multiFromFirstTo',\n MULTI_FORM_SECOND = 'multiFormSecond',\n MULTI_FORM_SECOND_FROM = 'multiFormSecondFrom',\n MULTI_FORM_SECOND_TO = 'multiFormSecondTo',\n MULTI_FORM_THIRD = 'multiFormThird',\n MULTI_FORM_THIRD_FROM = 'multiFormThirdFrom',\n MULTI_FORM_THIRD_TO = 'multiFormThirdTo',\n CLEAR_ALL = 'clearAll',\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaMoneyFilterConfig {\n static getSingleFormFrom(): ICaInput {\n return {\n name: 'singleFrom',\n type: 'string',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getSingleFormTo(): ICaInput {\n return {\n name: 'singleTo',\n type: 'string',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormFirstFrom(): ICaInput {\n return {\n name: 'multiFromFirstFrom',\n type: 'string',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormFirstTo(): ICaInput {\n return {\n name: 'multiFromFirstTo',\n type: 'string',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormSecondFrom(): ICaInput {\n return {\n name: 'multiFormSecondFrom',\n type: 'number',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormSecondTo(): ICaInput {\n return {\n name: 'multiFormSecondTo',\n type: 'number',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormThirdFrom(): ICaInput {\n return {\n name: 'multiFormThirdFrom',\n type: 'number',\n label: 'From',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n\n static getMultiFormThirdTo(): ICaInput {\n return {\n name: 'multiFormThirdTo',\n type: 'number',\n label: 'To',\n placeholderIcon: 'dollar',\n isDisabled: false,\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'inputClass',\n standalone: true,\n})\nexport class InputClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n isTouchedInput: boolean,\n inputConfig: ICaInput,\n input: { value: string },\n isVisibleCommands: boolean,\n value: string,\n isDropdownToggler: boolean,\n isEditInput: boolean,\n template: string\n ): { [key: string]: boolean | undefined | number | null | string } {\n return {\n 'input-fixed-placehoder-input':\n inputConfig.fixedPlacholder && input.value && !isFocusInput,\n focus: isFocusInput && !inputConfig.isInvalidSearchInDropdown,\n 'inactive-empty': !value && inputConfig.isDisabled,\n 'inactive-filled': value && inputConfig.isDisabled,\n 'valid-focus-in':\n ((value || inputConfig.placeholder) &&\n getSuperControl?.valid &&\n isFocusInput &&\n !isVisibleCommands &&\n !inputConfig?.dropdownImageInput?.url &&\n !inputConfig.blackInput &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel) ||\n (inputConfig.multipleInputValues?.options?.length &&\n isFocusInput &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel),\n 'valid-focus-out-filled':\n (((value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !isVisibleCommands &&\n !inputConfig.blackInput) ||\n (!isFocusInput && inputConfig.dropdownImageInput?.url)) &&\n !inputConfig.blackInput) ||\n (inputConfig.multipleInputValues?.options?.length &&\n !isFocusInput &&\n !inputConfig.blackInput),\n 'invalid-focus-in':\n getSuperControl?.invalid &&\n value &&\n isFocusInput &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel &&\n !(\n inputConfig.dropdownImageInput?.url ||\n inputConfig.dropdownImageInput?.nameInitialsInsteadUrl\n ),\n 'invalid-focus-out-filled':\n ((value &&\n getSuperControl?.invalid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.blackInput) ||\n (!inputConfig.dropdownImageInput?.url &&\n (isTouchedInput || getSuperControl?.touched) &&\n getSuperControl?.invalid &&\n !inputConfig.isDisabled &&\n !isFocusInput)) &&\n !inputConfig.blackInput,\n 'invalid-focus-out-empty':\n !isFocusInput &&\n !value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !inputConfig.isDisabled,\n 'invalid-search-in-dropdown-focus-in':\n isFocusInput &&\n value &&\n inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled,\n 'has-placeholderIcon': !!inputConfig.placeholderIcon,\n 'dropdown-placeholder-active':\n inputConfig.isDropdown &&\n inputConfig.placeholder &&\n isDropdownToggler &&\n isFocusInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled &&\n !inputConfig.isInvalidSearchInDropdown,\n 'multiSelect-dropdown-active':\n inputConfig.multiSelectDropdownActive &&\n isFocusInput &&\n !inputConfig.isDisabled,\n 'dropdown-label-active':\n inputConfig.dropdownLabel &&\n isVisibleCommands &&\n isEditInput &&\n !inputConfig.isDisabled,\n 'input-commands': inputConfig.commands?.active && isVisibleCommands,\n 'blue-commands':\n inputConfig.commands?.blueCommands &&\n inputConfig.commands?.active &&\n isVisibleCommands,\n 'dropdown-input-image-truck':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'truck' &&\n !inputConfig?.dropdownImageInput?.remove &&\n !isFocusInput,\n 'dropdown-input-image-truck-focus':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'truck' &&\n !inputConfig?.dropdownImageInput?.remove &&\n isFocusInput,\n 'dropdown-input-image-trailer':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'trailer' &&\n !inputConfig?.dropdownImageInput?.remove &&\n !isFocusInput,\n 'dropdown-input-image-trailer-focus':\n inputConfig?.dropdownImageInput?.withText &&\n inputConfig?.dropdownImageInput?.url &&\n inputConfig?.dropdownImageInput?.template === 'trailer' &&\n !inputConfig?.dropdownImageInput?.remove &&\n isFocusInput,\n 'dropdown-input-image-color':\n inputConfig?.dropdownImageInput?.withText &&\n (inputConfig?.dropdownImageInput?.url ||\n inputConfig?.dropdownImageInput?.nameInitialsInsteadUrl) &&\n inputConfig?.dropdownImageInput?.template === 'color',\n 'dropdown-input-image-user':\n inputConfig?.dropdownImageInput?.withText &&\n !inputConfig?.hideAllItemsInInputDropdown &&\n inputConfig?.dropdownImageInput?.template === 'user' &&\n (inputConfig.selectedDropdown ||\n (inputConfig.placeholder && isFocusInput) ||\n getSuperControl?.value),\n 'dropdown-input-image-pm':\n inputConfig?.dropdownImageInput?.withText &&\n !inputConfig?.hideAllItemsInInputDropdown &&\n inputConfig?.dropdownImageInput?.template === 'pm' &&\n (inputConfig.selectedDropdown ||\n (inputConfig.placeholder && isFocusInput) ||\n getSuperControl?.value),\n 'dropdown-input-image-without-text-transparent':\n inputConfig?.dropdownImageInput &&\n !inputConfig?.dropdownImageInput?.withText &&\n !isFocusInput,\n 'multiple-input-values':\n inputConfig?.multipleInputValues?.options?.length && !isFocusInput,\n 'disable-select-on-focus-out': !isFocusInput,\n 'hide-placeholder-in-multiple-placeholder-input':\n inputConfig?.multipleInputValues?.options?.length && isFocusInput,\n 'cursor-on-right-side': inputConfig?.inputCursorOnRightSide,\n 'merge-dropdown-body-with-input': inputConfig.mergeDropdownBodyWithInput,\n 'dispatch-dropdown': template === 'svgtext-dispatch-template',\n 'ta-font-bold text-uppercase': inputConfig.statusStyle,\n };\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"inputContainerClass\",\n standalone: true,\n})\nexport class InputContainerClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n isTouchedInput: boolean,\n inputConfig: ICaInput,\n value: string\n ): { [key: string]: boolean | undefined | null | string } {\n return {\n \"custom-empty-hover\": !isFocusInput,\n \"custom-filled-hover\":\n value && !isFocusInput && !inputConfig.dropdownLabel,\n \"invalid-filled-focus-out\":\n value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"invalid-empty-focus-out\":\n !value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled &&\n !inputConfig.dropdownLabel,\n \"invalid-focus-in\":\n value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"valid-focus-in\":\n value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.hideClear &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"valid-focus-out\":\n value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"inactive-empty\": inputConfig.isDisabled && !value,\n \"inactive-filled\": inputConfig.isDisabled && value,\n \"input-remove-trash-can\": inputConfig.removeInput,\n \"input-remove-background\": inputConfig.isInputBackgroundRemoved,\n \"input-blue-text\": inputConfig.isBlueText,\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inputError',\n standalone: true,\n})\nexport class InputErrorPipe implements PipeTransform {\n transform(value: any, inputName?: string): string {\n let errorMessageValue: string = '';\n\n if (value !== null) {\n if (value['required']) {\n errorMessageValue = 'Required';\n }\n\n if (value['invalid']) {\n errorMessageValue = 'Invalid';\n }\n\n if (value['minlength']) {\n errorMessageValue = `${value['minlength'].requiredLength} Characters Min`;\n }\n\n if (value['maxlength']) {\n errorMessageValue = `${value['maxlength'].requiredLength} Characters Max`;\n }\n\n if (value['min']) {\n errorMessageValue = `${value['min']} Is Minimum Value`;\n }\n\n if (value['max']) {\n errorMessageValue = `${value['max']} Is Maximum Value`;\n }\n\n if (value['passwordDontMatch']) {\n errorMessageValue = \"Passwords don't match.\";\n }\n\n if (value['fuelStore']) {\n errorMessageValue = 'Store already added.';\n }\n\n if (value['fuelStoreCommonMessage']) {\n errorMessageValue = 'Already in use by other fuel stop.';\n }\n\n if (value['pattern']?.requiredPattern) {\n switch (inputName?.toLowerCase()) {\n case 'phone': {\n errorMessageValue = 'Invalid';\n break;\n }\n case 'ssn': {\n errorMessageValue = 'Invalid';\n break;\n }\n case 'ein': {\n errorMessageValue = 'Invalid';\n break;\n }\n default: {\n errorMessageValue = `Invalid`;\n break;\n }\n }\n }\n\n if (value['userDoesntExist']) {\n errorMessageValue = \"This user doesn't exist\";\n }\n\n if (value['userAlreadyRegistered']) {\n errorMessageValue = 'This user is already registered';\n }\n\n if (value['wrongPassword']) {\n errorMessageValue = 'Wrong password, try again';\n }\n\n if (\n value['einAlreadyExist'] ||\n value['phoneAlreadyExist'] ||\n value['emailAlreadyExist'] ||\n value['ssnAlreadyExist']\n ) {\n errorMessageValue = 'Already in use';\n }\n\n if (value['incorrectVinNumber']) {\n errorMessageValue = '13 or 17 characters';\n }\n }\n return errorMessageValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inputType',\n standalone: true\n})\nexport class InputTypePipe implements PipeTransform {\n transform(type: string, value: boolean): any {\n if (type === 'password') {\n if (value) {\n return 'text';\n } else {\n return 'password';\n }\n }\n return type;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'labelClass',\n standalone: true\n})\nexport class LabelClassPipe implements PipeTransform {\n transform(\n value: string,\n isFocusInput: boolean,\n inputConfig: ICaInput\n ): { [key: string]: boolean | null | undefined | string | number } {\n return {\n required: inputConfig.isRequired && !inputConfig.isDisabled,\n 'inactive-empty': !value && inputConfig.isDisabled,\n 'up-label':\n value ||\n isFocusInput ||\n inputConfig?.multipleInputValues?.options?.length ||\n (!inputConfig.dropdownImageInput?.withText &&\n inputConfig.dropdownImageInput?.url &&\n !inputConfig.labelInInput),\n 'input-placeholderIcon-on': inputConfig.placeholderIcon,\n hidden:\n inputConfig.placeholderInsteadOfLabel &&\n (isFocusInput || value),\n 'multiple-labels': inputConfig?.multipleInputValues?.options?.length,\n 'in-label-focus': isFocusInput && inputConfig.labelInInput,\n 'in-label': inputConfig.labelInInput\n };\n }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"showClear\",\n standalone: true\n})\nexport class ShowClearPipe implements PipeTransform {\n transform(inputConfig: ICaInput): boolean | undefined {\n return (\n (!inputConfig.hideClear &&\n (!inputConfig.isDisabled || inputConfig.removeInput) &&\n !inputConfig.customClass?.includes(\"details-pages\") &&\n !inputConfig.commands?.active &&\n !inputConfig?.loadingSpinner?.isLoading) ||\n inputConfig.incorrectInput\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"showInvalidDangerMark\",\n standalone: true,\n})\nexport class ShowInvalidDangerMarkPipe implements PipeTransform {\n transform(\n inputConfig: ICaInput,\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n isTouchedInput: boolean,\n value: string\n ): boolean | undefined {\n return (\n ((isTouchedInput || getSuperControl?.touched) &&\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.incorrectInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDropdown &&\n !inputConfig.dropdownLabel &&\n !inputConfig.hideDangerMark) ||\n inputConfig.dangerMark\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"showValidCheck\",\n standalone: true\n})\nexport class ShowValidCheckPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n value: string\n ): boolean {\n return (\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.placeholderIcon &&\n !inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.hideRequiredCheck &&\n !inputConfig.incorrectInput &&\n !inputConfig?.loadingSpinner?.isLoading &&\n !inputConfig.dropdownLabel\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'inputDropdownArrowClass',\n standalone: true,\n})\nexport class InputDropdownArrowClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n isTouchedInput: boolean,\n value: string\n ): { [key: string]: boolean | undefined } {\n return {\n focus: isFocusInput,\n 'valid-focus-in':\n (!inputConfig.dropdownLabel &&\n (getSuperControl?.value || inputConfig.placeholder) &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.isDisabled &&\n !inputConfig.isInvalidSearchInDropdown) ||\n ((inputConfig.dropdownImageInput?.url ||\n inputConfig.dropdownImageInput?.nameInitialsInsteadUrl ||\n inputConfig.placeholder) &&\n isFocusInput &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.isDisabled),\n 'valid-focus-out':\n (getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled) ||\n (!inputConfig.dropdownImageInput?.withText &&\n inputConfig.dropdownImageInput?.url &&\n !isFocusInput &&\n !inputConfig.isDisabled),\n 'invalid-focus-in':\n (getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.isDisabled) ||\n (isFocusInput &&\n getSuperControl?.value &&\n inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled),\n 'invalid-focus-out':\n !getSuperControl?.value &&\n getSuperControl?.invalid &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput &&\n !inputConfig.isDisabled,\n 'invalid-search-in-dropdown-focus-in':\n inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n isFocusInput &&\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !inputConfig.isDisabled,\n };\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"inputClearClass\",\n standalone: true,\n})\nexport class InputClearClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n incorrectValue: boolean,\n selectedDropdownLabelColor: boolean,\n value: string\n ): { [key: string]: boolean | undefined } {\n return {\n focus:\n isFocusInput &&\n getSuperControl?.value &&\n !(inputConfig.blackInput && inputConfig.isDropdown),\n \"valid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.customClass?.includes(\"repair-shop-open-hour\") &&\n !inputConfig.blackInput &&\n !inputConfig.dropdownImageInput?.url &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.isDisabled,\n \"valid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.customClass?.includes(\"repair-shop-open-hour\") &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"invalid-focus-in\":\n (getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled) ||\n (inputConfig.isInvalidSearchInDropdown &&\n inputConfig.isDropdown &&\n isFocusInput &&\n getSuperControl?.value &&\n !inputConfig.mergeDropdownBodyWithInput &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled),\n \"invalid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !isFocusInput &&\n !inputConfig.isDropdown &&\n !inputConfig.blackInput &&\n !(\n !inputConfig.dropdownImageInput?.withText &&\n inputConfig.dropdownImageInput?.url\n ) &&\n !inputConfig.isDisabled,\n \"incorrect-input\": inputConfig.incorrectInput && getSuperControl?.value,\n \"incorrect-input-on\":\n inputConfig.incorrectInput && getSuperControl?.value && incorrectValue,\n hidden: getSuperControl?.value && isFocusInput && inputConfig.dropdownLabel,\n \"dropdown-on\":\n (getSuperControl?.value &&\n inputConfig.isDropdown &&\n !inputConfig.isDisabled &&\n !inputConfig.blackInput &&\n !inputConfig.multiSelectDropdownActive &&\n !inputConfig.mergeDropdownBodyWithInput) ||\n (inputConfig.dropdownImageInput?.url &&\n !inputConfig.isDisabled &&\n !inputConfig.blackInput &&\n !inputConfig.multiSelectDropdownActive &&\n !inputConfig.mergeDropdownBodyWithInput) ||\n (!inputConfig.blackInput && selectedDropdownLabelColor) ||\n (inputConfig.dropdownImageInput?.url &&\n !inputConfig.blackInput &&\n !inputConfig.mergeDropdownBodyWithInput),\n \"trash-can-svg\": inputConfig.removeInput,\n };\n }\n}\n","export class InputSvgRoutes {\n static removeInputSvg: string =\n 'assets/ca-components/svg/input/ic_remove_input.svg';\n static xClearSvg: string = 'assets/ca-components/svg/input/ic_x.svg';\n static confirmSvg: string = 'assets/ca-components/svg/input/ic_confirm.svg';\n static dangerSvg: string = 'assets/ca-components/svg/input/ic_danger.svg';\n static eyeVisibleSvg: string =\n 'assets/ca-components/svg/input/ic_eye-visible.svg';\n static eyeHiddenSvg: string =\n 'assets/ca-components/svg/input/ic_eye-hidden.svg';\n static decrementSvg: string =\n 'assets/ca-components/svg/input/ic_pm_decrement.svg';\n static incrementSvg: string =\n 'assets/ca-components/svg/input/ic_pm_increment.svg';\n static inputPenSvg: string =\n 'assets/ca-components/svg/input/ic_spec_input_pen.svg';\n static inputDropdownArrowSvg: string =\n 'assets/ca-components/svg/input/ic_arrow_input.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config/ca-input.config';\nimport { LabelColor } from '../../models/label-color.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// pipes\nimport { InputClearClassPipe } from '../../pipes/input-clear-class.pipe';\n\n// helpers\nimport { InputSvgRoutes } from '../../utils/input-svg-routes';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-ca-input-clear',\n templateUrl: './ca-input-clear.component.html',\n styleUrls: ['./ca-input-clear.component.scss'],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n AngularSvgIconModule,\n FormsModule,\n ReactiveFormsModule,\n AngularSvgIconModule,\n NgbModule,\n // Pipes\n InputClearClassPipe,\n\n // Components\n CaAppTooltipV2Component,\n ],\n})\nexport class CaInputClearComponent {\n @Input() inputConfig!: ICaInput;\n @Input() getSuperControl!: AbstractControl<any, any> | null;\n @Input() isFocusInput!: boolean;\n @Input() incorrectValue!: boolean;\n @Input() selectedDropdownLabelColor!: LabelColor;\n\n @Output() clearInputClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor() {}\n\n public clearInput(event: Event): void {\n this.clearInputClick.emit(event);\n }\n\n public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n return InputSvgRoutes[propertyName] as string;\n }\n}\n","<div\n class=\"input-clear {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputClearClass\n : isFocusInput\n : inputConfig\n : incorrectValue\n : !!selectedDropdownLabelColor\n : getSuperControl?.value\n \"\n ngbTooltip\n [mainTooltip]=\"\n inputConfig.incorrectInput\n ? 'Mark Incorrect'\n : inputConfig.removeInput\n ? 'Remove'\n : 'Clear'\n \"\n [tooltipBackground]=\"\n inputConfig.incorrectInput ? '#ef5350' : '#2F2F2F'\n \"\n position=\"top\"\n (click)=\"clearInput($event)\"\n>\n <svg-icon\n [src]=\"\n inputConfig.removeInput\n ? getSvgPath('removeInputSvg')\n : getSvgPath('xClearSvg')\n \"\n class=\"input-clear-x\"\n ></svg-icon>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n// modules\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\n\n// models\nimport { ICaInput } from \"../../config/ca-input.config\";\nimport { CommandClick } from \"../../models/command-click.model\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n@Component({\n selector: \"app-ca-input-commands\",\n templateUrl: \"./ca-input-commands.component.html\",\n styleUrls: [\"./ca-input-commands.component.scss\"],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // Components\n CaAppTooltipV2Component,\n ],\n})\nexport class CaInputCommandsComponent {\n @Input() inputConfig!: ICaInput;\n @Input() isFocusInput!: boolean;\n @Input() isVisibleCommands!: boolean;\n\n @Output() onCommandsClick: EventEmitter<CommandClick> = new EventEmitter();\n\n constructor() {}\n\n public onCommands(event: Event, type: string, action: string): void {\n this.onCommandsClick.emit({ event, type, action });\n }\n}\n","<div\n class=\"ta-input-commands\"\n [ngClass]=\"{\n 'blue-commands': inputConfig.commands?.blueCommands,\n 'blue-commands-focus':\n isFocusInput &&\n inputConfig.commands?.blueCommands &&\n inputConfig.commands?.active &&\n isVisibleCommands\n }\"\n>\n <div\n class=\"ta-input-command-first\"\n ngbTooltip\n [mainTooltip]=\"inputConfig.commands?.firstCommand?.popup?.name\"\n [tooltipBackground]=\"\n inputConfig.commands?.firstCommand?.popup?.backgroundColor\n \"\n [disableTooltip]=\"!inputConfig.commands?.firstCommand?.popup\"\n position=\"top\"\n >\n <svg-icon\n class=\"ta-input-command-svg-first\"\n [src]=\"inputConfig.commands?.firstCommand?.svg!\"\n (click)=\"\n onCommands(\n $event,\n inputConfig.commands?.type!,\n inputConfig.commands?.firstCommand?.name!\n )\n \"\n ></svg-icon>\n </div>\n <div\n class=\"ta-input-command-second\"\n ngbTooltip\n [mainTooltip]=\"inputConfig.commands?.secondCommand?.popup?.name\"\n [tooltipBackground]=\"\n inputConfig.commands?.secondCommand?.popup?.backgroundColor\n \"\n [disableTooltip]=\"!inputConfig.commands?.secondCommand?.popup\"\n position=\"top\"\n >\n <svg-icon\n class=\"ta-input-command-svg-second\"\n [src]=\"inputConfig.commands?.secondCommand?.svg!\"\n (click)=\"\n onCommands(\n $event,\n inputConfig.commands?.type!,\n inputConfig.commands?.secondCommand?.name!\n )\n \"\n ></svg-icon>\n </div>\n <ng-container *ngIf=\"inputConfig.commands?.thirdCommand\">\n <div\n class=\"ta-input-command-third\"\n ngbTooltip\n [mainTooltip]=\"inputConfig.commands?.thirdCommand?.popup?.name\"\n [tooltipBackground]=\"\n inputConfig.commands?.thirdCommand?.popup?.backgroundColor\n \"\n [disableTooltip]=\"!inputConfig.commands?.thirdCommand?.popup\"\n position=\"top\"\n >\n <svg-icon\n class=\"ta-input-command-svg-third\"\n [src]=\"inputConfig.commands?.thirdCommand?.svg!\"\n (click)=\"\n onCommands(\n $event,\n inputConfig.commands?.type!,\n inputConfig.commands?.thirdCommand?.name!\n )\n \"\n ></svg-icon>\n </div>\n </ng-container>\n</div>","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\n\n@Pipe({\n name: \"inputPasswordEyeClass\",\n standalone: true,\n})\nexport class InputPasswordEyeClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n isTouchedInput: boolean,\n value: string\n ): { [key: string]: boolean } {\n return {\n visible: getSuperControl?.value,\n inactive: inputConfig.isDisabled,\n \"valid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !inputConfig.isDisabled,\n \"valid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !inputConfig.isDisabled,\n \"invalid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n !inputConfig.isDisabled &&\n (isTouchedInput || getSuperControl?.touched) &&\n !isFocusInput,\n \"invalid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !inputConfig.isDisabled,\n };\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AbstractControl } from \"@angular/forms\";\n\n// helpers\nimport { InputSvgRoutes } from \"../../utils/input-svg-routes\";\n\n// models\nimport { ICaInput } from \"../../config/ca-input.config\";\n\n// modules\nimport { AngularSvgIconModule } from \"angular-svg-icon\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\n\n// components\nimport { CaAppTooltipV2Component } from \"../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component\";\n\n// pipes\nimport { InputPasswordEyeClassPipe } from \"../../pipes/input-password-eye-class.pipe\";\n\n@Component({\n selector: \"app-ca-input-password\",\n templateUrl: \"./ca-input-password.component.html\",\n styleUrls: [\"./ca-input-password.component.scss\"],\n standalone: true,\n imports: [\n // modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // components\n CaAppTooltipV2Component,\n\n // pipes\n InputPasswordEyeClassPipe,\n ],\n})\nexport class CaInputPasswordComponent implements OnInit {\n @Input() inputConfig!: ICaInput;\n @Input() getSuperControl!: AbstractControl<any, any> | null;\n @Input() isFocusInput!: boolean;\n @Input() isTouchedInput!: boolean;\n @Input() isCapsLockOn!: boolean;\n @Input() isTogglePassword!: boolean;\n\n @Output() onTogglePasswordClick: EventEmitter<Event> =\n new EventEmitter<Event>();\n\n constructor() {}\n\n ngOnInit() {}\n\n public onTogglePassword(event: Event): void {\n this.onTogglePasswordClick.emit(event);\n }\n\n public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n return InputSvgRoutes[propertyName] as string;\n }\n}\n","<!-- Input Password Caps Lock -->\n<ng-container\n *ngIf=\"\n isCapsLockOn &&\n inputConfig.type === 'password' &&\n isFocusInput &&\n !inputConfig.isDisabled\n \"\n>\n <p class=\"password-capslock\">Caps Lock is ON</p>\n</ng-container>\n\n<!-- Input Password Eye -->\n<ng-container *ngIf=\"inputConfig.type === 'password' && getSuperControl?.value\">\n <div\n class=\"input-password-eye {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputPasswordEyeClass\n : isFocusInput\n : inputConfig\n : isTouchedInput\n : getSuperControl?.value\n \"\n ngbTooltip\n mainTooltip=\"{{ !isTogglePassword ? 'Show Password' : 'Hide Password' }}\"\n tooltipBackground=\"#2f2f2f\"\n position=\"top\"\n (click)=\"onTogglePassword($event)\"\n >\n <svg-icon\n src=\"{{\n !isTogglePassword\n ? getSvgPath('eyeVisibleSvg')\n : getSvgPath('eyeHiddenSvg')\n }}\"\n ></svg-icon>\n </div>\n</ng-container>\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { ICaInput } from \"../config/ca-input.config\";\nimport { LabelColor } from \"../models/label-color.model\";\n\n@Pipe({\n name: \"inputPlaceholderIconClass\",\n standalone: true,\n})\nexport class InputPlaceholderIconClassPipe implements PipeTransform {\n transform(\n getSuperControl: AbstractControl<any, any> | null,\n isFocusInput: boolean,\n inputConfig: ICaInput,\n selectedDropdownLabelColor: LabelColor,\n isTouchedInput: boolean,\n value: string\n ): { [key: string]: boolean | undefined } {\n return {\n \"inactive-empty\": !getSuperControl?.value && inputConfig.isDisabled,\n \"inactive-filled\": getSuperControl?.value && inputConfig.isDisabled,\n \"default-svg-color\":\n !(inputConfig.dropdownLabel && isFocusInput) &&\n !(inputConfig.dropdownLabel && selectedDropdownLabelColor),\n focus: isFocusInput && !inputConfig.dropdownLabel,\n \"valid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n !inputConfig.blackInput &&\n !inputConfig.commands?.active &&\n !inputConfig.isDisabled,\n \"valid-focus-out\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n !inputConfig.isDisabled,\n \"valid-focus-out-dropdown-label\":\n getSuperControl?.value &&\n getSuperControl?.valid &&\n !isFocusInput &&\n selectedDropdownLabelColor &&\n inputConfig.dropdownLabel &&\n !inputConfig.isDisabled,\n \"invalid-focus-in\":\n getSuperControl?.value &&\n getSuperControl?.invalid &&\n isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n !inputConfig.blackInput &&\n !inputConfig.isDisabled,\n \"invalid-focus-out\":\n getSuperControl?.invalid &&\n !isFocusInput &&\n !selectedDropdownLabelColor &&\n !inputConfig.dropdownLabel &&\n (isTouchedInput || getSuperControl?.touched) &&\n !inputConfig.isDisabled,\n hidden: inputConfig.type === \"password\" && getSuperControl?.value,\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n// models\nimport { ICaInput } from '../../config/ca-input.config';\nimport { LabelColor } from '../../models/label-color.model';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// pipes\nimport { CaSvgPipe } from '../../../../pipes/ca-svg.pipe';\nimport { InputPlaceholderIconClassPipe } from '../../pipes/input-placeholder-icon.class.pipe';\n\n@Component({\n selector: 'app-ca-input-placeholder-icon',\n templateUrl: './ca-input-placeholder-icon.component.html',\n styleUrls: ['./ca-input-placeholder-icon.component.scss'],\n standalone: true,\n imports: [\n // modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // components\n CaAppTooltipV2Component,\n\n // pipes\n InputPlaceholderIconClassPipe,\n CaSvgPipe,\n ],\n})\nexport class CaInputPlaceholderIconComponent implements OnInit {\n @Input() inputConfig!: ICaInput;\n @Input() getSuperControl!: AbstractControl<any, any> | null;\n @Input() isFocusInput!: boolean;\n @Input() isTouchedInput!: boolean;\n @Input() selectedDropdownLabelColor!: LabelColor;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<div\n [placement]=\"['left', 'left-top']\"\n autoClose=\"outside\"\n [container]=\"'body'\"\n class=\"input-icon {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputPlaceholderIconClass\n : isFocusInput\n : inputConfig\n : selectedDropdownLabelColor\n : isTouchedInput\n : getSuperControl?.value\n \"\n ngbTooltip\n [mainTooltip]=\"'Change Color'\"\n [tooltipBackground]=\"'#424242'\"\n position=\"bottom\"\n [ngStyle]=\"{ opacity: inputConfig.isIconHidden ? '0' : {} }\"\n>\n <svg-icon\n appHoverSvg\n [stretch]=\"true\"\n [src]=\"(inputConfig.placeholderIcon! | caSvg: 'input') ?? ''\"\n ></svg-icon>\n</div>\n","export enum InputCommandsAction {\n DECREMENT = 'decrement',\n INCREMENT = 'increment',\n RESET = 'reset',\n CONFIRM = 'confirm',\n CANCEL = 'cancel',\n MINUS = 'minus',\n PLUS = 'plus',\n}\n","export enum InputCommandsType {\n PM_INCREMENT_DECREMENT = 'pm-increment-decrement',\n CONFIRM_CANCEL = 'confirm-cancel',\n MONTHS = 'months',\n}\n","import { ChangeDetectorRef, ElementRef, Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\nimport { NgControl } from '@angular/forms';\n\n// models\nimport { ICaInput } from '../config/ca-input.config';\nimport { CommandsEvent } from '../models/commands-event.model';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../../../utils/helpers/methods-calculations.helper';\n\n// enums\nimport { InputCommandsAction } from '../enums/input-commands-action.enum';\nimport { InputCommandsType } from '../enums/input-commands-type.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InputStateService {\n private isFocusInputSubject = new BehaviorSubject<boolean>(false);\n public isFocusInput$: Observable<boolean> =\n this.isFocusInputSubject.asObservable();\n\n private isTouchedInputSubject = new BehaviorSubject<boolean>(false);\n public isTouchedInput$: Observable<boolean> =\n this.isTouchedInputSubject.asObservable();\n\n private isVisibleCommandsSubject = new BehaviorSubject<boolean>(false);\n public isVisibleCommands$: Observable<boolean> =\n this.isVisibleCommandsSubject.asObservable();\n\n private isEditInputSubject = new BehaviorSubject<boolean>(false);\n public isEditInput$: Observable<boolean> =\n this.isEditInputSubject.asObservable();\n\n private isDropdownTogglerSubject = new BehaviorSubject<boolean>(false);\n public isDropdownToggler$: Observable<boolean> =\n this.isDropdownTogglerSubject.asObservable();\n\n // Outputs\n private commandEventSubject = new Subject<CommandsEvent>();\n public commandEvent$: Observable<CommandsEvent> =\n this.commandEventSubject.asObservable();\n\n private clearInputEventSubject = new Subject<boolean>();\n public clearInputEvent$: Observable<boolean> =\n this.clearInputEventSubject.asObservable();\n\n private incorrectInputSubject = new Subject<boolean>();\n public incorrectInput$: Observable<boolean> =\n this.incorrectInputSubject.asObservable();\n\n private showHideDropdownSubject = new Subject<boolean>();\n public showHideDropdown$: Observable<boolean> =\n this.showHideDropdownSubject.asObservable();\n\n private dropDownKeyNavigationSubject = new Subject<{\n keyCode: number;\n data: ICaInput | null;\n }>();\n public dropDownKeyNavigation$: Observable<{\n keyCode: number;\n data: ICaInput | null;\n }> = this.dropDownKeyNavigationSubject.asObservable();\n\n private blurInputSubject = new Subject<boolean>();\n public blurInput$: Observable<boolean> = this.blurInputSubject.asObservable();\n\n public combinedVariables$ = combineLatest([\n this.isFocusInput$,\n this.isTouchedInput$,\n this.isVisibleCommands$,\n this.isEditInput$,\n this.isDropdownToggler$,\n ]);\n\n private cdRef!: ChangeDetectorRef;\n\n private inputConfig!: ICaInput;\n private incorrectValue!: boolean;\n\n private input!: ElementRef;\n private superControl!: NgControl;\n\n private inputCommandsTimeout!: NodeJS.Timeout | number;\n private focusBlur!: NodeJS.Timeout | number;\n private timeoutCleaner!: NodeJS.Timeout | number;\n\n constructor() {}\n\n public setIsFocusInput(value: boolean): void {\n this.isFocusInputSubject.next(value);\n }\n\n public setIsTouchedInput(value: boolean): void {\n this.isTouchedInputSubject.next(value);\n }\n\n public setIsVisibleCommands(value: boolean): void {\n this.isVisibleCommandsSubject.next(value);\n }\n\n public setIsEditInput(value: boolean): void {\n this.isEditInputSubject.next(value);\n }\n\n public setIsDropdownToggler(value: boolean): void {\n this.isDropdownTogglerSubject.next(value);\n }\n\n public setInputElementRef(input: ElementRef, cdRef: ChangeDetectorRef): void {\n this.input = input;\n this.cdRef = cdRef;\n }\n\n public setSuperControl(superControl: NgControl): void {\n this.superControl = superControl;\n }\n\n public setInputConfig(config: ICaInput): void {\n this.inputConfig = config;\n }\n\n public setIncorrectValue(incorrectValue: boolean): void {\n this.incorrectValue = incorrectValue;\n }\n\n public setCommandEvent(value: CommandsEvent): void {\n this.commandEventSubject.next(value);\n }\n\n public setClearInputEvent(value: boolean): void {\n this.clearInputEventSubject.next(value);\n }\n\n public setIncorrectInput(value: boolean): void {\n this.incorrectInputSubject.next(value);\n }\n\n public setShowHideDropdown(value: boolean): void {\n this.showHideDropdownSubject.next(value);\n }\n\n public setDropDownKeyNavigation(value: {\n keyCode: number;\n data: ICaInput | null;\n }): void {\n this.dropDownKeyNavigationSubject.next(value);\n }\n\n public setBlurInput(value: boolean): void {\n this.blurInputSubject.next(value);\n }\n\n public clearInput(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n // Clear whole input\n if (this.inputConfig.removeInput) {\n this.setClearInputEvent(true);\n return;\n }\n // Incorrect Input\n if (this.inputConfig.incorrectInput) {\n this.incorrectValue = !this.incorrectValue;\n this.setIncorrectInput(this.incorrectValue);\n }\n // Native clear\n else {\n this.input.nativeElement.value = null;\n this.superControl.control?.setValue(null);\n // this.numberOfConsecutivelySpaces = 0;\n // this.numberOfConsecutivelyPoints = 0;\n // this.numberOfPoints = 0;\n // this.oneSpaceOnlyCounter = 0;\n this.inputConfig.dropdownImageInput = undefined;\n this.setIsTouchedInput(true);\n this.setIsFocusInput(false);\n if (\n ['datepicker', 'timepicker', 'datepickerBankCard'].includes(\n this.inputConfig.name\n )\n ) {\n // this.resetDateTimeInputs();\n }\n\n this.setClearInputEvent(true);\n }\n }\n\n public transformText(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n\n if (value) {\n this.input.nativeElement.value = value;\n }\n\n switch (this.inputConfig.textTransform) {\n case 'capitalize': {\n this.input.nativeElement.value =\n this.input.nativeElement.value.charAt(0)?.toUpperCase() +\n this.input.nativeElement.value.substring(1).toLowerCase();\n this.superControl.control?.patchValue(this.input.nativeElement.value);\n break;\n }\n case 'uppercase': {\n this.input.nativeElement.value =\n this.input.nativeElement.value.toLocaleUpperCase('en-US');\n this.superControl.control?.patchValue(this.input.nativeElement.value);\n break;\n }\n default: {\n this.superControl.control?.patchValue(this.input.nativeElement.value);\n break;\n }\n }\n }\n\n public onCommands(event: Event, type: string, action: string): void {\n event.stopPropagation();\n event.preventDefault();\n\n switch (type) {\n case InputCommandsType.PM_INCREMENT_DECREMENT:\n this.handlePmIncrementDecrement(action);\n break;\n case InputCommandsType.CONFIRM_CANCEL:\n this.handleConfirmCancel(action);\n break;\n case InputCommandsType.MONTHS:\n this.handleMonths(action);\n break;\n default:\n break;\n }\n }\n\n private handlePmIncrementDecrement(action: string): void {\n const value = MethodsCalculationsHelper.convertThousanSepInNumber(\n this.superControl.control?.value\n );\n\n switch (action) {\n case InputCommandsAction.DECREMENT:\n this.decrementPmValue(value);\n break;\n case InputCommandsAction.INCREMENT:\n this.incrementPmValue(value);\n break;\n case InputCommandsAction.RESET:\n this.resetPmValue();\n break;\n default:\n break;\n }\n\n this.setInputCursorAtTheEnd(this.input.nativeElement);\n }\n\n private decrementPmValue(value: number): void {\n if (value >= 10000 && value < 20000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 1000)\n );\n } else if (value >= 20001 && value < 50000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 3000)\n );\n } else if (value >= 50001 && value < 100000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 5000)\n );\n } else if (value >= 10000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 10000)\n );\n } else if (value >= 1000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value - 500)\n );\n }\n }\n\n private incrementPmValue(value: number): void {\n if (value > 10000 && value < 20000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 1000)\n );\n } else if (value >= 20001 && value < 50000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 3000)\n );\n } else if (value >= 50001 && value < 100000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 5000)\n );\n } else if (value >= 10000) {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 10000)\n );\n } else {\n this.superControl.control?.patchValue(\n MethodsCalculationsHelper.convertNumberInThousandSep(value + 500)\n );\n }\n }\n\n private resetPmValue(): void {\n if (this.inputConfig?.defaultValue) {\n this.superControl.control?.patchValue(this.inputConfig?.defaultValue);\n }\n }\n\n private handleConfirmCancel(action: string): void {\n switch (action) {\n case InputCommandsAction.CONFIRM:\n this.confirmCommand();\n break;\n case InputCommandsAction.CANCEL:\n this.cancelCommand();\n break;\n default:\n break;\n }\n\n this.superControl.control?.setErrors(null);\n this.inputConfig.dropdownLabelNew = false;\n this.inputConfig.commands!.active = false;\n this.inputConfig.blackInput = false;\n this.setIsEditInput(false);\n this.setIsVisibleCommands(false);\n this.setIsFocusInput(false);\n }\n\n private confirmCommand(): void {\n this.setCommandEvent({\n data: this.superControl.control?.value,\n action: InputCommandsAction.CONFIRM,\n mode:\n !this.inputConfig.dropdownLabelNew &&\n this.inputConfig.name !== 'Input Dropdown Bank Name'\n ? 'edit'\n : 'new',\n });\n }\n\n private cancelCommand(): void {\n this.setCommandEvent({ action: InputCommandsAction.CANCEL });\n }\n\n private handleMonths(action: string): void {\n clearTimeout(this.inputCommandsTimeout);\n\n switch (action) {\n case InputCommandsAction.MINUS:\n this.decrementMonth();\n break;\n case InputCommandsAction.PLUS:\n this.incrementMonth();\n break;\n default:\n break;\n }\n\n if (\n parseInt(this.superControl.control?.value) < 1 ||\n parseInt(this.superControl.control?.value) > 12\n ) {\n this.superControl.control?.setErrors({ invalid: true });\n } else {\n this.superControl.control?.setErrors(null);\n }\n\n this.setInputCursorAtTheEnd(this.input.nativeElement);\n }\n\n private decrementMonth(): void {\n if (\n parseInt(this.superControl.control?.value) === 1 ||\n !this.superControl.control?.value\n ) {\n this.blurOnCommands();\n return;\n }\n\n this.superControl.control?.patchValue(\n (this.superControl.control?.value\n ? parseInt(this.superControl.control?.value)\n : 0) - 1\n );\n }\n\n private incrementMonth(): void {\n if (parseInt(this.superControl.control?.value) === 12) {\n this.blurOnCommands();\n return;\n }\n\n this.superControl.control?.patchValue(\n (this.superControl.control?.value\n ? parseInt(this.superControl.control?.value)\n : 0) + 1\n );\n }\n\n public onFocus(event?: FocusEvent) {\n // Dropdown\n if (this.inputConfig.isDropdown) {\n this.setIsDropdownToggler(true);\n this.setShowHideDropdown(this.isDropdownTogglerSubject.value);\n }\n\n // Commands\n if (this.inputConfig.commands && !this.inputConfig.isDisabled) {\n if (this.inputConfig.commands.type === InputCommandsType.MONTHS) {\n if (!this.inputConfig.blueInput) this.inputConfig.blackInput = true;\n this.inputConfig.commands.active = true;\n this.setIsVisibleCommands(true);\n }\n\n if (\n this.inputConfig.commands.type ===\n InputCommandsType.PM_INCREMENT_DECREMENT\n ) {\n this.inputConfig.blackInput = false;\n this.inputConfig.commands.active = true;\n this.setIsVisibleCommands(true);\n }\n }\n\n this.setIsFocusInput(true);\n }\n\n public onBlur(event?: FocusEvent): void {\n let selection = window.getSelection();\n selection?.removeAllRanges();\n\n // Input Commands\n if (this.inputConfig.commands) {\n this.blurOnCommands();\n }\n\n // Dropdown\n if (this.inputConfig.isDropdown || this.inputConfig.dropdownLabel) {\n if (\n (this.inputConfig.name === 'datepicker' ||\n this.inputConfig.name === 'timepicker' ||\n this.inputConfig.name === 'datepickerBankCard') &&\n !this.inputConfig.isDisabled\n ) {\n // if (event?.target?.nodeName === 'INPUT') {\n // return;\n // }\n // Datepicker\n // if (\n // this.inputConfig.name === 'datepicker' ||\n // this.inputConfig.name === 'timepicker' ||\n // this.inputConfig.name === 'datepickerBankCard'\n // ) {\n // this.focusBlur = setTimeout(() => {\n // this.blurOnDateTime();\n // }, 100);\n // } else {\n // this.focusInput = false;\n // }\n } else {\n this.blurOnDropDownArrow();\n }\n }\n\n // Password\n if (this.inputConfig.type === 'password') {\n // this.blurOnPassword();\n }\n // Normal focus out\n else {\n this.setIsFocusInput(false);\n }\n\n this.setBlurInput(true);\n this.setIsTouchedInput(true);\n }\n\n private blurOnCommands() {\n this.inputCommandsTimeout = setTimeout(() => {\n this.inputConfig.commands!.active = false;\n this.setIsVisibleCommands(false);\n this.inputConfig.blackInput = false;\n this.cdRef.detectChanges();\n }, 200);\n }\n\n private blurOnDropDownArrow() {\n this.timeoutCleaner = setTimeout(() => {\n this.setIsDropdownToggler(false);\n this.setIsFocusInput(false);\n\n this.setIsDropdownToggler(false);\n this.setIsFocusInput(false);\n this.setShowHideDropdown(this.isDropdownTogglerSubject.value);\n }, 150);\n }\n\n public setInputCursorAtTheEnd(input: any, time: number = 120): void {\n const selectionEnd = input.selectionEnd;\n if (input.setSelectionRange) {\n input.setSelectionRange(selectionEnd, selectionEnd);\n }\n setTimeout(() => {\n input.focus();\n }, time);\n }\n\n public onEditInput(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.setIsEditInput(true);\n this.inputConfig.dropdownLabelNew = false;\n if (!this.inputConfig.blueInput) this.inputConfig.blackInput = true;\n this.inputConfig.commands!.active = true;\n this.setIsVisibleCommands(true);\n this.setIsFocusInput(true);\n\n this.setInputCursorAtTheEnd(this.input.nativeElement);\n this.superControl.control?.setErrors({ required: true });\n\n this.setCommandEvent({\n data: this.superControl.control?.value,\n action: 'Edit Input',\n });\n }\n\n public toggleDropdownOptions() {\n if (this.inputConfig.isDisabled) {\n return;\n }\n\n // if (\n // this.inputConfig.name === 'datepicker' ||\n // this.inputConfig.name === 'timepicker' ||\n // this.inputConfig.name === 'datepickerBankCard'\n // ) {\n // if (this.t2) {\n // if (!this.t2.isOpen()) {\n // clearTimeout(this.dateTimeMainTimer);\n // clearTimeout(this.focusBlur);\n // this.holder1.nativeElement.focus();\n // this.selectionInput = -1;\n // this.setSpanSelection(this.holder1.nativeElement);\n // this.t2.open();\n // } else {\n // this.holder1.nativeElement.blur();\n // this.focusInput = false;\n // let selection = window.getSelection();\n // selection.removeAllRanges();\n // }\n // return;\n // }\n // }\n\n this.setIsDropdownToggler(!this.isDropdownTogglerSubject.value);\n\n this.setShowHideDropdown(this.isDropdownTogglerSubject.value);\n\n if (this.isDropdownTogglerSubject.value) {\n this.input.nativeElement.focus();\n this.setIsFocusInput(true);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ICaInput } from '../config/ca-input.config';\n\n@Pipe({\n name: 'showDropdownArrow',\n standalone: true,\n})\nexport class ShowDropdownArrowPipe implements PipeTransform {\n transform(inputConfig: ICaInput): boolean {\n return (\n (!inputConfig.hideDropdownArrow &&\n (inputConfig.isDropdown || inputConfig.dropdownLabel) &&\n !inputConfig.multiSelectDropdownActive &&\n !inputConfig.isDisabled) ||\n ((inputConfig.name === 'datepicker' ||\n inputConfig.name === 'timepicker' ||\n inputConfig.name === 'datepickerBankCard') &&\n !inputConfig.incorrectInput &&\n !inputConfig.isDisabled)\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Self,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { combineLatest, Observable, Subject, takeUntil } from 'rxjs';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { ICaInput } from './config/ca-input.config';\nimport { CommandsEvent } from './models/commands-event.model';\nimport { LabelColor } from './models/label-color.model';\n\n// pipes\nimport { InputClassPipe } from './pipes/input-class.pipe';\nimport { InputContainerClassPipe } from './pipes/input-container-class.pipe';\nimport { InputErrorPipe } from './pipes/input-error.pipe';\nimport { InputTypePipe } from './pipes/input-type.pipe';\nimport { LabelClassPipe } from './pipes/label-class.pipe';\nimport { ShowClearPipe } from './pipes/show-clear.pipe';\nimport { ShowInvalidDangerMarkPipe } from './pipes/show-invalid-danger-mark.pipe';\nimport { ShowValidCheckPipe } from './pipes/show-valid-check.pipe';\nimport { InputDropdownArrowClassPipe } from './pipes/input-dropdown-arrow-class.pipe';\nimport { CaSvgPipe } from '../../pipes/ca-svg.pipe';\n\n// components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputClearComponent } from './components/ca-input-clear/ca-input-clear.component';\nimport { CaInputCommandsComponent } from './components/ca-input-commands/ca-input-commands.component';\nimport { CaInputPasswordComponent } from './components/ca-input-password/ca-input-password.component';\nimport { CaInputPlaceholderIconComponent } from './components/ca-input-placeholder-icon/ca-input-placeholder-icon.component';\n\n// services\nimport { InputStateService } from './services/ca-input-state.service';\n\n// helpers\nimport { InputSvgRoutes } from './utils/input-svg-routes';\n\n// modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ShowDropdownArrowPipe } from './pipes/show-dropdown-arrow.pipe';\n\n@Component({\n selector: 'app-ca-input',\n templateUrl: './ca-input.component.html',\n styleUrls: ['./ca-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n // Module\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AngularSvgIconModule,\n NgbModule,\n\n // Pipe\n InputErrorPipe,\n InputContainerClassPipe,\n InputClassPipe,\n LabelClassPipe,\n ShowClearPipe,\n ShowInvalidDangerMarkPipe,\n ShowValidCheckPipe,\n InputTypePipe,\n InputDropdownArrowClassPipe,\n ShowDropdownArrowPipe,\n CaSvgPipe,\n\n // Components\n CaInputClearComponent,\n CaAppTooltipV2Component,\n CaInputPasswordComponent,\n CaInputPlaceholderIconComponent,\n CaInputCommandsComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers: [InputStateService],\n})\nexport class CaInputComponent\n implements OnInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n @ViewChild('input', { static: true }) public input!: ElementRef;\n\n @Input() inputConfig!: ICaInput;\n\n @Input() incorrectValue!: boolean;\n @Input() selectedDropdownLabelColor!: LabelColor;\n @Input() template!: string;\n\n @Output('incorrectEvent') incorrectInput: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('blurInput') blurInput: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('focusInput') focusInputEvent: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('change') changeInput: EventEmitter<any> = new EventEmitter<any>();\n @Output('commandEvent') commandEvent: EventEmitter<CommandsEvent> =\n new EventEmitter<CommandsEvent>();\n @Output('clear') clearInputEvent: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n // Dropdown\n @Output('showHideDropdown') showHideDropdownEvent: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n @Output('dropDownKeyNavigation') dropDownKeyNavigationEvent: EventEmitter<{\n keyCode: number;\n data: ICaInput | null;\n }> = new EventEmitter<{\n keyCode: number;\n data: ICaInput | null;\n }>();\n\n public isTouchedInput: boolean = false;\n\n // Input Commands\n public isVisibleCommands: boolean = false;\n\n // Edit Input\n public isEditInput: boolean = false;\n\n // Password\n public isTogglePassword: boolean = false;\n public isCapsLockOn: boolean = false;\n\n // Dropdown\n public isDropdownToggler: boolean = false;\n\n // Destroy\n private destroy$: Subject<void> = new Subject<void>();\n public isFocusInput!: boolean;\n\n constructor(\n @Self() public superControl: NgControl,\n private cdRef: ChangeDetectorRef,\n private inputStateService: InputStateService\n ) {\n this.superControl.valueAccessor = this;\n }\n\n get getSuperControl() {\n return this.superControl.control;\n }\n\n ngOnInit(): void {\n this.initChangesListener();\n\n this.initStateService();\n\n this.outputListeners();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.setStateInputs(changes);\n }\n\n public initStateService(): void {\n this.inputStateService.setSuperControl(this.superControl);\n this.inputStateService.setInputElementRef(this.input, this.cdRef);\n\n this.inputStateService.combinedVariables$\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n ([\n focus,\n touched,\n isVisibleCommands,\n isEditInput,\n isDropdownToggler,\n ]) => {\n this.isFocusInput = focus;\n this.isTouchedInput = touched;\n this.isVisibleCommands = isVisibleCommands;\n this.isEditInput = isEditInput;\n this.isDropdownToggler = isDropdownToggler;\n }\n );\n }\n\n public outputListeners(): void {\n const observables: {\n stream$: Observable<any>;\n emitter: EventEmitter<any>;\n }[] = [\n {\n stream$: this.inputStateService.commandEvent$,\n emitter: this.commandEvent,\n },\n {\n stream$: this.inputStateService.clearInputEvent$,\n emitter: this.clearInputEvent,\n },\n {\n stream$: this.inputStateService.incorrectInput$,\n emitter: this.incorrectInput,\n },\n {\n stream$: this.inputStateService.blurInput$,\n emitter: this.blurInput,\n },\n {\n stream$: this.inputStateService.showHideDropdown$,\n emitter: this.showHideDropdownEvent,\n },\n {\n stream$: this.inputStateService.dropDownKeyNavigation$,\n emitter: this.dropDownKeyNavigationEvent,\n },\n ];\n\n observables.forEach(({ stream$, emitter }) =>\n stream$\n .pipe(takeUntil(this.destroy$))\n .subscribe((value: any) => emitter.emit(value))\n );\n }\n\n public initChangesListener(): void {\n const combinedChanges = combineLatest([\n this.getSuperControl?.valueChanges,\n this.getSuperControl?.statusChanges,\n ]);\n\n combinedChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.cdRef.detectChanges();\n });\n }\n\n public setStateInputs(changes: SimpleChanges): void {\n this.inputStateService.setInputConfig(changes['inputConfig']?.currentValue);\n this.inputStateService.setIncorrectValue(\n changes['incorrectValue']?.currentValue\n );\n }\n\n public writeValue(obj: any): void {\n this.changeInput.emit(obj);\n this.input.nativeElement.value = obj;\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public onChange(_: any): void {}\n\n public registerOnTouched(): void {}\n\n public onBlur(event?: FocusEvent): void {\n this.inputStateService.onBlur(event);\n\n this.blurInput.emit(true);\n }\n\n public onFocus(event?: FocusEvent): void {\n this.focusInputEvent.emit(true);\n\n this.inputStateService.onFocus(event);\n }\n\n public onKeydown(event: KeyboardEvent): void {\n this.isCapsLockOn = event?.getModifierState?.('CapsLock');\n\n if (event.keyCode === 9) {\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n }\n\n public onKeyup(event: KeyboardEvent): void {\n if (event) {\n this.isCapsLockOn = event?.getModifierState?.('CapsLock');\n }\n\n if (\n this.inputConfig.isDropdown ||\n this.inputConfig.dropdownLabel ||\n this.inputConfig.name == 'Address'\n ) {\n if (event.keyCode === 40 || event.keyCode === 38) {\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n if (event.keyCode === 13) {\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: this.inputConfig,\n });\n\n if (this.inputConfig.name == 'Address') {\n this.input.nativeElement.blur();\n }\n }\n if (event.keyCode === 27) {\n this.isVisibleCommands = false;\n this.onBlur();\n this.input.nativeElement.blur();\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n if (event.keyCode === 9) {\n this.onFocus();\n this.input.nativeElement.focus();\n this.dropDownKeyNavigationEvent.emit({\n keyCode: event.keyCode,\n data: null,\n });\n }\n }\n }\n\n public transformText(event: Event): void {\n this.inputStateService.transformText(event);\n }\n\n public clearInput(event: Event): void {\n this.inputStateService.clearInput(event);\n }\n\n public onTogglePassword(event: Event): void {\n event.preventDefault();\n this.isTogglePassword = !this.isTogglePassword;\n }\n\n public onCommands(event: {\n event: Event;\n type: string;\n action: string;\n }): void {\n this.inputStateService.onCommands(event.event, event.type, event.action);\n }\n\n public onEditInput(event: Event): void {\n this.inputStateService.onEditInput(event);\n }\n\n public toggleDropdownOptions(): void {\n this.inputStateService.toggleDropdownOptions();\n }\n\n public getSvgPath(propertyName: keyof typeof InputSvgRoutes): string {\n return InputSvgRoutes[propertyName] as string;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"input-custom-group {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputContainerClass\n : isFocusInput\n : isTouchedInput\n : inputConfig\n : getSuperControl?.value\n \"\n>\n <!-- Input Commands -->\n <ng-container *ngIf=\"inputConfig.commands?.active && isVisibleCommands\">\n <app-ca-input-commands\n [inputConfig]=\"inputConfig\"\n [isFocusInput]=\"isFocusInput\"\n [isVisibleCommands]=\"isVisibleCommands\"\n (onCommandsClick)=\"onCommands($event)\"\n >\n </app-ca-input-commands>\n </ng-container>\n\n <input\n #input\n [type]=\"inputConfig.type | inputType: isTogglePassword\"\n [id]=\"inputConfig.id ? inputConfig.id : inputConfig.name\"\n [name]=\"inputConfig.name\"\n [disabled]=\"inputConfig.isDisabled\"\n [autocomplete]=\"inputConfig.autocomplete ? inputConfig.autocomplete : 'off'\"\n [placeholder]=\"\n (inputConfig.placeholderInsteadOfLabel &&\n inputConfig.placeholder &&\n isFocusInput\n ? inputConfig.placeholder\n : '') ||\n (inputConfig.placeholder && isFocusInput ? inputConfig.placeholder : '')\n \"\n [minLength]=\"inputConfig.minLength ? inputConfig.minLength : 0\"\n [maxLength]=\"inputConfig.maxLength ? inputConfig.maxLength : 999\"\n [min]=\"inputConfig.min ? inputConfig.min : 0\"\n [max]=\"inputConfig.max\"\n [step]=\"inputConfig.step ? inputConfig.step : null\"\n [readOnly]=\"inputConfig.readOnly\"\n inputformat=\"dd-mm-yy\"\n class=\"input-control\n {{ inputConfig.textTransform }}\n {{ inputConfig.textAlign }}\n {{ inputConfig.customClass }}\n \"\n [ngClass]=\"\n getSuperControl\n | inputClass\n : isFocusInput\n : isTouchedInput\n : inputConfig\n : input\n : isVisibleCommands\n : getSuperControl?.value\n : isDropdownToggler\n : isEditInput\n : template\n \"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\"\n (input)=\"onChange($event.target); transformText($event)\"\n [(ngModel)]=\"input.value\"\n />\n\n <!-- Input Label -->\n <ng-container *ngIf=\"!inputConfig.multiSelectDropdownActive\">\n <label\n [for]=\"inputConfig.name\"\n class=\"input-label {{ inputConfig.customClass }} {{\n inputConfig.multipleLabel?.customClass\n }}\"\n [ngClass]=\"\n getSuperControl?.value | labelClass: isFocusInput : inputConfig\n \"\n >\n <ng-container *ngIf=\"inputConfig.label\">\n <span>{{ inputConfig.label }} </span>\n </ng-container>\n </label>\n </ng-container>\n\n <!-- Input Clear -->\n <ng-container *ngIf=\"inputConfig | showClear\">\n <app-ca-input-clear\n [inputConfig]=\"inputConfig\"\n [getSuperControl]=\"getSuperControl\"\n [isFocusInput]=\"isFocusInput\"\n [incorrectValue]=\"incorrectValue\"\n [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n (clearInputClick)=\"clearInput($event)\"\n >\n </app-ca-input-clear>\n </ng-container>\n\n <!-- Input Clear for dispatch dropdown -->\n <ng-container *ngIf=\"template === 'svgtext-dispatch-template'\">\n <div\n class=\"input-clear-dispatch\"\n position=\"top\"\n (click)=\"clearInput($event)\"\n >\n <svg-icon\n [src]=\"getSvgPath('xClearSvg')\"\n class=\"input-clear-dispatch-icon\"\n ></svg-icon>\n </div>\n </ng-container>\n\n <!-- Input Pen -->\n <ng-container\n *ngIf=\"\n selectedDropdownLabelColor &&\n !isEditInput &&\n !isFocusInput &&\n getSuperControl?.value\n \"\n >\n <div\n class=\"input-pen-container\"\n ngbTooltip\n [mainTooltip]=\"'Edit'\"\n [tooltipBackground]=\"'#2F2F2F'\"\n position=\"top\"\n (click)=\"onEditInput($event)\"\n >\n <svg-icon [src]=\"getSvgPath('inputPenSvg')\" class=\"input-pen\"></svg-icon>\n </div>\n </ng-container>\n\n <!-- Input Invalid Danger Mark -->\n <ng-container\n *ngIf=\"\n inputConfig\n | showInvalidDangerMark\n : getSuperControl\n : isFocusInput\n : isTouchedInput\n : getSuperControl?.value\n \"\n >\n <svg-icon\n class=\"input-invalid-danger-mark {{ inputConfig.customClass }}\"\n [src]=\"getSvgPath('dangerSvg')\"\n >\n </svg-icon>\n </ng-container>\n\n <!-- Input Valid Check -->\n <ng-container\n *ngIf=\"\n getSuperControl\n | showValidCheck: isFocusInput : inputConfig : getSuperControl?.value\n \"\n >\n <svg-icon\n class=\"input-required-check {{ inputConfig.customClass }}\"\n [src]=\"getSvgPath('confirmSvg')\"\n ></svg-icon>\n </ng-container>\n\n <!-- Input Password Caps Lock And Eye -->\n <ng-container *ngIf=\"inputConfig.type === 'password'\">\n <app-ca-input-password\n [inputConfig]=\"inputConfig\"\n [getSuperControl]=\"getSuperControl\"\n [isFocusInput]=\"isFocusInput\"\n [isTouchedInput]=\"isTouchedInput\"\n [isCapsLockOn]=\"isCapsLockOn\"\n [isTogglePassword]=\"isTogglePassword\"\n (onTogglePasswordClick)=\"onTogglePassword($event)\"\n >\n </app-ca-input-password>\n </ng-container>\n\n <!-- Input Dropdown Arrow -->\n <ng-container *ngIf=\"inputConfig | showDropdownArrow\">\n <svg-icon\n class=\"input-dropdown-arrow {{ inputConfig.customClass }}\"\n [ngClass]=\"\n getSuperControl\n | inputDropdownArrowClass\n : isFocusInput\n : inputConfig\n : isTouchedInput\n : getSuperControl?.value\n \"\n [src]=\"getSvgPath('inputDropdownArrowSvg')\"\n (click)=\"toggleDropdownOptions()\"\n ></svg-icon>\n </ng-container>\n\n <!-- Input Placeholder Icon -->\n <ng-container *ngIf=\"inputConfig.placeholderIcon\">\n <app-ca-input-placeholder-icon\n [inputConfig]=\"inputConfig\"\n [getSuperControl]=\"getSuperControl\"\n [isFocusInput]=\"isFocusInput\"\n [isTouchedInput]=\"isTouchedInput\"\n [selectedDropdownLabelColor]=\"selectedDropdownLabelColor\"\n >\n </app-ca-input-placeholder-icon>\n </ng-container>\n\n <!-- Input Error Message -->\n <ng-container\n *ngIf=\"\n !inputConfig.hideErrorMessage &&\n !(!getSuperControl?.value && isFocusInput) &&\n (isTouchedInput || getSuperControl?.touched || getSuperControl?.value) &&\n getSuperControl?.invalid &&\n !inputConfig.isInvalidSearchInDropdown &&\n !inputConfig.isDisabled\n \"\n >\n <span class=\"input-error {{ inputConfig.customClass }}\">\n {{ getSuperControl?.errors | inputError: inputConfig.name }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"inputConfig.fixedPlacholder && input.value\">\n <span class=\"input-fixed-placehoder-label\">\n {{ inputConfig.fixedPlacholder }}\n </span>\n </ng-container>\n</div>\n","import { Subject, takeUntil } from 'rxjs';\nimport {\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n OnDestroy,\n} from '@angular/core';\nimport {\n FormsModule,\n UntypedFormBuilder,\n UntypedFormGroup,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// modules\nimport { AngularSvgIconModule as SvgIconModule } from 'angular-svg-icon';\nimport { NgbDropdownConfig, NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { ThousandSeparatorPipe as ThousandSeparator } from '../../../../pipes/thousand-separator.pipe';\nimport { CaSvgPipe as CaSvg } from '../../../../pipes/ca-svg.pipe';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { closeForm } from '../../../../animations/close-form.animation';\nimport { CaMoneyFilterSvgRoutes } from '../../utils/svg-routes/ca-money-filter-svg-routes';\n\n// enums\nimport { ToolbarFilterStringEnum as ToolbarFilterString } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { MoneyFilterStringEnum } from './enums/money-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// configs\nimport { CaMoneyFilterConfig } from './config/ca-money-filter.config';\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\n\n@Component({\n selector: 'app-ca-money-filter',\n standalone: true,\n imports: [\n // modules\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgbModule,\n HttpClientModule,\n SvgIconModule,\n CaInputComponent,\n ],\n templateUrl: './ca-money-filter.component.html',\n styleUrls: ['./ca-money-filter.component.scss'],\n providers: [NgbDropdownConfig, ThousandSeparator, CaSvg],\n encapsulation: ViewEncapsulation.None,\n animations: [showAnimation('showAnimation'), closeForm('closeForm')],\n})\nexport class CaMoneyFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() subType: string = ToolbarFilterString.PENDING_STATUS;\n @Input() moneyFilter: boolean = true;\n @Input() fuelType: boolean = false;\n @Input() loadType: boolean = true;\n @Input() isRepairFilter: boolean = false;\n @Input() isFilterActive: boolean = false;\n\n private destroy$ = new Subject<void>();\n\n public showPart1: boolean = true;\n public showPart2: boolean = true;\n public showPart3: boolean = true;\n public moneyForm!: UntypedFormGroup;\n\n public singleFormError!: string | boolean;\n public multiFormFirstError!: string | boolean;\n public multiFormSecondError!: string | boolean;\n public multiFormThirdError!: string | boolean;\n public moneyFilterStatus: boolean = false;\n public isButtonAvailable: boolean = false;\n\n public singleFromActive: number | string = 0;\n public singleToActive: number | string = 0;\n public multiFromFirstFromActive: number | string = 0;\n public multiFromFirstToActive: number | string = 0;\n public multiFormSecondFromActive: number | string = 0;\n public multiFormSecondToActive: number | string = 0;\n public multiFormThirdFromActive: number | string = 0;\n public multiFormThirdToActive: number | string = 0;\n\n public minValueRange: string = ToolbarFilterString.MIN_VALUE;\n public maxValueRange: string = ToolbarFilterString.MAX_VALUE;\n\n public activeFormNum: number = 0;\n public minValueSet: string = ToolbarFilterString.MIN_VALUE;\n public maxValueSet: string = ToolbarFilterString.MAX_VALUE;\n\n public filterActiveArray: ArrayStatus[] = [];\n public swipeActiveRange: number = 0;\n public totalFiltersNum: number = 0;\n public isSingleFormActive: boolean = false;\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n\n // pipes\n private thousandSeparator: ThousandSeparator\n ) {}\n\n ngOnInit(): void {\n this.createForm();\n this.watchMoneyFormValueChanges();\n }\n\n get singleFormFrom(): ICaInput {\n return CaMoneyFilterConfig.getSingleFormFrom();\n }\n\n get singleFormTo(): ICaInput {\n return CaMoneyFilterConfig.getSingleFormTo();\n }\n\n get multiFormFirstFrom(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormFirstFrom();\n }\n\n get multiFormFirstTo(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormFirstTo();\n }\n\n get multiFormSecondFrom(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormSecondFrom();\n }\n\n get multiFormSecondTo(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormSecondTo();\n }\n\n get multiFormThirdFrom(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormThirdFrom();\n }\n\n get multiFormThirdTo(): ICaInput {\n return CaMoneyFilterConfig.getMultiFormThirdTo();\n }\n\n private createForm(): void {\n this.moneyForm = this.formBuilder.group({\n singleFrom: null,\n singleTo: null,\n multiFromFirstFrom: null,\n multiFromFirstTo: null,\n multiFormSecondFrom: null,\n multiFormSecondTo: null,\n multiFormThirdFrom: null,\n multiFormThirdTo: null,\n });\n }\n\n private watchMoneyFormValueChanges(): void {\n this.type = ToolbarFilterString.MONEY_FILTER;\n this.moneyForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((changes) => {\n if (changes.singleFrom || changes.singleTo) {\n if (changes.singleTo) {\n const to = parseInt(changes.singleTo);\n const from = parseInt(changes.singleFrom);\n if (from > to || from === to) {\n this.singleFormError = true;\n } else {\n this.singleFormError = false;\n }\n } else {\n this.singleFormError = false;\n }\n } else {\n this.singleFormError = false;\n }\n\n if (changes.multiFromFirstFrom || changes.multiFromFirstTo) {\n if (changes.multiFromFirstTo) {\n const to = parseInt(changes.multiFromFirstTo);\n const from = parseInt(changes.multiFromFirstFrom);\n\n if (from > to || from === to) {\n this.multiFormFirstError = true;\n } else {\n this.multiFormFirstError = false;\n }\n } else {\n this.multiFormFirstError = false;\n }\n } else {\n this.multiFormFirstError = false;\n }\n\n if (changes.multiFormSecondFrom || changes.multiFormSecondTo) {\n if (changes.multiFormSecondTo) {\n const to = parseInt(changes.multiFormSecondTo);\n const from = parseInt(changes.multiFormSecondFrom);\n\n if (from > to || from === to) {\n this.multiFormSecondError = true;\n } else {\n this.multiFormSecondError = false;\n }\n } else {\n this.multiFormSecondError = false;\n }\n }\n\n if (changes.multiFormThirdFrom || changes.multiFormThirdTo) {\n if (changes.multiFormThirdTo) {\n const to = parseInt(changes.multiFormThirdTo);\n const from = parseInt(changes.multiFormThirdFrom);\n if (from > to || from === to) {\n this.multiFormThirdError = true;\n } else {\n this.multiFormThirdError = false;\n }\n } else {\n this.multiFormThirdError = false;\n }\n }\n\n if (this.subType !== ToolbarFilterString.ALL) {\n let toValueChanged = true;\n let fromValueChanged = true;\n\n const fromActive =\n this.singleFromActive && this.singleFromActive != 'null'\n ? this.singleFromActive\n : 0;\n const toActive =\n this.singleToActive && this.singleToActive != 'null'\n ? this.singleToActive\n : 0;\n\n let to = 0;\n if (changes.singleTo) {\n to = parseInt(changes.singleTo);\n }\n\n let from = 0;\n if (changes.singleFrom) {\n from = parseInt(changes.singleFrom);\n }\n\n if (toActive === to) {\n toValueChanged = false;\n }\n\n if (fromActive === from) {\n fromValueChanged = false;\n }\n\n if (toValueChanged || fromValueChanged) {\n this.isButtonAvailable = true;\n this.moneyFilterStatus = true;\n } else {\n this.isButtonAvailable = false;\n if (!to && !from) {\n this.moneyFilterStatus = false;\n }\n }\n } else {\n if (\n !this.multiFormFirstError &&\n !this.multiFormSecondError &&\n !this.multiFormThirdError\n ) {\n this.moneyFilterStatus = true;\n this.checkMoneyMultiForm(changes);\n } else {\n this.isButtonAvailable = false;\n }\n\n if (\n this.multiFormFirstError ||\n this.multiFormSecondError ||\n this.multiFormThirdError\n ) {\n this.isButtonAvailable = false;\n }\n }\n\n if (this.singleFormError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.SINGLE_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.setErrors(null);\n }\n\n if (this.multiFormFirstError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)\n ?.setErrors(null);\n }\n\n if (this.multiFormSecondError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)\n ?.setErrors(null);\n }\n\n if (this.multiFormThirdError) {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)\n ?.setErrors({ invalid: true });\n } else {\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)\n ?.setErrors(null);\n }\n });\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n switch (this.type) {\n case ToolbarFilterString.MONEY_FILTER:\n if (!this.isRepairFilter) {\n if (this.subType !== ToolbarFilterString.ALL) {\n this.clearForm(MoneyFilterStringEnum.SINGLE_FORM);\n } else {\n this.clearForm(MoneyFilterStringEnum.CLEAR_ALL);\n }\n } else {\n const maxNum = this.thousandSeparator.transform(this.maxValueRange);\n\n this.maxValueSet = maxNum;\n this.minValueSet = this.minValueRange;\n }\n this.activeFormNum = 0;\n break;\n case ToolbarFilterString.MILES_FILTER:\n case ToolbarFilterString.PAY_FILTER:\n case ToolbarFilterString.MONEY_FILTER:\n if (\n this.type === ToolbarFilterString.MONEY_FILTER &&\n !this.isRepairFilter\n ) {\n break;\n }\n const maxNum = this.thousandSeparator.transform(this.maxValueRange);\n\n this.maxValueSet = maxNum;\n this.minValueSet = this.minValueRange;\n break;\n default:\n break;\n }\n\n this.isButtonAvailable = true;\n this.moneyFilterStatus = false;\n this.filterActiveArray = [];\n this.swipeActiveRange = 0;\n this.totalFiltersNum = 0;\n this.isSingleFormActive = false;\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public hideFormPart(mod: string): void {\n if (mod === 'part1') {\n this.showPart1 = !this.showPart1;\n } else if (mod === 'part2') {\n this.showPart2 = !this.showPart2;\n } else {\n this.showPart3 = !this.showPart3;\n }\n }\n\n public clearForm(mod: string, event?: MouseEvent): void {\n event?.stopPropagation();\n switch (mod) {\n case MoneyFilterStringEnum.SINGLE_FORM:\n this.moneyForm\n .get(MoneyFilterStringEnum.SINGLE_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.SINGLE_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.singleFormError = false;\n this.moneyFilterStatus = false;\n this.singleToActive = 0;\n this.singleFromActive = 0;\n this.isButtonAvailable = false;\n break;\n case MoneyFilterStringEnum.MULTI_FROM_FIRST:\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.multiFormFirstError = false;\n break;\n case MoneyFilterStringEnum.MULTI_FORM_SECOND:\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.multiFormSecondError = false;\n break;\n case MoneyFilterStringEnum.MULTI_FORM_THIRD:\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.moneyForm\n .get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)\n ?.setValue(ToolbarFilterString.EMPTY_STRING_PLACEHOLDER);\n this.multiFormThirdError = false;\n break;\n case MoneyFilterStringEnum.CLEAR_ALL:\n this.multiFromFirstFromActive = 0;\n this.multiFromFirstToActive = 0;\n this.multiFormSecondFromActive = 0;\n this.multiFormSecondToActive = 0;\n this.multiFormThirdFromActive = 0;\n this.multiFormThirdToActive = 0;\n this.moneyForm.reset();\n this.multiFormFirstError = false;\n this.multiFormSecondError = false;\n this.multiFormThirdError = false;\n break;\n default:\n break;\n }\n }\n\n public setFilterValue(\n event: Event | undefined\n ): filterOutput | filterOutputWithParams | undefined {\n let queryParams = {};\n let subType = ToolbarFilterString.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n if (this.type === ToolbarFilterString.TIME_FILTER) {\n } else if (\n this.type === ToolbarFilterString.MONEY_FILTER &&\n !this.isRepairFilter\n ) {\n if (this.subType === ToolbarFilterString.ALL) {\n this.multiFromFirstFromActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM)?.value\n ).slice(1);\n this.multiFromFirstToActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)?.value\n ).slice(1);\n this.multiFormSecondFromActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM)\n ?.value\n ).slice(1);\n this.multiFormSecondToActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)?.value\n ).slice(1);\n this.multiFormThirdFromActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM)?.value\n ).slice(1);\n this.multiFormThirdToActive = (\n ' ' +\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)?.value\n ).slice(1);\n\n queryParams = {\n firstFormFrom: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM\n )?.value,\n firstFormTo: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FROM_FIRST_TO\n )?.value,\n secondFormFrom: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM\n )?.value,\n secondFormTo: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_SECOND_TO\n )?.value,\n thirdFormFrom: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM\n )?.value,\n thirdFormTo: this.moneyForm.get(\n MoneyFilterStringEnum.MULTI_FORM_THIRD_TO\n )?.value,\n };\n\n let formsActive = 0;\n\n if (\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_FROM)\n ?.value ||\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FROM_FIRST_TO)?.value\n ) {\n formsActive = formsActive + 1;\n }\n\n if (\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_FROM)\n ?.value ||\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_SECOND_TO)?.value\n ) {\n formsActive = formsActive + 1;\n }\n\n if (\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_FROM)\n ?.value ||\n this.moneyForm.get(MoneyFilterStringEnum.MULTI_FORM_THIRD_TO)?.value\n ) {\n formsActive = formsActive + 1;\n }\n\n this.activeFormNum = formsActive;\n this.totalFiltersNum = formsActive;\n } else {\n this.singleFromActive = (\n ' ' + this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)?.value\n ).slice(1);\n this.singleToActive = (\n ' ' + this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n ).slice(1);\n\n if (\n !this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)?.value &&\n !this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n ) {\n this.clearAll(event);\n return;\n }\n\n this.isSingleFormActive = true;\n queryParams = {\n singleFrom: this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)\n ?.value\n ? parseInt(\n this.moneyForm.get(MoneyFilterStringEnum.SINGLE_FROM)?.value\n )\n : ToolbarFilterString.EMPTY_STRING_PLACEHOLDER,\n singleTo: this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n ? parseInt(\n this.moneyForm.get(MoneyFilterStringEnum.SINGLE_TO)?.value\n )\n : ToolbarFilterString.EMPTY_STRING_PLACEHOLDER,\n };\n }\n }\n\n const action = 'Set';\n const data: filterOutput | filterOutputWithParams = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n return data;\n }\n\n public checkMoneyMultiForm(data: {\n singleForm: string;\n singleTo: string;\n multiFromFirstFrom: string;\n multiFromFirstTo: string;\n multiFormSecondFrom: string;\n multiFormSecondTo: string;\n multiFormThirdFrom: string;\n multiFormThirdTo: string;\n }): void {\n let firstFormChanged = 'none';\n let secondFormChanged = 'none';\n let thirdFormChanged = 'none';\n\n const firstFromActive =\n this.multiFromFirstFromActive && this.multiFromFirstFromActive !== 'null'\n ? this.multiFromFirstFromActive\n : 0;\n const firstToActive =\n this.multiFromFirstToActive && this.multiFromFirstToActive != 'null'\n ? this.multiFromFirstToActive\n : 0;\n\n const secFromActive =\n this.multiFormSecondFromActive &&\n this.multiFormSecondFromActive !== 'null'\n ? this.multiFormSecondFromActive\n : 0;\n const secToActive =\n this.multiFormSecondToActive && this.multiFormSecondToActive !== 'null'\n ? this.multiFormSecondToActive\n : 0;\n\n const thirdFromActive =\n this.multiFormThirdFromActive && this.multiFormThirdFromActive !== 'null'\n ? this.multiFormThirdFromActive\n : 0;\n const thirdToActive =\n this.multiFormThirdToActive && this.multiFormThirdToActive !== 'null'\n ? this.multiFormThirdToActive\n : 0;\n\n const firstFrom =\n data.multiFromFirstFrom && data.multiFromFirstFrom !== 'null'\n ? parseInt(data.multiFromFirstFrom)\n : 0;\n const firstTo =\n data.multiFromFirstTo && data.multiFromFirstTo !== 'null'\n ? parseInt(data.multiFromFirstTo)\n : 0;\n\n const secFrom =\n data.multiFormSecondFrom && data.multiFormSecondFrom !== 'null'\n ? parseInt(data.multiFormSecondFrom)\n : 0;\n const secTo =\n data.multiFormSecondTo && data.multiFormSecondTo !== 'null'\n ? parseInt(data.multiFormSecondTo)\n : 0;\n\n const thirdFrom =\n data.multiFormThirdFrom && data.multiFormThirdFrom !== 'null'\n ? parseInt(data.multiFormThirdFrom)\n : 0;\n const thirdTo =\n data.multiFormThirdTo && data.multiFormThirdTo !== 'null'\n ? parseInt(data.multiFormThirdTo)\n : 0;\n\n if (firstFrom !== firstFromActive || firstTo !== firstToActive) {\n firstFormChanged = 'changed';\n }\n\n if (secFrom !== secFromActive || secTo !== secToActive) {\n secondFormChanged = 'changed';\n }\n\n if (thirdFrom !== thirdFromActive || thirdTo !== thirdToActive) {\n thirdFormChanged = 'changed';\n }\n\n if (\n firstFormChanged === 'changed' ||\n secondFormChanged === 'changed' ||\n thirdFormChanged === 'changed'\n ) {\n this.isButtonAvailable = true;\n } else {\n this.isButtonAvailable = false;\n if (firstFrom || firstTo || secFrom || secTo || thirdFrom || thirdTo) {\n this.moneyFilterStatus = true;\n } else {\n this.moneyFilterStatus = false;\n }\n }\n }\n\n public getSvgPath(propertyName: keyof typeof CaMoneyFilterSvgRoutes): string {\n return CaMoneyFilterSvgRoutes[propertyName] as string;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"moneyFilter && !isRepairFilter\">\n <div [class.multiMoneyForm]=\"subType === 'all'\" [formGroup]=\"moneyForm\">\n <div class=\"border-filter money-top-border-magin\"></div>\n <ng-container *ngIf=\"subType !== 'all'; else showAll\">\n <div class=\"single-form-holder\">\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"singleFormError\"\n >\n <app-ca-input\n formControlName=\"singleFrom\"\n [inputConfig]=\"singleFormFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"singleFormError\"\n >\n <app-ca-input\n formControlName=\"singleTo\"\n [inputConfig]=\"singleFormTo\"\n ></app-ca-input>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-template #showAll>\n <div class=\"multi-form-holder\">\n <div\n class=\"form-header\"\n [class.hiddenFormTitle]=\"!showPart1\"\n (click)=\"hideFormPart('part1')\"\n >\n <ng-container *ngIf=\"!fuelType && !loadType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Invoice Ageing\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"fuelType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Last Price\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"loadType\">\n <div\n class=\"form-name-gray text-uppercase fw-bold\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n Rate\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n moneyForm.value.multiFromFirstFrom &&\n moneyForm.value.multiFromFirstTo\n \"\n >\n <div\n class=\"clear-money-form d-flex justify-content-center align-items-center fw-bold\"\n (click)=\"clearForm('multiFromFirst', $event)\"\n >\n CLEAR\n </div>\n </ng-container>\n\n <div\n class=\"hide-money-form\"\n [ngClass]=\"{\n svg_rotate: !showPart1,\n rotate_back: showPart1,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('arrowLeftSvgRoute')\"></svg-icon>\n </div>\n </div>\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@closeForm]=\"showPart1\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFromFirstFrom\"\n [inputConfig]=\"multiFormFirstFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"multiFormFirstError\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFromFirstTo\"\n [inputConfig]=\"multiFormFirstTo\"\n ></app-ca-input>\n </div>\n </div>\n <div\n class=\"border-filter money-bottom-border-magin form-border\"\n [class.hiddenFormBorder]=\"!showPart1\"\n ></div>\n <div\n class=\"form-header\"\n [class.hiddenFormTitle]=\"!showPart2\"\n (click)=\"hideFormPart('part2')\"\n >\n <ng-container *ngIf=\"!fuelType && !loadType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Available Credit\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"fuelType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Price Per Gallon\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"loadType\">\n <div\n class=\"form-name-gray text-uppercase fw-bold\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n Paid\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n moneyForm.value.multiFormSecondFrom &&\n moneyForm.value.multiFormSecondTo\n \"\n >\n <div\n class=\"clear-money-form d-flex justify-content-center align-items-center fw-bold\"\n (click)=\"clearForm('multiFormSecond', $event)\"\n >\n CLEAR\n </div>\n </ng-container>\n\n <div\n class=\"hide-money-form\"\n [ngClass]=\"{\n svg_rotate: !showPart2,\n rotate_back: showPart2,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('arrowLeftSvgRoute')\"></svg-icon>\n </div>\n </div>\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@closeForm]=\"showPart2\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormSecondFrom\"\n [inputConfig]=\"multiFormSecondFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"multiFormSecondError\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormSecondTo\"\n [inputConfig]=\"multiFormSecondTo\"\n ></app-ca-input>\n </div>\n </div>\n <div\n class=\"border-filter money-bottom-border-magin form-border\"\n [class.hiddenFormBorder]=\"!showPart2\"\n ></div>\n <div\n class=\"form-header\"\n [class.hiddenFormTitle]=\"!showPart3\"\n (click)=\"hideFormPart('part3')\"\n >\n <ng-container *ngIf=\"!fuelType && !loadType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Revenue\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"fuelType\">\n <div class=\"form-name fw-bold\" [@showAnimation]=\"!!isFilterActive\">\n Total Cost\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"loadType\">\n <div\n class=\"form-name-gray text-uppercase fw-bold\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n Due\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n moneyForm.value.multiFormThirdFrom &&\n moneyForm.value.multiFormThirdTo\n \"\n >\n <div\n class=\"clear-money-form d-flex justify-content-center align-items-center fw-bold\"\n (click)=\"clearForm('multiFormThird', $event)\"\n >\n CLEAR\n </div>\n </ng-container>\n\n <div\n class=\"hide-money-form\"\n [ngClass]=\"{\n svg_rotate: !showPart3,\n rotate_back: showPart3,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('arrowLeftSvgRoute')\"></svg-icon>\n </div>\n </div>\n <div\n class=\"money-main-holder d-flex justify-content-between align-items-center single-money-main\"\n [@closeForm]=\"showPart3\"\n >\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormThirdFrom\"\n [inputConfig]=\"multiFormThirdFrom\"\n ></app-ca-input>\n </div>\n <div\n class=\"money-value-holder d-flex justify-content-center align-items-center\"\n [class.errorForm]=\"multiFormThirdError\"\n >\n <app-ca-input\n [@showAnimation]=\"!!isFilterActive\"\n formControlName=\"multiFormThirdTo\"\n [inputConfig]=\"multiFormThirdTo\"\n ></app-ca-input>\n </div>\n </div>\n </div>\n </ng-template>\n\n <div\n class=\"border-filter money-bottom-border-magin form-border\"\n [class.hiddenFormBorder]=\"!showPart3\"\n ></div>\n </div>\n</ng-container>\n","export enum LoadFilterStringEnum {\n // Actions\n SET = 'Set',\n CLEAR = 'Clear',\n\n // Filter Types\n TIME_FILTER = 'timeFilter',\n STATUS_FILTER = 'statusFilter',\n USER_FILTER = 'userFilter',\n MONEY_FILTER = 'moneyFilter',\n LOAD_TYPE_FILTER = 'loadTypeFilter',\n\n // Load Tabs\n PENDING = 'pending',\n ACTIVE = 'active',\n CLOSED = 'closed',\n\n // Load Types\n FTL = 'ftl',\n LTL = 'ltl',\n ALL = 'all',\n\n // Other\n DISPATCH_DATA_UPDATE = 'dispatch-data-update',\n}\n","export enum LoadStatusEnum {\n Booked = 1,\n Assigned,\n Unassigned,\n Loaded,\n Offloaded,\n CheckedIn,\n Dispatched,\n Invoiced,\n InvoicedFactoring,\n InvoicedHold,\n Delivered,\n LoadCancelled,\n Paid,\n PaidFactoring,\n RevisedPaidFactoring,\n ShortPaid,\n ShortPaidFactoring,\n RevisedShortPaidFactoring,\n Claim,\n ClaimFactoring,\n RevisedClaimFactoring,\n Unpaid,\n UnpaidFactoring,\n RevisedUnpaidFactoring,\n Tonu,\n TonuInvoiced,\n TonuInvoicedFactoring,\n TonuPaid,\n TonuPaidFactoring,\n TonuClaim,\n TonuClaimFactoring,\n TonuShortPaid,\n TonuShortPaidFactoring,\n TonuUnpaid,\n TonuUnpaidFactoring,\n Hold,\n HoldFactoring,\n Revised,\n RevisedFactoring,\n RevisedPaid,\n RevisedClaim,\n RevisedShortPaid,\n RevisedUnpaid,\n Cancelled,\n Split,\n Loading,\n Offloading,\n ArrivedPickup,\n ArrivedDelivery,\n CheckedInPickup,\n CheckedInDelivery,\n RepairDispatched,\n RepairLoaded,\n RepairOffloaded,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dropdownLoadStatusColor',\n standalone: true,\n})\nexport class DropdownLoadStatusColorPipe implements PipeTransform {\n transform(\n status: string,\n isBadge?: boolean\n ): { color: string; backgroundColor?: string } {\n const adjustedStatus = status.replace(/\\s+/g, '');\n\n const statusGreyColorCondition = adjustedStatus === 'Booked';\n const statusDarkGreyColorCondition = adjustedStatus === 'Unassigned';\n const statusDarkGrey2ColorCondition = [\n 'InvoicedHold',\n 'Hold',\n 'HoldFactoring',\n 'Revised',\n 'RevisedFactoring',\n ].includes(adjustedStatus);\n\n const statusGreenColorCondition = status === 'Assigned';\n const statusBlueColorCondition = [\n 'RepairDispatched',\n 'Dispatched',\n ].includes(status);\n const statusTurquoiseColorCondition = [\n 'Arrived',\n 'ArrivedPickup',\n 'CheckedInPickup',\n 'CheckedIn',\n 'Loading',\n ].includes(adjustedStatus);\n const statusDarkTurquoiseColorCondition = [\n 'Loaded',\n 'RepairLoaded',\n ].includes(adjustedStatus);\n const statusRedColorCondition = [\n 'ArrivedDelivery',\n 'CheckedInDelivery',\n 'Offloading',\n 'Checked-In',\n 'Tonu',\n ].includes(status);\n const statusDarkRedColorCondition = [\n 'Offloaded',\n 'RepairOffloaded',\n ].includes(status);\n const statusDarkRed2ColorCondition = [\n 'Cancelled',\n 'Split',\n 'LoadCancelled',\n ].includes(status);\n const statusOrangeColorCondition = status === 'Delivered';\n const statusYellowColorCondition = [\n 'Invoiced',\n 'Paid',\n 'InvoicedFactoring',\n 'TonuInvoiced',\n 'TonuInvoicedFactoring',\n ].includes(adjustedStatus);\n const statusDarkYellowColorCondition = [\n 'Claim',\n 'Unpaid',\n 'ShortPaid',\n 'TonuUnpaid',\n 'TonuClaim',\n 'TonuClaimFactoring',\n 'ClaimFactoring',\n 'UnpaidFactoring',\n 'RevisedUnpaid',\n 'RevisedUnpaidFactoring',\n 'RevisedClaim',\n 'RevisedClaimFactoring',\n 'TonuUnpaidFactoring',\n ].includes(adjustedStatus);\n const statusMildDarkYellowColorCondition = [\n 'ShortPaidFactoring',\n 'RevisedPaid',\n 'RevisedShortPaidFactoring',\n 'RevisedShortPaid',\n 'TonuShortPaid',\n 'TonuShortPaidFactoring',\n 'TonuPaid',\n 'TonuPaidFactoring',\n 'RevisedPaidFactoring',\n 'PaidFactoring',\n ].includes(adjustedStatus);\n\n if (statusGreyColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#919191' }\n : { color: '#919191' };\n } else if (statusDarkGreyColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#CCCCCC' }\n : { color: '#CCCCCC' };\n } else if (statusGreenColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#9ED186' }\n : { color: '#9ED186' };\n } else if (statusBlueColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FF906D' }\n : { color: '#92B1F5' };\n } else if (statusTurquoiseColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#56B4AC' }\n : { color: '#56B4AC' };\n } else if (statusDarkTurquoiseColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FF906D' }\n : { color: '#86C9C3' };\n } else if (statusRedColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#E66767' }\n : { color: '#E66767' };\n } else if (statusDarkRedColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FF906D' }\n : { color: '#ED9292' };\n } else if (statusOrangeColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#FAB15C' }\n : { color: '#FAB15C' };\n } else if (statusYellowColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#b370f0' }\n : { color: '#DFC66C' };\n } else if (statusDarkYellowColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#BD9F41' }\n : { color: '#BD9F41' };\n } else if (statusDarkGrey2ColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#DAAD4F' }\n : { color: '#DADADA' };\n } else if (statusDarkRed2ColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#F4BEBE' }\n : { color: '#F4BEBE' };\n } else if (statusMildDarkYellowColorCondition) {\n return isBadge\n ? { color: '#2F2F2F', backgroundColor: '#CDB255' }\n : { color: '##CDB255' };\n }\n return { color: '' };\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n keyframes,\n} from '@angular/animations';\n\nexport const inOutAnimation = (type: string) =>\n trigger(type, [\n state('in', style({ opacity: 1, scale: 1, height: '28px' })),\n transition(':enter', [\n animate(\n 150,\n keyframes([\n style({\n opacity: 0,\n offset: 0,\n scale: 0.6,\n height: '0px',\n }),\n style({\n opacity: 0.25,\n offset: 0.25,\n scale: 0.7,\n height: '10px',\n }),\n style({\n opacity: 0.5,\n offset: 0.5,\n scale: 0.8,\n height: '15px',\n }),\n style({\n opacity: 0.75,\n offset: 0.75,\n scale: 0.9,\n height: '20px',\n }),\n style({\n opacity: 1,\n offset: 1,\n scale: 1,\n height: '28px',\n }),\n ])\n ),\n ]),\n transition(':leave', [\n animate(\n 150,\n keyframes([\n style({\n opacity: 1,\n offset: 0,\n scale: 1,\n height: '28px',\n }),\n style({\n opacity: 1,\n offset: 0.25,\n scale: 0.9,\n height: '20px',\n }),\n style({\n opacity: 0.75,\n offset: 0.5,\n scale: 0.8,\n height: '15px',\n }),\n style({\n opacity: 0.25,\n offset: 0.75,\n scale: 0.7,\n height: '10px',\n }),\n style({\n opacity: 0,\n offset: 1,\n scale: 0.6,\n height: '0px',\n }),\n ])\n ),\n ]),\n ]);\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n// models\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TruckassistTableService {\n /* Set Load Status Filter Options */\n private setLoadStatusFilterOptions = new BehaviorSubject<any>(null);\n public currentLoadStatusFilterOptions =\n this.setLoadStatusFilterOptions.asObservable();\n\n private actionAnimation = new BehaviorSubject<any>(null);\n public currentActionAnimation = this.actionAnimation.asObservable();\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// enums\nimport { LoadFilterStringEnum } from '../../../../enums/load-filter-string.enum';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\nimport { LoadStatusEnum } from '../../../../enums/load-status.enum';\n\n// pipes\nimport { DropdownLoadStatusColorPipe } from '../../../../pipes/dropdown-load-status-color.pipe';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n// constants\nimport { StatusFilterConstants } from '../../utils/constants/status-filter.constants';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n@Component({\n selector: 'app-ca-status-filter',\n standalone: true,\n imports: [\n // modules\n AngularSvgIconModule,\n CommonModule,\n HttpClientModule,\n // pipes\n DropdownLoadStatusColorPipe,\n ],\n templateUrl: './ca-status-filter.component.html',\n styleUrls: ['./ca-status-filter.component.scss'],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaStatusFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isLegendView: boolean = false;\n @Input() isFilterActive: boolean = false;\n @Input() toDoSubType!: string;\n @Input() loadStatusOptionsArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public unselectedVisibleCount: number = 0;\n\n public selectedUser: ArrayStatus[] = [];\n\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n\n public loadStatusEnum = LoadStatusEnum;\n public filterActiveArray: ArrayStatus[] = [];\n public totalFiltersNum: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchLoadStatusFilterValueChanges();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.filterActiveArray = [...this.selectedUser];\n const selectedUsersIdArray: number[] = [];\n this.totalFiltersNum = this.filterActiveArray.length;\n\n const mainArray: ArrayStatus[] = this.loadStatusOptionsArray;\n\n mainArray.map((item) => {\n if (item.isSelected) {\n item['currentSet'] = true;\n } else {\n item['currentSet'] = false;\n }\n });\n\n this.filterActiveArray.map((data) => {\n selectedUsersIdArray.push(data.id!);\n });\n\n queryParams = selectedUsersIdArray;\n subType =\n this.toDoSubType ??\n ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedUser = [];\n\n this.loadStatusOptionsArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n this.totalFiltersNum = 0;\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItemsCount(\n this.loadStatusOptionsArray,\n this.selectedUser,\n this.isAscendingSortOrder\n );\n\n this.loadStatusOptionsArray = sortResult.sortedFilterArray;\n this.selectedUser = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n private watchLoadStatusFilterValueChanges(): void {\n this.type = ToolbarFilterStringEnum.STATUS_FILTER;\n this.tableService.currentLoadStatusFilterOptions\n .pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n if (res && this.type === LoadFilterStringEnum.STATUS_FILTER) {\n this.loadStatusOptionsArray = res.options;\n }\n });\n }\n\n public addToSelectedUser(item: ArrayStatus, indx: number) {\n const mainArray = this.loadStatusOptionsArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedUser.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: ArrayStatus, indx: number): void {\n this.selectedUser.splice(indx, 1);\n const id = item.id;\n const mainArray = this.loadStatusOptionsArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedUser,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"border-filter\"></div>\n<div class=\"user-holder\" *ngIf=\"type === 'statusFilter'\">\n <div class=\"status-data-main-holder\">\n <ng-container\n *ngFor=\"let item of selectedUser; let indx = index; trackBy: trackByIndex\"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <div\n class=\"selected-user-holder d-flex flex-column justify-content-start align-items-start\"\n >\n <div\n class=\"user-main-holder\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div class=\"selected-user-frame d-flex align-items-center fw-bold\">\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"status-circle\"\n [ngStyle]=\"\n loadStatusEnum[item.id!] | dropdownLoadStatusColor: true\n \"\n ></div>\n </div>\n <div\n class=\"selected-name-text d-flex align-items-center\"\n [class.text-uppercase]=\"type === 'statusFilter'\"\n >\n <div\n class=\"selected-name-text d-flex align-items-center\"\n [class.text-uppercase]=\"type === 'statusFilter'\"\n >\n <span> {{ item.name }}</span>\n </div>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount fw-semibold\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div class=\"selected-icon\">\n <svg-icon\n [src]=\"getSvgPath('removeSelectedValue')\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex\"\n [class.counterMargin]=\"item.count\"\n >\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"selectedUser.length > 0 && unselectedVisibleCount\"\n class=\"border-filter border-thrird-margin\"\n ></div>\n </ng-container>\n\n <ng-container\n *ngFor=\"\n let item of loadStatusOptionsArray;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder d-flex align-items-center justify-content-center;\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"status-circle\"\n [ngStyle]=\"\n loadStatusEnum[item.id!] | dropdownLoadStatusColor: true\n \"\n ></div>\n </div>\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div\n class=\"selected-name-text text-uppercase d-flex align-items-center\"\n >\n <span> {{ item.name }} </span>\n </div>\n\n <ng-container *ngIf=\"item?.count\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n<ng-container\n *ngIf=\"!isLegendView && (type === 'statusFilter' || type === 'userFilter')\"\n>\n <div class=\"border-filter\"></div>\n</ng-container>\n","export class TimeFilterConstants {\n static getTimeFilterOptions(lastYear: string, last2Years: string) {\n return [\n {\n label: 'Time Filter',\n items: [{ label: 'Today' }, { label: 'Yesterday' }],\n },\n {\n label: '',\n items: [\n { label: 'This Week' },\n { label: 'Last Week' },\n { label: '1 Week' },\n ],\n },\n {\n label: '',\n items: [\n { label: 'This Month' },\n { label: 'Last Month' },\n { label: '1 Month' },\n { label: '3 Months' },\n ],\n },\n {\n label: '',\n items: [{ label: 'This Quarter' }, { label: 'Last Quarter' }],\n },\n {\n label: '',\n items: [\n { label: 'This Year' },\n { label: '1 Year' },\n { label: lastYear },\n { label: last2Years },\n ],\n },\n {\n label: '',\n items: [{ label: 'Custom' }],\n },\n ];\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// models\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { TimeFilterOptions } from '../../../../models/time-filter.model';\n\n// constants\nimport { TimeFilterConstants } from '../../utils/constants/time-filter.constants';\n\n@Component({\n standalone: true,\n imports: [CommonModule, HttpClientModule, AngularSvgIconModule],\n selector: 'app-ca-time-filter',\n templateUrl: './ca-time-filter.component.html',\n styleUrls: ['./ca-time-filter.component.scss'],\n animations: [showAnimation('showAnimation')],\n})\nexport class CaTimeFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n\n private destroy$ = new Subject<void>();\n public selectedTimeValue!: string;\n public selectedTimeYear: number | null = null;\n public filterActiveTime!: string;\n\n public isButtonAvailable: boolean = false;\n public lastYear: number | null = null;\n public last2Years: number | null = null;\n public timeOptionsArray: TimeFilterOptions[] = [];\n\n ngOnInit(): void {\n this.timeFilterInit();\n this.timeOptionsInit();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private timeFilterInit(): void {\n this.type = ToolbarFilterStringEnum.TIME_FILTER;\n\n const date = new Date();\n const pastYear = date.getFullYear() - 1;\n const past2Year = date.getFullYear() - 2;\n\n this.lastYear = pastYear;\n this.last2Years = past2Year;\n }\n\n private timeOptionsInit(): void {\n this.timeOptionsArray = TimeFilterConstants.getTimeFilterOptions(\n this.lastYear!.toString(),\n this.last2Years!.toString()\n );\n }\n\n public setTimeValue(mod: string, year?: number): void {\n if (this.selectedTimeValue === mod) {\n this.selectedTimeValue = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n } else {\n this.selectedTimeValue = mod;\n }\n\n if (year) {\n if (this.selectedTimeYear === year) this.selectedTimeYear = null;\n else this.selectedTimeYear = year;\n } else {\n this.selectedTimeYear = null;\n }\n\n if (this.filterActiveTime === mod) {\n this.isButtonAvailable = false;\n } else {\n this.isButtonAvailable = true;\n }\n }\n\n public setFilterValue(\n $event: Event\n ): filterOutput | filterOutputWithParams | undefined {\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.filterActiveTime = this.selectedTimeValue;\n const setActionType: string = 'Set';\n\n if (!this.selectedTimeValue) {\n this.clearAll($event);\n return;\n }\n\n if (this.selectedTimeYear) {\n queryParams = {\n timeSelected: this.filterActiveTime,\n year: this.selectedTimeYear,\n };\n } else {\n queryParams = {\n timeSelected: this.filterActiveTime,\n };\n }\n\n const data = {\n filterType: this.type,\n action: setActionType,\n queryParams,\n subType,\n };\n return data;\n }\n\n public clearAll(event?: Event) {\n this.selectedTimeValue = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n this.filterActiveTime = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n\n this.isButtonAvailable = true;\n const clearActionType: string = 'Clear';\n\n const data = {\n action: clearActionType,\n type: this.type,\n filterType: this.type,\n };\n\n return data;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'timeFilter'\">\n <div class=\"time-filter-holder\">\n <div class=\"border-filter\"></div>\n <div\n class=\"time-items-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let timeOption of timeOptionsArray;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <ng-container *ngFor=\"let item of timeOption.items\">\n <div\n class=\"time-items d-flex align-items-center fw-normal\"\n [class.active]=\"selectedTimeValue === item.label\"\n (click)=\"setTimeValue(item.label)\"\n [@showAnimation]=\"!!isFilterActive\"\n >\n {{ item.label }}\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n <div\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </ng-container>\n <div class=\"border-filter time-data-border\"></div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n","export enum TrailerNameStringEnum {\n REEFER = 'Reefer',\n DRY_VAN = 'Dry Van',\n DUMPER = 'Dumper',\n TANKER = 'Tanker',\n PNEUMATIC_TANKER = 'Pneumatic Tanker',\n CAR_HAULER = 'Car Hauler',\n CAR_HAULER_STINGER = 'Car Hauler Stinger',\n CHASSIS = 'Chassis',\n LOW_BOY_RGN = 'Low Boy / RGN',\n STEP_DECK = 'Step Deck',\n FLAT_BED = 'Flat Bed',\n SIDE_KIT = 'Side Kit',\n CONESTOGA = 'Conestoga',\n CONTAINER = 'Container',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n//enum\nimport { TrailerNameStringEnum } from '../../../enums/trailer-name-string.enum';\n\n@Pipe({\n standalone: true,\n name: 'filterTrailerColorPipe',\n})\nexport class FilterTrailerColorPipe implements PipeTransform {\n transform(trailer: string): string {\n if (trailer === TrailerNameStringEnum.DRY_VAN) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.PNEUMATIC_TANKER) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.CAR_HAULER) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.CAR_HAULER_STINGER) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.LOW_BOY_RGN) {\n return trailer.replace(/[\\s\\/]+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.STEP_DECK) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.FLAT_BED) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else if (trailer === TrailerNameStringEnum.SIDE_KIT) {\n return trailer.replace(/\\s+/g, '').toLowerCase();\n } else {\n return trailer.toLowerCase();\n }\n }\n}\n","import { ICaInput } from '../../../../ca-input/config/ca-input.config';\n\nexport class CaUserFilterConfig {\n static getDispatcherSearch(): ICaInput {\n return {\n name: 'search',\n type: 'text',\n label: 'Search Dispatcher',\n placeholderIcon: 'ic_search',\n customClass: 'filter-search-input',\n placeholderInsteadOfLabel: true,\n blackInput: true,\n isDisabled: false,\n };\n }\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ReactiveFormsModule,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// enums\nimport { LoadStatusEnum } from '../../../../enums/load-status.enum';\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// components\nimport { CaInputComponent } from '../../../ca-input/ca-input.component';\nimport { CaProfileImageComponent } from '../../../ca-profile-image/ca-profile-image.component';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\n\n// pipes\nimport { DropdownLoadStatusColorPipe } from '../../../../pipes/dropdown-load-status-color.pipe';\nimport { FilterTrailerColorPipe } from '../../pipes/filter-trailer-color.pipe';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// configs\nimport { ICaInput } from '../../../ca-input/config/ca-input.config';\nimport { CaUserFilterConfig } from '../ca-user-filter/config/ca-user-filter.config';\nimport { userSelected } from '../../../../models/user-selected.model';\n\n@Component({\n selector: 'app-ca-user-filter',\n standalone: true,\n templateUrl: './ca-user-filter.component.html',\n styleUrls: ['./ca-user-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n ReactiveFormsModule,\n HttpClientModule,\n AngularSvgIconModule,\n // components\n CaInputComponent,\n CaProfileImageComponent,\n // pipes\n DropdownLoadStatusColorPipe,\n FilterTrailerColorPipe,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaUserFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() filterTitle!: string;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() toDoSubType!: string;\n @Input() unselectedUser!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n\n public loadStatusEnum = LoadStatusEnum;\n public searchForm!: UntypedFormGroup;\n public searchInputValue!: string;\n\n public unselectedVisibleCount: number = 0;\n public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n public selectedUser: userSelected[] = [];\n public filterActiveArray: ArrayStatus[] = [];\n public isAscendingSortOrder: boolean = true;\n public isButtonAvailable: boolean = false;\n public totalFiltersNum: number = 0;\n\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n ngOnInit(): void {\n this.createForm();\n\n this.watchSearchFormValueChanges();\n }\n\n get dispatcherSearch(): ICaInput {\n return CaUserFilterConfig.getDispatcherSearch();\n }\n\n public setFilterValue(\n $event: Event\n ): filterOutput | filterOutputWithParams | undefined {\n this.filterActiveArray = [...this.selectedUser];\n const selectedUsersIdArray: number[] = [];\n this.totalFiltersNum = this.filterActiveArray.length;\n\n let mainArray: ArrayStatus[] = [];\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n mainArray = this.unselectedUser;\n\n mainArray.map((item) => {\n if (item.isSelected) {\n item['currentSet'] = true;\n } else {\n item['currentSet'] = false;\n }\n });\n\n this.filterActiveArray.map((data) => {\n selectedUsersIdArray.push(data.id!);\n });\n\n if (!selectedUsersIdArray.length) {\n this.clearAll($event);\n return;\n }\n\n queryParams = selectedUsersIdArray;\n subType =\n this.toDoSubType ??\n ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedUser = [];\n this.filterActiveArray = [];\n this.totalFiltersNum = 0;\n\n this.unselectedUser.map((item) => {\n item.isSelected = false;\n item.currentSet = false;\n });\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n private createForm(): void {\n this.type = ToolbarFilterStringEnum.USER_FILTER;\n this.searchForm = this.formBuilder.group({\n search: null,\n });\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.unselectedUser;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedUser.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedUser.splice(indx, 1);\n const id = item.id;\n const mainArray = this.unselectedUser;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedUser,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n private watchSearchFormValueChanges(): void {\n this.searchForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((changes) => {\n if (changes.search) {\n const inputValue = changes.search;\n this.searchInputValue = inputValue;\n\n if (this.type === ToolbarFilterStringEnum.USER_FILTER) {\n this.unselectedUser.map((item) => {\n item.hidden = true;\n if (item.name!.toLowerCase().includes(inputValue.toLowerCase())) {\n item.hidden = false;\n }\n return item;\n });\n }\n } else {\n if (this.type === ToolbarFilterStringEnum.USER_FILTER) {\n this.unselectedUser.map((item) => {\n item.hidden = false;\n });\n }\n this.searchInputValue =\n ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER;\n }\n });\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItemsCount(\n this.unselectedUser,\n this.selectedUser,\n this.isAscendingSortOrder\n );\n\n this.unselectedUser = sortResult.sortedFilterArray;\n this.selectedUser = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'userFilter'\">\n <div class=\"search-input-header\" [formGroup]=\"searchForm\">\n <app-ca-input\n class=\"input-form-holder\"\n formControlName=\"search\"\n [inputConfig]=\"dispatcherSearch\"\n ></app-ca-input>\n </div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedUser;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <ng-container *ngIf=\"!item.avatar; else avatarTemplate\">\n <app-ca-profile-image\n avatarImg=\"https://nyc3.digitaloceanspaces.com/dev.truckassist/9/38/138/a3c5ef96-58cf-4018-a3c0-2855ad1edf69-driverAvatar.png\"\n [size]=\"'small'\"\n ></app-ca-profile-image>\n </ng-container>\n\n <ng-template #avatarTemplate>\n <div\n class=\"user_avatar\"\n style.background-image=\"url('{{ item.avatar }}')\"\n ></div>\n </ng-template>\n </div>\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedUser.length > 0\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div\n class=\"user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of unselectedUser;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <ng-container *ngIf=\"!item.avatar; else avatarTemplate\">\n <app-ca-profile-image\n avatarImg=\"https://nyc3.digitaloceanspaces.com/dev.truckassist/9/38/138/a3c5ef96-58cf-4018-a3c0-2855ad1edf69-driverAvatar.png\"\n [size]=\"'small'\"\n >\n </app-ca-profile-image>\n </ng-container>\n\n <ng-template #avatarTemplate>\n <div\n class=\"user_avatar\"\n style.background-image=\"url('{{ item.avatar }}')\"\n ></div>\n </ng-template>\n </div>\n <div class=\"user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n\n <ng-container *ngIf=\"item?.count\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"unselectedUser?.length !== selectedUser?.length\">\n <div class=\"border-filter\"></div>\n </ng-container>\n</ng-container>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n keyframes,\n} from '@angular/animations';\n\nexport const stateHeader = (type: string) =>\n trigger(type, [\n state('in', style({ opacity: 1, height: '*' })),\n transition(':enter', [\n animate(\n 150,\n keyframes([\n style({ opacity: 0, offset: 0, height: '0px' }),\n style({ opacity: 1, offset: 1, height: '*' }),\n ])\n ),\n ]),\n transition(':leave', [\n animate(\n 150,\n keyframes([\n style({ opacity: 1, offset: 0 }),\n style({ opacity: 0, offset: 1, height: '0px' }),\n ])\n ),\n ]),\n ]);\n","import { ArrayStatus } from '../../../../models/array-status.model';\n\nexport class DirectiveConstants {\n static UNSELECTED_USER: ArrayStatus[] = [\n {\n name: 'Aleksandar Djordjevic',\n id: 1,\n avatar: 'https://www.gradprijepolje.com/wp-content/uploads/2021/09/Divac.jpg',\n count: 3,\n },\n {\n name: 'Denis Rodman',\n id: 2,\n count: 8,\n },\n {\n name: 'Eric Halpert',\n id: 3,\n count: 7,\n },\n {\n name: 'Jacob Forman',\n id: 4,\n count: 2,\n },\n {\n name: 'James Robertson',\n id: 5,\n count: 5,\n },\n {\n name: 'Kevin Malone',\n id: 6,\n count: 9,\n },\n {\n name: 'Michael Tollbert',\n id: 7,\n count: 1,\n },\n {\n name: 'Michael Rodman',\n id: 8,\n count: 4,\n },\n {\n name: 'James Halpert',\n id: 9,\n count: 6,\n },\n {\n name: 'Anna Beasley',\n id: 10,\n count: 3,\n },\n {\n name: 'Denis Halpert',\n id: 11,\n count: 7,\n },\n {\n name: 'Eric James',\n id: 12,\n count: 2,\n },\n {\n name: 'Michael Forman',\n id: 13,\n count: 5,\n },\n {\n name: 'James Lopez',\n id: 14,\n count: 8,\n },\n ];\n\n static USA_STATES: ArrayStatus[] = [\n {\n id: 1,\n name: 'Alabama',\n short: 'AL',\n },\n {\n id: 2,\n name: 'Alaska',\n short: 'AK',\n },\n {\n id: 3,\n name: 'American Samoa',\n short: 'AS',\n },\n {\n id: 4,\n name: 'Arizona',\n short: 'AZ',\n },\n {\n id: 5,\n name: 'Arkansas',\n short: 'AR',\n },\n {\n id: 6,\n name: 'California',\n short: 'CA',\n },\n {\n id: 7,\n name: 'Colorado',\n short: 'CO',\n },\n {\n id: 8,\n name: 'Connecticut',\n short: 'CT',\n },\n {\n id: 9,\n name: 'Delaware',\n short: 'DE',\n },\n {\n id: 10,\n name: 'District Of Columbia',\n short: 'DC',\n },\n {\n id: 11,\n name: 'Florida',\n short: 'FL',\n },\n {\n id: 12,\n name: 'Georgia',\n short: 'GA',\n },\n {\n id: 13,\n name: 'Guam',\n short: 'GU',\n },\n {\n id: 14,\n name: 'Hawaii',\n short: 'HI',\n },\n {\n id: 15,\n name: 'Idaho',\n short: 'ID',\n },\n {\n id: 16,\n name: 'Illinois',\n short: 'IL',\n },\n {\n id: 17,\n name: 'Indiana',\n short: 'IN',\n },\n {\n id: 18,\n name: 'Iowa',\n short: 'IA',\n },\n {\n id: 19,\n name: 'Kansas',\n short: 'KS',\n },\n {\n id: 20,\n name: 'Kentucky',\n short: 'KY',\n },\n {\n id: 21,\n name: 'Louisiana',\n short: 'LA',\n },\n {\n id: 22,\n name: 'Maine',\n short: 'ME',\n },\n {\n id: 23,\n name: 'Maryland',\n short: 'MD',\n },\n {\n id: 24,\n name: 'Massachusetts',\n short: 'MA',\n },\n {\n id: 25,\n name: 'Michigan',\n short: 'MI',\n },\n {\n id: 26,\n name: 'Minnesota',\n short: 'MN',\n },\n {\n id: 27,\n name: 'Mississippi',\n short: 'MS',\n },\n {\n id: 28,\n name: 'Missouri',\n short: 'MO',\n },\n {\n id: 29,\n name: 'Montana',\n short: 'MT',\n },\n {\n id: 30,\n name: 'Nebraska',\n short: 'NE',\n },\n {\n id: 31,\n name: 'Nevada',\n short: 'NV',\n },\n {\n id: 32,\n name: 'New Hampshire',\n short: 'NH',\n },\n {\n id: 33,\n name: 'New Jersey',\n short: 'NJ',\n },\n {\n id: 34,\n name: 'New Mexico',\n short: 'NM',\n },\n {\n id: 35,\n name: 'New York',\n short: 'NY',\n },\n {\n id: 36,\n name: 'North Carolina',\n short: 'NC',\n },\n {\n id: 37,\n name: 'North Dakota',\n short: 'ND',\n },\n {\n id: 38,\n name: 'Northern Mariana Islands',\n short: 'MP',\n },\n {\n id: 39,\n name: 'Ohio',\n short: 'OH',\n },\n {\n id: 40,\n name: 'Oklahoma',\n short: 'OK',\n },\n {\n id: 41,\n name: 'Oregon',\n short: 'OR',\n },\n {\n id: 42,\n name: 'Palau',\n short: 'PW',\n },\n {\n id: 43,\n name: 'Pennsylvania',\n short: 'PA',\n },\n {\n id: 44,\n name: 'Puerto Rico',\n short: 'PR',\n },\n {\n id: 45,\n name: 'Rhode Island',\n short: 'RI',\n },\n {\n id: 46,\n name: 'South Carolina',\n short: 'SC',\n },\n {\n id: 47,\n name: 'South Dakota',\n short: 'SD',\n },\n {\n id: 48,\n name: 'Tennessee',\n short: 'TN',\n },\n {\n id: 49,\n name: 'Texas',\n short: 'TX',\n },\n {\n id: 50,\n name: 'Utah',\n short: 'UT',\n },\n {\n id: 51,\n name: 'Vermont',\n short: 'VT',\n },\n {\n id: 52,\n name: 'Virgin Islands',\n short: 'VI',\n },\n {\n id: 53,\n name: 'Virginia',\n short: 'VA',\n },\n {\n id: 54,\n name: 'Washington',\n short: 'WA',\n },\n {\n id: 55,\n name: 'West Virginia',\n short: 'WV',\n },\n {\n id: 56,\n name: 'Wisconsin',\n short: 'WI',\n },\n {\n id: 57,\n name: 'Wyoming',\n short: 'WY',\n },\n ];\n\n static CANADA_STATES: ArrayStatus[] = [\n {\n id: 1,\n name: 'Alberta',\n short: 'AB',\n },\n {\n id: 2,\n name: 'British Columbia',\n short: 'BC',\n },\n {\n id: 3,\n name: 'Manitoba',\n short: 'MB',\n },\n {\n id: 4,\n name: 'New Brunswick',\n short: 'NB',\n },\n {\n id: 5,\n name: 'Newfoundland and Labrador',\n short: 'NL',\n },\n {\n id: 6,\n name: 'Nova Scotia',\n short: 'NS',\n },\n {\n id: 7,\n name: 'Ontario',\n short: 'ON',\n },\n {\n id: 8,\n name: 'Prince Edward Island',\n short: 'PE',\n },\n {\n id: 9,\n name: 'Quebec',\n short: 'QC',\n },\n {\n id: 10,\n name: 'Saskatchewan',\n short: 'SK',\n },\n {\n id: 11,\n name: 'Northwest Territories',\n short: 'NT',\n },\n {\n id: 12,\n name: 'Nunavut',\n short: 'NU',\n },\n {\n id: 13,\n name: 'Yukon',\n short: 'YT',\n },\n ];\n\n static TRUCK_TYPE_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Semi Truck',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_semi-truck.svg',\n count: 47,\n },\n {\n id: 2,\n name: 'Semi Sleeper',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_semi-wSleeper.svg',\n count: 3,\n },\n {\n id: 3,\n name: 'Box Truck',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_box-truck.svg',\n count: 5,\n },\n {\n id: 4,\n name: 'Cargo Van',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_cargo-van.svg',\n count: 2,\n },\n {\n id: 5,\n name: 'Tow Truck',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_tow-truck.svg',\n count: 7,\n },\n {\n id: 6,\n name: 'Car Hauler',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_car-hauler.svg',\n count: 4,\n },\n {\n id: 7,\n name: 'Spotter',\n icon: 'assets/ca-components/svg/common/trucks/ic_truck_spotter.svg',\n count: 1,\n },\n ];\n\n static TRAILER_TYPE_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Reefer',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_reefer.svg',\n count: 47,\n },\n {\n id: 2,\n name: 'Dry Van',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_dryvan.svg',\n count: 7,\n },\n {\n id: 3,\n name: 'Side Kit',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_side-kit.svg',\n count: 4,\n },\n {\n id: 4,\n name: 'Conestoga',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_conestoga.svg',\n count: 12,\n },\n {\n id: 5,\n name: 'Dumper',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_dumper.svg',\n count: 2,\n },\n {\n id: 6,\n name: 'Container',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_container.svg',\n count: 25,\n },\n {\n id: 7,\n name: 'Tanker',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_tanker.svg',\n count: 15,\n },\n {\n id: 8,\n name: 'Car Hauler',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_carhauler.svg',\n count: 6,\n },\n {\n id: 9,\n name: 'Flat Bed',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_flatbed.svg',\n count: 8,\n },\n {\n id: 10,\n name: 'Low Boy/RGN',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_low-boy.svg',\n count: 3,\n },\n {\n id: 11,\n name: 'Chassis',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_chassis.svg',\n count: 9,\n },\n {\n id: 12,\n name: 'Step Deck',\n icon: 'assets/ca-components/svg/common/trailers/ic_trailer_step-deck.svg',\n count: 5,\n },\n ];\n\n static PM_FILTER_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Engine Oil & Filter',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_oil_pump.svg',\n count: 5,\n },\n {\n id: 2,\n name: 'Air Filter',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_air_filter.svg',\n count: 3,\n },\n {\n id: 3,\n name: 'Belts',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_fuel_pump.svg',\n count: 2,\n },\n {\n id: 4,\n name: 'Transmission Fluid',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_air_compressor.svg',\n count: 4,\n },\n {\n id: 5,\n name: 'Engine Tune-Up',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_ac_compressor.svg',\n count: 7,\n },\n {\n id: 6,\n name: 'Alignment',\n icon: 'assets/ca-components/svg/common/category/ic_alignment.svg',\n count: 6,\n },\n {\n id: 7,\n name: 'Battery',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_battery.svg',\n count: 1,\n },\n {\n id: 8,\n name: 'Brake Chamber',\n icon: 'assets/ca-components/svg/common/repair-pm/ic_brake_filter.svg',\n count: 2,\n },\n ];\n\n static CATEGORY_REPAIR_ARRAY: ArrayStatus[] = [\n {\n id: 1,\n name: 'Mobile',\n icon: 'assets/ca-components/svg/common/repair-services/ic_mobile.svg',\n },\n {\n id: 2,\n name: 'Shop',\n icon: 'assets/ca-components/svg/common/repair-services/ic_shop.svg',\n activeIcon: 'assets/ca-components/svg/common/ic_shop_cart.svg',\n },\n {\n id: 3,\n name: 'Towing',\n icon: 'assets/ca-components/svg/common/ic_towing.svg',\n },\n {\n id: 4,\n name: 'Parts',\n icon: 'assets/ca-components/svg/common/repair-services/ic_parts.svg',\n },\n {\n id: 5,\n name: 'Tire',\n icon: 'assets/ca-components/svg/common/repair-services/ic_tire.svg',\n },\n {\n id: 6,\n name: 'Dealer',\n icon: 'assets/ca-components/svg/common/repair-services/ic_dealer.svg',\n },\n ];\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// animations\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { stateHeader } from '../../../../animations/state-header.animation';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// models\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\n\n@Component({\n standalone: true,\n selector: 'app-ca-state-filter',\n templateUrl: './ca-state-filter.component.html',\n styleUrls: ['./ca-state-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n stateHeader('stateHeader'),\n ],\n})\nexport class CaStateFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n\n private destroy$ = new Subject<void>();\n public searchForm!: UntypedFormGroup;\n public usaStates: ArrayStatus[] = DirectiveConstants.USA_STATES;\n public canadaStates: ArrayStatus[] = DirectiveConstants.CANADA_STATES;\n public usaSelectedStates: ArrayStatus[] = [];\n public canadaSelectedStates: ArrayStatus[] = [];\n\n public searchInputValue: string | null = null;\n public filterUsaActiveArray: ArrayStatus[] = [];\n public filterCanadaActiveArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public totalFiltersNum: number = 0;\n public unselectedVisibleCount: number = 0;\n public caFiltersSvgRoutes: CaFiltersSvgRoutes = CaFiltersSvgRoutes;\n\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n ngOnInit(): void {\n this.createForm();\n\n this.watchSearchFormValueChanges();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private createForm(): void {\n this.type = ToolbarFilterStringEnum.STATE_FILTER;\n this.searchForm = this.formBuilder.group({\n search: ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER,\n });\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n private watchSearchFormValueChanges(): void {\n this.searchForm.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((changes) => {\n const inputValue = changes.search;\n this.searchInputValue = inputValue;\n\n this.usaStates.map((item) => {\n item.hidden = true;\n if (item.name!.toLowerCase().includes(inputValue.toLowerCase())) {\n item.hidden = false;\n }\n return item;\n });\n\n this.canadaStates.map((item) => {\n item.hidden = true;\n if (item.name!.toLowerCase().includes(inputValue.toLowerCase())) {\n item.hidden = false;\n }\n return item;\n });\n });\n }\n\n public addToSelectedUser(\n item: {\n id?: number;\n name?: string;\n count?: number;\n hidden?: boolean;\n isSelected?: boolean;\n },\n indx: number,\n subType?: string\n ) {\n let mainArray: ArrayStatus[] = [];\n\n if (subType === ToolbarFilterStringEnum.CANADA) {\n mainArray = this.canadaStates;\n } else {\n mainArray = this.usaStates;\n }\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n if (subType === ToolbarFilterStringEnum.CANADA) {\n this.canadaSelectedStates.push(item);\n } else {\n this.usaSelectedStates.push(item);\n }\n\n this.checkFilterActiveValue();\n }\n\n public checkFilterActiveValue(): void {\n let usaArrayChanged = false;\n let canadaArrayChanged = false;\n\n const arrayUsaSelected = [...this.usaSelectedStates];\n const arrayUsaActive = [...this.filterUsaActiveArray];\n const arrayCanadaSelected = [...this.canadaSelectedStates];\n const arrayCanadaActive = [...this.filterCanadaActiveArray];\n\n arrayUsaSelected.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n arrayUsaActive.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n arrayCanadaSelected.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n arrayCanadaActive.sort((a, b) => {\n return a.id! - b.id!;\n });\n\n const usaStringfy = JSON.stringify(arrayUsaSelected);\n const usaActiveStringify = JSON.stringify(arrayUsaActive);\n const canadaStringfy = JSON.stringify(arrayCanadaSelected);\n const canadaActiveStringify = JSON.stringify(arrayCanadaActive);\n\n if (usaStringfy === usaActiveStringify) {\n usaArrayChanged = false;\n } else {\n usaArrayChanged = true;\n }\n\n if (canadaStringfy === canadaActiveStringify) {\n canadaArrayChanged = false;\n } else {\n canadaArrayChanged = true;\n }\n\n if (usaArrayChanged || canadaArrayChanged) {\n this.isButtonAvailable = true;\n } else {\n this.isButtonAvailable = false;\n }\n }\n\n public removeFromSelectedUser(\n item: {\n id?: number;\n name?: string;\n count?: number;\n hidden?: boolean;\n isSelected?: boolean;\n },\n indx: number,\n subType?: string\n ): void {\n if (this.type === ToolbarFilterStringEnum.STATE_FILTER) {\n if (subType === ToolbarFilterStringEnum.CANADA) {\n this.canadaSelectedStates.splice(indx, 1);\n } else {\n this.usaSelectedStates.splice(indx, 1);\n }\n }\n\n const id = item.id;\n\n let mainArray: ArrayStatus[] = [];\n\n if (subType === ToolbarFilterStringEnum.CANADA) {\n mainArray = this.canadaStates;\n } else {\n mainArray = this.usaStates;\n }\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n let queryParams = {};\n let subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.filterUsaActiveArray = [...this.usaSelectedStates];\n this.filterCanadaActiveArray = [...this.canadaSelectedStates];\n\n const totalStatesSelected =\n this.filterUsaActiveArray.length + this.filterCanadaActiveArray.length;\n this.totalFiltersNum = totalStatesSelected;\n\n queryParams = {\n usaArray: this.filterUsaActiveArray,\n canadaArray: this.filterCanadaActiveArray,\n };\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.usaStates.map((item) => {\n item.isSelected = false;\n item.currentSet = false;\n });\n\n this.canadaStates.map((item) => {\n item.isSelected = false;\n item.currentSet = false;\n });\n\n this.usaSelectedStates = [];\n this.canadaSelectedStates = [];\n this.isButtonAvailable = true;\n this.totalFiltersNum = 0;\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"border-filter border-thrird-margin\"></div>\n<div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n *ngIf=\"type === 'stateFilter'\"\n>\n <ng-container *ngIf=\"usaSelectedStates.length\">\n <div class=\"states-selected usa-selected-holder\" [@stateHeader]=\"'in'\">\n <div class=\"state-name-holder\">UNITED STATES</div>\n <ng-container\n *ngFor=\"\n let item of usaSelectedStates;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <div\n class=\"user-main-holder holder-bottom-margin\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"user-profile-img d-flex align-items-center active state-border-radius\"\n >\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"selected-user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n <div\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"canadaSelectedStates.length\">\n <div class=\"states-selected\" [@stateHeader]=\"'in'\">\n <div class=\"state-name-holder\">CANADA</div>\n <ng-container\n *ngFor=\"\n let item of canadaSelectedStates;\n let indx = index;\n trackBy: trackByIndex\n \"\n >\n <div\n class=\"user-main-holder\"\n (click)=\"removeFromSelectedUser(item, indx, 'canada')\"\n >\n <div class=\"user-profile-img d-flex align-items-center active\">\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"selected-user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n <div class=\"icon-delete\">\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"canadaSelectedStates.length || usaSelectedStates.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n</div>\n\n<div\n class=\"user-holder d-flex justify-content-start align-items-start flex-column\"\n>\n <div class=\"state-name-holder sticky-head-title\">UNITED STATES</div>\n <ng-container\n *ngFor=\"let item of usaStates; let indx = index; trackBy: trackByIdentity\"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder state-main-holder\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"state-name-holder canada-sticky-head-title\">CANADA</div>\n <ng-container\n *ngFor=\"\n let item of canadaStates;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx, 'canada')\"\n class=\"user-main-holder state-main-holder\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <div\n class=\"state-short-holder d-flex justify-content-center align-items-center\"\n >\n {{ item.short }}\n </div>\n </div>\n <div class=\"user-frame d-flex align-items-center\">\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n","export class FilterIconRoutes {\n static repairPmSVG = 'assets/ca-components/svg/common/repair-pm/';\n static truckSVG = 'assets/ca-components/svg/common/trucks/';\n static trailerSVG = 'assets/ca-components/svg/common/trailers/';\n static categorySVG = 'assets/ca-components/svg/common/category/';\n}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n@Component({\n standalone: true,\n selector: 'app-ca-truck-type-filter',\n templateUrl: './ca-truck-type-filter.component.html',\n styleUrls: ['./ca-truck-type-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaTruckTypeFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() truckTypeArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedTruckTypeArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.truckTypeArray,\n this.selectedTruckTypeArray,\n this.isAscendingSortOrder\n );\n\n this.truckTypeArray = sortResult.sortedFilterArray;\n this.selectedTruckTypeArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.truckTypeArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedTruckTypeArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedTruckTypeArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.truckTypeArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.TRUCK_TYPE_FILTER;\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n if (this.type === ToolbarFilterStringEnum.TRUCK_TYPE_FILTER) {\n if (res?.animation === 'truck-type-update') {\n const newData = res.data.map((type: any) => {\n type['icon'] = FilterIconRoutes.truckSVG + type.logoName;\n return type;\n });\n\n this.truckTypeArray = newData;\n }\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams | undefined {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedTruckTypeArray = [];\n\n this.truckTypeArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedTruckTypeArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'truckTypeFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedTruckTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n <ng-container *ngIf=\"item.icon\">\n <div class=\"select-item-logo\">\n <svg-icon [src]=\"item.icon\" class=\"truck-logo-icon\"></svg-icon>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedTruckTypeArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of truckTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <div class=\"type-icon d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\nimport { AllTableAnimationModel } from '../../../../models/table-models/all-table-animation.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\n\n// services\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\n\n@Component({\n standalone: true,\n selector: 'app-ca-trailer-type-filter',\n templateUrl: './ca-trailer-type-filter.component.html',\n styleUrls: ['./ca-trailer-type-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaTrailerTypeFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() trailerTypeArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedTrailerTypeArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.trailerTypeArray,\n this.selectedTrailerTypeArray,\n this.isAscendingSortOrder\n );\n\n this.trailerTypeArray = sortResult.sortedFilterArray;\n this.selectedTrailerTypeArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.trailerTypeArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedTrailerTypeArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedTrailerTypeArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.trailerTypeArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.TRAILER_TYPE_FILTER;\n\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: AllTableAnimationModel) => {\n if (this.type === ToolbarFilterStringEnum.TRAILER_TYPE_FILTER) {\n if (res?.animation === 'trailer-type-update') {\n const newData = res.data.map((type: any) => {\n type['icon'] = FilterIconRoutes.trailerSVG + type.logoName;\n return type;\n });\n this.trailerTypeArray = newData;\n }\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedTrailerTypeArray = [];\n\n this.trailerTypeArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedTrailerTypeArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'trailerTypeFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedTrailerTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n <ng-container *ngIf=\"item.icon\">\n <div class=\"select-item-logo\">\n <svg-icon [src]=\"item.icon\" class=\"truck-logo-icon\"></svg-icon>\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedTrailerTypeArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of trailerTypeArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div class=\"user-frame-holder d-flex align-items-center\">\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <div class=\"type-icon d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\nimport { AllTableAnimationModel } from '../../../../models/table-models/all-table-animation.model';\nimport { RepairModalResponse } from '../../../../models/repairModalResponse';\n\n@Component({\n standalone: true,\n selector: 'app-ca-pm-filter',\n templateUrl: './ca-pm-filter.component.html',\n styleUrls: ['./ca-pm-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaPmFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() pmSubtype!: string;\n @Input() pmFilterArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedPmFilterArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.pmFilterArray,\n this.selectedPmFilterArray,\n this.isAscendingSortOrder\n );\n\n this.pmFilterArray = sortResult.sortedFilterArray;\n this.selectedPmFilterArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.pmFilterArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedPmFilterArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedPmFilterArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.pmFilterArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.PM_FILTER;\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: AllTableAnimationModel) => {\n if (\n this.type === ToolbarFilterStringEnum.PM_FILTER &&\n this.pmSubtype === ToolbarFilterStringEnum.PM_SUBTYPE_TRUCK\n ) {\n if (\n res?.animation === ToolbarFilterStringEnum.PM_TRAILER_DATA_UPDATE\n ) {\n const data = res.data as RepairModalResponse[];\n if (data[0]?.pmTrucks?.length) {\n const newData = data[0]?.pmTrucks.map((type: any) => {\n type['icon'] = FilterIconRoutes.repairPmSVG + type.logoName;\n type['name'] = type.title;\n\n return type;\n });\n\n this.pmFilterArray = newData;\n } else {\n this.pmFilterArray = [];\n }\n }\n } else if (\n this.type === ToolbarFilterStringEnum.PM_FILTER &&\n this.pmSubtype === ToolbarFilterStringEnum.PM_SUBTYPE_TRAILER\n ) {\n if (\n res?.animation === ToolbarFilterStringEnum.PM_TRAILER_DATA_UPDATE\n ) {\n const data = res.data as RepairModalResponse[];\n if (data[0]?.pmTrailers?.length) {\n const newData = data[0]?.pmTrailers?.map((type: any) => {\n type['icon'] = FilterIconRoutes.repairPmSVG + type.logoName;\n type['name'] = type.title;\n\n return type;\n });\n\n this.pmFilterArray = newData;\n } else {\n this.pmFilterArray = [];\n }\n }\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const action = 'Set';\n const data = {\n filterType: this.type,\n action,\n queryParams,\n subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedPmFilterArray = [];\n\n this.pmFilterArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const data = {\n action: 'Clear',\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedPmFilterArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'pmFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedPmFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedPmFilterArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of pmFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div class=\"user-frame-holder d-flex align-items-center\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// models\nimport { userSelected } from '../../../../models/user-selected.model';\nimport { ArrayStatus } from '../../../../models/array-status.model';\nimport { filterOutput } from '../../../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../../../models/filter-output-params.model';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../../utils/svg-routes/ca-filters-svg-routes';\n\n// helpers\nimport { FilterHelper } from '../../utils/helpers/filter.helper';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../../../ca-map/enums/toolbar-filter-string.enum';\n\n// constants\nimport { DirectiveConstants } from '../../utils/constants/directive.constants';\nimport { FilterIconRoutes } from '../../utils/constants/filter-icons-routes.constants';\n\n// animations\nimport { inOutAnimation } from '../../../../animations/in-out.animation';\nimport { showAnimation } from '../../../../animations/show.animation';\nimport { TruckassistTableService } from '../../../../services/truckassist-table.service';\nimport { AllTableAnimationModel } from '../../../../models/table-models/all-table-animation.model';\nimport { RepairModalResponse } from '../../../../models/repairModalResponse';\n\n@Component({\n standalone: true,\n selector: 'app-ca-service-filter',\n templateUrl: './ca-service-filter.component.html',\n styleUrls: ['./ca-service-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n ],\n animations: [\n inOutAnimation('inOutAnimation'),\n showAnimation('showAnimation'),\n ],\n})\nexport class CaServiceFilterComponent implements OnInit, OnDestroy {\n @Input() type!: string;\n @Input() isFilterActive: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() pmSubtype!: string;\n @Input() serviceFilterArray!: ArrayStatus[];\n\n private destroy$ = new Subject<void>();\n public selectedServiceFilterArray: ArrayStatus[] = [];\n public isButtonAvailable: boolean = false;\n public isAscendingSortOrder: boolean = true;\n public filterActiveArray: ArrayStatus[] = [];\n public unselectedVisibleCount: number = 0;\n\n constructor(\n // services\n private tableService: TruckassistTableService\n ) {}\n\n ngOnInit(): void {\n this.watchTableServiceValueChanges();\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public sortItems(): void {\n const sortResult = FilterHelper.sortItems(\n this.serviceFilterArray,\n this.selectedServiceFilterArray,\n this.isAscendingSortOrder\n );\n\n this.serviceFilterArray = sortResult.sortedFilterArray;\n this.selectedServiceFilterArray = sortResult.sortedSelectedFilterArray;\n this.isAscendingSortOrder = sortResult.isAscendingSortOrder;\n }\n\n public addToSelectedUser(item: userSelected, indx: number) {\n const mainArray = this.serviceFilterArray;\n\n mainArray[indx].isSelected = true;\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.selectedServiceFilterArray.push(item);\n\n this.checkFilterActiveValue();\n }\n\n public removeFromSelectedUser(item: userSelected, indx: number): void {\n this.selectedServiceFilterArray.splice(indx, 1);\n const id = item.id;\n const mainArray = this.serviceFilterArray;\n\n mainArray.map((item2) => {\n if (item2.id === id) {\n item2.isSelected = false;\n }\n });\n\n this.unselectedVisibleCount = mainArray.filter(\n (item2) => !item2.isSelected\n )?.length;\n\n this.checkFilterActiveValue();\n }\n\n private watchTableServiceValueChanges(): void {\n this.type = ToolbarFilterStringEnum.SERVICE_FILTER;\n this.tableService.currentActionAnimation\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: AllTableAnimationModel) => {\n if (res?.animation === ToolbarFilterStringEnum.REPAIR_CATEGORY_UPDATE) {\n const data = res.data as RepairModalResponse[];\n const newData = data.map((type: any) => {\n type['icon'] = FilterIconRoutes.categorySVG + type.logo;\n return type;\n });\n this.serviceFilterArray = newData;\n }\n });\n }\n\n public setFilterValue(): filterOutput | filterOutputWithParams {\n const queryParams = {};\n const subType = ToolbarFilterStringEnum.EMPTY_STRING_PLACEHOLDER.toString();\n\n this.isButtonAvailable = false;\n\n const data = {\n filterType: this.type,\n action: 'Set',\n queryParams: queryParams,\n subType: subType,\n };\n\n return data;\n }\n\n public clearAll(event?: Event): filterOutput | filterOutputWithParams {\n if (event) event.stopPropagation();\n\n this.selectedServiceFilterArray = [];\n\n this.serviceFilterArray.map((item) => {\n item.isSelected = false;\n });\n\n this.isButtonAvailable = true;\n this.filterActiveArray = [];\n\n const action = 'Clear';\n const data = {\n action,\n type: this.type,\n filterType: this.type,\n };\n return data;\n }\n\n public checkFilterActiveValue(): void {\n const filterCheck = FilterHelper.checkFilterActiveValue(\n this.selectedServiceFilterArray,\n this.filterActiveArray,\n this.isButtonAvailable\n );\n\n this.isButtonAvailable = filterCheck.isButtonAvailable;\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"type === 'serviceFilter'\">\n <div class=\"border-filter\"></div>\n <div\n class=\"selected-user-holder d-flex justify-content-start align-items-start flex-column\"\n >\n <ng-container\n *ngFor=\"\n let item of selectedServiceFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <div\n class=\"user-main-holder d-flex align-items-center justify-content-center\"\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"removeFromSelectedUser(item, indx)\"\n >\n <div\n class=\"selected-user-frame d-flex align-items-center justify-content-between\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }}</span>\n </div>\n <ng-container *ngIf=\"item?.count; else noCount\">\n <span\n class=\"count-holder d-flex align-items-center justify-content-center activeCount\"\n >\n {{ item.count }}\n </span>\n </ng-container>\n\n <ng-template #noCount>\n <ng-container *ngIf=\"!item.count; else noCounter\">\n <div\n class=\"selected-icon d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-container>\n <ng-template #noCounter>\n <div class=\"counter-holder activeCounter\">2</div>\n </ng-template>\n </ng-template>\n <div\n (click)=\"removeFromSelectedUser(item, indx)\"\n class=\"icon-delete d-flex justify-content-center align-items-center\"\n [class.counterMargin]=\"item.count\"\n >\n <div class=\"icon-delete-hold\"></div>\n <svg-icon [src]=\"getSvgPath('removeSelectedValue')\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"selectedServiceFilterArray.length\">\n <div class=\"border-filter border-thrird-margin\"></div>\n </ng-container>\n </div>\n <div class=\"user-holder\">\n <ng-container\n *ngFor=\"\n let item of serviceFilterArray;\n let indx = index;\n trackBy: trackByIdentity\n \"\n >\n <ng-container *ngIf=\"!item.hidden && !item.isSelected\">\n <div class=\"user-frame-holder d-flex align-items-center\">\n <div\n [@inOutAnimation]=\"'in'\"\n [@showAnimation]=\"!!isFilterActive\"\n (click)=\"addToSelectedUser(item, indx)\"\n class=\"user-main-holder user-main-holder d-flex align-items-center justify-content-center\"\n >\n <div class=\"user-profile-img d-flex align-items-center\">\n <svg-icon src=\"{{ item.icon }}\"></svg-icon>\n </div>\n <div\n class=\"user-frame d-flex justify-content-between align-items-center fw-normal\"\n >\n <div class=\"selected-name-text d-flex align-items-center\">\n <span> {{ item.name }} </span>\n </div>\n </div>\n <ng-container *ngIf=\"item.count\">\n <div\n class=\"count-holder d-flex align-items-center justify-content-center fw-semibold\"\n >\n {{ item.count }}\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n// modules\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// animations\nimport { showAnimation } from '../../animations/show.animation';\nimport { closeForm } from '../../animations/close-form.animation';\n\n// utils\nimport { CaFiltersSvgRoutes } from '../ca-filters/utils/svg-routes/ca-filters-svg-routes';\nimport { FilterHelper } from './utils/helpers/filter.helper';\n\n// pipes\nimport { FilterConditionsSetPipe } from './pipes/filter-conditions-set.pipe';\nimport { FilterConditionsClearPipe } from './pipes/filter-conditions-clear.pipe';\nimport { FilterConditionsUserBoxPipe } from './pipes/filter-conditions-user-box.pipe';\n\n// enums\nimport { ToolbarFilterStringEnum } from '../ca-map/enums/toolbar-filter-string.enum';\n\n// models\nimport { ArrayStatus } from '../../models/array-status.model';\nimport { filterOutput } from '../../models/filter-output.model';\nimport { filterOutputWithParams } from '../../models/filter-output-params.model';\n\n// components\nimport { CaMoneyFilterComponent } from './components/ca-money-filter/ca-money-filter.component';\nimport { CaStatusFilterComponent } from './components/ca-status-filter/ca-status-filter.component';\nimport { CaTimeFilterComponent } from './components/ca-time-filter/ca-time-filter.component';\nimport { CaUserFilterComponent } from './components/ca-user-filter/ca-user-filter.component';\nimport { CaStateFilterComponent } from './components/ca-state-filter/ca-state-filter.component';\nimport { CaTruckTypeFilterComponent } from './components/ca-truck-type-filter/ca-truck-type-filter.component';\nimport { CaTrailerTypeFilterComponent } from './components/ca-trailer-type-filter/ca-trailer-type-filter.component';\nimport { CaPmFilterComponent } from './components/ca-pm-filter/ca-pm-filter.component';\nimport { CaServiceFilterComponent } from './components/ca-service-filter/ca-service-filter.component';\n\n@Component({\n selector: 'app-ca-filter',\n standalone: true,\n templateUrl: './ca-filter.component.html',\n styleUrls: ['./ca-filter.component.scss'],\n imports: [\n // modules\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule,\n // components\n CaMoneyFilterComponent,\n CaStatusFilterComponent,\n CaTimeFilterComponent,\n CaUserFilterComponent,\n CaStateFilterComponent,\n CaTruckTypeFilterComponent,\n CaTrailerTypeFilterComponent,\n CaPmFilterComponent,\n CaServiceFilterComponent,\n // pipes\n FilterConditionsSetPipe,\n FilterConditionsClearPipe,\n FilterConditionsUserBoxPipe,\n ],\n animations: [showAnimation('showAnimation'), closeForm('closeForm')],\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class CaFilterComponent implements OnDestroy {\n @ViewChild(CaStatusFilterComponent)\n caStatusFilter!: CaStatusFilterComponent;\n\n @ViewChild(CaMoneyFilterComponent)\n caMoneyFilter!: CaMoneyFilterComponent;\n\n @ViewChild(CaTimeFilterComponent)\n caTimeFilter!: CaTimeFilterComponent;\n\n @ViewChild(CaUserFilterComponent)\n caUserFilter!: CaUserFilterComponent;\n\n @ViewChild(CaStateFilterComponent)\n caStateFilter!: CaStateFilterComponent;\n\n @ViewChild(CaTruckTypeFilterComponent)\n caTruckTypeFilter!: CaTruckTypeFilterComponent;\n\n @ViewChild(CaTrailerTypeFilterComponent)\n caTrailerTypeFilter!: CaTrailerTypeFilterComponent;\n\n @ViewChild(CaPmFilterComponent)\n caPmFilter!: CaPmFilterComponent;\n\n @ViewChild(CaServiceFilterComponent)\n caServiceFilter!: CaServiceFilterComponent;\n\n @Input() type!: string;\n @Input() subType: string = ToolbarFilterStringEnum.PENDING_STATUS;\n @Input() unselectedUser!: ArrayStatus[];\n @Input() loadStatusOptionsArray!: ArrayStatus[];\n @Input() truckTypeArray!: ArrayStatus[];\n @Input() trailerTypeArray!: ArrayStatus[];\n @Input() pmFilterArray!: ArrayStatus[];\n @Input() serviceFilterArray!: ArrayStatus[];\n\n @Input() isRepairFilter: boolean = false;\n @Input() isDefFilterHolder: boolean = true;\n @Input() hasNoLeftIcon: boolean = false;\n @Input() hasLeftSideIcon: boolean = false;\n @Input() hasLargeLeftIcon: boolean = false;\n\n @Input() isMoneyFilter: boolean = true;\n @Input() isFuelType: boolean = false;\n @Input() isLoadType: boolean = true;\n @Input() filterTitle!: string;\n\n @Output() setFilter = new EventEmitter<\n filterOutput | filterOutputWithParams\n >();\n\n @Output() clearAll = new EventEmitter<\n filterOutput | filterOutputWithParams\n >();\n\n private destroy$ = new Subject<void>();\n public isSearchExpanded!: boolean;\n public isFilterActive: boolean = false;\n public selectedUser: ArrayStatus[] = [];\n public isAscendingSortOrder: boolean = true;\n\n constructor(private renderer: Renderer2) {}\n\n public sortItems(): void {\n switch (this.type) {\n case ToolbarFilterStringEnum.STATUS_FILTER:\n if (this.caStatusFilter) {\n this.caStatusFilter.sortItems();\n this.isAscendingSortOrder = this.caStatusFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.USER_FILTER:\n if (this.caUserFilter) {\n this.caUserFilter.sortItems();\n this.isAscendingSortOrder = this.caUserFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n if (this.caTruckTypeFilter) {\n this.caTruckTypeFilter.sortItems();\n this.isAscendingSortOrder =\n this.caTruckTypeFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n if (this.caTrailerTypeFilter) {\n this.caTrailerTypeFilter.sortItems();\n this.isAscendingSortOrder =\n this.caTrailerTypeFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.PM_FILTER:\n if (this.caPmFilter) {\n this.caPmFilter.sortItems();\n this.isAscendingSortOrder = this.caPmFilter.isAscendingSortOrder;\n }\n break;\n\n case ToolbarFilterStringEnum.SERVICE_FILTER:\n if (this.caServiceFilter) {\n this.caServiceFilter.sortItems();\n this.isAscendingSortOrder = this.caServiceFilter.isAscendingSortOrder;\n }\n break;\n\n default:\n this.isAscendingSortOrder = true;\n break;\n }\n }\n\n public showSearch(mod?: string): void {\n const filterSearchHead = this.renderer.selectRootElement(\n '.search-input-header'\n );\n const filterTextHead = this.renderer.selectRootElement('.filter-text-part');\n\n if (mod) {\n this.isSearchExpanded = false;\n filterSearchHead?.classList.remove('activeSearch');\n filterSearchHead?.classList.add('inactiveSearch');\n\n filterTextHead?.classList.add('activeHeader');\n filterTextHead?.classList.remove('inactiveHeader');\n } else {\n filterSearchHead?.classList.add('activeSearch');\n filterSearchHead?.classList.remove('inactiveSearch');\n\n filterTextHead?.classList.remove('activeHeader');\n filterTextHead?.classList.add('inactiveHeader');\n this.isSearchExpanded = true;\n }\n }\n\n public setFilterValue(event: Event): void {\n let filterResult: filterOutput | filterOutputWithParams | undefined;\n\n switch (this.type) {\n case ToolbarFilterStringEnum.MONEY_FILTER:\n if (this.caMoneyFilter) {\n filterResult = this.caMoneyFilter.setFilterValue(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATUS_FILTER:\n if (this.caStatusFilter) {\n filterResult = this.caStatusFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.TIME_FILTER:\n if (this.caTimeFilter) {\n filterResult = this.caTimeFilter.setFilterValue(event);\n }\n break;\n\n case ToolbarFilterStringEnum.USER_FILTER:\n if (this.caUserFilter) {\n filterResult = this.caUserFilter.setFilterValue(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATE_FILTER:\n if (this.caStateFilter) {\n filterResult = this.caStateFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n if (this.caTruckTypeFilter) {\n filterResult = this.caTruckTypeFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n if (this.caTrailerTypeFilter) {\n filterResult = this.caTrailerTypeFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.PM_FILTER:\n if (this.caPmFilter) {\n filterResult = this.caPmFilter.setFilterValue();\n }\n break;\n\n case ToolbarFilterStringEnum.SERVICE_FILTER:\n if (this.caServiceFilter) {\n filterResult = this.caServiceFilter.setFilterValue();\n }\n break;\n\n default:\n const action = 'Clear';\n const type = 'Unknown';\n const filterType = 'Unknown';\n const data = {\n action,\n type,\n filterType,\n };\n filterResult = data;\n break;\n }\n\n this.setFilterEmit(filterResult);\n }\n\n public setFilterEmit(\n data: filterOutput | filterOutputWithParams | undefined\n ): void {\n if (this.setFilter) {\n this.setFilter.emit(data);\n }\n }\n\n public clearAllValues(event?: Event): void {\n let filterResult: filterOutput | filterOutputWithParams | undefined;\n\n switch (this.type) {\n case ToolbarFilterStringEnum.MONEY_FILTER:\n if (this.caMoneyFilter) {\n filterResult = this.caMoneyFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATUS_FILTER:\n if (this.caStatusFilter) {\n filterResult = this.caStatusFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.TIME_FILTER:\n if (this.caTimeFilter) {\n filterResult = this.caTimeFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.USER_FILTER:\n if (this.caUserFilter) {\n filterResult = this.caUserFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.STATE_FILTER:\n if (this.caStateFilter) {\n filterResult = this.caStateFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER:\n if (this.caTruckTypeFilter) {\n filterResult = this.caTruckTypeFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER:\n if (this.caTrailerTypeFilter) {\n filterResult = this.caTrailerTypeFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.PM_FILTER:\n if (this.caPmFilter) {\n filterResult = this.caPmFilter.clearAll(event);\n }\n break;\n\n case ToolbarFilterStringEnum.SERVICE_FILTER:\n if (this.caServiceFilter) {\n filterResult = this.caServiceFilter.clearAll(event);\n }\n break;\n\n default:\n const action = 'Clear';\n const type = 'Unknown';\n const filterType = 'Unknown';\n const data = {\n action,\n type,\n filterType,\n };\n filterResult = data;\n break;\n }\n\n this.clearAllValuesEmit(filterResult);\n }\n\n public clearAllValuesEmit(\n data: filterOutput | filterOutputWithParams | undefined\n ): void {\n if (this.setFilter) {\n this.clearAll.emit(data);\n }\n }\n\n public getSvgPath(propertyName: keyof typeof CaFiltersSvgRoutes): string {\n return FilterHelper.getSvgPath(propertyName);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"main-popover-body\">\n <ng-container *ngIf=\"isDefFilterHolder\">\n <div\n [@showAnimation]=\"!!isFilterActive\"\n class=\"filter-holder d-flex justify-content-start align-items-start\"\n [class.state-filter]=\"type === 'stateFilter'\"\n [class.department-filter]=\"hasNoLeftIcon\"\n [class.status-filter]=\"type === 'statusFilter'\"\n [class.pm-filter]=\"hasLeftSideIcon\"\n [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n [class.money-filter]=\"type === 'moneyFilter'\"\n >\n <div\n class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n >\n <div\n class=\"user-title-text counter-padd-title d-flex align-items-center fw-bold\"\n >\n {{ filterTitle | uppercase }}\n\n <ng-container\n *ngIf=\"type === 'userFilter' && caUserFilter?.selectedUser?.length\"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center fw-bold ms-1\"\n >\n {{ caUserFilter?.selectedUser?.length }}\n </div>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n type !== 'stateFilter' &&\n type !== 'statusFilter' &&\n type !== 'userFilter' &&\n type !== 'moneyFilter' &&\n type !== 'timeFilter'\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center fw-bold ms-1\"\n >\n {{\n type\n | filterConditionsUserBox\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caServiceFilter\n }}\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n type === 'serviceFilter' ||\n type === 'pmFilter' ||\n type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerTypeFilter' ||\n type === 'trailerFilter' ||\n type === 'statusFilter' ||\n type === 'userFilter';\n else truckFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text ta-font-medium d-flex align-items-center fw-bold justify-content-end\"\n >\n {{\n type === 'statusFilter' || type === 'userFilter'\n ? 'Count'\n : 'Sort Text'\n }}\n <svg-icon\n class=\"sort-arrow ms-1\"\n [class.rotate]=\"!isAscendingSortOrder\"\n [src]=\"getSvgPath('sortArrowSvgRoute')\"\n [svgStyle]=\"{\n 'width.px': '18',\n 'height.px': '18',\n }\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #truckFilter>\n <ng-container\n *ngIf=\"\n (type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerFilter') &&\n isRepairFilter;\n else stateFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text d-flex align-items-center fw-bold justify-content-end\"\n >\n Count\n <svg-icon [src]=\"getSvgPath('sortArrowSvgRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n <ng-template #stateFilter>\n <ng-container *ngIf=\"type === 'stateFilter'; else searchState\">\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center fw-bold ms-1\"\n >\n {{\n (caStateFilter?.canadaSelectedStates)!.length +\n (caStateFilter?.usaSelectedStates)!.length\n }}\n </div>\n </ng-container>\n </ng-template>\n <ng-template #searchState>\n <ng-container *ngIf=\"!searchState\">\n <div\n class=\"search-icon-holder d-flex justify-content-center align-items-center\"\n (click)=\"showSearch()\"\n >\n <svg-icon [src]=\"getSvgPath('searchIconRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"filter-body-holder\">\n <ng-container [ngSwitch]=\"type\">\n <app-ca-money-filter\n *ngSwitchCase=\"'moneyFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [moneyFilter]=\"isMoneyFilter\"\n [fuelType]=\"isFuelType\"\n [loadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n <app-ca-status-filter\n *ngSwitchCase=\"'statusFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [loadStatusOptionsArray]=\"loadStatusOptionsArray\"\n />\n <app-ca-time-filter\n *ngSwitchCase=\"'timeFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n <app-ca-user-filter\n *ngSwitchCase=\"'userFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n />\n <app-ca-state-filter\n *ngSwitchCase=\"'stateFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n <app-ca-truck-type-filter\n *ngSwitchCase=\"'truckTypeFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [truckTypeArray]=\"truckTypeArray\"\n />\n <app-ca-trailer-type-filter\n *ngSwitchCase=\"'trailerTypeFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [trailerTypeArray]=\"trailerTypeArray\"\n />\n <app-ca-pm-filter\n *ngSwitchCase=\"'pmFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n <app-ca-service-filter\n *ngSwitchCase=\"'serviceFilter'\"\n (setFilter)=\"setFilterValue($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [serviceFilterArray]=\"serviceFilterArray\"\n />\n </ng-container>\n </div>\n <div\n class=\"buttons-holder d-flex justify-content-between align-items-center\"\n >\n <div\n (click)=\"clearAllValues($event)\"\n class=\"button-clear d-flex justify-content-center align-items-center fw-bold\"\n [class.active]=\"\n type\n | filterConditionsClear\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caUserFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caServiceFilter\n \"\n >\n Clear All\n </div>\n <div\n (click)=\"setFilterValue($event)\"\n class=\"button-set d-flex justify-content-center align-items-center fw-bold\"\n [class.active]=\"\n type\n | filterConditionsSet\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caUserFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caServiceFilter\n \"\n >\n Set\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\ninterface RadioButton {\n id: number;\n label: string;\n value: string;\n name: string; // must be same for all radio buttons\n checked: boolean;\n isActive?: boolean; // this field change in this component\n}\n\n@Component({\n selector: 'app-ca-input-radiobuttons',\n templateUrl: './ca-input-radiobuttons.component.html',\n styleUrls: ['./ca-input-radiobuttons.component.scss'],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class CaInputRadiobuttonsComponent {\n @Input() buttons: RadioButton[] | null = null;\n @Input() disabled: boolean = false;\n @Input() displayRequiredNote?: boolean = false;\n\n @Output() changedValue: EventEmitter<RadioButton[]> = new EventEmitter<\n RadioButton[]\n >(undefined);\n\n public onChange(button: RadioButton): void {\n this.buttons?.filter((item) => (item.checked = false));\n button.checked = true;\n this.changedValue.emit(this.buttons!);\n }\n\n public identity(index: number, item: any): string {\n return item.value;\n }\n}\n","<div\n class=\"ta-input-radiobutons\"\n [ngClass]=\"{ disabled, required: displayRequiredNote }\"\n>\n <label\n *ngFor=\"let button of buttons; trackBy: identity\"\n class=\"d-flex justify-content-center align-items-center radio-button-label\"\n [ngClass]=\"{\n checked: button.checked,\n 'no-checked': !button.checked,\n disabled,\n required: displayRequiredNote\n }\"\n for=\"{{ button.id }}\"\n >\n <input\n [id]=\"button.id\"\n [name]=\"button.name\"\n [value]=\"button.value\"\n [checked]=\"button.checked\"\n type=\"radio\"\n class=\"radio-button\"\n (change)=\"onChange(button)\"\n />\n <span class=\"radio-button-text\">{{ button.label }}</span>\n </label>\n</div>\n","export class MapDropdownSvgRoutes {\n static likeRoute: string = \"assets/ca-components/svg/map/like.svg\";\n static dislikeRoute: string = \"assets/ca-components/svg/map/dislike.svg\";\n static reviewRoute: string = \"assets/ca-components/svg/map/review.svg\";\n static phoneRoute: string = \"assets/ca-components/svg/map/phone.svg\";\n static emailRoute: string = \"assets/ca-components/svg/map/email.svg\";\n static addressRoute: string = \"assets/ca-components/svg/map/address.svg\";\n static cornerDownArrowRoute: string = \"assets/ca-components/svg/popup/resize-arrow.svg\";\n static calenderRoute: string = \"assets/ca-components/svg/map/calender_last_used.svg\";\n static calenderTwoRoute: string = \"assets/ca-components/svg/map/18px_tooltip.svg\";\n static cornerTopArrowRoute: string = \"assets/ca-components/svg/map/arrow_corner_top.svg\";\n static vechileRoute: string = \"assets/ca-components/svg/map/accident_vechile.svg\";\n static injuryRoute: string = \"assets/ca-components/svg/map/accident_injury.svg\";\n static hazmatRoute: string = \"assets/ca-components/svg/map/accident_hazmat.svg\";\n static towingRoute: string = \"assets/ca-components/svg/map/accident_towing.svg\";\n static accidentCalenderRoute: string = \"assets/ca-components/svg/map/accident_calender.svg\";\n static ossRoute: string = \"assets/ca-components/svg/map/oss.svg\";\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n//Module\nimport { CommonModule } from '@angular/common';\nimport { AngularSvgIconModule, SvgIconRegistryService } from 'angular-svg-icon';\n\n//Components\nimport { CaDetailsDropdownComponent } from '../ca-details-dropdown/ca-details-dropdown.component';\n\n//json\nimport taDetailDropdownJson from '../../../assets/json/ta-detail-dropdown.json';\n\n//svg-routes\nimport { MapDropdownSvgRoutes } from '../ca-map-dropdown/utils/svg-routes/map-dropdown-svg-routes';\n\n//models\nimport {\n DropDownData,\n IDropDownActions,\n} from '../ca-details-dropdown/models/detail-dropdown.model';\n\n@Component({\n selector: 'app-ca-map-dropdown',\n standalone: true,\n imports: [\n //modules\n CommonModule,\n AngularSvgIconModule,\n //components\n CaDetailsDropdownComponent,\n ],\n templateUrl: './ca-map-dropdown.component.html',\n styleUrls: ['./ca-map-dropdown.component.scss'],\n providers: [SvgIconRegistryService],\n})\nexport class CaMapDropdownComponent {\n @Input() isAccidentMap: boolean = false;\n @Output() bodyActions: EventEmitter<IDropDownActions> = new EventEmitter();\n public isPopupShown: boolean = false;\n public isHidden: boolean = false;\n public isDropdownActive: boolean = true;\n public data: DropDownData[] = taDetailDropdownJson.taDetailDropDown;\n\n public openSideMenu(): void {\n this.isPopupShown = !this.isPopupShown;\n }\n\n public showHiddenData(): void {\n this.isDropdownActive = !this.isDropdownActive;\n this.isHidden = !this.isHidden;\n }\n\n public callBodyAction(action: IDropDownActions): void {\n this.bodyActions.emit(action);\n }\n\n public getSvgPath(propertyName: keyof typeof MapDropdownSvgRoutes): string {\n return MapDropdownSvgRoutes[propertyName] as string;\n }\n}\n","<ng-container *ngIf=\"!isAccidentMap\">\n <div class=\"marker-container\" >\n <div class=\"heading-container\">\n <div class=\"heading d-flex justify-content-between align-items-center\">\n <span class=\"header ca-font-extra-bold\">DOGMA BREWERY LOGISTICS</span>\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n <div class=\"action d-flex justify-content-start align-items-center align-content-center\">\n <div class=\"side-space d-flex justify-content-start align-items-center\"><svg-icon [src]=\"getSvgPath('likeRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">2</span></div>\n <div class=\"side-space d-flex justify-content-start align-items-center\"><svg-icon [src]=\"getSvgPath('dislikeRoute')\"></svg-icon><span class=\"count grey-color ca-font-semi-bold\">0</span></div>\n <div class=\"side-space d-flex justify-content-start align-items-center\"><svg-icon [src]=\"getSvgPath('reviewRoute')\"></svg-icon><span class=\"count grey-color ca-font-semi-bold\">0</span></div>\n </div>\n </div>\n\n <div class=\"personal-info d-flex flex-column align-content-center\"> \n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('phoneRoute')\"></svg-icon><span class=\"info ca-font-regular\">(123) 456-7890</span></div>\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('emailRoute')\"></svg-icon><span class=\"info ca-font-regular\">repairs-office@ivs-trucking.com</span></div>\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('addressRoute')\"></svg-icon><span class=\"info ca-font-regular\">3181 Donald Hollowell Pkwy NW Atlanta, GA 30318, USA</span></div>\n </div>\n\n <div class=\"working-info\">\n <div class=\"working-heading ca-font-extra-bold\">Available Hours</div>\n <div class=\"working-info-detail d-flex justify-content-between\">\n <div>\n <div class=\"working-info-item ca-font-bold\">Shipping</div>\n <div class=\"working-time ca-font-regular\">10:00 AM - 02:00 PM</div>\n </div>\n <div>\n <div class=\"working-info-item ca-font-bold\">Receiving </div>\n <div class=\"working-time ca-font-regular\">08:00 AM - 07:00 PM\n </div>\n </div>\n <div class=\"dropdown-arrow align-self-end\">\n <svg-icon [src]=\"getSvgPath('cornerDownArrowRoute')\" (click)=\"showHiddenData()\" *ngIf=\"isDropdownActive\"></svg-icon>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"isHidden\">\n <div class=\"load-info\">\n <div class=\"load-heading ca-font-semi-bold d-flex align-content-center\"><span>Load</span><span class=\"load-head-count\">12</span></div>\n <div class=\"load-info-detail d-flex justify-content-between\">\n <div>\n <div class=\"load-info-item ca-font-regular\">Pickup <span class=\"item-count ca-font-semi-bold\">7</span></div>\n <div class=\"loading-hours\">Avg. Loading <span class=\"load-time ca-font-medium\">32m 45s</span></div>\n </div>\n <div>\n <div class=\"load-info-item ca-font-regular\">Delivery <span class=\"item-count ca-font-semi-bold\">5</span></div>\n <div class=\"loading-hours\">Avg. Offloading <span class=\"load-time ca-font-medium\">43m 23s</span>\n </div>\n </div>\n <div>\n </div>\n </div>\n </div>\n \n <div class=\"avg-info\">\n <div class=\"avg-info-detail d-flex justify-content-between\">\n <div class=\"avg-item d-flex align-items-center\">\n <svg-icon [src]=\"getSvgPath('calenderRoute')\"></svg-icon><span class=\"item-date\">04/04/24</span>\n </div>\n <div class=\"avg-item d-flex align-items-center\">\n <svg-icon [src]=\"getSvgPath('calenderTwoRoute')\"></svg-icon><span class=\"item-date\">04/04/24</span>\n </div>\n <div class=\"avg-item d-flex align-items-center\">\n <svg-icon [src]=\"getSvgPath('cornerTopArrowRoute')\" (click)=\"showHiddenData()\"></svg-icon>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n</ng-container>\n<ng-container *ngIf=\"isAccidentMap\">\n <div class=\"infowindow-container\">\n\n <div class=\"heading-container\">\n <div class=\"heading d-flex justify-content-between align-items-center\">\n <span class=\"header ca-font-extra-bold\" >MS1017010339</span>\n <!-- <app-ca-details-dropdown\n #detailsDropdown\n [options]=\"data\"\n [placement]=\"'right-top'\"\n [id]=\"item?.id!\"\n [data]=\"item\"\n [customClassDropDown]=\"\n 'map-list-card-dropdown marker-dropdown-popover'\n \"\n (dropDownActions)=\"callBodyAction($event)\"\n ></app-ca-details-dropdown> -->\n </div>\n <div class=\"action d-flex justify-content-start align-items-center align-content-center\">\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('vechileRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">2 Vehicle</span></div>\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('injuryRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\"> 4 Injury</span></div>\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('hazmatRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">Hazmat</span></div>\n <div class=\"side-space d-flex justify-content-center align-items-center\"><svg-icon [src]=\"getSvgPath('towingRoute')\"></svg-icon><span class=\"count ca-font-semi-bold\">Towing</span></div>\n </div>\n </div>\n\n <div class=\"personal-info d-flex flex-column align-content-center\">\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('accidentCalenderRoute')\"></svg-icon><span class=\"info ca-font-regular\">04/04/24 08:47 AM</span></div>\n <div class=\"personal-info-items d-flex align-items-start\"><svg-icon [src]=\"getSvgPath('addressRoute')\"></svg-icon><span class=\"info ca-font-regular\">3181 Donald Hollowell Pkwy NW Atlanta, GA 30318, USA</span></div>\n </div>\n <div class=\"weight-info\" >\n <div class=\"weight-heading ca-font-semi-bold d-flex align-content-center\"><span>Total Weight</span><span class=\"weight-head-count\">21</span></div>\n <div class=\"weight-info-detail d-flex justify-content-between\">\n <div>\n <div class=\"weight-info-item\"><span class=\"item-count ca-font-regular\">Severity Weight</span><span class=\"weight-time ca-font-extra-bold\">7</span> </div>\n </div>\n <div>\n <div class=\"weight-info-item\"><span class=\"item-count ca-font-regular\">Time Weight</span> <span class=\"weight-time ca-font-extra-bold\">3</span></div>\n </div>\n <div class=\"dropdown-arrow align-self-end\">\n <svg-icon [src]=\"getSvgPath('cornerDownArrowRoute')\" (click)=\"showHiddenData()\" *ngIf=\"isDropdownActive\"></svg-icon>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isHidden\">\n\n <div class=\"transport-info\">\n <div class=\"transport-container\">\n <div class=\"driver-info d-flex justify-content-between\">\n <div>\n <div class=\"title ca-font-bold\">Driver </div>\n <div class=\"detail ca-font-regular\">A. Djordjevic <svg-icon [src]=\"getSvgPath('ossRoute')\"></svg-icon></div>\n </div>\n <div class=\"side-space\">\n <div class=\"title ca-font-bold\">Co-Driver </div>\n <div class=\"detail ca-font-regular\">Angelo Trotter</div>\n </div>\n <div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"transport-info\">\n <div class=\"transport-container\">\n <div class=\"truck-info d-flex justify-content-between\">\n <div>\n <div class=\"title ca-font-bold\">Truck </div>\n <div class=\"detail ca-font-regular\">26985A</div>\n </div>\n <div class=\"side-space\">\n <div class=\"title ca-font-bold\">Trailer </div>\n <div class=\"detail ca-font-regular\">W156100</div>\n </div>\n <div class=\"dropdown-arrow align-self-end\">\n <svg-icon [src]=\"getSvgPath('cornerTopArrowRoute')\" (click)=\"showHiddenData()\" ></svg-icon>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n</ng-container>","export enum GoogleMapEnum {\n STROKE_OPACITY = 0.4,\n STROKE_COLOR = \"blue\",\n}\n","export class MapHelper {\n static getIconForUnitViewStops = (color: string, id: number | string) => {\n const svgTemplate = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"31\" height=\"34\" viewBox=\"0 0 44 48.364\">\n <defs>\n <filter id=\"Path_41824\" x=\"0\" y=\"0\" width=\"44\" height=\"48.364\" filterUnits=\"userSpaceOnUse\">\n <feOffset input=\"SourceAlpha\" />\n <feGaussianBlur stdDeviation=\"2\" result=\"blur\"/>\n <feFlood flood-opacity=\"0.149\" />\n <feComposite operator=\"in\" in2=\"blur\"/>\n <feComposite in=\"SourceGraphic\" />\n </filter>\n </defs>\n <g id=\"Group_103737\" data-name=\"Group 103737\" transform=\"translate(-1095 -945)\">\n <circle id=\"Ellipse_9165\" data-name=\"Ellipse 9165\" cx=\"4\" cy=\"4\" r=\"6\" transform=\"translate(1113 983)\" fill=\"${color}\"/>\n <circle id=\"Ellipse_9166\" data-name=\"Ellipse 9166\" cx=\"2\" cy=\"2\" r=\"2\"\n transform=\"translate(1115 985.5)\" fill=\"#fff\" />\n </g>\n <g transform=\"matrix(1, 0, 0, 1, 0, 0)\" filter=\"url(#Path_41824)\">\n <path id=\"Path_41824-2\" data-name=\"Path 41824\" d=\"M32,15.962A15.956,15.956,0,0,1,24.942,29.2c-.035.026-.551.345-.755.479-4.9,3.113-6.863,5.215-7.654,6.394a.641.641,0,0,1-.886.18.665.665,0,0,1-.18-.18c-.791-1.18-2.762-3.281-7.654-6.394-.223-.138-.719-.452-.755-.479A15.975,15.975,0,1,1,32,15.962\"\n transform=\"translate(6 6)\" fill=\"#fff\"/>\n </g>\n <circle id=\"Ellipse_9255\" data-name=\"Ellipse 9255\" cx=\"13\" cy=\"13\" r=\"13\" transform=\"translate(9 9.001)\" fill= \"${color}\"/>\n <text dominant-baseline=\"middle\" text-anchor=\"middle\" id=\"_1\" data-name=\"1\" transform=\"translate(22 27.001)\" fill=\"#fff\" font-size=\"14\"\n font-family=\"Montserrat-Bold, Montserrat\" font-weight=\"700\"><tspan y=\"-3\">${id}</tspan>\n </text>\n </svg>`;\n const url =\n \"data:image/svg+xml;charset=UTF-8,\" + encodeURIComponent(svgTemplate);\n return url;\n };\n\n static getIconForDriveMiles = (color: string, id: number | string) => {\n const svgTemplate = `<svg width=\"18\" height=\"25\" viewBox=\"0 0 18 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"9\" cy=\"22\" r=\"3\" fill=\"${color}\"/>\n <circle cx=\"9\" cy=\"22\" r=\"1.5\" fill=\"white\"/>\n <path d=\"M18 9.09915C18 11.3366 17.166 13.4937 15.66 15.1491L9.39649 21.8286C9.18153 22.0572 8.81849 22.0572 8.60352 21.8286L2.33997 15.1491C-1.85302 10.5362 -0.359978 2.75614 6.409 0.414645C7.55604 0.0176113 8.79346 -0.0978672 9.99354 0.0836513C14.9535 0.833651 18.0015 4.81961 18 9.09915Z\" fill=\"${color}\"/>\n <circle cx=\"9\" cy=\"9\" r=\"7\" fill=\"white\"/>\n <text x=\"9\" y=\"9\" text-anchor=\"middle\" fill=\"${color}\" font-size=\"8\" font-family=\"Montserrat-Bold, Montserrat\" font-weight=\"600\" dy=\".3em\">${id}</text>\n </svg>`;\n const url =\n \"data:image/svg+xml;charset=UTF-8,\" + encodeURIComponent(svgTemplate);\n return url;\n };\n\n static getLocationIcon(color: string) {\n let svgTemplate = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\"><g transform=\"translate(-181 -295)\"><rect width=\"13\" height=\"13\" rx=\"6.5\" transform=\"translate(181 295)\" fill=\"${color}\"/><rect width=\"5\" height=\"5\" rx=\"2.5\" transform=\"translate(185 299)\" fill=\"#fff\"/></g></svg>`;\n const url =\n \"data:image/svg+xml;charset=UTF-8,\" + encodeURIComponent(svgTemplate);\n return url;\n }\n\n static getFillColorForState(\n stateDensity: number,\n View: string\n ): { fillColor: string; fillOpacity: number } {\n let fillColor = \"#EEEEEE\";\n let fillOpacity = 1;\n\n const getFleetViewColor = (density: number) => {\n if (density < 50) return { fillColor: \"#EF5350\", fillOpacity: 0.8 };\n else if (density < 100) return { fillColor: \"#EF5350\", fillOpacity: 1 };\n else if (density < 500) return { fillColor: \"#00967E\", fillOpacity: 0.8 };\n else if (density < 1000) return { fillColor: \"#00967E\", fillOpacity: 1 };\n return { fillColor: \"#EEEEEE\", fillOpacity: 1 };\n };\n\n const getUnitViewColor = (density: number) => {\n if (density < 50) return { fillColor: \"#FFA726\", fillOpacity: 0.3 };\n else if (density < 100) return { fillColor: \"#FFA726\", fillOpacity: 0.6 };\n else if (density < 500) return { fillColor: \"#FFA726\", fillOpacity: 0.9 };\n else if (density < 1000) return { fillColor: \"#FFA726\", fillOpacity: 1 };\n return { fillColor: \"#EEEEEE\", fillOpacity: 1 };\n };\n\n switch (View) {\n case \"fleetView\":\n ({ fillColor, fillOpacity } = getFleetViewColor(stateDensity));\n break;\n case \"unitView\":\n ({ fillColor, fillOpacity } = getUnitViewColor(stateDensity));\n break;\n default:\n break;\n }\n return {\n fillColor: fillColor,\n fillOpacity: fillOpacity,\n };\n }\n}\n","export class MapSvgRoutes {\n static markerSvgRoute: string = \"assets/ca-components/svg/map/routing_marker.svg\";\n static phone: string = \"assets/ca-components/svg/map/phone.svg\";\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\n\n//Modules\nimport {\n GoogleMap,\n GoogleMapsModule,\n MapInfoWindow,\n MapMarker,\n} from '@angular/google-maps';\n\n//icon\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { CaMapDropdownComponent } from '../ca-map-dropdown/ca-map-dropdown.component';\n\n//Enums\nimport { GoogleMapEnum } from '../ca-map/enums/google-map.enum';\n//models\nimport {\n IMapMarkers,\n IMapRoutePath,\n IMapStories,\n} from '../ca-map/models/map.model';\n//HelperFuntion\nimport { MapHelper } from '../ca-map/utils/helpers/map.helper';\n//svg-routes\nimport { MapSvgRoutes } from '../ca-map/utils/map-svg-routes/map-svg-routes';\n\n@Component({\n selector: 'app-ca-map',\n templateUrl: './ca-map.component.html',\n styleUrls: ['./ca-map.component.scss'],\n standalone: true,\n imports: [\n //Modules\n GoogleMapsModule,\n CommonModule,\n AngularSvgIconModule,\n //Components\n CaMapDropdownComponent,\n ],\n})\nexport class CaMapComponent {\n constructor(public cd: ChangeDetectorRef) {}\n @Input() data!: IMapStories | any;\n @Output() markerClick = new EventEmitter<google.maps.MapMouseEvent>();\n @ViewChild(GoogleMap, { static: false }) maps!: GoogleMap;\n @ViewChildren('marker') marker!: QueryList<MapMarker>;\n @ViewChildren(MapInfoWindow) infoWindowsView!: QueryList<MapInfoWindow>;\n @ViewChildren('markerRouting') markerRouting!: QueryList<MapMarker>;\n @ViewChildren(MapInfoWindow)\n public infoWindowsViewRouting!: QueryList<MapInfoWindow>;\n public currentlyOpenWindow!: MapInfoWindow | null;\n public currentlyOpenWindowIndex: number | null = null;\n public currentlyOpenWindowRouting!: MapInfoWindow | null;\n public currentlyOpenWindowIndexRouting: number | null = null;\n public showLabel: boolean = true;\n public previousIconUrl!: string;\n public focusedIcon!: number;\n public previousIconUrlRouting!: string;\n public focusedIconRouting!: number;\n private directionService = new google.maps.DirectionsService();\n public directionsRenderers: google.maps.DirectionsRenderer[] = [];\n public initialIcons: {\n url: string;\n labelOrigin?: google.maps.LatLngLiteral;\n }[] = [];\n public initialMarkerIcons: {\n url: string;\n labelOrigin?: google.maps.LatLngLiteral;\n }[] = [];\n\n ngOnInit() {\n this.storeInitialIconForMarker();\n this.storeInitialIconForRoutingMarker();\n // Reset all icons to their initial state on page load\n this.resetMarkersIcons();\n this.resetRoutingMarkers();\n //Display routes for routingMarkers\n this.calculateAndDisplayRoute();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['routingMarkers']) {\n this.data.routingMarkers = changes['routingMarkers'].currentValue;\n }\n }\n\n public storeInitialIconForMarker(): void {\n this.data!.markers?.forEach((marker: IMapMarkers, index: number) => {\n this.initialMarkerIcons[index] = {\n url: marker.icon!.url,\n labelOrigin: marker.icon!.labelOrigin,\n };\n });\n }\n\n public storeInitialIconForRoutingMarker(): void {\n this.data.routingMarkers?.forEach((marker: IMapMarkers, index: number) => {\n this.initialIcons[index] = {\n url: marker.icon!.url,\n labelOrigin: marker.icon!.labelOrigin,\n };\n });\n }\n\n public onMarkerClick(\n i: number,\n event: google.maps.MapMouseEvent,\n markeritem: IMapMarkers\n ): void {\n if (markeritem?.infoWindowContent) {\n if (this.currentlyOpenWindowIndex === i && this.currentlyOpenWindow) {\n const infoWindow = this.infoWindowsView.toArray()[i];\n // Close the currently open info window and reset the index\n this.data.markers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n item.icon = {\n url: this.initialMarkerIcons[index]!.url,\n labelOrigin: this.initialMarkerIcons[index]!.labelOrigin!,\n };\n }\n });\n\n infoWindow.close();\n this.currentlyOpenWindowIndex = null;\n } else {\n const markerIndex = this.marker.toArray()[i];\n const infoWindow = this.infoWindowsView.toArray()[i];\n if (this.currentlyOpenWindow) {\n this.currentlyOpenWindow.close();\n }\n if (infoWindow) {\n this.data.markers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n this.focusedIcon = i;\n this.showLabel = false;\n item.icon = {\n url: this.initialMarkerIcons[index]!.url,\n scaledSize: new google.maps.Size(70, 70),\n };\n } else {\n this.showLabel = true;\n item.icon = {\n url: this.initialMarkerIcons[index]!.url,\n labelOrigin: this.initialMarkerIcons[index]!.labelOrigin,\n };\n }\n });\n\n infoWindow.open(markerIndex);\n this.currentlyOpenWindow = infoWindow;\n this.currentlyOpenWindowIndex = i;\n this.markerClick.emit(event);\n }\n }\n } else {\n return;\n }\n }\n\n public setDirectionsOnMap(): void {\n if (this.maps?.googleMap) {\n this.directionsRenderers.forEach((renderer) =>\n renderer.setMap(this.maps?.googleMap!)\n );\n }\n }\n\n public calculateAndDisplayRoute(): void {\n if (this.data.routePaths) {\n // Clear previous directions renderers\n this.directionsRenderers.forEach((renderer) => renderer.setMap(null));\n this.directionsRenderers = [];\n\n this.data.routePaths!.forEach((route: IMapRoutePath) => {\n const request: google.maps.DirectionsRequest = {\n origin: route.path[0],\n destination: route.path[route.path.length - 1],\n waypoints: route.path\n .slice(1, route.path.length - 1)\n .map((position) => ({ location: position })),\n travelMode: google.maps.TravelMode.BICYCLING,\n };\n\n this.directionService.route(request, (result, status) => {\n if (status === google.maps.DirectionsStatus.OK && result?.routes[0]) {\n const directionsRenderer = new google.maps.DirectionsRenderer({\n suppressInfoWindows: true,\n suppressMarkers: true,\n preserveViewport: true,\n polylineOptions: {\n strokeColor: route.strokeColor || GoogleMapEnum.STROKE_COLOR,\n strokeOpacity:\n route.strokeOpacity || GoogleMapEnum.STROKE_OPACITY,\n },\n });\n directionsRenderer.setDirections(result);\n this.directionsRenderers.push(directionsRenderer);\n this.setDirectionsOnMap();\n }\n });\n });\n } else {\n return;\n }\n }\n\n public onRoutingMarkerClick(\n i: number,\n event: google.maps.MapMouseEvent,\n markeritem: IMapMarkers\n ): void {\n if (markeritem?.infoWindowContent) {\n if (\n this.currentlyOpenWindowIndexRouting === i &&\n this.currentlyOpenWindowRouting\n ) {\n const infoWindow = this.infoWindowsViewRouting.toArray()[i];\n // Close the currently open info window and reset the index\n this.data.routingMarkers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n item.icon = {\n url: this.initialIcons[index]!.url,\n labelOrigin: this.initialIcons[index]!.labelOrigin,\n };\n }\n });\n\n infoWindow.close();\n this.currentlyOpenWindowIndexRouting = null;\n } else {\n const markerIndex = this.markerRouting.toArray()[i];\n const infoWindow = this.infoWindowsViewRouting.toArray()[i];\n if (this.currentlyOpenWindowRouting) {\n this.currentlyOpenWindowRouting.close();\n }\n if (infoWindow) {\n // Restore the previous icon for the previously focused routing marker\n if (\n this.focusedIconRouting !== undefined &&\n this.focusedIconRouting !== i\n ) {\n const previousFocusedItem =\n this.data.routingMarkers![this.focusedIconRouting];\n if (previousFocusedItem) {\n previousFocusedItem.icon = {\n url: this.initialIcons[this.focusedIconRouting].url,\n labelOrigin:\n this.initialIcons[this.focusedIconRouting].labelOrigin,\n };\n }\n }\n\n // Update the current marker\n this.data.routingMarkers!.map((item: IMapMarkers, index: number) => {\n if (index === i) {\n this.previousIconUrlRouting = item.icon ? item.icon.url : '';\n this.focusedIconRouting = i;\n this.showLabel = false;\n item.icon = {\n url:\n this.data.isUnitViewStops || this.data.isDriverMiles\n ? item.icon!.url\n : MapSvgRoutes.markerSvgRoute,\n };\n } else {\n this.showLabel = true;\n }\n });\n\n infoWindow.open(markerIndex);\n this.currentlyOpenWindowRouting = infoWindow;\n this.currentlyOpenWindowIndexRouting = i;\n this.markerClick.emit(event);\n }\n }\n } else {\n return;\n }\n }\n\n ngAfterViewInit() {\n this.maps.googleMap?.addListener('click', () => {\n this.infoWindowsView.forEach((window: MapInfoWindow) => {\n window.close();\n this.currentlyOpenWindow = null;\n });\n this.infoWindowsViewRouting.forEach((window: MapInfoWindow) => {\n window.close();\n this.currentlyOpenWindowRouting = null;\n });\n this.data.markers?.map((item: IMapMarkers, i: number) => {\n if (i === this.focusedIcon) {\n item.icon = { url: item.icon ? item.icon.url : '' };\n this.cd.detectChanges();\n }\n });\n\n this.data.routingMarkers?.map((item: IMapMarkers, i: number) => {\n if (i === this.focusedIconRouting) {\n item.icon = {\n url: this.initialIcons[i].url,\n };\n this.cd.detectChanges();\n }\n });\n });\n }\n\n public resetMarkersIcons(): void {\n this.data.markers?.forEach((marker: IMapMarkers, index: number) => {\n marker.icon = {\n url: this.initialMarkerIcons[index].url,\n labelOrigin: this.initialMarkerIcons[index].labelOrigin,\n };\n });\n this.cd.detectChanges();\n }\n\n public resetRoutingMarkers(): void {\n this.data.routingMarkers?.forEach((marker: IMapMarkers, index: number) => {\n marker.icon = {\n url: marker.icon!.url,\n labelOrigin: marker.icon!.labelOrigin,\n };\n });\n }\n\n public onMapReady(): {\n fillColor?: string;\n strokeColor?: string;\n strokeWeight?: number;\n fillOpacity?: number;\n } | void {\n if (this.data.stateBoundariesUrl) {\n const stateBoundariesUrl = this.data.stateBoundariesUrl.url;\n this.maps.googleMap?.data.loadGeoJson(stateBoundariesUrl);\n\n this.maps.googleMap?.data.setStyle((feature) => {\n const stateDensity = feature.getProperty('density');\n const { fillColor, fillOpacity } = MapHelper.getFillColorForState(\n stateDensity as number,\n this.data.view || ''\n );\n return {\n fillColor: fillColor,\n strokeColor: '#EEEEEE',\n strokeWeight: 0.6,\n fillOpacity: fillOpacity,\n };\n });\n } else {\n return;\n }\n }\n\n public identity(index: number): number {\n return index;\n }\n\n ngOnDestroy() {\n this.directionsRenderers.forEach((renderer) => renderer.setMap(null));\n }\n}\n","<google-map\n height=\"500px\"\n width=\"100%\"\n [zoom]=\"data.mapZoom\"\n [center]=\"data.center\"\n [options]=\"data.mapOptions\"\n (idle)=\"onMapReady()\"\n>\n <map-marker\n #marker=\"mapMarker\"\n *ngFor=\"let markeritem of data.markers; let i = index; trackBy: identity\"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIcon !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsView=\"mapInfoWindow\">\n <app-ca-map-dropdown\n [isAccidentMap]=\"data.isAccidentMap ?? false\"\n ></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n <map-marker\n *ngFor=\"let marker of data.clustermarkers; let i = index; trackBy: identity\"\n [position]=\"marker.position\"\n [icon]=\"marker.icon\"\n [label]=\"marker.label!\"\n [title]=\"marker?.title!\"\n >\n </map-marker>\n\n <map-marker\n #markerRouting=\"mapMarker\"\n *ngFor=\"\n let markeritem of data.routingMarkers;\n let i = index;\n trackBy: identity\n \"\n [position]=\"markeritem.position\"\n [icon]=\"markeritem.icon!\"\n [label]=\"focusedIconRouting !== i ? markeritem.label! : ''\"\n [title]=\"markeritem.title!\"\n [options]=\"markeritem.options!\"\n (mapClick)=\"onRoutingMarkerClick(i, $event, markeritem)\"\n >\n <map-info-window #infoWindowsViewRouting=\"mapInfoWindow\">\n <app-ca-map-dropdown [isAccidentMap]=\"false\"></app-ca-map-dropdown>\n </map-info-window>\n </map-marker>\n</google-map>\n","import { DomSanitizer } from \"@angular/platform-browser\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"safeHtml\", standalone: true })\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {}\n\n transform(value: string) {\n return value ? this.sanitized.bypassSecurityTrustHtml(value) : \"\";\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n HostListener,\n} from \"@angular/core\";\n\n@Directive({\n selector: \"[Placeholder]\",\n standalone: true,\n})\nexport class PlaceholderDirective {\n @Input() placeholder: string = \"\";\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.updatePlaceholder();\n }\n\n @HostListener(\"input\") onInput() {\n this.updatePlaceholder();\n }\n\n @HostListener(\"focus\") onFocus() {\n this.updatePlaceholder(true);\n }\n\n @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: KeyboardEvent) {\n this.updatePlaceholder(true);\n }\n\n private updatePlaceholder(focus: boolean = false): void {\n const element = this.el.nativeElement;\n if (!element.innerText.trim() && !focus) {\n this.renderer.setProperty(element, \"innerText\", this.placeholder);\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n } else if (element.innerText === this.placeholder && focus) {\n this.renderer.setProperty(element, \"innerText\", \"\");\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n } else if (element.innerText === this.placeholder) {\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n } else {\n this.renderer.setStyle(element, \"color\", \"#DADADA\");\n }\n }\n}\n","export class CopyPasteHelper {\n static onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedData = event.clipboardData!.getData(\"text/plain\");\n document.execCommand(\"insertText\", false, pastedData);\n }\n}\n","import { NoteActiveOptions } from '../../../../models/note-active-options.model';\nimport { NoteColors } from '../../../ca-note-container/models/note-colors.model';\n\nexport class NoteConfigConstants {\n static noteDarkColors: NoteColors[] = [\n {\n color: 'rgb(218, 218, 218)',\n name: 'Gray',\n },\n {\n color: 'rgb(102, 146, 241)',\n name: 'Blue',\n },\n {\n color: 'rgb(86, 180, 172)',\n name: 'Green',\n },\n {\n color: 'rgb(230, 103, 103)',\n name: 'Red',\n },\n {\n color: 'rgb(250, 177, 92)',\n name: 'Yellow',\n },\n {\n color: 'rgb(179, 112, 240)',\n name: 'Purple',\n },\n ];\n\n static noteLightColors: NoteColors[] = [\n {\n color: 'rgb(66, 66, 66)',\n name: 'Black',\n },\n {\n color: 'rgb(59, 115, 237)',\n name: 'Blue',\n },\n {\n color: 'rgb(37, 159, 148)',\n name: 'Green',\n },\n {\n color: 'rgb(223, 60, 60)',\n name: 'Red',\n },\n {\n color: 'rgb(248, 155, 46)',\n name: 'Yellow',\n },\n {\n color: 'rgb(158, 71, 236)',\n name: 'Purple',\n },\n ];\n\n static noteActiveOptions: NoteActiveOptions = {\n bold: false,\n italic: false,\n foreColor: false,\n underline: false,\n };\n}\n","export enum NoteSelectedColorStringEnum {\n GRAY_RGB = \"rgb(218, 218, 218)\",\n GRAY = \"Gray\",\n}\n","export enum NoteDefaultStringEnum {\n FORE_COLOR = \"ForeColor\",\n FORE_COLOR2 = \"foreColor\",\n MAIN_EDITOR = \"main_editor\",\n CSS_STYLE = \"styleWithCSS\",\n FALSE = \"false\",\n COLOR = \"color\",\n DARK = \"dark\",\n}\n","export class NoteContainerSvgRoutes {\n static boldRoute: string = \"assets/ca-components/svg/note/bold.svg\";\n static itallicRoute: string = \"assets/ca-components/svg/note/Itallic.svg\";\n static colorRoute: string = \"assets/ca-components/svg/note/Note - Empty.svg\";\n static underlineRoute: string = \"assets/ca-components/svg/note/Underline.svg\";\n static checkRoute: string = \"assets/ca-components/svg/note/tick.svg\";\n static arrowRoute: string = \"assets/ca-components/svg/note/arrow.svg\";\n}\n","import { Subject } from 'rxjs';\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Animations\nimport { pickupAnimation } from '../../animations/animation';\n\n// Modules\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Constants\nimport { NoteConfigConstants } from '../ca-note-container/utils/constants/note-config.constant';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n// Models\nimport { NoteActiveOptions } from '../../models/note-active-options.model';\nimport { NoteColors } from '../ca-note-container/models/note-colors.model';\n\n// Enums\nimport { NoteSelectedColorStringEnum } from '../ca-note-container/enums/note-selected-color.enum';\nimport { NoteDefaultStringEnum } from '../ca-note-container/enums/note-default-string.enum';\n\n//svg-routes\nimport { NoteContainerSvgRoutes } from '../ca-note-container/utils/svg-routes/note-container-svg-routes';\n\n@Component({\n selector: 'app-ca-note-container',\n templateUrl: './ca-note-container.component.html',\n styleUrls: ['./ca-note-container.component.scss'],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n\n // Component\n CaAppTooltipV2Component,\n ],\n animations: [pickupAnimation],\n})\nexport class CaNoteContainerComponent implements OnInit, OnDestroy {\n @Input() value!: string;\n @Input() range!: Range;\n @Input() selectionTaken!: Selection;\n @Input() isExpanded!: boolean | string;\n @Input() isParking: boolean = false;\n @Input() isPopoverNote: boolean = false;\n @Input() isVisibleArrow: boolean = true;\n @Input() type!: string;\n @Input() selectedEditor!: HTMLDivElement;\n\n @Output() stopBlurRemoveTimeout = new EventEmitter();\n\n //Colors\n public selectedPaternColor: string = NoteSelectedColorStringEnum.GRAY_RGB;\n public activeOptions: NoteActiveOptions | any = {\n ...NoteConfigConstants.noteActiveOptions,\n };\n public containerColors!: NoteColors[];\n public selectedColorName!: NoteColors;\n\n //Timeout\n private slowTimeout!: NodeJS.Timeout;\n private lastSavedIndex: number = -1;\n\n //Pattern\n private isDefaultColorSet: boolean = false;\n public isShowColorPattern!: boolean;\n public isClosedPattern: boolean = false;\n public isHoveringArrowPicker: boolean = false;\n\n private destroy$ = new Subject<void>();\n\n constructor() {}\n\n ngOnInit(): void {\n this.setContainerColors();\n }\n\n private filterContainersColor(): void {\n this.containerColors.sort((a) => {\n if (a[NoteDefaultStringEnum.COLOR] !== this.selectedColorName.color) {\n return 1;\n }\n return -1;\n });\n }\n\n public executeEditor(action: string, color?: string, indx?: number): void {\n this.stopBlurRemoveTimeout.emit();\n if (indx || indx === 0) this.selectedColorName = this.containerColors[indx];\n\n if (this.range) {\n this.selectionTaken.removeAllRanges();\n this.selectionTaken.addRange(this.range);\n }\n if (action !== NoteDefaultStringEnum.FORE_COLOR2) {\n this.isShowColorPattern = false;\n this.activeOptions[action] = !this.activeOptions[action];\n if (!this.activeOptions[action]) {\n if (this.value.replace('<br>', '') === '')\n this.selectionTaken.removeAllRanges();\n\n document.execCommand(\n NoteDefaultStringEnum.CSS_STYLE,\n false,\n NoteDefaultStringEnum.FALSE\n );\n document.execCommand(action, false);\n } else {\n this.focusElement();\n document.execCommand(action, false);\n }\n } else {\n if (this.lastSavedIndex != indx) this.filterContainersColor();\n\n this.lastSavedIndex = indx || -1;\n setTimeout(() => {\n this.focusElement();\n setTimeout(() => {\n this.focusElement();\n this.selectedPaternColor = color || 'grey';\n document.execCommand(NoteDefaultStringEnum.FORE_COLOR2, false, color);\n });\n });\n }\n }\n public togglePattern(): void {\n this.isShowColorPattern = !this.isShowColorPattern;\n\n if (!this.isShowColorPattern)\n setTimeout(() => {\n this.isClosedPattern = false;\n }, 300);\n else this.isClosedPattern = true;\n }\n\n public hoveringArrow(value: boolean): void {\n this.isHoveringArrowPicker = value;\n }\n\n private setContainerColors(): void {\n this.containerColors =\n this.type === NoteDefaultStringEnum.DARK\n ? [...NoteConfigConstants.noteDarkColors]\n : [...NoteConfigConstants.noteLightColors];\n\n this.selectedColorName = {\n name: this.containerColors[0].name,\n color: this.containerColors[0].color,\n };\n }\n\n /**Function retrun id */\n public identity(index: number): number {\n return index;\n }\n\n public getSvgPath(propertyName: keyof typeof NoteContainerSvgRoutes): string {\n return NoteContainerSvgRoutes[propertyName] as string;\n }\n\n public focusElement(): void {\n if (this.selectedEditor) this.selectedEditor.focus();\n else document.getElementById(NoteDefaultStringEnum.MAIN_EDITOR)!.focus();\n }\n\n public checkActiveItems(): void {\n for (const act in this.activeOptions) {\n this.activeOptions[act] = document.queryCommandState(act);\n\n clearTimeout(this.slowTimeout);\n this.slowTimeout = setTimeout(() => {\n const findedColor = this.containerColors.find(\n (item) =>\n item.color ===\n document.queryCommandValue(NoteDefaultStringEnum.FORE_COLOR)\n );\n this.selectedColorName = findedColor\n ? findedColor\n : {\n color: NoteSelectedColorStringEnum.GRAY_RGB,\n name: NoteSelectedColorStringEnum.GRAY,\n };\n }, 200);\n this.selectedPaternColor = document.queryCommandValue(\n NoteDefaultStringEnum.FORE_COLOR\n );\n }\n\n if (this.isDefaultColorSet) {\n this.containerColors.map((col, indx) => {\n if (col.color === this.selectedPaternColor) {\n this.selectedColorName = this.containerColors[indx];\n\n if (this.lastSavedIndex != indx) {\n this.filterContainersColor();\n }\n this.lastSavedIndex = indx;\n setTimeout(() => {\n this.focusElement();\n setTimeout(() => {\n this.focusElement();\n this.selectedPaternColor = col.color;\n });\n });\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.isShowColorPattern = false;\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n [class.active]=\"isExpanded\"\n [class.parking_editor_menu]=\"isParking\"\n [class.opened_parking_editor.justify-content-end]=\"\n isParking && isShowColorPattern\n \"\n [class.dark]=\"type === 'dark'\"\n class=\"editor_menu d-flex align-items-center\"\n>\n <ng-container *ngIf=\"!isParking || (isParking && !isShowColorPattern)\">\n <div class=\"font_editor d-flex\" [class.parking_font_editor]=\"isParking\">\n <div\n (click)=\"executeEditor('bold')\"\n [class.active]=\"activeOptions.bold\"\n [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n ngbTooltip\n [mainTooltip]=\"'Bold'\"\n position=\"bottom\"\n class=\"editor_buttons main_commands bold_text d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('boldRoute')\"></svg-icon>\n </div>\n <div\n (click)=\"executeEditor('italic')\"\n [class.active]=\"activeOptions.italic\"\n [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n ngbTooltip\n [mainTooltip]=\"'Italic'\"\n position=\"bottom\"\n class=\"editor_buttons d-flex justify-content-center align-items-center main_commands italic_text\"\n >\n <svg-icon [src]=\"getSvgPath('itallicRoute')\"></svg-icon>\n </div>\n <div\n (click)=\"executeEditor('underline')\"\n [class.active]=\"activeOptions.underline\"\n [tooltipBackground]=\"type === 'dark' ? '#2F2F2F' : '#6C6C6C'\"\n ngbTooltip\n [mainTooltip]=\"'Underline'\"\n position=\"bottom\"\n class=\"editor_buttons d-flex justify-content-center align-items-center main_commands underline_text\"\n >\n <svg-icon [src]=\"getSvgPath('underlineRoute')\"></svg-icon>\n </div>\n <div class=\"note_separator\"></div>\n </div>\n <div\n (click)=\"togglePattern()\"\n [class.no_opacity]=\"isShowColorPattern\"\n [class.parking_tooltip.d-flex.justify-content-end]=\"\n isParking && isShowColorPattern\n \"\n class=\"editor_buttons d-flex justify-content-center align-items-center text_color justify-content-end\"\n [class.popover_text_color.justify-content-start]=\"isPopoverNote\"\n [class.active]=\"isShowColorPattern\"\n >\n <div\n class=\"colors_patter d-flex align-items-center\"\n id=\"colors_patter\"\n [class.closed_pattern]=\"!isClosedPattern\"\n [class.input_note.flex-reverse]=\"!isPopoverNote\"\n >\n <ng-container\n *ngFor=\"\n let paternCol of containerColors;\n let indx = index;\n trackBy: identity\n \"\n >\n <div\n (click)=\"executeEditor('foreColor', paternCol.color, indx)\"\n [style.backgroundColor]=\"paternCol.color\"\n [class.hide_elements]=\"indx && !isShowColorPattern\"\n [tooltipBackground]=\"\n indx && !isShowColorPattern\n ? ''\n : type === 'dark'\n ? '#2F2F2F'\n : '#6C6C6C'\n \"\n ngbTooltip\n [mainTooltip]=\"\n indx === 0 && !isShowColorPattern\n ? 'Color Picker'\n : indx && !isShowColorPattern\n ? ''\n : !indx && isShowColorPattern\n ? 'Close'\n : paternCol.name\n \"\n position=\"bottom\"\n class=\"editor_buttons_colors d-flex justify-content-center align-items-center\"\n [class.justify-content-start]=\"isPopoverNote\"\n [ngStyle]=\"{\n opacity: !isShowColorPattern && indx ? 0 : 1,\n }\"\n (mouseenter)=\"hoveringArrow(!!isShowColorPattern && !indx)\"\n (mouseleave)=\"hoveringArrow(false)\"\n >\n <ng-container *ngIf=\"!indx\">\n <div\n class=\"color_picker_arrow d-flex\"\n [class.flip_arrow]=\"\n (!isPopoverNote && isShowColorPattern) ||\n (isPopoverNote && !isShowColorPattern)\n \"\n [class.regular_icon]=\"\n !isPopoverNote && isShowColorPattern && !isHoveringArrowPicker\n \"\n [class.active]=\"isShowColorPattern\"\n [class.hovering_picker]=\"\n !isHoveringArrowPicker && isShowColorPattern\n \"\n >\n <svg-icon\n [src]=\"\n !isHoveringArrowPicker && isShowColorPattern\n ? getSvgPath('checkRoute')\n : getSvgPath('arrowRoute')\n \"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isParking && !isPopoverNote && isVisibleArrow\">\n <div class=\"note_border_line\" [class.dark]=\"type === 'dark'\"></div>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { LottieModule } from \"ngx-lottie\";\n\n@Component({\n selector: \"app-ca-spinner\",\n templateUrl: \"./ca-spinner.component.html\",\n styleUrls: [\"./ca-spinner.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n // Module\n CommonModule,\n LottieModule,\n ],\n})\nexport class CaSpinnerComponent implements OnChanges {\n @Input() size?: string; // small, big\n @Input() color?: string; // black, gray, white, blueLight, blueDark\n @Input() isBarSpinner?: boolean = false;\n\n public lottieSpinner!: { path: string };\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.getLottieSpinner(changes);\n }\n\n public getLottieSpinner(changes: SimpleChanges): void {\n if (changes[\"size\"]?.currentValue !== changes[\"size\"]?.previousValue) {\n this.lottieSpinner = {\n path: `lottie/ta-lottie-spinner/${\n this.size === \"small\" ? \"18px\" : \"32px\"\n }/${this.color}.json`,\n };\n }\n }\n}\n","<div\n class=\"d-flex align-items-center justify-content-left spinner-container\"\n [ngStyle]=\"{\n width: isBarSpinner ? '100px' : 'unset',\n 'margin-right': isBarSpinner ? '30px' : 0,\n }\"\n>\n <ng-container *ngIf=\"!isBarSpinner; else barSpinner\">\n <ng-lottie [options]=\"lottieSpinner\"></ng-lottie>\n </ng-container>\n\n <ng-template #barSpinner>\n <span class=\"bar-spinner\"></span>\n </ng-template>\n</div>\n","export class NoteSvgRoutes {\n static trashRoute: string = \"assets/ca-components/svg/popup/trash.svg\";\n static noteRoute: string = \"assets/ca-components/svg/note/note-empty.svg\";\n static noteFilledRoute: string = \"assets/ca-components/svg/note/note-filled.svg\";\n}","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n// modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { CommonModule } from '@angular/common';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// moment\nimport moment from 'moment';\n\n// animations\nimport { noteLongAnimation, pickupAnimation } from '../../animations/animation';\n\n//pipe\nimport { SafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\n//models\nimport { NoteActiveOptions } from '../../models/note-active-options.model';\nimport { PlaceholderDirective } from '../../directives/placeholder-directive';\n\n//helper\nimport { CopyPasteHelper } from '../ca-note/utils/helper/copy-paste.helper';\n\n//components\nimport { CaNoteContainerComponent } from '../ca-note-container/ca-note-container.component';\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n\n//svg-routess\nimport { NoteSvgRoutes } from '../ca-note/utils/svg-routes/note-svg-routes';\n\n@Component({\n selector: 'app-ca-note',\n templateUrl: './ca-note.component.html',\n styleUrls: ['./ca-note.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n // Module\n CommonModule,\n NgbModule,\n AngularSvgIconModule,\n\n //Components\n CaNoteContainerComponent,\n CaAppTooltipV2Component,\n CaSpinnerComponent,\n\n //Directives\n PlaceholderDirective,\n\n // Pipe\n SafeHtmlPipe,\n ],\n animations: [pickupAnimation, noteLongAnimation],\n})\nexport class CaNoteComponent {\n @Output() saveNoteValue = new EventEmitter();\n\n @Input() isParking: boolean = false;\n @Input() dispatchIndex: number = -1;\n @Input() type!: string;\n @Input() parentWidth!: string;\n @Input() isDispatch: boolean = false;\n @Input() set noteWidth(value: number) {\n this._noteWidth = value;\n }\n @Input() set isOpenAll(value: boolean) {\n this.isAllOpen = value;\n if (this.isDispatch) {\n this.closeNote(true);\n this.setNoteParentWidth();\n }\n }\n @ViewChild('main_editor') public main_editor!: ElementRef;\n @ViewChild('note_popover') public note_popover!: ElementRef;\n @ViewChild('noteContainer') public noteContainer!: CaNoteContainerComponent;\n\n public placeholder = 'Write Something...';\n public _note!: string;\n public _noteWidth: number = 250;\n public _parentWidth: number = 250;\n public isAllOpen!: boolean;\n\n public noteIcon: string =\n this._note !== '' ? NoteSvgRoutes.noteRoute : NoteSvgRoutes.noteFilledRoute;\n\n //note container\n public isShowColorPattern!: boolean;\n public buttonsExpanded = false;\n public activeOptions!: NoteActiveOptions;\n public selectedPaternColor: string = '#6C6C6C';\n\n //properties and values\n\n public isExpanded: boolean = false;\n public isNoteOpened: boolean = false;\n public value: string = '';\n private lastTypeTime!: number;\n public isleavedOpened!: boolean;\n public selectionTaken!: Selection;\n public range!: Range;\n public isFocused: boolean = false;\n private isPreventedClosing: boolean = false;\n\n //saving\n public isSavingNote: boolean = false;\n public savedValue: string = '';\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private ref: ChangeDetectorRef,\n private elRef: ElementRef\n ) {}\n ngAfterViewInit(): void {\n this.value = this._note;\n }\n\n public checkFocus(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.isFocused = true;\n this.isleavedOpened = true;\n this.isExpanded = true;\n setTimeout(() => {\n this.buttonsExpanded = true;\n this.checkActiveItems();\n }, 150);\n }\n\n public toggleNote(data: string, t2: NgbPopover): void {\n this.isPreventedClosing = true;\n setTimeout(() => {\n this.isPreventedClosing = false;\n }, 200);\n\n if (t2?.isOpen()) {\n if (this.isOpenAll) {\n this.isleavedOpened = true;\n } else if (!this.isExpanded) {\n this.isleavedOpened = false;\n this.checkActiveItems();\n this.isExpanded = true;\n this.buttonsExpanded = true;\n setTimeout(() => {\n t2.open();\n }, 1);\n } else {\n this.isExpanded = false;\n this.buttonsExpanded = false;\n this.isleavedOpened = false;\n this.isNoteOpened = false;\n this._note = this.value;\n t2.close();\n }\n this.isShowColorPattern = false;\n } else {\n if (!data || data == '' || this.isOpenAll) {\n this.buttonsExpanded = true;\n this.isExpanded = true;\n }\n this.isleavedOpened = true;\n setTimeout(() => {\n this.isNoteOpened = true;\n }, 1);\n t2.open();\n }\n }\n\n public prepareForTextRange(): void {\n this.isFocused = false;\n this.selectionTaken = window.getSelection()!;\n if (this.selectionTaken.rangeCount && this.selectionTaken.getRangeAt) {\n this.range = this.selectionTaken.getRangeAt(0);\n this.selectionTaken.removeAllRanges();\n this.selectionTaken.addRange(this.range);\n }\n }\n\n public preventMouseDown(ev: Event): void {\n ev.stopPropagation();\n ev.preventDefault();\n }\n\n public valueChange(event: Event | string, deleteAll?: boolean): void {\n if (event) {\n const target = (event as Event).target as HTMLElement;\n this.value = target.innerHTML;\n } else {\n this.value = event;\n }\n this.checkActiveItems();\n this.lastTypeTime = moment().unix();\n this.checkNoteImage(this.value);\n }\n\n public saveNote(autoSave?: boolean, deleteAll?: boolean): void {\n setTimeout(() => {\n if (!autoSave && this.isOpenAll) {\n this.closeNote();\n }\n }, 200);\n if (this.value == '<br>') {\n this.value = this.value.replace('<br>', '');\n }\n\n this.savedValue = this.value;\n if (deleteAll) this.closeNote();\n }\n\n private closeNote(dontTransfer?: boolean): void {\n this.isNoteOpened = false;\n this.isleavedOpened = false;\n this.isShowColorPattern = false;\n this.isExpanded = false;\n this.buttonsExpanded = false;\n this._note = this.value;\n\n if (!dontTransfer) this.transferNoteData();\n }\n public popoverClosed(): void {\n if (!this.isPreventedClosing) {\n this.closeNote();\n }\n\n this.isPreventedClosing = false;\n }\n\n public onPaste(event: ClipboardEvent): void {\n CopyPasteHelper.onPaste(event);\n }\n\n private transferNoteData(): void {\n if (this.dispatchIndex === -1) this.saveNoteValue.emit(this.value);\n else\n this.saveNoteValue.emit({\n note: this.value,\n dispatchIndex: this.dispatchIndex,\n });\n }\n\n private checkNoteImage(note: string): void {\n if (note && note != '') {\n this.noteIcon = this.getSvgPath('noteFilledRoute');\n } else {\n this.noteIcon = this.getSvgPath('noteRoute');\n }\n }\n\n public getSvgPath(propertyName: keyof typeof NoteSvgRoutes): string {\n return NoteSvgRoutes[propertyName] as string;\n }\n\n private checkActiveItems(): void {\n if (this.noteContainer && this.noteContainer?.checkActiveItems) {\n this.noteContainer?.checkActiveItems();\n }\n }\n\n private setNoteParentWidth(): void {\n if (this.parentWidth && this.isAllOpen) {\n setTimeout(() => {\n const parentWidth = this.elRef.nativeElement\n .closest(this.parentWidth)\n .getBoundingClientRect();\n this._parentWidth = this.isDispatch\n ? parentWidth.width - 2\n : parentWidth.width;\n this.ref.detectChanges();\n }, 1000);\n }\n }\n\n ngOnDestroy(): void {\n this.isleavedOpened = false;\n this.isShowColorPattern = false;\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"all_note_holder\"\n [class.closed_main_holder.d-flex]=\"!isAllOpen && isNoteOpened\"\n [class.opened_main_all_holder.d-flex.align-items-center]=\"isAllOpen\"\n #t2=\"ngbPopover\"\n [ngbPopover]=\"note_popover\"\n [autoClose]=\"'outside'\"\n [container]=\"'body'\"\n [placement]=\"'right-top'\"\n popoverClass=\"isAllOpen && isDispatch\n ? 'my-note-popover dispatch-note'\n : 'my-note-popover'\n\"\n triggers=\"manual\"\n (click)=\"isAllOpen ? toggleNote(_note, t2) : ''\"\n>\n <ng-container\n *ngIf=\"!isAllOpen && (isNoteOpened || (!isNoteOpened && !isSavingNote))\"\n >\n <div\n class=\"note_button_hold\"\n [ngClass]=\"{\n 'note-normal-icon': !isAllOpen,\n 'note-note-empty': !_note && !isAllOpen,\n 'note-all-expanded': isNoteOpened,\n }\"\n [tooltipBackground]=\"'#424242'\"\n ngbTooltip\n [mainTooltip]=\"isNoteOpened ? 'Close Note' : 'Note'\"\n position=\"bottom\"\n >\n <svg-icon\n #t2=\"ngbPopover\"\n [ngbPopover]=\"note_popover\"\n [autoClose]=\"'outside'\"\n class=\"note-btn\"\n [container]=\"'body'\"\n [placement]=\"'right-top'\"\n [animation]=\"false\"\n popoverClass=\"my-note-popover\"\n triggers=\"manual\"\n (click)=\"toggleNote(_note, t2)\"\n (hidden)=\"popoverClosed()\"\n [src]=\"noteIcon\"\n >\n </svg-icon>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isAllOpen && !isNoteOpened && isSavingNote\">\n <div class=\"spinner d-flex justify-content-center align-items-center\">\n <app-ca-spinner\n [size]=\"'small'\"\n [color]=\"'blueDark'\"\n ></app-ca-spinner></div\n ></ng-container>\n <ng-container *ngIf=\"isAllOpen\">\n <div [innerHTML]=\"_note | safeHtml\" class=\"note_inner_text\"></div\n ></ng-container>\n</div>\n\n<ng-template #note_popover let-data=\"data\">\n <div\n class=\"kendo-editor-note-wrapper\"\n [class.opened_all_hold]=\"isAllOpen\"\n [class.closed_note_hold]=\"!isAllOpen && isNoteOpened\"\n [class.dispatch]=\"isDispatch\"\n >\n <div\n [class.expanded]=\"isExpanded\"\n class=\"k-widget k-editor custom_editor\"\n [ngStyle]=\"{\n width: parentWidth ? _parentWidth + 'px' : _noteWidth + 'px',\n }\"\n >\n <div\n (blur)=\"prepareForTextRange()\"\n (focus)=\"checkFocus($event)\"\n (input)=\"valueChange($event)\"\n @noteLongAnimation\n [@.disabled]=\"isAllOpen || isParking || isNoteOpened\"\n [class.not_expanded]=\"!isExpanded\"\n [class.parking_text_hold]=\"isParking\"\n [class.opened_all_editor]=\"isAllOpen\"\n [innerHTML]=\"_note | safeHtml\"\n class=\"editor\"\n contenteditable=\"true\"\n spellcheck=\"false\"\n id=\"main_editor\"\n #mainEditorDiv\n (paste)=\"onPaste($event)\"\n Placeholder\n [placeholder]=\"placeholder\"\n ></div>\n <ng-container *ngIf=\"isExpanded\">\n <div class=\"container_separate\">\n <div class=\"container_separate_inner\"></div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isSavingNote && isExpanded\">\n <div class=\"spinner\" *ngIf=\"isSavingNote && isExpanded\">\n <app-ca-spinner\n [size]=\"'small'\"\n [color]=\"'blueDark'\"\n ></app-ca-spinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isSavingNote && isExpanded\">\n <div class=\"spinner\">\n <app-ca-spinner\n [size]=\"'small'\"\n [color]=\"'blueDark'\"\n ></app-ca-spinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isExpanded\">\n <div\n class=\"note_container d-flex align-items-center justify-content-between\"\n (click)=\"preventMouseDown($event)\"\n >\n <app-ca-note-container\n #noteContainer\n [isExpanded]=\"isExpanded\"\n [range]=\"range\"\n [selectionTaken]=\"selectionTaken\"\n [value]=\"value\"\n [isParking]=\"isParking\"\n [isPopoverNote]=\"true\"\n [type]=\"'dark'\"\n [selectedEditor]=\"main_editor?.nativeElement\"\n ></app-ca-note-container>\n <ng-container *ngIf=\"!isSavingNote && value\">\n <div\n [tooltipBackground]=\"'#424242'\"\n ngbTooltip\n [mainTooltip]=\"'Delete'\"\n position=\"bottom\"\n >\n <svg-icon\n [src]=\"getSvgPath('trashRoute')\"\n (click)=\"valueChange('', true)\"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import {\n trigger,\n transition,\n style,\n animate,\n state,\n} from '@angular/animations';\nexport const accordionAnimation = (type: string) =>\n trigger(type, [\n state(\n 'true',\n style({\n height: '*',\n opacity: '1',\n 'margin-top': '{{marginTop}}',\n 'margin-bottom': '{{marginBottom}}',\n }),\n {\n params: {\n marginTop: '{{marginTop}}',\n marginBottom: '{{marginBottom}}',\n },\n }\n ),\n state(\n 'false',\n style({\n height: '0px',\n opacity: '0',\n 'margin-top': '0px',\n })\n ),\n state(\n 'null',\n style({\n height: '*',\n })\n ),\n transition('false <=> true', [animate('.3s ease-in-out')]),\n transition('true <=> false', [animate('.3s ease-in-out')]),\n ]);\n","export class SvgRoutes {\n static downArrow = 'assets/ca-components/svg/common/payroll-down-arrow.svg';\n static upArrow = 'assets/ca-components/svg/common/payroll-up-arrow.svg';\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\n//Third-party-module\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//animation\nimport { accordionAnimation } from '../../animations/accordion-animation';\n\n//svg-routes\nimport { SvgRoutes } from '../../utils/svg-routes/payroll-list-summary-svg-routes';\n\n//model\nimport { PayrollListSummaryOverview } from '../../models/payroll-list-summary.model';\n\n@Component({\n selector: 'app-ca-payroll-list-summary-overview',\n templateUrl: './ca-payroll-list-summary-overview.component.html',\n styleUrls: ['./ca-payroll-list-summary-overview.component.scss'],\n standalone: true,\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n ],\n animations: [accordionAnimation('showHideCardBody')],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaPayrollListSummaryOverviewComponent {\n @Input() item!: PayrollListSummaryOverview;\n public isItemExpanded: boolean = true;\n\n @Input() isExpanded: boolean = false;\n @Input() index: number = -1;\n\n @Output() toggle: EventEmitter<void> = new EventEmitter<void>();\n @Input() animationMarginParams = {\n marginTop: '12px',\n marginBottom: '12px',\n };\n constructor() {}\n\n public getSvgPath(propertyName: keyof typeof SvgRoutes): string {\n return SvgRoutes[propertyName] as string;\n }\n\n public toggleAccordion(): void {\n this.isExpanded = !this.isExpanded;\n this.toggle.emit();\n }\n}\n","<div class=\"accordion\" id=\"accordionExample\">\n <div class=\"accordion-item\">\n <div>\n <div\n class=\"d-flex justify-content-between align-items-center accordion-header\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n (click)=\"toggleAccordion()\"\n >\n <div\n class=\"d-flex header-content ca-font-extra-bold\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n >\n <div class=\"me-1\">\n <span>{{ item.text }}</span>\n </div>\n <div class=\"me-1\">({{ item.type }})</div>\n <div\n class=\"small me-1 heading-count d-flex align-items-center\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n >\n <div\n class=\"item-count ca-font-bold\"\n [ngClass]=\"{ 'is-expanded': isExpanded }\"\n >\n {{ item.itemCount }}\n </div>\n </div>\n </div>\n <div\n class=\"d-flex align-items-center header-content-right ca-font-bold\"\n >\n <ng-container *ngIf=\"item.isOpen\">\n <div class=\"me-2 date\" [ngClass]=\"{ 'is-expanded': isExpanded }\">\n {{ item.date | date: 'dd/MM/yyyy' }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.status !== 'success'; else successStatus\">\n <div\n class=\"d-flex amount me-1\"\n [ngClass]=\"{\n danger: item.status === 'danger',\n positive: item.status === 'positive',\n }\"\n [class.is-danger-expanded]=\"\n item.status === 'danger' && isExpanded\n \"\n [class.is-positive-expanded]=\"\n item.status === 'positive' && isExpanded\n \"\n >\n <div class=\"me-1\">{{ item.money | currency }}</div>\n <div>({{ item.moneyCounter }})</div>\n </div>\n </ng-container>\n <ng-template #successStatus\n ><div\n class=\"d-flex amount me-1\"\n [ngClass]=\"{\n success: item.status === 'success',\n }\"\n [class.is-success-expanded]=\"\n item.status === 'success' && isExpanded\n \"\n >\n <div class=\"me-1\">ALL PAID</div>\n </div>\n </ng-template>\n <div\n class=\"accordion-toggle-icon\"\n [ngClass]=\"{\n svg_rotate: isExpanded,\n rotate_back: !isExpanded,\n }\"\n >\n <svg-icon [src]=\"getSvgPath('downArrow')\" alt=\"Toggle\"></svg-icon>\n </div>\n </div>\n </div>\n </div>\n <div\n [id]=\"'collapseOne' + index\"\n class=\"accordion-collapse\"\n [class.show]=\"isExpanded\"\n data-bs-parent=\"#accordionExample\"\n [@showHideCardBody]=\"{\n value: isExpanded.toString(),\n params: animationMarginParams,\n }\"\n >\n <ng-container>\n <div class=\"accordion-body\">\n <!-- Add the expanded content here -->\n <!-- {{ item.description }} -->\n <ng-container *ngIf=\"isExpanded\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//components\nimport { CaPayrollListSummaryOverviewComponent } from '../ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\n\n//models\nimport { PayrollListSummaryOverview } from '../../models/payroll-list-summary.model';\n\n@Component({\n selector: 'app-ca-payroll-list-summary-overview-table',\n standalone: true,\n imports: [CommonModule, CaPayrollListSummaryOverviewComponent],\n templateUrl: './ca-payroll-list-summary-overview-table.component.html',\n styleUrls: ['./ca-payroll-list-summary-overview-table.component.scss'],\n})\nexport class CaPayrollListSummaryOverviewTableComponent {\n @Input() data!: PayrollListSummaryOverview[];\n public openIndex!: number | null;\n\n public identity(index: number, item: PayrollListSummaryOverview): string {\n return item.text;\n }\n\n public toggleItem(index: number): number | void {\n this.openIndex = this.openIndex === index ? null : index;\n }\n}\n","<table class=\"table\">\n <tbody>\n <tr *ngFor=\"let item of data; let i = index; trackBy: identity\">\n <td>\n <app-ca-payroll-list-summary-overview\n [item]=\"item\"\n [index]=\"i\"\n [isExpanded]=\"openIndex === i\"\n (toggle)=\"toggleItem(i)\"\n ></app-ca-payroll-list-summary-overview>\n </td>\n </tr>\n </tbody>\n</table>\n","export enum StatusTypeEnum {\n CLOSED = \"CLOSED\",\n ACTIVE = \"ACTIVE\",\n PENDING = \"PENDING\",\n}\n","export class PickupDeliverySvgRoutes {\n static arrowLeft: string = \"assets/ca-components/svg/pickup-delivery/arrowLeft.svg\";\n static arrowLeftHover: string = \"assets/ca-components/svg/pickup-delivery/arrowLeftHover.svg\";\n static arrowRight: string = \"assets/ca-components/svg/pickup-delivery/arrowRight.svg\";\n static leftArrow: string = \"assets/ca-components/svg/pickup-delivery/leftArrow.svg\";\n static phoneIcon: string = \"assets/ca-components/svg/pickup-delivery/phoneIcon.svg\";\n static mailIcon: string = \"assets/ca-components/svg/pickup-delivery/mailIcon.svg\";\n static markerSvgRoute: string = \"assets/ca-components/svg/pickup-delivery/routing_marker.svg\";\n static vector: string = \"assets/ca-components/svg/pickup-delivery/vector.svg\";\n static userIcon: string = \"assets/ca-components/svg/pickup-delivery/userIcon.svg\";\n static options: string = \"assets/ca-components/svg/pickup-delivery/options.svg\";\n static miles: string = \"/assets/ca-components/svg/pickup-delivery/miles.svg\";\n static optionsVertical: string = \"assets/ca-components/svg/pickup-delivery/optionsVertical.svg\";\n static detailsOptions: string = \"assets/ca-components/svg/pickup-delivery/detailsOptions.svg\";\n}\n","export class OptionsButtonIconsSvgRoutes {\n static optionsDefault: string = \"assets/ca-components/svg/pickup-delivery/detailsOptions.svg\";\n static optionsClicked: string = \"assets/ca-components/svg/pickup-delivery/mapOptionsDark.svg\";\n}\n","export class PickupDeliveryBlockConstants {\n static readonly activeOptions = [\n { Icon: \"assets/ca-components/svg/popup/edit-hover.svg\", text: \"Edit\" },\n { Icon: \"assets/ca-components/svg/popup/ic_info.svg\", text: \"View Details\" },\n { Icon: \"assets/ca-components/svg/popup/share-icon.svg\", text: \"Share\" },\n { Icon: \"assets/ca-components/svg/popup/ic_print.svg\", text: \"Print\" },\n { Icon: \"assets/ca-components/svg/popup/Delete.svg\", text: \"Delete\" },\n ];\n\n static readonly closedOptions = [\n { Icon: \"assets/ca-components/svg/popup/edit-hover.svg\", text: \"Edit\" },\n { Icon: \"assets/ca-components/svg/popup/ic_info.svg\", text: \"View Details\" },\n { Icon: \"assets/ca-components/svg/popup/share-icon.svg\", text: \"Share\" },\n { Icon: \"assets/ca-components/svg/popup/ic_print.svg\", text: \"Print\" },\n { Icon: \"assets/ca-components/svg/popup/Delete.svg\", text: \"Delete\" },\n ];\n\n static readonly pendingOptions = [\n { Icon: \"assets/ca-components/svg/popup/edit-hover.svg\", text: \"Edit\" },\n { Icon: \"assets/ca-components/svg/popup/minus.svg\", text: \"Unassign\" },\n { Icon: \"assets/ca-components/svg/popup/ic_info.svg\", text: \"View Details\" },\n { Icon: \"assets/ca-components/svg/popup/share-icon.svg\", text: \"Share\" },\n { Icon: \"assets/ca-components/svg/popup/ic_print.svg\", text: \"Print\" },\n { Icon: \"assets/ca-components/svg/popup/delete-hover-new.svg\", text: \"Delete\" },\n ];\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"formatCurrency\",\n standalone: true,\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n transform(currency: number) {\n if (currency) {\n return (\n \"$\" + currency.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\")\n );\n } else {\n return \"$\" + 0;\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({\n standalone: true,\n name: 'dateFromStringPipe',\n})\nexport class DateFromStringPipe implements PipeTransform {\n transform(date: string | null | undefined, template?: string): any {\n switch (template) {\n case 'short-format': {\n return moment(date).format('MM/YY');\n }\n case 'month-format': {\n return moment(date, 'YYYY-MM-DDTHH:mm:ss.SSS[Z]').format(\n 'MMMM DD, YYYY | hh:mm A'\n );\n }\n case 'difference-days': {\n let a = moment();\n let b = moment(date);\n let diff = a.diff(b, 'days');\n if (diff < 1) {\n return 'Today';\n } else {\n return diff + (diff === 1 ? ' day' : ' days');\n }\n }\n case 'date-time':\n return moment(date).format('MM/DD/YY hh:mm A');\n default: {\n return moment(date).format('MM/DD/YY');\n }\n }\n }\n}\n","// Angular core modules\nimport { Component, Input } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\n// Third-party modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Models\nimport { LoadShortResponse } from '../../../../../ca-pickup-delivery-block/models/load-short-response';\nimport { IItemList } from '../../../../../../models/dropdown.model';\n\n//Svg routes\nimport { PickupDeliverySvgRoutes } from '../../../../utils/svg-routes/pickup-delivery-svg.routes';\nimport { OptionsButtonIconsSvgRoutes } from '../../../../utils/svg-routes/options-icon.routes';\n\n//Dropdown\nimport { CaDropdownComponent } from '../../../../../ca-dropdown/ca-dropdown.component';\nimport { PickupDeliveryBlockConstants } from '../../../../../ca-pickup-delivery-block/utils/constants/pickup-delivery-block.constants';\n//Pipes\nimport { FormatCurrencyPipe } from '../../../../../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../../../../../pipes/date-from-string.pipe';\n\n//Enums\nimport { StatusTypeEnum } from '../../../../../ca-pickup-delivery-block/models/status-types.enum';\n\n@Component({\n selector: 'app-ca-load-single',\n templateUrl: './ca-load-single.component.html',\n styleUrls: ['./ca-load-single.component.scss'],\n standalone: true,\n providers: [\n //Pipes\n FormatCurrencyPipe,\n ],\n imports: [\n AngularSvgIconModule,\n HttpClientModule,\n CaDropdownComponent,\n CommonModule,\n DateFromStringPipe,\n ],\n})\nexport class ActiveLoadComponent {\n @Input() activeLoad!: Array<LoadShortResponse>;\n @Input() status!: StatusTypeEnum;\n\n //Icons\n public originalIcon: string = OptionsButtonIconsSvgRoutes.optionsDefault;\n public alternateIcon: string = OptionsButtonIconsSvgRoutes.optionsClicked;\n public currentIcon: string = this.originalIcon;\n\n //Dropdown options\n public isDropdownEnabled: boolean = false;\n public dropdownOptions!: IItemList[];\n\n constructor(public formatCurrencyPipe: FormatCurrencyPipe) {}\n\n ngOnInit() {\n this.setDropdownOptions();\n }\n\n private setDropdownOptions(): void {\n switch (this.status) {\n case StatusTypeEnum.ACTIVE:\n this.dropdownOptions = PickupDeliveryBlockConstants.activeOptions;\n break;\n case StatusTypeEnum.CLOSED:\n this.dropdownOptions = PickupDeliveryBlockConstants.closedOptions;\n break;\n case StatusTypeEnum.PENDING:\n this.dropdownOptions = PickupDeliveryBlockConstants.pendingOptions;\n break;\n default:\n this.dropdownOptions = [];\n break;\n }\n }\n\n public dropDownClickEvent() {\n this.isDropdownEnabled = !this.isDropdownEnabled;\n this.currentIcon = this.isDropdownEnabled\n ? this.alternateIcon\n : this.originalIcon;\n }\n\n public getSvgPath(\n propertyName: keyof typeof PickupDeliverySvgRoutes\n ): string {\n return PickupDeliverySvgRoutes[propertyName] as string;\n }\n}\n","<ng-container *ngIf=\"activeLoad && activeLoad.length; else noActiveLoad\">\n <div class=\"load-details d-flex\">\n <div class=\"details-container d-flex flex-column justify-content-between\">\n <div class=\"top-details d-flex justify-content-between\">\n <span class=\"price ca-font-medium\">\n LOAD {{ activeLoad[0].loadNumber }}\n <svg-icon\n [src]=\"getSvgPath('vector')\"\n [svgStyle]=\"{ 'width.px': 18 }\"\n ></svg-icon>\n </span>\n <span class=\"load ca-font-bold\">{{\n formatCurrencyPipe.transform(activeLoad[0].totalRate!)\n }}</span>\n </div>\n\n <div class=\"bottom-details d-flex justify-content-between\">\n <p class=\"miles-ref\">\n <svg-icon\n [src]=\"getSvgPath('miles')\"\n [svgStyle]=\"{ 'width.px': 14 }\"\n ></svg-icon>\n {{ activeLoad[0].totalMiles }}\n <span class=\"ref-text ca-font-bold\">Ref.</span>\n {{ activeLoad[0].referenceNumber }}\n </p>\n <p class=\"ca-font-bold\">\n Adj.\n <span class=\"adj-price\">{{\n formatCurrencyPipe.transform(activeLoad[0].totalAdjustedRate!)\n }}</span>\n </p>\n </div>\n </div>\n\n <div class=\"d-flex flex-column button-container align-items-start\">\n <app-ca-dropdown\n [icon]=\"currentIcon\"\n [itemList]=\"dropdownOptions\"\n (onClick)=\"dropDownClickEvent()\"\n [isPopupShown]=\"isDropdownEnabled\"\n ></app-ca-dropdown>\n </div>\n </div>\n\n <div class=\"stops d-flex justify-content-around\">\n <div class=\"stops-side d-flex align-items-center\">\n <span class=\"line-left d-flex justify-content-center align-items-center\">\n {{ activeLoad[0].pickupCount }}\n </span>\n <div class=\"date-location left d-flex flex-column align-items-start\">\n <span class=\"location ca-font-semi-bold\">\n {{ activeLoad[0].pickup?.shipper?.address?.city }},\n {{ activeLoad[0].pickup?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">{{\n activeLoad[0].pickup?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n </div>\n\n <span class=\"arrow d-flex justify-content-center align-items-center\">\n <svg-icon\n [src]=\"getSvgPath('arrowRight')\"\n [svgStyle]=\"{ 'width.px': 14 }\"\n ></svg-icon>\n </span>\n\n <div class=\"stops-side right d-flex align-items-center\">\n <div class=\"date-location right d-flex flex-column align-items-start\">\n <span class=\"location ca-font-semi-bold\">\n {{ activeLoad[0].delivery?.shipper?.address?.city }},\n {{ activeLoad[0].delivery?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">{{\n activeLoad[0].delivery?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n <span class=\"line-right d-flex justify-content-center align-items-center\">\n {{ activeLoad[0].deliveryCount }}\n </span>\n </div>\n </div>\n\n <div class=\"dispatch-stops\">\n <span class=\"bussiness-name ca-font-bold\">{{\n activeLoad[0].broker?.businessName\n }}</span>\n\n <div class=\"broker ca-font-regular\">\n <ng-container *ngIf=\"activeLoad[0].broker?.contactName\">\n <p>\n <svg-icon\n [src]=\"getSvgPath('userIcon')\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n {{ activeLoad[0].broker?.contactName }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"activeLoad[0].broker?.phone\">\n <p>\n <svg-icon\n [src]=\"getSvgPath('phoneIcon')\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n {{ activeLoad[0].broker?.phone }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"activeLoad[0].broker?.email\">\n <p>\n <svg-icon\n [src]=\"getSvgPath('mailIcon')\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n {{ activeLoad[0].broker?.email }}\n </p>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"status === 'ACTIVE'\">\n <div class=\"driverMessage\">\n <h3 class=\"ca-font-bold\">DRIVER MESSAGE</h3>\n <span class=\"message ca-font-regular\">{{\n activeLoad[0].driverMessage\n }}</span>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #noActiveLoad>\n <div class=\"no-active-load-message\">\n <h2>No active load</h2>\n </div>\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n//Models\nimport { LoadShortResponse } from '../../../../../ca-pickup-delivery-block/models/load-short-response';\nimport { IItemList } from '../../../../../../models/dropdown.model';\nimport { StatusTypeEnum } from '../../../../../ca-pickup-delivery-block/models/status-types.enum';\n//Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { CaDropdownComponent } from '../../../../../ca-dropdown/ca-dropdown.component';\nimport { ActiveLoadComponent } from '../../../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component';\n\n//Svg routes\nimport { PickupDeliverySvgRoutes } from '../../../../../ca-pickup-delivery-block/utils/svg-routes/pickup-delivery-svg.routes';\nimport { OptionsButtonIconsSvgRoutes } from '../../../../../ca-pickup-delivery-block/utils/svg-routes/options-icon.routes';\n\n//Dropdown options\nimport { PickupDeliveryBlockConstants } from '../../../../../ca-pickup-delivery-block/utils/constants/pickup-delivery-block.constants';\n\n//Pipes\nimport { FormatCurrencyPipe } from '../../../../../../pipes/format-currency.pipe';\nimport { DateFromStringPipe } from '../../../../../../pipes/date-from-string.pipe';\n\n@Component({\n selector: 'app-ca-load-list',\n templateUrl: './ca-load-list.component.html',\n styleUrls: ['./ca-load-list.component.scss'],\n standalone: true,\n providers: [\n //Pipes\n FormatCurrencyPipe,\n ],\n imports: [\n //Angular\n CommonModule,\n\n //Modules\n AngularSvgIconModule,\n\n //Components\n CaDropdownComponent,\n ActiveLoadComponent,\n\n //Pipes\n DateFromStringPipe,\n ],\n})\nexport class LoadListComponent {\n @Input() loads!: Array<LoadShortResponse>;\n @Input() focusedTab!: StatusTypeEnum;\n @Input() isFocusingLoad: boolean = false;\n @Output() focusLoadEmitter = new EventEmitter<boolean>();\n\n public focusedLoad!: Array<LoadShortResponse>;\n\n //Icons\n public originalIcon: string = OptionsButtonIconsSvgRoutes.optionsDefault;\n public alternateIcon: string = OptionsButtonIconsSvgRoutes.optionsClicked;\n\n //Dropdown options\n public dropdownOptions!: IItemList[];\n private dropdownStates: { [key: string]: boolean } = {};\n private activeLoadNumber: number = -1;\n\n constructor(public formatCurrencyPipe: FormatCurrencyPipe) {}\n\n ngOnInit() {\n this.setDropdownOptions();\n }\n\n private setDropdownOptions(): void {\n switch (this.focusedTab) {\n case StatusTypeEnum.CLOSED:\n this.dropdownOptions = PickupDeliveryBlockConstants.closedOptions;\n break;\n case StatusTypeEnum.PENDING:\n this.dropdownOptions = PickupDeliveryBlockConstants.pendingOptions;\n break;\n default:\n this.dropdownOptions = [];\n break;\n }\n }\n\n public focusLoad(load: LoadShortResponse): void {\n this.isFocusingLoad = !this.isFocusingLoad;\n this.focusLoadEmitter.emit(this.isFocusingLoad);\n this.focusedLoad = [{ ...load }];\n }\n\n public dropDownClickEvent(loadNumber: number): void {\n if (this.activeLoadNumber !== -1 && this.activeLoadNumber !== loadNumber) {\n this.dropdownStates[this.activeLoadNumber] = false;\n }\n\n this.dropdownStates[loadNumber] = !this.dropdownStates[loadNumber];\n this.activeLoadNumber = this.dropdownStates[loadNumber] ? loadNumber : -1;\n }\n\n public isDropdownEnabled(loadNumber: number): boolean {\n return !!this.dropdownStates[loadNumber];\n }\n\n public trackByIdentity(index: number): number {\n return index;\n }\n\n public getSvgPath(\n propertyName: keyof typeof PickupDeliverySvgRoutes\n ): string {\n return PickupDeliverySvgRoutes[propertyName] as string;\n }\n}\n","<ng-container *ngIf=\"!isFocusingLoad; else focusedLoadTemplate\">\n <ng-template #loadList>\n <div class=\"wrapper-container\">\n <ng-container *ngFor=\"let load of loads; trackBy: trackByIdentity\">\n <div class=\"wrapper\" (click)=\"focusLoad(load)\">\n <div class=\"d-flex justify-content-around dispatch-stops\">\n <div\n class=\"load-num ca-font-bold d-flex justify-content-between align-items-center\"\n >\n <span class=\"loadNumber-companyName\">\n <span class=\"loadNumber\">{{ load.loadNumber }}</span>\n <span class=\"company-name ca-font-regular\">\n {{ load.broker?.businessName }}\n </span>\n </span>\n <span class=\"price\">{{\n formatCurrencyPipe.transform(load.totalRate!)\n }}</span>\n </div>\n <div class=\"button-container d-flex align-items-center\">\n <app-ca-dropdown\n [icon]=\"\n isDropdownEnabled(load.id) ? alternateIcon : originalIcon\n \"\n [itemList]=\"dropdownOptions\"\n [isPopupShown]=\"isDropdownEnabled(load.id)\"\n (click)=\"$event.stopPropagation()\"\n (onClick)=\"dropDownClickEvent(load.id)\"\n ></app-ca-dropdown>\n </div>\n </div>\n <div class=\"stops d-flex justify-content-around\">\n <div class=\"stops-side d-flex align-items-center\">\n <span\n class=\"line-left line-right d-flex justify-content-center align-items-center\"\n >\n {{ load.pickupCount }}</span\n >\n <div\n class=\"date-location left d-flex flex-column align-items-start\"\n >\n <span class=\"location ca-font-semi-bold\">\n {{ load.pickup?.shipper?.address?.city }},\n {{ load.pickup?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">\n {{ load.pickup?.dateFrom | dateFromStringPipe }}\n </span>\n </div>\n </div>\n <span class=\"d-flex justify-content-center align-items-center\">\n <svg-icon\n [src]=\"getSvgPath('arrowRight')\"\n [svgStyle]=\"{ 'width.px': 14 }\"\n ></svg-icon>\n </span>\n <div class=\"stops-side right d-flex align-items-center\">\n <div\n class=\"date-location right d-flex flex-column align-items-end\"\n >\n <span class=\"location ca-font-semi-bold\">\n {{ load.delivery?.shipper?.address?.city }},\n {{ load.delivery?.shipper?.address?.state }}\n </span>\n <span class=\"date ca-font-regular\">\n {{ load.delivery?.dateFrom | dateFromStringPipe }}\n </span>\n </div>\n <span\n class=\"line-right d-flex justify-content-center align-items-center\"\n >\n {{ load.deliveryCount }}</span\n >\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-template>\n\n <div class=\"wrapper-container\">\n <ng-container *ngTemplateOutlet=\"loadList\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #focusedLoadTemplate>\n <div class=\"focused-load-template\">\n <app-ca-load-single\n [activeLoad]=\"focusedLoad\"\n [status]=\"focusedTab\"\n ></app-ca-load-single>\n </div>\n</ng-template>\n","import { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\nimport { AnimationObject } from '../../../ca-pickup-delivery-block/models/animation-model';\nexport class LoadTabsConstants {\n static ANIMATION_OBJECT: AnimationObject = {\n value: StatusTypeEnum.ACTIVE,\n params: { height: '0px' },\n };\n}\n","import {\n animate,\n group,\n keyframes,\n query,\n style,\n transition,\n trigger,\n} from \"@angular/animations\";\n\nexport const tabsModalAnimation = (type: string) =>\n trigger(type, [\n transition(\"ACTIVE => PENDING, CLOSED => ACTIVE, CLOSED => PENDING\", left, {\n params: { height: \"0px\" },\n }),\n transition(\n \"PENDING => ACTIVE, ACTIVE => CLOSED, PENDING => CLOSED\",\n right,\n {\n params: { height: \"0px\" },\n }\n ),\n ]);\n\nconst left = [\n query(\":leave\", style({ position: \"absolute\", width: \"100%\" }), {\n optional: true,\n }),\n group([\n query(\n \":enter\",\n [\n style({\n transform: \"translateX(-8%)\",\n opacity: 0,\n height: \"{{height}}\",\n }),\n animate(\n \".2s\",\n keyframes([\n style({\n transform: \"translateX(0%)\",\n opacity: 1,\n height: \"*\",\n }),\n ])\n ),\n ],\n {\n optional: true,\n }\n ),\n query(\n \":leave\",\n [\n style({\n opacity: 0,\n }),\n animate(\n \".2s\",\n style({\n opacity: 0,\n height: \"*\",\n })\n ),\n ],\n {\n optional: true,\n }\n ),\n ]),\n];\n\nconst right = [\n query(\":leave\", style({ position: \"absolute\", width: \"100%\" }), {\n optional: true,\n }),\n group([\n query(\n \":enter\",\n [\n style({\n transform: \"translateX(8%)\",\n opacity: 0,\n height: \"{{height}}\",\n }),\n animate(\n \".2s\",\n keyframes([\n style({\n transform: \"translateX(0%)\",\n opacity: 1,\n height: \"*\",\n }),\n ])\n ),\n ],\n {\n optional: true,\n }\n ),\n query(\n \":leave\",\n [\n style({\n opacity: 0,\n }),\n animate(\n \".2s\",\n style({\n opacity: 0,\n height: \"*\",\n })\n ),\n ],\n {\n optional: true,\n }\n ),\n ]),\n];\n","export class ReturnArrowIconsSvgRoutes {\n static optionsDefault: string = \"assets/ca-components/svg/pickup-delivery/arrowLeft.svg\";\n static optionsHovered: string = \"assets/ca-components/svg/pickup-delivery/arrowLeftHover.svg\";\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Modules\nimport { NgbNavModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n// Components\nimport { LoadListComponent } from '../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component';\nimport { ActiveLoadComponent } from '../../../ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component';\n\n// Models\nimport { DispatchAssignedLoadListResponse } from '../../../ca-pickup-delivery-block/models/dispatch-assigned-load-list-response';\nimport { LoadShortResponse } from '../../../ca-pickup-delivery-block/models/load-short-response';\nimport { LoadTabsConstants } from '../../../ca-pickup-delivery-block/utils/constants/animation-object-default.constants';\n\n// Animations\nimport { tabsModalAnimation } from '../../../../animations/tabs-modal.animation';\nimport { AnimationObject } from '../../../ca-pickup-delivery-block/models/animation-model';\n\n// Svg routes\nimport { ReturnArrowIconsSvgRoutes } from '../../../ca-pickup-delivery-block/utils/svg-routes/return-arrow.routes';\n\n// Enums\nimport { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\n\n@Component({\n selector: 'app-ca-load',\n templateUrl: './ca-load.component.html',\n styleUrls: ['./ca-load.component.scss'],\n standalone: true,\n animations: [tabsModalAnimation('animationTabsModal')],\n providers: [AngularSvgIconModule],\n imports: [\n CommonModule,\n HttpClientModule,\n\n //Modules\n NgbNavModule,\n AngularSvgIconModule,\n NgbTooltipModule,\n\n // Components\n ActiveLoadComponent,\n LoadListComponent,\n ],\n})\nexport class LoadComponent {\n @Input() focusedTab!: StatusTypeEnum;\n @Input() loads!: DispatchAssignedLoadListResponse;\n\n //Tabs and load data\n public tabs: StatusTypeEnum[] = Object.values(StatusTypeEnum);\n public activeLoad!: Array<LoadShortResponse>;\n public pendingLoads!: Array<LoadShortResponse>;\n public closedLoads!: Array<LoadShortResponse>;\n public hasLoad = false;\n\n public StatusTypeEnum = StatusTypeEnum;\n\n //Is visible when focusing on an pending or closed load\n public returnButtonVisible: boolean = false;\n\n // Animation\n public animationObject!: AnimationObject;\n\n // Status bar position\n public isTop: boolean = true;\n\n // Icons\n private defaultIcon: string = ReturnArrowIconsSvgRoutes.optionsDefault;\n private hoverIcon: string = ReturnArrowIconsSvgRoutes.optionsHovered;\n public currentIcon: string = this.defaultIcon;\n\n ngOnInit() {\n this.extractLoadStatuses();\n this.getConstantData();\n }\n\n private getConstantData(): void {\n this.animationObject = JSON.parse(\n JSON.stringify(LoadTabsConstants.ANIMATION_OBJECT)\n );\n }\n\n private extractLoadStatuses(): void {\n const { closed, active, pending } = this.loads;\n this.activeLoad = active ?? [];\n this.closedLoads = closed ?? [];\n this.pendingLoads = pending ?? [];\n }\n\n public onMouseEnter(): void {\n this.currentIcon = this.hoverIcon;\n }\n\n public onMouseLeave(): void {\n this.currentIcon = this.defaultIcon;\n }\n\n public toggleFocusedLoad(): void {\n this.returnButtonVisible = !this.returnButtonVisible;\n }\n\n public setFocusedTab(status: StatusTypeEnum): void {\n if (this.returnButtonVisible) {\n this.returnButtonVisible = false;\n }\n this.focusedTab = status;\n const dotAnimation = document.querySelector('.animation-three-tabs');\n this.animationObject = {\n value: status,\n params: { height: `${dotAnimation?.getClientRects()[0].height}px` },\n };\n }\n}\n","<div class=\"load-component\">\n <!-- isTop === TRUE -->\n <ng-container *ngIf=\"isTop; else isTopFalseTemplate\">\n <div class=\"d-flex align-items-center assigned-load-holder\">\n <ng-container *ngIf=\"returnButtonVisible\">\n <button\n class=\"returnButton\"\n placement=\"bottom\"\n ngbTooltip=\"Back\"\n (click)=\"toggleFocusedLoad()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <svg-icon\n [src]=\"currentIcon\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n </button>\n </ng-container>\n <span class=\"ca-font-extra-bold\">ASSIGNED LOAD</span>\n </div>\n\n <div class=\"statusBar d-flex justify-content-evenly\">\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n class=\"ca-font-bold d-flex justify-content-center align-items-center\"\n (click)=\"setFocusedTab(tab)\"\n [class.active]=\"focusedTab === tab\"\n >\n {{ tab }}\n </button>\n </ng-container>\n </div>\n\n <div [@animationTabsModal]=\"animationObject\" class=\"animation-three-tabs\">\n <div [ngSwitch]=\"focusedTab\">\n <ng-container *ngSwitchCase=\"'CLOSED'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!closedLoads\">No closed loads</ng-container>\n <app-ca-load-list\n *ngIf=\"closedLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"closedLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.CLOSED\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n <div class=\"activeLoadInformation\">\n <app-ca-load-single\n *ngIf=\"activeLoad\"\n [status]=\"focusedTab\"\n [activeLoad]=\"activeLoad\"\n ></app-ca-load-single>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'PENDING'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!pendingLoads\">No pending loads</ng-container>\n <app-ca-load-list\n *ngIf=\"pendingLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"pendingLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.PENDING\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- isTop === false -->\n\n <ng-template #isTopFalseTemplate>\n <div [@animationTabsModal]=\"animationObject\" class=\"animation-three-tabs\">\n <div [ngSwitch]=\"focusedTab\">\n <ng-container *ngSwitchCase=\"'CLOSED'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!closedLoads\">No closed loads</ng-container>\n <app-ca-load-list\n *ngIf=\"closedLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"closedLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.CLOSED\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n <div class=\"activeLoadInformation\">\n <app-ca-load-single\n *ngIf=\"activeLoad\"\n [status]=\"focusedTab\"\n [activeLoad]=\"activeLoad\"\n ></app-ca-load-single>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'PENDING'\">\n <div class=\"activeLoadInformation\">\n <ng-container *ngIf=\"!pendingLoads\">No pending loads</ng-container>\n <app-ca-load-list\n *ngIf=\"pendingLoads\"\n (focusLoadEmitter)=\"toggleFocusedLoad()\"\n [loads]=\"pendingLoads\"\n [isFocusingLoad]=\"returnButtonVisible\"\n [focusedTab]=\"StatusTypeEnum.PENDING\"\n ></app-ca-load-list>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"statusBar d-flex justify-content-evenly\">\n <ng-container *ngFor=\"let tab of tabs\">\n <button\n class=\"ca-font-bold d-flex justify-content-center align-items-center\"\n (click)=\"setFocusedTab(tab)\"\n [class.active]=\"focusedTab === tab\"\n >\n {{ tab }}\n </button>\n </ng-container>\n </div>\n\n <div class=\"d-flex align-items-center assigned-load-holder\">\n <ng-container *ngIf=\"returnButtonVisible\">\n <button\n class=\"returnButton\"\n placement=\"bottom\"\n ngbTooltip=\"Back\"\n (click)=\"toggleFocusedLoad()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <svg-icon\n [src]=\"currentIcon\"\n [svgStyle]=\"{ 'width.px': 16 }\"\n ></svg-icon>\n </button>\n </ng-container>\n <span class=\"ca-font-extra-bold\">ASSIGNED LOAD</span>\n </div>\n </ng-template>\n</div>\n","import { DispatchAssignedLoadListResponse } from '../../../ca-pickup-delivery-block/models/dispatch-assigned-load-list-response';\nimport { LoadShortResponse } from '../../../ca-pickup-delivery-block/models/load-short-response';\nimport { StatusTypeEnum } from '../../../ca-pickup-delivery-block/models/status-types.enum';\n\nexport class PickupDeliveryHelper {\n static setLoadDetails(\n loadDetails: DispatchAssignedLoadListResponse | null\n ): {\n load?: LoadShortResponse;\n loadType: StatusTypeEnum;\n } {\n if (loadDetails?.active) {\n return {\n load: loadDetails.active[0],\n loadType: StatusTypeEnum.ACTIVE,\n };\n } else if (loadDetails?.pending && loadDetails.pending.length > 0) {\n return {\n load: loadDetails.pending[0],\n loadType: StatusTypeEnum.PENDING,\n };\n } else if (loadDetails?.closed) {\n return { loadType: StatusTypeEnum.CLOSED };\n } else {\n return { loadType: StatusTypeEnum.CLOSED };\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n// Modals\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n// Components\nimport { LoadComponent } from '../ca-pickup-delivery-block/components/ca-load/ca-load.component';\n\n// Models\nimport { DispatchAssignedLoadListResponse } from '../ca-pickup-delivery-block/models/dispatch-assigned-load-list-response';\nimport { LoadShortResponse } from '../ca-pickup-delivery-block/models/load-short-response';\n\n// Helpers\nimport { PickupDeliveryHelper } from '../ca-pickup-delivery-block/utils/helpers/pickup-delivery.helper';\nimport { StatusTypeEnum } from '../ca-pickup-delivery-block/models/status-types.enum';\n\n// Pipes\nimport { DateFromStringPipe } from '../../pipes/date-from-string.pipe';\n\n// Modules\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-ca-pickup-delivery-block',\n templateUrl: './ca-pickup-delivery-block.component.html',\n styleUrls: ['./ca-pickup-delivery-block.component.scss'],\n imports: [CommonModule, DateFromStringPipe, LoadComponent, NgbModule],\n standalone: true,\n})\nexport class PickupDeliveryBlockComponent implements OnInit {\n @Input() loads!: DispatchAssignedLoadListResponse;\n\n public loadInfo: LoadShortResponse = {} as LoadShortResponse;\n public hasLoad: boolean = false;\n public loadType!: StatusTypeEnum;\n public isPopoverOpen: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n this.initializeLoadDetails();\n }\n\n private initializeLoadDetails(): void {\n const { load, loadType } = PickupDeliveryHelper.setLoadDetails(this.loads);\n if (load) {\n this.loadInfo = load;\n this.hasLoad = true;\n this.loadType = loadType;\n } else {\n this.hasLoad = false;\n }\n }\n\n public openPopover(t2: NgbPopover): void {\n t2.open();\n this.isPopoverOpen = true;\n }\n\n public closePopover(t2: NgbPopover): void {\n this.isPopoverOpen = false;\n t2.close();\n }\n}\n","<div class=\"incomplete-table-container\">\n <ng-container *ngIf=\"hasLoad; else noLoadInfo\">\n <div\n class=\"incomplete-table-holder stops d-flex justify-content-between align-items-center\"\n #t2=\"ngbPopover\"\n [ngClass]=\"{ popoverOpen: isPopoverOpen }\"\n [ngbPopover]=\"loadDetailsPopover\"\n triggers=\"manual\"\n [autoClose]=\"'outside'\"\n container=\"body\"\n [placement]=\"'bottom'\"\n (click)=\"openPopover(t2)\"\n (hidden)=\"closePopover(t2)\"\n (shown)=\"isPopoverOpen = true\"\n >\n <div class=\"stops-side d-flex align-items-center left\">\n <span\n class=\"d-flex justify-content-center align-items-center pickupStationNumber ca-font-bold\"\n [ngClass]=\"{\n 'active-pickup': loadType === 'ACTIVE',\n 'pending-pickup': loadType === 'PENDING',\n }\"\n >{{ loadInfo.pickupCount }}</span\n >\n <div class=\"d-flex flex-column\">\n <span class=\"location ca-font-semi-bold\"\n >{{ loadInfo.pickup?.shipper?.address?.city }},\n {{ loadInfo.pickup?.shipper?.address?.state }}</span\n >\n <span class=\"date ca-font-regular d-flex justify-content-start\">{{\n loadInfo.pickup?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n </div>\n\n <div class=\"stops-side d-flex align-items-center right\">\n <span\n class=\"d-flex justify-content-center align-items-center deliveryStationNumber ca-font-bold\"\n [ngClass]=\"{\n 'active-delivery': loadType === 'ACTIVE',\n 'pending-delivery': loadType === 'PENDING',\n }\"\n >{{ loadInfo.deliveryCount }}</span\n >\n <div class=\"d-flex flex-column\">\n <span class=\"location ca-font-semi-bold\"\n >{{ loadInfo.delivery?.shipper?.address?.city }},\n {{ loadInfo.delivery?.shipper?.address?.state }}</span\n >\n <span class=\"date ca-font-regular d-flex justify-content-start\">{{\n loadInfo.delivery?.dateFrom | dateFromStringPipe\n }}</span>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noLoadInfo>\n <div class=\"incomplete-table-holder\"></div>\n </ng-template>\n\n <ng-template #loadDetailsPopover>\n <app-ca-load [focusedTab]=\"loadType\" [loads]=\"loads\"></app-ca-load>\n </ng-template>\n</div>\n","export class MapConstants {\n static GOOGLE_MAP_STYLES: google.maps.MapTypeStyle[] = [\n {\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#f5f5f5\",\n },\n ],\n },\n {\n elementType: \"labels.icon\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"transit\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n stylers: [\n {\n color: \"#616161\",\n },\n {\n visibility: \"on\",\n },\n {\n weight: 1,\n },\n ],\n },\n {\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: \"#f5f5f5\",\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#bdbdbd\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#eeeeee\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#e5e5e5\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n {\n featureType: \"landscape\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#ffffff\",\n },\n ],\n },\n {\n featureType: \"road\",\n stylers: [\n {\n saturation: -100,\n },\n {\n lightness: 30,\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#dadada\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n {\n featureType: \"transit.line\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#e5e5e5\",\n },\n ],\n },\n {\n featureType: \"transit.station\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#eeeeee\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#c9c9c9\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n ];\n\n static GOOGLE_MAP_DARK_STYLES = [\n {\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#212121\",\n },\n ],\n },\n {\n elementType: \"labels.icon\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: \"#212121\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#9e9e9e\",\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.locality\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#bdbdbd\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#181818\",\n },\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: \"#1b1b1b\",\n },\n ],\n },\n {\n featureType: \"road\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: \"#2c2c2c\",\n },\n ],\n },\n {\n featureType: \"road\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#8a8a8a\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#373737\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#3c3c3c\",\n },\n ],\n },\n {\n featureType: \"road.highway.controlled_access\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#4e4e4e\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#616161\",\n },\n ],\n },\n {\n featureType: \"transit\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#757575\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"geometry\",\n stylers: [\n {\n color: \"#000000\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: \"#3d3d3d\",\n },\n ],\n },\n ];\n\n static NORTH_AMERICA_BOUNDS = {\n north: 75,\n south: 9,\n west: -170,\n east: -50,\n };\n}\n","export const ProgressBarConstants = {\n completed: \"completed\",\n completed_text: \"452.0 mi\",\n total: \"TOTAL\",\n zero: 0,\n percentage: \"%\",\n};\n","export class ProgressBarSvgRoutes {\n static checkRoute: string = \"assets/ca-components/svg/map/check.svg\";\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n//modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n//Components\nimport { CaMapComponent } from '../ca-map/ca-map.component';\n\n//Constants\nimport { MapConstants } from '../../constants/map.constant';\nimport { ProgressBarConstants } from '../ca-progress-bar/utils/constants/progress-bar.constants';\n\n//model\nimport { IGpsProgress } from '../ca-progress-bar/models/gps-progress.model';\n\n//svg-routes\nimport { ProgressBarSvgRoutes } from '../ca-progress-bar/utils/svg-routes/progress-bar-svg-routes';\n\n@Component({\n selector: 'app-ca-progress-bar',\n templateUrl: './ca-progress-bar.component.html',\n styleUrls: ['./ca-progress-bar.component.scss'],\n standalone: true,\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n NgbModule,\n //Components\n CaMapComponent,\n ],\n})\nexport class ProgressBarComponent {\n @Input() isDropdown: boolean = false;\n @Input() currentPosition!: number;\n @Input() mileageInfo!: string;\n @Input() currentStop!: IGpsProgress;\n @Input() gpsTitle: string = '';\n @Input() gpsIcon!: string;\n @Input() gpsInfo!: {\n gpsheading: string;\n gpsTime: string;\n gpsheadingColor?: string;\n };\n @Input() mileagesPercent!: string;\n @Input() gpsProgress: IGpsProgress[] = [];\n @Input() gpsLocationIcon!: string;\n public hoveredGpsIcon: boolean = false;\n public hoveredGpsCurrentPosition: boolean = false;\n public showDropdown: boolean = false;\n public focusedIcon: number = -1;\n public isIcon: boolean = false;\n public tooltip: string = '';\n public staticConstant = ProgressBarConstants;\n\n public Mapdata = {\n center: { lat: 41.860119, lng: -87.660156 },\n mapZoom: 1,\n markers: [],\n clustermarkers: [],\n routingMarkers: [\n {\n position: { lat: 38.122958832669, lng: -85.6978972106951 },\n icon: {\n url: 'assets/ca-components/svg/map/gps-location.svg',\n labelOrigin: new google.maps.Point(80, 15),\n },\n },\n {\n position: { lat: 34.81629127878479, lng: -84.05705557447767 },\n icon: {\n url: 'assets/ca-components/svg/map/progress_marker_reached.svg',\n labelOrigin: new google.maps.Point(80, 15),\n },\n },\n {\n position: { lat: 29.533042509319234, lng: -82.27005101950496 },\n icon: {\n url: 'assets/ca-components/svg/map/progress_marker-pin-dark.svg',\n labelOrigin: new google.maps.Point(80, 15),\n },\n },\n {\n position: { lat: 34.001049366913065, lng: -84.48820105737911 },\n icon: {\n url: 'assets/ca-components/svg/map/progress-marker-checked.svg',\n labelOrigin: new google.maps.Point(90, 15),\n },\n },\n {\n position: { lat: 38.197103511601675, lng: -85.79030629905438 },\n icon: {\n url: 'assets/ca-components/svg/map/progress-marker-pickup.svg',\n labelOrigin: new google.maps.Point(90, 15),\n },\n },\n {\n position: { lat: 40.324100681086385, lng: -86.37922103258747 },\n icon: {\n url: 'assets/ca-components/svg/map/progress-marker-pickup-checked.svg',\n labelOrigin: new google.maps.Point(90, 15),\n },\n },\n ],\n routePaths: [\n {\n path: [\n { lat: 34.81629127878479, lng: -84.05705557447767 },\n { lat: 29.533042509319234, lng: -82.27005101950496 },\n ],\n strokeColor: 'white',\n },\n {\n path: [\n { lat: 29.533042509319234, lng: -82.27005101950496 },\n { lat: 34.001049366913065, lng: -84.48820105737911 },\n ],\n strokeColor: 'white',\n },\n {\n path: [\n { lat: 34.001049366913065, lng: -84.48820105737911 },\n { lat: 43.121294982393685, lng: -88.02218586773331 },\n ],\n strokeColor: 'red',\n },\n {\n path: [\n { lat: 43.121294982393685, lng: -88.02218586773331 },\n { lat: 38.122958832669, lng: -85.6978972106951 },\n ],\n strokeColor: 'red',\n },\n {\n path: [\n { lat: 38.122958832669, lng: -85.6978972106951 },\n { lat: 38.197103511601675, lng: -85.79030629905438 },\n ],\n strokeColor: 'red',\n },\n ],\n mapOptions: {\n restriction: {\n latLngBounds: MapConstants.NORTH_AMERICA_BOUNDS,\n strictBounds: true,\n },\n streetViewControl: false,\n styles: MapConstants.GOOGLE_MAP_DARK_STYLES,\n keyboardShortcuts: false,\n panControl: true,\n gestureHandling: 'greedy',\n mapTypeControl: false,\n disableDefaultUI: true,\n },\n };\n constructor() {}\n\n public hoverStop(\n stop: IGpsProgress,\n i: number,\n isIcon: boolean = false\n ): void {\n this.hoveredGpsCurrentPosition = true;\n this.gpsTitle = stop.heading || '';\n this.mileageInfo = stop.mileage;\n this.focusedIcon = i;\n this.isIcon = isIcon;\n this.getToolTip();\n }\n\n public leaveStop(): void {\n this.hoveredGpsCurrentPosition = false;\n this.gpsTitle = '128.4 mi';\n this.mileageInfo = '226.3 mi';\n this.focusedIcon = -1;\n }\n\n public getLeftStyle(): string {\n if (this.isIcon) {\n return this.currentStop.position + '%';\n } else {\n return this.gpsProgress[this.focusedIcon].position - 20 + '%';\n }\n }\n\n public getToolTip(): string {\n if (this.isIcon) {\n this.tooltip = this.currentStop?.location;\n return this.tooltip;\n } else {\n this.tooltip = this.gpsProgress[this.focusedIcon].location;\n return this.tooltip;\n }\n }\n\n public identity(index: number): number {\n return index;\n }\n\n public showDropdownMap(t2: NgbPopover): void {\n t2.open();\n }\n\n public getSvgPath(propertyName: keyof typeof ProgressBarSvgRoutes): string {\n return ProgressBarSvgRoutes[propertyName] as string;\n }\n}\n","<div class=\"gps-progress-bar\">\n <div\n class=\"gps-progress-holder d-flex align-items-center\"\n #t2=\"ngbPopover\"\n [ngbPopover]=\"gpsDropdownPopover\"\n [autoClose]=\"'outside'\"\n container=\"body\"\n [placement]=\"'bottom'\"\n popoverClass=\"gps_dropdown_popover\"\n triggers=\"manual\"\n (click)=\"showDropdownMap(t2)\"\n >\n <div\n class=\"gps-progress-img\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <ng-container *ngIf=\"!hoveredGpsIcon\">\n <div class=\"gps-progress-text\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div class=\"mileages ca-font-semi-bold\">{{ gpsTitle }}</div>\n <div class=\"mileage-normal ca-font-regular\">\n {{ mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n <ng-container\n *ngFor=\"let stop of gpsProgress; let i = index; trackBy: identity\"\n >\n <div\n class=\"gps-stop\"\n (mouseenter)=\"hoverStop(stop, i, false)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ></div>\n </ng-container>\n <div\n class=\"current-pos\"\n (mouseenter)=\"hoverStop(currentStop, -2, true)\"\n (mouseleave)=\"leaveStop()\"\n [ngStyle]=\"{ left: currentPosition + '%' }\"\n >\n <svg-icon [src]=\"gpsLocationIcon\"></svg-icon>\n </div>\n <ng-container\n *ngIf=\"hoveredGpsCurrentPosition && focusedIcon !== -1\"\n >\n <div\n class=\"gps_current_info\"\n [ngStyle]=\"{ left: getLeftStyle() }\"\n >\n <div class=\"gps_info_title ca-font-bold\">{{ tooltip }}</div>\n </div>\n </ng-container>\n </div>\n <div class=\"mileages ca-font-semi-bold\">{{ mileagesPercent }}</div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"hoveredGpsIcon\">\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-black\"\n [ngStyle]=\"{ color: gpsInfo?.gpsheadingColor }\"\n >\n {{ gpsInfo?.gpsheading }}\n </div>\n <div class=\"moving_time ca-font-medium\">{{ gpsInfo?.gpsTime }}</div>\n </div>\n </ng-container>\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"map_holder\">\n <app-ca-map [data]=\"Mapdata\"></app-ca-map>\n </div>\n <div class=\"gps_all_hold\">\n <div\n class=\"gps_header d-flex align-items-center\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <div class=\"gps-progress-img\">\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-black\"\n [ngStyle]=\"{ color: gpsInfo?.gpsheadingColor }\"\n >\n {{ gpsInfo?.gpsheading }}\n </div>\n <div class=\"moving_time ca-font-medium\">\n {{ !hoveredGpsIcon ? \"Near Maplewood, MO\" : \"03:47\" }}\n </div>\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_progress_hold\">\n <div\n class=\"gps_progress_hold_inner d-flex flex-column justify-content-between align-items-start\"\n >\n <div class=\"progress_line\">\n <div\n class=\"progress_inner_line\"\n [ngStyle]=\"{\n height: currentPosition + '%',\n }\"\n ></div>\n <div\n class=\"progress_moving_dot d-flex justify-content-center align-items-center\"\n [style.top]=\"'calc(' + currentPosition + '% - 7px)'\"\n >\n <div class=\"moving_dot_inner\"></div>\n </div>\n </div>\n <div class=\"progress_inner\" *ngFor=\"let stop of gpsProgress\">\n <div class=\"progress_header d-flex align-items-center\">\n <div class=\"progress_header_inside d-flex\">\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n [ngClass]=\"{\n pickup_future:\n currentPosition < stop.position &&\n stop.type === 'pickup',\n }\"\n >\n <svg-icon\n *ngIf=\"currentPosition > stop.position\"\n [src]=\"getSvgPath('checkRoute')\"\n ></svg-icon>\n <ng-container *ngIf=\"currentPosition < stop.position\">\n <div\n class=\"progress_dot\"\n [ngStyle]=\"{\n backgroundColor:\n stop.type === 'pickup' ? '#4DB6A2' : '#E57373',\n }\"\n ></div>\n </ng-container>\n </div>\n <div class=\"progress_info_hold d-flex flex-column\">\n <div\n class=\"progress_name ca-font-bold\"\n [ngStyle]=\"{\n color:\n currentPosition < stop.position\n ? '#ffffff'\n : '#919191',\n }\"\n >\n {{ stop.location }}\n </div>\n <ng-container *ngIf=\"currentPosition < stop.position\">\n <div class=\"progress_time ca-font-regular\">\n {{ stop.time }}\n </div></ng-container\n >\n </div>\n </div>\n <div\n class=\"progress_type d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n backgroundColor:\n currentPosition > stop.position\n ? '#AAAAAA'\n : stop.type === 'pickup'\n ? '#4DB6A2'\n : '#E57373',\n }\"\n >\n <div class=\"progress_number ca-font-bold\">\n {{ staticConstant.zero }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"gps_complete_text ca-font-bold\">\n {{ staticConstant.completed }}\n </div>\n <div class=\"gps_complete_text_info ca-font-bold\">\n {{ staticConstant.total }}\n </div>\n </div>\n <div class=\"gps_complete_second_row d-flex\">\n <div class=\"gps_complete_text ca-font-bold\">\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n <div class=\"gps_complete_text_info ca-font-bold\">\n {{ staticConstant.completed_text }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n</div>\n","export class SearchMultipleStatesRoutes {\n static searchButton: string =\n 'assets/ca-components/svg/search-multiple-states/search-button.svg';\n static focusedSearchButton: string =\n 'assets/ca-components/svg/search-multiple-states/focused-search-button.svg';\n static clearSearch: string = 'assets/ca-components/svg/search-multiple-states/clear-search.svg';\n static add: string = 'assets/ca-components/svg/search-multiple-states/add.svg';\n}\n","import { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nexport const toggleAnimation = trigger('focusChange', [\n state('default', style({\n opacity: 1,\n })),\n state('focused', style({\n opacity: 1,\n })),\n transition('default => focused', [\n style({ opacity: 0 }),\n animate('0.25s')\n ]),\n transition('focused => default', [\n animate('0.25s')\n ])\n ]);","import { ICaInput } from '../../../ca-input/config/ca-input.config';\n\nexport const inputConfig: ICaInput = {\n name: 'search-multiple-states',\n label: 'Find',\n isDisabled: false,\n type: 'search-multiple-states',\n blackInput: true,\n hideClear: true,\n};\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule } from '@angular/forms';\n\n// SvgRoutes\nimport { SearchMultipleStatesRoutes } from '../ca-search-multiple-states/utils/svg-routes/search-multiple-states.routes';\n\n// Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaInputComponent } from '../ca-input/ca-input.component';\n\n// Animation\nimport { toggleAnimation } from '../../animations/expand-search-button.animation';\n\n//odels\nimport { ICaInput } from '../ca-input/config/ca-input.config';\n\n//Input config\nimport { inputConfig } from '../ca-search-multiple-states/utils/config/input-config';\n\n@Component({\n selector: 'app-ca-search-multiple-states',\n standalone: true,\n animations: [toggleAnimation],\n imports: [\n // Angular\n CommonModule,\n AngularSvgIconModule,\n HttpClientModule,\n\n // Modules\n FormsModule,\n NgbTooltipModule,\n\n // Components\n CaAppTooltipV2Component,\n CaInputComponent,\n ],\n templateUrl: './ca-search-multiple-states.component.html',\n styleUrls: ['./ca-search-multiple-states.component.scss'],\n})\nexport class CaSearchMultipleStatesComponent {\n @Output() searchQueriesEmitter = new EventEmitter<string[]>();\n\n public isFocused: boolean = false;\n public searchQueries: string[] = [];\n public searchQuery: string = '';\n public searchMultipleStatesSvgRoutes: typeof SearchMultipleStatesRoutes =\n SearchMultipleStatesRoutes;\n public inputConfig: ICaInput = inputConfig;\n\n get isSearchQueryNotEmpty(): boolean {\n return this.searchQuery.trim() !== '';\n }\n\n public emitSearchQueries(): void {\n this.searchQueriesEmitter.emit(this.searchQueries);\n }\n\n public toggleFocus(): void {\n this.isFocused = !this.isFocused;\n }\n\n public addSearchQuery(): void {\n if (this.searchQuery.trim() && this.searchQueries.length < 3) {\n this.searchQueries.push(this.searchQuery.trim());\n this.searchQuery = '';\n }\n }\n\n public removeSearchQuery(index: number): void {\n this.searchQueries.splice(index, 1);\n }\n\n public clearSearchBar(): void {\n this.searchQuery = '';\n }\n\n public removeSelected(index: number): void {\n this.searchQueries.splice(index, 1);\n this.isFocused = false;\n }\n\n public removeQuery(): void {\n this.searchQueries = [];\n }\n\n public trackByQuery(index: number, query: string): string {\n return query;\n }\n\n public getSvgPath(\n propertyName: keyof typeof SearchMultipleStatesRoutes\n ): string {\n return SearchMultipleStatesRoutes[propertyName] as string;\n }\n}\n","<div [@focusChange]=\"isFocused ? 'focused' : 'default'\">\n <div *ngIf=\"isFocused; else defaultTemplate\">\n <ng-container *ngIf=\"searchQueries.length >= 3; else focusedTemplate\">\n <ng-container *ngTemplateOutlet=\"searchArrayFull\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<!-- Default Template -->\n<ng-template #defaultTemplate>\n <div class=\"d-flex align-items-center justify-content-start wrapper\">\n <span\n class=\"divider d-flex align-items-center justify-content-center\"\n ></span>\n <span class=\"d-flex justify-content-center\">\n <span\n ngbTooltip\n [mainTooltip]=\"'Search'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n (click)=\"toggleFocus()\"\n class=\"search-icon d-flex align-items-center\"\n >\n <svg-icon\n class=\"search-icon d-flex align-items-center\"\n [src]=\"getSvgPath('searchButton')\"\n [svgStyle]=\"{ 'width.px': 26, 'height.px': 26 }\"\n ></svg-icon>\n </span>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n class=\"search-queries d-flex align-items-center justify-content-center\"\n >\n <ng-container\n *ngFor=\"\n let query of searchQueries;\n let i = index;\n trackBy: trackByQuery\n \"\n >\n <span\n (click)=\"removeSelected(i)\"\n class=\"query d-flex justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n {{ query }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n ngbTooltip\n [mainTooltip]=\"'Clear All'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"svg-icon-clear d-flex\"\n [src]=\"getSvgPath('clearSearch')\"\n (click)=\"removeQuery()\"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </span>\n <span class=\"divider d-flex align-items-center\"></span>\n </div>\n</ng-template>\n\n<!-- Focused Template -->\n<ng-template #focusedTemplate>\n <div class=\"d-flex align-items-center justify-content-start wrapperFocused\">\n <span class=\"divider d-flex align-items-center\"></span>\n <div class=\"d-flex align-items-center justify-content-start form\">\n <div\n (click)=\"toggleFocus()\"\n class=\"d-flex align-items-center justify-content-start search\"\n ngbTooltip\n [mainTooltip]=\"'Close'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"search-icon d-flex justify-content-center align-items-center\"\n [src]=\"getSvgPath('focusedSearchButton')\"\n [svgStyle]=\"{ 'width.px': 26, 'height.px': 26 }\"\n ></svg-icon>\n <span\n class=\"divider d-flex align-items-center justify-content-center\"\n ></span>\n </div>\n\n <div class=\"d-flex align-items-center\">\n <app-ca-input\n class=\"input\"\n type=\"text\"\n (keyup.enter)=\"addSearchQuery()\"\n [(ngModel)]=\"searchQuery\"\n name=\"search\"\n placeholder=\"Find Title\"\n [inputConfig]=\"inputConfig\"\n ></app-ca-input>\n <ng-container *ngIf=\"isSearchQueryNotEmpty\">\n <div\n class=\"d-flex justify-content-start align-items-center add-clear-icons\"\n >\n <div\n (click)=\"addSearchQuery()\"\n ngbTooltip\n [mainTooltip]=\"'Confirm'\"\n tooltipBackground=\"#000000\"\n position=\"top\"\n >\n <svg-icon\n class=\"svg-icon-in-form d-flex\"\n [src]=\"getSvgPath('add')\"\n ></svg-icon>\n </div>\n <div\n (click)=\"clearSearchBar()\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"top\"\n >\n <svg-icon\n class=\"svg-icon-in-form d-flex\"\n [src]=\"getSvgPath('clearSearch')\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n class=\"search-queries d-flex align-items-center justify-content-center\"\n >\n <ng-container\n *ngFor=\"\n let query of searchQueries;\n let i = index;\n trackBy: trackByQuery\n \"\n >\n <span\n (click)=\"removeSelected(i)\"\n class=\"query d-flex justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n {{ query }}\n </span>\n </ng-container>\n <div\n (click)=\"removeQuery()\"\n ngbTooltip\n [mainTooltip]=\"'Clear All'\"\n tooltipBackground=\"#000000\"\n position=\"top\"\n >\n <svg-icon\n class=\"svg-icon-clear d-flex align-items-center\"\n [src]=\"getSvgPath('clearSearch')\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n <span class=\"divider d-flex align-items-center\"></span>\n </div>\n</ng-template>\n\n<!-- Search Array Full -->\n<ng-template #searchArrayFull>\n <div class=\"d-flex align-items-center justify-content-start wrapperFocused\">\n <span class=\"divider d-flex align-items-center\"></span>\n <div class=\"d-flex align-items-center justify-content-start\">\n <div\n class=\"d-flex align-items-center justify-content-start search\"\n ngbTooltip\n [mainTooltip]=\"'Max added'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"svg-icon d-flex\"\n [src]=\"getSvgPath('searchButton')\"\n [svgStyle]=\"{ 'width.px': 26, 'height.px': 26 }\"\n ></svg-icon>\n </div>\n </div>\n <ng-container *ngIf=\"searchQueries.length\">\n <div\n class=\"d-flex align-items-center search-queries justify-content-center\"\n >\n <ng-container\n *ngFor=\"\n let query of searchQueries;\n let i = index;\n trackBy: trackByQuery\n \"\n >\n <span\n (click)=\"removeSelected(i)\"\n class=\"query d-flex justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'Clear'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n {{ query }}\n </span>\n </ng-container>\n <div\n (click)=\"removeQuery()\"\n ngbTooltip\n [mainTooltip]=\"'Clear All'\"\n tooltipBackground=\"#000000\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"svg-icon-clear d-flex\"\n [src]=\"getSvgPath('clearSearch')\"\n ></svg-icon>\n </div>\n </div>\n </ng-container>\n <span class=\"divider d-flex align-items-center\"></span>\n </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n// helpers\nimport { MethodsCalculationsHelper } from '../utils/helpers/methods-calculations.helper';\n\n@Pipe({\n name: 'thousandToShortFormatPipe',\n standalone: true,\n})\nexport class ThousandToShortFormatPipe implements PipeTransform {\n transform(value: number): string {\n return MethodsCalculationsHelper.convertThousandToShortFormat(\n value ?? 0\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgbModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\n\n// Pipes\nimport { ThousandToShortFormatPipe } from '../../pipes/thousand-to-short-format-pipe';\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\n\n// Models\nimport { ProgressDropdownData } from '../ca-truck-trailer-progress-bar/models/progress-dropdown-data.model';\n\n//Components\nimport { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\n\n@Component({\n selector: 'app-ca-truck-trailer-progress-bar',\n templateUrl: './ca-truck-trailer-progress-bar.component.html',\n styleUrls: ['./ca-truck-trailer-progress-bar.component.scss'],\n imports: [\n // Modules\n CommonModule,\n NgbModule,\n\n //Components\n CaAppTooltipV2Component,\n\n // Pipes\n ThousandToShortFormatPipe,\n FormatCurrencyPipe,\n ],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaTruckTrailerProgresBarComponent {\n @Input() type: string = '';\n @Input() text: string | number = '';\n @Input() percents!: number;\n @Input() data!: any; // leave this any for now\n @Input() columnField!: string;\n @Input() isTable: boolean = false;\n @Input() daysExpired: boolean = false;\n @Input() daysToPay!: number;\n @Input() hasPopover: boolean = false;\n @Input() pmName: string = 'Add PM Item';\n\n public progressDropdownActive: number = -1;\n public progressDropdownColumnActive: string | any = ''; // leave this any for now\n public progressDropdownData!: ProgressDropdownData;\n public isOpenPopup: boolean = false;\n\n public get daysPluralization(): string {\n const text = isNaN(this.text as number) ? this.text : this.text.toString();\n if (text === '1') {\n return 'Day';\n }\n\n return 'Days';\n }\n\n // Toggle Progress Dropdown\n public toggleProgressDropdown(tooltip: NgbPopover): void {\n if (this.hasPopover) {\n if (tooltip.isOpen()) {\n tooltip.close();\n this.isOpenPopup = false;\n } else {\n tooltip.open();\n this.isOpenPopup = true;\n }\n\n this.progressDropdownActive = tooltip.isOpen() ? this.data.textUnit : -1;\n this.progressDropdownColumnActive = tooltip.isOpen()\n ? this.columnField\n : null;\n this.progressDropdownData = {\n row: this.data,\n column: this.data[this.columnField],\n };\n } else {\n return;\n }\n }\n}\n","<div\n class=\"progress-bar-parent d-flex align-items-center\"\n [class.disable-hover]=\"text === '/'\"\n [class.progress-bar-parent-expired]=\"daysExpired\"\n #ngbProgress=\"ngbPopover\"\n [autoClose]=\"false\"\n [ngbPopover]=\"milesProgressPopover\"\n [placement]=\"'bottom-left bottom-right'\"\n container=\"body\"\n popoverClass=\"table-progress-popover\"\n triggers=\"manual\"\n (hidden)=\"(progressDropdownActive === -1)\"\n (click)=\"\n data[columnField]?.expirationDaysText ||\n data[columnField]?.expirationMilesText ||\n data[columnField]?.expirationCreditText\n ? toggleProgressDropdown(ngbProgress)\n : {}\n \"\n>\n <div\n class=\"progress-bar-tooltip d-flex align-items-center\"\n [class.progress-bar-active-dropdown]=\"isOpenPopup\"\n [tooltipBackground]=\"'#424242'\"\n ngbTooltip\n [mainTooltip]=\"pmName\"\n position=\"bottom\"\n >\n <ng-container *ngIf=\"text !== '/'\">\n <div class=\"progress-bar-holder mx-2\">\n <div\n class=\"progress-child-back\"\n [ngClass]=\"{\n expired: percents === 0,\n 'back-gray': percents > 50 || percents === -1,\n 'back-yellow': percents > 20 && percents <= 50,\n 'back-red': percents <= 20 && percents > 0 && text !== '/',\n }\"\n ></div>\n <div\n class=\"progress-child-front\"\n [ngClass]=\"{\n 'front-gray': percents > 50,\n 'front-yellow': percents > 20 && percents <= 50,\n 'front-red': percents <= 20,\n }\"\n [style.width.%]=\"daysExpired ? 100 - percents : percents\"\n ></div>\n </div>\n </ng-container>\n <!-- In (days) of or ago (days) dispaly text bassed on expired or it will expire -->\n\n <ng-container *ngIf=\"percents && text !== '/'\">\n <span\n class=\"progress-text\"\n [class.table-progress-text]=\"isTable\"\n [class.progress-bar-text]=\"isOpenPopup\"\n >\n <ng-container *ngIf=\"type === 'days'\">\n <ng-container *ngIf=\"daysExpired; else daysExpired\"\n >in {{ text }} days</ng-container\n >\n <ng-template #daysExpired>\n <div class=\"progress-text-title\">\n <span>{{ text }} {{ daysPluralization }} left</span>\n <span>{{ daysToPay }} days</span>\n </div></ng-template\n >\n </ng-container>\n\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'miles'\">\n {{ +text | thousandToShortFormatPipe }} mi to go\n </ng-container>\n <ng-container *ngSwitchCase=\"'credit'\">\n {{ text }}\n </ng-container>\n <ng-container *ngSwitchCase=\"''\">\n {{ text }}\n </ng-container>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngIf=\"percents === 0 && percents !== null && text !== '/'\">\n <span\n class=\"progress-text ta-font-semi-bold\"\n [class.table-progress-text]=\"isTable\"\n [class.progress-bar-text]=\"isOpenPopup\"\n >\n <ng-container *ngIf=\"type === 'days'\">\n <ng-container *ngIf=\"daysExpired; else daysExpired\"\n >{{ text }} days ago</ng-container\n >\n <ng-template #daysExpired>\n <div class=\"progress-text-title\">\n <span>{{ text }} {{ daysPluralization }} over</span>\n <span>{{ daysToPay }} days</span>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'miles'\">\n {{ +text | thousandToShortFormatPipe }} mi over\n </ng-container>\n <ng-container *ngSwitchCase=\"'credit'\">\n {{ text }}\n </ng-container>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngIf=\"text === '/'\">\n <span> / </span>\n </ng-container>\n </div>\n</div>\n\n<!-- MILES PROGRESS POPOVER -->\n<ng-template #milesProgressPopover>\n <div\n class=\"progress-dropdown\"\n [ngClass]=\"{ 'credit-dropdown': type === 'credit' }\"\n >\n <div\n class=\"progress-header d-flex align-items-center justify-content-between\"\n >\n <div class=\"progress-title\">\n <ng-container *ngIf=\"progressDropdownData.column.expirationMilesText\">\n {{ progressDropdownData.column.expirationMilesText ?? 0 }}\n\n <ng-container\n *ngIf=\"percents && percents <= 100; else isPercentsMiles\"\n >\n <span> mi to go</span>\n </ng-container>\n\n <ng-template #isPercentsMiles>\n <span> mi over</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"progressDropdownData.column.expirationDaysText\">\n {{ progressDropdownData.column?.expirationDaysText ?? 0 }}\n <ng-container *ngIf=\"percents && percents < 100; else isPercentsDays\">\n <span> days left</span>\n </ng-container>\n\n <ng-template #isPercentsDays>\n <span> days ago</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"progressDropdownData.column.expirationCreditText\">\n {{ progressDropdownData.column?.expirationCreditText ?? 0 }}\n </ng-container>\n </div>\n <div class=\"progress-total\">\n {{ progressDropdownData.column.totalValueText }}\n </div>\n </div>\n <div\n class=\"table-progress-bar-container\"\n [ngClass]=\"{\n 'bg-expired-container': !percents,\n 'bg-sliver-container': percents >= 50 && percents < 100,\n 'bg-orange-container': percents >= 20 && percents < 50,\n 'bg-danger-container': percents > 0 && percents < 20,\n 'bg-inactive-container': percents === 100,\n }\"\n >\n <div\n [ngClass]=\"{\n 'bg-progress-sliver': percents >= 50 && percents <= 100,\n 'bg-progress-orange': percents >= 20 && percents < 50,\n 'bg-progress-danger': percents > 0 && percents < 20,\n }\"\n [ngStyle]=\"{\n width: percents + '%',\n }\"\n class=\"table-progress-bar bg-progress-danger\"\n ></div>\n </div>\n <div class=\"progress-dropdown-body\">\n <ng-container *ngIf=\"type === 'days' || type === 'miles'\">\n <div class=\"progress-dual-info-container d-flex align-items-center\">\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Last Serviced</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.lastService ?? \"/\" }}\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Odometer</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.textOdometer ?? \"/\" }}\n </div>\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Repair Shop</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.textRepairShop ?? \"/\" }}\n </div>\n </div>\n <div class=\"progress-dual-info-container d-flex align-items-center\">\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Invoice</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.textInv ?? \"/\" }}\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Cost</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row?.cost ?? \"/\" }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'credit'\">\n <div class=\"progress-dual-info-container d-flex align-items-center\">\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Total Credit</div>\n <div class=\"progress-info-text\">\n {{\n progressDropdownData.row.creditLimit\n ? (progressDropdownData.row.creditLimit | formatCurrency)\n : \"/\"\n }}\n </div>\n </div>\n <div class=\"progress-info-container\">\n <div class=\"progress-info-title\">Pay Term</div>\n <div class=\"progress-info-text\">\n {{ progressDropdownData.row.broker!.payTerm?.name ?? \"/\" }}\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n// modules\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n// pipes\nimport { SafeHtmlPipe } from '../../pipes/safe-html.pipe';\n\n//helper\nimport { CopyPasteHelper } from '../ca-note/utils/helper/copy-paste.helper';\n//components\nimport { CaNoteContainerComponent } from '../ca-note-container/ca-note-container.component';\nimport { CaSpinnerComponent } from '../ca-spinner/ca-spinner.component';\n//animation\nimport { accordionAnimation } from '../../animations/accordion-animation';\n//svg-routes\nimport { SvgRoutes } from '../../utils/svg-routes/payroll-list-summary-svg-routes';\n\n@Component({\n selector: 'app-ca-input-note',\n templateUrl: './ca-input-note.component.html',\n styleUrls: ['./ca-input-note.component.scss'],\n animations: [accordionAnimation('showHideCardBody')],\n standalone: true,\n imports: [\n // Module\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgbModule,\n AngularSvgIconModule,\n // Component\n CaNoteContainerComponent,\n CaSpinnerComponent,\n\n // Pipe\n SafeHtmlPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaInputNoteComponent {\n @ViewChild('main_editor', { static: true }) public noteRef:\n | ElementRef\n | undefined;\n @ViewChild('noteContainer', { static: true })\n public noteContainer!: CaNoteContainerComponent;\n\n @Input() set note(value: string) {\n if (\n (value && value != '' && value != 'null' && !this.isValue) ||\n this.isBlankNote\n ) {\n this.showNote = value;\n }\n }\n @Input() set isVisibleNote(value: boolean) {\n this.noActive = value ? 'active' : 'innactive';\n this._isVisibleNote = value ? true : false;\n }\n @Input() isBlankNote: boolean = false;\n @Input() noteType: string = '';\n @Input() entityId: number = 0;\n @Input() entityType: string = '';\n @Input() hasDefArrow: boolean = true;\n @Input() isVisibleArrow: boolean = true;\n @Input() noteLabel: string = 'Note';\n @Input() placeholder: string = 'Type Something...';\n @Input() isReadOnly: boolean = false;\n @Input() customClass: string = '';\n\n @Output() styledValueEmitter = new EventEmitter<string>();\n //note properties\n public _isVisibleNote: boolean | string = 'null';\n public selectionTaken!: Selection;\n public range!: Range;\n private isValue: boolean = false;\n public showNote!: string;\n public value: string = '';\n public isFocused: boolean = false;\n private blurNoteTimeout!: NodeJS.Timeout;\n public noActive!: string;\n\n //saving\n public isSavingNote: boolean = false;\n private saveInterval: number | undefined;\n private isSaveIntervalStarted!: boolean;\n public savedValue: string = '';\n\n constructor() {}\n\n public openNote(): void {\n this.noActive = '';\n this._isVisibleNote = !this._isVisibleNote;\n\n if (this._isVisibleNote) {\n this.checkActiveItems();\n }\n }\n\n public checkFocus(): void {\n this.isFocused = true;\n if (!this._isVisibleNote) {\n setTimeout(() => {\n this.checkActiveItems();\n }, 150);\n }\n }\n\n public changeValue(event: Event): void {\n this.isValue = true;\n const target = event.target as HTMLElement;\n this.value = target.innerHTML;\n this.checkActiveItems();\n }\n\n public saveNote(allowSave?: boolean): void {\n if (this.value == '<br>') {\n this.value = this.value.replace('<br>', '');\n }\n if (allowSave) {\n this.savedValue = this.value;\n const val = !this.value || this.value == '' ? null : this.value;\n }\n if (\n this.noteType == 'details-card' &&\n this.entityId &&\n this.entityType != ''\n ) {\n this.isSavingNote = true;\n setTimeout(() => {\n this.isSavingNote = false;\n }, 700);\n this.updateNote();\n }\n\n this.styledValueEmitter.emit(this.noteRef!.nativeElement.innerHTML);\n }\n\n public stopBlurRemoveTimeout(): void {\n clearTimeout(this.blurNoteTimeout);\n }\n\n public checkActiveItems(): void {\n if (this.noteContainer && this.noteContainer?.checkActiveItems) {\n this.noteContainer?.checkActiveItems();\n }\n }\n public prepareForTextRange(): void {\n this.isFocused = false;\n this.selectionTaken = window.getSelection()!;\n if (this.selectionTaken.rangeCount && this.selectionTaken.getRangeAt) {\n this.range = this.selectionTaken.getRangeAt(0);\n this.selectionTaken.removeAllRanges();\n this.selectionTaken.addRange(this.range);\n\n this.blurNoteTimeout = setTimeout(() => {\n this.selectionTaken.removeAllRanges();\n }, 100);\n }\n this.isSaveIntervalStarted = false;\n clearInterval(this.saveInterval);\n if (this.savedValue != this.value) {\n this.saveNote(true);\n }\n\n this.styledValueEmitter.emit(this.noteRef!.nativeElement.innerHTML);\n }\n\n public updateNote(): void {\n this.showNote = this.value;\n }\n\n public onPaste(event: ClipboardEvent): void {\n CopyPasteHelper.onPaste(event);\n }\n\n public getSvgPath(propertyName: keyof typeof SvgRoutes): string {\n return SvgRoutes[propertyName] as string;\n }\n}\n","<div class=\"note-container {{ customClass }}\">\n <!-- Header -->\n <div\n class=\"note-header d-flex align-items-center\"\n [class.pointer]=\"isVisibleArrow\"\n >\n <div\n class=\"d-flex align-items-center note-label\"\n [ngStyle]=\"{ color: _isVisibleNote ? '#424242' : '#6C6C6C' }\"\n (click)=\"isVisibleArrow ? openNote() : ''\"\n >\n {{ noteLabel }}\n </div>\n\n <div\n class=\"note_tools_container\"\n (click)=\"isVisibleArrow && !_isVisibleNote ? openNote() : ''\"\n >\n <app-ca-note-container\n #noteContainer\n [isExpanded]=\"_isVisibleNote && _isVisibleNote != 'null'\"\n [range]=\"range\"\n [selectionTaken]=\"selectionTaken\"\n [value]=\"value\"\n [isPopoverNote]=\"false\"\n [selectedEditor]=\"noteRef?.nativeElement\"\n [isVisibleArrow]=\"isVisibleArrow\"\n (stopBlurRemoveTimeout)=\"stopBlurRemoveTimeout()\"\n ></app-ca-note-container>\n </div>\n\n <ng-container *ngIf=\"isVisibleArrow\">\n <div\n class=\"note_upper_hold d-flex justify-content-center align-items-center\"\n >\n <svg-icon\n class=\"note-arrow\"\n [ngClass]=\"{\n rotate: _isVisibleNote && _isVisibleNote != 'null',\n }\"\n [src]=\"hasDefArrow ? getSvgPath('downArrow') : getSvgPath('upArrow')\"\n (click)=\"openNote()\"\n ></svg-icon>\n </div>\n </ng-container>\n </div>\n\n <!-- Body -->\n\n <div\n class=\"note-body\"\n [ngClass]=\"noActive\"\n #noteBody\n [@showHideCardBody]=\"{\n value: _isVisibleNote.toString(),\n params: {\n marginTop: '0px',\n marginBottom: '0px',\n },\n }\"\n >\n <div\n #main_editor\n id=\"main_editor\"\n class=\"note-textarea\"\n [class.details_textarea]=\"noteType == 'details-card'\"\n contenteditable=\"true\"\n [attr.data-text]=\"placeholder\"\n spellcheck=\"false\"\n (input)=\"changeValue($event)\"\n (focus)=\"checkFocus()\"\n (blur)=\"prepareForTextRange()\"\n [innerHTML]=\"showNote | safeHtml\"\n (paste)=\"onPaste($event)\"\n ></div>\n\n <!-- Spinner -->\n\n <ng-container *ngIf=\"isSavingNote && noteType == 'details-card'\">\n <div class=\"spinner d-flex\">\n <app-ca-spinner [size]=\"'small'\" [color]=\"'blueDark'\"></app-ca-spinner>\n </div>\n </ng-container>\n </div>\n</div>\n","export class PeriodContentSvgRoutes {\n static active: string = 'assets/ca-components/svg/period-content/status-active-lite.svg';\n static pending: string = 'assets/ca-components/svg/period-content/status-pending-lite.svg';\n static warning: string = 'assets/ca-components/svg/period-content/status-warning-lite.svg';\n static plus: string = 'assets/ca-components/svg/period-content/plus.svg';\n static dolarSign: string = 'assets/ca-components/svg/period-content/dollar-sign.svg';\n static options: string = 'assets/ca-components/svg/period-content/options.svg';\n static optionsClicked: string = 'assets/ca-components/svg/period-content/options-clicked.svg';\n static semiTruck: string = 'assets/ca-components/svg/period-content/semi-truck.svg';\n\n static userAvatar: string = 'png/user-avatar.png';\n static userAvatarMissing: string = 'png/user-avatar-missing.png';\n static dragging: string = 'assets/ca-components/svg/period-content/dragging.svg';\n}\n","export const titleColorMap: { [key: string]: string } = {\n fuel: '#B370F0',\n credit: '#56B4AC',\n deduction: '#E66767',\n payment: '#424242',\n bonus: '#FAB15C',\n};\n","export class PayrollPeriodDropdownConstant {\n static readonly payrollPeriodOpen = [\n { Icon: 'assets/ca-components/svg/popup/edit-hover.svg', text: 'Edit' },\n { Icon: 'assets/ca-components/svg/popup/ic_info.svg', text: 'View Details' },\n { Icon: 'assets/ca-components/svg/popup/share-icon.svg', text: 'Share' },\n { Icon: 'assets/ca-components/svg/popup/ic_print.svg', text: 'Print' },\n { Icon: 'assets/ca-components/svg/popup/Delete.svg', text: 'Delete' },\n ];\n\n static readonly payrollPeriodClosed = [\n { Icon: 'assets/ca-components/svg/popup/ic_info.svg', text: 'View Details' },\n { Icon: 'assets/ca-components/svg/popup/share-icon.svg', text: 'Share' },\n { Icon: 'assets/ca-components/svg/popup/ic_print.svg', text: 'Print' },\n ];\n}\n","export enum PayrollTypeEnum {\n MILEAGE = 'MILEAGE',\n COMMISSION = 'COMMISSION',\n FLAT_RATE = 'FLAT_RATE',\n OWNER_COMMISSION = 'OWNER_COMMISSION',\n}\n\nexport enum userInfoEnum {\n SHORT_PAID = 'SHORT-PAID',\n CLOSED_UNPAID = 'CLOSED UNPAID',\n PAID_IN_FULL = 'PAID IN FULL',\n READY_IN_DAYS = 'READY IN 444 DAYS',\n READY_TO_PROCESS = 'READY TO PROCESS',\n DAYS_OVERDUE = '444 DAYS OVERDUE',\n}\n","//models\nimport { ComponentData } from '../../models/component-data.type';\nimport { ExtraPayments } from '../../../ca-period-content/models/extra-payments';\nimport { DriverInfo } from '../../models/driver-info';\nimport { PayrollCreditResponse } from '../../models/payroll-credit-response';\nimport { PayrollDeductionResponse } from '../../models/payroll-deduction-response';\nimport { PayrollBonusResponse } from '../../models/payroll-bonus-response';\nimport { PayrollFuelMinimalResponse } from '../../models/payroll-fuel-minimal-response';\nimport { PayrollPaymentResponse } from '../../models/payroll-payment-response';\n//enum\nimport { PayrollTypeEnum, userInfoEnum } from '../../enums/payroll-type.enum';\n//svg-routes\nimport { PeriodContentSvgRoutes } from '../svg-routes/period-content.routes';\n\nexport class PayrollPeriodContentHelper {\n public static getSalary(componentData: ComponentData): number {\n if ('salaryAmount' in componentData) {\n return componentData.salaryAmount ?? 0;\n } else if ('salary' in componentData) {\n return componentData.salary ?? 0;\n }\n return 0;\n }\n\n public static calculateTotalEarnings(\n componentData: ComponentData,\n paymentSums: { sum: number; type: string }[]\n ): {\n totalEarnings: number;\n debt: number;\n salary: number;\n } {\n let creditSum: number = 0;\n let deductionSum: number = 0;\n let fuelSum: number = 0;\n let paymentSum: number = 0;\n let totalEarnings: number;\n let debt: number;\n\n let salary = PayrollPeriodContentHelper.getSalary(componentData);\n\n paymentSums.forEach((item: { sum: number; type: string }) => {\n if (item.type === 'Credit') {\n creditSum += item.sum;\n } else if (item.type === 'Deduction') {\n deductionSum += item.sum;\n } else if (item.type === 'Fuel') {\n fuelSum += item.sum;\n } else if (item.type === 'Payment') {\n paymentSum += item.sum;\n }\n });\n totalEarnings = salary + creditSum - deductionSum - fuelSum;\n debt = totalEarnings - paymentSum;\n\n return { salary, totalEarnings, debt };\n }\n\n public static setDebtTitle(\n debt: number,\n totalEarnings: number\n ): { debtTitle: string; isInDebt: boolean; paymentStatus: string } {\n if (debt <= 0) {\n return {\n debtTitle: userInfoEnum.PAID_IN_FULL,\n paymentStatus: userInfoEnum.PAID_IN_FULL,\n isInDebt: false,\n };\n } else if (debt === totalEarnings) {\n return {\n debtTitle: 'DEBT',\n paymentStatus: userInfoEnum.CLOSED_UNPAID,\n isInDebt: true,\n };\n } else {\n return {\n debtTitle: 'DEBT',\n paymentStatus: userInfoEnum.SHORT_PAID,\n isInDebt: true,\n };\n }\n }\n\n public static calculateDriverAndPaymentInfo(\n componentData: ComponentData,\n type: PayrollTypeEnum\n ): {\n driverInfo: DriverInfo;\n extraPayments: ExtraPayments;\n } {\n const driverInfo: DriverInfo = this.extractDriverInfo(componentData, type);\n const extraPayments: ExtraPayments = this.setExtraPayments(componentData);\n\n return { driverInfo, extraPayments };\n }\n\n private static setExtraPayments(componentData: ComponentData): ExtraPayments {\n let credits: PayrollCreditResponse[] = [];\n let deductions: PayrollDeductionResponse[] = [];\n let bonuses: PayrollBonusResponse[] = [];\n let fuels: PayrollFuelMinimalResponse[] = [];\n let payments: PayrollPaymentResponse[] = [];\n\n if ('includedCredits' in componentData) {\n credits = componentData.includedCredits ?? [];\n } else if ('credits' in componentData) {\n credits = componentData.credits ?? [];\n }\n\n if ('includedDeductions' in componentData) {\n deductions = componentData.includedDeductions ?? [];\n } else if ('deductions' in componentData) {\n deductions = componentData.deductions ?? [];\n }\n\n if ('bonuses' in componentData) {\n bonuses = componentData.bonuses ?? [];\n }\n\n if ('payments' in componentData) {\n payments = componentData.payments ?? [];\n } else if ('transactions' in componentData) {\n payments = componentData.transactions ?? [];\n }\n\n if ('fuels' in componentData) {\n fuels = componentData.fuels ?? [];\n } else if ('includedFuels' in componentData) {\n fuels = componentData.includedFuels ?? [];\n }\n\n return {\n bonuses,\n credits,\n deductions,\n fuels,\n payments,\n };\n }\n\n private static extractDriverInfo(\n componentData: ComponentData,\n type: PayrollTypeEnum\n ): DriverInfo {\n const payrollNumber = componentData.payrollNumber || '0';\n\n if (type === PayrollTypeEnum.OWNER_COMMISSION) {\n return this.extractOwnerCommissionInfo(componentData, payrollNumber);\n } else {\n return this.extractDriverOrOwnerInfo(componentData, payrollNumber);\n }\n }\n\n private static extractOwnerCommissionInfo(\n componentData: ComponentData,\n payrollNumber: string\n ): DriverInfo {\n const truckNumber: string =\n 'truckNumber' in componentData ? (componentData.truckNumber ?? '0') : '0';\n\n const truckType: string =\n 'truckType' in componentData ? (componentData.truckType ?? '0') : '0';\n\n return {\n fullName: `${truckNumber} - ${truckType}`,\n payrollNumber,\n };\n }\n\n private static extractDriverOrOwnerInfo(\n componentData: ComponentData,\n payrollNumber: string\n ): DriverInfo {\n if ('driver' in componentData && componentData.driver) {\n const fullName = componentData.driver.fullName || '';\n const driverAvatar =\n componentData.driver.avatarFile?.url ||\n PeriodContentSvgRoutes.userAvatarMissing;\n\n return { driverAvatar, fullName, payrollNumber };\n }\n\n if ('driverName' in componentData && componentData.driverName) {\n const fullName = componentData.driverName;\n const driverAvatar =\n componentData.driverAvatar?.url ||\n PeriodContentSvgRoutes.userAvatarMissing;\n\n return { driverAvatar, fullName, payrollNumber };\n }\n return {\n driverAvatar: PeriodContentSvgRoutes.userAvatarMissing,\n fullName: '',\n payrollNumber,\n };\n }\n public static getIcon(status: string): { title: string; url: string } {\n switch (status) {\n case 'incomplete':\n return {\n title: userInfoEnum.READY_IN_DAYS,\n url: PeriodContentSvgRoutes.pending,\n };\n case 'ready':\n return {\n title: userInfoEnum.READY_TO_PROCESS,\n url: PeriodContentSvgRoutes.active,\n };\n case 'overdue':\n return {\n title: userInfoEnum.DAYS_OVERDUE,\n url: PeriodContentSvgRoutes.warning,\n };\n default:\n return {\n title: userInfoEnum.READY_IN_DAYS,\n url: PeriodContentSvgRoutes.active,\n };\n }\n }\n\n public static getSvgPath(\n propertyName: keyof typeof PeriodContentSvgRoutes\n ): string {\n return PeriodContentSvgRoutes[propertyName] as string;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Svg routes\nimport { PeriodContentSvgRoutes } from '../../../../components/ca-period-content/utils/svg-routes/period-content.routes';\n\n//Modules\nimport {\n CdkDragDrop,\n DragDropModule,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\n//Interfaces\nimport { IItemList } from '../../../../models/dropdown.model';\nimport { formattedComponentData } from '../../models/formatted-component-data.type';\nimport {\n ComponentData,\n PaymentComponentData,\n} from '../../models/component-data.type';\nimport { PayrollFuelMinimalResponse } from '../../models/payroll-fuel-minimal-response';\nimport { PaymentSum } from '../../models/payment-sum.model';\n\n//Constants\nimport { titleColorMap } from '../../utils/constants/color-map';\nimport { PayrollPeriodDropdownConstant } from '../../utils/constants/payroll-period-dropdown.constant';\n\n//Components\nimport { CaAppTooltipV2Component } from '../../../ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaDropdownComponent } from '../../../ca-dropdown/ca-dropdown.component';\n//pipes\nimport { FormatCurrencyPipe } from '../../../../pipes/format-currency.pipe';\n//helper\nimport { PayrollPeriodContentHelper } from '../../utils/helpers/payroll-period-content.helper';\n\n@Component({\n selector: 'app-ca-period-content-payment',\n standalone: true,\n providers: [FormatCurrencyPipe],\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n NgbTooltipModule,\n DragDropModule,\n\n //Components\n CaAppTooltipV2Component,\n CaDropdownComponent,\n //pipes\n FormatCurrencyPipe,\n ],\n templateUrl: './ca-period-content-payment.component.html',\n styleUrls: ['./ca-period-content-payment.component.scss'],\n})\nexport class CaPeriodContentPaymentComponent implements OnInit {\n @Input() isOpen: boolean = false;\n @Input() title!: string;\n @Input() componentData!: PaymentComponentData;\n @Output() sumPaymentTypeEmitter = new EventEmitter<PaymentSum>();\n @Output() reorderedDataEmiter = new EventEmitter<PaymentComponentData>();\n\n public sum!: number;\n public formattedComponentData: formattedComponentData[] = [];\n\n // Dropdown\n public hoverStates: boolean[] = [];\n public clickedStates: boolean[] = [];\n private dropdownStates: { [key: string]: boolean } = {};\n private activeIndex: number = -1;\n public dropdownOptions!: IItemList[];\n\n //Icons\n public periodContentSvgRoutes: PeriodContentSvgRoutes =\n PeriodContentSvgRoutes;\n public originalIcon: string = PeriodContentSvgRoutes.options;\n public alternateIcon: string = PeriodContentSvgRoutes.optionsClicked;\n public currentIcon: string = this.originalIcon;\n public currentIcons: string[] = [];\n\n constructor() {}\n\n ngOnInit() {\n this.processInputData();\n\n this.setDropdownOptions();\n\n this.setHoverOptions();\n\n this.calculateTotalPayment();\n\n this.setInitialIcons();\n }\n\n private setHoverOptions(): void {\n if (this.componentData) {\n this.hoverStates = new Array(this.componentData.length).fill(false);\n this.clickedStates = new Array(this.componentData.length).fill(false);\n }\n }\n\n private processInputData(): void {\n if (!this.componentData) return;\n\n this.formattedComponentData = this.componentData.map((item) => {\n return {\n amount: item.amount,\n description: item.description || '',\n date: item.date,\n galons: (item as PayrollFuelMinimalResponse).galons,\n id: item.id || null,\n } as formattedComponentData;\n });\n }\n\n private setDropdownOptions(): void {\n if (this.isOpen) {\n this.dropdownOptions = PayrollPeriodDropdownConstant.payrollPeriodOpen;\n } else {\n this.dropdownOptions = PayrollPeriodDropdownConstant.payrollPeriodClosed;\n }\n }\n\n private setInitialIcons(): void {\n this.currentIcons = new Array(this.componentData.length).fill(\n this.originalIcon\n );\n }\n\n public dropDownClickEvent(index: number): void {\n if (this.activeIndex !== -1 && this.activeIndex !== index) {\n this.dropdownStates[this.activeIndex] = false;\n this.clickedStates[this.activeIndex] = false;\n this.currentIcons[this.activeIndex] = this.originalIcon;\n }\n\n this.dropdownStates[index] = !this.dropdownStates[index];\n this.clickedStates[index] = this.dropdownStates[index];\n this.currentIcons[index] = this.clickedStates[index]\n ? this.alternateIcon\n : this.originalIcon;\n this.activeIndex = this.dropdownStates[index] ? index : -1;\n }\n\n public isDropdownEnabled(loadNumber: number): boolean {\n return !!this.dropdownStates[loadNumber];\n }\n\n public onMouseEnter(index: number): void {\n this.hoverStates[index] = true;\n }\n\n public onMouseLeave(index: number): void {\n this.hoverStates[index] = false;\n }\n\n public getColor(title: string): string {\n return titleColorMap[title.toLowerCase()] || '#424242';\n }\n\n public getTitleColor(): string {\n if (!this.componentData?.length || !this.componentData) {\n return '#AAAAAA';\n }\n return '#424242';\n }\n\n public calculateTotalPayment(): void {\n const sum =\n this.formattedComponentData?.reduce(\n (sum: number, item: formattedComponentData) => {\n return sum + (item.amount || 0);\n },\n 0\n ) || 0;\n this.sum = sum;\n this.sumPaymentTypeEmitter.emit({ sum: this.sum, type: this.title });\n }\n\n public onDrop(event: CdkDragDrop<ComponentData>): void {\n moveItemInArray(\n this.componentData,\n event.previousIndex,\n event.currentIndex\n );\n\n this.reorderedDataEmiter.emit(this.componentData);\n }\n\n public moveItem(previousIndex: number, currentIndex: number): void {\n const item = this.formattedComponentData[previousIndex];\n this.formattedComponentData.splice(previousIndex, 1);\n this.formattedComponentData.splice(currentIndex, 0, item);\n }\n\n public getSvgPath(propertyName: keyof typeof PeriodContentSvgRoutes): string {\n return PayrollPeriodContentHelper.getSvgPath(propertyName);\n }\n\n public identity(index: number): number {\n return index;\n }\n}\n","<ng-container *ngIf=\"componentData?.length; else emptyComponentData\"\n ><div\n class=\"wrapper d-flex flex-column align-items-center justify-content-start\"\n >\n <div class=\"container d-flex flex-column\">\n <ng-container *ngIf=\"title !== 'Credit' && title !== 'Payment'\">\n <div class=\"divider d-flex justify-content-center\"></div>\n </ng-container>\n <div class=\"text-value d-flex justify-content-between\">\n <div\n class=\"payment-count d-flex align-items-center justify-content-start\"\n >\n <span class=\"text ca-font-extra-bold\">{{ title }}</span>\n <span\n class=\"round ca-font-bold d-flex align-items-center justify-content-center\"\n >\n {{ componentData?.length }}\n </span>\n </div>\n <span class=\"value d-flex align-items-center\">\n <ng-container *ngIf=\"isOpen; else notOpen\">\n <svg-icon\n class=\"d-flex icon\"\n [src]=\"getSvgPath('plus')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n <ng-template #notOpen>\n <span\n class=\"total-money-closed ca-font-semi-bold\"\n [ngStyle]=\"{ color: getColor(title) }\"\n >{{ sum | formatCurrency }}</span\n >\n </ng-template>\n </span>\n </div>\n </div>\n\n <div\n [ngClass]=\"{ 'disabled-drag': title === 'Bonus' }\"\n cdkDropList\n class=\"component-data-container d-flex justify-content-center flex-column\"\n (cdkDropListDropped)=\"onDrop($event)\"\n >\n <ng-container\n *ngFor=\"let data of componentData; let i = index; trackBy: identity\"\n >\n <div\n cdkDrag\n cdkDragLockAxis=\"y\"\n cdkDragBoundary=\".component-data-container\"\n class=\"d-flex justify-content-between align-items-center information\"\n [ngClass]=\"{\n clicked: clickedStates[i],\n 'drag-disabled': title === 'Bonus',\n }\"\n (mouseenter)=\"onMouseEnter(i)\"\n (mouseleave)=\"onMouseLeave(i)\"\n >\n <ng-template cdkDragPreview>\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"d-flex align-items-center\">\n <div class=\"icon-holder mx-2\">\n <svg-icon\n [src]=\"getSvgPath('dragging')\"\n alt=\"Dragging Image\"\n ></svg-icon>\n </div>\n <div class=\"date-location d-flex flex-column\">\n <span class=\"ca-font-semi-bold location\">{{\n data.description\n }}</span>\n <span class=\"date ca-font-medium\">{{ data.date }}</span>\n </div>\n </div>\n <span\n class=\"money d-flex justify-content-end ca-font-regular mx-2\"\n >{{ data.amount ? data.amount : (0 | formatCurrency) }}\n </span>\n </div>\n </ng-template>\n <span\n class=\"number d-flex justify-content-center align-items-center ca-font-medium\"\n >\n <ng-container\n *ngIf=\"!hoverStates[i] && !clickedStates[i]; else hoveredState\"\n >{{ data!.id }}\n </ng-container>\n <ng-template #hoveredState>\n <div\n class=\"icon-holder d-flex align-items-center justify-content-center\"\n ngbTooltip\n [mainTooltip]=\"'More'\"\n tooltipBackground=\"#424242\"\n position=\"bottom\"\n [ngStyle]=\"{\n backgroundColor: clickedStates[i] ? '#424242' : 'transparent',\n color: hoverStates[i] ? 'desiredColor' : 'initialColor',\n }\"\n >\n <app-ca-dropdown\n [itemList]=\"dropdownOptions\"\n [icon]=\"currentIcons[i]\"\n (onClick)=\"dropDownClickEvent(i)\"\n [isPopupShown]=\"isDropdownEnabled(i)\"\n ></app-ca-dropdown>\n </div>\n </ng-template>\n </span>\n <div class=\"date-location d-flex flex-column\">\n <span class=\"ca-font-semi-bold location\">{{\n data.description\n }}</span>\n <span class=\"date ca-font-medium\">{{ data.date }}</span>\n </div>\n <span class=\"money d-flex justify-content-end ca-font-regular\"\n >{{ data.amount ? data.amount : (0 | formatCurrency) }}\n </span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isOpen\">\n <div\n class=\"total-money-title d-flex justify-content-between align-items-center\"\n >\n <div class=\"icon-total d-flex align-items-center\">\n <span\n class=\"dolar-icon d-flex align-items-center\"\n [ngStyle]=\"{ color: getColor(title) }\"\n >\n <svg-icon\n class=\"d-flex align-items-center\"\n [src]=\"getSvgPath('dolarSign')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </span>\n <span class=\"total-title ca-font-bold\">Total</span>\n </div>\n <span\n class=\"total-money d-flex justify-content-end align-items-center ca-font-semi-bold\"\n [ngStyle]=\"{ color: getColor(title) }\"\n >{{ sum | formatCurrency }}</span\n >\n </div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #emptyComponentData>\n <div class=\"container-empty d-flex flex-column\">\n <div class=\"divider d-flex justify-content-center\"></div>\n <div class=\"text-value d-flex justify-content-between\">\n <div\n class=\"payment-count d-flex align-items-center justify-content-start\"\n >\n <span\n class=\"text ca-font-extra-bold\"\n [ngStyle]=\"{ color: isOpen ? '#424242' : '#aaaaaa' }\"\n >{{ title }}</span\n >\n </div>\n <span class=\"value d-flex align-items-center\">\n <ng-container *ngIf=\"isOpen; else notOpen\">\n <svg-icon\n class=\"d-flex icon\"\n [src]=\"getSvgPath('plus')\"\n [svgStyle]=\"{ 'width.px': 18, 'height.px': 18 }\"\n ></svg-icon>\n </ng-container>\n <ng-template #notOpen>\n <span class=\"total-money-closed ca-font-semi-bold\">$0.00</span>\n </ng-template>\n </span>\n </div>\n </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-ca-period-content-extra-info',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './ca-period-content-extra-info.component.html',\n styleUrls: ['./ca-period-content-extra-info.component.scss'],\n})\nexport class CaPeriodContentExtraInfoComponent {\n @Input() title!: string;\n @Input() amount!: number;\n}\n","<div class=\"mileage-pay d-flex flex-column\">\n <div class=\"divider d-flex justify-content-center\"></div>\n <div class=\"text-value d-flex justify-content-between align-items-end\">\n <div\n class=\"payment-count d-flex align-items-center justify-content-start\"\n >\n <span class=\"text ca-font-extra-bold\">{{ title }}</span>\n </div>\n <div class=\"value d-flex align-items-center\">\n <span class=\"total-money-closed ca-font-semi-bold\"\n >${{ amount }}</span\n >\n </div>\n </div>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Interfaces\nimport { ComponentData } from '../../models/component-data.type';\nimport { DriverInfo } from '../../models/driver-info';\n// Svg routes\nimport { PeriodContentSvgRoutes } from '../../utils/svg-routes/period-content.routes';\n\n// Enum\nimport { PayrollTypeEnum, userInfoEnum } from '../../enums/payroll-type.enum';\n//helper\nimport { PayrollPeriodContentHelper } from '../../utils/helpers/payroll-period-content.helper';\n\n@Component({\n selector: 'app-ca-period-content-user-info',\n standalone: true,\n imports: [CommonModule, AngularSvgIconModule],\n templateUrl: './ca-period-content-user-info.component.html',\n styleUrls: ['./ca-period-content-user-info.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CaPeriodContentUserInfoComponent {\n @Input() componentData!: ComponentData;\n @Input() type!: PayrollTypeEnum;\n @Input() paymentStatus!: string;\n @Input() isOpen!: boolean;\n @Input() userInfo!: DriverInfo;\n @Input() status: string = 'incomplete';\n\n public title!: string;\n public currentIcon!: string;\n\n public setCurrentIconAndClass(): string {\n if (this.isOpen) {\n const { title, url } = PayrollPeriodContentHelper.getIcon(this.status);\n this.title = title;\n return url;\n } else {\n if (\n this.paymentStatus === userInfoEnum.SHORT_PAID ||\n this.paymentStatus === userInfoEnum.CLOSED_UNPAID\n ) {\n this.title = this.paymentStatus;\n return PeriodContentSvgRoutes.pending;\n } else if (this.paymentStatus === userInfoEnum.PAID_IN_FULL) {\n this.title = this.paymentStatus;\n return PeriodContentSvgRoutes.active;\n } else {\n this.title = this.paymentStatus;\n return PeriodContentSvgRoutes.warning;\n }\n }\n }\n public getSvgPath(propertyName: keyof typeof PeriodContentSvgRoutes): string {\n return PayrollPeriodContentHelper.getSvgPath(propertyName);\n }\n}\n","<div class=\"title d-flex align-items-center\">\n <div class=\"container d-flex align-items-center\">\n <ng-container *ngIf=\"type !== 'OWNER_COMMISSION'; else ownerCommission\">\n <img class=\"img-frame\" [src]=\"userInfo.driverAvatar\" alt=\"User Avatar\" />\n </ng-container>\n <div class=\"user-information d-flex flex-column justify-content-center\">\n <span class=\"user-detail d-flex align-items-center ca-font-extra-bold\"\n >{{ userInfo.fullName }}\n </span>\n <span class=\"user-detail d-flex align-items-center ca-font-medium\">{{\n userInfo.payrollNumber\n }}</span>\n <span class=\"user-detail d-flex align-items-center ca-font-bold icon-row\">\n <svg-icon\n class=\"d-flex icon align-items-center\"\n [src]=\"setCurrentIconAndClass()\"\n [svgStyle]=\"{\n 'width.px': 18,\n 'height.px': 18,\n fill: 'red',\n }\"\n ></svg-icon>\n <span\n [ngClass]=\"{\n incomplete: status === 'incomplete',\n ready: status === 'ready',\n overdue: status === 'overdue',\n }\"\n >{{ title }}</span\n >\n </span>\n </div>\n\n <ng-template #ownerCommission>\n <div class=\"semi-div d-flex align-items-end\">\n <img\n class=\"img-frame-semi\"\n [src]=\"getSvgPath('semiTruck')\"\n alt=\"User Avatar\"\n />\n </div>\n </ng-template>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n//Modules\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n//Components\nimport { CaPeriodContentPaymentComponent } from './components/ca-period-content-payment/ca-period-content-payment.component';\nimport { CaPeriodContentExtraInfoComponent } from './components/ca-period-content-extra-info/ca-period-content-extra-info.component';\nimport { CaPeriodContentUserInfoComponent } from './components/ca-period-content-user-info/ca-period-content-user-info.component';\n//Svg routes\nimport { PeriodContentSvgRoutes } from '../ca-period-content/utils/svg-routes/period-content.routes';\n//enum\nimport { PayrollTypeEnum } from './enums/payroll-type.enum';\n//Interface\nimport {\n ComponentData,\n PaymentComponentData,\n} from './models/component-data.type';\nimport { DriverInfo } from '../ca-period-content/models/driver-info';\nimport { ExtraPayments } from '../ca-period-content/models/extra-payments';\nimport { PaymentSum } from './models/payment-sum.model';\nimport { formattedComponentData } from './models/formatted-component-data.type';\n\n//Helpers\nimport { PayrollPeriodContentHelper } from '../ca-period-content/utils/helpers/payroll-period-content.helper';\n//pipes\nimport { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';\n\n@Component({\n selector: 'app-ca-period-content',\n standalone: true,\n providers: [FormatCurrencyPipe],\n imports: [\n //Modules\n CommonModule,\n AngularSvgIconModule,\n\n //Components\n CaPeriodContentPaymentComponent,\n CaPeriodContentUserInfoComponent,\n CaPeriodContentExtraInfoComponent,\n //pipes\n FormatCurrencyPipe,\n ],\n templateUrl: './ca-period-content.component.html',\n styleUrls: ['./ca-period-content.component.scss'],\n})\nexport class CaPeriodContentComponent {\n @Input() isOpen!: boolean;\n @Input() type!: PayrollTypeEnum;\n @Input() componentData!: ComponentData;\n @Input() status!: string;\n @Output() reorderedDataEmiter = new EventEmitter<\n PaymentComponentData | ExtraPayments\n >();\n\n public salary!: number;\n public totalEarnings!: number;\n public debt!: number;\n private paymentSums: PaymentSum[] = [];\n public debtTitle!: string;\n public isInDebt?: boolean;\n public paymentStatus!: string;\n public driverInfo!: DriverInfo;\n public extraPayments!: ExtraPayments;\n\n //svg-routes\n public periodContentSvgRoutes: PeriodContentSvgRoutes =\n PeriodContentSvgRoutes;\n\n ngOnInit() {\n this.getAllInfo();\n }\n\n constructor() {}\n\n private getAllInfo(): void {\n const { driverInfo, extraPayments } =\n PayrollPeriodContentHelper.calculateDriverAndPaymentInfo(\n this.componentData,\n this.type\n );\n\n this.driverInfo = driverInfo;\n this.extraPayments = extraPayments;\n }\n\n public getAllPaymentSums(event: { sum: number; type: string }): void {\n this.paymentSums.push(event);\n this.calculateTotalEarnings();\n this.setDebtTitle();\n }\n\n private calculateTotalEarnings(): void {\n const { debt, salary, totalEarnings } =\n PayrollPeriodContentHelper.calculateTotalEarnings(\n this.componentData,\n this.paymentSums\n );\n this.debt = debt;\n this.salary = salary;\n this.totalEarnings = totalEarnings;\n }\n\n private setDebtTitle(): void {\n const { debtTitle, isInDebt, paymentStatus } =\n PayrollPeriodContentHelper.setDebtTitle(this.debt, this.totalEarnings);\n this.isInDebt = isInDebt;\n this.debtTitle = debtTitle;\n this.paymentStatus = paymentStatus;\n }\n\n public processPayment(): void {\n console.log('process early');\n }\n\n public addPayment(): void {\n console.log('add payment');\n }\n\n public getReorderedData(): void {\n this.reorderedDataEmiter.emit(this.extraPayments);\n }\n}\n","<!-- User info -->\n\n<app-ca-period-content-user-info\n [componentData]=\"componentData\"\n [type]=\"type\"\n [paymentStatus]=\"paymentStatus\"\n [isOpen]=\"isOpen\"\n [userInfo]=\"driverInfo\"\n [status]=\"status\"\n></app-ca-period-content-user-info>\n\n<!-- Bonues, salary... -->\n\n<div class=\"payment-container d-flex flex-column align-items-center\">\n <div>\n <ng-container *ngIf=\"type === 'MILEAGE'; else flatRate\">\n <app-ca-period-content-extra-info\n title=\"Mileage pay\"\n [amount]=\"160.56\"\n ></app-ca-period-content-extra-info>\n\n <app-ca-period-content-extra-info\n title=\"Extra stop\"\n [amount]=\"430.41\"\n ></app-ca-period-content-extra-info>\n </ng-container>\n\n <ng-template #flatRate>\n <app-ca-period-content-extra-info\n title=\"Load pay\"\n [amount]=\"160.56\"\n ></app-ca-period-content-extra-info>\n </ng-template>\n </div>\n\n <!-- BONUS -->\n\n <ng-container *ngIf=\"type === 'MILEAGE' || type === 'FLAT_RATE'\">\n <app-ca-period-content-payment\n [title]=\"'Bonus'\"\n [isOpen]=\"isOpen\"\n [componentData]=\"extraPayments.bonuses\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment>\n </ng-container>\n\n <div class=\"salary d-flex justify-content-between align-items-center\">\n <span class=\"ca-font-extra-bold\">SALARY</span>\n <span class=\"ca-font-bold\">{{ salary | formatCurrency }}</span>\n </div>\n\n <!-- CREDIT -->\n\n <app-ca-period-content-payment\n [title]=\"'Credit'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.credits\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment>\n\n <!-- FUEL -->\n\n <ng-container *ngIf=\"type === 'OWNER_COMMISSION'\">\n <app-ca-period-content-payment\n [title]=\"'Fuel'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.fuels\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment\n ></ng-container>\n\n <!-- DEDUCTION -->\n\n <app-ca-period-content-payment\n [title]=\"'Deduction'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.deductions\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n ></app-ca-period-content-payment>\n\n <div class=\"earnings d-flex justify-content-between align-items-center\">\n <span class=\"ca-font-extra-bold\">EARNINGS</span>\n <span class=\"ca-font-bold\">{{ totalEarnings | formatCurrency }}</span>\n </div>\n\n <!-- PROCESS BUTTON -->\n\n <ng-container *ngIf=\"isOpen; else notOpen\">\n <div\n class=\"button-cnt process-btn d-flex justify-content-between align-items-center\"\n >\n <button\n (click)=\"processPayment()\"\n class=\"earnings process-button ca-font-bold\"\n [class.incomplete-status]=\"status === 'incomplete'\"\n >\n {{ status === 'incomplete' ? 'Process Early' : 'Process' }}\n </button>\n </div>\n </ng-container>\n\n <!-- PAYMENT -->\n\n <ng-template #notOpen>\n <app-ca-period-content-payment\n [title]=\"'Payment'\"\n [isOpen]=\"isOpen\"\n (reorderedDataEmiter)=\"getReorderedData()\"\n [componentData]=\"extraPayments.payments\"\n (sumPaymentTypeEmitter)=\"getAllPaymentSums($event)\"\n debt\n ></app-ca-period-content-payment>\n\n <div\n [ngStyle]=\"{\n backgroundColor: isInDebt ? '#FBE9E9' : '#F7F7F7',\n color: isInDebt ? '#DF3C3C' : '#259F94',\n }\"\n class=\"earnings paid-in-full d-flex justify-content-between align-items-center\"\n >\n <span class=\"ca-font-extra-bold\">{{ debtTitle }}</span>\n <span class=\"ca-font-bold\">{{\n isInDebt ? this.debt : (this.totalEarnings | formatCurrency)\n }}</span>\n </div>\n <ng-container *ngIf=\"isInDebt\">\n <div class=\"button-cnt d-flex justify-content-between align-items-center\">\n <button\n class=\"earnings process-button ca-font-bold\"\n (click)=\"addPayment()\"\n >\n Add payment\n </button>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CaProfileImageComponent } from './components/ca-profile-image/ca-profile-image.component';\nimport { CaAppTooltipV2Component } from './components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nimport { CaDetailsDropdownComponent } from './components/ca-details-dropdown/ca-details-dropdown.component';\nimport { CaDropdownComponent } from './components/ca-dropdown/ca-dropdown.component';\nimport { CaFilterComponent } from './components/ca-filters/ca-filter.component';\nimport { CaInputComponent } from './components/ca-input/ca-input.component';\nimport { CaInputRadiobuttonsComponent } from './components/ca-input-radiobuttons/ca-input-radiobuttons.component';\nimport { CaMapComponent } from './components/ca-map/ca-map.component';\nimport { CaMapDropdownComponent } from './components/ca-map-dropdown/ca-map-dropdown.component';\nimport { CaNoteComponent } from './components/ca-note/ca-note.component';\nimport { CaNoteContainerComponent } from './components/ca-note-container/ca-note-container.component';\nimport { CaPayrollListSummaryOverviewComponent } from './components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\nimport { CaPayrollListSummaryOverviewTableComponent } from './components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component';\nimport { PickupDeliveryBlockComponent } from './components/ca-pickup-delivery-block/ca-pickup-delivery-block.component';\nimport { ProgressBarComponent } from './components/ca-progress-bar/ca-progress-bar.component';\nimport { CaSearchMultipleStatesComponent } from './components/ca-search-multiple-states/ca-search-multiple-states.component';\nimport { CaSpinnerComponent } from './components/ca-spinner/ca-spinner.component';\nimport { CaTruckTrailerProgresBarComponent } from './components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nimport { CaInputNoteComponent } from './components/ca-input-note/ca-input-note.component';\nimport { CaPeriodContentComponent } from './components/ca-period-content/ca-period-content.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n CaProfileImageComponent,\n CaAppTooltipV2Component,\n CaDetailsDropdownComponent,\n CaDropdownComponent,\n CaFilterComponent,\n CaInputComponent,\n CaInputRadiobuttonsComponent,\n CaMapComponent,\n CaMapDropdownComponent,\n CaNoteComponent,\n CaNoteContainerComponent,\n CaPayrollListSummaryOverviewComponent,\n CaPayrollListSummaryOverviewTableComponent,\n PickupDeliveryBlockComponent,\n ProgressBarComponent,\n CaSearchMultipleStatesComponent,\n CaSpinnerComponent,\n CaTruckTrailerProgresBarComponent,\n CaPeriodContentComponent,\n CaInputNoteComponent,\n ],\n exports: [\n CaProfileImageComponent,\n CaAppTooltipV2Component,\n CaDetailsDropdownComponent,\n CaDropdownComponent,\n CaFilterComponent,\n CaInputComponent,\n CaInputRadiobuttonsComponent,\n CaMapComponent,\n CaMapDropdownComponent,\n CaNoteComponent,\n CaNoteContainerComponent,\n CaPayrollListSummaryOverviewComponent,\n CaPayrollListSummaryOverviewTableComponent,\n PickupDeliveryBlockComponent,\n ProgressBarComponent,\n CaSearchMultipleStatesComponent,\n CaSpinnerComponent,\n CaTruckTrailerProgresBarComponent,\n CaPeriodContentComponent,\n CaInputNoteComponent,\n ],\n})\nexport class CaComponentsLibModule {}\n","/*\n * Public API Surface of ca-components\n */\n\nexport * from './lib/ca-components.module';\nexport * from './lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nexport * from './lib/components/ca-app-tooltip-v2/ca-app-tooltip-v2.component';\nexport * from './lib/components/ca-details-dropdown/ca-details-dropdown.component';\nexport * from './lib/components/ca-dropdown/ca-dropdown.component';\nexport * from './lib/components/ca-filters/ca-filter.component';\nexport * from './lib/components/ca-input/ca-input.component';\nexport * from './lib/components/ca-input-radiobuttons/ca-input-radiobuttons.component';\nexport * from './lib/components/ca-map/ca-map.component';\nexport * from './lib/components/ca-map-dropdown/ca-map-dropdown.component';\nexport * from './lib/components/ca-note/ca-note.component';\nexport * from './lib/components/ca-note-container/ca-note-container.component';\nexport * from './lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component';\nexport * from './lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component';\nexport * from './lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component';\nexport * from './lib/components/ca-profile-image/ca-profile-image.component';\nexport * from './lib/components/ca-progress-bar/ca-progress-bar.component';\nexport * from './lib/components/ca-search-multiple-states/ca-search-multiple-states.component';\nexport * from './lib/components/ca-spinner/ca-spinner.component';\nexport * from './lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component';\nexport * from './lib/components/ca-period-content/ca-period-content.component';\nexport * from './lib/components/ca-input-note/ca-input-note.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","showAnimation","i2.InputStateService","i5","ToolbarFilterString","i2.ThousandSeparatorPipe","ThousandSeparator","CaSvg","i3","SvgIconModule","i4","i1.TruckassistTableService","i2","i1.FormatCurrencyPipe"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAUa,uBAAuB,CAAA;AAQlC,IAAA,WAAA,GAAA;QAJS,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;QAGxB,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;KACvB;AAEhB,IAAA,QAAQ,MAAK;+GAVF,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVpC,+mCA6CM,EAAA,MAAA,EAAA,CAAA,232KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrCM,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGpB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+mCAAA,EAAA,MAAA,EAAA,CAAA,232KAAA,CAAA,EAAA,CAAA;0EAGd,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MECK,uBAAuB,CAAA;AAChC,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAGzC,IAAW,CAAA,WAAA,GAAY,EAAE,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAY,kBAAkB,CAAC;QAChD,IAAY,CAAA,YAAA,GAAW,MAAM,CAAC;QAC9B,IAAgB,CAAA,gBAAA,GAAW,MAAM,CAAC;AAPvC,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC;KACtC;IASD,eAAe,GAAA;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IACM,YAAY,GAAA;QACf,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,kBAAkB,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrD,SAAA;KACJ;+GAtBQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAWrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,EC7B1B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wcAkBA,yDDFY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAG1B,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wcAAA,EAAA,CAAA;;0BAGR,IAAI;4CAGR,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACqC,QAAQ,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AE3BtC,MAAMC,eAAa,GAAG,OAAO,CAAC,eAAe,EAAE;IACpD,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KACjD,CAAC;AACF,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAA,CAAC,CAAC;AAEI,MAAM,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,EAAE;IAChE,UAAU,CAAC,QAAQ,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpC,QAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KAC1D,CAAC;AACF,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAA,CAAC,CAAC;AAEI,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE;IACxD,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;KACzC,CAAC;AACF,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAA,CAAC,CAAC;AAEI,MAAM,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAC5D,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;KACxC,CAAC;AACF,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAA,CAAC;;MChCW,uBAAuB,CAAA;aAC3B,IAAS,CAAA,SAAA,GAAW,oDAAoD,CAAC,EAAA;;;MC8CrE,0BAA0B,CAAA;IAgBnC,WACY,CAAA,IAAuB,EACvB,MAAc,EAAA;QADd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAZjB,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;QAClB,IAAS,CAAA,SAAA,GAAW,cAAc,CAAC;AACzC,QAAA,IAAA,CAAA,eAAe,GACrB,IAAI,YAAY,EAAE,CAAC;AACb,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAE,CAAC;QAG9D,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAmDhC,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,OAAyB,KAAsB;AACnE,YAAA,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;AACpB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAI;AAC5B,oBAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC7D,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAS,CAAC,SAAgB,CAAC,CAAC;AACnD,oBAAA,OAAO,MAAK;wBACR,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC1B,qBAAC,CAAC;iBACL;AACJ,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,OAAO,CAAC;AACnB,SAAC,CAAC;KA5DE;AAEG,IAAA,cAAc,CAAC,OAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,YAAA,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;gBAClB,OAAO,CAAC,KAAK,EAAE,CAAC;AACnB,aAAA;AAAM,iBAAA;gBACH,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,oBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7C,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;;AAGM,IAAA,QAAQ,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,KAAK,CAAC;KAChB;IAEM,QAAQ,CAAC,MAAoB,EAAE,KAAa,EAAA;QAC/C,KAAM,CAAC,eAAe,EAAE,CAAC;QACzB,KAAM,CAAC,cAAc,EAAE,CAAC;QAExB,IAAI,MAAM,EAAE,QAAQ,EAAE;AAClB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACxB;IAEM,cAAc,GAAA;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAkB,KAAI;AACpC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC/B,SAAC,CAAC,CAAC;KACN;AAkBM,IAAA,UAAU,CACb,YAAkD,EAAA;AAElD,QAAA,OAAO,uBAAuB,CAAC,YAAY,CAAW,CAAC;KAC1D;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;KACzB;+GAzFQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,4VC/CvC,glFA6EA,EAAA,MAAA,EAAA,CAAA,4k/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDpCQ,YAAY,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EACpB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,SAAS,yWAED,CAACA,eAAa,EAAE,mBAAmB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEvC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAftC,SAAS;+BACI,yBAAyB,EAAA,aAAA,EAGpB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;;wBAEL,YAAY;wBACZ,oBAAoB;wBACpB,SAAS;AACZ,qBAAA,EAAA,UAAA,EACW,CAACA,eAAa,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,glFAAA,EAAA,MAAA,EAAA,CAAA,4k/KAAA,CAAA,EAAA,CAAA;6HAGvC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAEG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEtCE,mBAAmB,CAAA;AAPhC,IAAA,WAAA,GAAA;AAUc,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAS,CAAC;QACrC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAc1C,KAAA;AAZG,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC;KAC7D;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEM,QAAQ,CAAC,KAAa,EAAE,IAAe,EAAA;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;+GAjBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,ECnBhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ypBAeA,EDEc,MAAA,EAAA,CAAA,m/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+PAAE,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEnC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAGf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,ypBAAA,EAAA,MAAA,EAAA,CAAA,m/BAAA,CAAA,EAAA,CAAA;8BAGpC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACE,YAAY,EAAA,CAAA;sBAApB,KAAK;;;AEfH,MAAM,aAAa,GAAG,CAAC,IAAY,KACtC,OAAO,CAAC,IAAI,EAAE;AACV,IAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,CAAC;AACb,KAAA,CAAC,CACL;AACD,IAAA,KAAK,CACD,OAAO,EACP,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,KAAK;AACjB,KAAA,CAAC,CACL;AACD,IAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,KAAK;AACjB,KAAA,CAAC,CACL;IACD,UAAU,CAAC,eAAe,EAAE;QACxB,OAAO,CAAC,sCAAsC,CAAC;KAClD,CAAC;IACF,UAAU,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACvD,CAAA,CAAC;;AC3BC,MAAM,SAAS,GAAG,CAAC,IAAY,KAClC,OAAO,CAAC,IAAI,EAAE;AACV,IAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,CAAC;AACb,KAAA,CAAC,CACL;AACD,IAAA,KAAK,CACD,OAAO,EACP,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,OAAO,EAAE,CAAC;AACb,KAAA,CAAC,CACL;AACD,IAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,GAAG;AACd,KAAA,CAAC,CACL;IACD,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9D,CAAA,CAAC;;MCjCO,kBAAkB,CAAA;aACpB,IAAiB,CAAA,iBAAA,GAAW,sDAAsD,CAAC,EAAA;aACnF,IAAe,CAAA,eAAA,GAAW,+CAA+C,CAAC,EAAA;aAC1E,IAAW,CAAA,WAAA,GAAW,gDAAgD,CAAC,EAAA;aACvE,IAAmB,CAAA,mBAAA,GAAW,kDAAkD,CAAC,EAAA;;;MCD/E,YAAY,CAAA;AACvB,IAAA,OAAO,SAAS,CACd,iBAAgC,EAChC,yBAAwC,EACxC,oBAA6B,EAAA;QAM7B,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC9B,YAAA,IAAI,oBAAoB,EAAE;gBACxB,OAAO,CAAC,CAAC,IAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;AACvC,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,CAAC,IAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;AACvC,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACtC,YAAA,IAAI,oBAAoB,EAAE;gBACxB,OAAO,CAAC,CAAC,IAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;AACvC,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,CAAC,IAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;AACvC,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,oBAAoB,GAAG,CAAC,oBAAoB,CAAC;QAE7C,OAAO;YACL,iBAAiB;YACjB,yBAAyB;YACzB,oBAAoB;SACrB,CAAC;KACH;AAED,IAAA,OAAO,cAAc,CACnB,iBAAgC,EAChC,yBAAwC,EACxC,oBAA6B,EAAA;QAM7B,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC9B,YAAA,IAAI,oBAAoB,EAAE;AACxB,gBAAA,OAAO,CAAC,CAAC,KAAM,GAAG,CAAC,CAAC,KAAM,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC,KAAM,GAAG,CAAC,CAAC,KAAM,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACtC,YAAA,IAAI,oBAAoB,EAAE;AACxB,gBAAA,OAAO,CAAC,CAAC,KAAM,GAAG,CAAC,CAAC,KAAM,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC,KAAM,GAAG,CAAC,CAAC,KAAM,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,oBAAoB,GAAG,CAAC,oBAAoB,CAAC;QAE7C,OAAO;YACL,iBAAiB;YACjB,yBAAyB;YACzB,oBAAoB;SACrB,CAAC;KACH;AAED,IAAA,OAAO,sBAAsB,CAC3B,WAA0B,EAC1B,mBAAkC,EAClC,iBAA0B,EAAA;AAI1B,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;AACxC,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;QAEhC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACnB,YAAA,OAAO,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,EAAG,CAAC;AACvB,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACnB,YAAA,OAAO,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,EAAG,CAAC;AACvB,SAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,iBAAiB,GAAG,KAAK,CAAC;AAC3B,SAAA;AAAM,aAAA;YACL,iBAAiB,GAAG,IAAI,CAAC;AAC1B,SAAA;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B;IAED,OAAO,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,kBAAkB,CAAC,YAAY,CAAW,CAAC;KACnD;AACF;;MCzFY,uBAAuB,CAAA;AAChC,IAAA,SAAS,CACL,IAAY,EACZ,aAAqC,EACrC,cAAuC,EACvC,YAAmC,EACnC,YAAmC,EACnC,aAAqC,EACrC,iBAA6C,EAC7C,mBAAiD,EACjD,UAA+B,EAC/B,eAAyC,EAAA;AAEzC,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,aAAa;AACd,gBAAA,OAAO,aAAa,EAAE,OAAO,KAAK,KAAK;sBACjC,aAAa,EAAE,iBAAiB;AAC5B,wBAAA,aAAa,EAAE,iBAAiB;sBACpC,aAAa,EAAE,iBAAiB;AAC5B,wBAAA,aAAa,EAAE,iBAAiB;wBAChC,CAAC,aAAa,EAAE,eAAe,CAAC;AAC9C,YAAA,KAAK,cAAc;AACf,gBAAA,OAAO,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC;AAChD,YAAA,KAAK,YAAY;gBACb,QACI,YAAY,EAAE,iBAAiB;oBAC/B,YAAY,EAAE,gBAAgB,EAChC;AACN,YAAA,KAAK,YAAY;AACb,gBAAA,QACI,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM;AAC9B,oBAAA,YAAY,EAAE,iBAAiB,CAAC,MAAM;oBAC1C,YAAY,EAAE,iBAAiB,EACjC;AACN,YAAA,KAAK,aAAa;AACd,gBAAA,QACI,CAAC,aAAa,EAAE,oBAAoB,CAAC,MAAM;AACvC,oBAAA,aAAa,EAAE,iBAAiB,CAAC,MAAM;oBAC3C,aAAa,EAAE,iBAAiB,EAClC;AACN,YAAA,KAAK,iBAAiB;AAClB,gBAAA,QACI,iBAAiB,EAAE,sBAAsB,CAAC,MAAM;oBAChD,iBAAiB,EAAE,iBAAiB,EACtC;AACN,YAAA,KAAK,mBAAmB;AACpB,gBAAA,QACI,mBAAmB,EAAE,wBAAwB,CAAC,MAAM;oBACpD,mBAAmB,EAAE,iBAAiB,EACxC;AACN,YAAA,KAAK,UAAU;AACX,gBAAA,QACI,UAAU,EAAE,qBAAqB,CAAC,MAAM;oBACxC,UAAU,EAAE,iBAAiB,EAC/B;AACN,YAAA,KAAK,eAAe;AAChB,gBAAA,QACI,eAAe,EAAE,0BAA0B,CAAC,MAAM;oBAClD,eAAe,EAAE,iBAAiB,EACpC;AACN,YAAA;AACI,gBAAA,OAAO,KAAK,CAAC;AACpB,SAAA;KACJ;+GA/DQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;MCCY,yBAAyB,CAAA;AAClC,IAAA,SAAS,CACL,IAAY,EACZ,aAAqC,EACrC,cAAuC,EACvC,YAAmC,EACnC,YAAmC,EACnC,aAAqC,EACrC,iBAA6C,EAC7C,mBAAiD,EACjD,UAA+B,EAC/B,eAAyC,EAAA;AAEzC,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,aAAa;gBACd,OAAO,aAAa,EAAE,iBAAiB,CAAC;AAC5C,YAAA,KAAK,cAAc;AACf,gBAAA,OAAO,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC;AAChD,YAAA,KAAK,YAAY;gBACb,QACI,YAAY,EAAE,iBAAiB;AAC3B,oBAAA,YAAY,EAAE,gBAAgB;AAClC,oBAAA,YAAY,EAAE,iBAAiB,KAAK,EAAE,EACxC;AACN,YAAA,KAAK,YAAY;AACb,gBAAA,QACI,YAAY,EAAE,YAAY,CAAC,MAAM;AACjC,oBAAA,YAAY,EAAE,iBAAiB,CAAC,MAAM,EACxC;AACN,YAAA,KAAK,aAAa;AACd,gBAAA,QACI,aAAa,EAAE,oBAAoB,CAAC,MAAM;AAC1C,oBAAA,aAAa,EAAE,iBAAiB,CAAC,MAAM,EACzC;AACN,YAAA,KAAK,iBAAiB;AAClB,gBAAA,OAAO,iBAAiB,EAAE,sBAAsB,CAAC,MAAM,CAAC;AAC5D,YAAA,KAAK,mBAAmB;AACpB,gBAAA,OAAO,mBAAmB,EAAE,wBAAwB,CAAC,MAAM,CAAC;AAChE,YAAA,KAAK,UAAU;AACX,gBAAA,OAAO,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC;AACpD,YAAA,KAAK,eAAe;AAChB,gBAAA,OAAO,eAAe,EAAE,0BAA0B,CAAC,MAAM,CAAC;AAC9D,YAAA;AACI,gBAAA,OAAO,KAAK,CAAC;AACpB,SAAA;KACJ;+GA7CQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;MCJY,2BAA2B,CAAA;IACpC,SAAS,CACL,IAAY,EACZ,iBAA6C,EAC7C,mBAAiD,EACjD,UAA+B,EAC/B,eAAyC,EAAA;AAEzC,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,iBAAiB;AAClB,gBAAA,OAAO,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,CAAC;AAC7D,YAAA,KAAK,mBAAmB;AACpB,gBAAA,OAAO,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,CAAC;AACjE,YAAA,KAAK,UAAU;AACX,gBAAA,OAAO,UAAU,EAAE,qBAAqB,EAAE,MAAM,CAAC;AACrD,YAAA,KAAK,eAAe;AAChB,gBAAA,OAAO,eAAe,EAAE,0BAA0B,EAAE,MAAM,CAAC;AAC/D,YAAA;AACI,gBAAA,OAAO,KAAK,CAAC;AACpB,SAAA;KACJ;+GApBQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;ACVD,IAAY,uBAmDX,CAAA;AAnDD,CAAA,UAAY,uBAAuB,EAAA;;AAG/B,IAAA,uBAAA,CAAA,mBAAA,CAAA,GAAA,kBAAsC,CAAA;AACtC,IAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACtB,IAAA,uBAAA,CAAA,sBAAA,CAAA,GAAA,oBAA2C,CAAA;AAC3C,IAAA,uBAAA,CAAA,wBAAA,CAAA,GAAA,sBAA+C,CAAA;AAC/C,IAAA,uBAAA,CAAA,gBAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,uBAAA,CAAA,gBAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AACnC,IAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,uBAAA,CAAA,mBAAA,CAAA,GAAA,iBAAqC,CAAA;AACrC,IAAA,uBAAA,CAAA,qBAAA,CAAA,GAAA,mBAAyC,CAAA;AACzC,IAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,uBAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,iBAAoC,CAAA;AACpC,IAAA,uBAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,uBAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;;AAGxB,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,QAAmB,CAAA;;AAGnB,IAAA,uBAAA,CAAA,0BAAA,CAAA,GAAA,EAA6B,CAAA;;AAG7B,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;;AAGjB,IAAA,uBAAA,CAAA,gBAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,uBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,GAAe,CAAA;AACf,IAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,OAAmB,CAAA;;AAGnB,IAAA,uBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;;AAGjD,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,OAA0B,CAAA;AAC1B,IAAA,uBAAA,CAAA,oBAAA,CAAA,GAAA,SAA8B,CAAA;AAC9B,IAAA,uBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACrD,CAAC,EAnDW,uBAAuB,KAAvB,uBAAuB,GAmDlC,EAAA,CAAA,CAAA;;MC/CY,yBAAyB,CAAA;;AAE3B,IAAA,SAAA,IAAA,CAAA,oBAAoB,GAAG,CAC1B,KAAa,EACb,WAA4B,KAC5B;;QAEA,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;QACD,IAAI,UAAU,GAAU,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAEzC,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YACrD,UAAU,CAAC,GAAG,EAAE,CAAC;AACjB,YAAA,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnE,OAAO;AACV,SAAA;AACD,QAAA,OAAO,UAAU;AACZ,aAAA,GAAG,CAAC,CAAC,IAAY,KAAI;;AAElB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACpB,MAAM,YAAY,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAE/C,gBAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,UAAU,CAAC,GAAG,EAAE,CAAC;AACjB,oBAAA,WAAW,CAAC,UAAU,CAClB,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;oBACF,OAAO;AACV,iBAAA;AACD,gBAAA,MAAM,iBAAiB,GAAY,UAAU,CAAC,IAAI,CAC9C,CAAC,MAAM,KAAK,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5C,CAAC;;AAEF,gBAAA,IAAI,iBAAiB,EAAE;oBACnB,UAAU,CAAC,GAAG,EAAE,CAAC;AACjB,oBAAA,WAAW,CAAC,UAAU,CAClB,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;oBACF,OAAO;AACV,iBAAA;;AAED,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC5B,oBAAA,IACI,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,wBAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC3B;;AAEE,wBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;4BACxB,IACI,QAAQ,CAAC,IAAI,CAAC;AACV,gCAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gCAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC5C;gCACE,UAAU,CAAC,GAAG,EAAE,CAAC;AACjB,gCAAA,WAAW,CAAC,UAAU,CAClB,KAAK,CAAC,SAAS,CACX,CAAC,EACD,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CACzB,CACJ,CAAC;gCACF,OAAO;AACV,6BAAA;AACL,yBAAC,CAAC,CAAC;AACH,wBAAA,QACI,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,4BAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC3B;AACL,qBAAA;AAAM,yBAAA;wBACH,UAAU,CAAC,GAAG,EAAE,CAAC;AACjB,wBAAA,WAAW,CAAC,UAAU,CAClB,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;wBACF,OAAO;AACV,qBAAA;AACJ,iBAAA;AAAM,qBAAA;oBACH,UAAU,CAAC,GAAG,EAAE,CAAC;AACjB,oBAAA,WAAW,CAAC,UAAU,CAClB,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC7C,CAAC;oBACF,OAAO;AACV,iBAAA;AACJ,aAAA;AAAM,iBAAA;;gBAEH,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;oBAChD,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBACtC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,OAAO;AACV,iBAAA;AAAM,qBAAA;AACH,oBAAA,OAAO,CAAC,CAAC;AACZ,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC;AACD,aAAA,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,KAAI;AAC1B,YAAA,QAAQ,WAAY,IAAI,IAAK,EAAE;SAClC,EAAE,CAAC,CAAC,CAAC;AACd,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,IAAY,KAAI;AAC3C,QAAA,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpD,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,IAAY,KAAI;AAC7C,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvD,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,4BAA4B,GAAG,CAClC,IAAY,EACZ,UAAoB,KACpB;QACA,IAAG,CAAC,IAAI,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,MAAM;aACR,GAAG,CAAC,IAAI,CAAC;AACT,aAAA,KAAK,EAAE;aACP,MAAM,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;AACrD,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,IAAY,KAAI;QAC7C,OAAO,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;AAC/C,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,4BAA4B,GAAG,CAAC,IAAY,KAAI;AACnD,QAAA,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/C,KAAC,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,2BAA2B,GAAG,CAAC,IAAY,EAAE,IAAY,KAAI;QAChE,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACjE,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,mCAAmC,GAAG,CAAC,IAAmB,KAAI;AACjE,QAAA,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC9D,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,yBAAyB,GAAG,CAAC,KAAa,KAAI;AACjD,QAAA,IAAI,KAAK;AAAE,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;;AAC5D,YAAA,OAAO,CAAC,CAAA;AACjB,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,0BAA0B,GAAG,CAAC,KAAa,KAAI;AAClD,QAAA,IAAI,KAAK;YACL,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;;AAC7D,YAAA,OAAO,CAAC,CAAA;AACjB,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,4BAA4B,GAAG,CAAC,KAAa,KAAI;AACpD,QAAA,IAAI,KAAK;AACL,YAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;;AAEpC,gBAAA,QAAQ,EAAE,SAAS;AACnB,gBAAA,cAAc,EAAE,OAAO;AAC1B,aAAA,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;AAChB,YAAA,OAAO,GAAG,CAAC;AACpB,KAAC,CAAC,EAAA;;AAGK,IAAA,SAAA,IAAA,CAAA,2CAA2C,GAAG,CACjD,KAAa,EACb,SAAqB,GAAA,KAAK,KAC1B;AACA,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;AAChD,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,qBAAqB,EAAE,CAAC;AAC3B,SAAA,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3C,YAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjC,SAAA;AAED,QAAA,OAAO,aAAa,CAAC;AACzB,KAAC,CAAC,EAAA;;;MCnLO,qBAAqB,CAAA;AAC9B,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,OAAO,yBAAyB,CAAC,0BAA0B,CACvD,yBAAyB,CAAC,yBAAyB,CAC/C,KAAK,GAAG,KAAK,GAAG,GAAG,CACtB,CACJ,CAAC;KACL;+GAPQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCFY,SAAS,CAAA;AACpB,IAAA,SAAS,CACP,OAAe,EACf,MAAc,EACd,SAAkB,EAAA;QAElB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,CAA4B,yBAAA,EAAA,MAAM,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;AACxD,SAAA;AAED,QAAA,OAAO,4BAA4B,MAAM,CAAA,CAAA,EAAI,SAAS,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;KACrE;+GAtBU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA,EAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAA;;;MCLY,sBAAsB,CAAA;aACxB,IAAiB,CAAA,iBAAA,GAAW,yDAAyD,CAAC,EAAA;;;ACDjG,IAAY,qBAgBX,CAAA;AAhBD,CAAA,UAAY,qBAAqB,EAAA;;AAG/B,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACtB,IAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AACnC,IAAA,qBAAA,CAAA,uBAAA,CAAA,GAAA,oBAA4C,CAAA;AAC5C,IAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,iBAAqC,CAAA;AACrC,IAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,qBAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC1C,IAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AACnC,IAAA,qBAAA,CAAA,uBAAA,CAAA,GAAA,oBAA4C,CAAA;AAC5C,IAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACxB,CAAC,EAhBW,qBAAqB,KAArB,qBAAqB,GAgBhC,EAAA,CAAA,CAAA;;MCdY,mBAAmB,CAAA;AAC9B,IAAA,OAAO,iBAAiB,GAAA;QACtB,OAAO;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,eAAe,GAAA;QACpB,OAAO;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,qBAAqB,GAAA;QAC1B,OAAO;AACL,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,mBAAmB,GAAA;QACxB,OAAO;AACL,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,sBAAsB,GAAA;QAC3B,OAAO;AACL,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,oBAAoB,GAAA;QACzB,OAAO;AACL,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,qBAAqB,GAAA;QAC1B,OAAO;AACL,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AAED,IAAA,OAAO,mBAAmB,GAAA;QACxB,OAAO;AACL,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AACF;;MC1EY,cAAc,CAAA;AACzB,IAAA,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,cAAuB,EACvB,WAAqB,EACrB,KAAwB,EACxB,iBAA0B,EAC1B,KAAa,EACb,iBAA0B,EAC1B,WAAoB,EACpB,QAAgB,EAAA;QAEhB,OAAO;YACL,8BAA8B,EAC5B,WAAW,CAAC,eAAe,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,YAAY;AAC7D,YAAA,KAAK,EAAE,YAAY,IAAI,CAAC,WAAW,CAAC,yBAAyB;AAC7D,YAAA,gBAAgB,EAAE,CAAC,KAAK,IAAI,WAAW,CAAC,UAAU;AAClD,YAAA,iBAAiB,EAAE,KAAK,IAAI,WAAW,CAAC,UAAU;YAClD,gBAAgB,EACd,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,WAAW;AAChC,gBAAA,eAAe,EAAE,KAAK;gBACtB,YAAY;AACZ,gBAAA,CAAC,iBAAiB;AAClB,gBAAA,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG;gBACrC,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,yBAAyB;gBACtC,CAAC,WAAW,CAAC,0BAA0B;gBACvC,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,aAAa;AAC5B,iBAAC,WAAW,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM;oBAC/C,YAAY;oBACZ,CAAC,WAAW,CAAC,yBAAyB;oBACtC,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,0BAA0B;oBACvC,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,aAAa,CAAC;AAC/B,YAAA,wBAAwB,EACtB,CAAC,CAAC,CAAC,KAAK;AACN,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;AACvB,gBAAA,CAAC,iBAAiB;gBAClB,CAAC,WAAW,CAAC,UAAU;iBACtB,CAAC,YAAY,IAAI,WAAW,CAAC,kBAAkB,EAAE,GAAG,CAAC;gBACtD,CAAC,WAAW,CAAC,UAAU;AACzB,iBAAC,WAAW,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM;AAC/C,oBAAA,CAAC,YAAY;oBACb,CAAC,WAAW,CAAC,UAAU,CAAC;YAC5B,kBAAkB,EAChB,eAAe,EAAE,OAAO;gBACxB,KAAK;gBACL,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,0BAA0B;gBACvC,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,aAAa;AAC1B,gBAAA,EACE,WAAW,CAAC,kBAAkB,EAAE,GAAG;AACnC,oBAAA,WAAW,CAAC,kBAAkB,EAAE,sBAAsB,CACvD;YACH,0BAA0B,EACxB,CAAC,CAAC,KAAK;AACL,gBAAA,eAAe,EAAE,OAAO;AACxB,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;AACvB,iBAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG;AACnC,qBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;AAC5C,oBAAA,eAAe,EAAE,OAAO;oBACxB,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,YAAY,CAAC;gBAClB,CAAC,WAAW,CAAC,UAAU;YACzB,yBAAyB,EACvB,CAAC,YAAY;AACb,gBAAA,CAAC,KAAK;AACN,gBAAA,eAAe,EAAE,OAAO;AACxB,iBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;gBAC5C,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,qCAAqC,EACnC,YAAY;gBACZ,KAAK;AACL,gBAAA,WAAW,CAAC,yBAAyB;AACrC,gBAAA,WAAW,CAAC,UAAU;gBACtB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,0BAA0B;gBACvC,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,qBAAqB,EAAE,CAAC,CAAC,WAAW,CAAC,eAAe;YACpD,6BAA6B,EAC3B,WAAW,CAAC,UAAU;AACtB,gBAAA,WAAW,CAAC,WAAW;gBACvB,iBAAiB;gBACjB,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,yBAAyB;YACxC,6BAA6B,EAC3B,WAAW,CAAC,yBAAyB;gBACrC,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;YACzB,uBAAuB,EACrB,WAAW,CAAC,aAAa;gBACzB,iBAAiB;gBACjB,WAAW;gBACX,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,iBAAiB;AACnE,YAAA,eAAe,EACb,WAAW,CAAC,QAAQ,EAAE,YAAY;gBAClC,WAAW,CAAC,QAAQ,EAAE,MAAM;gBAC5B,iBAAiB;AACnB,YAAA,4BAA4B,EAC1B,WAAW,EAAE,kBAAkB,EAAE,QAAQ;gBACzC,WAAW,EAAE,kBAAkB,EAAE,GAAG;AACpC,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,OAAO;AACrD,gBAAA,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM;AACxC,gBAAA,CAAC,YAAY;AACf,YAAA,kCAAkC,EAChC,WAAW,EAAE,kBAAkB,EAAE,QAAQ;gBACzC,WAAW,EAAE,kBAAkB,EAAE,GAAG;AACpC,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,OAAO;AACrD,gBAAA,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM;gBACxC,YAAY;AACd,YAAA,8BAA8B,EAC5B,WAAW,EAAE,kBAAkB,EAAE,QAAQ;gBACzC,WAAW,EAAE,kBAAkB,EAAE,GAAG;AACpC,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,SAAS;AACvD,gBAAA,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM;AACxC,gBAAA,CAAC,YAAY;AACf,YAAA,oCAAoC,EAClC,WAAW,EAAE,kBAAkB,EAAE,QAAQ;gBACzC,WAAW,EAAE,kBAAkB,EAAE,GAAG;AACpC,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,SAAS;AACvD,gBAAA,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM;gBACxC,YAAY;AACd,YAAA,4BAA4B,EAC1B,WAAW,EAAE,kBAAkB,EAAE,QAAQ;AACzC,iBAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG;AACnC,oBAAA,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;AAC1D,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,OAAO;AACvD,YAAA,2BAA2B,EACzB,WAAW,EAAE,kBAAkB,EAAE,QAAQ;gBACzC,CAAC,WAAW,EAAE,2BAA2B;AACzC,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,MAAM;iBACnD,WAAW,CAAC,gBAAgB;AAC3B,qBAAC,WAAW,CAAC,WAAW,IAAI,YAAY,CAAC;oBACzC,eAAe,EAAE,KAAK,CAAC;AAC3B,YAAA,yBAAyB,EACvB,WAAW,EAAE,kBAAkB,EAAE,QAAQ;gBACzC,CAAC,WAAW,EAAE,2BAA2B;AACzC,gBAAA,WAAW,EAAE,kBAAkB,EAAE,QAAQ,KAAK,IAAI;iBACjD,WAAW,CAAC,gBAAgB;AAC3B,qBAAC,WAAW,CAAC,WAAW,IAAI,YAAY,CAAC;oBACzC,eAAe,EAAE,KAAK,CAAC;YAC3B,+CAA+C,EAC7C,WAAW,EAAE,kBAAkB;AAC/B,gBAAA,CAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ;AAC1C,gBAAA,CAAC,YAAY;YACf,uBAAuB,EACrB,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY;YACpE,6BAA6B,EAAE,CAAC,YAAY;YAC5C,gDAAgD,EAC9C,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,IAAI,YAAY;YACnE,sBAAsB,EAAE,WAAW,EAAE,sBAAsB;YAC3D,gCAAgC,EAAE,WAAW,CAAC,0BAA0B;YACxE,mBAAmB,EAAE,QAAQ,KAAK,2BAA2B;YAC7D,6BAA6B,EAAE,WAAW,CAAC,WAAW;SACvD,CAAC;KACH;+GAvKU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCCY,uBAAuB,CAAA;IAClC,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,cAAuB,EACvB,WAAqB,EACrB,KAAa,EAAA;QAEb,OAAO;YACL,oBAAoB,EAAE,CAAC,YAAY;YACnC,qBAAqB,EACnB,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,aAAa;AACtD,YAAA,0BAA0B,EACxB,KAAK;AACL,gBAAA,eAAe,EAAE,OAAO;AACxB,iBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;AAC5C,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,SAAS;gBACtB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;YACzB,yBAAyB,EACvB,CAAC,KAAK;AACN,gBAAA,eAAe,EAAE,OAAO;AACxB,iBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;AAC5C,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,SAAS;gBACtB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,aAAa;AAC5B,YAAA,kBAAkB,EAChB,KAAK;AACL,gBAAA,eAAe,EAAE,OAAO;gBACxB,YAAY;gBACZ,CAAC,WAAW,CAAC,SAAS;gBACtB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,gBAAgB,EACd,KAAK;AACL,gBAAA,eAAe,EAAE,KAAK;gBACtB,YAAY;gBACZ,CAAC,WAAW,CAAC,SAAS;gBACtB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,iBAAiB,EACf,KAAK;AACL,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,gBAAgB,EAAE,WAAW,CAAC,UAAU,IAAI,CAAC,KAAK;AAClD,YAAA,iBAAiB,EAAE,WAAW,CAAC,UAAU,IAAI,KAAK;YAClD,wBAAwB,EAAE,WAAW,CAAC,WAAW;YACjD,yBAAyB,EAAE,WAAW,CAAC,wBAAwB;YAC/D,iBAAiB,EAAE,WAAW,CAAC,UAAU;SAC1C,CAAC;KACH;+GAvDU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCDY,cAAc,CAAA;IACvB,SAAS,CAAC,KAAU,EAAE,SAAkB,EAAA;QACpC,IAAI,iBAAiB,GAAW,EAAE,CAAC;QAEnC,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;gBACnB,iBAAiB,GAAG,UAAU,CAAC;AAClC,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;gBAClB,iBAAiB,GAAG,SAAS,CAAC;AACjC,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACpB,iBAAiB,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,cAAc,CAAA,eAAA,CAAiB,CAAC;AAC7E,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACpB,iBAAiB,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,cAAc,CAAA,eAAA,CAAiB,CAAC;AAC7E,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACd,gBAAA,iBAAiB,GAAG,CAAG,EAAA,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC;AAC1D,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACd,gBAAA,iBAAiB,GAAG,CAAG,EAAA,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC;AAC1D,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE;gBAC5B,iBAAiB,GAAG,wBAAwB,CAAC;AAChD,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACpB,iBAAiB,GAAG,sBAAsB,CAAC;AAC9C,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAE;gBACjC,iBAAiB,GAAG,oCAAoC,CAAC;AAC5D,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE;AACnC,gBAAA,QAAQ,SAAS,EAAE,WAAW,EAAE;oBAC5B,KAAK,OAAO,EAAE;wBACV,iBAAiB,GAAG,SAAS,CAAC;wBAC9B,MAAM;AACT,qBAAA;oBACD,KAAK,KAAK,EAAE;wBACR,iBAAiB,GAAG,SAAS,CAAC;wBAC9B,MAAM;AACT,qBAAA;oBACD,KAAK,KAAK,EAAE;wBACR,iBAAiB,GAAG,SAAS,CAAC;wBAC9B,MAAM;AACT,qBAAA;AACD,oBAAA,SAAS;wBACL,iBAAiB,GAAG,SAAS,CAAC;wBAC9B,MAAM;AACT,qBAAA;AACJ,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE;gBAC1B,iBAAiB,GAAG,yBAAyB,CAAC;AACjD,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,uBAAuB,CAAC,EAAE;gBAChC,iBAAiB,GAAG,iCAAiC,CAAC;AACzD,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE;gBACxB,iBAAiB,GAAG,2BAA2B,CAAC;AACnD,aAAA;YAED,IACI,KAAK,CAAC,iBAAiB,CAAC;gBACxB,KAAK,CAAC,mBAAmB,CAAC;gBAC1B,KAAK,CAAC,mBAAmB,CAAC;gBAC1B,KAAK,CAAC,iBAAiB,CAAC,EAC1B;gBACE,iBAAiB,GAAG,gBAAgB,CAAC;AACxC,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE;gBAC7B,iBAAiB,GAAG,qBAAqB,CAAC;AAC7C,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,iBAAiB,CAAC;KAC5B;+GAxFQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,aAAa,CAAA;IACtB,SAAS,CAAC,IAAY,EAAE,KAAc,EAAA;QAClC,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,YAAA,IAAI,KAAK,EAAE;AACP,gBAAA,OAAO,MAAM,CAAC;AACjB,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,UAAU,CAAC;AACrB,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;+GAVQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCEY,cAAc,CAAA;AACzB,IAAA,SAAS,CACP,KAAa,EACb,YAAqB,EACrB,WAAqB,EAAA;QAErB,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,UAAU;AAC3D,YAAA,gBAAgB,EAAE,CAAC,KAAK,IAAI,WAAW,CAAC,UAAU;AAClD,YAAA,UAAU,EACR,KAAK;gBACL,YAAY;AACZ,gBAAA,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM;AACjD,iBAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ;oBACxC,WAAW,CAAC,kBAAkB,EAAE,GAAG;oBACnC,CAAC,WAAW,CAAC,YAAY,CAAC;YAC9B,0BAA0B,EAAE,WAAW,CAAC,eAAe;YACvD,MAAM,EACJ,WAAW,CAAC,yBAAyB;iBACpC,YAAY,IAAI,KAAK,CAAC;AACzB,YAAA,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM;AACpE,YAAA,gBAAgB,EAAE,YAAY,IAAI,WAAW,CAAC,YAAY;YAC1D,UAAU,EAAE,WAAW,CAAC,YAAY;SACrC,CAAC;KACH;+GAxBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCCY,aAAa,CAAA;AACxB,IAAA,SAAS,CAAC,WAAqB,EAAA;AAC7B,QAAA,QACE,CAAC,CAAC,WAAW,CAAC,SAAS;aACpB,CAAC,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,WAAW,CAAC;AACpD,YAAA,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC;AACnD,YAAA,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM;AAC7B,YAAA,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS;YACzC,WAAW,CAAC,cAAc,EAC1B;KACH;+GAVU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCEY,yBAAyB,CAAA;IACpC,SAAS,CACP,WAAqB,EACrB,eAAiD,EACjD,YAAqB,EACrB,cAAuB,EACvB,KAAa,EAAA;QAEb,QACE,CAAC,CAAC,cAAc,IAAI,eAAe,EAAE,OAAO;AAC1C,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,OAAO;AACxB,YAAA,CAAC,YAAY;YACb,CAAC,WAAW,CAAC,UAAU;YACvB,CAAC,WAAW,CAAC,cAAc;YAC3B,CAAC,WAAW,CAAC,UAAU;YACvB,CAAC,WAAW,CAAC,UAAU;YACvB,CAAC,WAAW,CAAC,aAAa;YAC1B,CAAC,WAAW,CAAC,cAAc;YAC7B,WAAW,CAAC,UAAU,EACtB;KACH;+GArBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCCY,kBAAkB,CAAA;AAC7B,IAAA,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,WAAqB,EACrB,KAAa,EAAA;QAEb,QACE,eAAe,EAAE,KAAK;AACtB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,CAAC,YAAY;YACb,CAAC,WAAW,CAAC,UAAU;YACvB,CAAC,WAAW,CAAC,eAAe;YAC5B,CAAC,WAAW,CAAC,UAAU;YACvB,CAAC,WAAW,CAAC,UAAU;YACvB,CAAC,WAAW,CAAC,iBAAiB;YAC9B,CAAC,WAAW,CAAC,cAAc;AAC3B,YAAA,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS;AACvC,YAAA,CAAC,WAAW,CAAC,aAAa,EAC1B;KACH;+GApBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCCY,2BAA2B,CAAA;IACtC,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,WAAqB,EACrB,cAAuB,EACvB,KAAa,EAAA;QAEb,OAAO;AACL,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,gBAAgB,EACd,CAAC,CAAC,WAAW,CAAC,aAAa;AACzB,iBAAC,eAAe,EAAE,KAAK,IAAI,WAAW,CAAC,WAAW,CAAC;AACnD,gBAAA,eAAe,EAAE,KAAK;gBACtB,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,yBAAyB;AACxC,iBAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG;oBACnC,WAAW,CAAC,kBAAkB,EAAE,sBAAsB;oBACtD,WAAW,CAAC,WAAW;oBACvB,YAAY;oBACZ,CAAC,WAAW,CAAC,yBAAyB;oBACtC,CAAC,WAAW,CAAC,UAAU,CAAC;AAC5B,YAAA,iBAAiB,EACf,CAAC,eAAe,EAAE,KAAK;AACrB,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;AACzB,iBAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ;oBACxC,WAAW,CAAC,kBAAkB,EAAE,GAAG;AACnC,oBAAA,CAAC,YAAY;oBACb,CAAC,WAAW,CAAC,UAAU,CAAC;AAC5B,YAAA,kBAAkB,EAChB,CAAC,eAAe,EAAE,KAAK;AACrB,gBAAA,eAAe,EAAE,OAAO;gBACxB,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;AACzB,iBAAC,YAAY;AACX,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,WAAW,CAAC,yBAAyB;AACrC,oBAAA,WAAW,CAAC,UAAU;oBACtB,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,0BAA0B;oBACvC,CAAC,WAAW,CAAC,UAAU,CAAC;AAC5B,YAAA,mBAAmB,EACjB,CAAC,eAAe,EAAE,KAAK;AACvB,gBAAA,eAAe,EAAE,OAAO;AACxB,iBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;AAC5C,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;YACzB,qCAAqC,EACnC,WAAW,CAAC,yBAAyB;AACrC,gBAAA,WAAW,CAAC,UAAU;gBACtB,YAAY;AACZ,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,OAAO;gBACxB,CAAC,WAAW,CAAC,UAAU;SAC1B,CAAC;KACH;+GA1DU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCCY,mBAAmB,CAAA;IAC9B,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,WAAqB,EACrB,cAAuB,EACvB,0BAAmC,EACnC,KAAa,EAAA;QAEb,OAAO;AACL,YAAA,KAAK,EACH,YAAY;AACZ,gBAAA,eAAe,EAAE,KAAK;gBACtB,EAAE,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,CAAC;YACrD,gBAAgB,EACd,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;gBACtB,YAAY;AACZ,gBAAA,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,uBAAuB,CAAC;gBAC3D,CAAC,WAAW,CAAC,UAAU;AACvB,gBAAA,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG;gBACpC,CAAC,WAAW,CAAC,yBAAyB;gBACtC,CAAC,WAAW,CAAC,0BAA0B;gBACvC,CAAC,WAAW,CAAC,UAAU;YACzB,iBAAiB,EACf,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;AACb,gBAAA,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,uBAAuB,CAAC;gBAC3D,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,kBAAkB,EAChB,CAAC,eAAe,EAAE,KAAK;AACrB,gBAAA,eAAe,EAAE,OAAO;gBACxB,YAAY;gBACZ,CAAC,WAAW,CAAC,0BAA0B;gBACvC,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;iBACxB,WAAW,CAAC,yBAAyB;AACpC,oBAAA,WAAW,CAAC,UAAU;oBACtB,YAAY;AACZ,oBAAA,eAAe,EAAE,KAAK;oBACtB,CAAC,WAAW,CAAC,0BAA0B;oBACvC,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,UAAU,CAAC;YAC5B,mBAAmB,EACjB,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,OAAO;AACxB,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;AACvB,gBAAA,EACE,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ;AACzC,oBAAA,WAAW,CAAC,kBAAkB,EAAE,GAAG,CACpC;gBACD,CAAC,WAAW,CAAC,UAAU;AACzB,YAAA,iBAAiB,EAAE,WAAW,CAAC,cAAc,IAAI,eAAe,EAAE,KAAK;YACvE,oBAAoB,EAClB,WAAW,CAAC,cAAc,IAAI,eAAe,EAAE,KAAK,IAAI,cAAc;YACxE,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,YAAY,IAAI,WAAW,CAAC,aAAa;AAC3E,YAAA,aAAa,EACX,CAAC,eAAe,EAAE,KAAK;AACrB,gBAAA,WAAW,CAAC,UAAU;gBACtB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,yBAAyB;gBACtC,CAAC,WAAW,CAAC,0BAA0B;AACzC,iBAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG;oBAClC,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,yBAAyB;oBACtC,CAAC,WAAW,CAAC,0BAA0B,CAAC;AAC1C,iBAAC,CAAC,WAAW,CAAC,UAAU,IAAI,0BAA0B,CAAC;AACvD,iBAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG;oBAClC,CAAC,WAAW,CAAC,UAAU;oBACvB,CAAC,WAAW,CAAC,0BAA0B,CAAC;YAC5C,eAAe,EAAE,WAAW,CAAC,WAAW;SACzC,CAAC;KACH;+GA9EU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCPY,cAAc,CAAA;aAClB,IAAc,CAAA,cAAA,GACnB,oDAAoD,CAAC,EAAA;aAChD,IAAS,CAAA,SAAA,GAAW,yCAAyC,CAAC,EAAA;aAC9D,IAAU,CAAA,UAAA,GAAW,+CAA+C,CAAC,EAAA;aACrE,IAAS,CAAA,SAAA,GAAW,8CAA8C,CAAC,EAAA;aACnE,IAAa,CAAA,aAAA,GAClB,mDAAmD,CAAC,EAAA;aAC/C,IAAY,CAAA,YAAA,GACjB,kDAAkD,CAAC,EAAA;aAC9C,IAAY,CAAA,YAAA,GACjB,oDAAoD,CAAC,EAAA;aAChD,IAAY,CAAA,YAAA,GACjB,oDAAoD,CAAC,EAAA;aAChD,IAAW,CAAA,WAAA,GAChB,sDAAsD,CAAC,EAAA;aAClD,IAAqB,CAAA,qBAAA,GAC1B,mDAAmD,CAAC,EAAA;;;MC4B3C,qBAAqB,CAAA;AAShC,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,eAAe,GAAwB,IAAI,YAAY,EAAS,CAAC;KAE3D;AAET,IAAA,UAAU,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;AAEM,IAAA,UAAU,CAAC,YAAyC,EAAA;AACzD,QAAA,OAAO,cAAc,CAAC,YAAY,CAAW,CAAC;KAC/C;+GAjBU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qUC7ClC,+wBAkCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADFI,gBAAA,YAAY,4HACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8BAEnB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;gBAET,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGnB,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApBjC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAGlB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;wBACpB,WAAW;wBACX,mBAAmB;wBACnB,oBAAoB;wBACpB,SAAS;;wBAET,mBAAmB;;wBAGnB,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,+wBAAA,EAAA,CAAA;0EAGQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,0BAA0B,EAAA,CAAA;sBAAlC,KAAK;gBAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MEvBI,wBAAwB,CAAA;AAOnC,IAAA,WAAA,GAAA;AAFU,QAAA,IAAA,CAAA,eAAe,GAA+B,IAAI,YAAY,EAAE,CAAC;KAE3D;AAET,IAAA,UAAU,CAAC,KAAY,EAAE,IAAY,EAAE,MAAc,EAAA;AAC1D,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;KACpD;+GAXU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,gPC7BrC,u0EA+EM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBD1DF,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGT,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAfpC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EAGrB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;wBACpB,SAAS;;wBAGT,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,u0EAAA,EAAA,CAAA;0EAGQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;ME1BI,yBAAyB,CAAA;IACpC,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,WAAqB,EACrB,cAAuB,EACvB,KAAa,EAAA;QAEb,OAAO;YACL,OAAO,EAAE,eAAe,EAAE,KAAK;YAC/B,QAAQ,EAAE,WAAW,CAAC,UAAU;YAChC,iBAAiB,EACf,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;gBACb,CAAC,WAAW,CAAC,UAAU;YACzB,gBAAgB,EACd,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;gBACtB,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;YACzB,mBAAmB,EACjB,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,OAAO;gBACxB,CAAC,WAAW,CAAC,UAAU;AACvB,iBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;AAC5C,gBAAA,CAAC,YAAY;YACf,kBAAkB,EAChB,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,OAAO;gBACxB,YAAY;gBACZ,CAAC,WAAW,CAAC,UAAU;SAC1B,CAAC;KACH;+GAjCU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MC+BY,wBAAwB,CAAA;AAWnC,IAAA,WAAA,GAAA;AAHU,QAAA,IAAA,CAAA,qBAAqB,GAC7B,IAAI,YAAY,EAAS,CAAC;KAEZ;AAEhB,IAAA,QAAQ,MAAK;AAEN,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAClC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;AAEM,IAAA,UAAU,CAAC,YAAyC,EAAA;AACzD,QAAA,OAAO,cAAc,CAAC,YAAY,CAAW,CAAC;KAC/C;+GArBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,8VCtCrC,4gCAuCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDZI,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGT,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;gBAGvB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGhB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAlBpC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EAGrB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;wBACpB,SAAS;;wBAGT,uBAAuB;;wBAGvB,yBAAyB;AAC1B,qBAAA,EAAA,QAAA,EAAA,4gCAAA,EAAA,CAAA;0EAGQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;MErCI,6BAA6B,CAAA;IACxC,SAAS,CACP,eAAiD,EACjD,YAAqB,EACrB,WAAqB,EACrB,0BAAsC,EACtC,cAAuB,EACvB,KAAa,EAAA;QAEb,OAAO;YACL,gBAAgB,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,WAAW,CAAC,UAAU;AACnE,YAAA,iBAAiB,EAAE,eAAe,EAAE,KAAK,IAAI,WAAW,CAAC,UAAU;YACnE,mBAAmB,EACjB,EAAE,WAAW,CAAC,aAAa,IAAI,YAAY,CAAC;AAC5C,gBAAA,EAAE,WAAW,CAAC,aAAa,IAAI,0BAA0B,CAAC;AAC5D,YAAA,KAAK,EAAE,YAAY,IAAI,CAAC,WAAW,CAAC,aAAa;YACjD,gBAAgB,EACd,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;gBACtB,YAAY;AACZ,gBAAA,CAAC,0BAA0B;gBAC3B,CAAC,WAAW,CAAC,aAAa;gBAC1B,CAAC,WAAW,CAAC,UAAU;AACvB,gBAAA,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM;gBAC7B,CAAC,WAAW,CAAC,UAAU;YACzB,iBAAiB,EACf,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;AACb,gBAAA,CAAC,0BAA0B;gBAC3B,CAAC,WAAW,CAAC,aAAa;gBAC1B,CAAC,WAAW,CAAC,UAAU;YACzB,gCAAgC,EAC9B,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,KAAK;AACtB,gBAAA,CAAC,YAAY;gBACb,0BAA0B;AAC1B,gBAAA,WAAW,CAAC,aAAa;gBACzB,CAAC,WAAW,CAAC,UAAU;YACzB,kBAAkB,EAChB,eAAe,EAAE,KAAK;AACtB,gBAAA,eAAe,EAAE,OAAO;gBACxB,YAAY;AACZ,gBAAA,CAAC,0BAA0B;gBAC3B,CAAC,WAAW,CAAC,aAAa;gBAC1B,CAAC,WAAW,CAAC,UAAU;gBACvB,CAAC,WAAW,CAAC,UAAU;YACzB,mBAAmB,EACjB,eAAe,EAAE,OAAO;AACxB,gBAAA,CAAC,YAAY;AACb,gBAAA,CAAC,0BAA0B;gBAC3B,CAAC,WAAW,CAAC,aAAa;AAC1B,iBAAC,cAAc,IAAI,eAAe,EAAE,OAAO,CAAC;gBAC5C,CAAC,WAAW,CAAC,UAAU;YACzB,MAAM,EAAE,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,eAAe,EAAE,KAAK;SAClE,CAAC;KACH;+GAxDU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,2BAAA,EAAA,CAAA,CAAA,EAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,2BAA2B;AACjC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MC8BY,+BAA+B,CAAA;AAOxC,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAK;+GATJ,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,+RCtC5C,8rBA0BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDAQ,YAAY,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGT,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAGvB,gBAAA,6BAA6B,6DAC7B,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGJ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAnB3C,SAAS;+BACI,+BAA+B,EAAA,UAAA,EAG7B,IAAI,EACP,OAAA,EAAA;;wBAEL,YAAY;wBACZ,oBAAoB;wBACpB,SAAS;;wBAGT,uBAAuB;;wBAGvB,6BAA6B;wBAC7B,SAAS;AACZ,qBAAA,EAAA,QAAA,EAAA,8rBAAA,EAAA,CAAA;0EAGQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,0BAA0B,EAAA,CAAA;sBAAlC,KAAK;;;AE3CV,IAAY,mBAQX,CAAA;AARD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,GAQ9B,EAAA,CAAA,CAAA;;ACRD,IAAY,iBAIX,CAAA;AAJD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA;;MCcY,iBAAiB,CAAA;AAsE5B,IAAA,WAAA,GAAA;AArEQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,aAAa,GAClB,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC7D,QAAA,IAAA,CAAA,eAAe,GACpB,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;AAEpC,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,kBAAkB,GACvB,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;AAEvC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,YAAY,GACjB,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,kBAAkB,GACvB,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;;AAGvC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAiB,CAAC;AACpD,QAAA,IAAA,CAAA,aAAa,GAClB,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAW,CAAC;AACjD,QAAA,IAAA,CAAA,gBAAgB,GACrB,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;AAErC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,OAAO,EAAW,CAAC;AAChD,QAAA,IAAA,CAAA,eAAe,GACpB,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;AAEpC,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,OAAO,EAAW,CAAC;AAClD,QAAA,IAAA,CAAA,iBAAiB,GACtB,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;AAEtC,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,OAAO,EAG9C,CAAC;AACE,QAAA,IAAA,CAAA,sBAAsB,GAGxB,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC;AAE9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAW,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAwB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAEvE,IAAkB,CAAA,kBAAA,GAAG,aAAa,CAAC;AACxC,YAAA,IAAI,CAAC,aAAa;AAClB,YAAA,IAAI,CAAC,eAAe;AACpB,YAAA,IAAI,CAAC,kBAAkB;AACvB,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC,kBAAkB;AACxB,SAAA,CAAC,CAAC;KAca;AAET,IAAA,eAAe,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAEM,IAAA,iBAAiB,CAAC,KAAc,EAAA;AACrC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;AAEM,IAAA,oBAAoB,CAAC,KAAc,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3C;AAEM,IAAA,cAAc,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;AAEM,IAAA,oBAAoB,CAAC,KAAc,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3C;IAEM,kBAAkB,CAAC,KAAiB,EAAE,KAAwB,EAAA;AACnE,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAEM,IAAA,eAAe,CAAC,YAAuB,EAAA;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;AAEM,IAAA,cAAc,CAAC,MAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,cAAuB,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;AAEM,IAAA,eAAe,CAAC,KAAoB,EAAA;AACzC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAEM,IAAA,kBAAkB,CAAC,KAAc,EAAA;AACtC,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;AAEM,IAAA,iBAAiB,CAAC,KAAc,EAAA;AACrC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;AAEM,IAAA,mBAAmB,CAAC,KAAc,EAAA;AACvC,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;AAEM,IAAA,wBAAwB,CAAC,KAG/B,EAAA;AACC,QAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/C;AAEM,IAAA,YAAY,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;;AAExB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO;AACR,SAAA;;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3C,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,SAAA;;AAEI,aAAA;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;;AAK1C,YAAA,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,SAAS,CAAC;AAChD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,IACE,CAAC,YAAY,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CACtB,EACD;;AAED,aAAA;AAED,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;KACF;AAEM,IAAA,aAAa,CAAC,KAAY,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AAEvD,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,SAAA;AAED,QAAA,QAAQ,IAAI,CAAC,WAAW,CAAC,aAAa;YACpC,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK;AAC5B,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;AACvD,wBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM;AACP,aAAA;YACD,KAAK,WAAW,EAAE;AAChB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK;oBAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM;AACP,aAAA;AACD,YAAA,SAAS;AACP,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM;AACP,aAAA;AACF,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,KAAY,EAAE,IAAY,EAAE,MAAc,EAAA;QAC1D,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,QAAQ,IAAI;YACV,KAAK,iBAAiB,CAAC,sBAAsB;AAC3C,gBAAA,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,iBAAiB,CAAC,cAAc;AACnC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,iBAAiB,CAAC,MAAM;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC1B,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;AAEO,IAAA,0BAA0B,CAAC,MAAc,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAG,yBAAyB,CAAC,yBAAyB,CAC/D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CACjC,CAAC;AAEF,QAAA,QAAQ,MAAM;YACZ,KAAK,mBAAmB,CAAC,SAAS;AAChC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,mBAAmB,CAAC,SAAS;AAChC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,mBAAmB,CAAC,KAAK;gBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;QAED,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACvD;AAEO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,CACnE,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,CACnE,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,CACnE,CAAC;AACH,SAAA;aAAM,IAAI,KAAK,IAAI,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,KAAK,CAAC,CACpE,CAAC;AACH,SAAA;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,GAAG,CAAC,CAClE,CAAC;AACH,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,CACnE,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,CACnE,CAAC;AACH,SAAA;AAAM,aAAA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,IAAI,CAAC,CACnE,CAAC;AACH,SAAA;aAAM,IAAI,KAAK,IAAI,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,KAAK,CAAC,CACpE,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,yBAAyB,CAAC,0BAA0B,CAAC,KAAK,GAAG,GAAG,CAAC,CAClE,CAAC;AACH,SAAA;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACvE,SAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,MAAc,EAAA;AACxC,QAAA,QAAQ,MAAM;YACZ,KAAK,mBAAmB,CAAC,OAAO;gBAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,mBAAmB,CAAC,MAAM;gBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,QAAS,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC7B;IAEO,cAAc,GAAA;QACpB,IAAI,CAAC,eAAe,CAAC;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK;YACtC,MAAM,EAAE,mBAAmB,CAAC,OAAO;AACnC,YAAA,IAAI,EACF,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB;AAClC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,0BAA0B;AAClD,kBAAE,MAAM;AACR,kBAAE,KAAK;AACZ,SAAA,CAAC,CAAC;KACJ;IAEO,aAAa,GAAA;QACnB,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;KAC9D;AAEO,IAAA,YAAY,CAAC,MAAc,EAAA;AACjC,QAAA,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAExC,QAAA,QAAQ,MAAM;YACZ,KAAK,mBAAmB,CAAC,KAAK;gBAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,mBAAmB,CAAC,IAAI;gBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;QAED,IACE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,EAC/C;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAA;QAED,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACvD;IAEO,cAAc,GAAA;QACpB,IACE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;AAChD,YAAA,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EACjC;YACA,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK;cAC7B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,cAAE,CAAC,IAAI,CAAC,CACX,CAAC;KACH;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CACnC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK;cAC7B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,cAAE,CAAC,IAAI,CAAC,CACX,CAAC;KACH;AAEM,IAAA,OAAO,CAAC,KAAkB,EAAA;;AAE/B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAC/D,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YAC7D,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,EAAE;AAC/D,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS;AAAE,oBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;gBACpE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACxC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACjC,aAAA;AAED,YAAA,IACE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI;gBAC9B,iBAAiB,CAAC,sBAAsB,EACxC;AACA,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACxC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACjC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KAC5B;AAEM,IAAA,MAAM,CAAC,KAAkB,EAAA;AAC9B,QAAA,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACtC,SAAS,EAAE,eAAe,EAAE,CAAC;;AAG7B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;;QAGD,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AACjE,YAAA,IACE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;AACrC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;AACtC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,oBAAoB;AAChD,gBAAA,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAC5B;;;;;;;;;;;;;;;;AAgBD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;;AAEzC,SAAA;;AAEI,aAAA;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC9B;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,MAAK;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAS,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1C,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;AACpC,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;KACT;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAE5B,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;SAC/D,EAAE,GAAG,CAAC,CAAC;KACT;AAEM,IAAA,sBAAsB,CAAC,KAAU,EAAE,IAAA,GAAe,GAAG,EAAA;AAC1D,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,YAAA,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACrD,SAAA;QACD,UAAU,CAAC,MAAK;YACd,KAAK,CAAC,KAAK,EAAE,CAAC;SACf,EAAE,IAAI,CAAC,CAAC;KACV;AAEM,IAAA,WAAW,CAAC,KAAY,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,QAAS,CAAC,MAAM,GAAG,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,eAAe,CAAC;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK;AACtC,YAAA,MAAM,EAAE,YAAY;AACrB,SAAA,CAAC,CAAC;KACJ;IAEM,qBAAqB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YAC/B,OAAO;AACR,SAAA;;;;;;;;;;;;;;;;;;;;;;;QAyBD,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE9D,QAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAA;KACF;+GAviBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCVY,qBAAqB,CAAA;AAChC,IAAA,SAAS,CAAC,WAAqB,EAAA;AAC7B,QAAA,QACE,CAAC,CAAC,WAAW,CAAC,iBAAiB;AAC7B,aAAC,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,aAAa,CAAC;YACrD,CAAC,WAAW,CAAC,yBAAyB;YACtC,CAAC,WAAW,CAAC,UAAU;AACzB,aAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;gBACjC,WAAW,CAAC,IAAI,KAAK,YAAY;AACjC,gBAAA,WAAW,CAAC,IAAI,KAAK,oBAAoB;gBACzC,CAAC,WAAW,CAAC,cAAc;AAC3B,gBAAA,CAAC,WAAW,CAAC,UAAU,CAAC,EAC1B;KACH;+GAbU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MC6FY,gBAAgB,CAAA;AAqD3B,IAAA,WAAA,CACiB,YAAuB,EAC9B,KAAwB,EACxB,iBAAoC,EAAA;QAF7B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAW;QAC9B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QACxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AA7CpB,QAAA,IAAA,CAAA,cAAc,GACtC,IAAI,YAAY,EAAW,CAAC;AACT,QAAA,IAAA,CAAA,SAAS,GAC5B,IAAI,YAAY,EAAW,CAAC;AACR,QAAA,IAAA,CAAA,eAAe,GACnC,IAAI,YAAY,EAAW,CAAC;AACZ,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;AACnD,QAAA,IAAA,CAAA,YAAY,GAClC,IAAI,YAAY,EAAiB,CAAC;AACnB,QAAA,IAAA,CAAA,eAAe,GAC9B,IAAI,YAAY,EAAW,CAAC;;AAGF,QAAA,IAAA,CAAA,qBAAqB,GAC/C,IAAI,YAAY,EAAW,CAAC;AACG,QAAA,IAAA,CAAA,0BAA0B,GAGtD,IAAI,YAAY,EAGjB,CAAC;QAEE,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;;QAGhC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;;QAGnC,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;;QAG7B,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;;QAG9B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;;AAGlC,QAAA,IAAA,CAAA,QAAQ,GAAkB,IAAI,OAAO,EAAQ,CAAC;AAQpD,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;KACxC;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;KAClC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;KAC9B;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAElE,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACtC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CACR,CAAC,CACC,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EAClB,KAAI;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9B,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAC7C,SAAC,CACF,CAAC;KACL;IAEM,eAAe,GAAA;AACpB,QAAA,MAAM,WAAW,GAGX;AACJ,YAAA;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa;gBAC7C,OAAO,EAAE,IAAI,CAAC,YAAY;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB;gBAChD,OAAO,EAAE,IAAI,CAAC,eAAe;AAC9B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe;gBAC/C,OAAO,EAAE,IAAI,CAAC,cAAc;AAC7B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU;gBAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;AACxB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;gBACjD,OAAO,EAAE,IAAI,CAAC,qBAAqB;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,sBAAsB;gBACtD,OAAO,EAAE,IAAI,CAAC,0BAA0B;AACzC,aAAA;SACF,CAAC;AAEF,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KACvC,OAAO;AACJ,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,KAAU,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAClD,CAAC;KACH;IAEM,mBAAmB,GAAA;QACxB,MAAM,eAAe,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,eAAe,EAAE,YAAY;YAClC,IAAI,CAAC,eAAe,EAAE,aAAa;AACpC,SAAA,CAAC,CAAC;AAEH,QAAA,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5D,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,cAAc,CAAC,OAAsB,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CACtC,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,CACxC,CAAC;KACH;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC;KACtC;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IAEM,QAAQ,CAAC,CAAM,EAAA,GAAU;AAEzB,IAAA,iBAAiB,MAAW;AAE5B,IAAA,MAAM,CAAC,KAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAErC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;AAEM,IAAA,OAAO,CAAC,KAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhC,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACvC;AAEM,IAAA,SAAS,CAAC,KAAoB,EAAA;QACnC,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,CAAC;AAE1D,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,gBAAA,IAAI,EAAE,IAAI;AACX,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;AAEM,IAAA,OAAO,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,IACE,IAAI,CAAC,WAAW,CAAC,UAAU;YAC3B,IAAI,CAAC,WAAW,CAAC,aAAa;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,EAClC;YACA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;AAChD,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;oBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;oBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,IAAI,CAAC,WAAW;AACvB,iBAAA,CAAC,CAAC;AAEH,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,EAAE;AACtC,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AACjC,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAChC,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;oBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACjC,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;oBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KACF;AAEM,IAAA,aAAa,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7C;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1C;AAEM,IAAA,gBAAgB,CAAC,KAAY,EAAA;QAClC,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;KAChD;AAEM,IAAA,UAAU,CAAC,KAIjB,EAAA;AACC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KAC1E;AAEM,IAAA,WAAW,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAC3C;IAEM,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;KAChD;AAEM,IAAA,UAAU,CAAC,YAAyC,EAAA;AACzD,QAAA,OAAO,cAAc,CAAC,YAAY,CAAW,CAAC;KAC/C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GAlRU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAFhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,iBAAiB,CAAC,6JCjGhC,i4NAuOA,EAAA,MAAA,EAAA,CAAA,mwsOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADjKI,gBAAA,YAAY,gOACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,UAAA,EAAA,IAAA,EACX,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,gOACpB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAGT,gBAAA,cAAc,8CACd,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACvB,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACd,cAAc,EACd,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAa,EACb,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,yBAAyB,yDACzB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAClB,aAAa,EACb,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,2BAA2B,2DAC3B,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAIrB,gBAAA,qBAAqB,yMACrB,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,wBAAwB,EACxB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,+BAA+B,sLAC/B,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAKf,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAtC5B,SAAS;+BACE,cAAc,EAAA,aAAA,EAGT,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,oBAAoB;wBACpB,SAAS;;wBAGT,cAAc;wBACd,uBAAuB;wBACvB,cAAc;wBACd,cAAc;wBACd,aAAa;wBACb,yBAAyB;wBACzB,kBAAkB;wBAClB,aAAa;wBACb,2BAA2B;wBAC3B,qBAAqB;wBACrB,SAAS;;wBAGT,qBAAqB;wBACrB,uBAAuB;wBACvB,wBAAwB;wBACxB,+BAA+B;wBAC/B,wBAAwB;AACzB,qBAAA,EAAA,OAAA,EACQ,CAAC,sBAAsB,CAAC,EACtB,SAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,i4NAAA,EAAA,MAAA,EAAA,CAAA,mwsOAAA,CAAA,EAAA,CAAA;;0BAwD3B,IAAI;yGAnDsC,KAAK,EAAA,CAAA;sBAAjD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAE3B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,0BAA0B,EAAA,CAAA;sBAAlC,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEoB,cAAc,EAAA,CAAA;sBAAvC,MAAM;uBAAC,gBAAgB,CAAA;gBAEH,SAAS,EAAA,CAAA;sBAA7B,MAAM;uBAAC,WAAW,CAAA;gBAEG,eAAe,EAAA,CAAA;sBAApC,MAAM;uBAAC,YAAY,CAAA;gBAEF,WAAW,EAAA,CAAA;sBAA5B,MAAM;uBAAC,QAAQ,CAAA;gBACQ,YAAY,EAAA,CAAA;sBAAnC,MAAM;uBAAC,cAAc,CAAA;gBAEL,eAAe,EAAA,CAAA;sBAA/B,MAAM;uBAAC,OAAO,CAAA;gBAIa,qBAAqB,EAAA,CAAA;sBAAhD,MAAM;uBAAC,kBAAkB,CAAA;gBAEO,0BAA0B,EAAA,CAAA;sBAA1D,MAAM;uBAAC,uBAAuB,CAAA;;;ME5DpB,sBAAsB,CAAA;AA4CjC,IAAA,WAAA,CACU,WAA+B;;IAG/B,iBAAoC,EAAA;QAHpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAG/B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AA9CrC,QAAA,IAAA,CAAA,OAAO,GAAWC,uBAAmB,CAAC,cAAc,CAAC;QACrD,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;QACzB,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAEjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEhC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QAEnC,IAAgB,CAAA,gBAAA,GAAoB,CAAC,CAAC;QACtC,IAAc,CAAA,cAAA,GAAoB,CAAC,CAAC;QACpC,IAAwB,CAAA,wBAAA,GAAoB,CAAC,CAAC;QAC9C,IAAsB,CAAA,sBAAA,GAAoB,CAAC,CAAC;QAC5C,IAAyB,CAAA,yBAAA,GAAoB,CAAC,CAAC;QAC/C,IAAuB,CAAA,uBAAA,GAAoB,CAAC,CAAC;QAC7C,IAAwB,CAAA,wBAAA,GAAoB,CAAC,CAAC;QAC9C,IAAsB,CAAA,sBAAA,GAAoB,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,aAAa,GAAWA,uBAAmB,CAAC,SAAS,CAAC;AACtD,QAAA,IAAA,CAAA,aAAa,GAAWA,uBAAmB,CAAC,SAAS,CAAC;QAEtD,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAWA,uBAAmB,CAAC,SAAS,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAWA,uBAAmB,CAAC,SAAS,CAAC;QAEpD,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;KAOvC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;KAChD;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,mBAAmB,CAAC,eAAe,EAAE,CAAC;KAC9C;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;KACpD;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;KAClD;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;KACrD;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;KACnD;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;KACpD;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;KAClD;IAEO,UAAU,GAAA;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACtC,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA,CAAC,CAAC;KACJ;IAEO,0BAA0B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,GAAGA,uBAAmB,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,YAAY;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,YAAA,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE;gBAC1C,IAAI,OAAO,CAAC,QAAQ,EAAE;oBACpB,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC1C,oBAAA,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE;AAC5B,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,aAAA;AAED,YAAA,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC1D,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAElD,oBAAA,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE;AAC5B,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACjC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,aAAA;AAED,YAAA,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC5D,IAAI,OAAO,CAAC,iBAAiB,EAAE;oBAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEnD,oBAAA,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE;AAC5B,wBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACnC,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACnC,iBAAA;AACF,aAAA;AAED,YAAA,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC1D,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAClD,oBAAA,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE;AAC5B,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACjC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,iBAAA;AACF,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,OAAO,KAAKA,uBAAmB,CAAC,GAAG,EAAE;gBAC5C,IAAI,cAAc,GAAG,IAAI,CAAC;gBAC1B,IAAI,gBAAgB,GAAG,IAAI,CAAC;gBAE5B,MAAM,UAAU,GACd,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM;sBACpD,IAAI,CAAC,gBAAgB;sBACrB,CAAC,CAAC;gBACR,MAAM,QAAQ,GACZ,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM;sBAChD,IAAI,CAAC,cAAc;sBACnB,CAAC,CAAC;gBAER,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,oBAAA,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,iBAAA;gBAED,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,oBAAA,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACrC,iBAAA;gBAED,IAAI,QAAQ,KAAK,EAAE,EAAE;oBACnB,cAAc,GAAG,KAAK,CAAC;AACxB,iBAAA;gBAED,IAAI,UAAU,KAAK,IAAI,EAAE;oBACvB,gBAAgB,GAAG,KAAK,CAAC;AAC1B,iBAAA;gBAED,IAAI,cAAc,IAAI,gBAAgB,EAAE;AACtC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,oBAAA,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;AAChB,wBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IACE,CAAC,IAAI,CAAC,mBAAmB;oBACzB,CAAC,IAAI,CAAC,oBAAoB;oBAC1B,CAAC,IAAI,CAAC,mBAAmB,EACzB;AACA,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,oBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACnC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,iBAAA;gBAED,IACE,IAAI,CAAC,mBAAmB;AACxB,oBAAA,IAAI,CAAC,oBAAoB;oBACzB,IAAI,CAAC,mBAAmB,EACxB;AACA,oBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,iBAAA;AACF,aAAA;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC;sBACnC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACtE,aAAA;YAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;sBAC7C,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;AAC/C,sBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;YAED,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,oBAAoB,CAAC;sBAC9C,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,oBAAoB,CAAC;AAChD,sBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;YAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;sBAC7C,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;AAC/C,sBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QAEnC,QAAQ,IAAI,CAAC,IAAI;YACf,KAAKA,uBAAmB,CAAC,YAAY;AACnC,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,oBAAA,IAAI,IAAI,CAAC,OAAO,KAAKA,uBAAmB,CAAC,GAAG,EAAE;AAC5C,wBAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;AACnD,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACjD,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAEpE,oBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;AACvC,iBAAA;AACD,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;YACR,KAAKA,uBAAmB,CAAC,YAAY,CAAC;YACtC,KAAKA,uBAAmB,CAAC,UAAU,CAAC;YACpC,KAAKA,uBAAmB,CAAC,YAAY;AACnC,gBAAA,IACE,IAAI,CAAC,IAAI,KAAKA,uBAAmB,CAAC,YAAY;oBAC9C,CAAC,IAAI,CAAC,cAAc,EACpB;oBACA,MAAM;AACP,iBAAA;AACD,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAEpE,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;gBACtC,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAEhC,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,YAAY,CAAC,GAAW,EAAA;QAC7B,IAAI,GAAG,KAAK,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,SAAA;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,SAAA;KACF;IAEM,SAAS,CAAC,GAAW,EAAE,KAAkB,EAAA;QAC9C,KAAK,EAAE,eAAe,EAAE,CAAC;AACzB,QAAA,QAAQ,GAAG;YACT,KAAK,qBAAqB,CAAC,WAAW;AACpC,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC;AACvC,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC;AACrC,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,gBAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,MAAM;YACR,KAAK,qBAAqB,CAAC,gBAAgB;AACzC,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;AACjD,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;AAC/C,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,MAAM;YACR,KAAK,qBAAqB,CAAC,iBAAiB;AAC1C,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;AAClD,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,oBAAoB,CAAC;AAChD,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,MAAM;YACR,KAAK,qBAAqB,CAAC,gBAAgB;AACzC,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;AACjD,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,SAAS;AACX,qBAAA,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;AAC/C,sBAAE,QAAQ,CAACA,uBAAmB,CAAC,wBAAwB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,MAAM;YACR,KAAK,qBAAqB,CAAC,SAAS;AAClC,gBAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;AAChC,gBAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;AACjC,gBAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;AAClC,gBAAA,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;AAChC,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;AAEM,IAAA,cAAc,CACnB,KAAwB,EAAA;QAExB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAGA,uBAAmB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAEtE,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAKA,uBAAmB,CAAC,WAAW,EAAE;AAClD,SAAA;AAAM,aAAA,IACL,IAAI,CAAC,IAAI,KAAKA,uBAAmB,CAAC,YAAY;YAC9C,CAAC,IAAI,CAAC,cAAc,EACpB;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,KAAKA,uBAAmB,CAAC,GAAG,EAAE;AAC5C,gBAAA,IAAI,CAAC,wBAAwB,GAAG,CAC9B,GAAG;AACH,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,KAAK,EACtE,KAAK,CAAC,CAAC,CAAC,CAAC;AACX,gBAAA,IAAI,CAAC,sBAAsB,GAAG,CAC5B,GAAG;AACH,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,KAAK,EACpE,KAAK,CAAC,CAAC,CAAC,CAAC;AACX,gBAAA,IAAI,CAAC,yBAAyB,GAAG,CAC/B,GAAG;oBACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;AAC9D,0BAAE,KAAK,EACT,KAAK,CAAC,CAAC,CAAC,CAAC;AACX,gBAAA,IAAI,CAAC,uBAAuB,GAAG,CAC7B,GAAG;AACH,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,KAAK,EACrE,KAAK,CAAC,CAAC,CAAC,CAAC;AACX,gBAAA,IAAI,CAAC,wBAAwB,GAAG,CAC9B,GAAG;AACH,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,KAAK,EACtE,KAAK,CAAC,CAAC,CAAC,CAAC;AACX,gBAAA,IAAI,CAAC,sBAAsB,GAAG,CAC5B,GAAG;AACH,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,KAAK,EACpE,KAAK,CAAC,CAAC,CAAC,CAAC;AAEX,gBAAA,WAAW,GAAG;AACZ,oBAAA,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAC/B,qBAAqB,CAAC,qBAAqB,CAC5C,EAAE,KAAK;AACR,oBAAA,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAC7B,qBAAqB,CAAC,mBAAmB,CAC1C,EAAE,KAAK;AACR,oBAAA,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAChC,qBAAqB,CAAC,sBAAsB,CAC7C,EAAE,KAAK;AACR,oBAAA,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAC9B,qBAAqB,CAAC,oBAAoB,CAC3C,EAAE,KAAK;AACR,oBAAA,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAC/B,qBAAqB,CAAC,qBAAqB,CAC5C,EAAE,KAAK;AACR,oBAAA,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAC7B,qBAAqB,CAAC,mBAAmB,CAC1C,EAAE,KAAK;iBACT,CAAC;gBAEF,IAAI,WAAW,GAAG,CAAC,CAAC;gBAEpB,IACE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;AAC7D,sBAAE,KAAK;oBACT,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,KAAK,EACpE;AACA,oBAAA,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;AAC/B,iBAAA;gBAED,IACE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;AAC9D,sBAAE,KAAK;oBACT,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,KAAK,EACrE;AACA,oBAAA,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;AAC/B,iBAAA;gBAED,IACE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;AAC7D,sBAAE,KAAK;oBACT,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,KAAK,EACpE;AACA,oBAAA,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;AAC/B,iBAAA;AAED,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AACjC,gBAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;AACpC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,gBAAgB,GAAG,CACtB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,KAAK,EAClE,KAAK,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,cAAc,GAAG,CACpB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK,EAChE,KAAK,CAAC,CAAC,CAAC,CAAC;AAEX,gBAAA,IACE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,KAAK;AAC7D,oBAAA,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK,EAC3D;AACA,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO;AACR,iBAAA;AAED,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,gBAAA,WAAW,GAAG;oBACZ,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC;AAC/D,0BAAE,KAAK;AACP,0BAAE,QAAQ,CACN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,KAAK,CAC7D;0BACDA,uBAAmB,CAAC,wBAAwB;AAChD,oBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK;AAClE,0BAAE,QAAQ,CACN,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK,CAC3D;0BACDA,uBAAmB,CAAC,wBAAwB;iBACjD,CAAC;AACH,aAAA;AACF,SAAA;QAED,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAA0C;YAClD,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,mBAAmB,CAAC,IAS1B,EAAA;QACC,IAAI,gBAAgB,GAAG,MAAM,CAAC;QAC9B,IAAI,iBAAiB,GAAG,MAAM,CAAC;QAC/B,IAAI,gBAAgB,GAAG,MAAM,CAAC;QAE9B,MAAM,eAAe,GACnB,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,KAAK,MAAM;cACrE,IAAI,CAAC,wBAAwB;cAC7B,CAAC,CAAC;QACR,MAAM,aAAa,GACjB,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,IAAI,MAAM;cAChE,IAAI,CAAC,sBAAsB;cAC3B,CAAC,CAAC;AAER,QAAA,MAAM,aAAa,GACjB,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,yBAAyB,KAAK,MAAM;cACrC,IAAI,CAAC,yBAAyB;cAC9B,CAAC,CAAC;QACR,MAAM,WAAW,GACf,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,uBAAuB,KAAK,MAAM;cACnE,IAAI,CAAC,uBAAuB;cAC5B,CAAC,CAAC;QAER,MAAM,eAAe,GACnB,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,KAAK,MAAM;cACrE,IAAI,CAAC,wBAAwB;cAC7B,CAAC,CAAC;QACR,MAAM,aAAa,GACjB,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,KAAK,MAAM;cACjE,IAAI,CAAC,sBAAsB;cAC3B,CAAC,CAAC;QAER,MAAM,SAAS,GACb,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,KAAK,MAAM;AAC3D,cAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;cACjC,CAAC,CAAC;QACR,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM;AACvD,cAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;cAC/B,CAAC,CAAC;QAER,MAAM,OAAO,GACX,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,KAAK,MAAM;AAC7D,cAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;cAClC,CAAC,CAAC;QACR,MAAM,KAAK,GACT,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM;AACzD,cAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;cAChC,CAAC,CAAC;QAER,MAAM,SAAS,GACb,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,KAAK,MAAM;AAC3D,cAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;cACjC,CAAC,CAAC;QACR,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM;AACvD,cAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;cAC/B,CAAC,CAAC;AAER,QAAA,IAAI,SAAS,KAAK,eAAe,IAAI,OAAO,KAAK,aAAa,EAAE;YAC9D,gBAAgB,GAAG,SAAS,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,OAAO,KAAK,aAAa,IAAI,KAAK,KAAK,WAAW,EAAE;YACtD,iBAAiB,GAAG,SAAS,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,SAAS,KAAK,eAAe,IAAI,OAAO,KAAK,aAAa,EAAE;YAC9D,gBAAgB,GAAG,SAAS,CAAC;AAC9B,SAAA;QAED,IACE,gBAAgB,KAAK,SAAS;AAC9B,YAAA,iBAAiB,KAAK,SAAS;YAC/B,gBAAgB,KAAK,SAAS,EAC9B;AACA,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,SAAS,IAAI,OAAO,EAAE;AACpE,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,aAAA;AACF,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,YAAiD,EAAA;AACjE,QAAA,OAAO,sBAAsB,CAAC,YAAY,CAAW,CAAC;KACvD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GApnBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAJtB,CAAC,iBAAiB,EAAEC,qBAAiB,EAAEC,SAAK,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7D1D,wrSA+QA,EAAA,MAAA,EAAA,CAAA,2j6KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBD5NI,YAAY,EAAA,EAAA,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,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,mVACnB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACT,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChBS,oBAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,gBAAgB,EAMN,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,4BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEzD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,SAAS;wBACT,gBAAgB;wBAChBD,oBAAa;wBACb,gBAAgB;qBACjB,EAGU,SAAA,EAAA,CAAC,iBAAiB,EAAEH,qBAAiB,EAAEC,SAAK,CAAC,EACzC,aAAA,EAAA,iBAAiB,CAAC,IAAI,cACzB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,wrSAAA,EAAA,MAAA,EAAA,CAAA,2j6KAAA,CAAA,EAAA,CAAA;4IAG3D,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AExER,IAAY,oBAwBX,CAAA;AAxBD,CAAA,UAAY,oBAAoB,EAAA;;AAE5B,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;;AAGf,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;;AAGnC,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;;AAGjB,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;;AAGX,IAAA,oBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AACjD,CAAC,EAxBW,oBAAoB,KAApB,oBAAoB,GAwB/B,EAAA,CAAA,CAAA;;ACxBD,IAAY,cAuDX,CAAA;AAvDD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,cAAA,CAAA,cAAA,CAAA,2BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,2BAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,cAAA,CAAA,cAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,cAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,cAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACnB,CAAC,EAvDW,cAAc,KAAd,cAAc,GAuDzB,EAAA,CAAA,CAAA;;MCjDY,2BAA2B,CAAA;IACpC,SAAS,CACL,MAAc,EACd,OAAiB,EAAA;QAEjB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAElD,QAAA,MAAM,wBAAwB,GAAG,cAAc,KAAK,QAAQ,CAAC;AAC7D,QAAA,MAAM,4BAA4B,GAAG,cAAc,KAAK,YAAY,CAAC;AACrE,QAAA,MAAM,6BAA6B,GAAG;YAClC,cAAc;YACd,MAAM;YACN,eAAe;YACf,SAAS;YACT,kBAAkB;AACrB,SAAA,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAE3B,QAAA,MAAM,yBAAyB,GAAG,MAAM,KAAK,UAAU,CAAC;AACxD,QAAA,MAAM,wBAAwB,GAAG;YAC7B,kBAAkB;YAClB,YAAY;AACf,SAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,6BAA6B,GAAG;YAClC,SAAS;YACT,eAAe;YACf,iBAAiB;YACjB,WAAW;YACX,SAAS;AACZ,SAAA,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC3B,QAAA,MAAM,iCAAiC,GAAG;YACtC,QAAQ;YACR,cAAc;AACjB,SAAA,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC3B,QAAA,MAAM,uBAAuB,GAAG;YAC5B,iBAAiB;YACjB,mBAAmB;YACnB,YAAY;YACZ,YAAY;YACZ,MAAM;AACT,SAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,2BAA2B,GAAG;YAChC,WAAW;YACX,iBAAiB;AACpB,SAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,4BAA4B,GAAG;YACjC,WAAW;YACX,OAAO;YACP,eAAe;AAClB,SAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,0BAA0B,GAAG,MAAM,KAAK,WAAW,CAAC;AAC1D,QAAA,MAAM,0BAA0B,GAAG;YAC/B,UAAU;YACV,MAAM;YACN,mBAAmB;YACnB,cAAc;YACd,uBAAuB;AAC1B,SAAA,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC3B,QAAA,MAAM,8BAA8B,GAAG;YACnC,OAAO;YACP,QAAQ;YACR,WAAW;YACX,YAAY;YACZ,WAAW;YACX,oBAAoB;YACpB,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,wBAAwB;YACxB,cAAc;YACd,uBAAuB;YACvB,qBAAqB;AACxB,SAAA,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC3B,QAAA,MAAM,kCAAkC,GAAG;YACvC,oBAAoB;YACpB,aAAa;YACb,2BAA2B;YAC3B,kBAAkB;YAClB,eAAe;YACf,wBAAwB;YACxB,UAAU;YACV,mBAAmB;YACnB,sBAAsB;YACtB,eAAe;AAClB,SAAA,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAE3B,QAAA,IAAI,wBAAwB,EAAE;AAC1B,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,4BAA4B,EAAE;AACrC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,yBAAyB,EAAE;AAClC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,wBAAwB,EAAE;AACjC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,6BAA6B,EAAE;AACtC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,iCAAiC,EAAE;AAC1C,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,uBAAuB,EAAE;AAChC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,2BAA2B,EAAE;AACpC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,0BAA0B,EAAE;AACnC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,0BAA0B,EAAE;AACnC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,8BAA8B,EAAE;AACvC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,6BAA6B,EAAE;AACtC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,4BAA4B,EAAE;AACrC,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,kCAAkC,EAAE;AAC3C,YAAA,OAAO,OAAO;kBACR,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE;AAClD,kBAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;KACxB;+GA/IQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACIM,MAAM,cAAc,GAAG,CAAC,IAAY,KACvC,OAAO,CAAC,IAAI,EAAE;AACV,IAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,OAAO,CACH,GAAG,EACH,SAAS,CAAC;AACN,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,KAAK;aAChB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,GAAG;AACZ,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACL,SAAA,CAAC,CACL;KACJ,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,OAAO,CACH,GAAG,EACH,SAAS,CAAC;AACN,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,MAAM;aACjB,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,MAAM,EAAE,KAAK;aAChB,CAAC;AACL,SAAA,CAAC,CACL;KACJ,CAAC;AACL,CAAA,CAAC;;AClFN;MAKa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAA,CAAA,8BAA8B,GACjC,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC;AAE3C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;AACvE,KAAA;+GARY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MC6CY,uBAAuB,CAAA;AAmBlC,IAAA,WAAA;;IAEU,YAAqC,EAAA;QAArC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;QAnBtC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAIjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;QAEnC,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;QAEjC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QAErC,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAChC,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;KAK/B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,iCAAiC,EAAE,CAAC;KAC1C;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,cAAc,GAAA;QACnB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAE1E,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAErD,QAAA,MAAM,SAAS,GAAkB,IAAI,CAAC,sBAAsB,CAAC;AAE7D,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAClC,YAAA,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;QAEH,WAAW,GAAG,oBAAoB,CAAC;QACnC,OAAO;AACL,YAAA,IAAI,CAAC,WAAW;AAChB,gBAAA,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAE9D,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,SAAS,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAC5C,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AAC3D,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,yBAAyB,CAAC;AACzD,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;KAC7D;IAEO,iCAAiC,GAAA;AACvC,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,aAAa,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,8BAA8B;AAC7C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;YACjB,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,aAAa,EAAE;AAC3D,gBAAA,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC;AAC3C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,iBAAiB,CAAC,IAAiB,EAAE,IAAY,EAAA;AACtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;AAE9C,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,IAAiB,EAAE,IAAY,EAAA;QAC3D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;AAE9C,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CACrD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;KACxD;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GAnKU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,wPCrDpC,+iJA4HA,EAAA,MAAA,EAAA,CAAA,mt7KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDpFI,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAEhB,gBAAA,2BAA2B,EAIjB,IAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;+BACE,sBAAsB,EAAA,UAAA,EACpB,IAAI,EACP,OAAA,EAAA;;wBAEP,oBAAoB;wBACpB,YAAY;wBACZ,gBAAgB;;wBAEhB,2BAA2B;qBAC5B,EAGW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,qBAAA,EAAA,QAAA,EAAA,+iJAAA,EAAA,MAAA,EAAA,CAAA,mt7KAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;;;ME1DK,mBAAmB,CAAA;AAC5B,IAAA,OAAO,oBAAoB,CAAC,QAAgB,EAAE,UAAkB,EAAA;QAC5D,OAAO;AACH,YAAA;AACI,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACtD,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE;oBACH,EAAE,KAAK,EAAE,WAAW,EAAE;oBACtB,EAAE,KAAK,EAAE,WAAW,EAAE;oBACtB,EAAE,KAAK,EAAE,QAAQ,EAAE;AACtB,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE;oBACH,EAAE,KAAK,EAAE,YAAY,EAAE;oBACvB,EAAE,KAAK,EAAE,YAAY,EAAE;oBACvB,EAAE,KAAK,EAAE,SAAS,EAAE;oBACpB,EAAE,KAAK,EAAE,UAAU,EAAE;AACxB,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AAChE,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE;oBACH,EAAE,KAAK,EAAE,WAAW,EAAE;oBACtB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACnB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACnB,EAAE,KAAK,EAAE,UAAU,EAAE;AACxB,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC/B,aAAA;SACJ,CAAC;KACL;AACJ;;MCPY,qBAAqB,CAAA;AARlC,IAAA,WAAA,GAAA;QAUW,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAEjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEhC,IAAgB,CAAA,gBAAA,GAAkB,IAAI,CAAC;QAGvC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAQ,CAAA,QAAA,GAAkB,IAAI,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QACjC,IAAgB,CAAA,gBAAA,GAAwB,EAAE,CAAC;AA4GnD,KAAA;IA1GC,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,WAAW,CAAC;AAEhD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEzC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC7B;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,oBAAoB,CAC9D,IAAI,CAAC,QAAS,CAAC,QAAQ,EAAE,EACzB,IAAI,CAAC,UAAW,CAAC,QAAQ,EAAE,CAC5B,CAAC;KACH;IAEM,YAAY,CAAC,GAAW,EAAE,IAAa,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,GAAG,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,wBAAwB,CAAC;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;;AAC5D,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,GAAG,EAAE;AACjC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;KACF;AAEM,IAAA,cAAc,CACnB,MAAa,EAAA;QAEb,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAE1E,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/C,MAAM,aAAa,GAAW,KAAK,CAAC;AAEpC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO;AACR,SAAA;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,WAAW,GAAG;gBACZ,YAAY,EAAE,IAAI,CAAC,gBAAgB;gBACnC,IAAI,EAAE,IAAI,CAAC,gBAAgB;aAC5B,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,WAAW,GAAG;gBACZ,YAAY,EAAE,IAAI,CAAC,gBAAgB;aACpC,CAAC;AACH,SAAA;AAED,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;AACrB,YAAA,MAAM,EAAE,aAAa;YACrB,WAAW;YACX,OAAO;SACR,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,wBAAwB,CAAC;AAC1E,QAAA,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC,wBAAwB,CAAC;AAEzE,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,MAAM,eAAe,GAAW,OAAO,CAAC;AAExC,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GAvHU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,ECpClC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,01CAsCA,EDRY,MAAA,EAAA,CAAA,8y4KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+PAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAIlD,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAEjC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,WACP,CAAC,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,EACrD,QAAA,EAAA,oBAAoB,cAGlB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,EAAA,QAAA,EAAA,01CAAA,EAAA,MAAA,EAAA,CAAA,8y4KAAA,CAAA,EAAA,CAAA;8BAGnC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AEtCR,IAAY,qBAeX,CAAA;AAfD,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,qBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,eAA6B,CAAA;AAC7B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AAC3B,CAAC,EAfW,qBAAqB,KAArB,qBAAqB,GAehC,EAAA,CAAA,CAAA;;MCNY,sBAAsB,CAAA;AAC/B,IAAA,SAAS,CAAC,OAAe,EAAA;AACrB,QAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,OAAO,EAAE;YAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,gBAAgB,EAAE;YAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,UAAU,EAAE;YACrD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,kBAAkB,EAAE;YAC7D,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,WAAW,EAAE;YACtD,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACxD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,SAAS,EAAE;YACpD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,QAAQ,EAAE;YACnD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,OAAO,KAAK,qBAAqB,CAAC,QAAQ,EAAE;YACnD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAChC,SAAA;KACJ;+GArBQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,wBAAwB;AACjC,iBAAA,CAAA;;;MCNY,kBAAkB,CAAA;AAC7B,IAAA,OAAO,mBAAmB,GAAA;QACxB,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,eAAe,EAAE,WAAW;AAC5B,YAAA,WAAW,EAAE,qBAAqB;AAClC,YAAA,yBAAyB,EAAE,IAAI;AAC/B,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;KACH;AACF;;MCwDY,qBAAqB,CAAA;AAuBhC,IAAA,WAAA,CAAoB,WAA+B,EAAA;QAA/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QArB1C,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAEhC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAIlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEhC,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAIhC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;QACnC,IAAkB,CAAA,kBAAA,GAAuB,kBAAkB,CAAC;QAE5D,IAAY,CAAA,YAAA,GAAmB,EAAE,CAAC;QAClC,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;KAEoB;IAEvD,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;KACjD;AAEM,IAAA,cAAc,CACnB,MAAa,EAAA;QAEb,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAErD,IAAI,SAAS,GAAkB,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAE1E,QAAA,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;AAEhC,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAClC,YAAA,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO;AACR,SAAA;QAED,WAAW,GAAG,oBAAoB,CAAC;QACnC,OAAO;AACL,YAAA,IAAI,CAAC,WAAW;AAChB,gBAAA,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAE9D,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,WAAW,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC,CAAC;KACJ;IAEM,iBAAiB,CAAC,IAAkB,EAAE,IAAY,EAAA;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;AAEtC,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,IAAkB,EAAE,IAAY,EAAA;QAC5D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;AAEtC,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CACrD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;KACxD;IAEO,2BAA2B,GAAA;QACjC,IAAI,CAAC,UAAU,CAAC,YAAY;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,OAAO,KAAI;YACrB,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;AAEnC,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,WAAW,EAAE;oBACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC/B,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,wBAAA,IAAI,IAAI,CAAC,IAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE;AAC/D,4BAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,yBAAA;AACD,wBAAA,OAAO,IAAI,CAAC;AACd,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,WAAW,EAAE;oBACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC/B,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACD,gBAAA,IAAI,CAAC,gBAAgB;oBACnB,uBAAuB,CAAC,wBAAwB,CAAC;AACpD,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,SAAS,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAC5C,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,yBAAyB,CAAC;AACzD,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;KAC7D;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA3MU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,wQCvElC,giKAwIA,EAAA,MAAA,EAAA,CAAA,+zgLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADjFI,gBAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,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,UAAA,EAAA,IAAA,EAAA,gBAAgB,8BAChB,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAEpB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,4BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,uBAAuB,EAKb,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvBjC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAGP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,mBAAmB;wBACnB,gBAAgB;wBAChB,oBAAoB;;wBAEpB,gBAAgB;wBAChB,uBAAuB;;wBAEvB,2BAA2B;wBAC3B,sBAAsB;qBACvB,EACW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,qBAAA,EAAA,QAAA,EAAA,giKAAA,EAAA,MAAA,EAAA,CAAA,+zgLAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;AEpED,MAAM,WAAW,GAAG,CAAC,IAAY,KACpC,OAAO,CAAC,IAAI,EAAE;AACV,IAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,OAAO,CACH,GAAG,EACH,SAAS,CAAC;AACN,YAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC/C,YAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChD,SAAA,CAAC,CACL;KACJ,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;AACjB,QAAA,OAAO,CACH,GAAG,EACH,SAAS,CAAC;YACN,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAChC,YAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAClD,SAAA,CAAC,CACL;KACJ,CAAC;AACL,CAAA,CAAC;;MC5BO,kBAAkB,CAAA;AACpB,IAAA,SAAA,IAAA,CAAA,eAAe,GAAkB;AACpC,QAAA;AACI,YAAA,IAAI,EAAE,uBAAuB;AAC7B,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,MAAM,EAAE,qEAAqE;AAC7E,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,UAAU,GAAkB;AAC/B,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,0BAA0B;AAChC,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,aAAa,GAAkB;AAClC,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,2BAA2B;AACjC,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,uBAAuB;AAC7B,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,gBAAgB,GAAkB;AACrC,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,EAAE;AACZ,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,+DAA+D;AACrE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,+DAA+D;AACrE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,+DAA+D;AACrE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,6DAA6D;AACnE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,kBAAkB,GAAkB;AACvC,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,EAAE;AACZ,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,kEAAkE;AACxE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,KAAK,EAAE,EAAE;AACZ,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,KAAK,EAAE,EAAE;AACZ,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,EAAE;AACZ,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,IAAI,EAAE,iEAAiE;AACvE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,IAAI,EAAE,iEAAiE;AACvE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,iEAAiE;AACvE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,mEAAmE;AACzE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,eAAe,GAAkB;AACpC,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,IAAI,EAAE,2DAA2D;AACjE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,6DAA6D;AACnE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,4DAA4D;AAClE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,IAAI,EAAE,iEAAiE;AACvE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,IAAI,EAAE,gEAAgE;AACtE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,2DAA2D;AACjE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,0DAA0D;AAChE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,IAAI,EAAE,+DAA+D;AACrE,YAAA,KAAK,EAAE,CAAC;AACX,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,qBAAqB,GAAkB;AAC1C,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,+DAA+D;AACxE,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,6DAA6D;AACnE,YAAA,UAAU,EAAE,kDAAkD;AACjE,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,+CAA+C;AACxD,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,8DAA8D;AACvE,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,6DAA6D;AACtE,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,+DAA+D;AACxE,SAAA;KACJ,CAAC,EAAA;;;MC5kBO,sBAAsB,CAAA;AAmBjC,IAAA,WAAA,CAAoB,WAA+B,EAAA;QAA/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAjB1C,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAEjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEhC,QAAA,IAAA,CAAA,SAAS,GAAkB,kBAAkB,CAAC,UAAU,CAAC;AACzD,QAAA,IAAA,CAAA,YAAY,GAAkB,kBAAkB,CAAC,aAAa,CAAC;QAC/D,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAoB,CAAA,oBAAA,GAAkB,EAAE,CAAC;QAEzC,IAAgB,CAAA,gBAAA,GAAkB,IAAI,CAAC;QACvC,IAAoB,CAAA,oBAAA,GAAkB,EAAE,CAAC;QACzC,IAAuB,CAAA,uBAAA,GAAkB,EAAE,CAAC;QAC5C,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;QACnC,IAAkB,CAAA,kBAAA,GAAuB,kBAAkB,CAAC;KAEZ;IAEvD,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACvC,MAAM,EAAE,uBAAuB,CAAC,wBAAwB;AACzD,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,2BAA2B,GAAA;QACjC,IAAI,CAAC,UAAU,CAAC,YAAY;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,YAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;YAEnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC1B,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,gBAAA,IAAI,IAAI,CAAC,IAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE;AAC/D,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC7B,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,gBAAA,IAAI,IAAI,CAAC,IAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE;AAC/D,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,iBAAiB,CACtB,IAMC,EACD,IAAY,EACZ,OAAgB,EAAA;QAEhB,IAAI,SAAS,GAAkB,EAAE,CAAC;AAElC,QAAA,IAAI,OAAO,KAAK,uBAAuB,CAAC,MAAM,EAAE;AAC9C,YAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC5B,SAAA;AAED,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,OAAO,KAAK,uBAAuB,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,SAAA;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,GAAA;QAC3B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE5D,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC7B,YAAA,OAAO,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,EAAG,CAAC;AACvB,SAAC,CAAC,CAAC;QAEH,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC3B,YAAA,OAAO,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,EAAG,CAAC;AACvB,SAAC,CAAC,CAAC;QAEH,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAChC,YAAA,OAAO,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,EAAG,CAAC;AACvB,SAAC,CAAC,CAAC;QAEH,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC9B,YAAA,OAAO,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,EAAG,CAAC;AACvB,SAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrD,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC3D,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAEhE,IAAI,WAAW,KAAK,kBAAkB,EAAE;YACtC,eAAe,GAAG,KAAK,CAAC;AACzB,SAAA;AAAM,aAAA;YACL,eAAe,GAAG,IAAI,CAAC;AACxB,SAAA;QAED,IAAI,cAAc,KAAK,qBAAqB,EAAE;YAC5C,kBAAkB,GAAG,KAAK,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,kBAAkB,GAAG,IAAI,CAAC;AAC3B,SAAA;QAED,IAAI,eAAe,IAAI,kBAAkB,EAAE;AACzC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAChC,SAAA;KACF;AAEM,IAAA,sBAAsB,CAC3B,IAMC,EACD,IAAY,EACZ,OAAgB,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,YAAY,EAAE;AACtD,YAAA,IAAI,OAAO,KAAK,uBAAuB,CAAC,MAAM,EAAE;gBAC9C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;AAED,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAEnB,IAAI,SAAS,GAAkB,EAAE,CAAC;AAElC,QAAA,IAAI,OAAO,KAAK,uBAAuB,CAAC,MAAM,EAAE;AAC9C,YAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC5B,SAAA;AAED,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,cAAc,GAAA;QACnB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAE1E,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAE9D,QAAA,MAAM,mBAAmB,GACvB,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;AACzE,QAAA,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;AAE3C,QAAA,WAAW,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,oBAAoB;YACnC,WAAW,EAAE,IAAI,CAAC,uBAAuB;SAC1C,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QAEnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA5PU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2IChDnC,mmLA6JA,EAAA,MAAA,EAAA,CAAA,ys/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADvHI,gBAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,EAEV,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;YAC9B,WAAW,CAAC,aAAa,CAAC;AAC3B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjBlC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,qBAAqB,EAGtB,OAAA,EAAA;;wBAEP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;qBACrB,EACW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;wBAC9B,WAAW,CAAC,aAAa,CAAC;AAC3B,qBAAA,EAAA,QAAA,EAAA,mmLAAA,EAAA,MAAA,EAAA,CAAA,ys/KAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MElDK,gBAAgB,CAAA;aAClB,IAAW,CAAA,WAAA,GAAG,4CAA4C,CAAC,EAAA;aAC3D,IAAQ,CAAA,QAAA,GAAG,yCAAyC,CAAC,EAAA;aACrD,IAAU,CAAA,UAAA,GAAG,2CAA2C,CAAC,EAAA;aACzD,IAAW,CAAA,WAAA,GAAG,2CAA2C,CAAC,EAAA;;;MC8CxD,0BAA0B,CAAA;AAarC,IAAA,WAAA;;IAEU,YAAqC,EAAA;QAArC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;QAbtC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAGlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAsB,CAAA,sBAAA,GAAkB,EAAE,CAAC;QAC3C,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;KAKtC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,SAAS,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CACvC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,oBAAoB,CAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,yBAAyB,CAAC;AACnE,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;KAC7D;IAEM,iBAAiB,CAAC,IAAkB,EAAE,IAAY,EAAA;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;AAEtC,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,IAAkB,EAAE,IAAY,EAAA;QAC5D,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;AAEtC,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,6BAA6B,GAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,sBAAsB;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,iBAAiB,EAAE;AAC3D,gBAAA,IAAI,GAAG,EAAE,SAAS,KAAK,mBAAmB,EAAE;oBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;wBACzC,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzD,wBAAA,OAAO,IAAI,CAAC;AACd,qBAAC,CAAC,CAAC;AAEH,oBAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC/B,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,cAAc,GAAA;QACnB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAE5E,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QAEjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,sBAAsB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CACrD,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;KACxD;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA/IU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,sNClDvC,6xHAuGA,EAAA,MAAA,EAAA,CAAA,yz/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AD9DI,gBAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,EAEV,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhBtC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,0BAA0B,EAG3B,OAAA,EAAA;;wBAEP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;qBACrB,EACW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,qBAAA,EAAA,QAAA,EAAA,6xHAAA,EAAA,MAAA,EAAA,CAAA,yz/KAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MEHK,4BAA4B,CAAA;AAavC,IAAA,WAAA;;IAEU,YAAqC,EAAA;QAArC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;QAbtC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAGlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAwB,CAAA,wBAAA,GAAkB,EAAE,CAAC;QAC7C,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;KAKtC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,SAAS,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CACvC,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,oBAAoB,CAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACrD,QAAA,IAAI,CAAC,wBAAwB,GAAG,UAAU,CAAC,yBAAyB,CAAC;AACrE,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;KAC7D;IAEM,iBAAiB,CAAC,IAAkB,EAAE,IAAY,EAAA;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAExC,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,IAAkB,EAAE,IAAY,EAAA;QAC5D,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAExC,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,6BAA6B,GAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;QAExD,IAAI,CAAC,YAAY,CAAC,sBAAsB;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAA2B,KAAI;AACzC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,mBAAmB,EAAE;AAC7D,gBAAA,IAAI,GAAG,EAAE,SAAS,KAAK,qBAAqB,EAAE;oBAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;wBACzC,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC3D,wBAAA,OAAO,IAAI,CAAC;AACd,qBAAC,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;AACjC,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,cAAc,GAAA;QACnB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAE5E,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,sBAAsB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CACrD,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;KACxD;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA/IU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,4NCnDzC,qyHAuGA,EAAA,MAAA,EAAA,CAAA,2z/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AD7DI,gBAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,EAEV,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,4BAA4B,EAG7B,OAAA,EAAA;;wBAEP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;qBACrB,EACW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,qBAAA,EAAA,QAAA,EAAA,qyHAAA,EAAA,MAAA,EAAA,CAAA,2z/KAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MELK,mBAAmB,CAAA;AAc9B,IAAA,WAAA;;IAEU,YAAqC,EAAA;QAArC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;QAdtC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAIlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAqB,CAAA,qBAAA,GAAkB,EAAE,CAAC;QAC1C,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;KAKtC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,SAAS,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CACvC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,oBAAoB,CAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,yBAAyB,CAAC;AAClE,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;KAC7D;IAEM,iBAAiB,CAAC,IAAkB,EAAE,IAAY,EAAA;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AAErC,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,IAAkB,EAAE,IAAY,EAAA;QAC5D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AAErC,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,6BAA6B,GAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,sBAAsB;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAA2B,KAAI;AACzC,YAAA,IACE,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,SAAS;AAC/C,gBAAA,IAAI,CAAC,SAAS,KAAK,uBAAuB,CAAC,gBAAgB,EAC3D;AACA,gBAAA,IACE,GAAG,EAAE,SAAS,KAAK,uBAAuB,CAAC,sBAAsB,EACjE;AACA,oBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAA6B,CAAC;oBAC/C,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC7B,wBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;4BAClD,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5D,4BAAA,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAE1B,4BAAA,OAAO,IAAI,CAAC;AACd,yBAAC,CAAC,CAAC;AAEH,wBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;AAC9B,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA,IACL,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,SAAS;AAC/C,gBAAA,IAAI,CAAC,SAAS,KAAK,uBAAuB,CAAC,kBAAkB,EAC7D;AACA,gBAAA,IACE,GAAG,EAAE,SAAS,KAAK,uBAAuB,CAAC,sBAAsB,EACjE;AACA,oBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAA6B,CAAC;oBAC/C,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AAC/B,wBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,IAAS,KAAI;4BACrD,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5D,4BAAA,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAE1B,4BAAA,OAAO,IAAI,CAAC;AACd,yBAAC,CAAC,CAAC;AAEH,wBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;AAC9B,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACzB,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,cAAc,GAAA;QACnB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAE5E,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAEhC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAE5B,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,sBAAsB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CACrD,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;KACxD;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GAhLU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oOClDhC,qsHAqGA,EAAA,MAAA,EAAA,CAAA,0z/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AD5DI,gBAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,EAEV,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAhB/B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,kBAAkB,EAGnB,OAAA,EAAA;;wBAEP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;qBACrB,EACW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,qBAAA,EAAA,QAAA,EAAA,qsHAAA,EAAA,MAAA,EAAA,CAAA,0z/KAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MELK,wBAAwB,CAAA;AAcnC,IAAA,WAAA;;IAEU,YAAqC,EAAA;QAArC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;QAdtC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAIlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAA0B,CAAA,0BAAA,GAAkB,EAAE,CAAC;QAC/C,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QACrC,IAAiB,CAAA,iBAAA,GAAkB,EAAE,CAAC;QACtC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC;KAKtC;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,SAAS,GAAA;AACd,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CACvC,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,0BAA0B,EAC/B,IAAI,CAAC,oBAAoB,CAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvD,QAAA,IAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC,yBAAyB,CAAC;AACvE,QAAA,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;KAC7D;IAEM,iBAAiB,CAAC,IAAkB,EAAE,IAAY,EAAA;AACvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAE1C,QAAA,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;AAEV,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,IAAkB,EAAE,IAAY,EAAA;QAC5D,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAE1C,QAAA,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACtB,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAC5C,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,MAAM,CAAC;QAEV,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,6BAA6B,GAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,cAAc,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,sBAAsB;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAA2B,KAAI;AACzC,YAAA,IAAI,GAAG,EAAE,SAAS,KAAK,uBAAuB,CAAC,sBAAsB,EAAE;AACrE,gBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAA6B,CAAC;gBAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;oBACrC,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;AACxD,oBAAA,OAAO,IAAI,CAAC;AACd,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;AACnC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,cAAc,GAAA;QACnB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AAE5E,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAE/B,QAAA,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,IAAI;AACrB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,OAAO,EAAE,OAAO;SACjB,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK;YAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;QAErC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACnC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,MAAM,IAAI,GAAG;YACX,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,sBAAsB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CACrD,IAAI,CAAC,0BAA0B,EAC/B,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;KACxD;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA7IU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,mPClDrC,ytHAqGA,EAAA,MAAA,EAAA,CAAA,u5gLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AD5DI,gBAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,EAEV,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,cAAc,CAAC,gBAAgB,CAAC;YAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAhBpC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,uBAAuB,EAGxB,OAAA,EAAA;;wBAEP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;qBACrB,EACW,UAAA,EAAA;wBACV,cAAc,CAAC,gBAAgB,CAAC;wBAChC,aAAa,CAAC,eAAe,CAAC;AAC/B,qBAAA,EAAA,QAAA,EAAA,ytHAAA,EAAA,MAAA,EAAA,CAAA,u5gLAAA,CAAA,EAAA,CAAA;2GAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;;;MEsBK,iBAAiB,CAAA;AA8D5B,IAAA,WAAA,CAAoB,QAAmB,EAAA;QAAnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAjC9B,QAAA,IAAA,CAAA,OAAO,GAAW,uBAAuB,CAAC,cAAc,CAAC;QAQzD,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAiB,CAAA,iBAAA,GAAY,IAAI,CAAC;QAClC,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAElC,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAG1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAEnC,CAAC;AAEM,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAElC,CAAC;AAEI,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEhC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;QACjC,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;KAED;IAEpC,SAAS,GAAA;QACd,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,uBAAuB,CAAC,aAAa;gBACxC,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC;AACtE,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,WAAW;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,oBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC;AACpE,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;AACnC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;AAC/C,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,mBAAmB;gBAC9C,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,oBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;AACrC,oBAAA,IAAI,CAAC,oBAAoB;AACvB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;AACjD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,SAAS;gBACpC,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAClE,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,cAAc;gBACzC,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,oBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;AACvE,iBAAA;gBACD,MAAM;AAER,YAAA;AACE,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,MAAM;AACT,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,GAAY,EAAA;QAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CACtD,sBAAsB,CACvB,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAE5E,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,YAAA,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACnD,YAAA,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAElD,YAAA,cAAc,EAAE,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC9C,YAAA,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAChD,YAAA,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAErD,YAAA,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACjD,YAAA,cAAc,EAAE,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,SAAA;KACF;AAEM,IAAA,cAAc,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,YAA+D,CAAC;QAEpE,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,uBAAuB,CAAC,YAAY;gBACvC,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACzD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,aAAa;gBACxC,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,oBAAA,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACrD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,WAAW;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACxD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,WAAW;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACxD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,YAAY;gBACvC,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,oBAAA,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AACpD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,oBAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;AACxD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,mBAAmB;gBAC9C,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,oBAAA,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC;AAC1D,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,SAAS;gBACpC,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACjD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,cAAc;gBACzC,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,oBAAA,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;AACtD,iBAAA;gBACD,MAAM;AAER,YAAA;gBACE,MAAM,MAAM,GAAG,OAAO,CAAC;gBACvB,MAAM,IAAI,GAAG,SAAS,CAAC;gBACvB,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,gBAAA,MAAM,IAAI,GAAG;oBACX,MAAM;oBACN,IAAI;oBACJ,UAAU;iBACX,CAAC;gBACF,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;AACT,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;KAClC;AAEM,IAAA,aAAa,CAClB,IAAuD,EAAA;QAEvD,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;KACF;AAEM,IAAA,cAAc,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,YAA+D,CAAC;QAEpE,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,uBAAuB,CAAC,YAAY;gBACvC,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,aAAa;gBACxC,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,WAAW;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,WAAW;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,YAAY;gBACvC,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBAC1B,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,mBAAmB;gBAC9C,IAAI,IAAI,CAAC,mBAAmB,EAAE;oBAC5B,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,SAAS;gBACpC,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;YAER,KAAK,uBAAuB,CAAC,cAAc;gBACzC,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,iBAAA;gBACD,MAAM;AAER,YAAA;gBACE,MAAM,MAAM,GAAG,OAAO,CAAC;gBACvB,MAAM,IAAI,GAAG,SAAS,CAAC;gBACvB,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,gBAAA,MAAM,IAAI,GAAG;oBACX,MAAM;oBACN,IAAI;oBACJ,UAAU;iBACX,CAAC;gBACF,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;AACT,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACvC;AAEM,IAAA,kBAAkB,CACvB,IAAuD,EAAA;QAEvD,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,YAA6C,EAAA;AAC7D,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GAtTU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,4uBACjB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGvB,sBAAsB,EAGtB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,+EAGrB,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGrB,sBAAsB,EAGtB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,0BAA0B,sFAG1B,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAG5B,mBAAmB,EAGnB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,gDCtGrC,21QAgPA,EAAA,MAAA,EAAA,CAAA,8q6KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDxLI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAEpB,gBAAA,sBAAsB,EACtB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,EACvB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,mGACrB,qBAAqB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,sBAAsB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,0BAA0B,EAC1B,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,4BAA4B,EAC5B,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,kJACnB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAExB,gBAAA,uBAAuB,EACvB,IAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,IAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,2BAA2B,kDAEjB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA5B7B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAGP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;;wBAEpB,sBAAsB;wBACtB,uBAAuB;wBACvB,qBAAqB;wBACrB,qBAAqB;wBACrB,sBAAsB;wBACtB,0BAA0B;wBAC1B,4BAA4B;wBAC5B,mBAAmB;wBACnB,wBAAwB;;wBAExB,uBAAuB;wBACvB,yBAAyB;wBACzB,2BAA2B;AAC5B,qBAAA,EAAA,UAAA,EACW,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,EACrD,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,21QAAA,EAAA,MAAA,EAAA,CAAA,8q6KAAA,CAAA,EAAA,CAAA;gGAI1C,cAAc,EAAA,CAAA;sBADb,SAAS;uBAAC,uBAAuB,CAAA;gBAIlC,aAAa,EAAA,CAAA;sBADZ,SAAS;uBAAC,sBAAsB,CAAA;gBAIjC,YAAY,EAAA,CAAA;sBADX,SAAS;uBAAC,qBAAqB,CAAA;gBAIhC,YAAY,EAAA,CAAA;sBADX,SAAS;uBAAC,qBAAqB,CAAA;gBAIhC,aAAa,EAAA,CAAA;sBADZ,SAAS;uBAAC,sBAAsB,CAAA;gBAIjC,iBAAiB,EAAA,CAAA;sBADhB,SAAS;uBAAC,0BAA0B,CAAA;gBAIrC,mBAAmB,EAAA,CAAA;sBADlB,SAAS;uBAAC,4BAA4B,CAAA;gBAIvC,UAAU,EAAA,CAAA;sBADT,SAAS;uBAAC,mBAAmB,CAAA;gBAI9B,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,wBAAwB,CAAA;gBAG1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAIG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MExGI,4BAA4B,CAAA;AAZzC,IAAA,WAAA,GAAA;QAaW,IAAO,CAAA,OAAA,GAAyB,IAAI,CAAC;QACrC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAmB,CAAA,mBAAA,GAAa,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,YAAY,GAAgC,IAAI,YAAY,CAEpE,SAAS,CAAC,CAAC;AAWd,KAAA;AATQ,IAAA,QAAQ,CAAC,MAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;AACvD,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;KACvC;IAEM,QAAQ,CAAC,KAAa,EAAE,IAAS,EAAA;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;+GAjBU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,kOCzBzC,o2BA2BA,EAAA,MAAA,EAAA,CAAA,uzDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDPI,YAAY,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGV,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAZxC,SAAS;+BACE,2BAA2B,EAAA,UAAA,EAGzB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;AACpB,qBAAA,EAAA,QAAA,EAAA,o2BAAA,EAAA,MAAA,EAAA,CAAA,uzDAAA,CAAA,EAAA,CAAA;8BAGQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ME9BI,oBAAoB,CAAA;aACxB,IAAS,CAAA,SAAA,GAAW,uCAAuC,CAAC,EAAA;aAC5D,IAAY,CAAA,YAAA,GAAW,0CAA0C,CAAC,EAAA;aAClE,IAAW,CAAA,WAAA,GAAW,yCAAyC,CAAC,EAAA;aAChE,IAAU,CAAA,UAAA,GAAW,wCAAwC,CAAC,EAAA;aAC9D,IAAU,CAAA,UAAA,GAAW,wCAAwC,CAAC,EAAA;aAC9D,IAAY,CAAA,YAAA,GAAW,0CAA0C,CAAC,EAAA;aAClE,IAAoB,CAAA,oBAAA,GAAW,iDAAiD,CAAC,EAAA;aACjF,IAAa,CAAA,aAAA,GAAW,qDAAqD,CAAC,EAAA;aAC9E,IAAgB,CAAA,gBAAA,GAAW,+CAA+C,CAAC,EAAA;aAC3E,IAAmB,CAAA,mBAAA,GAAW,mDAAmD,CAAC,EAAA;aAClF,IAAY,CAAA,YAAA,GAAW,mDAAmD,CAAC,EAAA;aAC3E,IAAW,CAAA,WAAA,GAAW,kDAAkD,CAAC,EAAA;aACzE,IAAW,CAAA,WAAA,GAAW,kDAAkD,CAAC,EAAA;aACzE,IAAW,CAAA,WAAA,GAAW,kDAAkD,CAAC,EAAA;aACzE,IAAqB,CAAA,qBAAA,GAAW,oDAAoD,CAAC,EAAA;aACrF,IAAQ,CAAA,QAAA,GAAW,sCAAsC,CAAC,EAAA;;;MCmBtD,sBAAsB,CAAA;AAdnC,IAAA,WAAA,GAAA;QAea,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAmC,IAAI,YAAY,EAAE,CAAC;QACpE,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAmB,oBAAoB,CAAC,gBAAgB,CAAC;AAkBvE,KAAA;IAhBU,YAAY,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KAC1C;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC/C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAClC;AAEM,IAAA,cAAc,CAAC,MAAwB,EAAA;AAC1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjC;AAEM,IAAA,UAAU,CAAC,YAA+C,EAAA;AAC7D,QAAA,OAAO,oBAAoB,CAAC,YAAY,CAAW,CAAC;KACvD;+GAvBQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAFpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,CAAC,0BCjCvC,0xSAsKe,EAAA,MAAA,EAAA,CAAA,4x/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AD5IP,gBAAA,YAAY,kIACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAQf,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAdlC,SAAS;+BACI,qBAAqB,EAAA,UAAA,EACnB,IAAI,EACP,OAAA,EAAA;;wBAEL,YAAY;wBACZ,oBAAoB;;wBAEpB,0BAA0B;qBAC7B,EAGU,SAAA,EAAA,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,0xSAAA,EAAA,MAAA,EAAA,CAAA,4x/KAAA,CAAA,EAAA,CAAA;8BAG1B,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AErCX,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB,CAAA;AACpB,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;AACvB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA;;MCHY,SAAS,CAAA;AACb,IAAA,SAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAmB,KAAI;AACtE,QAAA,MAAM,WAAW,GAAG,CAAA;;;;;;;;;;;sJAW8H,KAAK,CAAA;;;;;;;;gJAQX,KAAK,CAAA;;gHAErC,EAAE,CAAA;;mCAE/E,CAAC;QAChC,MAAM,GAAG,GACP,mCAAmC,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACxE,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAa,EAAE,EAAmB,KAAI;AACnE,QAAA,MAAM,WAAW,GAAG,CAAA;6CACqB,KAAK,CAAA;;oTAEkQ,KAAK,CAAA;;AAEjQ,sDAAA,EAAA,KAAK,yFAAyF,EAAE,CAAA;aAC3I,CAAC;QACV,MAAM,GAAG,GACP,mCAAmC,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACxE,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,CAAC,EAAA;IAEF,OAAO,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,WAAW,GAAG,CAAqM,kMAAA,EAAA,KAAK,+FAA+F,CAAC;QAC5T,MAAM,GAAG,GACP,mCAAmC,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACxE,QAAA,OAAO,GAAG,CAAC;KACZ;AAED,IAAA,OAAO,oBAAoB,CACzB,YAAoB,EACpB,IAAY,EAAA;QAEZ,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB,QAAA,MAAM,iBAAiB,GAAG,CAAC,OAAe,KAAI;YAC5C,IAAI,OAAO,GAAG,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;iBAC/D,IAAI,OAAO,GAAG,GAAG;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;iBACnE,IAAI,OAAO,GAAG,GAAG;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;iBACrE,IAAI,OAAO,GAAG,IAAI;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;YACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAClD,SAAC,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,CAAC,OAAe,KAAI;YAC3C,IAAI,OAAO,GAAG,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;iBAC/D,IAAI,OAAO,GAAG,GAAG;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;iBACrE,IAAI,OAAO,GAAG,GAAG;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;iBACrE,IAAI,OAAO,GAAG,IAAI;gBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;YACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAClD,SAAC,CAAC;AAEF,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,WAAW;gBACd,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE;gBAC/D,MAAM;AACR,YAAA,KAAK,UAAU;gBACb,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,EAAE;gBAC9D,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;QACD,OAAO;AACL,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;KACH;;;MCxFU,YAAY,CAAA;aAChB,IAAc,CAAA,cAAA,GAAW,iDAAiD,CAAC,EAAA;aAC3E,IAAK,CAAA,KAAA,GAAW,wCAAwC,CAAC,EAAA;;;MCoDrD,cAAc,CAAA;AACzB,IAAA,WAAA,CAAmB,EAAqB,EAAA;QAArB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AAE9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAA6B,CAAC;QAQ/D,IAAwB,CAAA,wBAAA,GAAkB,IAAI,CAAC;QAE/C,IAA+B,CAAA,+BAAA,GAAkB,IAAI,CAAC;QACtD,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAKzB,IAAgB,CAAA,gBAAA,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxD,IAAmB,CAAA,mBAAA,GAAqC,EAAE,CAAC;QAC3D,IAAY,CAAA,YAAA,GAGb,EAAE,CAAC;QACF,IAAkB,CAAA,kBAAA,GAGnB,EAAE,CAAC;KA3BmC;IA6B5C,QAAQ,GAAA;QACN,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,gCAAgC,EAAE,CAAC;;QAExC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;;QAE3B,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC;AACnE,SAAA;KACF;IAEM,yBAAyB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAmB,EAAE,KAAa,KAAI;AACjE,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG;AAC/B,gBAAA,GAAG,EAAE,MAAM,CAAC,IAAK,CAAC,GAAG;AACrB,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAK,CAAC,WAAW;aACtC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAEM,gCAAgC,GAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,MAAmB,EAAE,KAAa,KAAI;AACvE,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;AACzB,gBAAA,GAAG,EAAE,MAAM,CAAC,IAAK,CAAC,GAAG;AACrB,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAK,CAAC,WAAW;aACtC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,aAAa,CAClB,CAAS,EACT,KAAgC,EAChC,UAAuB,EAAA;QAEvB,IAAI,UAAU,EAAE,iBAAiB,EAAE;YACjC,IAAI,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACnE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;;AAErD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,KAAa,KAAI;oBAC1D,IAAI,KAAK,KAAK,CAAC,EAAE;wBACf,IAAI,CAAC,IAAI,GAAG;4BACV,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,GAAG;4BACxC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,WAAY;yBAC1D,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,UAAU,CAAC,KAAK,EAAE,CAAC;AACnB,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACtC,aAAA;AAAM,iBAAA;gBACL,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAClC,iBAAA;AACD,gBAAA,IAAI,UAAU,EAAE;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,KAAa,KAAI;wBAC1D,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,4BAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,4BAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,IAAI,GAAG;gCACV,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,GAAG;gCACxC,UAAU,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;6BACzC,CAAC;AACH,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,IAAI,GAAG;gCACV,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,GAAG;gCACxC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,WAAW;6BACzD,CAAC;AACH,yBAAA;AACH,qBAAC,CAAC,CAAC;AAEH,oBAAA,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7B,oBAAA,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC;AACtC,oBAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;AAClC,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,OAAO;AACR,SAAA;KACF;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE;YACxB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,KACxC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAU,CAAC,CACvC,CAAC;AACH,SAAA;KACF;IAEM,wBAAwB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;;AAExB,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAE9B,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC,KAAoB,KAAI;AACrD,gBAAA,MAAM,OAAO,GAAkC;AAC7C,oBAAA,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,oBAAA,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC9C,SAAS,EAAE,KAAK,CAAC,IAAI;yBAClB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,yBAAA,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9C,oBAAA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;iBAC7C,CAAC;AAEF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAI;AACtD,oBAAA,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;wBACnE,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC5D,4BAAA,mBAAmB,EAAE,IAAI;AACzB,4BAAA,eAAe,EAAE,IAAI;AACrB,4BAAA,gBAAgB,EAAE,IAAI;AACtB,4BAAA,eAAe,EAAE;AACf,gCAAA,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,YAAY;AAC5D,gCAAA,aAAa,EACX,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,cAAc;AACtD,6BAAA;AACF,yBAAA,CAAC,CAAC;AACH,wBAAA,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzC,wBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;wBAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,OAAO;AACR,SAAA;KACF;AAEM,IAAA,oBAAoB,CACzB,CAAS,EACT,KAAgC,EAChC,UAAuB,EAAA;QAEvB,IAAI,UAAU,EAAE,iBAAiB,EAAE;AACjC,YAAA,IACE,IAAI,CAAC,+BAA+B,KAAK,CAAC;gBAC1C,IAAI,CAAC,0BAA0B,EAC/B;gBACA,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;;AAE5D,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAe,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,KAAa,KAAI;oBACjE,IAAI,KAAK,KAAK,CAAC,EAAE;wBACf,IAAI,CAAC,IAAI,GAAG;4BACV,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC,GAAG;4BAClC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC,WAAW;yBACnD,CAAC;AACH,qBAAA;AACH,iBAAC,CAAC,CAAC;gBAEH,UAAU,CAAC,KAAK,EAAE,CAAC;AACnB,gBAAA,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;AAC7C,aAAA;AAAM,iBAAA;gBACL,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,oBAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;AACzC,iBAAA;AACD,gBAAA,IAAI,UAAU,EAAE;;AAEd,oBAAA,IACE,IAAI,CAAC,kBAAkB,KAAK,SAAS;AACrC,wBAAA,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAC7B;AACA,wBAAA,MAAM,mBAAmB,GACvB,IAAI,CAAC,IAAI,CAAC,cAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACrD,wBAAA,IAAI,mBAAmB,EAAE;4BACvB,mBAAmB,CAAC,IAAI,GAAG;gCACzB,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG;gCACnD,WAAW,EACT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW;6BACzD,CAAC;AACH,yBAAA;AACF,qBAAA;;AAGD,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAe,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,KAAa,KAAI;wBACjE,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,4BAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AAC7D,4BAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC5B,4BAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,IAAI,GAAG;gCACV,GAAG,EACD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa;AAClD,sCAAE,IAAI,CAAC,IAAK,CAAC,GAAG;sCACd,YAAY,CAAC,cAAc;6BAClC,CAAC;AACH,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,yBAAA;AACH,qBAAC,CAAC,CAAC;AAEH,oBAAA,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7B,oBAAA,IAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC;AAC7C,oBAAA,IAAI,CAAC,+BAA+B,GAAG,CAAC,CAAC;AACzC,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,OAAO;AACR,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,MAAK;YAC7C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAqB,KAAI;gBACrD,MAAM,CAAC,KAAK,EAAE,CAAC;AACf,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAClC,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,MAAqB,KAAI;gBAC5D,MAAM,CAAC,KAAK,EAAE,CAAC;AACf,gBAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACzC,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAiB,EAAE,CAAS,KAAI;AACtD,gBAAA,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE;oBAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AACpD,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACzB,iBAAA;AACH,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAiB,EAAE,CAAS,KAAI;AAC7D,gBAAA,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,EAAE;oBACjC,IAAI,CAAC,IAAI,GAAG;wBACV,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;qBAC9B,CAAC;AACF,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACzB,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAmB,EAAE,KAAa,KAAI;YAChE,MAAM,CAAC,IAAI,GAAG;gBACZ,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG;gBACvC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,WAAW;aACxD,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KACzB;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,MAAmB,EAAE,KAAa,KAAI;YACvE,MAAM,CAAC,IAAI,GAAG;AACZ,gBAAA,GAAG,EAAE,MAAM,CAAC,IAAK,CAAC,GAAG;AACrB,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAK,CAAC,WAAW;aACtC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAEM,UAAU,GAAA;AAMf,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAE1D,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAI;gBAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACpD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAC/D,YAAsB,EACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CACrB,CAAC;gBACF,OAAO;AACL,oBAAA,SAAS,EAAE,SAAS;AACpB,oBAAA,WAAW,EAAE,SAAS;AACtB,oBAAA,YAAY,EAAE,GAAG;AACjB,oBAAA,WAAW,EAAE,WAAW;iBACzB,CAAC;AACJ,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;YACL,OAAO;AACR,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC;KACd;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KACvE;+GAjUU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,+KAId,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAEN,aAAa,EAEb,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,aAAa,qEC9D7B,0oDAoDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDLI,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAEpB,sBAAsB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGb,cAAc,EAAA,UAAA,EAAA,CAAA;kBAd1B,SAAS;+BACE,YAAY,EAAA,UAAA,EAGV,IAAI,EACP,OAAA,EAAA;;wBAEP,gBAAgB;wBAChB,YAAY;wBACZ,oBAAoB;;wBAEpB,sBAAsB;AACvB,qBAAA,EAAA,QAAA,EAAA,0oDAAA,EAAA,CAAA;wGAIQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACkC,IAAI,EAAA,CAAA;sBAA5C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACf,MAAM,EAAA,CAAA;sBAA7B,YAAY;uBAAC,QAAQ,CAAA;gBACO,eAAe,EAAA,CAAA;sBAA3C,YAAY;uBAAC,aAAa,CAAA;gBACI,aAAa,EAAA,CAAA;sBAA3C,YAAY;uBAAC,eAAe,CAAA;gBAEtB,sBAAsB,EAAA,CAAA;sBAD5B,YAAY;uBAAC,aAAa,CAAA;;;ME1DhB,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAE/C,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KACnE;+GALU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;;;MCS/B,oBAAoB,CAAA;IAG/B,WACU,CAAA,EAAc,EACd,QAAmB,EAAA;QADnB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAJpB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;KAK9B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEsB,OAAO,GAAA;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEsB,OAAO,GAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC9B;AAEoC,IAAA,SAAS,CAAC,KAAoB,EAAA;AACjE,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC9B;IAEO,iBAAiB,CAAC,QAAiB,KAAK,EAAA;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrD,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE;YACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrD,SAAA;KACF;+GArCU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;yHAEU,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAWiB,OAAO,EAAA,CAAA;sBAA7B,YAAY;uBAAC,OAAO,CAAA;gBAIE,OAAO,EAAA,CAAA;sBAA7B,YAAY;uBAAC,OAAO,CAAA;gBAIgB,SAAS,EAAA,CAAA;sBAA7C,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MChCxB,eAAe,CAAA;IAC1B,OAAO,OAAO,CAAC,KAAqB,EAAA;QAClC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;KACvD;AACF;;MCJY,mBAAmB,CAAA;AACrB,IAAA,SAAA,IAAA,CAAA,cAAc,GAAiB;AAClC,QAAA;AACI,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,IAAI,EAAE,MAAM;AACf,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,IAAI,EAAE,MAAM;AACf,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,IAAI,EAAE,OAAO;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,IAAI,EAAE,KAAK;AACd,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACjB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,IAAI,EAAE,QAAQ;AACjB,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,eAAe,GAAiB;AACnC,QAAA;AACI,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,IAAI,EAAE,OAAO;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,IAAI,EAAE,MAAM;AACf,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,IAAI,EAAE,OAAO;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,kBAAkB;AACzB,YAAA,IAAI,EAAE,KAAK;AACd,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACjB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACjB,SAAA;KACJ,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,iBAAiB,GAAsB;AAC1C,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,SAAS,EAAE,KAAK;KACnB,CAAC,EAAA;;;AC/DN,IAAY,2BAGX,CAAA;AAHD,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,oBAA+B,CAAA;AAC/B,IAAA,2BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,GAGtC,EAAA,CAAA,CAAA;;ACHD,IAAY,qBAQX,CAAA;AARD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,WAAyB,CAAA;AACzB,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,cAA0B,CAAA;AAC1B,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EARW,qBAAqB,KAArB,qBAAqB,GAQhC,EAAA,CAAA,CAAA;;MCRY,sBAAsB,CAAA;aAC1B,IAAS,CAAA,SAAA,GAAW,wCAAwC,CAAC,EAAA;aAC7D,IAAY,CAAA,YAAA,GAAW,2CAA2C,CAAC,EAAA;aACnE,IAAU,CAAA,UAAA,GAAW,gDAAgD,CAAC,EAAA;aACtE,IAAc,CAAA,cAAA,GAAW,6CAA6C,CAAC,EAAA;aACvE,IAAU,CAAA,UAAA,GAAW,wCAAwC,CAAC,EAAA;aAC9D,IAAU,CAAA,UAAA,GAAW,yCAAyC,CAAC,EAAA;;;MC6C3D,wBAAwB,CAAA;AAiCnC,IAAA,WAAA,GAAA;QA5BS,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAI9B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAE,CAAC;;AAG9C,QAAA,IAAA,CAAA,mBAAmB,GAAW,2BAA2B,CAAC,QAAQ,CAAC;AACnE,QAAA,IAAA,CAAA,aAAa,GAA4B;YAC9C,GAAG,mBAAmB,CAAC,iBAAiB;SACzC,CAAC;QAMM,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;;QAG5B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QAEpC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;AAEtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAEvB;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,qBAAqB,GAAA;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AAC9B,YAAA,IAAI,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AACnE,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;YACD,OAAO,CAAC,CAAC,CAAC;AACZ,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,aAAa,CAAC,MAAc,EAAE,KAAc,EAAE,IAAa,EAAA;AAChE,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAClC,QAAA,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE5E,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,MAAM,KAAK,qBAAqB,CAAC,WAAW,EAAE;AAChD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE;AACvC,oBAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;AAExC,gBAAA,QAAQ,CAAC,WAAW,CAClB,qBAAqB,CAAC,SAAS,EAC/B,KAAK,EACL,qBAAqB,CAAC,KAAK,CAC5B,CAAC;AACF,gBAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,gBAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;gBAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAE9D,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,oBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,IAAI,MAAM,CAAC;oBAC3C,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxE,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IACM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC1B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAC9B,EAAE,GAAG,CAAC,CAAC;;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAClC;AAEM,IAAA,aAAa,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;IAEO,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,IAAI;AACtC,kBAAE,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC;AACzC,kBAAE,CAAC,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAE/C,IAAI,CAAC,iBAAiB,GAAG;YACvB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;YAClC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK;SACrC,CAAC;KACH;;AAGM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,UAAU,CAAC,YAAiD,EAAA;AACjE,QAAA,OAAO,sBAAsB,CAAC,YAAY,CAAW,CAAC;KACvD;IAEM,YAAY,GAAA;QACjB,IAAI,IAAI,CAAC,cAAc;AAAE,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;;YAChD,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,WAAW,CAAE,CAAC,KAAK,EAAE,CAAC;KAC1E;IAEM,gBAAgB,GAAA;AACrB,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AACpC,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAE1D,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AACjC,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC3C,CAAC,IAAI,KACH,IAAI,CAAC,KAAK;oBACV,QAAQ,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAC/D,CAAC;gBACF,IAAI,CAAC,iBAAiB,GAAG,WAAW;AAClC,sBAAE,WAAW;AACb,sBAAE;wBACE,KAAK,EAAE,2BAA2B,CAAC,QAAQ;wBAC3C,IAAI,EAAE,2BAA2B,CAAC,IAAI;qBACvC,CAAC;aACP,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,iBAAiB,CACnD,qBAAqB,CAAC,UAAU,CACjC,CAAC;AACH,SAAA;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AACrC,gBAAA,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,EAAE;oBAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAEpD,oBAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;wBAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,qBAAA;AACD,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,UAAU,CAAC,MAAK;wBACd,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,UAAU,CAAC,MAAK;4BACd,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,4BAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,yBAAC,CAAC,CAAC;AACL,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GA/KU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,gYCnDrC,0iKAoIA,EAAA,MAAA,EAAA,CAAA,0r/KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBD1FI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,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,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGT,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAEb,CAAC,eAAe,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAElB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAhBpC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EAGrB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;wBACpB,SAAS;;wBAGT,uBAAuB;qBACxB,EACW,UAAA,EAAA,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,0iKAAA,EAAA,MAAA,EAAA,CAAA,0r/KAAA,CAAA,EAAA,CAAA;0EAGpB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;MExCI,kBAAkB,CAAA;AAO7B,IAAA,WAAA,GAAA;QAJS,IAAY,CAAA,YAAA,GAAa,KAAK,CAAC;KAIxB;AAEhB,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAChC;AAEM,IAAA,gBAAgB,CAAC,OAAsB,EAAA;AAC5C,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE;YACpE,IAAI,CAAC,aAAa,GAAG;AACnB,gBAAA,IAAI,EAAE,CACJ,yBAAA,EAAA,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,MAAM,GAAG,MACnC,IAAI,IAAI,CAAC,KAAK,CAAO,KAAA,CAAA;aACtB,CAAC;AACH,SAAA;KACF;+GArBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,uKCtB/B,wbAeA,EAAA,MAAA,EAAA,CAAA,u02KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADGI,gBAAA,YAAY,uNACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,mBAGT,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,u02KAAA,CAAA,EAAA,CAAA;0EAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MEzBK,aAAa,CAAA;aACjB,IAAU,CAAA,UAAA,GAAW,0CAA0C,CAAC,EAAA;aAChE,IAAS,CAAA,SAAA,GAAW,8CAA8C,CAAC,EAAA;aACnE,IAAe,CAAA,eAAA,GAAW,+CAA+C,CAAC,EAAA;;;MCgEtE,eAAe,CAAA;IAQ1B,IAAa,SAAS,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IACD,IAAa,SAAS,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;KACF;IAsCD,WACU,CAAA,GAAsB,EACtB,KAAiB,EAAA;QADjB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AAxDjB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC,CAAC;QAG3B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAe9B,IAAW,CAAA,WAAA,GAAG,oBAAoB,CAAC;QAEnC,IAAU,CAAA,UAAA,GAAW,GAAG,CAAC;QACzB,IAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAG3B,QAAA,IAAA,CAAA,QAAQ,GACb,IAAI,CAAC,KAAK,KAAK,EAAE,GAAG,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;QAIvE,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QAExB,IAAmB,CAAA,mBAAA,GAAW,SAAS,CAAC;;QAIxC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAKnB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC1B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;;QAGrC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAEvB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAKnC;IACJ,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;KACzB;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;QAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB,EAAE,GAAG,CAAC,CAAC;KACT;IAEM,UAAU,CAAC,IAAY,EAAE,EAAc,EAAA;AAC5C,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC,EAAE,GAAG,CAAC,CAAC;AAER,QAAA,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAAM,iBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC3B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,UAAU,CAAC,MAAK;oBACd,EAAE,CAAC,IAAI,EAAE,CAAC;iBACX,EAAE,CAAC,CAAC,CAAC;AACP,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACxB,EAAE,CAAC,KAAK,EAAE,CAAC;AACZ,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACjC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;AACzC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B,EAAE,CAAC,CAAC,CAAC;YACN,EAAE,CAAC,IAAI,EAAE,CAAC;AACX,SAAA;KACF;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAG,CAAC;QAC7C,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;YACpE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAS,EAAA;QAC/B,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,EAAE,CAAC,cAAc,EAAE,CAAC;KACrB;IAEM,WAAW,CAAC,KAAqB,EAAE,SAAmB,EAAA;AAC3D,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,MAAM,GAAI,KAAe,CAAC,MAAqB,CAAC;AACtD,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;IAEM,QAAQ,CAAC,QAAkB,EAAE,SAAmB,EAAA;QACrD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,aAAA;SACF,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACjC;AAEO,IAAA,SAAS,CAAC,YAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC5C;IACM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;AAEM,IAAA,OAAO,CAAC,KAAqB,EAAA;AAClC,QAAA,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAChC;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;AAEjE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,aAAA,CAAC,CAAC;KACN;AAEO,IAAA,cAAc,CAAC,IAAY,EAAA;AACjC,QAAA,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9C,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,YAAwC,EAAA;AACxD,QAAA,OAAO,aAAa,CAAC,YAAY,CAAW,CAAC;KAC9C;IAEO,gBAAgB,GAAA;QACtB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE;AAC9D,YAAA,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACxC,SAAA;KACF;IAEO,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;AACzC,qBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;AACzB,qBAAA,qBAAqB,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU;AACjC,sBAAE,WAAW,CAAC,KAAK,GAAG,CAAC;AACvB,sBAAE,WAAW,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;aAC1B,EAAE,IAAI,CAAC,CAAC;AACV,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;+GAhOU,eAAe,EAAA,IAAA,EAAA,CAAA,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,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,wlBCnE5B,wxJAoJA,EAAA,MAAA,EAAA,CAAA,gmkLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDlGI,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,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,UAAA,EAAA,IAAA,EACZ,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACT,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGpB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGlB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAGpB,gBAAA,YAAY,EAEF,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAErC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAzB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,iBAGR,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,SAAS;wBACT,oBAAoB;;wBAGpB,wBAAwB;wBACxB,uBAAuB;wBACvB,kBAAkB;;wBAGlB,oBAAoB;;wBAGpB,YAAY;AACb,qBAAA,EAAA,UAAA,EACW,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,wxJAAA,EAAA,MAAA,EAAA,CAAA,gmkLAAA,CAAA,EAAA,CAAA;iIAGtC,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEE,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAGO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAO2B,WAAW,EAAA,CAAA;sBAA3C,SAAS;uBAAC,aAAa,CAAA;gBACU,YAAY,EAAA,CAAA;sBAA7C,SAAS;uBAAC,cAAc,CAAA;gBACU,aAAa,EAAA,CAAA;sBAA/C,SAAS;uBAAC,eAAe,CAAA;;;AEhFrB,MAAM,kBAAkB,GAAG,CAAC,IAAY,KAC3C,OAAO,CAAC,IAAI,EAAE;AACV,IAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE,GAAG;AACZ,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,eAAe,EAAE,kBAAkB;AACtC,KAAA,CAAC,EACF;AACI,QAAA,MAAM,EAAE;AACJ,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,YAAY,EAAE,kBAAkB;AACnC,SAAA;KACJ,CACJ;AACD,IAAA,KAAK,CACD,OAAO,EACP,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE,GAAG;AACZ,QAAA,YAAY,EAAE,KAAK;AACtB,KAAA,CAAC,CACL;AACD,IAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,QAAA,MAAM,EAAE,GAAG;AACd,KAAA,CAAC,CACL;IACD,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1D,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7D,CAAA,CAAC;;MCxCO,SAAS,CAAA;aACX,IAAS,CAAA,SAAA,GAAG,wDAAwD,CAAC,EAAA;aACrE,IAAO,CAAA,OAAA,GAAG,sDAAsD,CAAC,EAAA;;;MCgC/D,qCAAqC,CAAA;AAY9C,IAAA,WAAA,GAAA;QAVO,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC,CAAC;AAElB,QAAA,IAAA,CAAA,MAAM,GAAuB,IAAI,YAAY,EAAQ,CAAC;AACvD,QAAA,IAAA,CAAA,qBAAqB,GAAG;AAC7B,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,YAAY,EAAE,MAAM;SACvB,CAAC;KACc;AAET,IAAA,UAAU,CAAC,YAAoC,EAAA;AAClD,QAAA,OAAO,SAAS,CAAC,YAAY,CAAW,CAAC;KAC5C;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACtB;+GArBQ,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,mPClClD,i3GAqGA,EAAA,MAAA,EAAA,CAAA,276KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBDzEQ,YAAY,EAAA,EAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAEZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAG3C,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAbjD,SAAS;+BACI,sCAAsC,EAAA,UAAA,EAGpC,IAAI,EACP,OAAA,EAAA;;wBAEL,YAAY;wBACZ,oBAAoB;qBACvB,EACW,UAAA,EAAA,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,EAAA,aAAA,EACrC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,i3GAAA,EAAA,MAAA,EAAA,CAAA,276KAAA,CAAA,EAAA,CAAA;0EAG5B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACE,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;;;ME1BG,0CAA0C,CAAA;IAI9C,QAAQ,CAAC,KAAa,EAAE,IAAgC,EAAA;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;AAEM,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;KAC1D;+GAVU,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0CAA0C,EChBvD,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+YAcA,EDFY,MAAA,EAAA,CAAA,uZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,4JAAE,qCAAqC,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,OAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIlD,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4CAA4C,cAC1C,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,qCAAqC,CAAC,EAAA,QAAA,EAAA,+YAAA,EAAA,MAAA,EAAA,CAAA,uZAAA,CAAA,EAAA,CAAA;8BAKrD,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;AEjBR,IAAY,cAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA;;MCJY,uBAAuB,CAAA;aAC3B,IAAS,CAAA,SAAA,GAAW,wDAAwD,CAAC,EAAA;aAC7E,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;aACvF,IAAU,CAAA,UAAA,GAAW,yDAAyD,CAAC,EAAA;aAC/E,IAAS,CAAA,SAAA,GAAW,wDAAwD,CAAC,EAAA;aAC7E,IAAS,CAAA,SAAA,GAAW,wDAAwD,CAAC,EAAA;aAC7E,IAAQ,CAAA,QAAA,GAAW,uDAAuD,CAAC,EAAA;aAC3E,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;aACvF,IAAM,CAAA,MAAA,GAAW,qDAAqD,CAAC,EAAA;aACvE,IAAQ,CAAA,QAAA,GAAW,uDAAuD,CAAC,EAAA;aAC3E,IAAO,CAAA,OAAA,GAAW,sDAAsD,CAAC,EAAA;aACzE,IAAK,CAAA,KAAA,GAAW,qDAAqD,CAAC,EAAA;aACtE,IAAe,CAAA,eAAA,GAAW,8DAA8D,CAAC,EAAA;aACzF,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;;;MCbnF,2BAA2B,CAAA;aAC/B,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;aACvF,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;;;MCFnF,4BAA4B,CAAA;AACvB,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG;AAC9B,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,MAAM,EAAE;AACvE,QAAA,EAAE,IAAI,EAAE,4CAA4C,EAAE,IAAI,EAAE,cAAc,EAAE;AAC5E,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,OAAO,EAAE;AACxE,QAAA,EAAE,IAAI,EAAE,6CAA6C,EAAE,IAAI,EAAE,OAAO,EAAE;AACtE,QAAA,EAAE,IAAI,EAAE,2CAA2C,EAAE,IAAI,EAAE,QAAQ,EAAE;KACtE,CAAC,EAAA;AAEc,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG;AAC9B,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,MAAM,EAAE;AACvE,QAAA,EAAE,IAAI,EAAE,4CAA4C,EAAE,IAAI,EAAE,cAAc,EAAE;AAC5E,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,OAAO,EAAE;AACxE,QAAA,EAAE,IAAI,EAAE,6CAA6C,EAAE,IAAI,EAAE,OAAO,EAAE;AACtE,QAAA,EAAE,IAAI,EAAE,2CAA2C,EAAE,IAAI,EAAE,QAAQ,EAAE;KACtE,CAAC,EAAA;AAEc,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG;AAC/B,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,MAAM,EAAE;AACvE,QAAA,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,UAAU,EAAE;AACtE,QAAA,EAAE,IAAI,EAAE,4CAA4C,EAAE,IAAI,EAAE,cAAc,EAAE;AAC5E,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,OAAO,EAAE;AACxE,QAAA,EAAE,IAAI,EAAE,6CAA6C,EAAE,IAAI,EAAE,OAAO,EAAE;AACtE,QAAA,EAAE,IAAI,EAAE,qDAAqD,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChF,CAAC,EAAA;;;MClBS,kBAAkB,CAAA;AAC7B,IAAA,SAAS,CAAC,QAAgB,EAAA;AACxB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,QACE,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,EACpE;AACH,SAAA;AAAM,aAAA;YACL,OAAO,GAAG,GAAG,CAAC,CAAC;AAChB,SAAA;KACF;+GATU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCGY,kBAAkB,CAAA;IAC7B,SAAS,CAAC,IAA+B,EAAE,QAAiB,EAAA;AAC1D,QAAA,QAAQ,QAAQ;YACd,KAAK,cAAc,EAAE;gBACnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,aAAA;YACD,KAAK,cAAc,EAAE;gBACnB,OAAO,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC,MAAM,CACtD,yBAAyB,CAC1B,CAAC;AACH,aAAA;YACD,KAAK,iBAAiB,EAAE;AACtB,gBAAA,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;AACjB,gBAAA,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7B,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,oBAAA,OAAO,OAAO,CAAC;AAChB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAC/C,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,WAAW;gBACd,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACjD,YAAA,SAAS;gBACP,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;KACF;+GA3BU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;ACPD;MA0Ca,mBAAmB,CAAA;AAa9B,IAAA,WAAA,CAAmB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;;AARlD,QAAA,IAAA,CAAA,YAAY,GAAW,2BAA2B,CAAC,cAAc,CAAC;AAClE,QAAA,IAAA,CAAA,aAAa,GAAW,2BAA2B,CAAC,cAAc,CAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAAW,IAAI,CAAC,YAAY,CAAC;;QAGxC,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;KAGmB;IAE7D,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,kBAAkB,GAAA;QACxB,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,cAAc,CAAC,MAAM;AACxB,gBAAA,IAAI,CAAC,eAAe,GAAG,4BAA4B,CAAC,aAAa,CAAC;gBAClE,MAAM;YACR,KAAK,cAAc,CAAC,MAAM;AACxB,gBAAA,IAAI,CAAC,eAAe,GAAG,4BAA4B,CAAC,aAAa,CAAC;gBAClE,MAAM;YACR,KAAK,cAAc,CAAC,OAAO;AACzB,gBAAA,IAAI,CAAC,eAAe,GAAG,4BAA4B,CAAC,cAAc,CAAC;gBACnE,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,MAAM;AACT,SAAA;KACF;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB;cACrC,IAAI,CAAC,aAAa;AACpB,cAAE,IAAI,CAAC,YAAY,CAAC;KACvB;AAEM,IAAA,UAAU,CACf,YAAkD,EAAA;AAElD,QAAA,OAAO,uBAAuB,CAAC,YAAY,CAAW,CAAC;KACxD;+GA/CU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAZnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;;YAET,kBAAkB;SACnB,ECjCH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6kJAuIA,EDpGI,MAAA,EAAA,CAAA,0y5KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,oBAAoB,EACpB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,+BAChB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACZ,kBAAkB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGT,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAjB/B,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAGlB,IAAI,EACL,SAAA,EAAA;;wBAET,kBAAkB;qBACnB,EACQ,OAAA,EAAA;wBACP,oBAAoB;wBACpB,gBAAgB;wBAChB,mBAAmB;wBACnB,YAAY;wBACZ,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,6kJAAA,EAAA,MAAA,EAAA,CAAA,0y5KAAA,CAAA,EAAA,CAAA;sGAGQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEIK,iBAAiB,CAAA;AAiB5B,IAAA,WAAA,CAAmB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAdhD,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAC/B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW,CAAC;;AAKlD,QAAA,IAAA,CAAA,YAAY,GAAW,2BAA2B,CAAC,cAAc,CAAC;AAClE,QAAA,IAAA,CAAA,aAAa,GAAW,2BAA2B,CAAC,cAAc,CAAC;QAIlE,IAAc,CAAA,cAAA,GAA+B,EAAE,CAAC;QAChD,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC,CAAC;KAEuB;IAE7D,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,kBAAkB,GAAA;QACxB,QAAQ,IAAI,CAAC,UAAU;YACrB,KAAK,cAAc,CAAC,MAAM;AACxB,gBAAA,IAAI,CAAC,eAAe,GAAG,4BAA4B,CAAC,aAAa,CAAC;gBAClE,MAAM;YACR,KAAK,cAAc,CAAC,OAAO;AACzB,gBAAA,IAAI,CAAC,eAAe,GAAG,4BAA4B,CAAC,cAAc,CAAC;gBACnE,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,MAAM;AACT,SAAA;KACF;AAEM,IAAA,SAAS,CAAC,IAAuB,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;KAClC;AAEM,IAAA,kBAAkB,CAAC,UAAkB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;AACpD,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;KAC3E;AAEM,IAAA,iBAAiB,CAAC,UAAkB,EAAA;QACzC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;KAC1C;AAEM,IAAA,eAAe,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,UAAU,CACf,YAAkD,EAAA;AAElD,QAAA,OAAO,uBAAuB,CAAC,YAAY,CAAW,CAAC;KACxD;+GAhEU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAnBjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;;YAET,kBAAkB;AACnB,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCH,6rHA6FA,EAAA,MAAA,EAAA,CAAA,wk4KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBD1DI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,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,UAAA,EAAA,IAAA;;gBAGZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAGpB,gBAAA,mBAAmB,gIACnB,mBAAmB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;gBAGnB,kBAAkB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGT,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAxB7B,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAGhB,IAAI,EACL,SAAA,EAAA;;wBAET,kBAAkB;qBACnB,EACQ,OAAA,EAAA;;wBAEP,YAAY;;wBAGZ,oBAAoB;;wBAGpB,mBAAmB;wBACnB,mBAAmB;;wBAGnB,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,6rHAAA,EAAA,MAAA,EAAA,CAAA,wk4KAAA,CAAA,EAAA,CAAA;sGAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MElDI,iBAAiB,CAAA;AACnB,IAAA,SAAA,IAAA,CAAA,gBAAgB,GAAoB;QACvC,KAAK,EAAE,cAAc,CAAC,MAAM;AAC5B,QAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAC5B,CAAC,EAAA;;;ACIC,MAAM,kBAAkB,GAAG,CAAC,IAAY,KAC7C,OAAO,CAAC,IAAI,EAAE;AACZ,IAAA,UAAU,CAAC,wDAAwD,EAAE,IAAI,EAAE;AACzE,QAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAC1B,CAAC;AACF,IAAA,UAAU,CACR,wDAAwD,EACxD,KAAK,EACL;AACE,QAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAC1B,CACF;AACF,CAAA,CAAC,CAAC;AAEL,MAAM,IAAI,GAAG;AACX,IAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;AAC9D,QAAA,QAAQ,EAAE,IAAI;KACf,CAAC;AACF,IAAA,KAAK,CAAC;QACJ,KAAK,CACH,QAAQ,EACR;AACE,YAAA,KAAK,CAAC;AACJ,gBAAA,SAAS,EAAE,iBAAiB;AAC5B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,YAAY;aACrB,CAAC;AACF,YAAA,OAAO,CACL,KAAK,EACL,SAAS,CAAC;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,SAAS,EAAE,gBAAgB;AAC3B,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,MAAM,EAAE,GAAG;iBACZ,CAAC;AACH,aAAA,CAAC,CACH;SACF,EACD;AACE,YAAA,QAAQ,EAAE,IAAI;SACf,CACF;QACD,KAAK,CACH,QAAQ,EACR;AACE,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAC;aACX,CAAC;AACF,YAAA,OAAO,CACL,KAAK,EACL,KAAK,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,GAAG;AACZ,aAAA,CAAC,CACH;SACF,EACD;AACE,YAAA,QAAQ,EAAE,IAAI;SACf,CACF;KACF,CAAC;CACH,CAAC;AAEF,MAAM,KAAK,GAAG;AACZ,IAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;AAC9D,QAAA,QAAQ,EAAE,IAAI;KACf,CAAC;AACF,IAAA,KAAK,CAAC;QACJ,KAAK,CACH,QAAQ,EACR;AACE,YAAA,KAAK,CAAC;AACJ,gBAAA,SAAS,EAAE,gBAAgB;AAC3B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,YAAY;aACrB,CAAC;AACF,YAAA,OAAO,CACL,KAAK,EACL,SAAS,CAAC;AACR,gBAAA,KAAK,CAAC;AACJ,oBAAA,SAAS,EAAE,gBAAgB;AAC3B,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,MAAM,EAAE,GAAG;iBACZ,CAAC;AACH,aAAA,CAAC,CACH;SACF,EACD;AACE,YAAA,QAAQ,EAAE,IAAI;SACf,CACF;QACD,KAAK,CACH,QAAQ,EACR;AACE,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAC;aACX,CAAC;AACF,YAAA,OAAO,CACL,KAAK,EACL,KAAK,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,GAAG;AACZ,aAAA,CAAC,CACH;SACF,EACD;AACE,YAAA,QAAQ,EAAE,IAAI;SACf,CACF;KACF,CAAC;CACH;;MCxHY,yBAAyB,CAAA;aAC7B,IAAc,CAAA,cAAA,GAAW,wDAAwD,CAAC,EAAA;aAClF,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;;;MC8CnF,aAAa,CAAA;AArB1B,IAAA,WAAA,GAAA;;AA0BS,QAAA,IAAA,CAAA,IAAI,GAAqB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAIvD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;;QAGhC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;;QAMrC,IAAK,CAAA,KAAA,GAAY,IAAI,CAAC;;AAGrB,QAAA,IAAA,CAAA,WAAW,GAAW,yBAAyB,CAAC,cAAc,CAAC;AAC/D,QAAA,IAAA,CAAA,SAAS,GAAW,yBAAyB,CAAC,cAAc,CAAC;AAC9D,QAAA,IAAA,CAAA,WAAW,GAAW,IAAI,CAAC,WAAW,CAAC;AA2C/C,KAAA;IAzCC,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAC/B,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CACnD,CAAC;KACH;IAEO,mBAAmB,GAAA;QACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,EAAE,CAAC;KACnC;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;KACnC;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;KACrC;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACtD;AAEM,IAAA,aAAa,CAAC,MAAsB,EAAA;QACzC,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG;AACrB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE;SACpE,CAAC;KACH;+GAnEU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAfb,CAAC,oBAAoB,CAAC,0BCjCnC,mvKAsJA,EAAA,MAAA,EAAA,CAAA,+33KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnHI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBAGhB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGhB,mBAAmB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,iBAAiB,EAbP,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAgB3C,aAAa,EAAA,UAAA,EAAA,CAAA;kBArBzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGX,UAAA,EAAA,IAAI,EACJ,UAAA,EAAA,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,EAAA,SAAA,EAC3C,CAAC,oBAAoB,CAAC,EACxB,OAAA,EAAA;wBACP,YAAY;wBACZ,gBAAgB;;wBAGhB,YAAY;wBACZ,oBAAoB;wBACpB,gBAAgB;;wBAGhB,mBAAmB;wBACnB,iBAAiB;AAClB,qBAAA,EAAA,QAAA,EAAA,mvKAAA,EAAA,MAAA,EAAA,CAAA,+33KAAA,CAAA,EAAA,CAAA;8BAGQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ME9CK,oBAAoB,CAAA;IAC7B,OAAO,cAAc,CACjB,WAAoD,EAAA;QAKpD,IAAI,WAAW,EAAE,MAAM,EAAE;YACrB,OAAO;AACH,gBAAA,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3B,QAAQ,EAAE,cAAc,CAAC,MAAM;aAClC,CAAC;AACL,SAAA;aAAM,IAAI,WAAW,EAAE,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,OAAO;AACH,gBAAA,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5B,QAAQ,EAAE,cAAc,CAAC,OAAO;aACnC,CAAC;AACL,SAAA;aAAM,IAAI,WAAW,EAAE,MAAM,EAAE;AAC5B,YAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC;AAC9C,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC;AAC9C,SAAA;KACJ;AACJ;;MCGY,4BAA4B,CAAA;AAQvC,IAAA,WAAA,GAAA;QALO,IAAQ,CAAA,QAAA,GAAsB,EAAuB,CAAC;QACtD,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAEzB,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;KAEtB;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3E,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,SAAA;KACF;AAEM,IAAA,WAAW,CAAC,EAAc,EAAA;QAC/B,EAAE,CAAC,IAAI,EAAE,CAAC;AACV,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;AAEM,IAAA,YAAY,CAAC,EAAc,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,EAAE,CAAC,KAAK,EAAE,CAAC;KACZ;+GAjCU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BzC,s7EAiEA,EDtCY,MAAA,EAAA,CAAA,q/4KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,4NAAE,kBAAkB,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACE,8BAA8B,EAAA,OAAA,EAG/B,CAAC,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,CAAC,EAAA,UAAA,EACzD,IAAI,EAAA,QAAA,EAAA,s7EAAA,EAAA,MAAA,EAAA,CAAA,q/4KAAA,CAAA,EAAA,CAAA;0EAGP,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ME/BK,YAAY,CAAA;AAChB,IAAA,SAAA,IAAA,CAAA,iBAAiB,GAA+B;AACrD,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,4BAA4B;AACzC,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,MAAM,EAAE,CAAC;AACV,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,4BAA4B;AACzC,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,OAAO,EAAE;AACP,gBAAA;oBACE,UAAU,EAAE,CAAC,GAAG;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,YAAY;AACzB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,iBAAiB;AAC9B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;KACF,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,sBAAsB,GAAG;AAC9B,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,4BAA4B;AACzC,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,yBAAyB;AACtC,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACD,gBAAA;AACE,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,gCAAgC;AAC7C,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,YAAY;AACzB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;KACF,CAAC,EAAA;AAEK,IAAA,SAAA,IAAA,CAAA,oBAAoB,GAAG;AAC5B,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,EAAE;KACV,CAAC,EAAA;;;ACnbG,MAAM,oBAAoB,GAAG;AAClC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,UAAU,EAAE,GAAG;CAChB;;MCNY,oBAAoB,CAAA;aACxB,IAAU,CAAA,UAAA,GAAW,wCAAwC,CAAC,EAAA;;;MCiC1D,oBAAoB,CAAA;AA2H/B,IAAA,WAAA,GAAA;QA1HS,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAI5B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QAQtB,IAAW,CAAA,WAAA,GAAmB,EAAE,CAAC;QAEnC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;QAC3C,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC,CAAC;QACzB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAc,CAAA,cAAA,GAAG,oBAAoB,CAAC;AAEtC,QAAA,IAAA,CAAA,OAAO,GAAG;YACf,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;AAC3C,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,cAAc,EAAE;AACd,gBAAA;oBACE,QAAQ,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;AAC1D,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,EAAE,+CAA+C;wBACpD,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AAC7D,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,EAAE,0DAA0D;wBAC/D,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AAC9D,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,EAAE,2DAA2D;wBAChE,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AAC9D,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,EAAE,0DAA0D;wBAC/D,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AAC9D,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,EAAE,yDAAyD;wBAC9D,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AAC9D,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,EAAE,iEAAiE;wBACtE,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA;AACE,oBAAA,IAAI,EAAE;wBACJ,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;wBACnD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AACrD,qBAAA;AACD,oBAAA,WAAW,EAAE,OAAO;AACrB,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE;wBACJ,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;wBACpD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AACrD,qBAAA;AACD,oBAAA,WAAW,EAAE,OAAO;AACrB,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE;wBACJ,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;wBACpD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AACrD,qBAAA;AACD,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE;wBACJ,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;wBACpD,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;AACjD,qBAAA;AACD,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE;wBACJ,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;wBAChD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;AACrD,qBAAA;AACD,oBAAA,WAAW,EAAE,KAAK;AACnB,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,WAAW,EAAE;oBACX,YAAY,EAAE,YAAY,CAAC,oBAAoB;AAC/C,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE,KAAK;gBACxB,MAAM,EAAE,YAAY,CAAC,sBAAsB;AAC3C,gBAAA,iBAAiB,EAAE,KAAK;AACxB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,eAAe,EAAE,QAAQ;AACzB,gBAAA,cAAc,EAAE,KAAK;AACrB,gBAAA,gBAAgB,EAAE,IAAI;AACvB,aAAA;SACF,CAAC;KACc;AAET,IAAA,SAAS,CACd,IAAkB,EAClB,CAAS,EACT,SAAkB,KAAK,EAAA;AAEvB,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACvB;IAEM,YAAY,GAAA;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,GAAG,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,EAAE,GAAG,GAAG,CAAC;AAC/D,SAAA;KACF;IAEM,UAAU,GAAA;QACf,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;YAC3D,OAAO,IAAI,CAAC,OAAO,CAAC;AACrB,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,eAAe,CAAC,EAAc,EAAA;QACnC,EAAE,CAAC,IAAI,EAAE,CAAC;KACX;AAEM,IAAA,UAAU,CAAC,YAA+C,EAAA;AAC/D,QAAA,OAAO,oBAAoB,CAAC,YAAY,CAAW,CAAC;KACrD;+GA7KU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mXClCjC,knQAsNA,EAAA,MAAA,EAAA,CAAA,szoLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBD3LI,YAAY,EAAA,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,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,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAET,cAAc,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGL,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAdhC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EAGnB,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;wBACpB,SAAS;;wBAET,cAAc;AACf,qBAAA,EAAA,QAAA,EAAA,knQAAA,EAAA,MAAA,EAAA,CAAA,szoLAAA,CAAA,EAAA,CAAA;0EAGQ,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEhDK,0BAA0B,CAAA;aAC5B,IAAY,CAAA,YAAA,GACf,mEAAmE,CAAC,EAAA;aACjE,IAAmB,CAAA,mBAAA,GACtB,2EAA2E,CAAC,EAAA;aACzE,IAAW,CAAA,WAAA,GAAW,kEAAkE,CAAC,EAAA;aACzF,IAAG,CAAA,GAAA,GAAW,yDAAyD,CAAC,EAAA;;;ACJ5E,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE;AAClD,IAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AACrB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA,CAAC,CAAC;AACH,IAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;AACrB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA,CAAC,CAAC;IACH,UAAU,CAAC,oBAAoB,EAAE;AAC/B,QAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,oBAAoB,EAAE;QAC/B,OAAO,CAAC,OAAO,CAAC;KACjB,CAAC;AACH,CAAA,CAAC;;ACdG,MAAM,WAAW,GAAa;AACjC,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,SAAS,EAAE,IAAI;CAClB;;MCqCY,+BAA+B,CAAA;AArB5C,IAAA,WAAA,GAAA;AAsBc,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAY,CAAC;QAEvD,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAA6B,CAAA,6BAAA,GAChC,0BAA0B,CAAC;QACxB,IAAW,CAAA,WAAA,GAAa,WAAW,CAAC;AA+C9C,KAAA;AA7CG,IAAA,IAAI,qBAAqB,GAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;KACzC;IAEM,iBAAiB,GAAA;QACpB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACtD;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KACpC;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACzB,SAAA;KACJ;AAEM,IAAA,iBAAiB,CAAC,KAAa,EAAA;QAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACvC;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;AAEM,IAAA,cAAc,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;IAEM,YAAY,CAAC,KAAa,EAAE,KAAa,EAAA;AAC5C,QAAA,OAAO,KAAK,CAAC;KAChB;AAEM,IAAA,UAAU,CACb,YAAqD,EAAA;AAErD,QAAA,OAAO,0BAA0B,CAAC,YAAY,CAAW,CAAC;KAC7D;+GAtDQ,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,oJC9C5C,kgPA2OA,EAAA,MAAA,EAAA,CAAA,8o6KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBD5MQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,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,UAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AAGhB,gBAAA,WAAW,kWACX,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAGhB,gBAAA,uBAAuB,EACvB,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAbR,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,EAAA,4BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,eAAe,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAkBpB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBArB3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAC7B,IAAI,EAAA,UAAA,EACJ,CAAC,eAAe,CAAC,EACpB,OAAA,EAAA;;wBAEL,YAAY;wBACZ,oBAAoB;wBACpB,gBAAgB;;wBAGhB,WAAW;wBACX,gBAAgB;;wBAGhB,uBAAuB;wBACvB,gBAAgB;AACnB,qBAAA,EAAA,QAAA,EAAA,kgPAAA,EAAA,MAAA,EAAA,CAAA,8o6KAAA,CAAA,EAAA,CAAA;8BAKS,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;;;MEtCE,yBAAyB,CAAA;AAClC,IAAA,SAAS,CAAC,KAAa,EAAA;QACnB,OAAO,yBAAyB,CAAC,4BAA4B,CACzD,KAAK,IAAI,CAAC,CACb,CAAC;KACL;+GALQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,2BAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,2BAA2B;AACjC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCyBY,iCAAiC,CAAA;AAnB9C,IAAA,WAAA,GAAA;QAoBW,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAI,CAAA,IAAA,GAAoB,EAAE,CAAC;QAI3B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAM,CAAA,MAAA,GAAW,aAAa,CAAC;QAEjC,IAAsB,CAAA,sBAAA,GAAW,CAAC,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,4BAA4B,GAAiB,EAAE,CAAC;QAEhD,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAkCrC,KAAA;AAhCC,IAAA,IAAW,iBAAiB,GAAA;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAc,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3E,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;;AAGM,IAAA,sBAAsB,CAAC,OAAmB,EAAA;QAC/C,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;gBACpB,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,IAAI,EAAE,CAAC;AACf,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB,aAAA;YAED,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAC,MAAM,EAAE;kBAChD,IAAI,CAAC,WAAW;kBAChB,IAAI,CAAC;YACT,IAAI,CAAC,oBAAoB,GAAG;gBAC1B,GAAG,EAAE,IAAI,CAAC,IAAI;gBACd,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;aACpC,CAAC;AACH,SAAA;AAAM,aAAA;YACL,OAAO;AACR,SAAA;KACF;+GAhDU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,yTCjC9C,wsRAiPA,EAAA,MAAA,EAAA,CAAA,o35KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AD7NI,gBAAA,YAAY,ifACZ,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGT,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAGvB,gBAAA,yBAAyB,6DACzB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAKT,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAnB7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,EAGpC,OAAA,EAAA;;wBAEP,YAAY;wBACZ,SAAS;;wBAGT,uBAAuB;;wBAGvB,yBAAyB;wBACzB,kBAAkB;AACnB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,wsRAAA,EAAA,MAAA,EAAA,CAAA,o35KAAA,CAAA,EAAA,CAAA;8BAG5B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEOK,oBAAoB,CAAA;IAO/B,IAAa,IAAI,CAAC,KAAa,EAAA;AAC7B,QAAA,IACE,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;YACzD,IAAI,CAAC,WAAW,EAChB;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvB,SAAA;KACF;IACD,IAAa,aAAa,CAAC,KAAc,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;KAC5C;AA8BD,IAAA,WAAA,GAAA;QA7BS,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAW,CAAC,CAAC;QACrB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAS,CAAA,SAAA,GAAW,MAAM,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAW,mBAAmB,CAAC;QAC1C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAExB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;;QAEnD,IAAc,CAAA,cAAA,GAAqB,MAAM,CAAC;QAGzC,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAE1B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;;QAK3B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAG9B,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;KAEf;IAET,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAE3C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;AAEM,IAAA,WAAW,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAEM,IAAA,QAAQ,CAAC,SAAmB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7C,SAAA;AACD,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AACjE,SAAA;AACD,QAAA,IACE,IAAI,CAAC,QAAQ,IAAI,cAAc;AAC/B,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,UAAU,IAAI,EAAE,EACrB;AACA,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,EAAE,CAAC;AACnB,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KACrE;IAEM,qBAAqB,GAAA;AAC1B,QAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACpC;IAEM,gBAAgB,GAAA;QACrB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE;AAC9D,YAAA,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACxC,SAAA;KACF;IACM,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAG,CAAC;QAC7C,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;YACpE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEzC,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;AACrC,gBAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;aACvC,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KACrE;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;KAC5B;AAEM,IAAA,OAAO,CAAC,KAAqB,EAAA;AAClC,QAAA,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAChC;AAEM,IAAA,UAAU,CAAC,YAAoC,EAAA;AACpD,QAAA,OAAO,SAAS,CAAC,YAAY,CAAW,CAAC;KAC1C;+GA1IU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6qBClDjC,+6EAqFA,EAAA,MAAA,EAAA,CAAA,625KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADjDI,gBAAA,YAAY,qTACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,SAAS,8BACT,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAEpB,gBAAA,wBAAwB,4OACxB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;AAGlB,gBAAA,YAAY,mCAdF,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAkBzC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAtBhC,SAAS;+BACE,mBAAmB,EAAA,UAAA,EAGjB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,EACxC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;;wBAEP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,SAAS;wBACT,oBAAoB;;wBAEpB,wBAAwB;wBACxB,kBAAkB;;wBAGlB,YAAY;qBACb,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+6EAAA,EAAA,MAAA,EAAA,CAAA,625KAAA,CAAA,EAAA,CAAA;0EAGc,OAAO,EAAA,CAAA;sBAAzD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAInC,aAAa,EAAA,CAAA;sBADnB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAG/B,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAQO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAIG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;MEhFI,sBAAsB,CAAA;aAC1B,IAAM,CAAA,MAAA,GAAW,gEAAgE,CAAC,EAAA;aAClF,IAAO,CAAA,OAAA,GAAW,iEAAiE,CAAC,EAAA;aACpF,IAAO,CAAA,OAAA,GAAW,iEAAiE,CAAC,EAAA;aACpF,IAAI,CAAA,IAAA,GAAW,kDAAkD,CAAC,EAAA;aAClE,IAAS,CAAA,SAAA,GAAW,yDAAyD,CAAC,EAAA;aAC9E,IAAO,CAAA,OAAA,GAAW,qDAAqD,CAAC,EAAA;aACxE,IAAc,CAAA,cAAA,GAAW,6DAA6D,CAAC,EAAA;aACvF,IAAS,CAAA,SAAA,GAAW,wDAAwD,CAAC,EAAA;aAE7E,IAAU,CAAA,UAAA,GAAW,qBAAqB,CAAC,EAAA;aAC3C,IAAiB,CAAA,iBAAA,GAAW,6BAA6B,CAAC,EAAA;aAC1D,IAAQ,CAAA,QAAA,GAAW,sDAAsD,CAAC,EAAA;;;ACZ5E,MAAM,aAAa,GAA8B;AACpD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,SAAS;CACnB;;MCNY,6BAA6B,CAAA;AACtB,IAAA,SAAA,IAAA,CAAA,iBAAiB,GAAG;AAChC,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,MAAM,EAAE;AACvE,QAAA,EAAE,IAAI,EAAE,4CAA4C,EAAE,IAAI,EAAE,cAAc,EAAE;AAC5E,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,OAAO,EAAE;AACxE,QAAA,EAAE,IAAI,EAAE,6CAA6C,EAAE,IAAI,EAAE,OAAO,EAAE;AACtE,QAAA,EAAE,IAAI,EAAE,2CAA2C,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxE,CAAC,EAAA;AAEc,IAAA,SAAA,IAAA,CAAA,mBAAmB,GAAG;AAClC,QAAA,EAAE,IAAI,EAAE,4CAA4C,EAAE,IAAI,EAAE,cAAc,EAAE;AAC5E,QAAA,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,OAAO,EAAE;AACxE,QAAA,EAAE,IAAI,EAAE,6CAA6C,EAAE,IAAI,EAAE,OAAO,EAAE;KACzE,CAAC,EAAA;;;ACbN,IAAY,eAKX,CAAA;AALD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,eAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACzC,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,YAOX,CAAA;AAPD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,mBAAmC,CAAA;AACnC,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,kBAAiC,CAAA;AACrC,CAAC,EAPW,YAAY,KAAZ,YAAY,GAOvB,EAAA,CAAA,CAAA;;ACLD;MAKa,0BAA0B,CAAA;IAC9B,OAAO,SAAS,CAAC,aAA4B,EAAA;QAClD,IAAI,cAAc,IAAI,aAAa,EAAE;AACnC,YAAA,OAAO,aAAa,CAAC,YAAY,IAAI,CAAC,CAAC;AACxC,SAAA;aAAM,IAAI,QAAQ,IAAI,aAAa,EAAE;AACpC,YAAA,OAAO,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;KACV;AAEM,IAAA,OAAO,sBAAsB,CAClC,aAA4B,EAC5B,WAA4C,EAAA;QAM5C,IAAI,SAAS,GAAW,CAAC,CAAC;QAC1B,IAAI,YAAY,GAAW,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAW,CAAC,CAAC;QACxB,IAAI,UAAU,GAAW,CAAC,CAAC;AAC3B,QAAA,IAAI,aAAqB,CAAC;AAC1B,QAAA,IAAI,IAAY,CAAC;QAEjB,IAAI,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAEjE,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAmC,KAAI;AAC1D,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,gBAAA,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;AACvB,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,gBAAA,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC;AAC1B,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,gBAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC;AACrB,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAClC,gBAAA,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;AAC5D,QAAA,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC;AAElC,QAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KACxC;AAEM,IAAA,OAAO,YAAY,CACxB,IAAY,EACZ,aAAqB,EAAA;QAErB,IAAI,IAAI,IAAI,CAAC,EAAE;YACb,OAAO;gBACL,SAAS,EAAE,YAAY,CAAC,YAAY;gBACpC,aAAa,EAAE,YAAY,CAAC,YAAY;AACxC,gBAAA,QAAQ,EAAE,KAAK;aAChB,CAAC;AACH,SAAA;aAAM,IAAI,IAAI,KAAK,aAAa,EAAE;YACjC,OAAO;AACL,gBAAA,SAAS,EAAE,MAAM;gBACjB,aAAa,EAAE,YAAY,CAAC,aAAa;AACzC,gBAAA,QAAQ,EAAE,IAAI;aACf,CAAC;AACH,SAAA;AAAM,aAAA;YACL,OAAO;AACL,gBAAA,SAAS,EAAE,MAAM;gBACjB,aAAa,EAAE,YAAY,CAAC,UAAU;AACtC,gBAAA,QAAQ,EAAE,IAAI;aACf,CAAC;AACH,SAAA;KACF;AAEM,IAAA,OAAO,6BAA6B,CACzC,aAA4B,EAC5B,IAAqB,EAAA;QAKrB,MAAM,UAAU,GAAe,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAkB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAE1E,QAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;KACtC;IAEO,OAAO,gBAAgB,CAAC,aAA4B,EAAA;QAC1D,IAAI,OAAO,GAA4B,EAAE,CAAC;QAC1C,IAAI,UAAU,GAA+B,EAAE,CAAC;QAChD,IAAI,OAAO,GAA2B,EAAE,CAAC;QACzC,IAAI,KAAK,GAAiC,EAAE,CAAC;QAC7C,IAAI,QAAQ,GAA6B,EAAE,CAAC;QAE5C,IAAI,iBAAiB,IAAI,aAAa,EAAE;AACtC,YAAA,OAAO,GAAG,aAAa,CAAC,eAAe,IAAI,EAAE,CAAC;AAC/C,SAAA;aAAM,IAAI,SAAS,IAAI,aAAa,EAAE;AACrC,YAAA,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC;AACvC,SAAA;QAED,IAAI,oBAAoB,IAAI,aAAa,EAAE;AACzC,YAAA,UAAU,GAAG,aAAa,CAAC,kBAAkB,IAAI,EAAE,CAAC;AACrD,SAAA;aAAM,IAAI,YAAY,IAAI,aAAa,EAAE;AACxC,YAAA,UAAU,GAAG,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;AAC7C,SAAA;QAED,IAAI,SAAS,IAAI,aAAa,EAAE;AAC9B,YAAA,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC;AACvC,SAAA;QAED,IAAI,UAAU,IAAI,aAAa,EAAE;AAC/B,YAAA,QAAQ,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;AACzC,SAAA;aAAM,IAAI,cAAc,IAAI,aAAa,EAAE;AAC1C,YAAA,QAAQ,GAAG,aAAa,CAAC,YAAY,IAAI,EAAE,CAAC;AAC7C,SAAA;QAED,IAAI,OAAO,IAAI,aAAa,EAAE;AAC5B,YAAA,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;AACnC,SAAA;aAAM,IAAI,eAAe,IAAI,aAAa,EAAE;AAC3C,YAAA,KAAK,GAAG,aAAa,CAAC,aAAa,IAAI,EAAE,CAAC;AAC3C,SAAA;QAED,OAAO;YACL,OAAO;YACP,OAAO;YACP,UAAU;YACV,KAAK;YACL,QAAQ;SACT,CAAC;KACH;AAEO,IAAA,OAAO,iBAAiB,CAC9B,aAA4B,EAC5B,IAAqB,EAAA;AAErB,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,IAAI,GAAG,CAAC;AAEzD,QAAA,IAAI,IAAI,KAAK,eAAe,CAAC,gBAAgB,EAAE;YAC7C,OAAO,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACtE,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACpE,SAAA;KACF;AAEO,IAAA,OAAO,0BAA0B,CACvC,aAA4B,EAC5B,aAAqB,EAAA;AAErB,QAAA,MAAM,WAAW,GACf,aAAa,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC;AAE5E,QAAA,MAAM,SAAS,GACb,WAAW,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC;QAExE,OAAO;AACL,YAAA,QAAQ,EAAE,CAAA,EAAG,WAAW,CAAA,GAAA,EAAM,SAAS,CAAE,CAAA;YACzC,aAAa;SACd,CAAC;KACH;AAEO,IAAA,OAAO,wBAAwB,CACrC,aAA4B,EAC5B,aAAqB,EAAA;AAErB,QAAA,IAAI,QAAQ,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;YACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YACrD,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG;gBACpC,sBAAsB,CAAC,iBAAiB,CAAC;AAE3C,YAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAClD,SAAA;AAED,QAAA,IAAI,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE;AAC7D,YAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC;AAC1C,YAAA,MAAM,YAAY,GAChB,aAAa,CAAC,YAAY,EAAE,GAAG;gBAC/B,sBAAsB,CAAC,iBAAiB,CAAC;AAE3C,YAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAClD,SAAA;QACD,OAAO;YACL,YAAY,EAAE,sBAAsB,CAAC,iBAAiB;AACtD,YAAA,QAAQ,EAAE,EAAE;YACZ,aAAa;SACd,CAAC;KACH;IACM,OAAO,OAAO,CAAC,MAAc,EAAA;AAClC,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,YAAY;gBACf,OAAO;oBACL,KAAK,EAAE,YAAY,CAAC,aAAa;oBACjC,GAAG,EAAE,sBAAsB,CAAC,OAAO;iBACpC,CAAC;AACJ,YAAA,KAAK,OAAO;gBACV,OAAO;oBACL,KAAK,EAAE,YAAY,CAAC,gBAAgB;oBACpC,GAAG,EAAE,sBAAsB,CAAC,MAAM;iBACnC,CAAC;AACJ,YAAA,KAAK,SAAS;gBACZ,OAAO;oBACL,KAAK,EAAE,YAAY,CAAC,YAAY;oBAChC,GAAG,EAAE,sBAAsB,CAAC,OAAO;iBACpC,CAAC;AACJ,YAAA;gBACE,OAAO;oBACL,KAAK,EAAE,YAAY,CAAC,aAAa;oBACjC,GAAG,EAAE,sBAAsB,CAAC,MAAM;iBACnC,CAAC;AACL,SAAA;KACF;IAEM,OAAO,UAAU,CACtB,YAAiD,EAAA;AAEjD,QAAA,OAAO,sBAAsB,CAAC,YAAY,CAAW,CAAC;KACvD;AACF;;MCzKY,+BAA+B,CAAA;AAyB1C,IAAA,WAAA,GAAA;QAxBS,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAGvB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAc,CAAC;AACvD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAwB,CAAC;QAGlE,IAAsB,CAAA,sBAAA,GAA6B,EAAE,CAAC;;QAGtD,IAAW,CAAA,WAAA,GAAc,EAAE,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAc,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAA+B,EAAE,CAAC;QAChD,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC,CAAC;;QAI1B,IAAsB,CAAA,sBAAA,GAC3B,sBAAsB,CAAC;AAClB,QAAA,IAAA,CAAA,YAAY,GAAW,sBAAsB,CAAC,OAAO,CAAC;AACtD,QAAA,IAAA,CAAA,aAAa,GAAW,sBAAsB,CAAC,cAAc,CAAC;AAC9D,QAAA,IAAA,CAAA,WAAW,GAAW,IAAI,CAAC,YAAY,CAAC;QACxC,IAAY,CAAA,YAAA,GAAa,EAAE,CAAC;KAEnB;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvE,SAAA;KACF;IAEO,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;AAEhC,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YAC5D,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAG,IAAmC,CAAC,MAAM;AACnD,gBAAA,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;aACM,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;IAEO,kBAAkB,GAAA;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,GAAG,6BAA6B,CAAC,iBAAiB,CAAC;AACxE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,6BAA6B,CAAC,mBAAmB,CAAC;AAC1E,SAAA;KACF;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3D,IAAI,CAAC,YAAY,CAClB,CAAC;KACH;AAEM,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YACzD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AACzD,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;cAChD,IAAI,CAAC,aAAa;AACpB,cAAE,IAAI,CAAC,YAAY,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;KAC5D;AAEM,IAAA,iBAAiB,CAAC,UAAkB,EAAA;QACzC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;KAC1C;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KAChC;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;KACjC;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC3B,OAAO,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,SAAS,CAAC;KACxD;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACtD,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;IAEM,qBAAqB,GAAA;AAC1B,QAAA,MAAM,GAAG,GACP,IAAI,CAAC,sBAAsB,EAAE,MAAM,CACjC,CAAC,GAAW,EAAE,IAA4B,KAAI;YAC5C,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAClC,SAAC,EACD,CAAC,CACF,IAAI,CAAC,CAAC;AACT,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACtE;AAEM,IAAA,MAAM,CAAC,KAAiC,EAAA;AAC7C,QAAA,eAAe,CACb,IAAI,CAAC,aAAa,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;IAEM,QAAQ,CAAC,aAAqB,EAAE,YAAoB,EAAA;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;KAC3D;AAEM,IAAA,UAAU,CAAC,YAAiD,EAAA;AACjE,QAAA,OAAO,0BAA0B,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC5D;AAEM,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,KAAK,CAAC;KACd;+GAlJU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAjB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,0BCxCjC,6tNAiLA,EAAA,MAAA,EAAA,CAAA,kl9KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADtII,gBAAA,YAAY,EACZ,EAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,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,UAAA,EAAA,IAAA,EAAA,oBAAoB,EACpB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,sWAChB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAGd,gBAAA,uBAAuB,6MACvB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;gBAEnB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKT,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBApB3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAC7B,IAAI,EAAA,SAAA,EACL,CAAC,kBAAkB,CAAC,EACtB,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;wBACpB,gBAAgB;wBAChB,cAAc;;wBAGd,uBAAuB;wBACvB,mBAAmB;;wBAEnB,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,6tNAAA,EAAA,MAAA,EAAA,CAAA,kl9KAAA,CAAA,EAAA,CAAA;0EAKQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MEpDI,iCAAiC,CAAA;+GAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV9C,4lBAeA,EAAA,MAAA,EAAA,CAAA,+s2KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDTY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAP7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EAChC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4lBAAA,EAAA,MAAA,EAAA,CAAA,+s2KAAA,CAAA,EAAA,CAAA;8BAKd,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEaK,gCAAgC,CAAA;AAR7C,IAAA,WAAA,GAAA;QAcW,IAAM,CAAA,MAAA,GAAW,YAAY,CAAC;AA6BxC,KAAA;IAxBQ,sBAAsB,GAAA;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AAAM,aAAA;AACL,YAAA,IACE,IAAI,CAAC,aAAa,KAAK,YAAY,CAAC,UAAU;AAC9C,gBAAA,IAAI,CAAC,aAAa,KAAK,YAAY,CAAC,aAAa,EACjD;AACA,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChC,OAAO,sBAAsB,CAAC,OAAO,CAAC;AACvC,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,YAAY,CAAC,YAAY,EAAE;AAC3D,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChC,OAAO,sBAAsB,CAAC,MAAM,CAAC;AACtC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChC,OAAO,sBAAsB,CAAC,OAAO,CAAC;AACvC,aAAA;AACF,SAAA;KACF;AACM,IAAA,UAAU,CAAC,YAAiD,EAAA;AACjE,QAAA,OAAO,0BAA0B,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KAC5D;+GAlCU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,ECzB7C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,g/CA4CA,EDxBY,MAAA,EAAA,CAAA,u13KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,gOAAE,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAKjC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;+BACE,iCAAiC,EAAA,UAAA,EAC/B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAA,aAAA,EAG9B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,g/CAAA,EAAA,MAAA,EAAA,CAAA,u13KAAA,CAAA,EAAA,CAAA;8BAG5B,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEiBK,wBAAwB,CAAA;IAuBnC,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAED,IAAA,WAAA,GAAA;AAtBU,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAE7C,CAAC;QAKI,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;;QAQhC,IAAsB,CAAA,sBAAA,GAC3B,sBAAsB,CAAC;KAMT;IAER,UAAU,GAAA;AAChB,QAAA,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GACjC,0BAA0B,CAAC,6BAA6B,CACtD,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,IAAI,CACV,CAAC;AAEJ,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACpC;AAEM,IAAA,iBAAiB,CAAC,KAAoC,EAAA;AAC3D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEO,sBAAsB,GAAA;QAC5B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,GACnC,0BAA0B,CAAC,sBAAsB,CAC/C,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,CACjB,CAAC;AACJ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACpC;IAEO,YAAY,GAAA;QAClB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAC1C,0BAA0B,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACpC;IAEM,cAAc,GAAA;AACnB,QAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAC9B;IAEM,UAAU,GAAA;AACf,QAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAC5B;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;+GA3EU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAhBxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,0BChCjC,8xIA4IA,EAAA,MAAA,EAAA,CAAA,yl5KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;ADzGI,gBAAA,YAAY,uNACZ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAGpB,+BAA+B,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC/B,gCAAgC,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChC,iCAAiC,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA;;gBAEjC,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKT,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAnBpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cACrB,IAAI,EAAA,SAAA,EACL,CAAC,kBAAkB,CAAC,EACtB,OAAA,EAAA;;wBAEP,YAAY;wBACZ,oBAAoB;;wBAGpB,+BAA+B;wBAC/B,gCAAgC;wBAChC,iCAAiC;;wBAEjC,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,8xIAAA,EAAA,MAAA,EAAA,CAAA,yl5KAAA,CAAA,EAAA,CAAA;0EAKQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MEkBI,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YA7C9B,YAAY;YACZ,uBAAuB;YACvB,uBAAuB;YACvB,0BAA0B;YAC1B,mBAAmB;YACnB,iBAAiB;YACjB,gBAAgB;YAChB,4BAA4B;YAC5B,cAAc;YACd,sBAAsB;YACtB,eAAe;YACf,wBAAwB;YACxB,qCAAqC;YACrC,0CAA0C;YAC1C,4BAA4B;YAC5B,oBAAoB;YACpB,+BAA+B;YAC/B,kBAAkB;YAClB,iCAAiC;YACjC,wBAAwB;AACxB,YAAA,oBAAoB,aAGpB,uBAAuB;YACvB,uBAAuB;YACvB,0BAA0B;YAC1B,mBAAmB;YACnB,iBAAiB;YACjB,gBAAgB;YAChB,4BAA4B;YAC5B,cAAc;YACd,sBAAsB;YACtB,eAAe;YACf,wBAAwB;YACxB,qCAAqC;YACrC,0CAA0C;YAC1C,4BAA4B;YAC5B,oBAAoB;YACpB,+BAA+B;YAC/B,kBAAkB;YAClB,iCAAiC;YACjC,wBAAwB;YACxB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YA7C9B,YAAY;YACZ,uBAAuB;YACvB,uBAAuB;YACvB,0BAA0B;YAC1B,mBAAmB;YACnB,iBAAiB;YACjB,gBAAgB;YAChB,4BAA4B;YAC5B,cAAc;YACd,sBAAsB;YACtB,eAAe;YACf,wBAAwB;YACxB,qCAAqC;YACrC,0CAA0C;YAC1C,4BAA4B;YAC5B,oBAAoB;YACpB,+BAA+B;YAC/B,kBAAkB;YAClB,iCAAiC;YACjC,wBAAwB;YACxB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAyBX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhDjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,uBAAuB;wBACvB,uBAAuB;wBACvB,0BAA0B;wBAC1B,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,4BAA4B;wBAC5B,cAAc;wBACd,sBAAsB;wBACtB,eAAe;wBACf,wBAAwB;wBACxB,qCAAqC;wBACrC,0CAA0C;wBAC1C,4BAA4B;wBAC5B,oBAAoB;wBACpB,+BAA+B;wBAC/B,kBAAkB;wBAClB,iCAAiC;wBACjC,wBAAwB;wBACxB,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;wBACvB,uBAAuB;wBACvB,0BAA0B;wBAC1B,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,4BAA4B;wBAC5B,cAAc;wBACd,sBAAsB;wBACtB,eAAe;wBACf,wBAAwB;wBACxB,qCAAqC;wBACrC,0CAA0C;wBAC1C,4BAA4B;wBAC5B,oBAAoB;wBACpB,+BAA+B;wBAC/B,kBAAkB;wBAClB,iCAAiC;wBACjC,wBAAwB;wBACxB,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;ACtED;;AAEG;;ACFH;;AAEG;;;;"}
|