react-day-picker 7.2.4 → 7.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.
@@ -70,13 +70,13 @@ function OverlayComponent(_ref) {
70
70
  );
71
71
  }
72
72
 
73
- OverlayComponent.propTypes = process.env.NODE_ENV !== "production" ? {
73
+ OverlayComponent.propTypes = {
74
74
  input: _propTypes2.default.any,
75
75
  selectedDay: _propTypes2.default.any,
76
76
  month: _propTypes2.default.instanceOf(Date),
77
77
  children: _propTypes2.default.node,
78
78
  classNames: _propTypes2.default.object
79
- } : {};
79
+ };
80
80
 
81
81
  /**
82
82
  * The default function used to format a Date to String, passed to the `format`
@@ -115,7 +115,7 @@ function defaultParse(str) {
115
115
  return undefined;
116
116
  }
117
117
 
118
- return new Date(year, month, day);
118
+ return new Date(year, month, day, 12, 0, 0, 0); // always set noon to avoid time zone issues
119
119
  }
120
120
 
121
121
  var DayPickerInput = function (_React$Component) {
@@ -163,9 +163,10 @@ var DayPickerInput = function (_React$Component) {
163
163
  format = _props.format,
164
164
  dayPickerProps = _props.dayPickerProps;
165
165
 
166
- // Update the input value if the `value` prop has changed
166
+ // Update the input value if `value`, `dayPickerProps.locale` or `format`
167
+ // props have changed
167
168
 
168
- if (value !== prevProps.value) {
169
+ if (value !== prevProps.value || dayPickerProps.locale !== prevProps.dayPickerProps.locale || format !== prevProps.format) {
169
170
  if ((0, _DateUtils.isDate)(value)) {
170
171
  newState.value = formatDate(value, format, dayPickerProps.locale);
171
172
  } else {
@@ -219,14 +220,17 @@ var DayPickerInput = function (_React$Component) {
219
220
  value: function getInitialStateFromProps(props) {
220
221
  var dayPickerProps = props.dayPickerProps,
221
222
  formatDate = props.formatDate,
222
- format = props.format;
223
+ format = props.format,
224
+ typedValue = props.typedValue;
223
225
  var value = props.value;
224
226
 
225
227
  if (props.value && (0, _DateUtils.isDate)(props.value)) {
226
228
  value = formatDate(props.value, format, dayPickerProps.locale);
227
229
  }
230
+
228
231
  return {
229
232
  value: value,
233
+ typedValue: typedValue,
230
234
  month: this.getInitialMonthFromProps(props),
231
235
  selectedDays: dayPickerProps.selectedDays
232
236
  };
@@ -260,7 +264,7 @@ var DayPickerInput = function (_React$Component) {
260
264
  dayPickerProps = _props2.dayPickerProps,
261
265
  onDayChange = _props2.onDayChange;
262
266
 
263
- this.setState({ month: day, value: value, typedValue: undefined }, function () {
267
+ this.setState({ month: day, value: value, typedValue: '' }, function () {
264
268
  if (callback) {
265
269
  callback();
266
270
  }
@@ -287,6 +291,8 @@ var DayPickerInput = function (_React$Component) {
287
291
  }, {
288
292
  key: 'showDayPicker',
289
293
  value: function showDayPicker() {
294
+ var _this3 = this;
295
+
290
296
  var _props3 = this.props,
291
297
  parseDate = _props3.parseDate,
292
298
  format = _props3.format,
@@ -306,6 +312,8 @@ var DayPickerInput = function (_React$Component) {
306
312
  showOverlay: true,
307
313
  month: month || state.month
308
314
  };
315
+ }, function () {
316
+ if (_this3.props.onDayPickerShow) _this3.props.onDayPickerShow();
309
317
  });
310
318
  }
311
319
 
@@ -318,25 +326,26 @@ var DayPickerInput = function (_React$Component) {
318
326
  }, {
319
327
  key: 'hideDayPicker',
320
328
  value: function hideDayPicker() {
321
- var _this3 = this;
329
+ var _this4 = this;
322
330
 
323
331
  if (this.state.showOverlay === false) {
324
332
  return;
325
333
  }
326
334
  this.setState({ showOverlay: false }, function () {
327
- if (_this3.props.onDayPickerHide) _this3.props.onDayPickerHide();
335
+ if (_this4.props.onDayPickerHide) _this4.props.onDayPickerHide();
328
336
  });
329
337
  }
330
338
  }, {
331
339
  key: 'hideAfterDayClick',
332
340
  value: function hideAfterDayClick() {
333
- var _this4 = this;
341
+ var _this5 = this;
334
342
 
335
343
  if (!this.props.hideOnDayClick) {
336
344
  return;
337
345
  }
338
346
  this.hideTimeout = setTimeout(function () {
339
- return _this4.hideDayPicker();
347
+ _this5.overlayHasFocus = false;
348
+ _this5.hideDayPicker();
340
349
  }, HIDE_TIMEOUT);
341
350
  }
342
351
  }, {
@@ -351,13 +360,13 @@ var DayPickerInput = function (_React$Component) {
351
360
  }, {
352
361
  key: 'handleInputFocus',
353
362
  value: function handleInputFocus(e) {
354
- var _this5 = this;
363
+ var _this6 = this;
355
364
 
356
365
  this.showDayPicker();
357
366
  // Set `overlayHasFocus` after a timeout so the overlay can be hidden when
358
367
  // the input is blurred
359
368
  this.inputFocusTimeout = setTimeout(function () {
360
- _this5.overlayHasFocus = false;
369
+ _this6.overlayHasFocus = false;
361
370
  }, 2);
362
371
  if (this.props.inputProps.onFocus) {
363
372
  e.persist();
@@ -375,11 +384,11 @@ var DayPickerInput = function (_React$Component) {
375
384
  }, {
376
385
  key: 'handleInputBlur',
377
386
  value: function handleInputBlur(e) {
378
- var _this6 = this;
387
+ var _this7 = this;
379
388
 
380
389
  this.inputBlurTimeout = setTimeout(function () {
381
- if (!_this6.overlayHasFocus) {
382
- _this6.hideDayPicker();
390
+ if (!_this7.overlayHasFocus) {
391
+ _this7.hideDayPicker();
383
392
  }
384
393
  }, 1);
385
394
  if (this.props.inputProps.onBlur) {
@@ -400,12 +409,12 @@ var DayPickerInput = function (_React$Component) {
400
409
  }, {
401
410
  key: 'handleOverlayBlur',
402
411
  value: function handleOverlayBlur() {
403
- var _this7 = this;
412
+ var _this8 = this;
404
413
 
405
414
  // We need to set a timeout otherwise IE11 will hide the overlay when
406
415
  // focusing it
407
416
  this.overlayBlurTimeout = setTimeout(function () {
408
- _this7.overlayHasFocus = false;
417
+ _this8.overlayHasFocus = false;
409
418
  }, 3);
410
419
  }
411
420
  }, {
@@ -425,7 +434,7 @@ var DayPickerInput = function (_React$Component) {
425
434
  var value = e.target.value;
426
435
 
427
436
  if (value.trim() === '') {
428
- this.setState({ value: value, typedValue: undefined });
437
+ this.setState({ value: value, typedValue: '' });
429
438
  if (onDayChange) onDayChange(undefined, {}, this);
430
439
  return;
431
440
  }
@@ -467,18 +476,18 @@ var DayPickerInput = function (_React$Component) {
467
476
  }, {
468
477
  key: 'handleMonthChange',
469
478
  value: function handleMonthChange(month) {
470
- var _this8 = this;
479
+ var _this9 = this;
471
480
 
472
481
  this.setState({ month: month }, function () {
473
- if (_this8.props.dayPickerProps && _this8.props.dayPickerProps.onMonthChange) {
474
- _this8.props.dayPickerProps.onMonthChange(month);
482
+ if (_this9.props.dayPickerProps && _this9.props.dayPickerProps.onMonthChange) {
483
+ _this9.props.dayPickerProps.onMonthChange(month);
475
484
  }
476
485
  });
477
486
  }
478
487
  }, {
479
488
  key: 'handleDayClick',
480
489
  value: function handleDayClick(day, modifiers, e) {
481
- var _this9 = this;
490
+ var _this10 = this;
482
491
 
483
492
  var _props5 = this.props,
484
493
  clickUnselectsDay = _props5.clickUnselectsDay,
@@ -508,7 +517,9 @@ var DayPickerInput = function (_React$Component) {
508
517
  } else if (selectedDays) {
509
518
  selectedDays = null;
510
519
  }
511
- this.setState({ value: '', typedValue: undefined, selectedDays: selectedDays }, this.hideAfterDayClick);
520
+
521
+ this.setState({ value: '', typedValue: '', selectedDays: selectedDays }, this.hideAfterDayClick);
522
+
512
523
  if (onDayChange) {
513
524
  onDayChange(undefined, modifiers, this);
514
525
  }
@@ -518,15 +529,15 @@ var DayPickerInput = function (_React$Component) {
518
529
  var value = formatDate(day, format, dayPickerProps.locale);
519
530
  this.setState({ value: value, typedValue: undefined, month: day }, function () {
520
531
  if (onDayChange) {
521
- onDayChange(day, modifiers, _this9);
532
+ onDayChange(day, modifiers, _this10);
522
533
  }
523
- _this9.hideAfterDayClick();
534
+ _this10.hideAfterDayClick();
524
535
  });
525
536
  }
526
537
  }, {
527
538
  key: 'renderOverlay',
528
539
  value: function renderOverlay() {
529
- var _this10 = this;
540
+ var _this11 = this;
530
541
 
531
542
  var _props6 = this.props,
532
543
  classNames = _props6.classNames,
@@ -551,7 +562,7 @@ var DayPickerInput = function (_React$Component) {
551
562
  if (dayPickerProps.todayButton) {
552
563
  // Set the current day when clicking the today button
553
564
  onTodayButtonClick = function onTodayButtonClick() {
554
- return _this10.updateState(new Date(), formatDate(new Date(), format, dayPickerProps.locale), _this10.hideAfterDayClick);
565
+ return _this11.updateState(new Date(), formatDate(new Date(), format, dayPickerProps.locale), _this11.hideAfterDayClick);
555
566
  };
556
567
  }
557
568
  var Overlay = this.props.overlayComponent;
@@ -568,7 +579,7 @@ var DayPickerInput = function (_React$Component) {
568
579
  },
569
580
  _react2.default.createElement(_DayPicker2.default, _extends({
570
581
  ref: function ref(el) {
571
- return _this10.daypicker = el;
582
+ return _this11.daypicker = el;
572
583
  },
573
584
  onTodayButtonClick: onTodayButtonClick
574
585
  }, dayPickerProps, {
@@ -582,21 +593,21 @@ var DayPickerInput = function (_React$Component) {
582
593
  }, {
583
594
  key: 'render',
584
595
  value: function render() {
585
- var _this11 = this;
596
+ var _this12 = this;
586
597
 
587
598
  var Input = this.props.component;
588
599
  var inputProps = this.props.inputProps;
589
600
 
590
601
  return _react2.default.createElement(
591
602
  'div',
592
- { className: this.props.classNames.container },
603
+ { className: this.props.classNames.container, style: this.props.style },
593
604
  _react2.default.createElement(Input, _extends({
594
605
  ref: function ref(el) {
595
- return _this11.input = el;
606
+ return _this12.input = el;
596
607
  },
597
608
  placeholder: this.props.placeholder
598
609
  }, inputProps, {
599
- value: this.state.typedValue || this.state.value,
610
+ value: this.state.value || this.state.typedValue,
600
611
  onChange: this.handleInputChange,
601
612
  onFocus: this.handleInputFocus,
602
613
  onBlur: this.handleInputBlur,
@@ -612,28 +623,7 @@ var DayPickerInput = function (_React$Component) {
612
623
  return DayPickerInput;
613
624
  }(_react2.default.Component);
614
625
 
615
- DayPickerInput.defaultProps = {
616
- dayPickerProps: {},
617
- value: '',
618
- placeholder: 'YYYY-M-D',
619
- format: 'L',
620
- formatDate: defaultFormat,
621
- parseDate: defaultParse,
622
- showOverlay: false,
623
- hideOnDayClick: true,
624
- clickUnselectsDay: false,
625
- keepFocus: true,
626
- component: 'input',
627
- inputProps: {},
628
- overlayComponent: OverlayComponent,
629
- classNames: {
630
- container: 'DayPickerInput',
631
- overlayWrapper: 'DayPickerInput-OverlayWrapper',
632
- overlay: 'DayPickerInput-Overlay'
633
- }
634
- };
635
- exports.default = DayPickerInput;
636
- DayPickerInput.propTypes = process.env.NODE_ENV !== "production" ? {
626
+ DayPickerInput.propTypes = {
637
627
  value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.instanceOf(Date)]),
638
628
  inputProps: _propTypes2.default.object,
639
629
  placeholder: _propTypes2.default.string,
@@ -642,6 +632,7 @@ DayPickerInput.propTypes = process.env.NODE_ENV !== "production" ? {
642
632
 
643
633
  formatDate: _propTypes2.default.func,
644
634
  parseDate: _propTypes2.default.func,
635
+ typedValue: _propTypes2.default.string,
645
636
 
646
637
  showOverlay: _propTypes2.default.bool,
647
638
  dayPickerProps: _propTypes2.default.object,
@@ -651,6 +642,7 @@ DayPickerInput.propTypes = process.env.NODE_ENV !== "production" ? {
651
642
  component: _propTypes2.default.any,
652
643
  overlayComponent: _propTypes2.default.any,
653
644
 
645
+ style: _propTypes2.default.object,
654
646
  classNames: _propTypes2.default.shape({
655
647
  container: _propTypes2.default.string,
656
648
  overlayWrapper: _propTypes2.default.string,
@@ -659,10 +651,33 @@ DayPickerInput.propTypes = process.env.NODE_ENV !== "production" ? {
659
651
 
660
652
  onDayChange: _propTypes2.default.func,
661
653
  onDayPickerHide: _propTypes2.default.func,
654
+ onDayPickerShow: _propTypes2.default.func,
662
655
  onChange: _propTypes2.default.func,
663
656
  onClick: _propTypes2.default.func,
664
657
  onFocus: _propTypes2.default.func,
665
658
  onBlur: _propTypes2.default.func,
666
659
  onKeyUp: _propTypes2.default.func
667
- } : {};
660
+ };
661
+ DayPickerInput.defaultProps = {
662
+ dayPickerProps: {},
663
+ value: '',
664
+ typedValue: '',
665
+ placeholder: 'YYYY-M-D',
666
+ format: 'L',
667
+ formatDate: defaultFormat,
668
+ parseDate: defaultParse,
669
+ showOverlay: false,
670
+ hideOnDayClick: true,
671
+ clickUnselectsDay: false,
672
+ keepFocus: true,
673
+ component: 'input',
674
+ inputProps: {},
675
+ overlayComponent: OverlayComponent,
676
+ classNames: {
677
+ container: 'DayPickerInput',
678
+ overlayWrapper: 'DayPickerInput-OverlayWrapper',
679
+ overlay: 'DayPickerInput-Overlay'
680
+ }
681
+ };
682
+ exports.default = DayPickerInput;
668
683
  //# sourceMappingURL=DayPickerInput.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DayPickerInput.js"],"names":["OverlayComponent","defaultFormat","defaultParse","HIDE_TIMEOUT","input","selectedDay","month","children","classNames","props","overlayWrapper","overlay","propTypes","any","instanceOf","Date","node","object","d","year","getFullYear","getMonth","day","getDate","str","undefined","split","length","parseInt","isNaN","String","DayPickerInput","daypicker","clickTimeout","hideTimeout","inputBlurTimeout","inputFocusTimeout","state","getInitialStateFromProps","showOverlay","hideAfterDayClick","bind","handleInputClick","handleInputFocus","handleInputBlur","handleInputChange","handleInputKeyDown","handleInputKeyUp","handleDayClick","handleMonthChange","handleOverlayFocus","handleOverlayBlur","prevProps","newState","value","formatDate","format","dayPickerProps","locale","prevMonth","selectedDays","Object","keys","setState","clearTimeout","overlayBlurTimeout","parseDate","initialMonth","getInitialMonthFromProps","callback","onDayChange","typedValue","modifiersObj","disabled","disabledDays","selected","modifiers","reduce","obj","modifier","onDayPickerHide","hideOnDayClick","setTimeout","hideDayPicker","e","showDayPicker","inputProps","onClick","persist","overlayHasFocus","onFocus","onBlur","preventDefault","keepFocus","focus","onChange","target","trim","updateState","keyCode","onKeyDown","onKeyUp","onMonthChange","clickUnselectsDay","onDayClick","Array","isArray","slice","selectedDayIdx","indexOf","splice","onTodayButtonClick","todayButton","Overlay","overlayComponent","el","Input","component","container","placeholder","renderOverlay","Component","defaultProps","oneOfType","string","arrayOf","func","bool","shape","isRequired"],"mappings":"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","file":"DayPickerInput.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DayPicker from './DayPicker';\nimport { isSameMonth, isDate } from './DateUtils';\nimport { getModifiersForDay } from './ModifiersUtils';\nimport { ESC, TAB } from './keys';\n\n// When clicking on a day cell, overlay will be hidden after this timeout\nexport const HIDE_TIMEOUT = 100;\n\n/**\n * The default component used as Overlay.\n *\n * @param {Object} props\n */\nexport function OverlayComponent({\n input,\n selectedDay,\n month,\n children,\n classNames,\n ...props\n}) {\n return (\n <div className={classNames.overlayWrapper} {...props}>\n <div className={classNames.overlay}>{children}</div>\n </div>\n );\n}\n\nOverlayComponent.propTypes = {\n input: PropTypes.any,\n selectedDay: PropTypes.any,\n month: PropTypes.instanceOf(Date),\n children: PropTypes.node,\n classNames: PropTypes.object,\n};\n\n/**\n * The default function used to format a Date to String, passed to the `format`\n * prop.\n * @param {Date} d\n * @return {String}\n */\nexport function defaultFormat(d) {\n if (isDate(d)) {\n const year = d.getFullYear();\n const month = `${d.getMonth() + 1}`;\n const day = `${d.getDate()}`;\n return `${year}-${month}-${day}`;\n }\n return '';\n}\n\n/**\n * The default function used to parse a String as Date, passed to the `parse`\n * prop.\n * @param {String} str\n * @return {Date}\n */\nexport function defaultParse(str) {\n if (typeof str !== 'string') {\n return undefined;\n }\n const split = str.split('-');\n if (split.length !== 3) {\n return undefined;\n }\n const year = parseInt(split[0], 10);\n const month = parseInt(split[1], 10) - 1;\n const day = parseInt(split[2], 10);\n if (\n isNaN(year) ||\n String(year).length > 4 ||\n isNaN(month) ||\n isNaN(day) ||\n day <= 0 ||\n day > 31 ||\n month < 0 ||\n month >= 12\n ) {\n return undefined;\n }\n\n return new Date(year, month, day);\n}\n\nexport default class DayPickerInput extends React.Component {\n static propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]),\n inputProps: PropTypes.object,\n placeholder: PropTypes.string,\n\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n formatDate: PropTypes.func,\n parseDate: PropTypes.func,\n\n showOverlay: PropTypes.bool,\n dayPickerProps: PropTypes.object,\n hideOnDayClick: PropTypes.bool,\n clickUnselectsDay: PropTypes.bool,\n keepFocus: PropTypes.bool,\n component: PropTypes.any,\n overlayComponent: PropTypes.any,\n\n classNames: PropTypes.shape({\n container: PropTypes.string,\n overlayWrapper: PropTypes.string,\n overlay: PropTypes.string.isRequired,\n }),\n\n onDayChange: PropTypes.func,\n onDayPickerHide: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyUp: PropTypes.func,\n };\n\n static defaultProps = {\n dayPickerProps: {},\n value: '',\n placeholder: 'YYYY-M-D',\n format: 'L',\n formatDate: defaultFormat,\n parseDate: defaultParse,\n showOverlay: false,\n hideOnDayClick: true,\n clickUnselectsDay: false,\n keepFocus: true,\n component: 'input',\n inputProps: {},\n overlayComponent: OverlayComponent,\n classNames: {\n container: 'DayPickerInput',\n overlayWrapper: 'DayPickerInput-OverlayWrapper',\n overlay: 'DayPickerInput-Overlay',\n },\n };\n\n input = null;\n\n daypicker = null;\n\n clickTimeout = null;\n\n hideTimeout = null;\n\n inputBlurTimeout = null;\n\n inputFocusTimeout = null;\n\n constructor(props) {\n super(props);\n\n this.state = this.getInitialStateFromProps(props);\n this.state.showOverlay = props.showOverlay;\n\n this.hideAfterDayClick = this.hideAfterDayClick.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputKeyUp = this.handleInputKeyUp.bind(this);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleMonthChange = this.handleMonthChange.bind(this);\n this.handleOverlayFocus = this.handleOverlayFocus.bind(this);\n this.handleOverlayBlur = this.handleOverlayBlur.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const newState = {};\n\n // Current props\n const { value, formatDate, format, dayPickerProps } = this.props;\n\n // Update the input value if the `value` prop has changed\n if (value !== prevProps.value) {\n if (isDate(value)) {\n newState.value = formatDate(value, format, dayPickerProps.locale);\n } else {\n newState.value = value;\n }\n }\n\n // Update the month if the months from props changed\n const prevMonth = prevProps.dayPickerProps.month;\n if (\n dayPickerProps.month &&\n dayPickerProps.month !== prevMonth &&\n !isSameMonth(dayPickerProps.month, prevMonth)\n ) {\n newState.month = dayPickerProps.month;\n }\n\n // Updated the selected days from props if they changed\n if (prevProps.dayPickerProps.selectedDays !== dayPickerProps.selectedDays) {\n newState.selectedDays = dayPickerProps.selectedDays;\n }\n\n if (Object.keys(newState).length > 0) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.clickTimeout);\n clearTimeout(this.hideTimeout);\n clearTimeout(this.inputFocusTimeout);\n clearTimeout(this.inputBlurTimeout);\n clearTimeout(this.overlayBlurTimeout);\n }\n\n getInitialMonthFromProps(props) {\n const { dayPickerProps, format } = props;\n let day;\n if (props.value) {\n if (isDate(props.value)) {\n day = props.value;\n } else {\n day = props.parseDate(props.value, format, dayPickerProps.locale);\n }\n }\n return (\n dayPickerProps.initialMonth || dayPickerProps.month || day || new Date()\n );\n }\n\n getInitialStateFromProps(props) {\n const { dayPickerProps, formatDate, format } = props;\n let { value } = props;\n if (props.value && isDate(props.value)) {\n value = formatDate(props.value, format, dayPickerProps.locale);\n }\n return {\n value,\n month: this.getInitialMonthFromProps(props),\n selectedDays: dayPickerProps.selectedDays,\n };\n }\n\n getInput() {\n return this.input;\n }\n\n getDayPicker() {\n return this.daypicker;\n }\n\n /**\n * Update the component's state and fire the `onDayChange` event passing the\n * day's modifiers to it.\n *\n * @param {Date} day - Will be used for changing the month\n * @param {String} value - Input field value\n * @private\n */\n updateState(day, value, callback) {\n const { dayPickerProps, onDayChange } = this.props;\n this.setState({ month: day, value, typedValue: undefined }, () => {\n if (callback) {\n callback();\n }\n if (!onDayChange) {\n return;\n }\n const modifiersObj = {\n disabled: dayPickerProps.disabledDays,\n selected: dayPickerProps.selectedDays,\n ...dayPickerProps.modifiers,\n };\n const modifiers = getModifiersForDay(day, modifiersObj).reduce(\n (obj, modifier) => ({\n ...obj,\n [modifier]: true,\n }),\n {}\n );\n onDayChange(day, modifiers, this);\n });\n }\n\n /**\n * Show the Day Picker overlay.\n *\n * @memberof DayPickerInput\n */\n showDayPicker() {\n const { parseDate, format, dayPickerProps } = this.props;\n const { value, showOverlay } = this.state;\n if (showOverlay) {\n return;\n }\n // Reset the current displayed month when showing the overlay\n const month = value\n ? parseDate(value, format, dayPickerProps.locale) // Use the month in the input field\n : this.getInitialMonthFromProps(this.props); // Restore the month from the props\n this.setState(state => ({\n showOverlay: true,\n month: month || state.month,\n }));\n }\n\n /**\n * Hide the Day Picker overlay\n *\n * @memberof DayPickerInput\n */\n hideDayPicker() {\n if (this.state.showOverlay === false) {\n return;\n }\n this.setState({ showOverlay: false }, () => {\n if (this.props.onDayPickerHide) this.props.onDayPickerHide();\n });\n }\n\n hideAfterDayClick() {\n if (!this.props.hideOnDayClick) {\n return;\n }\n this.hideTimeout = setTimeout(() => this.hideDayPicker(), HIDE_TIMEOUT);\n }\n\n handleInputClick(e) {\n this.showDayPicker();\n if (this.props.inputProps.onClick) {\n e.persist();\n this.props.inputProps.onClick(e);\n }\n }\n\n handleInputFocus(e) {\n this.showDayPicker();\n // Set `overlayHasFocus` after a timeout so the overlay can be hidden when\n // the input is blurred\n this.inputFocusTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 2);\n if (this.props.inputProps.onFocus) {\n e.persist();\n this.props.inputProps.onFocus(e);\n }\n }\n\n // When the input is blurred, the overlay should disappear. However the input\n // is blurred also when the user interacts with the overlay (e.g. the overlay\n // get the focus by clicking it). In these cases, the overlay should not be\n // hidden. There are different approaches to avoid hiding the overlay when\n // this happens, but the only cross-browser hack we’ve found is to set all\n // these timeouts in code before changing `overlayHasFocus`.\n handleInputBlur(e) {\n this.inputBlurTimeout = setTimeout(() => {\n if (!this.overlayHasFocus) {\n this.hideDayPicker();\n }\n }, 1);\n if (this.props.inputProps.onBlur) {\n e.persist();\n this.props.inputProps.onBlur(e);\n }\n }\n\n handleOverlayFocus(e) {\n e.preventDefault();\n this.overlayHasFocus = true;\n if (\n !this.props.keepFocus ||\n !this.input ||\n typeof this.input.focus !== 'function'\n ) {\n return;\n }\n this.input.focus();\n }\n\n handleOverlayBlur() {\n // We need to set a timeout otherwise IE11 will hide the overlay when\n // focusing it\n this.overlayBlurTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 3);\n }\n\n handleInputChange(e) {\n const {\n dayPickerProps,\n format,\n inputProps,\n onDayChange,\n parseDate,\n } = this.props;\n if (inputProps.onChange) {\n e.persist();\n inputProps.onChange(e);\n }\n const { value } = e.target;\n if (value.trim() === '') {\n this.setState({ value, typedValue: undefined });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n const day = parseDate(value, format, dayPickerProps.locale);\n if (!day) {\n // Day is invalid: we save the value in the typedValue state\n this.setState({ value, typedValue: value });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n this.updateState(day, value);\n }\n\n handleInputKeyDown(e) {\n if (e.keyCode === TAB) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyDown) {\n e.persist();\n this.props.inputProps.onKeyDown(e);\n }\n }\n\n handleInputKeyUp(e) {\n if (e.keyCode === ESC) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyUp) {\n e.persist();\n this.props.inputProps.onKeyUp(e);\n }\n }\n\n handleMonthChange(month) {\n this.setState({ month }, () => {\n if (\n this.props.dayPickerProps &&\n this.props.dayPickerProps.onMonthChange\n ) {\n this.props.dayPickerProps.onMonthChange(month);\n }\n });\n }\n\n handleDayClick(day, modifiers, e) {\n const {\n clickUnselectsDay,\n dayPickerProps,\n onDayChange,\n formatDate,\n format,\n } = this.props;\n if (dayPickerProps.onDayClick) {\n dayPickerProps.onDayClick(day, modifiers, e);\n }\n\n // Do nothing if the day is disabled\n if (\n modifiers.disabled ||\n (dayPickerProps &&\n dayPickerProps.classNames &&\n modifiers[dayPickerProps.classNames.disabled])\n ) {\n return;\n }\n\n // If the clicked day is already selected, remove the clicked day\n // from the selected days and empty the field value\n if (modifiers.selected && clickUnselectsDay) {\n let { selectedDays } = this.state;\n if (Array.isArray(selectedDays)) {\n selectedDays = selectedDays.slice(0);\n const selectedDayIdx = selectedDays.indexOf(day);\n selectedDays.splice(selectedDayIdx, 1);\n } else if (selectedDays) {\n selectedDays = null;\n }\n this.setState(\n { value: '', typedValue: undefined, selectedDays },\n this.hideAfterDayClick\n );\n if (onDayChange) {\n onDayChange(undefined, modifiers, this);\n }\n return;\n }\n\n const value = formatDate(day, format, dayPickerProps.locale);\n this.setState({ value, typedValue: undefined, month: day }, () => {\n if (onDayChange) {\n onDayChange(day, modifiers, this);\n }\n this.hideAfterDayClick();\n });\n }\n\n renderOverlay() {\n const {\n classNames,\n dayPickerProps,\n parseDate,\n formatDate,\n format,\n } = this.props;\n const { selectedDays, value } = this.state;\n let selectedDay;\n if (!selectedDays && value) {\n const day = parseDate(value, format, dayPickerProps.locale);\n if (day) {\n selectedDay = day;\n }\n } else if (selectedDays) {\n selectedDay = selectedDays;\n }\n let onTodayButtonClick;\n if (dayPickerProps.todayButton) {\n // Set the current day when clicking the today button\n onTodayButtonClick = () =>\n this.updateState(\n new Date(),\n formatDate(new Date(), format, dayPickerProps.locale),\n this.hideAfterDayClick\n );\n }\n const Overlay = this.props.overlayComponent;\n return (\n <Overlay\n classNames={classNames}\n month={this.state.month}\n selectedDay={selectedDay}\n input={this.input}\n tabIndex={0} // tabIndex is necessary to catch focus/blur events on Safari\n onFocus={this.handleOverlayFocus}\n onBlur={this.handleOverlayBlur}\n >\n <DayPicker\n ref={el => (this.daypicker = el)}\n onTodayButtonClick={onTodayButtonClick}\n {...dayPickerProps}\n month={this.state.month}\n selectedDays={selectedDay}\n onDayClick={this.handleDayClick}\n onMonthChange={this.handleMonthChange}\n />\n </Overlay>\n );\n }\n\n render() {\n const Input = this.props.component;\n const { inputProps } = this.props;\n return (\n <div className={this.props.classNames.container}>\n <Input\n ref={el => (this.input = el)}\n placeholder={this.props.placeholder}\n {...inputProps}\n value={this.state.typedValue || this.state.value}\n onChange={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onKeyDown={this.handleInputKeyDown}\n onKeyUp={this.handleInputKeyUp}\n onClick={!inputProps.disabled ? this.handleInputClick : undefined}\n />\n {this.state.showOverlay && this.renderOverlay()}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/DayPickerInput.js"],"names":["OverlayComponent","defaultFormat","defaultParse","HIDE_TIMEOUT","input","selectedDay","month","children","classNames","props","overlayWrapper","overlay","propTypes","PropTypes","any","instanceOf","Date","node","object","d","year","getFullYear","getMonth","day","getDate","str","undefined","split","length","parseInt","isNaN","String","DayPickerInput","daypicker","clickTimeout","hideTimeout","inputBlurTimeout","inputFocusTimeout","state","getInitialStateFromProps","showOverlay","hideAfterDayClick","bind","handleInputClick","handleInputFocus","handleInputBlur","handleInputChange","handleInputKeyDown","handleInputKeyUp","handleDayClick","handleMonthChange","handleOverlayFocus","handleOverlayBlur","prevProps","newState","value","formatDate","format","dayPickerProps","locale","prevMonth","selectedDays","Object","keys","setState","clearTimeout","overlayBlurTimeout","parseDate","initialMonth","typedValue","getInitialMonthFromProps","callback","onDayChange","modifiersObj","disabled","disabledDays","selected","modifiers","reduce","obj","modifier","onDayPickerShow","onDayPickerHide","hideOnDayClick","setTimeout","overlayHasFocus","hideDayPicker","e","showDayPicker","inputProps","onClick","persist","onFocus","onBlur","preventDefault","keepFocus","focus","onChange","target","trim","updateState","keyCode","TAB","onKeyDown","ESC","onKeyUp","onMonthChange","clickUnselectsDay","onDayClick","Array","isArray","slice","selectedDayIdx","indexOf","splice","onTodayButtonClick","todayButton","Overlay","overlayComponent","el","Input","component","container","style","placeholder","renderOverlay","React","Component","oneOfType","string","arrayOf","func","bool","shape","isRequired","defaultProps"],"mappings":"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","file":"DayPickerInput.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DayPicker from './DayPicker';\nimport { isSameMonth, isDate } from './DateUtils';\nimport { getModifiersForDay } from './ModifiersUtils';\nimport { ESC, TAB } from './keys';\n\n// When clicking on a day cell, overlay will be hidden after this timeout\nexport const HIDE_TIMEOUT = 100;\n\n/**\n * The default component used as Overlay.\n *\n * @param {Object} props\n */\nexport function OverlayComponent({\n input,\n selectedDay,\n month,\n children,\n classNames,\n ...props\n}) {\n return (\n <div className={classNames.overlayWrapper} {...props}>\n <div className={classNames.overlay}>{children}</div>\n </div>\n );\n}\n\nOverlayComponent.propTypes = {\n input: PropTypes.any,\n selectedDay: PropTypes.any,\n month: PropTypes.instanceOf(Date),\n children: PropTypes.node,\n classNames: PropTypes.object,\n};\n\n/**\n * The default function used to format a Date to String, passed to the `format`\n * prop.\n * @param {Date} d\n * @return {String}\n */\nexport function defaultFormat(d) {\n if (isDate(d)) {\n const year = d.getFullYear();\n const month = `${d.getMonth() + 1}`;\n const day = `${d.getDate()}`;\n return `${year}-${month}-${day}`;\n }\n return '';\n}\n\n/**\n * The default function used to parse a String as Date, passed to the `parse`\n * prop.\n * @param {String} str\n * @return {Date}\n */\nexport function defaultParse(str) {\n if (typeof str !== 'string') {\n return undefined;\n }\n const split = str.split('-');\n if (split.length !== 3) {\n return undefined;\n }\n const year = parseInt(split[0], 10);\n const month = parseInt(split[1], 10) - 1;\n const day = parseInt(split[2], 10);\n if (\n isNaN(year) ||\n String(year).length > 4 ||\n isNaN(month) ||\n isNaN(day) ||\n day <= 0 ||\n day > 31 ||\n month < 0 ||\n month >= 12\n ) {\n return undefined;\n }\n\n return new Date(year, month, day, 12, 0, 0, 0); // always set noon to avoid time zone issues\n}\n\nexport default class DayPickerInput extends React.Component {\n static propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]),\n inputProps: PropTypes.object,\n placeholder: PropTypes.string,\n\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n formatDate: PropTypes.func,\n parseDate: PropTypes.func,\n typedValue: PropTypes.string,\n\n showOverlay: PropTypes.bool,\n dayPickerProps: PropTypes.object,\n hideOnDayClick: PropTypes.bool,\n clickUnselectsDay: PropTypes.bool,\n keepFocus: PropTypes.bool,\n component: PropTypes.any,\n overlayComponent: PropTypes.any,\n\n style: PropTypes.object,\n classNames: PropTypes.shape({\n container: PropTypes.string,\n overlayWrapper: PropTypes.string,\n overlay: PropTypes.string.isRequired,\n }),\n\n onDayChange: PropTypes.func,\n onDayPickerHide: PropTypes.func,\n onDayPickerShow: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyUp: PropTypes.func,\n };\n\n static defaultProps = {\n dayPickerProps: {},\n value: '',\n typedValue: '',\n placeholder: 'YYYY-M-D',\n format: 'L',\n formatDate: defaultFormat,\n parseDate: defaultParse,\n showOverlay: false,\n hideOnDayClick: true,\n clickUnselectsDay: false,\n keepFocus: true,\n component: 'input',\n inputProps: {},\n overlayComponent: OverlayComponent,\n classNames: {\n container: 'DayPickerInput',\n overlayWrapper: 'DayPickerInput-OverlayWrapper',\n overlay: 'DayPickerInput-Overlay',\n },\n };\n\n input = null;\n\n daypicker = null;\n\n clickTimeout = null;\n\n hideTimeout = null;\n\n inputBlurTimeout = null;\n\n inputFocusTimeout = null;\n\n constructor(props) {\n super(props);\n\n this.state = this.getInitialStateFromProps(props);\n this.state.showOverlay = props.showOverlay;\n\n this.hideAfterDayClick = this.hideAfterDayClick.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputKeyUp = this.handleInputKeyUp.bind(this);\n this.handleDayClick = this.handleDayClick.bind(this);\n this.handleMonthChange = this.handleMonthChange.bind(this);\n this.handleOverlayFocus = this.handleOverlayFocus.bind(this);\n this.handleOverlayBlur = this.handleOverlayBlur.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const newState = {};\n\n // Current props\n const { value, formatDate, format, dayPickerProps } = this.props;\n\n // Update the input value if `value`, `dayPickerProps.locale` or `format`\n // props have changed\n if (\n value !== prevProps.value ||\n dayPickerProps.locale !== prevProps.dayPickerProps.locale ||\n format !== prevProps.format\n ) {\n if (isDate(value)) {\n newState.value = formatDate(value, format, dayPickerProps.locale);\n } else {\n newState.value = value;\n }\n }\n\n // Update the month if the months from props changed\n const prevMonth = prevProps.dayPickerProps.month;\n if (\n dayPickerProps.month &&\n dayPickerProps.month !== prevMonth &&\n !isSameMonth(dayPickerProps.month, prevMonth)\n ) {\n newState.month = dayPickerProps.month;\n }\n\n // Updated the selected days from props if they changed\n if (prevProps.dayPickerProps.selectedDays !== dayPickerProps.selectedDays) {\n newState.selectedDays = dayPickerProps.selectedDays;\n }\n\n if (Object.keys(newState).length > 0) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.clickTimeout);\n clearTimeout(this.hideTimeout);\n clearTimeout(this.inputFocusTimeout);\n clearTimeout(this.inputBlurTimeout);\n clearTimeout(this.overlayBlurTimeout);\n }\n\n getInitialMonthFromProps(props) {\n const { dayPickerProps, format } = props;\n let day;\n if (props.value) {\n if (isDate(props.value)) {\n day = props.value;\n } else {\n day = props.parseDate(props.value, format, dayPickerProps.locale);\n }\n }\n return (\n dayPickerProps.initialMonth || dayPickerProps.month || day || new Date()\n );\n }\n\n getInitialStateFromProps(props) {\n const { dayPickerProps, formatDate, format, typedValue } = props;\n let { value } = props;\n if (props.value && isDate(props.value)) {\n value = formatDate(props.value, format, dayPickerProps.locale);\n }\n\n return {\n value,\n typedValue,\n month: this.getInitialMonthFromProps(props),\n selectedDays: dayPickerProps.selectedDays,\n };\n }\n\n getInput() {\n return this.input;\n }\n\n getDayPicker() {\n return this.daypicker;\n }\n\n /**\n * Update the component's state and fire the `onDayChange` event passing the\n * day's modifiers to it.\n *\n * @param {Date} day - Will be used for changing the month\n * @param {String} value - Input field value\n * @private\n */\n updateState(day, value, callback) {\n const { dayPickerProps, onDayChange } = this.props;\n this.setState({ month: day, value, typedValue: '' }, () => {\n if (callback) {\n callback();\n }\n if (!onDayChange) {\n return;\n }\n const modifiersObj = {\n disabled: dayPickerProps.disabledDays,\n selected: dayPickerProps.selectedDays,\n ...dayPickerProps.modifiers,\n };\n const modifiers = getModifiersForDay(day, modifiersObj).reduce(\n (obj, modifier) => ({\n ...obj,\n [modifier]: true,\n }),\n {}\n );\n onDayChange(day, modifiers, this);\n });\n }\n\n /**\n * Show the Day Picker overlay.\n *\n * @memberof DayPickerInput\n */\n showDayPicker() {\n const { parseDate, format, dayPickerProps } = this.props;\n const { value, showOverlay } = this.state;\n if (showOverlay) {\n return;\n }\n // Reset the current displayed month when showing the overlay\n const month = value\n ? parseDate(value, format, dayPickerProps.locale) // Use the month in the input field\n : this.getInitialMonthFromProps(this.props); // Restore the month from the props\n this.setState(\n state => ({\n showOverlay: true,\n month: month || state.month,\n }),\n () => {\n if (this.props.onDayPickerShow) this.props.onDayPickerShow();\n }\n );\n }\n\n /**\n * Hide the Day Picker overlay\n *\n * @memberof DayPickerInput\n */\n hideDayPicker() {\n if (this.state.showOverlay === false) {\n return;\n }\n this.setState({ showOverlay: false }, () => {\n if (this.props.onDayPickerHide) this.props.onDayPickerHide();\n });\n }\n\n hideAfterDayClick() {\n if (!this.props.hideOnDayClick) {\n return;\n }\n this.hideTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n this.hideDayPicker();\n }, HIDE_TIMEOUT);\n }\n\n handleInputClick(e) {\n this.showDayPicker();\n if (this.props.inputProps.onClick) {\n e.persist();\n this.props.inputProps.onClick(e);\n }\n }\n\n handleInputFocus(e) {\n this.showDayPicker();\n // Set `overlayHasFocus` after a timeout so the overlay can be hidden when\n // the input is blurred\n this.inputFocusTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 2);\n if (this.props.inputProps.onFocus) {\n e.persist();\n this.props.inputProps.onFocus(e);\n }\n }\n\n // When the input is blurred, the overlay should disappear. However the input\n // is blurred also when the user interacts with the overlay (e.g. the overlay\n // get the focus by clicking it). In these cases, the overlay should not be\n // hidden. There are different approaches to avoid hiding the overlay when\n // this happens, but the only cross-browser hack we’ve found is to set all\n // these timeouts in code before changing `overlayHasFocus`.\n handleInputBlur(e) {\n this.inputBlurTimeout = setTimeout(() => {\n if (!this.overlayHasFocus) {\n this.hideDayPicker();\n }\n }, 1);\n if (this.props.inputProps.onBlur) {\n e.persist();\n this.props.inputProps.onBlur(e);\n }\n }\n\n handleOverlayFocus(e) {\n e.preventDefault();\n this.overlayHasFocus = true;\n if (\n !this.props.keepFocus ||\n !this.input ||\n typeof this.input.focus !== 'function'\n ) {\n return;\n }\n this.input.focus();\n }\n\n handleOverlayBlur() {\n // We need to set a timeout otherwise IE11 will hide the overlay when\n // focusing it\n this.overlayBlurTimeout = setTimeout(() => {\n this.overlayHasFocus = false;\n }, 3);\n }\n\n handleInputChange(e) {\n const {\n dayPickerProps,\n format,\n inputProps,\n onDayChange,\n parseDate,\n } = this.props;\n if (inputProps.onChange) {\n e.persist();\n inputProps.onChange(e);\n }\n const { value } = e.target;\n if (value.trim() === '') {\n this.setState({ value, typedValue: '' });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n const day = parseDate(value, format, dayPickerProps.locale);\n if (!day) {\n // Day is invalid: we save the value in the typedValue state\n this.setState({ value, typedValue: value });\n if (onDayChange) onDayChange(undefined, {}, this);\n return;\n }\n this.updateState(day, value);\n }\n\n handleInputKeyDown(e) {\n if (e.keyCode === TAB) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyDown) {\n e.persist();\n this.props.inputProps.onKeyDown(e);\n }\n }\n\n handleInputKeyUp(e) {\n if (e.keyCode === ESC) {\n this.hideDayPicker();\n } else {\n this.showDayPicker();\n }\n if (this.props.inputProps.onKeyUp) {\n e.persist();\n this.props.inputProps.onKeyUp(e);\n }\n }\n\n handleMonthChange(month) {\n this.setState({ month }, () => {\n if (\n this.props.dayPickerProps &&\n this.props.dayPickerProps.onMonthChange\n ) {\n this.props.dayPickerProps.onMonthChange(month);\n }\n });\n }\n\n handleDayClick(day, modifiers, e) {\n const {\n clickUnselectsDay,\n dayPickerProps,\n onDayChange,\n formatDate,\n format,\n } = this.props;\n if (dayPickerProps.onDayClick) {\n dayPickerProps.onDayClick(day, modifiers, e);\n }\n\n // Do nothing if the day is disabled\n if (\n modifiers.disabled ||\n (dayPickerProps &&\n dayPickerProps.classNames &&\n modifiers[dayPickerProps.classNames.disabled])\n ) {\n return;\n }\n\n // If the clicked day is already selected, remove the clicked day\n // from the selected days and empty the field value\n if (modifiers.selected && clickUnselectsDay) {\n let { selectedDays } = this.state;\n if (Array.isArray(selectedDays)) {\n selectedDays = selectedDays.slice(0);\n const selectedDayIdx = selectedDays.indexOf(day);\n selectedDays.splice(selectedDayIdx, 1);\n } else if (selectedDays) {\n selectedDays = null;\n }\n\n this.setState(\n { value: '', typedValue: '', selectedDays },\n this.hideAfterDayClick\n );\n\n if (onDayChange) {\n onDayChange(undefined, modifiers, this);\n }\n return;\n }\n\n const value = formatDate(day, format, dayPickerProps.locale);\n this.setState({ value, typedValue: undefined, month: day }, () => {\n if (onDayChange) {\n onDayChange(day, modifiers, this);\n }\n this.hideAfterDayClick();\n });\n }\n\n renderOverlay() {\n const {\n classNames,\n dayPickerProps,\n parseDate,\n formatDate,\n format,\n } = this.props;\n const { selectedDays, value } = this.state;\n let selectedDay;\n if (!selectedDays && value) {\n const day = parseDate(value, format, dayPickerProps.locale);\n if (day) {\n selectedDay = day;\n }\n } else if (selectedDays) {\n selectedDay = selectedDays;\n }\n let onTodayButtonClick;\n if (dayPickerProps.todayButton) {\n // Set the current day when clicking the today button\n onTodayButtonClick = () =>\n this.updateState(\n new Date(),\n formatDate(new Date(), format, dayPickerProps.locale),\n this.hideAfterDayClick\n );\n }\n const Overlay = this.props.overlayComponent;\n return (\n <Overlay\n classNames={classNames}\n month={this.state.month}\n selectedDay={selectedDay}\n input={this.input}\n tabIndex={0} // tabIndex is necessary to catch focus/blur events on Safari\n onFocus={this.handleOverlayFocus}\n onBlur={this.handleOverlayBlur}\n >\n <DayPicker\n ref={el => (this.daypicker = el)}\n onTodayButtonClick={onTodayButtonClick}\n {...dayPickerProps}\n month={this.state.month}\n selectedDays={selectedDay}\n onDayClick={this.handleDayClick}\n onMonthChange={this.handleMonthChange}\n />\n </Overlay>\n );\n }\n\n render() {\n const Input = this.props.component;\n const { inputProps } = this.props;\n return (\n <div className={this.props.classNames.container} style={this.props.style}>\n <Input\n ref={el => (this.input = el)}\n placeholder={this.props.placeholder}\n {...inputProps}\n value={this.state.value || this.state.typedValue}\n onChange={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onKeyDown={this.handleInputKeyDown}\n onKeyUp={this.handleInputKeyUp}\n onClick={!inputProps.disabled ? this.handleInputClick : undefined}\n />\n {this.state.showOverlay && this.renderOverlay()}\n </div>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Helpers.js"],"names":["cancelEvent","getFirstDayOfMonth","getDaysInMonth","getModifiersFromProps","getFirstDayOfWeekFromProps","isRangeOfDates","getMonthsDiff","getWeekArray","startOfMonth","getDayNodes","nodeListToArray","hasOwnProp","e","preventDefault","stopPropagation","d","Date","getFullYear","getMonth","resultDate","setMonth","setDate","getDate","props","modifiers","selectedDays","classNames","selected","disabledDays","disabled","firstDayOfWeek","locale","localeUtils","isNaN","getFirstDayOfWeek","value","from","to","d1","d2","fixedWeeks","daysInMonth","dayArray","week","weekArray","i","push","forEach","length","day","getDay","indexOf","firstWeek","outsideDate","unshift","lastWeek","lastExtraWeek","lastDay","extraWeek","j","newDate","setHours","node","outsideClassName","outside","dayQuery","replace","outsideDayQuery","selector","querySelectorAll","nodeList","Array","prototype","slice","call","obj","prop","Object","hasOwnProperty"],"mappings":"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","file":"Helpers.js","sourcesContent":["import { clone } from './DateUtils';\nimport { getFirstDayOfWeek } from './LocaleUtils';\nimport defaultClassNames from './classNames';\n\nexport function cancelEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nexport function getFirstDayOfMonth(d) {\n return new Date(d.getFullYear(), d.getMonth(), 1, 12);\n}\n\nexport function getDaysInMonth(d) {\n const resultDate = getFirstDayOfMonth(d);\n\n resultDate.setMonth(resultDate.getMonth() + 1);\n resultDate.setDate(resultDate.getDate() - 1);\n\n return resultDate.getDate();\n}\n\nexport function getModifiersFromProps(props) {\n const modifiers = { ...props.modifiers };\n if (props.selectedDays) {\n modifiers[props.classNames.selected] = props.selectedDays;\n }\n if (props.disabledDays) {\n modifiers[props.classNames.disabled] = props.disabledDays;\n }\n return modifiers;\n}\n\nexport function getFirstDayOfWeekFromProps(props) {\n const { firstDayOfWeek, locale = 'en', localeUtils = {} } = props;\n if (!isNaN(firstDayOfWeek)) {\n return firstDayOfWeek;\n }\n if (localeUtils.getFirstDayOfWeek) {\n return localeUtils.getFirstDayOfWeek(locale);\n }\n return 0;\n}\n\nexport function isRangeOfDates(value) {\n return !!(value && value.from && value.to);\n}\n\nexport function getMonthsDiff(d1, d2) {\n return (\n d2.getMonth() - d1.getMonth() + 12 * (d2.getFullYear() - d1.getFullYear())\n );\n}\n\nexport function getWeekArray(\n d,\n firstDayOfWeek = getFirstDayOfWeek(),\n fixedWeeks\n) {\n const daysInMonth = getDaysInMonth(d);\n const dayArray = [];\n\n let week = [];\n const weekArray = [];\n\n for (let i = 1; i <= daysInMonth; i += 1) {\n dayArray.push(new Date(d.getFullYear(), d.getMonth(), i, 12));\n }\n\n dayArray.forEach(day => {\n if (week.length > 0 && day.getDay() === firstDayOfWeek) {\n weekArray.push(week);\n week = [];\n }\n week.push(day);\n if (dayArray.indexOf(day) === dayArray.length - 1) {\n weekArray.push(week);\n }\n });\n\n // unshift days to start the first week\n const firstWeek = weekArray[0];\n for (let i = 7 - firstWeek.length; i > 0; i -= 1) {\n const outsideDate = clone(firstWeek[0]);\n outsideDate.setDate(firstWeek[0].getDate() - 1);\n firstWeek.unshift(outsideDate);\n }\n\n // push days until the end of the last week\n const lastWeek = weekArray[weekArray.length - 1];\n for (let i = lastWeek.length; i < 7; i += 1) {\n const outsideDate = clone(lastWeek[lastWeek.length - 1]);\n outsideDate.setDate(lastWeek[lastWeek.length - 1].getDate() + 1);\n lastWeek.push(outsideDate);\n }\n\n // add extra weeks to reach 6 weeks\n if (fixedWeeks && weekArray.length < 6) {\n let lastExtraWeek;\n\n for (let i = weekArray.length; i < 6; i += 1) {\n lastExtraWeek = weekArray[weekArray.length - 1];\n const lastDay = lastExtraWeek[lastExtraWeek.length - 1];\n const extraWeek = [];\n\n for (let j = 0; j < 7; j += 1) {\n const outsideDate = clone(lastDay);\n outsideDate.setDate(lastDay.getDate() + j + 1);\n extraWeek.push(outsideDate);\n }\n\n weekArray.push(extraWeek);\n }\n }\n\n return weekArray;\n}\n\nexport function startOfMonth(d) {\n const newDate = clone(d);\n newDate.setDate(1);\n newDate.setHours(12, 0, 0, 0); // always set noon to avoid time zone issues\n return newDate;\n}\n\nexport function getDayNodes(node, classNames) {\n let outsideClassName;\n if (classNames === defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${classNames.day}--${classNames.outside}`;\n } else {\n outsideClassName = `${classNames.outside}`;\n }\n const dayQuery = classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return node.querySelectorAll(selector);\n}\n\nexport function nodeListToArray(nodeList) {\n return Array.prototype.slice.call(nodeList, 0);\n}\n\nexport function hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"]}
1
+ {"version":3,"sources":["../../src/Helpers.js"],"names":["cancelEvent","getFirstDayOfMonth","getDaysInMonth","getModifiersFromProps","getFirstDayOfWeekFromProps","isRangeOfDates","getMonthsDiff","getWeekArray","startOfMonth","getDayNodes","nodeListToArray","hasOwnProp","e","preventDefault","stopPropagation","d","Date","getFullYear","getMonth","resultDate","setMonth","setDate","getDate","props","modifiers","selectedDays","classNames","selected","disabledDays","disabled","firstDayOfWeek","locale","localeUtils","isNaN","getFirstDayOfWeek","value","from","to","d1","d2","fixedWeeks","daysInMonth","dayArray","week","weekArray","i","push","forEach","length","day","getDay","indexOf","firstWeek","outsideDate","unshift","lastWeek","lastExtraWeek","lastDay","extraWeek","j","newDate","setHours","node","outsideClassName","defaultClassNames","outside","dayQuery","replace","outsideDayQuery","selector","querySelectorAll","nodeList","Array","prototype","slice","call","obj","prop","Object","hasOwnProperty"],"mappings":"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","file":"Helpers.js","sourcesContent":["import { clone } from './DateUtils';\nimport { getFirstDayOfWeek } from './LocaleUtils';\nimport defaultClassNames from './classNames';\n\nexport function cancelEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nexport function getFirstDayOfMonth(d) {\n return new Date(d.getFullYear(), d.getMonth(), 1, 12);\n}\n\nexport function getDaysInMonth(d) {\n const resultDate = getFirstDayOfMonth(d);\n\n resultDate.setMonth(resultDate.getMonth() + 1);\n resultDate.setDate(resultDate.getDate() - 1);\n\n return resultDate.getDate();\n}\n\nexport function getModifiersFromProps(props) {\n const modifiers = { ...props.modifiers };\n if (props.selectedDays) {\n modifiers[props.classNames.selected] = props.selectedDays;\n }\n if (props.disabledDays) {\n modifiers[props.classNames.disabled] = props.disabledDays;\n }\n return modifiers;\n}\n\nexport function getFirstDayOfWeekFromProps(props) {\n const { firstDayOfWeek, locale = 'en', localeUtils = {} } = props;\n if (!isNaN(firstDayOfWeek)) {\n return firstDayOfWeek;\n }\n if (localeUtils.getFirstDayOfWeek) {\n return localeUtils.getFirstDayOfWeek(locale);\n }\n return 0;\n}\n\nexport function isRangeOfDates(value) {\n return !!(value && value.from && value.to);\n}\n\nexport function getMonthsDiff(d1, d2) {\n return (\n d2.getMonth() - d1.getMonth() + 12 * (d2.getFullYear() - d1.getFullYear())\n );\n}\n\nexport function getWeekArray(\n d,\n firstDayOfWeek = getFirstDayOfWeek(),\n fixedWeeks\n) {\n const daysInMonth = getDaysInMonth(d);\n const dayArray = [];\n\n let week = [];\n const weekArray = [];\n\n for (let i = 1; i <= daysInMonth; i += 1) {\n dayArray.push(new Date(d.getFullYear(), d.getMonth(), i, 12));\n }\n\n dayArray.forEach(day => {\n if (week.length > 0 && day.getDay() === firstDayOfWeek) {\n weekArray.push(week);\n week = [];\n }\n week.push(day);\n if (dayArray.indexOf(day) === dayArray.length - 1) {\n weekArray.push(week);\n }\n });\n\n // unshift days to start the first week\n const firstWeek = weekArray[0];\n for (let i = 7 - firstWeek.length; i > 0; i -= 1) {\n const outsideDate = clone(firstWeek[0]);\n outsideDate.setDate(firstWeek[0].getDate() - 1);\n firstWeek.unshift(outsideDate);\n }\n\n // push days until the end of the last week\n const lastWeek = weekArray[weekArray.length - 1];\n for (let i = lastWeek.length; i < 7; i += 1) {\n const outsideDate = clone(lastWeek[lastWeek.length - 1]);\n outsideDate.setDate(lastWeek[lastWeek.length - 1].getDate() + 1);\n lastWeek.push(outsideDate);\n }\n\n // add extra weeks to reach 6 weeks\n if (fixedWeeks && weekArray.length < 6) {\n let lastExtraWeek;\n\n for (let i = weekArray.length; i < 6; i += 1) {\n lastExtraWeek = weekArray[weekArray.length - 1];\n const lastDay = lastExtraWeek[lastExtraWeek.length - 1];\n const extraWeek = [];\n\n for (let j = 0; j < 7; j += 1) {\n const outsideDate = clone(lastDay);\n outsideDate.setDate(lastDay.getDate() + j + 1);\n extraWeek.push(outsideDate);\n }\n\n weekArray.push(extraWeek);\n }\n }\n\n return weekArray;\n}\n\nexport function startOfMonth(d) {\n const newDate = clone(d);\n newDate.setDate(1);\n newDate.setHours(12, 0, 0, 0); // always set noon to avoid time zone issues\n return newDate;\n}\n\nexport function getDayNodes(node, classNames) {\n let outsideClassName;\n if (classNames === defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${classNames.day}--${classNames.outside}`;\n } else {\n outsideClassName = `${classNames.outside}`;\n }\n const dayQuery = classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return node.querySelectorAll(selector);\n}\n\nexport function nodeListToArray(nodeList) {\n return Array.prototype.slice.call(nodeList, 0);\n}\n\nexport function hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"]}
package/lib/src/Month.js CHANGED
@@ -180,7 +180,7 @@ var Month = function (_Component) {
180
180
  'div',
181
181
  {
182
182
  className: classNames.weekNumber,
183
- tabIndex: 0,
183
+ tabIndex: onWeekClick ? 0 : -1,
184
184
  role: 'gridcell',
185
185
  onClick: onWeekClick ? function (e) {
186
186
  return onWeekClick(weekNumber, week, e);
@@ -202,14 +202,14 @@ var Month = function (_Component) {
202
202
  return Month;
203
203
  }(_react.Component);
204
204
 
205
- exports.default = Month;
206
- Month.propTypes = process.env.NODE_ENV !== "production" ? {
205
+ Month.propTypes = {
207
206
  classNames: _propTypes2.default.shape({
208
207
  body: _propTypes2.default.string.isRequired,
209
208
  month: _propTypes2.default.string.isRequired,
210
209
  outside: _propTypes2.default.string.isRequired,
211
210
  today: _propTypes2.default.string.isRequired,
212
- week: _propTypes2.default.string.isRequired
211
+ week: _propTypes2.default.string.isRequired,
212
+ weekNumber: _propTypes2.default.string.isRequired
213
213
  }).isRequired,
214
214
  tabIndex: _propTypes2.default.number,
215
215
 
@@ -247,5 +247,6 @@ Month.propTypes = process.env.NODE_ENV !== "production" ? {
247
247
  onDayTouchEnd: _propTypes2.default.func,
248
248
  onDayTouchStart: _propTypes2.default.func,
249
249
  onWeekClick: _propTypes2.default.func
250
- } : {};
250
+ };
251
+ exports.default = Month;
251
252
  //# sourceMappingURL=Month.js.map