@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.
- package/HiTable/BodyCellBuilder.js +10 -8
- package/HiTable/BodyCells/CellImage.js +5 -1
- package/HiTable/HiTable.js +38 -4
- package/HiTable/HiTableBody.js +12 -4
- package/HiTable/HiTableFooter.js +131 -0
- package/es/HiTable/BodyCellBuilder.js +11 -9
- package/es/HiTable/BodyCells/CellImage.js +5 -1
- package/es/HiTable/HiTable.js +36 -5
- package/es/HiTable/HiTableBody.js +12 -4
- package/es/HiTable/HiTableFooter.js +74 -0
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +2 -2
- package/umd/hipay-material-ui.development.js +7086 -6959
- package/umd/hipay-material-ui.production.min.js +5 -5
@@ -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
|
-
|
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 =
|
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
|
-
)
|
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
|
-
|
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',
|
package/HiTable/HiTable.js
CHANGED
@@ -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
|
/**
|
package/HiTable/HiTableBody.js
CHANGED
@@ -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 =
|
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
|
-
)
|
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
|
-
|
60
|
+
{ className: classes.tooltipContainer },
|
57
61
|
React.createElement('img', { src: path, alt: value, className: classes.tooltipImg }),
|
58
62
|
React.createElement(
|
59
63
|
'span',
|
package/es/HiTable/HiTable.js
CHANGED
@@ -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
|
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
|