@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.
@@ -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": "\"false\""
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": "\"false\""
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
- 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,
@@ -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, _transferValueToInternalValues);
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
- return;
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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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, _transferValueToInternalValues, transferValueToInternalValues_fn).call(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
- e.preventDefault();
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
- e.preventDefault();
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
- return;
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
- _transferValueToInternalValues = new WeakSet();
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
- #inner-color-thumb:hover .color {
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
- :host([disabled]) input::-webkit-slider-thumb {
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").UUIFormControlMixinInterface<string, unknown>) & typeof LitElement;
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(): unknown;
85
- set value(newVal: unknown);
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.8.0-rc.0",
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.8.0-rc.0"
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": "46d444c66217c9a3c74518d8ce4badc7f121bfdf"
44
+ "gitHead": "e3e398e07b6ff9874aa0656cb7767df42f58a4ce"
45
45
  }