@spectrum-web-components/menu 1.0.2 → 1.0.3
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/LICENSE +201 -0
- package/package.json +12 -11
- package/stories/index.js +82 -0
- package/stories/index.js.map +7 -0
- package/stories/menu-divider.stories.js +32 -0
- package/stories/menu-divider.stories.js.map +7 -0
- package/stories/menu-group.stories.js +144 -0
- package/stories/menu-group.stories.js.map +7 -0
- package/stories/menu-item.disconnected.stories.js +176 -0
- package/stories/menu-item.disconnected.stories.js.map +7 -0
- package/stories/menu-item.stories.js +73 -0
- package/stories/menu-item.stories.js.map +7 -0
- package/stories/menu-sizes.stories.js +11 -0
- package/stories/menu-sizes.stories.js.map +7 -0
- package/stories/menu.stories.js +403 -0
- package/stories/menu.stories.js.map +7 -0
- package/stories/submenu.stories.js +346 -0
- package/stories/submenu.stories.js.map +7 -0
- package/test/benchmark/test-basic.js +24 -0
- package/test/benchmark/test-basic.js.map +7 -0
- package/test/menu-divider.test-vrt.js +5 -0
- package/test/menu-divider.test-vrt.js.map +7 -0
- package/test/menu-group.test-vrt.js +5 -0
- package/test/menu-group.test-vrt.js.map +7 -0
- package/test/menu-group.test.js +405 -0
- package/test/menu-group.test.js.map +7 -0
- package/test/menu-item.disconnected.test-vrt.js +5 -0
- package/test/menu-item.disconnected.test-vrt.js.map +7 -0
- package/test/menu-item.test-vrt.js +5 -0
- package/test/menu-item.test-vrt.js.map +7 -0
- package/test/menu-item.test.js +189 -0
- package/test/menu-item.test.js.map +7 -0
- package/test/menu-memory.test.js +5 -0
- package/test/menu-memory.test.js.map +7 -0
- package/test/menu-selects.test.js +530 -0
- package/test/menu-selects.test.js.map +7 -0
- package/test/menu-sizes.test-vrt.js +5 -0
- package/test/menu-sizes.test-vrt.js.map +7 -0
- package/test/menu.test-vrt.js +5 -0
- package/test/menu.test-vrt.js.map +7 -0
- package/test/menu.test.js +559 -0
- package/test/menu.test.js.map +7 -0
- package/test/submenu.test-vrt.js +5 -0
- package/test/submenu.test-vrt.js.map +7 -0
- package/test/submenu.test.js +970 -0
- package/test/submenu.test.js.map +7 -0
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import "@spectrum-web-components/menu/sp-menu-group.js";
|
|
3
|
+
import "@spectrum-web-components/menu/sp-menu.js";
|
|
4
|
+
import "@spectrum-web-components/menu/sp-menu-item.js";
|
|
5
|
+
import "@spectrum-web-components/menu/sp-menu-divider.js";
|
|
6
|
+
import {
|
|
7
|
+
elementUpdated,
|
|
8
|
+
expect,
|
|
9
|
+
fixture,
|
|
10
|
+
html,
|
|
11
|
+
oneEvent,
|
|
12
|
+
waitUntil
|
|
13
|
+
} from "@open-wc/testing";
|
|
14
|
+
import { testForLitDevWarnings } from "../../../test/testing-helpers.js";
|
|
15
|
+
import { complexSlotted } from "../stories/menu-group.stories.js";
|
|
16
|
+
import { sendKeys } from "@web/test-runner-commands";
|
|
17
|
+
import { sendMouse } from "../../../test/plugins/browser.js";
|
|
18
|
+
const managedItems = (menu) => {
|
|
19
|
+
return menu.childItems.filter(
|
|
20
|
+
(item) => item.menuData.selectionRoot === menu
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
const focusableItems = (menu) => {
|
|
24
|
+
return menu.childItems.filter(
|
|
25
|
+
(item) => item.menuData.focusRoot === menu
|
|
26
|
+
);
|
|
27
|
+
};
|
|
28
|
+
describe("Menu group", () => {
|
|
29
|
+
testForLitDevWarnings(
|
|
30
|
+
async () => await fixture(
|
|
31
|
+
html`
|
|
32
|
+
<sp-menu selects="single">
|
|
33
|
+
<sp-menu-group selects="inherit">
|
|
34
|
+
<span slot="header">Section Heading</span>
|
|
35
|
+
<sp-menu-item>Action 1</sp-menu-item>
|
|
36
|
+
<sp-menu-item>Action 2</sp-menu-item>
|
|
37
|
+
<sp-menu-item>Action 3</sp-menu-item>
|
|
38
|
+
</sp-menu-group>
|
|
39
|
+
<sp-menu-divider></sp-menu-divider>
|
|
40
|
+
<sp-menu-group selects="inherit">
|
|
41
|
+
<span slot="header">Section Heading</span>
|
|
42
|
+
<sp-menu-item>Save</sp-menu-item>
|
|
43
|
+
<sp-menu-item disabled>Download</sp-menu-item>
|
|
44
|
+
</sp-menu-group>
|
|
45
|
+
</sp-menu>
|
|
46
|
+
`
|
|
47
|
+
)
|
|
48
|
+
);
|
|
49
|
+
it("renders", async () => {
|
|
50
|
+
const el = await fixture(
|
|
51
|
+
html`
|
|
52
|
+
<sp-menu selects="single">
|
|
53
|
+
<sp-menu-group selects="inherit">
|
|
54
|
+
<span slot="header">Section Heading</span>
|
|
55
|
+
<sp-menu-item>Action 1</sp-menu-item>
|
|
56
|
+
<sp-menu-item>Action 2</sp-menu-item>
|
|
57
|
+
<sp-menu-item>Action 3</sp-menu-item>
|
|
58
|
+
</sp-menu-group>
|
|
59
|
+
<sp-menu-divider></sp-menu-divider>
|
|
60
|
+
<sp-menu-group selects="inherit">
|
|
61
|
+
<span slot="header">Section Heading</span>
|
|
62
|
+
<sp-menu-item>Save</sp-menu-item>
|
|
63
|
+
<sp-menu-item disabled>Download</sp-menu-item>
|
|
64
|
+
</sp-menu-group>
|
|
65
|
+
</sp-menu>
|
|
66
|
+
`
|
|
67
|
+
);
|
|
68
|
+
await waitUntil(() => {
|
|
69
|
+
return managedItems(el).length === 5;
|
|
70
|
+
}, `expected menu group to manage 5 children, received ${managedItems(el).length} of ${el.childItems.length}`);
|
|
71
|
+
await elementUpdated(el);
|
|
72
|
+
await expect(el).to.be.accessible();
|
|
73
|
+
});
|
|
74
|
+
it('manages [slot="header"] content', async () => {
|
|
75
|
+
const el = await fixture(
|
|
76
|
+
html`
|
|
77
|
+
<sp-menu-group></sp-menu-group>
|
|
78
|
+
`
|
|
79
|
+
);
|
|
80
|
+
await elementUpdated(el);
|
|
81
|
+
const slot = el.shadowRoot.querySelector(
|
|
82
|
+
'[name="header"'
|
|
83
|
+
);
|
|
84
|
+
const header = document.createElement("span");
|
|
85
|
+
header.textContent = "Header";
|
|
86
|
+
header.slot = "header";
|
|
87
|
+
expect(header.id).to.equal("");
|
|
88
|
+
let slotchanged = oneEvent(slot, "slotchange");
|
|
89
|
+
el.append(header);
|
|
90
|
+
await slotchanged;
|
|
91
|
+
expect(header.id).to.equal(
|
|
92
|
+
el.headerId
|
|
93
|
+
);
|
|
94
|
+
slotchanged = oneEvent(slot, "slotchange");
|
|
95
|
+
header.remove();
|
|
96
|
+
await slotchanged;
|
|
97
|
+
expect(header.id).to.equal("");
|
|
98
|
+
});
|
|
99
|
+
it("handles selects for nested menu groups", async () => {
|
|
100
|
+
const el = await fixture(
|
|
101
|
+
html`
|
|
102
|
+
<sp-menu selects="single">
|
|
103
|
+
<sp-menu-item selected>First</sp-menu-item>
|
|
104
|
+
<!-- 1 -->
|
|
105
|
+
<sp-menu-item>Second</sp-menu-item>
|
|
106
|
+
<!-- 1 -->
|
|
107
|
+
<sp-menu-group id="mg-multi" selects="multiple">
|
|
108
|
+
<sp-menu-item selected>Multi1</sp-menu-item>
|
|
109
|
+
<!-- 2 -->
|
|
110
|
+
<sp-menu-item>Multi2</sp-menu-item>
|
|
111
|
+
<!-- 2 -->
|
|
112
|
+
<sp-menu-group id="mg-sub-inherit" selects="inherit">
|
|
113
|
+
<sp-menu-item>SubInherit1</sp-menu-item>
|
|
114
|
+
<!-- 2 -->
|
|
115
|
+
<sp-menu-item>SubInherit2</sp-menu-item>
|
|
116
|
+
<!-- 2 -->
|
|
117
|
+
</sp-menu-group>
|
|
118
|
+
</sp-menu-group>
|
|
119
|
+
<sp-menu-group id="mg-single" selects="single">
|
|
120
|
+
<sp-menu-item selected>Single1</sp-menu-item>
|
|
121
|
+
<!-- 3 -->
|
|
122
|
+
<sp-menu-item>Single2</sp-menu-item>
|
|
123
|
+
<!-- 3 -->
|
|
124
|
+
</sp-menu-group>
|
|
125
|
+
<sp-menu-group id="mg-none">
|
|
126
|
+
<sp-menu-item>Inherit1</sp-menu-item>
|
|
127
|
+
<!-- - -->
|
|
128
|
+
<sp-menu-item>Inherit2</sp-menu-item>
|
|
129
|
+
<!-- - -->
|
|
130
|
+
</sp-menu-group>
|
|
131
|
+
<sp-menu-group id="mg-inherit" selects="inherit">
|
|
132
|
+
<sp-menu-item>Inherit1</sp-menu-item>
|
|
133
|
+
<!-- 1 -->
|
|
134
|
+
<sp-menu-item>Inherit2</sp-menu-item>
|
|
135
|
+
<!-- 1 -->
|
|
136
|
+
</sp-menu-group>
|
|
137
|
+
</sp-menu>
|
|
138
|
+
`
|
|
139
|
+
);
|
|
140
|
+
await waitUntil(
|
|
141
|
+
() => managedItems(el).length === 4,
|
|
142
|
+
`expected outer menu to manage 4 items (2 are inherited), got ${managedItems(el).length}, with ${el.childItems.length} total`
|
|
143
|
+
);
|
|
144
|
+
await waitUntil(
|
|
145
|
+
() => el.selectedItems.length === 1,
|
|
146
|
+
"expected 1 selected item"
|
|
147
|
+
);
|
|
148
|
+
await elementUpdated(el);
|
|
149
|
+
const firstItem = el.querySelector(
|
|
150
|
+
"sp-menu-item:nth-of-type(1)"
|
|
151
|
+
);
|
|
152
|
+
const secondItem = el.querySelector(
|
|
153
|
+
"sp-menu-item:nth-of-type(2)"
|
|
154
|
+
);
|
|
155
|
+
const multiGroup = el.querySelector(
|
|
156
|
+
"sp-menu-group#mg-multi"
|
|
157
|
+
);
|
|
158
|
+
const multiItem1 = multiGroup.querySelector(
|
|
159
|
+
"sp-menu-item:nth-of-type(1)"
|
|
160
|
+
);
|
|
161
|
+
const multiItem2 = multiGroup.querySelector(
|
|
162
|
+
"sp-menu-item:nth-of-type(2)"
|
|
163
|
+
);
|
|
164
|
+
await waitUntil(
|
|
165
|
+
() => managedItems(multiGroup).length === 4,
|
|
166
|
+
`selects="#mg-multi should manage 4 items (2 are inherited), received ${managedItems(multiGroup).length}`
|
|
167
|
+
);
|
|
168
|
+
const singleGroup = el.querySelector(
|
|
169
|
+
"sp-menu-group#mg-single"
|
|
170
|
+
);
|
|
171
|
+
const singleItem1 = singleGroup.querySelector(
|
|
172
|
+
"sp-menu-item:nth-of-type(1)"
|
|
173
|
+
);
|
|
174
|
+
const singleItem2 = singleGroup.querySelector(
|
|
175
|
+
"sp-menu-item:nth-of-type(2)"
|
|
176
|
+
);
|
|
177
|
+
await waitUntil(
|
|
178
|
+
() => managedItems(singleGroup).length === 2,
|
|
179
|
+
'selects="#mg-none should manage 4 items (2 are inherited)'
|
|
180
|
+
);
|
|
181
|
+
const noneGroup = el.querySelector(
|
|
182
|
+
"sp-menu-group#mg-none"
|
|
183
|
+
);
|
|
184
|
+
const noneItem1 = noneGroup.querySelector(
|
|
185
|
+
"sp-menu-item:nth-of-type(1)"
|
|
186
|
+
);
|
|
187
|
+
const noneItem2 = noneGroup.querySelector(
|
|
188
|
+
"sp-menu-item:nth-of-type(2)"
|
|
189
|
+
);
|
|
190
|
+
await waitUntil(
|
|
191
|
+
() => managedItems(noneGroup).length === 2,
|
|
192
|
+
`selects="#mg-none" should manage 2 items, received ${managedItems(noneGroup).length}`
|
|
193
|
+
);
|
|
194
|
+
const inheritGroup = el.querySelector(
|
|
195
|
+
"sp-menu-group#mg-inherit"
|
|
196
|
+
);
|
|
197
|
+
const inheritItem1 = inheritGroup.querySelector(
|
|
198
|
+
"sp-menu-item:nth-of-type(1)"
|
|
199
|
+
);
|
|
200
|
+
const inheritItem2 = inheritGroup.querySelector(
|
|
201
|
+
"sp-menu-item:nth-of-type(2)"
|
|
202
|
+
);
|
|
203
|
+
expect(firstItem.getAttribute("role")).to.equal("menuitemradio");
|
|
204
|
+
expect(secondItem.getAttribute("role")).to.equal("menuitemradio");
|
|
205
|
+
expect(multiItem1.getAttribute("role")).to.equal("menuitemcheckbox");
|
|
206
|
+
expect(multiItem2.getAttribute("role")).to.equal("menuitemcheckbox");
|
|
207
|
+
expect(singleItem1.getAttribute("role")).to.equal("menuitemradio");
|
|
208
|
+
expect(singleItem2.getAttribute("role")).to.equal("menuitemradio");
|
|
209
|
+
expect(noneItem1.getAttribute("role")).to.equal("menuitem");
|
|
210
|
+
expect(noneItem2.getAttribute("role")).to.equal("menuitem");
|
|
211
|
+
expect(inheritItem1.getAttribute("role")).to.equal("menuitemradio");
|
|
212
|
+
expect(inheritItem2.getAttribute("role")).to.equal("menuitemradio");
|
|
213
|
+
await elementUpdated(firstItem);
|
|
214
|
+
expect(singleItem1.selected).to.be.true;
|
|
215
|
+
expect(firstItem.selected).to.be.true;
|
|
216
|
+
expect(secondItem.selected, "second item not selected").to.be.false;
|
|
217
|
+
expect(el.value).to.equal("First");
|
|
218
|
+
expect(el.selectedItems.length).to.equal(1);
|
|
219
|
+
expect(firstItem.getAttribute("aria-checked")).to.equal("true");
|
|
220
|
+
expect(secondItem.getAttribute("aria-checked")).to.equal("false");
|
|
221
|
+
secondItem.click();
|
|
222
|
+
await elementUpdated(el);
|
|
223
|
+
await elementUpdated(firstItem);
|
|
224
|
+
await elementUpdated(secondItem);
|
|
225
|
+
expect(firstItem.selected, "first item not selected").to.be.false;
|
|
226
|
+
expect(secondItem.selected).to.be.true;
|
|
227
|
+
expect(firstItem.getAttribute("aria-checked")).to.equal("false");
|
|
228
|
+
expect(secondItem.getAttribute("aria-checked")).to.equal("true");
|
|
229
|
+
expect(el.value).to.equal("Second");
|
|
230
|
+
expect(el.selectedItems.length).to.equal(1);
|
|
231
|
+
inheritItem1.click();
|
|
232
|
+
await elementUpdated(el);
|
|
233
|
+
await elementUpdated(inheritItem1);
|
|
234
|
+
await elementUpdated(secondItem);
|
|
235
|
+
expect(secondItem.selected, "second item not selected again").to.be.false;
|
|
236
|
+
expect(inheritItem1.selected).to.be.true;
|
|
237
|
+
expect(secondItem.getAttribute("aria-checked")).to.equal("false");
|
|
238
|
+
expect(inheritItem1.getAttribute("aria-checked")).to.equal("true");
|
|
239
|
+
expect(el.value).to.equal("Inherit1");
|
|
240
|
+
expect(el.selectedItems.length).to.equal(1);
|
|
241
|
+
noneItem2.click();
|
|
242
|
+
await elementUpdated(el);
|
|
243
|
+
await elementUpdated(noneGroup);
|
|
244
|
+
await elementUpdated(noneItem2);
|
|
245
|
+
expect(inheritItem1.selected).to.be.true;
|
|
246
|
+
expect(noneItem2.selected, "none item not selected").to.be.false;
|
|
247
|
+
expect(el.value).to.equal("Inherit1");
|
|
248
|
+
expect(el.selectedItems.length).to.equal(1);
|
|
249
|
+
singleItem2.click();
|
|
250
|
+
await elementUpdated(singleGroup);
|
|
251
|
+
await elementUpdated(singleItem1);
|
|
252
|
+
await elementUpdated(singleItem2);
|
|
253
|
+
expect(singleItem2.selected).to.be.true;
|
|
254
|
+
expect(singleItem1.selected, "first item not selected").to.be.false;
|
|
255
|
+
expect(inheritItem1.selected).to.be.true;
|
|
256
|
+
expect(singleItem1.getAttribute("aria-checked")).to.equal("false");
|
|
257
|
+
expect(singleItem2.getAttribute("aria-checked")).to.equal("true");
|
|
258
|
+
expect(el.value).to.equal("Inherit1");
|
|
259
|
+
expect(el.selectedItems.length).to.equal(1);
|
|
260
|
+
expect(singleGroup.selectedItems.length).to.equal(1);
|
|
261
|
+
multiItem2.click();
|
|
262
|
+
await elementUpdated(el);
|
|
263
|
+
await elementUpdated(multiItem2);
|
|
264
|
+
expect(multiItem1.selected).to.be.true;
|
|
265
|
+
expect(multiItem2.selected).to.be.true;
|
|
266
|
+
expect(inheritItem1.selected).to.be.true;
|
|
267
|
+
expect(multiItem1.getAttribute("aria-checked")).to.equal("true");
|
|
268
|
+
expect(multiItem2.getAttribute("aria-checked")).to.equal("true");
|
|
269
|
+
expect(multiGroup.selectedItems.length).to.equal(2);
|
|
270
|
+
});
|
|
271
|
+
it("handles changing managed items for selects changes", async () => {
|
|
272
|
+
const el = await fixture(
|
|
273
|
+
html`
|
|
274
|
+
<sp-menu selects="multiple" value-separator="--">
|
|
275
|
+
<sp-menu-item selected>First</sp-menu-item>
|
|
276
|
+
<sp-menu-item>Second</sp-menu-item>
|
|
277
|
+
<sp-menu-group id="mg-inherit" selects="inherit">
|
|
278
|
+
<sp-menu-item>Inherit1</sp-menu-item>
|
|
279
|
+
<sp-menu-item>Inherit2</sp-menu-item>
|
|
280
|
+
<sp-menu-group id="mg-sub-inherit" selects="inherit">
|
|
281
|
+
<sp-menu-item>SubInherit1</sp-menu-item>
|
|
282
|
+
<sp-menu-item selected>SubInherit2</sp-menu-item>
|
|
283
|
+
</sp-menu-group>
|
|
284
|
+
</sp-menu-group>
|
|
285
|
+
</sp-menu>
|
|
286
|
+
`
|
|
287
|
+
);
|
|
288
|
+
await waitUntil(
|
|
289
|
+
() => managedItems(el).length == 6,
|
|
290
|
+
`expected outer menu to manage 6 items, manages ${managedItems(el).length}`
|
|
291
|
+
);
|
|
292
|
+
await waitUntil(
|
|
293
|
+
() => el.selectedItems.length == 2,
|
|
294
|
+
"expected 2 selected item"
|
|
295
|
+
);
|
|
296
|
+
await elementUpdated(el);
|
|
297
|
+
const inheritGroup = el.querySelector(
|
|
298
|
+
"sp-menu-group#mg-inherit"
|
|
299
|
+
);
|
|
300
|
+
const inheritItem1 = inheritGroup.querySelector(
|
|
301
|
+
"sp-menu-item:nth-of-type(1)"
|
|
302
|
+
);
|
|
303
|
+
const inheritItem2 = inheritGroup.querySelector(
|
|
304
|
+
"sp-menu-item:nth-of-type(2)"
|
|
305
|
+
);
|
|
306
|
+
const subInheritGroup = el.querySelector(
|
|
307
|
+
"sp-menu-group#mg-sub-inherit"
|
|
308
|
+
);
|
|
309
|
+
const subInheritItem1 = subInheritGroup.querySelector(
|
|
310
|
+
"sp-menu-item:nth-of-type(1)"
|
|
311
|
+
);
|
|
312
|
+
const subInheritItem2 = subInheritGroup.querySelector(
|
|
313
|
+
"sp-menu-item:nth-of-type(2)"
|
|
314
|
+
);
|
|
315
|
+
expect(inheritItem1.getAttribute("role")).to.equal("menuitemcheckbox");
|
|
316
|
+
expect(inheritItem2.getAttribute("role")).to.equal("menuitemcheckbox");
|
|
317
|
+
expect(subInheritItem1.getAttribute("role")).to.equal(
|
|
318
|
+
"menuitemcheckbox"
|
|
319
|
+
);
|
|
320
|
+
expect(subInheritItem2.getAttribute("role")).to.equal(
|
|
321
|
+
"menuitemcheckbox"
|
|
322
|
+
);
|
|
323
|
+
expect(el.value).to.equal("First--SubInherit2");
|
|
324
|
+
expect(el.selectedItems.length).to.equal(2);
|
|
325
|
+
inheritGroup.setAttribute("selects", "single");
|
|
326
|
+
await elementUpdated(inheritGroup);
|
|
327
|
+
await elementUpdated(el);
|
|
328
|
+
await waitUntil(() => {
|
|
329
|
+
return managedItems(inheritGroup).length === 4;
|
|
330
|
+
}, `expected new single sub-group to manage 4 items, received ${managedItems(inheritGroup).length} because "selects === ${inheritGroup.selects}`);
|
|
331
|
+
await waitUntil(
|
|
332
|
+
() => managedItems(el).length === 2,
|
|
333
|
+
`expected outer menu to manage 2 items with none inherited, received ${managedItems(el).length}`
|
|
334
|
+
);
|
|
335
|
+
expect(inheritGroup.value).to.equal("SubInherit2");
|
|
336
|
+
expect(inheritGroup.selectedItems.length).to.equal(1);
|
|
337
|
+
expect(el.value).to.equal("First");
|
|
338
|
+
expect(inheritItem1.getAttribute("role")).to.equal("menuitemradio");
|
|
339
|
+
expect(inheritItem2.getAttribute("role")).to.equal("menuitemradio");
|
|
340
|
+
expect(subInheritItem1.getAttribute("role")).to.equal("menuitemradio");
|
|
341
|
+
expect(subInheritItem2.getAttribute("role")).to.equal("menuitemradio");
|
|
342
|
+
});
|
|
343
|
+
it("manages complex slotted menu items", async function() {
|
|
344
|
+
const el = await fixture(complexSlotted());
|
|
345
|
+
await waitUntil(
|
|
346
|
+
() => focusableItems(el.menu).length == 12,
|
|
347
|
+
`expected outer menu to manage 12 items, ${el.menu.localName} manages ${focusableItems(el.menu).length}`
|
|
348
|
+
);
|
|
349
|
+
const menu = el.menu;
|
|
350
|
+
const items = {};
|
|
351
|
+
items.i2 = el.querySelector("#i-2");
|
|
352
|
+
items.i8 = el.querySelector("#i-8");
|
|
353
|
+
items.i9 = el.querySelector("#i-9");
|
|
354
|
+
items.i3 = el.renderRoot.querySelector("#i-3");
|
|
355
|
+
items.i5 = el.renderRoot.querySelector("#i-5");
|
|
356
|
+
items.i6 = el.renderRoot.querySelector("#i-6");
|
|
357
|
+
items.i7 = el.renderRoot.querySelector("#i-7");
|
|
358
|
+
const group = el.renderRoot.querySelector(
|
|
359
|
+
"#group"
|
|
360
|
+
);
|
|
361
|
+
items.i1 = group.renderRoot.querySelector("#i-1");
|
|
362
|
+
items.i4 = group.renderRoot.querySelector("#i-4");
|
|
363
|
+
items.i10 = group.renderRoot.querySelector("#i-10");
|
|
364
|
+
items.i11 = group.renderRoot.querySelector("#i-11");
|
|
365
|
+
items.i12 = group.renderRoot.querySelector("#i-12");
|
|
366
|
+
const rect = items.i9.getBoundingClientRect();
|
|
367
|
+
await sendMouse({
|
|
368
|
+
steps: [
|
|
369
|
+
{
|
|
370
|
+
position: [
|
|
371
|
+
rect.left + rect.width / 2,
|
|
372
|
+
rect.top + rect.height / 2
|
|
373
|
+
],
|
|
374
|
+
type: "click"
|
|
375
|
+
}
|
|
376
|
+
]
|
|
377
|
+
});
|
|
378
|
+
await elementUpdated(items.i9);
|
|
379
|
+
await sendKeys({
|
|
380
|
+
press: "ArrowDown"
|
|
381
|
+
});
|
|
382
|
+
await sendKeys({
|
|
383
|
+
press: "ArrowUp"
|
|
384
|
+
});
|
|
385
|
+
await elementUpdated(items.i9);
|
|
386
|
+
expect(items.i9.focused).to.be.true;
|
|
387
|
+
await sendKeys({
|
|
388
|
+
press: "ArrowDown"
|
|
389
|
+
});
|
|
390
|
+
let i = 9;
|
|
391
|
+
const count = Object.keys(items).length + 1;
|
|
392
|
+
while (!items.i9.focused) {
|
|
393
|
+
i = Math.max(1, (i + 1 + count) % count);
|
|
394
|
+
await elementUpdated(menu);
|
|
395
|
+
await elementUpdated(items[`i${i}`]);
|
|
396
|
+
expect(items[`i${i}`].focused, `i${i} should be focused`).to.be.true;
|
|
397
|
+
await sendKeys({
|
|
398
|
+
press: "ArrowDown"
|
|
399
|
+
});
|
|
400
|
+
await elementUpdated(menu);
|
|
401
|
+
await elementUpdated(items[`i${i}`]);
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
//# sourceMappingURL=menu-group.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-group.test.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport '@spectrum-web-components/menu/sp-menu-group.js';\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport '@spectrum-web-components/menu/sp-menu-divider.js';\nimport { Menu, MenuGroup, MenuItem } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n oneEvent,\n waitUntil,\n} from '@open-wc/testing';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\nimport { complexSlotted } from '../stories/menu-group.stories.js';\nimport { ComplexSlottedGroup, ComplexSlottedMenu } from '../stories/index.js';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { sendMouse } from '../../../test/plugins/browser.js';\n\nconst managedItems = (menu: Menu | MenuGroup): MenuItem[] => {\n return menu.childItems.filter(\n (item: MenuItem) => item.menuData.selectionRoot === menu\n );\n};\n\nconst focusableItems = (menu: Menu | MenuGroup): MenuItem[] => {\n return menu.childItems.filter(\n (item: MenuItem) => item.menuData.focusRoot === menu\n );\n};\n\ndescribe('Menu group', () => {\n testForLitDevWarnings(\n async () =>\n await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-group selects=\"inherit\">\n <span slot=\"header\">Section Heading</span>\n <sp-menu-item>Action 1</sp-menu-item>\n <sp-menu-item>Action 2</sp-menu-item>\n <sp-menu-item>Action 3</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group selects=\"inherit\">\n <span slot=\"header\">Section Heading</span>\n <sp-menu-item>Save</sp-menu-item>\n <sp-menu-item disabled>Download</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n )\n );\n it('renders', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-group selects=\"inherit\">\n <span slot=\"header\">Section Heading</span>\n <sp-menu-item>Action 1</sp-menu-item>\n <sp-menu-item>Action 2</sp-menu-item>\n <sp-menu-item>Action 3</sp-menu-item>\n </sp-menu-group>\n <sp-menu-divider></sp-menu-divider>\n <sp-menu-group selects=\"inherit\">\n <span slot=\"header\">Section Heading</span>\n <sp-menu-item>Save</sp-menu-item>\n <sp-menu-item disabled>Download</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n\n await waitUntil(() => {\n return managedItems(el).length === 5;\n }, `expected menu group to manage 5 children, received ${managedItems(el).length} of ${el.childItems.length}`);\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('manages [slot=\"header\"] content', async () => {\n const el = await fixture<MenuGroup>(\n html`\n <sp-menu-group></sp-menu-group>\n `\n );\n await elementUpdated(el);\n const slot = el.shadowRoot.querySelector(\n '[name=\"header\"'\n ) as HTMLSlotElement;\n const header = document.createElement('span');\n header.textContent = 'Header';\n header.slot = 'header';\n expect(header.id).to.equal('');\n let slotchanged = oneEvent(slot, 'slotchange');\n el.append(header);\n await slotchanged;\n expect(header.id).to.equal(\n (el as unknown as { headerId: string }).headerId\n );\n\n slotchanged = oneEvent(slot, 'slotchange');\n header.remove();\n await slotchanged;\n expect(header.id).to.equal('');\n });\n it('handles selects for nested menu groups', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-item selected>First</sp-menu-item>\n <!-- 1 -->\n <sp-menu-item>Second</sp-menu-item>\n <!-- 1 -->\n <sp-menu-group id=\"mg-multi\" selects=\"multiple\">\n <sp-menu-item selected>Multi1</sp-menu-item>\n <!-- 2 -->\n <sp-menu-item>Multi2</sp-menu-item>\n <!-- 2 -->\n <sp-menu-group id=\"mg-sub-inherit\" selects=\"inherit\">\n <sp-menu-item>SubInherit1</sp-menu-item>\n <!-- 2 -->\n <sp-menu-item>SubInherit2</sp-menu-item>\n <!-- 2 -->\n </sp-menu-group>\n </sp-menu-group>\n <sp-menu-group id=\"mg-single\" selects=\"single\">\n <sp-menu-item selected>Single1</sp-menu-item>\n <!-- 3 -->\n <sp-menu-item>Single2</sp-menu-item>\n <!-- 3 -->\n </sp-menu-group>\n <sp-menu-group id=\"mg-none\">\n <sp-menu-item>Inherit1</sp-menu-item>\n <!-- - -->\n <sp-menu-item>Inherit2</sp-menu-item>\n <!-- - -->\n </sp-menu-group>\n <sp-menu-group id=\"mg-inherit\" selects=\"inherit\">\n <sp-menu-item>Inherit1</sp-menu-item>\n <!-- 1 -->\n <sp-menu-item>Inherit2</sp-menu-item>\n <!-- 1 -->\n </sp-menu-group>\n </sp-menu>\n `\n );\n\n // 1 & 3 should be menuitemradio\n // 2 shouwl menuitemcheckbox\n\n await waitUntil(\n () => managedItems(el).length === 4,\n `expected outer menu to manage 4 items (2 are inherited), got ${\n managedItems(el).length\n }, with ${el.childItems.length} total`\n );\n await waitUntil(\n () => el.selectedItems.length === 1,\n 'expected 1 selected item'\n );\n await elementUpdated(el);\n\n const firstItem = el.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n\n const secondItem = el.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n\n const multiGroup = el.querySelector(\n 'sp-menu-group#mg-multi'\n ) as MenuGroup;\n const multiItem1 = multiGroup.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n const multiItem2 = multiGroup.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n await waitUntil(\n () => managedItems(multiGroup).length === 4,\n `selects=\"#mg-multi should manage 4 items (2 are inherited), received ${\n managedItems(multiGroup).length\n }`\n );\n\n const singleGroup = el.querySelector(\n 'sp-menu-group#mg-single'\n ) as MenuGroup;\n\n const singleItem1 = singleGroup.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n const singleItem2 = singleGroup.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n await waitUntil(\n () => managedItems(singleGroup).length === 2,\n 'selects=\"#mg-none should manage 4 items (2 are inherited)'\n );\n\n const noneGroup = el.querySelector(\n 'sp-menu-group#mg-none'\n ) as MenuGroup;\n const noneItem1 = noneGroup.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n const noneItem2 = noneGroup.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n await waitUntil(\n () => managedItems(noneGroup).length === 2,\n `selects=\"#mg-none\" should manage 2 items, received ${\n managedItems(noneGroup).length\n }`\n );\n\n const inheritGroup = el.querySelector(\n 'sp-menu-group#mg-inherit'\n ) as MenuGroup;\n const inheritItem1 = inheritGroup.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n const inheritItem2 = inheritGroup.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n\n expect(firstItem.getAttribute('role')).to.equal('menuitemradio');\n expect(secondItem.getAttribute('role')).to.equal('menuitemradio');\n expect(multiItem1.getAttribute('role')).to.equal('menuitemcheckbox');\n expect(multiItem2.getAttribute('role')).to.equal('menuitemcheckbox');\n expect(singleItem1.getAttribute('role')).to.equal('menuitemradio');\n expect(singleItem2.getAttribute('role')).to.equal('menuitemradio');\n expect(noneItem1.getAttribute('role')).to.equal('menuitem');\n expect(noneItem2.getAttribute('role')).to.equal('menuitem');\n expect(inheritItem1.getAttribute('role')).to.equal('menuitemradio');\n expect(inheritItem2.getAttribute('role')).to.equal('menuitemradio');\n\n await elementUpdated(firstItem);\n expect(singleItem1.selected).to.be.true;\n expect(firstItem.selected).to.be.true;\n expect(secondItem.selected, 'second item not selected').to.be.false;\n expect(el.value).to.equal('First');\n expect(el.selectedItems.length).to.equal(1);\n\n expect(firstItem.getAttribute('aria-checked')).to.equal('true');\n expect(secondItem.getAttribute('aria-checked')).to.equal('false');\n\n secondItem.click();\n await elementUpdated(el);\n await elementUpdated(firstItem);\n await elementUpdated(secondItem);\n expect(firstItem.selected, 'first item not selected').to.be.false;\n expect(secondItem.selected).to.be.true;\n expect(firstItem.getAttribute('aria-checked')).to.equal('false');\n expect(secondItem.getAttribute('aria-checked')).to.equal('true');\n expect(el.value).to.equal('Second');\n expect(el.selectedItems.length).to.equal(1);\n\n inheritItem1.click();\n await elementUpdated(el);\n await elementUpdated(inheritItem1);\n await elementUpdated(secondItem);\n expect(secondItem.selected, 'second item not selected again').to.be\n .false;\n expect(inheritItem1.selected).to.be.true;\n expect(secondItem.getAttribute('aria-checked')).to.equal('false');\n expect(inheritItem1.getAttribute('aria-checked')).to.equal('true');\n expect(el.value).to.equal('Inherit1');\n expect(el.selectedItems.length).to.equal(1);\n\n noneItem2.click();\n await elementUpdated(el);\n await elementUpdated(noneGroup);\n await elementUpdated(noneItem2);\n expect(inheritItem1.selected).to.be.true;\n expect(noneItem2.selected, 'none item not selected').to.be.false;\n expect(el.value).to.equal('Inherit1');\n expect(el.selectedItems.length).to.equal(1);\n\n singleItem2.click();\n await elementUpdated(singleGroup);\n await elementUpdated(singleItem1);\n await elementUpdated(singleItem2);\n expect(singleItem2.selected).to.be.true;\n expect(singleItem1.selected, 'first item not selected').to.be.false;\n expect(inheritItem1.selected).to.be.true;\n expect(singleItem1.getAttribute('aria-checked')).to.equal('false');\n expect(singleItem2.getAttribute('aria-checked')).to.equal('true');\n expect(el.value).to.equal('Inherit1');\n expect(el.selectedItems.length).to.equal(1);\n //expect(singleGroup.value).to.equal('Inherit1')\n expect(singleGroup.selectedItems.length).to.equal(1);\n\n multiItem2.click();\n await elementUpdated(el);\n await elementUpdated(multiItem2);\n expect(multiItem1.selected).to.be.true;\n expect(multiItem2.selected).to.be.true;\n expect(inheritItem1.selected).to.be.true;\n expect(multiItem1.getAttribute('aria-checked')).to.equal('true');\n expect(multiItem2.getAttribute('aria-checked')).to.equal('true');\n //expect(multiGroup.value).to.equal('Inherit1')\n expect(multiGroup.selectedItems.length).to.equal(2);\n });\n\n it('handles changing managed items for selects changes', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu selects=\"multiple\" value-separator=\"--\">\n <sp-menu-item selected>First</sp-menu-item>\n <sp-menu-item>Second</sp-menu-item>\n <sp-menu-group id=\"mg-inherit\" selects=\"inherit\">\n <sp-menu-item>Inherit1</sp-menu-item>\n <sp-menu-item>Inherit2</sp-menu-item>\n <sp-menu-group id=\"mg-sub-inherit\" selects=\"inherit\">\n <sp-menu-item>SubInherit1</sp-menu-item>\n <sp-menu-item selected>SubInherit2</sp-menu-item>\n </sp-menu-group>\n </sp-menu-group>\n </sp-menu>\n `\n );\n\n await waitUntil(\n () => managedItems(el).length == 6,\n `expected outer menu to manage 6 items, manages ${\n managedItems(el).length\n }`\n );\n await waitUntil(\n () => el.selectedItems.length == 2,\n 'expected 2 selected item'\n );\n await elementUpdated(el);\n\n const inheritGroup = el.querySelector(\n 'sp-menu-group#mg-inherit'\n ) as MenuGroup;\n const inheritItem1 = inheritGroup.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n const inheritItem2 = inheritGroup.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n\n const subInheritGroup = el.querySelector(\n 'sp-menu-group#mg-sub-inherit'\n ) as MenuGroup;\n const subInheritItem1 = subInheritGroup.querySelector(\n 'sp-menu-item:nth-of-type(1)'\n ) as MenuItem;\n const subInheritItem2 = subInheritGroup.querySelector(\n 'sp-menu-item:nth-of-type(2)'\n ) as MenuItem;\n\n expect(inheritItem1.getAttribute('role')).to.equal('menuitemcheckbox');\n expect(inheritItem2.getAttribute('role')).to.equal('menuitemcheckbox');\n expect(subInheritItem1.getAttribute('role')).to.equal(\n 'menuitemcheckbox'\n );\n expect(subInheritItem2.getAttribute('role')).to.equal(\n 'menuitemcheckbox'\n );\n expect(el.value).to.equal('First--SubInherit2');\n expect(el.selectedItems.length).to.equal(2);\n inheritGroup.setAttribute('selects', 'single');\n\n await elementUpdated(inheritGroup);\n await elementUpdated(el);\n\n await waitUntil(() => {\n return managedItems(inheritGroup).length === 4;\n }, `expected new single sub-group to manage 4 items, received ${managedItems(inheritGroup).length} because \"selects === ${inheritGroup.selects}`);\n\n await waitUntil(\n () => managedItems(el).length === 2,\n `expected outer menu to manage 2 items with none inherited, received ${\n managedItems(el).length\n }`\n );\n expect(inheritGroup.value).to.equal('SubInherit2');\n expect(inheritGroup.selectedItems.length).to.equal(1);\n expect(el.value).to.equal('First');\n expect(inheritItem1.getAttribute('role')).to.equal('menuitemradio');\n expect(inheritItem2.getAttribute('role')).to.equal('menuitemradio');\n expect(subInheritItem1.getAttribute('role')).to.equal('menuitemradio');\n expect(subInheritItem2.getAttribute('role')).to.equal('menuitemradio');\n });\n it('manages complex slotted menu items', async function () {\n const el = await fixture<ComplexSlottedMenu>(complexSlotted());\n\n await waitUntil(\n () => focusableItems(el.menu).length == 12,\n `expected outer menu to manage 12 items, ${\n el.menu.localName\n } manages ${focusableItems(el.menu).length}`\n );\n\n const menu = el.menu;\n const items: Record<string, MenuItem> = {};\n items.i2 = el.querySelector('#i-2') as MenuItem;\n items.i8 = el.querySelector('#i-8') as MenuItem;\n items.i9 = el.querySelector('#i-9') as MenuItem;\n items.i3 = el.renderRoot.querySelector('#i-3') as MenuItem;\n items.i5 = el.renderRoot.querySelector('#i-5') as MenuItem;\n items.i6 = el.renderRoot.querySelector('#i-6') as MenuItem;\n items.i7 = el.renderRoot.querySelector('#i-7') as MenuItem;\n const group = el.renderRoot.querySelector(\n '#group'\n ) as ComplexSlottedGroup;\n items.i1 = group.renderRoot.querySelector('#i-1') as MenuItem;\n items.i4 = group.renderRoot.querySelector('#i-4') as MenuItem;\n items.i10 = group.renderRoot.querySelector('#i-10') as MenuItem;\n items.i11 = group.renderRoot.querySelector('#i-11') as MenuItem;\n items.i12 = group.renderRoot.querySelector('#i-12') as MenuItem;\n\n const rect = items.i9.getBoundingClientRect();\n await sendMouse({\n steps: [\n {\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n type: 'click',\n },\n ],\n });\n await elementUpdated(items.i9);\n\n await sendKeys({\n press: 'ArrowDown',\n });\n await sendKeys({\n press: 'ArrowUp',\n });\n await elementUpdated(items.i9);\n expect(items.i9.focused).to.be.true;\n await sendKeys({\n press: 'ArrowDown',\n });\n let i = 9;\n const count = Object.keys(items).length + 1;\n while (!items.i9.focused) {\n i = Math.max(1, (i + 1 + count) % count);\n await elementUpdated(menu);\n await elementUpdated(items[`i${i}`]);\n expect(items[`i${i}`].focused, `i${i} should be focused`).to.be\n .true;\n await sendKeys({\n press: 'ArrowDown',\n });\n await elementUpdated(menu);\n await elementUpdated(items[`i${i}`]);\n }\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import * as stories from "../stories/menu-item.disconnected.stories.js";
|
|
3
|
+
import { regressVisuals } from "../../../test/visual/test.js";
|
|
4
|
+
regressVisuals("MenuItem.disconnectedStories", stories);
|
|
5
|
+
//# sourceMappingURL=menu-item.disconnected.test-vrt.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-item.disconnected.test-vrt.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport * as stories from '../stories/menu-item.disconnected.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\nimport type { TestsType } from '../../../test/visual/test.js';\n\nregressVisuals('MenuItem.disconnectedStories', stories as unknown as TestsType);\n"],
|
|
5
|
+
"mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAG/B,eAAe,gCAAgC,OAA+B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["menu-item.test-vrt.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport * as stories from '../stories/menu-item.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\nimport type { TestsType } from '../../../test/visual/test.js';\n\nregressVisuals('MenuItemStories', stories as unknown as TestsType);\n"],
|
|
5
|
+
"mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAG/B,eAAe,mBAAmB,OAA+B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|