@hipay/hipay-material-ui 2.1.0-RC1 → 2.2.0-RC1

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 (71) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/HiAlertModal/HiAlertModal.js +32 -7
  3. package/HiAppBar/HiAppBar.js +3 -3
  4. package/HiBreadcrumb/HiBreadcrumb.js +1 -1
  5. package/HiBreadcrumb/HiStepConnector.js +3 -3
  6. package/HiButton/HiButton.js +64 -25
  7. package/HiCell/CellText.js +3 -3
  8. package/HiCheckbox/HiCheckbox.js +3 -3
  9. package/HiChip/HiChipSwitch.js +5 -5
  10. package/HiColoredLabel/HiColoredLabel.js +2 -1
  11. package/HiDatePicker/HiDatePicker.js +1 -5
  12. package/HiDatePicker/Overlays/MonthPickerOverlay.js +3 -3
  13. package/HiDatePicker/Overlays/TimePickerOverlay.js +4 -4
  14. package/HiDatePicker/Overlays/YearPickerOverlay.js +3 -3
  15. package/HiDotsStepper/HiDotsStepper.js +4 -4
  16. package/HiExpansionPanel/HiExpansionPanel.js +19 -10
  17. package/HiForm/HiAddressField.js +7 -7
  18. package/HiForm/HiEmailField.js +3 -3
  19. package/HiForm/HiFormControl.js +6 -6
  20. package/HiForm/HiInput.js +11 -11
  21. package/HiForm/HiPasswordField.js +3 -3
  22. package/HiForm/HiSearchField.js +5 -5
  23. package/HiForm/HiTextField.js +5 -5
  24. package/HiForm/index.js +17 -1
  25. package/HiIcon/HiIcon.js +9 -1
  26. package/HiMap/HiMap.js +6 -6
  27. package/HiMap/HiMapExpand.js +4 -4
  28. package/HiNotice/HiKPI.js +11 -11
  29. package/HiNotice/HiKPINotice.js +1 -1
  30. package/HiSelect/HiDynamicSelect.js +7 -7
  31. package/HiSelect/HiNestedSelect.js +12 -12
  32. package/HiSelect/HiNestedSelectContent.js +9 -9
  33. package/HiSelect/HiSelect.js +56 -58
  34. package/HiSelect/HiSelectContent.js +13 -13
  35. package/HiSelect/HiSelectInput.js +7 -7
  36. package/HiSelect/HiSuggestSelect.js +62 -54
  37. package/HiSelectableList/HiSelectableList.js +28 -9
  38. package/HiSelectableList/HiSelectableListItem.js +6 -5
  39. package/HiTable/HiTable.js +3 -3
  40. package/HiTable/HiTableRow.js +3 -3
  41. package/es/HiAlertModal/HiAlertModal.js +26 -4
  42. package/es/HiBreadcrumb/HiBreadcrumb.js +1 -1
  43. package/es/HiButton/HiButton.js +57 -41
  44. package/es/HiColoredLabel/HiColoredLabel.js +2 -1
  45. package/es/HiDatePicker/HiDatePicker.js +1 -3
  46. package/es/HiExpansionPanel/HiExpansionPanel.js +19 -10
  47. package/es/HiForm/index.js +3 -1
  48. package/es/HiIcon/HiIcon.js +9 -1
  49. package/es/HiNotice/HiKPI.js +8 -8
  50. package/es/HiNotice/HiKPINotice.js +1 -1
  51. package/es/HiSelect/HiSelect.js +30 -27
  52. package/es/HiSelect/HiSuggestSelect.js +61 -52
  53. package/es/HiSelectableList/HiSelectableList.js +26 -8
  54. package/es/HiSelectableList/HiSelectableListItem.js +2 -1
  55. package/index.es.js +1 -1
  56. package/index.js +1 -1
  57. package/package.json +1 -2
  58. package/HiDatePicker/Caption.spec.js +0 -88
  59. package/HiDatePicker/ListPicker.spec.js +0 -67
  60. package/HiDatePicker/NavBar.spec.js +0 -55
  61. package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -74
  62. package/HiDatePicker/Overlays/Overlay.spec.js +0 -34
  63. package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -71
  64. package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -127
  65. package/es/HiDatePicker/Caption.spec.js +0 -68
  66. package/es/HiDatePicker/ListPicker.spec.js +0 -50
  67. package/es/HiDatePicker/NavBar.spec.js +0 -39
  68. package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -53
  69. package/es/HiDatePicker/Overlays/Overlay.spec.js +0 -25
  70. package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -53
  71. package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -92
