@hitachivantara/uikit-react-core 4.4.2 → 4.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/Calendar/Calendar.d.ts +4 -0
  2. package/dist/Calendar/Calendar.js +13 -5
  3. package/dist/Calendar/Calendar.js.map +1 -1
  4. package/dist/Calendar/CalendarHeader/CalendarHeader.d.ts +11 -3
  5. package/dist/Calendar/CalendarHeader/CalendarHeader.js +9 -3
  6. package/dist/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  7. package/dist/Calendar/SingleCalendar/SingleCalendar.js +9 -3
  8. package/dist/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  9. package/dist/DatePicker/DatePicker.d.ts +4 -0
  10. package/dist/DatePicker/DatePicker.js +11 -4
  11. package/dist/DatePicker/DatePicker.js.map +1 -1
  12. package/dist/legacy/Calendar/Calendar.d.ts +4 -0
  13. package/dist/legacy/Calendar/Calendar.js +13 -5
  14. package/dist/legacy/Calendar/Calendar.js.map +1 -1
  15. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.d.ts +11 -3
  16. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js +9 -3
  17. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  18. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js +9 -3
  19. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  20. package/dist/legacy/DatePicker/DatePicker.d.ts +4 -0
  21. package/dist/legacy/DatePicker/DatePicker.js +11 -4
  22. package/dist/legacy/DatePicker/DatePicker.js.map +1 -1
  23. package/dist/modern/Calendar/Calendar.d.ts +4 -0
  24. package/dist/modern/Calendar/Calendar.js +14 -6
  25. package/dist/modern/Calendar/Calendar.js.map +1 -1
  26. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.d.ts +11 -3
  27. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js +9 -4
  28. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  29. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js +9 -3
  30. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  31. package/dist/modern/DatePicker/DatePicker.d.ts +4 -0
  32. package/dist/modern/DatePicker/DatePicker.js +11 -4
  33. package/dist/modern/DatePicker/DatePicker.js.map +1 -1
  34. package/package.json +3 -3
@@ -75,6 +75,10 @@ export interface HvCalendarProps
75
75
  * An element placed before the Calendar
76
76
  */
77
77
  startAdornment: React.ReactNode;
78
+ /**
79
+ * An element placed before the Calendar
80
+ */
81
+ invalidDateLabel?: string;
78
82
  }
79
83
 
80
84
  export default function HvCalendar(props: HvCalendarProps): JSX.Element | null;
@@ -28,7 +28,7 @@ var _FormElement = require("../Forms/FormElement");
28
28
  var _utils2 = require("./utils");
29
29
  var _SingleCalendar = _interopRequireDefault(require("./SingleCalendar"));
30
30
  var _jsxRuntime = require("react/jsx-runtime");
31
- var _excluded = ["classes", "id", "locale", "value", "visibleMonth", "visibleYear", "rightVisibleMonth", "rightVisibleYear", "minimumDate", "maximumDate", "startAdornment", "onChange", "onInputChange", "onVisibleDateChange"];
31
+ var _excluded = ["classes", "id", "locale", "value", "visibleMonth", "visibleYear", "rightVisibleMonth", "rightVisibleYear", "minimumDate", "maximumDate", "startAdornment", "onChange", "onInputChange", "onVisibleDateChange", "invalidDateLabel"];
32
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
33
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
34
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -48,6 +48,7 @@ var HvCalendar = function HvCalendar(_ref) {
48
48
  onChange = _ref.onChange,
49
49
  _onInputChange = _ref.onInputChange,
50
50
  _onVisibleDateChange = _ref.onVisibleDateChange,
51
+ invalidDateLabel = _ref.invalidDateLabel,
51
52
  others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
52
53
  var _useContext = (0, _react.useContext)(_FormElement.HvFormElementContext),
53
54
  elementId = _useContext.elementId;
@@ -69,7 +70,8 @@ var HvCalendar = function HvCalendar(_ref) {
69
70
  onInputChange: function onInputChange(evt, date) {
70
71
  return _onInputChange(evt, date, "left");
71
72
  },
72
- onVisibleDateChange: _onVisibleDateChange
73
+ onVisibleDateChange: _onVisibleDateChange,
74
+ invalidDateLabel: invalidDateLabel
73
75
  }, others));
74
76
  var rangeCalendar = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
75
77
  className: classes.rangeCalendarContainer,
@@ -88,7 +90,8 @@ var HvCalendar = function HvCalendar(_ref) {
88
90
  },
89
91
  onVisibleDateChange: function onVisibleDateChange(event, action, index) {
90
92
  return _onVisibleDateChange === null || _onVisibleDateChange === void 0 ? void 0 : _onVisibleDateChange(event, action, index, "left");
91
- }
93
+ },
94
+ invalidDateLabel: invalidDateLabel
92
95
  }, others)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SingleCalendar.default, _objectSpread({
93
96
  className: classes.singleCalendar,
94
97
  id: rightCalendarId,
@@ -105,7 +108,8 @@ var HvCalendar = function HvCalendar(_ref) {
105
108
  onVisibleDateChange: function onVisibleDateChange(event, action, index) {
106
109
  _onVisibleDateChange === null || _onVisibleDateChange === void 0 ? void 0 : _onVisibleDateChange(event, action, index, "right");
107
110
  },
108
- showEndDate: true
111
+ showEndDate: true,
112
+ invalidDateLabel: invalidDateLabel
109
113
  }, others))]
110
114
  });
111
115
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
@@ -176,7 +180,11 @@ process.env.NODE_ENV !== "production" ? HvCalendar.propTypes = {
176
180
  /**
177
181
  * An element placed before the Calendar
178
182
  */
179
- startAdornment: _propTypes.default.node
183
+ startAdornment: _propTypes.default.node,
184
+ /**
185
+ * Label shown when date is invalid.
186
+ */
187
+ invalidDateLabel: _propTypes.default.string
180
188
  } : void 0;
