@pingux/astro 2.32.0-alpha.8 → 2.32.0
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/lib/cjs/components/TreeView/TreeView.js +99 -11
- package/lib/cjs/components/TreeView/TreeView.stories.js +23 -10
- package/lib/cjs/components/TreeView/TreeView.styles.js +22 -2
- package/lib/cjs/components/TreeView/TreeView.test.js +91 -11
- package/lib/cjs/components/TreeView/TreeViewItem.js +112 -14
- package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.js +200 -0
- package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.test.js +511 -0
- package/lib/cjs/components/TreeView/TreeViewRow.js +20 -5
- package/lib/cjs/components/TreeView/TreeViewSection.js +164 -16
- package/lib/cjs/components/TreeView/TreeViewWrapper.js +40 -0
- package/lib/cjs/hooks/useField/index.d.ts +1 -0
- package/lib/cjs/hooks/useField/useField.d.ts +1686 -0
- package/lib/cjs/hooks/useField/useField.js +7 -16
- package/lib/cjs/hooks/useField/useField.test.d.ts +1 -0
- package/lib/cjs/hooks/useField/useField.test.js +6 -6
- package/lib/cjs/hooks/useModalState/index.d.ts +1 -0
- package/lib/cjs/hooks/useModalState/useModalState.d.ts +21 -0
- package/lib/cjs/hooks/useModalState/useModalState.js +0 -9
- package/lib/cjs/hooks/useModalState/useModalState.test.d.ts +1 -0
- package/lib/cjs/hooks/useMountTransition/index.d.ts +1 -0
- package/lib/cjs/hooks/useMountTransition/useMountTransition.d.ts +14 -0
- package/lib/cjs/hooks/useMountTransition/useMountTransition.js +0 -9
- package/lib/cjs/hooks/useMountTransition/useMountTransition.test.d.ts +1 -0
- package/lib/cjs/hooks/useMountTransition/useMountTransition.test.js +2 -2
- package/lib/cjs/hooks/useStatusClasses/index.d.ts +1 -0
- package/lib/cjs/hooks/useStatusClasses/useStatusClasses.d.ts +18 -0
- package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +0 -9
- package/lib/cjs/hooks/useStatusClasses/useStatusClasses.test.d.ts +1 -0
- package/lib/components/TreeView/TreeView.js +100 -12
- package/lib/components/TreeView/TreeView.stories.js +23 -10
- package/lib/components/TreeView/TreeView.styles.js +22 -2
- package/lib/components/TreeView/TreeView.test.js +92 -12
- package/lib/components/TreeView/TreeViewItem.js +111 -14
- package/lib/components/TreeView/TreeViewKeyboardDelegate.js +176 -0
- package/lib/components/TreeView/TreeViewKeyboardDelegate.test.js +496 -0
- package/lib/components/TreeView/TreeViewRow.js +20 -5
- package/lib/components/TreeView/TreeViewSection.js +161 -16
- package/lib/components/TreeView/TreeViewWrapper.js +31 -0
- package/lib/hooks/useField/useField.js +7 -16
- package/lib/hooks/useField/useField.test.js +6 -6
- package/lib/hooks/useModalState/useModalState.js +0 -10
- package/lib/hooks/useMountTransition/useMountTransition.js +0 -10
- package/lib/hooks/useMountTransition/useMountTransition.test.js +2 -2
- package/lib/hooks/useStatusClasses/useStatusClasses.js +0 -10
- package/package.json +1 -1
@@ -0,0 +1,200 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.verifyIndex = exports.sectionPressHandlers = exports.pageUpOrDown = exports.onUpPress = exports.onTabPress = exports.onSpacePress = exports.onRightPress = exports.onRightLeftItemPress = exports.onPageUpPress = exports.onPageDownPress = exports.onLeftPress = exports.onHomePress = exports.onEnterPress = exports.onEndPress = exports.onDownPress = exports.itemPressHandlers = void 0;
|
9
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
10
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
11
|
+
var focusPrevious = function focusPrevious(index, refArray, flatKeyList) {
|
12
|
+
if (index !== 0) {
|
13
|
+
var key = flatKeyList[index - 1].key;
|
14
|
+
var _refArray$find = (0, _find["default"])(refArray).call(refArray, function (item) {
|
15
|
+
return item.key === key;
|
16
|
+
}),
|
17
|
+
thisRef = _refArray$find.thisRef;
|
18
|
+
thisRef.current.focus();
|
19
|
+
}
|
20
|
+
};
|
21
|
+
var focusNext = function focusNext(index, refArray, flatKeyList) {
|
22
|
+
if (index !== flatKeyList.length - 1) {
|
23
|
+
var key = flatKeyList[index + 1].key;
|
24
|
+
var _refArray$find2 = (0, _find["default"])(refArray).call(refArray, function (item) {
|
25
|
+
return item.key === key;
|
26
|
+
}),
|
27
|
+
thisRef = _refArray$find2.thisRef;
|
28
|
+
thisRef.current.focus();
|
29
|
+
}
|
30
|
+
};
|
31
|
+
var verifyIndex = function verifyIndex(thisIndex, interval, length) {
|
32
|
+
var newIndex = thisIndex + interval;
|
33
|
+
if (newIndex < 0) {
|
34
|
+
return 0;
|
35
|
+
}
|
36
|
+
if (newIndex >= length) {
|
37
|
+
return length - 1;
|
38
|
+
}
|
39
|
+
return newIndex;
|
40
|
+
};
|
41
|
+
exports.verifyIndex = verifyIndex;
|
42
|
+
var onHomePress = function onHomePress(key, flatKeyArray, refArray) {
|
43
|
+
var _thisRef$current;
|
44
|
+
var firstKey = flatKeyArray[0];
|
45
|
+
if (firstKey.key === key) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
var _refArray$find3 = (0, _find["default"])(refArray).call(refArray, function (_item) {
|
49
|
+
return _item.key === firstKey.key;
|
50
|
+
}),
|
51
|
+
thisRef = _refArray$find3.thisRef;
|
52
|
+
(_thisRef$current = thisRef.current) === null || _thisRef$current === void 0 ? void 0 : _thisRef$current.focus();
|
53
|
+
};
|
54
|
+
exports.onHomePress = onHomePress;
|
55
|
+
var onEndPress = function onEndPress(key, flatKeyArray, refArray) {
|
56
|
+
var _thisRef$current2;
|
57
|
+
var lastKey = flatKeyArray[flatKeyArray.length - 1];
|
58
|
+
if (lastKey.key === key) {
|
59
|
+
return;
|
60
|
+
}
|
61
|
+
var _refArray$find4 = (0, _find["default"])(refArray).call(refArray, function (_item) {
|
62
|
+
return _item.key === lastKey.key;
|
63
|
+
}),
|
64
|
+
thisRef = _refArray$find4.thisRef;
|
65
|
+
(_thisRef$current2 = thisRef.current) === null || _thisRef$current2 === void 0 ? void 0 : _thisRef$current2.focus();
|
66
|
+
};
|
67
|
+
exports.onEndPress = onEndPress;
|
68
|
+
var pageUpOrDown = function pageUpOrDown(key, flatKeyArray, refArray, pageLength) {
|
69
|
+
var _thisRef$current3;
|
70
|
+
var thisIndex = (0, _findIndex["default"])(flatKeyArray).call(flatKeyArray, function (item) {
|
71
|
+
return item.key === key;
|
72
|
+
});
|
73
|
+
var newIndex = verifyIndex(thisIndex, pageLength, flatKeyArray.length);
|
74
|
+
var foundKey = flatKeyArray[newIndex].key;
|
75
|
+
var _refArray$find5 = (0, _find["default"])(refArray).call(refArray, function (_item) {
|
76
|
+
return _item.key === foundKey;
|
77
|
+
}),
|
78
|
+
thisRef = _refArray$find5.thisRef;
|
79
|
+
(_thisRef$current3 = thisRef.current) === null || _thisRef$current3 === void 0 ? void 0 : _thisRef$current3.focus();
|
80
|
+
};
|
81
|
+
exports.pageUpOrDown = pageUpOrDown;
|
82
|
+
var onEnterPress = function onEnterPress(e, state, key) {
|
83
|
+
state.toggleKey(key);
|
84
|
+
e.preventDefault();
|
85
|
+
e.stopPropagation();
|
86
|
+
};
|
87
|
+
exports.onEnterPress = onEnterPress;
|
88
|
+
var onLeftPress = function onLeftPress(e, focusManager, state, key, isExpanded, refArray) {
|
89
|
+
var isEventTargetAKey = (0, _find["default"])(refArray).call(refArray, function (_item) {
|
90
|
+
return _item.thisRef.current === e.target;
|
91
|
+
});
|
92
|
+
if (isExpanded && isEventTargetAKey) {
|
93
|
+
state.toggleKey(key);
|
94
|
+
}
|
95
|
+
if (isExpanded && !isEventTargetAKey) {
|
96
|
+
focusManager.focusPrevious();
|
97
|
+
}
|
98
|
+
e.preventDefault();
|
99
|
+
e.stopPropagation();
|
100
|
+
};
|
101
|
+
exports.onLeftPress = onLeftPress;
|
102
|
+
var onSpacePress = function onSpacePress(e, tree, key, isSelected) {
|
103
|
+
if (isSelected) {
|
104
|
+
tree.setSelectedKeys([]);
|
105
|
+
} else {
|
106
|
+
tree.setSelectedKeys([key]);
|
107
|
+
}
|
108
|
+
e.preventDefault();
|
109
|
+
e.stopPropagation();
|
110
|
+
};
|
111
|
+
exports.onSpacePress = onSpacePress;
|
112
|
+
var onUpPress = function onUpPress(e, key, refArray, flatKeyList) {
|
113
|
+
var foundIndex = (0, _findIndex["default"])(flatKeyList).call(flatKeyList, function (item) {
|
114
|
+
return item.key === key;
|
115
|
+
});
|
116
|
+
focusPrevious(foundIndex, refArray, flatKeyList);
|
117
|
+
e.preventDefault();
|
118
|
+
e.stopPropagation();
|
119
|
+
};
|
120
|
+
exports.onUpPress = onUpPress;
|
121
|
+
var onTabPress = function onTabPress(e, refArray, focusManager, isSection) {
|
122
|
+
var isEventTargetAKey = (0, _find["default"])(refArray).call(refArray, function (_item) {
|
123
|
+
return _item.thisRef.current === e.target;
|
124
|
+
});
|
125
|
+
if (isEventTargetAKey && isSection) {
|
126
|
+
focusManager.focusNext();
|
127
|
+
e.preventDefault();
|
128
|
+
e.stopPropagation();
|
129
|
+
}
|
130
|
+
};
|
131
|
+
exports.onTabPress = onTabPress;
|
132
|
+
var onRightPress = function onRightPress(e, focusManager, state, key, isExpanded, refArray) {
|
133
|
+
if (!isExpanded) {
|
134
|
+
state.toggleKey(key);
|
135
|
+
return;
|
136
|
+
}
|
137
|
+
var isEventTargetAKey = (0, _find["default"])(refArray).call(refArray, function (_item) {
|
138
|
+
return _item.thisRef.current === e.target;
|
139
|
+
});
|
140
|
+
if (isExpanded && isEventTargetAKey) {
|
141
|
+
focusManager.focusNext();
|
142
|
+
}
|
143
|
+
e.preventDefault();
|
144
|
+
e.stopPropagation();
|
145
|
+
};
|
146
|
+
exports.onRightPress = onRightPress;
|
147
|
+
var onDownPress = function onDownPress(e, key, refArray, flatKeyList) {
|
148
|
+
// find the key
|
149
|
+
var foundIndex = (0, _findIndex["default"])(flatKeyList).call(flatKeyList, function (item) {
|
150
|
+
return item.key === key;
|
151
|
+
});
|
152
|
+
focusNext(foundIndex, refArray, flatKeyList);
|
153
|
+
// check if first or last
|
154
|
+
e.preventDefault();
|
155
|
+
e.stopPropagation();
|
156
|
+
};
|
157
|
+
exports.onDownPress = onDownPress;
|
158
|
+
var onRightLeftItemPress = function onRightLeftItemPress(e) {
|
159
|
+
e.preventDefault();
|
160
|
+
e.stopPropagation();
|
161
|
+
};
|
162
|
+
exports.onRightLeftItemPress = onRightLeftItemPress;
|
163
|
+
var onPageUpPress = function onPageUpPress(e, key, flatKeyArray, refArray, pageLength) {
|
164
|
+
pageUpOrDown(key, flatKeyArray, refArray, -Math.abs(pageLength));
|
165
|
+
e.preventDefault();
|
166
|
+
e.stopPropagation();
|
167
|
+
};
|
168
|
+
exports.onPageUpPress = onPageUpPress;
|
169
|
+
var onPageDownPress = function onPageDownPress(e, key, flatKeyArray, refArray, pageLength) {
|
170
|
+
pageUpOrDown(key, flatKeyArray, refArray, Math.abs(pageLength));
|
171
|
+
e.preventDefault();
|
172
|
+
e.stopPropagation();
|
173
|
+
};
|
174
|
+
exports.onPageDownPress = onPageDownPress;
|
175
|
+
var sectionPressHandlers = {
|
176
|
+
onEnterPress: onEnterPress,
|
177
|
+
onSpacePress: onSpacePress,
|
178
|
+
onLeftPress: onLeftPress,
|
179
|
+
onRightPress: onRightPress,
|
180
|
+
onUpPress: onUpPress,
|
181
|
+
onDownPress: onDownPress,
|
182
|
+
onTabPress: onTabPress,
|
183
|
+
onPageUpPress: onPageUpPress,
|
184
|
+
onPageDownPress: onPageDownPress,
|
185
|
+
onHomePress: onHomePress,
|
186
|
+
onEndPress: onEndPress
|
187
|
+
};
|
188
|
+
exports.sectionPressHandlers = sectionPressHandlers;
|
189
|
+
var itemPressHandlers = {
|
190
|
+
onSpacePress: onSpacePress,
|
191
|
+
onDownPress: onDownPress,
|
192
|
+
onUpPress: onUpPress,
|
193
|
+
onRightLeftItemPress: onRightLeftItemPress,
|
194
|
+
onTabPress: onTabPress,
|
195
|
+
onPageUpPress: onPageUpPress,
|
196
|
+
onPageDownPress: onPageDownPress,
|
197
|
+
onHomePress: onHomePress,
|
198
|
+
onEndPress: onEndPress
|
199
|
+
};
|
200
|
+
exports.itemPressHandlers = itemPressHandlers;
|
@@ -0,0 +1,511 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
9
|
+
value: true
|
10
|
+
});
|
11
|
+
exports.refArray = exports.flatKeyArray = void 0;
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
13
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
15
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
16
|
+
var _isIterable = require("../../utils/devUtils/props/isIterable");
|
17
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
18
|
+
var _TreeViewItem = require("./TreeViewItem");
|
19
|
+
var _TreeViewKeyboardDelegate = require("./TreeViewKeyboardDelegate");
|
20
|
+
var _TreeViewSection = require("./TreeViewSection");
|
21
|
+
var _react2 = require("@emotion/react");
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
23
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
24
|
+
var testId = 'test-keyboard-tree';
|
25
|
+
var toggleKey = jest.fn();
|
26
|
+
var setSelectedKeys = jest.fn();
|
27
|
+
var focusPrevious = jest.fn();
|
28
|
+
var focusNext = jest.fn();
|
29
|
+
var refFocus = jest.fn();
|
30
|
+
var state = {
|
31
|
+
toggleKey: toggleKey
|
32
|
+
};
|
33
|
+
var tree = {
|
34
|
+
setSelectedKeys: setSelectedKeys
|
35
|
+
};
|
36
|
+
var focusManager = {
|
37
|
+
focusPrevious: focusPrevious,
|
38
|
+
focusNext: focusNext
|
39
|
+
};
|
40
|
+
var refArray = [{
|
41
|
+
key: 'testprior',
|
42
|
+
thisRef: {
|
43
|
+
current: {
|
44
|
+
focus: refFocus
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}, {
|
48
|
+
key: 'test',
|
49
|
+
thisRef: {
|
50
|
+
current: {
|
51
|
+
focus: refFocus
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}, {
|
55
|
+
key: 'testsecond',
|
56
|
+
thisRef: {
|
57
|
+
current: {
|
58
|
+
focus: refFocus
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}];
|
62
|
+
exports.refArray = refArray;
|
63
|
+
var flatKeyArray = [{
|
64
|
+
key: 'testprior'
|
65
|
+
}, {
|
66
|
+
key: 'test'
|
67
|
+
}, {
|
68
|
+
key: 'testsecond'
|
69
|
+
}];
|
70
|
+
exports.flatKeyArray = flatKeyArray;
|
71
|
+
var defaultProps = {
|
72
|
+
'data-testid': testId,
|
73
|
+
focusManager: focusManager,
|
74
|
+
state: state,
|
75
|
+
tree: tree,
|
76
|
+
key: 'test',
|
77
|
+
flatKeyArray: flatKeyArray,
|
78
|
+
refArray: refArray
|
79
|
+
};
|
80
|
+
var TestComponent = function TestComponent(props) {
|
81
|
+
var focusManagerProp = props.focusManager,
|
82
|
+
stateProp = props.state,
|
83
|
+
treeProp = props.tree,
|
84
|
+
isSelected = props.isSelected,
|
85
|
+
isExpanded = props.isExpanded,
|
86
|
+
_props$isInRefArray = props.isInRefArray,
|
87
|
+
isInRefArray = _props$isInRefArray === void 0 ? true : _props$isInRefArray,
|
88
|
+
flatKeyArrayProp = props.flatKeyArray,
|
89
|
+
refArrayProp = props.refArray;
|
90
|
+
var thisRef = (0, _react.useRef)(null);
|
91
|
+
var testOnKeyDown = function testOnKeyDown(e) {
|
92
|
+
props.onKeyDown(e, stateProp, 'test', treeProp, isSelected, isExpanded, focusManagerProp, flatKeyArrayProp, refArrayProp, 5, true);
|
93
|
+
};
|
94
|
+
var testOnKeyDownAddRef = function testOnKeyDownAddRef(e) {
|
95
|
+
var _context;
|
96
|
+
props.onKeyDown(e, stateProp, 'test', treeProp, isSelected, isExpanded, focusManagerProp, flatKeyArrayProp, (0, _concat["default"])(_context = []).call(_context, refArrayProp, [{
|
97
|
+
key: 'button',
|
98
|
+
thisRef: thisRef
|
99
|
+
}]), 5, true);
|
100
|
+
};
|
101
|
+
return (0, _react2.jsx)("div", null, (0, _react2.jsx)("button", {
|
102
|
+
ref: thisRef,
|
103
|
+
onKeyDown: function onKeyDown(e) {
|
104
|
+
return isInRefArray ? testOnKeyDownAddRef(e) : testOnKeyDown(e);
|
105
|
+
}
|
106
|
+
}, "let us test keypresses"));
|
107
|
+
};
|
108
|
+
TestComponent.propTypes = {
|
109
|
+
isInRefArray: _propTypes["default"].bool,
|
110
|
+
isEventTargetAKey: _propTypes["default"].bool,
|
111
|
+
state: _propTypes["default"].shape({
|
112
|
+
toggleKey: _propTypes["default"].func
|
113
|
+
}),
|
114
|
+
tree: _propTypes["default"].shape({
|
115
|
+
setSelectedKeys: _propTypes["default"].func
|
116
|
+
}),
|
117
|
+
focusManager: _propTypes["default"].shape({
|
118
|
+
focusPrevious: _propTypes["default"].func,
|
119
|
+
focusNext: _propTypes["default"].func
|
120
|
+
}),
|
121
|
+
isExpanded: _propTypes["default"].bool,
|
122
|
+
isSelected: _propTypes["default"].bool,
|
123
|
+
onKeyDown: _propTypes["default"].func,
|
124
|
+
flatKeyArray: _isIterable.isIterableProp,
|
125
|
+
refArray: _isIterable.isIterableProp
|
126
|
+
};
|
127
|
+
var getComponent = function getComponent() {
|
128
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
129
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(TestComponent, (0, _extends2["default"])({}, defaultProps, props)));
|
130
|
+
};
|
131
|
+
afterEach(function () {
|
132
|
+
jest.clearAllMocks();
|
133
|
+
});
|
134
|
+
afterAll(function () {
|
135
|
+
jest.restoreAllMocks();
|
136
|
+
});
|
137
|
+
test('OnEnterPress calls when enter is pressed', function () {
|
138
|
+
getComponent({
|
139
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
140
|
+
});
|
141
|
+
var button = _testWrapper.screen.getByRole('button');
|
142
|
+
_testWrapper.fireEvent.keyDown(button, {
|
143
|
+
key: 'Enter',
|
144
|
+
keyCode: 13
|
145
|
+
});
|
146
|
+
_testWrapper.fireEvent.keyUp(button, {
|
147
|
+
key: 'Enter',
|
148
|
+
keyCode: 13
|
149
|
+
});
|
150
|
+
expect(toggleKey).toHaveBeenCalled();
|
151
|
+
});
|
152
|
+
test('onSpacePress calls when space is pressed', function () {
|
153
|
+
getComponent({
|
154
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
155
|
+
});
|
156
|
+
var button = _testWrapper.screen.getByRole('button');
|
157
|
+
_testWrapper.fireEvent.keyDown(button, {
|
158
|
+
key: 'Space',
|
159
|
+
keyCode: 32
|
160
|
+
});
|
161
|
+
_testWrapper.fireEvent.keyUp(button, {
|
162
|
+
key: 'Space',
|
163
|
+
keyCode: 32
|
164
|
+
});
|
165
|
+
expect(setSelectedKeys).toHaveBeenCalled();
|
166
|
+
});
|
167
|
+
test('onSpacePress calls when space is pressed, and selected', function () {
|
168
|
+
getComponent({
|
169
|
+
onKeyDown: _TreeViewSection.onKeyDownSection,
|
170
|
+
isSelected: true
|
171
|
+
});
|
172
|
+
var button = _testWrapper.screen.getByRole('button');
|
173
|
+
_testWrapper.fireEvent.keyDown(button, {
|
174
|
+
key: 'Space',
|
175
|
+
keyCode: 32
|
176
|
+
});
|
177
|
+
_testWrapper.fireEvent.keyUp(button, {
|
178
|
+
key: 'Space',
|
179
|
+
keyCode: 32
|
180
|
+
});
|
181
|
+
expect(setSelectedKeys).toHaveBeenCalled();
|
182
|
+
});
|
183
|
+
test('onSpacePress calls when space is pressed, item', function () {
|
184
|
+
getComponent({
|
185
|
+
onKeyDown: _TreeViewItem.onKeyDownItem,
|
186
|
+
isInRefArray: false
|
187
|
+
});
|
188
|
+
var button = _testWrapper.screen.getByRole('button');
|
189
|
+
_testWrapper.fireEvent.keyDown(button, {
|
190
|
+
key: 'Space',
|
191
|
+
keyCode: 32
|
192
|
+
});
|
193
|
+
_testWrapper.fireEvent.keyUp(button, {
|
194
|
+
key: 'Space',
|
195
|
+
keyCode: 32
|
196
|
+
});
|
197
|
+
expect(setSelectedKeys).toHaveBeenCalled();
|
198
|
+
});
|
199
|
+
test('onLeftPress calls when Left Arrow is pressed and expanded', function () {
|
200
|
+
getComponent({
|
201
|
+
isExpanded: true,
|
202
|
+
onKeyDown: _TreeViewSection.onKeyDownSection,
|
203
|
+
isInRefArray: false
|
204
|
+
});
|
205
|
+
var button = _testWrapper.screen.getByRole('button');
|
206
|
+
_testWrapper.fireEvent.keyDown(button, {
|
207
|
+
key: 'ArrowLeft',
|
208
|
+
keyCode: 37
|
209
|
+
});
|
210
|
+
_testWrapper.fireEvent.keyUp(button, {
|
211
|
+
key: 'ArrowLeft',
|
212
|
+
keyCode: 37
|
213
|
+
});
|
214
|
+
expect(toggleKey).not.toHaveBeenCalled();
|
215
|
+
expect(focusPrevious).toHaveBeenCalled();
|
216
|
+
});
|
217
|
+
test('onLeftPress does not call when Left Arrow is pressed and NOT expanded', function () {
|
218
|
+
getComponent({
|
219
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
220
|
+
});
|
221
|
+
var button = _testWrapper.screen.getByRole('button');
|
222
|
+
_testWrapper.fireEvent.keyDown(button, {
|
223
|
+
key: 'ArrowLeft',
|
224
|
+
keyCode: 37
|
225
|
+
});
|
226
|
+
_testWrapper.fireEvent.keyUp(button, {
|
227
|
+
key: 'ArrowLeft',
|
228
|
+
keyCode: 37
|
229
|
+
});
|
230
|
+
expect(toggleKey).not.toHaveBeenCalled();
|
231
|
+
expect(focusPrevious).not.toHaveBeenCalled();
|
232
|
+
});
|
233
|
+
test('onRightPress calls when Right Arrow is pressed and NOT expanded', function () {
|
234
|
+
getComponent({
|
235
|
+
onKeyDown: _TreeViewSection.onKeyDownSection,
|
236
|
+
isInRefArray: false
|
237
|
+
});
|
238
|
+
var button = _testWrapper.screen.getByRole('button');
|
239
|
+
_testWrapper.fireEvent.keyDown(button, {
|
240
|
+
key: 'ArrowRight',
|
241
|
+
keyCode: 39
|
242
|
+
});
|
243
|
+
_testWrapper.fireEvent.keyUp(button, {
|
244
|
+
key: 'ArrowRight',
|
245
|
+
keyCode: 39
|
246
|
+
});
|
247
|
+
expect(toggleKey).toHaveBeenCalled();
|
248
|
+
expect(focusNext).not.toHaveBeenCalled();
|
249
|
+
});
|
250
|
+
test('onRightPress calls correct callback when Right Arrow is pressed and expanded', function () {
|
251
|
+
getComponent({
|
252
|
+
onKeyDown: _TreeViewSection.onKeyDownSection,
|
253
|
+
isExpanded: true,
|
254
|
+
isInRefArray: false
|
255
|
+
});
|
256
|
+
var button = _testWrapper.screen.getByRole('button');
|
257
|
+
_testWrapper.fireEvent.keyDown(button, {
|
258
|
+
key: 'ArrowRight',
|
259
|
+
keyCode: 39
|
260
|
+
});
|
261
|
+
_testWrapper.fireEvent.keyUp(button, {
|
262
|
+
key: 'ArrowRight',
|
263
|
+
keyCode: 39
|
264
|
+
});
|
265
|
+
expect(toggleKey).not.toHaveBeenCalled();
|
266
|
+
expect(focusNext).not.toHaveBeenCalled();
|
267
|
+
});
|
268
|
+
test('onLeftPress calls when Left Arrow is pressed and expanded', function () {
|
269
|
+
getComponent({
|
270
|
+
isExpanded: true,
|
271
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
272
|
+
});
|
273
|
+
var button = _testWrapper.screen.getByRole('button');
|
274
|
+
_testWrapper.fireEvent.keyDown(button, {
|
275
|
+
key: 'ArrowRight',
|
276
|
+
keyCode: 39
|
277
|
+
});
|
278
|
+
_testWrapper.fireEvent.keyUp(button, {
|
279
|
+
key: 'ArrowRight',
|
280
|
+
keyCode: 39
|
281
|
+
});
|
282
|
+
expect(toggleKey).not.toHaveBeenCalled();
|
283
|
+
});
|
284
|
+
test('onDownPress calls when down Arrow is pressed and expanded', function () {
|
285
|
+
getComponent({
|
286
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
287
|
+
});
|
288
|
+
var button = _testWrapper.screen.getByRole('button');
|
289
|
+
_testWrapper.fireEvent.keyDown(button, {
|
290
|
+
key: 'ArrowDown',
|
291
|
+
keyCode: 40
|
292
|
+
});
|
293
|
+
_testWrapper.fireEvent.keyUp(button, {
|
294
|
+
key: 'ArrowDown',
|
295
|
+
keyCode: 40
|
296
|
+
});
|
297
|
+
expect(refFocus).toHaveBeenCalled();
|
298
|
+
});
|
299
|
+
test('onUpPress calls when down Arrow is pressed and expanded', function () {
|
300
|
+
getComponent({
|
301
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
302
|
+
});
|
303
|
+
var button = _testWrapper.screen.getByRole('button');
|
304
|
+
_testWrapper.fireEvent.keyDown(button, {
|
305
|
+
key: 'ArrowUp',
|
306
|
+
keyCode: 38
|
307
|
+
});
|
308
|
+
_testWrapper.fireEvent.keyUp(button, {
|
309
|
+
key: 'ArrowUp',
|
310
|
+
keyCode: 38
|
311
|
+
});
|
312
|
+
expect(refFocus).toHaveBeenCalled();
|
313
|
+
});
|
314
|
+
test('onUpPress calls when down Arrow is pressed and expanded for items', function () {
|
315
|
+
getComponent({
|
316
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
317
|
+
});
|
318
|
+
var button = _testWrapper.screen.getByRole('button');
|
319
|
+
_testWrapper.fireEvent.keyDown(button, {
|
320
|
+
key: 'ArrowUp',
|
321
|
+
keyCode: 38
|
322
|
+
});
|
323
|
+
_testWrapper.fireEvent.keyUp(button, {
|
324
|
+
key: 'ArrowUp',
|
325
|
+
keyCode: 38
|
326
|
+
});
|
327
|
+
expect(refFocus).toHaveBeenCalled();
|
328
|
+
});
|
329
|
+
test('onPageUpPress calls when page up is pressed', function () {
|
330
|
+
getComponent({
|
331
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
332
|
+
});
|
333
|
+
var button = _testWrapper.screen.getByRole('button');
|
334
|
+
_testWrapper.fireEvent.keyDown(button, {
|
335
|
+
key: 'PageUp',
|
336
|
+
keyCode: 33
|
337
|
+
});
|
338
|
+
_testWrapper.fireEvent.keyUp(button, {
|
339
|
+
key: 'PageUp',
|
340
|
+
keyCode: 33
|
341
|
+
});
|
342
|
+
expect(refFocus).toHaveBeenCalled();
|
343
|
+
});
|
344
|
+
test('onPageUpPress calls when page up is pressed, on section', function () {
|
345
|
+
getComponent({
|
346
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
347
|
+
});
|
348
|
+
var button = _testWrapper.screen.getByRole('button');
|
349
|
+
_testWrapper.fireEvent.keyDown(button, {
|
350
|
+
key: 'PageUp',
|
351
|
+
keyCode: 33
|
352
|
+
});
|
353
|
+
_testWrapper.fireEvent.keyUp(button, {
|
354
|
+
key: 'PageUp',
|
355
|
+
keyCode: 33
|
356
|
+
});
|
357
|
+
expect(refFocus).toHaveBeenCalled();
|
358
|
+
});
|
359
|
+
test('onPageDownPress calls when page up is pressed', function () {
|
360
|
+
getComponent({
|
361
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
362
|
+
});
|
363
|
+
var button = _testWrapper.screen.getByRole('button');
|
364
|
+
_testWrapper.fireEvent.keyDown(button, {
|
365
|
+
key: 'PageDown',
|
366
|
+
keyCode: 34
|
367
|
+
});
|
368
|
+
_testWrapper.fireEvent.keyUp(button, {
|
369
|
+
key: 'PageDown',
|
370
|
+
keyCode: 34
|
371
|
+
});
|
372
|
+
expect(refFocus).toHaveBeenCalled();
|
373
|
+
});
|
374
|
+
test('onPageDownPress calls when page up is pressed, on section', function () {
|
375
|
+
getComponent({
|
376
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
377
|
+
});
|
378
|
+
var button = _testWrapper.screen.getByRole('button');
|
379
|
+
_testWrapper.fireEvent.keyDown(button, {
|
380
|
+
key: 'PageDown',
|
381
|
+
keyCode: 34
|
382
|
+
});
|
383
|
+
_testWrapper.fireEvent.keyUp(button, {
|
384
|
+
key: 'PageDown',
|
385
|
+
keyCode: 34
|
386
|
+
});
|
387
|
+
expect(refFocus).toHaveBeenCalled();
|
388
|
+
});
|
389
|
+
test('onDownPress calls when down Arrow is pressed and expanded, for items', function () {
|
390
|
+
getComponent({
|
391
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
392
|
+
});
|
393
|
+
var button = _testWrapper.screen.getByRole('button');
|
394
|
+
_testWrapper.fireEvent.keyDown(button, {
|
395
|
+
key: 'ArrowDown',
|
396
|
+
keyCode: 40
|
397
|
+
});
|
398
|
+
_testWrapper.fireEvent.keyUp(button, {
|
399
|
+
key: 'ArrowDown',
|
400
|
+
keyCode: 40
|
401
|
+
});
|
402
|
+
expect(refFocus).toHaveBeenCalled();
|
403
|
+
});
|
404
|
+
test('onTabPress calls correct callbacks', function () {
|
405
|
+
getComponent({
|
406
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
407
|
+
});
|
408
|
+
var button = _testWrapper.screen.getByRole('button');
|
409
|
+
_testWrapper.fireEvent.keyDown(button, {
|
410
|
+
key: 'Tab',
|
411
|
+
keyCode: 9
|
412
|
+
});
|
413
|
+
_testWrapper.fireEvent.keyUp(button, {
|
414
|
+
key: 'Tab',
|
415
|
+
keyCode: 9
|
416
|
+
});
|
417
|
+
expect(focusNext).not.toHaveBeenCalled();
|
418
|
+
});
|
419
|
+
test('onTabPress calls correct callbacks', function () {
|
420
|
+
getComponent({
|
421
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
422
|
+
});
|
423
|
+
var button = _testWrapper.screen.getByRole('button');
|
424
|
+
_testWrapper.fireEvent.keyDown(button, {
|
425
|
+
key: 'Tab',
|
426
|
+
keyCode: 9
|
427
|
+
});
|
428
|
+
_testWrapper.fireEvent.keyUp(button, {
|
429
|
+
key: 'Tab',
|
430
|
+
keyCode: 9
|
431
|
+
});
|
432
|
+
expect(focusNext).toHaveBeenCalled();
|
433
|
+
});
|
434
|
+
test('onEndPress calls correct callbacks', function () {
|
435
|
+
getComponent({
|
436
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
437
|
+
});
|
438
|
+
var button = _testWrapper.screen.getByRole('button');
|
439
|
+
_testWrapper.fireEvent.keyDown(button, {
|
440
|
+
key: 'End',
|
441
|
+
keyCode: 35
|
442
|
+
});
|
443
|
+
_testWrapper.fireEvent.keyUp(button, {
|
444
|
+
key: 'End',
|
445
|
+
keyCode: 35
|
446
|
+
});
|
447
|
+
expect(refFocus).toHaveBeenCalled();
|
448
|
+
});
|
449
|
+
test('onEndPress calls correct callbacks', function () {
|
450
|
+
getComponent({
|
451
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
452
|
+
});
|
453
|
+
var button = _testWrapper.screen.getByRole('button');
|
454
|
+
_testWrapper.fireEvent.keyDown(button, {
|
455
|
+
key: 'End',
|
456
|
+
keyCode: 35
|
457
|
+
});
|
458
|
+
_testWrapper.fireEvent.keyUp(button, {
|
459
|
+
key: 'End',
|
460
|
+
keyCode: 35
|
461
|
+
});
|
462
|
+
expect(refFocus).toHaveBeenCalled();
|
463
|
+
});
|
464
|
+
test('onHomePress calls correct callbacks', function () {
|
465
|
+
getComponent({
|
466
|
+
onKeyDown: _TreeViewSection.onKeyDownSection
|
467
|
+
});
|
468
|
+
var button = _testWrapper.screen.getByRole('button');
|
469
|
+
_testWrapper.fireEvent.keyDown(button, {
|
470
|
+
key: 'Home',
|
471
|
+
keyCode: 36
|
472
|
+
});
|
473
|
+
_testWrapper.fireEvent.keyUp(button, {
|
474
|
+
key: 'Home',
|
475
|
+
keyCode: 36
|
476
|
+
});
|
477
|
+
expect(refFocus).toHaveBeenCalled();
|
478
|
+
});
|
479
|
+
test('onHomePress calls correct callbacks', function () {
|
480
|
+
getComponent({
|
481
|
+
onKeyDown: _TreeViewItem.onKeyDownItem
|
482
|
+
});
|
483
|
+
var button = _testWrapper.screen.getByRole('button');
|
484
|
+
_testWrapper.fireEvent.keyDown(button, {
|
485
|
+
key: 'Home',
|
486
|
+
keyCode: 36
|
487
|
+
});
|
488
|
+
_testWrapper.fireEvent.keyUp(button, {
|
489
|
+
key: 'Home',
|
490
|
+
keyCode: 36
|
491
|
+
});
|
492
|
+
expect(refFocus).toHaveBeenCalled();
|
493
|
+
});
|
494
|
+
test('onLeftPress calls correct callbacks, when correct props are provided', function () {
|
495
|
+
var thisRefArray = [{
|
496
|
+
thisRef: {
|
497
|
+
current: 'test target'
|
498
|
+
}
|
499
|
+
}];
|
500
|
+
var thisEvent = {
|
501
|
+
target: 'test target',
|
502
|
+
preventDefault: function preventDefault() {
|
503
|
+
return jest.fn();
|
504
|
+
},
|
505
|
+
stopPropagation: function stopPropagation() {
|
506
|
+
return jest.fn();
|
507
|
+
}
|
508
|
+
};
|
509
|
+
(0, _TreeViewKeyboardDelegate.onLeftPress)(thisEvent, focusManager, state, 'test', true, thisRefArray);
|
510
|
+
expect(toggleKey).toHaveBeenCalled();
|
511
|
+
});
|