@hipay/hipay-material-ui 2.0.0-beta.66 → 2.0.0-beta.69
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +151 -0
- package/HiAlertModal/HiAlertModal.js +32 -32
- package/HiAppBar/HiAppBar.js +3 -3
- package/HiBreadcrumb/HiBreadcrumb.js +5 -4
- package/HiBreadcrumb/HiStepConnector.js +3 -3
- package/HiCell/CellText.js +3 -3
- package/HiCheckbox/HiCheckbox.js +3 -3
- package/HiChip/HiChipSwitch.js +5 -5
- package/HiDatePicker/HiDatePicker.js +17 -17
- package/HiDatePicker/Overlays/MonthPickerOverlay.js +3 -3
- package/HiDatePicker/Overlays/TimePickerOverlay.js +4 -4
- package/HiDatePicker/Overlays/YearPickerOverlay.js +3 -3
- package/HiDotsStepper/HiDotsStepper.js +4 -4
- package/HiExpansionPanel/HiExpansionPanel.js +56 -13
- package/HiForm/HiAddressField.js +7 -7
- package/HiForm/HiEmailField.js +3 -3
- package/HiForm/HiFormControl.js +6 -6
- package/HiForm/HiInput.js +20 -14
- package/HiForm/HiPasswordField.js +3 -3
- package/HiForm/HiSearchField.js +5 -5
- package/HiForm/HiTextField.js +5 -5
- package/HiForm/HiUpload.js +2 -2
- package/HiMap/HiMap.js +6 -6
- package/HiMap/HiMapExpand.js +4 -4
- package/HiNotice/HiKPI.js +3 -3
- package/HiSelect/HiDynamicSelect.js +7 -7
- package/HiSelect/HiNestedSelect.js +12 -12
- package/HiSelect/HiNestedSelectContent.js +9 -9
- package/HiSelect/HiSelect.js +63 -42
- package/HiSelect/HiSelectContent.js +13 -13
- package/HiSelect/HiSelectInput.js +7 -7
- package/HiSelect/HiSuggestSelect.js +6 -6
- package/HiSelectableList/HiSelectableList.js +50 -2
- package/HiSelectableList/HiSelectableListItem.js +4 -4
- package/HiTable/HiTable.js +3 -3
- package/HiTable/HiTableRow.js +5 -5
- package/README.md +1 -1
- package/es/HiAlertModal/HiAlertModal.js +28 -29
- package/es/HiBreadcrumb/HiBreadcrumb.js +5 -4
- package/es/HiExpansionPanel/HiExpansionPanel.js +56 -14
- package/es/HiForm/HiInput.js +9 -3
- package/es/HiForm/HiUpload.js +2 -2
- package/es/HiSelect/HiSelect.js +28 -10
- package/es/HiSelectableList/HiSelectableList.js +45 -2
- package/es/HiTable/HiTableRow.js +2 -2
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +3 -2
- package/umd/hipay-material-ui.development.js +4150 -12454
- package/umd/hipay-material-ui.production.min.js +2 -2
@@ -11,23 +11,24 @@ import DialogTitle from '@material-ui/core/DialogTitle';
|
|
11
11
|
import { withStyles } from '../styles';
|
12
12
|
import HiButton from '../HiButton';
|
13
13
|
import HiIcon from '../HiIcon';
|
14
|
+
import { escapeHTML } from '../utils/helpers';
|
14
15
|
export const styles = theme => ({
|
15
16
|
classContent: {
|
16
17
|
fontSize: 14,
|
17
|
-
lineHeight: '
|
18
|
+
lineHeight: '24px',
|
18
19
|
color: '#484848',
|
19
20
|
position: 'relative'
|
20
21
|
},
|
21
22
|
classDialogPaper: {
|
22
|
-
minHeight:
|
23
|
+
minHeight: 248,
|
23
24
|
maxWidth: 280,
|
24
25
|
borderRadius: 2
|
25
26
|
},
|
26
27
|
classCancelButton: {
|
27
|
-
|
28
|
+
margin: '0'
|
28
29
|
},
|
29
30
|
classSubmitButton: {
|
30
|
-
|
31
|
+
float: 'right'
|
31
32
|
},
|
32
33
|
classTitle: {
|
33
34
|
fontSize: 20,
|
@@ -60,18 +61,6 @@ class HiAlertModal extends React.PureComponent {
|
|
60
61
|
constructor(props) {
|
61
62
|
super(props);
|
62
63
|
|
63
|
-
this.handleClickCancel = () => {
|
64
|
-
if (this.props.onCancelClick) {
|
65
|
-
this.props.onCancelClick();
|
66
|
-
}
|
67
|
-
};
|
68
|
-
|
69
|
-
this.handleClickSubmit = () => {
|
70
|
-
if (this.props.onSubmitClick) {
|
71
|
-
this.props.onSubmitClick();
|
72
|
-
}
|
73
|
-
};
|
74
|
-
|
75
64
|
this.handleOnClose = () => {
|
76
65
|
if (this.props.onClose) {
|
77
66
|
this.props.onClose();
|
@@ -79,9 +68,7 @@ class HiAlertModal extends React.PureComponent {
|
|
79
68
|
};
|
80
69
|
|
81
70
|
this.handleOnClose = this.handleOnClose.bind(this);
|
82
|
-
|
83
|
-
this.handleClickSubmit = this.handleClickSubmit.bind(this);
|
84
|
-
} // Appelé au clic du bouton d'annulation
|
71
|
+
} // Appelé si clic en dehors de la pop up
|
85
72
|
|
86
73
|
|
87
74
|
// Render
|
@@ -103,6 +90,17 @@ class HiAlertModal extends React.PureComponent {
|
|
103
90
|
} = _this$props,
|
104
91
|
props = _objectWithoutProperties(_this$props, ["backgroundIcon", "iconSize", "classes", "content", "labelCancelButton", "labelSubmitButton", "onCancelClick", "onSubmitClick", "open", "cancelColor", "submitColor", "title"]);
|
105
92
|
|
93
|
+
let dialogContent = content;
|
94
|
+
|
95
|
+
if (typeof content === 'string') {
|
96
|
+
dialogContent = React.createElement("span", {
|
97
|
+
// eslint-disable-next-line react/no-danger
|
98
|
+
dangerouslySetInnerHTML: {
|
99
|
+
__html: escapeHTML(content)
|
100
|
+
}
|
101
|
+
});
|
102
|
+
}
|
103
|
+
|
106
104
|
return React.createElement(Dialog, _extends({
|
107
105
|
open: open,
|
108
106
|
onClose: this.handleOnClose,
|
@@ -124,28 +122,29 @@ class HiAlertModal extends React.PureComponent {
|
|
124
122
|
classes: {
|
125
123
|
root: classes.classContent
|
126
124
|
}
|
127
|
-
},
|
125
|
+
}, dialogContent)), React.createElement(DialogActions, {
|
128
126
|
classes: {
|
129
127
|
root: classes.classAction
|
130
128
|
}
|
131
|
-
},
|
132
|
-
classes: {
|
133
|
-
root: classes.classSubmitButton
|
134
|
-
},
|
135
|
-
onClick: this.handleClickSubmit,
|
136
|
-
color: submitColor
|
137
|
-
}, labelSubmitButton), labelCancelButton && React.createElement(HiButton, {
|
129
|
+
}, labelCancelButton && React.createElement(HiButton, {
|
138
130
|
classes: {
|
139
131
|
root: classes.classCancelButton
|
140
132
|
},
|
141
|
-
onClick:
|
133
|
+
onClick: onCancelClick,
|
142
134
|
color: cancelColor
|
143
|
-
}, labelCancelButton)
|
135
|
+
}, labelCancelButton), labelSubmitButton && React.createElement(HiButton, {
|
136
|
+
classes: {
|
137
|
+
root: classes.classSubmitButton
|
138
|
+
},
|
139
|
+
onClick: onSubmitClick,
|
140
|
+
color: submitColor
|
141
|
+
}, labelSubmitButton)));
|
144
142
|
}
|
145
143
|
|
146
144
|
}
|
147
145
|
|
148
146
|
HiAlertModal.defaultProps = {
|
147
|
+
content: '',
|
149
148
|
cancelColor: 'neutral',
|
150
149
|
submitColor: 'primary'
|
151
150
|
};
|
@@ -28,16 +28,17 @@ class HiBreadcrumb extends React.PureComponent {
|
|
28
28
|
}, React.createElement("div", null, steps.map((step, index) => {
|
29
29
|
const validConnector = step.status === 'validated' && index < steps.length - 1 && (steps[index + 1].status === 'validated' || steps[index + 1].status === 'active');
|
30
30
|
return React.createElement(HiStep, {
|
31
|
-
index:
|
31
|
+
index: step.id,
|
32
32
|
content: step.content,
|
33
33
|
key: step.id,
|
34
|
-
onClick: this.handleStep(
|
34
|
+
onClick: this.handleStep(step.id),
|
35
35
|
isLast: index === steps.length - 1,
|
36
36
|
validConnector: validConnector,
|
37
37
|
type: type,
|
38
|
-
steps: steps
|
38
|
+
steps: steps,
|
39
|
+
active: activeStep === step.id
|
39
40
|
}, React.createElement(HiStepLabel, {
|
40
|
-
active: activeStep ===
|
41
|
+
active: activeStep === step.id,
|
41
42
|
status: step.status,
|
42
43
|
notificationNumber: step.notificationNumber,
|
43
44
|
type: type,
|
@@ -7,33 +7,54 @@ import PropTypes from 'prop-types';
|
|
7
7
|
import ExpansionPanel from '@material-ui/core/ExpansionPanel';
|
8
8
|
import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';
|
9
9
|
import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';
|
10
|
-
import
|
10
|
+
import HiIcon from './../HiIcon';
|
11
11
|
import withStyles from '../styles/withStyles';
|
12
|
+
import classNames from 'classnames';
|
12
13
|
export const styles = theme => ({
|
13
14
|
summaryContent: {
|
14
15
|
display: 'inline-block',
|
15
|
-
border: 'none'
|
16
|
+
border: 'none',
|
17
|
+
'&$expanded': {
|
18
|
+
margin: 'initial'
|
19
|
+
}
|
16
20
|
},
|
17
21
|
summaryRoot: {
|
18
22
|
borderBottom: '1px solid #E3E6E7',
|
19
23
|
height: 48,
|
20
|
-
minHeight: 48
|
24
|
+
minHeight: 48,
|
25
|
+
padding: '0 0 0 8px',
|
26
|
+
'&$expanded': {
|
27
|
+
minHeight: 48
|
28
|
+
}
|
29
|
+
},
|
30
|
+
expanded: {},
|
31
|
+
collapseDisable: {
|
32
|
+
cursor: 'default',
|
33
|
+
pointerEvents: 'none'
|
21
34
|
},
|
22
35
|
heading: _objectSpread({}, theme.typography.b1, {
|
36
|
+
height: 48,
|
37
|
+
display: 'flex',
|
38
|
+
alignItems: 'center',
|
23
39
|
fontSize: 20,
|
24
40
|
lineHeight: '24px',
|
25
41
|
fontWeight: theme.typography.fontWeightLight
|
26
42
|
}),
|
27
43
|
secondaryHeading: _objectSpread({}, theme.typography.b3, {
|
28
44
|
color: theme.palette.neutral.light,
|
45
|
+
height: 48,
|
46
|
+
display: 'flex',
|
47
|
+
alignItems: 'center',
|
29
48
|
fontSize: 11,
|
30
49
|
lineHeight: '24px',
|
31
50
|
float: 'right',
|
32
|
-
marginRight:
|
51
|
+
marginRight: 32,
|
33
52
|
'&>svg': {
|
34
53
|
fontSize: 18,
|
35
|
-
marginLeft: 3
|
36
|
-
|
54
|
+
marginLeft: 3
|
55
|
+
},
|
56
|
+
"&>button": {
|
57
|
+
marginRight: -12
|
37
58
|
}
|
38
59
|
}),
|
39
60
|
panel: {
|
@@ -41,15 +62,23 @@ export const styles = theme => ({
|
|
41
62
|
border: 'none'
|
42
63
|
},
|
43
64
|
panelDetails: {
|
44
|
-
padding:
|
65
|
+
padding: 0
|
45
66
|
},
|
46
67
|
disabledPanel: {
|
47
68
|
backgroundColor: '#ffffff',
|
48
69
|
opacity: 1
|
70
|
+
},
|
71
|
+
expandIcon: {
|
72
|
+
width: 24,
|
73
|
+
height: 24,
|
74
|
+
right: 0
|
49
75
|
}
|
50
76
|
});
|
51
77
|
|
52
|
-
var _ref = React.createElement(
|
78
|
+
var _ref = React.createElement(HiIcon, {
|
79
|
+
icon: "mdi_menu_up",
|
80
|
+
size: 24
|
81
|
+
});
|
53
82
|
|
54
83
|
class HiExpansionPanel extends React.PureComponent {
|
55
84
|
render() {
|
@@ -60,10 +89,12 @@ class HiExpansionPanel extends React.PureComponent {
|
|
60
89
|
secondaryHeading,
|
61
90
|
secondaryHeadingDisabled,
|
62
91
|
secondaryHeadingIcon,
|
92
|
+
collapseDisable,
|
63
93
|
children,
|
64
|
-
classes
|
94
|
+
classes,
|
95
|
+
expanded
|
65
96
|
} = _this$props,
|
66
|
-
props = _objectWithoutProperties(_this$props, ["disabled", "heading", "secondaryHeading", "secondaryHeadingDisabled", "secondaryHeadingIcon", "children", "classes"]);
|
97
|
+
props = _objectWithoutProperties(_this$props, ["disabled", "heading", "secondaryHeading", "secondaryHeadingDisabled", "secondaryHeadingIcon", "collapseDisable", "children", "classes", "expanded"]);
|
67
98
|
|
68
99
|
const effectiveDisabled = disabled || !children;
|
69
100
|
return React.createElement(ExpansionPanel, _extends({
|
@@ -71,13 +102,19 @@ class HiExpansionPanel extends React.PureComponent {
|
|
71
102
|
classes: {
|
72
103
|
root: classes.panel,
|
73
104
|
disabled: classes.disabledPanel
|
74
|
-
}
|
105
|
+
},
|
106
|
+
expanded: collapseDisable || expanded
|
75
107
|
}, props), React.createElement(ExpansionPanelSummary, {
|
76
108
|
classes: {
|
77
109
|
root: classes.summaryRoot,
|
78
|
-
content: classes.summaryContent
|
110
|
+
content: classes.summaryContent,
|
111
|
+
expanded: classes.expanded,
|
112
|
+
expandIcon: classes.expandIcon
|
79
113
|
},
|
80
|
-
|
114
|
+
className: classNames({
|
115
|
+
[classes.collapseDisable]: collapseDisable
|
116
|
+
}),
|
117
|
+
expandIcon: !collapseDisable && _ref
|
81
118
|
}, React.createElement("div", {
|
82
119
|
className: classes.secondaryHeading
|
83
120
|
}, !effectiveDisabled ? secondaryHeading : secondaryHeadingDisabled, secondaryHeadingIcon), React.createElement("div", {
|
@@ -129,7 +166,12 @@ HiExpansionPanel.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
129
166
|
/**
|
130
167
|
* Icone dans le titre secondaire du panel
|
131
168
|
*/
|
132
|
-
secondaryHeadingIcon: PropTypes.any
|
169
|
+
secondaryHeadingIcon: PropTypes.any,
|
170
|
+
|
171
|
+
/**
|
172
|
+
* Désactive l'action d'ouverture et de fermeture du composant
|
173
|
+
*/
|
174
|
+
collapseDisable: PropTypes.bool
|
133
175
|
} : {};
|
134
176
|
export default withStyles(styles, {
|
135
177
|
hiComponent: true,
|
package/es/HiForm/HiInput.js
CHANGED
@@ -292,7 +292,8 @@ class HiInput extends React.PureComponent {
|
|
292
292
|
inputClassName,
|
293
293
|
onReset,
|
294
294
|
spellcheck,
|
295
|
-
startAdornmentColor
|
295
|
+
startAdornmentColor,
|
296
|
+
inputProps
|
296
297
|
} = this.props;
|
297
298
|
const {
|
298
299
|
focused
|
@@ -385,13 +386,13 @@ class HiInput extends React.PureComponent {
|
|
385
386
|
this.endAdornmentNode = el;
|
386
387
|
}
|
387
388
|
}, eraseIcon, endAdornment),
|
388
|
-
inputProps: {
|
389
|
+
inputProps: _objectSpread({
|
389
390
|
spellCheck: spellcheck ? "true" : "false",
|
390
391
|
className: classNames(inputClassName, classes.inputPropsClassName, {
|
391
392
|
[classes.inputText]: !multiline,
|
392
393
|
[classes.inputTextArea]: multiline
|
393
394
|
})
|
394
|
-
}
|
395
|
+
}, inputProps)
|
395
396
|
}));
|
396
397
|
}
|
397
398
|
|
@@ -465,6 +466,11 @@ HiInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
465
466
|
*/
|
466
467
|
inputId: PropTypes.string,
|
467
468
|
|
469
|
+
/**
|
470
|
+
* Passe des props directement à l'input
|
471
|
+
*/
|
472
|
+
inputProps: PropTypes.object,
|
473
|
+
|
468
474
|
/**
|
469
475
|
* Passe une ref callback au composant input
|
470
476
|
*/
|
package/es/HiForm/HiUpload.js
CHANGED
@@ -361,9 +361,9 @@ HiUpload.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
361
361
|
helperText: PropTypes.string,
|
362
362
|
|
363
363
|
/**
|
364
|
-
*
|
364
|
+
* Identifiant unique
|
365
365
|
*/
|
366
|
-
id: PropTypes.string
|
366
|
+
id: PropTypes.string,
|
367
367
|
|
368
368
|
/**
|
369
369
|
* Array containing each of the inputs the component has to show (represented by an object).
|
package/es/HiSelect/HiSelect.js
CHANGED
@@ -210,9 +210,11 @@ class HiSelect extends React.PureComponent {
|
|
210
210
|
// Sinon focus sur l'élément sélectionné
|
211
211
|
this.focusOnSelectedItem(this.props.value);
|
212
212
|
} else {
|
213
|
-
|
214
|
-
|
215
|
-
|
213
|
+
if (this.searchField) {
|
214
|
+
setTimeout(() => {
|
215
|
+
this.searchField.focus();
|
216
|
+
}, 1);
|
217
|
+
}
|
216
218
|
}
|
217
219
|
}
|
218
220
|
};
|
@@ -289,7 +291,7 @@ class HiSelect extends React.PureComponent {
|
|
289
291
|
this.handleClose();
|
290
292
|
}
|
291
293
|
}
|
292
|
-
} else if (key === 'space') {
|
294
|
+
} else if (key === 'space' && event.target !== this.searchField) {
|
293
295
|
event.preventDefault();
|
294
296
|
|
295
297
|
if (this.state.open) {
|
@@ -430,6 +432,12 @@ class HiSelect extends React.PureComponent {
|
|
430
432
|
this.getInputElement = this.getInputElement.bind(this);
|
431
433
|
}
|
432
434
|
|
435
|
+
componentDidMount() {
|
436
|
+
if (this.props.autoFocus) {
|
437
|
+
this.inputEl.focus();
|
438
|
+
}
|
439
|
+
}
|
440
|
+
|
433
441
|
static getDerivedStateFromProps(nextProps, prevState) {
|
434
442
|
if (nextProps.options !== prevState.suggestions) {
|
435
443
|
return _objectSpread({}, prevState, {
|
@@ -449,10 +457,18 @@ class HiSelect extends React.PureComponent {
|
|
449
457
|
*/
|
450
458
|
|
451
459
|
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
460
|
+
getLengthItemList(itemList) {
|
461
|
+
let itemListLength = 0;
|
462
|
+
itemList.forEach(parent => {
|
463
|
+
if (parent.displayed && itemListLength < 10) {
|
464
|
+
itemListLength += 1;
|
465
|
+
|
466
|
+
if (parent.children && itemListLength < 10) {
|
467
|
+
itemListLength += this.getLengthItemList(parent.children);
|
468
|
+
}
|
469
|
+
}
|
470
|
+
});
|
471
|
+
return itemListLength;
|
456
472
|
}
|
457
473
|
|
458
474
|
render() {
|
@@ -542,8 +558,10 @@ class HiSelect extends React.PureComponent {
|
|
542
558
|
|
543
559
|
|
544
560
|
if (this.placement && this.placement.indexOf('top') >= 0 && !!searchable) {
|
545
|
-
//
|
546
|
-
const
|
561
|
+
// In case we have a nested list
|
562
|
+
const itemListLength = this.getLengthItemList(itemList); // +1 for search input
|
563
|
+
|
564
|
+
const nbItems = itemListLength <= 10 ? itemListLength + 1 : 11;
|
547
565
|
popperStyle.transform = `translate3d(-1px, -${nbItems * 40 + 2}px, 0px)`;
|
548
566
|
} else if (this.placement && this.placement.indexOf('top') < 0 && !!searchable) {
|
549
567
|
popperStyle.transform = 'translate3d(-1px, 40px, 0px)';
|
@@ -7,6 +7,7 @@ import withStyles from '../styles/withStyles';
|
|
7
7
|
import HiSelectableListItem from './HiSelectableListItem';
|
8
8
|
import { getNextItemSelectable, foldAccents } from '../utils/helpers';
|
9
9
|
import keycode from 'keycode';
|
10
|
+
import LazyLoad, { forceCheck } from 'react-lazyload';
|
10
11
|
export const styles = () => ({
|
11
12
|
root: {
|
12
13
|
padding: 0
|
@@ -52,18 +53,35 @@ class HiSelectableList extends React.PureComponent {
|
|
52
53
|
hideCheckbox,
|
53
54
|
hoverIcon,
|
54
55
|
icon,
|
56
|
+
lazy,
|
55
57
|
selectedItemIdList,
|
56
58
|
sort,
|
57
59
|
onKeyDown,
|
58
60
|
onKeyUp
|
59
61
|
} = _this$props,
|
60
|
-
others = _objectWithoutProperties(_this$props, ["checkedIcon", "disabled", "disabledItemIdList", "hideCheckbox", "hoverIcon", "icon", "selectedItemIdList", "sort", "onKeyDown", "onKeyUp"]);
|
62
|
+
others = _objectWithoutProperties(_this$props, ["checkedIcon", "disabled", "disabledItemIdList", "hideCheckbox", "hoverIcon", "icon", "lazy", "selectedItemIdList", "sort", "onKeyDown", "onKeyUp"]);
|
61
63
|
|
62
64
|
if (sort && item.children) {
|
63
65
|
item.children.sort(this.compareItem);
|
64
66
|
}
|
65
67
|
|
66
|
-
|
68
|
+
const placeholderContent = React.createElement("div", {
|
69
|
+
style: {
|
70
|
+
width: '90%',
|
71
|
+
padding: '8px 6px',
|
72
|
+
height: 40,
|
73
|
+
position: 'sticky',
|
74
|
+
left: 0
|
75
|
+
}
|
76
|
+
}, React.createElement("div", {
|
77
|
+
style: {
|
78
|
+
backgroundColor: '#F5F5F5',
|
79
|
+
width: '100%',
|
80
|
+
height: '100%',
|
81
|
+
borderRadius: 4
|
82
|
+
}
|
83
|
+
}));
|
84
|
+
const itemComponent = React.createElement(React.Fragment, {
|
67
85
|
key: item.id
|
68
86
|
}, React.createElement(HiSelectableListItem, _extends({}, others, {
|
69
87
|
checkedIcon: checkedIcon,
|
@@ -79,6 +97,19 @@ class HiSelectableList extends React.PureComponent {
|
|
79
97
|
,
|
80
98
|
item: item
|
81
99
|
}, item)), item.children && item.children.length > 0 && item.children.filter(subItem => !(subItem.displayed === false)).map(subItem => this.buildRecursiveListItem(subItem, level + 1)));
|
100
|
+
|
101
|
+
if (lazy) {
|
102
|
+
return React.createElement(LazyLoad, {
|
103
|
+
key: item.id,
|
104
|
+
height: 40,
|
105
|
+
offset: 400,
|
106
|
+
once: true,
|
107
|
+
overflow: true,
|
108
|
+
placeholder: placeholderContent
|
109
|
+
}, itemComponent);
|
110
|
+
}
|
111
|
+
|
112
|
+
return itemComponent;
|
82
113
|
};
|
83
114
|
|
84
115
|
this.compareItem = (a, b) => {
|
@@ -133,6 +164,12 @@ class HiSelectableList extends React.PureComponent {
|
|
133
164
|
}
|
134
165
|
}
|
135
166
|
|
167
|
+
componentDidUpdate(prevProps) {
|
168
|
+
if (this.props.lazy && prevProps.itemList !== this.props.itemList) {
|
169
|
+
forceCheck();
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
136
173
|
render() {
|
137
174
|
const {
|
138
175
|
classes,
|
@@ -161,6 +198,7 @@ HiSelectableList.defaultProps = {
|
|
161
198
|
disabled: false,
|
162
199
|
disabledItemIdList: [],
|
163
200
|
hideCheckbox: false,
|
201
|
+
lazy: true,
|
164
202
|
selectedItemIdList: [],
|
165
203
|
sort: false,
|
166
204
|
sortAppendList: ['_all']
|
@@ -216,6 +254,11 @@ HiSelectableList.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
216
254
|
*/
|
217
255
|
itemList: PropTypes.array.isRequired,
|
218
256
|
|
257
|
+
/**
|
258
|
+
* Active lazyloading on list items
|
259
|
+
*/
|
260
|
+
lazy: PropTypes.bool,
|
261
|
+
|
219
262
|
/**
|
220
263
|
* Fonction de callback à la sélection d'un item, renvoie l'item sélectionné
|
221
264
|
*
|
package/es/HiTable/HiTableRow.js
CHANGED
@@ -19,7 +19,7 @@ export const styles = theme => ({
|
|
19
19
|
backgroundColor: `${theme.palette.action.hover} !important`
|
20
20
|
}
|
21
21
|
},
|
22
|
-
|
22
|
+
clickableRow: {
|
23
23
|
cursor: 'pointer'
|
24
24
|
}
|
25
25
|
});
|
@@ -47,7 +47,7 @@ class HiTableRow extends React.PureComponent {
|
|
47
47
|
} = this.props;
|
48
48
|
return React.createElement(TableRow, {
|
49
49
|
className: classNames(classes.row, {
|
50
|
-
[classes.
|
50
|
+
[classes.clickableRow]: this.props.onClick
|
51
51
|
}),
|
52
52
|
hover: true,
|
53
53
|
onClick: event => this.handleClick(event, rowdata),
|
package/index.es.js
CHANGED
package/index.js
CHANGED
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "@hipay/hipay-material-ui",
|
3
3
|
"private": false,
|
4
4
|
"author": "HiPay PSYCHE Team",
|
5
|
-
"version": "2.0.0-beta.
|
5
|
+
"version": "2.0.0-beta.69",
|
6
6
|
"description": "React components that implement Google's Material Design.",
|
7
7
|
"keywords": [
|
8
8
|
"react",
|
@@ -58,6 +58,7 @@
|
|
58
58
|
"react-day-picker": "^7.2.4",
|
59
59
|
"react-event-listener": "^0.6.2",
|
60
60
|
"react-jss": "^8.1.0",
|
61
|
+
"react-lazyload": "^2.5.0",
|
61
62
|
"react-leaflet": "^2.1.0",
|
62
63
|
"react-pdf": "^3.0.5",
|
63
64
|
"react-spinners": "^0.4.5",
|
@@ -73,4 +74,4 @@
|
|
73
74
|
},
|
74
75
|
"main": "./index.js",
|
75
76
|
"module": "./index.es.js"
|
76
|
-
}
|
77
|
+
}
|