@spothero/ui 17.1.0-beta.0 → 17.1.0-beta.3

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 (40) hide show
  1. package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRange.js +7 -4
  2. package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRange.stories.js +26 -10
  3. package/dist/components/{DatepickerRange → Datepicker/Range}/components/DateRow.js +30 -29
  4. package/dist/components/{DatepickerRange → Datepicker/Range/components}/DatepickerRangeContainer.js +110 -41
  5. package/dist/components/{DatepickerRange → Datepicker/Range}/components/DatepickerRangeControls.js +7 -4
  6. package/dist/components/Datepicker/Range/components/index.js +31 -0
  7. package/dist/components/Datepicker/Range/utils/propTypes.js +158 -0
  8. package/dist/components/Datepicker/{Datepicker.stories.js → Single/Datepicker.stories.js} +49 -30
  9. package/dist/components/Datepicker/{DatepickerContext.js → Single/DatepickerContext.js} +4 -4
  10. package/dist/components/Datepicker/{DatepickerSingle.js → Single/DatepickerSingle.js} +7 -4
  11. package/dist/components/Datepicker/{components → Single/components}/DateRow.js +19 -18
  12. package/dist/components/Datepicker/{DatepickerContainer.js → Single/components/DatepickerContainer.js} +84 -31
  13. package/dist/components/Datepicker/Single/components/DatepickerControl.js +51 -0
  14. package/dist/components/Datepicker/Single/components/index.js +31 -0
  15. package/dist/components/Datepicker/Single/utils/propTypes.js +88 -0
  16. package/dist/components/Datepicker/{components → common/components}/DatepickerDays.js +19 -16
  17. package/dist/components/Datepicker/{components → common/components}/DatepickerHeader.js +28 -23
  18. package/dist/components/Datepicker/common/components/DatepickerInput.js +127 -0
  19. package/dist/components/{DatepickerRange → Datepicker/common}/components/WithPopoverAnchor.js +3 -1
  20. package/dist/components/Datepicker/common/components/WithPortal.js +26 -0
  21. package/dist/components/Datepicker/common/components/index.js +39 -0
  22. package/dist/components/Datepicker/common/utils/constants.js +43 -0
  23. package/dist/components/{DatepickerRange/utils/dateRowArithmentic.js → Datepicker/common/utils/dateRowCalculations.js} +14 -15
  24. package/dist/components/Datepicker/{utils/propTypes.js → common/utils/sharedPropTypes.js} +8 -62
  25. package/dist/components/Datepicker/index.js +23 -0
  26. package/dist/components/index.js +3 -5
  27. package/package.json +1 -1
  28. package/dist/components/Datepicker/components/DatepickerControl.js +0 -83
  29. package/dist/components/Datepicker/constants.js +0 -31
  30. package/dist/components/Datepicker/utils/dateRowArithmentic.js +0 -58
  31. package/dist/components/DatepickerRange/components/DatepickerDays.js +0 -108
  32. package/dist/components/DatepickerRange/components/DatepickerHeader.js +0 -116
  33. package/dist/components/DatepickerRange/components/DatepickerRangeInput.js +0 -90
  34. package/dist/components/DatepickerRange/constants.js +0 -31
  35. package/dist/components/DatepickerRange/utils/generalCalculations.js +0 -71
  36. package/dist/components/DatepickerRange/utils/getWeeksOfMonth.js +0 -51
  37. package/dist/components/DatepickerRange/utils/propTypes.js +0 -245
  38. /package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRangeContext.js +0 -0
  39. /package/dist/components/Datepicker/{utils → common/utils}/generalCalculations.js +0 -0
  40. /package/dist/components/Datepicker/{utils → common/utils}/getWeeksOfMonth.js +0 -0
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _react2 = require("@chakra-ui/react");
15
+
16
+ var _components = require("../../common/components");
17
+
18
+ var _propTypes = require("../utils/propTypes");
19
+
20
+ var _DatepickerContext = require("../DatepickerContext");
21
+
22
+ var DatepickerControl = function DatepickerControl(_ref) {
23
+ var value = _ref.value,
24
+ useInputIcons = _ref.useInputIcons,
25
+ inputLabelText = _ref.inputLabelText,
26
+ inputPlaceholderText = _ref.inputPlaceholderText,
27
+ errorText = _ref.errorText,
28
+ datepickerControlOverrides = _ref.datepickerControlOverrides;
29
+
30
+ var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
31
+ isInvalid = _useDatepicker.isInvalid,
32
+ onOpen = _useDatepicker.disclosure.onOpen;
33
+
34
+ return /*#__PURE__*/_react.default.createElement(_react2.Flex, (0, _extends2.default)({
35
+ "data-testid": "Datepicker-ControlsContainer"
36
+ }, datepickerControlOverrides === null || datepickerControlOverrides === void 0 ? void 0 : datepickerControlOverrides.controlsContainer), /*#__PURE__*/_react.default.createElement(_components.DatepickerInput, {
37
+ asSingle: true,
38
+ onClick: onOpen,
39
+ value: value,
40
+ useInputIcons: useInputIcons,
41
+ isInputInvalid: isInvalid,
42
+ inputLabelText: inputLabelText,
43
+ placeholderText: inputPlaceholderText,
44
+ errorText: errorText,
45
+ context: _DatepickerContext.DatepickerContext,
46
+ inputComponentOverrides: datepickerControlOverrides === null || datepickerControlOverrides === void 0 ? void 0 : datepickerControlOverrides.inputComponentOverrides
47
+ }));
48
+ };
49
+
50
+ var _default = DatepickerControl;
51
+ exports.default = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "DateRow", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _DateRow.default;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "DatepickerContainer", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _DatepickerContainer.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "DatepickerControl", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _DatepickerControl.default;
24
+ }
25
+ });
26
+
27
+ var _DateRow = _interopRequireDefault(require("./DateRow"));
28
+
29
+ var _DatepickerControl = _interopRequireDefault(require("./DatepickerControl"));
30
+
31
+ var _DatepickerContainer = _interopRequireDefault(require("./DatepickerContainer"));
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.datepickerOverridesProps = exports.datepickerControlOverridesProps = void 0;
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _sharedPropTypes = require("../../common/utils/sharedPropTypes");
13
+
14
+ var datepickerControlOverridesProps = _propTypes.default.shape({
15
+ /**
16
+ * Overrides for the Flex component that wraps the input field,
17
+ * see https://chakra-ui.com/docs/components/flex/props for more
18
+ */
19
+ controlsContainer: _propTypes.default.object,
20
+
21
+ /** Overrides for the Input component */
22
+ inputComponentOverrides: _sharedPropTypes.inputComponentOverridesProps
23
+ });
24
+
25
+ exports.datepickerControlOverridesProps = datepickerControlOverridesProps;
26
+
27
+ var datepickerOverridesProps = _propTypes.default.shape({
28
+ /**
29
+ * Overrides for the parent Popover component,
30
+ * see https://chakra-ui.com/docs/components/popover/props for more
31
+ */
32
+ popover: _propTypes.default.object,
33
+
34
+ /**
35
+ * Overrides for the Portal component that wraps the Datepicker calendar Popover, see https://chakra-ui.com/docs/components/portal/props for more
36
+ */
37
+ portal: _propTypes.default.object,
38
+
39
+ /**
40
+ * Overrides for the PopoverContent component,
41
+ * see https://chakra-ui.com/docs/components/popover/props#other-props for more
42
+ */
43
+ popoverContent: _propTypes.default.object,
44
+
45
+ /** An optional Object containing style and prop overrides to be applied to the Form and Control component */
46
+ datepickerControlOverrides: datepickerControlOverridesProps,
47
+
48
+ /** An optional Object containing style and prop overrides to be applied to the Popover body, Calendar, and Header componets */
49
+ datepickerBodyOverrides: _sharedPropTypes.datepickerBodyOverridesProps
50
+ });
51
+
52
+ exports.datepickerOverridesProps = datepickerOverridesProps;
53
+ var props = {
54
+ /** An optional (pre-selected) Selected Date to populate the Datepicker with */
55
+ initialValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.instanceOf(Date)]),
56
+
57
+ /** A string in the format 'MM/DD/YYYY' representing the date where days before it should be disabled in the calendar */
58
+ disableBefore: _propTypes.default.string,
59
+
60
+ /** A string in the format 'MM/DD/YYYY' representing the date where days after it should be disabled in the calendar. */
61
+ disableAfter: _propTypes.default.string,
62
+
63
+ /** A callback function to execute on changes */
64
+ onDateChange: _propTypes.default.func,
65
+
66
+ /** Whether to render the Popover within a Portal or not */
67
+ usePortal: _propTypes.default.bool,
68
+
69
+ /** Whether to display the Selected Date Input as invalid or not */
70
+ isInvalid: _propTypes.default.bool,
71
+
72
+ /** Whether to show the Calendar Icon in the Input field. */
73
+ useInputIcons: _propTypes.default.bool,
74
+
75
+ /** A string to use as the Input form label */
76
+ dateInputLabelText: _propTypes.default.string,
77
+
78
+ /** A string to use as the Input placeholder text */
79
+ dateInputPlaceholderText: _propTypes.default.string,
80
+
81
+ /** A string to use as the Input form Error Text */
82
+ dateInputErrorText: _propTypes.default.string,
83
+
84
+ /** An optional Object containing style and prop overrides to be applied to the component and child components */
85
+ datepickerOverrides: datepickerOverridesProps
86
+ };
87
+ var _default = props;
88
+ exports.default = _default;
@@ -23,18 +23,14 @@ var _react = _interopRequireWildcard(require("react"));
23
23
 
