@spectrum-web-components/action-group 0.10.2-devmode.0 → 0.11.0

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.
@@ -1,53 +1,18 @@
1
- import {
2
- elementUpdated,
3
- expect,
4
- fixture,
5
- html,
6
- waitUntil
7
- } from "@open-wc/testing";
8
- import "@spectrum-web-components/action-button/sp-action-button.js";
9
- import { LitElement } from "@spectrum-web-components/base";
10
- import "@spectrum-web-components/overlay/overlay-trigger.js";
11
- import "@spectrum-web-components/tooltip/sp-tooltip.js";
12
- import {
13
- arrowDownEvent,
14
- arrowLeftEvent,
15
- arrowRightEvent,
16
- arrowUpEvent,
17
- endEvent,
18
- homeEvent,
19
- testForLitDevWarnings
20
- } from "../../../test/testing-helpers";
21
- import { sendKeys } from "@web/test-runner-commands";
22
- import "@spectrum-web-components/action-group/sp-action-group.js";
23
- class QuietActionGroup extends LitElement {
24
- render() {
25
- return html`
1
+ import{elementUpdated as n,expect as e,fixture as i,html as c,waitUntil as d}from"@open-wc/testing";import"@spectrum-web-components/action-button/sp-action-button.js";import{LitElement as p}from"@spectrum-web-components/base";import"@spectrum-web-components/overlay/overlay-trigger.js";import"@spectrum-web-components/tooltip/sp-tooltip.js";import{arrowDownEvent as f,arrowLeftEvent as w,arrowRightEvent as b,arrowUpEvent as g,endEvent as q,homeEvent as S,testForLitDevWarnings as y}from"../../../test/testing-helpers";import{sendKeys as u}from"@web/test-runner-commands";import"@spectrum-web-components/action-group/sp-action-group.js";class A extends p{render(){return c`
26
2
  <sp-action-group quiet>
27
3
  <slot name="first"></slot>
28
4
  <slot name="second"></slot>
29
5
  </sp-action-group>
30
- `;
31
- }
32
- }
33
- customElements.define("quiet-action-group", QuietActionGroup);
34
- class EmphasizedActionGroup extends LitElement {
35
- render() {
36
- return html`
6
+ `}}customElements.define("quiet-action-group",A);class m extends p{render(){return c`
37
7
  <sp-action-group emphasized>
38
8
  <slot name="first"></slot>
39
9
  <slot name="second"></slot>
40
10
  </sp-action-group>
41
- `;
42
- }
43
- }
44
- customElements.define("emphasized-action-group", EmphasizedActionGroup);
45
- async function singleSelectedActionGroup(selected) {
46
- const el = await fixture(html`
11
+ `}}customElements.define("emphasized-action-group",m);async function r(a){return await i(c`
47
12
  <sp-action-group
48
13
  label="Selects User-Chosen Buttons"
49
14
  selects="single"
50
- .selected=${selected}
15
+ .selected=${a}
51
16
  >
52
17
  <sp-action-button value="first" class="first">
53
18
  First
@@ -56,15 +21,11 @@ async function singleSelectedActionGroup(selected) {
56
21
  Second
57
22
  </sp-action-button>
58
23
  </sp-action-group>
59
- `);
60
- return el;
61
- }
62
- async function multipleSelectedActionGroup(selected) {
63
- const el = await fixture(html`
24
+ `)}async function v(a){return await i(c`
64
25
  <sp-action-group
65
26
  label="Selects User-Chosen Buttons"
66
27
  selects="multiple"
67
- .selected=${selected}
28
+ .selected=${a}
68
29
  >
69
30
  <sp-action-button value="first" class="first">
70
31
  First
@@ -73,55 +34,26 @@ async function multipleSelectedActionGroup(selected) {
73
34
  Second
74
35
  </sp-action-button>
75
36
  </sp-action-group>
76
- `);
77
- return el;
78
- }
79
- describe("ActionGroup", () => {
80
- it("loads empty action-group accessibly", async () => {
81
- const el = await fixture(html`
37
+ `)}describe("ActionGroup",()=>{it("loads empty action-group accessibly",async()=>{const t=await i(c`
82
38
  <sp-action-group></sp-action-group>
83
- `);
84
- await elementUpdated(el);
85
- await expect(el).to.be.accessible();
86
- });
87
- testForLitDevWarnings(async () => await fixture(html`
39
+ `);await n(t),await e(t).to.be.accessible()}),y(async()=>await i(c`
88
40
  <sp-action-group aria-label="Default Group">
89
41
  <sp-action-button>First</sp-action-button>
90
42
  <sp-action-button>Second</sp-action-button>
91
43
  <sp-action-button>Third</sp-action-button>
92
44
  </sp-action-group>
93
- `));
94
- it("loads default action-group accessibly", async () => {
95
- const el = await fixture(html`
45
+ `)),it("loads default action-group accessibly",async()=>{const t=await i(c`
96
46
  <sp-action-group aria-label="Default Group">
97
47
  <sp-action-button>First</sp-action-button>
98
48
  <sp-action-button>Second</sp-action-button>
99
49
  <sp-action-button>Third</sp-action-button>
100
50
  </sp-action-group>
101
- `);
102
- await elementUpdated(el);
103
- await expect(el).to.be.accessible();
104
- expect(el.getAttribute("aria-label")).to.equal("Default Group");
105
- expect(el.hasAttribute("role")).to.be.false;
106
- expect(el.children[0].getAttribute("role")).to.equal("button");
107
- });
108
- it("applies `quiet` attribute to its children", async () => {
109
- const el = await fixture(html`
51
+ `);await n(t),await e(t).to.be.accessible(),e(t.getAttribute("aria-label")).to.equal("Default Group"),e(t.hasAttribute("role")).to.be.false,e(t.children[0].getAttribute("role")).to.equal("button")}),it("applies `quiet` attribute to its children",async()=>{const t=await i(c`
110
52
  <sp-action-group quiet>
111
53
  <sp-action-button id="first">First</sp-action-button>
112
54
  <sp-action-button id="second">Second</sp-action-button>
113
55
  </sp-action-group>
114
- `);
115
- const firstButton = el.querySelector("#first");
116
- const secondButton = el.querySelector("#second");
117
- await elementUpdated(el);
118
- expect(firstButton.hasAttribute("quiet")).to.be.true;
119
- expect(firstButton.quiet).to.be.true;
120
- expect(secondButton.hasAttribute("quiet")).to.be.true;
121
- expect(secondButton.quiet).to.be.true;
122
- });
123
- it("applies `quiet` attribute to its slotted children", async () => {
124
- const el = await fixture(html`
56
+ `),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("quiet")).to.be.true,e(o.quiet).to.be.true,e(s.hasAttribute("quiet")).to.be.true,e(s.quiet).to.be.true}),it("applies `quiet` attribute to its slotted children",async()=>{const t=await i(c`
125
57
  <quiet-action-group>
126
58
  <sp-action-button slot="first" id="first">
127
59
  First
@@ -130,17 +62,7 @@ describe("ActionGroup", () => {
130
62
  Second
131
63
  </sp-action-button>
132
64
  </quiet-action-group>
133
- `);
134
- const firstButton = el.querySelector("#first");
135
- const secondButton = el.querySelector("#second");
136
- await elementUpdated(el);
137
- expect(firstButton.hasAttribute("quiet")).to.be.true;
138
- expect(firstButton.quiet).to.be.true;
139
- expect(secondButton.hasAttribute("quiet")).to.be.true;
140
- expect(secondButton.quiet).to.be.true;
141
- });
142
- it("applies `emphasized` attribute to its slotted children", async () => {
143
- const el = await fixture(html`
65
+ `),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("quiet")).to.be.true,e(o.quiet).to.be.true,e(s.hasAttribute("quiet")).to.be.true,e(s.quiet).to.be.true}),it("applies `emphasized` attribute to its slotted children",async()=>{const t=await i(c`
144
66
  <emphasized-action-group>
145
67
  <sp-action-button slot="first" id="first">
146
68
  First
@@ -149,17 +71,7 @@ describe("ActionGroup", () => {
149
71
  Second
150
72
  </sp-action-button>
151
73
  </emphasized-action-group>
152
- `);
153
- const firstButton = el.querySelector("#first");
154
- const secondButton = el.querySelector("#second");
155
- await elementUpdated(el);
156
- expect(firstButton.hasAttribute("emphasized")).to.be.true;
157
- expect(firstButton.emphasized).to.be.true;
158
- expect(secondButton.hasAttribute("emphasized")).to.be.true;
159
- expect(secondButton.emphasized).to.be.true;
160
- });
161
- it("applies `quiet` attribute to slotted children with overlays", async () => {
162
- const el = await fixture(html`
74
+ `),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("emphasized")).to.be.true,e(o.emphasized).to.be.true,e(s.hasAttribute("emphasized")).to.be.true,e(s.emphasized).to.be.true}),it("applies `quiet` attribute to slotted children with overlays",async()=>{const t=await i(c`
163
75
  <quiet-action-group>
164
76
  <overlay-trigger slot="first">
165
77
  <sp-action-button slot="trigger" id="first">
@@ -172,17 +84,7 @@ describe("ActionGroup", () => {
172
84
  </sp-action-button>
173
85
  </overlay-trigger>
174
86
  </quiet-action-group>
175
- `);
176
- const firstButton = el.querySelector("#first");
177
- const secondButton = el.querySelector("#second");
178
- await elementUpdated(el);
179
- expect(firstButton.hasAttribute("quiet")).to.be.true;
180
- expect(firstButton.quiet).to.be.true;
181
- expect(secondButton.hasAttribute("quiet")).to.be.true;
182
- expect(secondButton.quiet).to.be.true;
183
- });
184
- it("applies `emphasized` attribute to slotted children with overlays", async () => {
185
- const el = await fixture(html`
87
+ `),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("quiet")).to.be.true,e(o.quiet).to.be.true,e(s.hasAttribute("quiet")).to.be.true,e(s.quiet).to.be.true}),it("applies `emphasized` attribute to slotted children with overlays",async()=>{const t=await i(c`
186
88
  <emphasized-action-group>
187
89
  <overlay-trigger slot="first">
188
90
  <sp-action-button slot="trigger" id="first">
@@ -195,42 +97,19 @@ describe("ActionGroup", () => {
195
97
  </sp-action-button>
196
98
  </overlay-trigger>
197
99
  </emphasized-action-group>
198
- `);
199
- const firstButton = el.querySelector("#first");
200
- const secondButton = el.querySelector("#second");
201
- await elementUpdated(el);
202
- expect(firstButton.hasAttribute("emphasized")).to.be.true;
203
- expect(firstButton.emphasized).to.be.true;
204
- expect(secondButton.hasAttribute("emphasized")).to.be.true;
205
- expect(secondButton.emphasized).to.be.true;
206
- });
207
- it('loads [selects="single"] action-group accessibly', async () => {
208
- const el = await fixture(html`
100
+ `),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("emphasized")).to.be.true,e(o.emphasized).to.be.true,e(s.hasAttribute("emphasized")).to.be.true,e(s.emphasized).to.be.true}),it('loads [selects="single"] action-group accessibly',async()=>{const t=await i(c`
209
101
  <sp-action-group label="Selects Single Group" selects="single">
210
102
  <sp-action-button>First</sp-action-button>
211
103
  <sp-action-button>Second</sp-action-button>
212
104
  <sp-action-button>Third</sp-action-button>
213
105
  </sp-action-group>
214
- `);
215
- await elementUpdated(el);
216
- await expect(el).to.be.accessible();
217
- expect(el.getAttribute("aria-label")).to.equal("Selects Single Group");
218
- expect(el.getAttribute("role")).to.equal("radiogroup");
219
- expect(el.children[0].getAttribute("role")).to.equal("radio");
220
- });
221
- it('loads [selects="single"] action-group w/ selection accessibly', async () => {
222
- const el = await fixture(html`
106
+ `);await n(t),await e(t).to.be.accessible(),e(t.getAttribute("aria-label")).to.equal("Selects Single Group"),e(t.getAttribute("role")).to.equal("radiogroup"),e(t.children[0].getAttribute("role")).to.equal("radio")}),it('loads [selects="single"] action-group w/ selection accessibly',async()=>{const t=await i(c`
223
107
  <sp-action-group label="Selects Single Group" selects="single">
224
108
  <sp-action-button>First</sp-action-button>
225
109
  <sp-action-button>Second</sp-action-button>
226
110
  <sp-action-button selected>Third</sp-action-button>
227
111
  </sp-action-group>
228
- `);
229
- await elementUpdated(el);
230
- await expect(el).to.be.accessible();
231
- });
232
- it('loads [selects="multiple"] action-group accessibly', async () => {
233
- const el = await fixture(html`
112
+ `);await n(t),await e(t).to.be.accessible()}),it('loads [selects="multiple"] action-group accessibly',async()=>{const t=await i(c`
234
113
  <sp-action-group
235
114
  label="Selects Multiple Group"
236
115
  selects="multiple"
@@ -239,15 +118,7 @@ describe("ActionGroup", () => {
239
118
  <sp-action-button>Second</sp-action-button>
240
119
  <sp-action-button>Third</sp-action-button>
241
120
  </sp-action-group>
242
- `);
243
- await elementUpdated(el);
244
- await expect(el).to.be.accessible();
245
- expect(el.getAttribute("aria-label")).to.equal("Selects Multiple Group");
246
- expect(el.getAttribute("role")).to.equal("group");
247
- expect(el.children[0].getAttribute("role")).to.equal("checkbox");
248
- });
249
- it('loads [selects="multiple"] action-group w/ selection accessibly', async () => {
250
- const el = await fixture(html`
121
+ `);await n(t),await e(t).to.be.accessible(),e(t.getAttribute("aria-label")).to.equal("Selects Multiple Group"),e(t.getAttribute("role")).to.equal("group"),e(t.children[0].getAttribute("role")).to.equal("checkbox")}),it('loads [selects="multiple"] action-group w/ selection accessibly',async()=>{const t=await i(c`
251
122
  <sp-action-group
252
123
  label="Selects Multiple Group"
253
124
  selects="multiple"
@@ -256,36 +127,19 @@ describe("ActionGroup", () => {
256
127
  <sp-action-button selected>Second</sp-action-button>
257
128
  <sp-action-button selected>Third</sp-action-button>
258
129
  </sp-action-group>
259
- `);
260
- await elementUpdated(el);
261
- await expect(el).to.be.accessible();
262
- });
263
- it('sets tab stop when [selects="single"] and the initial button is [disabled]', async () => {
264
- const el = await fixture(html`
130
+ `);await n(t),await e(t).to.be.accessible()}),it('sets tab stop when [selects="single"] and the initial button is [disabled]',async()=>{const t=await i(c`
265
131
  <sp-action-group label="Selects Single Group" selects="single">
266
132
  <sp-action-button disabled>First</sp-action-button>
267
133
  <sp-action-button class="second">Second</sp-action-button>
268
134
  <sp-action-button>Third</sp-action-button>
269
135
  </sp-action-group>
270
- `);
271
- const secondButton = el.querySelector(".second");
272
- await elementUpdated(el);
273
- expect(secondButton.hasAttribute("tabindex"));
274
- expect(secondButton.getAttribute("tabindex")).to.equal("0");
275
- });
276
- it('surfaces [selects="single"] selection', async () => {
277
- const el = await fixture(html`
136
+ `),o=t.querySelector(".second");await n(t),e(o.hasAttribute("tabindex")),e(o.getAttribute("tabindex")).to.equal("0")}),it('surfaces [selects="single"] selection',async()=>{const t=await i(c`
278
137
  <sp-action-group label="Selects Single Group" selects="single">
279
138
  <sp-action-button>First</sp-action-button>
280
139
  <sp-action-button>Second</sp-action-button>
281
140
  <sp-action-button selected>Third</sp-action-button>
282
141
  </sp-action-group>
283
- `);
284
- await elementUpdated(el);
285
- expect(el.selected, '"Third" selected').to.deep.equal(["Third"]);
286
- });
287
- it('surfaces [selects="multiple"] selection', async () => {
288
- const el = await fixture(html`
142
+ `);await n(t),e(t.selected,'"Third" selected').to.deep.equal(["Third"])}),it('surfaces [selects="multiple"] selection',async()=>{const t=await i(c`
289
143
  <sp-action-group
290
144
  label="Selects Multiple Group"
291
145
  selects="multiple"
@@ -294,30 +148,13 @@ describe("ActionGroup", () => {
294
148
  <sp-action-button selected>Second</sp-action-button>
295
149
  <sp-action-button selected>Third</sp-action-button>
296
150
  </sp-action-group>
297
- `);
298
- await elementUpdated(el);
299
- expect(el.selected, '"Second" and "Third" selected').to.deep.equal([
300
- "Second",
301
- "Third"
302
- ]);
303
- });
304
- it("does not select without [selects]", async () => {
305
- const el = await fixture(html`
151
+ `);await n(t),e(t.selected,'"Second" and "Third" selected').to.deep.equal(["Second","Third"])}),it("does not select without [selects]",async()=>{const t=await i(c`
306
152
  <sp-action-group label="No Selects Group">
307
153
  <sp-action-button>First</sp-action-button>
308
154
  <sp-action-button selected>Second</sp-action-button>
309
155
  <sp-action-button class="third">Third</sp-action-button>
310
156
  </sp-action-group>
311
- `);
312
- const thirdElement = el.querySelector(".third");
313
- await elementUpdated(el);
314
- expect(el.selected.length).to.equal(1);
315
- thirdElement.click();
316
- await elementUpdated(el);
317
- expect(el.selected.length).to.equal(1);
318
- });
319
- it('selects via `click` while [selects="single"]', async () => {
320
- const el = await fixture(html`
157
+ `),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),o.click(),await n(t),e(t.selected.length).to.equal(1)}),it('selects via `click` while [selects="single"]',async()=>{const t=await i(c`
321
158
  <sp-action-group label="Selects Single Group" selects="single">
322
159
  <sp-action-button value="first">First</sp-action-button>
323
160
  <sp-action-button value="second" selected>
@@ -327,18 +164,7 @@ describe("ActionGroup", () => {
327
164
  Third
328
165
  </sp-action-button>
329
166
  </sp-action-group>
330
- `);
331
- const thirdElement = el.querySelector(".third");
332
- await elementUpdated(el);
333
- expect(el.selected.length).to.equal(1);
334
- expect(el.selected.includes("second"));
335
- thirdElement.click();
336
- await elementUpdated(el);
337
- expect(thirdElement.selected, "third child selected").to.be.true;
338
- await waitUntil(() => el.selected.length === 1 && el.selected.includes("third"), "Updates value of `selected`");
339
- });
340
- it('selects via `click` while [selects="multiple"] selection', async () => {
341
- const el = await fixture(html`
167
+ `),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),e(t.selected.includes("second")),o.click(),await n(t),e(o.selected,"third child selected").to.be.true,await d(()=>t.selected.length===1&&t.selected.includes("third"),"Updates value of `selected`")}),it('selects via `click` while [selects="multiple"] selection',async()=>{const t=await i(c`
342
168
  <sp-action-group
343
169
  label="Selects Multiple Group"
344
170
  selects="multiple"
@@ -349,91 +175,27 @@ describe("ActionGroup", () => {
349
175
  <sp-action-button class="second">Second</sp-action-button>
350
176
  <sp-action-button class="third">Third</sp-action-button>
351
177
  </sp-action-group>
352
- `);
353
- const firstElement = el.querySelector(".first");
354
- const secondElement = el.querySelector(".second");
355
- const thirdElement = el.querySelector(".third");
356
- await elementUpdated(el);
357
- expect(el.selected.length).to.equal(1);
358
- expect(el.selected.includes("First"));
359
- firstElement.click();
360
- secondElement.click();
361
- thirdElement.click();
362
- await elementUpdated(el);
363
- expect(secondElement.selected, "second child selected").to.be.true;
364
- expect(thirdElement.selected, "third child selected").to.be.true;
365
- await waitUntil(() => el.selected.length === 2 && el.selected.includes("Second") && el.selected.includes("Third"), "Updates value of `selected`");
366
- });
367
- it("does not respond to clicks on itself", async () => {
368
- const el = await fixture(html`
178
+ `),o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),e(t.selected.includes("First")),o.click(),s.click(),l.click(),await n(t),e(s.selected,"second child selected").to.be.true,e(l.selected,"third child selected").to.be.true,await d(()=>t.selected.length===2&&t.selected.includes("Second")&&t.selected.includes("Third"),"Updates value of `selected`")}),it("does not respond to clicks on itself",async()=>{const t=await i(c`
369
179
  <sp-action-group label="Selects Single Group" selects="single">
370
180
  <sp-action-button>First</sp-action-button>
371
181
  <sp-action-button>Second</sp-action-button>
372
182
  <sp-action-button class="third">Third</sp-action-button>
373
183
  </sp-action-group>
374
- `);
375
- await elementUpdated(el);
376
- expect(el.selected.length).to.equal(0);
377
- el.click();
378
- await elementUpdated(el);
379
- expect(el.selected.length).to.equal(0);
380
- });
381
- it("selection can be prevented", async () => {
382
- const el = await fixture(html`
184
+ `);await n(t),e(t.selected.length).to.equal(0),t.click(),await n(t),e(t.selected.length).to.equal(0)}),it("selection can be prevented",async()=>{const t=await i(c`
383
185
  <sp-action-group
384
186
  label="Selects Single Group"
385
187
  selects="single"
386
- @change=${(event) => {
387
- event.preventDefault();
388
- }}
188
+ @change=${s=>{s.preventDefault()}}
389
189
  >
390
190
  <sp-action-button>First</sp-action-button>
391
191
  <sp-action-button>Second</sp-action-button>
392
192
  <sp-action-button class="third">Third</sp-action-button>
393
193
  </sp-action-group>
394
- `);
395
- const thirdElement = el.querySelector(".third");
396
- await elementUpdated(el);
397
- expect(el.selected.length).to.equal(0);
398
- thirdElement.click();
399
- await elementUpdated(el);
400
- expect(thirdElement.selected, "third child not selected").to.be.false;
401
- expect(el.selected.length).to.equal(0);
402
- });
403
- it('selects user-passed value while [selects="single"]', async () => {
404
- const el = await singleSelectedActionGroup(["first"]);
405
- await elementUpdated(el);
406
- expect(el.selected.length).to.equal(1);
407
- const firstButton = el.querySelector(".first");
408
- const secondButton = el.querySelector(".second");
409
- expect(firstButton.selected, "first button selected").to.be.true;
410
- expect(secondButton.selected, "second button not selected").to.be.false;
411
- secondButton.click();
412
- await elementUpdated(el);
413
- expect(el.selected.length).to.equal(1);
414
- expect(firstButton.selected, "first button not selected").to.be.false;
415
- expect(secondButton.selected, "second button selected").to.be.true;
416
- });
417
- it('selects can be updated while [selects="single"]', async () => {
418
- const el = await singleSelectedActionGroup(["first"]);
419
- await elementUpdated(el);
420
- expect(el.selected.length).to.equal(1);
421
- const firstButton = el.querySelector(".first");
422
- const secondButton = el.querySelector(".second");
423
- expect(firstButton.selected, "first button selected").to.be.true;
424
- expect(secondButton.selected, "second button not selected").to.be.false;
425
- el.selected = ["second"];
426
- await elementUpdated(el);
427
- expect(el.selected.length).to.equal(1);
428
- expect(firstButton.selected, "first button not selected").to.be.false;
429
- expect(secondButton.selected, "second button selected").to.be.true;
430
- });
431
- it('selects user-passed value while [selects="multiple"]', async () => {
432
- const el = await fixture(html`
194
+ `),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(0),o.click(),await n(t),e(o.selected,"third child not selected").to.be.false,e(t.selected.length).to.equal(0)}),it('selects user-passed value while [selects="single"]',async()=>{const t=await r(["first"]);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button not selected").to.be.false,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true}),it('selects can be updated while [selects="single"]',async()=>{const t=await r(["first"]);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button not selected").to.be.false,t.selected=["second"],await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true}),it('selects user-passed value while [selects="multiple"]',async()=>{const t=await i(c`
433
195
  <sp-action-group
434
196
  label="Selects Multiple Group"
435
197
  selects="multiple"
436
- .selected=${["first", "second"]}
198
+ .selected=${["first","second"]}
437
199
  >
438
200
  <sp-action-button class="first" value="first">
439
201
  First
@@ -445,34 +207,11 @@ describe("ActionGroup", () => {
445
207
  Third
446
208
  </sp-action-button>
447
209
  </sp-action-group>
448
- `);
449
- await elementUpdated(el);
450
- const firstButton = el.querySelector(".first");
451
- const secondButton = el.querySelector(".second");
452
- const thirdButton = el.querySelector(".third");
453
- expect(el.selected.length).to.equal(2);
454
- expect(firstButton.selected, "first button selected").to.be.true;
455
- expect(secondButton.selected, "second button selected").to.be.true;
456
- expect(thirdButton.selected, "third button not selected").to.be.false;
457
- thirdButton.click();
458
- await elementUpdated(el);
459
- expect(el.selected.length).to.equal(3);
460
- expect(firstButton.selected, "first button selected").to.be.true;
461
- expect(secondButton.selected, "second button selected").to.be.true;
462
- expect(thirdButton.selected, "third button selected").to.be.true;
463
- firstButton.click();
464
- await elementUpdated(el);
465
- expect(el.selected.length).to.equal(2);
466
- expect(firstButton.selected, "first button not selected").to.be.false;
467
- expect(secondButton.selected, "second button selected").to.be.true;
468
- expect(thirdButton.selected, "third button selected").to.be.true;
469
- });
470
- it('selects can be updated while [selects="multiple"]', async () => {
471
- const el = await fixture(html`
210
+ `);await n(t);const o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");e(t.selected.length).to.equal(2),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button not selected").to.be.false,l.click(),await n(t),e(t.selected.length).to.equal(3),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true,o.click(),await n(t),e(t.selected.length).to.equal(2),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true}),it('selects can be updated while [selects="multiple"]',async()=>{const t=await i(c`
472
211
  <sp-action-group
473
212
  label="Selects Multiple Group"
474
213
  selects="multiple"
475
- .selected=${["first", "second"]}
214
+ .selected=${["first","second"]}
476
215
  >
477
216
  <sp-action-button class="first" value="first">
478
217
  First
@@ -484,53 +223,7 @@ describe("ActionGroup", () => {
484
223
  Third
485
224
  </sp-action-button>
486
225
  </sp-action-group>
487
- `);
488
- await elementUpdated(el);
489
- const firstButton = el.querySelector(".first");
490
- const secondButton = el.querySelector(".second");
491
- const thirdButton = el.querySelector(".third");
492
- expect(el.selected.length).to.equal(2);
493
- expect(firstButton.selected, "first button selected").to.be.true;
494
- expect(secondButton.selected, "second button selected").to.be.true;
495
- expect(thirdButton.selected, "third button not selected").to.be.false;
496
- el.selected = ["first", "second", "third"];
497
- await elementUpdated(el);
498
- expect(el.selected.length).to.equal(3);
499
- expect(firstButton.selected, "first button selected").to.be.true;
500
- expect(secondButton.selected, "second button selected").to.be.true;
501
- expect(thirdButton.selected, "third button selected").to.be.true;
502
- el.selected = ["second", "third"];
503
- await elementUpdated(el);
504
- expect(el.selected.length, JSON.stringify(el.selected)).to.equal(2);
505
- expect(firstButton.selected, "first button not selected").to.be.false;
506
- expect(secondButton.selected, "second button selected").to.be.true;
507
- expect(thirdButton.selected, "third button selected").to.be.true;
508
- });
509
- it('selects multiple user-passed values while [selects="single"], but then proceeds with radio-button style functionality', async () => {
510
- const el = await singleSelectedActionGroup(["first", "second"]);
511
- await elementUpdated(el);
512
- expect(el.selected.length).to.equal(2);
513
- const firstButton = el.querySelector(".first");
514
- const secondButton = el.querySelector(".second");
515
- expect(firstButton.selected, "first button selected").to.be.true;
516
- expect(secondButton.selected, "second button selected").to.be.true;
517
- secondButton.click();
518
- await elementUpdated(el);
519
- expect(el.selected.length).to.equal(1);
520
- expect(firstButton.selected, "first button selected").to.be.false;
521
- expect(secondButton.selected, "second button selected").to.be.true;
522
- });
523
- it('only selects user-passed buttons if present in action-group while [selects="multiple"]', async () => {
524
- const el = await multipleSelectedActionGroup(["second", "fourth"]);
525
- await elementUpdated(el);
526
- expect(el.selected.length).to.equal(1);
527
- const secondButton = el.querySelector(".second");
528
- expect(secondButton.selected, "second button selected").to.be.true;
529
- const firstButton = el.querySelector(".first");
530
- expect(firstButton.selected, "first button selected").to.be.false;
531
- });
532
- it("selects user-passed values with no .selects value, but does not allow interaction afterwards", async () => {
533
- const el = await fixture(html`
226
+ `);await n(t);const o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");e(t.selected.length).to.equal(2),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button not selected").to.be.false,t.selected=["first","second","third"],await n(t),e(t.selected.length).to.equal(3),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true,t.selected=["second","third"],await n(t),e(t.selected.length,JSON.stringify(t.selected)).to.equal(2),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true}),it('selects multiple user-passed values while [selects="single"], but then proceeds with radio-button style functionality',async()=>{const t=await r(["first","second"]);await n(t),e(t.selected.length).to.equal(2);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button selected").to.be.false,e(s.selected,"second button selected").to.be.true}),it('only selects user-passed buttons if present in action-group while [selects="multiple"]',async()=>{const t=await v(["second","fourth"]);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".second");e(o.selected,"second button selected").to.be.true;const s=t.querySelector(".first");e(s.selected,"first button selected").to.be.false}),it("selects user-passed values with no .selects value, but does not allow interaction afterwards",async()=>{const t=await i(c`
534
227
  <sp-action-group
535
228
  label="Selects User-Chosen Buttons"
536
229
  .selected=${["first"]}
@@ -542,24 +235,10 @@ describe("ActionGroup", () => {
542
235
  Second
543
236
  </sp-action-button>
544
237
  </sp-action-group>
545
- `);
546
- await elementUpdated(el);
547
- expect(el.selected.length).to.equal(1);
548
- const firstButton = el.querySelector(".first");
549
- const secondButton = el.querySelector(".second");
550
- expect(firstButton.selected, "first button selected").to.be.true;
551
- expect(secondButton.selected, "second button selected").to.be.false;
552
- secondButton.click();
553
- await elementUpdated(el);
554
- expect(el.selected.length).to.equal(1);
555
- expect(firstButton.selected, "first button selected").to.be.true;
556
- expect(secondButton.selected, "second button selected").to.be.false;
557
- });
558
- it("selects multiple buttons if .selected is passed in, but does not allow further interaction afterwards", async () => {
559
- const el = await fixture(html`
238
+ `);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.false,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.false}),it("selects multiple buttons if .selected is passed in, but does not allow further interaction afterwards",async()=>{const t=await i(c`
560
239
  <sp-action-group
561
240
  label="Selects User-Chosen Buttons"
562
- .selected=${["first", "second"]}
241
+ .selected=${["first","second"]}
563
242
  >
564
243
  <sp-action-button class="first" value="first">
565
244
  First
@@ -568,28 +247,12 @@ describe("ActionGroup", () => {
568
247
  Second
569
248
  </sp-action-button>
570
249
  </sp-action-group>
571
- `);
572
- await elementUpdated(el);
573
- expect(el.selected.length).to.equal(2);
574
- const firstButton = el.querySelector(".first");
575
- expect(firstButton.selected, "first button selected").to.be.true;
576
- const secondButton = el.querySelector(".second");
577
- expect(secondButton.selected, "second button selected").to.be.true;
578
- firstButton.click();
579
- await elementUpdated(el);
580
- expect(el.selected.length).to.equal(2);
581
- expect(firstButton.selected, "first button selected").to.be.true;
582
- expect(secondButton.selected, "second button selected").to.be.true;
583
- });
584
- it('will not change .selected state if event is prevented while [selects="multiple"]', async () => {
585
- const el = await fixture(html`
250
+ `);await n(t),e(t.selected.length).to.equal(2);const o=t.querySelector(".first");e(o.selected,"first button selected").to.be.true;const s=t.querySelector(".second");e(s.selected,"second button selected").to.be.true,o.click(),await n(t),e(t.selected.length).to.equal(2),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true}),it('will not change .selected state if event is prevented while [selects="multiple"]',async()=>{const t=await i(c`
586
251
  <sp-action-group
587
252
  label="Selects Multiple Group"
588
253
  selects="multiple"
589
- .selected=${["first", "second"]}
590
- @change=${(event) => {
591
- event.preventDefault();
592
- }}
254
+ .selected=${["first","second"]}
255
+ @change=${h=>{h.preventDefault()}}
593
256
  >
594
257
  <sp-action-button class="first" value="first">
595
258
  First
@@ -601,31 +264,12 @@ describe("ActionGroup", () => {
601
264
  Third
602
265
  </sp-action-button>
603
266
  </sp-action-group>
604
- `);
605
- const firstElement = el.querySelector(".first");
606
- const secondElement = el.querySelector(".second");
607
- const thirdElement = el.querySelector(".third");
608
- await elementUpdated(el);
609
- expect(el.selected.length).to.equal(2);
610
- expect(firstElement.selected, "first child selected").to.be.true;
611
- expect(secondElement.selected, "second child selected").to.be.true;
612
- thirdElement.click();
613
- await elementUpdated(el);
614
- expect(thirdElement.selected, "third child not selected").to.be.false;
615
- expect(el.selected.length).to.equal(2);
616
- secondElement.click();
617
- await elementUpdated(el);
618
- expect(secondElement.selected, "second element still selected").to.be.true;
619
- });
620
- it('will not change .selected state if event is prevented while [selects="single"]', async () => {
621
- const el = await fixture(html`
267
+ `),o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(2),e(o.selected,"first child selected").to.be.true,e(s.selected,"second child selected").to.be.true,l.click(),await n(t),e(l.selected,"third child not selected").to.be.false,e(t.selected.length).to.equal(2),s.click(),await n(t),e(s.selected,"second element still selected").to.be.true}),it('will not change .selected state if event is prevented while [selects="single"]',async()=>{const t=await i(c`
622
268
  <sp-action-group
623
269
  label="Selects Single Group"
624
270
  selects="single"
625
271
  .selected=${["first"]}
626
- @change=${(event) => {
627
- event.preventDefault();
628
- }}
272
+ @change=${l=>{l.preventDefault()}}
629
273
  >
630
274
  <sp-action-button class="first" value="first">
631
275
  First
@@ -634,28 +278,11 @@ describe("ActionGroup", () => {
634
278
  Second
635
279
  </sp-action-button>
636
280
  </sp-action-group>
637
- `);
638
- const firstElement = el.querySelector(".first");
639
- const secondElement = el.querySelector(".second");
640
- await elementUpdated(el);
641
- expect(el.selected.length).to.equal(1);
642
- expect(firstElement.selected, "first child selected").to.be.true;
643
- secondElement.click();
644
- await elementUpdated(el);
645
- expect(secondElement.selected, "second child not selected").to.be.false;
646
- expect(el.selected.length).to.equal(1);
647
- firstElement.click();
648
- await elementUpdated(el);
649
- expect(firstElement.selected, "first element still selected").to.be.true;
650
- });
651
- it("will not change .selected state if event is prevented while selects is undefined", async () => {
652
- const el = await fixture(html`
281
+ `),o=t.querySelector(".first"),s=t.querySelector(".second");await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,s.click(),await n(t),e(s.selected,"second child not selected").to.be.false,e(t.selected.length).to.equal(1),o.click(),await n(t),e(o.selected,"first element still selected").to.be.true}),it("will not change .selected state if event is prevented while selects is undefined",async()=>{const t=await i(c`
653
282
  <sp-action-group
654
283
  label="Selects Single Group"
655
284
  .selected=${["first"]}
656
- @change=${(event) => {
657
- event.preventDefault();
658
- }}
285
+ @change=${l=>{l.preventDefault()}}
659
286
  >
660
287
  <sp-action-button class="first" value="first">
661
288
  First
@@ -664,20 +291,7 @@ describe("ActionGroup", () => {
664
291
  Second
665
292
  </sp-action-button>
666
293
  </sp-action-group>
667
- `);
668
- const firstElement = el.querySelector(".first");
669
- const secondElement = el.querySelector(".second");
670
- await elementUpdated(el);
671
- expect(el.selected.length).to.equal(1);
672
- expect(firstElement.selected, "first child selected").to.be.true;
673
- secondElement.click();
674
- await elementUpdated(el);
675
- expect(el.selected.length).to.equal(1);
676
- expect(firstElement.selected, "first child selected").to.be.true;
677
- expect(secondElement.selected, "second child not selected").to.be.false;
678
- });
679
- it("will accept selected as a JSON string", async () => {
680
- const el = await fixture(html`
294
+ `),o=t.querySelector(".first"),s=t.querySelector(".second");await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,e(s.selected,"second child not selected").to.be.false}),it("will accept selected as a JSON string",async()=>{const t=await i(c`
681
295
  <sp-action-group
682
296
  label="Selects Single Group"
683
297
  selects="single"
@@ -690,60 +304,13 @@ describe("ActionGroup", () => {
690
304
  Second
691
305
  </sp-action-button>
692
306
  </sp-action-group>
693
- `);
694
- await elementUpdated(el);
695
- const firstElement = el.querySelector(".first");
696
- const secondElement = el.querySelector(".second");
697
- expect(el.selected.length).to.equal(1);
698
- expect(firstElement.selected, "first child selected").to.be.true;
699
- expect(secondElement.selected, "second child selected").to.be.false;
700
- });
701
- const acceptKeyboardInput = async (el) => {
702
- const thirdElement = el.querySelector(".third");
703
- await elementUpdated(el);
704
- expect(el.selected.length).to.equal(1);
705
- expect(el.selected[0]).to.equal("Second");
706
- thirdElement.click();
707
- await elementUpdated(el);
708
- expect(thirdElement.selected, "third child selected").to.be.true;
709
- expect(el.selected.length).to.equal(1);
710
- expect(el.selected[0]).to.equal("Third");
711
- el.dispatchEvent(arrowRightEvent());
712
- await sendKeys({ press: "Enter" });
713
- await elementUpdated(el);
714
- expect(el.selected.length).to.equal(1);
715
- expect(el.selected[0]).to.equal("First");
716
- el.dispatchEvent(arrowLeftEvent());
717
- el.dispatchEvent(arrowUpEvent());
718
- await sendKeys({ press: "Enter" });
719
- expect(el.selected.length).to.equal(1);
720
- expect(el.selected[0]).to.equal("Second");
721
- el.dispatchEvent(endEvent());
722
- await sendKeys({ press: "Enter" });
723
- expect(el.selected.length).to.equal(1);
724
- expect(el.selected[0]).to.equal("Third");
725
- await sendKeys({ press: "Enter" });
726
- el.dispatchEvent(homeEvent());
727
- await sendKeys({ press: "Enter" });
728
- expect(el.selected.length).to.equal(1);
729
- expect(el.selected[0]).to.equal("First");
730
- el.dispatchEvent(arrowDownEvent());
731
- await sendKeys({ press: "Enter" });
732
- expect(el.selected.length).to.equal(1);
733
- expect(el.selected[0]).to.equal("Second");
734
- };
735
- it("accepts keybord input", async () => {
736
- const el = await fixture(html`
307
+ `);await n(t);const o=t.querySelector(".first"),s=t.querySelector(".second");e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,e(s.selected,"second child selected").to.be.false});const a=async t=>{const o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Second"),o.click(),await n(t),e(o.selected,"third child selected").to.be.true,e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third"),t.dispatchEvent(b()),await u({press:"Enter"}),await n(t),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("First"),t.dispatchEvent(w()),t.dispatchEvent(g()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Second"),t.dispatchEvent(q()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third"),await u({press:"Enter"}),t.dispatchEvent(S()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("First"),t.dispatchEvent(f()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Second")};it("accepts keybord input",async()=>{const t=await i(c`
737
308
  <sp-action-group label="Selects Single Group" selects="single">
738
309
  <sp-action-button>First</sp-action-button>
739
310
  <sp-action-button selected>Second</sp-action-button>
740
311
  <sp-action-button class="third">Third</sp-action-button>
741
312
  </sp-action-group>
742
- `);
743
- await acceptKeyboardInput(el);
744
- });
745
- it("accepts keybord input with tooltip", async () => {
746
- const el = await fixture(html`
313
+ `);await a(t)}),it("accepts keybord input with tooltip",async()=>{const t=await i(c`
747
314
  <sp-action-group label="Selects Single Group" selects="single">
748
315
  <overlay-trigger>
749
316
  <sp-action-button slot="trigger">
@@ -768,11 +335,7 @@ describe("ActionGroup", () => {
768
335
  <sp-tooltip slot="hover-content">Select me.</sp-tooltip>
769
336
  </overlay-trigger>
770
337
  </sp-action-group>
771
- `);
772
- await acceptKeyboardInput(el);
773
- });
774
- it('accepts keybord input when [dir="ltr"]', async () => {
775
- const el = await fixture(html`
338
+ `);await a(t)}),it('accepts keybord input when [dir="ltr"]',async()=>{const t=await i(c`
776
339
  <sp-action-group
777
340
  label="Selects Single Group"
778
341
  selects="single"
@@ -782,24 +345,5 @@ describe("ActionGroup", () => {
782
345
  <sp-action-button disabled>Second</sp-action-button>
783
346
  <sp-action-button class="third">Third</sp-action-button>
784
347
  </sp-action-group>
785
- `);
786
- const thirdElement = el.querySelector(".third");
787
- await elementUpdated(el);
788
- expect(el.selected.length).to.equal(0);
789
- thirdElement.click();
790
- await elementUpdated(el);
791
- expect(thirdElement.selected, "third child selected").to.be.true;
792
- expect(el.selected.length).to.equal(1);
793
- expect(el.selected[0]).to.equal("Third");
794
- el.dispatchEvent(arrowRightEvent());
795
- await sendKeys({ press: "Enter" });
796
- await elementUpdated(el);
797
- expect(el.selected.length).to.equal(1);
798
- expect(el.selected[0]).to.equal("First");
799
- el.dispatchEvent(arrowUpEvent());
800
- await sendKeys({ press: "Enter" });
801
- expect(el.selected.length).to.equal(1);
802
- expect(el.selected[0]).to.equal("Third");
803
- });
804
- });
348
+ `),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(0),o.click(),await n(t),e(o.selected,"third child selected").to.be.true,e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third"),t.dispatchEvent(b()),await u({press:"Enter"}),await n(t),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("First"),t.dispatchEvent(g()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third")})});
805
349
  //# sourceMappingURL=action-group.test.js.map