@libs-ui/components-inputs-range-slider 0.2.136 → 0.2.138

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.
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, effect, input, model, output, signal, untracked, viewChild } from '@angular/core';
2
2
  import { viewDataNumberByLanguage } from '@libs-ui/utils';
3
3
  import { Subject, fromEvent } from 'rxjs';
4
- import { debounceTime, mergeMap, skip, take, takeUntil, tap } from 'rxjs/operators';
4
+ import { debounceTime, skip, takeUntil, tap } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
6
  export class LibsUiComponentsInputsRangeSliderComponent {
7
7
  // #region PROPERTY
@@ -30,6 +30,7 @@ export class LibsUiComponentsInputsRangeSliderComponent {
30
30
  rangeEl = viewChild('rangeEl');
31
31
  valueEl = viewChild('valueEl');
32
32
  maxValueEl = viewChild('maxValueEl');
33
+ minValueEl = viewChild('minValueEl');
33
34
  constructor() {
34
35
  effect(() => {
35
36
  this.onChange.next(this.value());
@@ -41,14 +42,16 @@ export class LibsUiComponentsInputsRangeSliderComponent {
41
42
  }
42
43
  /* FUNCTIONS */
43
44
  ngAfterViewInit() {
44
- const windowMouseUp = this.initEvent(window, 'mouseup').pipe(tap(() => this.focus.set(false)));
45
- const elementMouseDown = this.initEvent(this.rangeEl()?.nativeElement, 'mousedown').pipe(tap(() => this.focus.set(true)));
46
- const elementMouseUp = this.initEvent(this.rangeEl()?.nativeElement, 'click').pipe(take(1));
47
- const elementMouseMove = this.initEvent(this.rangeEl()?.nativeElement, 'mousemove').pipe(takeUntil(windowMouseUp));
48
- const drag = elementMouseDown.pipe(mergeMap(() => elementMouseMove));
49
- const click = elementMouseDown.pipe(mergeMap(() => elementMouseUp));
50
- drag.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
51
- click.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
45
+ this.initEvent(window, 'mouseup').pipe(tap(() => this.focus.set(false)));
46
+ this.initEvent(this.rangeEl()?.nativeElement, 'mousedown').pipe(tap(() => this.focus.set(true)));
47
+ // const elementMouseUp = this.initEvent(this.rangeEl()?.nativeElement, 'click').pipe(take(1));
48
+ // const elementMouseMove = this.initEvent(this.rangeEl()?.nativeElement, 'mousemove').pipe(takeUntil(windowMouseUp));
49
+ // const drag = elementMouseDown.pipe(mergeMap(() => elementMouseMove));
50
+ // const click = elementMouseDown.pipe(mergeMap(() => elementMouseUp));
51
+ // drag.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
52
+ // click.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
53
+ const inputChange = this.initEvent(this.rangeEl()?.nativeElement, 'input');
54
+ inputChange.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
52
55
  this.onChange.pipe(skip(this.mode() === 'audio' ? 1 : 0), debounceTime(250), takeUntil(this.onDestroy)).subscribe((value) => this.outChange.emit(value));
53
56
  this.calculatePosition();
54
57
  }
@@ -70,22 +73,25 @@ export class LibsUiComponentsInputsRangeSliderComponent {
70
73
  return;
71
74
  }
72
75
  const sliderContainer = this.containerEl()?.nativeElement.getBoundingClientRect();
73
- const progressing = this.max ? (this.value() / this.max()) : 0;
76
+ const progressing = this.max() ? ((this.value() - this.min()) / (this.max() - this.min())) : 0;
74
77
  if (this.hideProgressingValue()) {
75
78
  return;
76
79
  }
77
80
  const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();
78
81
  const rectMax = this.containerEl()?.nativeElement.getBoundingClientRect();
79
- this.position.set((sliderContainer.width * progressing) - ((rectValue.width) / 2) - (this.value() < 10 ? 5 : 4));
80
- const grandWidthValue = this.position + rectValue.width - rectMax.width;
82
+ this.position.set((sliderContainer.width * progressing) - ((rectValue.width) / 2) + ((progressing < 0.5 ? 1 : 0.5) - progressing) * 8);
83
+ const grandWidthValue = this.position() + rectValue.width - rectMax.width;
81
84
  if (grandWidthValue > 0) {
82
85
  this.position.update(value => value - grandWidthValue);
83
86
  }
84
- this.setVisibility();
87
+ setTimeout(() => {
88
+ this.setVisibility();
89
+ });
85
90
  }
86
91
  async setVisibility() {
87
92
  const rectMax = this.maxValueEl()?.nativeElement.getBoundingClientRect();
88
93
  const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();
94
+ const rectMin = this.minValueEl()?.nativeElement.getBoundingClientRect();
89
95
  this.visibilityMin.set(true);
90
96
  this.visibilityMax.set(true);
91
97
  if (!this.value()) {
@@ -95,7 +101,7 @@ export class LibsUiComponentsInputsRangeSliderComponent {
95
101
  if (rectValue.left + rectValue.width >= rectMax.left) {
96
102
  this.visibilityMax.set(false);
97
103
  }
98
- if (this.value() < this.min() + 1) {
104
+ if (rectValue.left <= (rectMin.width + rectMin.left)) {
99
105
  this.visibilityMin.set(false);
100
106
  }
101
107
  }
@@ -106,7 +112,8 @@ export class LibsUiComponentsInputsRangeSliderComponent {
106
112
  }
107
113
  const colorHover = getComputedStyle(element).getPropertyValue('--libs-ui-color-light-1');
108
114
  element.style.setProperty('--libs-ui-slider-border-box-shadow', `${colorHover}30`);
109
- element.style.setProperty('--libs-ui-slider-value', `${this.value() - 0.5}%`);
115
+ const percent = (100 * (this.value() - this.min()) / (this.max() - this.min()));
116
+ element.style.setProperty('--libs-ui-slider-value', `${percent}%`);
110
117
  }
111
118
  maxComputed() {
112
119
  if (this.formatNumber()) {
@@ -119,10 +126,10 @@ export class LibsUiComponentsInputsRangeSliderComponent {
119
126
  this.onDestroy.complete();
120
127
  }
121
128
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsRangeSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
122
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsRangeSliderComponent, isStandalone: true, selector: "libs_ui-components-inputs-range_slider", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, hideProgressingValue: { classPropertyName: "hideProgressingValue", publicName: "hideProgressingValue", isSignal: true, isRequired: false, transformFunction: null }, formatNumber: { classPropertyName: "formatNumber", publicName: "formatNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", outChange: "outChange" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true, isSignal: true }, { propertyName: "rangeEl", first: true, predicate: ["rangeEl"], descendants: true, isSignal: true }, { propertyName: "valueEl", first: true, predicate: ["valueEl"], descendants: true, isSignal: true }, { propertyName: "maxValueEl", first: true, predicate: ["maxValueEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsRangeSliderComponent, isStandalone: true, selector: "libs_ui-components-inputs-range_slider", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, hideProgressingValue: { classPropertyName: "hideProgressingValue", publicName: "hideProgressingValue", isSignal: true, isRequired: false, transformFunction: null }, formatNumber: { classPropertyName: "formatNumber", publicName: "formatNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", outChange: "outChange" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true, isSignal: true }, { propertyName: "rangeEl", first: true, predicate: ["rangeEl"], descendants: true, isSignal: true }, { propertyName: "valueEl", first: true, predicate: ["valueEl"], descendants: true, isSignal: true }, { propertyName: "maxValueEl", first: true, predicate: ["maxValueEl"], descendants: true, isSignal: true }, { propertyName: "minValueEl", first: true, predicate: ["minValueEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div #minValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
130
  }
124
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsRangeSliderComponent, decorators: [{
125
132
  type: Component,
126
- args: [{ selector: 'libs_ui-components-inputs-range_slider', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"] }]
133
+ args: [{ selector: 'libs_ui-components-inputs-range_slider', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div #minValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"] }]
127
134
  }], ctorParameters: () => [] });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3JhbmdlLXNsaWRlci9zcmMvaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3JhbmdlLXNsaWRlci9zcmMvaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvSyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFVcEYsTUFBTSxPQUFPLDBDQUEwQztJQUVyRCxtQkFBbUI7SUFDVCxhQUFhLEdBQUcsTUFBTSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3RDLGFBQWEsR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDdEMsUUFBUSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3QixLQUFLLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9CLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJ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QkFFRSx3Q0FBd0MsY0FHdEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2VNYXAsIHNraXAsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXJhbmdlX3NsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNSYW5nZVNsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgdmlzaWJpbGl0eU1pbiA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcHJvdGVjdGVkIHZpc2liaWxpdHlNYXggPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByb3RlY3RlZCBwb3NpdGlvbiA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgZm9jdXMgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgbWF4RGlzcGxheSA9IGNvbXB1dGVkKHRoaXMubWF4Q29tcHV0ZWQuYmluZCh0aGlzKSlcblxuICBwcml2YXRlIG9uQ2hhbmdlID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBtb2RlID0gaW5wdXQ8J2F1ZGlvJyB8ICdzbGlkZXInPignc2xpZGVyJyk7XG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PG51bWJlcj4oMSk7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgcmVhZG9ubHkgdmFsdWUgPSBtb2RlbDxudW1iZXI+KDApO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJ2xpYnMtdWktcmFuZ2Utc2xpZGVyLWNvbnRhaW5lcicsIHsgdHJhbnNmb3JtOiB2YWx1ZSA9PiB2YWx1ZSA/IGBsaWJzLXVpLXJhbmdlLXNsaWRlci1jb250YWluZXIgJHt2YWx1ZX1gIDogJ2xpYnMtdWktcmFuZ2Utc2xpZGVyLWNvbnRhaW5lcicgfSk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHVuaXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHN0ZXAgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBoaWRlUHJvZ3Jlc3NpbmdWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGZvcm1hdE51bWJlciA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlID0gb3V0cHV0PG51bWJlcj4oKTtcblxuICAvKiBWSUVXIENISUxEICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NvbnRhaW5lckVsJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmFuZ2VFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncmFuZ2VFbCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3ZhbHVlRWwnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXhWYWx1ZUVsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdtYXhWYWx1ZUVsJyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMub25DaGFuZ2UubmV4dCh0aGlzLnZhbHVlKCkpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRWYXJpYWJsZUNzcygpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgd2luZG93TW91c2VVcCA9IHRoaXMuaW5pdEV2ZW50KHdpbmRvdyBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50LCAnbW91c2V1cCcpLnBpcGUodGFwKCgpID0+IHRoaXMuZm9jdXMuc2V0KGZhbHNlKSkpO1xuICAgIGNvbnN0IGVsZW1lbnRNb3VzZURvd24gPSB0aGlzLmluaXRFdmVudCh0aGlzLnJhbmdlRWwoKT8ubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUodGFwKCgpID0+IHRoaXMuZm9jdXMuc2V0KHRydWUpKSk7XG4gICAgY29uc3QgZWxlbWVudE1vdXNlVXAgPSB0aGlzLmluaXRFdmVudCh0aGlzLnJhbmdlRWwoKT8ubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykucGlwZSh0YWtlKDEpKTtcbiAgICBjb25zdCBlbGVtZW50TW91c2VNb3ZlID0gdGhpcy5pbml0RXZlbnQodGhpcy5yYW5nZUVsKCk/Lm5hdGl2ZUVsZW1lbnQsICdtb3VzZW1vdmUnKS5waXBlKHRha2VVbnRpbCh3aW5kb3dNb3VzZVVwKSk7XG5cbiAgICBjb25zdCBkcmFnID0gZWxlbWVudE1vdXNlRG93bi5waXBlKG1lcmdlTWFwKCgpID0+IGVsZW1lbnRNb3VzZU1vdmUpKTtcbiAgICBjb25zdCBjbGljayA9IGVsZW1lbnRNb3VzZURvd24ucGlwZShtZXJnZU1hcCgoKSA9PiBlbGVtZW50TW91c2VVcCkpO1xuXG4gICAgZHJhZy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSh0aGlzLmhhbmRsZXJDaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgY2xpY2sucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy5oYW5kbGVyQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgIHRoaXMub25DaGFuZ2UucGlwZShza2lwKHRoaXMubW9kZSgpID09PSAnYXVkaW8nID8gMSA6IDApLCBkZWJvdW5jZVRpbWUoMjUwKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCh2YWx1ZTogbnVtYmVyKSA9PiB0aGlzLm91dENoYW5nZS5lbWl0KHZhbHVlKSk7XG4gICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RXZlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8SUV2ZW50PiB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxJRXZlbnQ+KGVsZW1lbnQsIG5hbWUpLnBpcGUodGFwKChlOiBJRXZlbnQpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCkpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlckNoYW5nZShldmVudDogSUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSB0aGlzLnZhbHVlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZS5zZXQoK2V2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMudmFsdWUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhbGN1bGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy5jb250YWluZXJFbCgpIHx8ICF0aGlzLnZhbHVlRWwoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzbGlkZXJDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lckVsKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcHJvZ3Jlc3NpbmcgPSB0aGlzLm1heCA/ICh0aGlzLnZhbHVlKCkgLyB0aGlzLm1heCgpKSA6IDA7XG5cbiAgICBpZiAodGhpcy5oaWRlUHJvZ3Jlc3NpbmdWYWx1ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlY3RWYWx1ZSA9IHRoaXMudmFsdWVFbCgpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHJlY3RNYXggPSB0aGlzLmNvbnRhaW5lckVsKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICB0aGlzLnBvc2l0aW9uLnNldCgoc2xpZGVyQ29udGFpbmVyLndpZHRoICogcHJvZ3Jlc3NpbmcpIC0gKChyZWN0VmFsdWUud2lkdGgpIC8gMikgLSAodGhpcy52YWx1ZSgpIDwgMTAgPyA1IDogNCkpO1xuICAgIGNvbnN0IGdyYW5kV2lkdGhWYWx1ZSA9IHRoaXMucG9zaXRpb24gKyByZWN0VmFsdWUud2lkdGggLSByZWN0TWF4LndpZHRoO1xuXG4gICAgaWYgKGdyYW5kV2lkdGhWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24udXBkYXRlKHZhbHVlID0+IHZhbHVlIC0gZ3JhbmRXaWR0aFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5zZXRWaXNpYmlsaXR5KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFZpc2liaWxpdHkoKSB7XG4gICAgY29uc3QgcmVjdE1heCA9IHRoaXMubWF4VmFsdWVFbCgpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHJlY3RWYWx1ZSA9IHRoaXMudmFsdWVFbCgpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgdGhpcy52aXNpYmlsaXR5TWluLnNldCh0cnVlKTtcbiAgICB0aGlzLnZpc2liaWxpdHlNYXguc2V0KHRydWUpO1xuICAgIGlmICghdGhpcy52YWx1ZSgpKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHlNaW4uc2V0KGZhbHNlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVjdFZhbHVlLmxlZnQgKyByZWN0VmFsdWUud2lkdGggPj0gcmVjdE1heC5sZWZ0KSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHlNYXguc2V0KGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUoKSA8IHRoaXMubWluKCkgKyAxKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHlNaW4uc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFZhcmlhYmxlQ3NzKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lckVsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29sb3JIb3ZlciA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTEnKTtcblxuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tbGlicy11aS1zbGlkZXItYm9yZGVyLWJveC1zaGFkb3cnLCBgJHtjb2xvckhvdmVyfTMwYCk7XG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1saWJzLXVpLXNsaWRlci12YWx1ZScsIGAke3RoaXMudmFsdWUoKSAtIDAuNX0lYCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWF4Q29tcHV0ZWQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybWF0TnVtYmVyKCkpIHtcbiAgICAgIHJldHVybiB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UodGhpcy5tYXgoKSwgdHJ1ZSwgMSwgZmFsc2UsIHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1heCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cblxufVxuIiwiPGRpdiBbY2xhc3NdPVwiY2xhc3NJbmNsdWRlKClcIlxuICBbc3R5bGUuaGVpZ2h0LnB4XT1cIm1vZGUoKSA9PT0gJ3NsaWRlcicgPyA0NCA6IDIyXCJcbiAgW2NsYXNzLnB0LVs0cHhdXT1cIm1vZGUoKSA9PT0gJ3NsaWRlcidcIlxuICAjY29udGFpbmVyRWw+XG4gIDxkaXYgW2NsYXNzLmhpZGRlbl09XCIhZm9jdXMoKVwiXG4gICAgY2xhc3M9XCJsaWJzLXVpLXJhbmdlLXNsaWRlci1pY29uLWFjdGl2ZVwiPlxuICA8L2Rpdj5cbiAgPGlucHV0ICNyYW5nZUVsXG4gICAgY2xhc3M9XCJsaWJzLXVpLXJhbmdlLXNsaWRlclwiXG4gICAgW2F0dHIubW9kZV09XCJtb2RlKClcIlxuICAgIFthdHRyLmZvY3VzXT1cImZvY3VzKClcIlxuICAgIFthdHRyLmRpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgW3R5cGVdPVwiJ3JhbmdlJ1wiXG4gICAgW21pbl09XCJtaW4oKVwiXG4gICAgW21heF09XCJtYXgoKVwiXG4gICAgW3N0ZXBdPVwic3RlcCgpXCI+XG4gIEBpZiAobW9kZSgpID09PSAnc2xpZGVyJykge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiByZWxhdGl2ZSBtdC1bOHB4XVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgdGV4dC1bIzljYTJhZF0gZmxleFwiXG4gICAgICAgIFtjbGFzcy5pbnZpc2libGVdPVwiIXZpc2liaWxpdHlNaW4oKVwiPlxuICAgICAgICB7eyBtaW4oKSB9fVxuICAgICAgICBAaWYgKHVuaXQoKSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1mb250LWg3ciB0ZXh0LVsjOWNhMmFkXVwiPnt7IHVuaXQoKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICN2YWx1ZUVsXG4gICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg3ciB0ZXh0LVsjOWNhMmFkXSBhYnNvbHV0ZSBib3R0b20tMCBmbGV4XCJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwicG9zaXRpb24oKVwiPlxuICAgICAgICBAaWYgKCFoaWRlUHJvZ3Jlc3NpbmdWYWx1ZSgpKSB7XG4gICAgICAgICAge3sgdmFsdWUoKSB9fVxuICAgICAgICAgIEBpZiAodW5pdCgpKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgdGV4dC1bIzljYTJhZF1cIj57eyB1bml0KCkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgI21heFZhbHVlRWxcbiAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDdyIHRleHQtWyM5Y2EyYWRdIGZsZXhcIlxuICAgICAgICBbY2xhc3MuaW52aXNpYmxlXT1cIiF2aXNpYmlsaXR5TWF4KClcIj5cbiAgICAgICAge3sgbWF4Q29tcHV0ZWQoKSB9fVxuICAgICAgICBAaWYgKHVuaXQoKSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1mb250LWg3ciB0ZXh0LVsjOWNhMmFkXVwiPnt7IHVuaXQoKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3JhbmdlLXNsaWRlci9zcmMvaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3JhbmdlLXNsaWRlci9zcmMvaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvSyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFZLElBQUksRUFBUSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVXBGLE1BQU0sT0FBTywwQ0FBMEM7SUFFckQsbUJBQW1CO0lBQ1QsYUFBYSxHQUFHLE1BQU0sQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUN0QyxhQUFhLEdBQUcsTUFBTSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsS0FBSyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMvQixVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFcEQsUUFBUSxHQUFHLElBQUks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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2VNYXAsIHNraXAsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXJhbmdlX3NsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnaW5wdXRzLXJhbmdlLXNsaWRlci5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNSYW5nZVNsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgdmlzaWJpbGl0eU1pbiA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcHJvdGVjdGVkIHZpc2liaWxpdHlNYXggPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByb3RlY3RlZCBwb3NpdGlvbiA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgZm9jdXMgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgbWF4RGlzcGxheSA9IGNvbXB1dGVkKHRoaXMubWF4Q29tcHV0ZWQuYmluZCh0aGlzKSlcblxuICBwcml2YXRlIG9uQ2hhbmdlID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBtb2RlID0gaW5wdXQ8J2F1ZGlvJyB8ICdzbGlkZXInPignc2xpZGVyJyk7XG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PG51bWJlcj4oMSk7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgcmVhZG9ubHkgdmFsdWUgPSBtb2RlbDxudW1iZXI+KDApO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJ2xpYnMtdWktcmFuZ2Utc2xpZGVyLWNvbnRhaW5lcicsIHsgdHJhbnNmb3JtOiB2YWx1ZSA9PiB2YWx1ZSA/IGBsaWJzLXVpLXJhbmdlLXNsaWRlci1jb250YWluZXIgJHt2YWx1ZX1gIDogJ2xpYnMtdWktcmFuZ2Utc2xpZGVyLWNvbnRhaW5lcicgfSk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHVuaXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHN0ZXAgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBoaWRlUHJvZ3Jlc3NpbmdWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGZvcm1hdE51bWJlciA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlID0gb3V0cHV0PG51bWJlcj4oKTtcblxuICAvKiBWSUVXIENISUxEICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NvbnRhaW5lckVsJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmFuZ2VFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncmFuZ2VFbCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3ZhbHVlRWwnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXhWYWx1ZUVsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdtYXhWYWx1ZUVsJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluVmFsdWVFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignbWluVmFsdWVFbCcpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLm5leHQodGhpcy52YWx1ZSgpKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VmFyaWFibGVDc3MoKTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEV2ZW50KHdpbmRvdyBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50LCAnbW91c2V1cCcpLnBpcGUodGFwKCgpID0+IHRoaXMuZm9jdXMuc2V0KGZhbHNlKSkpO1xuICAgIHRoaXMuaW5pdEV2ZW50KHRoaXMucmFuZ2VFbCgpPy5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJykucGlwZSh0YXAoKCkgPT4gdGhpcy5mb2N1cy5zZXQodHJ1ZSkpKTtcbiAgICAvLyBjb25zdCBlbGVtZW50TW91c2VVcCA9IHRoaXMuaW5pdEV2ZW50KHRoaXMucmFuZ2VFbCgpPy5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKHRha2UoMSkpO1xuICAgIC8vIGNvbnN0IGVsZW1lbnRNb3VzZU1vdmUgPSB0aGlzLmluaXRFdmVudCh0aGlzLnJhbmdlRWwoKT8ubmF0aXZlRWxlbWVudCwgJ21vdXNlbW92ZScpLnBpcGUodGFrZVVudGlsKHdpbmRvd01vdXNlVXApKTtcbiAgICAvLyBjb25zdCBkcmFnID0gZWxlbWVudE1vdXNlRG93bi5waXBlKG1lcmdlTWFwKCgpID0+IGVsZW1lbnRNb3VzZU1vdmUpKTtcbiAgICAvLyBjb25zdCBjbGljayA9IGVsZW1lbnRNb3VzZURvd24ucGlwZShtZXJnZU1hcCgoKSA9PiBlbGVtZW50TW91c2VVcCkpO1xuXG4gICAgLy8gZHJhZy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSh0aGlzLmhhbmRsZXJDaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgLy8gY2xpY2sucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy5oYW5kbGVyQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgIGNvbnN0IGlucHV0Q2hhbmdlID0gdGhpcy5pbml0RXZlbnQodGhpcy5yYW5nZUVsKCk/Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpO1xuXG4gICAgaW5wdXRDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy5oYW5kbGVyQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgIHRoaXMub25DaGFuZ2UucGlwZShza2lwKHRoaXMubW9kZSgpID09PSAnYXVkaW8nID8gMSA6IDApLCBkZWJvdW5jZVRpbWUoMjUwKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCh2YWx1ZTogbnVtYmVyKSA9PiB0aGlzLm91dENoYW5nZS5lbWl0KHZhbHVlKSk7XG4gICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RXZlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8SUV2ZW50PiB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxJRXZlbnQ+KGVsZW1lbnQsIG5hbWUpLnBpcGUodGFwKChlOiBJRXZlbnQpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCkpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlckNoYW5nZShldmVudDogSUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSB0aGlzLnZhbHVlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZS5zZXQoK2V2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMudmFsdWUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhbGN1bGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy5jb250YWluZXJFbCgpIHx8ICF0aGlzLnZhbHVlRWwoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzbGlkZXJDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lckVsKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcHJvZ3Jlc3NpbmcgPSB0aGlzLm1heCgpID8gKCh0aGlzLnZhbHVlKCkgLSB0aGlzLm1pbigpKSAvICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkpIDogMDtcblxuICAgIGlmICh0aGlzLmhpZGVQcm9ncmVzc2luZ1ZhbHVlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVjdFZhbHVlID0gdGhpcy52YWx1ZUVsKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcmVjdE1heCA9IHRoaXMuY29udGFpbmVyRWwoKT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHRoaXMucG9zaXRpb24uc2V0KChzbGlkZXJDb250YWluZXIud2lkdGggKiBwcm9ncmVzc2luZykgLSAoKHJlY3RWYWx1ZS53aWR0aCkgLyAyKSArICgocHJvZ3Jlc3NpbmcgPCAwLjUgPyAxIDogMC41KSAtIHByb2dyZXNzaW5nKSAqIDgpO1xuICAgIGNvbnN0IGdyYW5kV2lkdGhWYWx1ZSA9IHRoaXMucG9zaXRpb24oKSArIHJlY3RWYWx1ZS53aWR0aCAtIHJlY3RNYXgud2lkdGg7XG5cbiAgICBpZiAoZ3JhbmRXaWR0aFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5wb3NpdGlvbi51cGRhdGUodmFsdWUgPT4gdmFsdWUgLSBncmFuZFdpZHRoVmFsdWUpO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0VmlzaWJpbGl0eSgpO1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFZpc2liaWxpdHkoKSB7XG4gICAgY29uc3QgcmVjdE1heCA9IHRoaXMubWF4VmFsdWVFbCgpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHJlY3RWYWx1ZSA9IHRoaXMudmFsdWVFbCgpPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHJlY3RNaW4gPSB0aGlzLm1pblZhbHVlRWwoKT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHRoaXMudmlzaWJpbGl0eU1pbi5zZXQodHJ1ZSk7XG4gICAgdGhpcy52aXNpYmlsaXR5TWF4LnNldCh0cnVlKTtcbiAgICBpZiAoIXRoaXMudmFsdWUoKSkge1xuICAgICAgdGhpcy52aXNpYmlsaXR5TWluLnNldChmYWxzZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHJlY3RWYWx1ZS5sZWZ0ICsgcmVjdFZhbHVlLndpZHRoID49IHJlY3RNYXgubGVmdCkge1xuICAgICAgdGhpcy52aXNpYmlsaXR5TWF4LnNldChmYWxzZSk7XG4gICAgfVxuICAgIGlmIChyZWN0VmFsdWUubGVmdCA8PSAocmVjdE1pbi53aWR0aCArIHJlY3RNaW4ubGVmdCkpIHtcbiAgICAgIHRoaXMudmlzaWJpbGl0eU1pbi5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2V0VmFyaWFibGVDc3MoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY29udGFpbmVyRWwoKT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb2xvckhvdmVyID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWxpYnMtdWktY29sb3ItbGlnaHQtMScpO1xuXG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1saWJzLXVpLXNsaWRlci1ib3JkZXItYm94LXNoYWRvdycsIGAke2NvbG9ySG92ZXJ9MzBgKTtcbiAgICBjb25zdCBwZXJjZW50ID0gKDEwMCAqICh0aGlzLnZhbHVlKCkgLSB0aGlzLm1pbigpKSAvICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkpXG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1saWJzLXVpLXNsaWRlci12YWx1ZScsIGAke3BlcmNlbnR9JWApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1heENvbXB1dGVkKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdE51bWJlcigpKSB7XG4gICAgICByZXR1cm4gdmlld0RhdGFOdW1iZXJCeUxhbmd1YWdlKHRoaXMubWF4KCksIHRydWUsIDEsIGZhbHNlLCB0cnVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYXgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgW2NsYXNzXT1cImNsYXNzSW5jbHVkZSgpXCJcbiAgW3N0eWxlLmhlaWdodC5weF09XCJtb2RlKCkgPT09ICdzbGlkZXInID8gNDQgOiAyMlwiXG4gIFtjbGFzcy5wdC1bNHB4XV09XCJtb2RlKCkgPT09ICdzbGlkZXInXCJcbiAgI2NvbnRhaW5lckVsPlxuICA8ZGl2IFtjbGFzcy5oaWRkZW5dPVwiIWZvY3VzKClcIlxuICAgIGNsYXNzPVwibGlicy11aS1yYW5nZS1zbGlkZXItaWNvbi1hY3RpdmVcIj5cbiAgPC9kaXY+XG4gIDxpbnB1dCAjcmFuZ2VFbFxuICAgIGNsYXNzPVwibGlicy11aS1yYW5nZS1zbGlkZXJcIlxuICAgIFthdHRyLm1vZGVdPVwibW9kZSgpXCJcbiAgICBbYXR0ci5mb2N1c109XCJmb2N1cygpXCJcbiAgICBbYXR0ci5kaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlKClcIlxuICAgIFt0eXBlXT1cIidyYW5nZSdcIlxuICAgIFttaW5dPVwibWluKClcIlxuICAgIFttYXhdPVwibWF4KClcIlxuICAgIFtzdGVwXT1cInN0ZXAoKVwiPlxuICBAaWYgKG1vZGUoKSA9PT0gJ3NsaWRlcicpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gcmVsYXRpdmUgbXQtWzhweF1cIj5cbiAgICAgIDxkaXYgI21pblZhbHVlRWxcbiAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDdyIHRleHQtWyM5Y2EyYWRdIGZsZXhcIlxuICAgICAgICBbY2xhc3MuaW52aXNpYmxlXT1cIiF2aXNpYmlsaXR5TWluKClcIj5cbiAgICAgICAge3sgbWluKCkgfX1cbiAgICAgICAgQGlmICh1bml0KCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgdGV4dC1bIzljYTJhZF1cIj57eyB1bml0KCkgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAjdmFsdWVFbFxuICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgdGV4dC1bIzljYTJhZF0gYWJzb2x1dGUgYm90dG9tLTAgZmxleFwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInBvc2l0aW9uKClcIj5cbiAgICAgICAgQGlmICghaGlkZVByb2dyZXNzaW5nVmFsdWUoKSkge1xuICAgICAgICAgIHt7IHZhbHVlKCkgfX1cbiAgICAgICAgICBAaWYgKHVuaXQoKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDdyIHRleHQtWyM5Y2EyYWRdXCI+e3sgdW5pdCgpIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICNtYXhWYWx1ZUVsXG4gICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg3ciB0ZXh0LVsjOWNhMmFkXSBmbGV4XCJcbiAgICAgICAgW2NsYXNzLmludmlzaWJsZV09XCIhdmlzaWJpbGl0eU1heCgpXCI+XG4gICAgICAgIHt7IG1heENvbXB1dGVkKCkgfX1cbiAgICAgICAgQGlmICh1bml0KCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgdGV4dC1bIzljYTJhZF1cIj57eyB1bml0KCkgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { signal, computed, input, model, output, viewChild, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { viewDataNumberByLanguage } from '@libs-ui/utils';
4
4
  import { Subject, fromEvent } from 'rxjs';
5
- import { tap, take, takeUntil, mergeMap, skip, debounceTime } from 'rxjs/operators';
5
+ import { tap, takeUntil, skip, debounceTime } from 'rxjs/operators';
6
6
 
7
7
  class LibsUiComponentsInputsRangeSliderComponent {
8
8
  // #region PROPERTY
@@ -31,6 +31,7 @@ class LibsUiComponentsInputsRangeSliderComponent {
31
31
  rangeEl = viewChild('rangeEl');
32
32
  valueEl = viewChild('valueEl');
33
33
  maxValueEl = viewChild('maxValueEl');
34
+ minValueEl = viewChild('minValueEl');
34
35
  constructor() {
35
36
  effect(() => {
36
37
  this.onChange.next(this.value());
@@ -42,14 +43,16 @@ class LibsUiComponentsInputsRangeSliderComponent {
42
43
  }
43
44
  /* FUNCTIONS */
44
45
  ngAfterViewInit() {
45
- const windowMouseUp = this.initEvent(window, 'mouseup').pipe(tap(() => this.focus.set(false)));
46
- const elementMouseDown = this.initEvent(this.rangeEl()?.nativeElement, 'mousedown').pipe(tap(() => this.focus.set(true)));
47
- const elementMouseUp = this.initEvent(this.rangeEl()?.nativeElement, 'click').pipe(take(1));
48
- const elementMouseMove = this.initEvent(this.rangeEl()?.nativeElement, 'mousemove').pipe(takeUntil(windowMouseUp));
49
- const drag = elementMouseDown.pipe(mergeMap(() => elementMouseMove));
50
- const click = elementMouseDown.pipe(mergeMap(() => elementMouseUp));
51
- drag.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
52
- click.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
46
+ this.initEvent(window, 'mouseup').pipe(tap(() => this.focus.set(false)));
47
+ this.initEvent(this.rangeEl()?.nativeElement, 'mousedown').pipe(tap(() => this.focus.set(true)));
48
+ // const elementMouseUp = this.initEvent(this.rangeEl()?.nativeElement, 'click').pipe(take(1));
49
+ // const elementMouseMove = this.initEvent(this.rangeEl()?.nativeElement, 'mousemove').pipe(takeUntil(windowMouseUp));
50
+ // const drag = elementMouseDown.pipe(mergeMap(() => elementMouseMove));
51
+ // const click = elementMouseDown.pipe(mergeMap(() => elementMouseUp));
52
+ // drag.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
53
+ // click.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
54
+ const inputChange = this.initEvent(this.rangeEl()?.nativeElement, 'input');
55
+ inputChange.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));
53
56
  this.onChange.pipe(skip(this.mode() === 'audio' ? 1 : 0), debounceTime(250), takeUntil(this.onDestroy)).subscribe((value) => this.outChange.emit(value));
54
57
  this.calculatePosition();
55
58
  }
@@ -71,22 +74,25 @@ class LibsUiComponentsInputsRangeSliderComponent {
71
74
  return;
72
75
  }
73
76
  const sliderContainer = this.containerEl()?.nativeElement.getBoundingClientRect();
74
- const progressing = this.max ? (this.value() / this.max()) : 0;
77
+ const progressing = this.max() ? ((this.value() - this.min()) / (this.max() - this.min())) : 0;
75
78
  if (this.hideProgressingValue()) {
76
79
  return;
77
80
  }
78
81
  const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();
79
82
  const rectMax = this.containerEl()?.nativeElement.getBoundingClientRect();
80
- this.position.set((sliderContainer.width * progressing) - ((rectValue.width) / 2) - (this.value() < 10 ? 5 : 4));
81
- const grandWidthValue = this.position + rectValue.width - rectMax.width;
83
+ this.position.set((sliderContainer.width * progressing) - ((rectValue.width) / 2) + ((progressing < 0.5 ? 1 : 0.5) - progressing) * 8);
84
+ const grandWidthValue = this.position() + rectValue.width - rectMax.width;
82
85
  if (grandWidthValue > 0) {
83
86
  this.position.update(value => value - grandWidthValue);
84
87
  }
85
- this.setVisibility();
88
+ setTimeout(() => {
89
+ this.setVisibility();
90
+ });
86
91
  }
87
92
  async setVisibility() {
88
93
  const rectMax = this.maxValueEl()?.nativeElement.getBoundingClientRect();
89
94
  const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();
95
+ const rectMin = this.minValueEl()?.nativeElement.getBoundingClientRect();
90
96
  this.visibilityMin.set(true);
91
97
  this.visibilityMax.set(true);
92
98
  if (!this.value()) {
@@ -96,7 +102,7 @@ class LibsUiComponentsInputsRangeSliderComponent {
96
102
  if (rectValue.left + rectValue.width >= rectMax.left) {
97
103
  this.visibilityMax.set(false);
98
104
  }
99
- if (this.value() < this.min() + 1) {
105
+ if (rectValue.left <= (rectMin.width + rectMin.left)) {
100
106
  this.visibilityMin.set(false);
101
107
  }
102
108
  }
@@ -107,7 +113,8 @@ class LibsUiComponentsInputsRangeSliderComponent {
107
113
  }
108
114
  const colorHover = getComputedStyle(element).getPropertyValue('--libs-ui-color-light-1');
109
115
  element.style.setProperty('--libs-ui-slider-border-box-shadow', `${colorHover}30`);
110
- element.style.setProperty('--libs-ui-slider-value', `${this.value() - 0.5}%`);
116
+ const percent = (100 * (this.value() - this.min()) / (this.max() - this.min()));
117
+ element.style.setProperty('--libs-ui-slider-value', `${percent}%`);
111
118
  }
112
119
  maxComputed() {
113
120
  if (this.formatNumber()) {
@@ -120,11 +127,11 @@ class LibsUiComponentsInputsRangeSliderComponent {
120
127
  this.onDestroy.complete();
121
128
  }
122
129
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsRangeSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsRangeSliderComponent, isStandalone: true, selector: "libs_ui-components-inputs-range_slider", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, hideProgressingValue: { classPropertyName: "hideProgressingValue", publicName: "hideProgressingValue", isSignal: true, isRequired: false, transformFunction: null }, formatNumber: { classPropertyName: "formatNumber", publicName: "formatNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", outChange: "outChange" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true, isSignal: true }, { propertyName: "rangeEl", first: true, predicate: ["rangeEl"], descendants: true, isSignal: true }, { propertyName: "valueEl", first: true, predicate: ["valueEl"], descendants: true, isSignal: true }, { propertyName: "maxValueEl", first: true, predicate: ["maxValueEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
130
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsRangeSliderComponent, isStandalone: true, selector: "libs_ui-components-inputs-range_slider", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, hideProgressingValue: { classPropertyName: "hideProgressingValue", publicName: "hideProgressingValue", isSignal: true, isRequired: false, transformFunction: null }, formatNumber: { classPropertyName: "formatNumber", publicName: "formatNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", outChange: "outChange" }, viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerEl"], descendants: true, isSignal: true }, { propertyName: "rangeEl", first: true, predicate: ["rangeEl"], descendants: true, isSignal: true }, { propertyName: "valueEl", first: true, predicate: ["valueEl"], descendants: true, isSignal: true }, { propertyName: "maxValueEl", first: true, predicate: ["maxValueEl"], descendants: true, isSignal: true }, { propertyName: "minValueEl", first: true, predicate: ["minValueEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div #minValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
131
  }
125
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsRangeSliderComponent, decorators: [{
126
133
  type: Component,
127
- args: [{ selector: 'libs_ui-components-inputs-range_slider', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"] }]
134
+ args: [{ selector: 'libs_ui-components-inputs-range_slider', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div #minValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".libs-ui-range-slider-container{width:100%;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--libs-ui-color-default, #226FF5) 0%,var(--libs-ui-color-default, #226FF5) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) var(--libs-ui-slider-value),var(--libs-ui-color-light-3, #e9f1fe) 100%);outline:none;border-radius:4px}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;border:solid 2px var(--libs-ui-color-default);z-index:3;position:relative}.libs-ui-range-slider-container .libs-ui-range-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb{width:16px;height:16px;background:#fff;border-radius:50%;cursor:pointer;box-shadow:0 1px 2px #4e4e4e4d;border:solid 2px var(--libs-ui-color-default);z-index:3}.libs-ui-range-slider-container .libs-ui-range-slider::-moz-range-thumb:hover{box-shadow:0 0 0 8px var(--libs-ui-slider-border-box-shadow, rgba(78, 140, 247, .1882352941))}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]{background:linear-gradient(to right,#071631 0%,#071631 var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-webkit-slider-thumb{display:none}.libs-ui-range-slider-container .libs-ui-range-slider[mode=media]::-moz-range-thumb{width:0;height:0;border:none}.libs-ui-range-slider-container .libs-ui-range-slider:hover,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true]{background:linear-gradient(to right,var(--libs-ui-color-light-1, #4E8CF7) 0%,var(--libs-ui-color-light-1, #4E8CF7) var(--libs-ui-slider-value),#CDD0D6 var(--libs-ui-slider-value),#CDD0D6 100%)}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-webkit-slider-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-webkit-slider-thumb{display:block}.libs-ui-range-slider-container .libs-ui-range-slider:hover[mode=media]::-moz-range-thumb,.libs-ui-range-slider-container .libs-ui-range-slider[focus=true][mode=media]::-moz-range-thumb{width:16px;height:16px;border:solid 2px var(--libs-ui-color-default)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true]{pointer-events:none;background:linear-gradient(to right,#CDD0D6 0%,#CDD0D6 var(--libs-ui-slider-value),#E6E7EA var(--libs-ui-slider-value),#E6E7EA 100%)}.libs-ui-range-slider-container .libs-ui-range-slider[disable=true].libs-ui-range-slider::-webkit-slider-thumb{border:solid 2px #CDD0D6}\n"] }]
128
135
  }], ctorParameters: () => [] });
129
136
 
130
137
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-inputs-range-slider.mjs","sources":["../../../../../../libs-ui/components/inputs/range-slider/src/inputs-range-slider.component.ts","../../../../../../libs-ui/components/inputs/range-slider/src/inputs-range-slider.component.html","../../../../../../libs-ui/components/inputs/range-slider/src/libs-ui-components-inputs-range-slider.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, OnDestroy, computed, effect, input, model, output, signal, untracked, viewChild } from '@angular/core';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { viewDataNumberByLanguage } from '@libs-ui/utils';\nimport { Observable, Subject, fromEvent } from 'rxjs';\nimport { debounceTime, mergeMap, skip, take, takeUntil, tap } from 'rxjs/operators';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-range_slider',\n templateUrl: 'inputs-range-slider.component.html',\n styleUrl: 'inputs-range-slider.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsRangeSliderComponent implements AfterViewInit, OnDestroy {\n\n // #region PROPERTY\n protected visibilityMin = signal<boolean>(true);\n protected visibilityMax = signal<boolean>(true);\n protected position = signal<number>(0);\n protected focus = signal<boolean>(false);\n protected maxDisplay = computed(this.maxComputed.bind(this))\n\n private onChange = new Subject<number>();\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly mode = input<'audio' | 'slider'>('slider');\n readonly min = input<number>(1);\n readonly max = input<number>(100);\n readonly value = model<number>(0);\n readonly classInclude = input<string, string | undefined>('libs-ui-range-slider-container', { transform: value => value ? `libs-ui-range-slider-container ${value}` : 'libs-ui-range-slider-container' });\n readonly disable = input<boolean>(false);\n readonly unit = input<string>();\n readonly step = input<number>(0);\n readonly hideProgressingValue = input<boolean>();\n readonly formatNumber = input<boolean>();\n\n // #region OUTPUT\n readonly outChange = output<number>();\n\n /* VIEW CHILD */\n private readonly containerEl = viewChild<ElementRef>('containerEl');\n private readonly rangeEl = viewChild<ElementRef>('rangeEl');\n private readonly valueEl = viewChild<ElementRef>('valueEl');\n private readonly maxValueEl = viewChild<ElementRef>('maxValueEl');\n\n constructor() {\n effect(() => {\n this.onChange.next(this.value());\n untracked(() => {\n this.setVariableCss();\n this.calculatePosition();\n });\n });\n }\n\n /* FUNCTIONS */\n ngAfterViewInit(): void {\n const windowMouseUp = this.initEvent(window as unknown as HTMLElement, 'mouseup').pipe(tap(() => this.focus.set(false)));\n const elementMouseDown = this.initEvent(this.rangeEl()?.nativeElement, 'mousedown').pipe(tap(() => this.focus.set(true)));\n const elementMouseUp = this.initEvent(this.rangeEl()?.nativeElement, 'click').pipe(take(1));\n const elementMouseMove = this.initEvent(this.rangeEl()?.nativeElement, 'mousemove').pipe(takeUntil(windowMouseUp));\n\n const drag = elementMouseDown.pipe(mergeMap(() => elementMouseMove));\n const click = elementMouseDown.pipe(mergeMap(() => elementMouseUp));\n\n drag.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));\n click.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));\n this.onChange.pipe(skip(this.mode() === 'audio' ? 1 : 0), debounceTime(250), takeUntil(this.onDestroy)).subscribe((value: number) => this.outChange.emit(value));\n this.calculatePosition();\n }\n\n private initEvent(element: HTMLElement, name: string): Observable<IEvent> {\n return fromEvent<IEvent>(element, name).pipe(tap((e: IEvent) => e.stopPropagation()), takeUntil(this.onDestroy));\n }\n\n private async handlerChange(event: IEvent) {\n if (this.disable()) {\n event.preventDefault();\n event.stopPropagation();\n event.target.value = this.value();\n\n return;\n }\n this.value.set(+event.target.value);\n this.onChange.next(this.value());\n }\n\n private async calculatePosition() {\n if (!this.containerEl() || !this.valueEl()) {\n return;\n }\n const sliderContainer = this.containerEl()?.nativeElement.getBoundingClientRect();\n const progressing = this.max ? (this.value() / this.max()) : 0;\n\n if (this.hideProgressingValue()) {\n return;\n }\n const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();\n const rectMax = this.containerEl()?.nativeElement.getBoundingClientRect();\n\n this.position.set((sliderContainer.width * progressing) - ((rectValue.width) / 2) - (this.value() < 10 ? 5 : 4));\n const grandWidthValue = this.position + rectValue.width - rectMax.width;\n\n if (grandWidthValue > 0) {\n this.position.update(value => value - grandWidthValue);\n }\n this.setVisibility();\n }\n\n private async setVisibility() {\n const rectMax = this.maxValueEl()?.nativeElement.getBoundingClientRect();\n const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();\n\n this.visibilityMin.set(true);\n this.visibilityMax.set(true);\n if (!this.value()) {\n this.visibilityMin.set(false);\n\n return;\n }\n if (rectValue.left + rectValue.width >= rectMax.left) {\n this.visibilityMax.set(false);\n }\n if (this.value() < this.min() + 1) {\n this.visibilityMin.set(false);\n }\n }\n\n private async setVariableCss() {\n const element = this.containerEl()?.nativeElement;\n\n if (!element) {\n return;\n }\n const colorHover = getComputedStyle(element).getPropertyValue('--libs-ui-color-light-1');\n\n element.style.setProperty('--libs-ui-slider-border-box-shadow', `${colorHover}30`);\n element.style.setProperty('--libs-ui-slider-value', `${this.value() - 0.5}%`);\n }\n\n protected maxComputed() {\n if (this.formatNumber()) {\n return viewDataNumberByLanguage(this.max(), true, 1, false, true);\n }\n\n return this.max();\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}\n","<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-inputs-range-slider.mjs","sources":["../../../../../../libs-ui/components/inputs/range-slider/src/inputs-range-slider.component.ts","../../../../../../libs-ui/components/inputs/range-slider/src/inputs-range-slider.component.html","../../../../../../libs-ui/components/inputs/range-slider/src/libs-ui-components-inputs-range-slider.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, OnDestroy, computed, effect, input, model, output, signal, untracked, viewChild } from '@angular/core';\nimport { IEvent } from '@libs-ui/interfaces-types';\nimport { viewDataNumberByLanguage } from '@libs-ui/utils';\nimport { Observable, Subject, fromEvent } from 'rxjs';\nimport { debounceTime, mergeMap, skip, take, takeUntil, tap } from 'rxjs/operators';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-range_slider',\n templateUrl: 'inputs-range-slider.component.html',\n styleUrl: 'inputs-range-slider.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsRangeSliderComponent implements AfterViewInit, OnDestroy {\n\n // #region PROPERTY\n protected visibilityMin = signal<boolean>(true);\n protected visibilityMax = signal<boolean>(true);\n protected position = signal<number>(0);\n protected focus = signal<boolean>(false);\n protected maxDisplay = computed(this.maxComputed.bind(this))\n\n private onChange = new Subject<number>();\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly mode = input<'audio' | 'slider'>('slider');\n readonly min = input<number>(1);\n readonly max = input<number>(100);\n readonly value = model<number>(0);\n readonly classInclude = input<string, string | undefined>('libs-ui-range-slider-container', { transform: value => value ? `libs-ui-range-slider-container ${value}` : 'libs-ui-range-slider-container' });\n readonly disable = input<boolean>(false);\n readonly unit = input<string>();\n readonly step = input<number>(0);\n readonly hideProgressingValue = input<boolean>();\n readonly formatNumber = input<boolean>();\n\n // #region OUTPUT\n readonly outChange = output<number>();\n\n /* VIEW CHILD */\n private readonly containerEl = viewChild<ElementRef>('containerEl');\n private readonly rangeEl = viewChild<ElementRef>('rangeEl');\n private readonly valueEl = viewChild<ElementRef>('valueEl');\n private readonly maxValueEl = viewChild<ElementRef>('maxValueEl');\n private readonly minValueEl = viewChild<ElementRef>('minValueEl');\n\n constructor() {\n effect(() => {\n this.onChange.next(this.value());\n untracked(() => {\n this.setVariableCss();\n this.calculatePosition();\n });\n });\n }\n\n /* FUNCTIONS */\n ngAfterViewInit(): void {\n this.initEvent(window as unknown as HTMLElement, 'mouseup').pipe(tap(() => this.focus.set(false)));\n this.initEvent(this.rangeEl()?.nativeElement, 'mousedown').pipe(tap(() => this.focus.set(true)));\n // const elementMouseUp = this.initEvent(this.rangeEl()?.nativeElement, 'click').pipe(take(1));\n // const elementMouseMove = this.initEvent(this.rangeEl()?.nativeElement, 'mousemove').pipe(takeUntil(windowMouseUp));\n // const drag = elementMouseDown.pipe(mergeMap(() => elementMouseMove));\n // const click = elementMouseDown.pipe(mergeMap(() => elementMouseUp));\n\n // drag.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));\n // click.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));\n const inputChange = this.initEvent(this.rangeEl()?.nativeElement, 'input');\n\n inputChange.pipe(takeUntil(this.onDestroy)).subscribe(this.handlerChange.bind(this));\n this.onChange.pipe(skip(this.mode() === 'audio' ? 1 : 0), debounceTime(250), takeUntil(this.onDestroy)).subscribe((value: number) => this.outChange.emit(value));\n this.calculatePosition();\n }\n\n private initEvent(element: HTMLElement, name: string): Observable<IEvent> {\n return fromEvent<IEvent>(element, name).pipe(tap((e: IEvent) => e.stopPropagation()), takeUntil(this.onDestroy));\n }\n\n private async handlerChange(event: IEvent) {\n if (this.disable()) {\n event.preventDefault();\n event.stopPropagation();\n event.target.value = this.value();\n\n return;\n }\n this.value.set(+event.target.value);\n this.onChange.next(this.value());\n }\n\n private async calculatePosition() {\n if (!this.containerEl() || !this.valueEl()) {\n return;\n }\n const sliderContainer = this.containerEl()?.nativeElement.getBoundingClientRect();\n const progressing = this.max() ? ((this.value() - this.min()) / (this.max() - this.min())) : 0;\n\n if (this.hideProgressingValue()) {\n return;\n }\n const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();\n const rectMax = this.containerEl()?.nativeElement.getBoundingClientRect();\n\n this.position.set((sliderContainer.width * progressing) - ((rectValue.width) / 2) + ((progressing < 0.5 ? 1 : 0.5) - progressing) * 8);\n const grandWidthValue = this.position() + rectValue.width - rectMax.width;\n\n if (grandWidthValue > 0) {\n this.position.update(value => value - grandWidthValue);\n }\n setTimeout(() => {\n this.setVisibility();\n })\n }\n\n private async setVisibility() {\n const rectMax = this.maxValueEl()?.nativeElement.getBoundingClientRect();\n const rectValue = this.valueEl()?.nativeElement.getBoundingClientRect();\n const rectMin = this.minValueEl()?.nativeElement.getBoundingClientRect();\n\n this.visibilityMin.set(true);\n this.visibilityMax.set(true);\n if (!this.value()) {\n this.visibilityMin.set(false);\n\n return;\n }\n if (rectValue.left + rectValue.width >= rectMax.left) {\n this.visibilityMax.set(false);\n }\n if (rectValue.left <= (rectMin.width + rectMin.left)) {\n this.visibilityMin.set(false);\n }\n }\n\n private async setVariableCss() {\n const element = this.containerEl()?.nativeElement;\n\n if (!element) {\n return;\n }\n const colorHover = getComputedStyle(element).getPropertyValue('--libs-ui-color-light-1');\n\n element.style.setProperty('--libs-ui-slider-border-box-shadow', `${colorHover}30`);\n const percent = (100 * (this.value() - this.min()) / (this.max() - this.min()))\n element.style.setProperty('--libs-ui-slider-value', `${percent}%`);\n }\n\n protected maxComputed() {\n if (this.formatNumber()) {\n return viewDataNumberByLanguage(this.max(), true, 1, false, true);\n }\n\n return this.max();\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}\n","<div [class]=\"classInclude()\"\n [style.height.px]=\"mode() === 'slider' ? 44 : 22\"\n [class.pt-[4px]]=\"mode() === 'slider'\"\n #containerEl>\n <div [class.hidden]=\"!focus()\"\n class=\"libs-ui-range-slider-icon-active\">\n </div>\n <input #rangeEl\n class=\"libs-ui-range-slider\"\n [attr.mode]=\"mode()\"\n [attr.focus]=\"focus()\"\n [attr.disable]=\"disable()\"\n [value]=\"value()\"\n [type]=\"'range'\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\">\n @if (mode() === 'slider') {\n <div class=\"flex justify-between relative mt-[8px]\">\n <div #minValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMin()\">\n {{ min() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n <div #valueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] absolute bottom-0 flex\"\n [style.left.px]=\"position()\">\n @if (!hideProgressingValue()) {\n {{ value() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n }\n </div>\n <div #maxValueEl\n class=\"libs-ui-font-h7r text-[#9ca2ad] flex\"\n [class.invisible]=\"!visibilityMax()\">\n {{ maxComputed() }}\n @if (unit()) {\n <span class=\"libs-ui-font-h7r text-[#9ca2ad]\">{{ unit() }}</span>\n }\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export declare class LibsUiComponentsInputsRangeSliderComponent implements After
23
23
  private readonly rangeEl;
24
24
  private readonly valueEl;
25
25
  private readonly maxValueEl;
26
+ private readonly minValueEl;
26
27
  constructor();
27
28
  ngAfterViewInit(): void;
28
29
  private initEvent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libs-ui/components-inputs-range-slider",
3
- "version": "0.2.136",
3
+ "version": "0.2.138",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"