@hitachivantara/uikit-react-core 3.75.0 → 3.75.2

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 (55) hide show
  1. package/dist/Avatar/Avatar.d.ts +1 -1
  2. package/dist/Calendar/Calendar.d.ts +4 -0
  3. package/dist/Calendar/Calendar.js +14 -5
  4. package/dist/Calendar/Calendar.js.map +1 -1
  5. package/dist/Calendar/CalendarHeader/CalendarHeader.d.ts +11 -3
  6. package/dist/Calendar/CalendarHeader/CalendarHeader.js +10 -3
  7. package/dist/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  8. package/dist/Calendar/SingleCalendar/SingleCalendar.js +10 -3
  9. package/dist/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  10. package/dist/DatePicker/DatePicker.d.ts +4 -0
  11. package/dist/DatePicker/DatePicker.js +11 -3
  12. package/dist/DatePicker/DatePicker.js.map +1 -1
  13. package/dist/FilterGroup/Counter/Counter.js +1 -7
  14. package/dist/FilterGroup/Counter/Counter.js.map +1 -1
  15. package/dist/FilterGroup/RightPanel/RightPanel.js +21 -5
  16. package/dist/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  17. package/dist/OverflowTooltip/OverflowTooltip.js +17 -6
  18. package/dist/OverflowTooltip/OverflowTooltip.js.map +1 -1
  19. package/dist/legacy/Avatar/Avatar.d.ts +1 -1
  20. package/dist/legacy/Calendar/Calendar.d.ts +4 -0
  21. package/dist/legacy/Calendar/Calendar.js +14 -5
  22. package/dist/legacy/Calendar/Calendar.js.map +1 -1
  23. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.d.ts +11 -3
  24. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js +10 -3
  25. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  26. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js +10 -3
  27. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  28. package/dist/legacy/DatePicker/DatePicker.d.ts +4 -0
  29. package/dist/legacy/DatePicker/DatePicker.js +11 -3
  30. package/dist/legacy/DatePicker/DatePicker.js.map +1 -1
  31. package/dist/legacy/FilterGroup/Counter/Counter.js +1 -5
  32. package/dist/legacy/FilterGroup/Counter/Counter.js.map +1 -1
  33. package/dist/legacy/FilterGroup/RightPanel/RightPanel.js +21 -5
  34. package/dist/legacy/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  35. package/dist/legacy/OverflowTooltip/OverflowTooltip.js +17 -6
  36. package/dist/legacy/OverflowTooltip/OverflowTooltip.js.map +1 -1
  37. package/dist/modern/Avatar/Avatar.d.ts +1 -1
  38. package/dist/modern/Calendar/Calendar.d.ts +4 -0
  39. package/dist/modern/Calendar/Calendar.js +15 -6
  40. package/dist/modern/Calendar/Calendar.js.map +1 -1
  41. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.d.ts +11 -3
  42. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js +10 -4
  43. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  44. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js +10 -3
  45. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  46. package/dist/modern/DatePicker/DatePicker.d.ts +4 -0
  47. package/dist/modern/DatePicker/DatePicker.js +11 -3
  48. package/dist/modern/DatePicker/DatePicker.js.map +1 -1
  49. package/dist/modern/FilterGroup/Counter/Counter.js +1 -4
  50. package/dist/modern/FilterGroup/Counter/Counter.js.map +1 -1
  51. package/dist/modern/FilterGroup/RightPanel/RightPanel.js +16 -4
  52. package/dist/modern/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  53. package/dist/modern/OverflowTooltip/OverflowTooltip.js +15 -5
  54. package/dist/modern/OverflowTooltip/OverflowTooltip.js.map +1 -1
  55. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.js","names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape","node"],"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () => (filterOptions[activeGroup]?.data || []).map((option) => option.id),\n [filterOptions, activeGroup]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n (filterOptions[activeGroup]?.data || []).map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"RightPanel.js","names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape","node"],"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n (filterOptions[activeGroup]?.data || []).map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...filterValues[activeGroup], ...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
