@spectrum-web-components/menu 0.14.3 → 0.14.5-devmode.7

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 +54 -20
  2. package/sp-menu-divider.dev.js +3 -0
  3. package/sp-menu-divider.dev.js.map +7 -0
  4. package/sp-menu-divider.js +3 -14
  5. package/sp-menu-divider.js.map +7 -1
  6. package/sp-menu-group.dev.js +3 -0
  7. package/sp-menu-group.dev.js.map +7 -0
  8. package/sp-menu-group.js +3 -14
  9. package/sp-menu-group.js.map +7 -1
  10. package/sp-menu-item.dev.js +3 -0
  11. package/sp-menu-item.dev.js.map +7 -0
  12. package/sp-menu-item.js +3 -14
  13. package/sp-menu-item.js.map +7 -1
  14. package/sp-menu.dev.js +3 -0
  15. package/sp-menu.dev.js.map +7 -0
  16. package/sp-menu.js +3 -14
  17. package/sp-menu.js.map +7 -1
  18. package/src/Menu.dev.js +495 -0
  19. package/src/Menu.dev.js.map +7 -0
  20. package/src/Menu.js +487 -574
  21. package/src/Menu.js.map +7 -1
  22. package/src/MenuDivider.dev.js +13 -0
  23. package/src/MenuDivider.dev.js.map +7 -0
  24. package/src/MenuDivider.js +11 -25
  25. package/src/MenuDivider.js.map +7 -1
  26. package/src/MenuGroup.dev.js +82 -0
  27. package/src/MenuGroup.dev.js.map +7 -0
  28. package/src/MenuGroup.js +67 -71
  29. package/src/MenuGroup.js.map +7 -1
  30. package/src/MenuItem.dev.js +424 -0
  31. package/src/MenuItem.dev.js.map +7 -0
  32. package/src/MenuItem.js +397 -432
  33. package/src/MenuItem.js.map +7 -1
  34. package/src/index.dev.js +5 -0
  35. package/src/index.dev.js.map +7 -0
  36. package/src/index.js +5 -16
  37. package/src/index.js.map +7 -1
  38. package/src/menu-divider.css.dev.js +6 -0
  39. package/src/menu-divider.css.dev.js.map +7 -0
  40. package/src/menu-divider.css.js +3 -14
  41. package/src/menu-divider.css.js.map +7 -1
  42. package/src/menu-group.css.dev.js +8 -0
  43. package/src/menu-group.css.dev.js.map +7 -0
  44. package/src/menu-group.css.js +3 -14
  45. package/src/menu-group.css.js.map +7 -1
  46. package/src/menu-item.css.dev.js +73 -0
  47. package/src/menu-item.css.dev.js.map +7 -0
  48. package/src/menu-item.css.js +3 -14
  49. package/src/menu-item.css.js.map +7 -1
  50. package/src/menu.css.dev.js +61 -0
  51. package/src/menu.css.dev.js.map +7 -0
  52. package/src/menu.css.js +3 -14
  53. package/src/menu.css.js.map +7 -1
  54. package/src/spectrum-checkmark.css.dev.js +10 -0
  55. package/src/spectrum-checkmark.css.dev.js.map +7 -0
  56. package/src/spectrum-checkmark.css.js +3 -14
  57. package/src/spectrum-checkmark.css.js.map +7 -1
  58. package/src/spectrum-chevron.css.dev.js +10 -0
  59. package/src/spectrum-chevron.css.dev.js.map +7 -0
  60. package/src/spectrum-chevron.css.js +3 -14
  61. package/src/spectrum-chevron.css.js.map +7 -1
  62. package/src/spectrum-itemLabel.css.dev.js +6 -0
  63. package/src/spectrum-itemLabel.css.dev.js.map +7 -0
  64. package/src/spectrum-itemLabel.css.js +3 -14
  65. package/src/spectrum-itemLabel.css.js.map +7 -1
  66. package/src/spectrum-menu-divider.css.dev.js +6 -0
  67. package/src/spectrum-menu-divider.css.dev.js.map +7 -0
  68. package/src/spectrum-menu-divider.css.js +3 -14
  69. package/src/spectrum-menu-divider.css.js.map +7 -1
  70. package/src/spectrum-menu-item.css.dev.js +65 -0
  71. package/src/spectrum-menu-item.css.dev.js.map +7 -0
  72. package/src/spectrum-menu-item.css.js +3 -14
  73. package/src/spectrum-menu-item.css.js.map +7 -1
  74. package/src/spectrum-menu-sectionHeading.css.dev.js +8 -0
  75. package/src/spectrum-menu-sectionHeading.css.dev.js.map +7 -0
  76. package/src/spectrum-menu-sectionHeading.css.js +3 -14
  77. package/src/spectrum-menu-sectionHeading.css.js.map +7 -1
  78. package/src/spectrum-menu.css.dev.js +61 -0
  79. package/src/spectrum-menu.css.dev.js.map +7 -0
  80. package/src/spectrum-menu.css.js +3 -14
  81. package/src/spectrum-menu.css.js.map +7 -1
  82. package/stories/menu-group.stories.js +51 -58
  83. package/stories/menu-group.stories.js.map +7 -1
  84. package/stories/menu-item.stories.js +12 -32
  85. package/stories/menu-item.stories.js.map +7 -1
  86. package/stories/menu.stories.js +22 -35
  87. package/stories/menu.stories.js.map +7 -1
  88. package/stories/submenu.stories.js +125 -136
  89. package/stories/submenu.stories.js.map +7 -1
  90. package/test/benchmark/test-basic.js +8 -19
  91. package/test/benchmark/test-basic.js.map +7 -1
  92. package/test/menu-group.test-vrt.js +4 -15
  93. package/test/menu-group.test-vrt.js.map +7 -1
  94. package/test/menu-group.test.js +161 -168
  95. package/test/menu-group.test.js.map +7 -1
  96. package/test/menu-item.test-vrt.js +4 -15
  97. package/test/menu-item.test-vrt.js.map +7 -1
  98. package/test/menu-item.test.js +93 -99
  99. package/test/menu-item.test.js.map +7 -1
  100. package/test/menu-selects.test.js +488 -494
  101. package/test/menu-selects.test.js.map +7 -1
  102. package/test/menu.test-vrt.js +4 -15
  103. package/test/menu.test-vrt.js.map +7 -1
  104. package/test/menu.test.js +240 -257
  105. package/test/menu.test.js.map +7 -1
  106. package/test/submenu.test-vrt.js +4 -15
  107. package/test/submenu.test-vrt.js.map +7 -1
  108. package/test/submenu.test.js +452 -486
  109. package/test/submenu.test.js.map +7 -1
