@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.
Files changed (39) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/HiCell/CellNumeric.js +1 -1
  3. package/HiDatePicker/HiDatePicker.js +11 -2
  4. package/HiDatePicker/HiDateRangePicker.js +49 -8
  5. package/HiDatePicker/HiDateRangeSelector.js +39 -30
  6. package/HiDatePicker/Overlays/YearPickerOverlay.js +8 -3
  7. package/HiForm/HiFormControl.js +26 -11
  8. package/HiForm/HiFormLabel.js +3 -1
  9. package/HiForm/HiInput.js +20 -1
  10. package/HiForm/HiUpload.js +290 -45
  11. package/HiForm/HiUploadField.js +19 -51
  12. package/HiForm/HiUploadInput.js +18 -7
  13. package/HiSelectNew/HiDynamicSelect.js +3 -3
  14. package/HiSelectNew/HiNestedSelect.js +9 -9
  15. package/HiSelectNew/HiNestedSelectContent.js +9 -9
  16. package/HiSelectNew/HiSelect.js +22 -23
  17. package/HiSelectNew/HiSelectContent.js +7 -7
  18. package/HiSelectableList/HiSelectableListItem.js +3 -7
  19. package/README.md +1 -1
  20. package/es/HiCell/CellNumeric.js +1 -1
  21. package/es/HiDatePicker/HiDatePicker.js +11 -2
  22. package/es/HiDatePicker/HiDateRangePicker.js +42 -8
  23. package/es/HiDatePicker/HiDateRangeSelector.js +38 -27
  24. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +8 -3
  25. package/es/HiForm/HiFormControl.js +27 -11
  26. package/es/HiForm/HiFormLabel.js +3 -1
  27. package/es/HiForm/HiInput.js +19 -1
  28. package/es/HiForm/HiUpload.js +276 -35
  29. package/es/HiForm/HiUploadField.js +19 -43
  30. package/es/HiForm/HiUploadInput.js +16 -7
  31. package/es/HiSelectNew/HiSelect.js +15 -16
  32. package/es/HiSelectableList/HiSelectableListItem.js +3 -7
  33. package/es/utils/helpers.js +6 -5
  34. package/index.es.js +1 -1
  35. package/index.js +1 -1
  36. package/package.json +3 -2
  37. package/umd/hipay-material-ui.development.js +29594 -21713
  38. package/umd/hipay-material-ui.production.min.js +2 -2
  39. package/utils/helpers.js +6 -4
@@ -7,12 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = exports.styles = void 0;
9
9
 
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
11
 
14
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
13
 
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
17
 
18
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -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 _withStyles = _interopRequireDefault(require("../styles/withStyles"));
33
35
 
34
36
  var _HiUploadInput = _interopRequireDefault(require("./HiUploadInput"));