181
189
  var _default = (0, _styles.withStyles)(_styles2.default, {
182
190
  name: "HvCalendar"
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","names":["HvCalendar","classes","id","locale","value","visibleMonth","visibleYear","rightVisibleMonth","rightVisibleYear","minimumDate","maximumDate","startAdornment","onChange","onInputChange","onVisibleDateChange","others","useContext","HvFormElementContext","elementId","elementValue","HvFormElementValueContext","localValue","localId","setId","rangeMode","isRange","rightCalendarId","clampedMonth","singleCalendar","evt","date","rangeCalendar","rangeCalendarContainer","event","action","index","root","propTypes","PropTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","startDate","endDate","number","func","node","withStyles","styles","name"],"sources":["../../src/Calendar/Calendar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@mui/styles\";\nimport { setId } from \"../utils\";\nimport styles from \"./styles\";\nimport { HvFormElementContext, HvFormElementValueContext } from \"../Forms/FormElement\";\nimport { isRange } from \"./utils\";\nimport SingleCalendar from \"./SingleCalendar\";\n\nconst HvCalendar = ({\n classes,\n id,\n locale,\n value,\n visibleMonth,\n visibleYear,\n rightVisibleMonth,\n rightVisibleYear,\n minimumDate,\n maximumDate,\n startAdornment,\n onChange,\n onInputChange,\n onVisibleDateChange,\n ...others\n}) => {\n const { elementId } = useContext(HvFormElementContext);\n const elementValue = useContext(HvFormElementValueContext);\n const localValue = value ?? elementValue;\n const localId = id ?? setId(elementId, \"single-calendar\");\n const rangeMode = isRange(localValue);\n const rightCalendarId = setId(localId, \"single-calendar-right\");\n const clampedMonth = visibleMonth % 13 > 0 ? visibleMonth % 13 : 1;\n\n const singleCalendar = (\n <SingleCalendar\n id={localId}\n locale={locale}\n value={localValue}\n visibleMonth={clampedMonth}\n visibleYear={visibleYear}\n minimumDate={minimumDate}\n maximumDate={maximumDate}\n onChange={onChange}\n onInputChange={(evt, date) => onInputChange(evt, date, \"left\")}\n onVisibleDateChange={onVisibleDateChange}\n {...others}\n />\n );\n\n const rangeCalendar = (\n <div className={classes.rangeCalendarContainer}>\n <SingleCalendar\n className={classes.singleCalendar}\n id={localId}\n locale={locale}\n value={localValue}\n visibleMonth={clampedMonth}\n visibleYear={visibleYear}\n minimumDate={minimumDate}\n maximumDate={maximumDate}\n onChange={onChange}\n onInputChange={(evt, date) => onInputChange(evt, date, \"left\")}\n onVisibleDateChange={(event, action, index) =>\n onVisibleDateChange?.(event, action, index, \"left\")\n }\n {...others}\n />\n\n <SingleCalendar\n className={classes.singleCalendar}\n id={rightCalendarId}\n locale={locale}\n value={localValue}\n visibleMonth={rightVisibleMonth}\n visibleYear={rightVisibleYear}\n minimumDate={minimumDate}\n maximumDate={maximumDate}\n onChange={onChange}\n onInputChange={(evt, date) => onInputChange(evt, date, \"right\")}\n onVisibleDateChange={(event, action, index) => {\n onVisibleDateChange?.(event, action, index, \"right\");\n }}\n showEndDate\n {...others}\n />\n </div>\n );\n\n return (\n <div className={classes.root}>\n {startAdornment}\n {rangeMode ? rangeCalendar : singleCalendar}\n </div>\n );\n};\n\nHvCalendar.propTypes = {\n /**\n * Styles applied from the theme.\n */\n classes: PropTypes.instanceOf(Object).isRequired,\n /**\n * Identifier.\n */\n id: PropTypes.string,\n /**\n * The calendar locale. If undefined, it defaults to en-US\n *\n */\n locale: PropTypes.string,\n /**\n * Date that the calendar would show.\n * if using the object format the calendar enter in range mode showing two calendars\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.shape({ startDate: PropTypes.instanceOf(Date), endDate: PropTypes.instanceOf(Date) }),\n ]),\n /**\n * Controls the visible month of the Calendar\n */\n visibleMonth: PropTypes.number,\n /**\n * Controls the visible year of the Calendar\n */\n visibleYear: PropTypes.number,\n /**\n * Controls the visible month of the Calendar on the right side of the datepicker\n */\n rightVisibleMonth: PropTypes.number,\n /**\n * Controls the visible year of the Calendar on the right side of the datepicker\n */\n rightVisibleYear: PropTypes.number,\n /**\n * Callback function to be triggered when the selected date has changed.\n */\n onChange: PropTypes.func,\n /**\n * Callback function to be triggered when the selected date input has changed.\n */\n onInputChange: PropTypes.func,\n /**\n * Callback function to be triggered when the user clicks on the month or year selector.\n * it receives the action that was pressed:\n * previous_month, next_month, previous_year, next_year,month\n */\n onVisibleDateChange: PropTypes.func,\n\n /**\n * The maximum selectable date after this all values are disabled.\n */\n maximumDate: PropTypes.instanceOf(Date),\n /**\n * The minimum selectable date before this all values are disabled.\n */\n minimumDate: PropTypes.instanceOf(Date),\n /**\n * An element placed before the Calendar\n */\n startAdornment: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvCalendar\" })(HvCalendar);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.js","names":["HvCalendar","classes","id","locale","value","visibleMonth","visibleYear","rightVisibleMonth","rightVisibleYear","minimumDate","maximumDate","startAdornment","onChange","onInputChange","onVisibleDateChange","invalidDateLabel","others","useContext","HvFormElementContext","elementId","elementValue","HvFormElementValueContext","localValue","localId","setId","rangeMode","isRange","rightCalendarId","clampedMonth","singleCalendar","evt","date","rangeCalendar","rangeCalendarContainer","event","action","index","root","propTypes","PropTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","startDate","endDate","number","func","node","withStyles","styles","name"],"sources":["../../src/Calendar/Calendar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@mui/styles\";\nimport { setId } from \"../utils\";\nimport styles from \"./styles\";\nimport { HvFormElementContext, HvFormElementValueContext } from \"../Forms/FormElement\";\nimport { isRange } from \"./utils\";\nimport SingleCalendar from \"./SingleCalendar\";\n\nconst HvCalendar = ({\n classes,\n id,\n locale,\n value,\n visibleMonth,\n visibleYear,\n rightVisibleMonth,\n rightVisibleYear,\n minimumDate,\n maximumDate,\n startAdornment,\n onChange,\n onInputChange,\n onVisibleDateChange,\n invalidDateLabel,\n ...others\n}) => {\n const { elementId } = useContext(HvFormElementContext);\n const elementValue = useContext(HvFormElementValueContext);\n const localValue = value ?? elementValue;\n const localId = id ?? setId(elementId, \"single-calendar\");\n const rangeMode = isRange(localValue);\n const rightCalendarId = setId(localId, \"single-calendar-right\");\n const clampedMonth = visibleMonth % 13 > 0 ? visibleMonth % 13 : 1;\n\n const singleCalendar = (\n <SingleCalendar\n id={localId}\n locale={locale}\n value={localValue}\n visibleMonth={clampedMonth}\n visibleYear={visibleYear}\n minimumDate={minimumDate}\n maximumDate={maximumDate}\n onChange={onChange}\n onInputChange={(evt, date) => onInputChange(evt, date, \"left\")}\n onVisibleDateChange={onVisibleDateChange}\n invalidDateLabel={invalidDateLabel}\n {...others}\n />\n );\n\n const rangeCalendar = (\n <div className={classes.rangeCalendarContainer}>\n <SingleCalendar\n className={classes.singleCalendar}\n id={localId}\n locale={locale}\n value={localValue}\n visibleMonth={clampedMonth}\n visibleYear={visibleYear}\n minimumDate={minimumDate}\n maximumDate={maximumDate}\n onChange={onChange}\n onInputChange={(evt, date) => onInputChange(evt, date, \"left\")}\n onVisibleDateChange={(event, action, index) =>\n onVisibleDateChange?.(event, action, index, \"left\")\n }\n invalidDateLabel={invalidDateLabel}\n {...others}\n />\n\n <SingleCalendar\n className={classes.singleCalendar}\n id={rightCalendarId}\n locale={locale}\n value={localValue}\n visibleMonth={rightVisibleMonth}\n visibleYear={rightVisibleYear}\n minimumDate={minimumDate}\n maximumDate={maximumDate}\n onChange={onChange}\n onInputChange={(evt, date) => onInputChange(evt, date, \"right\")}\n onVisibleDateChange={(event, action, index) => {\n onVisibleDateChange?.(event, action, index, \"right\");\n }}\n showEndDate\n invalidDateLabel={invalidDateLabel}\n {...others}\n />\n </div>\n );\n\n return (\n <div className={classes.root}>\n {startAdornment}\n {rangeMode ? rangeCalendar : singleCalendar}\n </div>\n );\n};\n\nHvCalendar.propTypes = {\n /**\n * Styles applied from the theme.\n */\n classes: PropTypes.instanceOf(Object).isRequired,\n /**\n * Identifier.\n */\n id: PropTypes.string,\n /**\n * The calendar locale. If undefined, it defaults to en-US\n *\n */\n locale: PropTypes.string,\n /**\n * Date that the calendar would show.\n * if using the object format the calendar enter in range mode showing two calendars\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.shape({ startDate: PropTypes.instanceOf(Date), endDate: PropTypes.instanceOf(Date) }),\n ]),\n /**\n * Controls the visible month of the Calendar\n */\n visibleMonth: PropTypes.number,\n /**\n * Controls the visible year of the Calendar\n */\n visibleYear: PropTypes.number,\n /**\n * Controls the visible month of the Calendar on the right side of the datepicker\n */\n rightVisibleMonth: PropTypes.number,\n /**\n * Controls the visible year of the Calendar on the right side of the datepicker\n */\n rightVisibleYear: PropTypes.number,\n /**\n * Callback function to be triggered when the selected date has changed.\n */\n onChange: PropTypes.func,\n /**\n * Callback function to be triggered when the selected date input has changed.\n */\n onInputChange: PropTypes.func,\n /**\n * Callback function to be triggered when the user clicks on the month or year selector.\n * it receives the action that was pressed:\n * previous_month, next_month, previous_year, next_year,month\n */\n onVisibleDateChange: PropTypes.func,\n\n /**\n * The maximum selectable date after this all values are disabled.\n */\n maximumDate: PropTypes.instanceOf(Date),\n /**\n * The minimum selectable date before this all values are disabled.\n */\n minimumDate: PropTypes.instanceOf(Date),\n /**\n * An element placed before the Calendar\n */\n startAdornment: PropTypes.node,\n /**\n * Label shown when date is invalid.\n */\n invalidDateLabel: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvCalendar\" })(HvCalendar);\n"],"mappings":"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"}
@@ -15,7 +15,11 @@ export type HvHeaderClassKey =
15
15
  | "input";
16
16
 
17
17
  export interface HvHeaderCalendarProps
18
- extends StandardProps<React.HTMLAttributes<HTMLElement>, HvHeaderClassKey, "onChange" | "onBlur" | "onFocus"> {
18
+ extends StandardProps<
19
+ React.HTMLAttributes<HTMLElement>,
20
+ HvHeaderClassKey,
21
+ "onChange" | "onBlur" | "onFocus"
22
+ > {
19
23
  /**
20
24
  * Locale to be used by the calendar header.
21
25
  */
@@ -27,14 +31,18 @@ export interface HvHeaderCalendarProps
27
31
  /**
28
32
  * Callback function to be triggered when the selected date has changed.
29
33
  */
30
- onChange?: (
34
+ onChange?: (
31
35
  event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement> | undefined,
32
36
  value: string | Date | DateRangeProp
33
- ) => void;
37
+ ) => void;
34
38
  /**
35
39
  * Indicates if header should display end date in a date range.
36
40
  */
37
41
  showEndDate?: boolean;
42
+ /**
43
+ * Label shown when date is invalid.
44
+ */
45
+ invalidDateLabel: string;
38
46
  }
39
47
 
40
48
  export default function HvHeaderCalendar(props: HvHeaderCalendarProps): JSX.Element | null;
@@ -37,7 +37,7 @@ var _FormElement = require("../../Forms/FormElement");
37
37
  var _utils2 = require("../utils");
38
38
  var _jsxRuntime = require("react/jsx-runtime");
39
39
  var _Info;
40
- var _excluded = ["id", "value", "locale", "classes", "onChange", "showEndDate", "onFocus"];
40
+ var _excluded = ["id", "value", "locale", "classes", "onChange", "showEndDate", "onFocus", "invalidDateLabel"];
41
41
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
42
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
43
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -55,6 +55,8 @@ var HvCalendarHeader = function HvCalendarHeader(_ref) {
55
55
  onChange = _ref.onChange,
56
56
  showEndDate = _ref.showEndDate,
57
57
  onFocus = _ref.onFocus,
58
+ _ref$invalidDateLabel = _ref.invalidDateLabel,
59
+ invalidDateLabel = _ref$invalidDateLabel === void 0 ? "Invalid Date" : _ref$invalidDateLabel,
58
60
  others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
59
61
  var _useContext = (0, _react.useContext)(_FormElement.HvFormElementContext),
60
62
  elementId = _useContext.elementId;
@@ -184,7 +186,7 @@ var HvCalendarHeader = function HvCalendarHeader(_ref) {
184
186
  children: [_Info || (_Info = /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikitReactIcons.Info, {
185
187
  color: "acce3",
186
188
  iconSize: "S"
187
- })), "Invalid date"]
189
+ })), invalidDateLabel]
188
190
  })
