@hipay/hipay-material-ui 2.0.0-beta.40 → 2.0.0-beta.42
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/HiButton/HiButton.js +17 -16
- package/HiForm/HiInput.js +15 -0
- package/HiSelect/HiSelect.js +15 -2
- package/HiSelect/SelectInput.js +31 -5
- package/HiSelectNew/HiNestedSelectField.js +146 -0
- package/HiSelectNew/HiSelect.js +20 -7
- package/HiSelectNew/HiSelectInput.js +75 -12
- package/es/HiButton/HiButton.js +21 -19
- package/es/HiForm/HiInput.js +14 -0
- package/es/HiSelect/HiSelect.js +14 -2
- package/es/HiSelect/SelectInput.js +28 -4
- package/es/HiSelectNew/HiNestedSelectField.js +111 -0
- package/es/HiSelectNew/HiSelect.js +19 -7
- package/es/HiSelectNew/HiSelectInput.js +70 -11
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +2 -2
- package/umd/hipay-material-ui.development.js +79 -24
- package/umd/hipay-material-ui.production.min.js +2 -2
package/HiButton/HiButton.js
CHANGED
@@ -28,7 +28,15 @@ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
28
28
|
// @inheritedComponent Button
|
29
29
|
var styles = function styles(theme) {
|
30
30
|
return {
|
31
|
-
root: {
|
31
|
+
root: {
|
32
|
+
'&$disabled': {
|
33
|
+
color: theme.palette.neutral.contrastText,
|
34
|
+
backgroundColor: theme.palette.neutral.main
|
35
|
+
}
|
36
|
+
},
|
37
|
+
flatNeutral: {
|
38
|
+
color: theme.palette.neutral.main
|
39
|
+
},
|
32
40
|
flatPositive: {
|
33
41
|
color: theme.palette.positive.main,
|
34
42
|
'&:hover': {
|
@@ -59,16 +67,6 @@ var styles = function styles(theme) {
|
|
59
67
|
}
|
60
68
|
}
|
61
69
|
},
|
62
|
-
flatNeutral: {
|
63
|
-
color: theme.palette.neutral.main,
|
64
|
-
'&:hover': {
|
65
|
-
backgroundColor: (0, _colorManipulator.fade)(theme.palette.neutral.main, theme.palette.action.hoverOpacity),
|
66
|
-
// Reset on touch devices, it doesn't add specificity
|
67
|
-
'@media (hover: none)': {
|
68
|
-
backgroundColor: 'transparent'
|
69
|
-
}
|
70
|
-
}
|
71
|
-
},
|
72
70
|
|
73
71
|
/* Styles applied to the root element if `variant="[contained | fab]"` and `color="positive"`. */
|
74
72
|
containedPositive: {
|
@@ -152,7 +150,8 @@ var styles = function styles(theme) {
|
|
152
150
|
'&:hover': {
|
153
151
|
border: "1px solid ".concat(theme.palette.neutral.main)
|
154
152
|
}
|
155
|
-
}
|
153
|
+
},
|
154
|
+
disabled: {}
|
156
155
|
};
|
157
156
|
};
|
158
157
|
|
@@ -166,18 +165,20 @@ function HiButton(props) {
|
|
166
165
|
className = props.className,
|
167
166
|
color = props.color,
|
168
167
|
variant = props.variant,
|
169
|
-
|
168
|
+
disabled = props.disabled,
|
169
|
+
other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "color", "variant", "disabled"]);
|
170
170
|
var hcolor = ['positive', 'negative', 'middle', 'neutral'].includes(color) ? 'inherit' : color;
|
171
171
|
var fab = variant === 'fab' || variant === 'extendedFab';
|
172
172
|
var contained = variant === 'contained' || variant === 'raised';
|
173
|
-
var buttonClassNames = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.flatPositive, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.flatNegative, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.flatMiddle, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.flatNeutral, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'neutral'), (0, _defineProperty2.default)(_classNames, classes.containedPositive, (contained || fab) && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.containedNegative, (contained || fab) && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.containedMiddle, (contained || fab) && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.containedNeutral, (contained || fab) && color === 'neutral'), (0, _defineProperty2.default)(_classNames, classes.outlinedPositive, variant === 'outlined' && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.outlinedNegative, variant === 'outlined' && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.outlinedMiddle, variant === 'outlined' && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.outlinedNeutral, variant === 'outlined' && color === 'neutral'), _classNames));
|
173
|
+
var buttonClassNames = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.flatPositive, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.flatNegative, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.flatMiddle, (variant === 'text' || variant === 'flat' || variant === 'outlined') && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.flatNeutral, (variant === 'text' || variant === 'flat' || variant === 'outlined') && (color === 'default' || color === 'neutral')), (0, _defineProperty2.default)(_classNames, classes.containedPositive, (contained || fab) && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.containedNegative, (contained || fab) && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.containedMiddle, (contained || fab) && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.containedNeutral, (contained || fab) && (color === 'default' || color === 'neutral')), (0, _defineProperty2.default)(_classNames, classes.outlinedPositive, variant === 'outlined' && color === 'positive'), (0, _defineProperty2.default)(_classNames, classes.outlinedNegative, variant === 'outlined' && color === 'negative'), (0, _defineProperty2.default)(_classNames, classes.outlinedMiddle, variant === 'outlined' && color === 'middle'), (0, _defineProperty2.default)(_classNames, classes.outlinedNeutral, variant === 'outlined' && (color === 'default' || color === 'neutral')), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames));
|
174
174
|
return _react.default.createElement(_Button.default, (0, _extends2.default)({
|
175
175
|
className: className,
|
176
176
|
classes: {
|
177
177
|
root: buttonClassNames
|
178
178
|
},
|
179
179
|
color: hcolor,
|
180
|
-
variant: variant
|
180
|
+
variant: variant,
|
181
|
+
disabled: disabled
|
181
182
|
}, other), children);
|
182
183
|
}
|
183
184
|
|
@@ -203,7 +204,7 @@ HiButton.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
203
204
|
variant: _propTypes.default.oneOf(['text', 'flat', 'outlined', 'contained', 'raised', 'fab', 'extendedFab'])
|
204
205
|
} : {};
|
205
206
|
HiButton.defaultProps = {
|
206
|
-
color: '
|
207
|
+
color: 'neutral',
|
207
208
|
variant: 'text'
|
208
209
|
};
|
209
210
|
|
package/HiForm/HiInput.js
CHANGED
@@ -390,6 +390,15 @@ function (_React$PureComponent) {
|
|
390
390
|
}
|
391
391
|
}));
|
392
392
|
}
|
393
|
+
}], [{
|
394
|
+
key: "getDerivedStateFromProps",
|
395
|
+
value: function getDerivedStateFromProps(nextProps, prevState) {
|
396
|
+
if (typeof nextProps.focused !== 'undefined' && nextProps.focused !== prevState.focused) {
|
397
|
+
return {
|
398
|
+
focused: nextProps.focused
|
399
|
+
};
|
400
|
+
}
|
401
|
+
}
|
393
402
|
}]);
|
394
403
|
return HiInput;
|
395
404
|
}(_react.default.PureComponent);
|
@@ -445,6 +454,12 @@ HiInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
445
454
|
*/
|
446
455
|
error: _propTypes.default.bool,
|
447
456
|
|
457
|
+
/**
|
458
|
+
* Force le focus de l'input et surcharge le comportement par défaut
|
459
|
+
* où le focus est géré dans le state.
|
460
|
+
*/
|
461
|
+
focused: _propTypes.default.bool,
|
462
|
+
|
448
463
|
/**
|
449
464
|
* Utile pour surcharger les classes de l'input
|
450
465
|
*/
|
package/HiSelect/HiSelect.js
CHANGED
@@ -555,6 +555,14 @@ function (_React$PureComponent) {
|
|
555
555
|
});
|
556
556
|
}
|
557
557
|
}
|
558
|
+
}, {
|
559
|
+
key: "handleReset",
|
560
|
+
value: function handleReset(event) {
|
561
|
+
if (this.props.onReset) {
|
562
|
+
event.stopPropagation();
|
563
|
+
this.props.onReset(event);
|
564
|
+
}
|
565
|
+
}
|
558
566
|
}, {
|
559
567
|
key: "render",
|
560
568
|
value: function render() {
|
@@ -751,14 +759,14 @@ function (_React$PureComponent) {
|
|
751
759
|
onMouseLeave: this.props.onMouseLeave,
|
752
760
|
refElement: function refElement(el) {
|
753
761
|
_this2.selectInputElement = el;
|
754
|
-
}
|
762
|
+
},
|
763
|
+
onReset: this.props.onReset
|
755
764
|
}), open && staticPosition ? _react.default.createElement("div", {
|
756
765
|
style: popperStyle
|
757
766
|
}, content) : _react.default.createElement(_Popper.default, {
|
758
767
|
anchorEl: this.inputEl,
|
759
768
|
placement: "bottom-start",
|
760
769
|
open: open,
|
761
|
-
eventsEnabled: open,
|
762
770
|
className: popperClass,
|
763
771
|
style: popperStyle,
|
764
772
|
disablePortal: true
|
@@ -930,6 +938,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
930
938
|
*/
|
931
939
|
onMouseLeave: _propTypes.default.func,
|
932
940
|
|
941
|
+
/**
|
942
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
943
|
+
*/
|
944
|
+
onReset: _propTypes.default.func,
|
945
|
+
|
933
946
|
/**
|
934
947
|
* Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
|
935
948
|
* A utiliser pour les selects avec des données dynamiques
|
package/HiSelect/SelectInput.js
CHANGED
@@ -171,26 +171,37 @@ function (_React$PureComponent) {
|
|
171
171
|
}
|
172
172
|
};
|
173
173
|
|
174
|
+
_this.handleClick = function (event) {
|
175
|
+
if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
|
176
|
+
_this.props.onClick(event);
|
177
|
+
}
|
178
|
+
};
|
179
|
+
|
174
180
|
_this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
181
|
+
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
175
182
|
return _this;
|
176
183
|
}
|
177
184
|
|
178
185
|
(0, _createClass2.default)(SelectInput, [{
|
179
186
|
key: "render",
|
180
187
|
value: function render() {
|
181
|
-
var _classNames,
|
188
|
+
var _classNames,
|
189
|
+
_classNames2,
|
190
|
+
_this2 = this;
|
182
191
|
|
183
192
|
var _this$props = this.props,
|
184
193
|
classes = _this$props.classes,
|
185
194
|
noButton = _this$props.noButton,
|
186
195
|
disabled = _this$props.disabled,
|
187
196
|
onClick = _this$props.onClick,
|
197
|
+
onReset = _this$props.onReset,
|
188
198
|
value = _this$props.value,
|
189
199
|
open = _this$props.open,
|
190
200
|
focused = _this$props.focused,
|
191
201
|
error = _this$props.error,
|
192
202
|
id = _this$props.id,
|
193
|
-
refElement = _this$props.refElement
|
203
|
+
refElement = _this$props.refElement,
|
204
|
+
theme = _this$props.theme; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
|
194
205
|
|
195
206
|
var rootClass = (0, _classnames.default)(classes.root, classes.inkbar, classes.underline, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.focused, focused), (0, _defineProperty2.default)(_classNames, classes.error, error && !focused), _classNames));
|
196
207
|
var iconClass = (0, _classnames.default)(classes.icon, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.iconOpen, open), (0, _defineProperty2.default)(_classNames2, classes.iconClose, !open), _classNames2));
|
@@ -219,7 +230,7 @@ function (_React$PureComponent) {
|
|
219
230
|
classes: {
|
220
231
|
root: rootClass
|
221
232
|
},
|
222
|
-
onClick:
|
233
|
+
onClick: this.handleClick,
|
223
234
|
disabled: disabled,
|
224
235
|
onMouseEnter: this.props.onMouseEnter,
|
225
236
|
onMouseLeave: this.props.onMouseLeave,
|
@@ -231,7 +242,16 @@ function (_React$PureComponent) {
|
|
231
242
|
}
|
232
243
|
}, _react.default.createElement("span", {
|
233
244
|
className: classes.label
|
234
|
-
}, value), _react.default.createElement(
|
245
|
+
}, value), onReset && focused && _react.default.createElement("div", {
|
246
|
+
ref: function ref(el) {
|
247
|
+
_this2.resetIcon = el;
|
248
|
+
}
|
249
|
+
}, _react.default.createElement(_HiIcon.default, {
|
250
|
+
icon: "close",
|
251
|
+
size: 24,
|
252
|
+
color: theme.palette.neutral.main,
|
253
|
+
onClick: onReset
|
254
|
+
})), _react.default.createElement(_HiIcon.default, {
|
235
255
|
className: iconClass,
|
236
256
|
icon: "arrow_drop_down"
|
237
257
|
}));
|
@@ -305,6 +325,11 @@ SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
305
325
|
*/
|
306
326
|
onMouseLeave: _propTypes.default.func,
|
307
327
|
|
328
|
+
/**
|
329
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
330
|
+
*/
|
331
|
+
onReset: _propTypes.default.func,
|
332
|
+
|
308
333
|
/**
|
309
334
|
* Fonction de callback à la pression de la touche "Entrée"
|
310
335
|
*/
|
@@ -328,7 +353,8 @@ SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
328
353
|
|
329
354
|
var _default = (0, _styles.withStyles)(styles, {
|
330
355
|
hiComponent: true,
|
331
|
-
name: 'HmuiSelectInput'
|
356
|
+
name: 'HmuiSelectInput',
|
357
|
+
withTheme: true
|
332
358
|
})(SelectInput);
|
333
359
|
|
334
360
|
exports.default = _default;
|
@@ -0,0 +1,146 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.default = void 0;
|
9
|
+
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
+
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
13
|
+
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
15
|
+
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
17
|
+
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
19
|
+
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
21
|
+
|
22
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
23
|
+
|
24
|
+
var _react = _interopRequireDefault(require("react"));
|
25
|
+
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
27
|
+
|
28
|
+
var _HiFormControl = _interopRequireDefault(require("../HiForm/HiFormControl"));
|
29
|
+
|
30
|
+
var _HiNestedSelect = _interopRequireDefault(require("./HiNestedSelect"));
|
31
|
+
|
32
|
+
// @inheritedComponent HiDynamicSelect
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Champs input pour formulaire
|
36
|
+
*/
|
37
|
+
var HiNestedSelectField =
|
38
|
+
/*#__PURE__*/
|
39
|
+
function (_React$PureComponent) {
|
40
|
+
(0, _inherits2.default)(HiNestedSelectField, _React$PureComponent);
|
41
|
+
|
42
|
+
function HiNestedSelectField() {
|
43
|
+
(0, _classCallCheck2.default)(this, HiNestedSelectField);
|
44
|
+
return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HiNestedSelectField).apply(this, arguments));
|
45
|
+
}
|
46
|
+
|
47
|
+
(0, _createClass2.default)(HiNestedSelectField, [{
|
48
|
+
key: "render",
|
49
|
+
value: function render() {
|
50
|
+
var _this$props = this.props,
|
51
|
+
label = _this$props.label,
|
52
|
+
required = _this$props.required,
|
53
|
+
disabled = _this$props.disabled,
|
54
|
+
error = _this$props.error,
|
55
|
+
errorText = _this$props.errorText,
|
56
|
+
helperText = _this$props.helperText,
|
57
|
+
helperIcon = _this$props.helperIcon,
|
58
|
+
id = _this$props.id,
|
59
|
+
name = _this$props.name,
|
60
|
+
value = _this$props.value,
|
61
|
+
options = _this$props.options,
|
62
|
+
type = _this$props.type,
|
63
|
+
multiple = _this$props.multiple,
|
64
|
+
iconAll = _this$props.iconAll,
|
65
|
+
checkbox = _this$props.checkbox,
|
66
|
+
searchable = _this$props.searchable,
|
67
|
+
translations = _this$props.translations,
|
68
|
+
className = _this$props.className,
|
69
|
+
others = (0, _objectWithoutProperties2.default)(_this$props, ["label", "required", "disabled", "error", "errorText", "helperText", "helperIcon", "id", "name", "value", "options", "type", "multiple", "iconAll", "checkbox", "searchable", "translations", "className"]);
|
70
|
+
return _react.default.createElement(_HiFormControl.default, {
|
71
|
+
id: id,
|
72
|
+
label: label,
|
73
|
+
required: required,
|
74
|
+
disabled: disabled,
|
75
|
+
error: error,
|
76
|
+
errorText: errorText,
|
77
|
+
helperText: helperText,
|
78
|
+
helperIcon: helperIcon,
|
79
|
+
className: className
|
80
|
+
}, _react.default.createElement(_HiNestedSelect.default, (0, _extends2.default)({
|
81
|
+
id: id,
|
82
|
+
name: name,
|
83
|
+
value: value,
|
84
|
+
options: options,
|
85
|
+
type: type,
|
86
|
+
multiple: multiple,
|
87
|
+
iconAll: iconAll,
|
88
|
+
checkbox: checkbox,
|
89
|
+
searchable: searchable,
|
90
|
+
translations: translations,
|
91
|
+
disabled: disabled,
|
92
|
+
error: error
|
93
|
+
}, others)));
|
94
|
+
}
|
95
|
+
}]);
|
96
|
+
return HiNestedSelectField;
|
97
|
+
}(_react.default.PureComponent);
|
98
|
+
|
99
|
+
HiNestedSelectField.propTypes = process.env.NODE_ENV !== "production" ? {
|
100
|
+
/**
|
101
|
+
* Surcharge des styles
|
102
|
+
*/
|
103
|
+
className: _propTypes.default.string,
|
104
|
+
|
105
|
+
/**
|
106
|
+
* Si `true`, l'input sera inactif.
|
107
|
+
*/
|
108
|
+
disabled: _propTypes.default.bool,
|
109
|
+
|
110
|
+
/**
|
111
|
+
* Si `true`, le champs sera en erreur.
|
112
|
+
*/
|
113
|
+
error: _propTypes.default.bool,
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Texte de l'erreur
|
117
|
+
*/
|
118
|
+
errorText: _propTypes.default.string,
|
119
|
+
|
120
|
+
/**
|
121
|
+
* Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
|
122
|
+
*/
|
123
|
+
helperIcon: _propTypes.default.bool,
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Texte de l'aide
|
127
|
+
*/
|
128
|
+
helperText: _propTypes.default.string,
|
129
|
+
|
130
|
+
/**
|
131
|
+
* id de l'élément input
|
132
|
+
*/
|
133
|
+
id: _propTypes.default.string.isRequired,
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Label du champs
|
137
|
+
*/
|
138
|
+
label: _propTypes.default.string,
|
139
|
+
|
140
|
+
/**
|
141
|
+
* true si champs obligatoire
|
142
|
+
*/
|
143
|
+
required: _propTypes.default.bool
|
144
|
+
} : {};
|
145
|
+
var _default = HiNestedSelectField;
|
146
|
+
exports.default = _default;
|
package/HiSelectNew/HiSelect.js
CHANGED
@@ -59,11 +59,11 @@ var styles = function styles(theme) {
|
|
59
59
|
backgroundColor: theme.palette.background2,
|
60
60
|
maxWidth: 500,
|
61
61
|
width: '100%',
|
62
|
-
position: 'relative'
|
62
|
+
position: 'relative',
|
63
|
+
zIndex: 1
|
63
64
|
},
|
64
65
|
popper: {
|
65
|
-
width: '100%'
|
66
|
-
zIndex: 1200
|
66
|
+
width: '100%'
|
67
67
|
},
|
68
68
|
paper: {
|
69
69
|
borderRadius: '0px 2px',
|
@@ -407,10 +407,20 @@ function (_React$PureComponent) {
|
|
407
407
|
_this.handleSearchReset = _this.handleSearchReset.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
408
408
|
_this.handleSelect = _this.handleSelect.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
409
409
|
_this.handleSuggestions = _this.handleSuggestions.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
410
|
+
_this.getInputElement = _this.getInputElement.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
410
411
|
return _this;
|
411
412
|
}
|
412
413
|
|
413
414
|
(0, _createClass2.default)(HiSelect, [{
|
415
|
+
key: "getInputElement",
|
416
|
+
value: function getInputElement(el) {
|
417
|
+
this.searchField = el;
|
418
|
+
|
419
|
+
if (this.props.inputRef) {
|
420
|
+
this.props.inputRef(this.searchField);
|
421
|
+
}
|
422
|
+
}
|
423
|
+
}, {
|
414
424
|
key: "render",
|
415
425
|
value: function render() {
|
416
426
|
var _this2 = this;
|
@@ -473,9 +483,7 @@ function (_React$PureComponent) {
|
|
473
483
|
}, !!searchable && _react.default.createElement(_HiInput.default, {
|
474
484
|
value: searchValue,
|
475
485
|
autoFocus: true,
|
476
|
-
inputRef:
|
477
|
-
_this2.searchField = el;
|
478
|
-
},
|
486
|
+
inputRef: this.getInputElement,
|
479
487
|
onKeyDown: this.handleKeyDownSearch,
|
480
488
|
onChange: this.handleSearch,
|
481
489
|
onReset: this.handleSearchReset,
|
@@ -520,6 +528,7 @@ function (_React$PureComponent) {
|
|
520
528
|
onSubmit: onSubmit,
|
521
529
|
onMouseEnter: this.props.onMouseEnter,
|
522
530
|
onMouseLeave: this.props.onMouseLeave,
|
531
|
+
onReset: this.props.onReset,
|
523
532
|
placeholder: placeholder
|
524
533
|
}, hiSelectInputProps, {
|
525
534
|
refElement: function refElement(el) {
|
@@ -531,7 +540,6 @@ function (_React$PureComponent) {
|
|
531
540
|
anchorEl: this.inputEl,
|
532
541
|
placement: "bottom-start",
|
533
542
|
open: open,
|
534
|
-
eventsEnabled: open,
|
535
543
|
className: classes.popper,
|
536
544
|
disablePortal: true
|
537
545
|
}, content));
|
@@ -662,6 +670,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
662
670
|
*/
|
663
671
|
onMouseLeave: _propTypes.default.func,
|
664
672
|
|
673
|
+
/**
|
674
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
675
|
+
*/
|
676
|
+
onReset: _propTypes.default.func,
|
677
|
+
|
665
678
|
/**
|
666
679
|
* Fonction de callback appelée lorsque le scroll atteint le bas de la liste
|
667
680
|
*/
|
@@ -35,6 +35,8 @@ var _ButtonBase = _interopRequireDefault(require("@material-ui/core/ButtonBase")
|
|
35
35
|
|
36
36
|
var _Icon = _interopRequireDefault(require("@material-ui/core/Icon"));
|
37
37
|
|
38
|
+
var _HiIcon = _interopRequireDefault(require("../HiIcon"));
|
39
|
+
|
38
40
|
var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
|
39
41
|
|
40
42
|
var _keycode = _interopRequireDefault(require("keycode"));
|
@@ -179,27 +181,76 @@ function (_React$PureComponent) {
|
|
179
181
|
}
|
180
182
|
};
|
181
183
|
|
184
|
+
_this.handleKeyDownReset = function (event) {
|
185
|
+
var key = (0, _keycode.default)(event);
|
186
|
+
|
187
|
+
if (key === 'enter' || key === 'space') {
|
188
|
+
_this.handleReset(event);
|
189
|
+
|
190
|
+
event.stopPropagation();
|
191
|
+
event.preventDefault();
|
192
|
+
}
|
193
|
+
};
|
194
|
+
|
195
|
+
_this.handleClick = function (event) {
|
196
|
+
if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
|
197
|
+
_this.props.onClick(event);
|
198
|
+
}
|
199
|
+
};
|
200
|
+
|
201
|
+
_this.handleReset = function (event) {
|
202
|
+
_this.props.onReset(event);
|
203
|
+
|
204
|
+
if (_this.input) {
|
205
|
+
_this.input.focus();
|
206
|
+
}
|
207
|
+
};
|
208
|
+
|
209
|
+
_this.handleBlur = function (event) {
|
210
|
+
if ((!_this.input || !_this.input.contains(event.relatedTarget)) && _this.props.onBlur) {
|
211
|
+
_this.props.onBlur(event);
|
212
|
+
} else {
|
213
|
+
if (_this.input && (!_this.resetIcon || !_this.resetIcon.contains(event.relatedTarget))) {
|
214
|
+
_this.input.focus();
|
215
|
+
}
|
216
|
+
}
|
217
|
+
};
|
218
|
+
|
219
|
+
_this.handleRef = function (el) {
|
220
|
+
_this.input = el;
|
221
|
+
|
222
|
+
if (_this.props.refElement) {
|
223
|
+
_this.props.refElement(el);
|
224
|
+
}
|
225
|
+
};
|
226
|
+
|
182
227
|
_this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
228
|
+
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
229
|
+
_this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
230
|
+
_this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
231
|
+
_this.handleReset = _this.handleReset.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
183
232
|
return _this;
|
184
233
|
}
|
185
234
|
|
186
235
|
(0, _createClass2.default)(HiSelectInput, [{
|
187
236
|
key: "render",
|
188
237
|
value: function render() {
|
189
|
-
var _classNames,
|
238
|
+
var _classNames,
|
239
|
+
_classNames2,
|
240
|
+
_this2 = this;
|
190
241
|
|
191
242
|
var _this$props = this.props,
|
192
243
|
classes = _this$props.classes,
|
193
244
|
noButton = _this$props.noButton,
|
194
245
|
disabled = _this$props.disabled,
|
195
246
|
onClick = _this$props.onClick,
|
247
|
+
onReset = _this$props.onReset,
|
196
248
|
value = _this$props.value,
|
197
249
|
open = _this$props.open,
|
198
250
|
focused = _this$props.focused,
|
199
251
|
error = _this$props.error,
|
200
252
|
id = _this$props.id,
|
201
|
-
placeholder = _this$props.placeholder
|
202
|
-
refElement = _this$props.refElement; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
|
253
|
+
placeholder = _this$props.placeholder; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
|
203
254
|
|
204
255
|
var rootClass = (0, _classnames.default)(classes.root, classes.inkbar, classes.underline, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.focused, focused), (0, _defineProperty2.default)(_classNames, classes.error, error && !focused), _classNames));
|
205
256
|
var iconClass = (0, _classnames.default)(classes.icon, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.iconOpen, open), (0, _defineProperty2.default)(_classNames2, classes.iconClose, !open), _classNames2));
|
@@ -214,9 +265,7 @@ function (_React$PureComponent) {
|
|
214
265
|
onBlur: this.props.onBlur,
|
215
266
|
role: "button",
|
216
267
|
tabIndex: "0",
|
217
|
-
ref:
|
218
|
-
if (refElement) refElement(el);
|
219
|
-
}
|
268
|
+
ref: this.handleRef
|
220
269
|
}, _react.default.createElement("span", {
|
221
270
|
className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.placeholder, value === undefined))
|
222
271
|
}, value || placeholder), _react.default.createElement(_ArrowDropDown.default, {
|
@@ -224,19 +273,28 @@ function (_React$PureComponent) {
|
|
224
273
|
})) : _react.default.createElement(_ButtonBase.default, {
|
225
274
|
id: id,
|
226
275
|
className: rootClass,
|
227
|
-
onClick:
|
276
|
+
onClick: this.handleClick,
|
228
277
|
disabled: disabled,
|
229
278
|
onMouseEnter: this.props.onMouseEnter,
|
230
279
|
onMouseLeave: this.props.onMouseLeave,
|
231
280
|
onKeyDown: this.handleKeyDown,
|
232
281
|
onFocus: this.props.onFocus,
|
233
|
-
onBlur: this.
|
234
|
-
buttonRef:
|
235
|
-
if (refElement) refElement(el);
|
236
|
-
}
|
282
|
+
onBlur: this.handleBlur,
|
283
|
+
buttonRef: this.handleRef
|
237
284
|
}, _react.default.createElement("span", {
|
238
285
|
className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.placeholder, value === undefined))
|
239
|
-
}, value || placeholder), _react.default.createElement(
|
286
|
+
}, value || placeholder), onReset && focused && _react.default.createElement("div", {
|
287
|
+
ref: function ref(el) {
|
288
|
+
_this2.resetIcon = el;
|
289
|
+
}
|
290
|
+
}, _react.default.createElement(_HiIcon.default, {
|
291
|
+
icon: "close",
|
292
|
+
size: 20,
|
293
|
+
color: "neutral",
|
294
|
+
onClick: this.handleReset,
|
295
|
+
onKeyDown: this.handleKeyDownReset,
|
296
|
+
tabIndex: 0
|
297
|
+
})), _react.default.createElement(_Icon.default, {
|
240
298
|
classes: {
|
241
299
|
root: iconClass
|
242
300
|
}
|
@@ -315,6 +373,11 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
315
373
|
*/
|
316
374
|
onMouseLeave: _propTypes.default.func,
|
317
375
|
|
376
|
+
/**
|
377
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
378
|
+
*/
|
379
|
+
onReset: _propTypes.default.func,
|
380
|
+
|
318
381
|
/**
|
319
382
|
* Fonction de callback à la pression de la touche "Entrée"
|
320
383
|
*/
|