import { Pipe, PipeTransform } from '@angular/core'; // enums import { ToolbarFilterStringEnum } from '../../../components/ca-map/enums/toolbar-filter-string.enum'; // components import { CaStatusFilterComponent } from '../components/ca-status-filter/ca-status-filter.component'; import { CaTimeFilterComponent } from '../components/ca-time-filter/ca-time-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'; import { CaUserFilterComponent } from '../components/ca-user-filter/ca-user-filter.component'; import { CaViolationFilterComponent } from '../components/ca-violation-filter/ca-violation-filter.component'; @Pipe({ name: 'filterConditionsClear', standalone: true, pure: false, }) export class FilterConditionsClearPipe implements PipeTransform { transform( type: string, caStatusFilter: CaStatusFilterComponent, caTimeFilter: CaTimeFilterComponent, caDispatcherFilter: CaDispatcherFilterComponent, caStateFilter: CaStateFilterComponent, caTruckTypeFilter: CaTruckTypeFilterComponent, caTrailerTypeFilter: CaTrailerTypeFilterComponent, caPmFilter: CaPmFilterComponent, caUserFilter: CaUserFilterComponent, caViolationFilter: CaViolationFilterComponent ): boolean | number { switch (type) { case ToolbarFilterStringEnum.STATUS_FILTER: return caStatusFilter?.selectedUser?.length; case ToolbarFilterStringEnum.TIME_FILTER: return ( caTimeFilter?.selectedTimeValue !== caTimeFilter?.filterActiveTime || !!caTimeFilter?.selectedTimeValue ); case ToolbarFilterStringEnum.DISPATCHER_FILTER: case ToolbarFilterStringEnum.DRIVER_FILTER: case ToolbarFilterStringEnum.FUEL_STOP_FILTER: case ToolbarFilterStringEnum.BROKER_FILTER: return ( caDispatcherFilter?.selectedUser.length || caDispatcherFilter?.filterActiveArray.length ); case ToolbarFilterStringEnum.STATE_FILTER: return ( caStateFilter?.canadaSelectedStates.length || caStateFilter?.usaSelectedStates.length ); case ToolbarFilterStringEnum.TRUCK_TYPE_FILTER: return caTruckTypeFilter?.selectedTruckTypeArray.length; case ToolbarFilterStringEnum.TRAILER_TYPE_FILTER: return caTrailerTypeFilter?.selectedTrailerTypeArray.length; case ToolbarFilterStringEnum.PM_FILTER: case ToolbarFilterStringEnum.CATEGORY_REPAIR_FILTER: return caPmFilter?.selectedPmFilterArray.length; case ToolbarFilterStringEnum.FUEL_ITEM_FILTER: case ToolbarFilterStringEnum.DEPARTMENT_FILTER: case ToolbarFilterStringEnum.PARKING_FILTER: case ToolbarFilterStringEnum.TAG_FILTER: case ToolbarFilterStringEnum.ACTION_FILTER: case ToolbarFilterStringEnum.LABEL_FILTER: return caPmFilter?.selectedPmFilterArray.length; case ToolbarFilterStringEnum.USER_FILTER: case ToolbarFilterStringEnum.MODULE_FILTER: return caUserFilter?.hasSelectedUsers; case ToolbarFilterStringEnum.VIOLATION_FILTER: return caViolationFilter?.violationFilterForm.dirty; default: return false; } } }