189
191
  })]
190
192
  });
@@ -223,7 +225,11 @@ process.env.NODE_ENV !== "production" ? HvCalendarHeader.propTypes = {
223
225
  /**
224
226
  * Indicates if header should display end date in a date range.
225
227
  */
226
- showEndDate: _propTypes.default.bool
228
+ showEndDate: _propTypes.default.bool,
229
+ /**
230
+ * Label shown when date is invalid.
231
+ */
232
+ invalidDateLabel: _propTypes.default.string
227
233
  } : void 0;
228
234
  var _default = (0, _styles.withStyles)(_styles2.default, {
229
235
  name: "HvCalendarHeader"
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarHeader.js","names":["dayjs","extend","localeData","localizedFormat","customParseFormat","Enter","KeyboardCodes","HvCalendarHeader","id","value","locale","classes","onChange","showEndDate","onFocus","others","useContext","HvFormElementContext","elementId","elementValue","HvFormElementValueContext","HvFormElementDescriptorsContext","label","localValue","isRange","endDate","startDate","useState","dateValue","setDateValue","editedValue","setEditedValue","displayValue","setDisplayValue","weekdayDisplay","setWeekdayDisplay","localId","setId","inputValue","localeFormat","longDateFormat","length","isValid","isValidValue","setIsValidValue","validateInput","incomingValid","undefined","useEffect","valid","weekday","Intl","DateTimeFormat","format","formatDMY","handleNewDate","event","date","localeParsedDate","isValidInput","dateParsed","toDate","isSameDay","onBlurHandler","isNil","keyDownHandler","isKeypress","preventDefault","onFocusHandler","formattedDate","onChangeHandler","target","clsx","root","invalid","headerDayOfWeek","headerDate","input","inputBorderContainer","height","invalidMessageStyling","formElementType","propTypes","PropTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","func","bool","withStyles","styles","name"],"sources":["../../../src/Calendar/CalendarHeader/CalendarHeader.js"],"sourcesContent":["import React, { useState, useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Info } from \"@hitachivantara/uikit-react-icons\";\nimport dayjs from \"dayjs\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { withStyles } from \"@mui/styles\";\nimport { setId, isKeypress, KeyboardCodes } from \"../../utils\";\nimport HvTypography from \"../../Typography\";\nimport styles from \"./styles\";\nimport {\n HvFormElementContext,\n HvFormElementValueContext,\n HvFormElementDescriptorsContext,\n} from \"../../Forms/FormElement\";\nimport { isRange, isSameDay, formatDMY } from \"../utils\";\n\ndayjs.extend(localeData);\ndayjs.extend(localizedFormat);\ndayjs.extend(customParseFormat);\n\nconst { Enter } = KeyboardCodes;\n\nconst HvCalendarHeader = ({\n id,\n value,\n locale,\n classes,\n onChange,\n showEndDate,\n onFocus,\n ...others\n}) => {\n const { elementId } = useContext(HvFormElementContext);\n const elementValue = useContext(HvFormElementValueContext);\n const { label } = useContext(HvFormElementDescriptorsContext);\n\n let localValue = value ?? elementValue ?? \"\";\n if (isRange(localValue)) {\n localValue = showEndDate ? localValue.endDate : localValue.startDate;\n }\n const [dateValue, setDateValue] = useState(localValue);\n const [editedValue, setEditedValue] = useState(null);\n const [displayValue, setDisplayValue] = useState(\"\");\n const [weekdayDisplay, setWeekdayDisplay] = useState(\"\");\n\n const localId = id ?? setId(elementId, \"calendarHeader\");\n\n const inputValue = editedValue ?? displayValue;\n const localeFormat = dayjs().locale(locale).localeData().longDateFormat(\"L\");\n\n const [isValidValue, setIsValidValue] = useState(\n inputValue.length === 0 || (!!inputValue && dayjs(localValue).isValid())\n );\n\n const validateInput = (incomingValid) =>\n incomingValid === undefined || dayjs(incomingValid).isValid();\n useEffect(() => {\n const valid = validateInput(localValue);\n setIsValidValue(valid);\n if (valid) {\n if (!localValue) {\n setDisplayValue(\"\");\n setEditedValue(null);\n setWeekdayDisplay(\"\");\n return;\n }\n const weekday = new Intl.DateTimeFormat(locale, { weekday: \"short\" }).format(localValue);\n setDisplayValue(formatDMY(localValue, locale));\n setEditedValue(null);\n setWeekdayDisplay(weekday);\n }\n }, [localValue, locale]);\n\n const handleNewDate = (event, date) => {\n // attempt to format in locale data, or fallback to default\n const localeParsedDate = dayjs(date, localeFormat);\n\n const isValidInput = localeParsedDate.isValid();\n const dateParsed = isValidInput ? localeParsedDate.toDate() : dayjs(date).toDate();\n // prevent extra updates\n if (!isSameDay(dateParsed, dateValue)) {\n setDateValue(dateParsed);\n onChange?.(event, dateParsed);\n }\n\n setIsValidValue(isValidInput);\n if (isValidInput) {\n setEditedValue(null);\n }\n };\n\n const onBlurHandler = (event) => {\n if (isNil(editedValue)) return;\n if (editedValue === \"\") {\n setIsValidValue(true);\n setEditedValue(null);\n return;\n }\n handleNewDate(event, editedValue);\n };\n\n const keyDownHandler = (event) => {\n if (!isKeypress(event, Enter) || isNil(editedValue) || editedValue === \"\") return;\n event.preventDefault();\n\n handleNewDate(event, editedValue);\n };\n\n const onFocusHandler = (event) => {\n if (!localValue) return;\n const formattedDate = isValidValue ? dayjs(localValue).locale(locale).format(\"L\") : editedValue;\n setEditedValue(formattedDate);\n onFocus?.(event, formattedDate);\n };\n\n const onChangeHandler = (event) => {\n setEditedValue(event.target.value);\n };\n return (\n <>\n <div\n id={localId}\n className={clsx(classes.root, {\n [classes.invalid]: !isValidValue && inputValue !== \"\",\n })}\n >\n <HvTypography variant=\"normalText\" className={classes.headerDayOfWeek}>\n {weekdayDisplay || \"\\u00A0\"}\n </HvTypography>\n <div className={classes.headerDate}>\n <input\n type=\"text\"\n id={setId(localId, \"header-input\")}\n placeholder={localeFormat}\n value={inputValue}\n className={classes.input}\n onBlur={onBlurHandler}\n onFocus={onFocusHandler}\n onChange={onChangeHandler}\n onKeyDown={keyDownHandler}\n aria-labelledby={label?.[0]?.id}\n {...others}\n />\n </div>\n </div>\n {!isValidValue && inputValue !== \"\" && (\n <div role=\"presentation\" className={classes.inputBorderContainer} />\n )}\n <div style={{ height: 32 }}>\n {!isValidValue && inputValue !== \"\" && (\n <HvTypography\n component=\"span\"\n variant=\"normalText\"\n className={classes.invalidMessageStyling}\n >\n <Info color=\"acce3\" iconSize=\"S\" />\n Invalid date\n </HvTypography>\n )}\n </div>\n </>\n );\n};\n\n// TODO: refactor this out\nHvCalendarHeader.formElementType = \"HvCalendarHeader\";\n\nHvCalendarHeader.propTypes = {\n /**\n * A Jss Object used to override or extend the component styles.\n */\n classes: PropTypes.instanceOf(Object).isRequired,\n /**\n * Identifier.\n */\n id: PropTypes.string,\n /**\n * The text to be shown on the main part of the header.\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.string,\n PropTypes.shape({ startDate: PropTypes.instanceOf(Date), endDate: PropTypes.instanceOf(Date) }),\n ]),\n\n /**\n * Locale to be used by the calendar.\n */\n locale: PropTypes.string.isRequired,\n /**\n * Callback to define the input date.\n */\n onChange: PropTypes.func,\n /**\n * Callback to handle input onFocus.\n */\n onFocus: PropTypes.func,\n /**\n * Indicates if header should display end date in a date range.\n */\n showEndDate: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvCalendarHeader\" })(HvCalendarHeader);\n"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarHeader.js","names":["dayjs","extend","localeData","localizedFormat","customParseFormat","Enter","KeyboardCodes","HvCalendarHeader","id","value","locale","classes","onChange","showEndDate","onFocus","invalidDateLabel","others","useContext","HvFormElementContext","elementId","elementValue","HvFormElementValueContext","HvFormElementDescriptorsContext","label","localValue","isRange","endDate","startDate","useState","dateValue","setDateValue","editedValue","setEditedValue","displayValue","setDisplayValue","weekdayDisplay","setWeekdayDisplay","localId","setId","inputValue","localeFormat","longDateFormat","length","isValid","isValidValue","setIsValidValue","validateInput","incomingValid","undefined","useEffect","valid","weekday","Intl","DateTimeFormat","format","formatDMY","handleNewDate","event","date","localeParsedDate","isValidInput","dateParsed","toDate","isSameDay","onBlurHandler","isNil","keyDownHandler","isKeypress","preventDefault","onFocusHandler","formattedDate","onChangeHandler","target","clsx","root","invalid","headerDayOfWeek","headerDate","input","inputBorderContainer","height","invalidMessageStyling","formElementType","propTypes","PropTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","func","bool","withStyles","styles","name"],"sources":["../../../src/Calendar/CalendarHeader/CalendarHeader.js"],"sourcesContent":["import React, { useState, useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Info } from \"@hitachivantara/uikit-react-icons\";\nimport dayjs from \"dayjs\";\nimport localeData from \"dayjs/plugin/localeData\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { withStyles } from \"@mui/styles\";\nimport { setId, isKeypress, KeyboardCodes } from \"../../utils\";\nimport HvTypography from \"../../Typography\";\nimport styles from \"./styles\";\nimport {\n HvFormElementContext,\n HvFormElementValueContext,\n HvFormElementDescriptorsContext,\n} from \"../../Forms/FormElement\";\nimport { isRange, isSameDay, formatDMY } from \"../utils\";\n\ndayjs.extend(localeData);\ndayjs.extend(localizedFormat);\ndayjs.extend(customParseFormat);\n\nconst { Enter } = KeyboardCodes;\n\nconst HvCalendarHeader = ({\n id,\n value,\n locale,\n classes,\n onChange,\n showEndDate,\n onFocus,\n invalidDateLabel = \"Invalid Date\",\n ...others\n}) => {\n const { elementId } = useContext(HvFormElementContext);\n const elementValue = useContext(HvFormElementValueContext);\n const { label } = useContext(HvFormElementDescriptorsContext);\n\n let localValue = value ?? elementValue ?? \"\";\n if (isRange(localValue)) {\n localValue = showEndDate ? localValue.endDate : localValue.startDate;\n }\n const [dateValue, setDateValue] = useState(localValue);\n const [editedValue, setEditedValue] = useState(null);\n const [displayValue, setDisplayValue] = useState(\"\");\n const [weekdayDisplay, setWeekdayDisplay] = useState(\"\");\n\n const localId = id ?? setId(elementId, \"calendarHeader\");\n\n const inputValue = editedValue ?? displayValue;\n const localeFormat = dayjs().locale(locale).localeData().longDateFormat(\"L\");\n\n const [isValidValue, setIsValidValue] = useState(\n inputValue.length === 0 || (!!inputValue && dayjs(localValue).isValid())\n );\n\n const validateInput = (incomingValid) =>\n incomingValid === undefined || dayjs(incomingValid).isValid();\n useEffect(() => {\n const valid = validateInput(localValue);\n setIsValidValue(valid);\n if (valid) {\n if (!localValue) {\n setDisplayValue(\"\");\n setEditedValue(null);\n setWeekdayDisplay(\"\");\n return;\n }\n const weekday = new Intl.DateTimeFormat(locale, { weekday: \"short\" }).format(localValue);\n setDisplayValue(formatDMY(localValue, locale));\n setEditedValue(null);\n setWeekdayDisplay(weekday);\n }\n }, [localValue, locale]);\n\n const handleNewDate = (event, date) => {\n // attempt to format in locale data, or fallback to default\n const localeParsedDate = dayjs(date, localeFormat);\n\n const isValidInput = localeParsedDate.isValid();\n const dateParsed = isValidInput ? localeParsedDate.toDate() : dayjs(date).toDate();\n // prevent extra updates\n if (!isSameDay(dateParsed, dateValue)) {\n setDateValue(dateParsed);\n onChange?.(event, dateParsed);\n }\n\n setIsValidValue(isValidInput);\n if (isValidInput) {\n setEditedValue(null);\n }\n };\n\n const onBlurHandler = (event) => {\n if (isNil(editedValue)) return;\n if (editedValue === \"\") {\n setIsValidValue(true);\n setEditedValue(null);\n return;\n }\n handleNewDate(event, editedValue);\n };\n\n const keyDownHandler = (event) => {\n if (!isKeypress(event, Enter) || isNil(editedValue) || editedValue === \"\") return;\n event.preventDefault();\n\n handleNewDate(event, editedValue);\n };\n\n const onFocusHandler = (event) => {\n if (!localValue) return;\n const formattedDate = isValidValue ? dayjs(localValue).locale(locale).format(\"L\") : editedValue;\n setEditedValue(formattedDate);\n onFocus?.(event, formattedDate);\n };\n\n const onChangeHandler = (event) => {\n setEditedValue(event.target.value);\n };\n return (\n <>\n <div\n id={localId}\n className={clsx(classes.root, {\n [classes.invalid]: !isValidValue && inputValue !== \"\",\n })}\n >\n <HvTypography variant=\"normalText\" className={classes.headerDayOfWeek}>\n {weekdayDisplay || \"\\u00A0\"}\n </HvTypography>\n <div className={classes.headerDate}>\n <input\n type=\"text\"\n id={setId(localId, \"header-input\")}\n placeholder={localeFormat}\n value={inputValue}\n className={classes.input}\n onBlur={onBlurHandler}\n onFocus={onFocusHandler}\n onChange={onChangeHandler}\n onKeyDown={keyDownHandler}\n aria-labelledby={label?.[0]?.id}\n {...others}\n />\n </div>\n </div>\n {!isValidValue && inputValue !== \"\" && (\n <div role=\"presentation\" className={classes.inputBorderContainer} />\n )}\n <div style={{ height: 32 }}>\n {!isValidValue && inputValue !== \"\" && (\n <HvTypography\n component=\"span\"\n variant=\"normalText\"\n className={classes.invalidMessageStyling}\n >\n <Info color=\"acce3\" iconSize=\"S\" />\n {invalidDateLabel}\n </HvTypography>\n )}\n </div>\n </>\n );\n};\n\n// TODO: refactor this out\nHvCalendarHeader.formElementType = \"HvCalendarHeader\";\n\nHvCalendarHeader.propTypes = {\n /**\n * A Jss Object used to override or extend the component styles.\n */\n classes: PropTypes.instanceOf(Object).isRequired,\n /**\n * Identifier.\n */\n id: PropTypes.string,\n /**\n * The text to be shown on the main part of the header.\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.string,\n PropTypes.shape({ startDate: PropTypes.instanceOf(Date), endDate: PropTypes.instanceOf(Date) }),\n ]),\n\n /**\n * Locale to be used by the calendar.\n */\n locale: PropTypes.string.isRequired,\n /**\n * Callback to define the input date.\n */\n onChange: PropTypes.func,\n /**\n * Callback to handle input onFocus.\n */\n onFocus: PropTypes.func,\n /**\n * Indicates if header should display end date in a date range.\n */\n showEndDate: PropTypes.bool,\n /**\n * Label shown when date is invalid.\n */\n invalidDateLabel: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvCalendarHeader\" })(HvCalendarHeader);\n"],"mappings":"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"}
@@ -38,7 +38,7 @@ var _CalendarHeader = _interopRequireDefault(require("../CalendarHeader"));
38
38
  var _CalendarWeekLabels = _interopRequireDefault(require("../CalendarWeekLabels"));