@@ -1,33 +1,27 @@
1
- /*
2
- Copyright 2020 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
-
7
- Unless required by applicable law or agreed to in writing, software distributed under
8
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- OF ANY KIND, either express or implied. See the License for the specific language
10
- governing permissions and limitations under the License.
11
- */
12
- import '../sp-menu.js';
13
- import '../sp-menu-item.js';
14
- import '@spectrum-web-components/menu';
15
- import { elementUpdated, expect, fixture, html, waitUntil, } from '@open-wc/testing';
16
- import { spy } from 'sinon';
17
- import { sendMouse } from '../../../test/plugins/browser.js';
18
- describe('Menu item', () => {
19
- it('renders', async () => {
20
- const el = await fixture(html `
1
+ import "@spectrum-web-components/menu/sp-menu.js";
2
+ import "@spectrum-web-components/menu/sp-menu-item.js";
3
+ import {
4
+ elementUpdated,
5
+ expect,
6
+ fixture,
7
+ html,
8
+ waitUntil
9
+ } from "@open-wc/testing";
10
+ import { spy } from "sinon";
11
+ import { sendMouse } from "../../../test/plugins/browser.js";
12
+ describe("Menu item", () => {
13
+ it("renders", async () => {
14
+ const el = await fixture(html`
21
15
  <sp-menu>
22
16
  <sp-menu-item selected>Selected</sp-menu-item>
23
17
  </sp-menu>
24
18
  `);
25
- await waitUntil(() => el.childItems.length == 1, 'expected menu group to manage 1 child');
26
- await elementUpdated(el);
27
- await expect(el).to.be.accessible();
28
- });
29
- it('can be disabled', async () => {
30
- const el = await fixture(html `
19
+ await waitUntil(() => el.childItems.length == 1, "expected menu group to manage 1 child");
20
+ await elementUpdated(el);
21
+ await expect(el).to.be.accessible();
22
+ });
23
+ it("can be disabled", async () => {
24
+ const el = await fixture(html`
31
25
  <sp-menu selects="single">
32
26
  <sp-menu-item selected label="This is not disabled">
33
27
  Selected
@@ -35,48 +29,48 @@ describe('Menu item', () => {
35
29
  <sp-menu-item disabled>Disabled</sp-menu-item>
36
30
  </sp-menu>
37
31
  `);
38
- await elementUpdated(el);
39
- expect(el.value).to.equal('Selected');
40
- const disabled = el.querySelector('[disabled]');
41
- const boundingRect = disabled.getBoundingClientRect();
42
- sendMouse({
43
- steps: [
44
- {
45
- type: 'move',
46
- position: [
47
- boundingRect.x + boundingRect.width / 2,
48
- boundingRect.y + boundingRect.height / 2,
49
- ],
50
- },
51
- {
52
- type: 'down',
53
- },
54
- {
55
- type: 'up',
56
- },
57
- ],
58
- });
59
- await elementUpdated(el);
60
- expect(el.value).to.equal('Selected');
61
- disabled.click();
62
- await elementUpdated(el);
63
- expect(el.value).to.equal('Selected');
64
- disabled.dispatchEvent(new Event('click', {
65
- bubbles: true,
66
- composed: true,
67
- }));
68
- await elementUpdated(el);
69
- expect(el.value).to.equal('Selected');
32
+ await elementUpdated(el);
33
+ expect(el.value).to.equal("Selected");
34
+ const disabled = el.querySelector("[disabled]");
35
+ const boundingRect = disabled.getBoundingClientRect();
36
+ sendMouse({
37
+ steps: [
38
+ {
39
+ type: "move",
40
+ position: [
41
+ boundingRect.x + boundingRect.width / 2,
42
+ boundingRect.y + boundingRect.height / 2
43
+ ]
44
+ },
45
+ {
46
+ type: "down"
47
+ },
48
+ {
49
+ type: "up"
50
+ }
51
+ ]
70
52
  });
71
- it('proxies `click()`', async () => {
72
- const clickTargetSpy = spy();
73
- const el = await fixture(html `
53
+ await elementUpdated(el);
54
+ expect(el.value).to.equal("Selected");
55
+ disabled.click();
56
+ await elementUpdated(el);
57
+ expect(el.value).to.equal("Selected");
58
+ disabled.dispatchEvent(new Event("click", {
59
+ bubbles: true,
60
+ composed: true
61
+ }));
62
+ await elementUpdated(el);
63
+ expect(el.value).to.equal("Selected");
64
+ });
65
+ it("proxies `click()`", async () => {
66
+ const clickTargetSpy = spy();
67
+ const el = await fixture(html`
74
68
  <sp-menu
75
69
  @click=${(event) => {
76
- clickTargetSpy(event.composedPath()[0]);
77
- event.stopPropagation();
78
- event.preventDefault();
79
- }}
70
+ clickTargetSpy(event.composedPath()[0]);
71
+ event.stopPropagation();
72
+ event.preventDefault();
73
+ }}
80
74
  >
81
75
  <sp-menu-item
82
76
  href="https://opensource.adobe.com/spectrum-web-components"
@@ -85,46 +79,46 @@ describe('Menu item', () => {
85
79
  </sp-menu-item>
86
80
  </sp-menu>
87
81
  `);
88
- await elementUpdated(el);
89
- const item = el.querySelector('sp-menu-item');
90
- const { anchorElement } = item;
91
- item.anchorElement.dispatchEvent(new FocusEvent('focus'));
92
- await elementUpdated(item);
93
- expect(el === document.activeElement).to.be.true;
94
- item.click();
95
- expect(clickTargetSpy.calledWith(anchorElement)).to.be.true;
96
- });
97
- it('value attribute', async () => {
98
- const el = await fixture(html `
82
+ await elementUpdated(el);
83
+ const item = el.querySelector("sp-menu-item");
84
+ const { anchorElement } = item;
85
+ item.anchorElement.dispatchEvent(new FocusEvent("focus"));
86
+ await elementUpdated(item);
87
+ expect(el === document.activeElement).to.be.true;
88
+ item.click();
89
+ expect(clickTargetSpy.calledWith(anchorElement)).to.be.true;
90
+ });
91
+ it("value attribute", async () => {
92
+ const el = await fixture(html`
99
93
  <sp-menu-item value="selected" selected>
100
94
  Selected Text
101
95
  </sp-menu-item>
102
96
  `);
103
- expect(el.itemText).to.equal('Selected Text');
104
- expect(el.value).to.equal('selected');
105
- });
106
- it('no value attribute', async () => {
107
- const el = await fixture(html `
97
+ expect(el.itemText).to.equal("Selected Text");
98
+ expect(el.value).to.equal("selected");
99
+ });
100
+ it("no value attribute", async () => {
101
+ const el = await fixture(html`
108
102
  <sp-menu-item selected>Selected Text</sp-menu-item>
109
103
  `);
110
- expect(el.itemText).to.equal('Selected Text');
111
- expect(el.value).to.equal('Selected Text');
112
- });
113
- it('value property', async () => {
114
- const el = await fixture(html `
104
+ expect(el.itemText).to.equal("Selected Text");
105
+ expect(el.value).to.equal("Selected Text");
106
+ });
107
+ it("value property", async () => {
108
+ const el = await fixture(html`
115
109
  <sp-menu-item selected>Selected Text</sp-menu-item>
116
110
  `);
117
- expect(el.itemText).to.equal('Selected Text');
118
- expect(el.value).to.equal('Selected Text');
119
- expect(el.hasAttribute('value')).to.be.false;
120
- el.value = 'Selected Text';
121
- await elementUpdated(el);
122
- expect(el.value).to.equal('Selected Text');
123
- expect(el.getAttribute('value')).to.equal('Selected Text');
124
- el.value = '';
125
- await elementUpdated(el);
126
- expect(el.value).to.equal('Selected Text');
127
- expect(el.hasAttribute('value')).to.be.false;
128
- });
111
+ expect(el.itemText).to.equal("Selected Text");
112
+ expect(el.value).to.equal("Selected Text");
113
+ expect(el.hasAttribute("value")).to.be.false;
114
+ el.value = "Selected Text";
115
+ await elementUpdated(el);
116
+ expect(el.value).to.equal("Selected Text");
117
+ expect(el.getAttribute("value")).to.equal("Selected Text");
118
+ el.value = "";
119
+ await elementUpdated(el);
120
+ expect(el.value).to.equal("Selected Text");
121
+ expect(el.hasAttribute("value")).to.be.false;
122
+ });
129
123
  });
130
- //# sourceMappingURL=menu-item.test.js.map
124
+ //# sourceMappingURL=menu-item.test.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"menu-item.test.js","sourceRoot":"","sources":["menu-item.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,eAAe,CAAC;AACvB,OAAO,oBAAoB,CAAC;AAE5B,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EACH,cAAc,EACd,MAAM,EACN,OAAO,EACP,IAAI,EACJ,SAAS,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACrB,MAAM,EAAE,GAAG,MAAM,OAAO,CACpB,IAAI,CAAA;;;;aAIH,CACJ,CAAC;QAEF,MAAM,SAAS,CACX,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAC/B,uCAAuC,CAC1C,CAAC;QACF,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,EAAE,GAAG,MAAM,OAAO,CACpB,IAAI,CAAA;;;;;;;aAOH,CACJ,CAAC;QACF,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAa,CAAC;QAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACtD,SAAS,CAAC;YACN,KAAK,EAAE;gBACH;oBACI,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE;wBACN,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC;wBACvC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;qBAC3C;iBACJ;gBACD;oBACI,IAAI,EAAE,MAAM;iBACf;gBACD;oBACI,IAAI,EAAE,IAAI;iBACb;aACJ;SACJ,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEtC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEtC,QAAQ,CAAC,aAAa,CAClB,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACjB,CAAC,CACL,CAAC;QACF,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,OAAO,CACpB,IAAI,CAAA;;6BAEa,CAAC,KAAY,EAAE,EAAE;YACtB,cAAc,CACV,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAsB,CAC/C,CAAC;YACF,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC;;;;;;;;aAQR,CACJ,CAAC;QAEF,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,CAAa,CAAC;QAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,IAEzB,CAAC;QAEE,IACH,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAEvD,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,EAAE,GAAG,MAAM,OAAO,CACpB,IAAI,CAAA;;;;aAIH,CACJ,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,EAAE,GAAG,MAAM,OAAO,CACpB,IAAI,CAAA;;aAEH,CACJ,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,EAAE,GAAG,MAAM,OAAO,CACpB,IAAI,CAAA;;aAEH,CACJ,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAE7C,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC;QAC3B,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE3D,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QACd,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","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 '../sp-menu.js';\nimport '../sp-menu-item.js';\nimport { MenuItem } from '../';\nimport '@spectrum-web-components/menu';\nimport { Menu } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n waitUntil,\n} from '@open-wc/testing';\nimport { spy } from 'sinon';\nimport { sendMouse } from '../../../test/plugins/browser.js';\n\ndescribe('Menu item', () => {\n it('renders', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item selected>Selected</sp-menu-item>\n </sp-menu>\n `\n );\n\n await waitUntil(\n () => el.childItems.length == 1,\n 'expected menu group to manage 1 child'\n );\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('can be disabled', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-item selected label=\"This is not disabled\">\n Selected\n </sp-menu-item>\n <sp-menu-item disabled>Disabled</sp-menu-item>\n </sp-menu>\n `\n );\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n\n const disabled = el.querySelector('[disabled]') as MenuItem;\n const boundingRect = disabled.getBoundingClientRect();\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n\n disabled.click();\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n\n disabled.dispatchEvent(\n new Event('click', {\n bubbles: true,\n composed: true,\n })\n );\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n });\n it('proxies `click()`', async () => {\n const clickTargetSpy = spy();\n const el = await fixture<Menu>(\n html`\n <sp-menu\n @click=${(event: Event) => {\n clickTargetSpy(\n event.composedPath()[0] as HTMLAnchorElement\n );\n event.stopPropagation();\n event.preventDefault();\n }}\n >\n <sp-menu-item\n href=\"https://opensource.adobe.com/spectrum-web-components\"\n >\n Selected Text\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n\n const item = el.querySelector('sp-menu-item') as MenuItem;\n const { anchorElement } = item as unknown as {\n anchorElement: HTMLAnchorElement;\n };\n (\n item as unknown as { anchorElement: HTMLAnchorElement }\n ).anchorElement.dispatchEvent(new FocusEvent('focus'));\n\n await elementUpdated(item);\n expect(el === document.activeElement).to.be.true;\n item.click();\n\n expect(clickTargetSpy.calledWith(anchorElement)).to.be.true;\n });\n it('value attribute', async () => {\n const el = await fixture<MenuItem>(\n html`\n <sp-menu-item value=\"selected\" selected>\n Selected Text\n </sp-menu-item>\n `\n );\n expect(el.itemText).to.equal('Selected Text');\n expect(el.value).to.equal('selected');\n });\n it('no value attribute', async () => {\n const el = await fixture<MenuItem>(\n html`\n <sp-menu-item selected>Selected Text</sp-menu-item>\n `\n );\n expect(el.itemText).to.equal('Selected Text');\n expect(el.value).to.equal('Selected Text');\n });\n it('value property', async () => {\n const el = await fixture<MenuItem>(\n html`\n <sp-menu-item selected>Selected Text</sp-menu-item>\n `\n );\n expect(el.itemText).to.equal('Selected Text');\n expect(el.value).to.equal('Selected Text');\n expect(el.hasAttribute('value')).to.be.false;\n\n el.value = 'Selected Text';\n await elementUpdated(el);\n\n expect(el.value).to.equal('Selected Text');\n expect(el.getAttribute('value')).to.equal('Selected Text');\n\n el.value = '';\n await elementUpdated(el);\n\n expect(el.value).to.equal('Selected Text');\n expect(el.hasAttribute('value')).to.be.false;\n });\n});\n"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["menu-item.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*/\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 waitUntil,\n} from '@open-wc/testing';\nimport { spy } from 'sinon';\nimport { sendMouse } from '../../../test/plugins/browser.js';\n\ndescribe('Menu item', () => {\n it('renders', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-item selected>Selected</sp-menu-item>\n </sp-menu>\n `\n );\n await waitUntil(\n () => el.childItems.length == 1,\n 'expected menu group to manage 1 child'\n );\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('can be disabled', async () => {\n const el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-item selected label=\"This is not disabled\">\n Selected\n </sp-menu-item>\n <sp-menu-item disabled>Disabled</sp-menu-item>\n </sp-menu>\n `\n );\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n\n const disabled = el.querySelector('[disabled]') as MenuItem;\n const boundingRect = disabled.getBoundingClientRect();\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n\n disabled.click();\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n\n disabled.dispatchEvent(\n new Event('click', {\n bubbles: true,\n composed: true,\n })\n );\n await elementUpdated(el);\n expect(el.value).to.equal('Selected');\n });\n it('proxies `click()`', async () => {\n const clickTargetSpy = spy();\n const el = await fixture<Menu>(\n html`\n <sp-menu\n @click=${(event: Event) => {\n clickTargetSpy(\n event.composedPath()[0] as HTMLAnchorElement\n );\n event.stopPropagation();\n event.preventDefault();\n }}\n >\n <sp-menu-item\n href=\"https://opensource.adobe.com/spectrum-web-components\"\n >\n Selected Text\n </sp-menu-item>\n </sp-menu>\n `\n );\n\n await elementUpdated(el);\n\n const item = el.querySelector('sp-menu-item') as MenuItem;\n const { anchorElement } = item as unknown as {\n anchorElement: HTMLAnchorElement;\n };\n (\n item as unknown as { anchorElement: HTMLAnchorElement }\n ).anchorElement.dispatchEvent(new FocusEvent('focus'));\n\n await elementUpdated(item);\n expect(el === document.activeElement).to.be.true;\n item.click();\n\n expect(clickTargetSpy.calledWith(anchorElement)).to.be.true;\n });\n it('value attribute', async () => {\n const el = await fixture<MenuItem>(\n html`\n <sp-menu-item value=\"selected\" selected>\n Selected Text\n </sp-menu-item>\n `\n );\n expect(el.itemText).to.equal('Selected Text');\n expect(el.value).to.equal('selected');\n });\n it('no value attribute', async () => {\n const el = await fixture<MenuItem>(\n html`\n <sp-menu-item selected>Selected Text</sp-menu-item>\n `\n );\n expect(el.itemText).to.equal('Selected Text');\n expect(el.value).to.equal('Selected Text');\n });\n it('value property', async () => {\n const el = await fixture<MenuItem>(\n html`\n <sp-menu-item selected>Selected Text</sp-menu-item>\n `\n );\n expect(el.itemText).to.equal('Selected Text');\n expect(el.value).to.equal('Selected Text');\n expect(el.hasAttribute('value')).to.be.false;\n\n el.value = 'Selected Text';\n await elementUpdated(el);\n\n expect(el.value).to.equal('Selected Text');\n expect(el.getAttribute('value')).to.equal('Selected Text');\n\n el.value = '';\n await elementUpdated(el);\n\n expect(el.value).to.equal('Selected Text');\n expect(el.hasAttribute('value')).to.be.false;\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }