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

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 (83) hide show
  1. package/HI-CHANGELOG.md +58 -39
  2. package/HiChip/HiChip.js +67 -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 +28 -20
  9. package/HiSelect/SelectInput.js +3 -8
  10. package/HiSelectableList/HiSelectableList.js +51 -49
  11. package/HiSelectableList/HiSelectableListItem.js +7 -5
  12. package/HiTable/BodyCellBuilder.js +25 -14
  13. package/HiTable/BodyCells/CellAccount.js +13 -15
  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 +56 -52
  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 +75 -37
  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 +27 -16
  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 +72 -6
  37. package/es/HiChip/HiChip.js +81 -9
  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 +25 -16
  44. package/es/HiSelect/SelectInput.js +3 -8
  45. package/es/HiSelectableList/HiSelectableList.js +51 -49
  46. package/es/HiSelectableList/HiSelectableListItem.js +7 -5
  47. package/es/HiTable/BodyCellBuilder.js +11 -4
  48. package/es/HiTable/BodyCells/CellAccount.js +7 -5
  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 +35 -40
  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 +50 -20
  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 +21 -14
  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/svg-icons/Cancel.js +2 -0
  72. package/es/svg-icons/HiBriefcaseRescue.js +15 -0
  73. package/es/svg-icons/index.js +2 -1
  74. package/es/utils/HiIconBuilder.js +6 -2
  75. package/index.es.js +1 -1
  76. package/index.js +1 -1
  77. package/package.json +7 -1
  78. package/svg-icons/Cancel.js +2 -0
  79. package/svg-icons/HiBriefcaseRescue.js +30 -0
  80. package/svg-icons/index.js +9 -0
  81. package/umd/hipay-material-ui.development.js +110915 -119592
  82. package/umd/hipay-material-ui.production.min.js +5 -5
  83. package/utils/HiIconBuilder.js +6 -2
