@spectrum-web-components/slider 0.12.14 → 0.12.15-devmode.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.
- package/package.json +40 -15
- package/sp-slider-handle.dev.js +3 -0
- package/sp-slider-handle.dev.js.map +7 -0
- package/sp-slider-handle.js +3 -14
- package/sp-slider-handle.js.map +7 -1
- package/sp-slider.dev.js +4 -0
- package/sp-slider.dev.js.map +7 -0
- package/sp-slider.js +4 -15
- package/sp-slider.js.map +7 -1
- package/src/HandleController.dev.js +434 -0
- package/src/HandleController.dev.js.map +7 -0
- package/src/HandleController.js +402 -453
- package/src/HandleController.js.map +7 -1
- package/src/Slider.dev.js +367 -0
- package/src/Slider.dev.js.map +7 -0
- package/src/Slider.js +280 -304
- package/src/Slider.js.map +7 -1
- package/src/SliderHandle.dev.js +184 -0
- package/src/SliderHandle.dev.js.map +7 -0
- package/src/SliderHandle.js +171 -179
- package/src/SliderHandle.js.map +7 -1
- package/src/index.dev.js +4 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +4 -15
- package/src/index.js.map +7 -1
- package/src/slider.css.dev.js +234 -0
- package/src/slider.css.dev.js.map +7 -0
- package/src/slider.css.js +3 -14
- package/src/slider.css.js.map +7 -1
- package/src/spectrum-slider.css.dev.js +216 -0
- package/src/spectrum-slider.css.dev.js.map +7 -0
- package/src/spectrum-slider.css.js +3 -14
- package/src/spectrum-slider.css.js.map +7 -1
- package/stories/slider.stories.js +224 -269
- package/stories/slider.stories.js.map +7 -1
- package/sync/sp-slider.dev.js +3 -0
- package/sync/sp-slider.dev.js.map +7 -0
- package/sync/sp-slider.js +3 -14
- package/sync/sp-slider.js.map +7 -1
- package/test/benchmark/test-basic.js +5 -16
- package/test/benchmark/test-basic.js.map +7 -1
- package/test/slider-editable-sync.test.js +132 -144
- package/test/slider-editable-sync.test.js.map +7 -1
- package/test/slider-editable.test.js +151 -159
- package/test/slider-editable.test.js.map +7 -1
- package/test/slider-handle-upgrade.test.js +10 -21
- package/test/slider-handle-upgrade.test.js.map +7 -1
- package/test/slider.test-vrt.js +4 -15
- package/test/slider.test-vrt.js.map +7 -1
- package/test/slider.test.js +686 -700
- package/test/slider.test.js.map +7 -1
package/src/Slider.js
CHANGED
|
@@ -1,133 +1,121 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result)
|
|
9
|
+
__defProp(target, key, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
import {
|
|
13
|
+
html
|
|
14
|
+
} from "@spectrum-web-components/base";
|
|
15
|
+
import {
|
|
16
|
+
property,
|
|
17
|
+
query
|
|
18
|
+
} from "@spectrum-web-components/base/src/decorators.js";
|
|
19
|
+
import {
|
|
20
|
+
classMap,
|
|
21
|
+
ifDefined,
|
|
22
|
+
repeat,
|
|
23
|
+
styleMap
|
|
24
|
+
} from "@spectrum-web-components/base/src/directives.js";
|
|
25
|
+
import sliderStyles from "./slider.css.js";
|
|
26
|
+
import { ObserveSlotText } from "@spectrum-web-components/shared/src/observe-slot-text.js";
|
|
27
|
+
import "@spectrum-web-components/field-label/sp-field-label.js";
|
|
28
|
+
import { HandleController } from "./HandleController.js";
|
|
29
|
+
import { SliderHandle } from "./SliderHandle.js";
|
|
30
|
+
import { streamingListener } from "@spectrum-web-components/base/src/streaming-listener.js";
|
|
31
|
+
export const variants = ["filled", "ramp", "range", "tick"];
|
|
32
|
+
export class Slider extends ObserveSlotText(SliderHandle, "") {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
this.handleController = new HandleController(this);
|
|
36
|
+
this._editable = false;
|
|
37
|
+
this.hideStepper = false;
|
|
38
|
+
this.type = "";
|
|
39
|
+
this._variant = "";
|
|
40
|
+
this.getAriaValueText = (values) => {
|
|
41
|
+
const valueArray = [...values.values()];
|
|
42
|
+
if (valueArray.length === 2)
|
|
43
|
+
return `${valueArray[0]}${this._forcedUnit} - ${valueArray[1]}${this._forcedUnit}`;
|
|
44
|
+
return valueArray.join(`${this._forcedUnit}, `) + this._forcedUnit;
|
|
45
|
+
};
|
|
46
|
+
this.min = 0;
|
|
47
|
+
this.max = 100;
|
|
48
|
+
this.step = 1;
|
|
49
|
+
this.tickStep = 0;
|
|
50
|
+
this.tickLabels = false;
|
|
51
|
+
this.disabled = false;
|
|
52
|
+
this.quiet = false;
|
|
53
|
+
this.indeterminate = false;
|
|
54
|
+
this._numberFieldInput = Promise.resolve();
|
|
55
|
+
}
|
|
56
|
+
static get styles() {
|
|
57
|
+
return [sliderStyles];
|
|
58
|
+
}
|
|
59
|
+
get editable() {
|
|
60
|
+
return this._editable;
|
|
61
|
+
}
|
|
62
|
+
set editable(editable) {
|
|
63
|
+
if (editable === this.editable)
|
|
64
|
+
return;
|
|
65
|
+
const oldValue = this.editable;
|
|
66
|
+
this._editable = this.handleController.size < 2 ? editable : false;
|
|
67
|
+
if (this.editable) {
|
|
68
|
+
this._numberFieldInput = import("@spectrum-web-components/number-field/sp-number-field.js");
|
|
62
69
|
}
|
|
63
|
-
|
|
64
|
-
|
|
70
|
+
if (oldValue !== this.editable) {
|
|
71
|
+
this.requestUpdate("editable", oldValue);
|
|
65
72
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
}
|
|
74
|
+
set variant(variant) {
|
|
75
|
+
const oldVariant = this.variant;
|
|
76
|
+
if (variant === this.variant) {
|
|
77
|
+
return;
|
|
71
78
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this._numberFieldInput = import('@spectrum-web-components/number-field/sp-number-field.js');
|
|
79
|
-
}
|
|
80
|
-
if (oldValue !== this.editable) {
|
|
81
|
-
this.requestUpdate('editable', oldValue);
|
|
82
|
-
}
|
|
79
|
+
if (variants.includes(variant)) {
|
|
80
|
+
this.setAttribute("variant", variant);
|
|
81
|
+
this._variant = variant;
|
|
82
|
+
} else {
|
|
83
|
+
this.removeAttribute("variant");
|
|
84
|
+
this._variant = "";
|
|
83
85
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
86
|
+
this.requestUpdate("variant", oldVariant);
|
|
87
|
+
}
|
|
88
|
+
get variant() {
|
|
89
|
+
return this._variant;
|
|
90
|
+
}
|
|
91
|
+
get values() {
|
|
92
|
+
return this.handleController.values;
|
|
93
|
+
}
|
|
94
|
+
get handleName() {
|
|
95
|
+
return "value";
|
|
96
|
+
}
|
|
97
|
+
get ariaValueText() {
|
|
98
|
+
if (!this.getAriaValueText) {
|
|
99
|
+
return `${this.value}${this._forcedUnit}`;
|
|
98
100
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
return this.getAriaValueText(this.handleController.formattedValues);
|
|
102
|
+
}
|
|
103
|
+
get numberFormat() {
|
|
104
|
+
return this.getNumberFormat();
|
|
105
|
+
}
|
|
106
|
+
get focusElement() {
|
|
107
|
+
return this.handleController.focusElement;
|
|
108
|
+
}
|
|
109
|
+
handleLabelClick(event) {
|
|
110
|
+
if (this.editable) {
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
this.focus();
|
|
101
113
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
get handleName() {
|
|
106
|
-
return 'value';
|
|
107
|
-
}
|
|
108
|
-
get ariaValueText() {
|
|
109
|
-
if (!this.getAriaValueText) {
|
|
110
|
-
return `${this.value}${this._forcedUnit}`;
|
|
111
|
-
}
|
|
112
|
-
return this.getAriaValueText(this.handleController.formattedValues);
|
|
113
|
-
}
|
|
114
|
-
get numberFormat() {
|
|
115
|
-
return this.getNumberFormat();
|
|
116
|
-
}
|
|
117
|
-
get focusElement() {
|
|
118
|
-
return this.handleController.focusElement;
|
|
119
|
-
}
|
|
120
|
-
handleLabelClick(event) {
|
|
121
|
-
if (this.editable) {
|
|
122
|
-
event.preventDefault();
|
|
123
|
-
this.focus();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
render() {
|
|
127
|
-
return html `
|
|
114
|
+
}
|
|
115
|
+
render() {
|
|
116
|
+
return html`
|
|
128
117
|
${this.renderLabel()} ${this.renderTrack()}
|
|
129
|
-
${this.editable
|
|
130
|
-
? html `
|
|
118
|
+
${this.editable ? html`
|
|
131
119
|
<sp-number-field
|
|
132
120
|
.formatOptions=${this.formatOptions || {}}
|
|
133
121
|
id="number-field"
|
|
@@ -142,48 +130,45 @@ export class Slider extends ObserveSlotText(SliderHandle, '') {
|
|
|
142
130
|
@input=${this.handleNumberInput}
|
|
143
131
|
@change=${this.handleNumberChange}
|
|
144
132
|
></sp-number-field>
|
|
145
|
-
`
|
|
146
|
-
: html ``}
|
|
133
|
+
` : html``}
|
|
147
134
|
`;
|
|
135
|
+
}
|
|
136
|
+
connectedCallback() {
|
|
137
|
+
super.connectedCallback();
|
|
138
|
+
this.handleController.hostConnected();
|
|
139
|
+
}
|
|
140
|
+
disconnectedCallback() {
|
|
141
|
+
super.disconnectedCallback();
|
|
142
|
+
this.handleController.hostDisconnected();
|
|
143
|
+
}
|
|
144
|
+
update(changedProperties) {
|
|
145
|
+
this.handleController.hostUpdate();
|
|
146
|
+
if (changedProperties.has("disabled") && this.disabled) {
|
|
147
|
+
this.handleController.cancelDrag();
|
|
148
148
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
this.handleController.hostDisconnected();
|
|
156
|
-
}
|
|
157
|
-
update(changedProperties) {
|
|
158
|
-
this.handleController.hostUpdate();
|
|
159
|
-
if (changedProperties.has('disabled') && this.disabled) {
|
|
160
|
-
this.handleController.cancelDrag();
|
|
161
|
-
}
|
|
162
|
-
super.update(changedProperties);
|
|
163
|
-
}
|
|
164
|
-
renderLabel() {
|
|
165
|
-
const textLabelVisible = this.labelVisibility === 'none' || this.labelVisibility === 'value';
|
|
166
|
-
const valueLabelVisible = this.labelVisibility === 'none' || this.labelVisibility === 'text';
|
|
167
|
-
return html `
|
|
149
|
+
super.update(changedProperties);
|
|
150
|
+
}
|
|
151
|
+
renderLabel() {
|
|
152
|
+
const textLabelVisible = this.labelVisibility === "none" || this.labelVisibility === "value";
|
|
153
|
+
const valueLabelVisible = this.labelVisibility === "none" || this.labelVisibility === "text";
|
|
154
|
+
return html`
|
|
168
155
|
<div id="label-container">
|
|
169
156
|
<sp-field-label
|
|
170
157
|
class=${classMap({
|
|
171
|
-
|
|
172
|
-
|
|
158
|
+
"visually-hidden": textLabelVisible
|
|
159
|
+
})}
|
|
173
160
|
?disabled=${this.disabled}
|
|
174
161
|
id="label"
|
|
175
|
-
for=${this.editable
|
|
176
|
-
? 'number-field'
|
|
177
|
-
: this.handleController.activeHandleInputId}
|
|
162
|
+
for=${this.editable ? "number-field" : this.handleController.activeHandleInputId}
|
|
178
163
|
@click=${this.handleLabelClick}
|
|
179
164
|
>
|
|
180
|
-
${this.slotHasContent ? html
|
|
165
|
+
${this.slotHasContent ? html`` : this.label}
|
|
181
166
|
<slot>${this.label}</slot>
|
|
182
167
|
</sp-field-label>
|
|
183
168
|
<output
|
|
184
169
|
class=${classMap({
|
|
185
|
-
|
|
186
|
-
|
|
170
|
+
"visually-hidden": valueLabelVisible
|
|
171
|
+
})}
|
|
187
172
|
id="value"
|
|
188
173
|
aria-live="off"
|
|
189
174
|
for="input"
|
|
@@ -192,12 +177,12 @@ export class Slider extends ObserveSlotText(SliderHandle, '') {
|
|
|
192
177
|
</output>
|
|
193
178
|
</div>
|
|
194
179
|
`;
|
|
180
|
+
}
|
|
181
|
+
renderRamp() {
|
|
182
|
+
if (this.variant !== "ramp") {
|
|
183
|
+
return html``;
|
|
195
184
|
}
|
|
196
|
-
|
|
197
|
-
if (this.variant !== 'ramp') {
|
|
198
|
-
return html ``;
|
|
199
|
-
}
|
|
200
|
-
return html `
|
|
185
|
+
return html`
|
|
201
186
|
<div id="ramp">
|
|
202
187
|
<svg
|
|
203
188
|
viewBox="0 0 240 16"
|
|
@@ -211,181 +196,172 @@ export class Slider extends ObserveSlotText(SliderHandle, '') {
|
|
|
211
196
|
</svg>
|
|
212
197
|
</div>
|
|
213
198
|
`;
|
|
199
|
+
}
|
|
200
|
+
renderTicks() {
|
|
201
|
+
if (this.variant !== "tick") {
|
|
202
|
+
return html``;
|
|
214
203
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const partialFit = tickCount % 1 !== 0;
|
|
222
|
-
const ticks = new Array(Math.floor(tickCount + 1));
|
|
223
|
-
ticks.fill(0, 0, tickCount + 1);
|
|
224
|
-
return html `
|
|
204
|
+
const tickStep = this.tickStep || this.step;
|
|
205
|
+
const tickCount = (this.max - this.min) / tickStep;
|
|
206
|
+
const partialFit = tickCount % 1 !== 0;
|
|
207
|
+
const ticks = new Array(Math.floor(tickCount + 1));
|
|
208
|
+
ticks.fill(0, 0, tickCount + 1);
|
|
209
|
+
return html`
|
|
225
210
|
<div
|
|
226
|
-
class="${partialFit ?
|
|
227
|
-
style=${ifDefined(partialFit
|
|
228
|
-
? `--sp-slider-tick-offset: calc(100% / ${this.max} * ${this.tickStep}`
|
|
229
|
-
: undefined)}
|
|
211
|
+
class="${partialFit ? "not-exact " : ""}ticks"
|
|
212
|
+
style=${ifDefined(partialFit ? `--sp-slider-tick-offset: calc(100% / ${this.max} * ${this.tickStep}` : void 0)}
|
|
230
213
|
>
|
|
231
|
-
${ticks.map((_tick, i) => html
|
|
214
|
+
${ticks.map((_tick, i) => html`
|
|
232
215
|
<div class="tick">
|
|
233
|
-
${this.tickLabels
|
|
234
|
-
? html `
|
|
216
|
+
${this.tickLabels ? html`
|
|
235
217
|
<div class="tickLabel">
|
|
236
218
|
${i * tickStep + this.min}
|
|
237
219
|
</div>
|
|
238
|
-
`
|
|
239
|
-
: html ``}
|
|
220
|
+
` : html``}
|
|
240
221
|
</div>
|
|
241
222
|
`)}
|
|
242
223
|
</div>
|
|
243
224
|
`;
|
|
225
|
+
}
|
|
226
|
+
renderTrackSegment(start, end) {
|
|
227
|
+
if (this.variant === "ramp") {
|
|
228
|
+
return html``;
|
|
244
229
|
}
|
|
245
|
-
|
|
246
|
-
if (this.variant === 'ramp') {
|
|
247
|
-
return html ``;
|
|
248
|
-
}
|
|
249
|
-
return html `
|
|
230
|
+
return html`
|
|
250
231
|
<div
|
|
251
232
|
class="track"
|
|
252
233
|
style=${styleMap(this.trackSegmentStyles(start, end))}
|
|
253
234
|
role="presentation"
|
|
254
235
|
></div>
|
|
255
236
|
`;
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
237
|
+
}
|
|
238
|
+
renderTrack() {
|
|
239
|
+
const segments = this.handleController.trackSegments();
|
|
240
|
+
const trackItems = [
|
|
241
|
+
{ id: "track0", html: this.renderTrackSegment(...segments[0]) },
|
|
242
|
+
{ id: "ramp", html: this.renderRamp() },
|
|
243
|
+
{ id: "ticks", html: this.renderTicks() },
|
|
244
|
+
{ id: "handles", html: this.handleController.render() },
|
|
245
|
+
...segments.slice(1).map(([start, end], index) => ({
|
|
246
|
+
id: `track${index + 1}`,
|
|
247
|
+
html: this.renderTrackSegment(start, end)
|
|
248
|
+
}))
|
|
249
|
+
];
|
|
250
|
+
return html`
|
|
270
251
|
<div
|
|
271
252
|
id="track"
|
|
272
253
|
${streamingListener({
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
254
|
+
start: ["pointerdown", this.handlePointerdown],
|
|
255
|
+
streamInside: ["pointermove", this.handlePointermove],
|
|
256
|
+
end: [["pointerup", "pointercancel"], this.handlePointerup]
|
|
257
|
+
})}
|
|
277
258
|
>
|
|
278
259
|
<div id="controls">
|
|
279
260
|
${repeat(trackItems, (item) => item.id, (item) => item.html)}
|
|
280
261
|
</div>
|
|
281
262
|
</div>
|
|
282
263
|
`;
|
|
264
|
+
}
|
|
265
|
+
handlePointerdown(event) {
|
|
266
|
+
this.handleController.handlePointerdown(event);
|
|
267
|
+
}
|
|
268
|
+
handlePointermove(event) {
|
|
269
|
+
this.handleController.handlePointermove(event);
|
|
270
|
+
}
|
|
271
|
+
handlePointerup(event) {
|
|
272
|
+
this.handleController.handlePointerup(event);
|
|
273
|
+
}
|
|
274
|
+
handleNumberInput(event) {
|
|
275
|
+
var _a;
|
|
276
|
+
const { value } = event.target;
|
|
277
|
+
if (((_a = event.target) == null ? void 0 : _a.stepperActive) && !isNaN(value)) {
|
|
278
|
+
this.value = value;
|
|
279
|
+
return;
|
|
283
280
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
this.value = value;
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
// Do not apply uncommited values to the parent element unless interacting with the stepper UI.
|
|
301
|
-
// Stop uncommited input from being annoucned to the parent application.
|
|
302
|
-
event.stopPropagation();
|
|
303
|
-
}
|
|
304
|
-
handleNumberChange(event) {
|
|
305
|
-
var _a;
|
|
306
|
-
const { value } = event.target;
|
|
307
|
-
if (isNaN(value)) {
|
|
308
|
-
event.target.value = this.value;
|
|
309
|
-
event.stopPropagation();
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
this.value = value;
|
|
313
|
-
if (!((_a = event.target) === null || _a === void 0 ? void 0 : _a.stepperActive)) {
|
|
314
|
-
// When stepper is not active, sythesize an `input` event so that the
|
|
315
|
-
// `change` event isn't surprising.
|
|
316
|
-
this.dispatchInputEvent();
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
this.indeterminate = false;
|
|
320
|
-
}
|
|
321
|
-
trackSegmentStyles(start, end) {
|
|
322
|
-
const size = end - start;
|
|
323
|
-
const styles = {
|
|
324
|
-
width: `${size * 100}%`,
|
|
325
|
-
'--spectrum-slider-track-background-size': `${(1 / size) * 100}%`,
|
|
326
|
-
'--spectrum-slider-track-segment-position': `${start * 100}%`,
|
|
327
|
-
};
|
|
328
|
-
return styles;
|
|
281
|
+
event.stopPropagation();
|
|
282
|
+
}
|
|
283
|
+
handleNumberChange(event) {
|
|
284
|
+
var _a;
|
|
285
|
+
const { value } = event.target;
|
|
286
|
+
if (isNaN(value)) {
|
|
287
|
+
event.target.value = this.value;
|
|
288
|
+
event.stopPropagation();
|
|
289
|
+
} else {
|
|
290
|
+
this.value = value;
|
|
291
|
+
if (!((_a = event.target) == null ? void 0 : _a.stepperActive)) {
|
|
292
|
+
this.dispatchInputEvent();
|
|
293
|
+
}
|
|
329
294
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
295
|
+
this.indeterminate = false;
|
|
296
|
+
}
|
|
297
|
+
trackSegmentStyles(start, end) {
|
|
298
|
+
const size = end - start;
|
|
299
|
+
const styles = {
|
|
300
|
+
width: `${size * 100}%`,
|
|
301
|
+
"--spectrum-slider-track-background-size": `${1 / size * 100}%`,
|
|
302
|
+
"--spectrum-slider-track-segment-position": `${start * 100}%`
|
|
303
|
+
};
|
|
304
|
+
return styles;
|
|
305
|
+
}
|
|
306
|
+
async getUpdateComplete() {
|
|
307
|
+
const complete = await super.getUpdateComplete();
|
|
308
|
+
if (this.editable) {
|
|
309
|
+
await this._numberFieldInput;
|
|
310
|
+
await this.numberField.updateComplete;
|
|
338
311
|
}
|
|
312
|
+
await this.handleController.handleUpdatesComplete();
|
|
313
|
+
return complete;
|
|
314
|
+
}
|
|
339
315
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
], Slider.prototype, "editable",
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
], Slider.prototype, "hideStepper",
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
], Slider.prototype, "type",
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
], Slider.prototype, "variant",
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
], Slider.prototype, "getAriaValueText",
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
], Slider.prototype, "labelVisibility",
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
], Slider.prototype, "min",
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
], Slider.prototype, "max",
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
], Slider.prototype, "step",
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
], Slider.prototype, "tickStep",
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
], Slider.prototype, "tickLabels",
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
], Slider.prototype, "disabled",
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
], Slider.prototype, "quiet",
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
], Slider.prototype, "indeterminate",
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
], Slider.prototype, "labelEl",
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
], Slider.prototype, "numberField",
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
], Slider.prototype, "track",
|
|
391
|
-
//# sourceMappingURL=Slider.js.map
|
|
316
|
+
__decorateClass([
|
|
317
|
+
property({ type: Boolean, reflect: true })
|
|
318
|
+
], Slider.prototype, "editable", 1);
|
|
319
|
+
__decorateClass([
|
|
320
|
+
property({ type: Boolean, reflect: true, attribute: "hide-stepper" })
|
|
321
|
+
], Slider.prototype, "hideStepper", 2);
|
|
322
|
+
__decorateClass([
|
|
323
|
+
property()
|
|
324
|
+
], Slider.prototype, "type", 2);
|
|
325
|
+
__decorateClass([
|
|
326
|
+
property({ type: String })
|
|
327
|
+
], Slider.prototype, "variant", 1);
|
|
328
|
+
__decorateClass([
|
|
329
|
+
property({ attribute: false })
|
|
330
|
+
], Slider.prototype, "getAriaValueText", 2);
|
|
331
|
+
__decorateClass([
|
|
332
|
+
property({ type: String, reflect: true, attribute: "label-visibility" })
|
|
333
|
+
], Slider.prototype, "labelVisibility", 2);
|
|
334
|
+
__decorateClass([
|
|
335
|
+
property({ type: Number, reflect: true })
|
|
336
|
+
], Slider.prototype, "min", 2);
|
|
337
|
+
__decorateClass([
|
|
338
|
+
property({ type: Number, reflect: true })
|
|
339
|
+
], Slider.prototype, "max", 2);
|
|
340
|
+
__decorateClass([
|
|
341
|
+
property({ type: Number })
|
|
342
|
+
], Slider.prototype, "step", 2);
|
|
343
|
+
__decorateClass([
|
|
344
|
+
property({ type: Number, attribute: "tick-step" })
|
|
345
|
+
], Slider.prototype, "tickStep", 2);
|
|
346
|
+
__decorateClass([
|
|
347
|
+
property({ type: Boolean, attribute: "tick-labels" })
|
|
348
|
+
], Slider.prototype, "tickLabels", 2);
|
|
349
|
+
__decorateClass([
|
|
350
|
+
property({ type: Boolean, reflect: true })
|
|
351
|
+
], Slider.prototype, "disabled", 2);
|
|
352
|
+
__decorateClass([
|
|
353
|
+
property({ type: Boolean })
|
|
354
|
+
], Slider.prototype, "quiet", 2);
|
|
355
|
+
__decorateClass([
|
|
356
|
+
property({ type: Boolean })
|
|
357
|
+
], Slider.prototype, "indeterminate", 2);
|
|
358
|
+
__decorateClass([
|
|
359
|
+
query("#label")
|
|
360
|
+
], Slider.prototype, "labelEl", 2);
|
|
361
|
+
__decorateClass([
|
|
362
|
+
query("#number-field")
|
|
363
|
+
], Slider.prototype, "numberField", 2);
|
|
364
|
+
__decorateClass([
|
|
365
|
+
query("#track")
|
|
366
|
+
], Slider.prototype, "track", 2);
|
|
367
|
+
//# sourceMappingURL=Slider.js.map
|