@@ -32,8 +32,6 @@ var isParagraph = function isParagraph(children) {
32
32
 
33
33
 
34
34
  var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
35
- var _ref$current;
36
-
37
35
  var id = _ref.id,
38
36
  className = _ref.className,
39
37
  classes = _ref.classes,
@@ -51,16 +49,29 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
51
49
  },
52
50
  handleHeight: false
53
51
  }),
52
+ _useResizeDetector$he = _useResizeDetector.height,
53
+ height = _useResizeDetector$he === void 0 ? 0 : _useResizeDetector$he,
54
54
  _useResizeDetector$wi = _useResizeDetector.width,
55
55
  width = _useResizeDetector$wi === void 0 ? 0 : _useResizeDetector$wi,
56
56
  ref = _useResizeDetector.ref;
57
57
 
58
- var scrollWidth = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollWidth) || 0; // The difference should be higher than a pixel to be considered as overflowing
59
-
60
- var isOverflowing = scrollWidth - width >= 1;
61
58
  var isParag = useMemo(function () {
62
59
  return paragraphOverflow && isParagraph(data.toString());
63
- }, [data, paragraphOverflow]);
60
+ }, [data, paragraphOverflow]); // The difference should be higher than a pixel to be considered as overflowing
61
+
62
+ var isOverflowing = useMemo(function () {
63
+ var _ref$current2;
64
+
65
+ if (isParag) {
66
+ var _ref$current;
67
+
68
+ var scrollHeight = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollHeight) || 0;
69
+ return scrollHeight - height >= 1;
70
+ }
71
+
72
+ var scrollWidth = ((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.scrollWidth) || 0;
73
+ return scrollWidth - width >= 1;
74
+ }, [height, isParag, ref, width]);
64
75
  var content = useMemo(function () {
65
76
  return /*#__PURE__*/React.createElement("div", {
66
77
  ref: ref,
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowTooltip.js","names":["React","useMemo","clsx","PropTypes","useResizeDetector","createStyles","withStyles","HvTooltip","HvTypography","styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","open","paragraphOverflow","placement","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","scrollWidth","current","isOverflowing","isParag","toString","content","propTypes","string","node","shape","root","isRequired","bool","oneOf","instanceOf","Object","name","memo","RawOverflowTooltip"],"sources":["../../../src/OverflowTooltip/OverflowTooltip.js"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({\n id,\n className,\n classes,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n ),\n [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"mappings":"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"}
1
+ {"version":3,"file":"OverflowTooltip.js","names":["React","useMemo","clsx","PropTypes","useResizeDetector","createStyles","withStyles","HvTooltip","HvTypography","styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","open","paragraphOverflow","placement","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","height","width","ref","isParag","toString","isOverflowing","scrollHeight","current","scrollWidth","content","propTypes","string","node","shape","root","isRequired","bool","oneOf","instanceOf","Object","name","memo","RawOverflowTooltip"],"sources":["../../../src/OverflowTooltip/OverflowTooltip.js"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({\n id,\n className,\n classes,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}) => {\n const {\n height = 0,\n width = 0,\n ref,\n } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data.toString()),\n [data, paragraphOverflow]\n );\n\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = useMemo(() => {\n if (isParag) {\n const scrollHeight = ref.current?.scrollHeight || 0;\n\n return scrollHeight - height >= 1;\n }\n\n const scrollWidth = ref.current?.scrollWidth || 0;\n\n return scrollWidth - width >= 1;\n }, [height, isParag, ref, width]);\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n ),\n [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"mappings":"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"}
@@ -79,7 +79,7 @@ export interface HvAvatarProps
79
79
  /**
80
80
  * Attributes applied to the container element.
81
81
  */
82
- containerProps: object;
82
+ containerProps?: object;
83
83
  }
84
84
 
85
85
  export default function HvAvatar(props: HvAvatarProps): JSX.Element | null;
@@ -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;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- const _excluded = ["classes", "id", "locale", "value", "visibleMonth", "visibleYear", "rightVisibleMonth", "rightVisibleYear", "minimumDate", "maximumDate", "startAdornment", "onChange", "onInputChange", "onVisibleDateChange"];
3
+ const _excluded = ["classes", "id", "locale", "value", "visibleMonth", "visibleYear", "rightVisibleMonth", "rightVisibleYear", "minimumDate", "maximumDate", "startAdornment", "onChange", "onInputChange", "onVisibleDateChange", "invalidDateLabel"];
4
4
  import React, { useContext } from "react";
5
5
  import PropTypes from "prop-types";
6
6
  import { withStyles } from "@material-ui/core";
@@ -25,7 +25,8 @@ const HvCalendar = _ref => {
25
25
  startAdornment,
26
26
  onChange,
27
27
  onInputChange,
28
- onVisibleDateChange
28
+ onVisibleDateChange,
29
+ invalidDateLabel
29
30
  } = _ref,
30
31
  others = _objectWithoutProperties(_ref, _excluded);
31
32
 
@@ -48,7 +49,8 @@ const HvCalendar = _ref => {
48
49
  maximumDate: maximumDate,
49
50
  onChange: onChange,
50
51
  onInputChange: (evt, date) => onInputChange(evt, date, "left"),
51
- onVisibleDateChange: onVisibleDateChange
52
+ onVisibleDateChange: onVisibleDateChange,
53
+ invalidDateLabel: invalidDateLabel
52
54
  }, others));
53
55
  const rangeCalendar = /*#__PURE__*/React.createElement("div", {
54
56
  className: classes.rangeCalendarContainer
@@ -63,7 +65,8 @@ const HvCalendar = _ref => {
63
65
  maximumDate: maximumDate,
64
66
  onChange: onChange,
65
67
  onInputChange: (evt, date) => onInputChange(evt, date, "left"),
66
- onVisibleDateChange: (event, action, index) => onVisibleDateChange === null || onVisibleDateChange === void 0 ? void 0 : onVisibleDateChange(event, action, index, "left")
68
+ onVisibleDateChange: (event, action, index) => onVisibleDateChange === null || onVisibleDateChange === void 0 ? void 0 : onVisibleDateChange(event, action, index, "left"),
69
+ invalidDateLabel: invalidDateLabel
67
70
  }, others)), /*#__PURE__*/React.createElement(SingleCalendar, _extends({
68
71
  className: classes.singleCalendar,
69
72
  id: rightCalendarId,
@@ -78,7 +81,8 @@ const HvCalendar = _ref => {
78
81
  onVisibleDateChange: (event, action, index) => {
79
82
  onVisibleDateChange === null || onVisibleDateChange === void 0 ? void 0 : onVisibleDateChange(event, action, index, "right");
80
83
  },
81
- showEndDate: true
84
+ showEndDate: true,
85
+ invalidDateLabel: invalidDateLabel
82
86
  }, others)));
83
87
  return /*#__PURE__*/React.createElement("div", {
84
88
  className: classes.root
@@ -161,7 +165,12 @@ process.env.NODE_ENV !== "production" ? HvCalendar.propTypes = {
161
165
  /**
162
166
  * An element placed before the Calendar
163
167
  */
164
- startAdornment: PropTypes.node
168
+ startAdornment: PropTypes.node,
169
+
170
+ /**
171
+ * Label shown when date is invalid.
172
+ */
173
+ invalidDateLabel: PropTypes.string
165
174
  } : void 0;
166
175
  export default withStyles(styles, {
167
176
  name: "HvCalendar"
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","names":["React","useContext","PropTypes","withStyles","setId","styles","HvFormElementContext","HvFormElementValueContext","isRange","SingleCalendar","HvCalendar","classes","id","locale","value","visibleMonth","visibleYear","rightVisibleMonth","rightVisibleYear","minimumDate","maximumDate","startAdornment","onChange","onInputChange","onVisibleDateChange","others","elementId","elementValue","localValue","localId","rangeMode","rightCalendarId","clampedMonth","singleCalendar","evt","date","rangeCalendar","rangeCalendarContainer","event","action","index","root","propTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","startDate","endDate","number","func","node","name"],"sources":["../../../src/Calendar/Calendar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\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":["React","useContext","PropTypes","withStyles","setId","styles","HvFormElementContext","HvFormElementValueContext","isRange","SingleCalendar","HvCalendar","classes","id","locale","value","visibleMonth","visibleYear","rightVisibleMonth","rightVisibleYear","minimumDate","maximumDate","startAdornment","onChange","onInputChange","onVisibleDateChange","invalidDateLabel","others","elementId","elementValue","localValue","localId","rangeMode","rightCalendarId","clampedMonth","singleCalendar","evt","date","rangeCalendar","rangeCalendarContainer","event","action","index","root","propTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","startDate","endDate","number","func","node","name"],"sources":["../../../src/Calendar/Calendar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\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;
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
 
4
4
  var _Info;
5
5
 
6
- const _excluded = ["id", "value", "locale", "classes", "onChange", "showEndDate", "onFocus"];
6
+ const _excluded = ["id", "value", "locale", "classes", "onChange", "showEndDate", "onFocus", "invalidDateLabel"];
7
7
  import "core-js/modules/web.dom-collections.iterator.js";
8
8
  import React, { useState, useEffect, useContext } from "react";
9
9
  import PropTypes from "prop-types";
@@ -37,7 +37,8 @@ const HvCalendarHeader = _ref => {
37
37
  classes,
38
38
  onChange,
39
39
  showEndDate,
40
- onFocus
40
+ onFocus,
41
+ invalidDateLabel = "Invalid Date"
41
42
  } = _ref,
42
43
  others = _objectWithoutProperties(_ref, _excluded);
43
44
 
@@ -166,7 +167,7 @@ const HvCalendarHeader = _ref => {
166
167
  }, _Info || (_Info = /*#__PURE__*/React.createElement(Info, {
167
168
  color: "acce3",
168
169
  iconSize: "S"
169
- })), "Invalid date")));
170
+ })), invalidDateLabel)));
170
171
  }; // TODO: refactor this out
