@hipay/hipay-material-ui 2.0.0-beta.57 → 2.0.0-beta.59

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/HiAlertModal/HiAlertModal.js +56 -13
  3. package/HiColoredLabel/HiColoredLabel.js +16 -4
  4. package/HiForm/HiFormControl.js +2 -4
  5. package/HiForm/HiInput.js +29 -4
  6. package/HiForm/HiUploadField.js +2 -1
  7. package/HiSelect/HiSelect.js +6 -5
  8. package/HiSelect/HiSuggestSelect.js +5 -4
  9. package/HiSelect/SelectInput.js +1 -0
  10. package/HiSelectNew/HiNestedSelect.js +20 -6
  11. package/HiSelectNew/HiNestedSelectContent.js +20 -6
  12. package/HiSelectNew/HiSelect.js +104 -32
  13. package/HiSelectNew/HiSelectContent.js +16 -4
  14. package/HiSelectNew/HiSelectInput.js +10 -3
  15. package/HiSelectableList/HiSelectableList.js +2 -35
  16. package/HiSelectableList/HiSelectableListItem.js +6 -4
  17. package/es/HiAlertModal/HiAlertModal.js +55 -13
  18. package/es/HiColoredLabel/HiColoredLabel.js +21 -4
  19. package/es/HiForm/HiFormControl.js +2 -4
  20. package/es/HiForm/HiInput.js +29 -4
  21. package/es/HiForm/HiUploadField.js +2 -1
  22. package/es/HiSelect/HiSelect.js +6 -5
  23. package/es/HiSelect/HiSuggestSelect.js +5 -4
  24. package/es/HiSelect/SelectInput.js +1 -0
  25. package/es/HiSelectNew/HiNestedSelect.js +17 -7
  26. package/es/HiSelectNew/HiNestedSelectContent.js +16 -6
  27. package/es/HiSelectNew/HiSelect.js +106 -31
  28. package/es/HiSelectNew/HiSelectContent.js +11 -2
  29. package/es/HiSelectNew/HiSelectInput.js +10 -3
  30. package/es/HiSelectableList/HiSelectableList.js +3 -29
  31. package/es/HiSelectableList/HiSelectableListItem.js +6 -4
  32. package/index.es.js +1 -1
  33. package/index.js +1 -1
  34. package/package.json +1 -1
  35. package/umd/hipay-material-ui.development.js +15551 -16279
  36. package/umd/hipay-material-ui.production.min.js +2 -2
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.getRecursiveFinalItemIdList = getRecursiveFinalItemIdList;
9
9
  exports.findFinalItemRecursively = findFinalItemRecursively;
10
- exports.default = void 0;
10
+ exports.default = exports.filterValue = void 0;
11
11
 
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
 
@@ -72,6 +72,10 @@ function findFinalItemRecursively(itemList, searchId) {
72
72
  });
73
73
  return foundItem;
74
74
  }
75
+
76
+ var filterValue = function filterValue(item, searchValue) {
77
+ return searchValue === '' || (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(searchValue.toLowerCase())) !== -1;
78
+ };
75
79
  /**
76
80
  * Build item list by settings item props relative to the nested parent/child situation
77
81
  * Reduce the item list to build specified items (displayed, pinned, disabled, selected, indeterminate)
@@ -90,6 +94,8 @@ function findFinalItemRecursively(itemList, searchId) {
90
94
  */
91
95
 
92
96
 
