@hipay/hipay-material-ui 2.0.0-beta.39 → 2.0.0-beta.41

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.
@@ -35,6 +35,8 @@ var _ButtonBase = _interopRequireDefault(require("@material-ui/core/ButtonBase")
35
35
 
36
36
  var _Icon = _interopRequireDefault(require("@material-ui/core/Icon"));
37
37
 
38
+ var _HiIcon = _interopRequireDefault(require("../HiIcon"));
39
+
38
40
  var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
39
41
 
40
42
  var _keycode = _interopRequireDefault(require("keycode"));
@@ -179,27 +181,38 @@ function (_React$PureComponent) {
179
181
  }
180
182
  };
181
183
 
184
+ _this.handleClick = function (event) {
185
+ if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
186
+ _this.props.onClick(event);
187
+ }
188
+ };
189
+
182
190
  _this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
191
+ _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
183
192
  return _this;
184
193
  }
185
194
 
186
195
  (0, _createClass2.default)(HiSelectInput, [{
187
196
  key: "render",
188
197
  value: function render() {
189
- var _classNames, _classNames2;
198
+ var _classNames,
199
+ _classNames2,
200
+ _this2 = this;
190
201
 
191
202
  var _this$props = this.props,
192
203
  classes = _this$props.classes,
193
204
  noButton = _this$props.noButton,
194
205
  disabled = _this$props.disabled,
195
206
  onClick = _this$props.onClick,
207
+ onReset = _this$props.onReset,
196
208
  value = _this$props.value,
197
209
  open = _this$props.open,
198
210
  focused = _this$props.focused,
199
211
  error = _this$props.error,
200
212
  id = _this$props.id,
201
213
  placeholder = _this$props.placeholder,
202
- refElement = _this$props.refElement; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
214
+ refElement = _this$props.refElement,
215
+ theme = _this$props.theme; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
203
216
 
204
217
  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), _classNames));
205
218
  var iconClass = (0, _classnames.default)(classes.icon, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.iconOpen, open), (0, _defineProperty2.default)(_classNames2, classes.iconClose, !open), _classNames2));
