@hipay/hipay-material-ui 2.0.0-beta.35 → 2.0.0-beta.37

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. package/HiAppBar/HiAppBar.js +0 -2
  2. package/HiCell/CellAddress.js +140 -0
  3. package/HiCell/CellDate.js +140 -0
  4. package/HiCell/CellIcon.js +122 -0
  5. package/HiCell/CellImage.js +132 -0
  6. package/HiCell/CellNumeric.js +122 -0
  7. package/HiCell/CellPinToAction.js +92 -0
  8. package/HiCell/CellRate.js +184 -0
  9. package/HiCell/CellSentinel.js +179 -0
  10. package/HiCell/CellText.js +250 -0
  11. package/HiCell/index.js +71 -0
  12. package/HiCheckbox/HiCheckbox.js +15 -9
  13. package/HiDatePicker/Caption.js +0 -1
  14. package/HiDatePicker/HiDatePicker.js +1 -1
  15. package/HiDatePicker/HiDateRangePicker.js +756 -0
  16. package/HiDatePicker/HiDateRangeSelector.js +495 -0
  17. package/HiDatePicker/ListPicker.js +0 -1
  18. package/HiDatePicker/ListPicker.spec.js +1 -2
  19. package/HiDatePicker/NavBar.js +2 -2
  20. package/HiDatePicker/NavBar.spec.js +4 -5
  21. package/HiDatePicker/Overlays/CustomOverlayLayout.js +0 -1
  22. package/HiDatePicker/Overlays/MonthPickerOverlay.js +0 -1
  23. package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -1
  24. package/HiDatePicker/Overlays/Overlay.js +0 -1
  25. package/HiDatePicker/Overlays/Overlay.spec.js +0 -5
  26. package/HiDatePicker/Overlays/TimePickerOverlay.js +0 -1
  27. package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -1
  28. package/HiDatePicker/Overlays/YearPickerOverlay.js +0 -1
  29. package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -1
  30. package/HiDatePicker/Weekday.js +0 -1
  31. package/HiDatePicker/stylesheet.js +7 -3
  32. package/HiForm/HiFormControl.js +23 -3
  33. package/HiForm/HiInput.js +2 -2
  34. package/HiIcon/HiIcon.js +7 -23
  35. package/HiSelect/HiSelect.js +1 -1
  36. package/HiSelect/HiSuggestSelect.js +8 -8
  37. package/HiSelectableList/HiSelectableList.js +3 -1
  38. package/HiSelectableList/HiSelectableListItem.js +21 -14
  39. package/es/HiAppBar/HiAppBar.js +0 -2
  40. package/es/HiCell/CellAddress.js +97 -0
  41. package/es/HiCell/CellDate.js +94 -0
  42. package/es/HiCell/CellIcon.js +83 -0
  43. package/es/HiCell/CellImage.js +91 -0
  44. package/es/HiCell/CellNumeric.js +80 -0
  45. package/es/HiCell/CellPinToAction.js +53 -0
  46. package/es/HiCell/CellRate.js +142 -0
  47. package/es/HiCell/CellSentinel.js +140 -0
  48. package/es/HiCell/CellText.js +198 -0
  49. package/es/HiCell/index.js +8 -0
  50. package/es/HiCheckbox/HiCheckbox.js +16 -10
  51. package/es/HiDatePicker/Caption.js +0 -1
  52. package/es/HiDatePicker/HiDatePicker.js +3 -3
  53. package/es/HiDatePicker/HiDateRangePicker.js +661 -0
  54. package/es/HiDatePicker/HiDateRangeSelector.js +432 -0
  55. package/es/HiDatePicker/ListPicker.js +0 -1
  56. package/es/HiDatePicker/ListPicker.spec.js +1 -2
  57. package/es/HiDatePicker/NavBar.js +2 -2
  58. package/es/HiDatePicker/NavBar.spec.js +4 -5
  59. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +0 -1
  60. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +0 -1
  61. package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -1
  62. package/es/HiDatePicker/Overlays/Overlay.js +0 -1
  63. package/es/HiDatePicker/Overlays/Overlay.spec.js +0 -3
  64. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +0 -1
  65. package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -1
  66. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +0 -1
  67. package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -1
  68. package/es/HiDatePicker/Overlays/index.js +0 -1
  69. package/es/HiDatePicker/Weekday.js +0 -1
  70. package/es/HiDatePicker/stylesheet.js +7 -3
  71. package/es/HiForm/HiFormControl.js +22 -3
  72. package/es/HiForm/HiInput.js +2 -2
  73. package/es/HiIcon/HiIcon.js +7 -23
  74. package/es/HiSelect/HiSelect.js +1 -1
  75. package/es/HiSelect/HiSuggestSelect.js +8 -8
  76. package/es/HiSelectableList/HiSelectableList.js +3 -1
  77. package/es/HiSelectableList/HiSelectableListItem.js +21 -14
  78. package/es/index.js +2 -1
  79. package/es/styles/createPalette.js +4 -3
  80. package/es/utils/helpers.js +117 -0
  81. package/index.es.js +3 -2
  82. package/index.js +1 -1
  83. package/package.json +3 -1
  84. package/styles/createPalette.js +3 -3
  85. package/umd/hipay-material-ui.development.js +63 -48
  86. package/umd/hipay-material-ui.production.min.js +2 -2
  87. package/utils/helpers.js +134 -0
