@spectrum-web-components/slider 0.13.1-devmode2.0 → 0.14.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 (51) hide show
  1. package/package.json +7 -7
  2. package/sp-slider-handle.dev.js +1 -0
  3. package/sp-slider-handle.dev.js.map +1 -1
  4. package/sp-slider-handle.js +1 -2
  5. package/sp-slider-handle.js.map +2 -2
  6. package/sp-slider.dev.js +1 -0
  7. package/sp-slider.dev.js.map +1 -1
  8. package/sp-slider.js +1 -3
  9. package/sp-slider.js.map +2 -2
  10. package/src/HandleController.dev.js +71 -17
  11. package/src/HandleController.dev.js.map +1 -1
  12. package/src/HandleController.js +16 -421
  13. package/src/HandleController.js.map +2 -2
  14. package/src/Slider.dev.js +16 -5
  15. package/src/Slider.dev.js.map +1 -1
  16. package/src/Slider.js +23 -306
  17. package/src/Slider.js.map +2 -2
  18. package/src/SliderHandle.dev.js +22 -12
  19. package/src/SliderHandle.dev.js.map +2 -2
  20. package/src/SliderHandle.js +1 -183
  21. package/src/SliderHandle.js.map +2 -2
  22. package/src/index.dev.js +1 -0
  23. package/src/index.dev.js.map +1 -1
  24. package/src/index.js +1 -3
  25. package/src/index.js.map +1 -1
  26. package/src/slider.css.dev.js +1 -0
  27. package/src/slider.css.dev.js.map +1 -1
  28. package/src/slider.css.js +2 -4
  29. package/src/slider.css.js.map +2 -2
  30. package/src/spectrum-slider.css.dev.js +1 -0
  31. package/src/spectrum-slider.css.dev.js.map +1 -1
  32. package/src/spectrum-slider.css.js +2 -4
  33. package/src/spectrum-slider.css.js.map +2 -2
  34. package/stories/slider.stories.js +8 -2
  35. package/stories/slider.stories.js.map +2 -2
  36. package/sync/sp-slider.dev.js +1 -0
  37. package/sync/sp-slider.dev.js.map +1 -1
  38. package/sync/sp-slider.js +1 -2
  39. package/sync/sp-slider.js.map +1 -1
  40. package/test/benchmark/test-basic.js +1 -0
  41. package/test/benchmark/test-basic.js.map +1 -1
  42. package/test/slider-editable-sync.test.js +47 -34
  43. package/test/slider-editable-sync.test.js.map +1 -1
  44. package/test/slider-editable.test.js +47 -34
  45. package/test/slider-editable.test.js.map +1 -1
  46. package/test/slider-handle-upgrade.test.js +1 -0
  47. package/test/slider-handle-upgrade.test.js.map +1 -1
  48. package/test/slider.test-vrt.js +1 -0
  49. package/test/slider.test-vrt.js.map +1 -1
  50. package/test/slider.test.js +374 -226
  51. package/test/slider.test.js.map +2 -2
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  import "@spectrum-web-components/slider/sp-slider.js";
2
3
  import "@spectrum-web-components/slider/sp-slider-handle.js";
3
4
  import { tick } from "../stories/slider.stories.js";
@@ -15,18 +16,25 @@ import { sendMouse } from "../../../test/plugins/browser.js";
15
16
  import { stub } from "sinon";
16
17
  import { testForLitDevWarnings } from "../../../test/testing-helpers.js";