@@ -38,7 +40,7 @@ var _HiIcon = _interopRequireDefault(require("../HiIcon"));
38
40
  var styles = function styles(theme) {
39
41
  return {
40
42
  flexContainer: {
41
- display: ' flex',
43
+ display: 'flex',
42
44
  alignItems: 'center'
43
45
  },
44
46
  statusIcon: {
@@ -52,8 +54,10 @@ var styles = function styles(theme) {
52
54
  color: "".concat(theme.palette.middle.main, " !important"),
53
55
  fontSize: '80px'
54
56
  },
57
+ dragOver: {},
55
58
  inputContainer: {
56
- flex: '1'
59
+ flex: '1',
60
+ width: 'calc(100% - 88px)'
57
61
  },
58
62
  empty: {
59
63
  border: "1px solid ".concat(theme.palette.input.bottomLine),
@@ -67,7 +71,18 @@ var styles = function styles(theme) {
67
71
  error: {
68
72
  border: "1px solid ".concat(theme.palette.negative.main),
69
73
  color: "".concat(theme.palette.negative.main, " !important")
70
- }
74
+ },
75
+ fileButton: {
76
+ marginRight: 8,
77
+ '&$focusable': {
78
+ cursor: 'pointer',
79
+ '&:hover, &:focus, &$dragOver': {
80
+ border: "1px solid ".concat(theme.palette.primary.main),
81
+ color: "".concat(theme.palette.primary.main, " !important")
82
+ }
83
+ }
84
+ },
85
+ focusable: {}
71
86
  };
72
87
  };
73
88
 
@@ -79,38 +94,248 @@ function (_React$PureComponent) {
79
94
  (0, _inherits2.default)(HiUpload, _React$PureComponent);
80
95
 
81
96
  function HiUpload() {
97
+ var _this;
98
+
82
99
  (0, _classCallCheck2.default)(this, HiUpload);
83
- return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiUpload).apply(this, arguments));
84
- }
100
+ _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiUpload).call(this));
101
+
102
+ _this.handleDrop = function (event) {
103
+ if (event.path[0].id === _this.uploadIconRef.props.id) {
104
+ event.preventDefault();
105
+ event.stopPropagation();
106
+
107
+ if (_this.state.droppable) {
108
+ var index = _this.getNextInputIndex();
109
+
110
+ var param = _this.handleFile(event.dataTransfer.files, index);
111
+
112
+ _this.setState({
113
+ dragOver: false
114
+ });
115
+
116
+ _this.props.onChange(param, 0);
117
+ } else {
118
+ _this.setState({
119
+ dragOver: false
120
+ });
121
+ }
122
+ }
123
+ };
124
+
125
+ _this.handleDragEnter = function (event) {
126
+ event.preventDefault();
127
+ event.stopPropagation();
128
+
129
+ if (event.path[0].id === _this.uploadIconRef.props.id) {
130
+ if (event.dataTransfer.items.length !== 1) {
131
+ event.dataTransfer.dropEffect = 'none';
132
+
133
+ _this.props.onChange({
134
+ errorMessage: _this.props.translations.errorDragEnter,
135
+ value: null
136
+ }, 0);
137
+
138
+ _this.setState({
139
+ dragOver: true
140
+ });
141
+ } else {
142
+ _this.setState({
143
+ droppable: true,
144
+ dragOver: true
145
+ });
146
+ }
147
+ }
148
+ };
149
+
150
+ _this.handleDragLeave = function (event) {
151
+ event.preventDefault();
152
+ event.stopPropagation();
153
+
154
+ if (event.path[0].id === _this.uploadIconRef.props.id && event.relatedTarget.parentElement !== _this.uploadFieldRef) {
155
+ _this.props.onChange({
156
+ errorMessage: '',
157
+ value: null
158
+ }, 0);
159
+
160
+ _this.setState({
161
+ droppable: false,
162
+ dragOver: false
163
+ });
164
+ }
165
+ };
166
+
167
+ _this.handleChange = function (event) {
168
+ var index = _this.getNextInputIndex();
169
+
170
+ var param = _this.handleFile(event.target.files, index);
171
+
172
+ _this.props.onChange(param, index);
173
+ };
174
+
175
+ _this.handleEmptyField = function (event) {
176
+ event.target.value = '';
177
+ };
178
+
179
+ _this.handleKeyPress = function (event) {
180
+ var key = (0, _index.default)(event);
181
+
182
+ if (key === 'enter' || key === 'space') {
183
+ event.preventDefault();
184
+
185
+ _this.uploadInput.click();
186
+ }
187
+ };
188
+
189
+ _this.handleFile = function (files, index) {
190
+ var error = false;
191
+ var errorMessage = '';
192
+ var file = null;
193
+
194
+ if (files.length === 1) {
195
+ file = files[0];
196
+
197
+ if (_this.props.inputs[index] && file.size > _this.props.inputs[index].maxSize) {
198
+ errorMessage += _this.props.translations.errorSize.replace('maxSize', _this.props.inputs[index].maxSize / 1000000);
199
+ error = true;
200
+ }
201
+
202
+ if (_this.props.inputs[index] && _this.props.inputs[index].acceptedTypes && _this.props.inputs[index].acceptedTypes.length !== 0 && _this.props.inputs[index].acceptedTypes.indexOf(file.type) === -1) {
203
+ errorMessage += _this.props.translations.errorType;
204
+ error = true;
205
+ }
206
+ } else {
207
+ errorMessage = _this.props.translations.errorDropMultiple;
208
+ }
209
+
210
+ return {
211
+ errorMessage: errorMessage,
212
+ error: error,
213
+ value: file
214
+ };
215
+ };
216
+
217
+ _this.createInputs = function (others) {
218
+ var _this$props = _this.props,
219
+ inputs = _this$props.inputs,
220
+ values = _this$props.values;
221
+ var files = inputs; // unlimited number of files
222
+
223
+ if (inputs.length === 0) {
224
+ files = values;
225
+ }
226
+
227
+ var inputComponents = [];
228
+
229
+ for (var i = 0; i < files.length; i += 1) {
230
+ if (files.length > 1 || values[i] && values[i].value) {
231
+ inputComponents.push(_react.default.createElement(_HiUploadInput.default, (0, _extends2.default)({
232
+ maxSize: inputs[i] ? inputs[i].maxSize : undefined,
233
+ acceptedTypes: inputs[i] ? inputs[i].acceptedTypes : undefined,
234
+ placeholder: inputs[i] ? inputs[i].placeholder : undefined,
235
+ value: values[i] ? values[i].value : null,
236
+ error: values[i] ? values[i].error : null,
237
+ errorMessage: values[i] ? values[i].errorMessage : null,
238
+ onSeeFile: _this.handleSeeFile,
239
+ onDeleteFile: _this.props.onDeleteFile,
240
+ onChange: _this.props.onChange,
241
+ index: i,
242
+ key: inputs[i] ? inputs[i].id : "doc-".concat(i)
243
+ }, others)));
244
+ }
245
+ }
246
+
247
+ return inputComponents;
248
+ };
249
+
250
+ _this.uploadFieldRef = void 0;
251
+ _this.state = {
252
+ dragOver: false,
253
+ droppable: false
254
+ };
255
+ return _this;
256
+ } // When component mounts, we add eventListeners to handle the file drag and drop
257
+
85
258
 
