@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.
@@ -339,6 +339,7 @@ class HiSelect extends React.PureComponent {
339
339
  this.handleSearchReset = this.handleSearchReset.bind(this);
340
340
  this.handleSelect = this.handleSelect.bind(this);
341
341
  this.handleSuggestions = this.handleSuggestions.bind(this);
342
+ this.getInputElement = this.getInputElement.bind(this);
342
343
  }
343
344
 
344
345
  static getDerivedStateFromProps(nextProps, prevState) {
@@ -351,6 +352,14 @@ class HiSelect extends React.PureComponent {
351
352
  return null;
352
353
  }
353
354
 
355
+ getInputElement(el) {
356
+ this.searchField = el;
357
+
358
+ if (this.props.inputRef) {
359
+ this.props.inputRef(this.searchField);
360
+ }
361
+ }
362
+
354
363
  render() {
355
364
  const {
356
365
  classes,
@@ -410,9 +419,7 @@ class HiSelect extends React.PureComponent {
410
419
  }, !!searchable && React.createElement(HiInput, {
411
420
  value: searchValue,
412
421
  autoFocus: true,
413
- inputRef: el => {
414
- this.searchField = el;
415
- },
422
+ inputRef: this.getInputElement,
416
423
  onKeyDown: this.handleKeyDownSearch,
417
424
  onChange: this.handleSearch,
418
425
  onReset: this.handleSearchReset,
@@ -456,6 +463,7 @@ class HiSelect extends React.PureComponent {
456
463
  onSubmit: onSubmit,
457
464
  onMouseEnter: this.props.onMouseEnter,
458
465
  onMouseLeave: this.props.onMouseLeave,
466
+ onReset: this.props.onReset,
459
467
  placeholder: placeholder
460
468
  }, hiSelectInputProps, {
461
469
  refElement: el => {
@@ -467,7 +475,6 @@ class HiSelect extends React.PureComponent {
467
475
  anchorEl: this.inputEl,
468
476
  placement: "bottom-start",
469
477
  open: open,
470
- eventsEnabled: open,
471
478
  className: classes.popper,
472
479
  disablePortal: true
473
480
  }, content));
@@ -586,6 +593,11 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
586
593
  */
587
594
  onMouseLeave: PropTypes.func,
588
595
 
596
+ /**
597
+ * Fonction de callback appelée lorsqu'on vide le champs
598
+ */
599
+ onReset: PropTypes.func,
600
+
589
601
  /**
590
602
  * Fonction de callback appelée lorsque le scroll atteint le bas de la liste
591
603
  */
@@ -5,6 +5,7 @@ import classNames from 'classnames';
5
5
  import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
6
6
  import ButtonBase from '@material-ui/core/ButtonBase';
7
7
  import Icon from '@material-ui/core/Icon';
8
+ import HiIcon from '../HiIcon';
8
9
  import withStyles from '../styles/withStyles';
9
10
  import keycode from 'keycode';
10
11
  export const styles = theme => ({
@@ -134,7 +135,14 @@ class HiSelectInput extends React.PureComponent {
134
135
  }
135
136
  };
136
137
 
138
+ this.handleClick = event => {
139
+ if ((!this.resetIcon || !this.resetIcon.contains(event.target)) && this.props.onClick) {
140
+ this.props.onClick(event);
141
+ }
142
+ };
143
+
137
144
  this.handleKeyDown = this.handleKeyDown.bind(this);
145
+ this.handleClick = this.handleClick.bind(this);
138
146
  }
139
147
 
140
148
  render() {
@@ -143,13 +151,15 @@ class HiSelectInput extends React.PureComponent {
143
151
  noButton,
144
152
  disabled,
145
153
  onClick,
154
+ onReset,
146
155
  value,
147
156
  open,
148
157
  focused,
149
158
  error,
150
159
  id,
151
160
  placeholder,
152
- refElement
161
+ refElement,
162
+ theme
153
163
  } = this.props; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
154
164
 
155
165
  const rootClass = classNames(classes.root, classes.inkbar, classes.underline, {
@@ -184,7 +194,7 @@ class HiSelectInput extends React.PureComponent {
184
194
  })) : React.createElement(ButtonBase, {
185
195
  id: id,
186
196
  className: rootClass,
187
- onClick: onClick,
197
+ onClick: this.handleClick,
188
198
  disabled: disabled,
189
199
  onMouseEnter: this.props.onMouseEnter,
190
200
  onMouseLeave: this.props.onMouseLeave,
@@ -198,7 +208,16 @@ class HiSelectInput extends React.PureComponent {
198
208
  className: classNames(classes.label, {
199
209
  [classes.placeholder]: value === undefined
200
210
  })
201
- }, value || placeholder), React.createElement(Icon, {
211
+ }, value || placeholder), onReset && focused && React.createElement("div", {
212
+ ref: el => {
213
+ this.resetIcon = el;
214
+ }
215
+ }, React.createElement(HiIcon, {
216
+ icon: "close",
217
+ size: 24,
218
+ color: theme.palette.neutral.main,
219
+ onClick: onReset
220
+ })), React.createElement(Icon, {
202
221
  classes: {
203
222
  root: iconClass
204
223
  }
@@ -276,6 +295,11 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
276
295
  */
277
296
  onMouseLeave: PropTypes.func,
278
297
 
298
+ /**
299
+ * Fonction de callback appelée lorsqu'on vide le champs
300
+ */
301
+ onReset: PropTypes.func,
302
+
279
303
  /**
280
304
  * Fonction de callback à la pression de la touche "Entrée"
281
305
  */
@@ -303,5 +327,6 @@ HiSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
303
327
  } : {};
304
328
  export default withStyles(styles, {
305
329
  hiComponent: true,
306
- name: 'HmuiHiSelectInput'
330
+ name: 'HmuiHiSelectInput',
331
+ withTheme: true
307
332
  })(HiSelectInput);
package/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.0.0-beta.4
1
+ /** @license HiPay-Material-UI v2.0.0-beta.41
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.0.0-beta.4
1
+ /** @license HiPay-Material-UI v2.0.0-beta.41
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
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.40",
5
+ "version": "2.0.0-beta.41",
6
6
  "description": "React components that implement Google's Material Design.",
7
7
  "keywords": [
8
8
  "react",
@@ -71,4 +71,4 @@
71
71
  },
72
72
  "main": "./index.js",
73
73
  "module": "./index.es.js"
74
- }
74
+ }
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.0.0-beta.4
1
+ /** @license HiPay-Material-UI v2.0.0-beta.41
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -96492,26 +96492,37 @@
96492
96492
  }
96493
96493
  };
96494
96494
 
96495
+ _this.handleClick = function (event) {
96496
+ if ((!_this.resetIcon || !_this.resetIcon.contains(event.target)) && _this.props.onClick) {
96497
+ _this.props.onClick(event);
96498
+ }
96499
+ };
96500
+
96495
96501
  _this.handleKeyDown = _this.handleKeyDown.bind(assertThisInitialized(assertThisInitialized(_this)));
96502
+ _this.handleClick = _this.handleClick.bind(assertThisInitialized(assertThisInitialized(_this)));
96496
96503
  return _this;
96497
96504
  }
96498
96505
 
96499
96506
  createClass(SelectInput, [{
96500
96507
  key: "render",
96501
96508
  value: function render() {
96502
- var _classNames, _classNames2;
96509
+ var _classNames,
96510
+ _classNames2,
96511
+ _this2 = this;
96503
96512
 
96504
96513
  var _this$props = this.props,
96505
96514
  classes = _this$props.classes,
96506
96515
  noButton = _this$props.noButton,
96507
96516
  disabled = _this$props.disabled,
96508
96517
  onClick = _this$props.onClick,
96518
+ onReset = _this$props.onReset,
96509
96519
  value = _this$props.value,
96510
96520
  open = _this$props.open,
96511
96521
  focused = _this$props.focused,
96512
96522
  error = _this$props.error,
96513
96523
  id = _this$props.id,
96514
- refElement = _this$props.refElement; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
96524
+ refElement = _this$props.refElement,
96525
+ theme = _this$props.theme; // On utilise classNames pour variabiliser les styles et merge les classes appliquées
96515
96526
 
96516
96527
  var rootClass = classnames(classes.root, classes.inkbar, classes.underline, (_classNames = {}, defineProperty(_classNames, classes.disabled, disabled), defineProperty(_classNames, classes.focused, focused), defineProperty(_classNames, classes.error, error && !focused), _classNames));
96517
96528
  var iconClass = classnames(classes.icon, (_classNames2 = {}, defineProperty(_classNames2, classes.iconOpen, open), defineProperty(_classNames2, classes.iconClose, !open), _classNames2));
@@ -96540,7 +96551,7 @@
96540
96551
  classes: {
96541
96552
  root: rootClass
96542
96553
  },
96543
- onClick: onClick,
96554
+ onClick: this.handleClick,
96544
96555
  disabled: disabled,
96545
96556
  onMouseEnter: this.props.onMouseEnter,
96546
96557
  onMouseLeave: this.props.onMouseLeave,
@@ -96552,7 +96563,16 @@
96552
96563
  }
96553
96564
  }, React__default.createElement("span", {
96554
96565
  className: classes.label
96555
- }, value), React__default.createElement(HiIcon$1, {
96566
+ }, value), onReset && focused && React__default.createElement("div", {
96567
+ ref: function ref(el) {
96568
+ _this2.resetIcon = el;
96569
+ }
96570
+ }, React__default.createElement(HiIcon$1, {
96571
+ icon: "close",
96572
+ size: 24,
96573
+ color: theme.palette.neutral.main,
96574
+ onClick: onReset
96575
+ })), React__default.createElement(HiIcon$1, {
96556
96576
  className: iconClass,
96557
96577
  icon: "arrow_drop_down"
96558
96578
  }));
@@ -96627,6 +96647,11 @@
96627
96647
  */
96628
96648
  onMouseLeave: propTypes.func,
96629
96649
 
96650
+ /**
96651
+ * Fonction de callback appelée lorsqu'on vide le champs
96652
+ */
96653
+ onReset: propTypes.func,
96654
+
96630
96655
  /**
96631
96656
  * Fonction de callback à la pression de la touche "Entrée"
96632
96657
  */
@@ -96649,7 +96674,8 @@
96649
96674
  };
96650
96675
  var SelectInput$1 = withStyles(styles$p, {
96651
96676
  hiComponent: true,
96652
- name: 'HmuiSelectInput'
96677
+ name: 'HmuiSelectInput',
96678
+ withTheme: true
96653
96679
  })(SelectInput);
96654
96680
 
96655
96681
  var styles$q = function styles(theme) {
@@ -97143,6 +97169,14 @@
97143
97169
  });
97144
97170
  }
97145
97171
  }
97172
+ }, {
97173
+ key: "handleReset",
97174
+ value: function handleReset(event) {
97175
+ if (this.props.onReset) {
97176
+ event.stopPropagation();
97177
+ this.props.onReset(event);
97178
+ }
97179
+ }
97146
97180
  }, {
97147
97181
  key: "render",
97148
97182
  value: function render() {
@@ -97339,14 +97373,14 @@
97339
97373
  onMouseLeave: this.props.onMouseLeave,
97340
97374
  refElement: function refElement(el) {
97341
97375
  _this2.selectInputElement = el;
97342
- }
97376
+ },
97377
+ onReset: this.props.onReset
97343
97378
  }), open && staticPosition ? React__default.createElement("div", {
97344
97379
  style: popperStyle
97345
97380
  }, content) : React__default.createElement(Popper$3, {
97346
97381
  anchorEl: this.inputEl,
97347
97382
  placement: "bottom-start",
97348
97383
  open: open,
97349
- eventsEnabled: open,
97350
97384
  className: popperClass,
97351
97385
  style: popperStyle,
97352
97386
  disablePortal: true
@@ -97519,6 +97553,11 @@
97519
97553
  */
97520
97554
  onMouseLeave: propTypes.func,
97521
97555
 
97556
+ /**
97557
+ * Fonction de callback appelée lorsqu'on vide le champs
97558
+ */
97559
+ onReset: propTypes.func,
97560
+
97522
97561
  /**
97523
97562
  * Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
97524
97563
  * A utiliser pour les selects avec des données dynamiques