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, value: string, isDisabledInput?: boolean, invalid?: boolean ): { [key: string]: boolean | undefined | null | string } { const isDisabled = isDisabledInput ?? inputConfig.isDisabled; return { 'transparent': inputConfig.transparentInput, 'custom-empty-hover': !isFocusInput, 'custom-filled-hover': value && !isFocusInput && !inputConfig.dropdownLabel, 'invalid-filled-focus-out': value && (getSuperControl?.invalid || invalid) && (isTouchedInput || getSuperControl?.touched) && !isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled, 'invalid-empty-focus-out': !value && (getSuperControl?.invalid || invalid) && (isTouchedInput || getSuperControl?.touched) && !isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled && !inputConfig.dropdownLabel, 'invalid-focus-in': value && (getSuperControl?.invalid || invalid) && isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled, 'valid-focus-in': value && getSuperControl?.valid && isFocusInput && !inputConfig.hideClear && !inputConfig.blackInput && !isDisabled, 'valid-focus-out': value && getSuperControl?.valid && !isFocusInput && !inputConfig.blackInput && !inputConfig.isDisabled, 'inactive-empty': isDisabled && !value, 'inactive-filled': isDisabled && value, 'input-remove-trash-can': inputConfig.removeInput, 'input-remove-background': inputConfig.isInputBackgroundRemoved, 'input-blue-text': inputConfig.isBlueText, 'required-label-table': inputConfig.requiredLabel, }; } }