171
172
 
172
173
 
@@ -208,7 +209,12 @@ process.env.NODE_ENV !== "production" ? HvCalendarHeader.propTypes = {
208
209
  /**
209
210
  * Indicates if header should display end date in a date range.
210
211
  */
211
- showEndDate: PropTypes.bool
212
+ showEndDate: PropTypes.bool,
213
+
214
+ /**
215
+ * Label shown when date is invalid.
216
+ */
217
+ invalidDateLabel: PropTypes.string
212
218
  } : void 0;
213
219
  export default withStyles(styles, {
214
220
  name: "HvCalendarHeader"
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarHeader.js","names":["React","useState","useEffect","useContext","PropTypes","Info","dayjs","localeData","localizedFormat","customParseFormat","clsx","isNil","withStyles","setId","isKeypress","KeyboardCodes","HvTypography","styles","HvFormElementContext","HvFormElementValueContext","HvFormElementDescriptorsContext","isRange","isSameDay","formatDMY","extend","Enter","HvCalendarHeader","id","value","locale","classes","onChange","showEndDate","onFocus","others","elementId","elementValue","label","localValue","endDate","startDate","dateValue","setDateValue","editedValue","setEditedValue","displayValue","setDisplayValue","weekdayDisplay","setWeekdayDisplay","localId","inputValue","localeFormat","longDateFormat","isValidValue","setIsValidValue","length","isValid","validateInput","incomingValid","undefined","valid","weekday","Intl","DateTimeFormat","format","handleNewDate","event","date","localeParsedDate","isValidInput","dateParsed","toDate","onBlurHandler","keyDownHandler","preventDefault","onFocusHandler","formattedDate","onChangeHandler","target","root","invalid","headerDayOfWeek","headerDate","input","inputBorderContainer","height","invalidMessageStyling","formElementType","propTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","func","bool","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 \"@material-ui/core\";\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":["React","useState","useEffect","useContext","PropTypes","Info","dayjs","localeData","localizedFormat","customParseFormat","clsx","isNil","withStyles","setId","isKeypress","KeyboardCodes","HvTypography","styles","HvFormElementContext","HvFormElementValueContext","HvFormElementDescriptorsContext","isRange","isSameDay","formatDMY","extend","Enter","HvCalendarHeader","id","value","locale","classes","onChange","showEndDate","onFocus","invalidDateLabel","others","elementId","elementValue","label","localValue","endDate","startDate","dateValue","setDateValue","editedValue","setEditedValue","displayValue","setDisplayValue","weekdayDisplay","setWeekdayDisplay","localId","inputValue","localeFormat","longDateFormat","isValidValue","setIsValidValue","length","isValid","validateInput","incomingValid","undefined","valid","weekday","Intl","DateTimeFormat","format","handleNewDate","event","date","localeParsedDate","isValidInput","dateParsed","toDate","onBlurHandler","keyDownHandler","preventDefault","onFocusHandler","formattedDate","onChangeHandler","target","root","invalid","headerDayOfWeek","headerDate","input","inputBorderContainer","height","invalidMessageStyling","formElementType","propTypes","instanceOf","Object","isRequired","string","oneOfType","Date","shape","func","bool","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 \"@material-ui/core\";\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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"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- const _excluded = ["classes", "className", "id", "locale", "value", "visibleMonth", "visibleYear", "minimumDate", "maximumDate", "onChange", "onInputChange", "onVisibleDateChange", "showEndDate", "children"];
3
+ const _excluded = ["classes", "className", "id", "locale", "value", "visibleMonth", "visibleYear", "minimumDate", "maximumDate", "onChange", "onInputChange", "onVisibleDateChange", "showEndDate", "invalidDateLabel", "children"];
4
4
  import "core-js/modules/web.dom-collections.iterator.js";
5
5
 
6
6
  /* eslint-disable jsx-a11y/no-noninteractive-tabindex */
@@ -44,6 +44,7 @@ const HvSingleCalendar = _ref => {
44
44
  onInputChange,
45
45
  onVisibleDateChange,
46
46
  showEndDate,
47
+ invalidDateLabel,
47
48
  children
48
49
  } = _ref,
49
50
  others = _objectWithoutProperties(_ref, _excluded);
@@ -141,7 +142,8 @@ const HvSingleCalendar = _ref => {
141
142
  id: setId(id, "header"),
142
143
  locale: locale,
143
144
  onChange: handleInputChange,
144
- showEndDate: showEndDate && !isDateSelectionMode
145
+ showEndDate: showEndDate && !isDateSelectionMode,
146
+ invalidDateLabel: invalidDateLabel
145
147
  }), calViewMode === VIEW_MODE.CALENDAR && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(HvComposedNavigation, {
146
148
  id: id,
147
149
  locale: locale,
@@ -324,7 +326,12 @@ process.env.NODE_ENV !== "production" ? HvSingleCalendar.propTypes = {
324
326
  /**
325
327
  * Content on the upper part of the calendar.
326
328
  */
327
- children: PropTypes.node
329
+ children: PropTypes.node,
330
+
331
+ /**
332
+ * Label shown when date is invalid.
333
+ */
334
+ invalidDateLabel: PropTypes.string
328
335
  } : void 0;
329
336
  export default withStyles(styles, {
330
337
  name: "HvSingleCalendar"
@@ -1 +1 @@
1
- {"version":3,"file":"SingleCalendar.js","names":["React","useState","useContext","useMemo","PropTypes","withStyles","clsx","isNil","isKeypress","KeyboardCodes","setId","styles","HvFormElementDescriptorsContext","VIEW_MODE","REPRESENTATION_VALUES","isRange","isDate","getWeekdayNamesList","generateCalendarModel","CalendarCell","CalendarHeader","CalendarWeekLabels","HvComposedNavigation","HvMonthSelector","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","HvSingleCalendar","classes","className","id","locale","value","visibleMonth","visibleYear","minimumDate","maximumDate","onChange","onInputChange","onVisibleDateChange","showEndDate","children","others","HvCalendarHeader","today","Date","localValue","calViewMode","setCalViewMode","CALENDAR","rangeMode","isDateSelectionMode","endDate","calModel","startDate","firstDayOfCurrentMonth","year","month","firstDayOfCurrentMonthTime","getTime","listWeekdayNames","NARROW","handleChange","event","date","preventDefault","handleInputChange","getNavChild","siblings","i","undefined","handleKeyDown","el","document","activeElement","parent","parentElement","getElementsByClassName","cellContainer","elIndex","indexOf","focus","child","inMonth","getAttribute","renderCalendarDate","currentDate","calendarContainer","calendarWrapper","viewMode","getFullYear","getMonth","calendarGrid","dates","map","MONTHLY","propTypes","shape","string","navigationContainer","focusSelection","navigationMonth","calendarDate","calendarDateNotInMonth","calendarDateSelected","calendarDateInvalid","calendarDateInSelectionRange","calendarDateDisabled","startBookend","endBookend","cellsInRange","cellsOutsideRange","isRequired","oneOfType","instanceOf","visibleDate","number","func","bool","node","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 \"@material-ui/core\";\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":["React","useState","useContext","useMemo","PropTypes","withStyles","clsx","isNil","isKeypress","KeyboardCodes","setId","styles","HvFormElementDescriptorsContext","VIEW_MODE","REPRESENTATION_VALUES","isRange","isDate","getWeekdayNamesList","generateCalendarModel","CalendarCell","CalendarHeader","CalendarWeekLabels","HvComposedNavigation","HvMonthSelector","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","HvSingleCalendar","classes","className","id","locale","value","visibleMonth","visibleYear","minimumDate","maximumDate","onChange","onInputChange","onVisibleDateChange","showEndDate","invalidDateLabel","children","others","HvCalendarHeader","today","Date","localValue","calViewMode","setCalViewMode","CALENDAR","rangeMode","isDateSelectionMode","endDate","calModel","startDate","firstDayOfCurrentMonth","year","month","firstDayOfCurrentMonthTime","getTime","listWeekdayNames","NARROW","handleChange","event","date","preventDefault","handleInputChange","getNavChild","siblings","i","undefined","handleKeyDown","el","document","activeElement","parent","parentElement","getElementsByClassName","cellContainer","elIndex","indexOf","focus","child","inMonth","getAttribute","renderCalendarDate","currentDate","calendarContainer","calendarWrapper","viewMode","getFullYear","getMonth","calendarGrid","dates","map","MONTHLY","propTypes","shape","string","navigationContainer","focusSelection","navigationMonth","calendarDate","calendarDateNotInMonth","calendarDateSelected","calendarDateInvalid","calendarDateInSelectionRange","calendarDateDisabled","startBookend","endBookend","cellsInRange","cellsOutsideRange","isRequired","oneOfType","instanceOf","visibleDate","number","func","bool","node","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 \"@material-ui/core\";\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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"}
@@ -32,6 +32,10 @@ export interface HvDatePickerProps
32
32
  * Clear button label.
33
33
  */
34
34
  clearLabel?: string;
35
+ /**
36
+ * Invalid Date label.
37
+ */
38
+ invalidDateLabel?: string;
35
39
  };
36
40
 
37
41
  /**