@elliemae/ds-date-picker 1.61.0 → 2.0.0-alpha.12

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 (106) hide show
  1. package/cjs/DSDatePicker.js +139 -205
  2. package/cjs/components/DSDatePickerImpl.js +238 -273
  3. package/cjs/components/DatePickerController/DatePickerController.js +199 -297
  4. package/cjs/components/DatePickerDay/DatePickerDay.js +11 -18
  5. package/cjs/components/DatePickerDropdown.js +32 -45
  6. package/cjs/components/DatePickerHeader/DatePickerHeader.js +19 -36
  7. package/cjs/components/DatePickerNavigation/DatePickerNavigation.js +16 -28
  8. package/cjs/components/DatePickerPicker/DatePickerPicker.js +40 -49
  9. package/cjs/components/DatePickerRange/DatePickerRange.js +76 -85
  10. package/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js +48 -82
  11. package/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js +18 -20
  12. package/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js +52 -75
  13. package/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +31 -30
  14. package/cjs/components/index.js +20 -36
  15. package/cjs/defaultPhrases.js +224 -211
  16. package/cjs/index.js +24 -50
  17. package/esm/DSDatePicker.js +108 -174
  18. package/esm/components/DSDatePickerImpl.js +231 -262
  19. package/esm/components/DatePickerController/DatePickerController.js +154 -246
  20. package/esm/components/DatePickerDay/DatePickerDay.js +10 -16
  21. package/esm/components/DatePickerDropdown.js +30 -42
  22. package/esm/components/DatePickerHeader/DatePickerHeader.js +19 -34
  23. package/esm/components/DatePickerNavigation/DatePickerNavigation.js +14 -26
  24. package/esm/components/DatePickerPicker/DatePickerPicker.js +23 -33
  25. package/esm/components/DatePickerRange/DatePickerRange.js +71 -79
  26. package/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js +48 -80
  27. package/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js +17 -19
  28. package/esm/components/DatePickerSingleDate/DatePickerSingleDate.js +48 -70
  29. package/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js +26 -25
  30. package/esm/components/index.js +0 -16
  31. package/esm/defaultPhrases.js +223 -210
  32. package/esm/index.js +4 -30
  33. package/package.json +99 -15
  34. package/types/components/DSDatePickerImpl.d.ts +20 -0
  35. package/types/components/DatePickerController/DatePickerController.d.ts +80 -0
  36. package/types/components/DatePickerDay/DatePickerDay.d.ts +13 -0
  37. package/types/components/DatePickerDropdown.d.ts +41 -0
  38. package/types/components/DatePickerHeader/DatePickerHeader.d.ts +15 -0
  39. package/types/components/DatePickerNavigation/DatePickerNavigation.d.ts +19 -0
  40. package/types/components/DatePickerPicker/DatePickerPicker.d.ts +48 -0
  41. package/types/components/DatePickerRange/DatePickerRange.d.ts +9 -0
  42. package/types/components/DatePickerRangeHeader/DatePickerRangeHeader.d.ts +23 -0
  43. package/types/components/DatePickerRangeHeader/tests/DatePickerRangeHeader.test.d.ts +1 -0
  44. package/types/components/DatePickerRenderMonth/DatePickerRenderMonth.d.ts +5 -0
  45. package/types/components/DatePickerSingleDate/DatePickerSingleDate.d.ts +11 -0
  46. package/types/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.d.ts +16 -0
  47. package/types/components/index.d.ts +10 -0
  48. package/types/components/tests/DatePickerHeader.test.d.ts +1 -0
  49. package/types/components/tests/DatePickerRange.test.d.ts +1 -0
  50. package/types/components/tests/DatePickerRangeHeader.test.d.ts +1 -0
  51. package/types/components/tests/DatePickerSelectedDate.test.d.ts +1 -0
  52. package/types/components/tests/DatePickerSingleDate.test.d.ts +1 -0
  53. package/types/components/tests/SingleRangeDateSwitcher.test.d.ts +1 -0
  54. package/types/defaultPhrases.d.ts +225 -0
  55. package/types/index.d.ts +3 -0
  56. package/DSDatePicker/package.json +0 -10
  57. package/cjs/DSDatePicker.js.map +0 -1
  58. package/cjs/components/DSDatePickerImpl.js.map +0 -1
  59. package/cjs/components/DatePickerController/DatePickerController.js.map +0 -1
  60. package/cjs/components/DatePickerDay/DatePickerDay.js.map +0 -1
  61. package/cjs/components/DatePickerDropdown.js.map +0 -1
  62. package/cjs/components/DatePickerHeader/DatePickerHeader.js.map +0 -1
  63. package/cjs/components/DatePickerNavigation/DatePickerNavigation.js.map +0 -1
  64. package/cjs/components/DatePickerPicker/DatePickerPicker.js.map +0 -1
  65. package/cjs/components/DatePickerRange/DatePickerRange.js.map +0 -1
  66. package/cjs/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +0 -1
  67. package/cjs/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +0 -1
  68. package/cjs/components/DatePickerSingleDate/DatePickerSingleDate.js.map +0 -1
  69. package/cjs/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +0 -1
  70. package/cjs/components/index.js.map +0 -1
  71. package/cjs/defaultPhrases.js.map +0 -1
  72. package/cjs/index.js.map +0 -1
  73. package/cjs/prop-types-fcbbf657.js +0 -18
  74. package/cjs/prop-types-fcbbf657.js.map +0 -1
  75. package/components/DSDatePickerImpl/package.json +0 -10
  76. package/components/DatePickerController/DatePickerController/package.json +0 -10
  77. package/components/DatePickerDay/DatePickerDay/package.json +0 -10
  78. package/components/DatePickerDropdown/package.json +0 -10
  79. package/components/DatePickerHeader/DatePickerHeader/package.json +0 -10
  80. package/components/DatePickerNavigation/DatePickerNavigation/package.json +0 -10
  81. package/components/DatePickerPicker/DatePickerPicker/package.json +0 -10
  82. package/components/DatePickerRange/DatePickerRange/package.json +0 -10
  83. package/components/DatePickerRangeHeader/DatePickerRangeHeader/package.json +0 -10
  84. package/components/DatePickerRenderMonth/DatePickerRenderMonth/package.json +0 -10
  85. package/components/DatePickerSingleDate/DatePickerSingleDate/package.json +0 -10
  86. package/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher/package.json +0 -10
  87. package/components/package.json +0 -10
  88. package/defaultPhrases/package.json +0 -10
  89. package/esm/DSDatePicker.js.map +0 -1
  90. package/esm/components/DSDatePickerImpl.js.map +0 -1
  91. package/esm/components/DatePickerController/DatePickerController.js.map +0 -1
  92. package/esm/components/DatePickerDay/DatePickerDay.js.map +0 -1
  93. package/esm/components/DatePickerDropdown.js.map +0 -1
  94. package/esm/components/DatePickerHeader/DatePickerHeader.js.map +0 -1
  95. package/esm/components/DatePickerNavigation/DatePickerNavigation.js.map +0 -1
  96. package/esm/components/DatePickerPicker/DatePickerPicker.js.map +0 -1
  97. package/esm/components/DatePickerRange/DatePickerRange.js.map +0 -1
  98. package/esm/components/DatePickerRangeHeader/DatePickerRangeHeader.js.map +0 -1
  99. package/esm/components/DatePickerRenderMonth/DatePickerRenderMonth.js.map +0 -1
  100. package/esm/components/DatePickerSingleDate/DatePickerSingleDate.js.map +0 -1
  101. package/esm/components/SingleRangeDateSwitcher/SingleRangeDateSwitcher.js.map +0 -1
  102. package/esm/components/index.js.map +0 -1
  103. package/esm/defaultPhrases.js.map +0 -1
  104. package/esm/index.js.map +0 -1
  105. package/esm/prop-types-578e866b.js +0 -15
  106. package/esm/prop-types-578e866b.js.map +0 -1
