@elliemae/ds-date-picker 2.3.0-alpha.6 → 2.3.0-next.0
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/cjs/DSDatePicker.js +233 -0
- package/cjs/components/DSDatePickerImpl.js +354 -0
- package/cjs/components/DatePickerController/DatePickerController.js +360 -0
- package/cjs/components/DatePickerDay/DatePickerDay.js +24 -0
- package/cjs/components/DatePickerDropdown.js +65 -0
- package/cjs/components/DatePickerHeader/DatePickerHeader.js +56 -0
- package/cjs/components/DatePickerNavigation/DatePickerNavigation.js +32 -0
- package/cjs/components/DatePickerPicker/DatePickerPicker.js +74 -0
- package/cjs/components/DatePickerRange/DatePickerRange.js +119 -0
- package/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +144 -0
- package/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +46 -0
- package/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +85 -0
- package/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +59 -0
- package/cjs/components/index.js +27 -0
- package/cjs/defaultPhrases.js +261 -0
- package/cjs/index.js +35 -0
- package/esm/DSDatePicker.js +211 -0
- package/esm/components/DSDatePickerImpl.js +346 -0
- package/esm/components/DatePickerController/DatePickerController.js +350 -0
- package/esm/components/DatePickerDay/DatePickerDay.js +18 -0
- package/esm/components/DatePickerDropdown.js +57 -0
- package/esm/components/DatePickerHeader/DatePickerHeader.js +49 -0
- package/esm/components/DatePickerNavigation/DatePickerNavigation.js +25 -0
- package/esm/components/DatePickerPicker/DatePickerPicker.js +60 -0
- package/esm/components/DatePickerRange/DatePickerRange.js +111 -0
- package/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +137 -0
- package/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +38 -0
- package/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +77 -0
- package/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +53 -0
- package/esm/components/index.js +10 -0
- package/{dist/esm → esm}/defaultPhrases.js +80 -48
- package/esm/index.js +13 -0
- package/package.json +56 -58
- package/types/components/DSDatePickerImpl.d.ts +20 -0
- package/types/components/DatePickerController/DatePickerController.d.ts +80 -0
- package/types/components/DatePickerDay/DatePickerDay.d.ts +13 -0
- package/types/components/DatePickerDropdown.d.ts +41 -0
- package/types/components/DatePickerHeader/DatePickerHeader.d.ts +15 -0
- package/types/components/DatePickerNavigation/DatePickerNavigation.d.ts +19 -0
- package/types/components/DatePickerPicker/DatePickerPicker.d.ts +48 -0
- package/types/components/DatePickerRange/DatePickerRange.d.ts +9 -0
- package/types/components/DatePickerRangeHeader/DatePickerRangeHeader.d.ts +23 -0
- package/types/components/DatePickerRangeHeader/tests/DatePickerRangeHeader.test.d.ts +1 -0
- package/types/components/DatePickerRenderMonth/DatePickerRenderMonth.d.ts +5 -0
- package/types/components/DatePickerSingleDate/DatePickerSingleDate.d.ts +11 -0
- package/types/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.d.ts +16 -0
- package/types/components/index.d.ts +10 -0
- package/types/components/tests/DatePickerHeader.test.d.ts +1 -0
- package/types/components/tests/DatePickerRange.test.d.ts +1 -0
- package/types/components/tests/DatePickerRangeHeader.test.d.ts +1 -0
- package/types/components/tests/DatePickerSelectedDate.test.d.ts +1 -0
- package/types/components/tests/DatePickerSingleDate.test.d.ts +1 -0
- package/types/components/tests/SingleRangeDateSwitcher.test.d.ts +1 -0
- package/types/defaultPhrases.d.ts +225 -0
- package/types/index.d.ts +3 -0
- package/dist/cjs/DSDatePicker.js +0 -231
- package/dist/cjs/DSDatePicker.js.map +0 -7
- package/dist/cjs/components/DSDatePickerImpl.js +0 -274
- package/dist/cjs/components/DSDatePickerImpl.js.map +0 -7
- package/dist/cjs/components/DatePickerController/DatePickerController.js +0 -322
- package/dist/cjs/components/DatePickerController/DatePickerController.js.map +0 -7
- package/dist/cjs/components/DatePickerDay/DatePickerDay.js +0 -49
- package/dist/cjs/components/DatePickerDay/DatePickerDay.js.map +0 -7
- package/dist/cjs/components/DatePickerDropdown.js +0 -85
- package/dist/cjs/components/DatePickerDropdown.js.map +0 -7
- package/dist/cjs/components/DatePickerHeader/DatePickerHeader.js +0 -74
- package/dist/cjs/components/DatePickerHeader/DatePickerHeader.js.map +0 -7
- package/dist/cjs/components/DatePickerNavigation/DatePickerNavigation.js +0 -63
- package/dist/cjs/components/DatePickerNavigation/DatePickerNavigation.js.map +0 -7
- package/dist/cjs/components/DatePickerPicker/DatePickerPicker.js +0 -85
- package/dist/cjs/components/DatePickerPicker/DatePickerPicker.js.map +0 -7
- package/dist/cjs/components/DatePickerRange/DatePickerRange.js +0 -110
- package/dist/cjs/components/DatePickerRange/DatePickerRange.js.map +0 -7
- package/dist/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +0 -138
- package/dist/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +0 -7
- package/dist/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +0 -61
- package/dist/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +0 -7
- package/dist/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +0 -96
- package/dist/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js.map +0 -7
- package/dist/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +0 -80
- package/dist/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +0 -7
- package/dist/cjs/components/index.js +0 -53
- package/dist/cjs/components/index.js.map +0 -7
- package/dist/cjs/defaultPhrases.js +0 -246
- package/dist/cjs/defaultPhrases.js.map +0 -7
- package/dist/cjs/index.js +0 -38
- package/dist/cjs/index.js.map +0 -7
- package/dist/esm/DSDatePicker.js +0 -213
- package/dist/esm/DSDatePicker.js.map +0 -7
- package/dist/esm/components/DSDatePickerImpl.js +0 -245
- package/dist/esm/components/DSDatePickerImpl.js.map +0 -7
- package/dist/esm/components/DatePickerController/DatePickerController.js +0 -293
- package/dist/esm/components/DatePickerController/DatePickerController.js.map +0 -7
- package/dist/esm/components/DatePickerDay/DatePickerDay.js +0 -20
- package/dist/esm/components/DatePickerDay/DatePickerDay.js.map +0 -7
- package/dist/esm/components/DatePickerDropdown.js +0 -56
- package/dist/esm/components/DatePickerDropdown.js.map +0 -7
- package/dist/esm/components/DatePickerHeader/DatePickerHeader.js +0 -45
- package/dist/esm/components/DatePickerHeader/DatePickerHeader.js.map +0 -7
- package/dist/esm/components/DatePickerNavigation/DatePickerNavigation.js +0 -37
- package/dist/esm/components/DatePickerNavigation/DatePickerNavigation.js.map +0 -7
- package/dist/esm/components/DatePickerPicker/DatePickerPicker.js +0 -56
- package/dist/esm/components/DatePickerPicker/DatePickerPicker.js.map +0 -7
- package/dist/esm/components/DatePickerRange/DatePickerRange.js +0 -81
- package/dist/esm/components/DatePickerRange/DatePickerRange.js.map +0 -7
- package/dist/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +0 -109
- package/dist/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +0 -7
- package/dist/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +0 -32
- package/dist/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +0 -7
- package/dist/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +0 -67
- package/dist/esm/components/DatePickerSingleDate/DatePickerSingleDate.js.map +0 -7
- package/dist/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +0 -51
- package/dist/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +0 -7
- package/dist/esm/components/index.js +0 -24
- package/dist/esm/components/index.js.map +0 -7
- package/dist/esm/defaultPhrases.js.map +0 -7
- package/dist/esm/index.js +0 -9
- package/dist/esm/index.js.map +0 -7
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
5
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
8
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
9
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
11
|
+
var React = require('react');
|
|
12
|
+
var reactDates = require('react-dates');
|
|
13
|
+
var moment = require('moment');
|
|
14
|
+
var dsClassnames = require('@elliemae/ds-classnames');
|
|
15
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
16
|
+
var DatePickerDay = require('../DatePickerDay/DatePickerDay.js');
|
|
17
|
+
var DatePickerNavigation = require('../DatePickerNavigation/DatePickerNavigation.js');
|
|
18
|
+
var DatePickerRangeHeader = require('../DatePickerRangeHeader/DatePickerRangeHeader.js');
|
|
19
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
20
|
+
|
|
21
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
22
|
+
|
|
23
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
24
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
25
|
+
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
26
|
+
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
+
|
|
29
|
+
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) { _defineProperty__default["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; }
|
|
30
|
+
const blockname = 'date-range';
|
|
31
|
+
const Wrapper = dsClassnames.aggregatedClasses('div')(blockname, 'wrapper');
|
|
32
|
+
const {
|
|
33
|
+
classNameElement,
|
|
34
|
+
classNameBlock
|
|
35
|
+
} = dsClassnames.convertPropToCssClassName('datepicker');
|
|
36
|
+
const START_DATE = 'startDate';
|
|
37
|
+
const END_DATE = 'endDate';
|
|
38
|
+
|
|
39
|
+
const DatePickerRangeDate = _ref => {
|
|
40
|
+
let {
|
|
41
|
+
dateStart,
|
|
42
|
+
dateEnd,
|
|
43
|
+
displayFormatDay = 'D',
|
|
44
|
+
showHeader = true,
|
|
45
|
+
otherProps
|
|
46
|
+
} = _ref;
|
|
47
|
+
const [selectedDateStart, setSelectedDateStart] = React.useState(dateStart);
|
|
48
|
+
const [selectedDateEnd, setSelectedDateEnd] = React.useState(dateEnd);
|
|
49
|
+
const [focusedInput, setFocusedInput] = React.useState(START_DATE);
|
|
50
|
+
const datePickerRef = React.useRef();
|
|
51
|
+
|
|
52
|
+
const handleFocusChange = () => {
|
|
53
|
+
setFocusedInput(focusedInput === START_DATE ? END_DATE : START_DATE);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const handleDatesChange = _ref2 => {
|
|
57
|
+
let {
|
|
58
|
+
startDate,
|
|
59
|
+
endDate
|
|
60
|
+
} = _ref2;
|
|
61
|
+
setSelectedDateStart(startDate);
|
|
62
|
+
setSelectedDateEnd(endDate);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const handleStartInputChange = newDate => {
|
|
66
|
+
setSelectedDateStart(newDate);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const handleEndInputChange = newDate => {
|
|
70
|
+
setSelectedDateEnd(newDate);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const getSafeDateStartValue = () => {
|
|
74
|
+
if (selectedDateStart) {
|
|
75
|
+
return moment__default["default"](selectedDateStart);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const getSafeDateEndValue = () => {
|
|
80
|
+
if (selectedDateEnd) {
|
|
81
|
+
return moment__default["default"](selectedDateEnd);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const safeStartDate = getSafeDateStartValue();
|
|
86
|
+
const safeEndDate = getSafeDateEndValue();
|
|
87
|
+
return /*#__PURE__*/_jsx__default["default"](Wrapper, {}, void 0, showHeader && /*#__PURE__*/_jsx__default["default"](DatePickerRangeHeader, {
|
|
88
|
+
onEndInputChange: handleEndInputChange,
|
|
89
|
+
onStartInputChange: handleStartInputChange,
|
|
90
|
+
selectedEndDate: safeEndDate,
|
|
91
|
+
selectedStartDate: safeStartDate
|
|
92
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
93
|
+
ref: datePickerRef,
|
|
94
|
+
className: classNameBlock('wrapper-day-picker-single-date-controller'),
|
|
95
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactDates.DayPickerRangeController, _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
96
|
+
enableOutsideDays: true,
|
|
97
|
+
endDate: safeEndDate,
|
|
98
|
+
focused: true,
|
|
99
|
+
focusedInput: focusedInput,
|
|
100
|
+
hideKeyboardShortcutsPanel: true,
|
|
101
|
+
navNext: /*#__PURE__*/_jsx__default["default"](DatePickerNavigation, {
|
|
102
|
+
className: classNameElement('navigation-next')
|
|
103
|
+
}),
|
|
104
|
+
navPrev: /*#__PURE__*/_jsx__default["default"](DatePickerNavigation, {
|
|
105
|
+
className: classNameElement('navigation-prev'),
|
|
106
|
+
icon: dsIcons.ChevronLeft
|
|
107
|
+
}),
|
|
108
|
+
onDatesChange: handleDatesChange,
|
|
109
|
+
onFocusChange: handleFocusChange,
|
|
110
|
+
renderDayContents: date => /*#__PURE__*/_jsx__default["default"](DatePickerDay, {
|
|
111
|
+
className: classNameElement('day-contents'),
|
|
112
|
+
date: date.format(displayFormatDay)
|
|
113
|
+
}),
|
|
114
|
+
startDate: safeStartDate
|
|
115
|
+
}))
|
|
116
|
+
}));
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
module.exports = DatePickerRangeDate;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var moment = require('moment');
|
|
7
|
+
var dsForm = require('@elliemae/ds-form');
|
|
8
|
+
var dsClassnames = require('@elliemae/ds-classnames');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
+
|
|
12
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
13
|
+
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
14
|
+
|
|
15
|
+
const blockname = 'date-range-picker';
|
|
16
|
+
const DATE_FORMAT = 'MMDDYYYY'; // When year is greater than 999 it means the user finished writing
|
|
17
|
+
// the year for the range, because they must type 4 numbers for the year
|
|
18
|
+
// to be higher than 999
|
|
19
|
+
|
|
20
|
+
const MAGIC_NUMBER = 999;
|
|
21
|
+
const Header = dsClassnames.aggregatedClasses('div')(blockname, 'header', _ref => {
|
|
22
|
+
let {
|
|
23
|
+
invalidDate
|
|
24
|
+
} = _ref;
|
|
25
|
+
return {
|
|
26
|
+
invalidDate
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const DatePickerRangeHeader = _ref2 => {
|
|
31
|
+
let {
|
|
32
|
+
onStartInputChange = () => null,
|
|
33
|
+
onEndInputChange = () => null,
|
|
34
|
+
onFocusChange = () => null,
|
|
35
|
+
selectedStartDate,
|
|
36
|
+
selectedEndDate,
|
|
37
|
+
handleDatesChange,
|
|
38
|
+
autoJumpOnEdit = true
|
|
39
|
+
} = _ref2;
|
|
40
|
+
const [startValue, setStartValue] = React.useState(selectedStartDate);
|
|
41
|
+
const [endValue, setEndValue] = React.useState(selectedEndDate);
|
|
42
|
+
const startInputRef = React.useRef();
|
|
43
|
+
const endInputRef = React.useRef();
|
|
44
|
+
React.useEffect(() => {
|
|
45
|
+
if (selectedStartDate) {
|
|
46
|
+
setStartValue(selectedStartDate.format(DATE_FORMAT));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (selectedEndDate) {
|
|
50
|
+
setEndValue(selectedEndDate.format(DATE_FORMAT));
|
|
51
|
+
}
|
|
52
|
+
}, [selectedStartDate, selectedEndDate]);
|
|
53
|
+
|
|
54
|
+
const isValidRangeDate = (start, end) => {
|
|
55
|
+
let isValidRange = false;
|
|
56
|
+
|
|
57
|
+
if (start && end) {
|
|
58
|
+
const momentStart = moment__default["default"](start, DATE_FORMAT);
|
|
59
|
+
const momentEnd = moment__default["default"](end, DATE_FORMAT);
|
|
60
|
+
isValidRange = momentStart.isBefore(momentEnd);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return isValidRange;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const handleOnFocus = inputType => onFocusChange(inputType);
|
|
67
|
+
|
|
68
|
+
const handleOnChangeStart = newStartValue => {
|
|
69
|
+
var _endInputRef$current, _endInputRef$current$;
|
|
70
|
+
|
|
71
|
+
const y = newStartValue.substring(4);
|
|
72
|
+
const momentValue = moment__default["default"](newStartValue, DATE_FORMAT);
|
|
73
|
+
|
|
74
|
+
if (newStartValue && newStartValue.length === DATE_FORMAT.length) {
|
|
75
|
+
onStartInputChange(momentValue);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
setStartValue(newStartValue);
|
|
79
|
+
|
|
80
|
+
if (autoJumpOnEdit && parseInt(y, 10) > MAGIC_NUMBER && endInputRef !== null && endInputRef !== void 0 && (_endInputRef$current = endInputRef.current) !== null && _endInputRef$current !== void 0 && (_endInputRef$current$ = _endInputRef$current.firstChild) !== null && _endInputRef$current$ !== void 0 && _endInputRef$current$.focus) {
|
|
81
|
+
endInputRef.current.firstChild.focus();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const handleOnChangeEnd = newEndValue => {
|
|
86
|
+
const momentValue = moment__default["default"](newEndValue, DATE_FORMAT);
|
|
87
|
+
|
|
88
|
+
if (isValidRangeDate(startValue, newEndValue) && newEndValue && newEndValue.length === DATE_FORMAT.length) {
|
|
89
|
+
onEndInputChange(momentValue);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
setEndValue(newEndValue);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const handleOnKeyDownStart = e => {
|
|
96
|
+
const isValid = isValidRangeDate(startValue, endValue);
|
|
97
|
+
const momentStart = moment__default["default"](startValue, DATE_FORMAT);
|
|
98
|
+
const momentEnd = moment__default["default"](endValue, DATE_FORMAT);
|
|
99
|
+
|
|
100
|
+
if (e.key === 'Enter' && startValue) {
|
|
101
|
+
onStartInputChange(momentStart);
|
|
102
|
+
if (isValid) handleDatesChange({
|
|
103
|
+
startDate: momentStart,
|
|
104
|
+
endDate: momentEnd
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const handleOnKeyDownEnd = e => {
|
|
110
|
+
const isValid = isValidRangeDate(startValue, endValue);
|
|
111
|
+
const momentStart = moment__default["default"](startValue, DATE_FORMAT);
|
|
112
|
+
const momentEnd = moment__default["default"](endValue, DATE_FORMAT);
|
|
113
|
+
|
|
114
|
+
if (e.key === 'Enter' && isValid) {
|
|
115
|
+
handleDatesChange({
|
|
116
|
+
startDate: momentStart,
|
|
117
|
+
endDate: momentEnd
|
|
118
|
+
});
|
|
119
|
+
onEndInputChange(momentEnd);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
return /*#__PURE__*/_jsx__default["default"](Header, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSInputGroup, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSDateInputV2, {
|
|
124
|
+
containerProps: {
|
|
125
|
+
'data-testid': 'start-date'
|
|
126
|
+
},
|
|
127
|
+
innerRef: startInputRef,
|
|
128
|
+
onChange: handleOnChangeStart,
|
|
129
|
+
onFocus: () => handleOnFocus('startDate'),
|
|
130
|
+
onKeyDown: handleOnKeyDownStart,
|
|
131
|
+
value: startValue
|
|
132
|
+
}), /*#__PURE__*/_jsx__default["default"](dsForm.DSDateInputV2, {
|
|
133
|
+
containerProps: {
|
|
134
|
+
'data-testid': 'end-date'
|
|
135
|
+
},
|
|
136
|
+
innerRef: endInputRef,
|
|
137
|
+
onChange: handleOnChangeEnd,
|
|
138
|
+
onFocus: () => handleOnFocus('endDate'),
|
|
139
|
+
onKeyDown: handleOnKeyDownEnd,
|
|
140
|
+
value: endValue
|
|
141
|
+
})));
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
module.exports = DatePickerRangeHeader;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
|
+
require('react');
|
|
7
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
8
|
+
var dsGrid = require('@elliemae/ds-grid');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
+
|
|
12
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
13
|
+
|
|
14
|
+
var _ChevronDoubleLeft, _ChevronDoubleRight;
|
|
15
|
+
const renderMonthElement = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
month,
|
|
18
|
+
onYearSelect
|
|
19
|
+
} = _ref;
|
|
20
|
+
return /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
|
|
21
|
+
height: "20px",
|
|
22
|
+
cols: ['auto', 1, 'auto'],
|
|
23
|
+
alignItems: "flex-end",
|
|
24
|
+
mr: "10px"
|
|
25
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"]("div", {}, void 0, /*#__PURE__*/_jsx__default["default"]("div", {
|
|
26
|
+
role: "button",
|
|
27
|
+
tabIndex: "0",
|
|
28
|
+
"data-testid": "date-picker-prev-year-arrow",
|
|
29
|
+
onClick: () => onYearSelect(month, month.year() - 1)
|
|
30
|
+
}, void 0, _ChevronDoubleLeft || (_ChevronDoubleLeft = /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronDoubleLeft, {
|
|
31
|
+
width: 13.6,
|
|
32
|
+
height: 13.6
|
|
33
|
+
})))), /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
|
|
34
|
+
"data-testid": "date-picker-header"
|
|
35
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"]("strong", {}, void 0, month.format('MMMM YYYY'))), /*#__PURE__*/_jsx__default["default"]("div", {}, void 0, /*#__PURE__*/_jsx__default["default"]("div", {
|
|
36
|
+
role: "button",
|
|
37
|
+
tabIndex: "0",
|
|
38
|
+
"data-testid": "date-picker-next-year-arrow",
|
|
39
|
+
onClick: () => onYearSelect(month, month.year() + 1)
|
|
40
|
+
}, void 0, _ChevronDoubleRight || (_ChevronDoubleRight = /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronDoubleRight, {
|
|
41
|
+
width: 13.6,
|
|
42
|
+
height: 13.6
|
|
43
|
+
})))));
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.renderMonthElement = renderMonthElement;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var reactDates = require('react-dates');
|
|
8
|
+
var moment = require('moment');
|
|
9
|
+
var dsClassnames = require('@elliemae/ds-classnames');
|
|
10
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
11
|
+
var DatePickerDay = require('../DatePickerDay/DatePickerDay.js');
|
|
12
|
+
var DatePickerNavigation = require('../DatePickerNavigation/DatePickerNavigation.js');
|
|
13
|
+
var DatePickerHeader = require('../DatePickerHeader/DatePickerHeader.js');
|
|
14
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
15
|
+
|
|
16
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
+
|
|
18
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
19
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
20
|
+
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
21
|
+
|
|
22
|
+
const _excluded = ["date", "displayFormatDay", "isDayHighlighted", "enableOutsideDays", "showHeader", "onChange"];
|
|
23
|
+
const blockname = 'single-date';
|
|
24
|
+
const Wrapper = dsClassnames.aggregatedClasses('div')(blockname, 'wrapper');
|
|
25
|
+
const {
|
|
26
|
+
classNameElement,
|
|
27
|
+
classNameBlock
|
|
28
|
+
} = dsClassnames.convertPropToCssClassName('datepicker');
|
|
29
|
+
|
|
30
|
+
const DatePickerSingleDate = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
date,
|
|
33
|
+
displayFormatDay = 'D',
|
|
34
|
+
isDayHighlighted = () => false,
|
|
35
|
+
enableOutsideDays = true,
|
|
36
|
+
showHeader = true,
|
|
37
|
+
onChange = () => null
|
|
38
|
+
} = _ref,
|
|
39
|
+
rest = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
40
|
+
|
|
41
|
+
const [selectedDate, setSelectedDate] = React.useState(date);
|
|
42
|
+
const [key, setKey] = React.useState(moment__default["default"]());
|
|
43
|
+
const datePickerRef = React.useRef();
|
|
44
|
+
|
|
45
|
+
const updateKeyDate = newDate => {
|
|
46
|
+
setKey(newDate);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const handleDateChange = newDate => {
|
|
50
|
+
setSelectedDate(newDate);
|
|
51
|
+
setTimeout(() => onChange(newDate), 500);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
return /*#__PURE__*/_jsx__default["default"](Wrapper, {}, void 0, showHeader && /*#__PURE__*/_jsx__default["default"](DatePickerHeader, {
|
|
55
|
+
onInputChange: handleDateChange,
|
|
56
|
+
selectedDate: selectedDate,
|
|
57
|
+
updateKeyDate: updateKeyDate
|
|
58
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
59
|
+
ref: datePickerRef,
|
|
60
|
+
className: classNameBlock('wrapper-day-picker-single-date-controller'),
|
|
61
|
+
"data-testid": rest['data-testid'] || 'date-picker-single-date',
|
|
62
|
+
children: /*#__PURE__*/_jsx__default["default"](reactDates.DayPickerSingleDateController, {
|
|
63
|
+
date: selectedDate,
|
|
64
|
+
enableOutsideDays: enableOutsideDays,
|
|
65
|
+
focused: true,
|
|
66
|
+
hideKeyboardShortcutsPanel: true,
|
|
67
|
+
isDayHighlighted: isDayHighlighted,
|
|
68
|
+
keepOpenOnDateSelect: true,
|
|
69
|
+
navNext: /*#__PURE__*/_jsx__default["default"](DatePickerNavigation, {
|
|
70
|
+
className: classNameElement('navigation-next')
|
|
71
|
+
}),
|
|
72
|
+
navPrev: /*#__PURE__*/_jsx__default["default"](DatePickerNavigation, {
|
|
73
|
+
className: classNameElement('navigation-prev'),
|
|
74
|
+
icon: dsIcons.ChevronLeft
|
|
75
|
+
}),
|
|
76
|
+
onDateChange: handleDateChange,
|
|
77
|
+
renderDayContents: givenDate => /*#__PURE__*/_jsx__default["default"](DatePickerDay, {
|
|
78
|
+
className: classNameElement('day-contents'),
|
|
79
|
+
date: givenDate.format(displayFormatDay)
|
|
80
|
+
})
|
|
81
|
+
}, key)
|
|
82
|
+
}));
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
module.exports = DatePickerSingleDate;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
|
+
require('react');
|
|
5
|
+
var dsForm = require('@elliemae/ds-form');
|
|
6
|
+
var dsClassnames = require('@elliemae/ds-classnames');
|
|
7
|
+
var DatePickerRangeHeader = require('../DatePickerRangeHeader/DatePickerRangeHeader.js');
|
|
8
|
+
var DatePickerHeader = require('../DatePickerHeader/DatePickerHeader.js');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
+
|
|
12
|
+
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
13
|
+
|
|
14
|
+
const blockname = 'date-switcher';
|
|
15
|
+
const Header = dsClassnames.aggregatedClasses('div')(blockname, 'header');
|
|
16
|
+
|
|
17
|
+
const SingleRangeDateSwitcher = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
onStartInputChange,
|
|
20
|
+
onEndInputChange,
|
|
21
|
+
onSingleInputChange,
|
|
22
|
+
onFocusChange,
|
|
23
|
+
selectedStartDate,
|
|
24
|
+
selectedEndDate,
|
|
25
|
+
selectedSingleDate,
|
|
26
|
+
isDateRange,
|
|
27
|
+
setIsDateRange,
|
|
28
|
+
handleDatesChange,
|
|
29
|
+
updateKeyDate,
|
|
30
|
+
focusedInput
|
|
31
|
+
} = _ref;
|
|
32
|
+
|
|
33
|
+
const SingleDateInput = /*#__PURE__*/_jsx__default["default"](DatePickerHeader, {
|
|
34
|
+
onInputChange: onSingleInputChange,
|
|
35
|
+
selectedDate: selectedSingleDate,
|
|
36
|
+
updateKeyDate: updateKeyDate
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const DateRangeInput = /*#__PURE__*/_jsx__default["default"](DatePickerRangeHeader, {
|
|
40
|
+
focusedInput: focusedInput,
|
|
41
|
+
onFocusChange: onFocusChange,
|
|
42
|
+
onEndInputChange: onEndInputChange,
|
|
43
|
+
onStartInputChange: onStartInputChange,
|
|
44
|
+
selectedEndDate: selectedEndDate,
|
|
45
|
+
selectedStartDate: selectedStartDate,
|
|
46
|
+
handleDatesChange: handleDatesChange
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return /*#__PURE__*/_jsx__default["default"](Header, {
|
|
50
|
+
"data-testid": "date-switch-header"
|
|
51
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSCheckbox, {
|
|
52
|
+
checked: isDateRange,
|
|
53
|
+
className: "switch-header__checkbox",
|
|
54
|
+
labelText: "Range",
|
|
55
|
+
onChange: setIsDateRange
|
|
56
|
+
}), isDateRange ? DateRangeInput : SingleDateInput);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
module.exports = SingleRangeDateSwitcher;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var DatePickerNavigation = require('./DatePickerNavigation/DatePickerNavigation.js');
|
|
6
|
+
var DatePickerDay = require('./DatePickerDay/DatePickerDay.js');
|
|
7
|
+
var DatePickerPicker = require('./DatePickerPicker/DatePickerPicker.js');
|
|
8
|
+
var DatePickerDropdown = require('./DatePickerDropdown.js');
|
|
9
|
+
var DatePickerSingleDate = require('./DatePickerSingleDate/DatePickerSingleDate.js');
|
|
10
|
+
var DatePickerHeader = require('./DatePickerHeader/DatePickerHeader.js');
|
|
11
|
+
var DatePickerRange = require('./DatePickerRange/DatePickerRange.js');
|
|
12
|
+
var DatePickerRangeHeader = require('./DatePickerRangeHeader/DatePickerRangeHeader.js');
|
|
13
|
+
var SingleRangeDateSwitcher = require('./SingleRangeDateSwitcher/SingleRangeDateSwitcher.js');
|
|
14
|
+
var DatePickerRenderMonth = require('./DatePickerRenderMonth/DatePickerRenderMonth.js');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
exports.DatePickerNavigation = DatePickerNavigation;
|
|
19
|
+
exports.DatePickerDay = DatePickerDay;
|
|
20
|
+
exports.DatePickerPicker = DatePickerPicker.Picker;
|
|
21
|
+
exports.DatePickerDropdown = DatePickerDropdown;
|
|
22
|
+
exports.DatePickerSingleDate = DatePickerSingleDate;
|
|
23
|
+
exports.DatePickerHeader = DatePickerHeader;
|
|
24
|
+
exports.DatePickerRange = DatePickerRange;
|
|
25
|
+
exports.DatePickerRangeHeader = DatePickerRangeHeader;
|
|
26
|
+
exports.SingleRangeDateSwitcher = SingleRangeDateSwitcher;
|
|
27
|
+
exports.renderMonthElement = DatePickerRenderMonth.renderMonthElement;
|