UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

109 lines (108 loc) 3.44 kB
"use strict"; 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;