@@ -1,86 +1,50 @@
1
1
  'use strict';
2
2
 
3
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
- var _createClass = require('@babel/runtime/helpers/createClass');
5
- var _inherits = require('@babel/runtime/helpers/inherits');
6
- var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
7
- var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ require('core-js/modules/web.dom-collections.iterator.js');
8
5
  var React = require('react');
9
6
  var moment = require('moment');
10
7
  var dsForm = require('@elliemae/ds-form');
11
- var components_DatePickerController_DatePickerController = require('./DatePickerController/DatePickerController.js');
12
- var components_DatePickerDropdown = require('./DatePickerDropdown.js');
13
- require('@babel/runtime/helpers/extends');
14
- require('@babel/runtime/helpers/toArray');
15
- require('@babel/runtime/helpers/slicedToArray');
16
- require('lodash');
17
- require('prop-types');
18
- require('react-dates/initialize');
19
- require('react-dates');
20
- require('@elliemae/ds-classnames');
21
- require('@elliemae/ds-icons');
22
- require('../defaultPhrases.js');
23
- require('./DatePickerRenderMonth/DatePickerRenderMonth.js');
24
- require('@elliemae/ds-grid');
25
- require('./DatePickerNavigation/DatePickerNavigation.js');
26
- require('@elliemae/ds-icon');
27
- require('../prop-types-fcbbf657.js');
28
- require('./DatePickerDay/DatePickerDay.js');
29
- require('@elliemae/ds-popper');
30
- require('./DatePickerPicker/DatePickerPicker.js');
31
- require('@babel/runtime/helpers/objectWithoutProperties');
32
- require('@elliemae/ds-button');
8
+ var DatePickerController = require('./DatePickerController/DatePickerController.js');
9
+ var DatePickerDropdown = require('./DatePickerDropdown.js');
33
10
 