24
24
  var _react2 = require("@chakra-ui/react");
25
25
 
26
- var _DatepickerContext = require("../DatepickerContext");
27
-
28
- var _constants = require("../constants");
26
+ var _constants = require("../utils/constants");
29
27
 
30
28
  var _getWeeksOfMonth = require("../utils/getWeeksOfMonth");
31
29
 
32
- var _propTypes = require("../utils/propTypes");
30
+ var _sharedPropTypes = require("../utils/sharedPropTypes");
33
31
 
34
32
  var _generalCalculations = require("../utils/generalCalculations");
35
33
 
36
- var _DateRow = _interopRequireDefault(require("./DateRow"));
37
-
38
34
  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); }
39
35
 
40
36
  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; }
@@ -72,13 +68,15 @@ var getDatepickerCalendarThStyleProps = function getDatepickerCalendarThStylePro
72
68
  };
73
69
 
74
70
  var DatepickerDays = function DatepickerDays(_ref) {
75
- var datepickerDaysOverrides = _ref.datepickerDaysOverrides;
71
+ var datepickerDaysOverrides = _ref.datepickerDaysOverrides,
72
+ context = _ref.context,
73
+ DateRow = _ref.DateRow;
76
74
 
77
- var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
78
- _useDatepicker$today = (0, _slicedToArray2.default)(_useDatepicker.today, 1),
79
- today = _useDatepicker$today[0],
80
- _useDatepicker$date = (0, _slicedToArray2.default)(_useDatepicker.date, 1),
81
- date = _useDatepicker$date[0];
75
+ var _useContext = (0, _react.useContext)(context),
76
+ _useContext$today = (0, _slicedToArray2.default)(_useContext.today, 1),
77
+ today = _useContext$today[0],
78
+ _useContext$date = (0, _slicedToArray2.default)(_useContext.date, 1),
79
+ date = _useContext$date[0];
82
80
 
83
81
  var _useState = (0, _react.useState)(),
84
82
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -90,17 +88,22 @@ var DatepickerDays = function DatepickerDays(_ref) {
90
88
  }, [date]);
