@spectrum-web-components/menu 0.15.1-devmode2.0 → 0.16.1

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 (109) hide show
  1. package/package.json +9 -9
  2. package/sp-menu-divider.dev.js +1 -0
  3. package/sp-menu-divider.dev.js.map +1 -1
  4. package/sp-menu-divider.js +1 -2
  5. package/sp-menu-divider.js.map +2 -2
  6. package/sp-menu-group.dev.js +1 -0
  7. package/sp-menu-group.dev.js.map +1 -1
  8. package/sp-menu-group.js +1 -2
  9. package/sp-menu-group.js.map +2 -2
  10. package/sp-menu-item.dev.js +1 -0
  11. package/sp-menu-item.dev.js.map +1 -1
  12. package/sp-menu-item.js +1 -2
  13. package/sp-menu-item.js.map +2 -2
  14. package/sp-menu.dev.js +1 -0
  15. package/sp-menu.dev.js.map +1 -1
  16. package/sp-menu.js +1 -2
  17. package/sp-menu.js.map +2 -2
  18. package/src/Menu.dev.js +51 -24
  19. package/src/Menu.dev.js.map +1 -1
  20. package/src/Menu.js +2 -493
  21. package/src/Menu.js.map +2 -2
  22. package/src/MenuDivider.dev.js +1 -0
  23. package/src/MenuDivider.dev.js.map +1 -1
  24. package/src/MenuDivider.js +1 -12
  25. package/src/MenuDivider.js.map +2 -2
  26. package/src/MenuGroup.dev.js +4 -3
  27. package/src/MenuGroup.dev.js.map +1 -1
  28. package/src/MenuGroup.js +2 -71
  29. package/src/MenuGroup.js.map +2 -2
  30. package/src/MenuItem.dev.js +34 -9
  31. package/src/MenuItem.dev.js.map +2 -2
  32. package/src/MenuItem.js +7 -406
  33. package/src/MenuItem.js.map +2 -2
  34. package/src/index.dev.js +1 -0
  35. package/src/index.dev.js.map +1 -1
  36. package/src/index.js +1 -4
  37. package/src/index.js.map +1 -1
  38. package/src/menu-divider.css.dev.js +1 -0
  39. package/src/menu-divider.css.dev.js.map +1 -1
  40. package/src/menu-divider.css.js +2 -4
  41. package/src/menu-divider.css.js.map +2 -2
  42. package/src/menu-group.css.dev.js +1 -0
  43. package/src/menu-group.css.dev.js.map +1 -1
  44. package/src/menu-group.css.js +2 -4
  45. package/src/menu-group.css.js.map +2 -2
  46. package/src/menu-item.css.dev.js +1 -0
  47. package/src/menu-item.css.dev.js.map +1 -1
  48. package/src/menu-item.css.js +2 -4
  49. package/src/menu-item.css.js.map +2 -2
  50. package/src/menu.css.dev.js +1 -0
  51. package/src/menu.css.dev.js.map +1 -1
  52. package/src/menu.css.js +2 -4
  53. package/src/menu.css.js.map +2 -2
  54. package/src/spectrum-checkmark.css.dev.js +1 -0
  55. package/src/spectrum-checkmark.css.dev.js.map +1 -1
  56. package/src/spectrum-checkmark.css.js +2 -4
  57. package/src/spectrum-checkmark.css.js.map +2 -2
  58. package/src/spectrum-chevron.css.dev.js +1 -0
  59. package/src/spectrum-chevron.css.dev.js.map +1 -1
  60. package/src/spectrum-chevron.css.js +2 -4
  61. package/src/spectrum-chevron.css.js.map +2 -2
  62. package/src/spectrum-itemLabel.css.dev.js +1 -0
  63. package/src/spectrum-itemLabel.css.dev.js.map +1 -1
  64. package/src/spectrum-itemLabel.css.js +2 -4
  65. package/src/spectrum-itemLabel.css.js.map +2 -2
  66. package/src/spectrum-menu-divider.css.dev.js +1 -0
  67. package/src/spectrum-menu-divider.css.dev.js.map +1 -1
  68. package/src/spectrum-menu-divider.css.js +2 -4
  69. package/src/spectrum-menu-divider.css.js.map +2 -2
  70. package/src/spectrum-menu-item.css.dev.js +1 -0
  71. package/src/spectrum-menu-item.css.dev.js.map +1 -1
  72. package/src/spectrum-menu-item.css.js +2 -4
  73. package/src/spectrum-menu-item.css.js.map +2 -2
  74. package/src/spectrum-menu-sectionHeading.css.dev.js +1 -0
  75. package/src/spectrum-menu-sectionHeading.css.dev.js.map +1 -1
  76. package/src/spectrum-menu-sectionHeading.css.js +2 -4
  77. package/src/spectrum-menu-sectionHeading.css.js.map +2 -2
  78. package/src/spectrum-menu.css.dev.js +1 -0
  79. package/src/spectrum-menu.css.dev.js.map +1 -1
  80. package/src/spectrum-menu.css.js +2 -4
  81. package/src/spectrum-menu.css.js.map +2 -2
  82. package/stories/menu-group.stories.js +1 -0
  83. package/stories/menu-group.stories.js.map +2 -2
  84. package/stories/menu-item.stories.js +1 -0
  85. package/stories/menu-item.stories.js.map +1 -1
  86. package/stories/menu.stories.js +1 -0
  87. package/stories/menu.stories.js.map +1 -1
  88. package/stories/submenu.stories.js +10 -3
  89. package/stories/submenu.stories.js.map +2 -2
  90. package/test/benchmark/test-basic.js +1 -0
  91. package/test/benchmark/test-basic.js.map +1 -1
  92. package/test/menu-group.test-vrt.js +1 -0
  93. package/test/menu-group.test-vrt.js.map +1 -1
  94. package/test/menu-group.test.js +130 -43
  95. package/test/menu-group.test.js.map +1 -1
  96. package/test/menu-item.test-vrt.js +1 -0
  97. package/test/menu-item.test-vrt.js.map +1 -1
  98. package/test/menu-item.test.js +41 -21
  99. package/test/menu-item.test.js.map +1 -1
  100. package/test/menu-selects.test.js +17 -8
  101. package/test/menu-selects.test.js.map +1 -1
  102. package/test/menu.test-vrt.js +1 -0
  103. package/test/menu.test-vrt.js.map +1 -1
  104. package/test/menu.test.js +129 -50
  105. package/test/menu.test.js.map +1 -1
  106. package/test/submenu.test-vrt.js +1 -0
  107. package/test/submenu.test-vrt.js.map +1 -1
  108. package/test/submenu.test.js +71 -37
  109. package/test/submenu.test.js.map +1 -1
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  import "@spectrum-web-components/menu/sp-menu.js";
2
3
  import "@spectrum-web-components/menu/sp-menu-item.js";
