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