@@ -14,7 +14,8 @@ export const styles = theme => ({
14
14
  width: '100%',
15
15
  height: 40,
16
16
  maxWidth: 500,
17
- justifyContent: 'flex-start',
17
+ display: 'flex',
18
+ justifyContent: 'center',
18
19
  padding: 8,
19
20
  cursor: 'pointer'
20
21
  },
@@ -89,18 +90,12 @@ export const styles = theme => ({
89
90
  label: _extends({
90
91
  whiteSpace: 'nowrap',
91
92
  overflow: 'hidden',
92
- textOverflow: 'ellipsis',
93
- paddingRight: 16
93
+ textOverflow: 'ellipsis'
94
94
  }, theme.typography.body1, {
95
95
  display: 'inline-flex',
96
96
  width: '100%'
97
97
  }),
98
98
  icon: {
99
- position: 'absolute',
100
- display: 'flex',
101
- alignItems: 'center',
102
- right: 0,
103
- height: 40,
104
99
  transition: theme.transitions.create(['opacity', 'transform'], {
105
100
  duration: theme.transitions.duration.shorter
106
101
  })
@@ -51,59 +51,61 @@ class HiSelectableList extends React.PureComponent {
51
51
  List,
52
52
  { className: classes.root, onKeyDown: this.props.onKeyDown },
53
53
  itemList.map(item => {
54
- /**
55
- * Calcul du level de l'item
56
- */
57
- if (hierarchic) {
58
- // On stocke l'id des parents dans un tableau
59
- if (item.parentId && !parents.includes(item.parentId)) {
60
- parents.push(item.parentId);
61
- } else if (item.parentId && parents.includes(item.parentId)) {
62
- // Si l'item n'a pas de parentId ou qu'on l'a déjà stocké :
63
- // Et si le parentId n'est pas le dernier inseré
64
- if (item.parentId !== parents[parents.length - 1]) {
65
- // On est donc redescendu d'un niveau
66
- // donc on supprime le dernier parent
67
- parents.pop();
54
+ if (item.displayed !== false) {
55
+ /**
56
+ * Calcul du level de l'item
57
+ */
58
+ if (hierarchic) {
59
+ // On stocke l'id des parents dans un tableau
60
+ if (item.parentId && !parents.includes(item.parentId)) {
61
+ parents.push(item.parentId);
62
+ } else if (item.parentId && parents.includes(item.parentId)) {
63
+ // Si l'item n'a pas de parentId ou qu'on l'a déjà stocké :
64
+ // Et si le parentId n'est pas le dernier inseré
65
+ if (item.parentId !== parents[parents.length - 1]) {
66
+ // On est donc redescendu d'un niveau
67
+ // donc on supprime le dernier parent
68
+ parents.pop();
69
+ }
70
+ } else if (!item.parentId && parents.length > 0) {
71
+ // Si l'item n'a pas de parent et que le tableau des parent
72
+ // n'est pas vide => on le réinitialise
73
+ parents = [];
68
74
  }
69
- } else if (!item.parentId && parents.length > 0) {
70
- // Si l'item n'a pas de parent et que le tableau des parent
71
- // n'est pas vide => on le réinitialise
72
- parents = [];
73
75
  }
74
- }
75
76
 
76
- /**
77
- * L'élément est-il selectionné ?
78
- */
79
- let selected = false;
80
- if (item.id === '_all') {
81
- selected = allSelected;
82
- } else if (!item.hasChildren) {
83
- selected = selectedIdList.includes(item.id);
84
- } else if (hierarchic && parentItemSelectable) {
85
- selected = hierarchySelected[item.id].length === hierarchy[item.id].length;
86
- }
77
+ /**
78
+ * L'élément est-il selectionné ?
79
+ */
80
+ let selected = false;
81
+ if (item.id === '_all') {
82
+ selected = allSelected;
83
+ } else if (!item.hasChildren) {
84
+ selected = selectedIdList.includes(item.id);
85
+ } else if (hierarchic && parentItemSelectable) {
86
+ selected = hierarchySelected[item.id].length === hierarchy[item.id].length;
87
+ }
87
88
 
88
- return React.createElement(HiSelectableListItem, _extends({
89
- key: item.id,
90
- item: item,
91
- selected: selected,
92
- indeterminate: item.hasChildren && parentItemSelectable ? hierarchySelected[item.id].length > 0 && hierarchySelected[item.id].length !== hierarchy[item.id].length : false,
93
- onSelect: onSelect,
94
- hierarchySelected: hierarchySelected,
95
- parentItemSelectable: parentItemSelectable,
96
- nbChildren: typeof hierarchy !== 'undefined' && typeof hierarchy[item.id] !== 'undefined' ? hierarchy[item.id].length : 0,
97
- hierarchic: hierarchic,
98
- translations: translations,
99
- icon: icon,
100
- parentIcon: parentIcon,
101
- hoverIcon: hoverIcon,
102
- checkedIcon: checkedIcon,
103
- checkbox: checkbox,
104
- level: parents.length,
105
- disabled: disabledIds ? disabledIds.includes(item.id) : false
106
- }, others));
89
+ return React.createElement(HiSelectableListItem, _extends({
90
+ key: item.id,
91
+ item: item,
92
+ selected: selected,
93
+ indeterminate: item.hasChildren && parentItemSelectable ? hierarchySelected[item.id].length > 0 && hierarchySelected[item.id].length !== hierarchy[item.id].length : false,
94
+ onSelect: onSelect,
95
+ hierarchySelected: hierarchySelected,
96
+ parentItemSelectable: parentItemSelectable,
97
+ nbChildren: typeof hierarchy !== 'undefined' && typeof hierarchy[item.id] !== 'undefined' ? hierarchy[item.id].length : 0,
98
+ hierarchic: hierarchic,
99
+ translations: translations,
100
+ icon: icon,
101
+ parentIcon: parentIcon,
102
+ hoverIcon: hoverIcon,
103
+ checkedIcon: checkedIcon,
104
+ checkbox: checkbox,
105
+ level: item.level ? item.level : parents.length,
106
+ disabled: disabledIds ? disabledIds.includes(item.id) : false
107
+ }, others));
108
+ }
107
109
  })
108
110
  )
109
111
  );
@@ -14,9 +14,11 @@ import HiLoader from '../HiLoader';
14
14
 
15
15
  export const styles = theme => ({
16
16
  listItem: {
17
- padding: `${9}px 0px`,
17
+ padding: '9px 0px',
18
18
  fontWeight: theme.typography.fontWeightRegular,
19
- maxHeight: 40
19
+ maxHeight: 40,
20
+ display: 'flex',
21
+ alignItems: 'flex-start'
20
22
  },
21
23
  listItemTitle: {
22
24
  padding: `${9}px 0px`,
@@ -311,7 +313,7 @@ class HiSelectableListItem extends React.Component {
311
313
 
312
314
  if (leftPadding) {
313
315
  paddingLeft = leftPadding;
314
- } else if (!hierarchic) {
316
+ } else if (!hierarchic && level === 0) {
315
317
  // Si pas de hiérarchie et sans checkbox, padding de 8px
316
318
  if (!effectiveCheckbox) {
317
319
  paddingLeft = 8;
@@ -328,9 +330,9 @@ class HiSelectableListItem extends React.Component {
328
330
  }
329
331
  } else if (level > 0) {
330
332
  if (effectiveCheckbox) {
331
- paddingLeft = 16 * (level - 1);
332
- } else {
333
333
  paddingLeft = 16 * level;
334
+ } else {
335
+ paddingLeft = 16 * (level + 1);
334
336
  }
335
337
  } else if (!effectiveCheckbox) {
336
338
  if (item.id === '_all') {
@@ -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
  import React from 'react';
4
5
  import PropTypes from 'prop-types';
5
6
  import { ContextMenuTrigger } from 'react-contextmenu';
@@ -11,7 +12,7 @@ import { formatRate } from '../utils/hiHelpers';
11
12
  /**
12
13
  * Construit la cellule correspondante au type demandé
13
14
  */
14
- export default class BodyCellBuilder extends React.PureComponent {
15
+ export default class BodyCellBuilder extends React.Component {
15
16
 
16
17
  constructor(props) {
17
18
  super(props);
@@ -19,6 +20,10 @@ export default class BodyCellBuilder extends React.PureComponent {
19
20
  this.collectContextMenuDatas = this.collectContextMenuDatas.bind(this);
20
21
  }
21
22
 
23
+ shouldComponentUpdate(nextProps, nextState) {
24
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
25
+ }
26
+
22
27
  /**
23
28
  * CollecContextMenuDatas
24
29
  *
@@ -151,7 +156,8 @@ export default class BodyCellBuilder extends React.PureComponent {
151
156
  locale: dateLocale,
152
157
  view: view,
153
158
  displayTime: props.displayTime,
154
- sticky: sticky
159
+ sticky: sticky,
160
+ formatShort: this.props.formatShort
155
161
  });
156
162
  break;
157
163
 
@@ -235,10 +241,11 @@ export default class BodyCellBuilder extends React.PureComponent {
235
241
  default:
236
242
  cellElement = React.createElement(CellText, {
237
243
  ukey: ukey,
238
- value: data.value,
244
+ value: data.label ? data.label : data.value,
239
245
  ellipsis: ellipsis,
240
246
  view: view,
241
- sticky: sticky
247
+ sticky: sticky,
248
+ color: data.color
242
249
  });
243
250
  break;
244
251
  }
@@ -1,15 +1,17 @@
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';
4
5
  import HiColoredLabel from '../../HiColoredLabel';
5
- import withStyles from '../../styles/withStyles';
6
-
7
- export const styles = theme => ({});
8
6
 
9
7
  /**
10
8
  * Cette cellule permet d'afficher le nom d'un compte sous la forme d'un label coloré.
11
9
  */
12
- class CellAccount extends React.PureComponent {
10
+ class CellAccount extends React.Component {
11
+
12
+ shouldComponentUpdate(nextProps, nextState) {
13
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
14
+ }
13
15
 
14
16
  render() {
15
17
  const { value, color } = this.props;
@@ -37,4 +39,4 @@ CellAccount.propTypes = process.env.NODE_ENV !== "production" ? {
37
39
  */
38
40
  value: PropTypes.string.isRequired
39
41
  } : {};
40
- export default withStyles(styles, { name: 'HmuiCellAccount' })(CellAccount);
42
+ export default CellAccount;
@@ -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 { Circle } from 'mdi-material-ui';
@@ -44,7 +45,11 @@ export const styles = theme => ({
44
45
  * Cette cellule permet d'afficher un numéro de compte
45
46
  * Le tooltip affiche les informations complémentaires (country, expiration date..)
46
47
  */
47
- class CellAccountNumber extends React.PureComponent {
48
+ class CellAccountNumber extends React.Component {
49
+
50
+ shouldComponentUpdate(nextProps, nextState) {
51
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
52
+ }
48
53
 
49
54
  render() {
50
55
  const {
@@ -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';
@@ -23,7 +24,11 @@ export const styles = theme => ({
23
24
  * - sinon on affiche la ville et le pays
24
25
  * - tous les champs définis sont affichés dans le tooltip
25
26
  */
26
- class CellAddress extends React.PureComponent {
27
+ class CellAddress extends React.Component {
28
+
29
+ shouldComponentUpdate(nextProps, nextState) {
30
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
31
+ }
27
32
 
28
33
  render() {
29
34
  const { classes, streetAddress, name, city, postalCode, view, country, isoCountry } = 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
 
@@ -44,7 +45,11 @@ export const styles = theme => ({
44
45
  * en vue small : Affiche la valeur courte (id), tooltip = Image + Value
45
46
  *
46
47
  */
47
- class CellCountry extends React.PureComponent {
48
+ class CellCountry extends React.Component {
49
+
50
+ shouldComponentUpdate(nextProps, nextState) {
51
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
52
+ }
48
53
 
49
54
  render() {
50
55
  const { label, path, value, view } = this.props;
@@ -1,12 +1,13 @@
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
-
4
+ import moment from 'moment';
5
+ import 'moment/locale/fr';
5
6
  import withStyles from '../../styles/withStyles';
6
7
  import Tooltip from '../../Tooltip';
7
8
  import * as cst from '../constants';
8
9
 
9
- export const styles = theme => ({
10
+ export const styles = {
10
11
  rightEllipsisSpan: {
11
12
  display: 'inline-block',
12
13
  overflow: 'hidden',
@@ -14,51 +15,34 @@ export const styles = theme => ({
14
15
  whiteSpace: 'pre',
15
16
  width: '100%'
16
17
  }
17
- });
18
+ };
18
19
 
19
20
  /**
20
21
  * Cette cellule permet d'afficher une date en fonction de la locale de l'utilisateur
21
22
  */
22
23
  class CellDate extends React.Component {
24
+ constructor(...args) {
25
+ var _temp;
26
+
27
+ return _temp = super(...args), this.formatLong = 'dddd DD MMMM YYYY HH:mm:ss', _temp;
28
+ }
29
+
30
+ shouldComponentUpdate(nextProps, nextState) {
31
+ return _JSON$stringify(this.props) !== _JSON$stringify(nextProps) || _JSON$stringify(this.state) !== _JSON$stringify(nextState);
32
+ }
23
33
 
24
34
  render() {
25
- const { classes, displayTime, value, locale, view } = this.props;
35
+ const { classes, displayTime, value, locale, view, formatShort } = this.props;
26
36
 
27
- const date = new Date(value);
37
+ const date = moment(value);
38
+ date.locale(locale);
28
39
 
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);
40
+ const titleValue = displayTime ? date.format(this.formatLong) : date.format(this.formatLong.replace(' HH:mm:ss', ''));
40
41
  let displayedValue = titleValue;
41
42
  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);
43
+ displayedValue = displayTime ? date.format(`${formatShort.replace('YYYY', 'YY')} HH:mm:ss`) : date.format(formatShort.replace('YYYY', 'YY'));
51
44
  } 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);
45
+ displayedValue = displayTime ? date.format(`${formatShort} HH:mm:ss`) : date.format(formatShort);
62
46
  }
63
47
 
64
48
  if (view === cst.VIEWS.LARGE) {
@@ -83,8 +67,9 @@ class CellDate extends React.Component {
83
67
 
84
68
  CellDate.defaultProps = {
85
69
  displayTime: false,
86
- locale: 'en-EN',
87
- view: 'l'
70
+ locale: 'en',
71
+ view: 'l',
72
+ formatShort: 'DD/MM/YYYY'
88
73
  };
89
74
  CellDate.propTypes = process.env.NODE_ENV !== "production" ? {
90
75
  /**
@@ -96,11 +81,21 @@ CellDate.propTypes = process.env.NODE_ENV !== "production" ? {
96
81
  */
97
82
  displayTime: PropTypes.bool,
98
83
  /**
99
- * Locale BCP 47
84
+ * Format de la date en vue small (ex: DD/MM/YYYY)
85
+ * @see https://momentjs.com/docs/#/parsing/string-format/
86
+ */
87
+ formatShort: PropTypes.string.isRequired,
88
+ /**
89
+ * Locale moment
100
90
  */
101
91
  locale: PropTypes.string,
102
92
  /**
103
- * Volume/Amount
93
+ * True si la colonne est la première colonne et
94
+ * doit avoir un comportement "sticky" lors du scroll horizontal
95
+ */
96
+ sticky: PropTypes.bool,
97
+ /**
98
+ * Date as string
104
99
  */
105
100
  value: PropTypes.string.isRequired,
106
101
  /**
@@ -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;