@hipay/hipay-material-ui 2.0.0-beta.59 → 2.0.0-beta.60
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +58 -0
- package/HiCell/CellNumeric.js +1 -1
- package/HiDatePicker/HiDatePicker.js +11 -2
- package/HiDatePicker/HiDateRangePicker.js +49 -8
- package/HiDatePicker/HiDateRangeSelector.js +39 -30
- package/HiDatePicker/Overlays/YearPickerOverlay.js +8 -3
- package/HiForm/HiFormControl.js +26 -11
- package/HiForm/HiFormLabel.js +3 -1
- package/HiForm/HiInput.js +20 -1
- package/HiForm/HiUpload.js +290 -45
- package/HiForm/HiUploadField.js +19 -51
- package/HiForm/HiUploadInput.js +18 -7
- package/HiSelectNew/HiDynamicSelect.js +3 -3
- package/HiSelectNew/HiNestedSelect.js +9 -9
- package/HiSelectNew/HiNestedSelectContent.js +9 -9
- package/HiSelectNew/HiSelect.js +22 -23
- package/HiSelectNew/HiSelectContent.js +7 -7
- package/HiSelectableList/HiSelectableListItem.js +3 -7
- package/README.md +1 -1
- package/es/HiCell/CellNumeric.js +1 -1
- package/es/HiDatePicker/HiDatePicker.js +11 -2
- package/es/HiDatePicker/HiDateRangePicker.js +42 -8
- package/es/HiDatePicker/HiDateRangeSelector.js +38 -27
- package/es/HiDatePicker/Overlays/YearPickerOverlay.js +8 -3
- package/es/HiForm/HiFormControl.js +27 -11
- package/es/HiForm/HiFormLabel.js +3 -1
- package/es/HiForm/HiInput.js +19 -1
- package/es/HiForm/HiUpload.js +276 -35
- package/es/HiForm/HiUploadField.js +19 -43
- package/es/HiForm/HiUploadInput.js +16 -7
- package/es/HiSelectNew/HiSelect.js +15 -16
- package/es/HiSelectableList/HiSelectableListItem.js +3 -7
- package/es/utils/helpers.js +6 -5
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +3 -2
- package/umd/hipay-material-ui.development.js +29594 -21713
- package/umd/hipay-material-ui.production.min.js +2 -2
- package/utils/helpers.js +6 -4
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,61 @@
|
|
1
|
+
# [2.0.0-beta.60](https://gitlab.hipay.org/backend/hipay-material-ui/compare/0.0.1...2.0.0-beta.60) (2019-01-14)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* **eslint:** remove eslint warrnings in components (ignore test files) ([d236c62](https://gitlab.hipay.org/backend/hipay-material-ui/commit/d236c62))
|
7
|
+
* **HiBreadcrumb:** clean eslint warnings ([6db12fb](https://gitlab.hipay.org/backend/hipay-material-ui/commit/6db12fb))
|
8
|
+
* **HiDatePicker:** add static positions for custom overlays ([c3edf24](https://gitlab.hipay.org/backend/hipay-material-ui/commit/c3edf24))
|
9
|
+
* **HiExpansionPanel:** Fix props type a requirement ([cbc3b48](https://gitlab.hipay.org/backend/hipay-material-ui/commit/cbc3b48))
|
10
|
+
* **HiInput:** handle focus state through prop when needed to override default comportment ([9a133cc](https://gitlab.hipay.org/backend/hipay-material-ui/commit/9a133cc))
|
11
|
+
* **HiKpiNotice:** eslint clean warnings ([11b5552](https://gitlab.hipay.org/backend/hipay-material-ui/commit/11b5552))
|
12
|
+
* **HiSelect:** Fix build of HiSelectContent ([4b87f78](https://gitlab.hipay.org/backend/hipay-material-ui/commit/4b87f78))
|
13
|
+
* **HiSelect:** focus on undefined item ([2d084e6](https://gitlab.hipay.org/backend/hipay-material-ui/commit/2d084e6))
|
14
|
+
* **HiSelect:** handle staticPosition & width properly for HiDateRangeSelector usage ([7b19ffb](https://gitlab.hipay.org/backend/hipay-material-ui/commit/7b19ffb))
|
15
|
+
* **HiSelectableListItem:** disabled item checkbox color ([9f10552](https://gitlab.hipay.org/backend/hipay-material-ui/commit/9f10552))
|
16
|
+
* **HiSelectableListItem:** remove item width ([a913945](https://gitlab.hipay.org/backend/hipay-material-ui/commit/a913945))
|
17
|
+
* **HiSelectContent:** Remove compute of input value ([b86db83](https://gitlab.hipay.org/backend/hipay-material-ui/commit/b86db83))
|
18
|
+
* **HiSlider:** eslint clean warnings ([08964b1](https://gitlab.hipay.org/backend/hipay-material-ui/commit/08964b1))
|
19
|
+
* **HiUploadField:** clean eslint warnings ([c76aaf1](https://gitlab.hipay.org/backend/hipay-material-ui/commit/c76aaf1))
|
20
|
+
* **migration:** fix contrast threshold ... ([6fb3b18](https://gitlab.hipay.org/backend/hipay-material-ui/commit/6fb3b18))
|
21
|
+
* **package:** add cross-env ([7098fd6](https://gitlab.hipay.org/backend/hipay-material-ui/commit/7098fd6))
|
22
|
+
|
23
|
+
|
24
|
+
### Features
|
25
|
+
|
26
|
+
* **CellImage:** Handle fallbackImage ([254799d](https://gitlab.hipay.org/backend/hipay-material-ui/commit/254799d))
|
27
|
+
* **CellSentinel:** Uniformize cell api with front CellSentinel ([4e2975b](https://gitlab.hipay.org/backend/hipay-material-ui/commit/4e2975b))
|
28
|
+
* **CellSentinel:** Update CellSentinel to the new way (split each result in different column) ([efe2711](https://gitlab.hipay.org/backend/hipay-material-ui/commit/efe2711))
|
29
|
+
* **CellSentinelScore:** Add CellSentinelScore ([2fff04d](https://gitlab.hipay.org/backend/hipay-material-ui/commit/2fff04d))
|
30
|
+
* **CellText:** Handle active prop in CellText & column views in HiTable ([4366e60](https://gitlab.hipay.org/backend/hipay-material-ui/commit/4366e60))
|
31
|
+
* **HiCells:** Add simple cells types (Address, Date, Icon, Image, Numeric, PinToAction, Rate, Senti ([f688517](https://gitlab.hipay.org/backend/hipay-material-ui/commit/f688517))
|
32
|
+
* **HiDatePicker:** BREAKING CHANGE - add local prop to handle calendar translations ([b1b3743](https://gitlab.hipay.org/backend/hipay-material-ui/commit/b1b3743))
|
33
|
+
* **HiIcon:** Add mdi-material-ui as available icons via 'mdi_' prefix ([1091d6d](https://gitlab.hipay.org/backend/hipay-material-ui/commit/1091d6d))
|
34
|
+
* **HiMap:** unregister fetch on unmount ([0afa931](https://gitlab.hipay.org/backend/hipay-material-ui/commit/0afa931))
|
35
|
+
* **HiSelect:** Add (NEW) HiSelect, HiNestedSelect, HiDynamicSelect ([4c6447e](https://gitlab.hipay.org/backend/hipay-material-ui/commit/4c6447e))
|
36
|
+
* **HiSelect:** Reset search input on blur & on close ([d9af584](https://gitlab.hipay.org/backend/hipay-material-ui/commit/d9af584))
|
37
|
+
* **HiSelectableList:** Add sort props to sort item list on label ([f412ddc](https://gitlab.hipay.org/backend/hipay-material-ui/commit/f412ddc))
|
38
|
+
* **HiSelectContent:** Add new HiSelectContent & HiNestedSelectContent ([215ad8f](https://gitlab.hipay.org/backend/hipay-material-ui/commit/215ad8f))
|
39
|
+
* **HiSelectContent:** export utils functions ([7c41d87](https://gitlab.hipay.org/backend/hipay-material-ui/commit/7c41d87))
|
40
|
+
* **HiUploadField:** rename component HiUploadField ([593f77e](https://gitlab.hipay.org/backend/hipay-material-ui/commit/593f77e))
|
41
|
+
* **notice:** Création notice KPI ([bba3f89](https://gitlab.hipay.org/backend/hipay-material-ui/commit/bba3f89))
|
42
|
+
|
43
|
+
|
44
|
+
### Performance Improvements
|
45
|
+
|
46
|
+
* **PureFunction:** Use pure & functional components ([220c686](https://gitlab.hipay.org/backend/hipay-material-ui/commit/220c686))
|
47
|
+
|
48
|
+
|
49
|
+
### BREAKING CHANGES
|
50
|
+
|
51
|
+
* **HiDatePicker:** Required "local" props (use polyglot, p.currentLocal)
|
52
|
+
* **HiUploadField:** Components names changes
|
53
|
+
* **HiCells:** Remove CellCountry, CellThirdParty, CellStatus & CellAccount (use generic type
|
54
|
+
CellImage & CellText)
|
55
|
+
* **HiSelect:** HiSelect API change, use HiNestedSelect or HiDynamicSelect relative to situation
|
56
|
+
|
57
|
+
|
58
|
+
|
1
59
|
<a name="2.0.0-beta.59"></a>
|
2
60
|
# [2.0.0-beta.59](https://gitlab.hipay.org/backend/hipay-material-ui/compare/0.0.1...2.0.0-beta.59) (2018-12-27)
|
3
61
|
|
package/HiCell/CellNumeric.js
CHANGED
@@ -63,7 +63,7 @@ function (_React$PureComponent) {
|
|
63
63
|
var title = '';
|
64
64
|
|
65
65
|
if (currency) {
|
66
|
-
displayedValue = (0, _helpers.formatCurrencyAmount)(value, view, locale, currency);
|
66
|
+
displayedValue = (0, _helpers.formatCurrencyAmount)(value, view, locale, currency, precision);
|
67
67
|
title = (0, _helpers.formatCurrencyAmount)(value, 'l', locale, currency);
|
68
68
|
} else {
|
69
69
|
displayedValue = (0, _helpers.formatNumber)(value, view, locale, precision);
|
@@ -232,7 +232,8 @@ function (_React$Component) {
|
|
232
232
|
value: function renderYearPickerOverlay(propsOverlay) {
|
233
233
|
var yearPickerProps = {
|
234
234
|
value: this.state.currentMonth,
|
235
|
-
onChange: this.handleCurrentMonthChange
|
235
|
+
onChange: this.handleCurrentMonthChange,
|
236
|
+
disableFutureDays: this.props.disableFutureDays
|
236
237
|
};
|
237
238
|
return _react.default.createElement(_YearPickerOverlay.default, (0, _extends2.default)({
|
238
239
|
key: 'year-picker-overlay'
|
@@ -299,7 +300,10 @@ function (_React$Component) {
|
|
299
300
|
var inputProps = (0, _extends2.default)({}, onReset && {
|
300
301
|
onReset: this.handleReset
|
301
302
|
}, props, {
|
302
|
-
onChange: this.handleInputChange
|
303
|
+
onChange: this.handleInputChange,
|
304
|
+
HiInputProps: {
|
305
|
+
onSubmit: this.props.onSubmit
|
306
|
+
}
|
303
307
|
});
|
304
308
|
return _react.default.createElement("div", {
|
305
309
|
className: classes.root
|
@@ -397,6 +401,11 @@ HiDatePicker.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
397
401
|
*/
|
398
402
|
onReset: _propTypes.default.func,
|
399
403
|
|
404
|
+
/**
|
405
|
+
* Callback lorsque l'utilisateur tape sur "Entrée"
|
406
|
+
*/
|
407
|
+
onSubmit: _propTypes.default.func,
|
408
|
+
|
400
409
|
/**
|
401
410
|
* Traductions
|
402
411
|
*/
|
@@ -225,6 +225,36 @@ function (_React$Component) {
|
|
225
225
|
});
|
226
226
|
};
|
227
227
|
|
228
|
+
_this.handleKeyDown = function (name) {
|
229
|
+
return function (event) {
|
230
|
+
if (event.key === 'Tab' && !event.shiftKey) {
|
231
|
+
var nodeName = document.activeElement.nodeName;
|
232
|
+
|
233
|
+
if (_this.props[name] && nodeName === 'INPUT' && document.activeElement.nextSibling.children.length > 0) {
|
234
|
+
document.activeElement.nextSibling.focus();
|
235
|
+
} else if (name === 'from') {
|
236
|
+
_this.handleDayPickerBlur('from');
|
237
|
+
|
238
|
+
_this.handleDayPickerFocus('to');
|
239
|
+
|
240
|
+
_this.toInput.handleInputFocus();
|
241
|
+
|
242
|
+
setTimeout(function () {
|
243
|
+
document.getElementById("".concat(_this.props.id, "-to")).focus();
|
244
|
+
}, 1);
|
245
|
+
} else if (name === 'to') {
|
246
|
+
_this.handleDayPickerBlur('to');
|
247
|
+
|
248
|
+
_this.toInput.handleInputBlur(event);
|
249
|
+
|
250
|
+
setTimeout(function () {
|
251
|
+
document.activeElement.blur();
|
252
|
+
}, 1);
|
253
|
+
}
|
254
|
+
}
|
255
|
+
};
|
256
|
+
};
|
257
|
+
|
228
258
|
_this.openPanel = function (panel) {
|
229
259
|
_this.setState({
|
230
260
|
openedPanel: panel
|
@@ -310,7 +340,7 @@ function (_React$Component) {
|
|
310
340
|
var yearPickerProps = {
|
311
341
|
value: _this.state.currentMonth,
|
312
342
|
onChange: _this.handleCurrentMonthChange,
|
313
|
-
|
343
|
+
disableFutureDays: _this.props.disableFutureDays
|
314
344
|
};
|
315
345
|
return _react.default.createElement(_YearPickerOverlay.default, (0, _extends2.default)({
|
316
346
|
key: "".concat(name, "-year-picker-overlay")
|
@@ -452,7 +482,10 @@ function (_React$Component) {
|
|
452
482
|
}, {
|
453
483
|
id: "".concat(id, "-from"),
|
454
484
|
onChange: this.handleInputChange('from'),
|
455
|
-
disabled: disabled
|
485
|
+
disabled: disabled,
|
486
|
+
HiInputProps: {
|
487
|
+
onSubmit: this.props.onSubmit
|
488
|
+
}
|
456
489
|
});
|
457
490
|
var toInputProps = (0, _extends2.default)({}, onReset && {
|
458
491
|
onReset: function onReset() {
|
@@ -465,7 +498,10 @@ function (_React$Component) {
|
|
465
498
|
}, {
|
466
499
|
id: "".concat(id, "-to"),
|
467
500
|
onChange: this.handleInputChange('to'),
|
468
|
-
disabled: disabled
|
501
|
+
disabled: disabled,
|
502
|
+
HiInputProps: {
|
503
|
+
onSubmit: this.props.onSubmit
|
504
|
+
}
|
469
505
|
});
|
470
506
|
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));
|
471
507
|
|
@@ -475,8 +511,8 @@ function (_React$Component) {
|
|
475
511
|
className: classes.fromInput,
|
476
512
|
onFocus: function onFocus() {
|
477
513
|
return _this2.handleDayPickerFocus('from');
|
478
|
-
}
|
479
|
-
|
514
|
+
},
|
515
|
+
onKeyDown: this.handleKeyDown('from')
|
480
516
|
}, _react.default.createElement("div", null, _react.default.createElement(_DayPickerInput.default, {
|
481
517
|
key: this.state.keyFrom,
|
482
518
|
ref: function ref(el) {
|
@@ -502,7 +538,8 @@ function (_React$Component) {
|
|
502
538
|
},
|
503
539
|
onBlur: function onBlur() {
|
504
540
|
return _this2.handleDayPickerBlur('to');
|
505
|
-
}
|
541
|
+
},
|
542
|
+
onKeyDown: this.handleKeyDown('to')
|
506
543
|
}, _react.default.createElement(_DayPickerInput.default, {
|
507
544
|
key: this.state.keyTo,
|
508
545
|
ref: function ref(el) {
|
@@ -516,8 +553,7 @@ function (_React$Component) {
|
|
516
553
|
inputProps: toInputProps,
|
517
554
|
format: enableTime ? "".concat(format, " HH:mm") : format,
|
518
555
|
formatDate: _moment.default.formatDate,
|
519
|
-
parseDate: _moment.default.parseDate
|
520
|
-
,
|
556
|
+
parseDate: _moment.default.parseDate,
|
521
557
|
placeholder: ''
|
522
558
|
})));
|
523
559
|
|
@@ -671,6 +707,11 @@ HiDateRangePicker.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
671
707
|
*/
|
672
708
|
onReset: _propTypes.default.func,
|
673
709
|
|
710
|
+
/**
|
711
|
+
* Callback lorsque l'utilisateur tape sur "Entrée"
|
712
|
+
*/
|
713
|
+
onSubmit: _propTypes.default.func,
|
714
|
+
|
674
715
|
/**
|
675
716
|
* Si true, le calendrier sera dans une div static plutot que dans une popper absolute
|
676
717
|
*/
|
@@ -27,13 +27,11 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
27
27
|
|
28
28
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
29
29
|
|
30
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
31
|
-
|
32
30
|
var _react = _interopRequireDefault(require("react"));
|
33
31
|
|
34
32
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
35
33
|
|
36
|
-
var
|
34
|
+
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
37
35
|
|
38
36
|
var _reactDom = require("react-dom");
|
39
37
|
|
@@ -93,14 +91,14 @@ function yearAndQuarter(format, date, t) {
|
|
93
91
|
return indexY < indexM ? date.format("".concat(split[indexY]).concat(s, "[").concat(t.short_quarter, "]Q")) : date.format("[".concat(t.short_quarter, "]Q").concat(s).concat(split[indexY]));
|
94
92
|
}
|
95
93
|
|
96
|
-
function buildDateRangeOptionByKey(key, t, format) {
|
94
|
+
function buildDateRangeOptionByKey(key, t, format, timezoneName) {
|
97
95
|
var from;
|
98
96
|
var label;
|
99
97
|
var info;
|
100
98
|
var to;
|
101
99
|
var type;
|
102
100
|
|
103
|
-
|
101
|
+
_momentTimezone.default.updateLocale('en', {
|
104
102
|
week: {
|
105
103
|
dow: 1
|
106
104
|
}
|
@@ -109,71 +107,71 @@ function buildDateRangeOptionByKey(key, t, format) {
|
|
109
107
|
switch (key) {
|
110
108
|
case 'custom':
|
111
109
|
label = t.custom_period;
|
112
|
-
from = (0,
|
113
|
-
to = (0,
|
110
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).subtract(15, 'day').startOf('day');
|
111
|
+
to = (0, _momentTimezone.default)().tz(timezoneName).endOf('day');
|
114
112
|
type = 'primary-highlight';
|
115
113
|
break;
|
116
114
|
|
117
115
|
case 'cd':
|
118
116
|
label = t.today;
|
119
|
-
from = (0,
|
120
|
-
to = (0,
|
117
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).startOf('day');
|
118
|
+
to = (0, _momentTimezone.default)().tz(timezoneName).endOf('day');
|
121
119
|
info = "".concat(from.format(format));
|
122
120
|
break;
|
123
121
|
|
124
122
|
case 'pd':
|
125
123
|
label = t.yesterday;
|
126
|
-
from = (0,
|
127
|
-
to = (0,
|
124
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'day').startOf('day');
|
125
|
+
to = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'day').endOf('day');
|
128
126
|
info = "".concat(from.format(format));
|
129
127
|
break;
|
130
128
|
|
131
129
|
case 'cw':
|
132
130
|
label = t.current_week;
|
133
|
-
from = (0,
|
134
|
-
to = (0,
|
131
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).startOf('week');
|
132
|
+
to = (0, _momentTimezone.default)().tz(timezoneName);
|
135
133
|
info = "".concat(t.short_week).concat(from.format('w'), ", \n ").concat(from.format(format), " ").concat(t.to_now);
|
136
134
|
break;
|
137
135
|
|
138
136
|
case 'pw':
|
139
137
|
label = t.previous_week;
|
140
|
-
from = (0,
|
141
|
-
to = (0,
|
138
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'week').startOf('week');
|
139
|
+
to = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'week').endOf('week');
|
142
140
|
info = "".concat(t.short_week).concat(from.format('w'), ", ").concat(from.format(format), " ").concat(t.to, " ").concat(to.format(format));
|
143
141
|
break;
|
144
142
|
|
145
143
|
case 'cm':
|
146
144
|
label = t.current_month;
|
147
|
-
from = (0,
|
148
|
-
to = (0,
|
145
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).startOf('month');
|
146
|
+
to = (0, _momentTimezone.default)().tz(timezoneName);
|
149
147
|
info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
|
150
148
|
break;
|
151
149
|
|
152
150
|
case 'pm':
|
153
151
|
label = t.previous_month;
|
154
|
-
from = (0,
|
155
|
-
to = (0,
|
152
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'month').startOf('month');
|
153
|
+
to = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'month').endOf('month');
|
156
154
|
info = "".concat(yearAndMonth(format, from), ", ").concat(from.daysInMonth(), " ").concat(t.days);
|
157
155
|
break;
|
158
156
|
|
159
157
|
case 'cq':
|
160
158
|
label = t.current_quarter;
|
161
|
-
from = (0,
|
162
|
-
to = (0,
|
159
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).startOf('quarter');
|
160
|
+
to = (0, _momentTimezone.default)().tz(timezoneName);
|
163
161
|
info = "".concat(yearAndQuarter(format, from, t), ", ").concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
|
164
162
|
break;
|
165
163
|
|
166
164
|
case 'pq':
|
167
165
|
label = t.previous_quarter;
|
168
|
-
from = (0,
|
169
|
-
to = (0,
|
166
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'quarter').startOf('quarter');
|
167
|
+
to = (0, _momentTimezone.default)().tz(timezoneName).subtract(1, 'quarter').endOf('quarter');
|
170
168
|
info = "".concat(yearAndQuarter(format, from, t), ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
|
171
169
|
break;
|
172
170
|
|
173
171
|
case 'cy':
|
174
172
|
label = t.current_year;
|
175
|
-
from = (0,
|
176
|
-
to = (0,
|
173
|
+
from = (0, _momentTimezone.default)().tz(timezoneName).startOf('year');
|
174
|
+
to = (0, _momentTimezone.default)().tz(timezoneName);
|
177
175
|
info = "".concat(from.format(format), " ").concat(t.to_now, ", ").concat(to.diff(from, 'days') + 1, " ").concat(t.days);
|
178
176
|
break;
|
179
177
|
|
@@ -250,9 +248,9 @@ function (_React$Component) {
|
|
250
248
|
});
|
251
249
|
|
252
250
|
if (selectedOption) {
|
253
|
-
_this.props.onChange('from', selectedOption.from.
|
251
|
+
_this.props.onChange('from', new Date(selectedOption.from.format('YYYY-MM-DD HH:mm:ss')));
|
254
252
|
|
255
|
-
_this.props.onChange('to', selectedOption.to.
|
253
|
+
_this.props.onChange('to', new Date(selectedOption.to.format('YYYY-MM-DD HH:mm:ss')));
|
256
254
|
|
257
255
|
_this.props.onChange('fromError', false);
|
258
256
|
|
@@ -265,9 +263,8 @@ function (_React$Component) {
|
|
265
263
|
};
|
266
264
|
};
|
267
265
|
|
268
|
-
_this.handleSelectChange = _this.handleSelectChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
269
266
|
_this.options = props.availableOptionKeys.map(function (key) {
|
270
|
-
return buildDateRangeOptionByKey(key, props.translations, props.format);
|
267
|
+
return buildDateRangeOptionByKey(key, props.translations, props.format, props.timezoneName);
|
271
268
|
});
|
272
269
|
_this.state = {
|
273
270
|
selectedPreset: props.defaultPreset,
|
@@ -357,7 +354,8 @@ function (_React$Component) {
|
|
357
354
|
classes: {
|
358
355
|
root: classes.dateSelect
|
359
356
|
},
|
360
|
-
staticPosition: staticPosition
|
357
|
+
staticPosition: staticPosition,
|
358
|
+
onSubmit: this.props.onSubmit
|
361
359
|
}, selectProps))), _react.default.createElement(_Grid.default, {
|
362
360
|
item: true,
|
363
361
|
xs: 12,
|
@@ -411,6 +409,7 @@ HiDateRangeSelector.defaultProps = {
|
|
411
409
|
format: 'YYYY-DD-MM',
|
412
410
|
minimumDate: new Date(2013, 4, 1),
|
413
411
|
// by default 1 May 2013
|
412
|
+
timezoneName: 'Europe/Paris',
|
414
413
|
translations: {
|
415
414
|
today: 'Today',
|
416
415
|
hour: 'Hour',
|
@@ -529,6 +528,11 @@ HiDateRangeSelector.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
529
528
|
*/
|
530
529
|
onChange: _propTypes.default.func.isRequired,
|
531
530
|
|
531
|
+
/**
|
532
|
+
* Callback lorsque l'utilisateur tape sur "Entrée"
|
533
|
+
*/
|
534
|
+
onSubmit: _propTypes.default.func,
|
535
|
+
|
532
536
|
/**
|
533
537
|
* true si champs obligatoire
|
534
538
|
*/
|
@@ -549,6 +553,11 @@ HiDateRangeSelector.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
549
553
|
*/
|
550
554
|
staticPosition: _propTypes.default.bool,
|
551
555
|
|
556
|
+
/**
|
557
|
+
* Timezone de l'utilisateur
|
558
|
+
*/
|
559
|
+
timezoneName: _propTypes.default.string,
|
560
|
+
|
552
561
|
/**
|
553
562
|
* Date de fin sélectionnée
|
554
563
|
*/
|
@@ -43,8 +43,15 @@ function (_React$Component) {
|
|
43
43
|
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(YearPickerOverlay).call(this, props));
|
44
44
|
_this.years = [];
|
45
45
|
_this.handleYearClick = _this.handleYearClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
46
|
+
var minDate = props.minimumDate;
|
47
|
+
|
48
|
+
if (!minDate) {
|
49
|
+
var today = new Date();
|
50
|
+
minDate = new Date(today.getFullYear() - 5, today.getMonth(), today.getDate()); // by default 5 years from now
|
51
|
+
}
|
52
|
+
|
46
53
|
var currentYear = new Date().getFullYear();
|
47
|
-
var minimumYear =
|
54
|
+
var minimumYear = minDate.getFullYear();
|
48
55
|
_this.years = [currentYear]; // get years from minimum date to now
|
49
56
|
|
50
57
|
if (!props.disablePastDays && currentYear > minimumYear) {
|
@@ -95,8 +102,6 @@ function (_React$Component) {
|
|
95
102
|
}(_react.default.Component);
|
96
103
|
|
97
104
|
YearPickerOverlay.defaultProps = {
|
98
|
-
minimumDate: new Date(2013, 4, 1),
|
99
|
-
// by default 1 May 2013
|
100
105
|
translations: {
|
101
106
|
year: 'Year'
|
102
107
|
}
|
package/HiForm/HiFormControl.js
CHANGED
@@ -59,13 +59,11 @@ var styles = function styles(theme) {
|
|
59
59
|
marginTop: 2
|
60
60
|
},
|
61
61
|
iconButton: {
|
62
|
-
position: 'absolute',
|
63
|
-
right: 5,
|
64
62
|
cursor: 'pointer',
|
65
63
|
zIndex: 1,
|
66
|
-
|
67
|
-
|
68
|
-
|
64
|
+
height: 20,
|
65
|
+
width: 20,
|
66
|
+
marginLeft: 3,
|
69
67
|
'&$iconButtonError': {
|
70
68
|
color: theme.palette.negative.main
|
71
69
|
},
|
@@ -74,11 +72,18 @@ var styles = function styles(theme) {
|
|
74
72
|
},
|
75
73
|
'&$iconButtonInfoActive': {
|
76
74
|
color: theme.palette.primary.main
|
75
|
+
},
|
76
|
+
'&$iconFullWidth': {
|
77
|
+
position: 'absolute',
|
78
|
+
right: 5,
|
79
|
+
marginLeft: 0,
|
80
|
+
bottom: 0
|
77
81
|
}
|
78
82
|
},
|
79
83
|
iconButtonError: {},
|
80
84
|
iconButtonInfo: {},
|
81
85
|
iconButtonInfoActive: {},
|
86
|
+
iconFullWidth: {},
|
82
87
|
errorDiv: (0, _extends2.default)({}, theme.typography.b3, {
|
83
88
|
backgroundColor: theme.palette.negative.main,
|
84
89
|
color: '#FFFFFF',
|
@@ -97,8 +102,15 @@ var styles = function styles(theme) {
|
|
97
102
|
borderTop: '4px solid #000',
|
98
103
|
position: 'absolute',
|
99
104
|
bottom: -4,
|
100
|
-
|
105
|
+
'&$arrowNotFullWidth': {
|
106
|
+
left: 8
|
107
|
+
},
|
108
|
+
'&$arrowFullWidth': {
|
109
|
+
right: 13
|
110
|
+
}
|
101
111
|
},
|
112
|
+
arrowNotFullWidth: {},
|
113
|
+
arrowFullWidth: {},
|
102
114
|
errorDivArrowDown: {
|
103
115
|
borderTopColor: theme.palette.negative.main
|
104
116
|
},
|
@@ -118,7 +130,8 @@ var styles = function styles(theme) {
|
|
118
130
|
borderTopColor: '#ffffff'
|
119
131
|
},
|
120
132
|
icon: {
|
121
|
-
position: 'absolute'
|
133
|
+
position: 'absolute',
|
134
|
+
fontSize: 19
|
122
135
|
}
|
123
136
|
};
|
124
137
|
};
|
@@ -197,6 +210,8 @@ function (_React$PureComponent) {
|
|
197
210
|
(0, _createClass2.default)(HiFormControl, [{
|
198
211
|
key: "render",
|
199
212
|
value: function render() {
|
213
|
+
var _classNames2;
|
214
|
+
|
200
215
|
var _this$props = this.props,
|
201
216
|
children = _this$props.children,
|
202
217
|
classes = _this$props.classes,
|
@@ -229,7 +244,7 @@ function (_React$PureComponent) {
|
|
229
244
|
}, others), error && errorText && helperOpen && _react.default.createElement("div", {
|
230
245
|
className: classes.errorDiv
|
231
246
|
}, _react.default.createElement("div", {
|
232
|
-
className: (0, _classnames.default)(classes.arrowDown, classes.errorDivArrowDown)
|
247
|
+
className: (0, _classnames.default)(classes.arrowDown, classes.errorDivArrowDown, fullWidth ? [classes.arrowFullWidth] : [classes.arrowNotFullWidth])
|
233
248
|
}), _react.default.createElement("span", {
|
234
249
|
// eslint-disable-next-line react/no-danger
|
235
250
|
dangerouslySetInnerHTML: {
|
@@ -238,7 +253,7 @@ function (_React$PureComponent) {
|
|
238
253
|
})), helperIcon && helperText && !error && helperOpen && _react.default.createElement("div", {
|
239
254
|
className: classes.helperDiv
|
240
255
|
}, _react.default.createElement("div", {
|
241
|
-
className: (0, _classnames.default)(classes.arrowDown, classes.helperDivArrowDown)
|
256
|
+
className: (0, _classnames.default)(classes.arrowDown, classes.helperDivArrowDown, fullWidth ? [classes.arrowFullWidth] : [classes.arrowNotFullWidth])
|
242
257
|
}), _react.default.createElement("span", {
|
243
258
|
// eslint-disable-next-line react/no-danger
|
244
259
|
dangerouslySetInnerHTML: {
|
@@ -251,12 +266,12 @@ function (_React$PureComponent) {
|
|
251
266
|
disabled: disabled,
|
252
267
|
focused: !disabled && (focused || hovered)
|
253
268
|
}, InputLabelProps), error && errorText && _react.default.createElement(_HiIconButton.default, {
|
254
|
-
className: (0, _classnames.default)(classes.iconButton, classes.iconButtonError),
|
269
|
+
className: (0, _classnames.default)(classes.iconButton, classes.iconButtonError, (0, _defineProperty2.default)({}, classes.iconFullWidth, fullWidth)),
|
255
270
|
onClick: this.handleHelperClick
|
256
271
|
}, _react.default.createElement(_Warning.default, {
|
257
272
|
className: (0, _classnames.default)(classes.icon)
|
258
273
|
})), helperIcon && helperText && !error && _react.default.createElement(_HiIconButton.default, {
|
259
|
-
className: (0, _classnames.default)(classes.iconButton, classes.iconButtonInfo, (0, _defineProperty2.default)(
|
274
|
+
className: (0, _classnames.default)(classes.iconButton, classes.iconButtonInfo, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.iconButtonInfoActive, helperOpen), (0, _defineProperty2.default)(_classNames2, classes.iconFullWidth, fullWidth), _classNames2)),
|
260
275
|
onClick: this.handleHelperClick
|
261
276
|
}, _react.default.createElement(_Info.default, {
|
262
277
|
className: (0, _classnames.default)(classes.icon)
|
package/HiForm/HiFormLabel.js
CHANGED
package/HiForm/HiInput.js
CHANGED
@@ -29,6 +29,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
29
|
|
30
30
|
var _classnames = _interopRequireDefault(require("classnames"));
|
31
31
|
|
32
|
+
var _index = _interopRequireDefault(require("keycode/index"));
|
33
|
+
|
32
34
|
var _Input = _interopRequireDefault(require("@material-ui/core/Input"));
|
33
35
|
|
34
36
|
var _HiIcon = _interopRequireDefault(require("../HiIcon"));
|
@@ -170,6 +172,18 @@ function (_React$PureComponent) {
|
|
170
172
|
(0, _classCallCheck2.default)(this, HiInput);
|
171
173
|
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiInput).call(this));
|
172
174
|
|
175
|
+
_this.handleKeyDown = function (event) {
|
176
|
+
var key = (0, _index.default)(event);
|
177
|
+
|
178
|
+
if (_this.props.onKeyDown) {
|
179
|
+
_this.props.onKeyDown(event);
|
180
|
+
}
|
181
|
+
|
182
|
+
if (key === 'enter' && _this.props.onSubmit) {
|
183
|
+
_this.props.onSubmit(event);
|
184
|
+
}
|
185
|
+
};
|
186
|
+
|
173
187
|
_this.handleClick = function () {
|
174
188
|
if (_this.props.onClick) {
|
175
189
|
_this.props.onClick();
|
@@ -387,7 +401,7 @@ function (_React$PureComponent) {
|
|
387
401
|
value: value,
|
388
402
|
placeholder: placeholder,
|
389
403
|
onFocus: this.handleFocus,
|
390
|
-
onKeyDown: this.
|
404
|
+
onKeyDown: this.handleKeyDown,
|
391
405
|
onClick: this.handleClick,
|
392
406
|
onBlur: this.handleBlur,
|
393
407
|
inputRef: this.getInputElement,
|
@@ -562,6 +576,11 @@ HiInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
562
576
|
*/
|
563
577
|
onRightIconClick: _propTypes.default.func,
|
564
578
|
|
579
|
+
/**
|
580
|
+
* Fonction de callback appelée lorsque l'utilisateur tape sur "Entrée"
|
581
|
+
*/
|
582
|
+
onSubmit: _propTypes.default.func,
|
583
|
+
|
565
584
|
/**
|
566
585
|
* Passe une ref callback au composant div parent
|
567
586
|
*/
|