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

Sign up to get free protection for your applications and to get access to all the features.
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
- });