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

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.
@@ -75,10 +75,6 @@ var _ref = _react.default.createElement(_HiIcon.default, {
75
75
  icon: "keyboard_arrow_up"
76
76
  });
77
77
 
78
- var _ref2 = _react.default.createElement(_HiIcon.default, {
79
- icon: "keyboard_arrow_down"
80
- });
81
-
82
78
  var HiAppBar =
83
79
  /*#__PURE__*/
84
80
  function (_React$Component) {
@@ -99,15 +95,7 @@ function (_React$Component) {
99
95
  (0, _createClass2.default)(HiAppBar, [{
100
96
  key: "handleCollapse",
101
97
  value: function handleCollapse() {
102
- if (this.props.onCollapse) {
103
- this.props.onCollapse();
104
- } else {
105
- this.setState(function (prevState) {
106
- return {
107
- collapsed: !prevState.collapsed
108
- };
109
- });
110
- }
98
+ this.props.onCollapse(!this.state.collapsed);
111
99
  }
112
100
  }, {
113
101
  key: "render",
@@ -116,8 +104,7 @@ function (_React$Component) {
116
104
  children = _this$props.children,
117
105
  classes = _this$props.classes,
118
106
  className = _this$props.className,
119
- _this$props$collapsed = _this$props.collapsed,
120
- collapsed = _this$props$collapsed === void 0 ? this.state.collapsed : _this$props$collapsed,
107
+ collapsed = _this$props.collapsed,
121
108
  focused = _this$props.focused,
122
109
  hideable = _this$props.hideable,
123
110
  position = _this$props.position,
@@ -137,11 +124,7 @@ function (_React$Component) {
137
124
  onClick: this.handleCollapse,
138
125
  color: "inherit",
139
126
  className: classes.iconButton
140
- }, _ref)))), hideable && collapsed && _react.default.createElement(_HiIconButton.default, {
141
- onClick: this.handleCollapse,
142
- color: "inherit",
143
- className: classes.collapseButton
144
- }, _ref2));
127
+ }, _ref)))));
145
128
  }
146
129
  }]);
147
130
  return HiAppBar;
@@ -29,6 +29,12 @@ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
29
29
  var styles = function styles(theme) {
30
30
  return {
31
31
  root: {},
32
+ flatNeutral: {
33
+ color: theme.palette.neutral.main,
34
+ '&$disabled': {
35
+ color: theme.palette.action.disabled
36
+ }
37
+ },
32
38
  flatPositive: {
33
39
  color: theme.palette.positive.main,
34
40
  '&:hover': {
@@ -37,6 +43,9 @@ var styles = function styles(theme) {
37
43
  '@media (hover: none)': {
38
44
  backgroundColor: 'transparent'
39
45
  }
46
+ },
47
+ '&$disabled': {
48
+ color: theme.palette.action.disabled
40
49
  }
41
50
  },
42
51
  flatNegative: {
@@ -47,6 +56,9 @@ var styles = function styles(theme) {
47
56
  '@media (hover: none)': {
48
57
  backgroundColor: 'transparent'
49
58
  }
59
+ },
60
+ '&$disabled': {
61
+ color: theme.palette.action.disabled
50
62
  }
51
63
  },
52
64
  flatMiddle: {
@@ -57,16 +69,9 @@ var styles = function styles(theme) {
57
69
  '@media (hover: none)': {
58
70
  backgroundColor: 'transparent'
59
71
  }
60
- }
61
- },
62
- flatNeutral: {
63
- color: theme.palette.neutral.main,
64
- '&:hover': {
65
- backgroundColor: (0, _colorManipulator.fade)(theme.palette.neutral.main, theme.palette.action.hoverOpacity),
66
- // Reset on touch devices, it doesn't add specificity
67
- '@media (hover: none)': {
68
- backgroundColor: 'transparent'
69
- }
72
+ },
73
+ '&$disabled': {
74
+ color: theme.palette.action.disabled
70
75
  }
71
76
  },
72
77
 
@@ -80,6 +85,10 @@ var styles = function styles(theme) {
80
85
  '@media (hover: none)': {
81
86
  backgroundColor: theme.palette.positive.main
82
87
  }
88
+ },
89
+ '&$disabled': {
90
+ color: theme.palette.neutral.contrastText,
91
+ backgroundColor: theme.palette.neutral.main
83
92
  }
84
93
  },
85
94
 
@@ -93,6 +102,10 @@ var styles = function styles(theme) {
93
102
  '@media (hover: none)': {
94
103
  backgroundColor: theme.palette.negative.main
95
104
  }
105
+ },
106
+ '&$disabled': {
107
+ color: theme.palette.neutral.contrastText,
108
+ backgroundColor: theme.palette.neutral.main
96
109
  }
97
110
  },
98
111
 
@@ -106,6 +119,10 @@ var styles = function styles(theme) {
106
119
  '@media (hover: none)': {
107
120
  backgroundColor: theme.palette.middle.main
108
121
  }
122
+ },
123
+ '&$disabled': {
124
+ color: theme.palette.neutral.contrastText,
125
+ backgroundColor: theme.palette.neutral.main
109
126
  }
110
127
  },
