react-dropdown-date 2.3.1 → 2.4.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/dist/index.js CHANGED
@@ -1,9 +1,6 @@
1
- Object.defineProperty(exports, '__esModule', { value: true });
2
-
3
1
  var React = require('react');
4
2
 
5
- function _interopNamespace(e) {
6
- if (e && e.__esModule) return e;
3
+ function _interopNamespaceDefault(e) {
7
4
  var n = Object.create(null);
8
5
  if (e) {
9
6
  Object.keys(e).forEach(function (k) {
@@ -16,13 +13,13 @@ function _interopNamespace(e) {
16
13
  }
17
14
  });
18
15
  }
19
- n["default"] = e;
16
+ n.default = e;
20
17
  return Object.freeze(n);
21
18
  }
22
19
 
23
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
20
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
24
21
 
25
- /*! *****************************************************************************
22
+ /******************************************************************************
26
23
  Copyright (c) Microsoft Corporation.
27
24
 
28
25
  Permission to use, copy, modify, and/or distribute this software for any
@@ -36,7 +33,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
36
33
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
37
34
  PERFORMANCE OF THIS SOFTWARE.
38
35
  ***************************************************************************** */
39
- /* global Reflect, Promise */
36
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
40
37
 
41
38
  var extendStatics = function(d, b) {
42
39
  extendStatics = Object.setPrototypeOf ||
@@ -46,415 +43,422 @@ var extendStatics = function(d, b) {
46
43
  };
47
44
 
48
45
  function __extends(d, b) {
46
+ if (typeof b !== "function" && b !== null)
47
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
49
48
  extendStatics(d, b);
50
49
  function __() { this.constructor = d; }
51
50
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52
- }
51
+ }
52
+
53
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
54
+ var e = new Error(message);
55
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
56
+ };
53
57
 
