@hipay/hipay-material-ui 1.0.0-beta.14 → 1.0.0-beta.16

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 (45) hide show
  1. package/HiBreadcrumb/HiBreadcrumb.js +28 -22
  2. package/HiBreadcrumb/HiStep.js +96 -60
  3. package/HiBreadcrumb/HiStepConnector.js +91 -26
  4. package/HiBreadcrumb/HiStepContent.js +122 -0
  5. package/HiBreadcrumb/HiStepIcon.js +86 -29
  6. package/HiBreadcrumb/HiStepLabel.js +128 -62
  7. package/HiBreadcrumb/HiStepper.js +5 -24
  8. package/HiDatePicker/Overlays/CustomOverlayLayout.js +3 -1
  9. package/HiDatePicker/Overlays/Overlay.js +14 -2
  10. package/HiForm/HiInput.js +24 -11
  11. package/HiForm/HiSlider.js +399 -0
  12. package/HiForm/index.js +9 -0
  13. package/HiTable/BodyCellBuilder.js +3 -0
  14. package/HiTable/BodyCells/CellIcon.js +26 -19
  15. package/HiTable/BodyCells/CellImage.js +17 -13
  16. package/HiTable/BodyCells/CellNumeric.js +7 -2
  17. package/HiTable/BodyCells/CellSentinel.js +14 -13
  18. package/HiTable/BodyCells/CellThirdPartySecurity.js +43 -19
  19. package/HiTable/HeaderCell.js +3 -2
  20. package/es/HiBreadcrumb/HiBreadcrumb.js +27 -19
  21. package/es/HiBreadcrumb/HiStep.js +55 -54
  22. package/es/HiBreadcrumb/HiStepConnector.js +86 -26
  23. package/es/HiBreadcrumb/HiStepContent.js +63 -0
  24. package/es/HiBreadcrumb/HiStepIcon.js +103 -35
  25. package/es/HiBreadcrumb/HiStepLabel.js +106 -63
  26. package/es/HiBreadcrumb/HiStepper.js +5 -21
  27. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +3 -1
  28. package/es/HiDatePicker/Overlays/Overlay.js +9 -2
  29. package/es/HiForm/HiInput.js +19 -10
  30. package/es/HiForm/HiSlider.js +309 -0
  31. package/es/HiForm/index.js +1 -0
  32. package/es/HiTable/BodyCellBuilder.js +3 -0
  33. package/es/HiTable/BodyCells/CellIcon.js +15 -8
  34. package/es/HiTable/BodyCells/CellImage.js +16 -14
  35. package/es/HiTable/BodyCells/CellNumeric.js +6 -2
  36. package/es/HiTable/BodyCells/CellSentinel.js +8 -5
  37. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +40 -15
  38. package/es/HiTable/HeaderCell.js +3 -2
  39. package/es/utils/hiHelpers.js +4 -3
  40. package/index.es.js +1 -1
  41. package/index.js +1 -1
  42. package/package.json +43 -43
  43. package/umd/hipay-material-ui.development.js +7679 -7170
  44. package/umd/hipay-material-ui.production.min.js +5 -5
  45. package/utils/hiHelpers.js +4 -2
