@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.
Files changed (46) hide show
  1. package/LICENSE +201 -0
  2. package/package.json +12 -11
  3. package/stories/index.js +82 -0
  4. package/stories/index.js.map +7 -0
  5. package/stories/menu-divider.stories.js +32 -0
  6. package/stories/menu-divider.stories.js.map +7 -0
  7. package/stories/menu-group.stories.js +144 -0
  8. package/stories/menu-group.stories.js.map +7 -0
  9. package/stories/menu-item.disconnected.stories.js +176 -0
  10. package/stories/menu-item.disconnected.stories.js.map +7 -0
  11. package/stories/menu-item.stories.js +73 -0
  12. package/stories/menu-item.stories.js.map +7 -0
  13. package/stories/menu-sizes.stories.js +11 -0
  14. package/stories/menu-sizes.stories.js.map +7 -0
  15. package/stories/menu.stories.js +403 -0
  16. package/stories/menu.stories.js.map +7 -0
  17. package/stories/submenu.stories.js +346 -0
  18. package/stories/submenu.stories.js.map +7 -0
  19. package/test/benchmark/test-basic.js +24 -0
  20. package/test/benchmark/test-basic.js.map +7 -0
  21. package/test/menu-divider.test-vrt.js +5 -0
  22. package/test/menu-divider.test-vrt.js.map +7 -0
  23. package/test/menu-group.test-vrt.js +5 -0
  24. package/test/menu-group.test-vrt.js.map +7 -0
  25. package/test/menu-group.test.js +405 -0
  26. package/test/menu-group.test.js.map +7 -0
  27. package/test/menu-item.disconnected.test-vrt.js +5 -0
  28. package/test/menu-item.disconnected.test-vrt.js.map +7 -0
  29. package/test/menu-item.test-vrt.js +5 -0
  30. package/test/menu-item.test-vrt.js.map +7 -0
  31. package/test/menu-item.test.js +189 -0
  32. package/test/menu-item.test.js.map +7 -0
  33. package/test/menu-memory.test.js +5 -0
  34. package/test/menu-memory.test.js.map +7 -0
  35. package/test/menu-selects.test.js +530 -0
  36. package/test/menu-selects.test.js.map +7 -0
  37. package/test/menu-sizes.test-vrt.js +5 -0
  38. package/test/menu-sizes.test-vrt.js.map +7 -0
  39. package/test/menu.test-vrt.js +5 -0
  40. package/test/menu.test-vrt.js.map +7 -0
  41. package/test/menu.test.js +559 -0
  42. package/test/menu.test.js.map +7 -0
  43. package/test/submenu.test-vrt.js +5 -0
  44. package/test/submenu.test-vrt.js.map +7 -0
  45. package/test/submenu.test.js +970 -0
  46. package/test/submenu.test.js.map +7 -0
