|
@@ -18,6 +18,7 @@ import Typography from "@mui/material/Typography";
|
|
|
import { DatePicker, DatePickerProps } from "@mui/x-date-pickers/DatePicker";
|
|
|
import { BaseDateTimePickerSlotProps } from "@mui/x-date-pickers/DateTimePicker/shared";
|
|
|
import { DateTimePicker, DateTimePickerProps } from "@mui/x-date-pickers/DateTimePicker";
|
|
|
+import { renderTimeViewClock } from '@mui/x-date-pickers/timeViewRenderers';
|
|
|
import { isValid } from "date-fns";
|
|
|
import { ErrorBoundary } from "react-error-boundary";
|
|
|
|
|
@@ -40,6 +41,7 @@ interface DateRangeProps extends TaipyActiveProps, TaipyChangeProps {
|
|
|
labelEnd?: string;
|
|
|
separator?: string;
|
|
|
width?: string | number;
|
|
|
+ analogic?: boolean;
|
|
|
}
|
|
|
|
|
|
const textFieldProps = { textField: { margin: "dense" } } as BaseDateTimePickerSlotProps<Date>;
|
|
@@ -65,8 +67,14 @@ const getRangeDateTime = (
|
|
|
return [null, null];
|
|
|
};
|
|
|
|
|
|
+const analogicRenderers = {
|
|
|
+ hours: renderTimeViewClock,
|
|
|
+ minutes: renderTimeViewClock,
|
|
|
+ seconds: renderTimeViewClock
|
|
|
+}
|
|
|
+
|
|
|
const DateRange = (props: DateRangeProps) => {
|
|
|
- const { updateVarName, withTime = false, id, propagate = true, separator = "-" } = props;
|
|
|
+ const { updateVarName, withTime = false, id, propagate = true, separator = "-", analogic = false } = props;
|
|
|
const dispatch = useDispatch();
|
|
|
const formatConfig = useFormatConfig();
|
|
|
const tz = formatConfig.timeZone;
|
|
@@ -157,6 +165,7 @@ const DateRange = (props: DateRangeProps) => {
|
|
|
label={props.labelStart}
|
|
|
format={props.format}
|
|
|
sx={dateSx}
|
|
|
+ viewRenderers={ analogic ? analogicRenderers : undefined }
|
|
|
/>
|
|
|
<Typography>{separator}</Typography>
|
|
|
<DateTimePicker
|
|
@@ -173,6 +182,7 @@ const DateRange = (props: DateRangeProps) => {
|
|
|
label={props.labelEnd}
|
|
|
format={props.format}
|
|
|
sx={dateSx}
|
|
|
+ viewRenderers={ analogic ? analogicRenderers : undefined }
|
|
|
/>
|
|
|
</>
|
|
|
) : (
|