@sbb-esta/lyne-elements 1.11.3 → 1.12.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.
Files changed (166) hide show
  1. package/_index.scss +1 -1
  2. package/core/i18n/i18n.d.ts +5 -0
  3. package/core/i18n/i18n.d.ts.map +1 -1
  4. package/core/i18n.js +85 -55
  5. package/core/styles/core/functions.scss +1 -1
  6. package/core/styles/lists.scss +4 -0
  7. package/core/styles/mixins/helpers.scss +1 -1
  8. package/core/styles/mixins/lists.scss +128 -77
  9. package/core/styles/mixins/scrollbar.scss +2 -2
  10. package/core/styles/mixins/table.scss +4 -6
  11. package/core/styles/normalize.scss +62 -131
  12. package/core.css +0 -5
  13. package/custom-elements.json +781 -77
  14. package/development/accordion.js +2 -9
  15. package/development/action-group.js +2 -9
  16. package/development/alert/alert-group.js +2 -9
  17. package/development/alert/alert.js +2 -9
  18. package/development/autocomplete-grid/autocomplete-grid-button.js +2 -9
  19. package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -9
  20. package/development/autocomplete-grid/autocomplete-grid-option.js +2 -9
  21. package/development/autocomplete-grid/autocomplete-grid-row.js +2 -9
  22. package/development/autocomplete.js +2 -12
  23. package/development/breadcrumb/breadcrumb-group.js +2 -9
  24. package/development/breadcrumb/breadcrumb.js +2 -9
  25. package/development/button/common.js +2 -11
  26. package/development/button/mini-button-group.js +2 -9
  27. package/development/button/mini-button.js +2 -9
  28. package/development/calendar.js +2 -9
  29. package/development/card/card-badge.js +2 -9
  30. package/development/card/card.js +2 -9
  31. package/development/card/common.js +2 -9
  32. package/development/checkbox/checkbox-group.js +2 -9
  33. package/development/checkbox/checkbox.js +2 -9
  34. package/development/checkbox/common.js +1 -8
  35. package/development/chip.js +2 -9
  36. package/development/clock.js +2 -9
  37. package/development/container/container.js +1 -8
  38. package/development/container/sticky-bar.js +2 -9
  39. package/development/core/i18n/i18n.d.ts +5 -0
  40. package/development/core/i18n/i18n.d.ts.map +1 -1
  41. package/development/core/i18n.js +36 -1
  42. package/development/core/mixins.js +2 -9
  43. package/development/datepicker/datepicker-next-day.js +2 -9
  44. package/development/datepicker/datepicker-previous-day.js +2 -9
  45. package/development/datepicker/datepicker-toggle.js +2 -9
  46. package/development/datepicker/datepicker.js +2 -9
  47. package/development/dialog/dialog-actions.js +2 -9
  48. package/development/dialog/dialog-content.js +2 -11
  49. package/development/dialog/dialog-title.js +2 -9
  50. package/development/dialog/dialog.js +2 -9
  51. package/development/divider.js +2 -9
  52. package/development/expansion-panel/expansion-panel-content.js +2 -9
  53. package/development/expansion-panel/expansion-panel-header.js +2 -9
  54. package/development/expansion-panel/expansion-panel.js +2 -9
  55. package/development/file-selector.js +2 -9
  56. package/development/flip-card/flip-card-details.js +2 -9
  57. package/development/flip-card/flip-card-summary.js +2 -9
  58. package/development/flip-card/flip-card.js +2 -9
  59. package/development/footer.js +2 -9
  60. package/development/form-error.js +2 -9
  61. package/development/form-field/form-field-clear.js +2 -9
  62. package/development/form-field/form-field.js +1 -12
  63. package/development/header/common.js +2 -9
  64. package/development/header/header.js +2 -9
  65. package/development/icon.js +2 -9
  66. package/development/image/image.d.ts +1 -0
  67. package/development/image/image.d.ts.map +1 -1
  68. package/development/image.js +13 -13
  69. package/development/journey-header.js +2 -9
  70. package/development/lead-container.js +2 -9
  71. package/development/link/common.js +4 -25
  72. package/development/link-list/common.js +2 -9
  73. package/development/link-list/link-list-anchor.js +2 -9
  74. package/development/link-list/link-list.js +2 -9
  75. package/development/loading-indicator.js +2 -10
  76. package/development/logo.js +2 -9
  77. package/development/map-container.js +2 -11
  78. package/development/menu/common.js +2 -9
  79. package/development/menu/menu.js +2 -11
  80. package/development/message.js +2 -9
  81. package/development/navigation/common.js +2 -9
  82. package/development/navigation/navigation-list.js +2 -9
  83. package/development/navigation/navigation-marker.js +2 -9
  84. package/development/navigation/navigation-section.js +2 -11
  85. package/development/navigation/navigation.js +2 -11
  86. package/development/notification.js +2 -10
  87. package/development/option/optgroup.js +2 -9
  88. package/development/option/option.js +2 -9
  89. package/development/overlay.js +2 -11
  90. package/development/paginator/index.d.ts +2 -0
  91. package/development/paginator/index.d.ts.map +1 -0
  92. package/development/paginator/paginator.d.ts +91 -0
  93. package/development/paginator/paginator.d.ts.map +1 -0
  94. package/development/paginator.d.ts +2 -0
  95. package/development/paginator.d.ts.map +1 -0
  96. package/development/paginator.js +519 -0
  97. package/development/popover/popover-trigger.js +2 -9
  98. package/development/popover/popover.js +2 -9
  99. package/development/radio-button/common.js +2 -9
  100. package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  101. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  102. package/development/radio-button/radio-button-group.js +19 -22
  103. package/development/radio-button/radio-button.js +2 -9
  104. package/development/screen-reader-only.js +2 -9
  105. package/development/select/select.d.ts +6 -0
  106. package/development/select/select.d.ts.map +1 -1
  107. package/development/select.js +23 -18
  108. package/development/selection-expansion-panel.js +2 -9
  109. package/development/signet.js +2 -9
  110. package/development/skiplink-list.js +2 -9
  111. package/development/slider/slider.d.ts +35 -16
  112. package/development/slider/slider.d.ts.map +1 -1
  113. package/development/slider.js +102 -88
  114. package/development/status.js +2 -9
  115. package/development/stepper/step-label.js +2 -9
  116. package/development/stepper/step.js +2 -9
  117. package/development/stepper/stepper.js +2 -9
  118. package/development/table/table-wrapper.js +2 -11
  119. package/development/tabs/tab-group.js +2 -9
  120. package/development/tabs/tab-label.js +2 -9
  121. package/development/tabs/tab.js +1 -8
  122. package/development/tag/tag-group.js +2 -9
  123. package/development/tag/tag.js +2 -9
  124. package/development/teaser-hero.js +2 -9
  125. package/development/teaser-product/common.js +2 -9
  126. package/development/teaser-product/teaser-product.js +2 -9
  127. package/development/teaser.js +12 -11
  128. package/development/time-input.js +2 -9
  129. package/development/timetable-occupancy-icon.js +2 -9
  130. package/development/timetable-occupancy.js +2 -9
  131. package/development/title.js +3 -17
  132. package/development/toast.js +2 -9
  133. package/development/toggle/toggle-option.js +2 -9
  134. package/development/toggle/toggle.js +2 -9
  135. package/development/toggle-check.js +1 -8
  136. package/development/train/train-blocked-passage.js +2 -9
  137. package/development/train/train-formation.js +2 -11
  138. package/development/train/train-wagon.js +2 -9
  139. package/development/train/train.js +2 -9
  140. package/development/visual-checkbox.js +2 -9
  141. package/image/image.d.ts +1 -0
  142. package/image/image.d.ts.map +1 -1
  143. package/image.js +7 -7
  144. package/index.d.ts +2 -0
  145. package/index.js +2 -0
  146. package/lists.css +97 -38
  147. package/normalize.css +21 -113
  148. package/package.json +6 -1
  149. package/paginator/index.d.ts +2 -0
  150. package/paginator/index.d.ts.map +1 -0
  151. package/paginator/paginator.d.ts +91 -0
  152. package/paginator/paginator.d.ts.map +1 -0
  153. package/paginator.d.ts +2 -0
  154. package/paginator.d.ts.map +1 -0
  155. package/paginator.js +263 -0
  156. package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  157. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  158. package/radio-button/radio-button-group.js +13 -8
  159. package/select/select.d.ts +6 -0
  160. package/select/select.d.ts.map +1 -1
  161. package/select.js +40 -24
  162. package/slider/slider.d.ts +35 -16
  163. package/slider/slider.d.ts.map +1 -1
  164. package/slider.js +111 -78
  165. package/standard-theme.css +116 -160
  166. package/teaser.js +16 -16
