@spectrum-web-components/slider 0.12.13 → 0.12.15-devmode.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/custom-elements.json +40 -0
- package/package.json +41 -16
- 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 -451
- package/src/HandleController.js.map +7 -1
- package/src/Slider.d.ts +8 -0
- package/src/Slider.dev.js +367 -0
- package/src/Slider.dev.js.map +7 -0
- package/src/Slider.js +282 -289
- 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 +257 -267
- 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 -144
- 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,125 +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
|
-
|
|
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");
|
|
54
69
|
}
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
if (oldValue !== this.editable) {
|
|
71
|
+
this.requestUpdate("editable", oldValue);
|
|
57
72
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
}
|
|
74
|
+
set variant(variant) {
|
|
75
|
+
const oldVariant = this.variant;
|
|
76
|
+
if (variant === this.variant) {
|
|
77
|
+
return;
|
|
63
78
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this._numberFieldInput = import('@spectrum-web-components/number-field/sp-number-field.js');
|
|
71
|
-
}
|
|
72
|
-
if (oldValue !== this.editable) {
|
|
73
|
-
this.requestUpdate('editable', oldValue);
|
|
74
|
-
}
|
|
79
|
+
if (variants.includes(variant)) {
|
|
80
|
+
this.setAttribute("variant", variant);
|
|
81
|
+
this._variant = variant;
|
|
82
|
+
} else {
|
|
83
|
+
this.removeAttribute("variant");
|
|
84
|
+
this._variant = "";
|
|
75
85
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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}`;
|
|
90
100
|
}
|
|
91
|
-
|
|
92
|
-
|
|
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();
|
|
93
113
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
get handleName() {
|
|
98
|
-
return 'value';
|
|
99
|
-
}
|
|
100
|
-
get ariaValueText() {
|
|
101
|
-
if (!this.getAriaValueText) {
|
|
102
|
-
return `${this.value}${this._forcedUnit}`;
|
|
103
|
-
}
|
|
104
|
-
return this.getAriaValueText(this.handleController.formattedValues);
|
|
105
|
-
}
|
|
106
|
-
get numberFormat() {
|
|
107
|
-
return this.getNumberFormat();
|
|
108
|
-
}
|
|
109
|
-
get focusElement() {
|
|
110
|
-
return this.handleController.focusElement;
|
|
111
|
-
}
|
|
112
|
-
handleLabelClick(event) {
|
|
113
|
-
if (this.editable) {
|
|
114
|
-
event.preventDefault();
|
|
115
|
-
this.focus();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
render() {
|
|
119
|
-
return html `
|
|
114
|
+
}
|
|
115
|
+
render() {
|
|
116
|
+
return html`
|
|
120
117
|
${this.renderLabel()} ${this.renderTrack()}
|
|
121
|
-
${this.editable
|
|
122
|
-
? html `
|
|
118
|
+
${this.editable ? html`
|
|
123
119
|
<sp-number-field
|
|
124
120
|
.formatOptions=${this.formatOptions || {}}
|
|
125
121
|
id="number-field"
|
|
@@ -129,51 +125,50 @@ export class Slider extends ObserveSlotText(SliderHandle, '') {
|
|
|
129
125
|
value=${this.value}
|
|
130
126
|
?hide-stepper=${this.hideStepper}
|
|
131
127
|
?disabled=${this.disabled}
|
|
128
|
+
?quiet=${this.quiet}
|
|
129
|
+
?indeterminate=${this.indeterminate}
|
|
132
130
|
@input=${this.handleNumberInput}
|
|
133
131
|
@change=${this.handleNumberChange}
|
|
134
132
|
></sp-number-field>
|
|
135
|
-
`
|
|
136
|
-
: html ``}
|
|
133
|
+
` : html``}
|
|
137
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();
|
|
138
148
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
this.handleController.hostDisconnected();
|
|
146
|
-
}
|
|
147
|
-
update(changedProperties) {
|
|
148
|
-
this.handleController.hostUpdate();
|
|
149
|
-
if (changedProperties.has('disabled') && this.disabled) {
|
|
150
|
-
this.handleController.cancelDrag();
|
|
151
|
-
}
|
|
152
|
-
super.update(changedProperties);
|
|
153
|
-
}
|
|
154
|
-
renderLabel() {
|
|
155
|
-
const textLabelVisible = this.labelVisibility === 'none' || this.labelVisibility === 'value';
|
|
156
|
-
const valueLabelVisible = this.labelVisibility === 'none' || this.labelVisibility === 'text';
|
|
157
|
-
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`
|
|
158
155
|
<div id="label-container">
|
|
159
156
|
<sp-field-label
|
|
160
157
|
class=${classMap({
|
|
161
|
-
|
|
162
|
-
|
|
158
|
+
"visually-hidden": textLabelVisible
|
|
159
|
+
})}
|
|
163
160
|
?disabled=${this.disabled}
|
|
164
161
|
id="label"
|
|
165
|
-
for=${this.editable
|
|
166
|
-
? 'number-field'
|
|
167
|
-
: this.handleController.activeHandleInputId}
|
|
162
|
+
for=${this.editable ? "number-field" : this.handleController.activeHandleInputId}
|
|
168
163
|
@click=${this.handleLabelClick}
|
|
169
164
|
>
|
|
170
|
-
${this.slotHasContent ? html
|
|
165
|
+
${this.slotHasContent ? html`` : this.label}
|
|
171
166
|
<slot>${this.label}</slot>
|
|
172
167
|
</sp-field-label>
|
|
173
168
|
<output
|
|
174
169
|
class=${classMap({
|
|
175
|
-
|
|
176
|
-
|
|
170
|
+
"visually-hidden": valueLabelVisible
|
|
171
|
+
})}
|
|
177
172
|
id="value"
|
|
178
173
|
aria-live="off"
|
|
179
174
|
for="input"
|
|
@@ -182,12 +177,12 @@ export class Slider extends ObserveSlotText(SliderHandle, '') {
|
|
|
182
177
|
</output>
|
|
183
178
|
</div>
|
|
184
179
|
`;
|
|
180
|
+
}
|
|
181
|
+
renderRamp() {
|
|
182
|
+
if (this.variant !== "ramp") {
|
|
183
|
+
return html``;
|
|
185
184
|
}
|
|
186
|
-
|
|
187
|
-
if (this.variant !== 'ramp') {
|
|
188
|
-
return html ``;
|
|
189
|
-
}
|
|
190
|
-
return html `
|
|
185
|
+
return html`
|
|
191
186
|
<div id="ramp">
|
|
192
187
|
<svg
|
|
193
188
|
viewBox="0 0 240 16"
|
|
@@ -201,174 +196,172 @@ export class Slider extends ObserveSlotText(SliderHandle, '') {
|
|
|
201
196
|
</svg>
|
|
202
197
|
</div>
|
|
203
198
|
`;
|
|
199
|
+
}
|
|
200
|
+
renderTicks() {
|
|
201
|
+
if (this.variant !== "tick") {
|
|
202
|
+
return html``;
|
|
204
203
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
const partialFit = tickCount % 1 !== 0;
|
|
212
|
-
const ticks = new Array(Math.floor(tickCount + 1));
|
|
213
|
-
ticks.fill(0, 0, tickCount + 1);
|
|
214
|
-
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`
|
|
215
210
|
<div
|
|
216
|
-
class="${partialFit ?
|
|
217
|
-
style=${ifDefined(partialFit
|
|
218
|
-
? `--sp-slider-tick-offset: calc(100% / ${this.max} * ${this.tickStep}`
|
|
219
|
-
: undefined)}
|
|
211
|
+
class="${partialFit ? "not-exact " : ""}ticks"
|
|
212
|
+
style=${ifDefined(partialFit ? `--sp-slider-tick-offset: calc(100% / ${this.max} * ${this.tickStep}` : void 0)}
|
|
220
213
|
>
|
|
221
|
-
${ticks.map((_tick, i) => html
|
|
214
|
+
${ticks.map((_tick, i) => html`
|
|
222
215
|
<div class="tick">
|
|
223
|
-
${this.tickLabels
|
|
224
|
-
? html `
|
|
216
|
+
${this.tickLabels ? html`
|
|
225
217
|
<div class="tickLabel">
|
|
226
218
|
${i * tickStep + this.min}
|
|
227
219
|
</div>
|
|
228
|
-
`
|
|
229
|
-
: html ``}
|
|
220
|
+
` : html``}
|
|
230
221
|
</div>
|
|
231
222
|
`)}
|
|
232
223
|
</div>
|
|
233
224
|
`;
|
|
225
|
+
}
|
|
226
|
+
renderTrackSegment(start, end) {
|
|
227
|
+
if (this.variant === "ramp") {
|
|
228
|
+
return html``;
|
|
234
229
|
}
|
|
235
|
-
|
|
236
|
-
if (this.variant === 'ramp') {
|
|
237
|
-
return html ``;
|
|
238
|
-
}
|
|
239
|
-
return html `
|
|
230
|
+
return html`
|
|
240
231
|
<div
|
|
241
232
|
class="track"
|
|
242
233
|
style=${styleMap(this.trackSegmentStyles(start, end))}
|
|
243
234
|
role="presentation"
|
|
244
235
|
></div>
|
|
245
236
|
`;
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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`
|
|
260
251
|
<div
|
|
261
252
|
id="track"
|
|
262
253
|
${streamingListener({
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
254
|
+
start: ["pointerdown", this.handlePointerdown],
|
|
255
|
+
streamInside: ["pointermove", this.handlePointermove],
|
|
256
|
+
end: [["pointerup", "pointercancel"], this.handlePointerup]
|
|
257
|
+
})}
|
|
267
258
|
>
|
|
268
259
|
<div id="controls">
|
|
269
260
|
${repeat(trackItems, (item) => item.id, (item) => item.html)}
|
|
270
261
|
</div>
|
|
271
262
|
</div>
|
|
272
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;
|
|
273
280
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
this.value = value;
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
290
|
-
// Do not apply uncommited values to the parent element unless interacting with the stepper UI.
|
|
291
|
-
// Stop uncommited input from being annoucned to the parent application.
|
|
292
|
-
event.stopPropagation();
|
|
293
|
-
}
|
|
294
|
-
handleNumberChange(event) {
|
|
295
|
-
var _a;
|
|
296
|
-
const { value } = event.target;
|
|
297
|
-
if (isNaN(value)) {
|
|
298
|
-
event.target.value = this.value;
|
|
299
|
-
event.stopPropagation();
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
this.value = value;
|
|
303
|
-
if (!((_a = event.target) === null || _a === void 0 ? void 0 : _a.stepperActive)) {
|
|
304
|
-
// When stepper is not active, sythesize an `input` event so that the
|
|
305
|
-
// `change` event isn't surprising.
|
|
306
|
-
this.dispatchInputEvent();
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
trackSegmentStyles(start, end) {
|
|
311
|
-
const size = end - start;
|
|
312
|
-
const styles = {
|
|
313
|
-
width: `${size * 100}%`,
|
|
314
|
-
'--spectrum-slider-track-background-size': `${(1 / size) * 100}%`,
|
|
315
|
-
'--spectrum-slider-track-segment-position': `${start * 100}%`,
|
|
316
|
-
};
|
|
317
|
-
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
|
+
}
|
|
318
294
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
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;
|
|
327
311
|
}
|
|
312
|
+
await this.handleController.handleUpdatesComplete();
|
|
313
|
+
return complete;
|
|
314
|
+
}
|
|
328
315
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
], Slider.prototype, "editable",
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
], Slider.prototype, "hideStepper",
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
], Slider.prototype, "type",
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
], Slider.prototype, "variant",
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
], Slider.prototype, "getAriaValueText",
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
], Slider.prototype, "labelVisibility",
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
], Slider.prototype, "min",
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
], Slider.prototype, "max",
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
], Slider.prototype, "step",
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
], Slider.prototype, "tickStep",
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
], Slider.prototype, "tickLabels",
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
], Slider.prototype, "disabled",
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
], Slider.prototype, "
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
], Slider.prototype, "
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
], Slider.prototype, "
|
|
374
|
-
|
|
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
|