111
128
 
@@ -119,6 +136,10 @@ var styles = function styles(theme) {
119
136
  '@media (hover: none)': {
120
137
  backgroundColor: theme.palette.neutral.main
121
138
  }
139
+ },
140
+ '&$disabled': {
141
+ color: theme.palette.neutral.contrastText,
142
+ backgroundColor: theme.palette.neutral.main
122
143
  }
123
144
  },
124
145
 
@@ -152,7 +173,8 @@ var styles = function styles(theme) {
152
173
  '&:hover': {
153
174
  border: "1px solid ".concat(theme.palette.neutral.main)
154
175
  }
155
- }
176
+ },
177
+ disabled: {}
156
178
  };
157
179
  };
158
180
 
@@ -166,18 +188,20 @@ function HiButton(props) {
166
188
  className = props.className,
167
189
  color = props.color,
168
190
  variant = props.variant,
169
- other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "color", "variant"]);
191
+ disabled = props.disabled,
192
+ other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "color", "variant", "disabled"]);
170
193
  var hcolor = ['positive', 'negative', 'middle', 'neutral'].includes(color) ? 'inherit' : color;
171
194
  var fab = variant === 'fab' || variant === 'extendedFab';
172
195
  var contained = variant === 'contained' || variant === 'raised';
173
- var buttonClassNames = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.flatPositive, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.flatNegative, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.flatMiddle, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.flatNeutral, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'neutral'), (0, _defineProperty2.default)(_classNames, classes.containedPositive, (contained || fab) && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.containedNegative, (contained || fab) && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.containedMiddle, (contained || fab) && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.containedNeutral, (contained || fab) && color === 'neutral'), (0, _defineProperty2.default)(_classNames, classes.outlinedPositive, variant === 'outlined' && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.outlinedNegative, variant === 'outlined' && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.outlinedMiddle, variant === 'outlined' && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.outlinedNeutral, variant === 'outlined' && color === 'neutral'), _classNames));
196
+ var buttonClassNames = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.flatPositive, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.flatNegative, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.flatMiddle, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.flatNeutral, (variant === 'text' || variant === 'flat' || variant === 'outlined') && (color === 'default' || color === 'neutral')), (0, _defineProperty2.default)(_classNames, classes.containedPositive, (contained || fab) && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.containedNegative, (contained || fab) && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.containedMiddle, (contained || fab) && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.containedNeutral, (contained || fab) && (color === 'default' || color === 'neutral')), (0, _defineProperty2.default)(_classNames, classes.outlinedPositive, variant === 'outlined' && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.outlinedNegative, variant === 'outlined' && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.outlinedMiddle, variant === 'outlined' && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.outlinedNeutral, variant === 'outlined' && (color === 'default' || color === 'neutral')), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames));
174
197
  return _react.default.createElement(_Button.default, (0, _extends2.default)({
175
198
  className: className,
176
199
  classes: {
177
200
  root: buttonClassNames
178
201
  },
179
202
  color: hcolor,
180
- variant: variant
203
+ variant: variant,
204
+ disabled: disabled
181
205
  }, other), children);
