import { IconButton, InputAdornment, InputAdornmentProps } from "@mui/material"; import { DatePicker, DatePickerProps, DateTimePicker, DateTimePickerProps } from "@mui/x-date-pickers"; import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { renderTimeViewClock } from '@mui/x-date-pickers/timeViewRenderers'; import { browserLang } from 'fwork-jsts-browser'; import { Moment } from "moment"; import React from "react"; import { MdCancel } from "react-icons/md"; export interface DateTimePickerExtComponentProps extends Omit { wrapperProps?: React.DetailedHTMLProps< React.HTMLAttributes, HTMLSpanElement > onChange?: ( value: Moment | null, context: any ) => void } export const DateTimePickerExtComponent = (props: DateTimePickerExtComponentProps) => { const { wrapperProps, onChange, ...rest } = props const inputAdornment = (props: InputAdornmentProps) => ( {rest.value != null && ( onChange?.(null, {} as any)} > )} {props.children} ) return { const textFieldProps = typeof rest.slotProps?.textField === 'function' ? rest.slotProps.textField(ownerState) : rest.slotProps?.textField return { ...textFieldProps, style: { width: '100%', ...textFieldProps?.style, }, } }, }} viewRenderers={rest.viewRenderers ?? { hours: renderTimeViewClock, minutes: renderTimeViewClock, seconds: renderTimeViewClock, }} views={['year', 'month', 'day', 'hours', 'minutes', 'seconds']} onChange={(value, context) => { onChange?.(value as Moment | null, context) }} /> {rest.value != null && onChange?.(null, {} as any)}> } } export interface DatePickerExtComponentProps extends Omit { wrapperProps?: React.DetailedHTMLProps< React.HTMLAttributes, HTMLSpanElement > onChange?: ( value: Moment | null, context: any ) => void } export const DatePickerExtComponent = (props: DatePickerExtComponentProps) => { const { wrapperProps, onChange, ...rest } = props const inputAdornment = (props: InputAdornmentProps) => ( {rest.value != null && ( onChange?.(null, {} as any)} > )} {props.children} ) return { const textFieldProps = typeof rest.slotProps?.textField === 'function' ? rest.slotProps.textField(ownerState) : rest.slotProps?.textField return { ...textFieldProps, style: { width: '100%', ...textFieldProps?.style, }, } }, }} views={['year', 'month', 'day']} onChange={(value, context) => { onChange?.(value as Moment | null, context) }} /> }