@hipay/hipay-material-ui 2.0.0-beta.57 → 2.0.0-beta.59

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/HiAlertModal/HiAlertModal.js +56 -13
  3. package/HiColoredLabel/HiColoredLabel.js +16 -4
  4. package/HiForm/HiFormControl.js +2 -4
  5. package/HiForm/HiInput.js +29 -4
  6. package/HiForm/HiUploadField.js +2 -1
  7. package/HiSelect/HiSelect.js +6 -5
  8. package/HiSelect/HiSuggestSelect.js +5 -4
  9. package/HiSelect/SelectInput.js +1 -0
  10. package/HiSelectNew/HiNestedSelect.js +20 -6
  11. package/HiSelectNew/HiNestedSelectContent.js +20 -6
  12. package/HiSelectNew/HiSelect.js +104 -32
  13. package/HiSelectNew/HiSelectContent.js +16 -4
  14. package/HiSelectNew/HiSelectInput.js +10 -3
  15. package/HiSelectableList/HiSelectableList.js +2 -35
  16. package/HiSelectableList/HiSelectableListItem.js +6 -4
  17. package/es/HiAlertModal/HiAlertModal.js +55 -13
  18. package/es/HiColoredLabel/HiColoredLabel.js +21 -4
  19. package/es/HiForm/HiFormControl.js +2 -4
  20. package/es/HiForm/HiInput.js +29 -4
  21. package/es/HiForm/HiUploadField.js +2 -1
  22. package/es/HiSelect/HiSelect.js +6 -5
  23. package/es/HiSelect/HiSuggestSelect.js +5 -4
  24. package/es/HiSelect/SelectInput.js +1 -0
  25. package/es/HiSelectNew/HiNestedSelect.js +17 -7
  26. package/es/HiSelectNew/HiNestedSelectContent.js +16 -6
  27. package/es/HiSelectNew/HiSelect.js +106 -31
  28. package/es/HiSelectNew/HiSelectContent.js +11 -2
  29. package/es/HiSelectNew/HiSelectInput.js +10 -3
  30. package/es/HiSelectableList/HiSelectableList.js +3 -29
  31. package/es/HiSelectableList/HiSelectableListItem.js +6 -4
  32. package/index.es.js +1 -1
  33. package/index.js +1 -1
  34. package/package.json +1 -1
  35. package/umd/hipay-material-ui.development.js +15551 -16279
  36. package/umd/hipay-material-ui.production.min.js +2 -2
@@ -37,6 +37,9 @@ export const styles = theme => ({
37
37
  width: '100%'
38
38
  })
39
39
  });
40
+ export var filterValue = function (item, searchValue) {
41
+ return searchValue === '' || foldAccents(item.label.toString().toLowerCase()).search(foldAccents(searchValue.toLowerCase())) !== -1;
42
+ };
40
43
  /**
41
44
  *
42
45
  * Utilisé pour tous types de selects dans les formulaires.
@@ -197,7 +200,7 @@ class HiSelectContent extends React.PureComponent {
197
200
  hideCheckbox: true,
198
201
  label: 'loading'
199
202
  }] : []), // simple one level filter on label
200
- ...(search !== '' ? [...options.filter(item => item.label && foldAccents(item.label.toString().toLowerCase()).search(foldAccents(search.toLowerCase())) !== -1)] : [...(this.props.hasAll ? [_objectSpread({
203
+ ...(search !== '' ? [...options.filter(item => item.label && this.props.filterFunc(item, search))] : [...(this.props.hasAll ? [_objectSpread({
201
204
  id: '_all',
202
205
  label: this.props.translations.all
203
206
  }, this.props.iconAll && {
@@ -331,7 +334,8 @@ HiSelectContent.defaultProps = {
331
334
  n_children: '%s items',
332
335
  one_child: '%s item'
333
336
  },
334
- type: 'text'
337
+ type: 'text',
338
+ filterFunc: filterValue
335
339
  };
336
340
  HiSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
337
341
  autoHeight: PropTypes.bool,
@@ -356,6 +360,11 @@ HiSelectContent.propTypes = process.env.NODE_ENV !== "production" ? {
356
360
  */
357
361
  fallbackImage: PropTypes.string,
358
362
 
363
+ /*
364
+ * Fonction de filtrage custom
365
+ */
366
+ filterFunc: PropTypes.func,
367
+
359
368
  /**
360
369
  * Affiche l'élément 'All'
361
370
  */
@@ -146,8 +146,12 @@ class HiSelectInput extends React.PureComponent {
146
146
  };
147
147
 
148
148
  this.handleClick = event => {
149
+ // Do not open select if press on resetIcon
149
150
  if ((!this.resetIcon || !this.resetIcon.contains(event.target)) && this.props.onClick) {
150
- this.props.onClick(event);
151
+ // Do not open select if press enter on button => submit form
152
+ if (event.type !== 'keydown' || keycode(event) !== 'enter') {
153
+ this.props.onClick(event);
154
+ }
151
155
  }
152
156
  };