@@ -41,7 +41,8 @@ class HiSuggestSelect extends React.PureComponent {
41
41
  static getDerivedStateFromProps(props, state) {
42
42
  if (JSON.stringify(props.options) !== JSON.stringify(state.options)) {
43
43
  return {
44
- options: props.options
44
+ options: props.options,
45
+ suggestionFocusIndex: -1
45
46
  };
46
47
  }
47
48
 
@@ -51,6 +52,14 @@ class HiSuggestSelect extends React.PureComponent {
51
52
  constructor(props) {
52
53
  super(props);
53
54
 
55
+ this.getInputElement = el => {
56
+ this.textInput = el;
57
+
58
+ if (this.props.inputRef) {
59
+ this.props.inputRef(this.textInput);
60
+ }
61
+ };
62
+
54
63
  this.handleSelect = (event, value) => {
55
64
  document.body.style.overflow = 'auto';
56
65
  this.props.onSelect(event, value);
@@ -88,67 +97,65 @@ class HiSuggestSelect extends React.PureComponent {
88
97
  };
89
98
 
90
99
  this.handleKeyDownSearch = event => {
91
- if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
92
- document.body.style.overflow = 'hidden'; // On récupère la div parent "overlay"
100
+ if (event.key === 'ArrowDown') {
101
+ event.preventDefault();
93
102
 
94
- const overlay = findDOMNode(this.overlay);
95
- setTimeout(() => {
96
- // On recupère tous les items
97
- const items = overlay.getElementsByTagName('li');
103
+ if (this.state.suggestionFocusIndex < this.props.options.length - 1) {
104
+ this.setState(prevState => ({
105
+ suggestionFocusIndex: prevState.suggestionFocusIndex + 1
106
+ }));
107
+ }
108
+ } else if (event.key === 'ArrowUp') {
109
+ event.preventDefault();
98
110
 
99
- if (items.length) {
100
- // On focus sur le premier
101
- items[0].focus();
102
- }
103
- }, 1);
111
+ if (this.state.suggestionFocusIndex >= 0) {
112
+ this.setState(prevState => ({
113
+ suggestionFocusIndex: prevState.suggestionFocusIndex - 1
114
+ }));
115
+ }
116
+ } else if (event.key === 'Enter' && this.state.suggestionFocusIndex >= 0) {
117
+ event.preventDefault(); // Suggestion focused
118
+
119
+ this.handleSelect(event, this.state.options[this.state.suggestionFocusIndex]);
104
120
  } else if (event.key === 'Escape') {
105
121
  this.setState({
106
- options: []
122
+ options: [],
123
+ suggestionFocusIndex: -1
107
124
  });
108
125
  }
109
126
  };
110
127
 
111
- this.state = {
112
- focused: false,
113
- options: props.options
114
- };
115
- this.handleSelect = this.handleSelect.bind(this);
116
- this.handleBlur = this.handleBlur.bind(this);
117
- this.handleFocus = this.handleFocus.bind(this);
118
- this.getInputElement = this.getInputElement.bind(this);
119
- }
120
-
121
- getInputElement(el) {
122
- this.textInput = el;
123
-
124
- if (this.props.inputRef) {
125
- this.props.inputRef(this.textInput);
126
- }
127
- }
128
-
129
- handleFocus(event) {
130
- this.setState({
131
- focused: true
132
- });
133
-
134
- if (this.props.onFocusInput) {
135
- this.props.onFocusInput(event);
136
- }
137
- }
138
-
139
- handleBlur(event) {
140
- // Si on click sur un élément de HiInput, on garde le focus
141
- // Par exemple sur l'icone reset
142
- if (!event.relatedTarget || !this.overlay || !this.overlay.contains(event.relatedTarget)) {
128
+ this.handleFocus = event => {
143
129
  this.setState({
144
- options: [],
145
- focused: false
130
+ focused: true
146
131
  });
147
132
 
148
- if (this.props.onBlurInput) {
149
- this.props.onBlurInput(event);
133
+ if (this.props.onFocusInput) {
134
+ this.props.onFocusInput(event);
150
135
  }
151
- }
136
+ };
137
+
138
+ this.handleBlur = event => {
139
+ // Si on click sur un élément de HiInput, on garde le focus
140
+ // Par exemple sur l'icone reset
141
+ if (!event.relatedTarget || !this.overlay || !this.overlay.contains(event.relatedTarget)) {
142
+ this.setState({
143
+ options: [],
144
+ focused: false,
145
+ suggestionFocusIndex: -1
146
+ });
147
+
148
+ if (this.props.onBlurInput) {
149
+ this.props.onBlurInput(event);
150
+ }
151
+ }
152
+ };
153
+
154
+ this.state = {
155
+ focused: false,
156
+ options: props.options,
157
+ suggestionFocusIndex: -1
158
+ };
152
159
  }
153
160
 
154
161
  render() {
@@ -168,7 +175,8 @@ class HiSuggestSelect extends React.PureComponent {
168
175
 
169
176
  const {
170
177
  focused,
171
- options
178
+ options,
179
+ suggestionFocusIndex
172
180
  } = this.state;
173
181
  let optionsShown = options; // If loading
174
182
 
@@ -230,7 +238,8 @@ class HiSuggestSelect extends React.PureComponent {
230
238
  hideCheckbox: true,
231
239
  onSelect: this.handleSelect,
232
240
  translations: translations,
233
- onKeyDown: this.handleKeyDown
241
+ onKeyDown: this.handleKeyDown,
242
+ suggestionFocusIndex: suggestionFocusIndex
234
243
  })))));
235
244
  }
236
245
 
@@ -8,9 +8,14 @@ import HiSelectableListItem from './HiSelectableListItem';
8
8
  import { getNextItemSelectable, foldAccents } from '../utils/helpers';
9
9
  import keycode from 'keycode';
10
10
  import LazyLoad, { forceCheck } from 'react-lazyload';
11
- export const styles = () => ({
11
+ import classNames from 'classnames';
12
+ export const styles = theme => ({
12
13
  root: {
13
14
  padding: 0
15
+ },
16
+ suggestionFocus: {
17
+ backgroundColor: theme.palette.action.hover,
18
+ fontWeight: theme.typography.fontWeightMedium
14
19
  }
15
20
  });
16
21
  /**
@@ -44,7 +49,7 @@ class HiSelectableList extends React.PureComponent {
44
49
  }
45
50
  };
46
51
 
47
- this.buildRecursiveListItem = (item, level = 0) => {
52
+ this.buildRecursiveListItem = (item, index, level = 0) => {
48
53
  const _this$props = this.props,
49
54
  {
50
55
  checkedIcon,
@@ -57,9 +62,11 @@ class HiSelectableList extends React.PureComponent {
57
62
  selectedItemIdList,
58
63
  sort,
59
64
  onKeyDown,
60
- onKeyUp
65
+ onKeyUp,
66
+ suggestionFocusIndex,
67
+ classes
61
68
  } = _this$props,
62
- others = _objectWithoutProperties(_this$props, ["checkedIcon", "disabled", "disabledItemIdList", "hideCheckbox", "hoverIcon", "icon", "lazy", "selectedItemIdList", "sort", "onKeyDown", "onKeyUp"]);
69
+ others = _objectWithoutProperties(_this$props, ["checkedIcon", "disabled", "disabledItemIdList", "hideCheckbox", "hoverIcon", "icon", "lazy", "selectedItemIdList", "sort", "onKeyDown", "onKeyUp", "suggestionFocusIndex", "classes"]);
63
70
 
64
71
  if (sort && item.children) {
65
72
  item.children.sort(this.compareItem);
@@ -95,8 +102,13 @@ class HiSelectableList extends React.PureComponent {
95
102
  onKeyUp: onKeyUp,
96
103
  selected: selectedItemIdList.includes(item.id) // item props override upper props (disabled, hideCheckbox, icon, level...)
97
104
  ,
98
- item: item
99
- }, item)), item.children && item.children.length > 0 && item.children.filter(subItem => !(subItem.displayed === false)).map(subItem => this.buildRecursiveListItem(subItem, level + 1)));
105
+ item: item,
106
+ classes: {
107
+ listItem: classNames({
108
+ [classes.suggestionFocus]: index === suggestionFocusIndex
109
+ })
110
+ }
111
+ }, item)), item.children && item.children.length > 0 && item.children.filter(subItem => !(subItem.displayed === false)).map(subItem => this.buildRecursiveListItem(subItem, index, level + 1)));
100
112
 
101
113
  if (lazy) {
102
114
  return React.createElement(LazyLoad, {
@@ -188,7 +200,7 @@ class HiSelectableList extends React.PureComponent {
188
200
  this.el = el;
189
201
  }
190
202
  }, itemList.filter(item => !(item.displayed === false)) // don't remove if undefined
191
- .map(item => this.buildRecursiveListItem(item)));
203
+ .map((item, index) => this.buildRecursiveListItem(item, index)));
192
204
  }
193
205
 
194
206
  }
@@ -277,6 +289,11 @@ HiSelectableList.propTypes = process.env.NODE_ENV !== "production" ? {
277
289
  */
278
290
  selectedItemIdList: PropTypes.array,
279
291
 
292
+ /**
293
+ * Index de l'item "focus"
294
+ */
295
+ suggestionFocusIndex: PropTypes.number,
296
+
280
297
  /**
281
298
  * Tri des éléments selon leur label
282
299
  */
@@ -294,5 +311,6 @@ HiSelectableList.propTypes = process.env.NODE_ENV !== "production" ? {
294
311
  } : {};
295
312
  export default withStyles(styles, {
296
313
  hiComponent: true,
297
- name: 'HmuiHiSelectableList'
314
+ name: 'HmuiHiSelectableList',
315
+ index: 51
298
316
  })(HiSelectableList);
@@ -179,6 +179,7 @@ class HiSelectableListItem extends React.PureComponent {
179
179
 
180
180
  if (key === 'space' || key === 'enter') {
181
181
  event.preventDefault();
182
+ event.stopPropagation();
182
183
 
183
184
  if (item) {
184
185
  this.props.onSelect(null, item);
@@ -330,7 +331,7 @@ class HiSelectableListItem extends React.PureComponent {
330
331
  indeterminateIcon: indeterminateIcon
331
332
  }), type === 'image' && img && React.createElement("img", {
332
333
  src: img,
333
- alt: img,
334
+ alt: '',
334
335
  onError: e => {
335
336
  if (fallbackImage) {
336
337
  e.target.src = `${fallbackImage}`;
package/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license HiPay-Material-UI v2.1.0RC1
1
+ /** @license HiPay-Material-UI v2.2.0-RC1
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.1.0RC1
1
+ /** @license HiPay-Material-UI v2.2.0-RC1
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
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@hipay/hipay-material-ui",
3
- "private": false,
4
3
  "author": "HiPay PSYCHE Team",
5
- "version": "2.1.0RC1",
4
+ "version": "2.2.0-RC1",
6
5
  "description": "React components that implement Google's Material Design.",
7
6
  "keywords": [
8
7
  "react",
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _chai = require("chai");
8
-
9
- var _sinon = require("sinon");
10
-
11
- var _moment = _interopRequireDefault(require("react-day-picker/moment"));
12
-
13
- var _testUtils = require("../test-utils");
14
-
15
- var _Caption = _interopRequireDefault(require("./Caption"));
16
-
17
- describe('<Caption />', function () {
18
- var shallow;
19
- var mount;
20
- var classes;
21
- var wrapper;
22
- var date = new Date();
23
-
24
- var _ref = _react.default.createElement(_Caption.default, {
25
- date: date,
26
- localeUtils: _moment.default
27
- });
28
-
29
- before(function () {
30
- shallow = (0, _testUtils.createShallow)({
31
- untilSelector: 'Badge'
32
- });
33
- mount = (0, _testUtils.createMount)();
34
- classes = (0, _testUtils.getClasses)(_ref);
35
- });
36
- after(function () {
37
- mount.cleanUp();
38
- });
39
-
40
- var _ref2 = _react.default.createElement(_Caption.default, {
41
- date: date,
42
- localeUtils: _moment.default
43
- });
44
-
45
- describe('text with leftIcon', function () {
46
- before(function () {
47
- wrapper = shallow(_ref2);
48
- });
49
- it('should render a div containing two spans', function () {
50
- _chai.assert.strictEqual(wrapper.name(), 'div');
51
-
52
- _chai.assert.strictEqual(wrapper.childAt(0).is('span'), true, 'should be a span');
53
-
54
- _chai.assert.strictEqual(wrapper.childAt(2).is('span'), true, 'should be a span');
55
- });
56
- it('should merge user classes & spread custom props to the root node', function () {
57
- _chai.assert.strictEqual(wrapper.hasClass(classes.caption), true);
58
- });
59
- });
60
- describe('mount', function () {
61
- it('should call onDelete when clicking', function () {
62
- var handleClickMonth = (0, _sinon.spy)();
63
- var handleClickYear = (0, _sinon.spy)();
64
- wrapper = mount(_react.default.createElement(_Caption.default, {
65
- date: date,
66
- localeUtils: _moment.default,
67
- onMonthClick: handleClickMonth,
68
- onYearClick: handleClickYear
69
- }));
70
-
71
- _chai.assert.strictEqual(wrapper.find('span').length, 2, 'should have 2 spans');
72
-
73
- wrapper.find('span').at(0).simulate('click');
74
-
75
- _chai.assert.strictEqual(handleClickMonth.callCount, 1, 'should have been called once handleClickMonth');
76
-
77
- _chai.assert.strictEqual(handleClickYear.callCount, 0, 'should not have been called handleClickYear');
78
-
79
- wrapper.find('span').at(1).simulate('click');
80
-
81
- _chai.assert.strictEqual(handleClickMonth.callCount, 1, 'should not have been called twice handleClickMonth');
82
-
83
- _chai.assert.strictEqual(handleClickYear.callCount, 1, 'should have been called once handleClickYear');
84
-
85
- wrapper.unmount();
86
- });
87
- });
88
- });
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _chai = require("chai");
8
-
9
- var _sinon = require("sinon");
10
-
11
- var _Menu = require("@material-ui/core/Menu");
12
-
13
- var _index = require("../test-utils/index");
14
-
15
- var _ListPicker = _interopRequireDefault(require("./ListPicker"));
16
-
17
- describe('<ListPicker />', function () {
18
- var shallow;
19
- var mount;
20
- var itemList;
21
- before(function () {
22
- shallow = (0, _index.createShallow)({
23
- dive: true
24
- });
25
- mount = (0, _index.createMount)();
26
- itemList = [1, 2, 3, 4];
27
- });
28
- after(function () {
29
- mount.cleanUp();
30
- });
31
- describe('shallow', function () {
32
- it('renders a Scrollable MenuList', function () {
33
- var handlerClick = (0, _sinon.spy)();
34
- var wrapper = shallow(_react.default.createElement(_ListPicker.default, {
35
- itemList: itemList,
36
- onItemClick: handlerClick,
37
- selectedItem: 2,
38
- initAtMiddleScroll: true
39
- }));
40
-
41
- _chai.assert.strictEqual(wrapper.name(), 'Scrollbars', 'should render a Scrollbars container');
42
-
43
- _chai.assert.strictEqual(wrapper.dive().find(_Menu.MenuList).length, 1, 'should include a MenuList');
44
-
45
- _chai.assert.strictEqual(wrapper.dive().find(_Menu.MenuItem).length, 4, 'should include 4 MenuItem'); // Click on [4] item
46
-
47
-
48
- wrapper.dive().find(_Menu.MenuItem).at(3).props().onClick();
49
-
50
- _chai.assert.strictEqual(handlerClick.calledOnce, true, 'should call onChange callback once');
51
-
52
- _chai.assert.strictEqual(handlerClick.calledWith(4), true, 'should call onChange callback with selected item');
53
- });
54
- });
55
- describe('mount', function () {
56
- it('should mount', function () {
57
- var wrapper = mount(_react.default.createElement(_ListPicker.default, {
58
- itemList: itemList,
59
- onItemClick: function onItemClick() {},
60
- selectedItem: 2,
61
- initAtMiddleScroll: true
62
- }));
63
-
64
- _chai.assert.strictEqual(wrapper.name(), 'WithStyles(ListPicker)');
65
- });
66
- });
67
- });
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _chai = require("chai");
8
-
9
- var _sinon = require("sinon");
10
-
11
- var _moment = _interopRequireDefault(require("react-day-picker/moment"));
12
-
13
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
14
-
15
- var _index = require("../test-utils/index");
16
-
17
- var _NavBar = _interopRequireDefault(require("./NavBar"));
18
-
19
- describe('<NavBar />', function () {
20
- var shallow;
21
- before(function () {
22
- shallow = (0, _index.createShallow)({
23
- dive: true
24
- });
25
- });
26
- it('renders a Scrollable MenuList', function () {
27
- var handlerNextClick = (0, _sinon.spy)();
28
- var handlerPreviousClick = (0, _sinon.spy)();
29
- var handlerClockClick = (0, _sinon.spy)();
30
- var nextMonth = new Date(2018, 3, 1);
31
- var prevMonth = new Date(2018, 1, 1);
32
- var wrapper = shallow(_react.default.createElement(_NavBar.default, {
33
- nextMonth: nextMonth,
34
- previousMonth: prevMonth,
35
- onNextClick: handlerNextClick,
36
- onPreviousClick: handlerPreviousClick,
37
- onClockClick: handlerClockClick,
38
- showClockButton: true,
39
- localeUtils: _moment.default
40
- }));
41
-
42
- _chai.assert.strictEqual(wrapper.find(_IconButton.default).length, 3, 'should include 3 IconButtons'); // Click on [4] item
43
-
44
-
45
- wrapper.find(_IconButton.default).at(0).props().onClick();
46
- wrapper.find(_IconButton.default).at(1).props().onClick();
47
- wrapper.find(_IconButton.default).at(2).props().onClick();
48
-
49
- _chai.assert.strictEqual(handlerPreviousClick.calledOnce, true, 'should call onPreviousClick callback once');
50
-
51
- _chai.assert.strictEqual(handlerNextClick.calledOnce, true, 'should call onNextClick callback once');
52
-
53
- _chai.assert.strictEqual(handlerClockClick.calledOnce, true, 'should call onClockClick callback once');
54
- });
55
- });
@@ -1,74 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _chai = require("chai");
8
-
9
- var _sinon = require("sinon");
10
-
11
- var _moment = _interopRequireDefault(require("react-day-picker/moment"));
12
-
13
- var _index = require("../../test-utils/index");
14
-
15
- var _MonthPickerOverlay = _interopRequireDefault(require("./MonthPickerOverlay"));
16
-
17
- var _ListPicker = _interopRequireDefault(require("../ListPicker"));
18
-
19
- /* eslint-disable */
20
- var _ref = _react.default.createElement("span", null, "children");
21
-
22
- var _ref2 = _react.default.createElement("span", null, "children");
23
-
24
- describe('<MonthPickerOverlay />', function () {
25
- var shallow;
26
- before(function () {
27
- shallow = (0, _index.createShallow)({
28
- dive: true
29
- });
30
- });
31
- it('renders a functional month ListPicker', function () {
32
- var handlerChange = (0, _sinon.spy)();
33
- var aprilLabel = 'April';
34
- var januaryDate = new Date(1992, 0, 9);
35
- var aprilDate = new Date(1992, 3, 9);
36
- var wrapper = shallow(_react.default.createElement(_MonthPickerOverlay.default, {
37
- value: januaryDate,
38
- onChange: handlerChange,
39
- localeUtils: _moment.default
40
- }, _ref));
41
-
42
- _chai.assert.strictEqual(wrapper.name(), 'CustomOverlayLayout', 'should render a CustomOverlayLayout');
43
-
44
- _chai.assert.strictEqual(wrapper.dive().find(_ListPicker.default).length, 1, 'should include a ListPicker');
45
-
46
- wrapper.dive().find(_ListPicker.default).props().onItemClick(aprilLabel);
47
-
48
- _chai.assert.strictEqual(handlerChange.calledOnce, true, 'should call onChange callback once');
49
-
50
- _chai.assert.strictEqual(handlerChange.calledWith(aprilDate), true, 'should call onChange callback with updated month');
51
- });
52
- it('check months', function () {
53
- var handlerChange = (0, _sinon.spy)();
54
- var januaryDate = new Date(1992, 0, 9);
55
- var localeUtils = {
56
- getMonths: function getMonths() {
57
- return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Other'];
58
- }
59
- };
60
- var wrapper = shallow(_react.default.createElement(_MonthPickerOverlay.default, {
61
- value: januaryDate,
62
- onChange: handlerChange,
63
- localeUtils: localeUtils
64
- }, _ref2));
65
-
66
- _chai.assert.strictEqual(wrapper.name(), 'CustomOverlayLayout', 'should render a CustomOverlayLayout');
67
-
68
- _chai.assert.strictEqual(wrapper.dive().find(_ListPicker.default).length, 1, 'should include a ListPicker');
69
-
70
- wrapper.dive().find(_ListPicker.default).props().onItemClick('Other');
71
-
72
- _chai.assert.strictEqual(handlerChange.callCount, 0, 'should not call onChange with month index >= 12');
73
- });
74
- });
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _chai = require("chai");
8
-
9
- var _index = require("../../test-utils/index");
10
-
11
- var _Overlay = _interopRequireDefault(require("./Overlay"));
12
-
13
- /* eslint-disable */
14
- var _ref = _react.default.createElement(_Overlay.default, null);
15
-
16
- var _ref2 = _react.default.createElement(_Overlay.default, null, _react.default.createElement("span", null, "children"));
17
-
18
- describe('<Overlay />', function () {
19
- var shallow;
20
- var classes;
21
- before(function () {
22
- shallow = (0, _index.createShallow)({
23
- dive: true
24
- });
25
- classes = (0, _index.getClasses)(_ref);
26
- });
27
- it('renders a div containing a DayPickerInput', function () {
28
- var wrapper = shallow(_ref2);
29
-
30
- _chai.assert.strictEqual(wrapper.dive().name(), 'Paper', 'should render a Paper');
31
-
32
- _chai.assert.strictEqual(wrapper.dive().hasClass(classes.paper), true, 'should render a Paper with paper class');
33
- });
34
- });
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _chai = require("chai");
8
-
9
- var _sinon = require("sinon");
10
-
11
- var _index = require("../../test-utils/index");
12
-
13
- var _TimePickerOverlay = _interopRequireDefault(require("./TimePickerOverlay"));
14
-
15
- var _ListPicker = _interopRequireDefault(require("../ListPicker"));
16
-
17
- /* eslint-disable */
18
- var _ref = _react.default.createElement("span", null, "children");
19
-
20
- var _ref2 = _react.default.createElement("span", null, "children");
21
-
22
- describe('<TimePickerOverlay />', function () {
23
- var shallow;
24
- before(function () {
25
- shallow = (0, _index.createShallow)({
26
- dive: true
27
- });
28
- });
29
- it('renders a functional hour & minute ListPicker', function () {
30
- var handlerChange = (0, _sinon.spy)();
31
- var handlerCalendarClick = (0, _sinon.spy)();
32
- var hour = 16;
33
- var minute = 17;
34
- var date = new Date(1992, 3, 9, 0, 0);
35
- var dateHour = new Date(1992, 3, 9, hour, 0);
36
- var dateMinute = new Date(1992, 3, 9, 0, minute);
37
- var wrapper = shallow(_react.default.createElement(_TimePickerOverlay.default, {
38
- value: date,
39
- onChange: handlerChange,
40
- onCalendarClick: handlerCalendarClick
41
- }, _ref));
42
-
43
- _chai.assert.strictEqual(wrapper.dive().name(), 'CustomOverlayLayout', 'should render a CustomOverlayLayout');
44
-
45
- _chai.assert.strictEqual(wrapper.dive().find(_ListPicker.default).length, 2, 'should include 2 ListPicker');
46
-
47
- wrapper.dive().find(_ListPicker.default).first().props().onItemClick(hour);
48
- wrapper.dive().find(_ListPicker.default).at(1).props().onItemClick(minute);
49
-
50
- _chai.assert.strictEqual(handlerChange.calledTwice, true, 'should call onChange callback twice');
51
-
52
- _chai.assert.strictEqual(handlerChange.calledWith(dateHour), true, 'should call onChange callback with updated hours');
53
-
54
- _chai.assert.strictEqual(handlerChange.calledWith(dateMinute), true, 'should call onChange callback with updated minutes');
55
- });
56
- it('renders a functional hour & minute ListPicker without callbacks', function () {
57
- var hour = 16;
58
- var minute = 17;
59
- var date = new Date(1992, 3, 9, 0, 0);
60
- var wrapper = shallow(_react.default.createElement(_TimePickerOverlay.default, {
61
- value: date
62
- }, _ref2));
63
-
64
- _chai.assert.strictEqual(wrapper.dive().name(), 'CustomOverlayLayout', 'should render a CustomOverlayLayout');
65
-
66
- _chai.assert.strictEqual(wrapper.dive().find(_ListPicker.default).length, 2, 'should include 2 ListPicker');
67
-
68
- wrapper.dive().find(_ListPicker.default).first().props().onItemClick(hour);
69
- wrapper.dive().find(_ListPicker.default).at(1).props().onItemClick(minute);
70
- });
71
- });