import { Pipe, PipeTransform } from '@angular/core'; import { ICaInput } from '../config/ca-input.config'; import { AbstractControl } from '@angular/forms'; @Pipe({ name: 'inputDatetimePickerClass', standalone: true, }) export class InputDatetimePickerClassPipe implements PipeTransform { transform( isFocusInput: boolean | undefined, isVisibleCommands: boolean, getSuperControl: AbstractControl | null, inputConfig: Partial, isTouchedInput: boolean | undefined, value: string ): { [key: string]: boolean | undefined | number } { return { focus: isFocusInput, 'valid-focus-in': (getSuperControl?.value && getSuperControl?.valid && isFocusInput && !isVisibleCommands && !inputConfig.dropdownImageInput?.url && !inputConfig.blackInput && !inputConfig.isDisabled) || (inputConfig.multipleInputValues?.options?.length && isFocusInput && !inputConfig.isInvalidSearchInDropdown && !inputConfig.isDisabled), 'valid-focus-out-filled': (((getSuperControl?.value && getSuperControl?.valid && !isFocusInput && !inputConfig.isDisabled && !isVisibleCommands && !inputConfig.blackInput && !inputConfig.isDisabled) || (!isFocusInput && inputConfig.dropdownImageInput?.url)) && !inputConfig.blackInput && !inputConfig.isDisabled) || (inputConfig.dropdownLabel && getSuperControl?.value && getSuperControl?.valid && !isFocusInput && !inputConfig.isDisabled) || (inputConfig.multipleInputValues?.options?.length && !isFocusInput), 'invalid-focus-in': getSuperControl?.invalid && getSuperControl?.value && isFocusInput && !inputConfig.blackInput && !( inputConfig.dropdownImageInput?.url || inputConfig.dropdownImageInput?.nameInitialsInsteadUrl ) && !inputConfig.isDisabled, 'invalid-focus-out-filled': ((getSuperControl?.value && getSuperControl?.invalid && !isFocusInput && !inputConfig.isDisabled && !inputConfig.blackInput) || (!inputConfig.dropdownImageInput?.url && (isTouchedInput || getSuperControl?.touched) && getSuperControl?.invalid && !isFocusInput && !inputConfig.isDisabled)) && !inputConfig.blackInput, 'invalid-focus-out-empty': !isFocusInput && !getSuperControl?.value && getSuperControl?.invalid && (isTouchedInput || getSuperControl?.touched) && inputConfig.multipleLabel?.labels?.length && !inputConfig.multipleInputValues?.options?.length && !inputConfig.isDisabled, dark: inputConfig.customClass === 'datetimeclass dark', 'time-picker-opacity': inputConfig.customClass === 'time-picker-opacity', 'dispatch-history-default-color': inputConfig.customClass === 'time-picker-opacity' && inputConfig.hideDropdownArrow && !isFocusInput, 'dispatch-history-row-hover': inputConfig.customClass === 'time-picker-opacity' && inputConfig.isHoverRow && inputConfig.hideDropdownArrow && !isFocusInput, }; } }