@spothero/ui 17.1.0-beta.0 → 17.1.0-beta.5
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.
- package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRange.js +7 -4
- package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRange.stories.js +26 -10
- package/dist/components/{DatepickerRange → Datepicker/Range}/components/DateRow.js +30 -29
- package/dist/components/{DatepickerRange → Datepicker/Range/components}/DatepickerRangeContainer.js +110 -41
- package/dist/components/{DatepickerRange → Datepicker/Range}/components/DatepickerRangeControls.js +7 -4
- package/dist/components/Datepicker/Range/components/index.js +31 -0
- package/dist/components/Datepicker/Range/utils/propTypes.js +158 -0
- package/dist/components/Datepicker/{Datepicker.stories.js → Single/Datepicker.stories.js} +49 -30
- package/dist/components/Datepicker/{DatepickerContext.js → Single/DatepickerContext.js} +4 -4
- package/dist/components/Datepicker/{DatepickerSingle.js → Single/DatepickerSingle.js} +7 -4
- package/dist/components/Datepicker/{components → Single/components}/DateRow.js +19 -18
- package/dist/components/Datepicker/{DatepickerContainer.js → Single/components/DatepickerContainer.js} +84 -31
- package/dist/components/Datepicker/Single/components/DatepickerControl.js +51 -0
- package/dist/components/Datepicker/Single/components/index.js +31 -0
- package/dist/components/Datepicker/Single/utils/propTypes.js +88 -0
- package/dist/components/Datepicker/{components → common/components}/DatepickerDays.js +19 -16
- package/dist/components/Datepicker/{components → common/components}/DatepickerHeader.js +28 -23
- package/dist/components/Datepicker/common/components/DatepickerInput.js +126 -0
- package/dist/components/{DatepickerRange → Datepicker/common}/components/WithPopoverAnchor.js +3 -1
- package/dist/components/Datepicker/common/components/WithPortal.js +26 -0
- package/dist/components/Datepicker/common/components/index.js +39 -0
- package/dist/components/Datepicker/common/utils/constants.js +43 -0
- package/dist/components/{DatepickerRange/utils/dateRowArithmentic.js → Datepicker/common/utils/dateRowCalculations.js} +14 -15
- package/dist/components/Datepicker/{utils/propTypes.js → common/utils/sharedPropTypes.js} +8 -62
- package/dist/components/Datepicker/index.js +23 -0
- package/dist/components/index.js +7 -9
- package/package.json +1 -1
- package/dist/components/Datepicker/components/DatepickerControl.js +0 -83
- package/dist/components/Datepicker/constants.js +0 -31
- package/dist/components/Datepicker/utils/dateRowArithmentic.js +0 -58
- package/dist/components/DatepickerRange/components/DatepickerDays.js +0 -108
- package/dist/components/DatepickerRange/components/DatepickerHeader.js +0 -116
- package/dist/components/DatepickerRange/components/DatepickerRangeInput.js +0 -90
- package/dist/components/DatepickerRange/constants.js +0 -31
- package/dist/components/DatepickerRange/utils/generalCalculations.js +0 -71
- package/dist/components/DatepickerRange/utils/getWeeksOfMonth.js +0 -51
- package/dist/components/DatepickerRange/utils/propTypes.js +0 -245
- /package/dist/components/{DatepickerRange → Datepicker/Range}/DatepickerRangeContext.js +0 -0
- /package/dist/components/Datepicker/{utils → common/utils}/generalCalculations.js +0 -0
- /package/dist/components/Datepicker/{utils → common/utils}/getWeeksOfMonth.js +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
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.datepickerRangeOverridesProps = exports.datepickerRangeControlsOverridesProps = exports.datepickerRangeContextProps = void 0;
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _sharedPropTypes = require("../../common/utils/sharedPropTypes");
|
|
13
|
+
|
|
14
|
+
var datepickerRangeControlsOverridesProps = _propTypes.default.shape({
|
|
15
|
+
/**
|
|
16
|
+
* Overrides for the Flex component that wraps the Start and End Date input fields,
|
|
17
|
+
* see https://chakra-ui.com/docs/components/flex/props for more
|
|
18
|
+
*/
|
|
19
|
+
controlsContainer: _propTypes.default.object,
|
|
20
|
+
|
|
21
|
+
/** Overrides for the Start Date Input components */
|
|
22
|
+
startDateInputComponentOverrides: _sharedPropTypes.inputComponentOverridesProps,
|
|
23
|
+
|
|
24
|
+
/** Overrides for the End Date Input components */
|
|
25
|
+
endDateInputComponentOverrides: _sharedPropTypes.inputComponentOverridesProps
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
exports.datepickerRangeControlsOverridesProps = datepickerRangeControlsOverridesProps;
|
|
29
|
+
|
|
30
|
+
var datepickerRangeOverridesProps = _propTypes.default.shape({
|
|
31
|
+
/**
|
|
32
|
+
* Overrides for the parent Popover component,
|
|
33
|
+
* see https://chakra-ui.com/docs/components/popover/props for more
|
|
34
|
+
*/
|
|
35
|
+
popover: _propTypes.default.object,
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Overrides for the Portal component that wraps the DatepickerRange calendar Popover, see https://chakra-ui.com/docs/components/portal/props for more
|
|
39
|
+
*/
|
|
40
|
+
portal: _propTypes.default.object,
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Overrides for the PopoverContent component,
|
|
44
|
+
* see https://chakra-ui.com/docs/components/popover/props#other-props for more
|
|
45
|
+
*/
|
|
46
|
+
popoverContent: _propTypes.default.object,
|
|
47
|
+
|
|
48
|
+
/** An optional Object containing style and prop overrides to be applied to the Form and Control components */
|
|
49
|
+
datepickerRangeControlsOverrides: datepickerRangeControlsOverridesProps,
|
|
50
|
+
|
|
51
|
+
/** An optional Object containing style and prop overrides to be applied to the Popover body, Calendar, and Header componets */
|
|
52
|
+
datepickerRangeBodyOverrides: _sharedPropTypes.datepickerBodyOverridesProps
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
exports.datepickerRangeOverridesProps = datepickerRangeOverridesProps;
|
|
56
|
+
var props = {
|
|
57
|
+
/** An optional (pre-selected) Start Date to populate the Datepicker Range with */
|
|
58
|
+
initialStartDate: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.instanceOf(Date)]),
|
|
59
|
+
|
|
60
|
+
/** An optional (pre-selected) End Date to populate the Datepicker Range with */
|
|
61
|
+
initialEndDate: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.instanceOf(Date)]),
|
|
62
|
+
|
|
63
|
+
/** A string in the format 'MM/DD/YYYY' representing the date where days before it should be disabled in the calendar */
|
|
64
|
+
disableBefore: _propTypes.default.string,
|
|
65
|
+
|
|
66
|
+
/** A string in the format 'MM/DD/YYYY' representing the date where days after it should be disabled in the calendar. */
|
|
67
|
+
disableAfter: _propTypes.default.string,
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* A callback function to execute on changes
|
|
71
|
+
*
|
|
72
|
+
* @param {string|object} startDate
|
|
73
|
+
* @param {string|object} endDate
|
|
74
|
+
* @param {boolean} startIsSelected
|
|
75
|
+
* @param {boolean} endIsSelected
|
|
76
|
+
*/
|
|
77
|
+
onDateChange: _propTypes.default.func,
|
|
78
|
+
|
|
79
|
+
/** Whether to render the Popover within a Portal or not */
|
|
80
|
+
usePortal: _propTypes.default.bool,
|
|
81
|
+
|
|
82
|
+
/** Whether to display the Start Date Input as invalid or not */
|
|
83
|
+
isStartInvalid: _propTypes.default.bool,
|
|
84
|
+
|
|
85
|
+
/** Whether to display the End Date Input as invalid or not */
|
|
86
|
+
isEndInvalid: _propTypes.default.bool,
|
|
87
|
+
|
|
88
|
+
/** Whether to show the Calendar Icon in the Input field. */
|
|
89
|
+
useInputIcons: _propTypes.default.bool,
|
|
90
|
+
|
|
91
|
+
/** A string to use as the Start Input form label */
|
|
92
|
+
startDateInputLabelText: _propTypes.default.string,
|
|
93
|
+
|
|
94
|
+
/** A string to use as the Start Input placeholder text */
|
|
95
|
+
startDateInputPlaceholderText: _propTypes.default.string,
|
|
96
|
+
|
|
97
|
+
/** A string to use as the Start Input form Error text */
|
|
98
|
+
startDateInputErrorText: _propTypes.default.string,
|
|
99
|
+
|
|
100
|
+
/** A string to use as the End Input form label */
|
|
101
|
+
endDateInputLabelText: _propTypes.default.string,
|
|
102
|
+
|
|
103
|
+
/** A string to use as the End Input placeholder text */
|
|
104
|
+
endDateInputPlaceholderText: _propTypes.default.string,
|
|
105
|
+
|
|
106
|
+
/** A string to use as the End Input form Error text */
|
|
107
|
+
endDateInputErrorText: _propTypes.default.string,
|
|
108
|
+
|
|
109
|
+
/** An optional Object containing style and prop overrides to be applied to the component and child components */
|
|
110
|
+
datepickerRangeOverrides: datepickerRangeOverridesProps
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var chakraUseDisclosureProps = _propTypes.default.shape({
|
|
114
|
+
isOpen: _propTypes.default.bool,
|
|
115
|
+
onOpen: _propTypes.default.func,
|
|
116
|
+
onClose: _propTypes.default.func
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
var datepickerRangeContextProps = {
|
|
120
|
+
today: _propTypes.default.shape({
|
|
121
|
+
today: _propTypes.default.instanceOf(Date),
|
|
122
|
+
setToday: _propTypes.default.func
|
|
123
|
+
}),
|
|
124
|
+
date: _propTypes.default.shape({
|
|
125
|
+
date: _propTypes.default.instanceOf(Date),
|
|
126
|
+
setDate: _propTypes.default.func
|
|
127
|
+
}),
|
|
128
|
+
selectedStartDate: _propTypes.default.shape({
|
|
129
|
+
selectedStartDate: _propTypes.default.instanceOf(Date),
|
|
130
|
+
setSelectedStartDate: _propTypes.default.func
|
|
131
|
+
}),
|
|
132
|
+
selectedEndDate: _propTypes.default.shape({
|
|
133
|
+
selectedEndDate: _propTypes.default.instanceOf(Date),
|
|
134
|
+
setSelectedEndDate: _propTypes.default.func
|
|
135
|
+
}),
|
|
136
|
+
startIsSelected: _propTypes.default.shape({
|
|
137
|
+
startIsSelected: _propTypes.default.bool,
|
|
138
|
+
setStartIsSelected: _propTypes.default.func
|
|
139
|
+
}),
|
|
140
|
+
endIsSelected: _propTypes.default.shape({
|
|
141
|
+
endIsSelected: _propTypes.default.bool,
|
|
142
|
+
setEndIsSelected: _propTypes.default.func
|
|
143
|
+
}),
|
|
144
|
+
disableBeforeDate: _propTypes.default.shape({
|
|
145
|
+
disableBeforeDate: _propTypes.default.instanceOf(Date),
|
|
146
|
+
setDisableBeforeDate: _propTypes.default.func
|
|
147
|
+
}),
|
|
148
|
+
disableAfterDate: _propTypes.default.shape({
|
|
149
|
+
disableAfterDate: _propTypes.default.instanceOf(Date),
|
|
150
|
+
setDisableAfterDate: _propTypes.default.func
|
|
151
|
+
}),
|
|
152
|
+
isStartInvalid: _propTypes.default.bool,
|
|
153
|
+
isEndInvalid: _propTypes.default.bool,
|
|
154
|
+
disclosure: _propTypes.default.instanceOf(chakraUseDisclosureProps)
|
|
155
|
+
};
|
|
156
|
+
exports.datepickerRangeContextProps = datepickerRangeContextProps;
|
|
157
|
+
var _default = props;
|
|
158
|
+
exports.default = _default;
|
|
@@ -40,7 +40,7 @@ var _default = {
|
|
|
40
40
|
removeBaseHtmlClass: true
|
|
41
41
|
},
|
|
42
42
|
argTypes: {
|
|
43
|
-
|
|
43
|
+
initialSelectedDate: {
|
|
44
44
|
description: 'An optional (pre-selected) Selected Date to populate the Datepicker with',
|
|
45
45
|
control: {
|
|
46
46
|
type: 'text'
|
|
@@ -52,6 +52,22 @@ var _default = {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
|
+
usePortal: {
|
|
56
|
+
description: 'Whether to render the Popover within a Portal or not',
|
|
57
|
+
control: {
|
|
58
|
+
type: 'boolean'
|
|
59
|
+
},
|
|
60
|
+
table: {
|
|
61
|
+
category: 'display',
|
|
62
|
+
type: {
|
|
63
|
+
summary: 'boolean'
|
|
64
|
+
},
|
|
65
|
+
defaultValue: {
|
|
66
|
+
summary: false
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
defaultValue: false
|
|
70
|
+
},
|
|
55
71
|
useInputIcons: {
|
|
56
72
|
description: 'Whether to show the Calendar Icon in the Input field',
|
|
57
73
|
control: {
|
|
@@ -183,32 +199,32 @@ var Default = DatepickerTemplate.bind({});
|
|
|
183
199
|
exports.Default = Default;
|
|
184
200
|
var WithInitialValue = DatepickerTemplate.bind({});
|
|
185
201
|
exports.WithInitialValue = WithInitialValue;
|
|
186
|
-
WithInitialValue.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
|
|
202
|
+
WithInitialValue.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
|
|
187
203
|
WithInitialValue.args = {
|
|
188
|
-
|
|
204
|
+
initialSelectedDate: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() + 1))
|
|
189
205
|
};
|
|
190
206
|
var DisableBeforeAfter = DatepickerTemplate.bind({});
|
|
191
207
|
exports.DisableBeforeAfter = DisableBeforeAfter;
|
|
192
|
-
DisableBeforeAfter.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', '
|
|
208
|
+
DisableBeforeAfter.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
|
|
193
209
|
DisableBeforeAfter.args = {
|
|
194
210
|
disableBefore: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() - 5)),
|
|
195
211
|
disableAfter: new Intl.DateTimeFormat('en-US').format(new Date().setDate(new Date().getDate() + 25))
|
|
196
212
|
};
|
|
197
213
|
var UseInputIcon = DatepickerTemplate.bind({});
|
|
198
214
|
exports.UseInputIcon = UseInputIcon;
|
|
199
|
-
UseInputIcon.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', '
|
|
215
|
+
UseInputIcon.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'disableBefore', 'disableAfter', 'isInvalid', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText']));
|
|
200
216
|
UseInputIcon.args = {
|
|
201
217
|
useInputIcons: true
|
|
202
218
|
};
|
|
203
219
|
var WithCustomPlaceholder = DatepickerTemplate.bind({});
|
|
204
220
|
exports.WithCustomPlaceholder = WithCustomPlaceholder;
|
|
205
|
-
WithCustomPlaceholder.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', '
|
|
221
|
+
WithCustomPlaceholder.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputErrorText']));
|
|
206
222
|
WithCustomPlaceholder.args = {
|
|
207
223
|
dateInputPlaceholderText: 'Oh, look a placeholder'
|
|
208
224
|
};
|
|
209
225
|
var WithFormControl = DatepickerTemplate.bind({});
|
|
210
226
|
exports.WithFormControl = WithFormControl;
|
|
211
|
-
WithFormControl.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', '
|
|
227
|
+
WithFormControl.argTypes = _objectSpread({}, (0, _disableArgs.default)(['onDateChange', 'usePortal', 'initialSelectedDate', 'disableBefore', 'disableAfter']));
|
|
212
228
|
WithFormControl.args = {
|
|
213
229
|
isInvalid: false,
|
|
214
230
|
useInputIcons: true,
|
|
@@ -217,36 +233,39 @@ WithFormControl.args = {
|
|
|
217
233
|
};
|
|
218
234
|
var WithOverrides = DatepickerTemplate.bind({});
|
|
219
235
|
exports.WithOverrides = WithOverrides;
|
|
220
|
-
WithOverrides.argTypes = _objectSpread(_objectSpread({}, (0, _disableArgs.default)(['
|
|
236
|
+
WithOverrides.argTypes = _objectSpread(_objectSpread({}, (0, _disableArgs.default)(['initialSelectedDate', 'usePortal', 'disableBefore', 'disableAfter', 'isInvalid', 'useInputIcons', 'dateInputLabelText', 'dateInputPlaceholderText', 'dateInputErrorText', 'onDateChange'])), {}, {
|
|
221
237
|
datepickerOverrides: {
|
|
222
238
|
control: 'object'
|
|
223
239
|
}
|
|
224
240
|
});
|
|
225
241
|
WithOverrides.args = {
|
|
226
242
|
datepickerOverrides: {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
borderColor: 'yellow.
|
|
243
|
+
datepickerControlOverrides: {
|
|
244
|
+
controlsContainer: {},
|
|
245
|
+
inputComponentOverrides: {
|
|
246
|
+
formControl: {
|
|
247
|
+
backgroundColor: 'blue.100'
|
|
248
|
+
},
|
|
249
|
+
formLabel: {
|
|
250
|
+
color: 'pink',
|
|
251
|
+
fontWeight: 'bold',
|
|
252
|
+
fontSize: '1.5rem'
|
|
253
|
+
},
|
|
254
|
+
inputGroup: {
|
|
255
|
+
size: 'lg'
|
|
256
|
+
},
|
|
257
|
+
input: {
|
|
258
|
+
borderColor: 'yellow.800',
|
|
259
|
+
_hover: {
|
|
260
|
+
borderColor: 'yellow.400'
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
inputRightElement: {
|
|
264
|
+
backgroundColor: 'red.200'
|
|
265
|
+
},
|
|
266
|
+
formErrorMessage: {
|
|
267
|
+
color: 'red.900'
|
|
243
268
|
}
|
|
244
|
-
},
|
|
245
|
-
inputRightElement: {
|
|
246
|
-
backgroundColor: 'red.200'
|
|
247
|
-
},
|
|
248
|
-
formErrorMessage: {
|
|
249
|
-
color: 'red.900'
|
|
250
269
|
}
|
|
251
270
|
},
|
|
252
271
|
popover: {
|
|
@@ -29,8 +29,8 @@ var useDatepicker = function useDatepicker() {
|
|
|
29
29
|
exports.useDatepicker = useDatepicker;
|
|
30
30
|
|
|
31
31
|
var DatepickerProvider = function DatepickerProvider(_ref) {
|
|
32
|
-
var _ref$
|
|
33
|
-
|
|
32
|
+
var _ref$initialSelectedD = _ref.initialSelectedDate,
|
|
33
|
+
initialSelectedDate = _ref$initialSelectedD === void 0 ? null : _ref$initialSelectedD,
|
|
34
34
|
_ref$disableBefore = _ref.disableBefore,
|
|
35
35
|
disableBefore = _ref$disableBefore === void 0 ? null : _ref$disableBefore,
|
|
36
36
|
_ref$disableAfter = _ref.disableAfter,
|
|
@@ -40,9 +40,9 @@ var DatepickerProvider = function DatepickerProvider(_ref) {
|
|
|
40
40
|
// Today
|
|
41
41
|
var today = (0, _react.useState)(new Date()); // Date used to keep track of what Month is in view
|
|
42
42
|
|
|
43
|
-
var date = (0, _react.useState)(
|
|
43
|
+
var date = (0, _react.useState)(initialSelectedDate ? new Date(initialSelectedDate) : new Date()); // Currently selected date
|
|
44
44
|
|
|
45
|
-
var selectedDate = (0, _react.useState)(
|
|
45
|
+
var selectedDate = (0, _react.useState)(initialSelectedDate ? new Date(initialSelectedDate) : null); // The date where days in the past should be disabled
|
|
46
46
|
|
|
47
47
|
var disableBeforeDate = (0, _react.useState)(disableBefore ? new Date(disableBefore) : null); // The date where days in the future should be disabled
|
|
48
48
|
|
|
@@ -13,13 +13,14 @@ var _propTypes = _interopRequireDefault(require("./utils/propTypes"));
|
|
|
13
13
|
|
|
14
14
|
var _DatepickerContext = require("./DatepickerContext");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _components = require("./components");
|
|
17
17
|
|
|
18
18
|
var DatepickerSingle = function DatepickerSingle(_ref) {
|
|
19
|
-
var
|
|
19
|
+
var initialSelectedDate = _ref.initialSelectedDate,
|
|
20
20
|
disableBefore = _ref.disableBefore,
|
|
21
21
|
disableAfter = _ref.disableAfter,
|
|
22
22
|
onDateChange = _ref.onDateChange,
|
|
23
|
+
usePortal = _ref.usePortal,
|
|
23
24
|
isInvalid = _ref.isInvalid,
|
|
24
25
|
useInputIcons = _ref.useInputIcons,
|
|
25
26
|
dateInputLabelText = _ref.dateInputLabelText,
|
|
@@ -27,12 +28,13 @@ var DatepickerSingle = function DatepickerSingle(_ref) {
|
|
|
27
28
|
dateInputErrorText = _ref.dateInputErrorText,
|
|
28
29
|
datepickerOverrides = _ref.datepickerOverrides;
|
|
29
30
|
return /*#__PURE__*/_react.default.createElement(_DatepickerContext.DatepickerProvider, {
|
|
30
|
-
|
|
31
|
+
initialSelectedDate: initialSelectedDate,
|
|
31
32
|
disableBefore: disableBefore,
|
|
32
33
|
disableAfter: disableAfter,
|
|
33
34
|
isInvalid: isInvalid
|
|
34
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
35
|
+
}, /*#__PURE__*/_react.default.createElement(_components.DatepickerContainer, {
|
|
35
36
|
onDateChange: onDateChange,
|
|
37
|
+
usePortal: usePortal,
|
|
36
38
|
useInputIcons: useInputIcons,
|
|
37
39
|
dateInputLabelText: dateInputLabelText,
|
|
38
40
|
dateInputPlaceholderText: dateInputPlaceholderText,
|
|
@@ -42,6 +44,7 @@ var DatepickerSingle = function DatepickerSingle(_ref) {
|
|
|
42
44
|
};
|
|
43
45
|
|
|
44
46
|
DatepickerSingle.defaultProps = {
|
|
47
|
+
usePortal: false,
|
|
45
48
|
useInputIcons: true,
|
|
46
49
|
isInvalid: false,
|
|
47
50
|
dateInputLabelText: 'Select a Date',
|
|
@@ -17,13 +17,13 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
17
17
|
|
|
18
18
|
var _react2 = require("@chakra-ui/react");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _dateRowCalculations = require("../../common/utils/dateRowCalculations");
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _generalCalculations = require("../../common/utils/generalCalculations");
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _sharedPropTypes = require("../../common/utils/sharedPropTypes");
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _DatepickerContext = require("../DatepickerContext");
|
|
27
27
|
|
|
28
28
|
var calendarDateContainerStyleProps = {
|
|
29
29
|
marginTop: 0,
|
|
@@ -65,15 +65,15 @@ var getCalendarDateStyleProps = function getCalendarDateStyleProps(today, date,
|
|
|
65
65
|
borderColor: 'white',
|
|
66
66
|
color: 'text.secondary.light'
|
|
67
67
|
},
|
|
68
|
-
borderColor: (0,
|
|
69
|
-
fontWeight: (0,
|
|
70
|
-
zIndex: (0,
|
|
71
|
-
backgroundColor: (0,
|
|
72
|
-
color: (0,
|
|
68
|
+
borderColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'white' : 'transparent',
|
|
69
|
+
fontWeight: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'semibold' : (0, _dateRowCalculations.isToday)(calendarDate, today) ? 'bold' : 'base',
|
|
70
|
+
zIndex: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? '1200' : '1100',
|
|
71
|
+
backgroundColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'primary.default' : 'transparent',
|
|
72
|
+
color: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'text.primary.dark' : (0, _dateRowCalculations.outOfMonth)(calendarDate, date) || (0, _dateRowCalculations.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowCalculations.isAfterDisabledDate)(calendarDate, disableAfterDate) ? 'text.secondary.light' : 'text.primary.light',
|
|
73
73
|
_hover: {
|
|
74
74
|
borderWidth: '1px',
|
|
75
|
-
borderColor: (0,
|
|
76
|
-
backgroundColor: (0,
|
|
75
|
+
borderColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'white' : 'primary.default',
|
|
76
|
+
backgroundColor: (0, _dateRowCalculations.selectedSingle)(calendarDate, selectedDate) ? 'primary.600' : 'transparent'
|
|
77
77
|
},
|
|
78
78
|
_disabled: {
|
|
79
79
|
cursor: 'not-allowed',
|
|
@@ -117,26 +117,27 @@ var DateRow = function DateRow(_ref) {
|
|
|
117
117
|
};
|
|
118
118
|
|
|
119
119
|
return /*#__PURE__*/_react.default.createElement(_react2.Tbody, (0, _extends2.default)({
|
|
120
|
-
"data-testid": "calendarDatesContainer"
|
|
120
|
+
"data-testid": "Datepicker-calendarDatesContainer"
|
|
121
121
|
}, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.tbody), (0, _map.default)(dates).call(dates, function (week, index) {
|
|
122
122
|
return /*#__PURE__*/_react.default.createElement(_react2.Tr, (0, _extends2.default)({
|
|
123
123
|
key: index,
|
|
124
124
|
border: "none",
|
|
125
|
-
"data-testid": "calendarRow"
|
|
125
|
+
"data-testid": "Datepicker-calendarRow"
|
|
126
126
|
}, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.tr), (0, _map.default)(week).call(week, function (calendarDate, idx) {
|
|
127
127
|
return /*#__PURE__*/_react.default.createElement(_react2.Td, (0, _extends2.default)({
|
|
128
128
|
key: idx,
|
|
129
|
-
"data-date": (0, _generalCalculations.formatForDataDate)(calendarDate)
|
|
129
|
+
"data-date": (0, _generalCalculations.formatForDataDate)(calendarDate),
|
|
130
|
+
"data-testid": "Datepicker-calendarDate-Td"
|
|
130
131
|
}, calendarDateContainerStyleProps, {
|
|
131
|
-
disabled: (0,
|
|
132
|
+
disabled: (0, _dateRowCalculations.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowCalculations.isAfterDisabledDate)(calendarDate, disableAfterDate)
|
|
132
133
|
}, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.td), /*#__PURE__*/_react.default.createElement(_react2.Button, (0, _extends2.default)({
|
|
133
134
|
value: calendarDate,
|
|
134
135
|
onClick: handleSelect(calendarDate),
|
|
135
136
|
role: "gridcell",
|
|
136
|
-
"data-testid": "
|
|
137
|
+
"data-testid": "Datepicker-calendarDate-Button"
|
|
137
138
|
}, getCalendarDateStyleProps(today, date, calendarDate, selectedDate, disableBeforeDate, disableAfterDate), {
|
|
138
|
-
disabled: (0,
|
|
139
|
-
}, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.button), (0,
|
|
139
|
+
disabled: (0, _dateRowCalculations.isBeforeDisabledDate)(calendarDate, disableBeforeDate) || (0, _dateRowCalculations.isAfterDisabledDate)(calendarDate, disableAfterDate)
|
|
140
|
+
}, dateRowOverrides === null || dateRowOverrides === void 0 ? void 0 : dateRowOverrides.button), (0, _dateRowCalculations.getButtonText)(calendarDate)));
|
|
140
141
|
}));
|
|
141
142
|
}));
|
|
142
143
|
};
|
|
@@ -2,39 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
6
|
+
|
|
7
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
|
8
|
+
|
|
9
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
|
6
10
|
|
|
7
11
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
8
12
|
|
|
13
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
|
14
|
+
|
|
15
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
16
|
+
|
|
9
17
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
10
18
|
|
|
11
19
|
Object.defineProperty(exports, "__esModule", {
|
|
12
20
|
value: true
|
|
13
21
|
});
|
|
14
|
-
exports.default = void 0;
|
|
22
|
+
exports.getPopoverProps = exports.default = void 0;
|
|
15
23
|
|
|
16
24
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
17
25
|
|
|
18
26
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
19
27
|
|
|
28
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
29
|
+
|
|
20
30
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
31
|
|
|
22
32
|
var _react2 = require("@chakra-ui/react");
|
|
23
33
|
|
|
24
|
-
var
|
|
34
|
+
var _components = require("../../common/components");
|
|
25
35
|
|
|
26
|
-
var
|
|
36
|
+
var _propTypes = require("../utils/propTypes");
|
|
27
37
|
|
|
28
|
-
var
|
|
38
|
+
var _DatepickerContext = require("../DatepickerContext");
|
|
29
39
|
|
|
30
|
-
var
|
|
40
|
+
var _DateRow = _interopRequireDefault(require("./DateRow"));
|
|
31
41
|
|
|
32
|
-
var _DatepickerControl = _interopRequireDefault(require("./
|
|
42
|
+
var _DatepickerControl = _interopRequireDefault(require("./DatepickerControl"));
|
|
33
43
|
|
|
34
44
|
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
45
|
|
|
36
46
|
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; }
|
|
37
47
|
|
|
48
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
49
|
+
|
|
50
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
51
|
+
|
|
38
52
|
var popoverContentStyleProps = {
|
|
39
53
|
width: {
|
|
40
54
|
base: 304,
|
|
@@ -58,55 +72,94 @@ var popoverBodyStyleProps = {
|
|
|
58
72
|
alignItems: 'center'
|
|
59
73
|
};
|
|
60
74
|
|
|
61
|
-
var
|
|
75
|
+
var getPopoverProps = function getPopoverProps(_ref) {
|
|
76
|
+
var isOpen = _ref.isOpen,
|
|
77
|
+
onCloseCallback = _ref.onCloseCallback,
|
|
78
|
+
isMobile = _ref.isMobile;
|
|
79
|
+
return {
|
|
80
|
+
isOpen: isOpen,
|
|
81
|
+
onClose: onCloseCallback,
|
|
82
|
+
closeOnBlur: true,
|
|
83
|
+
returnFocusOnClose: false,
|
|
84
|
+
isLazy: true,
|
|
85
|
+
lazyBehavior: 'keepMounted',
|
|
86
|
+
openDelay: 250,
|
|
87
|
+
closeDelay: 250,
|
|
88
|
+
placement: !isMobile ? 'bottom-start' : 'bottom',
|
|
89
|
+
modifiers: [{
|
|
90
|
+
name: 'customStyles',
|
|
91
|
+
enabled: true,
|
|
92
|
+
phase: 'write',
|
|
93
|
+
fn: function fn(_ref2) {
|
|
94
|
+
var state = _ref2.state;
|
|
95
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
96
|
+
styles: _objectSpread(_objectSpread({}, state.styles), {}, {
|
|
97
|
+
popper: _objectSpread(_objectSpread({}, state.styles.popper), {}, {
|
|
98
|
+
zIndex: 'var(--chakra-zIndices-layer10)'
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}]
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
exports.getPopoverProps = getPopoverProps;
|
|
108
|
+
|
|
109
|
+
var DatepickerContainer = function DatepickerContainer(_ref3) {
|
|
62
110
|
var _datepickerOverrides$, _datepickerOverrides$2, _datepickerOverrides$3;
|
|
63
111
|
|
|
64
|
-
var onDateChange =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
112
|
+
var onDateChange = _ref3.onDateChange,
|
|
113
|
+
usePortal = _ref3.usePortal,
|
|
114
|
+
useInputIcons = _ref3.useInputIcons,
|
|
115
|
+
dateInputLabelText = _ref3.dateInputLabelText,
|
|
116
|
+
dateInputPlaceholderText = _ref3.dateInputPlaceholderText,
|
|
117
|
+
dateInputErrorText = _ref3.dateInputErrorText,
|
|
118
|
+
datepickerOverrides = _ref3.datepickerOverrides;
|
|
70
119
|
|
|
71
120
|
var _useDatepicker = (0, _DatepickerContext.useDatepicker)(),
|
|
72
121
|
_useDatepicker$select = (0, _slicedToArray2.default)(_useDatepicker.selectedDate, 1),
|
|
73
122
|
selectedDate = _useDatepicker$select[0],
|
|
74
|
-
isInvalid = _useDatepicker.isInvalid,
|
|
75
123
|
_useDatepicker$disclo = _useDatepicker.disclosure,
|
|
76
124
|
isOpen = _useDatepicker$disclo.isOpen,
|
|
77
125
|
onClose = _useDatepicker$disclo.onClose;
|
|
78
126
|
|
|
127
|
+
var isMobile = (0, _react2.useBreakpointValue)({
|
|
128
|
+
base: true,
|
|
129
|
+
mobileXL: false
|
|
130
|
+
});
|
|
79
131
|
(0, _react.useEffect)(function () {
|
|
80
132
|
onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange({
|
|
81
133
|
selectedDate: selectedDate
|
|
82
134
|
}); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
135
|
}, [selectedDate]);
|
|
84
|
-
return /*#__PURE__*/_react.default.createElement(_react2.Popover, (0, _extends2.default)({
|
|
136
|
+
return /*#__PURE__*/_react.default.createElement(_react2.Popover, (0, _extends2.default)({}, getPopoverProps({
|
|
85
137
|
isOpen: isOpen,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
isLazy: true,
|
|
90
|
-
placement: "bottom-start"
|
|
91
|
-
}, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.popover), /*#__PURE__*/_react.default.createElement(_DatepickerControl.default, {
|
|
138
|
+
onCloseCallback: onClose,
|
|
139
|
+
isMobile: isMobile
|
|
140
|
+
}), datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.popover), /*#__PURE__*/_react.default.createElement(_DatepickerControl.default, {
|
|
92
141
|
value: selectedDate,
|
|
93
142
|
useInputIcons: useInputIcons,
|
|
94
|
-
isInputInvalid: isInvalid,
|
|
95
143
|
inputLabelText: dateInputLabelText,
|
|
96
144
|
inputPlaceholderText: dateInputPlaceholderText,
|
|
97
145
|
errorText: dateInputErrorText,
|
|
98
|
-
|
|
99
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
146
|
+
datepickerControlOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.datepickerControlOverrides
|
|
147
|
+
}), /*#__PURE__*/_react.default.createElement(_components.WithPortal, (0, _extends2.default)({
|
|
148
|
+
usePortal: usePortal
|
|
149
|
+
}, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.portal), /*#__PURE__*/_react.default.createElement(_react2.PopoverContent, (0, _extends2.default)({
|
|
100
150
|
role: "dialog",
|
|
101
151
|
"aria-modal": "true",
|
|
102
152
|
"aria-label": "Choose Date",
|
|
103
|
-
"data-testid": "PopoverContent"
|
|
153
|
+
"data-testid": "Datepicker-PopoverContent"
|
|
104
154
|
}, popoverContentStyleProps, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : datepickerOverrides.popoverContent), /*#__PURE__*/_react.default.createElement(_react2.PopoverBody, (0, _extends2.default)({
|
|
105
|
-
"data-testid": "PopoverBody"
|
|
106
|
-
}, popoverBodyStyleProps, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$ = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$ === void 0 ? void 0 : _datepickerOverrides$.popoverBody), /*#__PURE__*/_react.default.createElement(
|
|
107
|
-
datepickerHeaderOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$2 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$2 === void 0 ? void 0 : _datepickerOverrides$2.datepickerHeaderOverrides
|
|
108
|
-
|
|
109
|
-
|
|
155
|
+
"data-testid": "Datepicker-PopoverBody"
|
|
156
|
+
}, popoverBodyStyleProps, datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$ = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$ === void 0 ? void 0 : _datepickerOverrides$.popoverBody), /*#__PURE__*/_react.default.createElement(_components.DatepickerHeader, {
|
|
157
|
+
datepickerHeaderOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$2 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$2 === void 0 ? void 0 : _datepickerOverrides$2.datepickerHeaderOverrides,
|
|
158
|
+
context: _DatepickerContext.DatepickerContext
|
|
159
|
+
}), /*#__PURE__*/_react.default.createElement(_components.DatepickerDays, {
|
|
160
|
+
datepickerDaysOverrides: datepickerOverrides === null || datepickerOverrides === void 0 ? void 0 : (_datepickerOverrides$3 = datepickerOverrides.datepickerBodyOverrides) === null || _datepickerOverrides$3 === void 0 ? void 0 : _datepickerOverrides$3.datepickerDaysOverrides,
|
|
161
|
+
context: _DatepickerContext.DatepickerContext,
|
|
162
|
+
DateRow: _DateRow.default
|
|
110
163
|
})))));
|
|
111
164
|
};
|
|
112
165
|
|