import { Pipe, PipeTransform } from '@angular/core'; import { ICaInput } from '../config/ca-input.config'; import { AbstractControl, Validators } from '@angular/forms'; @Pipe({ name: 'labelClass', standalone: true, }) export class LabelClassPipe implements PipeTransform { transform( value: string | number, isFocusInput: boolean, inputConfig: ICaInput, isTouchedInput: boolean, superControlInvalid?: boolean, superControlTouched?: boolean, control?: AbstractControl | null, isDisabledInput?: boolean ): { [key: string]: boolean | null | undefined | string | number } { const isFormControlRequired = control?.hasValidator(Validators.required) || inputConfig.isRequired; const isDisabled = isDisabledInput || inputConfig.isDisabled; return { required: isFormControlRequired && !isDisabled, 'inactive-empty': !value && isDisabled, 'up-label': value || value === 0 || isFocusInput || inputConfig?.multipleInputValues?.options?.length || (!inputConfig.dropdownImageInput?.withText && inputConfig.dropdownImageInput?.url && !inputConfig.labelInInput), 'input-placeholderIcon-on': inputConfig.placeholderIcon, hidden: inputConfig.placeholderInsteadOfLabel && (isFocusInput || value), 'multiple-labels': inputConfig?.multipleInputValues?.options?.length, 'in-label-focus': isFocusInput && inputConfig.labelInInput, 'in-label': inputConfig.labelInInput, 'required-label': !isFocusInput && !value && superControlInvalid && (isTouchedInput || superControlTouched) && !isDisabled && inputConfig.requiredLabel, }; } }