@@ -224,7 +237,7 @@ function (_React$PureComponent) {
224
237
  })) : _react.default.createElement(_ButtonBase.default, {
225
238
  id: id,
226
239
  className: rootClass,
227
- onClick: onClick,
240
+ onClick: this.handleClick,
228
241
  disabled: disabled,
229
242
  onMouseEnter: this.props.onMouseEnter,
230
243
  onMouseLeave: this.props.onMouseLeave,
@@ -236,7 +249,16 @@ function (_React$PureComponent) {
236
249
  }
237
250
  }, _react.default.createElement("span", {
238
251
  className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.placeholder, value === undefined))
239
- }, value || placeholder), _react.default.createElement(_Icon.default, {
252
+ }, value || placeholder), onReset && focused && _react.default.createElement("div", {
253
+ ref: function ref(el) {
254
+ _this2.resetIcon = el;
255
+ }
256
+ }, _react.default.createElement(_HiIcon.default, {
257
+ icon: "close",
258
+ size: 24,
259
+ color: theme.palette.neutral.main,
260
+ onClick: onReset
261
+ })), _react.default.createElement(_Icon.default, {
240
262
  classes: {
241
263
  root: iconClass
242
264
  }
@@ -315,6 +337,11 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
315
337
  */
316
338
  onMouseLeave: _propTypes.default.func,
317
339
 
340
+ /**
341
+ * Fonction de callback appelée lorsqu'on vide le champs
342
+ */
343
+ onReset: _propTypes.default.func,
344
+
318
345
  /**
319
346
  * Fonction de callback à la pression de la touche "Entrée"
320
347
  */
@@ -343,7 +370,8 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
343
370
 
344
371
  var _default = (0, _withStyles.default)(styles, {
345
372
  hiComponent: true,
346
- name: 'HmuiHiSelectInput'
373
+ name: 'HmuiHiSelectInput',
374
+ withTheme: true
347
375
  })(HiSelectInput);
348
376
 
349
377
  exports.default = _default;
@@ -125,7 +125,7 @@ class HiCheckbox extends React.Component {
125
125
 
126
126
  HiCheckbox.defaultProps = {
127
127
  checked: false,
128
- color: 'default',
128
+ color: 'inherit',
129
129
  size: 20,
130
130
  icon: 'check_box_outline_blank'
131
131
  };
@@ -148,7 +148,7 @@ HiCheckbox.propTypes = process.env.NODE_ENV !== "production" ? {
148
148
  /**
149
149
  * The color of the component. It supports those theme colors that make sense for this component.
150
150
  */
151
- color: PropTypes.oneOf(['default', 'primary', 'secondary', 'positive', 'negative', 'middle', 'neutral']),
151
+ color: PropTypes.oneOf(['inherit', 'primary', 'secondary', 'positive', 'negative', 'middle', 'neutral']),
152
152
 
153
153
  /**
154
154
  * icon à afficher quand le composant est non coché.
@@ -104,6 +104,10 @@ export const styles = theme => ({
104
104
  width: 40,
105
105
  display: 'inline-block'
106
106
  },
107
+ eraseButtonLabel: {
108
+ position: 'relative',
109
+ top: -2
110
+ },
107
111
  disabled: {
108
112
  borderBottom: 'none'
109
113
  },
@@ -288,6 +292,9 @@ class HiInput extends React.PureComponent {
288
292
 
289
293
  const eraseIcon = !multiline && onReset && focused && !disabled && value.length > 0 && React.createElement(HiIconButton, {
290
294
  className: classes.eraseButton,
295
+ classes: {
296
+ label: classes.eraseButtonLabel
297
+ },
291
298
  onClick: this.handleReset,
292
299
  onBlur: this.handleBlur
293
300
  }, _ref);
@@ -65,9 +65,9 @@ function HiIcon(props) {
65
65
 
66
66
  if (iconName.indexOf('fa-') === 0) {
67
67
  return React.createElement("i", _extends({
68
- className: classNames('fa', iconName, classes.root, {
68
+ className: classNames('fa', iconName, className, classes.root, {
69
69
  [classes[`color${capitalize(color)}`]]: color !== 'inherit'
70
- }, className),
70
+ }),
71
71
  style: {
72
72
  fontSize: size
73
73
  }
@@ -8,6 +8,7 @@ import { withStyles } from '../styles';
8
8
  import { fade } from '../styles/colorManipulator';
9
9
  import IconButton from '@material-ui/core/IconButton';
10
10
  export const styles = theme => ({
11
+ label: {},
11
12
  positive: {
12
13
  color: theme.palette.positive.main,
13
14
  '&:hover': {
@@ -69,7 +70,8 @@ function HiIconButton(props) {
69
70
  return React.createElement(IconButton, _extends({
70
71
  className: className,
71
72
  classes: {
72
- root: buttonClassNames
73
+ root: buttonClassNames,
74
+ label: classes.label
73
75
  },
74
76
  color: hcolor
75
77
  }, other), children);
@@ -488,6 +488,13 @@ class HiSelect extends React.PureComponent {
488
488
  }
489
489
  }
490
490
 
491
+ handleReset(event) {
492
+ if (this.props.onReset) {
493
+ event.stopPropagation();
494
+ this.props.onReset(event);
495
+ }
496
+ }
497
+
491
498
  render() {
492
499
  const _this$props = this.props,
493
500
  {
@@ -683,14 +690,14 @@ class HiSelect extends React.PureComponent {
683
690
  onMouseLeave: this.props.onMouseLeave,
684
691
  refElement: el => {
685
692
  this.selectInputElement = el;
686
- }
693
+ },
694
+ onReset: this.props.onReset
687
695
  }), open && staticPosition ? React.createElement("div", {
688
696
  style: popperStyle
689
697
  }, content) : React.createElement(Popper, {
690
698
  anchorEl: this.inputEl,
691
699
  placement: "bottom-start",
692
700
  open: open,
693
- eventsEnabled: open,
694
701
  className: popperClass,
695
702
  style: popperStyle,
696
703
  disablePortal: true
@@ -861,6 +868,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
861
868
  */
862
869
  onMouseLeave: PropTypes.func,
863
870
 
871
+ /**
872
+ * Fonction de callback appelée lorsqu'on vide le champs
873
+ */
874
+ onReset: PropTypes.func,
875
+
864
876
  /**
865
877
  * Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
866
878
  * A utiliser pour les selects avec des données dynamiques
@@ -77,7 +77,7 @@ export const styles = theme => ({
77
77
  }
78
78
  },
79
79
  disabled: {
80
- color: `${theme.palette.action.disabled}`,
80
+ color: `${theme.palette.text.disabled}`,
81
81
  '&:before': {
82
82
  display: 'none'
83
83
  }
@@ -126,7 +126,14 @@ class SelectInput extends React.PureComponent {
126
126
  }
127
127
  };
128
128
 
129
+ this.handleClick = event => {
130
+ if ((!this.resetIcon || !this.resetIcon.contains(event.target)) && this.props.onClick) {
131
+ this.props.onClick(event);
132
+ }
133
+ };
134
+
129
135
  this.handleKeyDown = this.handleKeyDown.bind(this);
136
+ this.handleClick = this.handleClick.bind(this);
130
137
  }
131
138
 
132
139
  render() {
@@ -135,12 +142,14 @@ class SelectInput extends React.PureComponent {
135
142
  noButton,
136
143
  disabled,
137
144
  onClick,
145
+ onReset,
138
146
  value,
139
147
  open,
140
148
  focused,
141
149
  error,
142
150
  id,
143
- refElement
151
+ refElement,
152
+ theme
144
153
  } = this.props; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
145
154
 
146
155
  const rootClass = classNames(classes.root, classes.inkbar, classes.underline, {
@@ -177,7 +186,7 @@ class SelectInput extends React.PureComponent {
177
186
  classes: {
178
187
  root: rootClass
179
188
  },
180
- onClick: onClick,
189
+ onClick: this.handleClick,
181
190
  disabled: disabled,
182
191
  onMouseEnter: this.props.onMouseEnter,
183
192
  onMouseLeave: this.props.onMouseLeave,
@@ -189,7 +198,16 @@ class SelectInput extends React.PureComponent {
189
198
  }
190
199
  }, React.createElement("span", {
191
200
  className: classes.label
192
- }, value), React.createElement(HiIcon, {
201
+ }, value), onReset && focused && React.createElement("div", {
202
+ ref: el => {
203
+ this.resetIcon = el;
204
+ }
205
+ }, React.createElement(HiIcon, {
206
+ icon: "close",
207
+ size: 24,
208
+ color: theme.palette.neutral.main,
209
+ onClick: onReset
210
+ })), React.createElement(HiIcon, {
193
211
  className: iconClass,
194
212
  icon: "arrow_drop_down"
195
213
  }));
@@ -262,6 +280,11 @@ SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
262
280
  */
263
281
  onMouseLeave: PropTypes.func,
264
282
 
283
+ /**
284
+ * Fonction de callback appelée lorsqu'on vide le champs
285
+ */
286
+ onReset: PropTypes.func,
287
+
265
288
  /**
266
289
  * Fonction de callback à la pression de la touche "Entrée"
267
290
  */
@@ -284,5 +307,6 @@ SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
284
307
  } : {};
285
308
  export default withStyles(styles, {
286
309
  hiComponent: true,
287
- name: 'HmuiSelectInput'
310
+ name: 'HmuiSelectInput',
311
+ withTheme: true
288
312
  })(SelectInput);
@@ -0,0 +1,111 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ // @inheritedComponent HiDynamicSelect
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import HiFormControl from '../HiForm/HiFormControl';
7
+ import HiDynamicSelect from './HiDynamicSelect';
8
+ /**
9
+ * Champs input pour formulaire
10
+ */
11
+
12
+ class HiDynamicSelectField extends React.PureComponent {
13
+ render() {
14
+ const _this$props = this.props,
15
+ {
16
+ label,
17
+ required,
18
+ disabled,
19
+ error,
20
+ errorText,
21
+ helperText,
22
+ helperIcon,
23
+ id,
24
+ name,
25
+ value,
26
+ options,
27
+ type,
28
+ multiple,
29
+ iconAll,
30
+ checkbox,
31
+ searchable,
32
+ translations,
33
+ className
34
+ } = _this$props,
35
+ others = _objectWithoutProperties(_this$props, ["label", "required", "disabled", "error", "errorText", "helperText", "helperIcon", "id", "name", "value", "options", "type", "multiple", "iconAll", "checkbox", "searchable", "translations", "className"]);
36
+
37
+ return React.createElement(HiFormControl, {
38
+ id: id,
39
+ label: label,
40
+ required: required,
41
+ disabled: disabled,
42
+ error: error,
43
+ errorText: errorText,
44
+ helperText: helperText,
45
+ helperIcon: helperIcon,
46
+ className: className
47
+ }, React.createElement(HiDynamicSelect, _extends({
48
+ id: id,
49
+ name: name,
50
+ value: value,
51
+ options: options,
52
+ type: type,
53
+ multiple: multiple,
54
+ iconAll: iconAll,
55
+ checkbox: checkbox,
56
+ searchable: searchable,
57
+ translations: translations,
58
+ disabled: disabled,
59
+ error: error
60
+ }, others)));
61
+ }
62
+
63
+ }
64
+
65
+ HiDynamicSelectField.propTypes = process.env.NODE_ENV !== "production" ? {
66
+ /**
67
+ * Surcharge des styles
68
+ */
69
+ className: PropTypes.string,
70
+
71
+ /**
72
+ * Si `true`, l'input sera inactif.
73
+ */
74
+ disabled: PropTypes.bool,
75
+
76
+ /**
77
+ * Si `true`, le champs sera en erreur.
78
+ */
79
+ error: PropTypes.bool,
80
+
81
+ /**
82
+ * Texte de l'erreur
83
+ */
84
+ errorText: PropTypes.string,
85
+
86
+ /**
87
+ * Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
88
+ */
89
+ helperIcon: PropTypes.bool,
90
+
91
+ /**
92
+ * Texte de l'aide
93
+ */
94
+ helperText: PropTypes.string,
95
+
96
+ /**
97
+ * id de l'élément input
98
+ */
99
+ id: PropTypes.string.isRequired,
100
+
101
+ /**
102
+ * Label du champs
103
+ */
104
+ label: PropTypes.string,
105
+
106
+ /**
107
+ * true si champs obligatoire
108
+ */
109
+ required: PropTypes.bool
110
+ } : {};
111
+ export default HiDynamicSelectField;
@@ -6,6 +6,7 @@ import React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import HiSelect from './HiSelect';
8
8
  import HiIcon from '../HiIcon';
9
+ import withStyles from "../styles/withStyles";
9
10
  /**
10
11
  * Return array of final item id in nested list (via props chlidren)
11
12
  * @param itemList
@@ -109,6 +110,24 @@ function buildFilteredItemList(itemList, selectedItemIdList = [], searchValue =
109
110
  v: visibleParent
110
111
  });
111
112
  }
113
+
114
+ export const styles = theme => ({
115
+ root: {
116
+ backgroundColor: theme.palette.background2,
117
+ maxWidth: 500,
118
+ width: '100%',
119
+ position: 'relative'
120
+ },
121
+ popper: {
122
+ // width: '100%',
123
+ zIndex: 1200
124
+ },
125
+ paper: {
126
+ borderRadius: '0px 2px',
127
+ maxHeight: 480,
128
+ transition: 'none !important'
129
+ }
130
+ });
112
131
  /**
113
132
  * HiNestedSelect hérite du composant HiSelect
114
133
  *
@@ -122,7 +141,6 @@ function buildFilteredItemList(itemList, selectedItemIdList = [], searchValue =
122
141
  * - si aucun enfant n'est sélectionné, le parent est affiché "unselected".
123
142
  */
124
143
 
125
-
126
144
  class HiNestedSelect extends React.PureComponent {
127
145
  constructor(props) {
128
146
  super(props);
@@ -235,9 +253,9 @@ class HiNestedSelect extends React.PureComponent {
235
253
  }), selectedItem.label);
236
254
  } else if (selectedItem.type === 'image') {
237
255
  inputValue = React.createElement("span", {
238
- className: classes.selectIconLabel
256
+ className: classes.selectImgLabel
239
257
  }, React.createElement("img", {
240
- className: classes.labelIcon,
258
+ className: classes.labelImg,
241
259
  src: selectedItem.img,
242
260
  alt: selectedItem.label
243
261
  }), selectedItem.label);
@@ -398,4 +416,7 @@ HiNestedSelect.propTypes = process.env.NODE_ENV !== "production" ? {
398
416
  */
399
417
  value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])
400
418
  } : {};
401
- export default HiNestedSelect;
419
+ export default withStyles(styles, {
420
+ hiComponent: true,
421
+ name: 'HmuiHiNestedSelect'
422
+ })(HiNestedSelect);
@@ -0,0 +1,111 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ // @inheritedComponent HiDynamicSelect
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import HiFormControl from '../HiForm/HiFormControl';
7
+ import HiNestedSelect from './HiNestedSelect';
8
+ /**
9
+ * Champs input pour formulaire
10
+ */
11
+
12
+ class HiNestedSelectField extends React.PureComponent {
13
+ render() {
14
+ const _this$props = this.props,
15
+ {
16
+ label,
17
+ required,
18
+ disabled,
19
+ error,
20
+ errorText,
21
+ helperText,
22
+ helperIcon,
23
+ id,
24
+ name,
25
+ value,
26
+ options,
27
+ type,
28
+ multiple,
29
+ iconAll,
30
+ checkbox,
31
+ searchable,
32
+ translations,
33
+ className
34
+ } = _this$props,
35
+ others = _objectWithoutProperties(_this$props, ["label", "required", "disabled", "error", "errorText", "helperText", "helperIcon", "id", "name", "value", "options", "type", "multiple", "iconAll", "checkbox", "searchable", "translations", "className"]);
36
+
37
+ return React.createElement(HiFormControl, {
38
+ id: id,
39
+ label: label,
40
+ required: required,
41
+ disabled: disabled,
42
+ error: error,
43
+ errorText: errorText,
44
+ helperText: helperText,
45
+ helperIcon: helperIcon,
46
+ className: className
47
+ }, React.createElement(HiNestedSelect, _extends({
48
+ id: id,
49
+ name: name,
50
+ value: value,
51
+ options: options,
52
+ type: type,
53
+ multiple: multiple,
54
+ iconAll: iconAll,
55
+ checkbox: checkbox,
56
+ searchable: searchable,
57
+ translations: translations,
58
+ disabled: disabled,
59
+ error: error
60
+ }, others)));
61
+ }
62
+
63
+ }
64
+
65
+ HiNestedSelectField.propTypes = process.env.NODE_ENV !== "production" ? {
66
+ /**
67
+ * Surcharge des styles
68
+ */
69
+ className: PropTypes.string,
70
+
71
+ /**
72
+ * Si `true`, l'input sera inactif.
73
+ */
74
+ disabled: PropTypes.bool,
75
+
76
+ /**
77
+ * Si `true`, le champs sera en erreur.
78
+ */
79
+ error: PropTypes.bool,
80
+
81
+ /**
82
+ * Texte de l'erreur
83
+ */
84
+ errorText: PropTypes.string,
85
+
86
+ /**
87
+ * Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
88
+ */
89
+ helperIcon: PropTypes.bool,
90
+
91
+ /**
92
+ * Texte de l'aide
93
+ */
94
+ helperText: PropTypes.string,
95
+
96
+ /**
97
+ * id de l'élément input
98
+ */
99
+ id: PropTypes.string.isRequired,
100
+
101
+ /**
102
+ * Label du champs
103
+ */
104
+ label: PropTypes.string,
105
+
106
+ /**
107
+ * true si champs obligatoire
108
+ */
109
+ required: PropTypes.bool
110
+ } : {};
111
+ export default HiNestedSelectField;
@@ -23,7 +23,7 @@ export const styles = theme => ({
23
23
  position: 'relative'
24
24
  },
25
25
  popper: {
26
- // width: '100%',
26
+ width: '100%',
27
27
  zIndex: 1200
28
28
  },
29
29
  paper: {
@@ -34,6 +34,12 @@ export const styles = theme => ({
34
34
  labelIcon: {
35
35
  marginRight: 10
36
36
  },
37
+ labelImg: {
38
+ height: 18,
39
+ width: 'auto',
40
+ margin: '0 4px',
41
+ verticalAlign: 'middle'
42
+ },
37
43
  selectIconLabel: _objectSpread({
38
44
  whiteSpace: 'nowrap',
39
45
  overflow: 'hidden',
@@ -42,6 +48,15 @@ export const styles = theme => ({
42
48
  }, theme.typography.b1, {
43
49
  display: 'inline-flex',
44
50
  width: '100%'
51
+ }),
52
+ selectImgLabel: _objectSpread({
53
+ whiteSpace: 'nowrap',
54
+ overflow: 'hidden',
55
+ textOverflow: 'ellipsis',
56
+ paddingRight: 16
57
+ }, theme.typography.b1, {
58
+ display: 'inline-flex',
59
+ width: '100%'
45
60
  })
46
61
  });
47
62
  /**
@@ -297,7 +312,7 @@ class HiSelect extends React.PureComponent {
297
312
  inputValue = React.createElement("span", {
298
313
  className: classes.selectIconLabel
299
314
  }, React.createElement("img", {
300
- className: classes.labelIcon,
315
+ className: classes.labelImg,
301
316
  src: item.img,
302
317
  alt: item.label
303
318
  }), item.label);
@@ -324,6 +339,7 @@ class HiSelect extends React.PureComponent {
324
339
  this.handleSearchReset = this.handleSearchReset.bind(this);
325
340
  this.handleSelect = this.handleSelect.bind(this);
326
341
  this.handleSuggestions = this.handleSuggestions.bind(this);
342
+ this.getInputElement = this.getInputElement.bind(this);
327
343
  }
328
344
 
329
345
  static getDerivedStateFromProps(nextProps, prevState) {
@@ -336,6 +352,14 @@ class HiSelect extends React.PureComponent {
336
352
  return null;
337
353
  }
338
354
 
355
+ getInputElement(el) {
356
+ this.searchField = el;
357
+
358
+ if (this.props.inputRef) {
359
+ this.props.inputRef(this.searchField);
360
+ }
361
+ }
362
+
339
363
  render() {
340
364
  const {
341
365
  classes,
@@ -395,9 +419,7 @@ class HiSelect extends React.PureComponent {
395
419
  }, !!searchable && React.createElement(HiInput, {
396
420
  value: searchValue,
397
421
  autoFocus: true,
398
- inputRef: el => {
399
- this.searchField = el;
400
- },
422
+ inputRef: this.getInputElement,
401
423
  onKeyDown: this.handleKeyDownSearch,
402
424
  onChange: this.handleSearch,
403
425
  onReset: this.handleSearchReset,
@@ -441,6 +463,7 @@ class HiSelect extends React.PureComponent {
441
463
  onSubmit: onSubmit,
442
464
  onMouseEnter: this.props.onMouseEnter,
443
465
  onMouseLeave: this.props.onMouseLeave,
466
+ onReset: this.props.onReset,
444
467
  placeholder: placeholder
445
468
  }, hiSelectInputProps, {
446
469
  refElement: el => {
@@ -452,7 +475,6 @@ class HiSelect extends React.PureComponent {
452
475
  anchorEl: this.inputEl,
453
476
  placement: "bottom-start",
454
477
  open: open,
455
- eventsEnabled: open,
456
478
  className: classes.popper,
457
479
  disablePortal: true
458
480
  }, content));
@@ -571,6 +593,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
571
593
  */
572
594
  onMouseLeave: PropTypes.func,
573
595
 
596
+ /**
597
+ * Fonction de callback appelée lorsqu'on vide le champs
598
+ */
599
+ onReset: PropTypes.func,
600
+
574
601
  /**
575
602
  * Fonction de callback appelée lorsque le scroll atteint le bas de la liste
576
603
  */