import { Pipe, PipeTransform } from '@angular/core'; import { ICaInput } from '../config/ca-input.config'; @Pipe({ name: 'labelClass', standalone: true, }) export class LabelClassPipe implements PipeTransform { transform( value: string | number, isFocusInput: boolean, inputConfig: ICaInput, isTouchedInput: boolean, superControlInvalid?: boolean, superControlTouched?: boolean ): { [key: string]: boolean | null | undefined | string | number } { return { required: inputConfig.isRequired && !inputConfig.isDisabled, 'inactive-empty': !value && inputConfig.isDisabled, 'up-label': inputConfig.placeholderWithLabel || 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) && !inputConfig.isDisabled && inputConfig.requiredLabel, }; } }