153
157
 
@@ -162,9 +166,11 @@ class HiSelectInput extends React.PureComponent {
162
166
  this.handleBlur = event => {
163
167
  if ((!this.input || !this.input.contains(event.relatedTarget)) && this.props.onBlur) {
164
168
  this.props.onBlur(event);
165
- } else if (this.input && (!this.resetIcon || !this.resetIcon.contains(event.relatedTarget))) {
166
- this.input.focus();
167
169
  }
170
+ /* else if (this.input && (!this.resetIcon || !this.resetIcon.contains(event.relatedTarget))) {
171
+ this.input.focus();
172
+ }*/
173
+
168
174
  };
169
175
 
170
176
  this.ref = el => {
@@ -225,6 +231,7 @@ class HiSelectInput extends React.PureComponent {
225
231
  }, value || placeholder), React.createElement(ArrowDropDownIcon, {
226
232
  className: iconClass
227
233
  })) : React.createElement(ButtonBase, {
234
+ component: "div",
228
235
  id: id,
229
236
  className: rootClass,
230
237
  onClick: this.handleClick,
@@ -5,8 +5,7 @@ import PropTypes from 'prop-types';
5
5
  import List from '@material-ui/core/List';
6
6
  import withStyles from '../styles/withStyles';
7
7
  import HiSelectableListItem from './HiSelectableListItem';
8
- import { foldAccents, getNextItemSelectable } from '../utils/helpers';
9
- import keycode from 'keycode';
8
+ import { foldAccents } from '../utils/helpers';
10
9
  export const styles = () => ({
11
10
  root: {
12
11
  padding: 0
@@ -24,31 +23,6 @@ class HiSelectableList extends React.PureComponent {
24
23
  this.props.onSelect(event, item);
25
24
  };
26
25
 
27
- this.handleKeyDown = event => {
28
- let nextItem;
29
- const key = keycode(event);
30
-
31
- if (key === 'down') {
32
- event.preventDefault();
33
- nextItem = getNextItemSelectable(document.activeElement, 'down');
34
- } else if (key === 'up') {
35
- event.preventDefault();
36
- nextItem = getNextItemSelectable(document.activeElement, 'up');
37
- } else if (key === 'space' || key === 'enter' && !this.props.multiple) {
38
- event.preventDefault();
39
- const item = this.props.options.find(elem => String(elem.id) === event.target.id);
40
- this.handleSelect(null, item);
41
- }
42
-
43
- if (nextItem) {
44
- nextItem.focus();
45
- }
46
- };
47
-
48
- this.handleKeyUp = () => {
49
- return false;
50
- };
51
-
52
26
  this.buildRecursiveListItem = (item, level = 0) => {
53
27
  const _this$props = this.props,
54
28
  {
@@ -60,8 +34,8 @@ class HiSelectableList extends React.PureComponent {
60
34
  icon,
61
35
  selectedItemIdList,
62
36
  sort,
63
- onKeyDown = this.handleKeyDown,
64
- onKeyUp = this.handleKeyUp
37
+ onKeyDown,
38
+ onKeyUp
65
39
  } = _this$props,
66
40
  others = _objectWithoutProperties(_this$props, ["checkedIcon", "disabled", "disabledItemIdList", "hideCheckbox", "hoverIcon", "icon", "selectedItemIdList", "sort", "onKeyDown", "onKeyUp"]);
67
41
 
@@ -85,12 +85,13 @@ export const styles = theme => ({
85
85
  minWidth: '50%',
86
86
  padding: '5px 0',
87
87
  '&$listItemContentSelected': {
88
- marginBottom: -3,
88
+ marginBottom: 1,
89
89
  marginLeft: -4
90
90
  },
91
91
  '& strong': {
92
92
  fontWeight: theme.typography.fontWeightMedium
93
- }
93
+ },
94
+ display: 'inline-flex'
94
95
  }),
95
96
  listItemContentSelected: {},
96
97
  label: {
@@ -136,7 +137,7 @@ export const styles = theme => ({
136
137
  labelContent: {
137
138
  display: 'flex',
138
139
  alignItems: 'center',
139
- maxWidth: '70%',
140
+ maxWidth: '85%',
140
141
  '&$labelWithoutSecondaryInline': {
141
142
  maxWidth: '100%'
142
143
  }
@@ -225,7 +226,8 @@ class HiSelectableListItem extends React.PureComponent {
225
226
  }
226
227
 
227
228
  return React.createElement("div", {
228
- className: classes.label
229
+ className: classes.label,
230
+ title: label
229
231
  }, label);
230
232
  }
231
233
 
package/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.0.0-beta.57
1
+ /** @license HiPay-Material-UI v2.0.0-beta.59
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.57
1
+ /** @license HiPay-Material-UI v2.0.0-beta.59
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.57",
5
+ "version": "2.0.0-beta.59",
6
6
  "description": "React components that implement Google's Material Design.",
7
7
  "keywords": [
8
8
  "react",