@umbraco-ui/uui-range-slider 1.8.0 → 1.9.0-rc.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.
@@ -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
- if (!member.has(obj))
32
- throw TypeError("Cannot " + msg);
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, _transferValueToInternalValues);
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
- return;
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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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
- e.preventDefault();
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
- e.preventDefault();
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
- return;
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
- _transferValueToInternalValues = new WeakSet();
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
- #inner-color-thumb:hover .color {
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
- :host([disabled]) input::-webkit-slider-thumb {
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.8.0",
3
+ "version": "1.9.0-rc.1",
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.8.0"
33
+ "@umbraco-ui/uui-base": "1.9.0-rc.1"
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": "53021762a52dc54a46f0c5ef829c1cbaabde1160"
44
+ "gitHead": "7092b4717d8b9d4825b15e087508b8f75bf81a92"
45
45
  }