182
206
  }
183
207
 
@@ -203,7 +227,7 @@ HiButton.propTypes = process.env.NODE_ENV !== "production" ? {
203
227
  variant: _propTypes.default.oneOf(['text', 'flat', 'outlined', 'contained', 'raised', 'fab', 'extendedFab'])
204
228
  } : {};
205
229
  HiButton.defaultProps = {
206
- color: 'default',
230
+ color: 'neutral',
207
231
  variant: 'text'
208
232
  };
209
233
 
@@ -27,7 +27,7 @@ var _colorManipulator = require("../styles/colorManipulator");
27
27
 
28
28
  var styles = function styles(theme) {
29
29
  return {
30
- root: (0, _extends2.default)({}, theme.typography.b3, {
30
+ root: (0, _extends2.default)({}, theme.typography.b1, {
31
31
  display: 'inline-block',
32
32
  alignItems: 'baseline',
33
33
  maxWidth: '100%',
@@ -147,7 +147,12 @@ function HiColoredLabel(props) {
147
147
  }, fontWeight && {
148
148
  fontWeight: fontWeight
149
149
  })
150
- }, other), label);
150
+ }, other, {
151
+ // eslint-disable-next-line react/no-danger
152
+ dangerouslySetInnerHTML: {
153
+ __html: (0, _helpers.escapeHTML)(label)
154
+ }
155
+ }));
151
156
  }
152
157
 
153
158
  HiColoredLabel.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -292,8 +292,6 @@ function (_React$Component) {
292
292
  }, props);
293
293
  var inputProps = (0, _extends2.default)({}, onReset && {
294
294
  onReset: this.handleReset
295
- }, {
296
- onBlur: this.handleBlur
297
295
  }, props, {
298
296
  onChange: this.handleInputChange
299
297
  });
package/HiForm/HiInput.js CHANGED
@@ -219,6 +219,10 @@ function (_React$PureComponent) {
219
219
  // Si on click sur un élément de HiInput, on garde le focus
220
220
  // Par exemple sur l'icone reset
221
221
  if (event.relatedTarget && this.overlayNode && this.overlayNode.contains(event.relatedTarget)) {
222
+ if (this.endAdornmentNode.contains(event.relatedTarget) && this.props.onBlur) {
223
+ this.props.onBlur(event);
224
+ }
225
+
222
226
  event.stopPropagation();
223
227
  } else {
224
228
  this.setState({
@@ -390,6 +394,15 @@ function (_React$PureComponent) {
390
394
  }
391
395
  }));
392
396
  }
397
+ }], [{
398
+ key: "getDerivedStateFromProps",
399
+ value: function getDerivedStateFromProps(nextProps, prevState) {
400
+ if (typeof nextProps.focused !== 'undefined' && nextProps.focused !== prevState.focused) {
401
+ return {
402
+ focused: nextProps.focused
403
+ };
404
+ }
405
+ }
393
406
  }]);
394
407
  return HiInput;
395
408
  }(_react.default.PureComponent);
