@hipay/hipay-material-ui 1.0.0-beta.23 → 1.0.0-beta.25

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.
Files changed (77) hide show
  1. package/HI-CHANGELOG.md +26 -43
  2. package/HiChip/HiChip.js +61 -8
  3. package/HiDatePicker/HiDateRangePicker.js +27 -13
  4. package/HiDatePicker/HiDateRangeSelector.js +13 -2
  5. package/HiForm/HiInput.js +1 -0
  6. package/HiForm/HiPasswordField.js +2 -2
  7. package/HiPins/HiPins.js +6 -4
  8. package/HiSelect/HiSelect.js +7 -5
  9. package/HiSelect/SelectInput.js +3 -8
  10. package/HiSelectableList/HiSelectableList.js +51 -49
  11. package/HiSelectableList/HiSelectableListItem.js +4 -2
  12. package/HiTable/BodyCellBuilder.js +22 -12
  13. package/HiTable/BodyCells/CellAccount.js +12 -3
  14. package/HiTable/BodyCells/CellAccountNumber.js +12 -3
  15. package/HiTable/BodyCells/CellAddress.js +12 -3
  16. package/HiTable/BodyCells/CellCountry.js +12 -3
  17. package/HiTable/BodyCells/CellDate.js +43 -42
  18. package/HiTable/BodyCells/CellIcon.js +12 -3
  19. package/HiTable/BodyCells/CellImage.js +12 -3
  20. package/HiTable/BodyCells/CellNumeric.js +12 -3
  21. package/HiTable/BodyCells/CellRate.js +12 -3
  22. package/HiTable/BodyCells/CellSentinel.js +17 -7
  23. package/HiTable/BodyCells/CellStatus.js +12 -3
  24. package/HiTable/BodyCells/CellText.js +17 -7
  25. package/HiTable/BodyCells/CellThirdPartySecurity.js +12 -3
  26. package/HiTable/BodyRow.js +12 -3
  27. package/HiTable/ColumnFilter.js +1 -4
  28. package/HiTable/HeaderCell.js +21 -11
  29. package/HiTable/HiStickyRow.js +24 -13
  30. package/HiTable/HiTable.js +30 -69
  31. package/HiTable/HiTableBody.js +99 -29
  32. package/HiTable/HiTableContextMenu.js +31 -16
  33. package/HiTable/HiTableFooter.js +9 -0
  34. package/HiTable/HiTableHead.js +15 -7
  35. package/HiTopBar/HiTopBar.js +6 -0
  36. package/README.md +71 -6
  37. package/es/HiChip/HiChip.js +74 -8
  38. package/es/HiDatePicker/HiDateRangePicker.js +25 -12
  39. package/es/HiDatePicker/HiDateRangeSelector.js +12 -2
  40. package/es/HiForm/HiInput.js +1 -0
  41. package/es/HiForm/HiPasswordField.js +2 -2
  42. package/es/HiPins/HiPins.js +4 -4
  43. package/es/HiSelect/HiSelect.js +6 -5
  44. package/es/HiSelect/SelectInput.js +3 -8
  45. package/es/HiSelectableList/HiSelectableList.js +51 -49
  46. package/es/HiSelectableList/HiSelectableListItem.js +4 -2
  47. package/es/HiTable/BodyCellBuilder.js +8 -2
  48. package/es/HiTable/BodyCells/CellAccount.js +6 -1
  49. package/es/HiTable/BodyCells/CellAccountNumber.js +6 -1
  50. package/es/HiTable/BodyCells/CellAddress.js +6 -1
  51. package/es/HiTable/BodyCells/CellCountry.js +6 -1
  52. package/es/HiTable/BodyCells/CellDate.js +28 -37
  53. package/es/HiTable/BodyCells/CellIcon.js +6 -1
  54. package/es/HiTable/BodyCells/CellImage.js +6 -1
  55. package/es/HiTable/BodyCells/CellNumeric.js +6 -1
  56. package/es/HiTable/BodyCells/CellRate.js +6 -1
  57. package/es/HiTable/BodyCells/CellSentinel.js +6 -1
  58. package/es/HiTable/BodyCells/CellStatus.js +6 -1
  59. package/es/HiTable/BodyCells/CellText.js +6 -1
  60. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +6 -1
  61. package/es/HiTable/BodyRow.js +7 -2
  62. package/es/HiTable/ColumnFilter.js +1 -4
  63. package/es/HiTable/HeaderCell.js +16 -9
  64. package/es/HiTable/HiStickyRow.js +20 -13
  65. package/es/HiTable/HiTable.js +4 -40
  66. package/es/HiTable/HiTableBody.js +78 -26
  67. package/es/HiTable/HiTableContextMenu.js +28 -16
  68. package/es/HiTable/HiTableFooter.js +5 -0
  69. package/es/HiTable/HiTableHead.js +11 -6
  70. package/es/HiTopBar/HiTopBar.js +5 -0
  71. package/es/utils/HiIconBuilder.js +6 -2
  72. package/index.es.js +1 -1
  73. package/index.js +1 -1
  74. package/package.json +6 -1
  75. package/umd/hipay-material-ui.development.js +80901 -47149
  76. package/umd/hipay-material-ui.production.min.js +5 -5
  77. package/utils/HiIconBuilder.js +6 -2
