@umbraco-ui/uui-range-slider 1.8.0-rc.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 +15 -2
- package/lib/index.js +49 -52
- package/lib/uui-range-slider.element.d.ts +10 -3
- 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.",
|
|
@@ -68,7 +74,7 @@
|
|
|
68
74
|
"name": "pristine",
|
|
69
75
|
"description": "Determines wether the form control has been touched or interacted with, this determines wether the validation-status of this form control should be made visible.",
|
|
70
76
|
"type": "boolean",
|
|
71
|
-
"default": "\"
|
|
77
|
+
"default": "\"true\""
|
|
72
78
|
},
|
|
73
79
|
{
|
|
74
80
|
"name": "required",
|
|
@@ -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",
|
|
@@ -182,7 +195,7 @@
|
|
|
182
195
|
"attribute": "pristine",
|
|
183
196
|
"description": "Determines wether the form control has been touched or interacted with, this determines wether the validation-status of this form control should be made visible.",
|
|
184
197
|
"type": "boolean",
|
|
185
|
-
"default": "\"
|
|
198
|
+
"default": "\"true\""
|
|
186
199
|
},
|
|
187
200
|
{
|
|
188
201
|
"name": "required",
|
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,
|
|
@@ -49,15 +41,13 @@ const Z_INDEX = {
|
|
|
49
41
|
const THUMB_SIZE = 18;
|
|
50
42
|
const TRACK_PADDING = 12;
|
|
51
43
|
const STEP_MIN_WIDTH = 24;
|
|
52
|
-
let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
53
|
-
LitElement,
|
|
54
|
-
""
|
|
55
|
-
) {
|
|
44
|
+
let UUIRangeSliderElement = class extends UUIFormControlMixin(LitElement, "") {
|
|
56
45
|
/** Constructor and Validator */
|
|
57
46
|
constructor() {
|
|
58
47
|
super();
|
|
59
|
-
__privateAdd(this,
|
|
48
|
+
__privateAdd(this, _UUIRangeSliderElement_instances);
|
|
60
49
|
this.disabled = false;
|
|
50
|
+
this.readonly = false;
|
|
61
51
|
this._min = 0;
|
|
62
52
|
this._max = 0;
|
|
63
53
|
this.hideStepValues = false;
|
|
@@ -81,11 +71,9 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
81
71
|
};
|
|
82
72
|
/** Touch Event */
|
|
83
73
|
this._onTouchStart = (e) => {
|
|
84
|
-
if (this.disabled)
|
|
85
|
-
return;
|
|
74
|
+
if (this.disabled) return;
|
|
86
75
|
const target = e.composedPath()[0];
|
|
87
|
-
if (target === this._outerTrack)
|
|
88
|
-
return;
|
|
76
|
+
if (target === this._outerTrack) return;
|
|
89
77
|
if (target === this._innerColor || target === this._innerColorThumb) {
|
|
90
78
|
window.addEventListener("touchend", this._onTouchEnd);
|
|
91
79
|
window.addEventListener("touchcancel", this._onTouchEnd);
|
|
@@ -115,11 +103,10 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
115
103
|
};
|
|
116
104
|
/** Mouse Event */
|
|
117
105
|
this._onMouseDown = (e) => {
|
|
118
|
-
if (this.disabled)
|
|
119
|
-
|
|
106
|
+
if (this.disabled) return;
|
|
107
|
+
if (this.readonly) return;
|
|
120
108
|
const target = e.composedPath()[0];
|
|
121
|
-
if (target === this._outerTrack)
|
|
122
|
-
return;
|
|
109
|
+
if (target === this._outerTrack) return;
|
|
123
110
|
if (target === this._innerColor || target === this._innerColorThumb) {
|
|
124
111
|
window.addEventListener("mouseup", this._onMouseUp);
|
|
125
112
|
window.addEventListener("mousemove", this._onMouseMove);
|
|
@@ -158,42 +145,42 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
158
145
|
}
|
|
159
146
|
set min(newVal) {
|
|
160
147
|
this._min = newVal;
|
|
161
|
-
__privateMethod(this,
|
|
148
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
162
149
|
}
|
|
163
150
|
get max() {
|
|
164
151
|
return this._max;
|
|
165
152
|
}
|
|
166
153
|
set max(newVal) {
|
|
167
154
|
this._max = newVal;
|
|
168
|
-
__privateMethod(this,
|
|
155
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
169
156
|
}
|
|
170
157
|
get step() {
|
|
171
158
|
return this._step;
|
|
172
159
|
}
|
|
173
160
|
set step(newVal) {
|
|
174
161
|
this._step = newVal;
|
|
175
|
-
__privateMethod(this,
|
|
162
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
176
163
|
}
|
|
177
164
|
get minGap() {
|
|
178
165
|
return this._minGap;
|
|
179
166
|
}
|
|
180
167
|
set minGap(newVal) {
|
|
181
168
|
this._minGap = newVal;
|
|
182
|
-
__privateMethod(this,
|
|
169
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
183
170
|
}
|
|
184
171
|
get maxGap() {
|
|
185
172
|
return this._maxGap;
|
|
186
173
|
}
|
|
187
174
|
set maxGap(newVal) {
|
|
188
175
|
this._maxGap = newVal;
|
|
189
|
-
__privateMethod(this,
|
|
176
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
190
177
|
}
|
|
191
178
|
get value() {
|
|
192
179
|
return super.value;
|
|
193
180
|
}
|
|
194
181
|
set value(newVal) {
|
|
195
182
|
super.value = newVal;
|
|
196
|
-
__privateMethod(this,
|
|
183
|
+
__privateMethod(this, _UUIRangeSliderElement_instances, transferValueToInternalValues_fn).call(this);
|
|
197
184
|
}
|
|
198
185
|
setValueLow(low) {
|
|
199
186
|
low = clamp(
|
|
@@ -357,16 +344,16 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
357
344
|
}
|
|
358
345
|
/** Input Events */
|
|
359
346
|
_onLowInput(e) {
|
|
360
|
-
if (this.disabled)
|
|
361
|
-
|
|
347
|
+
if (this.disabled) e.preventDefault();
|
|
348
|
+
if (this.readonly) e.preventDefault();
|
|
362
349
|
this._currentFocus = this._inputLow;
|
|
363
350
|
const newValue = Number(e.target.value);
|
|
364
351
|
this.setValueLow(newValue);
|
|
365
352
|
this.dispatchEvent(new UUIRangeSliderEvent(UUIRangeSliderEvent.INPUT));
|
|
366
353
|
}
|
|
367
354
|
_onHighInput(e) {
|
|
368
|
-
if (this.disabled)
|
|
369
|
-
|
|
355
|
+
if (this.disabled) e.preventDefault();
|
|
356
|
+
if (this.readonly) e.preventDefault();
|
|
370
357
|
this._currentFocus = this._inputHigh;
|
|
371
358
|
const newValue = Number(e.target.value);
|
|
372
359
|
this.setValueHigh(newValue);
|
|
@@ -412,10 +399,8 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
412
399
|
_renderSteps() {
|
|
413
400
|
const stepAmount = (this._max - this._min) / this._step;
|
|
414
401
|
const stepWidth = (this._trackWidth - TRACK_PADDING * 2) / stepAmount;
|
|
415
|
-
if (stepWidth < STEP_MIN_WIDTH)
|
|
416
|
-
|
|
417
|
-
if (stepAmount % 1 !== 0)
|
|
418
|
-
return;
|
|
402
|
+
if (stepWidth < STEP_MIN_WIDTH) return;
|
|
403
|
+
if (stepAmount % 1 !== 0) return;
|
|
419
404
|
let index = 0;
|
|
420
405
|
const stepPositions = new Array(stepAmount + 1).fill(stepWidth).map((stepWidth2) => stepWidth2 * index++);
|
|
421
406
|
return html`<div class="step-wrapper">
|
|
@@ -427,8 +412,7 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
427
412
|
</div>`;
|
|
428
413
|
}
|
|
429
414
|
_renderStepValues(stepAmount) {
|
|
430
|
-
if (this.hideStepValues || stepAmount > 20)
|
|
431
|
-
return;
|
|
415
|
+
if (this.hideStepValues || stepAmount > 20) return;
|
|
432
416
|
let index = 0;
|
|
433
417
|
const stepValues = new Array(stepAmount + 1).fill(this._step).map((step) => this._min + step * index++);
|
|
434
418
|
return html`<div class="step-values">
|
|
@@ -459,7 +443,7 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
459
443
|
step=${this._step}
|
|
460
444
|
.value=${this._lowInputValue.toString()}
|
|
461
445
|
aria-label="${this.label} low-end value"
|
|
462
|
-
?disabled="${this.disabled}"
|
|
446
|
+
?disabled="${this.disabled || this.readonly}"
|
|
463
447
|
@input=${this._onLowInput}
|
|
464
448
|
@change=${this._onLowChange} />
|
|
465
449
|
<input
|
|
@@ -471,13 +455,13 @@ let UUIRangeSliderElement = class extends UUIFormControlMixin(
|
|
|
471
455
|
step="${this._step}"
|
|
472
456
|
.value=${this._highInputValue.toString()}
|
|
473
457
|
aria-label="${this.label} high-end value"
|
|
474
|
-
?disabled="${this.disabled}"
|
|
458
|
+
?disabled="${this.disabled || this.readonly}"
|
|
475
459
|
@input=${this._onHighInput}
|
|
476
460
|
@change=${this._onHighChange} />
|
|
477
461
|
</div>`;
|
|
478
462
|
}
|
|
479
463
|
};
|
|
480
|
-
|
|
464
|
+
_UUIRangeSliderElement_instances = new WeakSet();
|
|
481
465
|
transferValueToInternalValues_fn = function() {
|
|
482
466
|
const valueSplit = this.value.split(",");
|
|
483
467
|
let low = Number(valueSplit[0]) || 0;
|
|
@@ -550,7 +534,8 @@ UUIRangeSliderElement.styles = [
|
|
|
550
534
|
z-index: ${Z_INDEX.CENTER};
|
|
551
535
|
}
|
|
552
536
|
|
|
553
|
-
:host([disabled]) #inner-color-thumb
|
|
537
|
+
:host([disabled]) #inner-color-thumb,
|
|
538
|
+
:host([readonly]) #inner-color-thumb {
|
|
554
539
|
cursor: default;
|
|
555
540
|
}
|
|
556
541
|
|
|
@@ -563,11 +548,13 @@ UUIRangeSliderElement.styles = [
|
|
|
563
548
|
#inner-color-thumb:focus .color {
|
|
564
549
|
background-color: var(--color-focus);
|
|
565
550
|
}
|
|
551
|
+
|
|
566
552
|
#inner-color-thumb:hover .color,
|
|
567
553
|
#inner-color-thumb .color.active {
|
|
568
554
|
background-color: var(--color-hover);
|
|
569
555
|
}
|
|
570
|
-
|
|
556
|
+
|
|
557
|
+
:host(:not([readonly])) #inner-color-thumb:hover .color {
|
|
571
558
|
height: 5px;
|
|
572
559
|
background-color: var(--color-hover);
|
|
573
560
|
}
|
|
@@ -698,6 +685,10 @@ UUIRangeSliderElement.styles = [
|
|
|
698
685
|
color: var(--uui-palette-mine-grey,#3e3e3e);
|
|
699
686
|
}
|
|
700
687
|
|
|
688
|
+
:host([readonly]) .thumb-values {
|
|
689
|
+
opacity: 1;
|
|
690
|
+
}
|
|
691
|
+
|
|
701
692
|
#range-slider:hover .thumb-values {
|
|
702
693
|
opacity: 1;
|
|
703
694
|
}
|
|
@@ -720,7 +711,9 @@ UUIRangeSliderElement.styles = [
|
|
|
720
711
|
inset 0 0 0 2px var(--color-interactive),
|
|
721
712
|
inset 0 0 0 4px var(--uui-color-surface,#fff);
|
|
722
713
|
}
|
|
723
|
-
|
|
714
|
+
|
|
715
|
+
:host([disabled]) input::-webkit-slider-thumb,
|
|
716
|
+
:host([readonly]) input::-webkit-slider-thumb {
|
|
724
717
|
cursor: default;
|
|
725
718
|
}
|
|
726
719
|
|
|
@@ -764,7 +757,8 @@ UUIRangeSliderElement.styles = [
|
|
|
764
757
|
inset 0 0 0 2px var(--color-interactive),
|
|
765
758
|
inset 0 0 0 4px var(--uui-color-surface,#fff);
|
|
766
759
|
}
|
|
767
|
-
:host([disabled]) input::-moz-range-thumb
|
|
760
|
+
:host([disabled]) input::-moz-range-thumb,
|
|
761
|
+
:host([readonly]) input::-moz-range-thumb {
|
|
768
762
|
cursor: default;
|
|
769
763
|
}
|
|
770
764
|
|
|
@@ -797,6 +791,9 @@ __decorateClass([
|
|
|
797
791
|
__decorateClass([
|
|
798
792
|
property({ type: Boolean, reflect: true })
|
|
799
793
|
], UUIRangeSliderElement.prototype, "disabled", 2);
|
|
794
|
+
__decorateClass([
|
|
795
|
+
property({ type: Boolean, reflect: true })
|
|
796
|
+
], UUIRangeSliderElement.prototype, "readonly", 2);
|
|
800
797
|
__decorateClass([
|
|
801
798
|
property({ type: Number })
|
|
802
799
|
], UUIRangeSliderElement.prototype, "min", 1);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
declare const UUIRangeSliderElement_base: (new (...args: any[]) => import("@umbraco-ui/uui-base/lib/mixins").
|
|
2
|
+
declare const UUIRangeSliderElement_base: (new (...args: any[]) => import("@umbraco-ui/uui-base/lib/mixins").UUIFormControlMixinElement<FormDataEntryValue | FormData>) & typeof LitElement;
|
|
3
3
|
/**
|
|
4
4
|
* @element uui-range-slider
|
|
5
5
|
* @description - Range slider with two handles. Use uui-slider for a single handle.
|
|
@@ -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}
|
|
@@ -81,8 +88,8 @@ export declare class UUIRangeSliderElement extends UUIRangeSliderElement_base {
|
|
|
81
88
|
* @attr
|
|
82
89
|
* @default 0,0
|
|
83
90
|
*/
|
|
84
|
-
get value():
|
|
85
|
-
set value(newVal:
|
|
91
|
+
get value(): FormDataEntryValue | FormData;
|
|
92
|
+
set value(newVal: FormDataEntryValue | FormData);
|
|
86
93
|
private _currentFocus?;
|
|
87
94
|
private _movement;
|
|
88
95
|
private startPoint;
|
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
|
}
|