@ariakit/test 0.4.8 → 0.4.9
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 +4 -0
- package/cjs/__chunks/4P2TRHCD.cjs +67 -0
- package/cjs/__chunks/5USXAKSO.cjs +32 -0
- package/cjs/__chunks/72WSX5BL.cjs +201 -0
- package/cjs/__chunks/AA4DRZPS.cjs +19 -0
- package/cjs/__chunks/ANKVPRYL.cjs +27 -0
- package/cjs/__chunks/AYPQCP2P.cjs +90 -0
- package/cjs/__chunks/CAAOBH77.cjs +89 -0
- package/cjs/__chunks/E4OOGVMW.cjs +24 -0
- package/cjs/__chunks/EA2M4PHP.cjs +235 -0
- package/cjs/__chunks/EG24EIKR.cjs +134 -0
- package/cjs/__chunks/IDMD7IDF.cjs +1 -0
- package/cjs/__chunks/IWR6DHL3.cjs +13 -0
- package/cjs/__chunks/KKOPNQIH.cjs +133 -0
- package/cjs/__chunks/ML4UXKC3.cjs +56 -0
- package/cjs/__chunks/RHX5DDWS.cjs +83 -0
- package/cjs/__chunks/SMHVZDHR.cjs +33 -0
- package/cjs/__chunks/UYJAT53J.cjs +118 -0
- package/cjs/__chunks/XODU6QCY.cjs +12 -0
- package/cjs/blur.cjs +9 -0
- package/cjs/click.cjs +15 -0
- package/cjs/dispatch.cjs +8 -0
- package/cjs/focus.cjs +9 -0
- package/cjs/hover.cjs +10 -0
- package/cjs/index.cjs +64 -0
- package/cjs/mouse-down.cjs +11 -0
- package/cjs/mouse-up.cjs +9 -0
- package/cjs/playwright.cjs +19 -0
- package/cjs/press.cjs +13 -0
- package/cjs/query.cjs +10 -0
- package/cjs/react.cjs +103 -0
- package/cjs/select.cjs +15 -0
- package/cjs/sleep.cjs +8 -0
- package/cjs/tap.cjs +16 -0
- package/cjs/type.cjs +11 -0
- package/cjs/wait-for.cjs +8 -0
- package/esm/__chunks/433S5VGJ.js +91 -0
- package/esm/__chunks/4SG6SLGL.js +34 -0
- package/esm/__chunks/4VR4URFV.js +119 -0
- package/esm/__chunks/BG5U5JFH.js +68 -0
- package/esm/__chunks/CSF4U66P.js +13 -0
- package/esm/__chunks/CWTUOQ5Z.js +91 -0
- package/esm/__chunks/DFUW3DFA.js +134 -0
- package/esm/__chunks/DZ24E43J.js +20 -0
- package/esm/__chunks/HFG3HB6M.js +85 -0
- package/esm/__chunks/LK25WCYN.js +202 -0
- package/esm/__chunks/NR24PD4G.js +28 -0
- package/esm/__chunks/OLDQVNUU.js +236 -0
- package/esm/__chunks/RHBNMDK4.js +1 -0
- package/esm/__chunks/RTBDUQHD.js +135 -0
- package/esm/__chunks/SB7WYA2U.js +14 -0
- package/esm/__chunks/SM5ASDQ3.js +25 -0
- package/esm/__chunks/SOWA2DKF.js +33 -0
- package/esm/__chunks/Z7WVAAXJ.js +57 -0
- package/esm/blur.js +10 -0
- package/esm/click.js +16 -0
- package/esm/dispatch.js +9 -0
- package/esm/focus.js +10 -0
- package/esm/hover.js +11 -0
- package/esm/index.js +65 -0
- package/esm/mouse-down.js +12 -0
- package/esm/mouse-up.js +10 -0
- package/esm/playwright.js +20 -0
- package/esm/press.js +14 -0
- package/esm/query.js +11 -0
- package/esm/react.js +104 -0
- package/esm/select.js +16 -0
- package/esm/sleep.js +9 -0
- package/esm/tap.js +17 -0
- package/esm/type.js +12 -0
- package/esm/wait-for.js +9 -0
- package/package.json +64 -64
- package/readme.md +3 -2
- /package/cjs/__tests__/{blur-test.d.cts → blur-test.react.d.cts} +0 -0
- /package/cjs/__tests__/{blur-test.d.ts → blur-test.react.d.ts} +0 -0
- /package/esm/__tests__/{blur-test.d.ts → blur-test.react.d.ts} +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _UYJAT53Jcjs = require('./UYJAT53J.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _AA4DRZPScjs = require('./AA4DRZPS.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _5USXAKSOcjs = require('./5USXAKSO.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _SMHVZDHRcjs = require('./SMHVZDHR.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _72WSX5BLcjs = require('./72WSX5BL.cjs');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _RHX5DDWScjs = require('./RHX5DDWS.cjs');
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
var _E4OOGVMWcjs = require('./E4OOGVMW.cjs');
|
|
22
|
+
|
|
23
|
+
// src/press.ts
|
|
24
|
+
var _dom = require('@ariakit/core/utils/dom');
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
var _focus = require('@ariakit/core/utils/focus');
|
|
30
|
+
var clickableInputTypes = [
|
|
31
|
+
"button",
|
|
32
|
+
"color",
|
|
33
|
+
"file",
|
|
34
|
+
"image",
|
|
35
|
+
"reset",
|
|
36
|
+
"submit"
|
|
37
|
+
];
|
|
38
|
+
async function submitFormByPressingEnterOn(element, options) {
|
|
39
|
+
const { form } = element;
|
|
40
|
+
if (!form) return;
|
|
41
|
+
const elements = Array.from(form.elements);
|
|
42
|
+
const validInputs = elements.filter(
|
|
43
|
+
(el) => el instanceof HTMLInputElement && _dom.isTextField.call(void 0, el)
|
|
44
|
+
);
|
|
45
|
+
const submitButton = elements.find(
|
|
46
|
+
(el) => (el instanceof HTMLInputElement || el instanceof HTMLButtonElement) && el.type === "submit"
|
|
47
|
+
);
|
|
48
|
+
if (validInputs.length === 1 || submitButton) {
|
|
49
|
+
await _72WSX5BLcjs.dispatch.submit(form, options);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function isNumberInput(element) {
|
|
53
|
+
return element instanceof HTMLInputElement && element.type === "number";
|
|
54
|
+
}
|
|
55
|
+
async function incrementNumberInput(element, by = 1) {
|
|
56
|
+
const value = +element.value + by;
|
|
57
|
+
const max = element.max ? +element.max : Number.MAX_SAFE_INTEGER;
|
|
58
|
+
const min = element.min ? +element.min : Number.MIN_SAFE_INTEGER;
|
|
59
|
+
if (value > max || value < min) return;
|
|
60
|
+
element.value = value.toString();
|
|
61
|
+
await _72WSX5BLcjs.dispatch.input(element);
|
|
62
|
+
await _72WSX5BLcjs.dispatch.change(element);
|
|
63
|
+
}
|
|
64
|
+
var keyDownMap = {
|
|
65
|
+
async Tab(_, { shiftKey }) {
|
|
66
|
+
const nextElement = shiftKey ? _focus.getPreviousTabbable.call(void 0, ) : _focus.getNextTabbable.call(void 0, );
|
|
67
|
+
if (nextElement) {
|
|
68
|
+
await _SMHVZDHRcjs.focus.call(void 0, nextElement);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
async Enter(element, options) {
|
|
72
|
+
const nonSubmittableTypes = [...clickableInputTypes, "hidden"];
|
|
73
|
+
const isClickable = element.tagName === "BUTTON" || element instanceof HTMLInputElement && clickableInputTypes.includes(element.type);
|
|
74
|
+
const isSubmittable = element instanceof HTMLInputElement && !nonSubmittableTypes.includes(element.type);
|
|
75
|
+
if (isClickable) {
|
|
76
|
+
await _72WSX5BLcjs.dispatch.click(element, options);
|
|
77
|
+
} else if (isSubmittable) {
|
|
78
|
+
await submitFormByPressingEnterOn(element, options);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
async Home(element, { shiftKey }) {
|
|
82
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
83
|
+
const { value, selectionEnd } = element;
|
|
84
|
+
const end = Math.min(value.length, shiftKey ? selectionEnd != null ? selectionEnd : 0 : 0);
|
|
85
|
+
_dom.setSelectionRange.call(void 0, element, 0, end, "backward");
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
async End(element, { shiftKey }) {
|
|
89
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
90
|
+
const { value, selectionStart } = element;
|
|
91
|
+
const start = shiftKey ? selectionStart != null ? selectionStart : 0 : value.length;
|
|
92
|
+
_dom.setSelectionRange.call(void 0, element, start, value.length, "forward");
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
async ArrowLeft(element, { shiftKey }) {
|
|
96
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
97
|
+
const { value, selectionStart, selectionEnd, selectionDirection } = element;
|
|
98
|
+
const [start, end] = [selectionStart != null ? selectionStart : 0, selectionEnd != null ? selectionEnd : 0];
|
|
99
|
+
const collapsing = !shiftKey && start !== end;
|
|
100
|
+
const nextStart = Math.max(0, collapsing ? start : start - 1);
|
|
101
|
+
const nextEnd = Math.min(value.length, shiftKey ? end : nextStart);
|
|
102
|
+
_dom.setSelectionRange.call(void 0,
|
|
103
|
+
element,
|
|
104
|
+
nextStart,
|
|
105
|
+
nextEnd,
|
|
106
|
+
selectionDirection || "backward"
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
async ArrowRight(element, { shiftKey }) {
|
|
111
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
112
|
+
const { value, selectionStart, selectionEnd, selectionDirection } = element;
|
|
113
|
+
const [start, end] = [selectionStart != null ? selectionStart : 0, selectionEnd != null ? selectionEnd : 0];
|
|
114
|
+
const collapsing = !shiftKey && start !== end;
|
|
115
|
+
const nextEnd = Math.min(value.length, collapsing ? end : end + 1);
|
|
116
|
+
const nextStart = Math.max(0, shiftKey ? start : nextEnd);
|
|
117
|
+
_dom.setSelectionRange.call(void 0,
|
|
118
|
+
element,
|
|
119
|
+
nextStart,
|
|
120
|
+
nextEnd,
|
|
121
|
+
selectionDirection || "forward"
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
async ArrowUp(element, { shiftKey }) {
|
|
126
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
127
|
+
if (!shiftKey) {
|
|
128
|
+
return _dom.setSelectionRange.call(void 0, element, 0, 0);
|
|
129
|
+
}
|
|
130
|
+
const { selectionStart, selectionEnd, selectionDirection } = element;
|
|
131
|
+
const [start, end] = [selectionStart != null ? selectionStart : 0, selectionEnd != null ? selectionEnd : 0];
|
|
132
|
+
if (selectionDirection === "forward") {
|
|
133
|
+
_dom.setSelectionRange.call(void 0, element, start, start);
|
|
134
|
+
} else {
|
|
135
|
+
_dom.setSelectionRange.call(void 0, element, 0, end, "backward");
|
|
136
|
+
}
|
|
137
|
+
} else if (isNumberInput(element)) {
|
|
138
|
+
await incrementNumberInput(element);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
async ArrowDown(element, { shiftKey }) {
|
|
142
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
143
|
+
const length = element.value.length;
|
|
144
|
+
if (!shiftKey) {
|
|
145
|
+
_dom.setSelectionRange.call(void 0, element, length, length);
|
|
146
|
+
} else {
|
|
147
|
+
const { selectionStart, selectionEnd, selectionDirection } = element;
|
|
148
|
+
const [start, end] = [selectionStart != null ? selectionStart : 0, selectionEnd != null ? selectionEnd : 0];
|
|
149
|
+
if (selectionDirection === "backward") {
|
|
150
|
+
_dom.setSelectionRange.call(void 0, element, end, end);
|
|
151
|
+
} else {
|
|
152
|
+
_dom.setSelectionRange.call(void 0, element, start, length, "forward");
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
} else if (isNumberInput(element)) {
|
|
156
|
+
await incrementNumberInput(element, -1);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
var keyUpMap = {
|
|
161
|
+
// Space
|
|
162
|
+
" ": async (element, options) => {
|
|
163
|
+
const spaceableTypes = [...clickableInputTypes, "checkbox", "radio"];
|
|
164
|
+
const isSpaceable = element.tagName === "BUTTON" || element instanceof HTMLInputElement && spaceableTypes.includes(element.type);
|
|
165
|
+
if (isSpaceable) {
|
|
166
|
+
await _72WSX5BLcjs.dispatch.click(element, options);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
function press(key, element, options = {}) {
|
|
171
|
+
return _RHX5DDWScjs.wrapAsync.call(void 0, async () => {
|
|
172
|
+
var _a, _b, _c, _d;
|
|
173
|
+
if (element == null) {
|
|
174
|
+
element = document.activeElement || document.body;
|
|
175
|
+
}
|
|
176
|
+
if (!element) return;
|
|
177
|
+
if (!_focus.isFocusable.call(void 0, element) && element.tagName !== "BODY") return;
|
|
178
|
+
if (_dom.isTextField.call(void 0, element)) {
|
|
179
|
+
if (key.length === 1) {
|
|
180
|
+
return _UYJAT53Jcjs.type.call(void 0, key, element, options);
|
|
181
|
+
} else if (key === "Delete") {
|
|
182
|
+
return _UYJAT53Jcjs.type.call(void 0, "\x7F", element, options);
|
|
183
|
+
} else if (key === "Backspace") {
|
|
184
|
+
return _UYJAT53Jcjs.type.call(void 0, "\b", element, options);
|
|
185
|
+
} else if (key === "Enter" && element.tagName === "TEXTAREA") {
|
|
186
|
+
return _UYJAT53Jcjs.type.call(void 0, "\n", element, options);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (((_a = element.ownerDocument) == null ? void 0 : _a.activeElement) !== element) {
|
|
190
|
+
if (element.tagName === "BODY") {
|
|
191
|
+
await _5USXAKSOcjs.blur.call(void 0, );
|
|
192
|
+
} else {
|
|
193
|
+
await _SMHVZDHRcjs.focus.call(void 0, element);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
await _AA4DRZPScjs.sleep.call(void 0, );
|
|
197
|
+
let defaultAllowed = await _72WSX5BLcjs.dispatch.keyDown(element, _E4OOGVMWcjs.__spreadValues.call(void 0, { key }, options));
|
|
198
|
+
if (defaultAllowed && key in keyDownMap && !options.metaKey) {
|
|
199
|
+
await ((_b = keyDownMap[key]) == null ? void 0 : _b.call(keyDownMap, element, options));
|
|
200
|
+
}
|
|
201
|
+
await _AA4DRZPScjs.sleep.call(void 0, );
|
|
202
|
+
if (((_c = element.ownerDocument) == null ? void 0 : _c.activeElement) !== element) {
|
|
203
|
+
element = element.ownerDocument.activeElement;
|
|
204
|
+
}
|
|
205
|
+
if (!await _72WSX5BLcjs.dispatch.keyUp(element, _E4OOGVMWcjs.__spreadValues.call(void 0, { key }, options))) {
|
|
206
|
+
defaultAllowed = false;
|
|
207
|
+
}
|
|
208
|
+
if (defaultAllowed && key in keyUpMap && !options.metaKey) {
|
|
209
|
+
await ((_d = keyUpMap[key]) == null ? void 0 : _d.call(keyUpMap, element, options));
|
|
210
|
+
}
|
|
211
|
+
await _AA4DRZPScjs.sleep.call(void 0, );
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
function createPress(key, defaultOptions = {}) {
|
|
215
|
+
return (element, options = {}) => press(key, element, _E4OOGVMWcjs.__spreadValues.call(void 0, _E4OOGVMWcjs.__spreadValues.call(void 0, {}, defaultOptions), options));
|
|
216
|
+
}
|
|
217
|
+
press.Escape = createPress("Escape");
|
|
218
|
+
press.Backspace = createPress("Backspace");
|
|
219
|
+
press.Delete = createPress("Delete");
|
|
220
|
+
press.Tab = createPress("Tab");
|
|
221
|
+
press.ShiftTab = createPress("Tab", { shiftKey: true });
|
|
222
|
+
press.Enter = createPress("Enter");
|
|
223
|
+
press.Space = createPress(" ");
|
|
224
|
+
press.ArrowUp = createPress("ArrowUp");
|
|
225
|
+
press.ArrowRight = createPress("ArrowRight");
|
|
226
|
+
press.ArrowDown = createPress("ArrowDown");
|
|
227
|
+
press.ArrowLeft = createPress("ArrowLeft");
|
|
228
|
+
press.End = createPress("End");
|
|
229
|
+
press.Home = createPress("Home");
|
|
230
|
+
press.PageUp = createPress("PageUp");
|
|
231
|
+
press.PageDown = createPress("PageDown");
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
exports.press = press;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _4P2TRHCDcjs = require('./4P2TRHCD.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _AA4DRZPScjs = require('./AA4DRZPS.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _ML4UXKC3cjs = require('./ML4UXKC3.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _SMHVZDHRcjs = require('./SMHVZDHR.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _ANKVPRYLcjs = require('./ANKVPRYL.cjs');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _72WSX5BLcjs = require('./72WSX5BL.cjs');
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
var _RHX5DDWScjs = require('./RHX5DDWS.cjs');
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
var _E4OOGVMWcjs = require('./E4OOGVMW.cjs');
|
|
25
|
+
|
|
26
|
+
// src/click.ts
|
|
27
|
+
var _dom = require('@ariakit/core/utils/dom');
|
|
28
|
+
var _focus = require('@ariakit/core/utils/focus');
|
|
29
|
+
var _misc = require('@ariakit/core/utils/misc');
|
|
30
|
+
function getClosestLabel(element) {
|
|
31
|
+
if (!_focus.isFocusable.call(void 0, element)) {
|
|
32
|
+
return element.closest("label");
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
function getInputFromLabel(element) {
|
|
37
|
+
var _a;
|
|
38
|
+
const input = element.htmlFor ? (_a = element.ownerDocument) == null ? void 0 : _a.getElementById(element.htmlFor) : element.querySelector("input,textarea,select");
|
|
39
|
+
return input;
|
|
40
|
+
}
|
|
41
|
+
async function clickLabel(element, options) {
|
|
42
|
+
const input = getInputFromLabel(element);
|
|
43
|
+
const isInputDisabled = Boolean(input == null ? void 0 : input.disabled);
|
|
44
|
+
if (input) {
|
|
45
|
+
input.disabled = true;
|
|
46
|
+
}
|
|
47
|
+
const defaultAllowed = await _72WSX5BLcjs.dispatch.click(element, options);
|
|
48
|
+
if (input) {
|
|
49
|
+
input.disabled = isInputDisabled;
|
|
50
|
+
if (defaultAllowed && _focus.isFocusable.call(void 0, input)) {
|
|
51
|
+
await _SMHVZDHRcjs.focus.call(void 0, input);
|
|
52
|
+
await _72WSX5BLcjs.dispatch.click(input);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function setSelected(element, selected) {
|
|
57
|
+
element.setAttribute("selected", selected ? "selected" : "");
|
|
58
|
+
element.selected = selected;
|
|
59
|
+
}
|
|
60
|
+
async function clickOption(element, eventOptions) {
|
|
61
|
+
const select = element.closest("select");
|
|
62
|
+
if (!select) {
|
|
63
|
+
await _72WSX5BLcjs.dispatch.click(element, eventOptions);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (select.multiple) {
|
|
67
|
+
const options = Array.from(select.options);
|
|
68
|
+
const resetOptions = () => {
|
|
69
|
+
for (const option of options) {
|
|
70
|
+
setSelected(option, false);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const selectRange = (a, b) => {
|
|
74
|
+
const from = Math.min(a, b);
|
|
75
|
+
const to = Math.max(a, b) + 1;
|
|
76
|
+
const selectedOptions = options.slice(from, to);
|
|
77
|
+
for (const option of selectedOptions) {
|
|
78
|
+
setSelected(option, true);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
if (eventOptions == null ? void 0 : eventOptions.shiftKey) {
|
|
82
|
+
const elementIndex = options.indexOf(element);
|
|
83
|
+
const referenceOption = select.lastOptionSelectedNotByShiftKey;
|
|
84
|
+
const referenceOptionIndex = referenceOption ? options.indexOf(referenceOption) : -1;
|
|
85
|
+
resetOptions();
|
|
86
|
+
selectRange(elementIndex, referenceOptionIndex);
|
|
87
|
+
setSelected(element, true);
|
|
88
|
+
} else {
|
|
89
|
+
select.lastOptionSelectedNotByShiftKey = element;
|
|
90
|
+
if (eventOptions == null ? void 0 : eventOptions.ctrlKey) {
|
|
91
|
+
setSelected(element, !element.selected);
|
|
92
|
+
} else {
|
|
93
|
+
resetOptions();
|
|
94
|
+
setSelected(element, true);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
} else {
|
|
98
|
+
setSelected(element, true);
|
|
99
|
+
}
|
|
100
|
+
await _72WSX5BLcjs.dispatch.input(select);
|
|
101
|
+
await _72WSX5BLcjs.dispatch.change(select);
|
|
102
|
+
await _72WSX5BLcjs.dispatch.click(element, eventOptions);
|
|
103
|
+
}
|
|
104
|
+
function click(element, options, tap = false) {
|
|
105
|
+
return _RHX5DDWScjs.wrapAsync.call(void 0, async () => {
|
|
106
|
+
_misc.invariant.call(void 0, element, "Unable to click on null element");
|
|
107
|
+
if (!_dom.isVisible.call(void 0, element)) return;
|
|
108
|
+
await _4P2TRHCDcjs.hover.call(void 0, element, options);
|
|
109
|
+
await _ML4UXKC3cjs.mouseDown.call(void 0, element, options);
|
|
110
|
+
while (!_dom.isVisible.call(void 0, element)) {
|
|
111
|
+
if (!element.parentElement) return;
|
|
112
|
+
element = element.parentElement;
|
|
113
|
+
}
|
|
114
|
+
if (!tap) {
|
|
115
|
+
await _AA4DRZPScjs.sleep.call(void 0, );
|
|
116
|
+
}
|
|
117
|
+
await _ANKVPRYLcjs.mouseUp.call(void 0, element, options);
|
|
118
|
+
const { disabled } = element;
|
|
119
|
+
if (disabled) return;
|
|
120
|
+
const label = getClosestLabel(element);
|
|
121
|
+
if (label) {
|
|
122
|
+
await clickLabel(label, _E4OOGVMWcjs.__spreadValues.call(void 0, { detail: 1 }, options));
|
|
123
|
+
} else if (element instanceof HTMLOptionElement) {
|
|
124
|
+
await clickOption(element, _E4OOGVMWcjs.__spreadValues.call(void 0, { detail: 1 }, options));
|
|
125
|
+
} else {
|
|
126
|
+
await _72WSX5BLcjs.dispatch.click(element, _E4OOGVMWcjs.__spreadValues.call(void 0, { detail: 1 }, options));
|
|
127
|
+
}
|
|
128
|
+
await _AA4DRZPScjs.sleep.call(void 0, );
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
exports.click = click;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
|
+
|
|
3
|
+
var _RHX5DDWScjs = require('./RHX5DDWS.cjs');
|
|
4
|
+
|
|
5
|
+
// src/wait-for.ts
|
|
6
|
+
var _dom = require('@testing-library/dom'); var DOMTestingLibrary = _interopRequireWildcard(_dom);
|
|
7
|
+
function waitFor2(callback, options) {
|
|
8
|
+
return _RHX5DDWScjs.wrapAsync.call(void 0, () => DOMTestingLibrary.waitFor(callback, options));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
exports.waitFor = waitFor2;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _CAAOBH77cjs = require('./CAAOBH77.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _E4OOGVMWcjs = require('./E4OOGVMW.cjs');
|
|
8
|
+
|
|
9
|
+
// src/query.ts
|
|
10
|
+
var _misc = require('@ariakit/core/utils/misc');
|
|
11
|
+
var _dom = require('@testing-library/dom');
|
|
12
|
+
function createQueries(container) {
|
|
13
|
+
return Object.entries(_dom.queries).reduce((queries, [key, query2]) => {
|
|
14
|
+
queries[key] = (...args) => query2(container || document.body, ...args);
|
|
15
|
+
return queries;
|
|
16
|
+
}, {});
|
|
17
|
+
}
|
|
18
|
+
var documentQueries = createQueries();
|
|
19
|
+
function matchName(name, accessibleName) {
|
|
20
|
+
if (accessibleName == null) return false;
|
|
21
|
+
if (typeof name === "string") {
|
|
22
|
+
return accessibleName === name;
|
|
23
|
+
}
|
|
24
|
+
return name.test(accessibleName);
|
|
25
|
+
}
|
|
26
|
+
function getNameOption(name, includesHidden) {
|
|
27
|
+
return (accessibleName, element) => {
|
|
28
|
+
if (!includesHidden && element.closest("[inert]")) return false;
|
|
29
|
+
if (!name) return true;
|
|
30
|
+
if (matchName(name, accessibleName)) return true;
|
|
31
|
+
if (element.getAttribute("aria-label")) return false;
|
|
32
|
+
const labeledBy = element.getAttribute("aria-labelledby");
|
|
33
|
+
if (!labeledBy) {
|
|
34
|
+
const content = "placeholder" in element && element.placeholder != null ? element.placeholder : element.textContent;
|
|
35
|
+
return matchName(name, content);
|
|
36
|
+
}
|
|
37
|
+
const label = document.getElementById(labeledBy);
|
|
38
|
+
if (!(label == null ? void 0 : label.textContent)) return false;
|
|
39
|
+
return matchName(name, label.textContent);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function createRoleQuery(role, queries = documentQueries) {
|
|
43
|
+
const createQuery = (query3) => {
|
|
44
|
+
return (name, options) => {
|
|
45
|
+
return query3(role, _E4OOGVMWcjs.__spreadValues.call(void 0, {
|
|
46
|
+
name: getNameOption(name, options == null ? void 0 : options.hidden)
|
|
47
|
+
}, options));
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const createIncludesHidden = (query3) => (name, options) => query3(name, _E4OOGVMWcjs.__spreadValues.call(void 0, { hidden: true }, options));
|
|
51
|
+
const query2 = createQuery(queries.queryByRole);
|
|
52
|
+
const allQuery = createQuery(queries.queryAllByRole);
|
|
53
|
+
const waitQuery = createQuery(queries.findByRole);
|
|
54
|
+
const waitAllQuery = createQuery(queries.findAllByRole);
|
|
55
|
+
const ensureQuery = createQuery(queries.getByRole);
|
|
56
|
+
const ensureAllQuery = createQuery(queries.getAllByRole);
|
|
57
|
+
const all = Object.assign(allQuery, {
|
|
58
|
+
includesHidden: createIncludesHidden(allQuery),
|
|
59
|
+
wait: Object.assign(waitAllQuery, {
|
|
60
|
+
includesHidden: createIncludesHidden(waitAllQuery)
|
|
61
|
+
}),
|
|
62
|
+
ensure: Object.assign(ensureAllQuery, {
|
|
63
|
+
includesHidden: createIncludesHidden(ensureAllQuery)
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
const wait = Object.assign(waitQuery, {
|
|
67
|
+
includesHidden: createIncludesHidden(waitQuery),
|
|
68
|
+
all: Object.assign(waitAllQuery, {
|
|
69
|
+
includesHidden: createIncludesHidden(waitAllQuery)
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
const ensure = Object.assign(ensureQuery, {
|
|
73
|
+
includesHidden: createIncludesHidden(ensureQuery),
|
|
74
|
+
all: Object.assign(ensureAllQuery, {
|
|
75
|
+
includesHidden: createIncludesHidden(ensureAllQuery)
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
return Object.assign(query2, {
|
|
79
|
+
includesHidden: createIncludesHidden(query2),
|
|
80
|
+
all,
|
|
81
|
+
wait,
|
|
82
|
+
ensure
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function createRoleQueries(queries = documentQueries) {
|
|
86
|
+
return _CAAOBH77cjs.roles.reduce((acc, role) => {
|
|
87
|
+
acc[role] = createRoleQuery(role, queries);
|
|
88
|
+
return acc;
|
|
89
|
+
}, {});
|
|
90
|
+
}
|
|
91
|
+
function createTextQuery(queries = documentQueries) {
|
|
92
|
+
const all = Object.assign(queries.queryAllByText, {
|
|
93
|
+
wait: queries.findAllByText,
|
|
94
|
+
ensure: queries.getAllByText
|
|
95
|
+
});
|
|
96
|
+
const wait = Object.assign(queries.findByText, {
|
|
97
|
+
all: queries.findAllByText
|
|
98
|
+
});
|
|
99
|
+
const ensure = Object.assign(queries.getByText, {
|
|
100
|
+
all: queries.getAllByText
|
|
101
|
+
});
|
|
102
|
+
return Object.assign(queries.queryByText, { all, wait, ensure });
|
|
103
|
+
}
|
|
104
|
+
function createLabeledQuery(queries = documentQueries) {
|
|
105
|
+
const all = Object.assign(queries.queryAllByLabelText, {
|
|
106
|
+
wait: queries.findAllByLabelText,
|
|
107
|
+
ensure: queries.getAllByLabelText
|
|
108
|
+
});
|
|
109
|
+
const wait = Object.assign(queries.findByLabelText, {
|
|
110
|
+
all: queries.findAllByLabelText
|
|
111
|
+
});
|
|
112
|
+
const ensure = Object.assign(queries.getByLabelText, {
|
|
113
|
+
all: queries.getAllByLabelText
|
|
114
|
+
});
|
|
115
|
+
return Object.assign(queries.queryByLabelText, { all, wait, ensure });
|
|
116
|
+
}
|
|
117
|
+
function createQueryObject(queries = documentQueries) {
|
|
118
|
+
return _E4OOGVMWcjs.__spreadProps.call(void 0, _E4OOGVMWcjs.__spreadValues.call(void 0, {}, createRoleQueries(queries)), {
|
|
119
|
+
text: createTextQuery(queries),
|
|
120
|
+
labeled: createLabeledQuery(queries),
|
|
121
|
+
within: (element) => {
|
|
122
|
+
_misc.invariant.call(void 0, element, "Unable to create queries for null element");
|
|
123
|
+
return createQueryObject(createQueries(element));
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
var query = createQueryObject();
|
|
128
|
+
var q = query;
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
exports.query = query; exports.q = q;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _5USXAKSOcjs = require('./5USXAKSO.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _SMHVZDHRcjs = require('./SMHVZDHR.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _72WSX5BLcjs = require('./72WSX5BL.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _RHX5DDWScjs = require('./RHX5DDWS.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _E4OOGVMWcjs = require('./E4OOGVMW.cjs');
|
|
16
|
+
|
|
17
|
+
// src/mouse-down.ts
|
|
18
|
+
var _dom = require('@ariakit/core/utils/dom');
|
|
19
|
+
var _focus = require('@ariakit/core/utils/focus');
|
|
20
|
+
var _misc = require('@ariakit/core/utils/misc');
|
|
21
|
+
function mouseDown(element, options) {
|
|
22
|
+
return _RHX5DDWScjs.wrapAsync.call(void 0, async () => {
|
|
23
|
+
_misc.invariant.call(void 0, element, "Unable to mouseDown on null element");
|
|
24
|
+
if (!_dom.isVisible.call(void 0, element)) return;
|
|
25
|
+
const { disabled } = element;
|
|
26
|
+
let defaultAllowed = await _72WSX5BLcjs.dispatch.pointerDown(element, options);
|
|
27
|
+
if (!disabled) {
|
|
28
|
+
if (!await _72WSX5BLcjs.dispatch.mouseDown(element, _E4OOGVMWcjs.__spreadValues.call(void 0, { detail: 1 }, options))) {
|
|
29
|
+
defaultAllowed = false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (defaultAllowed) {
|
|
33
|
+
const selection = _dom.getDocument.call(void 0, element).getSelection();
|
|
34
|
+
if (selection == null ? void 0 : selection.rangeCount) {
|
|
35
|
+
const range = selection.getRangeAt(0);
|
|
36
|
+
if (!range.collapsed) {
|
|
37
|
+
selection.removeAllRanges();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (_focus.isFocusable.call(void 0, element) && getComputedStyle(element).pointerEvents !== "none") {
|
|
41
|
+
await _SMHVZDHRcjs.focus.call(void 0, element);
|
|
42
|
+
} else if (element.parentElement) {
|
|
43
|
+
const closestFocusable = _focus.getClosestFocusable.call(void 0, element.parentElement);
|
|
44
|
+
if (closestFocusable) {
|
|
45
|
+
await _SMHVZDHRcjs.focus.call(void 0, closestFocusable);
|
|
46
|
+
} else {
|
|
47
|
+
await _5USXAKSOcjs.blur.call(void 0, );
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
exports.mouseDown = mouseDown;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/__utils.ts
|
|
2
|
+
var _focus = require('@ariakit/core/utils/focus');
|
|
3
|
+
var _misc = require('@ariakit/core/utils/misc');
|
|
4
|
+
var isBrowser = typeof navigator !== "undefined" && !navigator.userAgent.includes("jsdom") && typeof window !== "undefined" && !("happyDOM" in window);
|
|
5
|
+
async function flushMicrotasks() {
|
|
6
|
+
await Promise.resolve();
|
|
7
|
+
await Promise.resolve();
|
|
8
|
+
await Promise.resolve();
|
|
9
|
+
}
|
|
10
|
+
function nextFrame() {
|
|
11
|
+
return new Promise(requestAnimationFrame);
|
|
12
|
+
}
|
|
13
|
+
function setActEnvironment(value) {
|
|
14
|
+
const scope = globalThis;
|
|
15
|
+
const previousValue = scope.IS_REACT_ACT_ENVIRONMENT;
|
|
16
|
+
scope.IS_REACT_ACT_ENVIRONMENT = value;
|
|
17
|
+
const restoreActEnvironment = () => {
|
|
18
|
+
scope.IS_REACT_ACT_ENVIRONMENT = previousValue;
|
|
19
|
+
};
|
|
20
|
+
return restoreActEnvironment;
|
|
21
|
+
}
|
|
22
|
+
function applyBrowserPolyfills() {
|
|
23
|
+
if (isBrowser) return _misc.noop;
|
|
24
|
+
const originalFocus = HTMLElement.prototype.focus;
|
|
25
|
+
HTMLElement.prototype.focus = function focus(options) {
|
|
26
|
+
if (!_focus.isFocusable.call(void 0, this)) return;
|
|
27
|
+
return originalFocus.call(this, options);
|
|
28
|
+
};
|
|
29
|
+
const originalGetClientRects = Element.prototype.getClientRects;
|
|
30
|
+
Element.prototype.getClientRects = function getClientRects() {
|
|
31
|
+
const isHidden = (element) => {
|
|
32
|
+
if (!element.isConnected) return true;
|
|
33
|
+
if (element.parentElement && isHidden(element.parentElement)) return true;
|
|
34
|
+
if (!(element instanceof HTMLElement)) return false;
|
|
35
|
+
if (element.hidden) return true;
|
|
36
|
+
const style = getComputedStyle(element);
|
|
37
|
+
return style.display === "none" || style.visibility === "hidden";
|
|
38
|
+
};
|
|
39
|
+
if (isHidden(this)) return [];
|
|
40
|
+
return [{ width: 1, height: 1 }];
|
|
41
|
+
};
|
|
42
|
+
if (!Element.prototype.scrollIntoView) {
|
|
43
|
+
Element.prototype.scrollIntoView = _misc.noop;
|
|
44
|
+
}
|
|
45
|
+
if (!Element.prototype.hasPointerCapture) {
|
|
46
|
+
Element.prototype.hasPointerCapture = _misc.noop;
|
|
47
|
+
}
|
|
48
|
+
if (!Element.prototype.setPointerCapture) {
|
|
49
|
+
Element.prototype.setPointerCapture = _misc.noop;
|
|
50
|
+
}
|
|
51
|
+
if (!Element.prototype.releasePointerCapture) {
|
|
52
|
+
Element.prototype.releasePointerCapture = _misc.noop;
|
|
53
|
+
}
|
|
54
|
+
if (typeof window.ClipboardEvent === "undefined") {
|
|
55
|
+
window.ClipboardEvent = class ClipboardEvent extends Event {
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (typeof window.PointerEvent === "undefined") {
|
|
59
|
+
window.PointerEvent = class PointerEvent extends MouseEvent {
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return () => {
|
|
63
|
+
HTMLElement.prototype.focus = originalFocus;
|
|
64
|
+
Element.prototype.getClientRects = originalGetClientRects;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async function wrapAsync(fn) {
|
|
68
|
+
const restoreActEnvironment = setActEnvironment(false);
|
|
69
|
+
const removeBrowserPolyfills = applyBrowserPolyfills();
|
|
70
|
+
try {
|
|
71
|
+
return await fn();
|
|
72
|
+
} finally {
|
|
73
|
+
restoreActEnvironment();
|
|
74
|
+
removeBrowserPolyfills();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
exports.isBrowser = isBrowser; exports.flushMicrotasks = flushMicrotasks; exports.nextFrame = nextFrame; exports.wrapAsync = wrapAsync;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _72WSX5BLcjs = require('./72WSX5BL.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _RHX5DDWScjs = require('./RHX5DDWS.cjs');
|
|
8
|
+
|
|
9
|
+
// src/focus.ts
|
|
10
|
+
var _dom = require('@ariakit/core/utils/dom');
|
|
11
|
+
var _focus = require('@ariakit/core/utils/focus');
|
|
12
|
+
var _misc = require('@ariakit/core/utils/misc');
|
|
13
|
+
function focus(element) {
|
|
14
|
+
return _RHX5DDWScjs.wrapAsync.call(void 0, async () => {
|
|
15
|
+
_misc.invariant.call(void 0, element, "Unable to focus on null element");
|
|
16
|
+
if (_dom.getActiveElement.call(void 0, element) === element) return;
|
|
17
|
+
if (!_focus.isFocusable.call(void 0, element)) return;
|
|
18
|
+
const htmlElement = element;
|
|
19
|
+
const activeElement = _dom.getActiveElement.call(void 0,
|
|
20
|
+
htmlElement
|
|
21
|
+
);
|
|
22
|
+
if (activeElement == null ? void 0 : activeElement.dirty) {
|
|
23
|
+
await _72WSX5BLcjs.dispatch.change(activeElement);
|
|
24
|
+
activeElement.dirty = false;
|
|
25
|
+
}
|
|
26
|
+
htmlElement.focus();
|
|
27
|
+
await _RHX5DDWScjs.flushMicrotasks.call(void 0, );
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
exports.focus = focus;
|