86
259
  (0, _createClass2.default)(HiUpload, [{
260
+ key: "componentDidMount",
261
+ value: function componentDidMount() {
262
+ this.uploadFieldRef.addEventListener('dragenter', this.handleDragEnter, false);
263
+ this.uploadFieldRef.addEventListener('dragleave', this.handleDragLeave, false);
264
+ this.uploadFieldRef.addEventListener('dragover', function (event) {
265
+ event.preventDefault();
266
+ }, false);
267
+ this.uploadFieldRef.addEventListener('drop', this.handleDrop, false);
268
+ }
269
+ }, {
270
+ key: "componentWillUnmount",
271
+ value: function componentWillUnmount() {
272
+ this.uploadFieldRef.removeEventListener('dragenter', this.handleDragEnter, false);
273
+ this.uploadFieldRef.removeEventListener('dragleave', this.handleDragLeave, false);
274
+ this.uploadFieldRef.removeEventListener('dragover', function (event) {
275
+ event.preventDefault();
276
+ }, false);
277
+ this.uploadFieldRef.removeEventListener('drop', this.handleDrop, false);
278
+ }
279
+ }, {
280
+ key: "getNextInputIndex",
281
+ value: function getNextInputIndex() {
282
+ var index = 0; // Add an input at the end
283
+
284
+ if (!this.props.inputs.length) {
285
+ index = this.props.values.length + 1;
286
+ } else {
287
+ // First empty input
288
+ for (var i = 0; i < this.props.values.length; i += 1) {
289
+ if (!this.props.values[i] || this.props.values[i].error || !this.props.values[i].value) {
290
+ index = i;
291
+ break;
292
+ }
293
+ }
294
+ }
295
+
296
+ return index;
297
+ } // Action when files are dropped on the field
298
+
299
+ }, {
87
300
  key: "render",
88
301
  value: function render() {
89
302
  var _classNames,
90
- _this = this;
91
-
92
- var _this$props = this.props,
93
- inputs = _this$props.inputs,
94
- classes = _this$props.classes,
95
- values = _this$props.values,
96
- others = (0, _objectWithoutProperties2.default)(_this$props, ["inputs", "classes", "values"]);
303
+ _classNames2,
304
+ _this2 = this;
305
+
306
+ var _this$props2 = this.props,
307
+ id = _this$props2.id,
308
+ inputs = _this$props2.inputs,
309
+ classes = _this$props2.classes,
310
+ values = _this$props2.values,
311
+ focused = _this$props2.focused,
312
+ others = (0, _objectWithoutProperties2.default)(_this$props2, ["id", "inputs", "classes", "values", "focused"]);
313
+ var _this$state = this.state,
314
+ dragOver = _this$state.dragOver,
315
+ droppable = _this$state.droppable;
97
316
  var complete = true;
98
317
  var empty = true;
99
- var error = false;
100
-
101
- for (var i = 0, len = values.length; i < len; i += 1) {
102
- var value = values[i];
318
+ var error = false; // For unlimited inputs: always grey
103
319
 
104
- if (value !== undefined) {
105
- complete = value.value === null || value.error ? false : complete;
106
- empty = value.value !== null && !value.error ? false : empty;
107
- error = value.error || error;
108
- } else {
109
- complete = false;
320
+ if (!inputs.length) {
321
+ complete = false;
322
+ } else if (values.length === 0 || inputs.length > 0 && inputs.length !== values.length) {
323
+ complete = false;
324
+ } else {
325
+ for (var i = 0, len = values.length; i < len; i += 1) {
326
+ var value = values[i];
327
+
328
+ if (value !== undefined) {
329
+ complete = value.value === null || value.error ? false : complete;
330
+ empty = value.value !== null && !value.error ? false : empty;
331
+ error = value.error || error;
332
+ } else {
333
+ complete = false;
334
+ }
110
335
  }
111
336
  }
112
337
 
113
- var statusClass = (0, _classnames.default)(classes.statusIcon, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.empty, empty), (0, _defineProperty2.default)(_classNames, classes.complete, complete), (0, _defineProperty2.default)(_classNames, classes.error, error), _classNames));
338
+ var statusClass = (0, _classnames.default)(classes.statusIcon, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.empty, empty), (0, _defineProperty2.default)(_classNames, classes.complete, complete), _classNames));
114
339
  var icon;
115
340
 
116
341
  if (error) {
@@ -121,29 +346,43 @@ function (_React$PureComponent) {
121
346
  icon = 'file_upload';
122
347
  }
123
348
 
349
+ var focusable = true;
350
+
351
+ if (complete && values.length > 1) {
352
+ focusable = false;
353
+ }
354
+
355
+ var iconClass = (0, _classnames.default)(statusClass, classes.fileButton, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.dragOver, dragOver), (0, _defineProperty2.default)(_classNames2, classes.droppable, droppable), (0, _defineProperty2.default)(_classNames2, classes.focused, focused), (0, _defineProperty2.default)(_classNames2, classes.error, error && !focused), (0, _defineProperty2.default)(_classNames2, classes.focusable, focusable), _classNames2));
124
356
  return _react.default.createElement("div", {
125
357
  className: classes.flexContainer
126
- }, _react.default.createElement(_HiIcon.default, {
127
- className: statusClass,
358
+ }, _react.default.createElement("label", {
359
+ htmlFor: "flat-button-file",
360
+ ref: function ref(label) {
361
+ _this2.uploadFieldRef = label;
362
+ },
363
+ tabIndex: "-1"
364
+ }, _react.default.createElement("input", {
365
+ hidden: true,
366
+ id: "flat-button-file",
367
+ type: !complete || values.length === 1 ? 'file' : 'hidden',
368
+ onChange: this.handleChange,
369
+ onClick: focusable ? this.handleEmptyField : undefined,
370
+ ref: function ref(el) {
371
+ _this2.uploadInput = el;
372
+ }
373
+ }), _react.default.createElement(_HiIcon.default, {
374
+ ref: function ref(uploadIcon) {
375
+ _this2.uploadIconRef = uploadIcon;
376
+ },
377
+ id: "iconUpload-".concat(id),
378
+ className: iconClass,
128
379
  icon: icon,
129
- size: 32
130
- }), _react.default.createElement("div", {
380
+ size: 32,
381
+ tabIndex: focusable ? '0' : '-1',
382
+ onKeyPress: this.handleKeyPress
383
+ })), _react.default.createElement("div", {
131
384
  className: classes.inputContainer
132
- }, inputs.map(function (item, index) {
133
- return _react.default.createElement(_HiUploadInput.default, (0, _extends2.default)({
134
- maxSize: item.maxSize,
135
- acceptedTypes: item.acceptedTypes,
136
- placeholder: item.placeholder,
137
- value: values[index] ? values[index].value : null,
138
- error: values[index] ? values[index].error : null,
139
- errorMessage: values[index] ? values[index].errorMessage : null,
140
- onSeeFile: _this.handleSeeFile,
141
- onDeleteFile: _this.props.onDeleteFile,
142
- onChange: _this.props.onChange,
143
- index: index,
144
- key: item.id
145
- }, others));
146
- })));
385
+ }, this.createInputs(others)));
147
386
  }
