import { jsx as _jsx } from "react/jsx-runtime";
import { forwardRef } from 'react';
import { IMaskMixin } from 'react-imask';
import { StyledTextField } from './styles';
const MaskedTextField = IMaskMixin(({ ...props }) => {
    const textFieldProps = props;
    return _jsx(StyledTextField, { ...textFieldProps });
});
export const MaskField = forwardRef(({ onChange, onAccept, ...props }, ref) => {
    const maskFieldProps = { unmask: true, ...props };
    const handleMaskFieldAccept = (value, maskRef, e) => {
        if (onAccept) {
            return onAccept(value, maskRef, e, onChange);
        }
        onChange?.(value);
    };
    const handleOnChange = (event) => {
        // Вызов onChange чинит валидацию пустого поля на onBlur внутри Wizard
        if (event.target.value === '') {
            onChange?.(event.target.value);
        }
    };
    // фикс фокуса при клике на submit формы
    // (достигается путем вызова ref)
    const newRef = (instance) => {
        if (typeof ref === 'function') {
            ref(instance);
        }
        else if (ref) {
            ref.current = instance;
        }
    };
    return (_jsx(MaskedTextField, { ...maskFieldProps, inputRef: newRef, onAccept: handleMaskFieldAccept, onChange: handleOnChange }));
});