54
- var YearPicker = /** @class */ (function (_super) {
55
- __extends(YearPicker, _super);
56
- function YearPicker() {
57
- var _this = _super !== null && _super.apply(this, arguments) || this;
58
- _this.renderYearOptions = function () {
59
- var _a = _this.props, start = _a.start, end = _a.end, reverse = _a.reverse, optionClasses = _a.optionClasses, defaultValue = _a.defaultValue;
60
- var startYear = start || 1900;
61
- var endYear = end || new Date().getFullYear();
62
- var years = [];
63
- if (startYear <= endYear) {
64
- for (var i = startYear; i <= endYear; ++i) {
65
- years.push(i);
66
- }
67
- }
68
- else {
69
- for (var i = endYear; i >= startYear; --i) {
70
- years.push(i);
71
- }
72
- }
73
- if (reverse) {
74
- years.reverse();
75
- }
76
- var yearOptions = [];
77
- yearOptions.push(React__namespace.createElement("option", { value: "", key: -1, className: optionClasses }, defaultValue ? defaultValue : ''));
78
- years.forEach(function (year, index) {
79
- yearOptions.push(React__namespace.createElement("option", { value: year, key: index, className: optionClasses }, year));
80
- });
81
- return yearOptions;
82
- };
83
- _this.handleSelectionChange = function (e) { return _this.props.onChange(e.target.value); };
84
- _this.render = function () {
85
- var _a = _this.props, id = _a.id, name = _a.name, classes = _a.classes, required = _a.required, disabled = _a.disabled, value = _a.value;
86
- return (React__namespace.createElement("select", { id: id, name: name, className: classes, required: required === true, disabled: disabled === true, onChange: _this.handleSelectionChange, value: value }, _this.renderYearOptions()));
87
- };
88
- return _this;
89
- }
90
- return YearPicker;
58
+ var YearPicker = /** @class */ (function (_super) {
59
+ __extends(YearPicker, _super);
60
+ function YearPicker() {
61
+ var _this = _super !== null && _super.apply(this, arguments) || this;
62
+ _this.renderYearOptions = function () {
63
+ var _a = _this.props, start = _a.start, end = _a.end, reverse = _a.reverse, optionClasses = _a.optionClasses, defaultValue = _a.defaultValue;
64
+ var startYear = start || 1900;
65
+ var endYear = end || new Date().getFullYear();
66
+ var years = [];
67
+ if (startYear <= endYear) {
68
+ for (var i = startYear; i <= endYear; ++i) {
69
+ years.push(i);
70
+ }
71
+ }
72
+ else {
73
+ for (var i = endYear; i >= startYear; --i) {
74
+ years.push(i);
75
+ }
76
+ }
77
+ if (reverse) {
78
+ years.reverse();
79
+ }
80
+ var yearOptions = [];
81
+ yearOptions.push(React__namespace.createElement("option", { value: "", key: -1, className: optionClasses }, defaultValue ? defaultValue : ''));
82
+ years.forEach(function (year, index) {
83
+ yearOptions.push(React__namespace.createElement("option", { value: year, key: index, className: optionClasses }, year));
84
+ });
85
+ return yearOptions;
86
+ };
87
+ _this.handleSelectionChange = function (e) { return _this.props.onChange(e.target.value); };
88
+ _this.render = function () {
89
+ var _a = _this.props, id = _a.id, name = _a.name, classes = _a.classes, required = _a.required, disabled = _a.disabled, value = _a.value;
90
+ return (React__namespace.createElement("select", { id: id, name: name, className: classes, required: required === true, disabled: disabled === true, onChange: _this.handleSelectionChange, value: value }, _this.renderYearOptions()));
91
+ };
92
+ return _this;
93
+ }
94
+ return YearPicker;
91
95
  }(React__namespace.Component));
92
96
 
93
- var monthByNumber = {
94
- 0: 'January',
95
- 1: 'February',
96
- 2: 'March',
97
- 3: 'April',
98
- 4: 'May',
99
- 5: 'June',
100
- 6: 'July',
101
- 7: 'August',
102
- 8: 'September',
103
- 9: 'October',
104
- 10: 'November',
105
- 11: 'December'
106
- };
107
- var getDaysInMonth = function (year, month) {
108
- year = +(year);
109
- month = +(month) + 1;
110
- return new Date(year, month, 0).getDate();
97
+ var monthByNumber = {
98
+ 0: 'January',
99
+ 1: 'February',
100
+ 2: 'March',
101
+ 3: 'April',
102
+ 4: 'May',
103
+ 5: 'June',
104
+ 6: 'July',
105
+ 7: 'August',
106
+ 8: 'September',
107
+ 9: 'October',
108
+ 10: 'November',
109
+ 11: 'December'
110
+ };
111
+ var getDaysInMonth = function (year, month) {
112
+ year = +(year);
113
+ month = +(month) + 1;
114
+ return new Date(year, month, 0).getDate();
111
115
  };
112
116
 
113
- var MonthPicker = /** @class */ (function (_super) {
114
- __extends(MonthPicker, _super);
115
- function MonthPicker() {
116
- var _this = _super !== null && _super.apply(this, arguments) || this;
117
- _this.renderMonthOptions = function () {
118
- var _a = _this.props, endYearGiven = _a.endYearGiven, year = _a.year, numeric = _a.numeric, caps = _a.caps, short = _a.short, optionClasses = _a.optionClasses, defaultValue = _a.defaultValue, localizedMonths = _a.localizedMonths;
119
- var today = new Date();
120
- var months = [];
121
- var month = 11;
122
- var localizedMonthOptions = (localizedMonths && Object.entries(localizedMonths).length > 0) ? localizedMonths : monthByNumber;
123
- if (!endYearGiven) {
124
- if (year && parseInt(year.toString()) === today.getFullYear()) {
125
- month = today.getMonth();
126
- }
127
- }
128
- if (numeric) {
129
- for (var i = 0; i <= month; ++i) {
130
- months.push((i + 1).toString());
131
- }
132
- }
133
- else {
134
- for (var i = 0; i <= month; ++i) {
135
- months.push(localizedMonthOptions[i]);
136
- }
137
- if (caps) {
138
- months = months.map(function (month) { return month.toUpperCase(); });
139
- }
140
- if (short) {
141
- months = months.map(function (month) { return month.substring(0, 3); });
142
- }
143
- }
144
- var monthOptions = [];
145
- monthOptions.push(React__namespace.createElement("option", { value: "", key: -1, className: optionClasses }, defaultValue ? defaultValue : ''));
146
- months.forEach(function (month, index) {
147
- monthOptions.push(React__namespace.createElement("option", { value: index, key: index, className: optionClasses }, month));
148
- });
149
- return monthOptions;
150
- };
151
- _this.handleSelectionChange = function (e) { return _this.props.onChange(e.target.value); };
152
- _this.render = function () {
153
- var _a = _this.props, id = _a.id, name = _a.name, classes = _a.classes, required = _a.required, disabled = _a.disabled, value = _a.value;
154
- return (React__namespace.createElement("select", { id: id, name: name, className: classes, required: required === true, disabled: disabled === true, value: value, onChange: _this.handleSelectionChange }, _this.renderMonthOptions()));
155
- };
156
- return _this;
157
- }
158
- return MonthPicker;
117
+ var MonthPicker = /** @class */ (function (_super) {
118
+ __extends(MonthPicker, _super);
119
+ function MonthPicker() {
120
+ var _this = _super !== null && _super.apply(this, arguments) || this;
121
+ _this.renderMonthOptions = function () {
122
+ var _a = _this.props, endYearGiven = _a.endYearGiven, year = _a.year, numeric = _a.numeric, caps = _a.caps, short = _a.short, optionClasses = _a.optionClasses, defaultValue = _a.defaultValue, localizedMonths = _a.localizedMonths;
123
+ var today = new Date();
124
+ var months = [];
125
+ var month = 11;
126
+ var localizedMonthOptions = (localizedMonths && Object.entries(localizedMonths).length > 0) ? localizedMonths : monthByNumber;
127
+ if (!endYearGiven) {
128
+ if (year && parseInt(year.toString()) === today.getFullYear()) {
129
+ month = today.getMonth();
130
+ }
131
+ }
132
+ if (numeric) {
133
+ for (var i = 0; i <= month; ++i) {
134
+ months.push((i + 1).toString());
135
+ }
136
+ }
137
+ else {
138
+ for (var i = 0; i <= month; ++i) {
139
+ months.push(localizedMonthOptions[i]);
140
+ }
141
+ if (caps) {
142
+ months = months.map(function (month) { return month.toUpperCase(); });
143
+ }
144
+ if (short) {
145
+ months = months.map(function (month) { return month.substring(0, 3); });
146
+ }
147
+ }
148
+ var monthOptions = [];
149
+ monthOptions.push(React__namespace.createElement("option", { value: "", key: -1, className: optionClasses }, defaultValue ? defaultValue : ''));
150
+ months.forEach(function (month, index) {
151
+ monthOptions.push(React__namespace.createElement("option", { value: index, key: index, className: optionClasses }, month));
152
+ });
153
+ return monthOptions;
154
+ };
155
+ _this.handleSelectionChange = function (e) { return _this.props.onChange(e.target.value); };
156
+ _this.render = function () {
157
+ var _a = _this.props, id = _a.id, name = _a.name, classes = _a.classes, required = _a.required, disabled = _a.disabled, value = _a.value;
158
+ return (React__namespace.createElement("select", { id: id, name: name, className: classes, required: required === true, disabled: disabled === true, value: value, onChange: _this.handleSelectionChange }, _this.renderMonthOptions()));
159
+ };
160
+ return _this;
161
+ }
162
+ return MonthPicker;
159
163
  }(React__namespace.Component));
160
164
 
161
- var DayPicker = /** @class */ (function (_super) {
162
- __extends(DayPicker, _super);
163
- function DayPicker() {
164
- var _this = _super !== null && _super.apply(this, arguments) || this;
165
- _this.renderDayOptions = function () {
166
- var _a = _this.props, month = _a.month, year = _a.year, endYearGiven = _a.endYearGiven, optionClasses = _a.optionClasses, defaultValue = _a.defaultValue;
167
- var days = month ? getDaysInMonth(year, month) : 31;
168
- var today = new Date();
169
- if (!endYearGiven) {
170
- if (year === today.getFullYear() && month === today.getMonth()) {
171
- days = today.getDate();
172
- }
173
- }
174
- var dayOptions = [];
175
- dayOptions.push(React__namespace.createElement("option", { value: "", key: -1, className: optionClasses }, defaultValue ? defaultValue : ''));
176
- for (var i = 1; i <= days; ++i) {
177
- dayOptions.push(React__namespace.createElement("option", { value: i, key: i, className: optionClasses }, i));
178
- }
179
- return dayOptions;
180
- };
181
- _this.handleSelectionChange = function (e) { return _this.props.onChange(e.target.value); };
182
- _this.render = function () {
183
- var _a = _this.props, id = _a.id, name = _a.name, classes = _a.classes, required = _a.required, disabled = _a.disabled, value = _a.value;
184
- return (React__namespace.createElement("select", { id: id, name: name, className: classes, onChange: _this.handleSelectionChange, required: required === true, disabled: disabled === true, value: value }, _this.renderDayOptions()));
185
- };
186
- return _this;
187
- }
188
- return DayPicker;
165
+ var DayPicker = /** @class */ (function (_super) {
166
+ __extends(DayPicker, _super);
167
+ function DayPicker() {
168
+ var _this = _super !== null && _super.apply(this, arguments) || this;
169
+ _this.renderDayOptions = function () {
170
+ var _a = _this.props, month = _a.month, year = _a.year, endYearGiven = _a.endYearGiven, optionClasses = _a.optionClasses, defaultValue = _a.defaultValue;
171
+ var days = month ? getDaysInMonth(year, month) : 31;
172
+ var today = new Date();
173
+ if (!endYearGiven) {
174
+ if (year === today.getFullYear() && month === today.getMonth()) {
175
+ days = today.getDate();
176
+ }
177
+ }
178
+ var dayOptions = [];
179
+ dayOptions.push(React__namespace.createElement("option", { value: "", key: -1, className: optionClasses }, defaultValue ? defaultValue : ''));
180
+ for (var i = 1; i <= days; ++i) {
181
+ dayOptions.push(React__namespace.createElement("option", { value: i, key: i, className: optionClasses }, i));
182
+ }
183
+ return dayOptions;
184
+ };
185
+ _this.handleSelectionChange = function (e) { return _this.props.onChange(e.target.value); };
186
+ _this.render = function () {
187
+ var _a = _this.props, id = _a.id, name = _a.name, classes = _a.classes, required = _a.required, disabled = _a.disabled, value = _a.value;
188
+ return (React__namespace.createElement("select", { id: id, name: name, className: classes, onChange: _this.handleSelectionChange, required: required === true, disabled: disabled === true, value: value }, _this.renderDayOptions()));
189
+ };
190
+ return _this;
191
+ }
192
+ return DayPicker;
189
193
  }(React__namespace.Component));
190
194
 
191
- exports.DropdownComponent = void 0;
192
- (function (DropdownComponent) {
193
- DropdownComponent["year"] = "year";
194
- DropdownComponent["month"] = "month";
195
- DropdownComponent["day"] = "day";
196
- })(exports.DropdownComponent || (exports.DropdownComponent = {}));
197
- var DropdownDate = /** @class */ (function (_super) {
198
- __extends(DropdownDate, _super);
199
- function DropdownDate(props) {
200
- var _this = _super.call(this, props) || this;
201
- _this.handleDateChange = function (type, value) {
202
- if (_this.props.onDateChange) {
203
- var _a = _this.state, selectedYear = _a.selectedYear, selectedMonth = _a.selectedMonth, selectedDay = _a.selectedDay;
204
- if (type === exports.DropdownComponent.year) {
205
- selectedYear = value;
206
- }
207
- else if (type === exports.DropdownComponent.month) {
208
- selectedMonth = value;
209
- }
210
- else if (type === exports.DropdownComponent.day) {
211
- selectedDay = value;
212
- }
213
- if (selectedYear !== -1 && selectedMonth !== -1 && selectedDay !== -1) {
214
- _this.props.onDateChange(new Date(selectedYear, selectedMonth, selectedDay));
215
- }
216
- }
217
- };
218
- _this.handleYearChange = function (e) {
219
- var year = parseInt(e.target.value);
220
- _this.setState({ selectedYear: year });
221
- if (_this.props.onYearChange) {
222
- _this.props.onYearChange(year);
223
- }
224
- _this.handleDateChange(exports.DropdownComponent.year, year);
225
- };
226
- _this.handleMonthChange = function (e) {
227
- var month = parseInt(e.target.value);
228
- _this.setState({ selectedMonth: month });
229
- if (_this.props.onMonthChange) {
230
- _this.props.onMonthChange(_this.localizedMonthOptions[month]);
231
- }
232
- _this.handleDateChange(exports.DropdownComponent.month, month);
233
- };
234
- _this.handleDayChange = function (e) {
235
- var day = parseInt(e.target.value);
236
- _this.setState({ selectedDay: day });
237
- if (_this.props.onDayChange) {
238
- _this.props.onDayChange(day);
239
- }
240
- _this.handleDateChange(exports.DropdownComponent.day, day);
241
- };
242
- _this.renderYear = function () {
243
- var _a = _this.props, classes = _a.classes, ids = _a.ids, names = _a.names;
244
- return (React__namespace.createElement("div", { key: "year", id: "dropdown-year", className: (classes && classes.yearContainer) ? classes.yearContainer : undefined },
245
- React__namespace.createElement("select", { id: (ids && ids.year) ? ids.year : undefined, name: (names && names.year) ? names.year : undefined, className: (classes && classes.year) ? classes.year : undefined, onChange: _this.handleYearChange, value: _this.state.selectedYear }, _this.generateYearOptions())));
246
- };
247
- _this.renderMonth = function () {
248
- var _a = _this.props, classes = _a.classes, ids = _a.ids, names = _a.names;
249
- return (React__namespace.createElement("div", { key: "month", id: "dropdown-month", className: (classes && classes.monthContainer) ? classes.monthContainer : undefined },
250
- React__namespace.createElement("select", { id: (ids && ids.month) ? ids.month : undefined, name: (names && names.month) ? names.month : undefined, className: (classes && classes.month) ? classes.month : undefined, onChange: _this.handleMonthChange, value: _this.state.selectedMonth }, _this.generateMonthOptions())));
251
- };
252
- _this.renderDay = function () {
253
- var _a = _this.props, classes = _a.classes, ids = _a.ids, names = _a.names;
254
- return (React__namespace.createElement("div", { key: "day", id: "dropdown-day", className: (classes && classes.dayContainer) ? classes.dayContainer : undefined },
255
- React__namespace.createElement("select", { id: (ids && ids.day) ? ids.day : undefined, name: (names && names.day) ? names.day : undefined, className: (classes && classes.day) ? classes.day : undefined, onChange: _this.handleDayChange, value: _this.state.selectedDay }, _this.generateDayOptions())));
256
- };
257
- _this.render = function () {
258
- var classes = _this.props.classes;
259
- var order = _this.props.order;
260
- order = order || [exports.DropdownComponent.year, exports.DropdownComponent.month, exports.DropdownComponent.day];
261
- return (React__namespace.createElement("div", { id: "dropdown-date", className: (classes && classes.dateContainer) ? classes.dateContainer : undefined }, order.map(function (part) {
262
- return _this.renderParts[part]();
263
- })));
264
- };
265
- var startDate = props.startDate, endDate = props.endDate, selectedDate = props.selectedDate;
266
- var sDate = startDate ? new Date(startDate) : new Date('1900-01-01');
267
- var eDate = endDate ? new Date(endDate) : new Date();
268
- var selDate = selectedDate ? new Date(selectedDate) : null;
269
- _this.state = {
270
- startYear: sDate.getFullYear(),
271
- startMonth: sDate.getMonth(),
272
- startDay: sDate.getDate(),
273
- endYear: eDate.getFullYear(),
274
- endMonth: eDate.getMonth(),
275
- endDay: eDate.getDate(),
276
- selectedYear: selDate ? selDate.getFullYear() : -1,
277
- selectedMonth: selDate ? selDate.getMonth() : -1,
278
- selectedDay: selDate ? selDate.getDate() : -1
279
- };
280
- _this.renderParts = {
281
- year: _this.renderYear,
282
- month: _this.renderMonth,
283
- day: _this.renderDay,
284
- };
285
- _this.localizedMonthOptions = _this.getLocalizedMonthOptions(props.localizedMonths);
286
- return _this;
287
- }
288
- DropdownDate.prototype.getLocalizedMonthOptions = function (localizedMonths) {
289
- return (localizedMonths && Object.entries(localizedMonths).length > 0) ? localizedMonths : monthByNumber;
290
- };
291
- DropdownDate.getDerivedStateFromProps = function (nextProps, prevState) {
292
- var selDate = nextProps.selectedDate ? new Date(nextProps.selectedDate) : null;
293
- var tempSelDate = {
294
- selectedYear: selDate ? selDate.getFullYear() : -1,
295
- selectedMonth: selDate ? selDate.getMonth() : -1,
296
- selectedDay: selDate ? selDate.getDate() : -1
297
- };
298
- if (tempSelDate.selectedYear !== prevState.selectedYear) {
299
- return { selectedYear: tempSelDate.selectedYear };
300
- }
301
- if (tempSelDate.selectedMonth !== prevState.selectedMonth) {
302
- return { selectedMonth: tempSelDate.selectedMonth };
303
- }
304
- if (tempSelDate.selectedDay !== prevState.selectedDay) {
305
- return { selectedDay: tempSelDate.selectedDay };
306
- }
307
- return null;
308
- };
309
- DropdownDate.prototype.componentDidUpdate = function (prevProps) {
310
- // Update localizedMonthOptions if localizedMonths prop changed
311
- if (prevProps.localizedMonths !== this.props.localizedMonths) {
312
- this.localizedMonthOptions = this.getLocalizedMonthOptions(this.props.localizedMonths);
313
- }
314
- };
315
- DropdownDate.prototype.generateYearOptions = function () {
316
- var _a = this.props, classes = _a.classes, options = _a.options, defaultValues = _a.defaultValues;
317
- var _b = this.state, startYear = _b.startYear, endYear = _b.endYear;
318
- var yearOptions = [];
319
- yearOptions.push(React__namespace.createElement("option", { key: -1, value: "-1", className: (classes && classes.yearOptions) ? classes.yearOptions : undefined }, (defaultValues && defaultValues.year) ? defaultValues.year : ''));
320
- if (options && options.yearReverse) {
321
- for (var i = endYear; i >= startYear; i--) {
322
- yearOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.yearOptions) ? classes.yearOptions : undefined }, i));
323
- }
324
- }
325
- else {
326
- for (var i = startYear; i <= endYear; i++) {
327
- yearOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.yearOptions) ? classes.yearOptions : undefined }, i));
328
- }
329
- }
330
- return yearOptions;
331
- };
332
- DropdownDate.prototype.generateMonthOptions = function () {
333
- var _a = this.props, classes = _a.classes, options = _a.options, defaultValues = _a.defaultValues;
334
- var _b = this.state, startMonth = _b.startMonth, endMonth = _b.endMonth, startYear = _b.startYear, endYear = _b.endYear, selectedYear = _b.selectedYear;
335
- var months = [];
336
- if (selectedYear === startYear && selectedYear === endYear) {
337
- for (var i = startMonth; i <= endMonth; i++) {
338
- months.push({
339
- value: i,
340
- month: this.localizedMonthOptions[i]
341
- });
342
- }
343
- }
344
- else if (selectedYear === startYear) {
345
- for (var i = startMonth; i <= 11; i++) {
346
- months.push({
347
- value: i,
348
- month: this.localizedMonthOptions[i]
349
- });
350
- }
351
- }
352
- else if (selectedYear === endYear) {
353
- for (var i = 0; i <= endMonth; i++) {
354
- months.push({
355
- value: i,
356
- month: this.localizedMonthOptions[i]
357
- });
358
- }
359
- }
360
- else {
361
- for (var i = 0; i <= 11; i++) {
362
- months.push({
363
- value: i,
364
- month: this.localizedMonthOptions[i]
365
- });
366
- }
367
- }
368
- if (options && options.monthShort) {
369
- months = months.map(function (elem) {
370
- return {
371
- value: elem.value,
372
- month: elem.month.substring(0, 3)
373
- };
374
- });
375
- }
376
- if (options && options.monthCaps) {
377
- months = months.map(function (elem) {
378
- return {
379
- value: elem.value,
380
- month: elem.month.toUpperCase()
381
- };
382
- });
383
- }
384
- var monthOptions = [];
385
- monthOptions.push(React__namespace.createElement("option", { key: -1, value: "-1", className: (classes && classes.monthOptions) ? classes.monthOptions : undefined }, (defaultValues && defaultValues.month) ? defaultValues.month : ''));
386
- months.forEach(function (elem) {
387
- monthOptions.push(React__namespace.createElement("option", { key: elem.value, value: elem.value, className: (classes && classes.monthOptions) ? classes.monthOptions : undefined }, elem.month));
388
- });
389
- return monthOptions;
390
- };
391
- DropdownDate.prototype.generateDayOptions = function () {
392
- var _a = this.props, classes = _a.classes, defaultValues = _a.defaultValues;
393
- var _b = this.state, startYear = _b.startYear, startMonth = _b.startMonth, startDay = _b.startDay, endYear = _b.endYear, endMonth = _b.endMonth, endDay = _b.endDay, selectedYear = _b.selectedYear, selectedMonth = _b.selectedMonth;
394
- var dayOptions = [];
395
- dayOptions.push(React__namespace.createElement("option", { key: -1, value: "-1", className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, (defaultValues && defaultValues.day) ? defaultValues.day : ''));
396
- var monthDays = getDaysInMonth(selectedYear, selectedMonth);
397
- if (selectedYear === startYear && selectedYear === endYear) {
398
- if (selectedMonth === startMonth && selectedMonth === endMonth) {
399
- for (var i = startDay; i <= endDay; i++) {
400
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
401
- }
402
- }
403
- else if (selectedMonth === startMonth) {
404
- for (var i = startDay; i <= monthDays; i++) {
405
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
406
- }
407
- }
408
- else if (selectedMonth === endMonth) {
409
- for (var i = 1; i <= endDay; i++) {
410
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
411
- }
412
- }
413
- else {
414
- for (var i = 1; i <= monthDays; i++) {
415
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
416
- }
417
- }
418
- }
419
- else if (selectedYear === startYear) {
420
- if (selectedMonth === startMonth) {
421
- for (var i = startDay; i <= monthDays; i++) {
422
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
423
- }
424
- }
425
- else {
426
- for (var i = 1; i <= monthDays; i++) {
427
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
428
- }
429
- }
430
- }
431
- else if (selectedYear === endYear) {
432
- if (selectedMonth === endMonth) {
433
- for (var i = 1; i <= endDay; i++) {
434
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
435
- }
436
- }
437
- else {
438
- for (var i = 1; i <= monthDays; i++) {
439
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
440
- }
441
- }
442
- }
443
- else {
444
- if (selectedMonth) {
445
- for (var i = 1; i <= monthDays; i++) {
446
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
447
- }
448
- }
449
- else {
450
- for (var i = 1; i <= 31; i++) {
451
- dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
452
- }
453
- }
454
- }
455
- return dayOptions;
456
- };
457
- return DropdownDate;
195
+ exports.DropdownComponent = void 0;
196
+ (function (DropdownComponent) {
197
+ DropdownComponent["year"] = "year";
198
+ DropdownComponent["month"] = "month";
199
+ DropdownComponent["day"] = "day";
200
+ })(exports.DropdownComponent || (exports.DropdownComponent = {}));
201
+ var DropdownDate = /** @class */ (function (_super) {
202
+ __extends(DropdownDate, _super);
203
+ function DropdownDate(props) {
204
+ var _this = _super.call(this, props) || this;
205
+ _this.handleDateChange = function (type, value) {
206
+ if (_this.props.onDateChange) {
207
+ var _a = _this.state, selectedYear = _a.selectedYear, selectedMonth = _a.selectedMonth, selectedDay = _a.selectedDay;
208
+ if (type === exports.DropdownComponent.year) {
209
+ selectedYear = value;
210
+ }
211
+ else if (type === exports.DropdownComponent.month) {
212
+ selectedMonth = value;
213
+ }
214
+ else if (type === exports.DropdownComponent.day) {
215
+ selectedDay = value;
216
+ }
217
+ if (selectedYear !== -1 && selectedMonth !== -1 && selectedDay !== -1) {
218
+ _this.props.onDateChange(new Date(selectedYear, selectedMonth, selectedDay));
219
+ }
220
+ }
221
+ };
222
+ _this.handleYearChange = function (e) {
223
+ var year = parseInt(e.target.value);
224
+ _this.setState({ selectedYear: year });
225
+ if (_this.props.onYearChange) {
226
+ _this.props.onYearChange(year);
227
+ }
228
+ _this.handleDateChange(exports.DropdownComponent.year, year);
229
+ };
230
+ _this.handleMonthChange = function (e) {
231
+ var month = parseInt(e.target.value);
232
+ _this.setState({ selectedMonth: month });
233
+ if (_this.props.onMonthChange) {
234
+ _this.props.onMonthChange(_this.localizedMonthOptions[month]);
235
+ }
236
+ _this.handleDateChange(exports.DropdownComponent.month, month);
237
+ };
238
+ _this.handleDayChange = function (e) {
239
+ var day = parseInt(e.target.value);
240
+ _this.setState({ selectedDay: day });
241
+ if (_this.props.onDayChange) {
242
+ _this.props.onDayChange(day);
243
+ }
244
+ _this.handleDateChange(exports.DropdownComponent.day, day);
245
+ };
246
+ _this.renderYear = function () {
247
+ var _a = _this.props, classes = _a.classes, ids = _a.ids, names = _a.names;
248
+ return (React__namespace.createElement("div", { key: "year", id: "dropdown-year", className: (classes && classes.yearContainer) ? classes.yearContainer : undefined },
249
+ React__namespace.createElement("select", { id: (ids && ids.year) ? ids.year : undefined, name: (names && names.year) ? names.year : undefined, className: (classes && classes.year) ? classes.year : undefined, onChange: _this.handleYearChange, value: _this.state.selectedYear }, _this.generateYearOptions())));
250
+ };
251
+ _this.renderMonth = function () {
252
+ var _a = _this.props, classes = _a.classes, ids = _a.ids, names = _a.names;
253
+ return (React__namespace.createElement("div", { key: "month", id: "dropdown-month", className: (classes && classes.monthContainer) ? classes.monthContainer : undefined },
254
+ React__namespace.createElement("select", { id: (ids && ids.month) ? ids.month : undefined, name: (names && names.month) ? names.month : undefined, className: (classes && classes.month) ? classes.month : undefined, onChange: _this.handleMonthChange, value: _this.state.selectedMonth }, _this.generateMonthOptions())));
255
+ };
256
+ _this.renderDay = function () {
257
+ var _a = _this.props, classes = _a.classes, ids = _a.ids, names = _a.names;
258
+ return (React__namespace.createElement("div", { key: "day", id: "dropdown-day", className: (classes && classes.dayContainer) ? classes.dayContainer : undefined },
259
+ React__namespace.createElement("select", { id: (ids && ids.day) ? ids.day : undefined, name: (names && names.day) ? names.day : undefined, className: (classes && classes.day) ? classes.day : undefined, onChange: _this.handleDayChange, value: _this.state.selectedDay }, _this.generateDayOptions())));
260
+ };
261
+ _this.render = function () {
262
+ var classes = _this.props.classes;
263
+ var order = _this.props.order;
264
+ order = order || [exports.DropdownComponent.year, exports.DropdownComponent.month, exports.DropdownComponent.day];
265
+ return (React__namespace.createElement("div", { id: "dropdown-date", className: (classes && classes.dateContainer) ? classes.dateContainer : undefined }, order.map(function (part) {
266
+ return _this.renderParts[part]();
267
+ })));
268
+ };
269
+ var startDate = props.startDate, endDate = props.endDate, selectedDate = props.selectedDate;
270
+ var sDate = startDate ? new Date(startDate) : new Date('1900-01-01');
271
+ var eDate = endDate ? new Date(endDate) : new Date();
272
+ var selDate = selectedDate ? new Date(selectedDate) : null;
273
+ _this.state = {
274
+ startYear: sDate.getFullYear(),
275
+ startMonth: sDate.getMonth(),
276
+ startDay: sDate.getDate(),
277
+ endYear: eDate.getFullYear(),
278
+ endMonth: eDate.getMonth(),
279
+ endDay: eDate.getDate(),
280
+ selectedYear: selDate ? selDate.getFullYear() : -1,
281
+ selectedMonth: selDate ? selDate.getMonth() : -1,
282
+ selectedDay: selDate ? selDate.getDate() : -1
283
+ };
284
+ _this.renderParts = {
285
+ year: _this.renderYear,
286
+ month: _this.renderMonth,
287
+ day: _this.renderDay,
288
+ };
289
+ _this.localizedMonthOptions = _this.getLocalizedMonthOptions(props.localizedMonths);
290
+ return _this;
291
+ }
292
+ DropdownDate.prototype.getLocalizedMonthOptions = function (localizedMonths) {
293
+ return (localizedMonths && Object.entries(localizedMonths).length > 0) ? localizedMonths : monthByNumber;
294
+ };
295
+ DropdownDate.getDerivedStateFromProps = function (nextProps, prevState) {
296
+ var selDate = nextProps.selectedDate ? new Date(nextProps.selectedDate) : null;
297
+ var tempSelDate = {
298
+ selectedYear: selDate ? selDate.getFullYear() : -1,
299
+ selectedMonth: selDate ? selDate.getMonth() : -1,
300
+ selectedDay: selDate ? selDate.getDate() : -1
301
+ };
302
+ if (tempSelDate.selectedYear !== prevState.selectedYear) {
303
+ return { selectedYear: tempSelDate.selectedYear };
304
+ }
305
+ if (tempSelDate.selectedMonth !== prevState.selectedMonth) {
306
+ return { selectedMonth: tempSelDate.selectedMonth };
307
+ }
308
+ if (tempSelDate.selectedDay !== prevState.selectedDay) {
309
+ return { selectedDay: tempSelDate.selectedDay };
310
+ }
311
+ return null;
312
+ };
313
+ DropdownDate.prototype.componentDidUpdate = function (prevProps) {
314
+ // Update localizedMonthOptions if localizedMonths prop changed
315
+ if (prevProps.localizedMonths !== this.props.localizedMonths) {
316
+ this.localizedMonthOptions = this.getLocalizedMonthOptions(this.props.localizedMonths);
317
+ }
318
+ };
319
+ DropdownDate.prototype.generateYearOptions = function () {
320
+ var _a = this.props, classes = _a.classes, options = _a.options, defaultValues = _a.defaultValues;
321
+ var _b = this.state, startYear = _b.startYear, endYear = _b.endYear;
322
+ var yearOptions = [];
323
+ yearOptions.push(React__namespace.createElement("option", { key: -1, value: "-1", className: (classes && classes.yearOptions) ? classes.yearOptions : undefined }, (defaultValues && defaultValues.year) ? defaultValues.year : ''));
324
+ if (options && options.yearReverse) {
325
+ for (var i = endYear; i >= startYear; i--) {
326
+ yearOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.yearOptions) ? classes.yearOptions : undefined }, i));
327
+ }
328
+ }
329
+ else {
330
+ for (var i = startYear; i <= endYear; i++) {
331
+ yearOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.yearOptions) ? classes.yearOptions : undefined }, i));
332
+ }
333
+ }
334
+ return yearOptions;
335
+ };
336
+ DropdownDate.prototype.generateMonthOptions = function () {
337
+ var _a = this.props, classes = _a.classes, options = _a.options, defaultValues = _a.defaultValues;
338
+ var _b = this.state, startMonth = _b.startMonth, endMonth = _b.endMonth, startYear = _b.startYear, endYear = _b.endYear, selectedYear = _b.selectedYear;
339
+ var months = [];
340
+ if (selectedYear === startYear && selectedYear === endYear) {
341
+ for (var i = startMonth; i <= endMonth; i++) {
342
+ months.push({
343
+ value: i,
344
+ month: this.localizedMonthOptions[i]
345
+ });
346
+ }
347
+ }
348
+ else if (selectedYear === startYear) {
349
+ for (var i = startMonth; i <= 11; i++) {
350
+ months.push({
351
+ value: i,
352
+ month: this.localizedMonthOptions[i]
353
+ });
354
+ }
355
+ }
356
+ else if (selectedYear === endYear) {
357
+ for (var i = 0; i <= endMonth; i++) {
358
+ months.push({
359
+ value: i,
360
+ month: this.localizedMonthOptions[i]
361
+ });
362
+ }
363
+ }
364
+ else {
365
+ for (var i = 0; i <= 11; i++) {
366
+ months.push({
367
+ value: i,
368
+ month: this.localizedMonthOptions[i]
369
+ });
370
+ }
371
+ }
372
+ if (options && options.monthShort) {
373
+ months = months.map(function (elem) {
374
+ return {
375
+ value: elem.value,
376
+ month: elem.month.substring(0, 3)
377
+ };
378
+ });
379
+ }
380
+ if (options && options.monthCaps) {
381
+ months = months.map(function (elem) {
382
+ return {
383
+ value: elem.value,
384
+ month: elem.month.toUpperCase()
385
+ };
386
+ });
387
+ }
388
+ var monthOptions = [];
389
+ monthOptions.push(React__namespace.createElement("option", { key: -1, value: "-1", className: (classes && classes.monthOptions) ? classes.monthOptions : undefined }, (defaultValues && defaultValues.month) ? defaultValues.month : ''));
390
+ months.forEach(function (elem) {
391
+ monthOptions.push(React__namespace.createElement("option", { key: elem.value, value: elem.value, className: (classes && classes.monthOptions) ? classes.monthOptions : undefined }, elem.month));
392
+ });
393
+ return monthOptions;
394
+ };
395
+ DropdownDate.prototype.generateDayOptions = function () {
396
+ var _a = this.props, classes = _a.classes, defaultValues = _a.defaultValues;
397
+ var _b = this.state, startYear = _b.startYear, startMonth = _b.startMonth, startDay = _b.startDay, endYear = _b.endYear, endMonth = _b.endMonth, endDay = _b.endDay, selectedYear = _b.selectedYear, selectedMonth = _b.selectedMonth;
398
+ var dayOptions = [];
399
+ dayOptions.push(React__namespace.createElement("option", { key: -1, value: "-1", className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, (defaultValues && defaultValues.day) ? defaultValues.day : ''));
400
+ var monthDays = getDaysInMonth(selectedYear, selectedMonth);
401
+ if (selectedYear === startYear && selectedYear === endYear) {
402
+ if (selectedMonth === startMonth && selectedMonth === endMonth) {
403
+ for (var i = startDay; i <= endDay; i++) {
404
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
405
+ }
406
+ }
407
+ else if (selectedMonth === startMonth) {
408
+ for (var i = startDay; i <= monthDays; i++) {
409
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
410
+ }
411
+ }
412
+ else if (selectedMonth === endMonth) {
413
+ for (var i = 1; i <= endDay; i++) {
414
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
415
+ }
416
+ }
417
+ else {
418
+ for (var i = 1; i <= monthDays; i++) {
419
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
420
+ }
421
+ }
422
+ }
423
+ else if (selectedYear === startYear) {
424
+ if (selectedMonth === startMonth) {
425
+ for (var i = startDay; i <= monthDays; i++) {
426
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
427
+ }
428
+ }
429
+ else {
430
+ for (var i = 1; i <= monthDays; i++) {
431
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
432
+ }
433
+ }
434
+ }
435
+ else if (selectedYear === endYear) {
436
+ if (selectedMonth === endMonth) {
437
+ for (var i = 1; i <= endDay; i++) {
438
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
439
+ }
440
+ }
441
+ else {
442
+ for (var i = 1; i <= monthDays; i++) {
443
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
444
+ }
445
+ }
446
+ }
447
+ else {
448
+ if (selectedMonth) {
449
+ for (var i = 1; i <= monthDays; i++) {
450
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
451
+ }
452
+ }
453
+ else {
454
+ for (var i = 1; i <= 31; i++) {
455
+ dayOptions.push(React__namespace.createElement("option", { key: i, value: i, className: (classes && classes.dayOptions) ? classes.dayOptions : undefined }, i));
456
+ }
457
+ }
458
+ }
459
+ return dayOptions;
460
+ };
461
+ return DropdownDate;
458
462
  }(React__namespace.Component));
459
463
 
460
464
  exports.DayPicker = DayPicker;