39
39
  var _CalendarNavigation = require("../CalendarNavigation");
40
40
  var _jsxRuntime = require("react/jsx-runtime");
41
- var _excluded = ["classes", "className", "id", "locale", "value", "visibleMonth", "visibleYear", "minimumDate", "maximumDate", "onChange", "onInputChange", "onVisibleDateChange", "showEndDate", "children"];
41
+ var _excluded = ["classes", "className", "id", "locale", "value", "visibleMonth", "visibleYear", "minimumDate", "maximumDate", "onChange", "onInputChange", "onVisibleDateChange", "showEndDate", "invalidDateLabel", "children"];
42
42
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
43
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
44
44
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -63,6 +63,7 @@ var HvSingleCalendar = function HvSingleCalendar(_ref) {
63
63
  onInputChange = _ref.onInputChange,
64
64
  onVisibleDateChange = _ref.onVisibleDateChange,
65
65
  showEndDate = _ref.showEndDate,
66
+ invalidDateLabel = _ref.invalidDateLabel,
66
67
  children = _ref.children,
67
68
  others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
68
69
  // TODO: refactor this out
@@ -151,7 +152,8 @@ var HvSingleCalendar = function HvSingleCalendar(_ref) {
151
152
  id: (0, _utils.setId)(id, "header"),
152
153
  locale: locale,
153
154
  onChange: handleInputChange,
154
- showEndDate: showEndDate && !isDateSelectionMode
155
+ showEndDate: showEndDate && !isDateSelectionMode,
156
+ invalidDateLabel: invalidDateLabel
155
157
  }), calViewMode === _enums.VIEW_MODE.CALENDAR && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
