@hipay/hipay-material-ui 2.0.0-beta.51 → 2.0.0-beta.53

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.
@@ -74,8 +74,8 @@ exports.styles = styles;
74
74
 
75
75
  var HiCheckbox =
76
76
  /*#__PURE__*/
77
- function (_React$Component) {
78
- (0, _inherits2.default)(HiCheckbox, _React$Component);
77
+ function (_React$PureComponent) {
78
+ (0, _inherits2.default)(HiCheckbox, _React$PureComponent);
79
79
 
80
80
  function HiCheckbox(props) {
81
81
  var _this;
@@ -158,7 +158,7 @@ function (_React$Component) {
158
158
  }
159
159
  }]);
160
160
  return HiCheckbox;
161
- }(_react.default.Component);
161
+ }(_react.default.PureComponent);
162
162
 
163
163
  HiCheckbox.defaultProps = {
164
164
  checked: false,
package/HiChip/HiChip.js CHANGED
@@ -97,7 +97,8 @@ var styles = function styles(theme) {
97
97
  '&:hover, &:focus': {
98
98
  backgroundColor: theme.palette.primary.main,
99
99
  color: theme.palette.grey[300]
100
- }
100
+ },
101
+ position: 'relative'
101
102
  },
102
103
  badge: {
103
104
  height: 16,
@@ -119,7 +120,7 @@ var handleKeyDown = function handleKeyDown(e, fn) {
119
120
  function HiChip(props) {
120
121
  var _classNames;
121
122
 
122
- var label = props.label,
123
+ var className = props.className,
123
124
  classes = props.classes,
124
125
  fallbackImage = props.fallbackImage,
125
126
  icon = props.icon,
@@ -127,6 +128,7 @@ function HiChip(props) {
127
128
  iconSize = _props$iconSize === void 0 ? 20 : _props$iconSize,
128
129
  id = props.id,
129
130
  img = props.img,
131
+ label = props.label,
130
132
  onPrevious = props.onPrevious,
131
133
  onNext = props.onNext,
132
134
  onDelete = props.onDelete,
@@ -140,7 +142,7 @@ function HiChip(props) {
140
142
  titlePrevious = props.titlePrevious;
141
143
  return _react.default.createElement("div", {
142
144
  id: id,
143
- className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.leftNavigation, onPrevious), (0, _defineProperty2.default)(_classNames, classes.rightNavigation, onNext), (0, _defineProperty2.default)(_classNames, classes.deletable, onDelete), (0, _defineProperty2.default)(_classNames, classes.leftIcon, icon), _classNames)),
145
+ className: (0, _classnames.default)(classes.root, className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.leftNavigation, onPrevious), (0, _defineProperty2.default)(_classNames, classes.rightNavigation, onNext), (0, _defineProperty2.default)(_classNames, classes.deletable, onDelete), (0, _defineProperty2.default)(_classNames, classes.leftIcon, icon), _classNames)),
144
146
  title: title
145
147
  }, icon && _react.default.createElement(_HiIcon.default, {
146
148
  className: (0, _classnames.default)(classes.icon, (0, _defineProperty2.default)({}, classes.iconClickable, onIconClick)),
@@ -209,6 +211,11 @@ HiChip.propTypes = process.env.NODE_ENV !== "production" ? {
209
211
  */
210
212
  classes: _propTypes.default.object,
211
213
 
214
+ /**
215
+ * Surcharge les classes du composant
216
+ */
217
+ className: _propTypes.default.object,
218
+
212
219
  /**
213
220
  * Chemin vers l'image à afficher par défaut si une image n'est pas trouvée
214
221
  */
@@ -136,13 +136,14 @@ function HiColoredLabel(props) {
136
136
  color = props.color,
137
137
  active = props.active,
138
138
  fontWeight = props.fontWeight,
139
+ style = props.style,
139
140
  theme = props.theme,
140
- other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "label", "color", "active", "fontWeight", "theme"]);
141
+ other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "label", "color", "active", "fontWeight", "style", "theme"]);
141
142
  var isHiColor = ['primary', 'secondary', 'positive', 'negative', 'middle', 'neutral'].includes(color);
142
143
  var isHexColor = !isHiColor && /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(color);
143
144
  return _react.default.createElement("div", (0, _extends2.default)({
144
145
  className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.color, !active), (0, _defineProperty2.default)(_classNames, classes.activeColor, active), (0, _defineProperty2.default)(_classNames, classes["activeColor".concat((0, _helpers.capitalize)(color))], active && isHiColor), (0, _defineProperty2.default)(_classNames, classes["color".concat((0, _helpers.capitalize)(color))], !active && isHiColor), _classNames), className),
145
- style: (0, _extends2.default)({}, isHexColor && {
146
+ style: (0, _extends2.default)({}, style, isHexColor && {
146
147
  backgroundColor: active ? color : (0, _colorManipulator.fade)(color, 0.08),
147
148
  color: active ? theme.palette.getContrastText(color) : color
148
149
  }, fontWeight && {
package/HiPin/HiPin.js CHANGED
@@ -25,7 +25,7 @@ var styles = function styles(theme) {
25
25
  display: 'inline-block',
26
26
  padding: '0 9px',
27
27
  height: 16,
28
- lineHeight: '18px',
28
+ lineHeight: '16px',
29
29
  minWidth: 25,
30
30
  textAlign: 'center',
31
31
  borderRadius: '45px',
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.getRecursiveFinalItemIdList = getRecursiveFinalItemIdList;
9
9
  exports.findFinalItemRecursively = findFinalItemRecursively;
10
- exports.default = exports.styles = void 0;
10
+ exports.default = void 0;
11
11
 
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
 
@@ -17,12 +17,10 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
17
17
 
18
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
19
 
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
20
+ var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
21
 
22
22
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
23
 
24
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
-
26
24
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
27
25
 
28
26
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -33,16 +31,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
33
31
 
34
32
  var _HiSelectContent = _interopRequireDefault(require("./HiSelectContent"));
35
33
 
36
- var _HiIcon = _interopRequireDefault(require("../HiIcon"));
37
-
38
- var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
39
-
40
34
  var _helpers = require("../utils/helpers");
41
35
 
42
36
  // @inheritedComponent HiSelectContent
43
37
 
44
38
  /**
45
- * Return array of final item id in nested list (via props chlidren)
39
+ * Return array of final item id in nested list (via props children)
46
40
  * @param itemList
47
41
  * @param finalItemIdList
48
42
  * @returns {*[]}
@@ -156,50 +150,6 @@ function buildFilteredItemList(itemList) {
156
150
  v: visibleParent
157
151
  });
158
152
  }
159
-
160
- var styles = function styles(theme) {
161
- return {
162
- root: {
163
- backgroundColor: theme.palette.background2,
164
- maxWidth: 500,
165
- width: '100%',
166
- position: 'relative'
167
- },
168
- popper: {
169
- // width: '100%',
170
- zIndex: 1200
171
- },
172
- paper: {
173
- borderRadius: '0px 2px',
174
- maxHeight: 480,
175
- transition: 'none !important'
176
- },
177
- labelImg: {
178
- height: 18,
179
- width: 'auto',
180
- margin: '0 4px',
181
- verticalAlign: 'middle'
182
- },
183
- selectIconLabel: (0, _extends2.default)({
184
- whiteSpace: 'nowrap',
185
- overflow: 'hidden',
186
- textOverflow: 'ellipsis',
187
- paddingRight: 16
188
- }, theme.typography.b1, {
189
- display: 'inline-flex',
190
- width: '100%'
191
- }),
192
- selectImgLabel: (0, _extends2.default)({
193
- whiteSpace: 'nowrap',
194
- overflow: 'hidden',
195
- textOverflow: 'ellipsis',
196
- paddingRight: 16
197
- }, theme.typography.b1, {
198
- display: 'inline-flex',
199
- width: '100%'
200
- })
201
- };
202
- };
203
153
  /**
204
154
  * HiNestedSelectContent hérite du composant HiSelectContent
205
155
  *
@@ -214,18 +164,23 @@ var styles = function styles(theme) {
214
164
  */
215
165
 
216
166
 
217
- exports.styles = styles;
218
-
219
167
  var HiNestedSelectContent =
220
168
  /*#__PURE__*/
221
169
  function (_React$PureComponent) {
222
170
  (0, _inherits2.default)(HiNestedSelectContent, _React$PureComponent);
223
171
 
224
- function HiNestedSelectContent(props) {
172
+ function HiNestedSelectContent() {
173
+ var _getPrototypeOf2;
174
+
225
175
  var _this;
226
176
 
227
177
  (0, _classCallCheck2.default)(this, HiNestedSelectContent);
228
- _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiNestedSelectContent).call(this, props));
178
+
179
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
180
+ args[_key] = arguments[_key];
181
+ }
182
+
183
+ _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(HiNestedSelectContent)).call.apply(_getPrototypeOf2, [this].concat(args)));
229
184
 
230
185
  _this.handleSelect = function (event, item) {
231
186
  var _this$props = _this.props,
@@ -329,20 +284,8 @@ function (_React$PureComponent) {
329
284
  };
330
285
  };
331
286
 
332
- _this.handleSelect = _this.handleSelect.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
333
287
  return _this;
334
288
  }
335
- /**
336
- * Call onChange with the updated value
337
- *
338
- * - handle single value
339
- * - handle multiple value
340
- * - handle '_all' id
341
- *
342
- * @param event
343
- * @param item
344
- */
345
-
346
289
 
347
290
  (0, _createClass2.default)(HiNestedSelectContent, [{
348
291
  key: "render",
@@ -463,10 +406,5 @@ HiNestedSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
463
406
  */
464
407
  value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string, _propTypes.default.array])
465
408
  } : {};
466
-
467
- var _default = (0, _withStyles.default)(styles, {
468
- hiComponent: true,
469
- name: 'HmuiHiNestedSelectContent'
470
- })(HiNestedSelectContent);
471
-
409
+ var _default = HiNestedSelectContent;
472
410
  exports.default = _default;
@@ -45,6 +45,11 @@ var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
45
45
 
46
46
  var _helpers = require("../utils/helpers");
47
47
 
48
+ var _pure = _interopRequireDefault(require("recompose/pure"));
49
+
50
+ var PureListSubheader = (0, _pure.default)(_ListSubheader.default);
51
+ var PureListItem = (0, _pure.default)(_ListItem.default);
52
+
48
53
  var styles = function styles(theme) {
49
54
  return {
50
55
  root: {
@@ -170,8 +175,8 @@ exports.styles = styles;
170
175
 
171
176
  var HiSelectableListItem =
172
177
  /*#__PURE__*/
173
- function (_React$Component) {
174
- (0, _inherits2.default)(HiSelectableListItem, _React$Component);
178
+ function (_React$PureComponent) {
179
+ (0, _inherits2.default)(HiSelectableListItem, _React$PureComponent);
175
180
 
176
181
  function HiSelectableListItem(props) {
177
182
  var _this;
@@ -256,6 +261,7 @@ function (_React$Component) {
256
261
  fallbackImage = _this$props2.fallbackImage,
257
262
  hideCheckbox = _this$props2.hideCheckbox,
258
263
  onSelect = _this$props2.onSelect,
264
+ onKeyDown = _this$props2.onKeyDown,
259
265
  indeterminate = _this$props2.indeterminate,
260
266
  indeterminateIcon = _this$props2.indeterminateIcon,
261
267
  icon = _this$props2.icon,
@@ -288,7 +294,7 @@ function (_React$Component) {
288
294
  displayedIcon = icon;
289
295
  }
290
296
 
291
- var ListItemComponentName = pinned ? _ListSubheader.default : _ListItem.default;
297
+ var ListItemComponentName = pinned ? PureListSubheader : PureListItem;
292
298
  return _react.default.createElement(ListItemComponentName, (0, _extends2.default)({
293
299
  id: id,
294
300
  tabIndex: disabled ? '-1' : 0,
@@ -301,12 +307,14 @@ function (_React$Component) {
301
307
  }, disabled || {
302
308
  onClick: onSelect,
303
309
  onMouseEnter: this.setHover(true),
304
- onMouseLeave: this.setHover(false)
310
+ onMouseLeave: this.setHover(false),
311
+ onKeyDown: onKeyDown
305
312
  }, {
306
313
  style: {
307
314
  paddingLeft: "".concat(paddingLeft + level * 32, "px")
308
315
  }
309
316
  }), !hideCheckbox && !pinned && _react.default.createElement(_HiCheckbox.default, {
317
+ tabIndex: onKeyDown ? '-1' : 0,
310
318
  checked: selected,
311
319
  checkedIcon: checkedIcon,
312
320
  classes: {
@@ -342,7 +350,7 @@ function (_React$Component) {
342
350
  }
343
351
  }]);
344
352
  return HiSelectableListItem;
345
- }(_react.default.Component);
353
+ }(_react.default.PureComponent);
346
354
 
347
355
  HiSelectableListItem.defaultProps = {
348
356
  centered: false,
@@ -450,6 +458,11 @@ HiSelectableListItem.propTypes = process.env.NODE_ENV !== "production" ? {
450
458
  */
451
459
  onSelect: _propTypes.default.func,
452
460
 
461
+ /**
462
+ * Fonction de callback à la sélection de l'élément
463
+ */
464
+ onKeyDown: _propTypes.default.func,
465
+
453
466
  /**
454
467
  * Padding par défaut des éléments
455
468
  */
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = exports.styles = void 0;
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
14
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -27,6 +29,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
27
29
 
28
30
  var _keycode = _interopRequireDefault(require("keycode"));
29
31
 
32
+ var _classnames = _interopRequireDefault(require("classnames"));
33
+
30
34
  var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
31
35
 
32
36
  var _TableRow = _interopRequireDefault(require("@material-ui/core/TableRow"));
@@ -48,6 +52,9 @@ var styles = function styles(theme) {
48
52
  '&:hover, &:focus': {
49
53
  backgroundColor: "".concat(theme.palette.action.hover, " !important")
50
54
  }
55
+ },
56
+ clicableRow: {
57
+ cursor: 'pointer'
51
58
  }
52
59
  };
53
60
  };
@@ -88,7 +95,7 @@ function (_React$PureComponent) {
88
95
  locale = _this$props.locale,
89
96
  rowdata = _this$props.rowdata;
90
97
  return _react.default.createElement(_TableRow.default, {
91
- className: classes.row,
98
+ className: (0, _classnames.default)(classes.row, (0, _defineProperty2.default)({}, classes.clicableRow, this.props.onClick)),
92
99
  hover: true,
93
100
  onClick: function onClick(event) {
94
101
  return _this2.handleClick(event, rowdata);
@@ -105,10 +112,10 @@ function (_React$PureComponent) {
105
112
  height: dense ? cst.CELL_HEIGHT_DENSE : cst.CELL_HEIGHT
106
113
  },
107
114
  tabIndex: 0
108
- }, Object.keys(columns).map(function (key) {
115
+ }, Object.keys(columns).map(function (column) {
109
116
  return _react.default.createElement(_HiCellBuilder.default, {
110
- key: columns[key].colId,
111
- column: columns[key],
117
+ key: columns[column].colId,
118
+ column: columns[column],
112
119
  data: rowdata,
113
120
  locale: locale
114
121
  });
@@ -38,7 +38,7 @@ export const styles = theme => ({
38
38
  }
39
39
  });
40
40
 
41
- class HiCheckbox extends React.Component {
41
+ class HiCheckbox extends React.PureComponent {
42
42
  constructor(props) {
43
43
  super(props);
44
44
  this.handleChange = this.handleChange.bind(this);
@@ -78,7 +78,8 @@ export const styles = theme => ({
78
78
  '&:hover, &:focus': {
79
79
  backgroundColor: theme.palette.primary.main,
80
80
  color: theme.palette.grey[300]
81
- }
81
+ },
82
+ position: 'relative'
82
83
  },
83
84
  badge: {
84
85
  height: 16,
@@ -96,13 +97,14 @@ const handleKeyDown = (e, fn) => {
96
97
 
97
98
  function HiChip(props) {
98
99
  const {
99
- label,
100
+ className,
100
101
  classes,
101
102
  fallbackImage,
102
103
  icon,
103
104
  iconSize = 20,
104
105
  id,
105
106
  img,
107
+ label,
106
108
  onPrevious,
107
109
  onNext,
108
110
  onDelete,
@@ -117,7 +119,7 @@ function HiChip(props) {
117
119
  } = props;
118
120
  return React.createElement("div", {
119
121
  id: id,
120
- className: classNames(classes.root, {
122
+ className: classNames(classes.root, className, {
121
123
  [classes.leftNavigation]: onPrevious,
122
124
  [classes.rightNavigation]: onNext,
123
125
  [classes.deletable]: onDelete,
@@ -185,6 +187,11 @@ HiChip.propTypes = process.env.NODE_ENV !== "production" ? {
185
187
  */
186
188
  classes: PropTypes.object,
187
189
 
190
+ /**
191
+ * Surcharge les classes du composant
192
+ */
193
+ className: PropTypes.object,
194
+
188
195
  /**
189
196
  * Chemin vers l'image à afficher par défaut si une image n'est pas trouvée
190
197
  */
@@ -112,9 +112,10 @@ function HiColoredLabel(props) {
112
112
  color,
113
113
  active,
114
114
  fontWeight,
115
+ style,
115
116
  theme
116
117
  } = props,
117
- other = _objectWithoutProperties(props, ["classes", "className", "label", "color", "active", "fontWeight", "theme"]);
118
+ other = _objectWithoutProperties(props, ["classes", "className", "label", "color", "active", "fontWeight", "style", "theme"]);
118
119
 
119
120
  const isHiColor = ['primary', 'secondary', 'positive', 'negative', 'middle', 'neutral'].includes(color);
120
121
  const isHexColor = !isHiColor && /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(color);
@@ -125,7 +126,7 @@ function HiColoredLabel(props) {
125
126
  [classes[`activeColor${capitalize(color)}`]]: active && isHiColor,
126
127
  [classes[`color${capitalize(color)}`]]: !active && isHiColor
127
128
  }, className),
128
- style: _objectSpread({}, isHexColor && {
129
+ style: _objectSpread({}, style, isHexColor && {
129
130
  backgroundColor: active ? color : fade(color, 0.08),
130
131
  color: active ? theme.palette.getContrastText(color) : color
131
132
  }, fontWeight && {
package/es/HiPin/HiPin.js CHANGED
@@ -8,7 +8,7 @@ export const styles = theme => ({
8
8
  display: 'inline-block',
9
9
  padding: '0 9px',
10
10
  height: 16,
11
- lineHeight: '18px',
11
+ lineHeight: '16px',
12
12
  minWidth: 25,
13
13
  textAlign: 'center',
14
14
  borderRadius: '45px',
@@ -5,11 +5,9 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread";
5
5
  import React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import HiSelectContent from './HiSelectContent';
8
- import HiIcon from '../HiIcon';
9
- import withStyles from '../styles/withStyles';
10
8
  import { foldAccents } from '../utils/helpers';
11
9
  /**
12
- * Return array of final item id in nested list (via props chlidren)
10
+ * Return array of final item id in nested list (via props children)
13
11
  * @param itemList
14
12
  * @param finalItemIdList
15
13
  * @returns {*[]}
@@ -116,48 +114,6 @@ function buildFilteredItemList(itemList, selectedItemIdList = [], searchValue =
116
114
  v: visibleParent
117
115
  });
118
116
  }
119
-
120
- export const styles = theme => ({
121
- root: {
122
- backgroundColor: theme.palette.background2,
123
- maxWidth: 500,
124
- width: '100%',
125
- position: 'relative'
126
- },
127
- popper: {
128
- // width: '100%',
129
- zIndex: 1200
130
- },
131
- paper: {
132
- borderRadius: '0px 2px',
133
- maxHeight: 480,
134
- transition: 'none !important'
135
- },
136
- labelImg: {
137
- height: 18,
138
- width: 'auto',
139
- margin: '0 4px',
140
- verticalAlign: 'middle'
141
- },
142
- selectIconLabel: _objectSpread({
143
- whiteSpace: 'nowrap',
144
- overflow: 'hidden',
145
- textOverflow: 'ellipsis',
146
- paddingRight: 16
147
- }, theme.typography.b1, {
148
- display: 'inline-flex',
149
- width: '100%'
150
- }),
151
- selectImgLabel: _objectSpread({
152
- whiteSpace: 'nowrap',
153
- overflow: 'hidden',
154
- textOverflow: 'ellipsis',
155
- paddingRight: 16
156
- }, theme.typography.b1, {
157
- display: 'inline-flex',
158
- width: '100%'
159
- })
160
- });
161
117
  /**
162
118
  * HiNestedSelectContent hérite du composant HiSelectContent
163
119
  *
@@ -171,9 +127,10 @@ export const styles = theme => ({
171
127
  * - si aucun enfant n'est sélectionné, le parent est affiché "unselected".
172
128
  */
173
129
 
130
+
174
131
  class HiNestedSelectContent extends React.PureComponent {
175
- constructor(props) {
176
- super(props);
132
+ constructor(...args) {
133
+ super(...args);
177
134
 
178
135
  this.handleSelect = (event, item) => {
179
136
  const {
@@ -267,20 +224,7 @@ class HiNestedSelectContent extends React.PureComponent {
267
224
  itemList
268
225
  };
269
226
  };
270
-
271
- this.handleSelect = this.handleSelect.bind(this);
272
227
  }
273
- /**
274
- * Call onChange with the updated value
275
- *
276
- * - handle single value
277
- * - handle multiple value
278
- * - handle '_all' id
279
- *
280
- * @param event
281
- * @param item
282
- */
283
-
284
228
 
285
229
  render() {
286
230
  const _this$props = this.props,
@@ -400,7 +344,4 @@ HiNestedSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
400
344
  */
401
345
  value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])
402
346
  } : {};
403
- export default withStyles(styles, {
404
- hiComponent: true,
405
- name: 'HmuiHiNestedSelectContent'
406
- })(HiNestedSelectContent);
347
+ export default HiNestedSelectContent;
@@ -11,6 +11,9 @@ import HiColoredLabel from '../HiColoredLabel';
11
11
  import HiLoader from '../HiLoader';
12
12
  import withStyles from '../styles/withStyles';
13
13
  import { escapeHTML } from '../utils/helpers';
14
+ import pure from 'recompose/pure';
15
+ const PureListSubheader = pure(ListSubheader);
16
+ const PureListItem = pure(ListItem);
14
17
  export const styles = theme => ({
15
18
  root: {
16
19
  paddingLeft: 4
@@ -129,7 +132,7 @@ export const styles = theme => ({
129
132
  * Construit un élément de liste sélectionnable (avec checkbox)
130
133
  */
131
134
 
132
- class HiSelectableListItem extends React.Component {
135
+ class HiSelectableListItem extends React.PureComponent {
133
136
  constructor(props) {
134
137
  super(props);
135
138
 
@@ -202,6 +205,7 @@ class HiSelectableListItem extends React.Component {
202
205
  fallbackImage,
203
206
  hideCheckbox,
204
207
  onSelect,
208
+ onKeyDown,
205
209
  indeterminate,
206
210
  indeterminateIcon,
207
211
  icon,
@@ -235,7 +239,7 @@ class HiSelectableListItem extends React.Component {
235
239
  displayedIcon = icon;
236
240
  }
237
241
 
238
- const ListItemComponentName = pinned ? ListSubheader : ListItem;
242
+ const ListItemComponentName = pinned ? PureListSubheader : PureListItem;
239
243
  return React.createElement(ListItemComponentName, _extends({
240
244
  id: id,
241
245
  tabIndex: disabled ? '-1' : 0,
@@ -254,12 +258,14 @@ class HiSelectableListItem extends React.Component {
254
258
  }, disabled || {
255
259
  onClick: onSelect,
256
260
  onMouseEnter: this.setHover(true),
257
- onMouseLeave: this.setHover(false)
261
+ onMouseLeave: this.setHover(false),
262
+ onKeyDown: onKeyDown
258
263
  }, {
259
264
  style: {
260
265
  paddingLeft: `${paddingLeft + level * 32}px`
261
266
  }
262
267
  }), !hideCheckbox && !pinned && React.createElement(HiCheckbox, {
268
+ tabIndex: onKeyDown ? '-1' : 0,
263
269
  checked: selected,
264
270
  checkedIcon: checkedIcon,
265
271
  classes: {
@@ -407,6 +413,11 @@ HiSelectableListItem.propTypes = process.env.NODE_ENV !== "production" ? {
407
413
  */
408
414
  onSelect: PropTypes.func,
409
415
 
416
+ /**
417
+ * Fonction de callback à la sélection de l'élément
418
+ */
419
+ onKeyDown: PropTypes.func,
420
+
410
421
  /**
411
422
  * Padding par défaut des éléments
412
423
  */
@@ -2,6 +2,7 @@
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import keycode from 'keycode';
5
+ import classNames from 'classnames';
5
6
  import withStyles from '../styles/withStyles';
6
7
  import TableRow from '@material-ui/core/TableRow';
7
8
  import HiCellBuilder from './HiCellBuilder';
@@ -17,6 +18,9 @@ export const styles = theme => ({
17
18
  '&:hover, &:focus': {
18
19
  backgroundColor: `${theme.palette.action.hover} !important`
19
20
  }
21
+ },
22
+ clicableRow: {
23
+ cursor: 'pointer'
20
24
  }
21
25
  });
22
26
 
@@ -42,7 +46,9 @@ class HiTableRow extends React.PureComponent {
42
46
  rowdata
43
47
  } = this.props;
44
48
  return React.createElement(TableRow, {
45
- className: classes.row,
49
+ className: classNames(classes.row, {
50
+ [classes.clicableRow]: this.props.onClick
51
+ }),
46
52
  hover: true,
47
53
  onClick: event => this.handleClick(event, rowdata),
48
54
  onKeyDown: event => {
@@ -56,10 +62,10 @@ class HiTableRow extends React.PureComponent {
56
62
  height: dense ? cst.CELL_HEIGHT_DENSE : cst.CELL_HEIGHT
57
63
  },
58
64
  tabIndex: 0
59
- }, Object.keys(columns).map(key => {
65
+ }, Object.keys(columns).map(column => {
60
66
  return React.createElement(HiCellBuilder, {
61
- key: columns[key].colId,
62
- column: columns[key],
67
+ key: columns[column].colId,
68
+ column: columns[column],
63
69
  data: rowdata,
64
70
  locale: locale
65
71
  });