@@ -445,6 +458,12 @@ HiInput.propTypes = process.env.NODE_ENV !== "production" ? {
445
458
  */
446
459
  error: _propTypes.default.bool,
447
460
 
461
+ /**
462
+ * Force le focus de l'input et surcharge le comportement par défaut
463
+ * où le focus est géré dans le state.
464
+ */
465
+ focused: _propTypes.default.bool,
466
+
448
467
  /**
449
468
  * Utile pour surcharger les classes de l'input
450
469
  */
package/HiIcon/HiIcon.js CHANGED
@@ -34,42 +34,48 @@ var mdi = _interopRequireWildcard(require("mdi-material-ui"));
34
34
  var styles = function styles(theme) {
35
35
  return {
36
36
  /* Styles applied to the root element. */
37
- root: {},
37
+ root: {
38
+ /* Styles applied to the root element if `color="primary"`. */
39
+ '&$colorPrimary': {
40
+ color: theme.palette.primary.main
41
+ },
42
+
43
+ /* Styles applied to the root element if `color="secondary"`. */
44
+ '&$colorSecondary': {
45
+ color: theme.palette.secondary.main
46
+ },
47
+
48
+ /* Styles applied to the root element if `color="positive"`. */
49
+ '&$colorPositive': {
50
+ color: theme.palette.positive.main
51
+ },
52
+
53
+ /* Styles applied to the root element if `color="negative"`. */
54
+ '&$colorNegative': {
55
+ color: theme.palette.negative.main
56
+ },
57
+
58
+ /* Styles applied to the root element if `color="middle"`. */
59
+ '&$colorMiddle': {
60
+ color: theme.palette.middle.main
61
+ },
62
+
63
+ /* Styles applied to the root element if `color="neutral"`. */
64
+ '&$colorNeutral': {
65
+ color: theme.palette.neutral.main
66
+ }
67
+ },
38
68
 
39
69
  /* Styles applied to the root element. */
40
70
  faIcon: {
41
71
  fontSize: 20
42
72
  },
43
-
44
- /* Styles applied to the root element if `color="primary"`. */
45
- colorPrimary: {
46
- color: theme.palette.primary.main
47
- },
48
-
49
- /* Styles applied to the root element if `color="secondary"`. */
50
- colorSecondary: {
51
- color: theme.palette.secondary.main
52
- },
53
-
54
- /* Styles applied to the root element if `color="positive"`. */
55
- colorPositive: {
56
- color: theme.palette.positive.main
57
- },
58
-
59
- /* Styles applied to the root element if `color="negative"`. */
60
- colorNegative: {
61
- color: theme.palette.negative.main
62
- },
63
-
64
- /* Styles applied to the root element if `color="middle"`. */
65
- colorMiddle: {
66
- color: theme.palette.middle.main
67
- },
68
-
69
- /* Styles applied to the root element if `color="neutral"`. */
70
- colorNeutral: {
71
- color: theme.palette.neutral.main
72
- }
73
+ colorPrimary: {},
74
+ colorSecondary: {},
75
+ colorPositive: {},
76
+ colorNegative: {},
77
+ colorMiddle: {},
78
+ colorNeutral: {}
73
79
  };
74
80
  };
75
81
 
@@ -35,6 +35,8 @@ var _HiIcon = _interopRequireDefault(require("../HiIcon"));
35
35
 
36
36
  var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
37
37
 
38
+ var _helpers = require("../utils/helpers");
39
+
38
40
  // @inheritedComponent HiSelect
39
41
 
40
42
  /**
@@ -86,6 +88,8 @@ function findFinalItemRecursively(itemList, searchId) {
86
88
  * @param visibleParent - visibility of the list parent item (default false)
87
89
  * @param pinnedParent - parent will be displayed as pinned items
88
90
  * @param disabledParent - parent will not be selectable
91
+ * @param nbChildrenAsInfo - Show children number as info
92
+ * @param translations - Translations
89
93
  * @returns {*}
90
94
  */
91
95
 
@@ -96,12 +100,14 @@ function buildFilteredItemList(itemList) {
96
100
  var visibleParent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
97
101
  var pinnedParent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
98
102
  var disabledParent = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
103
+ var nbChildrenAsInfo = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
104
+ var translations = arguments.length > 7 ? arguments[7] : undefined;
99
105
  return itemList.reduce(function (_ref, item) {
100
106
  var memoItemList = _ref.l,
101
107
  memoSelected = _ref.s,
102
108
  memoUnselected = _ref.u,
103
109
  memoVisible = _ref.v;
104
- var itemVisible = searchValue === '' || item.label.toString().toLowerCase().search(searchValue.toLowerCase()) !== -1; // Parent item
110
+ var itemVisible = searchValue === '' || (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(searchValue.toLowerCase())) !== -1; // Parent item
105
111
 
106
112
  if (item.children) {
107
113
  var _buildFilteredItemLis = buildFilteredItemList(item.children, selectedItemIdList, searchValue, itemVisible, pinnedParent, disabledParent),
@@ -110,6 +116,10 @@ function buildFilteredItemList(itemList) {
110
116
  unselected = _buildFilteredItemLis.u,
111
117
  visible = _buildFilteredItemLis.v;
112
118
 
119
+ if (nbChildrenAsInfo) {
120
+ item.info = translations.n_children.replace('%s', item.children.length);
121
+ }
122
+
113
123
  return {
114
124
  l: (0, _toConsumableArray2.default)(memoItemList).concat([(0, _extends2.default)({}, item, disabledParent && {
115
125
  disabled: true,
@@ -161,7 +171,31 @@ var styles = function styles(theme) {
161
171
  borderRadius: '0px 2px',
162
172
  maxHeight: 480,
163
173
  transition: 'none !important'
164
- }
174
+ },
175
+ labelImg: {
176
+ height: 18,
177
+ width: 'auto',
178
+ margin: '0 4px',
179
+ verticalAlign: 'middle'
180
+ },
181
+ selectIconLabel: (0, _extends2.default)({
182
+ whiteSpace: 'nowrap',
183
+ overflow: 'hidden',
184
+ textOverflow: 'ellipsis',
185
+ paddingRight: 16
186
+ }, theme.typography.b1, {
187
+ display: 'inline-flex',
188
+ width: '100%'
189
+ }),
190
+ selectImgLabel: (0, _extends2.default)({
191
+ whiteSpace: 'nowrap',
192
+ overflow: 'hidden',
193
+ textOverflow: 'ellipsis',
194
+ paddingRight: 16
195
+ }, theme.typography.b1, {
196
+ display: 'inline-flex',
197
+ width: '100%'
198
+ })
165
199
  };
166
200
  };
167
201
  /**
@@ -249,10 +283,11 @@ function (_React$PureComponent) {
249
283
  hasAll = _this$props2.hasAll,
250
284
  iconAll = _this$props2.iconAll,
251
285
  multiple = _this$props2.multiple,
286
+ nbChildrenAsInfo = _this$props2.nbChildrenAsInfo,
252
287
  pinnedParent = _this$props2.pinnedParent,
253
288
  translations = _this$props2.translations; // build item list
254
289
 
255
- var _buildFilteredItemLis2 = buildFilteredItemList(options, value, search, false, pinnedParent, disabledParent || !multiple),
290
+ var _buildFilteredItemLis2 = buildFilteredItemList(options, value, search, false, pinnedParent, disabledParent || !multiple, nbChildrenAsInfo, translations),
256
291
  filteredItemList = _buildFilteredItemLis2.l,
257
292
  allSelected = _buildFilteredItemLis2.s,
258
293
  allUnselected = _buildFilteredItemLis2.u,
@@ -389,7 +424,7 @@ HiNestedSelect.defaultProps = {
389
424
  search: 'Search',
390
425
  n_items_selected: '%s items selected',
391
426
  one_item_selected: '%s item selected',
392
- n_children: '%s items',
427
+ n_children: '%s',
393
428
  one_child: '%s item'
394
429
  }
395
430
  };
@@ -434,6 +469,11 @@ HiNestedSelect.propTypes = process.env.NODE_ENV !== "production" ? {
434
469
  */
435
470
  name: _propTypes.default.string.isRequired,
436
471
 
472
+ /**
473
+ * Définit si l'on doit afficher le nombre d'enfants du parent dans son champ info
474
+ */
475
+ nbChildrenAsInfo: _propTypes.default.bool,
476
+
437
477
  /**
438
478
  * Fonction de callback qui renvoit la/les valeurs sélectionnées
439
479
  *
@@ -62,7 +62,7 @@ var styles = function styles(theme) {
62
62
  position: 'relative'
63
63
  },
64
64
  popper: {
65
- width: '100%',
65
+ width: '100% !important',
66
66
  zIndex: 1200
67
67
  },
68
68
  paper: {
@@ -193,7 +193,9 @@ function (_React$PureComponent) {
193
193
 
194
194
  if (_this.overlay && (key === 'down' || key === 'up')) {
195
195
  _this.focusOnFirstItem();
196
- } else if (_this.overlay && key === 'esc') {
196
+ } else if (_this.overlay && key === 'esc' || key === 'enter') {
197
+ event.preventDefault();
198
+
197
199
  _this.handleClose();
198
200
  }
199
201
  };
@@ -336,8 +338,14 @@ function (_React$PureComponent) {
336
338
  hideCheckbox: true,
337
339
  label: 'loading'
338
340
  }] : []).concat((0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
339
- return item.label && item.label.toString().toLowerCase().search(search.toLowerCase()) !== -1;
340
- })) : (0, _toConsumableArray2.default)(options)));
341
+ return item.label && (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(search.toLowerCase())) !== -1;
342
+ })) : (0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
343
+ id: '_all',
344
+ label: _this.props.translations.all
345
+ }, _this.props.iconAll && {
346
+ type: 'icon',
347
+ icon: _this.props.iconAll
348
+ })] : []).concat((0, _toConsumableArray2.default)(options))));
341
349
  return {
342
350
  itemList: itemList,
343
351
  inputValue: _this.buildInputValue(options, value, loading)
@@ -181,14 +181,54 @@ function (_React$PureComponent) {
181
181
  }
182
182
  };
183
183
 
184
+ _this.handleKeyDownReset = function (event) {
185
+ var key = (0, _keycode.default)(event);
186
+
187
+ if (key === 'enter' || key === 'space') {
188
+ _this.handleReset(event);
189
+
190
+ event.stopPropagation();
191
+ event.preventDefault();
192
+ }
193
+ };
194
+
184
195
  _this.handleClick = function (event) {
185
196
  if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
186
197
  _this.props.onClick(event);
187
198
  }
188
199
  };
189
200
 
201
+ _this.handleReset = function (event) {
202
+ _this.props.onReset(event);
203
+
204
+ if (_this.input) {
205
+ _this.input.focus();
206
+ }
207
+ };
208
+
209
+ _this.handleBlur = function (event) {
210
+ if ((!_this.input || !_this.input.contains(event.relatedTarget)) && _this.props.onBlur) {
211
+ _this.props.onBlur(event);
212
+ } else {
213
+ if (_this.input && (!_this.resetIcon || !_this.resetIcon.contains(event.relatedTarget))) {
214
+ _this.input.focus();
215
+ }
216
+ }
217
+ };
218
+
219
+ _this.handleRef = function (el) {
220
+ _this.input = el;
221
+
222
+ if (_this.props.refElement) {
223
+ _this.props.refElement(el);
224
+ }
225
+ };
226
+
190
227
  _this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
191
228
  _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
229
+ _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
230
+ _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
231
+ _this.handleReset = _this.handleReset.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
192
232
  return _this;
193
233
  }
194
234
 
@@ -210,9 +250,7 @@ function (_React$PureComponent) {
210
250
  focused = _this$props.focused,
211
251
  error = _this$props.error,
212
252
  id = _this$props.id,
213
- placeholder = _this$props.placeholder,
214
- refElement = _this$props.refElement,
215
- theme = _this$props.theme; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
253
+ placeholder = _this$props.placeholder; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
216
254
 
217
255
  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));
218
256
  var iconClass = (0, _classnames.default)(classes.icon, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.iconOpen, open), (0, _defineProperty2.default)(_classNames2, classes.iconClose, !open), _classNames2));
@@ -227,9 +265,7 @@ function (_React$PureComponent) {
227
265
  onBlur: this.props.onBlur,
228
266
  role: "button",
229
267
  tabIndex: "0",
230
- ref: function ref(el) {
231
- if (refElement) refElement(el);
232
- }
268
+ ref: this.handleRef
233
269
  }, _react.default.createElement("span", {
234
270
  className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.placeholder, value === undefined))
235
271
  }, value || placeholder), _react.default.createElement(_ArrowDropDown.default, {
@@ -243,10 +279,8 @@ function (_React$PureComponent) {
243
279
  onMouseLeave: this.props.onMouseLeave,
244
280
  onKeyDown: this.handleKeyDown,
245
281
  onFocus: this.props.onFocus,
246
- onBlur: this.props.onBlur,
247
- buttonRef: function buttonRef(el) {
248
- if (refElement) refElement(el);
249
- }
282
+ onBlur: this.handleBlur,
283
+ buttonRef: this.handleRef
250
284
  }, _react.default.createElement("span", {
251
285
  className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.placeholder, value === undefined))
252
286
  }, value || placeholder), onReset && focused && _react.default.createElement("div", {
@@ -255,9 +289,11 @@ function (_React$PureComponent) {
255
289
  }
256
290
  }, _react.default.createElement(_HiIcon.default, {
257
291
  icon: "close",
258
- size: 24,
259
- color: theme.palette.neutral.main,
260
- onClick: onReset
292
+ size: 20,
293
+ color: "neutral",
294
+ onClick: this.handleReset,
295
+ onKeyDown: this.handleKeyDownReset,
296
+ tabIndex: 0
261
297
  })), _react.default.createElement(_Icon.default, {
262
298
  classes: {
263
299
  root: iconClass
@@ -370,8 +406,7 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
370
406
 
371
407
  var _default = (0, _withStyles.default)(styles, {
372
408
  hiComponent: true,
373
- name: 'HmuiHiSelectInput',
374
- withTheme: true
409
+ name: 'HmuiHiSelectInput'
375
410
  })(HiSelectInput);
376
411
 
377
412
  exports.default = _default;
@@ -111,7 +111,10 @@ var styles = function styles(theme) {
111
111
  }, theme.typography.b1, {
112
112
  fontWeight: 'inherit',
113
113
  width: '100%',
114
- padding: '5px 0'
114
+ padding: '5px 0',
115
+ '& strong': {
116
+ fontWeight: theme.typography.fontWeightMedium
117
+ }
115
118
  }),
116
119
  label: {
117
120
  display: 'inline-block',
@@ -259,6 +262,7 @@ function (_React$Component) {
259
262
  hideCheckbox = _this$props2.hideCheckbox,
260
263
  onSelect = _this$props2.onSelect,
261
264
  indeterminate = _this$props2.indeterminate,
265
+ indeterminateIcon = _this$props2.indeterminateIcon,
262
266
  icon = _this$props2.icon,
263
267
  id = _this$props2.id,
264
268
  img = _this$props2.img,
@@ -317,7 +321,8 @@ function (_React$Component) {
317
321
  ,
318
322
  disabled: disabled,
319
323
  icon: displayedIcon,
320
- indeterminate: indeterminate
324
+ indeterminate: indeterminate,
325
+ indeterminateIcon: indeterminateIcon
321
326
  }), _react.default.createElement("div", {
322
327
  className: (0, _classnames.default)(classes.listItemContent, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.centered, centered), (0, _defineProperty2.default)(_classNames2, classes.primaryHighlight, type === 'primary-highlight'), _classNames2)),
323
328
  "data-id": id
@@ -351,6 +356,7 @@ HiSelectableListItem.defaultProps = {
351
356
  hideCheckbox: false,
352
357
  hoverIcon: 'check_box_outline_blank',
353
358
  checkedIcon: 'check_box',
359
+ indeterminateIcon: 'indeterminate_check_box',
354
360
  indeterminate: false,
355
361
  level: 0,
356
362
  paddingLeft: 4,