package/slider.js CHANGED
@@ -1,80 +1,121 @@
1
- import { css as u, LitElement as v, html as c, nothing as b } from "lit";
2
- import { property as t, state as m, customElement as p } from "lit/decorators.js";
3
- import { ref as f } from "lit/directives/ref.js";
1
+ import { css as c, LitElement as u, html as d, nothing as h } from "lit";
2
+ import { property as a, state as v, customElement as m } from "lit/decorators.js";
3
+ import { ref as p } from "lit/directives/ref.js";
4
4
  import { styleMap as _ } from "lit/directives/style-map.js";
5
- import { SbbConnectedAbortController as g } from "./core/controllers.js";
6
- import { hostAttributes as y } from "./core/decorators.js";
7
- import { setOrRemoveAttribute as n } from "./core/dom.js";
8
- import { EventEmitter as w, forwardEventToHost as k } from "./core/eventing.js";
9
- import { SbbDisabledMixin as x } from "./core/mixins.js";
5
+ import { SbbConnectedAbortController as f } from "./core/controllers.js";
6
+ import { hostAttributes as g } from "./core/decorators.js";
7
+ import { EventEmitter as w, forwardEventToHost as y } from "./core/eventing.js";
8
+ import { SbbDisabledMixin as x, SbbFormAssociatedMixin as k } from "./core/mixins.js";
10
9
  import "./icon.js";
