@hipay/hipay-material-ui 1.0.0-beta.18 → 1.0.0-beta.19
Sign up to get free protection for your applications and to get access to all the features.
- package/HiForm/HiInput.js +1 -1
- package/HiTable/BodyCellBuilder.js +22 -7
- package/HiTable/BodyCells/CellLayout.js +24 -1
- package/HiTable/BodyCells/CellStatus.js +1 -1
- package/HiTable/BodyRow.js +32 -9
- package/HiTable/ChildRow.js +3 -9
- package/HiTable/HiTable.js +16 -2
- package/HiTable/HiTableBody.js +39 -27
- package/es/HiForm/HiInput.js +1 -1
- package/es/HiTable/BodyCellBuilder.js +20 -8
- package/es/HiTable/BodyCells/CellLayout.js +23 -2
- package/es/HiTable/BodyCells/CellStatus.js +1 -1
- package/es/HiTable/BodyRow.js +31 -9
- package/es/HiTable/ChildRow.js +3 -10
- package/es/HiTable/HiTable.js +16 -2
- package/es/HiTable/HiTableBody.js +34 -26
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/umd/hipay-material-ui.development.js +11092 -53643
- package/umd/hipay-material-ui.production.min.js +4 -4
package/HiForm/HiInput.js
CHANGED
@@ -70,7 +70,7 @@ var styles = exports.styles = function styles(theme) {
|
|
70
70
|
}, theme.typography.body1, {
|
71
71
|
borderBottom: '1px solid ' + theme.palette.input.bottomLine,
|
72
72
|
paddingLeft: 8,
|
73
|
-
backgroundColor:
|
73
|
+
backgroundColor: theme.palette.background2,
|
74
74
|
'&$focused': {
|
75
75
|
backgroundColor: '#ffffff'
|
76
76
|
},
|
@@ -4,6 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
|
7
|
+
var _extends2 = require('babel-runtime/helpers/extends');
|
8
|
+
|
9
|
+
var _extends3 = _interopRequireDefault(_extends2);
|
10
|
+
|
7
11
|
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
|
8
12
|
|
9
13
|
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
|
@@ -128,7 +132,8 @@ var BodyCellBuilder = function (_React$PureComponent) {
|
|
128
132
|
lookedUp = _props.lookedUp,
|
129
133
|
fixedColumnWidth = _props.fixedColumnWidth,
|
130
134
|
disableContextMenu = _props.disableContextMenu,
|
131
|
-
|
135
|
+
detailInfos = _props.detailInfos,
|
136
|
+
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', 'detailInfos']);
|
132
137
|
|
133
138
|
|
134
139
|
var layoutProps = {
|
@@ -144,7 +149,9 @@ var BodyCellBuilder = function (_React$PureComponent) {
|
|
144
149
|
sticky: sticky,
|
145
150
|
childrenCount: childrenCount,
|
146
151
|
lookedUp: lookedUp,
|
147
|
-
fixedColumnWidth: fixedColumnWidth
|
152
|
+
fixedColumnWidth: fixedColumnWidth,
|
153
|
+
detailInfos: detailInfos,
|
154
|
+
onOpenDetails: onOpenDetails
|
148
155
|
};
|
149
156
|
|
150
157
|
var cellContent = void 0;
|
@@ -257,13 +264,16 @@ var BodyCellBuilder = function (_React$PureComponent) {
|
|
257
264
|
break;
|
258
265
|
|
259
266
|
case cst.TYPE_STATUS:
|
260
|
-
cellElement = _react2.default.createElement(_BodyCells.CellStatus, {
|
267
|
+
cellElement = _react2.default.createElement(_BodyCells.CellStatus, (0, _extends3.default)({
|
261
268
|
code: data.value,
|
262
|
-
nbOperations: data.count_operations,
|
263
269
|
value: data.label ? data.label : data.value,
|
264
|
-
onOpenDetails: onOpenDetails,
|
265
270
|
sticky: sticky
|
266
|
-
}
|
271
|
+
}, detailInfos && {
|
272
|
+
nbOperations: detailInfos.total,
|
273
|
+
onOpenDetails: onOpenDetails
|
274
|
+
}));
|
275
|
+
delete layoutProps.detailInfos;
|
276
|
+
delete layoutProps.onOpenDetails;
|
267
277
|
break;
|
268
278
|
|
269
279
|
case cst.TYPE_THIRD_PARTY_SECURITY:
|
@@ -309,7 +319,8 @@ var BodyCellBuilder = function (_React$PureComponent) {
|
|
309
319
|
|
310
320
|
BodyCellBuilder.defaultProps = {
|
311
321
|
ellipsis: 'right',
|
312
|
-
disableContextMenu: true
|
322
|
+
disableContextMenu: true,
|
323
|
+
detailInfos: null
|
313
324
|
};
|
314
325
|
exports.default = BodyCellBuilder;
|
315
326
|
BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
|
@@ -341,6 +352,10 @@ BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
341
352
|
* Densité, défini la hauteur de la ligne
|
342
353
|
*/
|
343
354
|
dense: _propTypes2.default.bool,
|
355
|
+
/**
|
356
|
+
* Ajoute un Chip affichant le nombre de ligne de détails de la ligne et permettant de les affichés via onOpenDetails
|
357
|
+
*/
|
358
|
+
detailInfos: _propTypes2.default.object,
|
344
359
|
/**
|
345
360
|
* Active/désactive le menu contextuel au clic droit sur les cellules du tableau
|
346
361
|
*/
|
@@ -142,6 +142,8 @@ var CellLayout = function (_React$Component) {
|
|
142
142
|
selected = _props.selected,
|
143
143
|
onSelect = _props.onSelect,
|
144
144
|
childrenCount = _props.childrenCount,
|
145
|
+
detailInfos = _props.detailInfos,
|
146
|
+
onOpenDetails = _props.onOpenDetails,
|
145
147
|
theme = _props.theme,
|
146
148
|
padding = _props.padding,
|
147
149
|
lookedUp = _props.lookedUp;
|
@@ -204,6 +206,22 @@ var CellLayout = function (_React$Component) {
|
|
204
206
|
{ color: theme.palette.business.primary.normal, className: classes.pins },
|
205
207
|
childrenCount
|
206
208
|
)
|
209
|
+
),
|
210
|
+
detailInfos && _react2.default.createElement(
|
211
|
+
'div',
|
212
|
+
{
|
213
|
+
style: {
|
214
|
+
position: 'absolute',
|
215
|
+
top: dense ? 2 : 6,
|
216
|
+
right: 0
|
217
|
+
},
|
218
|
+
onClick: onOpenDetails
|
219
|
+
},
|
220
|
+
_react2.default.createElement(
|
221
|
+
_HiPins2.default,
|
222
|
+
{ color: theme.palette.business.secondary.normal, className: classes.pins },
|
223
|
+
detailInfos.total
|
224
|
+
)
|
207
225
|
)
|
208
226
|
)
|
209
227
|
);
|
@@ -219,7 +237,8 @@ CellLayout.defaultProps = {
|
|
219
237
|
dense: false,
|
220
238
|
fixedColumnWidth: true,
|
221
239
|
sticky: false,
|
222
|
-
padding: 8
|
240
|
+
padding: 8,
|
241
|
+
detailInfos: null
|
223
242
|
};
|
224
243
|
CellLayout.propTypes = process.env.NODE_ENV !== "production" ? {
|
225
244
|
/**
|
@@ -234,6 +253,10 @@ CellLayout.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
234
253
|
* Densité, défini la hauteur de la ligne
|
235
254
|
*/
|
236
255
|
dense: _propTypes2.default.bool,
|
256
|
+
/**
|
257
|
+
* Ajoute un Chip affichant le nombre de ligne de détails de la ligne et permettant de les affichés via onOpenDetails
|
258
|
+
*/
|
259
|
+
detailInfos: _propTypes2.default.object,
|
237
260
|
/**
|
238
261
|
* Recherche lookup sur cette colonne
|
239
262
|
*/
|
@@ -123,7 +123,7 @@ CellStatus.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
123
123
|
/**
|
124
124
|
* Nombre d'opérations financières
|
125
125
|
*/
|
126
|
-
nbOperations: _propTypes2.default.number
|
126
|
+
nbOperations: _propTypes2.default.number,
|
127
127
|
/**
|
128
128
|
* Statut courant de la transaction
|
129
129
|
*/
|
package/HiTable/BodyRow.js
CHANGED
@@ -112,6 +112,12 @@ var BodyRow = function (_React$PureComponent) {
|
|
112
112
|
|
113
113
|
var _this = (0, _possibleConstructorReturn3.default)(this, (BodyRow.__proto__ || (0, _getPrototypeOf2.default)(BodyRow)).call(this));
|
114
114
|
|
115
|
+
_this.handleOpenRowDetails = function (type) {
|
116
|
+
return function () {
|
117
|
+
_this.props.onOpenRowDetails(_this.props.row.rowId, type);
|
118
|
+
};
|
119
|
+
};
|
120
|
+
|
115
121
|
_this.state = {
|
116
122
|
live: props.live,
|
117
123
|
style: {
|
@@ -165,11 +171,6 @@ var BodyRow = function (_React$PureComponent) {
|
|
165
171
|
this.props.onClick(this.props.row);
|
166
172
|
}
|
167
173
|
}
|
168
|
-
}, {
|
169
|
-
key: 'handleOpenRowDetails',
|
170
|
-
value: function handleOpenRowDetails() {
|
171
|
-
this.props.onOpenRowDetails(this.props.row.rowId);
|
172
|
-
}
|
173
174
|
}, {
|
174
175
|
key: 'handleSelect',
|
175
176
|
value: function handleSelect() {
|
@@ -197,7 +198,8 @@ var BodyRow = function (_React$PureComponent) {
|
|
197
198
|
sticky = _props.sticky,
|
198
199
|
innerRow = _props.innerRow,
|
199
200
|
isDetail = _props.isDetail,
|
200
|
-
|
201
|
+
detailRowsOptions = _props.detailRowsOptions,
|
202
|
+
other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'theme', 'row', 'columns', 'lookupColumns', 'orderedColumns', 'selectable', 'selected', 'onClick', 'view', 'dense', 'dateLocale', 'numberLocale', 'sticky', 'innerRow', 'isDetail', 'detailRowsOptions']);
|
201
203
|
var style = this.state.style;
|
202
204
|
|
203
205
|
|
@@ -213,6 +215,19 @@ var BodyRow = function (_React$PureComponent) {
|
|
213
215
|
// If there is no datas don't display the row
|
214
216
|
if (!row.hasOwnProperty('datas')) return false;
|
215
217
|
|
218
|
+
var detailsInfos = {};
|
219
|
+
if (row.details && row.details.length > 0) {
|
220
|
+
detailsInfos = row.details.reduce(function (memo, item) {
|
221
|
+
if (item.rows.length > 0 && detailRowsOptions[item.type] && detailRowsOptions[item.type].anchor) {
|
222
|
+
memo[detailRowsOptions[item.type].anchor] = (0, _extends3.default)({
|
223
|
+
type: item.type,
|
224
|
+
total: item.rows.length
|
225
|
+
}, detailRowsOptions[item.type]);
|
226
|
+
}
|
227
|
+
return memo;
|
228
|
+
}, {});
|
229
|
+
}
|
230
|
+
|
216
231
|
return _react2.default.createElement(
|
217
232
|
_Table.TableRow,
|
218
233
|
{
|
@@ -300,8 +315,11 @@ var BodyRow = function (_React$PureComponent) {
|
|
300
315
|
numberLocale: numberLocale,
|
301
316
|
dense: dense,
|
302
317
|
selected: selected,
|
303
|
-
onSelect: _this3.handleSelect
|
304
|
-
|
318
|
+
onSelect: _this3.handleSelect
|
319
|
+
}, detailsInfos[colId] && {
|
320
|
+
onOpenDetails: _this3.handleOpenRowDetails(detailsInfos[colId].type),
|
321
|
+
detailInfos: detailsInfos[colId]
|
322
|
+
}, {
|
305
323
|
childrenCount: isParentAnchor ? row.children.length : null,
|
306
324
|
colId: colId,
|
307
325
|
lookedUp: lookedUp
|
@@ -331,7 +349,8 @@ BodyRow.defaultProps = {
|
|
331
349
|
live: false,
|
332
350
|
innerRow: false,
|
333
351
|
lookupColumns: [],
|
334
|
-
fixedColumnWidth: true
|
352
|
+
fixedColumnWidth: true,
|
353
|
+
detailRowsOptions: {}
|
335
354
|
};
|
336
355
|
BodyRow.propTypes = process.env.NODE_ENV !== "production" ? {
|
337
356
|
/**
|
@@ -342,6 +361,10 @@ BodyRow.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
342
361
|
* Densité d'affichage (joue sur la hauteur des lignes)
|
343
362
|
*/
|
344
363
|
dense: _propTypes2.default.bool,
|
364
|
+
/**
|
365
|
+
* Options utilisées pour décrire le comportement de lignes de détails
|
366
|
+
*/
|
367
|
+
detailRowsOptions: _propTypes2.default.object,
|
345
368
|
/**
|
346
369
|
* Fixe la taille des colonnes selon le type de vue
|
347
370
|
* Sinon les colonnes s'adaptent à l'espace disponible
|
package/HiTable/ChildRow.js
CHANGED
@@ -196,7 +196,8 @@ var ChildRow = function (_React$PureComponent) {
|
|
196
196
|
dense = _props.dense,
|
197
197
|
sticky = _props.sticky,
|
198
198
|
view = _props.view,
|
199
|
-
|
199
|
+
row = _props.row,
|
200
|
+
other = (0, _objectWithoutProperties3.default)(_props, ['classes', 'theme', 'onClose', 'parentRowId', 'parentRowDatas', 'parentIndicatorColumn', 'parentLabel', 'parentLabelIcon', 'children', 'columns', 'orderedColumns', 'selectable', 'selected', 'dateLocale', 'dense', 'sticky', 'view', 'row']);
|
200
201
|
|
201
202
|
|
202
203
|
var indicator = '';
|
@@ -225,10 +226,7 @@ var ChildRow = function (_React$PureComponent) {
|
|
225
226
|
_Table.TableBody,
|
226
227
|
null,
|
227
228
|
_react2.default.createElement(_BodyRow2.default, (0, _extends3.default)({
|
228
|
-
row:
|
229
|
-
rowId: parentRowId,
|
230
|
-
datas: parentRowDatas
|
231
|
-
},
|
229
|
+
row: row,
|
232
230
|
selectable: selectable,
|
233
231
|
selected: selected,
|
234
232
|
columns: columns,
|
@@ -364,10 +362,6 @@ ChildRow.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
364
362
|
* Données de la ligne parente
|
365
363
|
*/
|
366
364
|
parentRowDatas: _propTypes2.default.object.isRequired,
|
367
|
-
/**
|
368
|
-
* Ligne des détails de la ligne parente
|
369
|
-
*/
|
370
|
-
parentDetailRows: _propTypes2.default.array,
|
371
365
|
/**
|
372
366
|
* Indicateur du sous-ensemble (en général la date)
|
373
367
|
*/
|
package/HiTable/HiTable.js
CHANGED
@@ -713,7 +713,8 @@ var HiTable = function (_React$Component) {
|
|
713
713
|
loading = _props.loading,
|
714
714
|
fixedColumnWidth = _props.fixedColumnWidth,
|
715
715
|
disableContextMenu = _props.disableContextMenu,
|
716
|
-
footerContent = _props.footerContent
|
716
|
+
footerContent = _props.footerContent,
|
717
|
+
detailRowsOptions = _props.detailRowsOptions;
|
717
718
|
var _state = this.state,
|
718
719
|
dateUpdate = _state.dateUpdate,
|
719
720
|
isScrollToBottom = _state.isScrollToBottom,
|
@@ -799,7 +800,8 @@ var HiTable = function (_React$Component) {
|
|
799
800
|
lookupColumns: lookupColumns,
|
800
801
|
loading: loading,
|
801
802
|
fixedColumnWidth: fixedColumnWidth,
|
802
|
-
disableContextMenu: disableContextMenu
|
803
|
+
disableContextMenu: disableContextMenu,
|
804
|
+
detailRowsOptions: detailRowsOptions
|
803
805
|
}),
|
804
806
|
infiniteScroll && _react2.default.createElement(_HiTableFooterScroll2.default, {
|
805
807
|
tabId: tabId,
|
@@ -860,6 +862,7 @@ HiTable.defaultProps = {
|
|
860
862
|
dateLocale: 'en-EN',
|
861
863
|
numberLocale: 'en-EN',
|
862
864
|
dense: false,
|
865
|
+
detailRowsOptions: {},
|
863
866
|
height: 450,
|
864
867
|
sticky: true,
|
865
868
|
translations: {
|
@@ -902,6 +905,17 @@ HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
902
905
|
* Locale utilisé pour le format des dates
|
903
906
|
*/
|
904
907
|
dateLocale: _propTypes2.default.string,
|
908
|
+
/**
|
909
|
+
* Options utilisées pour décrire le comportement de lignes de détails
|
910
|
+
* ex: {
|
911
|
+
* payment_operation: {
|
912
|
+
* anchor: 'transaction_id'
|
913
|
+
* }
|
914
|
+
* }
|
915
|
+
* dans cet exemple, on veut que les lignes de détails de type payment_operation
|
916
|
+
* soient affichable à partir d'un chip button dans les cellules transaction_id
|
917
|
+
*/
|
918
|
+
detailRowsOptions: _propTypes2.default.object,
|
905
919
|
/**
|
906
920
|
* Densité d'affichage (joue sur la hauteur des lignes)
|
907
921
|
*/
|
package/HiTable/HiTableBody.js
CHANGED
@@ -235,18 +235,22 @@ var HiTableBody = function (_React$Component) {
|
|
235
235
|
/**
|
236
236
|
* Définit les id des lignes dont les détails sont affichés ou null
|
237
237
|
* (ajoute une ligne pour chaque détails)
|
238
|
+
* vérifie aussi le type du détail
|
238
239
|
*
|
239
240
|
* @param rowId
|
241
|
+
* @param type
|
240
242
|
*/
|
241
243
|
|
242
244
|
}, {
|
243
245
|
key: 'toggleOpenedDetailsRowId',
|
244
|
-
value: function toggleOpenedDetailsRowId(rowId) {
|
246
|
+
value: function toggleOpenedDetailsRowId(rowId, type) {
|
245
247
|
this.setState(function (prevState) {
|
246
248
|
return {
|
247
|
-
openedDetailsRowIdList: prevState.openedDetailsRowIdList.
|
248
|
-
return id
|
249
|
-
})
|
249
|
+
openedDetailsRowIdList: prevState.openedDetailsRowIdList.find(function (item) {
|
250
|
+
return item.id === rowId && item.type === type;
|
251
|
+
}) ? prevState.openedDetailsRowIdList.filter(function (item) {
|
252
|
+
return item.id !== rowId || item.type !== type;
|
253
|
+
}) : [].concat((0, _toConsumableArray3.default)(prevState.openedDetailsRowIdList), [{ id: rowId, type: type }])
|
250
254
|
};
|
251
255
|
});
|
252
256
|
this.props.addNewRowRefs();
|
@@ -288,7 +292,8 @@ var HiTableBody = function (_React$Component) {
|
|
288
292
|
lookupColumns = _props.lookupColumns,
|
289
293
|
loading = _props.loading,
|
290
294
|
fixedColumnWidth = _props.fixedColumnWidth,
|
291
|
-
disableContextMenu = _props.disableContextMenu
|
295
|
+
disableContextMenu = _props.disableContextMenu,
|
296
|
+
detailRowsOptions = _props.detailRowsOptions;
|
292
297
|
var _state = this.state,
|
293
298
|
openedParentRowId = _state.openedParentRowId,
|
294
299
|
openedDetailsRowIdList = _state.openedDetailsRowIdList;
|
@@ -360,9 +365,6 @@ var HiTableBody = function (_React$Component) {
|
|
360
365
|
// has children
|
361
366
|
var hasChildren = row.hasOwnProperty('children') && row.children.length > 0;
|
362
367
|
|
363
|
-
// has detail rows
|
364
|
-
var hasDetailRows = row.hasOwnProperty('detailRows') && row.detailRows.length > 0;
|
365
|
-
|
366
368
|
var BodyRowProps = (0, _extends3.default)({
|
367
369
|
columns: columns,
|
368
370
|
dateLocale: dateLocale,
|
@@ -374,9 +376,9 @@ var HiTableBody = function (_React$Component) {
|
|
374
376
|
}, hasChildren && {
|
375
377
|
openedAsParent: openedParentRowId === row.rowId,
|
376
378
|
onClick: _this3.setOpenedParentRowId // if row has children, onClick display the children
|
377
|
-
}, hasDetailRows && {
|
378
|
-
onOpenRowDetails: _this3.toggleOpenedDetailsRowId
|
379
379
|
}, {
|
380
|
+
onOpenRowDetails: _this3.toggleOpenedDetailsRowId,
|
381
|
+
detailRowsOptions: detailRowsOptions,
|
380
382
|
orderedColumns: orderedColumns
|
381
383
|
}, selectable && {
|
382
384
|
selectable: selectable,
|
@@ -399,7 +401,6 @@ var HiTableBody = function (_React$Component) {
|
|
399
401
|
parentIndicatorColumn: row.parentIndicatorColumn,
|
400
402
|
parentLabel: row.parentLabel,
|
401
403
|
parentLabelIcon: row.parentLabelIcon,
|
402
|
-
parentDetailRows: row.detailRows,
|
403
404
|
children: row.children,
|
404
405
|
onClose: _this3.setOpenedParentRowId
|
405
406
|
}, BodyRowProps)));
|
@@ -408,21 +409,27 @@ var HiTableBody = function (_React$Component) {
|
|
408
409
|
}
|
409
410
|
|
410
411
|
// add opened detail rows
|
411
|
-
if (
|
412
|
-
row.
|
413
|
-
|
414
|
-
row
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
412
|
+
if (row.details && row.details.length > 0) {
|
413
|
+
row.details.forEach(function (detail) {
|
414
|
+
if (detail.rows.length > 0 && openedDetailsRowIdList.find(function (item) {
|
415
|
+
return item.id === row.rowId && item.type === detail.type;
|
416
|
+
})) {
|
417
|
+
detail.rows.forEach(function (detailRow) {
|
418
|
+
var detailRowProps = {
|
419
|
+
row: detailRow,
|
420
|
+
columns: columns,
|
421
|
+
orderedColumns: orderedColumns,
|
422
|
+
view: view,
|
423
|
+
dense: dense,
|
424
|
+
sticky: sticky,
|
425
|
+
isDetail: true,
|
426
|
+
fixedColumnWidth: fixedColumnWidth,
|
427
|
+
disableContextMenu: disableContextMenu
|
428
|
+
};
|
429
|
+
|
430
|
+
tableRows.push(_react2.default.createElement(_BodyRow2.default, (0, _extends3.default)({ key: row.rowId + '-' + detailRow.rowId }, detailRowProps)));
|
431
|
+
});
|
432
|
+
}
|
426
433
|
});
|
427
434
|
}
|
428
435
|
});
|
@@ -461,7 +468,8 @@ HiTableBody.defaultProps = {
|
|
461
468
|
sticky: true,
|
462
469
|
view: 'l',
|
463
470
|
loading: false,
|
464
|
-
disableContextMenu: true
|
471
|
+
disableContextMenu: true,
|
472
|
+
detailRowsOptions: {}
|
465
473
|
};
|
466
474
|
HiTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
|
467
475
|
/**
|
@@ -489,6 +497,10 @@ HiTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
489
497
|
* Densité d'affichage (joue sur la hauteur des lignes)
|
490
498
|
*/
|
491
499
|
dense: _propTypes2.default.bool,
|
500
|
+
/**
|
501
|
+
* Options utilisées pour décrire le comportement de lignes de détails
|
502
|
+
*/
|
503
|
+
detailRowsOptions: _propTypes2.default.object,
|
492
504
|
/**
|
493
505
|
* Active/désactive le menu contextuel au clic droit sur les cellules du tableau
|
494
506
|
*/
|
package/es/HiForm/HiInput.js
CHANGED
@@ -13,7 +13,7 @@ export const styles = theme => ({
|
|
13
13
|
}, theme.typography.body1, {
|
14
14
|
borderBottom: `1px solid ${theme.palette.input.bottomLine}`,
|
15
15
|
paddingLeft: 8,
|
16
|
-
backgroundColor:
|
16
|
+
backgroundColor: theme.palette.background2,
|
17
17
|
'&$focused': {
|
18
18
|
backgroundColor: '#ffffff'
|
19
19
|
},
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import _extends from 'babel-runtime/helpers/extends';
|
1
2
|
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
2
3
|
import React from 'react';
|
3
4
|
import PropTypes from 'prop-types';
|
@@ -76,9 +77,10 @@ export default class BodyCellBuilder extends React.PureComponent {
|
|
76
77
|
onOpenDetails,
|
77
78
|
lookedUp,
|
78
79
|
fixedColumnWidth,
|
79
|
-
disableContextMenu
|
80
|
+
disableContextMenu,
|
81
|
+
detailInfos
|
80
82
|
} = _props,
|
81
|
-
props = _objectWithoutProperties(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth', 'disableContextMenu']);
|
83
|
+
props = _objectWithoutProperties(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth', 'disableContextMenu', 'detailInfos']);
|
82
84
|
|
83
85
|
const layoutProps = {
|
84
86
|
type,
|
@@ -93,7 +95,9 @@ export default class BodyCellBuilder extends React.PureComponent {
|
|
93
95
|
sticky,
|
94
96
|
childrenCount,
|
95
97
|
lookedUp,
|
96
|
-
fixedColumnWidth
|
98
|
+
fixedColumnWidth,
|
99
|
+
detailInfos,
|
100
|
+
onOpenDetails
|
97
101
|
};
|
98
102
|
|
99
103
|
let cellContent;
|
@@ -206,13 +210,16 @@ export default class BodyCellBuilder extends React.PureComponent {
|
|
206
210
|
break;
|
207
211
|
|
208
212
|
case cst.TYPE_STATUS:
|
209
|
-
cellElement = React.createElement(CellStatus, {
|
213
|
+
cellElement = React.createElement(CellStatus, _extends({
|
210
214
|
code: data.value,
|
211
|
-
nbOperations: data.count_operations,
|
212
215
|
value: data.label ? data.label : data.value,
|
213
|
-
onOpenDetails: onOpenDetails,
|
214
216
|
sticky: sticky
|
215
|
-
}
|
217
|
+
}, detailInfos && {
|
218
|
+
nbOperations: detailInfos.total,
|
219
|
+
onOpenDetails: onOpenDetails
|
220
|
+
}));
|
221
|
+
delete layoutProps.detailInfos;
|
222
|
+
delete layoutProps.onOpenDetails;
|
216
223
|
break;
|
217
224
|
|
218
225
|
case cst.TYPE_THIRD_PARTY_SECURITY:
|
@@ -255,7 +262,8 @@ export default class BodyCellBuilder extends React.PureComponent {
|
|
255
262
|
}
|
256
263
|
BodyCellBuilder.defaultProps = {
|
257
264
|
ellipsis: 'right',
|
258
|
-
disableContextMenu: true
|
265
|
+
disableContextMenu: true,
|
266
|
+
detailInfos: null
|
259
267
|
};
|
260
268
|
BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
|
261
269
|
/**
|
@@ -286,6 +294,10 @@ BodyCellBuilder.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
286
294
|
* Densité, défini la hauteur de la ligne
|
287
295
|
*/
|
288
296
|
dense: PropTypes.bool,
|
297
|
+
/**
|
298
|
+
* Ajoute un Chip affichant le nombre de ligne de détails de la ligne et permettant de les affichés via onOpenDetails
|
299
|
+
*/
|
300
|
+
detailInfos: PropTypes.object,
|
289
301
|
/**
|
290
302
|
* Active/désactive le menu contextuel au clic droit sur les cellules du tableau
|
291
303
|
*/
|
@@ -62,7 +62,7 @@ class CellLayout extends React.Component {
|
|
62
62
|
classes, type, children,
|
63
63
|
align = cst.ALIGN_RIGHT_TYPES.includes(type) ? 'right' : 'left',
|
64
64
|
view, dense, width = cst.DEFAULT_WIDTHS[type][view], fixedColumnWidth, sticky,
|
65
|
-
selectable, selected, onSelect, childrenCount, theme, padding,
|
65
|
+
selectable, selected, onSelect, childrenCount, detailInfos, onOpenDetails, theme, padding,
|
66
66
|
lookedUp
|
67
67
|
} = this.props;
|
68
68
|
|
@@ -123,6 +123,22 @@ class CellLayout extends React.Component {
|
|
123
123
|
{ color: theme.palette.business.primary.normal, className: classes.pins },
|
124
124
|
childrenCount
|
125
125
|
)
|
126
|
+
),
|
127
|
+
detailInfos && React.createElement(
|
128
|
+
'div',
|
129
|
+
{
|
130
|
+
style: {
|
131
|
+
position: 'absolute',
|
132
|
+
top: dense ? 2 : 6,
|
133
|
+
right: 0
|
134
|
+
},
|
135
|
+
onClick: onOpenDetails
|
136
|
+
},
|
137
|
+
React.createElement(
|
138
|
+
HiPins,
|
139
|
+
{ color: theme.palette.business.secondary.normal, className: classes.pins },
|
140
|
+
detailInfos.total
|
141
|
+
)
|
126
142
|
)
|
127
143
|
)
|
128
144
|
);
|
@@ -136,7 +152,8 @@ CellLayout.defaultProps = {
|
|
136
152
|
dense: false,
|
137
153
|
fixedColumnWidth: true,
|
138
154
|
sticky: false,
|
139
|
-
padding: 8
|
155
|
+
padding: 8,
|
156
|
+
detailInfos: null
|
140
157
|
};
|
141
158
|
CellLayout.propTypes = process.env.NODE_ENV !== "production" ? {
|
142
159
|
/**
|
@@ -151,6 +168,10 @@ CellLayout.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
151
168
|
* Densité, défini la hauteur de la ligne
|
152
169
|
*/
|
153
170
|
dense: PropTypes.bool,
|
171
|
+
/**
|
172
|
+
* Ajoute un Chip affichant le nombre de ligne de détails de la ligne et permettant de les affichés via onOpenDetails
|
173
|
+
*/
|
174
|
+
detailInfos: PropTypes.object,
|
154
175
|
/**
|
155
176
|
* Recherche lookup sur cette colonne
|
156
177
|
*/
|