148
387
  }]);
149
388
  return HiUpload;
@@ -170,8 +409,14 @@ HiUpload.propTypes = process.env.NODE_ENV !== "production" ? {
170
409
  */
171
410
  helperText: _propTypes.default.string,
172
411
 
412
+ /**
413
+ * id du composant
414
+ */
415
+ id: _propTypes.default.string.isRequired,
416
+
173
417
  /**
174
418
  * Array containing each of the inputs the component has to show (represented by an object).
419
+ * If empty => unlimited number of files accepted
175
420
  */
176
421
  inputs: _propTypes.default.array.isRequired,
177
422
 
@@ -191,7 +436,7 @@ HiUpload.propTypes = process.env.NODE_ENV !== "production" ? {
191
436
  onSeeFile: _propTypes.default.func,
192
437
 
193
438
  /**
194
- * Valeurs des inputs
439
+ * True if can upload an unlimited number of files
195
440
  */
196
441
  values: _propTypes.default.array
197
442
  } : {};
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.styles = void 0;
8
+ exports.default = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -25,51 +25,10 @@ var _react = _interopRequireDefault(require("react"));
25
25
 
26
26
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
- var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
29
-
30
28
  var _HiFormControl = _interopRequireDefault(require("./HiFormControl"));
31
29
 
32
30
  var _HiUpload = _interopRequireDefault(require("./HiUpload"));
33
31
 
34
- var styles = function styles(theme) {
35
- return {
36
- flexContainer: {
37
- display: ' flex',
38
- alignItems: 'center'
39
- },
40
- statusIcon: {
41
- height: '80px',
42
- width: '80px',
43
- marginRight: '8px',
44
- padding: '24px',
45
- borderRadius: '2px',
46
- backgroundColor: theme.palette.local.background2,
47
- border: "1px solid ".concat(theme.palette.middle.main),
48
- color: "".concat(theme.palette.middle.main, " !important"),
49
- fontSize: '80px'
50
- },
51
- inputContainer: {
52
- flex: '1',
53
- width: 'calc(100% - 88px)'
54
- },
55
- empty: {
56
- border: "1px solid ".concat(theme.palette.input.bottomLine),
57
- color: "".concat(theme.palette.neutral.main, " !important")
58
- },
59
- complete: {
60
- border: "1px solid ".concat(theme.palette.positive.main),
61
- color: "".concat(theme.palette.positive.main, " !important"),
62
- fontSize: '32px'
63
- },
64
- error: {
65
- border: "1px solid ".concat(theme.palette.negative.main),
66
- color: "".concat(theme.palette.negative.main, " !important")
67
- }
68
- };
69
- };
70
-
71
- exports.styles = styles;
72
-
73
32
  var HiUploadField =
74
33
  /*#__PURE__*/
75
34
  function (_React$PureComponent) {
@@ -89,7 +48,8 @@ function (_React$PureComponent) {
89
48
  helperIcon = _this$props.helperIcon,
90
49
  helperText = _this$props.helperText,
91
50
  values = _this$props.values,
92
- others = (0, _objectWithoutProperties2.default)(_this$props, ["className", "label", "helperIcon", "helperText", "values"]);
51
+ fullWidth = _this$props.fullWidth,
52
+ others = (0, _objectWithoutProperties2.default)(_this$props, ["className", "label", "helperIcon", "helperText", "values", "fullWidth"]);
93
53
  var empty = true;
94
54
  var error = false;
95
55
  var errorText = '';
@@ -110,7 +70,8 @@ function (_React$PureComponent) {
110
70
  errorText: errorText,
111
71
  error: error,
112
72
  helperIcon: helperIcon,
113
- helperText: helperText
73
+ helperText: helperText,
74
+ fullWidth: fullWidth
114
75
  }, _react.default.createElement(_HiUpload.default, (0, _extends2.default)({
115
76
  values: values
116
77
  }, others)));
@@ -121,7 +82,9 @@ function (_React$PureComponent) {
121
82
 
122
83
  HiUploadField.defaultProps = {
123
84
  helperText: '',
124
- helperIcon: false
85
+ helperIcon: false,
86
+ seeFile: true,
87
+ fullWidth: false
125
88
  };
126
89
  HiUploadField.propTypes = process.env.NODE_ENV !== "production" ? {
127
90
  /**
@@ -134,6 +97,11 @@ HiUploadField.propTypes = process.env.NODE_ENV !== "production" ? {
134
97
  */
135
98
  className: _propTypes.default.string,
136
99
 
100
+ /**
101
+ * Si "true", applique l'attribut css correspondant
102
+ */
103
+ fullWidth: _propTypes.default.bool,
104
+
137
105
  /**
138
106
  * Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
139
107
  */
@@ -169,15 +137,15 @@ HiUploadField.propTypes = process.env.NODE_ENV !== "production" ? {
169
137
  */
170
138
  onSeeFile: _propTypes.default.func,
171
139
 
140
+ /**
141
+ * set to false to hide the eye button
142
+ */
143
+ seeFile: _propTypes.default.bool,
144
+
172
145
  /**
173
146
  * Valeurs des inputs
174
147
  */
175
148
  values: _propTypes.default.array
176
149
  } : {};
177
-
178
- var _default = (0, _withStyles.default)(styles, {
179
- hiComponent: true,
180
- name: 'HmuiHiUploadField'
181
- })(HiUploadField);
182
-
150
+ var _default = HiUploadField;
183
151
  exports.default = _default;
@@ -46,6 +46,7 @@ var styles = function styles(theme) {
46
46
  height: 40,
47
47
  display: 'inline-flex',
48
48
  justifyContent: 'flex-start',
49
+ cursor: 'pointer',
49
50
  '&$focused, &$dragOver': {
50
51
  backgroundColor: theme.palette.global.background1
51
52
  },
@@ -112,7 +113,7 @@ var styles = function styles(theme) {
112
113
  transform: 'scaleX(1)'
113
114
  },
114
115
  '&$error': {
115
- borderBottom: "1px solid ".concat(theme.palette.negative.normal)
116
+ borderBottom: "1px solid ".concat(theme.palette.negative.main)
116
117
  }
117
118
  }
118
119
  },
@@ -120,7 +121,8 @@ var styles = function styles(theme) {
120
121
  color: "".concat(theme.palette.action.disabled),
121
122
  '&:before': {
122
123
  display: 'none'
123
- }
124
+ },
125
+ cursor: 'default'
124
126
  },
125
127
  focused: {
126
128
  backgroundColor: theme.palette.background3
@@ -137,6 +139,7 @@ var styles = function styles(theme) {
137
139
  height: 39,
138
140
  display: 'inline-flex',
139
141
  width: '100%',
142
+ cursor: 'pointer',
140
143
  '&$empty': {
141
144
  opacity: 0.42
142
145
  }
@@ -160,7 +163,7 @@ var styles = function styles(theme) {
160
163
  }),
161
164
  '&:hover': {
162
165
  color: 'inherit',
163
- backgroundColor: theme.palette.local.background2
166
+ background: 'none'
164
167
  }
165
168
  }
166
169
  };
@@ -344,6 +347,12 @@ function (_React$Component) {
344
347
  droppable = _this$state.droppable; // On utilise classNames pour variabiliser les styles et merger les classes appliquées
345
348
 
346
349
  var rootClass = (0, _classnames.default)(classes.root, classes.inkbar, classes.underline, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.focused, focused), (0, _defineProperty2.default)(_classNames, classes.error, error && !focused), (0, _defineProperty2.default)(_classNames, classes.dragOver, dragOver), (0, _defineProperty2.default)(_classNames, classes.droppable, droppable), _classNames));
