@elliemae/ds-date-picker 2.3.0-alpha.9 → 2.3.0-next.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 (118) hide show
  1. package/cjs/DSDatePicker.js +233 -0
  2. package/cjs/components/DSDatePickerImpl.js +354 -0
  3. package/cjs/components/DatePickerController/DatePickerController.js +360 -0
  4. package/cjs/components/DatePickerDay/DatePickerDay.js +24 -0
  5. package/cjs/components/DatePickerDropdown.js +65 -0
  6. package/cjs/components/DatePickerHeader/DatePickerHeader.js +56 -0
  7. package/cjs/components/DatePickerNavigation/DatePickerNavigation.js +32 -0
  8. package/cjs/components/DatePickerPicker/DatePickerPicker.js +74 -0
  9. package/cjs/components/DatePickerRange/DatePickerRange.js +119 -0
  10. package/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +144 -0
  11. package/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +46 -0
  12. package/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +85 -0
  13. package/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +59 -0
  14. package/cjs/components/index.js +27 -0
  15. package/cjs/defaultPhrases.js +261 -0
  16. package/cjs/index.js +35 -0
  17. package/esm/DSDatePicker.js +211 -0
  18. package/esm/components/DSDatePickerImpl.js +346 -0
  19. package/esm/components/DatePickerController/DatePickerController.js +350 -0
  20. package/esm/components/DatePickerDay/DatePickerDay.js +18 -0
  21. package/esm/components/DatePickerDropdown.js +57 -0
  22. package/esm/components/DatePickerHeader/DatePickerHeader.js +49 -0
  23. package/esm/components/DatePickerNavigation/DatePickerNavigation.js +25 -0
  24. package/esm/components/DatePickerPicker/DatePickerPicker.js +60 -0
  25. package/esm/components/DatePickerRange/DatePickerRange.js +111 -0
  26. package/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +137 -0
  27. package/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +38 -0
  28. package/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +77 -0
  29. package/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +53 -0
  30. package/esm/components/index.js +10 -0
  31. package/{dist/esm → esm}/defaultPhrases.js +80 -48
  32. package/esm/index.js +13 -0
  33. package/package.json +56 -58
  34. package/{dist/types → types}/components/DSDatePickerImpl.d.ts +1 -2
  35. package/{dist/types → types}/components/DatePickerController/DatePickerController.d.ts +1 -1
  36. package/{dist/types → types}/components/DatePickerDay/DatePickerDay.d.ts +0 -1
  37. package/{dist/types → types}/components/DatePickerDropdown.d.ts +0 -1
  38. package/{dist/types → types}/components/DatePickerHeader/DatePickerHeader.d.ts +0 -1
  39. package/{dist/types → types}/components/DatePickerNavigation/DatePickerNavigation.d.ts +3 -4
  40. package/{dist/types → types}/components/DatePickerPicker/DatePickerPicker.d.ts +1 -2
  41. package/{dist/types → types}/components/DatePickerRange/DatePickerRange.d.ts +0 -1
  42. package/{dist/types → types}/components/DatePickerRangeHeader/DatePickerRangeHeader.d.ts +0 -1
  43. package/{dist/types → types}/components/DatePickerRangeHeader/tests/DatePickerRangeHeader.test.d.ts +0 -0
  44. package/{dist/types → types}/components/DatePickerRenderMonth/DatePickerRenderMonth.d.ts +0 -0
  45. package/{dist/types → types}/components/DatePickerSingleDate/DatePickerSingleDate.d.ts +0 -1
  46. package/{dist/types → types}/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.d.ts +0 -1
  47. package/{dist/types → types}/components/index.d.ts +0 -0
  48. package/{dist/types → types}/components/tests/DatePickerHeader.test.d.ts +0 -0
  49. package/{dist/types → types}/components/tests/DatePickerRange.test.d.ts +0 -0
  50. package/{dist/types → types}/components/tests/DatePickerRangeHeader.test.d.ts +0 -0
  51. package/{dist/types → types}/components/tests/DatePickerSelectedDate.test.d.ts +0 -0
  52. package/{dist/types → types}/components/tests/DatePickerSingleDate.test.d.ts +0 -0
  53. package/{dist/types → types}/components/tests/SingleRangeDateSwitcher.test.d.ts +0 -0
  54. package/{dist/types → types}/defaultPhrases.d.ts +0 -0
  55. package/{dist/types → types}/index.d.ts +0 -0
  56. package/dist/cjs/DSDatePicker.js +0 -231
  57. package/dist/cjs/DSDatePicker.js.map +0 -7
  58. package/dist/cjs/components/DSDatePickerImpl.js +0 -274
  59. package/dist/cjs/components/DSDatePickerImpl.js.map +0 -7
  60. package/dist/cjs/components/DatePickerController/DatePickerController.js +0 -322
  61. package/dist/cjs/components/DatePickerController/DatePickerController.js.map +0 -7
  62. package/dist/cjs/components/DatePickerDay/DatePickerDay.js +0 -49
  63. package/dist/cjs/components/DatePickerDay/DatePickerDay.js.map +0 -7
  64. package/dist/cjs/components/DatePickerDropdown.js +0 -85
  65. package/dist/cjs/components/DatePickerDropdown.js.map +0 -7
  66. package/dist/cjs/components/DatePickerHeader/DatePickerHeader.js +0 -74
  67. package/dist/cjs/components/DatePickerHeader/DatePickerHeader.js.map +0 -7
  68. package/dist/cjs/components/DatePickerNavigation/DatePickerNavigation.js +0 -63
  69. package/dist/cjs/components/DatePickerNavigation/DatePickerNavigation.js.map +0 -7
  70. package/dist/cjs/components/DatePickerPicker/DatePickerPicker.js +0 -85
  71. package/dist/cjs/components/DatePickerPicker/DatePickerPicker.js.map +0 -7
  72. package/dist/cjs/components/DatePickerRange/DatePickerRange.js +0 -110
  73. package/dist/cjs/components/DatePickerRange/DatePickerRange.js.map +0 -7
  74. package/dist/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +0 -138
  75. package/dist/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +0 -7
  76. package/dist/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +0 -61
  77. package/dist/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +0 -7
  78. package/dist/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +0 -96
  79. package/dist/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js.map +0 -7
  80. package/dist/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +0 -80
  81. package/dist/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +0 -7
  82. package/dist/cjs/components/index.js +0 -53
  83. package/dist/cjs/components/index.js.map +0 -7
  84. package/dist/cjs/defaultPhrases.js +0 -246
  85. package/dist/cjs/defaultPhrases.js.map +0 -7
  86. package/dist/cjs/index.js +0 -38
  87. package/dist/cjs/index.js.map +0 -7
  88. package/dist/esm/DSDatePicker.js +0 -213
  89. package/dist/esm/DSDatePicker.js.map +0 -7
  90. package/dist/esm/components/DSDatePickerImpl.js +0 -245
  91. package/dist/esm/components/DSDatePickerImpl.js.map +0 -7
  92. package/dist/esm/components/DatePickerController/DatePickerController.js +0 -293
  93. package/dist/esm/components/DatePickerController/DatePickerController.js.map +0 -7
  94. package/dist/esm/components/DatePickerDay/DatePickerDay.js +0 -20
  95. package/dist/esm/components/DatePickerDay/DatePickerDay.js.map +0 -7
  96. package/dist/esm/components/DatePickerDropdown.js +0 -56
  97. package/dist/esm/components/DatePickerDropdown.js.map +0 -7
  98. package/dist/esm/components/DatePickerHeader/DatePickerHeader.js +0 -45
  99. package/dist/esm/components/DatePickerHeader/DatePickerHeader.js.map +0 -7
  100. package/dist/esm/components/DatePickerNavigation/DatePickerNavigation.js +0 -37
  101. package/dist/esm/components/DatePickerNavigation/DatePickerNavigation.js.map +0 -7
  102. package/dist/esm/components/DatePickerPicker/DatePickerPicker.js +0 -56
  103. package/dist/esm/components/DatePickerPicker/DatePickerPicker.js.map +0 -7
  104. package/dist/esm/components/DatePickerRange/DatePickerRange.js +0 -81
  105. package/dist/esm/components/DatePickerRange/DatePickerRange.js.map +0 -7
  106. package/dist/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +0 -109
  107. package/dist/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +0 -7
  108. package/dist/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +0 -32
  109. package/dist/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +0 -7
  110. package/dist/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +0 -67
  111. package/dist/esm/components/DatePickerSingleDate/DatePickerSingleDate.js.map +0 -7
  112. package/dist/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +0 -51
  113. package/dist/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +0 -7
  114. package/dist/esm/components/index.js +0 -24
  115. package/dist/esm/components/index.js.map +0 -7
  116. package/dist/esm/defaultPhrases.js.map +0 -7
  117. package/dist/esm/index.js +0 -9
  118. 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;