import { Pipe, PipeTransform } from "@angular/core"; import { AbstractControl } from "@angular/forms"; import { ICaInput } from "../config/ca-input.config"; import { LabelColor } from "../models/label-color.model"; @Pipe({ name: "inputPlaceholderIconClass", standalone: true, }) export class InputPlaceholderIconClassPipe implements PipeTransform { transform( getSuperControl: AbstractControl | null, isFocusInput: boolean, inputConfig: ICaInput, selectedDropdownLabelColor: LabelColor | null, isTouchedInput: boolean, isEditInput: boolean, value: string ): { [key: string]: boolean | undefined } { return { "inactive-empty": !getSuperControl?.value && inputConfig.isDisabled, "inactive-filled": getSuperControl?.value && inputConfig.isDisabled, "default-svg-color": !(inputConfig.dropdownLabel && isFocusInput) && !(inputConfig.dropdownLabel && selectedDropdownLabelColor), focus: isFocusInput && !inputConfig.dropdownLabel, "valid-focus-in": getSuperControl?.value && getSuperControl?.valid && isFocusInput && !selectedDropdownLabelColor && !inputConfig.dropdownLabel && !inputConfig.blackInput && !inputConfig.commands?.active && !inputConfig.isDisabled, "valid-focus-out": getSuperControl?.value && getSuperControl?.valid && !isFocusInput && !selectedDropdownLabelColor && !inputConfig.dropdownLabel && !inputConfig.isDisabled, "valid-focus-out-dropdown-label": getSuperControl?.value && getSuperControl?.valid && !isFocusInput && selectedDropdownLabelColor && inputConfig.dropdownLabel && !inputConfig.isDisabled, "invalid-focus-in": getSuperControl?.value && getSuperControl?.invalid && isFocusInput && !selectedDropdownLabelColor && !inputConfig.dropdownLabel && !inputConfig.blackInput && !inputConfig.isDisabled, "invalid-focus-out": getSuperControl?.invalid && !isFocusInput && !selectedDropdownLabelColor && !inputConfig.dropdownLabel && (isTouchedInput || getSuperControl?.touched) && !inputConfig.isDisabled, hidden: inputConfig.type === "password" && getSuperControl?.value, 'cursor-pointer': isEditInput }; } }