350
+
351
+ var eyeButton = _react.default.createElement(_HiIconButton.default, {
352
+ className: classes.icon,
353
+ onClick: this.handleSeeFile
354
+ }, _ref);
355
+
347
356
  return _react.default.createElement("div", {
348
357
  className: rootClass
349
358
  }, _react.default.createElement("label", {
@@ -358,10 +367,7 @@ function (_React$Component) {
358
367
  onChange: this.handleChange
359
368
  })), value === null || _react.default.createElement("div", {
360
369
  className: classes.endAdornment
361
- }, _react.default.createElement(_HiIconButton.default, {
362
- className: classes.icon,
363
- onClick: this.handleSeeFile
364
- }, _ref), _react.default.createElement(_HiIconButton.default, {
370
+ }, this.props.seeFile && eyeButton, _react.default.createElement(_HiIconButton.default, {
365
371
  className: classes.icon,
366
372
  onClick: this.handleDeleteFile
367
373
  }, _ref2)));
@@ -440,6 +446,11 @@ HiUploadInput.propTypes = process.env.NODE_ENV !== "production" ? {
440
446
  */
441
447
  placeholder: _propTypes.default.string,
442
448
 
449
+ /**
450
+ * set to false to hide the eye button
451
+ */
452
+ seeFile: _propTypes.default.bool,
453
+
443
454
  /**
444
455
  * The translations of the error messages.
445
456
  */
@@ -80,7 +80,7 @@ function (_React$PureComponent) {
80
80
  return id !== item.id;
81
81
  }), item);
