@hipay/hipay-material-ui 2.0.0-beta.36 → 2.0.0-beta.37
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/HiAppBar/HiAppBar.js +0 -2
- package/HiCell/CellAddress.js +140 -0
- package/HiCell/CellDate.js +140 -0
- package/HiCell/CellIcon.js +122 -0
- package/HiCell/CellImage.js +132 -0
- package/HiCell/CellNumeric.js +122 -0
- package/HiCell/CellPinToAction.js +92 -0
- package/HiCell/CellRate.js +184 -0
- package/HiCell/CellSentinel.js +179 -0
- package/HiCell/CellText.js +250 -0
- package/HiCell/index.js +71 -0
- package/HiCheckbox/HiCheckbox.js +2 -2
- package/HiDatePicker/Caption.js +0 -1
- package/HiDatePicker/HiDatePicker.js +1 -1
- package/HiDatePicker/HiDateRangePicker.js +756 -0
- package/HiDatePicker/HiDateRangeSelector.js +495 -0
- package/HiDatePicker/ListPicker.js +0 -1
- package/HiDatePicker/ListPicker.spec.js +1 -2
- package/HiDatePicker/NavBar.js +2 -2
- package/HiDatePicker/NavBar.spec.js +4 -5
- package/HiDatePicker/Overlays/CustomOverlayLayout.js +0 -1
- package/HiDatePicker/Overlays/MonthPickerOverlay.js +0 -1
- package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -1
- package/HiDatePicker/Overlays/Overlay.js +0 -1
- package/HiDatePicker/Overlays/Overlay.spec.js +0 -5
- package/HiDatePicker/Overlays/TimePickerOverlay.js +0 -1
- package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -1
- package/HiDatePicker/Overlays/YearPickerOverlay.js +0 -1
- package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -1
- package/HiDatePicker/Weekday.js +0 -1
- package/HiDatePicker/stylesheet.js +7 -3
- package/HiForm/HiFormControl.js +23 -3
- package/HiForm/HiInput.js +2 -2
- package/HiSelect/HiSelect.js +1 -1
- package/HiSelect/HiSuggestSelect.js +8 -8
- package/HiSelectableList/HiSelectableList.js +3 -1
- package/HiSelectableList/HiSelectableListItem.js +14 -11
- package/es/HiAppBar/HiAppBar.js +0 -2
- package/es/HiCell/CellAddress.js +97 -0
- package/es/HiCell/CellDate.js +94 -0
- package/es/HiCell/CellIcon.js +83 -0
- package/es/HiCell/CellImage.js +91 -0
- package/es/HiCell/CellNumeric.js +80 -0
- package/es/HiCell/CellPinToAction.js +53 -0
- package/es/HiCell/CellRate.js +142 -0
- package/es/HiCell/CellSentinel.js +140 -0
- package/es/HiCell/CellText.js +198 -0
- package/es/HiCell/index.js +8 -0
- package/es/HiCheckbox/HiCheckbox.js +2 -2
- package/es/HiDatePicker/Caption.js +0 -1
- package/es/HiDatePicker/HiDatePicker.js +1 -1
- package/es/HiDatePicker/HiDateRangePicker.js +661 -0
- package/es/HiDatePicker/HiDateRangeSelector.js +432 -0
- package/es/HiDatePicker/ListPicker.js +0 -1
- package/es/HiDatePicker/ListPicker.spec.js +1 -2
- package/es/HiDatePicker/NavBar.js +2 -2
- package/es/HiDatePicker/NavBar.spec.js +4 -5
- package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +0 -1
- package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +0 -1
- package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -1
- package/es/HiDatePicker/Overlays/Overlay.js +0 -1
- package/es/HiDatePicker/Overlays/Overlay.spec.js +0 -3
- package/es/HiDatePicker/Overlays/TimePickerOverlay.js +0 -1
- package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -1
- package/es/HiDatePicker/Overlays/YearPickerOverlay.js +0 -1
- package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -1
- package/es/HiDatePicker/Overlays/index.js +0 -1
- package/es/HiDatePicker/Weekday.js +0 -1
- package/es/HiDatePicker/stylesheet.js +7 -3
- package/es/HiForm/HiFormControl.js +22 -3
- package/es/HiForm/HiInput.js +2 -2
- package/es/HiSelect/HiSelect.js +1 -1
- package/es/HiSelect/HiSuggestSelect.js +8 -8
- package/es/HiSelectableList/HiSelectableList.js +3 -1
- package/es/HiSelectableList/HiSelectableListItem.js +14 -11
- package/es/index.js +2 -1
- package/es/styles/createPalette.js +2 -1
- package/es/utils/helpers.js +117 -0
- package/index.es.js +3 -2
- package/index.js +1 -1
- package/package.json +1 -1
- package/styles/createPalette.js +1 -1
- package/umd/hipay-material-ui.development.js +39 -14
- package/umd/hipay-material-ui.production.min.js +2 -2
- 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;
|