import { Pipe, PipeTransform } from '@angular/core'; import { AbstractControl } from '@angular/forms'; import { ICaInput } from '../config/ca-input.config'; @Pipe({ name: 'inputContainerClass', standalone: true, }) export class InputContainerClassPipe implements PipeTransform { transform( getSuperControl: AbstractControl | null, isFocusInput: boolean, isTouchedInput: boolean, inputConfig: ICaInput, controlValue: string, controlDisabled?: boolean ): { [key: string]: boolean | undefined | null | string } { const isDisabled = controlDisabled || inputConfig.isDisabled; return { 'custom-empty-hover': !isFocusInput, 'custom-filled-hover': controlValue && !isFocusInput && !inputConfig.dropdownLabel, 'invalid-filled-focus-out': controlValue && getSuperControl?.invalid && (isTouchedInput || getSuperControl?.touched) && !isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled, 'invalid-empty-focus-out': !controlValue && getSuperControl?.invalid && (isTouchedInput || getSuperControl?.touched) && !isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled && !inputConfig.dropdownLabel, 'invalid-focus-in': controlValue && getSuperControl?.invalid && isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled, 'valid-focus-in': controlValue && getSuperControl?.valid && isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled, 'valid-focus-out': controlValue && getSuperControl?.valid && !isFocusInput && !inputConfig.blackInput && !isDisabled, 'inactive-empty': isDisabled && !controlValue, 'inactive-filled': isDisabled && controlValue, 'input-remove-trash-can': inputConfig.removeInput, 'input-remove-background': inputConfig.isInputBackgroundRemoved, 'input-blue-text': inputConfig.isBlueText, 'required-label-table': inputConfig.requiredLabel, }; } }