91
89
  return /*#__PURE__*/_react.default.createElement(_react2.Table, (0, _extends2.default)({
92
90
  role: "grid",
93
- "aria-labelledby": "id-grid-label"
94
- }, datepickerCalendarTableStyleProps, datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.table), /*#__PURE__*/_react.default.createElement(_react2.Thead, (0, _extends2.default)({}, datepickerTheadStyleProps, datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.thead), /*#__PURE__*/_react.default.createElement(_react2.Tr, null, (0, _map.default)(_constants.DAY_NAMES).call(_constants.DAY_NAMES, function (day, index) {
91
+ "aria-labelledby": "id-grid-label",
92
+ "data-testid": "DatepickerDays-Table"
93
+ }, datepickerCalendarTableStyleProps, datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.table), /*#__PURE__*/_react.default.createElement(_react2.Thead, (0, _extends2.default)({
94
+ "data-testid": "DatepickerDays-Thead"
95
+ }, datepickerTheadStyleProps, datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.thead), /*#__PURE__*/_react.default.createElement(_react2.Tr, {
96
+ "data-testid": "daysOfWeek-row"
97
+ }, (0, _map.default)(_constants.DAY_NAMES).call(_constants.DAY_NAMES, function (day, index) {
95
98
  return /*#__PURE__*/_react.default.createElement(_react2.Th, (0, _extends2.default)({
96
99
  key: index,
97
100
  scope: "col",
98
101
  abbr: day.full,
99
102
  "data-testid": "daysOfWeek-title"
100
103
  }, getDatepickerCalendarThStyleProps(today, weeks, index), datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.th), day.abbv);
101
- }))), /*#__PURE__*/_react.default.createElement(_DateRow.default, {
104
+ }))), /*#__PURE__*/_react.default.createElement(DateRow, {
102
105
  dates: weeks !== null && weeks !== void 0 ? weeks : [],
103
- dateRowOverrides: datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.dateRow
106
+ dateRowOverrides: datepickerDaysOverrides === null || datepickerDaysOverrides === void 0 ? void 0 : datepickerDaysOverrides.dateRowOverrides
104
107
  }));