34
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
35
12
 
36
- var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
37
- var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
38
- var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
39
- var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
40
- var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
13
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
41
14
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
42
15
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
43
16
 
44
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
17
+ const FORMAT = 'MMDDYYYY';
18
+ class DSdatePickerImpl extends React__default["default"].Component {
19
+ constructor(props) {
20
+ super(props);
45
21
 
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
- var FORMAT = 'MMDDYYYY';
48
-
49
- var DSdatePickerImpl = /*#__PURE__*/function (_React$Component) {
50
- _inherits__default['default'](DSdatePickerImpl, _React$Component);
51
-
52
- var _super = _createSuper(DSdatePickerImpl);
53
-
54
- function DSdatePickerImpl(props) {
55
- var _this;
56
-
57
- _classCallCheck__default['default'](this, DSdatePickerImpl);
58
-
59
- _this = _super.call(this, props);
60
-
61
- _this.onClickPicker = function () {
62
- _this.setState({
22
+ this.onClickPicker = () => {
23
+ this.setState({
63
24
  inputFocused: true
64
25
  });
65
26
  };
66
27
 
67
- _this.getSafeValue = function () {
68
- var _this$props = _this.props,
69
- value = _this$props.value,
70
- date = _this$props.date,
71
- defaultValue = _this$props.defaultValue;
72
- var selectedDate = _this.state.selectedDate;
28
+ this.getSafeValue = () => {
29
+ const {
30
+ value,
31
+ date,
32
+ defaultValue
33
+ } = this.props;
34
+ const {
35
+ selectedDate
36
+ } = this.state;
73
37
 
74
38
  if (value) {
75
- return moment__default['default'](value, FORMAT, true);
39
+ return moment__default["default"](value, FORMAT, true);
76
40
  }
77
41
 
78
42
  if (date) {
79
- return moment__default['default'](date, FORMAT, true);
43
+ return moment__default["default"](date, FORMAT, true);
80
44
  }
81
45
 
82
46
  if (defaultValue) {
83
- return moment__default['default'](defaultValue, FORMAT, true);
47
+ return moment__default["default"](defaultValue, FORMAT, true);
84
48
  }
85
49
 
86
50
  if (selectedDate) {
@@ -90,35 +54,39 @@ var DSdatePickerImpl = /*#__PURE__*/function (_React$Component) {
90
54
  return null;
91
55
  };
92
56
 
93
- _this.getSafeInputValue = function () {
94
- var safeValue = _this.getSafeValue();
57
+ this.getSafeInputValue = () => {
58
+ const safeValue = this.getSafeValue();
95
59
 
96
60
  if (safeValue && safeValue.isValid()) {
97
61
  return safeValue.format(FORMAT);
98
62
  }
99
63
 
100
- var dataInput = _this.state.dataInput;
64
+ const {
65
+ dataInput
66
+ } = this.state;
101
67
  return dataInput;
102
68
  };
103
69
 
104
- _this.isControlled = function () {
105
- var _this$props2 = _this.props,
106
- value = _this$props2.value,
107
- date = _this$props2.date;
70
+ this.isControlled = () => {
71
+ const {
72
+ value,
73
+ date
74
+ } = this.props;
108
75
  return Boolean(value) || Boolean(date);
109
76
  };
110
77
 
111
- _this.handleDateChange = function (date, event) {
112
- var _this$props3 = _this.props,
113
- readOnly = _this$props3.readOnly,
114
- onDateChange = _this$props3.onDateChange,
115
- keepOpenOnDateSelect = _this$props3.keepOpenOnDateSelect,
116
- onChange = _this$props3.onChange,
117
- onBlur = _this$props3.onBlur;
78
+ this.handleDateChange = (date, event) => {
79
+ const {
80
+ readOnly,
81
+ onDateChange,
82
+ keepOpenOnDateSelect,
83
+ onChange,
84
+ onBlur
85
+ } = this.props;
118
86
 
119
87
  if (!readOnly) {
120
- if (!_this.isControlled()) {
121
- _this.setState({
88
+ if (!this.isControlled()) {
89
+ this.setState({
122
90
  dataInput: date.format(FORMAT),
123
91
  selectedDate: date
124
92
  });
@@ -128,88 +96,86 @@ var DSdatePickerImpl = /*#__PURE__*/function (_React$Component) {
128
96
  onDateChange(date);
129
97
 
130
98
  if (!keepOpenOnDateSelect || event.key === 'Enter') {
131
- _this.setState({
99
+ this.setState({
132
100
  inputFocused: false
133
101
  });
134
-
135
102
  onBlur(date.format(FORMAT), date);
136
103
  }
137
104
  }
138
105
  };
139
106
 
140
- _this.handleInputChange = function (dataInput, newDate) {
141
- var onChange = _this.props.onChange;
142
- var newState = {
143
- dataInput: dataInput,
107
+ this.handleInputChange = (dataInput, newDate) => {
108
+ const {
109
+ onChange
110
+ } = this.props;
111
+ const newState = {
112
+ dataInput,
144
113
  selectedDate: newDate
145
114
  };
146
-
147
- _this.setState(function () {
148
- return newState;
149
- });
150
-
115
+ this.setState(() => newState);
151
116
  onChange(dataInput, newDate);
152
117
  };
153
118
 
154
- _this.handleChange = function (newDate) {
119
+ this.handleChange = newDate => {
155
120
  if (!newDate) return;
156
- var onDateChange = _this.props.onDateChange;
157
- var momentValue = moment__default['default'](newDate, FORMAT, true);
121
+ const {
122
+ onDateChange
123
+ } = this.props;
124
+ const momentValue = moment__default["default"](newDate, FORMAT, true);
158
125
  if (!momentValue.isValid()) return;
159
-
160
- _this.setState({
126
+ this.setState({
161
127
  selectedDate: momentValue
162
128
  });
163
-
164
129
  onDateChange(momentValue);
165
130
  };
166
131
 
167
- _this.handleFocus = function (_ref) {
168
- var focused = _ref.focused;
169
-
170
- _this.setState({
132
+ this.handleFocus = _ref => {
133
+ let {
134
+ focused
135
+ } = _ref;
136
+ this.setState({
171
137
  inputFocused: focused
172
138
  });
173
139
  };
174
140
 
175
- _this.handleCalendarClose = function () {
176
- var onClose = _this.props.onClose;
177
-
178
- _this.setState({
141
+ this.handleCalendarClose = () => {
142
+ const {
143
+ onClose
144
+ } = this.props;
145
+ this.setState({
179
146
  inputFocused: false
180
147
  });
181
-
182
- _this.handleOnBlur();
183
-
148
+ this.handleOnBlur();
184
149
  onClose();
185
150
  };
186
151
 
187
- _this.handleClickEscape = function () {
188
- var onClose = _this.props.onClose;
189
-
190
- _this.setState({
152
+ this.handleClickEscape = () => {
153
+ const {
154
+ onClose
155
+ } = this.props;
156
+ this.setState({
191
157
  inputFocused: false
192
158
  });
193
-
194
- _this.handleOnBlur();
195
-
159
+ this.handleOnBlur();
196
160
  onClose();
197
161
  };
198
162
 
199
- _this.handleOnBlur = function () {
200
- setTimeout(function () {
201
- var _this$props4 = _this.props,
202
- onBlur = _this$props4.onBlur,
203
- autoClear = _this$props4.autoClear;
204
- var _this$state = _this.state,
205
- dataInput = _this$state.dataInput,
206
- selectedDate = _this$state.selectedDate;
207
-
208
- if (moment__default['default'](selectedDate, FORMAT, true).isValid()) {
163
+ this.handleOnBlur = () => {
164
+ setTimeout(() => {
165
+ const {
166
+ onBlur,
167
+ autoClear
168
+ } = this.props;
169
+ const {
170
+ dataInput,
171
+ selectedDate
172
+ } = this.state;
173
+
174
+ if (moment__default["default"](selectedDate, FORMAT, true).isValid()) {
209
175
  onBlur(dataInput, selectedDate);
210
176
  } else {
211
177
  if (autoClear) {
212
- _this.setState({
178
+ this.setState({
213
179
  dataInput: undefined
214
180
  });
215
181
  }
@@ -219,171 +185,170 @@ var DSdatePickerImpl = /*#__PURE__*/function (_React$Component) {
219
185
  });
220
186
  };
221
187
 
222
- _this.handleInputFocus = function (dataInput) {
223
- var onFocus = _this.props.onFocus;
188
+ this.handleInputFocus = dataInput => {
189
+ const {
190
+ onFocus
191
+ } = this.props;
224
192
  onFocus(dataInput);
225
193
  };
226
194
 
227
- _this.state = {
228
- pickerRef: /*#__PURE__*/React__default['default'].createRef(),
195
+ this.state = {
196
+ pickerRef: /*#__PURE__*/React__default["default"].createRef(),
229
197
  dataInput: '',
230
198
  selectedDate: null,
231
199
  inputFocused: false
232
200
  };
233
- return _this;
234
201
  }
235
202
 
236
- _createClass__default['default'](DSdatePickerImpl, [{
237
- key: "render",
238
- value: function render() {
239
- var _this2 = this;
240
-
241
- var inputFocused = this.state.inputFocused;
242
- var _this$props5 = this.props,
243
- disabled = _this$props5.disabled,
244
- numberOfMonths = _this$props5.numberOfMonths,
245
- readOnly = _this$props5.readOnly,
246
- enableOutsideDays = _this$props5.enableOutsideDays,
247
- transitionDuration = _this$props5.transitionDuration,
248
- firstDayOfWeek = _this$props5.firstDayOfWeek,
249
- keepOpenOnDateSelect = _this$props5.keepOpenOnDateSelect,
250
- hideKeyboardShortcutsPanel = _this$props5.hideKeyboardShortcutsPanel,
251
- onPrevMonthClick = _this$props5.onPrevMonthClick,
252
- onNextMonthClick = _this$props5.onNextMonthClick,
253
- _onClose = _this$props5.onClose,
254
- phrases = _this$props5.phrases,
255
- placeholder = _this$props5.placeholder,
256
- displayFormatDay = _this$props5.displayFormatDay,
257
- isDayBlocked = _this$props5.isDayBlocked,
258
- isOutsideRange = _this$props5.isOutsideRange,
259
- isDayHighlighted = _this$props5.isDayHighlighted,
260
- tabIndex = _this$props5.tabIndex,
261
- zIndex = _this$props5.zIndex,
262
- pickerProps = _this$props5.pickerProps,
263
- calendarProps = _this$props5.calendarProps,
264
- focusCurrentDate = _this$props5.focusCurrentDate;
265
- var safedate = this.getSafeValue();
266
- var safeInputValue = this.getSafeInputValue();
267
- var hasSelectedDate = !!safedate;
268
- return /*#__PURE__*/React__default['default'].createElement(dsForm.DSInputGroup, {
269
- rightAddon: /*#__PURE__*/React__default['default'].createElement(components_DatePickerDropdown, {
270
- pickerRef: this.state.pickerRef,
271
- disabled: disabled,
272
- isOpen: inputFocused,
273
- menu: /*#__PURE__*/React__default['default'].createElement("div", {
274
- style: {
275
- minHeight: '310px',
276
- zIndex: 1
277
- },
278
- className: hasSelectedDate ? 'has-selected-date' : 'without-selected-date',
279
- "data-testid": "date-picker-portal-wrapper"
280
- }, /*#__PURE__*/React__default['default'].createElement(components_DatePickerController_DatePickerController, {
281
- date: safedate,
282
- displayFormatDay: displayFormatDay,
283
- enableOutsideDays: enableOutsideDays,
284
- firstDayOfWeek: firstDayOfWeek,
285
- hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
286
- isDayBlocked: isDayBlocked,
287
- isDayHighlighted: isDayHighlighted,
288
- isOutsideRange: isOutsideRange,
289
- keepOpenOnDateSelect: keepOpenOnDateSelect,
290
- numberOfMonths: numberOfMonths,
291
- onClickEscape: this.handleClickEscape,
292
- onClose: function onClose() {
293
- if (_this2.state.pickerRef.current) _this2.state.pickerRef.current.focus();
294
-
295
- _onClose.apply(void 0, arguments);
296
-
297
- _this2.setState({
298
- inputFocused: false
299
- });
300
- },
301
- onDateChange: this.handleDateChange,
302
- onFocusChange: this.handleFocus,
303
- onNextMonthClick: onNextMonthClick,
304
- onOutsideClick: this.handleCalendarClose,
305
- onPrevMonthClick: onPrevMonthClick,
306
- phrases: phrases,
307
- transitionDuration: transitionDuration,
308
- calendarProps: calendarProps,
309
- focusCurrentDate: focusCurrentDate
310
- })),
311
- onClick: this.onClickPicker,
312
- readOnly: readOnly,
313
- zIndex: zIndex,
314
- pickerProps: pickerProps
315
- })
316
- }, /*#__PURE__*/React__default['default'].createElement(dsForm.DSDateInputV2, {
317
- "data-testid": "datepicker-input",
318
- "aria-label": placeholder || 'Date Picker Input',
319
- disabled: disabled,
320
- onBlur: this.handleOnBlur,
321
- onChange: this.handleInputChange,
322
- onDateChange: this.handleChange,
323
- onFocus: this.handleInputFocus,
324
- placeholder: placeholder,
325
- tabIndex: tabIndex,
326
- value: safeInputValue
327
- }));
328
- }
329
- }], [{
330
- key: "getDerivedStateFromProps",
331
- value: function getDerivedStateFromProps(nextProps, prevState) {
332
- var _ref2 = prevState || {},
333
- prevVal = _ref2.dataInput,
334
- prevDate = _ref2.selectedDate;
335
-
336
- var nextVal = nextProps.value,
337
- nextDate = nextProps.date;
338
- var isPrevValMoment = prevVal instanceof moment__default['default'];
339
- var isPrevDateMoment = prevDate instanceof moment__default['default'];
340
- var prevValAsString = isPrevValMoment ? prevVal.format(FORMAT) : prevVal; // if users wants to clear, we use '==' to catch both undefined AND null
341
-
342
- if (nextVal == null && nextDate == null) {
343
- return {
344
- dataInput: '',
345
- selectedDate: null
346
- };
347
- } // when val is an incomplete state, we don't want to mess with the state
348
- // it's incomplete when length is not the full mmddyyyy (length === 8)
349
-
350
-
351
- if ((prevValAsString === null || prevValAsString === void 0 ? void 0 : prevValAsString.length) < 8) {
352
- return null;
353
- }
203
+ static getDerivedStateFromProps(nextProps, prevState) {
204
+ const {
205
+ dataInput: prevVal,
206
+ selectedDate: prevDate
207
+ } = prevState || {};
208
+ const {
209
+ value: nextVal,
210
+ date: nextDate
211
+ } = nextProps;
212
+ const isPrevValMoment = prevVal instanceof moment__default["default"];
213
+ const isPrevDateMoment = prevDate instanceof moment__default["default"];
214
+ const prevValAsString = isPrevValMoment ? prevVal.format(FORMAT) : prevVal; // if users wants to clear, we use '==' to catch both undefined AND null
215
+
216
+ if (nextVal == null && nextDate == null) {
217
+ return {
218
+ dataInput: '',
219
+ selectedDate: null
220
+ };
221
+ } // when val is an incomplete state, we don't want to mess with the state
222
+ // it's incomplete when length is not the full mmddyyyy (length === 8)
354
223
 
355
- var prevDateAsString = isPrevDateMoment ? prevDate.format(FORMAT) : prevDate;
356
- var isNextValMoment = nextVal instanceof moment__default['default'];
357
- var isNextDateMoment = nextDate instanceof moment__default['default'];
358
- var nextValAsString = isNextValMoment ? nextVal.format(FORMAT) : nextVal;
359
- var nextValAsMoment = isNextValMoment ? nextVal : moment__default['default'](nextVal);
360
- var nextDateAsString = isNextDateMoment ? nextDate.format(FORMAT) : nextDate;
361
- var nextDateAsMoment = isNextDateMoment ? nextDate : moment__default['default'](nextDate);
362
- var hasValChanged = nextValAsString !== prevValAsString;
363
- var hasDateChanged = nextDateAsString !== prevDateAsString;
364
- var newState = {};
365
- var skipStateChange = true; // value has priority over date, if both date and value change we take date
366
- // as such, order of condition is meaningful
367
-
368
- if (hasDateChanged) {
369
- skipStateChange = false;
370
- newState.dataInput = nextDateAsString;
371
- newState.selectedDate = nextDateAsMoment;
372
- }
373
224
 
374
- if (hasValChanged) {
375
- skipStateChange = false;
376
- newState.dataInput = nextValAsString;
377
- newState.selectedDate = nextValAsMoment;
378
- }
225
+ if ((prevValAsString === null || prevValAsString === void 0 ? void 0 : prevValAsString.length) < 8) {
226
+ return null;
227
+ }
379
228
 
380
- if (skipStateChange) return null;
381
- return newState;
229
+ const prevDateAsString = isPrevDateMoment ? prevDate.format(FORMAT) : prevDate;
230
+ const isNextValMoment = nextVal instanceof moment__default["default"];
231
+ const isNextDateMoment = nextDate instanceof moment__default["default"];
232
+ const nextValAsString = isNextValMoment ? nextVal.format(FORMAT) : nextVal;
233
+ const nextValAsMoment = isNextValMoment ? nextVal : moment__default["default"](nextVal);
234
+ const nextDateAsString = isNextDateMoment ? nextDate.format(FORMAT) : nextDate;
235
+ const nextDateAsMoment = isNextDateMoment ? nextDate : moment__default["default"](nextDate);
236
+ const hasValChanged = nextValAsString !== prevValAsString;
237
+ const hasDateChanged = nextDateAsString !== prevDateAsString;
238
+ const newState = {};
239
+ let skipStateChange = true; // value has priority over date, if both date and value change we take date
240
+ // as such, order of condition is meaningful
241
+
242
+ if (hasDateChanged) {
243
+ skipStateChange = false;
244
+ newState.dataInput = nextDateAsString;
245
+ newState.selectedDate = nextDateAsMoment;
382
246
  }
383
- }]);
384
247
 
385
- return DSdatePickerImpl;
386
- }(React__default['default'].Component);
248
+ if (hasValChanged) {
249
+ skipStateChange = false;
250
+ newState.dataInput = nextValAsString;
251
+ newState.selectedDate = nextValAsMoment;
252
+ }
253
+
254
+ if (skipStateChange) return null;
255
+ return newState;
256
+ }
257
+
258
+ render() {
259
+ var _this = this;
260
+
261
+ const {
262
+ inputFocused
263
+ } = this.state;
264
+ const {
265
+ disabled,
266
+ numberOfMonths,
267
+ readOnly,
268
+ enableOutsideDays,
269
+ transitionDuration,
270
+ firstDayOfWeek,
271
+ keepOpenOnDateSelect,
272
+ hideKeyboardShortcutsPanel,
273
+ onPrevMonthClick,
274
+ onNextMonthClick,
275
+ onClose,
276
+ phrases,
277
+ placeholder,
278
+ displayFormatDay,
279
+ isDayBlocked,
280
+ isOutsideRange,
281
+ isDayHighlighted,
282
+ tabIndex,
283
+ zIndex,
284
+ pickerProps,
285
+ calendarProps,
286
+ focusCurrentDate
287
+ } = this.props;
288
+ const safedate = this.getSafeValue();
289
+ const safeInputValue = this.getSafeInputValue();
290
+ const hasSelectedDate = !!safedate;
291
+ return /*#__PURE__*/_jsx__default["default"](dsForm.DSInputGroup, {
292
+ rightAddon: /*#__PURE__*/_jsx__default["default"](DatePickerDropdown, {
293
+ pickerRef: this.state.pickerRef,
294
+ disabled: disabled,
295
+ isOpen: inputFocused,
296
+ menu: /*#__PURE__*/_jsx__default["default"]("div", {
297
+ style: {
298
+ minHeight: '310px',
299
+ zIndex: 1
300
+ },
301
+ className: hasSelectedDate ? 'has-selected-date' : 'without-selected-date',
302
+ "data-testid": "date-picker-portal-wrapper"
303
+ }, void 0, /*#__PURE__*/_jsx__default["default"](DatePickerController, {
304
+ date: safedate,
305
+ displayFormatDay: displayFormatDay,
306
+ enableOutsideDays: enableOutsideDays,
307
+ firstDayOfWeek: firstDayOfWeek,
308
+ hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,
309
+ isDayBlocked: isDayBlocked,
310
+ isDayHighlighted: isDayHighlighted,
311
+ isOutsideRange: isOutsideRange,
312
+ keepOpenOnDateSelect: keepOpenOnDateSelect,
313
+ numberOfMonths: numberOfMonths,
314
+ onClickEscape: this.handleClickEscape,
315
+ onClose: function () {
316
+ if (_this.state.pickerRef.current) _this.state.pickerRef.current.focus();
317
+ onClose(...arguments);
318
+
319
+ _this.setState({
320
+ inputFocused: false
321
+ });
322
+ },
323
+ onDateChange: this.handleDateChange,
324
+ onFocusChange: this.handleFocus,
325
+ onNextMonthClick: onNextMonthClick,
326
+ onOutsideClick: this.handleCalendarClose,
327
+ onPrevMonthClick: onPrevMonthClick,
328
+ phrases: phrases,
329
+ transitionDuration: transitionDuration,
330
+ calendarProps: calendarProps,
331
+ focusCurrentDate: focusCurrentDate
332
+ })),
333
+ onClick: this.onClickPicker,
334
+ readOnly: readOnly,
335
+ zIndex: zIndex,
336
+ pickerProps: pickerProps
337
+ })
338
+ }, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSDateInputV2, {
339
+ "data-testid": "datepicker-input",
340
+ "aria-label": placeholder || 'Date Picker Input',
341
+ disabled: disabled,
342
+ onBlur: this.handleOnBlur,
343
+ onChange: this.handleInputChange,
344
+ onDateChange: this.handleChange,
345
+ onFocus: this.handleInputFocus,
346
+ placeholder: placeholder,
347
+ tabIndex: tabIndex,
348
+ value: safeInputValue
349
+ }));
350
+ }
351
+
352
+ }
387
353
 
388
354
  module.exports = DSdatePickerImpl;
389
- //# sourceMappingURL=DSDatePickerImpl.js.map