@@ -1,6 +1,8 @@
1
- import _extends from 'babel-runtime/helpers/extends';
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
+ import moment from 'moment';
5
+ import 'moment/locale/fr';
4
6
 
5
7
  import withStyles from '../../styles/withStyles';
6
8
  import Tooltip from '../../Tooltip';
@@ -20,45 +22,28 @@ export const styles = theme => ({
20
22
  * Cette cellule permet d'afficher une date en fonction de la locale de l'utilisateur
21
23
  */
22
24
  class CellDate extends React.Component {
25
+ constructor(...args) {
26
+ var _temp;
27
+
28
+ return _temp = super(...args), this.formatLong = 'dddd DD MMMM YYYY HH:mm:ss', _temp;
29
+ }
30
+
31
+ shouldComponentUpdate(nextProps, nextState) {
32
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
33
+ }
23
34
 
24
35
  render() {
25
- const { classes, displayTime, value, locale, view } = this.props;
36
+ const { classes, displayTime, value, locale, view, formatShort } = this.props;
26
37
 
27
- const date = new Date(value);
38
+ const date = moment(value);
39
+ moment.locale(locale);
28
40
 
29
- let options = _extends({
30
- weekday: 'long',
31
- year: 'numeric',
32
- month: 'long',
33
- day: '2-digit'
34
- }, displayTime && {
35
- hour: '2-digit',
36
- minute: '2-digit',
37
- second: '2-digit'
38
- });
39
- const titleValue = date.toLocaleString(locale, options);
41
+ const titleValue = displayTime ? date.format(this.formatLong) : date.format(this.formatLong.replace('HH:mm:ss', ''));
40
42
  let displayedValue = titleValue;
41
43
  if (view === cst.VIEWS.SMALL) {
42
- options = _extends({
43
- year: '2-digit',
44
- month: '2-digit',
45
- day: '2-digit'
46
- }, displayTime && {
47
- hour: '2-digit',
48
- minute: '2-digit'
49
- });
50
- displayedValue = date.toLocaleString(locale, options);
44
+ displayedValue = displayTime ? date.format(formatShort.replace('YYYY', 'YY') + ' HH:mm:ss') : date.format(formatShort.replace('YYYY', 'YY'));
51
45
  } else if (view === cst.VIEWS.MEDIUM) {
52
- options = _extends({
53
- year: 'numeric',
54
- month: '2-digit',
55
- day: '2-digit'
56
- }, displayTime && {
57
- hour: '2-digit',
58
- minute: '2-digit',
59
- second: '2-digit'
60
- });
61
- displayedValue = date.toLocaleString(locale, options);
46
+ displayedValue = displayTime ? date.format(formatShort + ' HH:mm:ss') : date.format(formatShort);
62
47
  }
63
48
 
64
49
  if (view === cst.VIEWS.LARGE) {
@@ -83,8 +68,9 @@ class CellDate extends React.Component {
83
68
 
84
69
  CellDate.defaultProps = {
85
70
  displayTime: false,
86
- locale: 'en-EN',
87
- view: 'l'
71
+ locale: 'en',
72
+ view: 'l',
73
+ formatShort: 'DD/MM/YYYY'
88
74
  };
89
75
  CellDate.propTypes = process.env.NODE_ENV !== "production" ? {
90
76
  /**
@@ -96,11 +82,16 @@ CellDate.propTypes = process.env.NODE_ENV !== "production" ? {
96
82
  */
97
83
  displayTime: PropTypes.bool,
98
84
  /**
99
- * Locale BCP 47
85
+ * Format de la date en vue small (ex: DD/MM/YYYY)
86
+ * @see https://momentjs.com/docs/#/parsing/string-format/
87
+ */
88
+ formatShort: PropTypes.string.isRequired,
89
+ /**
90
+ * Locale moment
100
91
  */
101
92
  locale: PropTypes.string,
102
93
  /**
103
- * Volume/Amount
94
+ * Date as string
104
95
  */
105
96
  value: PropTypes.string.isRequired,
106
97
  /**
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import Tooltip from '../../Tooltip';
@@ -26,7 +27,11 @@ export const styles = {
26
27
  * Cette cellule permet d'afficher une icône et un label (optionnel).
27
28
  * En vue small (s) elle affiche uniquement l'icône avec une largeur fixe.
28
29
  */
29
- class CellIcon extends React.PureComponent {
30
+ class CellIcon extends React.Component {
31
+
32
+ shouldComponentUpdate(nextProps, nextState) {
33
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
34
+ }
30
35
 
31
36
  render() {
32
37
  const { classes, icon, value, view, color } = this.props;
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import Tooltip from '../../Tooltip';
@@ -45,7 +46,11 @@ export const styles = theme => ({
45
46
  * En vue large, aucun tooltip n'est affiché
46
47
  * En vue small (s) elle affiche uniquement l'image avec une largeur fixe.
47
48
  */
48
- class CellImage extends React.PureComponent {
49
+ class CellImage extends React.Component {
50
+
51
+ shouldComponentUpdate(nextProps, nextState) {
52
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
53
+ }
49
54
 
50
55
  render() {
51
56
  const { classes, path, value, view, size } = this.props;
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
 
@@ -15,7 +16,11 @@ export const styles = theme => ({
15
16
  /**
16
17
  * Cette cellule permet d'afficher un volume ou un montant avec devise
17
18
  */
18
- class CellNumeric extends React.PureComponent {
19
+ class CellNumeric extends React.Component {
20
+
21
+ shouldComponentUpdate(nextProps, nextState) {
22
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
23
+ }
19
24
 
20
25
  render() {
21
26
  const { classes, value, locale, currency, view, precision } = this.props;
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import classNames from 'classnames';
@@ -45,7 +46,11 @@ export const styles = theme => ({
45
46
  * Cette cellule permet d'afficher un pourcentage
46
47
  * avec une icône d'évolution (optionnelle) et un indicateur du type de données représentées (optionnel)
47
48
  */
48
- class CellRate extends React.PureComponent {
49
+ class CellRate extends React.Component {
50
+
51
+ shouldComponentUpdate(nextProps, nextState) {
52
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
53
+ }
49
54
 
50
55
  render() {
51
56
 
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import Tooltip from '../../Tooltip';
@@ -21,7 +22,11 @@ export const styles = {
21
22
  /**
22
23
  * Cette cellule permet d'afficher le résultat de Sentinel (score & fraudResult & smartDecision)
23
24
  */
24
- class CellSentinel extends React.PureComponent {
25
+ class CellSentinel extends React.Component {
26
+
27
+ shouldComponentUpdate(nextProps, nextState) {
28
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
29
+ }
25
30
 
26
31
  constructor(props) {
27
32
  super(props);
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
 
@@ -18,7 +19,11 @@ export const styles = theme => ({
18
19
  }
19
20
  });
20
21
 
21
- class CellStatus extends React.PureComponent {
22
+ class CellStatus extends React.Component {
23
+
24
+ shouldComponentUpdate(nextProps, nextState) {
25
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
26
+ }
22
27
 
23
28
  render() {
24
29
  const { classes, theme, nbOperations, value, code, onOpenDetails } = this.props;
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
 
@@ -27,7 +28,11 @@ export const styles = theme => ({
27
28
  }
28
29
  });
29
30
 
30
- class CellText extends React.PureComponent {
31
+ class CellText extends React.Component {
32
+
33
+ shouldComponentUpdate(nextProps, nextState) {
34
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
35
+ }
31
36
 
32
37
  constructor(props) {
33
38
  super(props);
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  // @inheritedComponent CellLayout
2
3
 
3
4
  import React from 'react';
@@ -19,7 +20,11 @@ export const styles = {
19
20
  /**
20
21
  * Cette cellule permet d'afficher une icône représentant le statut du 3DS.
21
22
  */
22
- class CellThirdPartySecurity extends React.PureComponent {
23
+ class CellThirdPartySecurity extends React.Component {
24
+
25
+ shouldComponentUpdate(nextProps, nextState) {
26
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
27
+ }
23
28
 
24
29
  render() {
25
30
  const { classes, theme, label, value } = this.props;
@@ -1,5 +1,6 @@
1
1
  import _extends from 'babel-runtime/helpers/extends';
2
2
  import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
3
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
3
4
 
4
5
  // @inheritedComponent BodyCellBuilder
5
6
  import React from 'react';
@@ -8,7 +9,7 @@ import classNames from 'classnames';
8
9
  import { TableRow, TableCell } from 'material-ui/Table';
9
10
  import { fade } from 'material-ui/styles/colorManipulator';
10
11
  import BodyCellBuilder from './BodyCellBuilder';
11
- import { withStyles, withTheme } from '../styles';
12
+ import { withStyles } from '../styles';
12
13
  import * as cst from './constants';
13
14
 
14
15
  export const styles = theme => ({
@@ -45,7 +46,7 @@ export const styles = theme => ({
45
46
  }
46
47
  });
47
48
 
48
- class BodyRow extends React.PureComponent {
49
+ class BodyRow extends React.Component {
49
50
 
50
51
  constructor(props) {
51
52
  super();
@@ -67,6 +68,10 @@ class BodyRow extends React.PureComponent {
67
68
  this.handleSelect = this.handleSelect.bind(this);
68
69
  }
69
70
 
71
+ shouldComponentUpdate(nextProps, nextState) {
72
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
73
+ }
74
+
70
75
  componentDidMount() {
71
76
  // Live data animation
72
77
  if (this.state.live) {
@@ -30,9 +30,6 @@ export const styles = theme => ({
30
30
  padding: 10,
31
31
  color: theme.palette.neutral.normal
32
32
  },
33
- menuItemSortable: {
34
- paddingLeft: 8
35
- },
36
33
  menuItemFilter: _extends({}, theme.typography.body1, {
37
34
  color: theme.palette.neutral.dark,
38
35
  fontWeight: theme.typography.fontWeightMedium,
@@ -200,7 +197,7 @@ class ColumnFilter extends React.Component {
200
197
  ),
201
198
  !!sortable && React.createElement(
202
199
  'div',
203
- { className: classes.menuItemSortable },
200
+ null,
204
201
  React.createElement(
205
202
  MenuItem,
206
203
  {
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import _extends from 'babel-runtime/helpers/extends';
2
3
  import React from 'react';
3
4
  import PropTypes from 'prop-types';
@@ -78,18 +79,19 @@ export const styles = theme => ({
78
79
  /**
79
80
  * Construit une cellule d'entête avec le titre, clickable, triable et filtrable
80
81
  */
81
- class HeaderCell extends React.PureComponent {
82
+ class HeaderCell extends React.Component {
82
83
 
83
84
  constructor(props) {
84
85
  super(props);
85
86
 
87
+ this.anchorEl = null;
88
+
86
89
  this.onFilterClick = (event, columnDataset) => {
87
90
  this.openFilterMenu(event, columnDataset);
88
91
  };
89
92
 
90
93
  this.state = {
91
94
  filterOpen: false,
92
- anchorEl: null,
93
95
  menuFilters: []
94
96
  };
95
97
 
@@ -100,16 +102,21 @@ class HeaderCell extends React.PureComponent {
100
102
  this.handleFilterChange = this.handleFilterChange.bind(this);
101
103
  }
102
104
 
105
+ shouldComponentUpdate(nextProps, nextState) {
106
+ return _JSON$stringify(nextProps) !== _JSON$stringify(this.props) || _JSON$stringify(nextState) !== _JSON$stringify(this.state);
107
+ }
108
+
103
109
  openFilterMenu(event, columnDataset) {
104
110
  this.setState({
105
111
  filterOpen: true,
106
- anchorEl: event.currentTarget,
107
112
  menuFilters: columnDataset
108
113
  });
114
+ this.anchorEl = event.currentTarget;
109
115
  }
110
116
 
111
117
  handleClose() {
112
- this.setState({ filterOpen: false, anchorEl: null, menuFilters: [] });
118
+ this.setState({ filterOpen: false, menuFilters: [] });
119
+ this.anchorEl = null;
113
120
  }
114
121
 
115
122
  /**
@@ -149,7 +156,7 @@ class HeaderCell extends React.PureComponent {
149
156
  translations
150
157
  } = this.props;
151
158
 
152
- const { filterOpen, anchorEl, menuFilters } = this.state;
159
+ const { filterOpen, menuFilters } = this.state;
153
160
 
154
161
  const offset = selectable ? dense ? 32 : 40 : padding;
155
162
 
@@ -233,7 +240,6 @@ class HeaderCell extends React.PureComponent {
233
240
  _filterable ? this.onFilterClick(event, filterSource) : this.handleSort(sortDirection === 'asc' ? 'desc' : 'asc');
234
241
  }
235
242
  },
236
- align === 'right' && _icons,
237
243
  React.createElement(
238
244
  'span',
239
245
  {
@@ -241,7 +247,7 @@ class HeaderCell extends React.PureComponent {
241
247
  },
242
248
  view !== 's' ? title : smallTitle || title
243
249
  ),
244
- align !== 'right' && _icons
250
+ _icons
245
251
  ) : React.createElement(
246
252
  'div',
247
253
  {
@@ -268,7 +274,7 @@ class HeaderCell extends React.PureComponent {
268
274
  filterValueList: menuFilters,
269
275
  isOpen: filterOpen,
270
276
  onClose: this.handleClose,
271
- anchorEl: anchorEl,
277
+ anchorEl: this.anchorEl,
272
278
  sortable: sortable,
273
279
  onSort: this.handleSort,
274
280
  onFilterChange: this.handleFilterChange,
@@ -288,7 +294,8 @@ HeaderCell.defaultProps = {
288
294
  dense: false,
289
295
  fixedColumnWidth: true,
290
296
  sticky: true,
291
- padding: 8
297
+ padding: 8,
298
+ translations: {}
292
299
  };
293
300
  HeaderCell.propTypes = process.env.NODE_ENV !== "production" ? {
294
301
  /**
@@ -1,3 +1,4 @@
1
+ import _JSON$stringify from 'babel-runtime/core-js/json/stringify';
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import { TableRow, TableCell } from 'material-ui/Table';
@@ -73,6 +74,10 @@ export const ONCHANGE_ERROR_MESSAGE = 'Vous devez saisir la propriété "onChang
73
74
 
74
75
  class HiStickyRow extends React.PureComponent {
75
76
 
77
+ shouldComponentUpdate(nextProps, nextState) {
78
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
79
+ }
80
+
76
81
  render() {
77
82
  const { classes, dense, colSpan, label, length, index, translations, view } = this.props;
78
83
  const buttonClasses = classNames(classes.button, { [classes.denseButton]: dense });
@@ -112,18 +117,24 @@ class HiStickyRow extends React.PureComponent {
112
117
  className: 'stickyRowContent',
113
118
  style: {
114
119
  position: 'relative',
115
- top: dense ? 3 : 2
120
+ top: dense ? 3 : 2,
121
+ display: 'flex',
122
+ alignItems: 'center'
116
123
  }
117
124
  },
118
125
  React.createElement(
119
- 'span',
120
- { id: 'sticky-label', className: classes.label },
121
- label
122
- ),
123
- React.createElement(
124
- 'span',
125
- { id: 'sticky-badge', style: { position: 'relative' } },
126
- React.createElement(HiChip, { label: length, classes: { root: classes.badgeRoot } })
126
+ 'div',
127
+ null,
128
+ React.createElement(
129
+ 'span',
130
+ { id: 'sticky-label', className: classes.label },
131
+ label
132
+ ),
133
+ React.createElement(
134
+ 'span',
135
+ { id: 'sticky-badge', style: { position: 'relative' } },
136
+ React.createElement(HiChip, { label: length, classes: { root: classes.badgeRoot } })
137
+ )
127
138
  ),
128
139
  React.createElement(
129
140
  Button,
@@ -204,10 +215,6 @@ HiStickyRow.propTypes = process.env.NODE_ENV !== "production" ? {
204
215
  * Objet contenant les éléments textuels du composant
205
216
  */
206
217
  translations: PropTypes.object.isRequired,
207
- /**
208
- * Valeur de la ligne
209
- */
210
- value: PropTypes.string,
211
218
  /**
212
219
  * Taille du tableau (L/M/S),
213
220
  * définit l'espace entre les cellules et leurs tailles par default
@@ -146,27 +146,9 @@ class HiTable extends React.Component {
146
146
 
147
147
  this.state = {
148
148
  dateUpdate: Date.now(),
149
- isScrollToBottom: false,
150
- groupByIds: {}
149
+ isScrollToBottom: false
151
150
  };
152
151
 
153
- // create associative array (object) with sticky row key & its values
154
- // => used for sticky row badges
155
- if (props.groupBy) {
156
- props.dataSource.map(row => {
157
- let value = row.datas[props.groupBy].value;
158
- let date = new Date(value);
159
-
160
- if (date instanceof Date && isFinite(date)) {
161
- value = value.substr(0, 10);
162
- }
163
- if (!this.state.groupByIds.hasOwnProperty(value)) {
164
- this.state.groupByIds[value] = [];
165
- }
166
- this.state.groupByIds[value].push(row.datas);
167
- });
168
- }
169
-
170
152
  // Orderable
171
153
  this.openOrderColumnsMenu = this.openOrderColumnsMenu.bind(this);
172
154
  this.closeOrderColumnsMenu = this.closeOrderColumnsMenu.bind(this);
@@ -259,28 +241,10 @@ class HiTable extends React.Component {
259
241
  // Only if needed
260
242
  if (this.props.dataSource.length > prevProps.dataSource.length || this.props.dense !== prevProps.dense || this.props.sortedColumnId !== prevProps.sortedColumnId || this.props.sortDirection !== prevProps.sortDirection) {
261
243
  this.updateStickyRowsPosition();
262
- if (this.props.dataSource.length > prevProps.dataSource.length) {
244
+ if (this.props.dataSource.length !== prevProps.dataSource.length) {
263
245
  this.handleStickyRowPositions();
264
246
  }
265
247
  }
266
- if (this.props.dataSource.length > prevProps.dataSource.length && this.props.groupBy) {
267
- // create associative array (object) with sticky row key & its values
268
- // => used for sticky row badges
269
- let groupByIds = {};
270
- this.props.dataSource.map(row => {
271
- let value = row.datas[this.props.groupBy].value;
272
- let date = new Date(value);
273
-
274
- if (date instanceof Date && isFinite(date)) {
275
- value = value.substr(0, 10);
276
- }
277
- if (!groupByIds.hasOwnProperty(value)) {
278
- groupByIds[value] = [];
279
- }
280
- groupByIds[value].push(row.datas);
281
- });
282
- this.setState({ groupByIds: groupByIds });
283
- }
284
248
 
285
249
  this.isScrollToBottom(this.scrollTop === this.tBody.scrollHeight - this.tBody.offsetHeight);
286
250
 
@@ -590,7 +554,7 @@ class HiTable extends React.Component {
590
554
  detailRowsOptions
591
555
  } = this.props;
592
556
 
593
- const { dateUpdate, isScrollToBottom, groupByIds } = this.state;
557
+ const { dateUpdate, isScrollToBottom } = this.state;
594
558
 
595
559
  const headerHeight = dense ? cst.CELL_HEADER_HEIGHT_DENSE : cst.CELL_HEADER_HEIGHT;
596
560
 
@@ -665,7 +629,6 @@ class HiTable extends React.Component {
665
629
  translations: translations.tableBody,
666
630
  groupBy: groupBy,
667
631
  onClickNext: this.handleNextStickyRow,
668
- groupByIds: groupByIds,
669
632
  lookupColumns: lookupColumns,
670
633
  loading: loading,
671
634
  fixedColumnWidth: fixedColumnWidth,
@@ -691,6 +654,7 @@ class HiTable extends React.Component {
691
654
  ),
692
655
  React.createElement(HiTableContextMenu, {
693
656
  tabId: tabId,
657
+ columns: columns,
694
658
  onSearch: this.props.onSearch,
695
659
  onRedirect: this.props.onRedirect
696
660
  }),