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

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.
@@ -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