@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
109 lines (108 loc) • 3.44 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const setId = require("../utils/setId.cjs");
const Calendar_styles = require("./Calendar.styles.cjs");
const utils = require("./utils.cjs");
const context = require("../FormElement/context.cjs");
const SingleCalendar = require("./SingleCalendar/SingleCalendar.cjs");
const HvCalendar = (props) => {
const {
classes: classesProp,
id: idProp,
locale = utils.DEFAULT_LOCALE,
value: valueProp,
visibleMonth,
visibleYear,
rightVisibleMonth,
rightVisibleYear,
minimumDate,
maximumDate,
startAdornment,
onChange,
onInputChange,
onVisibleDateChange,
invalidDateLabel,
...others
} = uikitReactUtils.useDefaultProps("HvCalendar", props);
const { classes } = Calendar_styles.useClasses(classesProp);
const context$1 = React.useContext(context.HvFormElementContext);
const elementValue = React.useContext(context.HvFormElementValueContext);
const value = valueProp ?? elementValue;
const id = idProp ?? setId.setId(context$1.id, "single-calendar");
const rangeMode = utils.isRange(value);
const rightCalendarId = setId.setId(id, "single-calendar-right");
const clampedMonth = visibleMonth && visibleMonth % 13 > 0 ? visibleMonth % 13 : 1;
const singleCalendar = /* @__PURE__ */ jsxRuntime.jsx(
SingleCalendar.HvSingleCalendar,
{
id,
locale,
value,
visibleMonth: clampedMonth,
visibleYear,
minimumDate,
maximumDate,
onChange,
onInputChange: (evt, date) => {
onInputChange?.(evt, date, "left");
},
onVisibleDateChange,
invalidDateLabel,
...others
}
);
const rangeCalendar = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.rangeCalendarContainer, children: [
/* @__PURE__ */ jsxRuntime.jsx(
SingleCalendar.HvSingleCalendar,
{
className: classes.singleCalendar,
id,
locale,
value,
visibleMonth: clampedMonth,
visibleYear,
minimumDate,
maximumDate,
onChange,
onInputChange: (evt, date) => {
onInputChange?.(evt, date, "left");
},
onVisibleDateChange: (event, action, index) => onVisibleDateChange?.(event, action, index, "left"),
invalidDateLabel,
...others
}
),
/* @__PURE__ */ jsxRuntime.jsx(
SingleCalendar.HvSingleCalendar,
{
className: classes.singleCalendar,
id: rightCalendarId,
locale,
value,
visibleMonth: rightVisibleMonth,
visibleYear: rightVisibleYear,
minimumDate,
maximumDate,
onChange,
onInputChange: (evt, date) => {
onInputChange?.(evt, date, "right");
},
onVisibleDateChange: (event, action, index) => {
onVisibleDateChange?.(event, action, index, "right");
},
showEndDate: true,
invalidDateLabel,
...others
}
)
] });
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.root, children: [
startAdornment,
rangeMode ? rangeCalendar : singleCalendar
] });
};
exports.calendarClasses = Calendar_styles.staticClasses;
exports.HvCalendar = HvCalendar;