@hipay/hipay-material-ui 1.0.0-beta.12 → 1.0.0-beta.14

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.
@@ -50,6 +50,10 @@ var _DayPickerInput = require('react-day-picker/DayPickerInput');
50
50
 
51
51
  var _DayPickerInput2 = _interopRequireDefault(_DayPickerInput);
52
52
 
53
+ var _classnames = require('classnames');
54
+
55
+ var _classnames2 = _interopRequireDefault(_classnames);
56
+
53
57
  var _withStyles = require('../styles/withStyles');
54
58
 
55
59
  var _withStyles2 = _interopRequireDefault(_withStyles);
@@ -92,6 +96,8 @@ var _stylesheet2 = _interopRequireDefault(_stylesheet);
92
96
 
93
97
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
94
98
 
99
+ // weak
100
+
95
101
  var HiDateRangePicker = function (_React$Component) {
96
102
  (0, _inherits3.default)(HiDateRangePicker, _React$Component);
97
103
 
@@ -100,11 +106,16 @@ var HiDateRangePicker = function (_React$Component) {
100
106
 
101
107
  var _this = (0, _possibleConstructorReturn3.default)(this, (HiDateRangePicker.__proto__ || (0, _getPrototypeOf2.default)(HiDateRangePicker)).call(this));
102
108
 
109
+ _this.handleDayPickerFocus = function (name) {
110
+ return function () {
111
+ _this.setState({ focusedInput: name });
112
+ };
113
+ };
114
+
103
115
  _this.state = {
104
- fromOpenedPanel: 'calendar',
105
116
  fromCurrentMonth: props.from ? props.from : new Date(),
106
- toOpenedPanel: 'calendar',
107
- toCurrentMonth: props.to ? props.to : new Date()
117
+ toCurrentMonth: props.to ? props.to : new Date(),
118
+ focusedInput: ''
108
119
  };
109
120
 
110
121
  _this.handleReset = _this.handleReset.bind(_this);
@@ -128,6 +139,8 @@ var HiDateRangePicker = function (_React$Component) {
128
139
  _this.handleYearClick = _this.handleYearClick.bind(_this);
129
140
  _this.handleYearClickFrom = _this.handleYearClickFrom.bind(_this);
130
141
  _this.handleYearClickTo = _this.handleYearClickTo.bind(_this);
142
+ _this.handleDayPickerFocus = _this.handleDayPickerFocus.bind(_this);
143
+ _this.handleDayPickerBlur = _this.handleDayPickerBlur.bind(_this);
131
144
 
132
145
  _this.openPanel = _this.openPanel.bind(_this);
133
146
 
@@ -324,6 +337,11 @@ var HiDateRangePicker = function (_React$Component) {
324
337
  document.activeElement.blur();
325
338
  }
326
339
  }
340
+ }, {
341
+ key: 'handleDayPickerBlur',
342
+ value: function handleDayPickerBlur() {
343
+ this.setState({ focusedInput: '' });
344
+ }
327
345
  }, {
328
346
  key: 'openPanel',
329
347
  value: function openPanel(name, panel) {
@@ -367,9 +385,10 @@ var HiDateRangePicker = function (_React$Component) {
367
385
  }
368
386
  }, {
369
387
  key: 'renderOverlay',
370
- value: function renderOverlay(name, propsOverlay) {
388
+ value: function renderOverlay(name, propsOverlay, staticPosition) {
371
389
  var rangeOverlayProps = (0, _extends3.default)({}, propsOverlay, {
372
- side: name
390
+ side: name,
391
+ staticPosition: staticPosition
373
392
  });
374
393
 
375
394
  switch (this.state[name + 'OpenedPanel']) {
@@ -387,12 +406,12 @@ var HiDateRangePicker = function (_React$Component) {
387
406
  }, {
388
407
  key: 'renderOverlayFrom',
389
408
  value: function renderOverlayFrom(propsOverlay) {
390
- return this.renderOverlay('from', propsOverlay);
409
+ return this.renderOverlay('from', propsOverlay, this.props.staticPosition);
391
410
  }
392
411
  }, {
393
412
  key: 'renderOverlayTo',
394
413
  value: function renderOverlayTo(propsOverlay) {
395
- return this.renderOverlay('to', propsOverlay);
414
+ return this.renderOverlay('to', propsOverlay, this.props.staticPosition);
396
415
  }
397
416
  }, {
398
417
  key: 'renderMonthPickerOverlay',
@@ -439,7 +458,8 @@ var HiDateRangePicker = function (_React$Component) {
439
458
  }, {
440
459
  key: 'render',
441
460
  value: function render() {
442
- var _this6 = this;
461
+ var _this6 = this,
462
+ _classNames;
443
463
 
444
464
  var _props = this.props,
445
465
  classes = _props.classes,
@@ -457,7 +477,8 @@ var HiDateRangePicker = function (_React$Component) {
457
477
  to = _props.to,
458
478
  translations = _props.translations,
459
479
  id = _props.id,
460
- props = (0, _objectWithoutProperties3.default)(_props, ['classes', 'disabledDays', 'disablePastDays', 'disableFutureDays', 'enableTime', 'labelFrom', 'labelTo', 'locale', 'format', 'from', 'minimumDate', 'onReset', 'to', 'translations', 'id']);
480
+ staticPosition = _props.staticPosition,
481
+ props = (0, _objectWithoutProperties3.default)(_props, ['classes', 'disabledDays', 'disablePastDays', 'disableFutureDays', 'enableTime', 'labelFrom', 'labelTo', 'locale', 'format', 'from', 'minimumDate', 'onReset', 'to', 'translations', 'id', 'staticPosition']);
461
482
  var _state = this.state,
462
483
  fromCurrentMonth = _state.fromCurrentMonth,
463
484
  toCurrentMonth = _state.toCurrentMonth;
@@ -575,32 +596,47 @@ var HiDateRangePicker = function (_React$Component) {
575
596
  id: id + '-to'
576
597
  });
577
598
 
599
+ var fromClass = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.absolute, staticPosition === true && this.state.focusedInput === 'to'), (0, _defineProperty3.default)(_classNames, classes.dayPickerMargin, staticPosition === true && this.state.focusedInput === 'to'), _classNames));
600
+ var toClass = (0, _classnames2.default)(classes.toInput, (0, _defineProperty3.default)({}, classes.absolute, staticPosition === true && this.state.focusedInput === 'from'));
601
+
578
602
  return _react2.default.createElement(
579
603
  'div',
580
604
  { className: classes.root },
581
605
  _react2.default.createElement(
582
606
  'div',
583
- { className: classes.fromInput },
584
- _react2.default.createElement(_DayPickerInput2.default, {
585
- ref: function ref(el) {
586
- _this6.fromInput = el;
587
- },
588
- value: from,
589
- hideOnDayClick: false,
590
- overlayComponent: this.renderOverlayFrom,
591
- dayPickerProps: fromDayPickerProps,
592
- component: _HiForm.HiTextField,
593
- inputProps: fromInputProps,
594
- format: enableTime ? format + ' HH:mm' : format,
595
- formatDate: _moment.formatDate,
596
- parseDate: _moment.parseDate,
597
- onDayChange: this.handleDayChangeFrom,
598
- placeholder: ''
599
- })
607
+ {
608
+ className: classes.fromInput,
609
+ onFocus: this.handleDayPickerFocus('from'),
610
+ onBlur: this.handleDayPickerBlur
611
+ },
612
+ _react2.default.createElement(
613
+ 'div',
614
+ { className: fromClass },
615
+ _react2.default.createElement(_DayPickerInput2.default, {
616
+ ref: function ref(el) {
617
+ _this6.fromInput = el;
618
+ },
619
+ value: from,
620
+ hideOnDayClick: false,
621
+ overlayComponent: this.renderOverlayFrom,
622
+ dayPickerProps: fromDayPickerProps,
623
+ component: _HiForm.HiTextField,
624
+ inputProps: fromInputProps,
625
+ format: enableTime ? format + ' HH:mm' : format,
626
+ formatDate: _moment.formatDate,
627
+ parseDate: _moment.parseDate,
628
+ onDayChange: this.handleDayChangeFrom,
629
+ placeholder: ''
630
+ })
631
+ )
600
632
  ),
601
633
  _react2.default.createElement(
602
634
  'div',
603
- { className: classes.toInput },
635
+ {
636
+ className: toClass,
637
+ onFocus: this.handleDayPickerFocus('to'),
638
+ onBlur: this.handleDayPickerBlur
639
+ },
604
640
  _react2.default.createElement(_DayPickerInput2.default, {
605
641
  ref: function ref(el) {
606
642
  _this6.toInput = el;
@@ -622,12 +658,13 @@ var HiDateRangePicker = function (_React$Component) {
622
658
  }
623
659
  }]);
624
660
  return HiDateRangePicker;
625
- }(_react2.default.Component); // weak
661
+ }(_react2.default.Component);
626
662
 
627
663
  HiDateRangePicker.defaultProps = {
628
664
  disabledDays: [],
629
665
  disablePastDays: false,
630
666
  disableFutureDays: false,
667
+ staticPosition: false,
631
668
  enableTime: false,
632
669
  format: 'YYYY-DD-MM',
633
670
  labelFrom: 'Start',
@@ -703,6 +740,10 @@ HiDateRangePicker.propTypes = process.env.NODE_ENV !== "production" ? {
703
740
  * Callback au reset de l'input
704
741
  */
705
742
  onReset: _propTypes2.default.func,
743
+ /**
744
+ * Si true, le calendrier sera dans une div static plutot que dans une popper absolute
745
+ */
746
+ staticPosition: _propTypes2.default.bool,
706
747
  /**
707
748
  * Date de fin sélectionnée
708
749
  */
@@ -191,11 +191,11 @@ var HiDateRangeSelector = function (_React$Component) {
191
191
  if (selectedOption) {
192
192
  _this.props.onChange('from', selectedOption.from.toDate());
193
193
  _this.props.onChange('to', selectedOption.to.toDate());
194
- if (_this.props.returnSelectValue === true) {
195
- _this.props.onChange('period', value);
196
- }
197
194
  }
198
195
  }
196
+ if (_this.props.returnSelectValue === true) {
197
+ _this.props.onChange('period', value);
198
+ }
199
199
  };
200
200
  };
201
201
 
@@ -252,7 +252,8 @@ var HiDateRangeSelector = function (_React$Component) {
252
252
  translations = _props.translations,
253
253
  classes = _props.classes,
254
254
  selectProps = _props.selectProps,
255
- props = (0, _objectWithoutProperties3.default)(_props, ['disabled', 'enableTime', 'error', 'errorText', 'helperIcon', 'helperText', 'idRange', 'idSelect', 'label', 'from', 'onChange', 'required', 'to', 'translations', 'classes', 'selectProps']);
255
+ staticPosition = _props.staticPosition,
256
+ props = (0, _objectWithoutProperties3.default)(_props, ['disabled', 'enableTime', 'error', 'errorText', 'helperIcon', 'helperText', 'idRange', 'idSelect', 'label', 'from', 'onChange', 'required', 'to', 'translations', 'classes', 'selectProps', 'staticPosition']);
256
257
  var selectedPreset = this.state.selectedPreset;
257
258
 
258
259
 
@@ -284,7 +285,8 @@ var HiDateRangeSelector = function (_React$Component) {
284
285
  translations: translations,
285
286
  value: selectedPreset,
286
287
  containerWidth: this.state.containerWidth,
287
- classes: { root: classes.dateSelect }
288
+ classes: { root: classes.dateSelect },
289
+ staticPosition: staticPosition
288
290
  }, selectProps))
289
291
  ),
290
292
  _react2.default.createElement(
@@ -299,7 +301,8 @@ var HiDateRangeSelector = function (_React$Component) {
299
301
  onChange: onChange,
300
302
  onReset: this.handleReset,
301
303
  disabled: disabled || selectedPreset !== 'custom',
302
- translations: translations
304
+ translations: translations,
305
+ staticPosition: staticPosition
303
306
  }, props))
304
307
  )
305
308
  );
@@ -313,6 +316,7 @@ HiDateRangeSelector.defaultProps = {
313
316
  defaultPreset: 'cd',
314
317
  enableTime: false,
315
318
  returnSelectValue: false,
319
+ staticPosition: false,
316
320
  locale: 'fr-FR',
317
321
  format: 'YYYY-DD-MM',
318
322
  translations: {
@@ -414,6 +418,10 @@ HiDateRangeSelector.propTypes = process.env.NODE_ENV !== "production" ? {
414
418
  * Props passées au HiSelectField
415
419
  */
416
420
  selectProps: _propTypes2.default.object,
421
+ /**
422
+ * Si true, le calendrier sera dans une div static plutot que dans une popper absolute
423
+ */
424
+ staticPosition: _propTypes2.default.bool,
417
425
  /**
418
426
  * Date de fin sélectionnée
419
427
  */
@@ -34,10 +34,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
34
34
  var styles = exports.styles = function styles() {
35
35
  return {
36
36
  paper: {
37
- position: 'absolute',
38
37
  width: '100%',
39
38
  zIndex: 10
40
39
  },
40
+ absolute: {
41
+ position: 'absolute'
42
+ },
43
+ relative: {
44
+ position: 'relative'
45
+ },
41
46
  left: {
42
47
  width: '200%',
43
48
  left: 0
@@ -57,9 +62,10 @@ var Overlay = function Overlay(_ref) {
57
62
 
58
63
  var classes = _ref.classes,
59
64
  children = _ref.children,
60
- side = _ref.side;
65
+ side = _ref.side,
66
+ staticPosition = _ref.staticPosition;
61
67
 
62
- var paperClass = (0, _classnames2.default)(classes.paper, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.left, side === 'from'), (0, _defineProperty3.default)(_classNames, classes.right, side === 'to'), _classNames));
68
+ var paperClass = (0, _classnames2.default)(classes.paper, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.left, side === 'from'), (0, _defineProperty3.default)(_classNames, classes.right, side === 'to'), (0, _defineProperty3.default)(_classNames, classes.absolute, staticPosition !== true), (0, _defineProperty3.default)(_classNames, classes.relative, staticPosition === true), _classNames));
63
69
 
64
70
  return _react2.default.createElement(
65
71
  _Paper2.default,
@@ -31,6 +31,13 @@ exports.default = function (theme) {
31
31
  width: 'calc(50% - 4px)',
32
32
  marginLeft: 4
33
33
  },
34
+ absolute: {
35
+ position: 'absolute'
36
+ },
37
+ dayPickerMargin: {
38
+ top: -337,
39
+ width: 'calc(100% - 4px)'
40
+ },
34
41
  // The container element
35
42
  container: {
36
43
  width: '100%',
@@ -485,7 +485,7 @@ HiSelect.defaultProps = {
485
485
  var _initialiseProps = function _initialiseProps() {
486
486
  var _this3 = this;
487
487
 
488
- this.handleClick = function (event) {
488
+ this.handleClick = function () {
489
489
  if (_this3.state.open) {
490
490
  _this3.handleClose();
491
491
  } else {
@@ -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