82
82
  } else {
83
- onChange(event, (0, _toConsumableArray2.default)(value).concat([item.id]), item);
83
+ onChange(event, [].concat((0, _toConsumableArray2.default)(value), [item.id]), item);
84
84
  }
85
85
  };
86
86
 
@@ -91,14 +91,14 @@ function (_React$PureComponent) {
91
91
  var _this$props2 = _this.props,
92
92
  nextPage = _this$props2.nextPage,
93
93
  translations = _this$props2.translations;
94
- var itemList = (0, _toConsumableArray2.default)(options.length === 0 && !loading ? [{
94
+ var itemList = [].concat((0, _toConsumableArray2.default)(options.length === 0 && !loading ? [{
95
95
  id: '_no_result',
96
96
  type: 'text',
97
97
  disabled: true,
98
98
  centered: true,
99
99
  hideCheckbox: true,
100
100
  label: translations.no_result_match
101
- }] : []).concat((0, _toConsumableArray2.default)(options), (0, _toConsumableArray2.default)(!loading && nextPage === 'manual' ? [{
101
+ }] : []), (0, _toConsumableArray2.default)(options), (0, _toConsumableArray2.default)(!loading && nextPage === 'manual' ? [{
102
102
  id: '_next_page',
103
103
  type: 'button',
104
104
  centered: true,