@@ -0,0 +1,530 @@
1
+ "use strict";
2
+ import "@spectrum-web-components/menu/sp-menu.js";
3
+ import "@spectrum-web-components/menu/sp-menu-group.js";
4
+ import "@spectrum-web-components/menu/sp-menu-item.js";
5
+ import {
6
+ elementUpdated,
7
+ expect,
8
+ html,
9
+ nextFrame,
10
+ oneEvent
11
+ } from "@open-wc/testing";
12
+ import { sendKeys } from "@web/test-runner-commands";
13
+ import { spy } from "sinon";
14
+ import { fixture } from "../../../test/testing-helpers.js";
15
+ import { sendMouse } from "../../../test/plugins/browser.js";
16
+ describe("Menu [selects]", () => {
17
+ let el;
18
+ let options;
19
+ beforeEach(async () => {
20
+ el = await fixture(
21
+ html`
22
+ <sp-menu selects="single">
23
+ <sp-menu-item value="1">Option 1</sp-menu-item>
24
+ <sp-menu-item value="2">Option 2</sp-menu-item>
25
+ <sp-menu-item value="3">Option 3</sp-menu-item>
26
+ </sp-menu>
27
+ `
28
+ );
29
+ options = [...el.querySelectorAll("sp-menu-item")];
30
+ await Promise.all(options.map((option) => option.updateComplete));
31
+ await nextFrame();
32
+ await nextFrame();
33
+ });
34
+ describe("fires `change` events", async () => {
35
+ it("on browser clicks", async () => {
36
+ const item1 = options[0];
37
+ const boundingRect = item1.getBoundingClientRect();
38
+ const change = oneEvent(el, "change");
39
+ await sendMouse({
40
+ steps: [
41
+ {
42
+ type: "click",
43
+ position: [
44
+ boundingRect.x + boundingRect.width / 2,
45
+ boundingRect.y + boundingRect.height / 2
46
+ ]
47
+ }
48
+ ]
49
+ });
50
+ await change;
51
+ expect(el.value).to.equal("1");
52
+ });
53
+ it("on JS clicks", async () => {
54
+ const item1 = options[0];
55
+ const change = oneEvent(el, "change");
56
+ item1.click();
57
+ await change;
58
+ expect(el.value).to.equal("1");
59
+ });
60
+ });
61
+ it('manages a single selection when [selects="single"]', async () => {
62
+ expect(el.value).to.equal("");
63
+ let change = oneEvent(el, "change");
64
+ options[0].click();
65
+ await change;
66
+ expect(el.value).to.equal("1");
67
+ change = oneEvent(el, "change");
68
+ options[1].click();
69
+ await change;
70
+ await elementUpdated(el);
71
+ expect(el.value).to.equal("2");
72
+ change = oneEvent(el, "change");
73
+ options[2].click();
74
+ await change;
75
+ await elementUpdated(el);
76
+ expect(el.value).to.equal("3");
77
+ });
78
+ it('manages multiple selections when [selects="multiple"]', async () => {
79
+ el.selects = "multiple";
80
+ await elementUpdated(el);
81
+ expect(el.value).to.equal("");
82
+ let change = oneEvent(el, "change");
83
+ options[0].click();
84
+ await change;
85
+ expect(el.value).to.equal("1");
86
+ change = oneEvent(el, "change");
87
+ options[1].click();
88
+ await change;
89
+ await elementUpdated(el);
90
+ expect(el.value).to.equal("1,2");
91
+ change = oneEvent(el, "change");
92
+ options[2].click();
93
+ await change;
94
+ await elementUpdated(el);
95
+ expect(el.value).to.equal("1,2,3");
96
+ change = oneEvent(el, "change");
97
+ options[0].click();
98
+ await change;
99
+ expect(el.value).to.equal("2,3");
100
+ change = oneEvent(el, "change");
101
+ options[1].click();
102
+ await change;
103
+ await elementUpdated(el);
104
+ expect(el.value).to.equal("3");
105
+ change = oneEvent(el, "change");
106
+ options[2].click();
107
+ await change;
108
+ await elementUpdated(el);
109
+ expect(el.value).to.equal("");
110
+ });
111
+ });
112
+ describe("Menu [selects] w/ group", () => {
113
+ let el;
114
+ let options;
115
+ beforeEach(async () => {
116
+ el = await fixture(
117
+ html`
118
+ <sp-menu selects="single">
119
+ <sp-menu-group selects="inherit">
120
+ <sp-menu-item value="1">Option 1</sp-menu-item>
121
+ <sp-menu-item value="2">Option 2</sp-menu-item>
122
+ <sp-menu-item value="3">Option 3</sp-menu-item>
123
+ </sp-menu-group>
124
+ </sp-menu>
125
+ `
126
+ );
127
+ options = [...el.querySelectorAll("sp-menu-item")];
128
+ await Promise.all(options.map((option) => option.updateComplete));
129
+ await nextFrame();
130
+ await nextFrame();
131
+ });
132
+ describe("fires `change` events", async () => {
133
+ it("on browser clicks", async () => {
134
+ const item1 = options[0];
135
+ const boundingRect = item1.getBoundingClientRect();
136
+ const change = oneEvent(el, "change");
137
+ await sendMouse({
138
+ steps: [
139
+ {
140
+ type: "click",
141
+ position: [
142
+ boundingRect.x + boundingRect.width / 2,
143
+ boundingRect.y + boundingRect.height / 2
144
+ ]
145
+ }
146
+ ]
147
+ });
148
+ await change;
149
+ expect(el.value).to.equal("1");
150
+ });
151
+ it("on JS clicks", async () => {
152
+ const item1 = options[0];
153
+ const change = oneEvent(el, "change");
154
+ item1.click();
155
+ await change;
156
+ expect(el.value).to.equal("1");
157
+ });
158
+ });
159
+ it('manages a single selection when [selects="single"]', async () => {
160
+ expect(el.value).to.equal("");
161
+ let change = oneEvent(el, "change");
162
+ options[0].click();
163
+ await change;
164
+ expect(el.value).to.equal("1");
165
+ change = oneEvent(el, "change");
166
+ options[1].click();
167
+ await change;
168
+ await elementUpdated(el);
169
+ expect(el.value).to.equal("2");
170
+ change = oneEvent(el, "change");
171
+ options[2].click();
172
+ await change;
173
+ await elementUpdated(el);
174
+ expect(el.value).to.equal("3");
175
+ });
176
+ it('manages multiple selections when [selects="multiple"]', async () => {
177
+ el.selects = "multiple";
178
+ await elementUpdated(el);
179
+ expect(el.value).to.equal("");
180
+ let change = oneEvent(el, "change");
181
+ options[0].click();
182
+ await change;
183
+ expect(el.value).to.equal("1");
184
+ change = oneEvent(el, "change");
185
+ options[1].click();
186
+ await change;
187
+ await elementUpdated(el);
188
+ expect(el.value).to.equal("1,2");
189
+ change = oneEvent(el, "change");
190
+ options[2].click();
191
+ await change;
192
+ await elementUpdated(el);
193
+ expect(el.value).to.equal("1,2,3");
194
+ change = oneEvent(el, "change");
195
+ options[0].click();
196
+ await change;
197
+ expect(el.value).to.equal("2,3");
198
+ change = oneEvent(el, "change");
199
+ options[1].click();
200
+ await change;
201
+ await elementUpdated(el);
202
+ expect(el.value).to.equal("3");
203
+ change = oneEvent(el, "change");
204
+ options[2].click();
205
+ await change;
206
+ await elementUpdated(el);
207
+ expect(el.value).to.equal("");
208
+ });
209
+ });
210
+ describe("Menu w/ group [selects]", () => {
211
+ let el;
212
+ let group;
213
+ let options;
214
+ beforeEach(async () => {
215
+ el = await fixture(
216
+ html`
217
+ <sp-menu>
218
+ <sp-menu-group selects="single">
219
+ <sp-menu-item value="1">Option 1</sp-menu-item>
220
+ <sp-menu-item value="2">Option 2</sp-menu-item>
221
+ <sp-menu-item value="3">Option 3</sp-menu-item>
222
+ </sp-menu-group>
223
+ </sp-menu>
224
+ `
225
+ );
226
+ group = el.querySelector("sp-menu-group");
227
+ options = [...el.querySelectorAll("sp-menu-item")];
228
+ await Promise.all(options.map((option) => option.updateComplete));
229
+ await nextFrame();
230
+ await nextFrame();
231
+ });
232
+ describe("fires `change` events", async () => {
233
+ it("on browser clicks", async () => {
234
+ const item1 = options[0];
235
+ const boundingRect = item1.getBoundingClientRect();
236
+ const change = oneEvent(group, "change");
237
+ await sendMouse({
238
+ steps: [
239
+ {
240
+ type: "click",
241
+ position: [
242
+ boundingRect.x + boundingRect.width / 2,
243
+ boundingRect.y + boundingRect.height / 2
244
+ ]
245
+ }
246
+ ]
247
+ });
248
+ await change;
249
+ expect(group.value).to.equal("1");
250
+ });
251
+ it("on JS clicks", async () => {
252
+ const item1 = options[0];
253
+ const change = oneEvent(group, "change");
254
+ item1.click();
255
+ await change;
256
+ expect(group.value).to.equal("1");
257
+ });
258
+ });
259
+ it('manages a single selection when [selects="single"]', async () => {
260
+ expect(group.value).to.equal("");
261
+ let change = oneEvent(el, "change");
262
+ options[0].click();
263
+ await change;
264
+ expect(group.value).to.equal("1");
265
+ change = oneEvent(el, "change");
266
+ options[1].click();
267
+ await change;
268
+ await elementUpdated(el);
269
+ expect(group.value).to.equal("2");
270
+ change = oneEvent(el, "change");
271
+ options[2].click();
272
+ await change;
273
+ await elementUpdated(el);
274
+ expect(group.value).to.equal("3");
275
+ });
276
+ it('manages multiple selections when [selects="multiple"]', async () => {
277
+ group.selects = "multiple";
278
+ await elementUpdated(group);
279
+ expect(group.value).to.equal("");
280
+ let change = oneEvent(el, "change");
281
+ options[0].click();
282
+ await change;
283
+ expect(group.value).to.equal("1");
284
+ change = oneEvent(el, "change");
285
+ options[1].click();
286
+ await change;
287
+ await elementUpdated(el);
288
+ expect(group.value).to.equal("1,2");
289
+ change = oneEvent(el, "change");
290
+ options[2].click();
291
+ await change;
292
+ await elementUpdated(el);
293
+ expect(group.value).to.equal("1,2,3");
294
+ change = oneEvent(el, "change");
295
+ options[0].click();
296
+ await change;
297
+ expect(group.value).to.equal("2,3");
298
+ change = oneEvent(el, "change");
299
+ options[1].click();
300
+ await change;
301
+ await elementUpdated(el);
302
+ expect(group.value).to.equal("3");
303
+ change = oneEvent(el, "change");
304
+ options[2].click();
305
+ await change;
306
+ await elementUpdated(el);
307
+ expect(group.value).to.equal("");
308
+ });
309
+ });
310
+ describe("Menu w/ groups [selects]", () => {
311
+ let el;
312
+ let groupA;
313
+ let groupB;
314
+ let options;
315
+ beforeEach(async () => {
316
+ el = await fixture(
317
+ html`
318
+ <sp-menu>
319
+ <sp-menu-group selects="single" id="group-1">
320
+ <sp-menu-item value="1a">Option 1a</sp-menu-item>
321
+ <sp-menu-item value="2a">Option 2a</sp-menu-item>
322
+ <sp-menu-item value="3a">Option 3a</sp-menu-item>
323
+ </sp-menu-group>
324
+ <sp-menu-group selects="single" id="group-2">
325
+ <sp-menu-item value="1b">Option 1b</sp-menu-item>
326
+ <sp-menu-item value="2b">Option 2b</sp-menu-item>
327
+ <sp-menu-item value="3b">Option 3b</sp-menu-item>
328
+ </sp-menu-group>
329
+ </sp-menu>
330
+ `
331
+ );
332
+ groupA = el.querySelector("sp-menu-group:first-child");
333
+ groupB = el.querySelector("sp-menu-group:last-child");
334
+ options = [...el.querySelectorAll("sp-menu-item")];
335
+ await Promise.all(options.map((option) => option.updateComplete));
336
+ await nextFrame();
337
+ await nextFrame();
338
+ });
339
+ describe("fires `change` events", async () => {
340
+ it("on browser clicks", async () => {
341
+ const item1a = options[0];
342
+ const item1b = options[3];
343
+ const boundingRectA = item1a.getBoundingClientRect();
344
+ expect(groupA.value).to.equal("");
345
+ expect(groupB.value).to.equal("");
346
+ let change = oneEvent(el, "change");
347
+ await sendMouse({
348
+ steps: [
349
+ {
350
+ type: "click",
351
+ position: [
352
+ boundingRectA.x + boundingRectA.width / 2,
353
+ boundingRectA.y + boundingRectA.height / 2
354
+ ]
355
+ }
356
+ ]
357
+ });
358
+ await change;
359
+ await elementUpdated(item1a);
360
+ expect(groupA.value).to.equal("1a");
361
+ expect(groupB.value).to.equal("");
362
+ change = oneEvent(el, "change");
363
+ const boundingRectB = item1b.getBoundingClientRect();
364
+ await sendMouse({
365
+ steps: [
366
+ {
367
+ type: "click",
368
+ position: [
369
+ boundingRectB.x + boundingRectB.width / 2,
370
+ boundingRectB.y + boundingRectB.height / 2
371
+ ]
372
+ }
373
+ ]
374
+ });
375
+ await change;
376
+ expect(groupA.value).to.equal("1a");
377
+ expect(groupB.value).to.equal("1b");
378
+ });
379
+ it("on JS clicks", async () => {
380
+ const item1a = options[0];
381
+ const item1b = options[3];
382
+ let change = oneEvent(el, "change");
383
+ item1a.click();
384
+ await change;
385
+ expect(groupA.value).to.equal("1a");
386
+ change = oneEvent(el, "change");
387
+ item1b.click();
388
+ await change;
389
+ expect(groupB.value).to.equal("1b");
390
+ });
391
+ it("can have them `preventDefault()`ed", async () => {
392
+ const preventSpy = spy();
393
+ expect(groupA.value).to.equal("");
394
+ expect(groupB.value).to.equal("");
395
+ const item1a = options[0];
396
+ const item1b = options[3];
397
+ groupA.addEventListener("change", (event) => {
398
+ event.preventDefault();
399
+ preventSpy();
400
+ });
401
+ const change = oneEvent(el, "change");
402
+ item1a.click();
403
+ item1b.click();
404
+ await change;
405
+ expect(preventSpy.callCount).to.equal(1);
406
+ expect(groupA.value).to.equal("");
407
+ expect(groupB.value).to.equal("1b");
408
+ });
409
+ });
410
+ it('manages a single selection when [selects="single"]', async () => {
411
+ expect(groupA.value).to.equal("");
412
+ expect(groupB.value).to.equal("");
413
+ let change = oneEvent(el, "change");
414
+ options[0].click();
415
+ await change;
416
+ expect(groupA.value).to.equal("1a");
417
+ change = oneEvent(el, "change");
418
+ options[3].click();
419
+ await change;
420
+ expect(groupB.value).to.equal("1b");
421
+ change = oneEvent(el, "change");
422
+ options[1].click();
423
+ await change;
424
+ expect(groupA.value).to.equal("2a");
425
+ change = oneEvent(el, "change");
426
+ options[4].click();
427
+ await change;
428
+ expect(groupB.value).to.equal("2b");
429
+ change = oneEvent(el, "change");
430
+ options[2].click();
431
+ await change;
432
+ expect(groupA.value).to.equal("3a");
433
+ change = oneEvent(el, "change");
434
+ options[5].click();
435
+ await change;
436
+ expect(groupB.value).to.equal("3b");
437
+ });
438
+ it('manages multiple selections when [selects="multiple"]', async () => {
439
+ groupA.selects = "multiple";
440
+ groupB.selects = "multiple";
441
+ await elementUpdated(groupA);
442
+ await elementUpdated(groupB);
443
+ expect(groupA.value).to.equal("");
444
+ expect(groupB.value).to.equal("");
445
+ let change = oneEvent(el, "change");
446
+ options[0].click();
447
+ await change;
448
+ expect(groupA.value).to.equal("1a");
449
+ expect(groupB.value).to.equal("");
450
+ change = oneEvent(el, "change");
451
+ options[3].click();
452
+ await change;
453
+ expect(groupA.value).to.equal("1a");
454
+ expect(groupB.value).to.equal("1b");
455
+ change = oneEvent(el, "change");
456
+ options[1].click();
457
+ await change;
458
+ expect(groupA.value).to.equal("1a,2a");
459
+ expect(groupB.value).to.equal("1b");
460
+ change = oneEvent(el, "change");
461
+ options[4].click();
462
+ await change;
463
+ expect(groupA.value).to.equal("1a,2a");
464
+ expect(groupB.value).to.equal("1b,2b");
465
+ change = oneEvent(el, "change");
466
+ options[2].click();
467
+ await change;
468
+ expect(groupA.value).to.equal("1a,2a,3a");
469
+ expect(groupB.value).to.equal("1b,2b");
470
+ change = oneEvent(el, "change");
471
+ options[5].click();
472
+ await change;
473
+ expect(groupA.value).to.equal("1a,2a,3a");
474
+ expect(groupB.value).to.equal("1b,2b,3b");
475
+ change = oneEvent(el, "change");
476
+ options[0].click();
477
+ await change;
478
+ expect(groupA.value).to.equal("2a,3a");
479
+ expect(groupB.value).to.equal("1b,2b,3b");
480
+ change = oneEvent(el, "change");
481
+ options[3].click();
482
+ await change;
483
+ expect(groupA.value).to.equal("2a,3a");
484
+ expect(groupB.value).to.equal("2b,3b");
485
+ change = oneEvent(el, "change");
486
+ options[1].click();
487
+ await change;
488
+ expect(groupA.value).to.equal("3a");
489
+ expect(groupB.value).to.equal("2b,3b");
490
+ change = oneEvent(el, "change");
491
+ options[4].click();
492
+ await change;
493
+ expect(groupA.value).to.equal("3a");
494
+ expect(groupB.value).to.equal("3b");
495
+ change = oneEvent(el, "change");
496
+ options[2].click();
497
+ await change;
498
+ expect(groupA.value).to.equal("");
499
+ expect(groupB.value).to.equal("3b");
500
+ change = oneEvent(el, "change");
501
+ options[5].click();
502
+ await change;
503
+ expect(groupA.value).to.equal("");
504
+ expect(groupB.value).to.equal("");
505
+ });
506
+ it("manages focus", async function() {
507
+ await elementUpdated(groupA);
508
+ await elementUpdated(groupB);
509
+ const input = document.createElement("input");
510
+ el.insertAdjacentElement("afterend", input);
511
+ input.focus();
512
+ expect(document.activeElement === input).to.be.true;
513
+ await sendKeys({ press: "Shift+Tab" });
514
+ expect(document.activeElement === groupA).to.be.true;
515
+ await sendKeys({ press: "ArrowDown" });
516
+ await sendKeys({ press: "ArrowUp" });
517
+ await elementUpdated(el);
518
+ let optionCount = 0;
519
+ for (const option of options) {
520
+ const parentElement = option.parentElement;
521
+ expect(document.activeElement === parentElement, "parent focused").to.be.true;
522
+ expect(option.focused, `option ${optionCount} visually focused`).to.be.true;
523
+ await sendKeys({ press: "Space" });
524
+ expect(parentElement.value).to.equal(option.value);
525
+ await sendKeys({ press: "ArrowDown" });
526
+ optionCount += 1;
527
+ }
528
+ });
529
+ });
530
+ //# sourceMappingURL=menu-selects.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["menu-selects.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.js';\nimport '@spectrum-web-components/menu/sp-menu-group.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport { Menu, MenuGroup, MenuItem } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport { fixture } from '../../../test/testing-helpers.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\n\ndescribe('Menu [selects]', () => {\n let el!: Menu;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-item value=\"1\">Option 1</sp-menu-item>\n <sp-menu-item value=\"2\">Option 2</sp-menu-item>\n <sp-menu-item value=\"3\">Option 3</sp-menu-item>\n </sp-menu>\n `\n );\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n await Promise.all(options.map((option) => option.updateComplete));\n await nextFrame();\n await nextFrame();\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1 = options[0];\n const boundingRect = item1.getBoundingClientRect();\n const change = oneEvent(el, 'change');\n await sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n ],\n });\n await change;\n expect(el.value).to.equal('1');\n });\n it('on JS clicks', async () => {\n const item1 = options[0];\n const change = oneEvent(el, 'change');\n item1.click();\n await change;\n expect(el.value).to.equal('1');\n });\n });\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(el.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n el.selects = 'multiple';\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2,3');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('2,3');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n });\n});\n\ndescribe('Menu [selects] w/ group', () => {\n let el!: Menu;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-group selects=\"inherit\">\n <sp-menu-item value=\"1\">Option 1</sp-menu-item>\n <sp-menu-item value=\"2\">Option 2</sp-menu-item>\n <sp-menu-item value=\"3\">Option 3</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n await Promise.all(options.map((option) => option.updateComplete));\n await nextFrame();\n await nextFrame();\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1 = options[0];\n const boundingRect = item1.getBoundingClientRect();\n const change = oneEvent(el, 'change');\n await sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n ],\n });\n await change;\n expect(el.value).to.equal('1');\n });\n it('on JS clicks', async () => {\n const item1 = options[0];\n const change = oneEvent(el, 'change');\n item1.click();\n await change;\n expect(el.value).to.equal('1');\n });\n });\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(el.value).to.equal('');\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n el.selects = 'multiple';\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2,3');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('2,3');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n });\n});\n\ndescribe('Menu w/ group [selects]', () => {\n let el!: Menu;\n let group!: MenuGroup;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-group selects=\"single\">\n <sp-menu-item value=\"1\">Option 1</sp-menu-item>\n <sp-menu-item value=\"2\">Option 2</sp-menu-item>\n <sp-menu-item value=\"3\">Option 3</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n group = el.querySelector('sp-menu-group') as MenuGroup;\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n await Promise.all(options.map((option) => option.updateComplete));\n await nextFrame();\n await nextFrame();\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1 = options[0];\n const boundingRect = item1.getBoundingClientRect();\n const change = oneEvent(group, 'change');\n await sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n ],\n });\n await change;\n expect(group.value).to.equal('1');\n });\n it('on JS clicks', async () => {\n const item1 = options[0];\n const change = oneEvent(group, 'change');\n item1.click();\n await change;\n expect(group.value).to.equal('1');\n });\n });\n\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(group.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(group.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('3');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n group.selects = 'multiple';\n\n await elementUpdated(group);\n\n expect(group.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(group.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('1,2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('1,2,3');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(group.value).to.equal('2,3');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('3');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('');\n });\n});\n\ndescribe('Menu w/ groups [selects]', () => {\n let el!: Menu;\n let groupA!: MenuGroup;\n let groupB!: MenuGroup;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-group selects=\"single\" id=\"group-1\">\n <sp-menu-item value=\"1a\">Option 1a</sp-menu-item>\n <sp-menu-item value=\"2a\">Option 2a</sp-menu-item>\n <sp-menu-item value=\"3a\">Option 3a</sp-menu-item>\n </sp-menu-group>\n <sp-menu-group selects=\"single\" id=\"group-2\">\n <sp-menu-item value=\"1b\">Option 1b</sp-menu-item>\n <sp-menu-item value=\"2b\">Option 2b</sp-menu-item>\n <sp-menu-item value=\"3b\">Option 3b</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n groupA = el.querySelector('sp-menu-group:first-child') as MenuGroup;\n groupB = el.querySelector('sp-menu-group:last-child') as MenuGroup;\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n await Promise.all(options.map((option) => option.updateComplete));\n await nextFrame();\n await nextFrame();\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1a = options[0];\n const item1b = options[3];\n const boundingRectA = item1a.getBoundingClientRect();\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n let change = oneEvent(el, 'change');\n await sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n boundingRectA.x + boundingRectA.width / 2,\n boundingRectA.y + boundingRectA.height / 2,\n ],\n },\n ],\n });\n await change;\n await elementUpdated(item1a);\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('');\n change = oneEvent(el, 'change');\n const boundingRectB = item1b.getBoundingClientRect();\n await sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n boundingRectB.x + boundingRectB.width / 2,\n boundingRectB.y + boundingRectB.height / 2,\n ],\n },\n ],\n });\n await change;\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('1b');\n });\n it('on JS clicks', async () => {\n const item1a = options[0];\n const item1b = options[3];\n let change = oneEvent(el, 'change');\n item1a.click();\n await change;\n expect(groupA.value).to.equal('1a');\n change = oneEvent(el, 'change');\n item1b.click();\n await change;\n expect(groupB.value).to.equal('1b');\n });\n it('can have them `preventDefault()`ed', async () => {\n const preventSpy = spy();\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n const item1a = options[0];\n const item1b = options[3];\n groupA.addEventListener('change', (event: Event) => {\n event.preventDefault();\n preventSpy();\n });\n const change = oneEvent(el, 'change');\n item1a.click();\n item1b.click();\n await change;\n expect(preventSpy.callCount).to.equal(1);\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('1b');\n });\n });\n\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(groupA.value).to.equal('1a');\n\n change = oneEvent(el, 'change');\n options[3].click();\n await change;\n\n expect(groupB.value).to.equal('1b');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n expect(groupA.value).to.equal('2a');\n\n change = oneEvent(el, 'change');\n options[4].click();\n await change;\n\n expect(groupB.value).to.equal('2b');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n expect(groupA.value).to.equal('3a');\n\n change = oneEvent(el, 'change');\n options[5].click();\n await change;\n\n expect(groupB.value).to.equal('3b');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n groupA.selects = 'multiple';\n groupB.selects = 'multiple';\n\n await elementUpdated(groupA);\n await elementUpdated(groupB);\n\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('');\n\n change = oneEvent(el, 'change');\n options[3].click();\n await change;\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('1b');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a');\n expect(groupB.value).to.equal('1b');\n\n change = oneEvent(el, 'change');\n options[4].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a');\n expect(groupB.value).to.equal('1b,2b');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a,3a');\n expect(groupB.value).to.equal('1b,2b');\n\n change = oneEvent(el, 'change');\n options[5].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a,3a');\n expect(groupB.value).to.equal('1b,2b,3b');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(groupA.value).to.equal('2a,3a');\n expect(groupB.value).to.equal('1b,2b,3b');\n\n change = oneEvent(el, 'change');\n options[3].click();\n await change;\n\n expect(groupA.value).to.equal('2a,3a');\n expect(groupB.value).to.equal('2b,3b');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n expect(groupA.value).to.equal('3a');\n expect(groupB.value).to.equal('2b,3b');\n\n change = oneEvent(el, 'change');\n options[4].click();\n await change;\n\n expect(groupA.value).to.equal('3a');\n expect(groupB.value).to.equal('3b');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('3b');\n\n change = oneEvent(el, 'change');\n options[5].click();\n await change;\n\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n });\n it('manages focus', async function () {\n await elementUpdated(groupA);\n await elementUpdated(groupB);\n const input = document.createElement('input');\n el.insertAdjacentElement('afterend', input);\n input.focus();\n expect(document.activeElement === input).to.be.true;\n await sendKeys({ press: 'Shift+Tab' });\n expect(document.activeElement === groupA).to.be.true;\n await sendKeys({ press: 'ArrowDown' });\n await sendKeys({ press: 'ArrowUp' });\n\n await elementUpdated(el);\n let optionCount = 0;\n for (const option of options) {\n const parentElement = option.parentElement as Menu;\n expect(document.activeElement === parentElement, 'parent focused')\n .to.be.true;\n expect(option.focused, `option ${optionCount} visually focused`).to\n .be.true;\n await sendKeys({ press: 'Space' });\n expect(parentElement.value).to.equal(option.value);\n await sendKeys({ press: 'ArrowDown' });\n optionCount += 1;\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-sizes.stories.js";
3
+ import { regressVisuals } from "../../../test/visual/test.js";
4
+ regressVisuals("MenuSizesStories", stories);
5
+ //# sourceMappingURL=menu-sizes.test-vrt.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["menu-sizes.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-sizes.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\nimport type { TestsType } from '../../../test/visual/test.js';\n\nregressVisuals('MenuSizesStories', stories as unknown as TestsType);\n"],
5
+ "mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAG/B,eAAe,oBAAoB,OAA+B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ import * as stories from "../stories/menu.stories.js";
3
+ import { regressVisuals } from "../../../test/visual/test.js";
4
+ regressVisuals("MenuStories", stories);
5
+ //# sourceMappingURL=menu.test-vrt.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["menu.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.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\nimport type { TestsType } from '../../../test/visual/test.js';\n\nregressVisuals('MenuStories', stories as unknown as TestsType);\n"],
5
+ "mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAG/B,eAAe,eAAe,OAA+B;",
6
+ "names": []
7
+ }