105
108
  };
106
109
 
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
3
9
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
10
 
5
11
  Object.defineProperty(exports, "__esModule", {
@@ -7,17 +13,13 @@ Object.defineProperty(exports, "__esModule", {
7
13
  });
8
14
  exports.default = void 0;
9
15
 
16
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
17
+
10
18
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
19
 
12
20
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
13
21
 
14
- var _freeze = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/freeze"));
15
-
16
- var _symbol = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/symbol"));
17
-
18
- var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
19
-
20
- var _react = _interopRequireDefault(require("react"));
22
+ var _react = _interopRequireWildcard(require("react"));
21
23
 
22
24
  var _react2 = require("@chakra-ui/react");
23
25
 
@@ -25,16 +27,14 @@ var _chevronLeft = _interopRequireDefault(require("@spothero/icons/chevron-left"
25
27
 
26
28
  var _chevronRight = _interopRequireDefault(require("@spothero/icons/chevron-right"));
27
29
 
28
- var _constants = require("../constants");
30
+ var _constants = require("../utils/constants");
29
31
 
30
- var _DatepickerContext = require("../DatepickerContext");
32
+ var _sharedPropTypes = require("../utils/sharedPropTypes");
31
33
 
32
- var _propTypes = require("../utils/propTypes");
34
+ 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); }
35
+
36
+ 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; }
33
37
 
34
- var Directions = (0, _freeze.default)({
35
- Forward: (0, _symbol.default)('forward'),
36
- Backward: (0, _symbol.default)('backward')
37
- });
38
38
  var monthSelectionButtonStyleProps = {
39
39
  size: 'sm',
40
40
  variant: 'ghost',
@@ -53,20 +53,21 @@ var monthTitleStyleProps = {
53
53
  var DatepickerHeader = function DatepickerHeader(_ref) {
54
54
  var _context;
55
55
 
56
- var datepickerHeaderOverrides = _ref.datepickerHeaderOverrides;
57
- var context = (0, _DatepickerContext.useDatepicker)();
56
+ var datepickerHeaderOverrides = _ref.datepickerHeaderOverrides,
57
+ context = _ref.context;
58
58
 
59
- var _context$date = (0, _slicedToArray2.default)(context.date, 2),
60
- date = _context$date[0],
61
- setDate = _context$date[1];
59
+ var _useContext = (0, _react.useContext)(context),
60
+ _useContext$date = (0, _slicedToArray2.default)(_useContext.date, 2),
61
+ date = _useContext$date[0],
62
+ setDate = _useContext$date[1];
62
63
 
63
64
  var month = date.getMonth();
64
65
  var year = date.getFullYear();
65
66
 
66
67
  var onChange = function onChange(dir) {
67
68
  return function () {
68
- var terminator = dir === Directions.Backward ? 0 : 11;
69
- var adder = dir === Directions.Backward ? -1 : 1;
69
+ var terminator = dir === _constants.CALENDAR_CONTROL_DIRECTIONS.Backward ? 0 : 11;
70
+ var adder = dir === _constants.CALENDAR_CONTROL_DIRECTIONS.Backward ? -1 : 1;
70
71
 
71
72
  if (month === terminator) {
72
73
  date.setFullYear(year + adder, Math.abs(11 - month));
@@ -83,27 +84,31 @@ var DatepickerHeader = function DatepickerHeader(_ref) {
83
84
 
84
85
 
85
86
  return /*#__PURE__*/_react.default.createElement(_react2.Flex, (0, _extends2.default)({
87
+ "data-testid": "DatepickerHeader-HeaderContainer",
86
88
  alignItems: "center",
87
89
  marginBottom: 2,
88
90
  width: "100%"
89
91
  }, datepickerHeaderOverrides === null || datepickerHeaderOverrides === void 0 ? void 0 : datepickerHeaderOverrides.headerContainer), /*#__PURE__*/_react.default.createElement(_react2.IconButton, (0, _extends2.default)({
92
+ "data-testid": "DatepickerHeader-IconButton-Left",
90
93
  icon: /*#__PURE__*/_react.default.createElement(_chevronLeft.default, {
91
94
  height: 16,
92
95
  width: 16,
93
96
  fill: "black"
94
97
  }),
95
- onClick: onChange(Directions.Backward),
98
+ onClick: onChange(_constants.CALENDAR_CONTROL_DIRECTIONS.Backward),
96
99
  "aria-label": "previous month"
97
100
  }, monthSelectionButtonStyleProps, datepickerHeaderOverrides === null || datepickerHeaderOverrides === void 0 ? void 0 : datepickerHeaderOverrides.iconButton)), /*#__PURE__*/_react.default.createElement(_react2.Flex, (0, _extends2.default)({
101
+ "data-testid": "DatepickerHeader-MonthTitle",
98
102
  "aria-live": "polite",
99
103
  id: "id-grid-label"
100
104
  }, monthTitleStyleProps, datepickerHeaderOverrides === null || datepickerHeaderOverrides === void 0 ? void 0 : datepickerHeaderOverrides.title), (0, _concat.default)(_context = "".concat(monthName, " ")).call(_context, year)), /*#__PURE__*/_react.default.createElement(_react2.IconButton, (0, _extends2.default)({
105
+ "data-testid": "DatepickerHeader-IconButton-Right",
101
106
  icon: /*#__PURE__*/_react.default.createElement(_chevronRight.default, {
102
107
  height: 16,
103
108
  width: 16,
104
109
  fill: "black"
105
110
  }),
106
- onClick: onChange(Directions.Forward),
111
+ onClick: onChange(_constants.CALENDAR_CONTROL_DIRECTIONS.Forward),
107
112
  "aria-label": "next month"
108
113
  }, monthSelectionButtonStyleProps, datepickerHeaderOverrides === null || datepickerHeaderOverrides === void 0 ? void 0 : datepickerHeaderOverrides.iconButton)));
109
114
  /* eslint-enable react/jsx-curly-brace-presence */
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _react2 = require("@chakra-ui/react");
21
+
22
+ var _calendar = _interopRequireDefault(require("@spothero/icons/calendar"));
23
+
24
+ var _sharedPropTypes = require("../utils/sharedPropTypes");
25
+
26
+ var _generalCalculations = require("../utils/generalCalculations");
27
+
28
+ var _WithPopoverAnchor = _interopRequireDefault(require("./WithPopoverAnchor"));
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
34
+ var formLabelStyleProps = {
35
+ as: 'label',
36
+ fontSize: 'sm',
37
+ fontWeight: 'semibold',
38
+ color: 'text.secondary.light',
39
+ marginBottom: 1
40
+ };
41
+ var formErrorMessageStyleProps = {
42
+ color: 'error',
43
+ fontSize: 'xs',
44
+ marginTop: 1
45
+ };
46
+
47
+ var getInputStyleProps = function getInputStyleProps(isOpen, isSelected, useInputIcons) {
48
+ return {
49
+ paddingRight: useInputIcons ? '2.625rem' : 'initial',
50
+ borderColor: isOpen && isSelected ? 'brandBlue' : 'gray.medium',
51
+ _hover: {
52
+ borderColor: isOpen && isSelected ? 'primary.600' : 'gray.300'
53
+ }
54
+ };
55
+ };
56
+
57
+ var DatepickerInput = function DatepickerInput(_ref) {
58
+ var _ref$asSingle = _ref.asSingle,
59
+ asSingle = _ref$asSingle === void 0 ? false : _ref$asSingle,
60
+ isSelected = _ref.isSelected,
61
+ onClick = _ref.onClick,
62
+ selectionPosition = _ref.selectionPosition,
63
+ value = _ref.value,
64
+ useInputIcons = _ref.useInputIcons,
65
+ isInputInvalid = _ref.isInputInvalid,
66
+ inputLabelText = _ref.inputLabelText,
67
+ placeholderText = _ref.placeholderText,
68
+ errorText = _ref.errorText,
69
+ context = _ref.context,
70
+ inputComponentOverrides = _ref.inputComponentOverrides;
71
+
72
+ var _useContext = (0, _react.useContext)(context),
73
+ _useContext$disclosur = _useContext.disclosure,
74
+ onOpen = _useContext$disclosur.onOpen,
75
+ onClose = _useContext$disclosur.onClose,
76
+ isOpen = _useContext$disclosur.isOpen;
77
+
78
+ var dataTestIDString = "DatepickerInput".concat(asSingle ? '' : "-".concat(selectionPosition));
79
+
80
+ var handleKeyboardControls = function handleKeyboardControls(evt) {
81
+ var keyCode = evt.code;
82
+
83
+ if (keyCode === 'Enter' || keyCode === 'Space') {
84
+ onOpen();
85
+ } else if (keyCode === 'Escape') {
86
+ onClose();
87
+ }
88
+ };
89
+
90
+ return /*#__PURE__*/_react.default.createElement(_react2.Box, (0, _extends2.default)({
91
+ "data-testid": "".concat(dataTestIDString, "-InputComponentContainer"),
92
+ width: "100%"
93
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.inputGroupContainer), /*#__PURE__*/_react.default.createElement(_react2.FormControl, (0, _extends2.default)({
94
+ "data-testid": "".concat(dataTestIDString, "-FormControl"),
95
+ isInvalid: isInputInvalid
96
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.formControl), inputLabelText && /*#__PURE__*/_react.default.createElement(_react2.FormLabel, (0, _extends2.default)({
97
+ "data-testid": "".concat(dataTestIDString, "-FormLabel")
98
+ }, formLabelStyleProps, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.formLabel), inputLabelText), /*#__PURE__*/_react.default.createElement(_WithPopoverAnchor.default, {
99
+ isSelected: asSingle ? isOpen : isSelected
100
+ }, /*#__PURE__*/_react.default.createElement(_react2.InputGroup, (0, _extends2.default)({
101
+ "data-testid": "".concat(dataTestIDString, "-InputGroup")
102
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.inputGroup), /*#__PURE__*/_react.default.createElement(_react2.Input, (0, _extends2.default)({
103
+ "data-testid": "".concat(dataTestIDString, "-InputField"),
104
+ name: dataTestIDString,
105
+ placeholder: placeholderText,
106
+ value: (0, _generalCalculations.formatValueForInputDisplay)(value),
107
+ onClick: onClick,
108
+ onKeyDown: handleKeyboardControls,
109
+ isReadOnly: true
110
+ }, getInputStyleProps(isOpen, asSingle ? true : isSelected, useInputIcons), inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.input)), useInputIcons && /*#__PURE__*/_react.default.createElement(_react2.InputRightElement, (0, _extends2.default)({
111
+ "data-testid": "".concat(dataTestIDString, "-InputRightElement"),
112
+ color: isInputInvalid ? 'error' : 'gray.dark',
113
+ pointerEvents: "none",
114
+ zIndex: "base"
115
+ }, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.inputRightElement), /*#__PURE__*/_react.default.createElement(_react2.Icon, {
116
+ "data-testid": "".concat(dataTestIDString, "-InputRightElement-Icon"),
117
+ as: _calendar.default,
118
+ color: "inherit",
119
+ height: 5,
120
+ width: 5
121
+ })))), /*#__PURE__*/_react.default.createElement(_react2.FormErrorMessage, (0, _extends2.default)({
122
+ "data-testid": "".concat(dataTestIDString, "-FormErrorMessage")
123
+ }, formErrorMessageStyleProps, inputComponentOverrides === null || inputComponentOverrides === void 0 ? void 0 : inputComponentOverrides.formErrorMessage), errorText)));
124
+ };
125
+
126
+ var _default = DatepickerInput;
127
+ exports.default = _default;
@@ -14,7 +14,9 @@ var _react2 = require("@chakra-ui/react");
14
14
  var WithPopoverAnchor = function WithPopoverAnchor(_ref) {
15
15
  var isSelected = _ref.isSelected,
16
16
  children = _ref.children;
17
- return isSelected ? /*#__PURE__*/_react.default.createElement(_react2.PopoverAnchor, null, children) : children;
17
+ return isSelected ? /*#__PURE__*/_react.default.createElement(_react2.PopoverAnchor, {
18
+ "data-testid": "Datepicker-PopoverAnchor"
19
+ }, children) : children;
18
20
  };
19
21
 
20
22
  var _default = WithPopoverAnchor;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _react2 = require("@chakra-ui/react");
15
+
16
+ var WithPortal = function WithPortal(_ref) {
17
+ var usePortal = _ref.usePortal,
18
+ children = _ref.children,
19
+ overrideProps = _ref.overrideProps;
20
+ return usePortal ? /*#__PURE__*/_react.default.createElement(_react2.Portal, (0, _extends2.default)({
21
+ "data-testid": "Datepicker-Portal"
22
+ }, overrideProps), children) : children;
23
+ };
24
+
25
+ var _default = WithPortal;
26
+ exports.default = _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "DatepickerDays", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _DatepickerDays.default;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "DatepickerHeader", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _DatepickerHeader.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "DatepickerInput", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _DatepickerInput.default;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "WithPortal", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _WithPortal.default;
30
+ }
31
+ });
32
+
33
+ var _WithPortal = _interopRequireDefault(require("./WithPortal"));
34
+
35
+ var _DatepickerDays = _interopRequireDefault(require("./DatepickerDays"));
36
+
37
+ var _DatepickerInput = _interopRequireDefault(require("./DatepickerInput"));
38
+
39
+ var _DatepickerHeader = _interopRequireDefault(require("./DatepickerHeader"));
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FULL_MONTH_NAMES = exports.DAY_NAMES = exports.CALENDAR_CONTROL_DIRECTIONS = void 0;
9
+
10
+ var _freeze = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/freeze"));
11
+
12
+ var _symbol = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/symbol"));
13
+
14
+ var DAY_NAMES = [{
15
+ abbv: 'Su',
16
+ full: 'Sunday'
17
+ }, {
18
+ abbv: 'Mo',
19
+ full: 'Monday'
20
+ }, {
21
+ abbv: 'Tu',
22
+ full: 'Tuesday'
23
+ }, {
24
+ abbv: 'We',
25
+ full: 'Wednesday'
26
+ }, {
27
+ abbv: 'Th',
28
+ full: 'Thursday'
29
+ }, {
30
+ abbv: 'Fr',
31
+ full: 'Friday'
32
+ }, {
33
+ abbv: 'Sa',
34
+ full: 'Saturday'
35
+ }];
36
+ exports.DAY_NAMES = DAY_NAMES;
37
+ var FULL_MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
38
+ exports.FULL_MONTH_NAMES = FULL_MONTH_NAMES;
39
+ var CALENDAR_CONTROL_DIRECTIONS = (0, _freeze.default)({
40
+ Forward: (0, _symbol.default)('forward'),
41
+ Backward: (0, _symbol.default)('backward')
42
+ });
43
+ exports.CALENDAR_CONTROL_DIRECTIONS = CALENDAR_CONTROL_DIRECTIONS;