17
18
  describe("Slider", () => {
18
- testForLitDevWarnings(async () => await fixture(html`
19
+ testForLitDevWarnings(
20
+ async () => await fixture(
21
+ html`
19
22
  <sp-slider label="Slider"></sp-slider>
20
- `));
23
+ `
24
+ )
25
+ );
21
26
  it("loads", async () => {
22
- const el = await fixture(html`
27
+ const el = await fixture(
28
+ html`
23
29
  <sp-slider label="Slider"></sp-slider>
24
- `);
30
+ `
31
+ );
25
32
  await elementUpdated(el);
26
33
  await expect(el).to.be.accessible();
27
34
  });
28
35
  it('loads - [variant="tick"]', async () => {
29
- const el = await fixture(html`
36
+ const el = await fixture(
37
+ html`
30
38
  <sp-slider
31
39
  label="Ticked Slider"
32
40
  min="-100"
@@ -35,21 +43,26 @@ describe("Slider", () => {
35
43
  tick-labels
36
44
  variant="tick"
37
45
  ></sp-slider>
38
- `);
46
+ `
47
+ );
39
48
  await elementUpdated(el);
40
49
  await expect(el).to.be.accessible();
41
50
  });
42
51
  it('loads - [variant="tick"] irregularly', async () => {
43
- const el = await fixture(html`
52
+ const el = await fixture(
53
+ html`
44
54
  <sp-slider label="Slider"></sp-slider>
45
- `);
55
+ `
56
+ );
46
57
  await elementUpdated(el);
47
58
  await expect(el).to.be.accessible();
48
59
  });
49
60
  it("receives value from the outside", async () => {
50
- const el = await fixture(html`
61
+ const el = await fixture(
62
+ html`
51
63
  <sp-slider max="20"></sp-slider>
52
- `);
64
+ `
65
+ );
53
66
  await elementUpdated(el);
54
67
  expect(el.value).to.equal(10);
55
68
  el.value = 10;
@@ -60,10 +73,12 @@ describe("Slider", () => {
60
73
  expect(el.value).to.equal(20);
61
74
  });
62
75
  it("accepts keyboard events", async () => {
63
- const el = await fixture(tick({
64
- variant: "tick",
65
- tickStep: 5
66
- }));
76
+ const el = await fixture(
77
+ tick({
78
+ variant: "tick",
79
+ tickStep: 5
80
+ })
81
+ );
67
82
  await elementUpdated(el);
68
83
  expect(el.value).to.equal(10);
69
84
  expect(el.highlight).to.be.false;
@@ -83,9 +98,11 @@ describe("Slider", () => {
83
98
  });
84
99
  it("accepts pointer events", async () => {
85
100
  let pointerId = -1;
86
- const el = await fixture(html`
101
+ const el = await fixture(
102
+ html`
87
103
  <sp-slider></sp-slider>
88
- `);
104
+ `
105
+ );
89
106
  await elementUpdated(el);
90
107
  expect(el.dragging).to.be.false;
91
108
  expect(el.highlight).to.be.false;
@@ -93,107 +110,129 @@ describe("Slider", () => {
93
110
  const handle = el.shadowRoot.querySelector(".handle");
94
111
  el.track.setPointerCapture = (id) => pointerId = id;
95
112
  el.track.releasePointerCapture = (id) => pointerId = id;
96
- handle.dispatchEvent(new PointerEvent("pointerdown", {
97
- button: 1,
98
- pointerId: 1,
99
- cancelable: true,
100
- bubbles: true,
101
- composed: true
102
- }));
113
+ handle.dispatchEvent(
114
+ new PointerEvent("pointerdown", {
115
+ button: 1,
116
+ pointerId: 1,
117
+ cancelable: true,
118
+ bubbles: true,
119
+ composed: true
120
+ })
121
+ );
103
122
  await elementUpdated(el);
104
123
  expect(el.dragging).to.be.false;
105
124
  expect(pointerId, "1").to.equal(-1);
106
- handle.dispatchEvent(new PointerEvent("pointerdown", {
107
- button: 0,
108
- pointerId: 1,
109
- cancelable: true,
110
- bubbles: true,
111
- composed: true
112
- }));
125
+ handle.dispatchEvent(
126
+ new PointerEvent("pointerdown", {
127
+ button: 0,
128
+ pointerId: 1,
129
+ cancelable: true,
130
+ bubbles: true,
131
+ composed: true
132
+ })
133
+ );
113
134
  await elementUpdated(el);
114
135
  expect(el.dragging, "it is dragging 1").to.be.true;
115
136
  expect(pointerId, "2").to.equal(1);
116
- handle.dispatchEvent(new PointerEvent("pointerup", {
117
- pointerId: 2,
118
- cancelable: true,
119
- bubbles: true,
120
- composed: true
121
- }));
137
+ handle.dispatchEvent(
138
+ new PointerEvent("pointerup", {
139
+ pointerId: 2,
140
+ cancelable: true,
141
+ bubbles: true,
142
+ composed: true
143
+ })
144
+ );
122
145
  await elementUpdated(el);
123
146
  expect(el.dragging).to.be.false;
124
147
  expect(el.highlight).to.be.false;
125
148
  expect(pointerId, "3").to.equal(2);
126
- handle.dispatchEvent(new PointerEvent("pointerdown", {
127
- button: 0,
128
- pointerId: 1,
129
- cancelable: true,
130
- bubbles: true,
131
- composed: true
132
- }));
149
+ handle.dispatchEvent(
150
+ new PointerEvent("pointerdown", {
151
+ button: 0,
152
+ pointerId: 1,
153
+ cancelable: true,
154
+ bubbles: true,
155
+ composed: true
156
+ })
157
+ );
133
158
  await elementUpdated(el);
134
159
  expect(el.dragging, "it is dragging 2").to.be.true;
135
160
  expect(pointerId, "4").to.equal(1);
136
- handle.dispatchEvent(new PointerEvent("pointercancel", {
137
- pointerId: 3,
138
- cancelable: true,
139
- bubbles: true,
140
- composed: true
141
- }));
161
+ handle.dispatchEvent(
162
+ new PointerEvent("pointercancel", {
163
+ pointerId: 3,
164
+ cancelable: true,
165
+ bubbles: true,
166
+ composed: true
167
+ })
168
+ );
142
169
  await elementUpdated(el);
143
170
  expect(el.dragging).to.be.false;
144
171
  expect(pointerId, "5").to.equal(3);
145
172
  });
146
173
  it("will `trackPointerDown` on `#controls`", async () => {
147
174
  let pointerId = -1;
148
- const el = await fixture(html`
175
+ const el = await fixture(
176
+ html`
149
177
  <sp-slider style="width: 500px" max="70"></sp-slider>
150
- `);
178
+ `
179
+ );
151
180
  await elementUpdated(el);
152
181
  expect(el.value).to.equal(10);
153
- const controls = el.shadowRoot.querySelector("#controls");
182
+ const controls = el.shadowRoot.querySelector(
183
+ "#controls"
184
+ );
154
185
  const handle = el.shadowRoot.querySelector(".handle");
155
186
  el.track.setPointerCapture = (id) => pointerId = id;
156
187
  el.track.releasePointerCapture = (id) => pointerId = id;
157
- controls.dispatchEvent(new PointerEvent("pointerdown", {
158
- button: 1,
159
- clientX: 9,
160
- pointerId: 4,
161
- bubbles: true,
162
- cancelable: true
163
- }));
188
+ controls.dispatchEvent(
189
+ new PointerEvent("pointerdown", {
190
+ button: 1,
191
+ clientX: 9,
192
+ pointerId: 4,
193
+ bubbles: true,
194
+ cancelable: true
195
+ })
196
+ );
164
197
  await elementUpdated(el);
165
198
  expect(pointerId).to.equal(-1);
166
199
  expect(el.value).to.equal(10);
167
200
  expect(el.dragging, "handle is not yet being dragged").to.be.false;
168
- controls.dispatchEvent(new PointerEvent("pointerdown", {
169
- button: 0,
170
- clientX: 9,
171
- pointerId: 4,
172
- bubbles: true,
173
- cancelable: true
174
- }));
201
+ controls.dispatchEvent(
202
+ new PointerEvent("pointerdown", {
203
+ button: 0,
204
+ clientX: 9,
205
+ pointerId: 4,
206
+ bubbles: true,
207
+ cancelable: true
208
+ })
209
+ );
175
210
  await elementUpdated(el);
176
211
  expect(pointerId).to.equal(4);
177
212
  expect(el.value).to.equal(0);
178
213
  expect(el.dragging, "handle is being dragged").to.be.true;
179
- handle.dispatchEvent(new PointerEvent("pointermove", {
180
- button: 0,
181
- clientX: 508,
182
- pointerId: 4,
183
- bubbles: true,
184
- cancelable: true
185
- }));
214
+ handle.dispatchEvent(
215
+ new PointerEvent("pointermove", {
216
+ button: 0,
217
+ clientX: 508,
218
+ pointerId: 4,
219
+ bubbles: true,
220
+ cancelable: true
221
+ })
222
+ );
186
223
  await elementUpdated(el);
187
224
  expect(el.dragging, "handle is still being dragged").to.be.true;
188
225
  expect(pointerId).to.equal(4);
189
226
  expect(el.value).to.equal(70);
190
- handle.dispatchEvent(new PointerEvent("pointerup", {
191
- button: 0,
192
- clientX: 9,
193
- pointerId: 4,
194
- bubbles: true,
195
- cancelable: true
196
- }));
227
+ handle.dispatchEvent(
228
+ new PointerEvent("pointerup", {
229
+ button: 0,
230
+ clientX: 9,
231
+ pointerId: 4,
232
+ bubbles: true,
233
+ cancelable: true
234
+ })
235
+ );
197
236
  await elementUpdated(el);
198
237
  expect(pointerId).to.equal(4);
199
238
  expect(el.value).to.equal(70);
@@ -201,38 +240,48 @@ describe("Slider", () => {
201
240
  });
202
241
  it("can be disabled", async () => {
203
242
  let pointerId = -1;
204
- const el = await fixture(html`
243
+ const el = await fixture(
244
+ html`
205
245
  <sp-slider disabled></sp-slider>
206
- `);
246
+ `
247
+ );
207
248
  await elementUpdated(el);
208
249
  expect(el.dragging).to.be.false;
209
250
  expect(pointerId).to.equal(-1);
210
251
  expect(el.value).to.equal(10);
211
252
  const handle = el.shadowRoot.querySelector(".handle");
212
253
  handle.setPointerCapture = (id) => pointerId = id;
213
- handle.dispatchEvent(new PointerEvent("pointerdown", {
214
- button: 0,
215
- pointerId: 1,
216
- cancelable: true
217
- }));
254
+ handle.dispatchEvent(
255
+ new PointerEvent("pointerdown", {
256
+ button: 0,
257
+ pointerId: 1,
258
+ cancelable: true
259
+ })
260
+ );
218
261
  await elementUpdated(el);
219
262
  expect(el.dragging).to.be.false;
220
263
  expect(pointerId).to.equal(-1);
221
- const controls = el.shadowRoot.querySelector("#controls");
222
- controls.dispatchEvent(new PointerEvent("pointerdown", {
223
- button: 0,
224
- clientX: 50,
225
- pointerId: 1,
226
- cancelable: true
227
- }));
264
+ const controls = el.shadowRoot.querySelector(
265
+ "#controls"
266
+ );
267
+ controls.dispatchEvent(
268
+ new PointerEvent("pointerdown", {
269
+ button: 0,
270
+ clientX: 50,
271
+ pointerId: 1,
272
+ cancelable: true
273
+ })
274
+ );
228
275
  await elementUpdated(el);
229
276
  expect(pointerId).to.equal(-1);
230
277
  expect(el.value).to.equal(10);
231
278
  });
232
279
  it("accepts pointermove events", async () => {
233
- const el = await fixture(html`
280
+ const el = await fixture(
281
+ html`
234
282
  <sp-slider></sp-slider>
235
- `);
283
+ `
284
+ );
236
285
  await elementUpdated(el);
237
286
  expect(el.value).to.equal(10);
238
287
  const handle = el.shadowRoot.querySelector(".handle");
@@ -250,19 +299,23 @@ describe("Slider", () => {
250
299
  await elementUpdated(el);
251
300
  expect(el.dragging, "is dragging").to.be.true;
252
301
  expect(el.highlight, "not highlighted").to.be.false;
253
- handle.dispatchEvent(new PointerEvent("pointermove", {
254
- clientX: 0,
255
- cancelable: true,
256
- bubbles: true,
257
- composed: true
258
- }));
302
+ handle.dispatchEvent(
303
+ new PointerEvent("pointermove", {
304
+ clientX: 0,
305
+ cancelable: true,
306
+ bubbles: true,
307
+ composed: true
308
+ })
309
+ );
259
310
  await elementUpdated(el);
260
311
  expect(el.value).to.equal(0);
261
312
  });
262
313
  it("manages RTL when min != 0", async () => {
263
- const el = await fixture(html`
314
+ const el = await fixture(
315
+ html`
264
316
  <sp-slider min="1" max="11" dir="rtl"></sp-slider>
265
- `);
317
+ `
318
+ );
266
319
  await elementUpdated(el);
267
320
  expect(el.value).to.equal(10);
268
321
  const handle = el.shadowRoot.querySelector(".handle");
@@ -280,19 +333,23 @@ describe("Slider", () => {
280
333
  await elementUpdated(el);
281
334
  expect(el.dragging, "is dragging").to.be.true;
282
335
  expect(el.highlight, "not highlighted").to.be.false;
283
- handle.dispatchEvent(new PointerEvent("pointermove", {
284
- clientX: 0,
285
- cancelable: true,
286
- bubbles: true,
287
- composed: true
288
- }));
336
+ handle.dispatchEvent(
337
+ new PointerEvent("pointermove", {
338
+ clientX: 0,
339
+ cancelable: true,
340
+ bubbles: true,
341
+ composed: true
342
+ })
343
+ );
289
344
  await elementUpdated(el);
290
345
  expect(el.value).to.equal(11);
291
346
  });
292
347
  it("goes [disabled] while dragging", async () => {
293
- const el = await fixture(html`
348
+ const el = await fixture(
349
+ html`
294
350
  <sp-slider></sp-slider>
295
- `);
351
+ `
352
+ );
296
353
  await elementUpdated(el);
297
354
  expect(el.value).to.equal(10);
298
355
  const handle = el.shadowRoot.querySelector(".handle");
@@ -348,93 +405,113 @@ describe("Slider", () => {
348
405
  });
349
406
  it("accepts pointermove events in separate interactions", async () => {
350
407
  let pointerId = -1;
351
- const el = await fixture(html`
408
+ const el = await fixture(
409
+ html`
352
410
  <sp-slider style="width: 100px"></sp-slider>
353
- `);
411
+ `
412
+ );
354
413
  await elementUpdated(el);
355
414
  expect(el.value, "initial").to.equal(10);
356
415
  const handle = el.shadowRoot.querySelector(".handle");
357
416
  el.track.setPointerCapture = (id) => pointerId = id;
358
417
  el.track.releasePointerCapture = (id) => pointerId = id;
359
- handle.dispatchEvent(new PointerEvent("pointerdown", {
360
- clientX: 58,
361
- cancelable: true,
362
- button: 0,
363
- pointerId: 100,
364
- composed: true,
365
- bubbles: true
366
- }));
367
- await elementUpdated(el);
368
- handle.dispatchEvent(new PointerEvent("pointermove", {
369
- clientX: 58,
370
- cancelable: true,
371
- composed: true,
372
- bubbles: true
373
- }));
418
+ handle.dispatchEvent(
419
+ new PointerEvent("pointerdown", {
420
+ clientX: 58,
421
+ cancelable: true,
422
+ button: 0,
423
+ pointerId: 100,
424
+ composed: true,
425
+ bubbles: true
426
+ })
427
+ );
428
+ await elementUpdated(el);
429
+ handle.dispatchEvent(
430
+ new PointerEvent("pointermove", {
431
+ clientX: 58,
432
+ cancelable: true,
433
+ composed: true,
434
+ bubbles: true
435
+ })
436
+ );
374
437
  await elementUpdated(el);
375
438
  expect(el.value, "first pointerdown").to.equal(50);
376
439
  expect(el.dragging, "is dragging").to.be.true;
377
440
  expect(el.classList.contains("handle-highlight"), "not highlighted").to.be.false;
378
441
  expect(pointerId).to.equal(100);
379
- handle.dispatchEvent(new PointerEvent("pointermove", {
380
- clientX: 0,
381
- cancelable: true,
382
- composed: true,
383
- bubbles: true
384
- }));
442
+ handle.dispatchEvent(
443
+ new PointerEvent("pointermove", {
444
+ clientX: 0,
445
+ cancelable: true,
446
+ composed: true,
447
+ bubbles: true
448
+ })
449
+ );
385
450
  await elementUpdated(el);
386
451
  expect(el.value, "first pointermove").to.equal(0);
387
- handle.dispatchEvent(new PointerEvent("pointerup", {
388
- clientX: 0,
389
- cancelable: true,
390
- composed: true,
391
- bubbles: true
392
- }));
452
+ handle.dispatchEvent(
453
+ new PointerEvent("pointerup", {
454
+ clientX: 0,
455
+ cancelable: true,
456
+ composed: true,
457
+ bubbles: true
458
+ })
459
+ );
393
460
  await elementUpdated(el);
394
461
  expect(el.value, "first pointerup").to.equal(0);
395
462
  expect(el.dragging, "is dragging").to.be.false;
396
- handle.dispatchEvent(new PointerEvent("pointerdown", {
397
- clientX: 58,
398
- cancelable: true,
399
- button: 0,
400
- composed: true,
401
- bubbles: true
402
- }));
403
- await elementUpdated(el);
404
- handle.dispatchEvent(new PointerEvent("pointermove", {
405
- clientX: 58,
406
- cancelable: true,
407
- composed: true,
408
- bubbles: true
409
- }));
463
+ handle.dispatchEvent(
464
+ new PointerEvent("pointerdown", {
465
+ clientX: 58,
466
+ cancelable: true,
467
+ button: 0,
468
+ composed: true,
469
+ bubbles: true
470
+ })
471
+ );
472
+ await elementUpdated(el);
473
+ handle.dispatchEvent(
474
+ new PointerEvent("pointermove", {
475
+ clientX: 58,
476
+ cancelable: true,
477
+ composed: true,
478
+ bubbles: true
479
+ })
480
+ );
410
481
  await elementUpdated(el);
411
482
  expect(el.value, "second pointerdown").to.equal(50);
412
483
  expect(el.dragging, "is dragging").to.be.true;
413
484
  expect(el.classList.contains("handle-highlight"), "not highlighted").to.be.false;
414
- handle.dispatchEvent(new PointerEvent("pointermove", {
415
- clientX: 0,
416
- cancelable: true,
417
- composed: true,
418
- bubbles: true
419
- }));
485
+ handle.dispatchEvent(
486
+ new PointerEvent("pointermove", {
487
+ clientX: 0,
488
+ cancelable: true,
489
+ composed: true,
490
+ bubbles: true
491
+ })
492
+ );
420
493
  await elementUpdated(el);
421
494
  expect(el.value, "second pointermove").to.equal(0);
422
- handle.dispatchEvent(new PointerEvent("pointerup", {
423
- clientX: 0,
424
- cancelable: true,
425
- composed: true,
426
- bubbles: true
427
- }));
495
+ handle.dispatchEvent(
496
+ new PointerEvent("pointerup", {
497
+ clientX: 0,
498
+ cancelable: true,
499
+ composed: true,
500
+ bubbles: true
501
+ })
502
+ );
428
503
  await elementUpdated(el);
429
504
  expect(el.value, "second pointerup").to.equal(0);
430
505
  expect(el.dragging, "is dragging").to.be.false;
431
506
  });
432
507
  it("accepts pointermove events - [step=0]", async () => {
433
- const el = await fixture(html`
508
+ const el = await fixture(
509
+ html`
434
510
  <sp-slider step="0" max="20" style="width: 500px; float: left;">
435
511
  Step = 0
436
512
  </sp-slider>
437
- `);
513
+ `
514
+ );
438
515
  await elementUpdated(el);
439
516
  await nextFrame();
440
517
  await nextFrame();
@@ -486,24 +563,30 @@ describe("Slider", () => {
486
563
  expect(el.value).to.equal(5);
487
564
  });
488
565
  it("will not pointermove unless `pointerdown`", async () => {
489
- const el = await fixture(html`
566
+ const el = await fixture(
567
+ html`
490
568
  <sp-slider></sp-slider>
491
- `);
569
+ `
570
+ );
492
571
  await elementUpdated(el);
493
572
  expect(el.value).to.equal(10);
494
573
  expect(el.dragging).to.be.false;
495
574
  const handle = el.shadowRoot.querySelector(".handle");
496
- handle.dispatchEvent(new PointerEvent("pointermove", {
497
- clientX: 0,
498
- cancelable: true
499
- }));
575
+ handle.dispatchEvent(
576
+ new PointerEvent("pointermove", {
577
+ clientX: 0,
578
+ cancelable: true
579
+ })
580
+ );
500
581
  await nextFrame();
501
582
  expect(el.value).to.equal(10);
502
583
  });
503
584
  it("responds to input events on the <input/> element", async () => {
504
- const el = await fixture(html`
585
+ const el = await fixture(
586
+ html`
505
587
  <sp-slider></sp-slider>
506
- `);
588
+ `
589
+ );
507
590
  await elementUpdated(el);
508
591
  expect(el.value).to.equal(10);
509
592
  const input = el.shadowRoot.querySelector(".input");
@@ -512,9 +595,11 @@ describe("Slider", () => {
512
595
  expect(el.value).to.equal(0);
513
596
  });
514
597
  it("accepts variants", async () => {
515
- const el = await fixture(html`
598
+ const el = await fixture(
599
+ html`
516
600
  <sp-slider variant="tick"></sp-slider>
517
- `);
601
+ `
602
+ );
518
603
  await elementUpdated(el);
519
604
  expect(el.variant).to.equal("tick");
520
605
  expect(el.getAttribute("variant")).to.equal("tick");
@@ -532,9 +617,11 @@ describe("Slider", () => {
532
617
  expect(el.hasAttribute("variant")).to.be.false;
533
618
  });
534
619
  it("validates variants", async () => {
535
- const el = await fixture(html`
620
+ const el = await fixture(
621
+ html`
536
622
  <sp-slider variant="other"></sp-slider>
537
- `);
623
+ `
624
+ );
538
625
  await elementUpdated(el);
539
626
  expect(el.variant).to.equal("");
540
627
  expect(el.hasAttribute("variant")).to.be.false;
@@ -548,23 +635,27 @@ describe("Slider", () => {
548
635
  expect(el.getAttribute("variant")).to.equal("tick");
549
636
  });
550
637
  it("has a `focusElement`", async () => {
551
- const el = await fixture(html`
638
+ const el = await fixture(
639
+ html`
552
640
  <sp-slider></sp-slider>
553
- `);
641
+ `
642
+ );
554
643
  await elementUpdated(el);
555
644
  const input = el.focusElement;
556
645
  expect(input).to.not.be.undefined;
557
646
  expect(input.type).to.equal("range");
558
647
  });
559
648
  it("displays result of getAriaValueText", async () => {
560
- const el = await fixture(html`
649
+ const el = await fixture(
650
+ html`
561
651
  <sp-slider
562
652
  value="50"
563
653
  min="0"
564
654
  max="100"
565
655
  .getAriaHandleText=${(value) => `${value}%`}
566
656
  ></sp-slider>
567
- `);
657
+ `
658
+ );
568
659
  await elementUpdated(el);
569
660
  const input = el.focusElement;
570
661
  expect(input.getAttribute("aria-valuetext")).to.equal("50%");
@@ -573,14 +664,16 @@ describe("Slider", () => {
573
664
  expect(input.getAttribute("aria-valuetext")).to.equal("100%");
574
665
  });
575
666
  it("displays Intl.formatNumber results", async () => {
576
- const el = await fixture(html`
667
+ const el = await fixture(
668
+ html`
577
669
  <sp-slider
578
670
  value=".5"
579
671
  min="0"
580
672
  max="1"
581
673
  .formatOptions=${{ style: "percent" }}
582
674
  ></sp-slider>
583
- `);
675
+ `
676
+ );
584
677
  await elementUpdated(el);
585
678
  const input = el.focusElement;
586
679
  expect(input.getAttribute("aria-valuetext")).to.equal("50%");
@@ -598,7 +691,8 @@ describe("Slider", () => {
598
691
  const resolveLanguage = () => {
599
692
  langResolvers.forEach((resolver) => resolver(lang));
600
693
  };
601
- let el = await fixture(html`
694
+ let el = await fixture(
695
+ html`
602
696
  <sp-slider
603
697
  value="2.44"
604
698
  min="0"
@@ -607,17 +701,25 @@ describe("Slider", () => {
607
701
  @sp-language-context=${createLangResolver}
608
702
  .formatOptions=${{ maximumFractionDigits: 2 }}
609
703
  ></sp-slider>
610
- `);
704
+ `
705
+ );
611
706
  await elementUpdated(el);
612
707
  let input = el.focusElement;
613
- expect(input.getAttribute("aria-valuetext"), "First German number").to.equal("2,44");
708
+ expect(
709
+ input.getAttribute("aria-valuetext"),
710
+ "First German number"
711
+ ).to.equal("2,44");
614
712
  lang = "en";
615
713
  resolveLanguage();
616
714
  await elementUpdated(el);
617
- expect(input.getAttribute("aria-valuetext"), "First English number").to.equal("2.44");
715
+ expect(
716
+ input.getAttribute("aria-valuetext"),
717
+ "First English number"
718
+ ).to.equal("2.44");
618
719
  lang = "de";
619
720
  resolveLanguage();
620
- el = await fixture(html`
721
+ el = await fixture(
722
+ html`
621
723
  <sp-slider
622
724
  min="0"
623
725
  max="10"
@@ -631,19 +733,28 @@ describe("Slider", () => {
631
733
  @sp-language-context=${createLangResolver}
632
734
  ></sp-slider-handle>
633
735
  </sp-slider>
634
- `);
736
+ `
737
+ );
635
738
  await elementUpdated(el);
636
739
  input = el.focusElement;
637
- expect(input.getAttribute("aria-valuetext"), "Second German number").to.equal("2,44");
740
+ expect(
741
+ input.getAttribute("aria-valuetext"),
742
+ "Second German number"
743
+ ).to.equal("2,44");
638
744
  lang = "en";
639
745
  resolveLanguage();
640
746
  await elementUpdated(el);
641
- expect(input.getAttribute("aria-valuetext"), "Second English number").to.equal("2.44");
747
+ expect(
748
+ input.getAttribute("aria-valuetext"),
749
+ "Second English number"
750
+ ).to.equal("2.44");
642
751
  });
643
752
  it("uses fallback ariaValueText", async () => {
644
- const el = await fixture(html`
753
+ const el = await fixture(
754
+ html`
645
755
  <sp-slider value="50" min="0" max="100"></sp-slider>
646
- `);
756
+ `
757
+ );
647
758
  await elementUpdated(el);
648
759
  el.getAriaValueText = false;
649
760
  const input = el.focusElement;
@@ -651,9 +762,11 @@ describe("Slider", () => {
651
762
  expect(input.getAttribute("aria-valuetext")).to.equal("50");
652
763
  });
653
764
  it("accepts min/max/value in the same timing", async () => {
654
- const el = await fixture(html`
765
+ const el = await fixture(
766
+ html`
655
767
  <sp-slider></sp-slider>
656
- `);
768
+ `
769
+ );
657
770
  await elementUpdated(el);
658
771
  expect(el.value).to.equal(10);
659
772
  el.min = 0;
@@ -673,7 +786,8 @@ describe("Slider", () => {
673
786
  expect(el.value).to.equal(-100);
674
787
  });
675
788
  it("returns values for handles", async () => {
676
- let el = await fixture(html`
789
+ let el = await fixture(
790
+ html`
677
791
  <sp-slider>
678
792
  <sp-slider-handle
679
793
  slot="handle"
@@ -694,29 +808,35 @@ describe("Slider", () => {
694
808
  max="100"
695
809
  ></sp-slider-handle>
696
810
  </sp-slider>
697
- `);
811
+ `
812
+ );
698
813
  await elementUpdated(el);
699
814
  expect(el.values).to.deep.equal({ a: 10, b: 20, c: 30 });
700
815
  const middleHandle = el.querySelector("#middle-handle");
701
816
  middleHandle.value = 22;
702
817
  await elementUpdated(el);
703
818
  expect(el.values).to.deep.equal({ a: 10, b: 22, c: 30 });
704
- el = await fixture(html`
819
+ el = await fixture(
820
+ html`
705
821
  <sp-slider value="10" min="0" max="100"></sp-slider>
706
- `);
822
+ `
823
+ );
707
824
  expect(el.values).to.deep.equal({ value: 10 });
708
- el = await fixture(html`
825
+ el = await fixture(
826
+ html`
709
827
  <sp-slider min="0" max="100">
710
828
  <sp-slider-handle
711
829
  slot="handle"
712
830
  value="10"
713
831
  ></sp-slider-handle>
714
832
  </sp-slider>
715
- `);
833
+ `
834
+ );
716
835
  expect(el.values).to.deep.equal({ handle1: 10 });
717
836
  });
718
837
  it("clamps values for multi-handle slider", async () => {
719
- const el = await fixture(html`
838
+ const el = await fixture(
839
+ html`
720
840
  <sp-slider min="0" max="100">
721
841
  <sp-slider-handle
722
842
  id="first-handle"
@@ -741,7 +861,8 @@ describe("Slider", () => {
741
861
  value="30"
742
862
  ></sp-slider-handle>
743
863
  </sp-slider>
744
- `);
864
+ `
865
+ );
745
866
  await elementUpdated(el);
746
867
  expect(el.values).to.deep.equal({ a: 10, b: 20, c: 30 });
747
868
  const firstHandle = el.querySelector("#first-handle");
@@ -765,7 +886,8 @@ describe("Slider", () => {
765
886
  it('warns in Dev Mode when `min="previous"` is leveraged on first handle', async () => {
766
887
  const consoleWarnStub = stub(console, "warn");
767
888
  window.__swc.issuedWarnings = /* @__PURE__ */ new Set();
768
- const el = await fixture(html`
889
+ const el = await fixture(
890
+ html`
769
891
  <sp-slider min="0" max="100">
770
892
  <sp-slider-handle
771
893
  id="first-handle"
@@ -791,11 +913,15 @@ describe("Slider", () => {
791
913
  value="30"
792
914
  ></sp-slider-handle>
793
915
  </sp-slider>
794
- `);
916
+ `
917
+ );
795
918
  await elementUpdated(el);
796
919
  expect(consoleWarnStub.called).to.be.true;
797
920
  const spyCall = consoleWarnStub.getCall(0);
798
- expect(spyCall.args.at(0).includes("previous"), 'confirm "previous" in message').to.be.true;
921
+ expect(
922
+ spyCall.args.at(0).includes("previous"),
923
+ 'confirm "previous" in message'
924
+ ).to.be.true;
799
925
  expect(spyCall.args.at(-1), "confirm `data` shape").to.deep.equal({
800
926
  data: {
801
927
  localName: "sp-slider",
@@ -808,7 +934,8 @@ describe("Slider", () => {
808
934
  it('warns in Dev Mode when `max="next"` is leveraged on last handle', async () => {
809
935
  const consoleWarnStub = stub(console, "warn");
810
936
  window.__swc.issuedWarnings = /* @__PURE__ */ new Set();
811
- const el = await fixture(html`
937
+ const el = await fixture(
938
+ html`
812
939
  <sp-slider min="0" max="100">
813
940
  <sp-slider-handle
814
941
  id="first-handle"
@@ -834,7 +961,8 @@ describe("Slider", () => {
834
961
  value="30"
835
962
  ></sp-slider-handle>
836
963
  </sp-slider>
837
- `);
964
+ `
965
+ );
838
966
  await elementUpdated(el);
839
967
  expect(consoleWarnStub.called).to.be.true;
840
968
  const spyCall = consoleWarnStub.getCall(0);
@@ -857,9 +985,11 @@ describe("Slider", () => {
857
985
  <sp-slider-handle slot="handle" name="max" label="Maximum" min="previous" value="86610"></sp-slider-handle>
858
986
  </sp-slider>
859
987
  `;
860
- const el = await fixture(html`
988
+ const el = await fixture(
989
+ html`
861
990
  <div></div>
862
- `);
991
+ `
992
+ );
863
993
  el.appendChild(template.content.cloneNode(true));
864
994
  await waitUntil(() => {
865
995
  var _a2;
@@ -870,7 +1000,8 @@ describe("Slider", () => {
870
1000
  expect(createdHandles).to.have.lengthOf(2);
871
1001
  });
872
1002
  it("enforces next/previous max/min", async () => {
873
- let el = await fixture(html`
1003
+ let el = await fixture(
1004
+ html`
874
1005
  <sp-slider min="0" max="100">
875
1006
  <sp-slider-handle
876
1007
  id="first-handle"
@@ -895,14 +1026,21 @@ describe("Slider", () => {
895
1026
  value="30"
896
1027
  ></sp-slider-handle>
897
1028
  </sp-slider>
898
- `);
1029
+ `
1030
+ );
899
1031
  await elementUpdated(el);
900
1032
  expect(el.values).to.deep.equal({ a: 10, b: 20, c: 30 });
901
1033
  let firstHandle = el.querySelector("#first-handle");
902
1034
  let lastHandle = el.querySelector("#last-handle");
903
- let firstInput = el.shadowRoot.querySelector('.handle[name="a"] > input');
904
- let middleInput = el.shadowRoot.querySelector('.handle[name="b"] > input');
905
- let lastInput = el.shadowRoot.querySelector('.handle[name="c"] > input');
1035
+ let firstInput = el.shadowRoot.querySelector(
1036
+ '.handle[name="a"] > input'
1037
+ );
1038
+ let middleInput = el.shadowRoot.querySelector(
1039
+ '.handle[name="b"] > input'
1040
+ );
1041
+ let lastInput = el.shadowRoot.querySelector(
1042
+ '.handle[name="c"] > input'
1043
+ );
906
1044
  expect(firstInput.min).to.equal("0");
907
1045
  expect(firstInput.max).to.equal("20");
908
1046
  expect(middleInput.min).to.equal("10");
@@ -919,7 +1057,8 @@ describe("Slider", () => {
919
1057
  expect(middleInput.max).to.equal("85");
920
1058
  expect(lastInput.min).to.equal("20");
921
1059
  expect(lastInput.max).to.equal("100");
922
- el = await fixture(html`
1060
+ el = await fixture(
1061
+ html`
923
1062
  <sp-slider>
924
1063
  <sp-slider-handle
925
1064
  id="first-handle"
@@ -946,10 +1085,17 @@ describe("Slider", () => {
946
1085
  value="30"
947
1086
  ></sp-slider-handle>
948
1087
  </sp-slider>
949
- `);
950
- firstInput = el.shadowRoot.querySelector('.handle[name="a"] > input');
951
- middleInput = el.shadowRoot.querySelector('.handle[name="b"] > input');
952
- lastInput = el.shadowRoot.querySelector('.handle[name="c"] > input');
1088
+ `
1089
+ );
1090
+ firstInput = el.shadowRoot.querySelector(
1091
+ '.handle[name="a"] > input'
1092
+ );
1093
+ middleInput = el.shadowRoot.querySelector(
1094
+ '.handle[name="b"] > input'
1095
+ );
1096
+ lastInput = el.shadowRoot.querySelector(
1097
+ '.handle[name="c"] > input'
1098
+ );
953
1099
  expect(firstInput.min).to.equal("0");
954
1100
  expect(firstInput.max).to.equal("20");
955
1101
  expect(middleInput.min).to.equal("10");
@@ -968,7 +1114,8 @@ describe("Slider", () => {
968
1114
  expect(lastInput.max).to.equal("95");
969
1115
  });
970
1116
  it("sends keyboard events to active handle", async () => {
971
- const el = await fixture(html`
1117
+ const el = await fixture(
1118
+ html`
972
1119
  <sp-slider step="1" min="0" max="100">
973
1120
  <sp-slider-handle
974
1121
  id="first-handle"
@@ -993,7 +1140,8 @@ describe("Slider", () => {
993
1140
  value="30"
994
1141
  ></sp-slider-handle>
995
1142
  </sp-slider>
996
- `);
1143
+ `
1144
+ );
997
1145
  await elementUpdated(el);
998
1146
  expect(el.values).to.deep.equal({ a: 10, b: 20, c: 30 });
999
1147
  const lastHandle = el.querySelector("#last-handle");