@hipay/hipay-material-ui 2.0.0-beta.40 → 2.0.0-beta.41
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/HiSelect/HiSelect.js +15 -2
- package/HiSelect/SelectInput.js +31 -5
- package/HiSelectNew/HiNestedSelectField.js +146 -0
- package/HiSelectNew/HiSelect.js +17 -4
- package/HiSelectNew/HiSelectInput.js +33 -5
- 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 +16 -4
- package/es/HiSelectNew/HiSelectInput.js +29 -4
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +2 -2
- package/umd/hipay-material-ui.development.js +47 -8
- package/umd/hipay-material-ui.production.min.js +2 -2
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
@@ -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,38 @@ function (_React$PureComponent) {
|
|
179
181
|
}
|
180
182
|
};
|
181
183
|
|
184
|
+
_this.handleClick = function (event) {
|
185
|
+
if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
|
186
|
+
_this.props.onClick(event);
|
187
|
+
}
|
188
|
+
};
|
189
|
+
|
182
190
|
_this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
191
|
+
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
183
192
|
return _this;
|
184
193
|
}
|
185
194
|
|
186
195
|
(0, _createClass2.default)(HiSelectInput, [{
|
187
196
|
key: "render",
|
188
197
|
value: function render() {
|
189
|
-
var _classNames,
|
198
|
+
var _classNames,
|
199
|
+
_classNames2,
|
200
|
+
_this2 = this;
|
190
201
|
|
191
202
|
var _this$props = this.props,
|
192
203
|
classes = _this$props.classes,
|
193
204
|
noButton = _this$props.noButton,
|
194
205
|
disabled = _this$props.disabled,
|
195
206
|
onClick = _this$props.onClick,
|
207
|
+
onReset = _this$props.onReset,
|
196
208
|
value = _this$props.value,
|
197
209
|
open = _this$props.open,
|
198
210
|
focused = _this$props.focused,
|
199
211
|
error = _this$props.error,
|
200
212
|
id = _this$props.id,
|
201
213
|
placeholder = _this$props.placeholder,
|
202
|
-
refElement = _this$props.refElement
|
214
|
+
refElement = _this$props.refElement,
|
215
|
+
theme = _this$props.theme; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
|
203
216
|
|
204
217
|
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
218
|
var iconClass = (0, _classnames.default)(classes.icon, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.iconOpen, open), (0, _defineProperty2.default)(_classNames2, classes.iconClose, !open), _classNames2));
|
@@ -224,7 +237,7 @@ function (_React$PureComponent) {
|
|
224
237
|
})) : _react.default.createElement(_ButtonBase.default, {
|
225
238
|
id: id,
|
226
239
|
className: rootClass,
|
227
|
-
onClick:
|
240
|
+
onClick: this.handleClick,
|
228
241
|
disabled: disabled,
|
229
242
|
onMouseEnter: this.props.onMouseEnter,
|
230
243
|
onMouseLeave: this.props.onMouseLeave,
|
@@ -236,7 +249,16 @@ function (_React$PureComponent) {
|
|
236
249
|
}
|
237
250
|
}, _react.default.createElement("span", {
|
238
251
|
className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.placeholder, value === undefined))
|
239
|
-
}, value || placeholder), _react.default.createElement(
|
252
|
+
}, value || placeholder), onReset && focused && _react.default.createElement("div", {
|
253
|
+
ref: function ref(el) {
|
254
|
+
_this2.resetIcon = el;
|
255
|
+
}
|
256
|
+
}, _react.default.createElement(_HiIcon.default, {
|
257
|
+
icon: "close",
|
258
|
+
size: 24,
|
259
|
+
color: theme.palette.neutral.main,
|
260
|
+
onClick: onReset
|
261
|
+
})), _react.default.createElement(_Icon.default, {
|
240
262
|
classes: {
|
241
263
|
root: iconClass
|
242
264
|
}
|
@@ -315,6 +337,11 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
315
337
|
*/
|
316
338
|
onMouseLeave: _propTypes.default.func,
|
317
339
|
|
340
|
+
/**
|
341
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
342
|
+
*/
|
343
|
+
onReset: _propTypes.default.func,
|
344
|
+
|
318
345
|
/**
|
319
346
|
* Fonction de callback à la pression de la touche "Entrée"
|
320
347
|
*/
|
@@ -343,7 +370,8 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
343
370
|
|
344
371
|
var _default = (0, _withStyles.default)(styles, {
|
345
372
|
hiComponent: true,
|
346
|
-
name: 'HmuiHiSelectInput'
|
373
|
+
name: 'HmuiHiSelectInput',
|
374
|
+
withTheme: true
|
347
375
|
})(HiSelectInput);
|
348
376
|
|
349
377
|
exports.default = _default;
|
package/es/HiSelect/HiSelect.js
CHANGED
@@ -488,6 +488,13 @@ class HiSelect extends React.PureComponent {
|
|
488
488
|
}
|
489
489
|
}
|
490
490
|
|
491
|
+
handleReset(event) {
|
492
|
+
if (this.props.onReset) {
|
493
|
+
event.stopPropagation();
|
494
|
+
this.props.onReset(event);
|
495
|
+
}
|
496
|
+
}
|
497
|
+
|
491
498
|
render() {
|
492
499
|
const _this$props = this.props,
|
493
500
|
{
|
@@ -683,14 +690,14 @@ class HiSelect extends React.PureComponent {
|
|
683
690
|
onMouseLeave: this.props.onMouseLeave,
|
684
691
|
refElement: el => {
|
685
692
|
this.selectInputElement = el;
|
686
|
-
}
|
693
|
+
},
|
694
|
+
onReset: this.props.onReset
|
687
695
|
}), open && staticPosition ? React.createElement("div", {
|
688
696
|
style: popperStyle
|
689
697
|
}, content) : React.createElement(Popper, {
|
690
698
|
anchorEl: this.inputEl,
|
691
699
|
placement: "bottom-start",
|
692
700
|
open: open,
|
693
|
-
eventsEnabled: open,
|
694
701
|
className: popperClass,
|
695
702
|
style: popperStyle,
|
696
703
|
disablePortal: true
|
@@ -861,6 +868,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
861
868
|
*/
|
862
869
|
onMouseLeave: PropTypes.func,
|
863
870
|
|
871
|
+
/**
|
872
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
873
|
+
*/
|
874
|
+
onReset: PropTypes.func,
|
875
|
+
|
864
876
|
/**
|
865
877
|
* Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
|
866
878
|
* A utiliser pour les selects avec des données dynamiques
|
@@ -126,7 +126,14 @@ class SelectInput extends React.PureComponent {
|
|
126
126
|
}
|
127
127
|
};
|
128
128
|
|
129
|
+
this.handleClick = event => {
|
130
|
+
if ((!this.resetIcon || !this.resetIcon.contains(event.target)) && this.props.onClick) {
|
131
|
+
this.props.onClick(event);
|
132
|
+
}
|
133
|
+
};
|
134
|
+
|
129
135
|
this.handleKeyDown = this.handleKeyDown.bind(this);
|
136
|
+
this.handleClick = this.handleClick.bind(this);
|
130
137
|
}
|
131
138
|
|
132
139
|
render() {
|
@@ -135,12 +142,14 @@ class SelectInput extends React.PureComponent {
|
|
135
142
|
noButton,
|
136
143
|
disabled,
|
137
144
|
onClick,
|
145
|
+
onReset,
|
138
146
|
value,
|
139
147
|
open,
|
140
148
|
focused,
|
141
149
|
error,
|
142
150
|
id,
|
143
|
-
refElement
|
151
|
+
refElement,
|
152
|
+
theme
|
144
153
|
} = this.props; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
|
145
154
|
|
146
155
|
const rootClass = classNames(classes.root, classes.inkbar, classes.underline, {
|
@@ -177,7 +186,7 @@ class SelectInput extends React.PureComponent {
|
|
177
186
|
classes: {
|
178
187
|
root: rootClass
|
179
188
|
},
|
180
|
-
onClick:
|
189
|
+
onClick: this.handleClick,
|
181
190
|
disabled: disabled,
|
182
191
|
onMouseEnter: this.props.onMouseEnter,
|
183
192
|
onMouseLeave: this.props.onMouseLeave,
|
@@ -189,7 +198,16 @@ class SelectInput extends React.PureComponent {
|
|
189
198
|
}
|
190
199
|
}, React.createElement("span", {
|
191
200
|
className: classes.label
|
192
|
-
}, value), React.createElement(
|
201
|
+
}, value), onReset && focused && React.createElement("div", {
|
202
|
+
ref: el => {
|
203
|
+
this.resetIcon = el;
|
204
|
+
}
|
205
|
+
}, React.createElement(HiIcon, {
|
206
|
+
icon: "close",
|
207
|
+
size: 24,
|
208
|
+
color: theme.palette.neutral.main,
|
209
|
+
onClick: onReset
|
210
|
+
})), React.createElement(HiIcon, {
|
193
211
|
className: iconClass,
|
194
212
|
icon: "arrow_drop_down"
|
195
213
|
}));
|
@@ -262,6 +280,11 @@ SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
262
280
|
*/
|
263
281
|
onMouseLeave: PropTypes.func,
|
264
282
|
|
283
|
+
/**
|
284
|
+
* Fonction de callback appelée lorsqu'on vide le champs
|
285
|
+
*/
|
286
|
+
onReset: PropTypes.func,
|
287
|
+
|
265
288
|
/**
|
266
289
|
* Fonction de callback à la pression de la touche "Entrée"
|
267
290
|
*/
|
@@ -284,5 +307,6 @@ SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
284
307
|
} : {};
|
285
308
|
export default withStyles(styles, {
|
286
309
|
hiComponent: true,
|
287
|
-
name: 'HmuiSelectInput'
|
310
|
+
name: 'HmuiSelectInput',
|
311
|
+
withTheme: true
|
288
312
|
})(SelectInput);
|
@@ -0,0 +1,111 @@
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
3
|
+
// @inheritedComponent HiDynamicSelect
|
4
|
+
import React from 'react';
|
5
|
+
import PropTypes from 'prop-types';
|
6
|
+
import HiFormControl from '../HiForm/HiFormControl';
|
7
|
+
import HiNestedSelect from './HiNestedSelect';
|
8
|
+
/**
|
9
|
+
* Champs input pour formulaire
|
10
|
+
*/
|
11
|
+
|
12
|
+
class HiNestedSelectField extends React.PureComponent {
|
13
|
+
render() {
|
14
|
+
const _this$props = this.props,
|
15
|
+
{
|
16
|
+
label,
|
17
|
+
required,
|
18
|
+
disabled,
|
19
|
+
error,
|
20
|
+
errorText,
|
21
|
+
helperText,
|
22
|
+
helperIcon,
|
23
|
+
id,
|
24
|
+
name,
|
25
|
+
value,
|
26
|
+
options,
|
27
|
+
type,
|
28
|
+
multiple,
|
29
|
+
iconAll,
|
30
|
+
checkbox,
|
31
|
+
searchable,
|
32
|
+
translations,
|
33
|
+
className
|
34
|
+
} = _this$props,
|
35
|
+
others = _objectWithoutProperties(_this$props, ["label", "required", "disabled", "error", "errorText", "helperText", "helperIcon", "id", "name", "value", "options", "type", "multiple", "iconAll", "checkbox", "searchable", "translations", "className"]);
|
36
|
+
|
37
|
+
return React.createElement(HiFormControl, {
|
38
|
+
id: id,
|
39
|
+
label: label,
|
40
|
+
required: required,
|
41
|
+
disabled: disabled,
|
42
|
+
error: error,
|
43
|
+
errorText: errorText,
|
44
|
+
helperText: helperText,
|
45
|
+
helperIcon: helperIcon,
|
46
|
+
className: className
|
47
|
+
}, React.createElement(HiNestedSelect, _extends({
|
48
|
+
id: id,
|
49
|
+
name: name,
|
50
|
+
value: value,
|
51
|
+
options: options,
|
52
|
+
type: type,
|
53
|
+
multiple: multiple,
|
54
|
+
iconAll: iconAll,
|
55
|
+
checkbox: checkbox,
|
56
|
+
searchable: searchable,
|
57
|
+
translations: translations,
|
58
|
+
disabled: disabled,
|
59
|
+
error: error
|
60
|
+
}, others)));
|
61
|
+
}
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
HiNestedSelectField.propTypes = process.env.NODE_ENV !== "production" ? {
|
66
|
+
/**
|
67
|
+
* Surcharge des styles
|
68
|
+
*/
|
69
|
+
className: PropTypes.string,
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Si `true`, l'input sera inactif.
|
73
|
+
*/
|
74
|
+
disabled: PropTypes.bool,
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Si `true`, le champs sera en erreur.
|
78
|
+
*/
|
79
|
+
error: PropTypes.bool,
|
80
|
+
|
81
|
+
/**
|
82
|
+
* Texte de l'erreur
|
83
|
+
*/
|
84
|
+
errorText: PropTypes.string,
|
85
|
+
|
86
|
+
/**
|
87
|
+
* Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
|
88
|
+
*/
|
89
|
+
helperIcon: PropTypes.bool,
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Texte de l'aide
|
93
|
+
*/
|
94
|
+
helperText: PropTypes.string,
|
95
|
+
|
96
|
+
/**
|
97
|
+
* id de l'élément input
|
98
|
+
*/
|
99
|
+
id: PropTypes.string.isRequired,
|
100
|
+
|
101
|
+
/**
|
102
|
+
* Label du champs
|
103
|
+
*/
|
104
|
+
label: PropTypes.string,
|
105
|
+
|
106
|
+
/**
|
107
|
+
* true si champs obligatoire
|
108
|
+
*/
|
109
|
+
required: PropTypes.bool
|
110
|
+
} : {};
|
111
|
+
export default HiNestedSelectField;
|