@@ -0,0 +1,756 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
+
26
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
27
+
28
+ var _react = _interopRequireDefault(require("react"));
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _moment = _interopRequireDefault(require("react-day-picker/moment"));
33
+
34
+ var _DayPickerInput = _interopRequireDefault(require("react-day-picker/DayPickerInput"));
35
+
36
+ var _classnames = _interopRequireDefault(require("classnames"));
37
+
38
+ var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
39
+
40
+ var _helpers = require("../utils/helpers");
41
+
42
+ var _Caption = _interopRequireDefault(require("./Caption"));
43
+
44
+ var _Overlay = _interopRequireDefault(require("./Overlays/Overlay"));
45
+
46
+ var _TimePickerOverlay = _interopRequireDefault(require("./Overlays/TimePickerOverlay"));
47
+
48
+ var _MonthPickerOverlay = _interopRequireDefault(require("./Overlays/MonthPickerOverlay"));
49
+
50
+ var _YearPickerOverlay = _interopRequireDefault(require("./Overlays/YearPickerOverlay"));
51
+
52
+ var _NavBar = _interopRequireDefault(require("./NavBar"));
53
+
54
+ var _Weekday = _interopRequireDefault(require("./Weekday"));
55
+
56
+ var _HiForm = require("../HiForm");
57
+
58
+ var _stylesheet = _interopRequireDefault(require("./stylesheet"));
59
+
60
+ var HiDateRangePicker =
61
+ /*#__PURE__*/
62
+ function (_React$Component) {
63
+ (0, _inherits2.default)(HiDateRangePicker, _React$Component);
64
+
65
+ function HiDateRangePicker(props) {
66
+ var _this;
67
+
68
+ (0, _classCallCheck2.default)(this, HiDateRangePicker);
69
+ _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiDateRangePicker).call(this));
70
+
71
+ _this.handleInputChange = function (inputName) {
72
+ return function (event) {
73
+ _this.event = event;
74
+
75
+ _this.props.onChange(inputName, event.target.value);
76
+ };
77
+ };
78
+
79
+ _this.handleDayPickerFocus = function (name) {
80
+ return function () {
81
+ _this.setState({
82
+ focusedInput: name
83
+ });
84
+ };
85
+ };
86
+
87
+ _this.handleDayPickerBlur = function (name) {
88
+ return function () {
89
+ _this.setState({
90
+ focusedInput: ''
91
+ });
92
+
93
+ if (_this.props.onBlur) {
94
+ _this.props.onBlur(name);
95
+ }
96
+ };
97
+ };
98
+
99
+ _this.state = {
100
+ fromCurrentMonth: props.from ? props.from : new Date(),
101
+ toCurrentMonth: props.to ? props.to : new Date(),
102
+ focusedInput: ''
103
+ };
104
+ _this.handleReset = _this.handleReset.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
105
+ _this.handleDayChange = _this.handleDayChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
106
+ _this.handleDayChangeFrom = _this.handleDayChangeFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
107
+ _this.handleDayChangeTo = _this.handleDayChangeTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
108
+ _this.handleCurrentMonthChange = _this.handleCurrentMonthChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
109
+ _this.handleCurrentMonthChangeFrom = _this.handleCurrentMonthChangeFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
110
+ _this.handleCurrentMonthChangeTo = _this.handleCurrentMonthChangeTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
111
+ _this.handleTimeChange = _this.handleTimeChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
112
+ _this.handleCalendarClick = _this.handleCalendarClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
113
+ _this.handleCalendarClickFrom = _this.handleCalendarClickFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
114
+ _this.handleCalendarClickTo = _this.handleCalendarClickTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
115
+ _this.handleClockClick = _this.handleClockClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
116
+ _this.handleClockClickFrom = _this.handleClockClickFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
117
+ _this.handleClockClickTo = _this.handleClockClickTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
118
+ _this.handleMonthClick = _this.handleMonthClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
119
+ _this.handleMonthClickFrom = _this.handleMonthClickFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
120
+ _this.handleMonthClickTo = _this.handleMonthClickTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
121
+ _this.handleYearClick = _this.handleYearClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
122
+ _this.handleYearClickFrom = _this.handleYearClickFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
123
+ _this.handleYearClickTo = _this.handleYearClickTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
124
+ _this.handleDayPickerFocus = _this.handleDayPickerFocus.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
125
+ _this.handleDayPickerBlur = _this.handleDayPickerBlur.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
126
+ _this.handleInputChange = _this.handleInputChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
127
+ _this.openPanel = _this.openPanel.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
128
+ _this.renderCaption = _this.renderCaption.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
129
+ _this.renderCaptionFrom = _this.renderCaptionFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
130
+ _this.renderCaptionTo = _this.renderCaptionTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
131
+ _this.renderNavBar = _this.renderNavBar.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
132
+ _this.renderNavBarFrom = _this.renderNavBarFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
133
+ _this.renderNavBarTo = _this.renderNavBarTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
134
+ _this.renderOverlay = _this.renderOverlay.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
135
+ _this.renderOverlayFrom = _this.renderOverlayFrom.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
136
+ _this.renderOverlayTo = _this.renderOverlayTo.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
137
+ _this.renderMonthPickerOverlay = _this.renderMonthPickerOverlay.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
138
+ _this.renderTimePickerOverlay = _this.renderTimePickerOverlay.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
139
+ _this.renderYearPickerOverlay = _this.renderYearPickerOverlay.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
140
+ return _this;
141
+ }
142
+
143
+ (0, _createClass2.default)(HiDateRangePicker, [{
144
+ key: "componentDidUpdate",
145
+ value: function componentDidUpdate(prevProps) {
146
+ var _this2 = this;
147
+
148
+ // Focus From input on enabling
149
+ if (prevProps.disabled === true && this.props.disabled === false) {
150
+ this.timeout = setTimeout(function () {
151
+ if (_this2.fromInput.getInput()) {
152
+ _this2.fromInput.getInput().focus();
153
+ }
154
+ }, 0);
155
+ }
156
+ }
157
+ }, {
158
+ key: "componentWillUnmount",
159
+ value: function componentWillUnmount() {
160
+ clearTimeout(this.timeout);
161
+ }
162
+ }, {
163
+ key: "handleDayChange",
164
+ value: function handleDayChange(name, day, modifiers) {
165
+ var _this3 = this;
166
+
167
+ if (day) {
168
+ // if time disabled, focus TO input
169
+ // else focus current input
170
+ if (!this.props.enableTime) {
171
+ if (day instanceof Date) {
172
+ if (name === 'from' && this.toInput) {
173
+ this.toInput.getInput().focus();
174
+ } else if (name === 'to') {
175
+ if (typeof this.event === 'undefined' || this.event && this.event.type !== 'change') {
176
+ // trigger blur only if user clicks on date into calendar
177
+ // else keep focus to see day selection into calendar
178
+ document.activeElement.blur();
179
+ }
180
+
181
+ delete this.event;
182
+ }
183
+ }
184
+ } else {
185
+ this.timeout = setTimeout(function () {
186
+ if (_this3["".concat(name, "Input")].getInput()) {
187
+ _this3["".concat(name, "Input")].getInput().focus();
188
+ }
189
+ }, 10);
190
+ }
191
+
192
+ if (this.props.onChange) {
193
+ // Keep Time if set
194
+ if (this.props.enableTime) {
195
+ if (this.props[name]) {
196
+ day.setHours(this.props[name].getHours(), this.props[name].getMinutes());
197
+ } else {
198
+ day.setHours(0, 0);
199
+ }
200
+ }
201
+
202
+ this.props.onChange(name, day);
203
+ }
204
+
205
+ if (this.props.enableTime) {
206
+ this.openPanel(name, 'time');
207
+ }
208
+ }
209
+ }
210
+ }, {
211
+ key: "handleDayChangeFrom",
212
+ value: function handleDayChangeFrom(day, modifiers) {
213
+ this.handleDayChange('from', day, modifiers);
214
+ }
215
+ }, {
216
+ key: "handleDayChangeTo",
217
+ value: function handleDayChangeTo(day, modifiers) {
218
+ this.handleDayChange('to', day, modifiers);
219
+ }
220
+ }, {
221
+ key: "handleCurrentMonthChange",
222
+ value: function handleCurrentMonthChange(name, day) {
223
+ var _this$setState;
224
+
225
+ this.setState((_this$setState = {}, (0, _defineProperty2.default)(_this$setState, "".concat(name, "CurrentMonth"), day), (0, _defineProperty2.default)(_this$setState, "".concat(name, "OpenedPanel"), 'calendar'), _this$setState));
226
+ }
227
+ }, {
228
+ key: "handleCurrentMonthChangeFrom",
229
+ value: function handleCurrentMonthChangeFrom(day) {
230
+ this.handleCurrentMonthChange('from', day);
231
+ }
232
+ }, {
233
+ key: "handleCurrentMonthChangeTo",
234
+ value: function handleCurrentMonthChangeTo(day) {
235
+ this.handleCurrentMonthChange('to', day);
236
+ }
237
+ }, {
238
+ key: "handleCalendarClick",
239
+ value: function handleCalendarClick(name) {
240
+ this.openPanel(name, 'calendar');
241
+ }
242
+ }, {
243
+ key: "handleCalendarClickFrom",
244
+ value: function handleCalendarClickFrom() {
245
+ this.handleCalendarClick('from');
246
+ }
247
+ }, {
248
+ key: "handleCalendarClickTo",
249
+ value: function handleCalendarClickTo() {
250
+ this.handleCalendarClick('to');
251
+ }
252
+ }, {
253
+ key: "handleClockClick",
254
+ value: function handleClockClick(name) {
255
+ this.openPanel(name, 'time');
256
+ }
257
+ }, {
258
+ key: "handleClockClickFrom",
259
+ value: function handleClockClickFrom() {
260
+ this.handleClockClick('from');
261
+ }
262
+ }, {
263
+ key: "handleClockClickTo",
264
+ value: function handleClockClickTo() {
265
+ this.handleClockClick('to');
266
+ }
267
+ }, {
268
+ key: "handleMonthClick",
269
+ value: function handleMonthClick(name) {
270
+ this.openPanel(name, 'months');
271
+ }
272
+ }, {
273
+ key: "handleMonthClickFrom",
274
+ value: function handleMonthClickFrom() {
275
+ this.handleMonthClick('from');
276
+ }
277
+ }, {
278
+ key: "handleMonthClickTo",
279
+ value: function handleMonthClickTo() {
280
+ this.handleMonthClick('to');
281
+ }
282
+ }, {
283
+ key: "handleYearClick",
284
+ value: function handleYearClick(name) {
285
+ this.openPanel(name, 'years');
286
+ }
287
+ }, {
288
+ key: "handleYearClickFrom",
289
+ value: function handleYearClickFrom() {
290
+ this.handleYearClick('from');
291
+ }
292
+ }, {
293
+ key: "handleYearClickTo",
294
+ value: function handleYearClickTo() {
295
+ this.handleYearClick('to');
296
+ }
297
+ }, {
298
+ key: "handleTimeChange",
299
+ value: function handleTimeChange(name, date, precision) {
300
+ this.props.onChange(name, date);
301
+
302
+ if (name === 'from' && precision === 'minute') {
303
+ this.fromInput.hideDayPicker();
304
+ this.toInput.getInput().focus();
305
+ this.toInput.showDayPicker();
306
+ } else if (name === 'to' && precision === 'minute') {
307
+ this.toInput.hideDayPicker();
308
+ document.activeElement.blur();
309
+ }
310
+ }
311
+ }, {
312
+ key: "handleReset",
313
+ value: function handleReset(name) {
314
+ var _this4 = this;
315
+
316
+ this.handleCurrentMonthChange(name, new Date());
317
+ this.timeout = setTimeout(function () {
318
+ if (_this4.props.onReset) {
319
+ _this4.props.onReset(name);
320
+ }
321
+ }, 0);
322
+ }
323
+ }, {
324
+ key: "openPanel",
325
+ value: function openPanel(name, panel) {
326
+ this.setState((0, _defineProperty2.default)({}, "".concat(name, "OpenedPanel"), panel));
327
+ }
328
+ }, {
329
+ key: "renderCaption",
330
+ value: function renderCaption(name, propsCaption) {
331
+ return _react.default.createElement(_Caption.default, (0, _extends2.default)({
332
+ onMonthClick: this["handleMonthClick".concat((0, _helpers.capitalize)(name))],
333
+ onYearClick: this["handleYearClick".concat((0, _helpers.capitalize)(name))]
334
+ }, propsCaption));
335
+ }
336
+ }, {
337
+ key: "renderCaptionFrom",
338
+ value: function renderCaptionFrom(propsCaption) {
339
+ return this.renderCaption('from', propsCaption);
340
+ }
341
+ }, {
342
+ key: "renderCaptionTo",
343
+ value: function renderCaptionTo(propsCaption) {
344
+ return this.renderCaption('to', propsCaption);
345
+ }
346
+ }, {
347
+ key: "renderNavBar",
348
+ value: function renderNavBar(name, propsNavBar) {
349
+ return _react.default.createElement(_NavBar.default, (0, _extends2.default)({
350
+ showClockButton: this.props.enableTime,
351
+ onClockClick: this["handleClockClick".concat((0, _helpers.capitalize)(name))]
352
+ }, propsNavBar));
353
+ }
354
+ }, {
355
+ key: "renderNavBarFrom",
356
+ value: function renderNavBarFrom(propsNavBar) {
357
+ return this.renderNavBar('from', propsNavBar);
358
+ }
359
+ }, {
360
+ key: "renderNavBarTo",
361
+ value: function renderNavBarTo(propsNavBar) {
362
+ return this.renderNavBar('to', propsNavBar);
363
+ }
364
+ }, {
365
+ key: "renderOverlay",
366
+ value: function renderOverlay(name, propsOverlay, staticPosition) {
367
+ var rangeOverlayProps = (0, _extends2.default)({}, propsOverlay, {
368
+ side: name,
369
+ staticPosition: staticPosition
370
+ });
371
+
372
+ switch (this.state["".concat(name, "OpenedPanel")]) {
373
+ case 'time':
374
+ return this.renderTimePickerOverlay(name, rangeOverlayProps);
375
+
376
+ case 'months':
377
+ return this.renderMonthPickerOverlay(name, rangeOverlayProps);
378
+
379
+ case 'years':
380
+ return this.renderYearPickerOverlay(name, rangeOverlayProps);
381
+
382
+ case 'calendar':
383
+ default:
384
+ return _react.default.createElement(_Overlay.default, rangeOverlayProps);
385
+ }
386
+ }
387
+ }, {
388
+ key: "renderOverlayFrom",
389
+ value: function renderOverlayFrom(propsOverlay) {
390
+ return this.renderOverlay('from', propsOverlay, this.props.staticPosition);
391
+ }
392
+ }, {
393
+ key: "renderOverlayTo",
394
+ value: function renderOverlayTo(propsOverlay) {
395
+ return this.renderOverlay('to', propsOverlay, this.props.staticPosition);
396
+ }
397
+ }, {
398
+ key: "renderMonthPickerOverlay",
399
+ value: function renderMonthPickerOverlay(name, propsOverlay) {
400
+ var monthPickerProps = {
401
+ value: this.state["".concat(name, "CurrentMonth")],
402
+ onChange: this["handleCurrentMonthChange".concat((0, _helpers.capitalize)(name))]
403
+ };
404
+ return _react.default.createElement(_MonthPickerOverlay.default, (0, _extends2.default)({
405
+ key: "".concat(name, "-month-picker-overlay")
406
+ }, monthPickerProps, propsOverlay));
407
+ }
408
+ }, {
409
+ key: "renderTimePickerOverlay",
410
+ value: function renderTimePickerOverlay(name, propsOverlay) {
411
+ var _this5 = this;
412
+
413
+ var timePickerProps = {
414
+ value: this.props[name],
415
+ onChange: function onChange(date, precision) {
416
+ return _this5.handleTimeChange(name, date, precision);
417
+ },
418
+ onCalendarClick: this["handleCalendarClick".concat((0, _helpers.capitalize)(name))]
419
+ };
420
+ return _react.default.createElement(_TimePickerOverlay.default, (0, _extends2.default)({
421
+ key: "".concat(name, "-time-picker-overlay")
422
+ }, timePickerProps, propsOverlay));
423
+ }
424
+ }, {
425
+ key: "renderYearPickerOverlay",
426
+ value: function renderYearPickerOverlay(name, propsOverlay) {
427
+ var yearPickerProps = {
428
+ value: this.state["".concat(name, "CurrentMonth")],
429
+ onChange: this["handleCurrentMonthChange".concat((0, _helpers.capitalize)(name))],
430
+ disabledFutureDays: this.props.disableFutureDays,
431
+ disabledPastDays: this.props.disablePastDays
432
+ };
433
+ return _react.default.createElement(_YearPickerOverlay.default, (0, _extends2.default)({
434
+ key: "".concat(name, "-year-picker-overlay")
435
+ }, yearPickerProps, propsOverlay));
436
+ }
437
+ }, {
438
+ key: "render",
439
+ value: function render() {
440
+ var _this6 = this,
441
+ _classNames;
442
+
443
+ var _this$props = this.props,
444
+ classes = _this$props.classes,
445
+ disabledDays = _this$props.disabledDays,
446
+ disablePastDays = _this$props.disablePastDays,
447
+ disableFutureDays = _this$props.disableFutureDays,
448
+ enableTime = _this$props.enableTime,
449
+ labelFrom = _this$props.labelFrom,
450
+ labelTo = _this$props.labelTo,
451
+ locale = _this$props.locale,
452
+ format = _this$props.format,
453
+ from = _this$props.from,
454
+ minimumDate = _this$props.minimumDate,
455
+ onReset = _this$props.onReset,
456
+ to = _this$props.to,
457
+ translations = _this$props.translations,
458
+ id = _this$props.id,
459
+ staticPosition = _this$props.staticPosition,
460
+ props = (0, _objectWithoutProperties2.default)(_this$props, ["classes", "disabledDays", "disablePastDays", "disableFutureDays", "enableTime", "labelFrom", "labelTo", "locale", "format", "from", "minimumDate", "onReset", "to", "translations", "id", "staticPosition"]);
461
+ var _this$state = this.state,
462
+ fromCurrentMonth = _this$state.fromCurrentMonth,
463
+ toCurrentMonth = _this$state.toCurrentMonth;
464
+ var now = new Date();
465
+ var modifiers = {
466
+ start: from,
467
+ end: to
468
+ };
469
+ var modifiersStyles = {
470
+ start: {
471
+ borderTopLeftRadius: '50%',
472
+ borderBottomLeftRadius: '50%'
473
+ },
474
+ end: {
475
+ borderTopRightRadius: '50%',
476
+ borderBottomRightRadius: '50%'
477
+ }
478
+ };
479
+ var selectedDays = [];
480
+ var selected = {};
481
+
482
+ if (from instanceof Date) {
483
+ selectedDays.push(from);
484
+ selected.from = from;
485
+ }
486
+
487
+ if (to instanceof Date) {
488
+ selectedDays.push(to);
489
+ selected.to = to;
490
+ }
491
+
492
+ if (Object.values(selected).length > 0) {
493
+ selectedDays.push(selected);
494
+ }
495
+
496
+ var dayPickerProps = (0, _extends2.default)({
497
+ classNames: classes,
498
+ disabledDays: disabledDays,
499
+ firstDayOfWeek: 1,
500
+ fromMonth: minimumDate,
501
+ locale: locale,
502
+ modifiers: modifiers,
503
+ modifiersStyles: modifiersStyles,
504
+ // Both are required ?
505
+ selectedDays: selectedDays,
506
+ todayButton: translations.today,
507
+ weekdayElement: _Weekday.default
508
+ }, props); // Build Props for the From DatePicker
509
+ // Disable days after 'to' date if define
510
+
511
+ var after;
512
+
513
+ if (to instanceof Date && disableFutureDays) {
514
+ after = to < now ? now : to;
515
+ } else if (to instanceof Date) {
516
+ after = to;
517
+ } else if (disableFutureDays) {
518
+ after = now;
519
+ }
520
+
521
+ var disabledDaysFrom = (0, _extends2.default)({}, disablePastDays && {
522
+ before: now
523
+ }, (to || disableFutureDays) && {
524
+ after: after
525
+ }, disabledDays);
526
+ var fromDayPickerProps = (0, _extends2.default)({}, dayPickerProps, {
527
+ onTodayButtonClick: this.handleCurrentMonthChangeFrom,
528
+ NavBarElement: this.renderNavBarFrom,
529
+ captionElement: this.renderCaptionFrom,
530
+ disabledDays: disabledDaysFrom,
531
+ month: fromCurrentMonth,
532
+ modifiers: (0, _extends2.default)({}, modifiers, {
533
+ disabled: disabledDaysFrom
534
+ })
535
+ }); // Build Props for the To DatePicker
536
+ // Disable days before 'from' date if define
537
+
538
+ var before;
539
+
540
+ if (from instanceof Date && disablePastDays) {
541
+ before = from < now ? now : from;
542
+ } else if (from instanceof Date) {
543
+ before = from;
544
+ } else if (disablePastDays) {
545
+ before = now;
546
+ }
547
+
548
+ var disabledDaysTo = (0, _extends2.default)({}, (from || disablePastDays) && {
549
+ before: before
550
+ }, disableFutureDays && {
551
+ after: now
552
+ }, disabledDays);
553
+ var toDayPickerProps = (0, _extends2.default)({}, dayPickerProps, {
554
+ onTodayButtonClick: this.handleCurrentMonthChangeTo,
555
+ NavBarElement: this.renderNavBarTo,
556
+ captionElement: this.renderCaptionTo,
557
+ disabledDays: disabledDaysTo,
558
+ month: toCurrentMonth,
559
+ modifiers: (0, _extends2.default)({}, modifiers, {
560
+ disabled: disabledDaysTo
561
+ })
562
+ }); // From & To InputProps
563
+
564
+ var fromInputProps = (0, _extends2.default)({}, onReset && {
565
+ onReset: function onReset() {
566
+ return _this6.handleReset('from');
567
+ }
568
+ }, props, labelFrom && {
569
+ label: labelFrom
570
+ }, {
571
+ id: "".concat(id, "-from"),
572
+ onChange: this.handleInputChange('from')
573
+ });
574
+ var toInputProps = (0, _extends2.default)({}, onReset && {
575
+ onReset: function onReset() {
576
+ return _this6.handleReset('to');
577
+ }
578
+ }, props, labelTo && {
579
+ label: labelTo
580
+ }, {
581
+ id: "".concat(id, "-to"),
582
+ onChange: this.handleInputChange('to')
583
+ });
584
+ var toClass = (0, _classnames.default)(classes.toInput, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.absolute, staticPosition === true && this.state.focusedInput === 'from'), (0, _defineProperty2.default)(_classNames, classes.right4, staticPosition === true && this.state.focusedInput === 'from'), _classNames));
585
+ return _react.default.createElement("div", {
586
+ className: (0, _classnames.default)(classes.root, classes.rangePickerContainer)
587
+ }, _react.default.createElement("div", {
588
+ className: classes.fromInput,
589
+ onFocus: this.handleDayPickerFocus('from'),
590
+ onBlur: this.handleDayPickerBlur('from')
591
+ }, _react.default.createElement("div", null, _react.default.createElement(_DayPickerInput.default, {
592
+ ref: function ref(el) {
593
+ _this6.fromInput = el;
594
+ },
595
+ value: from,
596
+ hideOnDayClick: false,
597
+ overlayComponent: this.renderOverlayFrom,
598
+ dayPickerProps: fromDayPickerProps,
599
+ component: _HiForm.HiTextField,
600
+ inputProps: fromInputProps,
601
+ format: enableTime ? "".concat(format, " HH:mm") : format,
602
+ formatDate: _moment.default.formatDate,
603
+ parseDate: _moment.default.parseDate,
604
+ onDayChange: this.handleDayChangeFrom,
605
+ placeholder: ''
606
+ }))), _react.default.createElement("div", {
607
+ className: toClass,
608
+ onFocus: this.handleDayPickerFocus('to'),
609
+ onBlur: this.handleDayPickerBlur('to')
610
+ }, _react.default.createElement(_DayPickerInput.default, {
611
+ ref: function ref(el) {
612
+ _this6.toInput = el;
613
+ },
614
+ value: to,
615
+ hideOnDayClick: false,
616
+ overlayComponent: this.renderOverlayTo,
617
+ dayPickerProps: toDayPickerProps,
618
+ component: _HiForm.HiTextField,
619
+ inputProps: toInputProps,
620
+ format: enableTime ? "".concat(format, " HH:mm") : format,
621
+ formatDate: _moment.default.formatDate,
622
+ parseDate: _moment.default.parseDate,
623
+ onDayChange: this.handleDayChangeTo,
624
+ placeholder: ''
625
+ })));
626
+ }
627
+ }]);
628
+ return HiDateRangePicker;
629
+ }(_react.default.Component);
630
+
631
+ HiDateRangePicker.defaultProps = {
632
+ disabledDays: [],
633
+ disablePastDays: false,
634
+ disableFutureDays: false,
635
+ staticPosition: false,
636
+ enableTime: false,
637
+ format: 'YYYY-DD-MM',
638
+ labelFrom: 'Start',
639
+ labelTo: 'End',
640
+ locale: 'fr-FR',
641
+ minimumDate: new Date(2013, 4, 1),
642
+ // by default 1 May 2013
643
+ translations: {
644
+ today: 'today',
645
+ hour: 'Hour',
646
+ minute: 'Minute',
647
+ month: 'Month',
648
+ year: 'Year'
649
+ }
650
+ };
651
+ HiDateRangePicker.propTypes = process.env.NODE_ENV !== "production" ? {
652
+ /**
653
+ * Useful to extend the style applied to components.
654
+ */
655
+ classes: _propTypes.default.object,
656
+
657
+ /**
658
+ * Inactif
659
+ */
660
+ disabled: _propTypes.default.bool,
661
+
662
+ /**
663
+ * Définie les jours non sélectionnables
664
+ */
665
+ disabledDays: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object, _propTypes.default.instanceOf(Date)]),
666
+
667
+ /**
668
+ * Uniquement la sélection de date antérieures à aujourd'hui (inclu)
669
+ */
670
+ disableFutureDays: _propTypes.default.bool,
671
+
672
+ /**
673
+ * Uniquement la sélection de date postérieures à aujourd'hui (inclu)
674
+ */
675
+ disablePastDays: _propTypes.default.bool,
676
+
677
+ /**
678
+ * Ajoute la gestion de l'heure
679
+ */
680
+ enableTime: _propTypes.default.bool,
681
+
682
+ /**
683
+ * Format des dates affichées
684
+ */
685
+ format: _propTypes.default.string,
686
+
687
+ /**
688
+ * Date de début sélectionnée
689
+ */
690
+ from: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.string]),
691
+
692
+ /**
693
+ * Utilisé pour construire les ids des champs from et to en les suffixant "-from" et "-to"
694
+ */
695
+ id: _propTypes.default.string.isRequired,
696
+
697
+ /**
698
+ * Label du champs de début
699
+ */
700
+ labelFrom: _propTypes.default.string,
701
+
702
+ /**
703
+ * Label du champs de fin
704
+ */
705
+ labelTo: _propTypes.default.string,
706
+
707
+ /**
708
+ * Locale utilisée
709
+ */
710
+ locale: _propTypes.default.string,
711
+
712
+ /**
713
+ * Date minimale sélectionnable
714
+ */
715
+ minimumDate: _propTypes.default.instanceOf(Date),
716
+
717
+ /**
718
+ * Callback à la sélection d'une date
719
+ * @param {string} nom de l'input
720
+ */
721
+ onBlur: _propTypes.default.func,
722
+
723
+ /**
724
+ * Callback à la sélection d'une date
725
+ * @param {string} nom du champs
726
+ * @param {string} nouvelle valeur du champs
727
+ */
728
+ onChange: _propTypes.default.func,
729
+
730
+ /**
731
+ * Callback au reset de l'input
732
+ * @param {string} nom du champs réinitialisé
733
+ */
734
+ onReset: _propTypes.default.func,
735
+
736
+ /**
737
+ * Si true, le calendrier sera dans une div static plutot que dans une popper absolute
738
+ */
739
+ staticPosition: _propTypes.default.bool,
740
+
741
+ /**
742
+ * Date de fin sélectionnée
743
+ */
744
+ to: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.string]),
745
+
746
+ /**
747
+ * Traductions
748
+ */
749
+ translations: _propTypes.default.object
750
+ } : {};
751
+
752
+ var _default = (0, _withStyles.default)(_stylesheet.default, {
753
+ name: 'HmuiHiDateRangePicker'
754
+ })(HiDateRangePicker);
755
+
756
+ exports.default = _default;