@hipay/hipay-material-ui 2.0.0-beta.66 → 2.0.0-beta.69
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.
- 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
|
+
}
|