@@ -0,0 +1,309 @@
1
+ import _extends from 'babel-runtime/helpers/extends';
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+ import withStyles from '../styles/withStyles';
6
+ import HiIconBuilder from '../utils/HiIconBuilder';
7
+ import HiFormControl from '../HiForm/HiFormControl';
8
+
9
+ export const styles = theme => ({
10
+ barContainer: {
11
+ width: '100%',
12
+ position: 'relative',
13
+ margin: '0 7px'
14
+ },
15
+ barHidden: {
16
+ width: '100%',
17
+ opacity: 0,
18
+ position: 'absolute',
19
+ top: '7px',
20
+ zIndex: '2'
21
+ },
22
+ mainContainer: _extends({}, theme.typography.body1, {
23
+ display: 'flex',
24
+ flexWrap: 'nowrap',
25
+ alignItems: 'center'
26
+ }),
27
+ topContainer: {
28
+ display: 'flex',
29
+ flexWrap: 'nowrap',
30
+ height: '18px'
31
+ },
32
+ bottomContainer: {
33
+ display: 'flex',
34
+ flexWrap: 'nowrap',
35
+ height: '18px'
36
+ },
37
+ barValue: {
38
+ display: 'flex',
39
+ width: '100%',
40
+ height: '4px',
41
+ borderRadius: '2px',
42
+ backgroundColor: theme.palette.business.primary.normal,
43
+ position: 'absolute',
44
+ zIndex: '2'
45
+ },
46
+ arrow: {
47
+ position: 'absolute',
48
+ zIndex: '1',
49
+ color: theme.palette.business.primary.normal,
50
+ transform: 'translate(-50%,-25%)',
51
+ transition: 'transform 300ms cubic-bezier(0.4, 0, 0.2, 1)',
52
+ transitionProperty: 'transform color'
53
+ },
54
+ focused: {
55
+ transform: 'scale(1.7) translate(-29%, -11%)',
56
+ color: theme.palette.business.primary.dark
57
+ },
58
+ leftLabel: {
59
+ color: theme.palette.business.primary.normal,
60
+ left: '0px',
61
+ position: 'absolute',
62
+ fontSize: '11px',
63
+ alignSelf: 'flex-end'
64
+ },
65
+ rightLabel: {
66
+ color: '#737373',
67
+ right: '0px',
68
+ position: 'absolute',
69
+ fontSize: '11px',
70
+ alignSelf: 'flex-end'
71
+ },
72
+ textValue: {
73
+ position: 'absolute',
74
+ zIndex: '2'
75
+ }
76
+ });
77
+
78
+ /**
79
+ * HiSlider component
80
+ */
81
+ class HiSlider extends React.Component {
82
+
83
+ constructor(props) {
84
+ super(props);
85
+ this.leftLabelWidth = 0;
86
+ this.rightLabelWidth = 0;
87
+ this.textValueWidth = 0;
88
+ this.barContainerWidth = 0;
89
+
90
+ this.handleFocus = isFocused => () => {
91
+ this.setState({ focused: isFocused });
92
+ };
93
+
94
+ this.state = {
95
+ focused: false
96
+ };
97
+
98
+ this.leftLabel;
99
+ this.rightLabel;
100
+ this.textValue;
101
+ this.barContainer;
102
+
103
+ this.handleChange = this.handleChange.bind(this);
104
+ this.handleFocus = this.handleFocus.bind(this);
105
+ }
106
+
107
+ /**
108
+ * Measures several components once they are mounted.
109
+ * If the value and a label (left or right) are hovered,
110
+ * we hide this label.
111
+ */
112
+ componentDidMount() {
113
+ this.leftLabelWidth = this.leftLabel.offsetWidth;
114
+ this.rightLabelWidth = this.rightLabel.offsetWidth;
115
+ this.textValueWidth = this.textValue.offsetWidth;
116
+ this.barContainerWidth = this.barContainer.offsetWidth;
117
+ let { hoveringLeft, hoveringRight } = this.getHovering();
118
+ if (hoveringLeft || hoveringRight) {
119
+ this.forceUpdate();
120
+ }
121
+ }
122
+
123
+ handleChange(event) {
124
+ this.props.onChange(parseFloat(event.target.value));
125
+ this.textValueWidth = this.textValue.offsetWidth;
126
+ }
127
+
128
+ /**
129
+ * Calculates if the labels are hovered.
130
+ */
131
+ getHovering() {
132
+ const ratio = (this.props.value - this.props.min) / (this.props.max - this.props.min);
133
+ const hoveringLeft = this.leftLabelWidth - (ratio * this.barContainerWidth - ratio * this.textValueWidth) > 0;
134
+ const hoveringRight = this.barContainerWidth - ratio * this.barContainerWidth - this.rightLabelWidth - (1 - ratio) * this.textValueWidth < 0;
135
+ return { hoveringLeft, hoveringRight };
136
+ }
137
+
138
+ render() {
139
+ const {
140
+ classes,
141
+ className,
142
+ min,
143
+ max,
144
+ leftLabel,
145
+ rightLabel,
146
+ step,
147
+ suffix,
148
+ id,
149
+ label,
150
+ theme,
151
+ value
152
+ } = this.props;
153
+ const { focused } = this.state;
154
+ const ratio = (value - min) / (max - min);
155
+ const percentage = ratio * 100;
156
+ const { hoveringLeft, hoveringRight } = this.getHovering();
157
+ const barColor = focused ? theme.palette.business.primary.dark : theme.palette.business.primary.normal;
158
+ return (
159
+ // HiFormControl pour l'affichage du label
160
+ React.createElement(
161
+ HiFormControl,
162
+ {
163
+ id: id,
164
+ label: label,
165
+ className: className,
166
+ onFocus: this.handleFocus(true),
167
+ onBlur: this.handleFocus(false)
168
+ },
169
+ React.createElement(
170
+ 'div',
171
+ { className: classes.mainContainer },
172
+ React.createElement(
173
+ 'div',
174
+ null,
175
+ min,
176
+ suffix
177
+ ),
178
+ React.createElement(
179
+ 'div',
180
+ { className: classes.barContainer, ref: div => this.barContainer = div },
181
+ React.createElement(
182
+ 'div',
183
+ { className: classes.topContainer },
184
+ !hoveringLeft && React.createElement(
185
+ 'div',
186
+ {
187
+ className: classes.leftLabel,
188
+ ref: div => this.leftLabel = div
189
+ },
190
+ leftLabel
191
+ ),
192
+ React.createElement(
193
+ 'div',
194
+ {
195
+ className: classes.textValue,
196
+ style: {
197
+ left: `${percentage}%`,
198
+ transform: `translate(-${percentage}%)`
199
+ },
200
+ ref: div => this.textValue = div
201
+ },
202
+ value,
203
+ suffix
204
+ ),
205
+ !hoveringRight && React.createElement(
206
+ 'div',
207
+ {
208
+ className: classes.rightLabel,
209
+ ref: div => this.rightLabel = div
210
+ },
211
+ rightLabel
212
+ )
213
+ ),
214
+ React.createElement('div', {
215
+ className: classes.barValue,
216
+ style: {
217
+ background: `linear-gradient(to right, ${barColor}, ${barColor} ${percentage}%, #E0E0E0 ${percentage}%, #E0E0E0)`
218
+ }
219
+ }),
220
+ React.createElement('input', {
221
+ type: 'range',
222
+ min: min,
223
+ max: max,
224
+ value: value,
225
+ onChange: this.handleChange,
226
+ className: classes.barHidden,
227
+ step: step
228
+ }),
229
+ React.createElement(
230
+ 'div',
231
+ { className: classes.bottomContainer },
232
+ React.createElement(HiIconBuilder, {
233
+ className: classNames(classes.arrow, {
234
+ [classes.focused]: focused
235
+ }),
236
+ icon: 'menu_up',
237
+ size: 24,
238
+ style: { left: `${percentage}%` }
239
+ })
240
+ )
241
+ ),
242
+ React.createElement(
243
+ 'div',
244
+ null,
245
+ max,
246
+ suffix
247
+ )
248
+ )
249
+ )
250
+ );
251
+ }
252
+ }
253
+
254
+ HiSlider.propTypes = process.env.NODE_ENV !== "production" ? {
255
+ /**
256
+ * Useful to extend the style applied to components.
257
+ */
258
+ classes: PropTypes.object,
259
+ /**
260
+ * Classes CSS appliquées.
261
+ */
262
+ className: PropTypes.string,
263
+ /**
264
+ * Id de l'élément input
265
+ */
266
+ id: PropTypes.string.isRequired,
267
+ /**
268
+ * Label du champ
269
+ */
270
+ label: PropTypes.string,
271
+ /**
272
+ * The label to show on the left.
273
+ */
274
+ leftLabel: PropTypes.string,
275
+ /**
276
+ * The Maximum value for the slider.
277
+ */
278
+ max: PropTypes.number.isRequired,
279
+ /**
280
+ * The Minimum value for the slider.
281
+ */
282
+ min: PropTypes.number.isRequired,
283
+ /**
284
+ * Fonction de callback appelée lorsqu'on change la valeur du slider.
285
+ */
286
+ onChange: PropTypes.func,
287
+ /**
288
+ * The label to show on the right
289
+ */
290
+ rightLabel: PropTypes.string,
291
+ /**
292
+ * The step between two selectable values.
293
+ */
294
+ step: PropTypes.number,
295
+ /**
296
+ * The suffix to show after each number.
297
+ */
298
+ suffix: PropTypes.string,
299
+ /**
300
+ * @ignore
301
+ */
302
+ theme: PropTypes.object,
303
+ /**
304
+ * The
305
+ * value of the input.
306
+ */
307
+ value: PropTypes.number
308
+ } : {};
309
+ export default withStyles(styles, { name: 'HmuiHiSlider', withTheme: true })(HiSlider);
@@ -5,4 +5,5 @@ export { default as HiInput } from './HiInput';
5
5
  export { default as HiPasswordField } from './HiPasswordField';