3
4
  import {
@@ -27,19 +28,20 @@ describe("Submenu", () => {
27
28
  it("selects - pointer", async () => {
28
29
  const rootChanged = spy();
29
30
  const submenuChanged = spy();
30
- const el = await styledFixture(html`
31
+ const el = await styledFixture(
32
+ html`
31
33
  <sp-menu
32
34
  @change=${(event) => {
33
- rootChanged(event.target.value);
34
- }}
35
+ rootChanged(event.target.value);
36
+ }}
35
37
  >
36
38
  <sp-menu-item class="root">
37
39
  Has submenu
38
40
  <sp-menu
39
41
  slot="submenu"
40
42
  @change=${(event) => {
41
- submenuChanged(event.target.value);
42
- }}
43
+ submenuChanged(event.target.value);
44
+ }}
43
45
  >
44
46
  <sp-menu-item class="submenu-item-1">
45
47
  One
@@ -53,7 +55,8 @@ describe("Submenu", () => {
53
55
  </sp-menu>
54
56
  </sp-menu-item>
55
57
  </sp-menu>
56
- `);
58
+ `
59
+ );
57
60
  await elementUpdated(el);
58
61
  const rootItem = el.querySelector(".root");
59
62
  const rootItemBoundingRect = rootItem.getBoundingClientRect();
@@ -95,19 +98,20 @@ describe("Submenu", () => {
95
98
  const rootChanged = spy();
96
99
  const submenuChanged = spy();
97
100
  const subSubmenuChanged = spy();
98
- const el = await styledFixture(html`
101
+ const el = await styledFixture(
102
+ html`
99
103
  <sp-menu
100
104
  @change=${(event) => {
101
- rootChanged(event.target.value);
102
- }}
105
+ rootChanged(event.target.value);
106
+ }}
103
107
  >
104
108
  <sp-menu-item class="root">
105
109
  Has submenu
106
110
  <sp-menu
107
111
  slot="submenu"
108
112
  @change=${(event) => {
109
- submenuChanged(event.target.value);
110
- }}
113
+ submenuChanged(event.target.value);
114
+ }}
111
115
  >
112
116
  <sp-menu-item class="submenu-item-1">
113
117
  One
@@ -117,8 +121,8 @@ describe("Submenu", () => {
117
121
  <sp-menu
118
122
  slot="submenu"
119
123
  @change=${(event) => {
120
- subSubmenuChanged(event.target.value);
121
- }}
124
+ subSubmenuChanged(event.target.value);
125
+ }}
122
126
  >
123
127
  <sp-menu-item class="sub-submenu-item-1">
124
128
  A
@@ -137,7 +141,8 @@ describe("Submenu", () => {
137
141
  </sp-menu>
138
142
  </sp-menu-item>
139
143
  </sp-menu>
140
- `);
144
+ `
145
+ );
141
146
  await elementUpdated(el);
142
147
  const rootItem = el.querySelector(".root");
143
148
  const rootItemBoundingRect = rootItem.getBoundingClientRect();
@@ -208,19 +213,20 @@ describe("Submenu", () => {
208
213
  it(`selects - keyboard: ${testData.dir}`, async () => {
209
214
  const rootChanged = spy();
210
215
  const submenuChanged = spy();
211
- const el = await styledFixture(html`
216
+ const el = await styledFixture(
217
+ html`
212
218
  <sp-menu
213
219
  @change=${(event) => {
214
- rootChanged(event.target.value);
215
- }}
220
+ rootChanged(event.target.value);
221
+ }}
216
222
  >
217
223
  <sp-menu-item class="root">
218
224
  Has submenu
219
225
  <sp-menu
220
226
  slot="submenu"
221
227
  @change=${(event) => {
222
- submenuChanged(event.target.value);
223
- }}
228
+ submenuChanged(event.target.value);
229
+ }}
224
230
  >
225
231
  <sp-menu-item class="submenu-item-1">
226
232
  One
@@ -234,7 +240,9 @@ describe("Submenu", () => {
234
240
  </sp-menu>
235
241
  </sp-menu-item>
236
242
  </sp-menu>
237
- `, testData.dir);
243
+ `,
244
+ testData.dir
245
+ );
238
246
  await elementUpdated(el);
239
247
  const rootItem = el.querySelector(".root");
240
248
  expect(rootItem.open).to.be.false;
@@ -271,7 +279,8 @@ describe("Submenu", () => {
271
279
  });
272
280
  });
273
281
  it("closes on `pointerleave`", async () => {
274
- const el = await styledFixture(html`
282
+ const el = await styledFixture(
283
+ html`
275
284
  <sp-menu>
276
285
  <sp-menu-item class="root">
277
286
  Has submenu
@@ -288,7 +297,8 @@ describe("Submenu", () => {
288
297
  </sp-menu>
289
298
  </sp-menu-item>
290
299
  </sp-menu>
291
- `);
300
+ `
301
+ );
292
302
  await elementUpdated(el);
293
303
  const rootItem = el.querySelector(".root");
294
304
  const rootItemBoundingRect = rootItem.getBoundingClientRect();
@@ -323,7 +333,8 @@ describe("Submenu", () => {
323
333
  expect(rootItem.open).to.be.false;
324
334
  });
325
335
  it("stays open when mousing off menu item and back again", async () => {
326
- const el = await styledFixture(html`
336
+ const el = await styledFixture(
337
+ html`
327
338
  <sp-menu>
328
339
  <sp-menu-item class="root">
329
340
  Has submenu
@@ -340,7 +351,8 @@ describe("Submenu", () => {
340
351
  </sp-menu>
341
352
  </sp-menu-item>
342
353
  </sp-menu>
343
- `);
354
+ `
355
+ );
344
356
  await elementUpdated(el);
345
357
  const rootItem = el.querySelector(".root");
346
358
  const rootItemBoundingRect = rootItem.getBoundingClientRect();
@@ -396,7 +408,8 @@ describe("Submenu", () => {
396
408
  await closed;
397
409
  });
398
410
  it("stays open when mousing between menu item and submenu", async () => {
399
- const el = await styledFixture(html`
411
+ const el = await styledFixture(
412
+ html`
400
413
  <sp-menu>
401
414
  <sp-menu-item class="root">
402
415
  Has submenu
@@ -413,7 +426,8 @@ describe("Submenu", () => {
413
426
  </sp-menu>
414
427
  </sp-menu-item>
415
428
  </sp-menu>
416
- `);
429
+ `
430
+ );
417
431
  await elementUpdated(el);
418
432
  const rootItem = el.querySelector(".root");
419
433
  const rootItemBoundingRect = rootItem.getBoundingClientRect();
@@ -456,7 +470,8 @@ describe("Submenu", () => {
456
470
  expect(rootItem.open).to.be.true;
457
471
  });
458
472
  it("not opens if disabled", async () => {
459
- const el = await styledFixture(html`
473
+ const el = await styledFixture(
474
+ html`
460
475
  <sp-menu>
461
476
  <sp-menu-item disabled class="root">
462
477
  Has submenu
@@ -473,7 +488,8 @@ describe("Submenu", () => {
473
488
  </sp-menu>
474
489
  </sp-menu-item>
475
490
  </sp-menu>
476
- `);
491
+ `
492
+ );
477
493
  await elementUpdated(el);
478
494
  const rootItem = el.querySelector(".root");
479
495
  const rootItemBoundingRect = rootItem.getBoundingClientRect();
@@ -543,12 +559,16 @@ describe("Submenu", () => {
543
559
  let activeOverlays = document.querySelectorAll("active-overlay");
544
560
  expect(activeOverlays.length).to.equal(1);
545
561
  opened = oneEvent(rootMenu1, "sp-opened");
546
- rootMenu1.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
562
+ rootMenu1.dispatchEvent(
563
+ new PointerEvent("pointerenter", { bubbles: true })
564
+ );
547
565
  await opened;
548
566
  activeOverlays = document.querySelectorAll("active-overlay");
549
567
  expect(activeOverlays.length).to.equal(2);
550
568
  opened = oneEvent(childMenu2, "sp-opened");
551
- childMenu2.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
569
+ childMenu2.dispatchEvent(
570
+ new PointerEvent("pointerenter", { bubbles: true })
571
+ );
552
572
  await opened;
553
573
  activeOverlays = document.querySelectorAll("active-overlay");
554
574
  expect(activeOverlays.length).to.equal(3);
@@ -557,7 +577,9 @@ describe("Submenu", () => {
557
577
  oneEvent(rootMenu1, "sp-closed"),
558
578
  oneEvent(rootMenu2, "sp-opened")
559
579
  ]);
560
- rootMenu2.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
580
+ rootMenu2.dispatchEvent(
581
+ new PointerEvent("pointerenter", { bubbles: true })
582
+ );
561
583
  await overlaysManaged;
562
584
  activeOverlays = document.querySelectorAll("active-overlay");
563
585
  expect(activeOverlays.length).to.equal(2);
@@ -612,12 +634,16 @@ describe("Submenu", () => {
612
634
  let activeOverlays = document.querySelectorAll("active-overlay");
613
635
  expect(activeOverlays.length).to.equal(1);
614
636
  opened = oneEvent(rootMenu1, "sp-opened");
615
- rootMenu1.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
637
+ rootMenu1.dispatchEvent(
638
+ new PointerEvent("pointerenter", { bubbles: true })
639
+ );
616
640
  await opened;
617
641
  activeOverlays = document.querySelectorAll("active-overlay");
618
642
  expect(activeOverlays.length).to.equal(2);
619
643
  opened = oneEvent(childMenu2, "sp-opened");
620
- childMenu2.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
644
+ childMenu2.dispatchEvent(
645
+ new PointerEvent("pointerenter", { bubbles: true })
646
+ );
621
647
  await opened;
622
648
  activeOverlays = document.querySelectorAll("active-overlay");
623
649
  expect(activeOverlays.length).to.equal(3);
@@ -671,12 +697,16 @@ describe("Submenu", () => {
671
697
  let activeOverlays = document.querySelectorAll("active-overlay");
672
698
  expect(activeOverlays.length).to.equal(1);
673
699
  opened = oneEvent(rootMenu, "sp-opened");
674
- rootMenu.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
700
+ rootMenu.dispatchEvent(
701
+ new PointerEvent("pointerenter", { bubbles: true })
702
+ );
675
703
  await opened;
676
704
  activeOverlays = document.querySelectorAll("active-overlay");
677
705
  expect(activeOverlays.length).to.equal(2);
678
706
  const closed = oneEvent(rootMenu, "sp-closed");
679
- noSubmenu.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
707
+ noSubmenu.dispatchEvent(
708
+ new PointerEvent("pointerenter", { bubbles: true })
709
+ );
680
710
  await closed;
681
711
  activeOverlays = document.querySelectorAll("active-overlay");
682
712
  expect(activeOverlays.length).to.equal(1);
@@ -734,12 +764,16 @@ describe("Submenu", () => {
734
764
  let activeOverlays = document.querySelectorAll("active-overlay");
735
765
  expect(activeOverlays.length).to.equal(1);
736
766
  opened = oneEvent(rootMenu1, "sp-opened");
737
- rootMenu1.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
767
+ rootMenu1.dispatchEvent(
768
+ new PointerEvent("pointerenter", { bubbles: true })
769
+ );
738
770
  await opened;
739
771
  activeOverlays = document.querySelectorAll("active-overlay");
740
772
  expect(activeOverlays.length).to.equal(2);
741
773
  opened = oneEvent(childMenu2, "sp-opened");
742
- childMenu2.dispatchEvent(new PointerEvent("pointerenter", { bubbles: true }));
774
+ childMenu2.dispatchEvent(
775
+ new PointerEvent("pointerenter", { bubbles: true })
776
+ );
743
777
  await opened;
744
778
  activeOverlays = document.querySelectorAll("active-overlay");
745
779
  expect(activeOverlays.length).to.equal(3);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["submenu.test.ts"],
4
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 '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport { Menu, MenuItem } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { spy } from 'sinon';\nimport { Theme } from '@spectrum-web-components/theme';\nimport { TemplateResult } from '@spectrum-web-components/base';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { ActionMenu } from '@spectrum-web-components/action-menu';\nimport '@spectrum-web-components/action-menu/sp-action-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-group.js';\nimport '@spectrum-web-components/icons-workflow/icons/sp-icon-show-menu.js';\n\nasync function styledFixture<T extends Element>(\n story: TemplateResult,\n dir: 'ltr' | 'rtl' | 'auto' = 'ltr'\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme dir=${dir} scale=\"medium\" color=\"dark\">${story}</sp-theme>\n `);\n document.documentElement.dir = dir;\n return test.children[0] as T;\n}\n\ndescribe('Submenu', () => {\n it('selects - pointer', async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const item2 = document.querySelector('.submenu-item-2') as MenuItem;\n const item2BoundingRect = item2.getBoundingClientRect();\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n item2BoundingRect.left + item2BoundingRect.width / 2,\n item2BoundingRect.top + item2BoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be.true;\n });\n it('closes deep tree on selection', async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const subSubmenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n <sp-menu\n slot=\"submenu\"\n @change=${(\n event: Event & { target: Menu }\n ) => {\n subSubmenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"sub-submenu-item-1\">\n A\n </sp-menu-item>\n <sp-menu-item class=\"sub-submenu-item-2\">\n B\n </sp-menu-item>\n <sp-menu-item class=\"sub-submenu-item-3\">\n C\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const item2 = document.querySelector('.submenu-item-2') as MenuItem;\n const item2BoundingRect = item2.getBoundingClientRect();\n\n let closed = oneEvent(item2, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n item2BoundingRect.left + item2BoundingRect.width / 2,\n item2BoundingRect.top + item2BoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(item2.open).to.be.true;\n\n const itemC = document.querySelector('.sub-submenu-item-3') as MenuItem;\n const itemCBoundingRect = itemC.getBoundingClientRect();\n\n closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n itemCBoundingRect.left + itemCBoundingRect.width / 2,\n itemCBoundingRect.top + itemCBoundingRect.height / 2,\n ],\n },\n ],\n });\n await closed;\n await nextFrame();\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be.true;\n expect(subSubmenuChanged.calledWith('C'), 'sub submenu changed').to.be\n .true;\n });\n (\n [\n {\n dir: 'ltr',\n openKey: 'ArrowRight',\n closeKey: 'ArrowLeft',\n },\n {\n dir: 'rtl',\n openKey: 'ArrowLeft',\n closeKey: 'ArrowRight',\n },\n ] as {\n dir: 'ltr' | 'rtl' | 'auto';\n openKey: 'ArrowRight' | 'ArrowLeft';\n closeKey: 'ArrowRight' | 'ArrowLeft';\n }[]\n ).map((testData) => {\n it(`selects - keyboard: ${testData.dir}`, async () => {\n const rootChanged = spy();\n const submenuChanged = spy();\n const el = await styledFixture<Menu>(\n html`\n <sp-menu\n @change=${(event: Event & { target: Menu }) => {\n rootChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu\n slot=\"submenu\"\n @change=${(event: Event & { target: Menu }) => {\n submenuChanged(event.target.value);\n }}\n >\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `,\n testData.dir\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n expect(rootItem.open).to.be.false;\n el.focus();\n await elementUpdated(el);\n\n let opened = oneEvent(rootItem, 'sp-opened');\n sendKeys({\n press: testData.openKey,\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n let closed = oneEvent(rootItem, 'sp-closed');\n sendKeys({\n press: testData.closeKey,\n });\n await closed;\n\n expect(rootItem.open).to.be.false;\n\n opened = oneEvent(rootItem, 'sp-opened');\n sendKeys({\n press: testData.openKey,\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n await sendKeys({\n press: 'ArrowDown',\n });\n\n closed = oneEvent(rootItem, 'sp-closed');\n sendKeys({\n press: 'Enter',\n });\n await closed;\n\n expect(rootChanged.calledWith('Has submenu'), 'root changed').to.be\n .true;\n expect(submenuChanged.calledWith('Two'), 'submenu changed').to.be\n .true;\n });\n });\n it('closes on `pointerleave`', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await closed;\n\n expect(rootItem.open).to.be.false;\n });\n it('stays open when mousing off menu item and back again', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n\n const closed = oneEvent(rootItem, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await closed;\n });\n it('stays open when mousing between menu item and submenu', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n const opened = oneEvent(rootItem, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height * 2,\n ],\n },\n ],\n });\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width * 1.5,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n await opened;\n\n expect(rootItem.open).to.be.true;\n });\n it('not opens if disabled', async () => {\n const el = await styledFixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item disabled class=\"root\">\n Has submenu\n <sp-menu slot=\"submenu\">\n <sp-menu-item class=\"submenu-item-1\">\n One\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-2\">\n Two\n </sp-menu-item>\n <sp-menu-item class=\"submenu-item-3\">\n Three\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n const rootItem = el.querySelector('.root') as MenuItem;\n const rootItemBoundingRect = rootItem.getBoundingClientRect();\n expect(rootItem.open).to.be.false;\n\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rootItemBoundingRect.left +\n rootItemBoundingRect.width / 2,\n rootItemBoundingRect.top +\n rootItemBoundingRect.height / 2,\n ],\n },\n ],\n });\n // wait 200ms for open\n await new Promise((r) => setTimeout(r, 200));\n\n expect(rootItem.open).to.be.false;\n });\n it('closes all decendent submenus when closing a ancestor menu', async () => {\n const el = await styledFixture<ActionMenu>(html`\n <sp-action-menu>\n <sp-icon-show-menu slot=\"icon\"></sp-icon-show-menu>\n <sp-menu-group role=\"none\">\n <span slot=\"header\">New York</span>\n <sp-menu-item>Bronx</sp-menu-item>\n <sp-menu-item id=\"submenu-item-1\">\n Brooklyn\n <sp-menu slot=\"submenu\">\n <sp-menu-item id=\"submenu-item-2\">\n Ft. Greene\n <sp-menu slot=\"submenu\">\n <sp-menu-item>S. Oxford St</sp-menu-item>\n <sp-menu-item>S. Portland Ave</sp-menu-item>\n <sp-menu-item>S. Elliot Pl</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item disabled>Park Slope</sp-menu-item>\n <sp-menu-item>Williamsburg</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item id=\"submenu-item-3\">\n Manhattan\n <sp-menu slot=\"submenu\">\n <sp-menu-item disabled>SoHo</sp-menu-item>\n <sp-menu-item>\n Union Square\n <sp-menu slot=\"submenu\">\n <sp-menu-item>14th St</sp-menu-item>\n <sp-menu-item>Broadway</sp-menu-item>\n <sp-menu-item>Park Ave</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item>Upper East Side</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu-group>\n </sp-action-menu>\n `);\n\n const rootMenu1 = el.querySelector('#submenu-item-1') as Menu;\n const rootMenu2 = el.querySelector('#submenu-item-3') as Menu;\n const childMenu2 = el.querySelector('#submenu-item-2') as Menu;\n\n expect(el.open).to.be.false;\n let opened = oneEvent(el, 'sp-opened');\n el.click();\n await opened;\n expect(el.open).to.be.true;\n\n let activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(1);\n opened = oneEvent(rootMenu1, 'sp-opened');\n rootMenu1.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(2);\n\n opened = oneEvent(childMenu2, 'sp-opened');\n childMenu2.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(3);\n\n const overlaysManaged = Promise.all([\n oneEvent(childMenu2, 'sp-closed'),\n oneEvent(rootMenu1, 'sp-closed'),\n oneEvent(rootMenu2, 'sp-opened'),\n ]);\n rootMenu2.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await overlaysManaged;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(2);\n });\n\n it('closes back to the first overlay without a `root` when clicking away', async () => {\n const el = await styledFixture<ActionMenu>(html`\n <sp-action-menu>\n <sp-icon-show-menu slot=\"icon\"></sp-icon-show-menu>\n <sp-menu-group role=\"none\">\n <span slot=\"header\">New York</span>\n <sp-menu-item>Bronx</sp-menu-item>\n <sp-menu-item id=\"submenu-item-1\">\n Brooklyn\n <sp-menu slot=\"submenu\">\n <sp-menu-item id=\"submenu-item-2\">\n Ft. Greene\n <sp-menu slot=\"submenu\">\n <sp-menu-item>S. Oxford St</sp-menu-item>\n <sp-menu-item>S. Portland Ave</sp-menu-item>\n <sp-menu-item>S. Elliot Pl</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item disabled>Park Slope</sp-menu-item>\n <sp-menu-item>Williamsburg</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item id=\"submenu-item-3\">\n Manhattan\n <sp-menu slot=\"submenu\">\n <sp-menu-item disabled>SoHo</sp-menu-item>\n <sp-menu-item>\n Union Square\n <sp-menu slot=\"submenu\">\n <sp-menu-item>14th St</sp-menu-item>\n <sp-menu-item>Broadway</sp-menu-item>\n <sp-menu-item>Park Ave</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item>Upper East Side</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu-group>\n </sp-action-menu>\n `);\n\n const rootMenu1 = el.querySelector('#submenu-item-1') as Menu;\n const childMenu2 = el.querySelector('#submenu-item-2') as Menu;\n\n expect(el.open).to.be.false;\n let opened = oneEvent(el, 'sp-opened');\n el.click();\n await opened;\n expect(el.open).to.be.true;\n\n let activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(1);\n opened = oneEvent(rootMenu1, 'sp-opened');\n rootMenu1.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(2);\n\n opened = oneEvent(childMenu2, 'sp-opened');\n childMenu2.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(3);\n\n const closed = Promise.all([\n oneEvent(childMenu2, 'sp-closed'),\n oneEvent(rootMenu1, 'sp-closed'),\n oneEvent(el, 'sp-closed'),\n ]);\n document.body.click();\n await closed;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(0);\n });\n\n it('closes decendent menus when Menu Item in ancestor without a submenu is pointerentered', async () => {\n const el = await styledFixture<ActionMenu>(html`\n <sp-action-menu>\n <sp-icon-show-menu slot=\"icon\"></sp-icon-show-menu>\n <sp-menu-group role=\"none\">\n <span slot=\"header\">New York</span>\n <sp-menu-item id=\"no-submenu\">Bronx</sp-menu-item>\n <sp-menu-item id=\"submenu-item-1\">\n Brooklyn\n <sp-menu slot=\"submenu\">\n <sp-menu-item id=\"submenu-item-2\">\n Ft. Greene\n </sp-menu-item>\n <sp-menu-item disabled>Park Slope</sp-menu-item>\n <sp-menu-item id=\"ancestor-item\">\n Williamsburg\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item id=\"submenu-item-3\">\n Manhattan\n <sp-menu slot=\"submenu\">\n <sp-menu-item disabled>SoHo</sp-menu-item>\n <sp-menu-item>Union Square</sp-menu-item>\n <sp-menu-item>Upper East Side</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu-group>\n </sp-action-menu>\n `);\n\n const rootMenu = el.querySelector('#submenu-item-1') as MenuItem;\n const noSubmenu = el.querySelector('#no-submenu') as MenuItem;\n\n expect(el.open).to.be.false;\n let opened = oneEvent(el, 'sp-opened');\n el.click();\n await opened;\n expect(el.open).to.be.true;\n\n let activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(1);\n opened = oneEvent(rootMenu, 'sp-opened');\n rootMenu.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(2);\n\n const closed = oneEvent(rootMenu, 'sp-closed');\n noSubmenu.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await closed;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(1);\n });\n\n it('closes decendent menus when Menu Item in ancestor is clicked', async () => {\n const el = await styledFixture<ActionMenu>(html`\n <sp-action-menu>\n <sp-icon-show-menu slot=\"icon\"></sp-icon-show-menu>\n <sp-menu-group role=\"none\">\n <span slot=\"header\">New York</span>\n <sp-menu-item>Bronx</sp-menu-item>\n <sp-menu-item id=\"submenu-item-1\">\n Brooklyn\n <sp-menu slot=\"submenu\">\n <sp-menu-item id=\"submenu-item-2\">\n Ft. Greene\n <sp-menu slot=\"submenu\">\n <sp-menu-item>S. Oxford St</sp-menu-item>\n <sp-menu-item>S. Portland Ave</sp-menu-item>\n <sp-menu-item>S. Elliot Pl</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item disabled>Park Slope</sp-menu-item>\n <sp-menu-item id=\"ancestor-item\">\n Williamsburg\n </sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item id=\"submenu-item-3\">\n Manhattan\n <sp-menu slot=\"submenu\">\n <sp-menu-item disabled>SoHo</sp-menu-item>\n <sp-menu-item>\n Union Square\n <sp-menu slot=\"submenu\">\n <sp-menu-item>14th St</sp-menu-item>\n <sp-menu-item>Broadway</sp-menu-item>\n <sp-menu-item>Park Ave</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n <sp-menu-item>Upper East Side</sp-menu-item>\n </sp-menu>\n </sp-menu-item>\n </sp-menu-group>\n </sp-action-menu>\n `);\n\n const rootMenu1 = el.querySelector('#submenu-item-1') as MenuItem;\n const childMenu2 = el.querySelector('#submenu-item-2') as MenuItem;\n const ancestorItem = el.querySelector('#ancestor-item') as MenuItem;\n\n expect(el.open).to.be.false;\n let opened = oneEvent(el, 'sp-opened');\n el.click();\n await opened;\n expect(el.open).to.be.true;\n\n let activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(1);\n opened = oneEvent(rootMenu1, 'sp-opened');\n rootMenu1.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(2);\n\n opened = oneEvent(childMenu2, 'sp-opened');\n childMenu2.dispatchEvent(\n new PointerEvent('pointerenter', { bubbles: true })\n );\n await opened;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(3);\n\n const closed = Promise.all([\n oneEvent(childMenu2, 'sp-closed'),\n oneEvent(rootMenu1, 'sp-closed'),\n oneEvent(el, 'sp-closed'),\n ]);\n ancestorItem.click();\n await closed;\n activeOverlays = document.querySelectorAll('active-overlay');\n expect(activeOverlays.length).to.equal(0);\n });\n});\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }