@hipay/hipay-material-ui 1.0.0-beta.11 → 1.0.0-beta.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -127,7 +127,8 @@ var BodyCellBuilder = function (_React$PureComponent) {
127
127
  onOpenDetails = _props.onOpenDetails,
128
128
  lookedUp = _props.lookedUp,
129
129
  fixedColumnWidth = _props.fixedColumnWidth,
130
- props = (0, _objectWithoutProperties3.default)(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth']);
130
+ disableContextMenu = _props.disableContextMenu,
131
+ props = (0, _objectWithoutProperties3.default)(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth', 'disableContextMenu']);
131
132
 
132
133
 
133
134
  var layoutProps = {
@@ -150,7 +151,6 @@ var BodyCellBuilder = function (_React$PureComponent) {
150
151
  if (typeof data !== 'undefined') {
151
152
 
152
153
  var cellElement = void 0;
153
- var hasContextMenu = true;
154
154
 
155
155
  switch (type) {
156
156
  case cst.TYPE_ACCOUNT:
@@ -200,7 +200,6 @@ var BodyCellBuilder = function (_React$PureComponent) {
200
200
  displayTime: props.displayTime,
201
201
  sticky: sticky
202
202
  });
203
- hasContextMenu = false;
204
203
  break;
205
204
 
206
205
  case cst.TYPE_ICON:
@@ -229,7 +228,6 @@ var BodyCellBuilder = function (_React$PureComponent) {
229
228
  view: view,
230
229
  sticky: sticky
231
230
  });
232
- hasContextMenu = false;
233
231
  break;
234
232
 
235
233
  case cst.TYPE_RATE:
@@ -242,7 +240,6 @@ var BodyCellBuilder = function (_React$PureComponent) {
242
240
  view: view,
243
241
  sticky: sticky
244
242
  });
245
- hasContextMenu = false;
246
243
  break;
247
244
 
248
245
  case cst.TYPE_SENTINEL:
@@ -287,14 +284,14 @@ var BodyCellBuilder = function (_React$PureComponent) {
287
284
  break;
288
285
  }
289
286
 
290
- cellContent = hasContextMenu ? _react2.default.createElement(
287
+ cellContent = disableContextMenu ? cellElement : _react2.default.createElement(
291
288
  _reactContextmenu.ContextMenuTrigger,
292
289
  {
293
290
  id: 'hitable_context_menu_' + this.props.tabId,
294
291
  collect: this.collectContextMenuDatas
295
292
  },
296
293
  cellElement
297
- ) : cellElement;
294
+ );
298
295
  }
299
296
 
300
297
  return _react2.default.createElement(
@@ -308,7 +305,8 @@ var BodyCellBuilder = function (_React$PureComponent) {
308
305
  }(_react2.default.PureComponent);
309
306
 
310
307
  BodyCellBuilder.defaultProps = {
311
- ellipsis: 'right'
308
+ ellipsis: 'right',
309
+ disableContextMenu: true
312
310
  };
313
311
  exports.default = BodyCellBuilder;
314
312
  BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -340,6 +338,10 @@ BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
340
338
  * Densité, défini la hauteur de la ligne
341
339
  */
342
340
  dense: _propTypes2.default.bool,
341
+ /**
342
+ * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
343
+ */
344
+ disableContextMenu: _propTypes2.default.bool.isRequired,
343
345
  /**
344
346
  * Ellipsis
345
347
  */
@@ -83,6 +83,10 @@ var styles = exports.styles = function styles(theme) {
83
83
  },
84
84
  center: {
85
85
  textAlign: 'center'
86
+ },
87
+ tooltipContainer: {
88
+ display: 'flex',
89
+ alignItems: 'center'
86
90
  }
87
91
  };
88
92
  };
@@ -113,7 +117,7 @@ var CellImage = function (_React$PureComponent) {
113
117
 
114
118
  var tooltipContent = _react2.default.createElement(
115
119
  'div',
116
- null,
120
+ { className: classes.tooltipContainer },
117
121
  _react2.default.createElement('img', { src: path, alt: value, className: classes.tooltipImg }),
118
122
  _react2.default.createElement(
119
123
  'span',
@@ -67,6 +67,10 @@ var _HiTableFooterScroll = require('./HiTableFooterScroll');
67
67
 
68
68
  var _HiTableFooterScroll2 = _interopRequireDefault(_HiTableFooterScroll);
69
69
 
70
+ var _HiTableFooter = require('./HiTableFooter');
71
+
72
+ var _HiTableFooter2 = _interopRequireDefault(_HiTableFooter);
73
+
70
74
  var _constants = require('./constants');
71
75
 
72
76
  var cst = _interopRequireWildcard(_constants);
@@ -707,7 +711,9 @@ var HiTable = function (_React$Component) {
707
711
  groupBy = _props.groupBy,
708
712
  lookupColumns = _props.lookupColumns,
709
713
  loading = _props.loading,
710
- fixedColumnWidth = _props.fixedColumnWidth;
714
+ fixedColumnWidth = _props.fixedColumnWidth,
715
+ disableContextMenu = _props.disableContextMenu,
716
+ footerContent = _props.footerContent;
711
717
  var _state = this.state,
712
718
  dateUpdate = _state.dateUpdate,
713
719
  isScrollToBottom = _state.isScrollToBottom,
@@ -716,6 +722,13 @@ var HiTable = function (_React$Component) {
716
722
 
717
723
  var headerHeight = dense ? cst.CELL_HEADER_HEIGHT_DENSE : cst.CELL_HEADER_HEIGHT;
718
724
 
725
+ var nbColumnsDisplayed = 0;
726
+ orderedColumns.forEach(function (column) {
727
+ if (column.displayed !== false) {
728
+ nbColumnsDisplayed += 1;
729
+ }
730
+ });
731
+
719
732
  return _react2.default.createElement(
720
733
  'div',
721
734
  { className: classes.root },
@@ -785,7 +798,8 @@ var HiTable = function (_React$Component) {
785
798
  groupByIds: groupByIds,
786
799
  lookupColumns: lookupColumns,
787
800
  loading: loading,
788
- fixedColumnWidth: fixedColumnWidth
801
+ fixedColumnWidth: fixedColumnWidth,
802
+ disableContextMenu: disableContextMenu
789
803
  }),
790
804
  infiniteScroll && _react2.default.createElement(_HiTableFooterScroll2.default, {
791
805
  tabId: tabId,
@@ -794,7 +808,15 @@ var HiTable = function (_React$Component) {
794
808
  maxAutoRequest: 3,
795
809
  isScrollToBottom: isScrollToBottom,
796
810
  translations: translations
797
- })
811
+ }),
812
+ !infiniteScroll && footerContent && _react2.default.createElement(
813
+ _HiTableFooter2.default,
814
+ {
815
+ nbColumnsDisplayed: nbColumnsDisplayed,
816
+ view: view
817
+ },
818
+ footerContent
819
+ )
798
820
  ),
799
821
  _react2.default.createElement(_HiTableContextMenu2.default, {
800
822
  tabId: tabId,
@@ -856,7 +878,8 @@ HiTable.defaultProps = {
856
878
  view: 'l',
857
879
  lookupColumns: [],
858
880
  loading: false,
859
- fixedColumnWidth: true
881
+ fixedColumnWidth: true,
882
+ disableContextMenu: true
860
883
  };
861
884
  HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
862
885
  /**
@@ -883,6 +906,10 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
883
906
  * Densité d'affichage (joue sur la hauteur des lignes)
884
907
  */
885
908
  dense: _propTypes2.default.bool,
909
+ /**
910
+ * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
911
+ */
912
+ disableContextMenu: _propTypes2.default.bool.isRequired,
886
913
  /**
887
914
  * Active le filtre sur les colonnes filtrables
888
915
  */
@@ -892,6 +919,10 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
892
919
  * Sinon les colonnes s'adaptent à l'espace disponible
893
920
  */
894
921
  fixedColumnWidth: _propTypes2.default.bool,
922
+ /**
923
+ * Ajoute un footer avec le contenu footerContent à l'intérieur
924
+ */
925
+ footerContent: _propTypes2.default.node,
895
926
  /**
896
927
  * Id de la colonne par laquelle sont regroupé les éléments
897
928
  */
@@ -966,6 +997,9 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
966
997
  /**
967
998
  * Fonction de callback sur le tri d'une colonne
968
999
  * Passe l'id de la colonne et la direction du tri (ou false si tri par défaut)
1000
+ *
1001
+ * @param {string} column id
1002
+ * @param {string} direction
969
1003
  */
970
1004
  onSort: _propTypes2.default.func,
971
1005
  /**
@@ -287,7 +287,8 @@ var HiTableBody = function (_React$Component) {
287
287
  sortedColumnId = _props.sortedColumnId,
288
288
  lookupColumns = _props.lookupColumns,
289
289
  loading = _props.loading,
290
- fixedColumnWidth = _props.fixedColumnWidth;
290
+ fixedColumnWidth = _props.fixedColumnWidth,
291
+ disableContextMenu = _props.disableContextMenu;
291
292
  var _state = this.state,
292
293
  openedParentRowId = _state.openedParentRowId,
293
294
  openedDetailsRowIdList = _state.openedDetailsRowIdList;
@@ -386,7 +387,8 @@ var HiTableBody = function (_React$Component) {
386
387
  sticky: sticky,
387
388
  tabId: tabId,
388
389
  view: view,
389
- fixedColumnWidth: fixedColumnWidth
390
+ fixedColumnWidth: fixedColumnWidth,
391
+ disableContextMenu: disableContextMenu
390
392
  });
391
393
 
392
394
  if (hasChildren && openedParentRowId === row.rowId) {
@@ -416,7 +418,8 @@ var HiTableBody = function (_React$Component) {
416
418
  dense: dense,
417
419
  sticky: sticky,
418
420
  isDetail: true,
419
- fixedColumnWidth: fixedColumnWidth
421
+ fixedColumnWidth: fixedColumnWidth,
422
+ disableContextMenu: disableContextMenu
420
423
  };
421
424
 
422
425
  tableRows.push(_react2.default.createElement(_BodyRow2.default, (0, _extends3.default)({ key: row.rowId + '-' + detailRow.rowId }, detailRowProps)));
@@ -457,7 +460,8 @@ HiTableBody.defaultProps = {
457
460
  height: 450,
458
461
  sticky: true,
459
462
  view: 'l',
460
- loading: false
463
+ loading: false,
464
+ disableContextMenu: true
461
465
  };
462
466
  HiTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
463
467
  /**
@@ -485,6 +489,10 @@ HiTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
485
489
  * Densité d'affichage (joue sur la hauteur des lignes)
486
490
  */
487
491
  dense: _propTypes2.default.bool,
492
+ /**
493
+ * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
494
+ */
495
+ disableContextMenu: _propTypes2.default.bool.isRequired,
488
496
  /**
489
497
  * Fixe la taille des colonnes selon le type de vue
490
498
  * Sinon les colonnes s'adaptent à l'espace disponible
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.styles = undefined;
7
+
8
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
9
+
10
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
11
+
12
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
13
+
14
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
15
+
16
+ var _createClass2 = require('babel-runtime/helpers/createClass');
17
+
18
+ var _createClass3 = _interopRequireDefault(_createClass2);
19
+
20
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
21
+
22
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23
+
24
+ var _inherits2 = require('babel-runtime/helpers/inherits');
25
+
26
+ var _inherits3 = _interopRequireDefault(_inherits2);
27
+
28
+ var _react = require('react');
29
+
30
+ var _react2 = _interopRequireDefault(_react);
31
+
32
+ var _Table = require('material-ui/Table');
33
+
34
+ var _styles = require('../styles');
35
+
36
+ var _propTypes = require('prop-types');
37
+
38
+ var _propTypes2 = _interopRequireDefault(_propTypes);
39
+
40
+ var _constants = require('./constants');
41
+
42
+ var cst = _interopRequireWildcard(_constants);
43
+
44
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
45
+
46
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
+
48
+ var styles = exports.styles = function styles(theme) {
49
+ return {
50
+ tfoot: {
51
+ zIndex: 13
52
+ },
53
+ tfootCell: {
54
+ borderTop: '1px solid',
55
+ borderTopColor: theme.palette.line.stepper
56
+ },
57
+ patchDiv: {
58
+ position: 'relative',
59
+ border: 'none',
60
+ width: 0,
61
+ paddingRight: 0,
62
+ paddingTop: 0,
63
+ paddingBottom: 0,
64
+ height: '100%',
65
+ zIndex: 12,
66
+ backgroundColor: 'inherit'
67
+ }
68
+ };
69
+ };
70
+
71
+ var HiTableFooter = function (_React$Component) {
72
+ (0, _inherits3.default)(HiTableFooter, _React$Component);
73
+
74
+ function HiTableFooter() {
75
+ (0, _classCallCheck3.default)(this, HiTableFooter);
76
+ return (0, _possibleConstructorReturn3.default)(this, (HiTableFooter.__proto__ || (0, _getPrototypeOf2.default)(HiTableFooter)).apply(this, arguments));
77
+ }
78
+
79
+ (0, _createClass3.default)(HiTableFooter, [{
80
+ key: 'render',
81
+ value: function render() {
82
+ var _props = this.props,
83
+ classes = _props.classes,
84
+ nbColumnsDisplayed = _props.nbColumnsDisplayed,
85
+ view = _props.view;
86
+
87
+
88
+ return _react2.default.createElement(
89
+ _Table.TableFooter,
90
+ { className: classes.tfoot },
91
+ _react2.default.createElement(
92
+ _Table.TableRow,
93
+ null,
94
+ _react2.default.createElement(_Table.TableCell, {
95
+ style: {
96
+ paddingLeft: cst.DEFAULT_PADDING[view]
97
+ },
98
+ key: 'footer-left-cell',
99
+ className: classes.patchDiv
100
+ }),
101
+ _react2.default.createElement(
102
+ _Table.TableCell,
103
+ { colSpan: nbColumnsDisplayed, classes: { root: classes.tfootCell } },
104
+ this.props.children
105
+ ),
106
+ _react2.default.createElement(_Table.TableCell, {
107
+ style: {
108
+ paddingLeft: cst.DEFAULT_PADDING[view]
109
+ },
110
+ key: 'footer-right-cell',
111
+ className: classes.patchDiv
112
+ })
113
+ )
114
+ );
115
+ }
116
+ }]);
117
+ return HiTableFooter;
118
+ }(_react2.default.Component);
119
+
120
+ HiTableFooter.propTypes = process.env.NODE_ENV !== "production" ? {
121
+ /**
122
+ * Nombre de colonnes affichées
123
+ */
124
+ nbColumnsDisplayed: _propTypes2.default.number.isRequired,
125
+ /**
126
+ * Taille du tableau (L/M/S),
127
+ * définit l'espace entre les cellules et leurs tailles par default
128
+ */
129
+ view: _propTypes2.default.oneOf(['l', 'm', 's'])
130
+ } : {};
131
+ exports.default = (0, _styles.withStyles)(styles, { name: 'HmuiHiTableFooter' })(HiTableFooter);
@@ -75,9 +75,10 @@ export default class BodyCellBuilder extends React.PureComponent {
75
75
  childrenCount,
76
76
  onOpenDetails,
77
77
  lookedUp,
78
- fixedColumnWidth
78
+ fixedColumnWidth,
79
+ disableContextMenu
79
80
  } = _props,
80
- props = _objectWithoutProperties(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth']);
81
+ props = _objectWithoutProperties(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth', 'disableContextMenu']);
81
82
 
82
83
  const layoutProps = {
83
84
  type,
@@ -99,7 +100,6 @@ export default class BodyCellBuilder extends React.PureComponent {
99
100
  if (typeof data !== 'undefined') {
100
101
 
101
102
  let cellElement;
102
- let hasContextMenu = true;
103
103
 
104
104
  switch (type) {
105
105
  case cst.TYPE_ACCOUNT:
@@ -149,7 +149,6 @@ export default class BodyCellBuilder extends React.PureComponent {
149
149
  displayTime: props.displayTime,
150
150
  sticky: sticky
151
151
  });
152
- hasContextMenu = false;
153
152
  break;
154
153
 
155
154
  case cst.TYPE_ICON:
@@ -178,7 +177,6 @@ export default class BodyCellBuilder extends React.PureComponent {
178
177
  view: view,
179
178
  sticky: sticky
180
179
  });
181
- hasContextMenu = false;
182
180
  break;
183
181
 
184
182
  case cst.TYPE_RATE:
@@ -191,7 +189,6 @@ export default class BodyCellBuilder extends React.PureComponent {
191
189
  view: view,
192
190
  sticky: sticky
193
191
  });
194
- hasContextMenu = false;
195
192
  break;
196
193
 
197
194
  case cst.TYPE_SENTINEL:
@@ -236,14 +233,14 @@ export default class BodyCellBuilder extends React.PureComponent {
236
233
  break;
237
234
  }
238
235
 
239
- cellContent = hasContextMenu ? React.createElement(
236
+ cellContent = disableContextMenu ? cellElement : React.createElement(
240
237
  ContextMenuTrigger,
241
238
  {
242
239
  id: `hitable_context_menu_${this.props.tabId}`,
243
240
  collect: this.collectContextMenuDatas
244
241
  },
245
242
  cellElement
246
- ) : cellElement;
243
+ );
247
244
  }
248
245
 
249
246
  return React.createElement(
@@ -254,7 +251,8 @@ export default class BodyCellBuilder extends React.PureComponent {
254
251
  }
255
252
  }
256
253
  BodyCellBuilder.defaultProps = {
257
- ellipsis: 'right'
254
+ ellipsis: 'right',
255
+ disableContextMenu: true
258
256
  };
259
257
  BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
260
258
  /**
@@ -285,6 +283,10 @@ BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
285
283
  * Densité, défini la hauteur de la ligne
286
284
  */
287
285
  dense: PropTypes.bool,
286
+ /**
287
+ * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
288
+ */
289
+ disableContextMenu: PropTypes.bool.isRequired,
288
290
  /**
289
291
  * Ellipsis
290
292
  */
@@ -38,6 +38,10 @@ export const styles = theme => ({
38
38
  },
39
39
  center: {
40
40
  textAlign: 'center'
41
+ },
42
+ tooltipContainer: {
43
+ display: 'flex',
44
+ alignItems: 'center'
41
45
  }
42
46
  });
43
47
 
@@ -53,7 +57,7 @@ class CellImage extends React.PureComponent {
53
57
 
54
58
  const tooltipContent = React.createElement(
55
59
  'div',
56
- null,
60
+ { className: classes.tooltipContainer },
57
61
  React.createElement('img', { src: path, alt: value, className: classes.tooltipImg }),
58
62
  React.createElement(
59
63
  'span',
@@ -5,10 +5,11 @@ import ArrowUp from 'mdi-material-ui/ArrowUp';
5
5
  import isRequiredIf from 'react-proptype-conditional-require';
6
6
  import HiButton from '../HiButton';
7
7
 
8
- import { withStyles, withTheme } from '../styles';
8
+ import { withStyles } from '../styles';
9
9
  import HiTableHead from './HiTableHead';
10
10
  import HiTableBody from './HiTableBody';
11
11
  import HiTableFooterScroll from './HiTableFooterScroll';
12
+ import HiTableFooter from './HiTableFooter';
12
13
  import * as cst from './constants';
13
14
  import HiTableContextMenu from './HiTableContextMenu';
14
15
 
@@ -583,13 +584,22 @@ class HiTable extends React.Component {
583
584
  groupBy,
584
585
  lookupColumns,
585
586
  loading,
586
- fixedColumnWidth
587
+ fixedColumnWidth,
588
+ disableContextMenu,
589
+ footerContent
587
590
  } = this.props;
588
591
 
589
592
  const { dateUpdate, isScrollToBottom, groupByIds } = this.state;
590
593
 
591
594
  const headerHeight = dense ? cst.CELL_HEADER_HEIGHT_DENSE : cst.CELL_HEADER_HEIGHT;
592
595
 
596
+ let nbColumnsDisplayed = 0;
597
+ orderedColumns.forEach(column => {
598
+ if (column.displayed !== false) {
599
+ nbColumnsDisplayed += 1;
600
+ }
601
+ });
602
+
593
603
  return React.createElement(
594
604
  'div',
595
605
  { className: classes.root },
@@ -657,7 +667,8 @@ class HiTable extends React.Component {
657
667
  groupByIds: groupByIds,
658
668
  lookupColumns: lookupColumns,
659
669
  loading: loading,
660
- fixedColumnWidth: fixedColumnWidth
670
+ fixedColumnWidth: fixedColumnWidth,
671
+ disableContextMenu: disableContextMenu
661
672
  }),
662
673
  infiniteScroll && React.createElement(HiTableFooterScroll, {
663
674
  tabId: tabId,
@@ -666,7 +677,15 @@ class HiTable extends React.Component {
666
677
  maxAutoRequest: 3,
667
678
  isScrollToBottom: isScrollToBottom,
668
679
  translations: translations
669
- })
680
+ }),
681
+ !infiniteScroll && footerContent && React.createElement(
682
+ HiTableFooter,
683
+ {
684
+ nbColumnsDisplayed: nbColumnsDisplayed,
685
+ view: view
686
+ },
687
+ footerContent
688
+ )
670
689
  ),
671
690
  React.createElement(HiTableContextMenu, {
672
691
  tabId: tabId,
@@ -724,7 +743,8 @@ HiTable.defaultProps = {
724
743
  view: 'l',
725
744
  lookupColumns: [],
726
745
  loading: false,
727
- fixedColumnWidth: true
746
+ fixedColumnWidth: true,
747
+ disableContextMenu: true
728
748
  };
729
749
  HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
730
750
  /**
@@ -751,6 +771,10 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
751
771
  * Densité d'affichage (joue sur la hauteur des lignes)
752
772
  */
753
773
  dense: PropTypes.bool,
774
+ /**
775
+ * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
776
+ */
777
+ disableContextMenu: PropTypes.bool.isRequired,
754
778
  /**
755
779
  * Active le filtre sur les colonnes filtrables
756
780
  */
@@ -760,6 +784,10 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
760
784
  * Sinon les colonnes s'adaptent à l'espace disponible
761
785
  */
762
786
  fixedColumnWidth: PropTypes.bool,
787
+ /**
788
+ * Ajoute un footer avec le contenu footerContent à l'intérieur
789
+ */
790
+ footerContent: PropTypes.node,
763
791
  /**
764
792
  * Id de la colonne par laquelle sont regroupé les éléments
765
793
  */
@@ -832,6 +860,9 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
832
860
  /**
833
861
  * Fonction de callback sur le tri d'une colonne
834
862
  * Passe l'id de la colonne et la direction du tri (ou false si tri par défaut)
863
+ *
864
+ * @param {string} column id
865
+ * @param {string} direction
835
866
  */
836
867
  onSort: PropTypes.func,
837
868
  /**
@@ -194,7 +194,8 @@ class HiTableBody extends React.Component {
194
194
  sortedColumnId,
195
195
  lookupColumns,
196
196
  loading,
197
- fixedColumnWidth
197
+ fixedColumnWidth,
198
+ disableContextMenu
198
199
  } = this.props;
199
200
 
200
201
  const { openedParentRowId, openedDetailsRowIdList } = this.state;
@@ -292,7 +293,8 @@ class HiTableBody extends React.Component {
292
293
  sticky,
293
294
  tabId,
294
295
  view,
295
- fixedColumnWidth
296
+ fixedColumnWidth,
297
+ disableContextMenu
296
298
  });
297
299
 
298
300
  if (hasChildren && openedParentRowId === row.rowId) {
@@ -322,7 +324,8 @@ class HiTableBody extends React.Component {
322
324
  dense,
323
325
  sticky,
324
326
  isDetail: true,
325
- fixedColumnWidth
327
+ fixedColumnWidth,
328
+ disableContextMenu
326
329
  };
327
330
 
328
331
  tableRows.push(React.createElement(BodyRow, _extends({ key: `${row.rowId}-${detailRow.rowId}` }, detailRowProps)));
@@ -363,7 +366,8 @@ HiTableBody.defaultProps = {
363
366
  height: 450,
364
367
  sticky: true,
365
368
  view: 'l',
366
- loading: false
369
+ loading: false,
370
+ disableContextMenu: true
367
371
  };
368
372
  HiTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
369
373
  /**
@@ -391,6 +395,10 @@ HiTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
391
395
  * Densité d'affichage (joue sur la hauteur des lignes)
392
396
  */
393
397
  dense: PropTypes.bool,
398
+ /**
399
+ * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
400
+ */
401
+ disableContextMenu: PropTypes.bool.isRequired,
394
402
  /**
395
403
  * Fixe la taille des colonnes selon le type de vue
396
404
  * Sinon les colonnes s'adaptent à l'espace disponible