@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.
- package/package.json +7 -7
- package/sp-slider-handle.dev.js +1 -0
- package/sp-slider-handle.dev.js.map +1 -1
- package/sp-slider-handle.js +1 -2
- package/sp-slider-handle.js.map +2 -2
- package/sp-slider.dev.js +1 -0
- package/sp-slider.dev.js.map +1 -1
- package/sp-slider.js +1 -3
- package/sp-slider.js.map +2 -2
- package/src/HandleController.dev.js +71 -17
- package/src/HandleController.dev.js.map +1 -1
- package/src/HandleController.js +16 -421
- package/src/HandleController.js.map +2 -2
- package/src/Slider.dev.js +16 -5
- package/src/Slider.dev.js.map +1 -1
- package/src/Slider.js +23 -306
- package/src/Slider.js.map +2 -2
- package/src/SliderHandle.dev.js +22 -12
- package/src/SliderHandle.dev.js.map +2 -2
- package/src/SliderHandle.js +1 -183
- package/src/SliderHandle.js.map +2 -2
- package/src/index.dev.js +1 -0
- package/src/index.dev.js.map +1 -1
- package/src/index.js +1 -3
- package/src/index.js.map +1 -1
- package/src/slider.css.dev.js +1 -0
- package/src/slider.css.dev.js.map +1 -1
- package/src/slider.css.js +2 -4
- package/src/slider.css.js.map +2 -2
- package/src/spectrum-slider.css.dev.js +1 -0
- package/src/spectrum-slider.css.dev.js.map +1 -1
- package/src/spectrum-slider.css.js +2 -4
- package/src/spectrum-slider.css.js.map +2 -2
- package/stories/slider.stories.js +8 -2
- package/stories/slider.stories.js.map +2 -2
- package/sync/sp-slider.dev.js +1 -0
- package/sync/sp-slider.dev.js.map +1 -1
- package/sync/sp-slider.js +1 -2
- package/sync/sp-slider.js.map +1 -1
- package/test/benchmark/test-basic.js +1 -0
- package/test/benchmark/test-basic.js.map +1 -1
- package/test/slider-editable-sync.test.js +47 -34
- package/test/slider-editable-sync.test.js.map +1 -1
- package/test/slider-editable.test.js +47 -34
- package/test/slider-editable.test.js.map +1 -1
- package/test/slider-handle-upgrade.test.js +1 -0
- package/test/slider-handle-upgrade.test.js.map +1 -1
- package/test/slider.test-vrt.js +1 -0
- package/test/slider.test-vrt.js.map +1 -1
- package/test/slider.test.js +374 -226
- package/test/slider.test.js.map +2 -2
package/test/slider.test.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
64
|
-
|
|
65
|
-
|
|
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(
|
|
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(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
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(
|
|
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(
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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(
|
|
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(
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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(
|
|
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(
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
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(
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
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(
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
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(
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
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(
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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(
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
497
|
-
|
|
498
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
904
|
-
|
|
905
|
-
|
|
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(
|
|
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
|
-
|
|
951
|
-
|
|
952
|
-
|
|
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(
|
|
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");
|