@umbraco-ui/uui-range-slider 1.8.0 → 1.9.0-rc.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/custom-elements.json +13 -0
- package/lib/index.js +48 -48
- package/lib/uui-range-slider.element.d.ts +7 -0
- package/package.json +3 -3
package/custom-elements.json
CHANGED
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
"type": "boolean",
|
|
17
17
|
"default": "\"false\""
|
|
18
18
|
},
|
|
19
|
+
{
|
|
20
|
+
"name": "readonly",
|
|
21
|
+
"description": "Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.",
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": "\"false\""
|
|
24
|
+
},
|
|
19
25
|
{
|
|
20
26
|
"name": "min",
|
|
21
27
|
"description": "Sets the minimum allowed value.",
|
|
@@ -109,6 +115,13 @@
|
|
|
109
115
|
"type": "boolean",
|
|
110
116
|
"default": "\"false\""
|
|
111
117
|
},
|
|
118
|
+
{
|
|
119
|
+
"name": "readonly",
|
|
120
|
+
"attribute": "readonly",
|
|
121
|
+
"description": "Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.",
|
|
122
|
+
"type": "boolean",
|
|
123
|
+
"default": "\"false\""
|
|
124
|
+
},
|
|
112
125
|
{
|
|
113
126
|
"name": "min",
|
|
114
127
|
"attribute": "min",
|
package/lib/index.js
CHANGED
|
@@ -18,29 +18,21 @@ UUIRangeSliderEvent.CHANGE = "change";
|
|
|
18
18
|
|
|
19
19
|
var __defProp = Object.defineProperty;
|
|
20
20
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
21
|
+
var __typeError = (msg) => {
|
|
22
|
+
throw TypeError(msg);
|
|
23
|
+
};
|
|
21
24
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
22
25
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
23
26
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
24
27
|
if (decorator = decorators[i])
|
|
25
28
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
26
|
-
if (kind && result)
|
|
27
|
-
__defProp(target, key, result);
|
|
29
|
+
if (kind && result) __defProp(target, key, result);
|
|
28
30
|
return result;
|
|
29
31
|
};
|
|
30
|
-
var __accessCheck = (obj, member, msg) =>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var __privateAdd = (obj, member, value) => {
|
|
35
|
-
if (member.has(obj))
|
|
36
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
37
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
38
|
-
};
|
|
39
|
-
var __privateMethod = (obj, member, method) => {
|
|
40
|
-
__accessCheck(obj, member, "access private method");
|
|
41
|
-
return method;
|
|
42
|
-
};
|
|
43
|
-
var _transferValueToInternalValues, transferValueToInternalValues_fn;
|
|
32
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
33
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
34
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
35
|
+
var _UUIRangeSliderElement_instances, transferValueToInternalValues_fn;
|
|
44
36
|
const Z_INDEX = {
|
|
45
37
|
TOP: 3,
|
|
46
38
|
CENTER: 2,
|
|
@@ -53,8 +45,9 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
53
45
|
/** Constructor and Validator */
|
|
54
46
|
constructor() {
|
|
55
47
|
super();
|
|
56
|
-
__privateAdd(this,
|
|
48
|
+
__privateAdd(this, _UUIRangeSliderElement_instances);
|
|
57
49
|
this.disabled = false;
|
|
50
|
+
this.readonly = false;
|
|
58
51
|
this._min = 0;
|
|
59
52
|
this._max = 0;
|
|
60
53
|
this.hideStepValues = false;
|
|
@@ -78,11 +71,9 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
78
71
|
};
|
|
79
72
|
/** Touch Event */
|
|
80
73
|
this._onTouchStart = (e) => {
|
|
81
|
-
if (this.disabled)
|
|
82
|
-
return;
|
|
74
|
+
if (this.disabled) return;
|
|
83
75
|
const target = e.composedPath()[0];
|
|
84
|
-
if (target === this._outerTrack)
|
|
85
|
-
return;
|
|
76
|
+
if (target === this._outerTrack) return;
|
|
86
77
|
if (target === this._innerColor || target === this._innerColorThumb) {
|
|
87
78
|
window.addEventListener("touchend", this._onTouchEnd);
|
|
88
79
|
window.addEventListener("touchcancel", this._onTouchEnd);
|
|
@@ -112,11 +103,10 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
112
103
|
};
|
|
113
104
|
/** Mouse Event */
|
|
114
105
|
this._onMouseDown = (e) => {
|
|
115
|
-
if (this.disabled)
|
|
116
|
-
|
|
106
|
+
if (this.disabled) return;
|
|
107
|
+
if (this.readonly) return;
|
|
117
108
|
const target = e.composedPath()[0];
|
|
118
|
-
if (target === this._outerTrack)
|
|
119
|
-
return;
|
|
109
|
+
if (target === this._outerTrack) return;
|
|
120
110
|
if (target === this._innerColor || target === this._innerColorThumb) {
|
|
121
111
|
window.addEventListener("mouseup", this._onMouseUp);
|
|
122
112
|
window.addEventListener("mousemove", this._onMouseMove);
|
|
@@ -155,42 +145,42 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
155
145
|
}
|
|
156
146
|
set min(newVal) {
|
|
157
147
|
this._min = newVal;
|
|
158
|
-
__privateMethod(this,
|
|
148
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
159
149
|
}
|
|
160
150
|
get max() {
|
|
161
151
|
return this._max;
|
|
162
152
|
}
|
|
163
153
|
set max(newVal) {
|
|
164
154
|
this._max = newVal;
|
|
165
|
-
__privateMethod(this,
|
|
155
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
166
156
|
}
|
|
167
157
|
get step() {
|
|
168
158
|
return this._step;
|
|
169
159
|
}
|
|
170
160
|
set step(newVal) {
|
|
171
161
|
this._step = newVal;
|
|
172
|
-
__privateMethod(this,
|
|
162
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
173
163
|
}
|
|
174
164
|
get minGap() {
|
|
175
165
|
return this._minGap;
|
|
176
166
|
}
|
|
177
167
|
set minGap(newVal) {
|
|
178
168
|
this._minGap = newVal;
|
|
179
|
-
__privateMethod(this,
|
|
169
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
180
170
|
}
|
|
181
171
|
get maxGap() {
|
|
182
172
|
return this._maxGap;
|
|
183
173
|
}
|
|
184
174
|
set maxGap(newVal) {
|
|
185
175
|
this._maxGap = newVal;
|
|
186
|
-
__privateMethod(this,
|
|
176
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
187
177
|
}
|
|
188
178
|
get value() {
|
|
189
179
|
return super.value;
|
|
190
180
|
}
|
|
191
181
|
set value(newVal) {
|
|
192
182
|
super.value = newVal;
|
|
193
|
-
__privateMethod(this,
|
|
183
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
194
184
|
}
|
|
195
185
|
setValueLow(low) {
|
|
196
186
|
low = clamp(
|
|
@@ -354,16 +344,16 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
354
344
|
}
|
|
355
345
|
/** Input Events */
|
|
356
346
|
_onLowInput(e) {
|
|
357
|
-
if (this.disabled)
|
|
358
|
-
|
|
347
|
+
if (this.disabled) e.preventDefault();
|
|
348
|
+
if (this.readonly) e.preventDefault();
|
|
359
349
|
this._currentFocus = this._inputLow;
|
|
360
350
|
const newValue = Number(e.target.value);
|
|
361
351
|
this.setValueLow(newValue);
|
|
362
352
|
this.dispatchEvent(new UUIRangeSliderEvent(UUIRangeSliderEvent.INPUT));
|
|
363
353
|
}
|
|
364
354
|
_onHighInput(e) {
|
|
365
|
-
if (this.disabled)
|
|
366
|
-
|
|
355
|
+
if (this.disabled) e.preventDefault();
|
|
356
|
+
if (this.readonly) e.preventDefault();
|
|
367
357
|
this._currentFocus = this._inputHigh;
|
|
368
358
|
const newValue = Number(e.target.value);
|
|
369
359
|
this.setValueHigh(newValue);
|
|
@@ -409,10 +399,8 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
409
399
|
_renderSteps() {
|
|
410
400
|
const stepAmount = (this._max - this._min) / this._step;
|
|
411
401
|
const stepWidth = (this._trackWidth - TRACK_PADDING * 2) / stepAmount;
|
|
412
|
-
if (stepWidth < STEP_MIN_WIDTH)
|
|
413
|
-
|
|
414
|
-
if (stepAmount % 1 !== 0)
|
|
415
|
-
return;
|
|
402
|
+
if (stepWidth < STEP_MIN_WIDTH) return;
|
|
403
|
+
if (stepAmount % 1 !== 0) return;
|
|
416
404
|
let index = 0;
|
|
417
405
|
const stepPositions = new Array(stepAmount + 1).fill(stepWidth).map((stepWidth2) => stepWidth2 * index++);
|
|
418
406
|
return html`<div class="step-wrapper">
|
|
@@ -424,8 +412,7 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
424
412
|
</div>`;
|
|
425
413
|
}
|
|
426
414
|
_renderStepValues(stepAmount) {
|
|
427
|
-
if (this.hideStepValues || stepAmount > 20)
|
|
428
|
-
return;
|
|
415
|
+
if (this.hideStepValues || stepAmount > 20) return;
|
|
429
416
|
let index = 0;
|
|
430
417
|
const stepValues = new Array(stepAmount + 1).fill(this._step).map((step) => this._min + step * index++);
|
|
431
418
|
return html`<div class="step-values">
|
|
@@ -456,7 +443,7 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
456
443
|
step=${this._step}
|
|
457
444
|
.value=${this._lowInputValue.toString()}
|
|
458
445
|
aria-label="${this.label} low-end value"
|
|
459
|
-
?disabled="${this.disabled}"
|
|
446
|
+
?disabled="${this.disabled || this.readonly}"
|
|
460
447
|
@input=${this._onLowInput}
|
|
461
448
|
@change=${this._onLowChange} />
|
|
462
449
|
<input
|
|
@@ -468,13 +455,13 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
|
468
455
|
step="${this._step}"
|
|
469
456
|
.value=${this._highInputValue.toString()}
|
|
470
457
|
aria-label="${this.label} high-end value"
|
|
471
|
-
?disabled="${this.disabled}"
|
|
458
|
+
?disabled="${this.disabled || this.readonly}"
|
|
472
459
|
@input=${this._onHighInput}
|
|
473
460
|
@change=${this._onHighChange} />
|
|
474
461
|
</div>`;
|
|
475
462
|
}
|
|
476
463
|
};
|
|
477
|
-
|
|
464
|
+
_UUIRangeSliderElement_instances = new WeakSet();
|
|
478
465
|
transferValueToInternalValues_fn = function() {
|
|
479
466
|
const valueSplit = this.value.split(",");
|
|
480
467
|
let low = Number(valueSplit[0]) || 0;
|
|
@@ -547,7 +534,8 @@ UUIRangeSliderElement.styles = [
|
|
|
547
534
|
z-index: ${Z_INDEX.CENTER};
|
|
548
535
|
}
|
|
549
536
|
|
|
550
|
-
:host([disabled]) #inner-color-thumb
|
|
537
|
+
:host([disabled]) #inner-color-thumb,
|
|
538
|
+
:host([readonly]) #inner-color-thumb {
|
|
551
539
|
cursor: default;
|
|
552
540
|
}
|
|
553
541
|
|
|
@@ -560,11 +548,13 @@ UUIRangeSliderElement.styles = [
|
|
|
560
548
|
#inner-color-thumb:focus .color {
|
|
561
549
|
background-color: var(--color-focus);
|
|
562
550
|
}
|
|
551
|
+
|
|
563
552
|
#inner-color-thumb:hover .color,
|
|
564
553
|
#inner-color-thumb .color.active {
|
|
565
554
|
background-color: var(--color-hover);
|
|
566
555
|
}
|
|
567
|
-
|
|
556
|
+
|
|
557
|
+
:host(:not([readonly])) #inner-color-thumb:hover .color {
|
|
568
558
|
height: 5px;
|
|
569
559
|
background-color: var(--color-hover);
|
|
570
560
|
}
|
|
@@ -695,6 +685,10 @@ UUIRangeSliderElement.styles = [
|
|
|
695
685
|
color: var(--uui-palette-mine-grey,#3e3e3e);
|
|
696
686
|
}
|
|
697
687
|
|
|
688
|
+
:host([readonly]) .thumb-values {
|
|
689
|
+
opacity: 1;
|
|
690
|
+
}
|
|
691
|
+
|
|
698
692
|
#range-slider:hover .thumb-values {
|
|
699
693
|
opacity: 1;
|
|
700
694
|
}
|
|
@@ -717,7 +711,9 @@ UUIRangeSliderElement.styles = [
|
|
|
717
711
|
inset 0 0 0 2px var(--color-interactive),
|
|
718
712
|
inset 0 0 0 4px var(--uui-color-surface,#fff);
|
|
719
713
|
}
|
|
720
|
-
|
|
714
|
+
|
|
715
|
+
:host([disabled]) input::-webkit-slider-thumb,
|
|
716
|
+
:host([readonly]) input::-webkit-slider-thumb {
|
|
721
717
|
cursor: default;
|
|
722
718
|
}
|
|
723
719
|
|
|
@@ -761,7 +757,8 @@ UUIRangeSliderElement.styles = [
|
|
|
761
757
|
inset 0 0 0 2px var(--color-interactive),
|
|
762
758
|
inset 0 0 0 4px var(--uui-color-surface,#fff);
|
|
763
759
|
}
|
|
764
|
-
:host([disabled]) input::-moz-range-thumb
|
|
760
|
+
:host([disabled]) input::-moz-range-thumb,
|
|
761
|
+
:host([readonly]) input::-moz-range-thumb {
|
|
765
762
|
cursor: default;
|
|
766
763
|
}
|
|
767
764
|
|
|
@@ -794,6 +791,9 @@ __decorateClass([
|
|
|
794
791
|
__decorateClass([
|
|
795
792
|
property({ type: Boolean, reflect: true })
|
|
796
793
|
], UUIRangeSliderElement.prototype, "disabled", 2);
|
|
794
|
+
__decorateClass([
|
|
795
|
+
property({ type: Boolean, reflect: true })
|
|
796
|
+
], UUIRangeSliderElement.prototype, "readonly", 2);
|
|
797
797
|
__decorateClass([
|
|
798
798
|
property({ type: Number })
|
|
799
799
|
], UUIRangeSliderElement.prototype, "min", 1);
|
|
@@ -23,6 +23,13 @@ export declare class UUIRangeSliderElement extends UUIRangeSliderElement_base {
|
|
|
23
23
|
* @default false
|
|
24
24
|
*/
|
|
25
25
|
disabled: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.
|
|
28
|
+
* @type {boolean}
|
|
29
|
+
* @attr
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
readonly: boolean;
|
|
26
33
|
/**
|
|
27
34
|
* Sets the minimum allowed value.
|
|
28
35
|
* @type {number}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umbraco-ui/uui-range-slider",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0-rc.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Umbraco",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"custom-elements.json"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@umbraco-ui/uui-base": "1.
|
|
33
|
+
"@umbraco-ui/uui-base": "1.9.0-rc.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "npm run analyze && tsc --build && rollup -c rollup.config.js",
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
43
|
"homepage": "https://uui.umbraco.com/?path=/story/uui-range-slider",
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "e3e398e07b6ff9874aa0656cb7767df42f58a4ce"
|
|
45
45
|
}
|