import { Pipe, PipeTransform } from '@angular/core'; import { AbstractControl } from '@angular/forms'; // confis import { ICaInput } from '../config/ca-input.config'; // enums import { DropdownTemplateTypeEnum } from '../../ca-input-dropdown/enums'; @Pipe({ name: 'inputClearClass', standalone: true, }) export class InputClearClassPipe implements PipeTransform { transform( getSuperControl: AbstractControl | null, isFocusInput: boolean, inputConfig: ICaInput, incorrectValue: boolean, selectedDropdownLabelColor: boolean, template: string, value: string ): { [key: string]: boolean | undefined } { return { focus: isFocusInput && getSuperControl?.value && !(inputConfig.blackInput && inputConfig.isDropdown), 'valid-focus-in': (getSuperControl?.value && getSuperControl?.valid && isFocusInput && !inputConfig.customClass?.includes('repair-shop-open-hour') && !inputConfig.blackInput && !inputConfig.dropdownImageInput?.url && !inputConfig.isInvalidSearchInDropdown && !inputConfig.mergeDropdownBodyWithInput && !inputConfig.isDisabled) || (inputConfig.multipleInputValues?.options.length && isFocusInput && !inputConfig.isInvalidSearchInDropdown && !inputConfig.blackInput && !inputConfig.mergeDropdownBodyWithInput && !inputConfig.isDisabled && !inputConfig.dropdownLabel && template === DropdownTemplateTypeEnum.PAYROLL_TRUCKS), 'valid-focus-out': getSuperControl?.value && getSuperControl?.valid && !isFocusInput && !inputConfig.customClass?.includes('repair-shop-open-hour') && !inputConfig.blackInput && !inputConfig.isDisabled, 'invalid-focus-in': (getSuperControl?.value && getSuperControl?.invalid && isFocusInput && !inputConfig.mergeDropdownBodyWithInput && !inputConfig.blackInput && !inputConfig.isDisabled) || (inputConfig.isInvalidSearchInDropdown && inputConfig.isDropdown && isFocusInput && getSuperControl?.value && !inputConfig.mergeDropdownBodyWithInput && !inputConfig.blackInput && !inputConfig.isDisabled), 'invalid-focus-out': getSuperControl?.value && getSuperControl?.invalid && !isFocusInput && !inputConfig.isDropdown && !inputConfig.blackInput && !( !inputConfig.dropdownImageInput?.withText && inputConfig.dropdownImageInput?.url ) && !inputConfig.isDisabled, 'incorrect-input': inputConfig.incorrectInput && getSuperControl?.value, 'incorrect-input-on': inputConfig.incorrectInput && getSuperControl?.value && incorrectValue, hidden: getSuperControl?.value && isFocusInput && inputConfig.dropdownLabel, 'dropdown-on': (getSuperControl?.value && inputConfig.isDropdown && !inputConfig.isDisabled && !inputConfig.blackInput && !inputConfig.multiSelectDropdownActive && !inputConfig.mergeDropdownBodyWithInput) || (inputConfig.dropdownImageInput?.url && !inputConfig.isDisabled && !inputConfig.blackInput && !inputConfig.multiSelectDropdownActive && !inputConfig.mergeDropdownBodyWithInput) || (!inputConfig.blackInput && selectedDropdownLabelColor) || (inputConfig.dropdownImageInput?.url && !inputConfig.blackInput && !inputConfig.mergeDropdownBodyWithInput) || template === DropdownTemplateTypeEnum.PAYROLL_TRUCKS, 'trash-can-svg': inputConfig.removeInput, }; } }