156
158
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CalendarNavigation.HvComposedNavigation, {
157
159
  id: id,
@@ -313,7 +315,11 @@ process.env.NODE_ENV !== "production" ? HvSingleCalendar.propTypes = {
313
315
  /**
314
316
  * Content on the upper part of the calendar.
315
317
  */
316
- children: _propTypes.default.node
318
+ children: _propTypes.default.node,
319
+ /**
320
+ * Label shown when date is invalid.
321
+ */
322
+ invalidDateLabel: _propTypes.default.string
317
323
  } : void 0;
318
324
  var _default = (0, _styles.withStyles)(_styles2.default, {
319
325
  name: "HvSingleCalendar"
@@ -1 +1 @@
1
- {"version":3,"file":"SingleCalendar.js","names":["Enter","KeyboardCodes","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","HvSingleCalendar","classes","className","id","locale","value","visibleMonth","visibleYear","minimumDate","maximumDate","onChange","onInputChange","onVisibleDateChange","showEndDate","children","others","useContext","HvFormElementDescriptorsContext","HvCalendarHeader","today","Date","localValue","isNil","useState","VIEW_MODE","CALENDAR","calViewMode","setCalViewMode","rangeMode","isRange","isDateSelectionMode","isDate","endDate","calModel","generateCalendarModel","startDate","firstDayOfCurrentMonth","year","month","firstDayOfCurrentMonthTime","getTime","listWeekdayNames","useMemo","getWeekdayNamesList","REPRESENTATION_VALUES","NARROW","handleChange","event","date","preventDefault","handleInputChange","getNavChild","siblings","i","isKeypress","undefined","handleKeyDown","el","document","activeElement","parent","parentElement","getElementsByClassName","cellContainer","elIndex","indexOf","focus","child","inMonth","getAttribute","renderCalendarDate","currentDate","clsx","calendarContainer","calendarWrapper","setId","viewMode","getFullYear","getMonth","calendarGrid","dates","map","MONTHLY","propTypes","PropTypes","shape","string","navigationContainer","focusSelection","navigationMonth","calendarDate","calendarDateNotInMonth","calendarDateSelected","calendarDateInvalid","calendarDateInSelectionRange","calendarDateDisabled","startBookend","endBookend","cellsInRange","cellsOutsideRange","isRequired","oneOfType","instanceOf","visibleDate","number","func","bool","node","withStyles","styles","name"],"sources":["../../../src/Calendar/SingleCalendar/SingleCalendar.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n\nimport React, { useState, useContext, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@mui/styles\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { isKeypress, KeyboardCodes, setId } from \"../../utils\";\nimport styles from \"./styles\";\nimport { HvFormElementDescriptorsContext } from \"../../Forms/FormElement\";\nimport { VIEW_MODE, REPRESENTATION_VALUES } from \"../enums\";\nimport { isRange, isDate, getWeekdayNamesList } from \"../utils\";\nimport { generateCalendarModel } from \"../model\";\nimport CalendarCell from \"./CalendarCell\";\nimport CalendarHeader from \"../CalendarHeader\";\nimport CalendarWeekLabels from \"../CalendarWeekLabels\";\nimport { HvComposedNavigation, HvMonthSelector } from \"../CalendarNavigation\";\n\nconst { Enter, ArrowLeft, ArrowRight, ArrowUp, ArrowDown } = KeyboardCodes;\n\nconst HvSingleCalendar = ({\n classes,\n className,\n id,\n locale,\n value,\n visibleMonth,\n visibleYear,\n minimumDate,\n maximumDate,\n onChange,\n onInputChange,\n onVisibleDateChange,\n showEndDate,\n children,\n ...others\n}) => {\n // TODO: refactor this out\n const { HvCalendarHeader } = useContext(HvFormElementDescriptorsContext);\n\n const today = new Date();\n const localValue = isNil(value) ? today : value;\n\n const [calViewMode, setCalViewMode] = useState(VIEW_MODE.CALENDAR);\n\n const rangeMode = isRange(localValue);\n const isDateSelectionMode = rangeMode && !isDate(localValue.endDate);\n const calModel = rangeMode\n ? generateCalendarModel(localValue.startDate, visibleMonth, visibleYear)\n : generateCalendarModel(localValue, visibleMonth, visibleYear);\n const firstDayOfCurrentMonth = new Date(calModel.year, calModel.month - 1, 1);\n const firstDayOfCurrentMonthTime = firstDayOfCurrentMonth.getTime();\n\n const listWeekdayNames = useMemo(\n () => getWeekdayNamesList(locale, REPRESENTATION_VALUES.NARROW),\n [locale]\n );\n\n const handleChange = (event, date) => {\n event?.preventDefault();\n onChange?.(event, date);\n };\n\n const handleInputChange = (event, date) => {\n event?.preventDefault();\n onInputChange?.(event, date);\n };\n\n const getNavChild = (event, siblings, i) => {\n if (isKeypress(event, ArrowLeft)) return siblings[i - 1];\n if (isKeypress(event, ArrowRight)) return siblings[i + 1];\n if (isKeypress(event, ArrowUp)) return siblings[i - 7];\n if (isKeypress(event, ArrowDown)) return siblings[i + 7];\n return undefined;\n };\n\n const handleKeyDown = (event) => {\n // This code is very brittle and should be managed with the focus wrapper\n const el = document?.activeElement;\n const parent = el?.parentElement?.parentElement;\n const siblings =\n parent != null ? [...parent.getElementsByClassName(classes.cellContainer)] : [];\n const elIndex = siblings.indexOf(el);\n\n if (isKeypress(event, Enter)) {\n el?.focus();\n return;\n }\n\n const child = getNavChild(event, siblings, elIndex);\n\n if (child) {\n const inMonth = child.getAttribute(\"data-in-month\");\n if (inMonth === \"true\") {\n event?.preventDefault();\n child?.focus();\n }\n }\n };\n\n /**\n * Renders the element representing the received date.\n *\n * @param currentDate - The array representing the date [YYYY, MM, DD].\n * @memberOf Calendar\n */\n const renderCalendarDate = (currentDate) => {\n return (\n <CalendarCell\n classes={classes}\n key={currentDate}\n tabIndex={currentDate.getTime() === firstDayOfCurrentMonthTime ? 0 : -1}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n value={currentDate}\n today={today}\n calendarValue={localValue}\n rangeMode={rangeMode}\n isDateSelectionMode={isDateSelectionMode}\n locale={locale}\n firstDayOfCurrentMonth={firstDayOfCurrentMonth}\n maximumDate={maximumDate}\n minimumDate={minimumDate}\n />\n );\n };\n\n return (\n <div className={clsx(className, classes.calendarContainer)} {...others}>\n <div id={id} className={classes.calendarWrapper}>\n <CalendarHeader\n id={setId(id, \"header\")}\n locale={locale}\n onChange={handleInputChange}\n showEndDate={showEndDate && !isDateSelectionMode}\n />\n {calViewMode === VIEW_MODE.CALENDAR && (\n <div>\n <HvComposedNavigation\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={(viewMode) => setCalViewMode(viewMode)}\n visibleYear={visibleYear || today.getFullYear()}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n />\n <div className={classes.calendarGrid} aria-controls={HvCalendarHeader?.[0]?.id}>\n <CalendarWeekLabels labels={listWeekdayNames} />\n {calModel.dates.map(renderCalendarDate)}\n </div>\n </div>\n )}\n {calViewMode === VIEW_MODE.MONTHLY && (\n <HvMonthSelector\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={(viewMode) => setCalViewMode(viewMode)}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n rangeMode={rangeMode}\n />\n )}\n </div>\n </div>\n );\n};\n\nHvSingleCalendar.propTypes = {\n /**\n * Styles applied from the theme.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the external div containing the whole calendar.\n */\n calendarContainer: PropTypes.string,\n /**\n * Styles applied to the external div below the calendar wrapper.\n */\n calendarWrapper: PropTypes.string,\n /**\n * Styles applied to the element containing the cells that represents each date.\n */\n calendarGrid: PropTypes.string,\n /**\n * Styles applied to the element containing the buttons to change the visible month and year.\n */\n navigationContainer: PropTypes.string,\n /**\n * Styles applied to the cell when is focused.\n */\n focusSelection: PropTypes.string,\n /**\n * Styles applied to the buttons used to change the months.\n */\n navigationMonth: PropTypes.string,\n /**\n * Styles applied to the cells containing each date.\n */\n calendarDate: PropTypes.string,\n /**\n * Styles applied to the cells when the cell is outside the visible month.\n */\n calendarDateNotInMonth: PropTypes.string,\n /**\n * Styles applied to the cells when the cell is outside the visible month.\n */\n calendarDateSelected: PropTypes.string,\n /**\n * Styles applied to the cells when the cell is not valid.\n */\n calendarDateInvalid: PropTypes.string,\n /**\n * Styles applied to the cells when it is part of the selection.\n */\n calendarDateInSelectionRange: PropTypes.string,\n /**\n * Styles applied to the cells when it is not selectable.\n */\n calendarDateDisabled: PropTypes.string,\n /**\n * Styles applied to the cell when it is at the beginning of the selection.\n */\n startBookend: PropTypes.string,\n /**\n * Styles applied to the cell when it is at the end of the selection.\n */\n endBookend: PropTypes.string,\n /**\n * Styles applied to the cells when it is part of the selection in progress.\n */\n cellsInRange: PropTypes.string,\n /**\n * Styles applied to the cells when it is not part of the selection in progress.\n */\n cellsOutsideRange: PropTypes.string,\n cellContainer: PropTypes.string,\n }).isRequired,\n /**\n * Identifier.\n */\n id: PropTypes.string,\n /**\n * The class name to add at the root of the single calendar\n */\n className: PropTypes.string,\n /**\n * The calendar locale.\n *\n */\n locale: PropTypes.string,\n /**\n * Date that the calendar would show.\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.shape({ startDate: PropTypes.instanceOf(Date), endDate: PropTypes.instanceOf(Date) }),\n ]),\n /**\n * Date that will be used to know which month and year should be displayed on the calendar. The value of the day is\n * irrelevant.\n */\n visibleDate: PropTypes.instanceOf(Date),\n /**\n * Controls the visible month of the Calendar\n */\n visibleMonth: PropTypes.number,\n /**\n * Controls the visible month of the Calendar\n */\n visibleYear: PropTypes.number,\n /**\n * Callback function to be triggered when the selected date has changed.\n */\n onChange: PropTypes.func,\n /**\n * Callback function to be triggered when the selected date input has changed.\n */\n onInputChange: PropTypes.func,\n /**\n * Callback function to be triggered when visible date has changed.\n */\n onVisibleDateChange: PropTypes.func,\n /**\n * The maximum selectable date after this all values are disabled.\n */\n maximumDate: PropTypes.instanceOf(Date),\n /**\n * The minimum selectable date before this all values are disabled.\n */\n minimumDate: PropTypes.instanceOf(Date),\n /**\n * Indicates if header should display end date in a date range.\n */\n showEndDate: PropTypes.bool,\n /**\n * Content on the upper part of the calendar.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvSingleCalendar\" })(HvSingleCalendar);\n"],"mappings":"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"}
1
+ {"version":3,"file":"SingleCalendar.js","names":["Enter","KeyboardCodes","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","HvSingleCalendar","classes","className","id","locale","value","visibleMonth","visibleYear","minimumDate","maximumDate","onChange","onInputChange","onVisibleDateChange","showEndDate","invalidDateLabel","children","others","useContext","HvFormElementDescriptorsContext","HvCalendarHeader","today","Date","localValue","isNil","useState","VIEW_MODE","CALENDAR","calViewMode","setCalViewMode","rangeMode","isRange","isDateSelectionMode","isDate","endDate","calModel","generateCalendarModel","startDate","firstDayOfCurrentMonth","year","month","firstDayOfCurrentMonthTime","getTime","listWeekdayNames","useMemo","getWeekdayNamesList","REPRESENTATION_VALUES","NARROW","handleChange","event","date","preventDefault","handleInputChange","getNavChild","siblings","i","isKeypress","undefined","handleKeyDown","el","document","activeElement","parent","parentElement","getElementsByClassName","cellContainer","elIndex","indexOf","focus","child","inMonth","getAttribute","renderCalendarDate","currentDate","clsx","calendarContainer","calendarWrapper","setId","viewMode","getFullYear","getMonth","calendarGrid","dates","map","MONTHLY","propTypes","PropTypes","shape","string","navigationContainer","focusSelection","navigationMonth","calendarDate","calendarDateNotInMonth","calendarDateSelected","calendarDateInvalid","calendarDateInSelectionRange","calendarDateDisabled","startBookend","endBookend","cellsInRange","cellsOutsideRange","isRequired","oneOfType","instanceOf","visibleDate","number","func","bool","node","withStyles","styles","name"],"sources":["../../../src/Calendar/SingleCalendar/SingleCalendar.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n\nimport React, { useState, useContext, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@mui/styles\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { isKeypress, KeyboardCodes, setId } from \"../../utils\";\nimport styles from \"./styles\";\nimport { HvFormElementDescriptorsContext } from \"../../Forms/FormElement\";\nimport { VIEW_MODE, REPRESENTATION_VALUES } from \"../enums\";\nimport { isRange, isDate, getWeekdayNamesList } from \"../utils\";\nimport { generateCalendarModel } from \"../model\";\nimport CalendarCell from \"./CalendarCell\";\nimport CalendarHeader from \"../CalendarHeader\";\nimport CalendarWeekLabels from \"../CalendarWeekLabels\";\nimport { HvComposedNavigation, HvMonthSelector } from \"../CalendarNavigation\";\n\nconst { Enter, ArrowLeft, ArrowRight, ArrowUp, ArrowDown } = KeyboardCodes;\n\nconst HvSingleCalendar = ({\n classes,\n className,\n id,\n locale,\n value,\n visibleMonth,\n visibleYear,\n minimumDate,\n maximumDate,\n onChange,\n onInputChange,\n onVisibleDateChange,\n showEndDate,\n invalidDateLabel,\n children,\n ...others\n}) => {\n // TODO: refactor this out\n const { HvCalendarHeader } = useContext(HvFormElementDescriptorsContext);\n\n const today = new Date();\n const localValue = isNil(value) ? today : value;\n\n const [calViewMode, setCalViewMode] = useState(VIEW_MODE.CALENDAR);\n\n const rangeMode = isRange(localValue);\n const isDateSelectionMode = rangeMode && !isDate(localValue.endDate);\n const calModel = rangeMode\n ? generateCalendarModel(localValue.startDate, visibleMonth, visibleYear)\n : generateCalendarModel(localValue, visibleMonth, visibleYear);\n const firstDayOfCurrentMonth = new Date(calModel.year, calModel.month - 1, 1);\n const firstDayOfCurrentMonthTime = firstDayOfCurrentMonth.getTime();\n\n const listWeekdayNames = useMemo(\n () => getWeekdayNamesList(locale, REPRESENTATION_VALUES.NARROW),\n [locale]\n );\n\n const handleChange = (event, date) => {\n event?.preventDefault();\n onChange?.(event, date);\n };\n\n const handleInputChange = (event, date) => {\n event?.preventDefault();\n onInputChange?.(event, date);\n };\n\n const getNavChild = (event, siblings, i) => {\n if (isKeypress(event, ArrowLeft)) return siblings[i - 1];\n if (isKeypress(event, ArrowRight)) return siblings[i + 1];\n if (isKeypress(event, ArrowUp)) return siblings[i - 7];\n if (isKeypress(event, ArrowDown)) return siblings[i + 7];\n return undefined;\n };\n\n const handleKeyDown = (event) => {\n // This code is very brittle and should be managed with the focus wrapper\n const el = document?.activeElement;\n const parent = el?.parentElement?.parentElement;\n const siblings =\n parent != null ? [...parent.getElementsByClassName(classes.cellContainer)] : [];\n const elIndex = siblings.indexOf(el);\n\n if (isKeypress(event, Enter)) {\n el?.focus();\n return;\n }\n\n const child = getNavChild(event, siblings, elIndex);\n\n if (child) {\n const inMonth = child.getAttribute(\"data-in-month\");\n if (inMonth === \"true\") {\n event?.preventDefault();\n child?.focus();\n }\n }\n };\n\n /**\n * Renders the element representing the received date.\n *\n * @param currentDate - The array representing the date [YYYY, MM, DD].\n * @memberOf Calendar\n */\n const renderCalendarDate = (currentDate) => {\n return (\n <CalendarCell\n classes={classes}\n key={currentDate}\n tabIndex={currentDate.getTime() === firstDayOfCurrentMonthTime ? 0 : -1}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n value={currentDate}\n today={today}\n calendarValue={localValue}\n rangeMode={rangeMode}\n isDateSelectionMode={isDateSelectionMode}\n locale={locale}\n firstDayOfCurrentMonth={firstDayOfCurrentMonth}\n maximumDate={maximumDate}\n minimumDate={minimumDate}\n />\n );\n };\n\n return (\n <div className={clsx(className, classes.calendarContainer)} {...others}>\n <div id={id} className={classes.calendarWrapper}>\n <CalendarHeader\n id={setId(id, \"header\")}\n locale={locale}\n onChange={handleInputChange}\n showEndDate={showEndDate && !isDateSelectionMode}\n invalidDateLabel={invalidDateLabel}\n />\n {calViewMode === VIEW_MODE.CALENDAR && (\n <div>\n <HvComposedNavigation\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={(viewMode) => setCalViewMode(viewMode)}\n visibleYear={visibleYear || today.getFullYear()}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n />\n <div className={classes.calendarGrid} aria-controls={HvCalendarHeader?.[0]?.id}>\n <CalendarWeekLabels labels={listWeekdayNames} />\n {calModel.dates.map(renderCalendarDate)}\n </div>\n </div>\n )}\n {calViewMode === VIEW_MODE.MONTHLY && (\n <HvMonthSelector\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={(viewMode) => setCalViewMode(viewMode)}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n rangeMode={rangeMode}\n />\n )}\n </div>\n </div>\n );\n};\n\nHvSingleCalendar.propTypes = {\n /**\n * Styles applied from the theme.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the external div containing the whole calendar.\n */\n calendarContainer: PropTypes.string,\n /**\n * Styles applied to the external div below the calendar wrapper.\n */\n calendarWrapper: PropTypes.string,\n /**\n * Styles applied to the element containing the cells that represents each date.\n */\n calendarGrid: PropTypes.string,\n /**\n * Styles applied to the element containing the buttons to change the visible month and year.\n */\n navigationContainer: PropTypes.string,\n /**\n * Styles applied to the cell when is focused.\n */\n focusSelection: PropTypes.string,\n /**\n * Styles applied to the buttons used to change the months.\n */\n navigationMonth: PropTypes.string,\n /**\n * Styles applied to the cells containing each date.\n */\n calendarDate: PropTypes.string,\n /**\n * Styles applied to the cells when the cell is outside the visible month.\n */\n calendarDateNotInMonth: PropTypes.string,\n /**\n * Styles applied to the cells when the cell is outside the visible month.\n */\n calendarDateSelected: PropTypes.string,\n /**\n * Styles applied to the cells when the cell is not valid.\n */\n calendarDateInvalid: PropTypes.string,\n /**\n * Styles applied to the cells when it is part of the selection.\n */\n calendarDateInSelectionRange: PropTypes.string,\n /**\n * Styles applied to the cells when it is not selectable.\n */\n calendarDateDisabled: PropTypes.string,\n /**\n * Styles applied to the cell when it is at the beginning of the selection.\n */\n startBookend: PropTypes.string,\n /**\n * Styles applied to the cell when it is at the end of the selection.\n */\n endBookend: PropTypes.string,\n /**\n * Styles applied to the cells when it is part of the selection in progress.\n */\n cellsInRange: PropTypes.string,\n /**\n * Styles applied to the cells when it is not part of the selection in progress.\n */\n cellsOutsideRange: PropTypes.string,\n cellContainer: PropTypes.string,\n }).isRequired,\n /**\n * Identifier.\n */\n id: PropTypes.string,\n /**\n * The class name to add at the root of the single calendar\n */\n className: PropTypes.string,\n /**\n * The calendar locale.\n *\n */\n locale: PropTypes.string,\n /**\n * Date that the calendar would show.\n */\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.shape({ startDate: PropTypes.instanceOf(Date), endDate: PropTypes.instanceOf(Date) }),\n ]),\n /**\n * Date that will be used to know which month and year should be displayed on the calendar. The value of the day is\n * irrelevant.\n */\n visibleDate: PropTypes.instanceOf(Date),\n /**\n * Controls the visible month of the Calendar\n */\n visibleMonth: PropTypes.number,\n /**\n * Controls the visible month of the Calendar\n */\n visibleYear: PropTypes.number,\n /**\n * Callback function to be triggered when the selected date has changed.\n */\n onChange: PropTypes.func,\n /**\n * Callback function to be triggered when the selected date input has changed.\n */\n onInputChange: PropTypes.func,\n /**\n * Callback function to be triggered when visible date has changed.\n */\n onVisibleDateChange: PropTypes.func,\n /**\n * The maximum selectable date after this all values are disabled.\n */\n maximumDate: PropTypes.instanceOf(Date),\n /**\n * The minimum selectable date before this all values are disabled.\n */\n minimumDate: PropTypes.instanceOf(Date),\n /**\n * Indicates if header should display end date in a date range.\n */\n showEndDate: PropTypes.bool,\n /**\n * Content on the upper part of the calendar.\n */\n children: PropTypes.node,\n /**\n * Label shown when date is invalid.\n */\n invalidDateLabel: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvSingleCalendar\" })(HvSingleCalendar);\n"],"mappings":"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"}
@@ -33,6 +33,10 @@ export interface HvDatePickerProps
33
33
  * Clear button label.
34
34
  */
35
35
  clearLabel?: string;
36
+ /**
37
+ * Invalid Date label.
38
+ */
39
+ invalidDateLabel?: string;
36
40
  };
37
41
 
38
42
  /**
@@ -47,7 +47,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
47
47
  var DEFAULT_LABELS = {
48
48
  applyLabel: "Apply",
49
49
  cancelLabel: "Cancel",
50
- clearLabel: "Clear"
50
+ clearLabel: "Clear",
51
+ invalidDateLabel: "Invalid Date"
51
52
  };
52
53
 
53
54
  /**
@@ -370,7 +371,7 @@ var HvDatePicker = function HvDatePicker(props) {
370
371
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
371
372
  ref: focusTarget,
372
373
  tabIndex: -1
373
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.HvCalendar, _objectSpread(_objectSpread({
374
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.HvCalendar, _objectSpread(_objectSpread(_objectSpread({
374
375
  id: (0, _utils.setId)(id, "calendar"),
375
376
  startAdornment: startAdornment,
376
377
  onChange: handleDateChange,
@@ -383,7 +384,9 @@ var HvDatePicker = function HvDatePicker(props) {
383
384
  });
384
385
  },
385
386
  locale: locale
386
- }, visibleDate), calendarProps)), (rangeMode || showActions) && renderActions()]
387
+ }, visibleDate), calendarProps), {}, {
388
+ invalidDateLabel: labels.invalidDateLabel
389
+ })), (rangeMode || showActions) && renderActions()]
387
390
  })), canShowError && /*#__PURE__*/(0, _jsxRuntime.jsx)(_.HvWarningText, {
388
391
  id: (0, _utils.setId)(elementId, "error"),
389
392
  disableBorder: true,
@@ -540,7 +543,11 @@ process.env.NODE_ENV !== "production" ? HvDatePicker.propTypes = {
540
543
  /**
541
544
  * Clear button label.
542
545
  */
543
- clearLabel: _propTypes.default.string
546
+ clearLabel: _propTypes.default.string,
547
+ /**
548
+ * Invalid Date label.
549
+ */
550
+ invalidDateLabel: _propTypes.default.string
544
551
  }),
545
552
  /**
546
553
  * The initial value of the input when in single calendar mode.