97
+ exports.filterValue = filterValue;
98
+
93
99
  function buildFilteredItemList(itemList) {
94
100
  var selectedItemIdList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
95
101
  var searchValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
@@ -98,15 +104,16 @@ function buildFilteredItemList(itemList) {
98
104
  var disabledParent = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
99
105
  var nbChildrenAsInfo = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
100
106
  var translations = arguments.length > 7 ? arguments[7] : undefined;
107
+ var filterFunc = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : filterValue;
101
108
  return itemList.reduce(function (_ref, item) {
102
109
  var memoItemList = _ref.l,
103
110
  memoSelected = _ref.s,
104
111
  memoUnselected = _ref.u,
105
112
  memoVisible = _ref.v;
106
- var itemVisible = searchValue === '' || (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(searchValue.toLowerCase())) !== -1; // Parent item
113
+ var itemVisible = filterFunc(item, searchValue); // Parent item
107
114
 
108
115
  if (item.children) {
109
- var _buildFilteredItemLis = buildFilteredItemList(item.children, selectedItemIdList, searchValue, itemVisible, pinnedParent, disabledParent),
116
+ var _buildFilteredItemLis = buildFilteredItemList(item.children, selectedItemIdList, searchValue, itemVisible, pinnedParent, disabledParent, nbChildrenAsInfo, translations, filterFunc),
110
117
  customizedChildren = _buildFilteredItemLis.l,
111
118
  selected = _buildFilteredItemLis.s,
112
119
  unselected = _buildFilteredItemLis.u,
@@ -241,9 +248,10 @@ function (_React$PureComponent) {
241
248
  multiple = _this$props2.multiple,
242
249
  nbChildrenAsInfo = _this$props2.nbChildrenAsInfo,
243
250
  pinnedParent = _this$props2.pinnedParent,
244
- translations = _this$props2.translations; // build item list
251
+ translations = _this$props2.translations,
252
+ filterFunc = _this$props2.filterFunc; // build item list
245
253
 
246
- var _buildFilteredItemLis2 = buildFilteredItemList(options, value, search, false, pinnedParent, disabledParent || !multiple, nbChildrenAsInfo, translations),
254
+ var _buildFilteredItemLis2 = buildFilteredItemList(options, value, search, false, pinnedParent, disabledParent || !multiple, nbChildrenAsInfo, translations, filterFunc),
247
255
  filteredItemList = _buildFilteredItemLis2.l,
248
256
  allSelected = _buildFilteredItemLis2.s,
249
257
  allUnselected = _buildFilteredItemLis2.u,
@@ -334,7 +342,8 @@ HiNestedSelectContent.defaultProps = {
334
342
  search: 'Search',
335
343
  n_children: '%s',
336
344
  one_child: '%s item'
337
- }
345
+ },
346
+ filterFunc: filterValue
338
347
  };
339
348
  HiNestedSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
340
349
  /**
@@ -347,6 +356,11 @@ HiNestedSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
347
356
  */
348
357
  disabledParent: _propTypes.default.bool,
349
358
 
359
+ /*
360
+ * Fonction de filtrage custom
361
+ */
362
+ filterFunc: _propTypes.default.func,
363
+
350
364
  /**
351
365
  * Affiche l'élément 'All'
352
366
  */
@@ -37,8 +37,6 @@ var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
37
37
 
38
38
  var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
39
39
 
40
- var _reactDom = require("react-dom");
41
-
42
40
  var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
43
41
 
44
42
  var _HiSelectableList = _interopRequireDefault(require("../HiSelectableList"));
@@ -112,6 +110,12 @@ var styles = function styles(theme) {
112
110
  }
113
111
  };
114
112
  };
113
+
114
+ exports.styles = styles;
115
+
116
+ function filterValue(item, search) {
117
+ return search === '' || (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(search.toLowerCase())) !== -1;
118
+ }
115
119
  /**
116
120
  *
117
121
  * Utilisé pour tous types de selects dans les formulaires.
@@ -128,8 +132,6 @@ var styles = function styles(theme) {
128
132
  */
129
133
 
130
134
 
131
- exports.styles = styles;
132
-
133
135
  var HiSelect =
134
136
  /*#__PURE__*/
135
137
  function (_React$PureComponent) {
@@ -154,7 +156,7 @@ function (_React$PureComponent) {
154
156
  hideCheckbox: true,
155
157
  label: 'loading'
156
158
  }] : []).concat((0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
157
- return item.label && (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(search.toLowerCase())) !== -1;
159
+ return _this.props.filterFunc(item, search);
158
160
  })) : (0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
159
161
  id: '_all',
160
162
  label: _this.props.translations.all
@@ -224,11 +226,13 @@ function (_React$PureComponent) {
224
226
  };
225
227
 
226
228
  _this.focusOnFirstItem = function () {
227
- var overlay = (0, _reactDom.findDOMNode)(_this.overlay);
228
- setTimeout(function () {
229
- var item = overlay.getElementsByTagName('li')[0];
230
- item.focus();
231
- }, 1);
229
+ if (_this.overlay && _this.overlay.getElementsByTagName('li')[0]) {
230
+ setTimeout(function () {
231
+ var item = _this.overlay.getElementsByTagName('li')[0];
232
+
233
+ item.focus();
234
+ }, 1);
235
+ }
232
236
  };
233
237
 
234
238
  _this.getInputElement = function (el) {
@@ -267,21 +271,22 @@ function (_React$PureComponent) {
267
271
  };
268
272
 
269
273
  _this.focusOnSelectedItem = function (selectedValue) {
270
- var overlay = (0, _reactDom.findDOMNode)(_this.overlay);
271
- setTimeout(function () {
272
- // On initialise au premier élément pour être sûr de ne pas se retrouver avec un focus of undefined
273
- var item = overlay.getElementsByTagName('li')[0];
274
-
275
- if (selectedValue && typeof selectedValue === 'string') {
276
- item = overlay.getElementsByTagName('li')[selectedValue];
277
- } else if (selectedValue && typeof selectedValue === 'number') {
278
- item = overlay.getElementsByTagName('li')[selectedValue - 1];
279
- }
274
+ if (_this.overlay && _this.overlay.getElementsByTagName('li')[0]) {
275
+ setTimeout(function () {
276
+ // On initialise au premier élément pour être sûr de ne pas se retrouver avec un focus of undefined
277
+ var item = _this.overlay.getElementsByTagName('li')[0];
278
+
279
+ if (selectedValue && typeof selectedValue === 'string') {
280
+ item = _this.overlay.getElementsByTagName('li')[selectedValue];
281
+ } else if (selectedValue && typeof selectedValue === 'number') {
282
+ item = _this.overlay.getElementsByTagName('li')[selectedValue - 1];
283
+ }
280
284
 
281
- if (item) {
282
- item.focus();
283
- }
284
- }, 1);
285
+ if (item) {
286
+ item.focus();
287
+ }
288
+ }, 1);
289
+ }
285
290
  };
286
291
 
287
292
  _this.handleClickAway = function (event) {
@@ -313,6 +318,18 @@ function (_React$PureComponent) {
313
318
  });
314
319
  };
315
320
 
321
+ _this.handleKeyDownInput = function (event) {
322
+ var key = (0, _keycode.default)(event);
323
+
324
+ if (key === 'down' || key === 'up') {
325
+ _this.handleClick();
326
+ } else if (key === 'enter' && _this.props.onSubmit) {
327
+ event.preventDefault();
328
+
329
+ _this.props.onSubmit(event);
330
+ }
331
+ };
332
+
316
333
  _this.handleKeyDown = function (event) {
317
334
  var nextItem;
318
335
  var key = (0, _keycode.default)(event);
@@ -323,6 +340,13 @@ function (_React$PureComponent) {
323
340
  } else if (key === 'up') {
324
341
  event.preventDefault();
325
342
  nextItem = (0, _helpers.getNextItemSelectable)(document.activeElement, 'up');
343
+ } else if (key === 'tab' || key === 'esc') {
344
+ _this.setState({
345
+ open: false
346
+ });
347
+ } else if (key === 'space') {
348
+ // Cancel scroll
349
+ event.preventDefault();
326
350
  }
327
351
 
328
352
  if (nextItem) {
@@ -330,21 +354,58 @@ function (_React$PureComponent) {
330
354
  }
331
355
  };
332
356
 
357
+ _this.getItemById = function (id) {
358
+ var item;
359
+
360
+ if (_this.props.hasAll && String(id) === '_all') {
361
+ return {
362
+ id: '_all'
363
+ };
364
+ }
365
+
366
+ for (var i = 0; i < _this.props.options.length; i += 1) {
367
+ var elem = _this.props.options[i];
368
+
369
+ if (String(elem.id) === String(id)) {
370
+ item = elem;
371
+ break;
372
+ }
373
+
374
+ if (elem.children) {
375
+ for (var j = 0; j < elem.children.length; j += 1) {
376
+ if (String(elem.children[j].id) === String(id)) {
377
+ item = elem.children[j];
378
+ break;
379
+ }
380
+ }
381
+ }
382
+ }
383
+
384
+ return item;
385
+ };
386
+
333
387
  _this.handleKeyUp = function (event) {
334
388
  var key = (0, _keycode.default)(event);
335
389
 
336
- if (key === 'tab' || key === 'esc') {
390
+ if (key === 'esc') {
337
391
  _this.setState({
338
392
  open: false
339
393
  });
340
394
  } else if (key === 'space' || key === 'enter' && !_this.props.multiple) {
341
395
  event.preventDefault();
342
396
 
343
- var item = _this.props.options.find(function (elem) {
344
- return String(elem.id) === event.target.id;
345
- });
397
+ var item = _this.getItemById(event.target.id);
346
398
 
347
- _this.handleSelect(null, item);
399
+ if (item) {
400
+ // Select for nested select
401
+ if (_this.props.hiSelectableListProps && _this.props.hiSelectableListProps.onSelect) {
402
+ _this.props.hiSelectableListProps.onSelect(null, item);
403
+ } else {
404
+ _this.handleSelect(null, item);
405
+ }
406
+ } else {
407
+ console.warn("Can not find item #".concat(event.target.id));
408
+ }
348
409
  } else if (key === 'enter' && _this.props.multiple) {
349
410
  event.preventDefault();
350
411
 
@@ -361,6 +422,10 @@ function (_React$PureComponent) {
361
422
  event.preventDefault();
362
423
 
363
424
  _this.handleClose();
425
+ } else if (key === 'tab') {
426
+ _this.setState({
427
+ open: false
428
+ });
364
429
  }
365
430
  };
366
431
 
@@ -543,7 +608,7 @@ function (_React$PureComponent) {
543
608
  var popperClass = (0, _classnames.default)(classes.popper, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.popperWidth, !this.props.containerWidth), (0, _defineProperty2.default)(_classNames, classes.popperRightAlign, this.props.containerWidth && this.props.align === 'right'), _classNames));
544
609
 
545
610
  var searchInput = function searchInput(position) {
546
- if (!!searchable) {
611
+ if (searchable) {
547
612
  return _react.default.createElement(_HiInput.default, (0, _extends2.default)({
548
613
  value: searchValue,
549
614
  autoFocus: true,
@@ -567,7 +632,7 @@ function (_React$PureComponent) {
567
632
  var nbItems = itemList.length <= 10 ? itemList.length + 1 : 11;
568
633
  popperStyle.transform = "translate3d(-1px, -".concat(nbItems * 40 + 2, "px, 0px)");
569
634
  } else if (this.placement && this.placement.indexOf('top') < 0 && !!searchable) {
570
- popperStyle.transform = "translate3d(-1px, 40px, 0px)";
635
+ popperStyle.transform = 'translate3d(-1px, 40px, 0px)';
571
636
  }
572
637
 
573
638
  var content = function content(_ref) {
@@ -624,6 +689,7 @@ function (_React$PureComponent) {
624
689
  onClick: this.handleClick,
625
690
  onFocus: this.handleFocus,
626
691
  onBlur: this.handleBlur,
692
+ onKeyDown: this.handleKeyDownInput,
627
693
  onSubmit: onSubmit,
628
694
  onMouseEnter: this.props.onMouseEnter,
629
695
  onMouseLeave: this.props.onMouseLeave,
@@ -691,7 +757,8 @@ HiSelect.defaultProps = {
691
757
  n_children: '%s items',
692
758
  one_child: '%s item'
693
759
  },
694
- type: 'text'
760
+ type: 'text',
761
+ filterFunc: filterValue
695
762
  };
696
763
  HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
697
764
  align: _propTypes.default.oneOf(['left', 'right']),
@@ -726,6 +793,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
726
793
  */
727
794
  fallbackImage: _propTypes.default.string,
728
795
 
796
+ /*
797
+ * Fonction de filtrage custom
798
+ */
799
+ filterFunc: _propTypes.default.func,
800
+
729
801
  /**
730
802
  * Affiche l'élément 'All'
731
803
  */
@@ -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 = exports.filterValue = exports.styles = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
@@ -70,6 +70,12 @@ var styles = function styles(theme) {
70
70
  })
71
71
  };
72
72
  };
73
+
74
+ exports.styles = styles;
75
+
76
+ var filterValue = function filterValue(item, searchValue) {
77
+ return searchValue === '' || (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(searchValue.toLowerCase())) !== -1;
78
+ };
73
79
  /**
74
80
  *
75
81
  * Utilisé pour tous types de selects dans les formulaires.
@@ -86,7 +92,7 @@ var styles = function styles(theme) {
86
92
  */
87
93
 
88
94
 
89
- exports.styles = styles;
95
+ exports.filterValue = filterValue;
90
96
 
91
97
  var HiSelectContent =
92
98
  /*#__PURE__*/
@@ -253,7 +259,7 @@ function (_React$PureComponent) {
253
259
  hideCheckbox: true,
254
260
  label: 'loading'
255
261
  }] : []).concat((0, _toConsumableArray2.default)(search !== '' ? (0, _toConsumableArray2.default)(options.filter(function (item) {
256
- return item.label && (0, _helpers.foldAccents)(item.label.toString().toLowerCase()).search((0, _helpers.foldAccents)(search.toLowerCase())) !== -1;
262
+ return item.label && _this.props.filterFunc(item, search);
257
263
  })) : (0, _toConsumableArray2.default)(_this.props.hasAll ? [(0, _extends2.default)({
258
264
  id: '_all',
259
265
  label: _this.props.translations.all
@@ -395,7 +401,8 @@ HiSelectContent.defaultProps = {
395
401
  n_children: '%s items',
396
402
  one_child: '%s item'
397
403
  },
398
- type: 'text'
404
+ type: 'text',
405
+ filterFunc: filterValue
399
406
  };
400
407
  HiSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
401
408
  autoHeight: _propTypes.default.bool,
@@ -420,6 +427,11 @@ HiSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
420
427
  */
421
428
  fallbackImage: _propTypes.default.string,
422
429
 
430
+ /*
431
+ * Fonction de filtrage custom
432
+ */
433
+ filterFunc: _propTypes.default.func,
434
+
423
435
  /**
424
436
  * Affiche l'élément 'All'
425
437
  */
@@ -193,8 +193,12 @@ function (_React$PureComponent) {
193
193
  };
194
194
 
195
195
  _this.handleClick = function (event) {
196
+ // Do not open select if press on resetIcon
196
197
  if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
197
- _this.props.onClick(event);
198
+ // Do not open select if press enter on button => submit form
199
+ if (event.type !== 'keydown' || (0, _keycode.default)(event) !== 'enter') {
200
+ _this.props.onClick(event);
201
+ }
198
202
  }
199
203
  };
200
204
 
@@ -209,9 +213,11 @@ function (_React$PureComponent) {
209
213
  _this.handleBlur = function (event) {
210
214
  if ((!_this.input || !_this.input.contains(event.relatedTarget)) && _this.props.onBlur) {
211
215
  _this.props.onBlur(event);
212
- } else if (_this.input && (!_this.resetIcon || !_this.resetIcon.contains(event.relatedTarget))) {
213
- _this.input.focus();
214
216
  }
217
+ /* else if (this.input && (!this.resetIcon || !this.resetIcon.contains(event.relatedTarget))) {
218
+ this.input.focus();
219
+ }*/
220
+
215
221
  };
216
222
 
217
223
  _this.ref = function (el) {
@@ -269,6 +275,7 @@ function (_React$PureComponent) {
269
275
  }, value || placeholder), _react.default.createElement(_ArrowDropDown.default, {
270
276
  className: iconClass
271
277
  })) : _react.default.createElement(_ButtonBase.default, {
278
+ component: "div",
272
279
  id: id,
273
280
  className: rootClass,
274
281
  onClick: this.handleClick,
@@ -33,8 +33,6 @@ var _HiSelectableListItem = _interopRequireDefault(require("./HiSelectableListIt
33
33
 
34
34
  var _helpers = require("../utils/helpers");
35
35
 
36
- var _keycode = _interopRequireDefault(require("keycode"));
37
-
38
36
  var styles = function styles() {
39
37
  return {
40
38
  root: {
@@ -73,35 +71,6 @@ function (_React$PureComponent) {
73
71
  };
74
72
  };
75
73
 
76
- _this.handleKeyDown = function (event) {
77
- var nextItem;
78
- var key = (0, _keycode.default)(event);
79
-
80
- if (key === 'down') {
81
- event.preventDefault();
82
- nextItem = (0, _helpers.getNextItemSelectable)(document.activeElement, 'down');
83
- } else if (key === 'up') {
84
- event.preventDefault();
85
- nextItem = (0, _helpers.getNextItemSelectable)(document.activeElement, 'up');
86
- } else if (key === 'space' || key === 'enter' && !_this.props.multiple) {
87
- event.preventDefault();
88
-
89
- var item = _this.props.options.find(function (elem) {
90
- return String(elem.id) === event.target.id;
91
- });
92
-
93
- _this.handleSelect(null, item);
94
- }
95
-
96
- if (nextItem) {
97
- nextItem.focus();
98
- }
99
- };
100
-
101
- _this.handleKeyUp = function () {
102
- return false;
103
- };
104
-
105
74
  _this.buildRecursiveListItem = function (item) {
106
75
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
107
76
  var _this$props = _this.props,
@@ -113,10 +82,8 @@ function (_React$PureComponent) {
113
82
  icon = _this$props.icon,
114
83
  selectedItemIdList = _this$props.selectedItemIdList,
115
84
  sort = _this$props.sort,
116
- _this$props$onKeyDown = _this$props.onKeyDown,
117
- onKeyDown = _this$props$onKeyDown === void 0 ? _this.handleKeyDown : _this$props$onKeyDown,
118
- _this$props$onKeyUp = _this$props.onKeyUp,
119
- onKeyUp = _this$props$onKeyUp === void 0 ? _this.handleKeyUp : _this$props$onKeyUp,
85
+ onKeyDown = _this$props.onKeyDown,
86
+ onKeyUp = _this$props.onKeyUp,
120
87
  others = (0, _objectWithoutProperties2.default)(_this$props, ["checkedIcon", "disabled", "disabledItemIdList", "hideCheckbox", "hoverIcon", "icon", "selectedItemIdList", "sort", "onKeyDown", "onKeyUp"]);
121
88
 
122
89
  if (sort && item.children) {
@@ -122,12 +122,13 @@ var styles = function styles(theme) {
122
122
  minWidth: '50%',
123
123
  padding: '5px 0',
124
124
  '&$listItemContentSelected': {
125
- marginBottom: -3,
125
+ marginBottom: 1,
126
126
  marginLeft: -4
127
127
  },
128
128
  '& strong': {
129
129
  fontWeight: theme.typography.fontWeightMedium
130
- }
130
+ },
131
+ display: 'inline-flex'
131
132
  }),
132
133
  listItemContentSelected: {},
133
134
  label: {
@@ -173,7 +174,7 @@ var styles = function styles(theme) {
173
174
  labelContent: {
174
175
  display: 'flex',
175
176
  alignItems: 'center',
176
- maxWidth: '70%',
177
+ maxWidth: '85%',
177
178
  '&$labelWithoutSecondaryInline': {
178
179
  maxWidth: '100%'
179
180
  }
@@ -278,7 +279,8 @@ function (_React$PureComponent) {
278
279
  }
279
280
 
280
281
  return _react.default.createElement("div", {
281
- className: classes.label
282
+ className: classes.label,
283
+ title: label
282
284
  }, label);
283
285
  }
284
286
  }, {
@@ -10,18 +10,25 @@ import DialogContentText from '@material-ui/core/DialogContentText';
10
10
  import DialogTitle from '@material-ui/core/DialogTitle';
11
11
  import { withStyles } from '../styles';
12
12
  import HiButton from '../HiButton';
13
+ import HiIcon from '../HiIcon';
13
14
  export const styles = theme => ({
14
15
  classContent: {
15
16
  fontSize: 14,
16
- lineHeight: '24px',
17
- color: '#484848'
17
+ lineHeight: '20px',
18
+ color: '#484848',
19
+ position: 'relative'
18
20
  },
19
- classPaper: {
20
- maxWidth: 300
21
+ classDialogPaper: {
22
+ minHeight: 280,
23
+ maxWidth: 280,
24
+ borderRadius: 2
21
25
  },
22
26
  classCancelButton: {
23
27
  float: 'right'
24
28
  },
29
+ classSubmitButton: {
30
+ margin: '0'
31
+ },
25
32
  classTitle: {
26
33
  fontSize: 20,
27
34
  fontFamily: theme.typography.fontFamily,
@@ -29,10 +36,20 @@ export const styles = theme => ({
29
36
  lineHeight: '24px'
30
37
  },
31
38
  classAction: {
32
- display: 'inline-block'
39
+ display: 'inline-block',
40
+ margin: '0',
41
+ padding: '0px 24px 24px 24px'
33
42
  },
34
43
  classDialogRoot: {
35
44
  backgroundColor: 'rgba(0, 0, 0, 0.28)'
45
+ },
46
+ classBackgroundIcon: {
47
+ position: 'absolute',
48
+ top: 'calc(50%)',
49
+ left: '50%',
50
+ transform: 'translate(-50%, -50%)',
51
+ color: theme.palette.background2,
52
+ flex: '1'
36
53
  }
37
54
  });
38
55
  /**
@@ -71,6 +88,8 @@ class HiAlertModal extends React.PureComponent {
71
88
  render() {
72
89
  const _this$props = this.props,
73
90
  {
91
+ backgroundIcon,
92
+ iconSize,
74
93
  classes,
75
94
  content,
76
95
  labelCancelButton,
@@ -78,19 +97,25 @@ class HiAlertModal extends React.PureComponent {
78
97
  onCancelClick,
79
98
  onSubmitClick,
80
99
  open,
100
+ cancelColor,
81
101
  submitColor,
82
102
  title
83
103
  } = _this$props,
84
- props = _objectWithoutProperties(_this$props, ["classes", "content", "labelCancelButton", "labelSubmitButton", "onCancelClick", "onSubmitClick", "open", "submitColor", "title"]);
104
+ props = _objectWithoutProperties(_this$props, ["backgroundIcon", "iconSize", "classes", "content", "labelCancelButton", "labelSubmitButton", "onCancelClick", "onSubmitClick", "open", "cancelColor", "submitColor", "title"]);
85
105
 
86
106
  return React.createElement(Dialog, _extends({
87
107
  open: open,
88
108
  onClose: this.handleOnClose,
89
109
  classes: {
90
- paper: classes.classPaper,
91
- root: classes.classDialogRoot
110
+ root: classes.classDialogRoot,
111
+ paper: classes.classDialogPaper
92
112
  }
93
- }, props), React.createElement(DialogTitle, {
113
+ }, props), backgroundIcon && React.createElement("div", {
114
+ className: classes.classBackgroundIcon
115
+ }, React.createElement(HiIcon, {
116
+ icon: backgroundIcon,
117
+ size: iconSize
118
+ })), React.createElement(DialogTitle, {
94
119
  disableTypography: true,
95
120
  classes: {
96
121
  root: classes.classTitle
@@ -103,21 +128,38 @@ class HiAlertModal extends React.PureComponent {
103
128
  classes: {
104
129
  root: classes.classAction
105
130
  }
106
- }, React.createElement(HiButton, {
131
+ }, labelSubmitButton && React.createElement(HiButton, {
132
+ classes: {
133
+ root: classes.classSubmitButton
134
+ },
107
135
  onClick: this.handleClickSubmit,
108
136
  color: submitColor
109
- }, labelSubmitButton), React.createElement(HiButton, {
137
+ }, labelSubmitButton), labelCancelButton && React.createElement(HiButton, {
110
138
  classes: {
111
139
  root: classes.classCancelButton
112
140
  },
113
141
  onClick: this.handleClickCancel,
114
- color: "neutral"
142
+ color: cancelColor
115
143
  }, labelCancelButton)));
116
144
  }
117
145
 
118
146
  }
119
147
 
148
+ HiAlertModal.defaultProps = {
149
+ cancelColor: 'neutral',
150
+ submitColor: 'primary'
151
+ };
120
152
  HiAlertModal.propTypes = process.env.NODE_ENV !== "production" ? {
153
+ /**
154
+ * Icon à mettre en fond
155
+ */
156
+ backgroundIcon: PropTypes.string,
157
+
158
+ /**
159
+ * The color of the cancel button. It supports those theme colors that make sense for this component.
160
+ */
161
+ cancelColor: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'positive', 'negative', 'middle', 'neutral']),
162
+
121
163
  /**
122
164
  * Surcharge les classes du composant
123
165
  */
@@ -126,7 +168,7 @@ HiAlertModal.propTypes = process.env.NODE_ENV !== "production" ? {
126
168
  /**
127
169
  * Texte contenu dans la modal
128
170
  */
129
- content: PropTypes.string,
171
+ content: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.node]),
130
172
 
131
173
  /**
132
174
  * Texte sur le bouton d'annulation