import { Pipe, PipeTransform } from '@angular/core'; // enums import { ToolbarFilterStringEnum } from '../../../components/ca-map/enums/toolbar-filter-string.enum'; // components import { CaFilterComponent } from '../ca-filter.component'; import { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component'; import { CaDispatcherFilterComponent } from '../components/ca-dispatcher-filter/ca-dispatcher-filter.component'; import { CaStateFilterComponent } from '../components/ca-state-filter/ca-state-filter.component'; import { CaTruckTypeFilterComponent } from '../components/ca-truck-type-filter/ca-truck-type-filter.component'; import { CaTrailerTypeFilterComponent } from '../components/ca-trailer-type-filter/ca-trailer-type-filter.component'; import { CaPmFilterComponent } from '../components/ca-pm-filter/ca-pm-filter.component'; @Pipe({ name: 'filterPopoverConditionsPipe', standalone: true, pure: false, }) export class FilterPopoverConditionsPipe implements PipeTransform { transform( type: string, caFilterComponent: CaFilterComponent, caStatusFilter: CaStatusFilterComponent, caDispatcherFilter: CaDispatcherFilterComponent, caStateFilter: CaStateFilterComponent, caTruckTypeFilter: CaTruckTypeFilterComponent, caTrailerTypeFilter: CaTrailerTypeFilterComponent, caPmFilter: CaPmFilterComponent ): boolean | number | string { switch (type) { case ToolbarFilterStringEnum.MAIN_TOOLTIP: return !caFilterComponent?.isHoverClosed ? caStateFilter?.totalFiltersNum! > 0 ? caFilterComponent?.isFilterActive ? ToolbarFilterStringEnum.CLOSE_FILTER : caFilterComponent?.filterTitle : caFilterComponent?.isFilterActive ? ToolbarFilterStringEnum.CLOSE_FILTER : caFilterComponent?.filterTitle : ToolbarFilterStringEnum.REMOVE_FILTER; case ToolbarFilterStringEnum.FILTER_TEXT: return caPmFilter?.filterActiveArray.length > 0 || caStatusFilter?.filterActiveArray.length > 0 || caTrailerTypeFilter?.filterActiveArray.length > 0 || caTruckTypeFilter?.filterActiveArray.length > 0 || caDispatcherFilter?.filterActiveArray.length > 0 ? caPmFilter?.filterActiveArray.length > 0 || caStatusFilter?.filterActiveArray.length > 0 || caTrailerTypeFilter?.filterActiveArray.length > 0 || caTruckTypeFilter?.filterActiveArray.length > 0 || caDispatcherFilter?.filterActiveArray.length > 0 : caStateFilter?.totalFiltersNum! > 0; case ToolbarFilterStringEnum.USER_BOX: return ( caFilterComponent?.type !== ToolbarFilterStringEnum.STATE_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.DISPATCHER_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.FUEL_STOP_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.BROKER_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.DRIVER_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.USER_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.MODULE_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.MONEY_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.MILES_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.TIME_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.FUEL_ITEM_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.DEPARTMENT_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.PARKING_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.TAG_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.ACTION_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.LABEL_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.LOCATION_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.VIOLATION_FILTER ); case ToolbarFilterStringEnum.SORT_ITEMS: return ( caFilterComponent?.type === ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.PM_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.FUEL_ITEM_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.DEPARTMENT_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.PARKING_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.TAG_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.ACTION_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.LABEL_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.TRUCK_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.TRUCK_TYPE_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.TRAILER_TYPE_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.TRAILER_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.STATUS_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.DISPATCHER_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.DRIVER_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.FUEL_STOP_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.BROKER_FILTER || caFilterComponent?.type === ToolbarFilterStringEnum.USER_FILTER || (caFilterComponent?.type !== ToolbarFilterStringEnum.LOCATION_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.TIME_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.MONEY_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.MILES_FILTER && caFilterComponent?.type !== ToolbarFilterStringEnum.VIOLATION_FILTER) ); default: return false; } } }