6
6
  export { default as HiTextField } from './HiTextField';
7
7
  export { default as HiSearchField } from './HiSearchField';
8
+ export { default as HiSlider } from './HiSlider';
8
9
  export { default as HiAddressField } from './HiAddressField';
@@ -155,6 +155,7 @@ export default class BodyCellBuilder extends React.PureComponent {
155
155
  cellElement = React.createElement(CellIcon, {
156
156
  value: data.label ? data.label : data.value,
157
157
  icon: data.icon,
158
+ color: data.color,
158
159
  view: view,
159
160
  sticky: sticky
160
161
  });
@@ -164,6 +165,7 @@ export default class BodyCellBuilder extends React.PureComponent {
164
165
  cellElement = React.createElement(CellImage, {
165
166
  value: data.label ? data.label : data.value,
166
167
  path: data.img,
168
+ size: this.props.size,
167
169
  view: view,
168
170
  sticky: sticky
169
171
  });
@@ -173,6 +175,7 @@ export default class BodyCellBuilder extends React.PureComponent {
173
175
  cellElement = React.createElement(CellNumeric, {
174
176
  value: data.value,
175
177
  currency: data.currency,
178
+ precision: data.precision,
176
179
  locale: numberLocale,
177
180
  view: view,
178
181
  sticky: sticky
@@ -1,12 +1,11 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
-
4
3
  import Tooltip from '../../Tooltip';
5
4
  import withStyles from '../../styles/withStyles';
6
5
  import * as cst from '../constants';
7
6
  import HiIconBuilder from '../../utils/HiIconBuilder';
8
7
 
9
- export const styles = theme => ({
8
+ export const styles = {
10
9
  icon: {
11
10
  float: 'left'
12
11
  },
@@ -17,8 +16,11 @@ export const styles = theme => ({
17
16
  whiteSpace: 'nowrap',
18
17
  overflow: 'hidden',
19
18
  textOverflow: 'ellipsis'
19
+ },
20
+ nowrap: {
21
+ whiteSpace: 'nowrap'
20
22
  }
21
- });
23
+ };
22
24
 
23
25
  /**
24
26
  * Cette cellule permet d'afficher une icône et un label (optionnel).
@@ -27,13 +29,13 @@ export const styles = theme => ({
27
29
  class CellIcon extends React.PureComponent {
28
30
 
29
31
  render() {
30
- const { classes, icon, value, view } = this.props;
32
+ const { classes, icon, value, view, color } = this.props;
31
33
 
32
- const iconElement = icon !== '' ? React.createElement(HiIconBuilder, { className: classes.icon, icon: icon, size: 18 }) : '';
34
+ const iconElement = icon !== '' ? React.createElement(HiIconBuilder, { color: color, className: classes.icon, icon: icon, size: 18 }) : '';
33
35
 
34
36
  const tooltipContent = React.createElement(
35
37
  'div',
36
- null,
38
+ { className: classes.nowrap },
37
39
  iconElement,
38
40
  React.createElement(
39
41
  'span',
@@ -61,7 +63,8 @@ class CellIcon extends React.PureComponent {
61
63
 
62
64
  CellIcon.defaultProps = {
63
65
  icon: '',
64
- view: 'l'
66
+ view: 'l',
67
+ color: '#000'
65
68
  };
66
69
  CellIcon.propTypes = process.env.NODE_ENV !== "production" ? {
67
70
  /**
@@ -69,7 +72,11 @@ CellIcon.propTypes = process.env.NODE_ENV !== "production" ? {
69
72
  */
70
73
  classes: PropTypes.object,
71
74
  /**
72
- * Icône name [from material-design-icons](https://materialdesignicons.com/)
75
+ * Couleur de l'icône
76
+ */
77
+ color: PropTypes.string.isRequired,
78
+ /**
79
+ * Icon name [from material-design-icons](https://materialdesignicons.com/)
73
80
  * used by HiIconBuilder
74
81
  */
75
82
  icon: PropTypes.string,
@@ -1,18 +1,15 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
-
4
3
  import Tooltip from '../../Tooltip';
5
4
  import withStyles from '../../styles/withStyles';
6
5
  import * as cst from '../constants';
7
6
 
8
7
  export const styles = theme => ({
9
8
  img: {
10
- width: 24,
11
9
  height: 'auto',
12
10
  float: 'left'
13
11
  },
14
12
  smallImg: {
15
- width: 24,
16
13
  height: 'auto'
17
14
  },
18
15
  label: {
@@ -21,20 +18,18 @@ export const styles = theme => ({
21
18
  tooltipImg: {
22
19
  width: 24,
23
20
  height: 'auto',
24
- float: 'left',
25
- marginTop: 2
21
+ float: 'left'
26
22
  },
27
23
  tooltipLabel: {
28
24
  marginLeft: 5,
29
- position: 'relative',
30
- bottom: 2,
31
25
  verticalAlign: 'middle'
32
-
33
26
  },
34
27
  wrapper: {
28
+ display: 'flex',
29
+ alignItems: 'center',
35
30
  whiteSpace: 'nowrap',
36
- overflow: "hidden",
37
- textOverflow: "ellipsis"
31
+ overflow: 'hidden',
32
+ textOverflow: 'ellipsis'
38
33
  },
39
34
  center: {
40
35
  textAlign: 'center'
@@ -53,12 +48,12 @@ export const styles = theme => ({
53
48
  class CellImage extends React.PureComponent {
54
49
 
55
50
  render() {
56
- const { classes, path, value, view } = this.props;
51
+ const { classes, path, value, view, size } = this.props;
57
52
 
58
53
  const tooltipContent = React.createElement(
59
54
  'div',
60
55
  { className: classes.tooltipContainer },
61
- React.createElement('img', { src: path, alt: value, className: classes.tooltipImg }),
56
+ React.createElement('img', { src: path, alt: value, className: classes.tooltipImg, width: size }),
62
57
  React.createElement(
63
58
  'span',
64
59
  { className: classes.tooltipLabel },
@@ -72,13 +67,13 @@ class CellImage extends React.PureComponent {
72
67
  innerCellElement = React.createElement(
73
68
  'div',
74
69
  { className: classes.center },
75
- React.createElement('img', { src: path, alt: value, className: classes.smallImg })
70
+ React.createElement('img', { src: path, alt: value, className: classes.smallImg, width: size })
76
71
  );
77
72
  } else {
78
73
  innerCellElement = React.createElement(
79
74
  'div',
80
75
  { className: classes.wrapper },
81
- React.createElement('img', { src: path, alt: value, className: classes.img }),
76
+ React.createElement('img', { src: path, alt: value, className: classes.img, width: size }),
82
77
  !!value && React.createElement(
83
78
  'span',
84
79
  { className: classes.label },
@@ -111,6 +106,9 @@ class CellImage extends React.PureComponent {
111
106
  }
112
107
  }
113
108
 
109
+ CellImage.defaultProps = {
110
+ size: 24
111
+ };
114
112
  CellImage.propTypes = process.env.NODE_ENV !== "production" ? {
115
113
  /**
116
114
  * Useful to extend the style applied to components.
@@ -120,6 +118,10 @@ CellImage.propTypes = process.env.NODE_ENV !== "production" ? {
120
118
  * Image path
121
119
  */
122
120
  path: PropTypes.string,
121
+ /**
122
+ * Image path
123
+ */
124
+ size: PropTypes.number.isRequired,
123
125
  /**
124
126
  * Value
125
127
  */
@@ -18,7 +18,7 @@ export const styles = theme => ({
18
18
  class CellNumeric extends React.PureComponent {
19
19
 
20
20
  render() {
21
- const { classes, value, locale, currency, view } = this.props;
21
+ const { classes, value, locale, currency, view, precision } = this.props;
22
22
 
23
23
  let displayedValue = '';
24
24
  let titleValue = '';
@@ -31,7 +31,7 @@ class CellNumeric extends React.PureComponent {
31
31
  titleValue = formatCurrencyAmount(value, cst.VIEWS.LARGE, locale, currency);
32
32
  }
33
33
  } else {
34
- displayedValue = formatNumber(value, view, locale);
34
+ displayedValue = formatNumber(value, view, locale, precision);
35
35
  }
36
36
 
37
37
  return React.createElement(
@@ -63,6 +63,10 @@ CellNumeric.propTypes = process.env.NODE_ENV !== "production" ? {
63
63
  * Code de la devise (ISO 4217)
64
64
  */
65
65
  currency: PropTypes.string,
66
+ /**
67
+ * Nombre de chiffres après la virgule
68
+ */
69
+ precision: PropTypes.number,
66
70
  /**
67
71
  * View (L/M/S)
68
72
  */
@@ -5,15 +5,18 @@ import HiColoredLabel from '../../HiColoredLabel';
5
5
  import { withStyles } from '../../styles';
6
6
  import * as cst from '../constants';
7
7
 
8
- export const styles = theme => ({
8
+ export const styles = {
9
9
  smartDecision: {
10
10
  display: 'inline-block',
11
11
  minWidth: 18
12
12
  },
13
13
  label: {
14
14
  marginLeft: 2
15
+ },
16
+ nowrap: {
17
+ whiteSpace: 'nowrap'
15
18
  }
16
- });
19
+ };
17
20
 
18
21
  /**
19
22
  * Cette cellule permet d'afficher le résultat de Sentinel (score & fraudResult & smartDecision)
@@ -77,17 +80,17 @@ class CellSentinel extends React.PureComponent {
77
80
  null,
78
81
  React.createElement(
79
82
  'div',
80
- null,
83
+ { className: classes.nowrap },
81
84
  scoreLabel
82
85
  ),
83
86
  React.createElement(
84
87
  'div',
85
- null,
88
+ { className: classes.nowrap },
86
89
  fraudResult
87
90
  ),
88
91
  !!smartDecision && automaticFraudReviewResult && React.createElement(
89
92
  'div',
90
- null,
93
+ { className: classes.nowrap },
91
94
  'SD: ',
92
95
  automaticFraudReviewResult
93
96
  )
@@ -2,17 +2,19 @@
2
2
 
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
-
6
- import Tooltip from '../../Tooltip';
7
- import { withStyles, withTheme } from '../../styles';
8
5
  import { Lock, LockOpen, LockOpenOutline } from 'mdi-material-ui';
6
+ import Tooltip from '../../Tooltip';
7
+ import { withStyles } from '../../styles';
9
8
 
10
- export const styles = theme => ({
9
+ export const styles = {
11
10
  icon: {
12
11
  width: 18,
13
12
  height: 18
13
+ },
14
+ nowrap: {
15
+ whiteSpace: 'nowrap'
14
16
  }
15
- });
17
+ };
16
18
 
17
19
  /**
18
20
  * Cette cellule permet d'afficher une icône représentant le statut du 3DS.
@@ -31,26 +33,45 @@ class CellThirdPartySecurity extends React.PureComponent {
31
33
  let icon = null;
32
34
  switch (value) {
33
35
  case ECI_5:
34
- icon = React.createElement(Lock, { className: classes.icon, style: { color: theme.palette.positive.normal } });
36
+ icon = React.createElement(Lock, {
37
+ className: classes.icon,
38
+ style: { color: theme.palette.positive.normal }
39
+ });
35
40
  break;
36
41
  case ECI_6:
37
- icon = React.createElement(LockOpen, { className: classes.icon, style: { color: theme.palette.middle.normal } });
42
+ icon = React.createElement(LockOpen, {
43
+ className: classes.icon,
44
+ style: { color: theme.palette.middle.normal }
45
+ });
38
46
  break;
39
47
  case AUTH_1:
40
- icon = React.createElement(LockOpenOutline, { className: classes.icon, style: { color: theme.palette.neutral.light } });
48
+ icon = React.createElement(LockOpenOutline, {
49
+ className: classes.icon,
50
+ style: { color: theme.palette.neutral.light }
51
+ });
41
52
  break;
42
53
  case AUTH_2:
43
- icon = React.createElement(LockOpen, { className: classes.icon, style: { color: theme.palette.neutral.light } });
54
+ icon = React.createElement(LockOpen, {
55
+ className: classes.icon,
56
+ style: { color: theme.palette.neutral.light }
57
+ });
44
58
  break;
45
59
  case ECI_7:
46
60
  case AUTH_0:
61
+ default:
47
62
  icon = null;
48
63
  break;
49
64
  }
50
65
 
66
+ const tooltipContent = React.createElement(
67
+ 'div',
68
+ { className: classes.nowrap },
69
+ label
70
+ );
71
+
51
72
  return React.createElement(
52
73
  Tooltip,
53
- { title: label, placement: this.props.sticky ? 'right' : 'bottom' },
74
+ { title: tooltipContent, placement: this.props.sticky ? 'right' : 'bottom' },
54
75
  React.createElement(
55
76
  'div',
56
77
  null,
@@ -65,6 +86,14 @@ CellThirdPartySecurity.propTypes = process.env.NODE_ENV !== "production" ? {
65
86
  * Useful to extend the style applied to components.
66
87
  */
67
88
  classes: PropTypes.object,
89
+ /**
90
+ * Label
91
+ */
92
+ label: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
93
+ /**
94
+ * True si la colonne est sticky
95
+ */
96
+ sticky: PropTypes.bool,
68
97
  /**
69
98
  * Useful to extend the theme applied to components.
70
99
  * Used theme props positive.normal, middle.normal, neutral.light
@@ -79,10 +108,6 @@ CellThirdPartySecurity.propTypes = process.env.NODE_ENV !== "production" ? {
79
108
  * AUTH_1 = 4; // ask for 3DS
80
109
  * AUTH_2 = 5; // force 3DS
81
110
  */
82
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
83
- /**
84
- * Label
85
- */
86
- label: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
111
+ value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
87
112
  } : {};
88
113
  export default withStyles(styles, { withTheme: true, name: 'HmuiCellThirdPartySecurity' })(CellThirdPartySecurity);