@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.
- package/CHANGELOG.md +154 -0
- package/HiAlertModal/HiAlertModal.js +32 -7
- package/HiAppBar/HiAppBar.js +3 -3
- package/HiBreadcrumb/HiBreadcrumb.js +1 -1
- package/HiBreadcrumb/HiStepConnector.js +3 -3
- package/HiButton/HiButton.js +64 -25
- package/HiCell/CellText.js +3 -3
- package/HiCheckbox/HiCheckbox.js +3 -3
- package/HiChip/HiChipSwitch.js +5 -5
- package/HiColoredLabel/HiColoredLabel.js +2 -1
- package/HiDatePicker/HiDatePicker.js +1 -5
- package/HiDatePicker/Overlays/MonthPickerOverlay.js +3 -3
- package/HiDatePicker/Overlays/TimePickerOverlay.js +4 -4
- package/HiDatePicker/Overlays/YearPickerOverlay.js +3 -3
- package/HiDotsStepper/HiDotsStepper.js +4 -4
- package/HiExpansionPanel/HiExpansionPanel.js +19 -10
- package/HiForm/HiAddressField.js +7 -7
- package/HiForm/HiEmailField.js +3 -3
- package/HiForm/HiFormControl.js +6 -6
- package/HiForm/HiInput.js +11 -11
- package/HiForm/HiPasswordField.js +3 -3
- package/HiForm/HiSearchField.js +5 -5
- package/HiForm/HiTextField.js +5 -5
- package/HiForm/index.js +17 -1
- package/HiIcon/HiIcon.js +9 -1
- package/HiMap/HiMap.js +6 -6
- package/HiMap/HiMapExpand.js +4 -4
- package/HiNotice/HiKPI.js +11 -11
- package/HiNotice/HiKPINotice.js +1 -1
- package/HiSelect/HiDynamicSelect.js +7 -7
- package/HiSelect/HiNestedSelect.js +12 -12
- package/HiSelect/HiNestedSelectContent.js +9 -9
- package/HiSelect/HiSelect.js +56 -58
- package/HiSelect/HiSelectContent.js +13 -13
- package/HiSelect/HiSelectInput.js +7 -7
- package/HiSelect/HiSuggestSelect.js +62 -54
- package/HiSelectableList/HiSelectableList.js +28 -9
- package/HiSelectableList/HiSelectableListItem.js +6 -5
- package/HiTable/HiTable.js +3 -3
- package/HiTable/HiTableRow.js +3 -3
- package/es/HiAlertModal/HiAlertModal.js +26 -4
- package/es/HiBreadcrumb/HiBreadcrumb.js +1 -1
- package/es/HiButton/HiButton.js +57 -41
- package/es/HiColoredLabel/HiColoredLabel.js +2 -1
- package/es/HiDatePicker/HiDatePicker.js +1 -3
- package/es/HiExpansionPanel/HiExpansionPanel.js +19 -10
- package/es/HiForm/index.js +3 -1
- package/es/HiIcon/HiIcon.js +9 -1
- package/es/HiNotice/HiKPI.js +8 -8
- package/es/HiNotice/HiKPINotice.js +1 -1
- package/es/HiSelect/HiSelect.js +30 -27
- package/es/HiSelect/HiSuggestSelect.js +61 -52
- package/es/HiSelectableList/HiSelectableList.js +26 -8
- package/es/HiSelectableList/HiSelectableListItem.js +2 -1
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -2
- package/HiDatePicker/Caption.spec.js +0 -88
- package/HiDatePicker/ListPicker.spec.js +0 -67
- package/HiDatePicker/NavBar.spec.js +0 -55
- package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -74
- package/HiDatePicker/Overlays/Overlay.spec.js +0 -34
- package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -71
- package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -127
- package/es/HiDatePicker/Caption.spec.js +0 -68
- package/es/HiDatePicker/ListPicker.spec.js +0 -50
- package/es/HiDatePicker/NavBar.spec.js +0 -39
- package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -53
- package/es/HiDatePicker/Overlays/Overlay.spec.js +0 -25
- package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -53
- 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'
|
92
|
-
|
100
|
+
if (event.key === 'ArrowDown') {
|
101
|
+
event.preventDefault();
|
93
102
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
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
|
-
|
100
|
-
|
101
|
-
|
102
|
-
}
|
103
|
-
}
|
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.
|
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
|
-
|
145
|
-
focused: false
|
130
|
+
focused: true
|
146
131
|
});
|
147
132
|
|
148
|
-
if (this.props.
|
149
|
-
this.props.
|
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
|
-
|
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
|
-
|
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:
|
334
|
+
alt: '',
|
334
335
|
onError: e => {
|
335
336
|
if (fallbackImage) {
|
336
337
|
e.target.src = `${fallbackImage}`;
|
package/index.es.js
CHANGED
package/index.js
CHANGED
package/package.json
CHANGED
@@ -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
|
-
});
|