11
- const I = u`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{outline:none!important;display:inline-block;min-width:9.375rem;width:min(25rem,100%);--sbb-slider-line-height: .25rem;--sbb-slider-value-fraction: 0;--sbb-slider-knob-size: 1.75rem;--sbb-slider-knob-size-active: 1.9375rem;--sbb-slider-knob-border-size: .1875rem;--sbb-slider-knob-border-style: solid;--sbb-slider-knob-color: var(--sbb-color-white);--sbb-slider-knob-border-color: var(--sbb-color-red);--sbb-slider-icon-color: var(--sbb-color-black);--sbb-slider-selected-line-color: var(--sbb-color-red);--sbb-slider-selected-line-disabled-color: var(--sbb-color-smoke);--sbb-slider-line-color: var(--sbb-color-smoke);--sbb-slider-line-disabled-color: var(--sbb-color-graphite)}@media (forced-colors: active){:host{--sbb-slider-selected-line-color: Highlight;--sbb-slider-line-color: CanvasText}}:host([disabled]){--sbb-slider-icon-color: var(--sbb-color-graphite);--sbb-slider-knob-border-color: var(--sbb-color-smoke);--sbb-slider-knob-border-size: var(--sbb-border-width-2x);--sbb-slider-knob-border-style: dashed}:host([readonly]){--sbb-slider-icon-color: var(--sbb-color-smoke);--sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color)}:host([disabled]),:host([readonly]){--sbb-slider-line-color: var(--sbb-slider-line-disabled-color);--sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color)}@media (forced-colors: active){:host([disabled]),:host([readonly]){--sbb-slider-icon-color: GrayText;--sbb-slider-selected-line-disabled-color: GrayText;--sbb-slider-line-disabled-color: GrayText}}.sbb-slider__height-container{display:flex;flex-direction:column}.sbb-slider__height-container:before{content:"​";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-slider__wrapper{display:flex;gap:var(--sbb-spacing-fixed-2x);padding-block:calc(var(--sbb-spacing-fixed-1x) / 2);color:var(--sbb-slider-icon-color)}.sbb-slider__container{position:relative;min-height:var(--sbb-size-icon-ui-small);flex-grow:1}.sbb-slider__range-input{position:absolute;width:100%;top:0;right:0;bottom:0;left:0;opacity:0;margin:0}.sbb-slider__line{position:absolute;top:50%;transform:translateY(-50%);height:var(--sbb-slider-line-height);width:100%;background-color:var(--sbb-slider-line-color);border-radius:var(--sbb-slider-line-height);overflow:hidden;pointer-events:none}.sbb-slider__selected-line{position:relative;height:100%;background-color:var(--sbb-slider-selected-line-color);width:calc(var(--sbb-slider-value-fraction) * 100%)}.sbb-slider__knob{position:absolute;top:50%;transform:translateY(-50%);box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);width:var(--sbb-slider-knob-size);height:var(--sbb-slider-knob-size);inset-inline-start:calc(var(--sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--sbb-slider-value-fraction));transition-property:width,height;transition-duration:var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-1x));transition-timing-function:ease-in;background-color:var(--sbb-slider-knob-color);border:var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);border-radius:50%;pointer-events:none}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-slider__knob{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}:host(:not(:is([disabled],[readonly]))) .sbb-slider__range-input:active~.sbb-slider__knob{--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}`;
12
- var A = Object.defineProperty, C = Object.getOwnPropertyDescriptor, r = (e, o, l, a) => {
13
- for (var i = a > 1 ? void 0 : a ? C(o, l) : o, d = e.length - 1, h; d >= 0; d--)
14
- (h = e[d]) && (i = (a ? h(o, l, i) : h(i)) || i);
15
- return a && i && A(o, l, i), i;
10
+ const I = c`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{outline:none!important;display:inline-block;min-width:9.375rem;width:min(25rem,100%);--sbb-slider-line-height: .25rem;--sbb-slider-value-fraction: 0;--sbb-slider-knob-size: 1.75rem;--sbb-slider-knob-size-active: 1.9375rem;--sbb-slider-knob-border-size: .1875rem;--sbb-slider-knob-border-style: solid;--sbb-slider-knob-color: var(--sbb-color-white);--sbb-slider-knob-border-color: var(--sbb-color-red);--sbb-slider-icon-color: var(--sbb-color-black);--sbb-slider-selected-line-color: var(--sbb-color-red);--sbb-slider-selected-line-disabled-color: var(--sbb-color-smoke);--sbb-slider-line-color: var(--sbb-color-smoke);--sbb-slider-line-disabled-color: var(--sbb-color-graphite)}@media (forced-colors: active){:host{--sbb-slider-selected-line-color: Highlight;--sbb-slider-line-color: CanvasText}}:host(:disabled){--sbb-slider-icon-color: var(--sbb-color-graphite);--sbb-slider-knob-border-color: var(--sbb-color-smoke);--sbb-slider-knob-border-size: var(--sbb-border-width-2x);--sbb-slider-knob-border-style: dashed}:host([readonly]){--sbb-slider-icon-color: var(--sbb-color-smoke);--sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color)}:host(:disabled),:host([readonly]){--sbb-slider-line-color: var(--sbb-slider-line-disabled-color);--sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color)}@media (forced-colors: active){:host(:disabled),:host([readonly]){--sbb-slider-icon-color: GrayText;--sbb-slider-selected-line-disabled-color: GrayText;--sbb-slider-line-disabled-color: GrayText}}.sbb-slider__height-container{display:flex;flex-direction:column}.sbb-slider__height-container:before{content:"​";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-slider__wrapper{display:flex;gap:var(--sbb-spacing-fixed-2x);padding-block:calc(var(--sbb-spacing-fixed-1x) / 2);color:var(--sbb-slider-icon-color)}.sbb-slider__container{position:relative;min-height:var(--sbb-size-icon-ui-small);flex-grow:1}.sbb-slider__range-input{position:absolute;width:100%;top:0;right:0;bottom:0;left:0;opacity:0;margin:0}.sbb-slider__line{position:absolute;top:50%;transform:translateY(-50%);height:var(--sbb-slider-line-height);width:100%;background-color:var(--sbb-slider-line-color);border-radius:var(--sbb-slider-line-height);overflow:hidden;pointer-events:none}.sbb-slider__selected-line{position:relative;height:100%;background-color:var(--sbb-slider-selected-line-color);width:calc(var(--sbb-slider-value-fraction) * 100%)}.sbb-slider__knob{position:absolute;top:50%;transform:translateY(-50%);box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);width:var(--sbb-slider-knob-size);height:var(--sbb-slider-knob-size);inset-inline-start:calc(var(--sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--sbb-slider-value-fraction));transition-property:width,height;transition-duration:var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-1x));transition-timing-function:ease-in;background-color:var(--sbb-slider-knob-color);border:var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);border-radius:50%;pointer-events:none}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-slider__knob{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}:host(:not(:is(:disabled,[readonly]))) .sbb-slider__range-input:active~.sbb-slider__knob{--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}`;
11
+ var M = Object.defineProperty, N = Object.getOwnPropertyDescriptor, t = (e, i, l, r) => {
12
+ for (var o = r > 1 ? void 0 : r ? N(i, l) : i, n = e.length - 1, b; n >= 0; n--)
13
+ (b = e[n]) && (o = (r ? b(i, l, o) : b(o)) || o);
14
+ return r && o && M(i, l, o), o;
16
15
  };
17
- let s = class extends x(v) {
16
+ let s = class extends x(k(u)) {
18
17
  constructor() {
19
- super(...arguments), this.value = "", this.name = "", this.min = "0", this.max = "100", this.readonly = !1, this._valueFraction = 0, this._didChange = new w(this, s.events.didChange, {
18
+ super(), this._min = "0", this._max = "100", this.readonly = !1, this._valueFraction = 0, this._didChange = new w(this, s.events.didChange, {
20
19
  bubbles: !0,
21
20
  cancelable: !0
22
- }), this._abort = new g(this);
21
+ }), this._abort = new f(this), this.internals.role = "slider";
22
+ }
23
+ set value(e) {
24
+ this._isValidNumber(e) ? super.value = this._boundBetweenMinMax(e) : super.value = this._getDefaultValue(), this.internals.ariaValueNow = this.value, this._calculateValueFraction();
25
+ }
26
+ get value() {
27
+ return super.value;
28
+ }
29
+ set valueAsNumber(e) {
30
+ this.value = e == null ? void 0 : e.toString();
31
+ }
32
+ get valueAsNumber() {
33
+ return Number(this.value);
34
+ }
35
+ set min(e) {
36
+ this._isValidNumber(e) && (this._min = e, this.value = this._boundBetweenMinMax(this.value));
37
+ }
38
+ get min() {
39
+ return this._min;
40
+ }
41
+ set max(e) {
42
+ this._isValidNumber(e) && (this._max = e, this.value = this._boundBetweenMinMax(this.value));
43
+ }
44
+ get max() {
45
+ return this._max;
23
46
  }
24
47
  connectedCallback() {
25
48
  super.connectedCallback();
26
49
  const e = this._abort.signal;
27
- this.addEventListener("keydown", (o) => this._handleKeydown(o), { signal: e }), this._handleChange();
50
+ this.addEventListener("keydown", (i) => this._handleKeydown(i), { signal: e }), this.value || (this.value = this._getDefaultValue());
28
51
  }
29
52
  willUpdate(e) {
30
- super.willUpdate(e), e.has("value") ? this._handleChange(Number(this.value)) : e.has("valueAsNumber") && this._handleChange(Number(this.valueAsNumber)), e.has("min") && n(this, "aria-valuemin", this.min ?? null), e.has("max") && n(this, "aria-valuemax", this.max ?? null), e.has("readonly") && n(this, "aria-readonly", this.readonly ? "true" : null), e.has("disabled") && (this.disabled ? (this.setAttribute("aria-disabled", "true"), this.removeAttribute("tabindex")) : (this.removeAttribute("aria-disabled"), this.setAttribute("tabindex", "0")));
53
+ super.willUpdate(e), e.has("min") && (this.internals.ariaValueMin = this.min), e.has("max") && (this.internals.ariaValueMax = this.max), e.has("readonly") && (this.internals.ariaReadOnly = (!!this.readonly).toString());
54
+ }
55
+ /**
56
+ * The reset value is the attribute value (the setup value). If not present, calculates the default.
57
+ * @internal
58
+ */
59
+ formResetCallback() {
60
+ this.value = this.getAttribute("value") ?? this._getDefaultValue();
31
61
  }
32
- _syncValues(e) {
33
- e != null && (e && typeof e != "number" && (e = +e), this.value = e.toString(), this.valueAsNumber = e, n(this, "aria-valuenow", this.value || null));
62
+ /**
63
+ * @internal
64
+ */
65
+ formStateRestoreCallback(e, i) {
66
+ this.value = e;
34
67
  }
35
68
  /**
36
- * Recalculates the `_valueFraction` on change to correctly display the slider knob and lines.
37
- * The first calculation happens in connectedCallback(...), so since `_rangeInput` is not yet available,
38
- * the `min` and `max` values are used; if `value` is not provided, the default value is halfway between min and max
39
- * (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value).
69
+ * If no value is provided, default is the middle point between min and max
70
+ * (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value)
40
71
  */
41
- _handleChange(e = ((o) => (o = this._rangeInput) == null ? void 0 : o.valueAsNumber)()) {
42
- let l, a;
43
- this._rangeInput ? (l = +this._rangeInput.min, a = +this._rangeInput.max) : (l = +this.min, a = +this.max, e = this.value && this.value !== "" ? +this.value : this.valueAsNumber ? this.valueAsNumber : +this.min + (+this.max - +this.min) / 2);
44
- const i = (e - l) / (a - l);
45
- this._valueFraction = isNaN(i) || i < 0 ? 0 : i > 1 ? 1 : i, this._syncValues(e);
72
+ _getDefaultValue() {
73
+ return (+this.min + (+this.max - +this.min) / 2).toString();
74
+ }
75
+ _isValidNumber(e) {
76
+ return !!e && !isNaN(Number(e));
77
+ }
78
+ /**
79
+ * Restrains the value between the min and max
80
+ */
81
+ _boundBetweenMinMax(e) {
82
+ return Math.max(+this.min, Math.min(+this.max, +e)).toString();
83
+ }
84
+ _calculateValueFraction() {
85
+ const e = this.valueAsNumber, i = +this.min, l = +this.max, r = (e - i) / (l - i);
86
+ this._valueFraction = isNaN(r) ? 0 : Math.max(0, Math.min(1, r));
46
87
  }
47
88
  async _handleKeydown(e) {
48
- if (e.key !== "Tab" && e.preventDefault(), !(this.disabled || this.readonly)) {
89
+ if (e.key !== "Tab" && e.preventDefault(), !this.readonly) {
49
90
  if (e.key === "Home")
50
- this._rangeInput.value = this._rangeInput.min;
91
+ this._rangeInput.value = this.min;
51
92
  else if (e.key === "End")
52
- this._rangeInput.value = this._rangeInput.max;
93
+ this._rangeInput.value = this.max;
53
94
  else if (e.key === "ArrowLeft" || e.key === "ArrowDown")
54
95
  this._rangeInput.stepDown();
55
96
  else if (e.key === "ArrowRight" || e.key === "ArrowUp")
56
97
  this._rangeInput.stepUp();
57
98
  else if (e.key === "PageDown")
58
- this._rangeInput.stepDown((+this._rangeInput.max - +this._rangeInput.min) / 10);
99
+ this._rangeInput.stepDown((+this.max - +this.min) / 10);
59
100
  else if (e.key === "PageUp")
60
- this._rangeInput.stepUp((+this._rangeInput.max - +this._rangeInput.min) / 10);
101
+ this._rangeInput.stepUp((+this.max - +this.min) / 10);
61
102
  else
62
103
  return;
63
- this._handleChange(), this.dispatchEvent(
104
+ this._rangeInput.dispatchEvent(
64
105
  new InputEvent("input", { bubbles: !0, cancelable: !0, composed: !0 })
65
- ), this._emitChange(new Event("change", { bubbles: !0, cancelable: !0, composed: !0 }));
106
+ ), this._rangeInput.dispatchEvent(new Event("change", { bubbles: !0 }));
66
107
  }
67
108
  }
68
109
  /** Emits the change event. */
69
110
  _emitChange(e) {
70
- k(e, this), this._didChange.emit();
111
+ y(e, this), this._didChange.emit();
71
112
  }
72
113
  render() {
73
- return c`
114
+ return d`
74
115
  <div class="sbb-slider__height-container">
75
116
  <div class="sbb-slider__wrapper">
76
117
  <slot name="prefix">
77
- ${this.startIcon ? c`<sbb-icon name="${this.startIcon}"></sbb-icon>` : b}
118
+ ${this.startIcon ? d`<sbb-icon name="${this.startIcon}"></sbb-icon>` : h}
78
119
  </slot>
79
120
  <div
80
121
  class="sbb-slider__container"
@@ -82,17 +123,15 @@ let s = class extends x(v) {
82
123
  >
83
124
  <input
84
125
  tabindex="-1"
85
- name=${this.name || b}
86
- min=${this.min || b}
87
- max=${this.max || b}
88
- ?disabled=${this.disabled || this.readonly || b}
89
- .valueAsNumber=${this.valueAsNumber || b}
90
- value=${this.value || b}
126
+ min=${this.min}
127
+ max=${this.max}
128
+ ?disabled=${this.disabled || this.formDisabled || this.readonly}
129
+ value=${this.value || h}
91
130
  class="sbb-slider__range-input"
92
131
  type="range"
93
132
  @change=${(e) => this._emitChange(e)}
94
- @input=${() => this._handleChange()}
95
- ${f((e) => this._rangeInput = e)}
133
+ @input=${() => this.value = this._rangeInput.value}
134
+ ${p((e) => this._rangeInput = e)}
96
135
  />
97
136
  <div class="sbb-slider__line">
98
137
  <div class="sbb-slider__selected-line"></div>
@@ -100,7 +139,7 @@ let s = class extends x(v) {
100
139
  <div class="sbb-slider__knob"></div>
101
140
  </div>
102
141
  <slot name="suffix">
103
- ${this.endIcon ? c`<sbb-icon name="${this.endIcon}"></sbb-icon>` : b}
142
+ ${this.endIcon ? d`<sbb-icon name="${this.endIcon}"></sbb-icon>` : h}
104
143
  </slot>
105
144
  </div>
106
145
  </div>
@@ -111,40 +150,34 @@ s.styles = I;
111
150
  s.events = {
112
151
  didChange: "didChange"
113
152
  };
114
- r([
115
- t()
116
- ], s.prototype, "value", 2);
117
- r([
118
- t({ attribute: "value-as-number", type: Number })
119
- ], s.prototype, "valueAsNumber", 2);
120
- r([
121
- t({ reflect: !0 })
122
- ], s.prototype, "name", 2);
123
- r([
124
- t()
125
- ], s.prototype, "form", 2);
126
- r([
127
- t()
128
- ], s.prototype, "min", 2);
129
- r([
130
- t()
131
- ], s.prototype, "max", 2);
132
- r([
133
- t({ type: Boolean })
153
+ t([
154
+ a()
155
+ ], s.prototype, "value", 1);
156
+ t([
157
+ a({ attribute: "value-as-number", type: Number })
158
+ ], s.prototype, "valueAsNumber", 1);
159
+ t([
160
+ a()
161
+ ], s.prototype, "min", 1);
162
+ t([
163
+ a()
164
+ ], s.prototype, "max", 1);
165
+ t([
166
+ a({ type: Boolean })
134
167
  ], s.prototype, "readonly", 2);
135
- r([
136
- t({ attribute: "start-icon" })
168
+ t([
169
+ a({ attribute: "start-icon" })
137
170
  ], s.prototype, "startIcon", 2);
138
- r([
139
- t({ attribute: "end-icon" })
171
+ t([
172
+ a({ attribute: "end-icon" })
140
173
  ], s.prototype, "endIcon", 2);
141
- r([
142
- m()
174
+ t([
175
+ v()
143
176
  ], s.prototype, "_valueFraction", 2);
144
- s = r([
145
- p("sbb-slider"),
146
- y({
147
- role: "slider"
177
+ s = t([
178
+ m("sbb-slider"),
179
+ g({
180
+ tabindex: "0"
148
181
  })
149
182
  ], s);
150
183
  export {