rm-range-slider 0.0.1 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -85
- package/esm2022/lib/rm-range-slider.component.mjs +140 -0
- package/esm2022/public-api.mjs +5 -0
- package/{esm2020 → esm2022}/rm-range-slider.mjs +4 -4
- package/fesm2022/rm-range-slider.mjs +151 -0
- package/fesm2022/rm-range-slider.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/rm-range-slider.component.d.ts +48 -82
- package/package.json +10 -15
- package/public-api.d.ts +1 -3
- package/esm2020/lib/rm-range-slider.component.interface.mjs +0 -2
- package/esm2020/lib/rm-range-slider.component.mjs +0 -317
- package/esm2020/lib/rm-range-slider.module.mjs +0 -19
- package/esm2020/public-api.mjs +0 -7
- package/fesm2015/rm-range-slider.mjs +0 -351
- package/fesm2015/rm-range-slider.mjs.map +0 -1
- package/fesm2020/rm-range-slider.mjs +0 -343
- package/fesm2020/rm-range-slider.mjs.map +0 -1
- package/lib/rm-range-slider.component.interface.d.ts +0 -4
- package/lib/rm-range-slider.module.d.ts +0 -9
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import { __classPrivateFieldGet } from 'tslib';
|
|
2
|
-
import * as i0 from '@angular/core';
|
|
3
|
-
import { EventEmitter, ElementRef, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
|
|
4
|
-
import * as i1 from '@angular/forms';
|
|
5
|
-
import { Validators, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { Subject, interval, takeUntil } from 'rxjs';
|
|
7
|
-
import * as i2 from '@angular/common';
|
|
8
|
-
import { CommonModule } from '@angular/common';
|
|
9
|
-
|
|
10
|
-
var _RmRangeSliderComponent_instances, _RmRangeSliderComponent_createFrom, _RmRangeSliderComponent_onFormValueChange, _RmRangeSliderComponent_controlFromSlider, _RmRangeSliderComponent_controlToSlider, _RmRangeSliderComponent_fillSlider, _RmRangeSliderComponent_getFormValue, _RmRangeSliderComponent_setToggleAccessible, _RmRangeSliderComponent_getParsed, _RmRangeSliderComponent_disabledSlider, _RmRangeSliderComponent_changeThumbColorOnDisabled;
|
|
11
|
-
class RmRangeSliderComponent {
|
|
12
|
-
/**
|
|
13
|
-
* The constructor function is a special function that is called when a new instance of the class is created
|
|
14
|
-
* @param {FormBuilder} fb - FormBuilder - This is the FormBuilder service that we'll use to create our form.
|
|
15
|
-
* @param {Renderer2} renderer - Renderer2 - This is the Angular Renderer2 service. It's used to manipulate the DOM.
|
|
16
|
-
*/
|
|
17
|
-
constructor(fb, renderer) {
|
|
18
|
-
this.fb = fb;
|
|
19
|
-
this.renderer = renderer;
|
|
20
|
-
_RmRangeSliderComponent_instances.add(this);
|
|
21
|
-
this.min = 0;
|
|
22
|
-
this.max = 100;
|
|
23
|
-
this.setMinValue = 0;
|
|
24
|
-
this.disabled = false;
|
|
25
|
-
this.showToolTip = false;
|
|
26
|
-
this.setMaxValue = 100;
|
|
27
|
-
this.showScale = false;
|
|
28
|
-
this.doubleSlider = true;
|
|
29
|
-
this.toolTipColor = '#8a00e5';
|
|
30
|
-
this.toolTipColorHover = '#8a00e5';
|
|
31
|
-
this.toolTipColorHoverShadow = '#8a00e5';
|
|
32
|
-
this.rangeColor = 'rgba(255,255,255,0.99)';
|
|
33
|
-
this.sliderColor = 'rgba(255,255,255,0.47)';
|
|
34
|
-
this.sliderColorRight = 'rgb(198, 198, 198)';
|
|
35
|
-
this.onValueChanged = new EventEmitter();
|
|
36
|
-
this.destroyed$ = new Subject();
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* It creates a form.
|
|
40
|
-
*/
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_createFrom).call(this);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* A lifecycle hook that is called after a component's view has been fully initialized.
|
|
46
|
-
*/
|
|
47
|
-
ngAfterViewInit() {
|
|
48
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_fillSlider).call(this, 'fromSlider', 'toSlider');
|
|
49
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_setToggleAccessible).call(this);
|
|
50
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_disabledSlider).call(this, this.disabled);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* When the component is destroyed, we want to complete the observable and let any subscribers know that the observable is
|
|
54
|
-
* complete.
|
|
55
|
-
*/
|
|
56
|
-
ngOnDestroy() {
|
|
57
|
-
this.destroyed$.next();
|
|
58
|
-
this.destroyed$.complete();
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* If the changes object has a property called disabled and it's not the first change and the current value is true, then
|
|
62
|
-
* call the #disabledSlider function with the current value of the disabled property
|
|
63
|
-
* @param {SimpleChanges} changes - SimpleChanges - this is the object that contains the changes that have been made to
|
|
64
|
-
* the component.
|
|
65
|
-
*/
|
|
66
|
-
ngOnChanges(changes) {
|
|
67
|
-
if (changes && changes['disabled'] && !changes['disabled'].firstChange && changes['disabled'].currentValue) {
|
|
68
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_disabledSlider).call(this, changes['disabled'].currentValue);
|
|
69
|
-
}
|
|
70
|
-
if (changes &&
|
|
71
|
-
changes['setMinValue'] &&
|
|
72
|
-
!changes['setMinValue'].firstChange &&
|
|
73
|
-
changes['setMinValue'].currentValue) {
|
|
74
|
-
this.slider.patchValue({
|
|
75
|
-
fromSlider: changes['setMinValue'].currentValue,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
if (changes &&
|
|
79
|
-
changes['setMaxValue'] &&
|
|
80
|
-
!changes['setMaxValue'].firstChange &&
|
|
81
|
-
changes['setMaxValue'].currentValue) {
|
|
82
|
-
this.slider.patchValue({
|
|
83
|
-
toSlider: changes['setMaxValue'].currentValue,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* It's a function that takes a string as an argument and if the showToolTip property is true, it calls the
|
|
89
|
-
* fromSliderToolTipPosition() or toSliderToolTipPosition() function depending on the value of the string argument
|
|
90
|
-
* @param {string} slideType - string - This is the type of slider that is being moved. It can be either 'from' or 'to'.
|
|
91
|
-
*/
|
|
92
|
-
fireEventOnInput(slideType) {
|
|
93
|
-
if (this.showToolTip) {
|
|
94
|
-
if (slideType === 'from') {
|
|
95
|
-
this.fromSliderToolTipPosition();
|
|
96
|
-
}
|
|
97
|
-
if (slideType === 'to') {
|
|
98
|
-
this.toSliderToolTipPosition();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* We're calculating the position of the tooltip based on the value of the slider
|
|
104
|
-
*/
|
|
105
|
-
fromSliderToolTipPosition() {
|
|
106
|
-
var _a;
|
|
107
|
-
const val = (_a = this.slider.get('fromSlider')) === null || _a === void 0 ? void 0 : _a.value;
|
|
108
|
-
const min = this.min ? this.min : 0;
|
|
109
|
-
const max = this.max ? this.max : 100;
|
|
110
|
-
const newVal = Number(((val - min) * 100) / (max - min));
|
|
111
|
-
this.fromSliderToolTip.nativeElement.style.left = `calc(${newVal}% + (${-6 - newVal * 0.4}px))`;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* The function takes the value of the toSlider and converts it to a percentage value that is used to position the
|
|
115
|
-
* toSliderToolTip
|
|
116
|
-
*/
|
|
117
|
-
/**
|
|
118
|
-
* The function takes the value of the toSlider and converts it to a percentage value that is used to position the
|
|
119
|
-
* toSliderToolTip
|
|
120
|
-
*/
|
|
121
|
-
toSliderToolTipPosition() {
|
|
122
|
-
var _a;
|
|
123
|
-
const toSlider = (_a = this.slider.get('toSlider')) === null || _a === void 0 ? void 0 : _a.value;
|
|
124
|
-
const y = 0.8875 * toSlider + 3.985;
|
|
125
|
-
this.toSliderToolTip.nativeElement.style.left = y + '%';
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* We're getting the values of the two sliders, and then emitting an event with those values
|
|
129
|
-
*/
|
|
130
|
-
fireEventOnChange() {
|
|
131
|
-
var _a, _b;
|
|
132
|
-
const toSlider = (_a = this.slider.get('toSlider')) === null || _a === void 0 ? void 0 : _a.value;
|
|
133
|
-
const fromSlider = (_b = this.slider.get('fromSlider')) === null || _b === void 0 ? void 0 : _b.value;
|
|
134
|
-
const maxMin = {
|
|
135
|
-
min: fromSlider,
|
|
136
|
-
max: toSlider,
|
|
137
|
-
};
|
|
138
|
-
this.onValueChanged.emit(maxMin);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
_RmRangeSliderComponent_instances = new WeakSet(), _RmRangeSliderComponent_createFrom = function _RmRangeSliderComponent_createFrom() {
|
|
142
|
-
this.slider = this.fb.group({
|
|
143
|
-
fromSlider: [this.setMinValue, [Validators.required, Validators.max(this.max), Validators.min(this.min)]],
|
|
144
|
-
toSlider: [this.setMaxValue, [Validators.required, Validators.max(this.max), Validators.min(this.min)]],
|
|
145
|
-
});
|
|
146
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_onFormValueChange).call(this);
|
|
147
|
-
}, _RmRangeSliderComponent_onFormValueChange = function _RmRangeSliderComponent_onFormValueChange() {
|
|
148
|
-
var _a, _b;
|
|
149
|
-
(_a = this.slider.get('fromSlider')) === null || _a === void 0 ? void 0 : _a.valueChanges.subscribe(() => {
|
|
150
|
-
var _a;
|
|
151
|
-
const fromSlider = (_a = this.slider.get('fromSlider')) === null || _a === void 0 ? void 0 : _a.value;
|
|
152
|
-
if (this.fromSliderToolTip) {
|
|
153
|
-
this.fromSliderToolTip.nativeElement.innerHTML = `<span>${fromSlider}</span>`;
|
|
154
|
-
}
|
|
155
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_controlFromSlider).call(this, 'fromSlider', 'toSlider');
|
|
156
|
-
});
|
|
157
|
-
(_b = this.slider.get('toSlider')) === null || _b === void 0 ? void 0 : _b.valueChanges.subscribe(() => {
|
|
158
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_controlToSlider).call(this, 'fromSlider', 'toSlider');
|
|
159
|
-
});
|
|
160
|
-
}, _RmRangeSliderComponent_controlFromSlider = function _RmRangeSliderComponent_controlFromSlider(fromSlider, toSlider) {
|
|
161
|
-
const [from, to] = __classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_getParsed).call(this, 'fromSlider', 'toSlider');
|
|
162
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_fillSlider).call(this, fromSlider, toSlider);
|
|
163
|
-
if (from > to) {
|
|
164
|
-
this.slider.patchValue({
|
|
165
|
-
fromSlider: to,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}, _RmRangeSliderComponent_controlToSlider = function _RmRangeSliderComponent_controlToSlider(fromSlider, toSlider) {
|
|
169
|
-
const [from, to] = __classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_getParsed).call(this, 'fromSlider', 'toSlider');
|
|
170
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_fillSlider).call(this, fromSlider, toSlider);
|
|
171
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_setToggleAccessible).call(this);
|
|
172
|
-
if (from <= to) {
|
|
173
|
-
this.slider.patchValue({
|
|
174
|
-
toSlider: to,
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
/**
|
|
179
|
-
* We're taking the values of the two inputs, calculating the percentage of the slider that should be filled, and then
|
|
180
|
-
* setting the background of the slider to a gradient that fills the slider to the appropriate percentage
|
|
181
|
-
* @param {string} fromC - string - the name of the form control for the left slider
|
|
182
|
-
* @param {string} toC - string - the color of the slider
|
|
183
|
-
*/
|
|
184
|
-
this.slider.patchValue({
|
|
185
|
-
toSlider: from,
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
}, _RmRangeSliderComponent_fillSlider = function _RmRangeSliderComponent_fillSlider(fromC, toC) {
|
|
189
|
-
const from = __classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_getFormValue).call(this, fromC);
|
|
190
|
-
const to = __classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_getFormValue).call(this, toC);
|
|
191
|
-
const sliderColor = this.sliderColor;
|
|
192
|
-
const rangeColor = this.rangeColor;
|
|
193
|
-
const rangeDistance = this.max - this.min;
|
|
194
|
-
const fromPosition = this.doubleSlider ? from - this.min : this.min;
|
|
195
|
-
const toPosition = to - this.min;
|
|
196
|
-
this.gradient = `linear-gradient(
|
|
197
|
-
to right,
|
|
198
|
-
${sliderColor} 0%,
|
|
199
|
-
${sliderColor} ${(fromPosition / rangeDistance) * 100}%,
|
|
200
|
-
${rangeColor} ${(fromPosition / rangeDistance) * 100}%,
|
|
201
|
-
/**
|
|
202
|
-
* It returns the value of the form field that is passed in as a parameter
|
|
203
|
-
* @param {string} FormField - The name of the form field you want to get the value of.
|
|
204
|
-
* @returns The value of the form field.
|
|
205
|
-
*/
|
|
206
|
-
${rangeColor} ${(toPosition / rangeDistance) * 100}%,
|
|
207
|
-
${this.sliderColorRight} ${(toPosition / rangeDistance) * 100}%,
|
|
208
|
-
${this.sliderColorRight} 100%)`;
|
|
209
|
-
this.renderer.setStyle(this.toSliders.nativeElement, 'background', this.gradient);
|
|
210
|
-
}, _RmRangeSliderComponent_getFormValue = function _RmRangeSliderComponent_getFormValue(FormField) {
|
|
211
|
-
var _a;
|
|
212
|
-
return (_a = this.slider.get(FormField)) === null || _a === void 0 ? void 0 : _a.value;
|
|
213
|
-
}, _RmRangeSliderComponent_setToggleAccessible = function _RmRangeSliderComponent_setToggleAccessible() {
|
|
214
|
-
var _a;
|
|
215
|
-
const currentTarget = (_a = this.slider.get('toSlider')) === null || _a === void 0 ? void 0 : _a.value;
|
|
216
|
-
if (Number(currentTarget.value) <= 0) {
|
|
217
|
-
this.renderer.setStyle(this.toSliders.nativeElement, 'zIndex', 2);
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
this.renderer.setStyle(this.toSliders.nativeElement, 'zIndex', 0);
|
|
221
|
-
}
|
|
222
|
-
}, _RmRangeSliderComponent_getParsed = function _RmRangeSliderComponent_getParsed(currentFrom, currentTo) {
|
|
223
|
-
var _a, _b;
|
|
224
|
-
const from = parseInt((_a = this.slider.get(currentFrom)) === null || _a === void 0 ? void 0 : _a.value, 10);
|
|
225
|
-
const to = parseInt((_b = this.slider.get(currentTo)) === null || _b === void 0 ? void 0 : _b.value, 10);
|
|
226
|
-
return [from, to];
|
|
227
|
-
}, _RmRangeSliderComponent_disabledSlider = function _RmRangeSliderComponent_disabledSlider(isDisabled) {
|
|
228
|
-
interval(1)
|
|
229
|
-
.pipe(takeUntil(this.destroyed$))
|
|
230
|
-
.subscribe(() => {
|
|
231
|
-
if (this.doubleSlider) {
|
|
232
|
-
this.fromSlider.nativeElement.disabled = isDisabled;
|
|
233
|
-
this.fromSliderToolTipPosition();
|
|
234
|
-
}
|
|
235
|
-
this.toSliders.nativeElement.disabled = isDisabled;
|
|
236
|
-
this.toSliderToolTipPosition();
|
|
237
|
-
__classPrivateFieldGet(this, _RmRangeSliderComponent_instances, "m", _RmRangeSliderComponent_changeThumbColorOnDisabled).call(this);
|
|
238
|
-
});
|
|
239
|
-
}, _RmRangeSliderComponent_changeThumbColorOnDisabled = function _RmRangeSliderComponent_changeThumbColorOnDisabled() {
|
|
240
|
-
if (this.disabled) {
|
|
241
|
-
this.toolTipColor = '#dddddd';
|
|
242
|
-
this.toolTipColorHover = '#dddddd';
|
|
243
|
-
this.toolTipColorHoverShadow = 'none';
|
|
244
|
-
}
|
|
245
|
-
if (this.fromSliderToolTip) {
|
|
246
|
-
this.renderer.setStyle(this.fromSliderToolTip.nativeElement, 'background-color', this.toolTipColor);
|
|
247
|
-
this.fromSliderToolTip.nativeElement.style.setProperty('--tooltip-arrow', this.toolTipColor);
|
|
248
|
-
}
|
|
249
|
-
if (this.toSliderToolTip) {
|
|
250
|
-
this.renderer.setStyle(this.toSliderToolTip.nativeElement, 'background-color', this.toolTipColor);
|
|
251
|
-
this.toSliderToolTip.nativeElement.style.setProperty('--tooltip-arrow', this.toolTipColor);
|
|
252
|
-
}
|
|
253
|
-
if (this.fromSlider) {
|
|
254
|
-
this.fromSlider.nativeElement.style.setProperty('--slider-thumb-color', this.toolTipColor);
|
|
255
|
-
this.fromSlider.nativeElement.style.setProperty('--slider-thumb-color-hover', this.toolTipColorHover);
|
|
256
|
-
this.fromSlider.nativeElement.style.setProperty('--slider-thumb-color-hover-shadow', this.toolTipColorHoverShadow);
|
|
257
|
-
}
|
|
258
|
-
if (this.toSliders) {
|
|
259
|
-
this.toSliders.nativeElement.style.setProperty('--slider-thumb-color', this.toolTipColor);
|
|
260
|
-
this.toSliders.nativeElement.style.setProperty('--slider-thumb-color-hover', this.toolTipColorHover);
|
|
261
|
-
this.toSliders.nativeElement.style.setProperty('--slider-thumb-color-hover-shadow', this.toolTipColorHoverShadow);
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
RmRangeSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: RmRangeSliderComponent, deps: [{ token: i1.FormBuilder }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
265
|
-
RmRangeSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: RmRangeSliderComponent, selector: "rm-range-slider", inputs: { min: ["SliderMinRange", "min"], max: ["SliderMaxRange", "max"], setMinValue: "setMinValue", disabled: "disabled", showToolTip: "showToolTip", setMaxValue: "setMaxValue", showScale: "showScale", doubleSlider: "doubleSlider", toolTipColor: "toolTipColor", toolTipColorHover: "toolTipColorHover", toolTipColorHoverShadow: "toolTipColorHoverShadow", rangeColor: "rangeColor", sliderColor: "sliderColor", sliderColorRight: "sliderColorRight" }, outputs: { onValueChanged: "onValueChanged" }, viewQueries: [{ propertyName: "toSliders", first: true, predicate: ["toSliders"], descendants: true }, { propertyName: "fromSlider", first: true, predicate: ["fromSlider"], descendants: true }, { propertyName: "toSliderToolTip", first: true, predicate: ["toSliderToolTip"], descendants: true, read: ElementRef }, { propertyName: "fromSliderToolTip", first: true, predicate: ["fromSliderToolTip"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"slider\" novalidate>\r\n\t<div class=\"range_container\">\r\n\t\t<div class=\"sliders_control\">\r\n\t\t\t<input\r\n\t\t\t\t#fromSlider\r\n\t\t\t\t(change)=\"fireEventOnChange()\"\r\n\t\t\t\t(input)=\"fireEventOnInput('from')\"\r\n\t\t\t\t*ngIf=\"doubleSlider\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\tclass=\"from-slider range\"\r\n\t\t\t\tformControlName=\"fromSlider\"\r\n\t\t\t\tid=\"fromSlider\"\r\n\t\t\t\tstep=\"1\"\r\n\t\t\t\ttype=\"range\"\r\n\t\t\t/>\r\n\r\n\t\t\t<ng-container *ngIf=\"showToolTip\">\r\n\t\t\t\t<div #fromSliderToolTip *ngIf=\"doubleSlider\" class=\"tooltip\" id=\"rangeFrom\">\r\n\t\t\t\t\t{{ slider.get('fromSlider')?.value }}\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<input\r\n\t\t\t\t#toSliders\r\n\t\t\t\t(change)=\"fireEventOnChange()\"\r\n\t\t\t\t(input)=\"fireEventOnInput('to')\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\tclass=\"toSlider range\"\r\n\t\t\t\tformControlName=\"toSlider\"\r\n\t\t\t\tid=\"toSlider\"\r\n\t\t\t\tstep=\"1\"\r\n\t\t\t\ttype=\"range\"\r\n\t\t\t/>\r\n\t\t\t<div #toSliderToolTip *ngIf=\"showToolTip\" class=\"toSliderTooltip\" id=\"rangeTo\">\r\n\t\t\t\t{{ slider.get('toSlider')?.value }}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</form>\r\n", styles: [".range_container{display:flex;justify-content:space-around;align-items:center;flex-direction:row}.sliders_control{width:92%}.form_control{position:relative;display:flex}.range::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:all;width:18px;height:18px;background-color:var(--slider-thumb-color);border-radius:50%;cursor:pointer}.range::-moz-range-thumb{-webkit-appearance:none;pointer-events:all;width:18px;height:18px;background-color:var(--slider-thumb-color);border-radius:50%;cursor:pointer}.range::-webkit-slider-thumb:hover{background:var(--slider-thumb-color-hover);width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 10px var(--slider-thumb-color-hover-shadow)}.range:disabled{pointer-events:none;cursor:not-allowed}.range{-webkit-appearance:none;appearance:none;height:5px;width:90%;position:absolute;pointer-events:none;border-radius:8px;margin-top:19px}#fromSlider{height:0;z-index:1}.from-slider{margin-top:50px}.tooltip{width:-moz-fit-content;width:fit-content;color:#fff;border-radius:6px;padding:5px;min-width:28px;text-align:center;position:relative}.toSliderTooltip{width:-moz-fit-content;width:fit-content;color:#fff;border-radius:6px;padding:5px;min-width:28px;text-align:center;align-items:end;right:5%;position:absolute;top:6px}.tooltip:after{top:28px;left:46.6%;border:solid transparent;content:\" \";position:absolute;border-top-color:var(--tooltip-arrow);border-width:10px;margin-left:-10px}.toSliderTooltip:after{top:28px;left:20.2px;border:solid transparent;content:\" \";position:absolute;border-top-color:var(--tooltip-arrow);border-width:10px;margin-left:-10px}.sliders_control:not(:has(.tooltip)) .from-slider{margin-top:22px}.sliders_control:not(:has(.tooltip)):has(.toSliderTooltip) .range{margin-top:43px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: RmRangeSliderComponent, decorators: [{
|
|
267
|
-
type: Component,
|
|
268
|
-
args: [{ selector: 'rm-range-slider', template: "<form [formGroup]=\"slider\" novalidate>\r\n\t<div class=\"range_container\">\r\n\t\t<div class=\"sliders_control\">\r\n\t\t\t<input\r\n\t\t\t\t#fromSlider\r\n\t\t\t\t(change)=\"fireEventOnChange()\"\r\n\t\t\t\t(input)=\"fireEventOnInput('from')\"\r\n\t\t\t\t*ngIf=\"doubleSlider\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\tclass=\"from-slider range\"\r\n\t\t\t\tformControlName=\"fromSlider\"\r\n\t\t\t\tid=\"fromSlider\"\r\n\t\t\t\tstep=\"1\"\r\n\t\t\t\ttype=\"range\"\r\n\t\t\t/>\r\n\r\n\t\t\t<ng-container *ngIf=\"showToolTip\">\r\n\t\t\t\t<div #fromSliderToolTip *ngIf=\"doubleSlider\" class=\"tooltip\" id=\"rangeFrom\">\r\n\t\t\t\t\t{{ slider.get('fromSlider')?.value }}\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<input\r\n\t\t\t\t#toSliders\r\n\t\t\t\t(change)=\"fireEventOnChange()\"\r\n\t\t\t\t(input)=\"fireEventOnInput('to')\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\tclass=\"toSlider range\"\r\n\t\t\t\tformControlName=\"toSlider\"\r\n\t\t\t\tid=\"toSlider\"\r\n\t\t\t\tstep=\"1\"\r\n\t\t\t\ttype=\"range\"\r\n\t\t\t/>\r\n\t\t\t<div #toSliderToolTip *ngIf=\"showToolTip\" class=\"toSliderTooltip\" id=\"rangeTo\">\r\n\t\t\t\t{{ slider.get('toSlider')?.value }}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</form>\r\n", styles: [".range_container{display:flex;justify-content:space-around;align-items:center;flex-direction:row}.sliders_control{width:92%}.form_control{position:relative;display:flex}.range::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:all;width:18px;height:18px;background-color:var(--slider-thumb-color);border-radius:50%;cursor:pointer}.range::-moz-range-thumb{-webkit-appearance:none;pointer-events:all;width:18px;height:18px;background-color:var(--slider-thumb-color);border-radius:50%;cursor:pointer}.range::-webkit-slider-thumb:hover{background:var(--slider-thumb-color-hover);width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 10px var(--slider-thumb-color-hover-shadow)}.range:disabled{pointer-events:none;cursor:not-allowed}.range{-webkit-appearance:none;appearance:none;height:5px;width:90%;position:absolute;pointer-events:none;border-radius:8px;margin-top:19px}#fromSlider{height:0;z-index:1}.from-slider{margin-top:50px}.tooltip{width:-moz-fit-content;width:fit-content;color:#fff;border-radius:6px;padding:5px;min-width:28px;text-align:center;position:relative}.toSliderTooltip{width:-moz-fit-content;width:fit-content;color:#fff;border-radius:6px;padding:5px;min-width:28px;text-align:center;align-items:end;right:5%;position:absolute;top:6px}.tooltip:after{top:28px;left:46.6%;border:solid transparent;content:\" \";position:absolute;border-top-color:var(--tooltip-arrow);border-width:10px;margin-left:-10px}.toSliderTooltip:after{top:28px;left:20.2px;border:solid transparent;content:\" \";position:absolute;border-top-color:var(--tooltip-arrow);border-width:10px;margin-left:-10px}.sliders_control:not(:has(.tooltip)) .from-slider{margin-top:22px}.sliders_control:not(:has(.tooltip)):has(.toSliderTooltip) .range{margin-top:43px}\n"] }]
|
|
269
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.Renderer2 }]; }, propDecorators: { min: [{
|
|
270
|
-
type: Input,
|
|
271
|
-
args: ['SliderMinRange']
|
|
272
|
-
}], max: [{
|
|
273
|
-
type: Input,
|
|
274
|
-
args: ['SliderMaxRange']
|
|
275
|
-
}], setMinValue: [{
|
|
276
|
-
type: Input,
|
|
277
|
-
args: ['setMinValue']
|
|
278
|
-
}], disabled: [{
|
|
279
|
-
type: Input,
|
|
280
|
-
args: ['disabled']
|
|
281
|
-
}], showToolTip: [{
|
|
282
|
-
type: Input,
|
|
283
|
-
args: ['showToolTip']
|
|
284
|
-
}], setMaxValue: [{
|
|
285
|
-
type: Input,
|
|
286
|
-
args: ['setMaxValue']
|
|
287
|
-
}], showScale: [{
|
|
288
|
-
type: Input,
|
|
289
|
-
args: ['showScale']
|
|
290
|
-
}], doubleSlider: [{
|
|
291
|
-
type: Input,
|
|
292
|
-
args: ['doubleSlider']
|
|
293
|
-
}], toolTipColor: [{
|
|
294
|
-
type: Input,
|
|
295
|
-
args: ['toolTipColor']
|
|
296
|
-
}], toolTipColorHover: [{
|
|
297
|
-
type: Input,
|
|
298
|
-
args: ['toolTipColorHover']
|
|
299
|
-
}], toolTipColorHoverShadow: [{
|
|
300
|
-
type: Input,
|
|
301
|
-
args: ['toolTipColorHoverShadow']
|
|
302
|
-
}], rangeColor: [{
|
|
303
|
-
type: Input,
|
|
304
|
-
args: ['rangeColor']
|
|
305
|
-
}], sliderColor: [{
|
|
306
|
-
type: Input,
|
|
307
|
-
args: ['sliderColor']
|
|
308
|
-
}], sliderColorRight: [{
|
|
309
|
-
type: Input,
|
|
310
|
-
args: ['sliderColorRight']
|
|
311
|
-
}], onValueChanged: [{
|
|
312
|
-
type: Output,
|
|
313
|
-
args: ['onValueChanged']
|
|
314
|
-
}], toSliders: [{
|
|
315
|
-
type: ViewChild,
|
|
316
|
-
args: ['toSliders', { static: false }]
|
|
317
|
-
}], fromSlider: [{
|
|
318
|
-
type: ViewChild,
|
|
319
|
-
args: ['fromSlider', { static: false }]
|
|
320
|
-
}], toSliderToolTip: [{
|
|
321
|
-
type: ViewChild,
|
|
322
|
-
args: ['toSliderToolTip', { read: ElementRef }]
|
|
323
|
-
}], fromSliderToolTip: [{
|
|
324
|
-
type: ViewChild,
|
|
325
|
-
args: ['fromSliderToolTip', { read: ElementRef }]
|
|
326
|
-
}] } });
|
|
327
|
-
|
|
328
|
-
class RmRangeSliderModule {
|
|
329
|
-
}
|
|
330
|
-
RmRangeSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: RmRangeSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
331
|
-
RmRangeSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.4", ngImport: i0, type: RmRangeSliderModule, declarations: [RmRangeSliderComponent], imports: [ReactiveFormsModule, CommonModule], exports: [RmRangeSliderComponent] });
|
|
332
|
-
RmRangeSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: RmRangeSliderModule, imports: [ReactiveFormsModule, CommonModule] });
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: RmRangeSliderModule, decorators: [{
|
|
334
|
-
type: NgModule,
|
|
335
|
-
args: [{
|
|
336
|
-
declarations: [RmRangeSliderComponent],
|
|
337
|
-
imports: [ReactiveFormsModule, CommonModule],
|
|
338
|
-
exports: [RmRangeSliderComponent],
|
|
339
|
-
}]
|
|
340
|
-
}] });
|
|
341
|
-
|
|
342
|
-
/*
|
|
343
|
-
* Public API Surface of rm-range-slider
|
|
344
|
-
*/
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Generated bundle index. Do not edit.
|
|
348
|
-
*/
|
|
349
|
-
|
|
350
|
-
export { RmRangeSliderComponent, RmRangeSliderModule };
|
|
351
|
-
//# sourceMappingURL=rm-range-slider.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rm-range-slider.mjs","sources":["../../../projects/rm-range-slider/src/lib/rm-range-slider.component.ts","../../../projects/rm-range-slider/src/lib/rm-range-slider.component.html","../../../projects/rm-range-slider/src/lib/rm-range-slider.module.ts","../../../projects/rm-range-slider/src/public-api.ts","../../../projects/rm-range-slider/src/rm-range-slider.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOnInit,\n\tOutput,\n\tRenderer2,\n\tSimpleChanges,\n\tViewChild,\n} from '@angular/core'\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\nimport { interval, Subject, takeUntil } from 'rxjs'\nimport { MINMAX } from './rm-range-slider.component.interface'\n\n@Component({\n\tselector: 'rm-range-slider',\n\ttemplateUrl: './rm-range-slider.component.html',\n\tstyleUrls: ['./rm-range-slider.component.scss'],\n})\nexport class RmRangeSliderComponent implements OnInit, AfterViewInit {\n\tpublic slider!: FormGroup\n\t@Input('SliderMinRange') min: number = 0\n\t@Input('SliderMaxRange') max: number = 100\n\t@Input('setMinValue') setMinValue: number = 0\n\t@Input('disabled') disabled: boolean = false\n\t@Input('showToolTip') showToolTip: boolean = false\n\t@Input('setMaxValue') setMaxValue: number = 100\n\t@Input('showScale') showScale: boolean = false\n\t@Input('doubleSlider') doubleSlider: boolean = true\n\t@Input('toolTipColor') toolTipColor: string = '#8a00e5'\n\t@Input('toolTipColorHover') toolTipColorHover: string = '#8a00e5'\n\t@Input('toolTipColorHoverShadow') toolTipColorHoverShadow: string = '#8a00e5'\n\t@Input('rangeColor') rangeColor: string = 'rgba(255,255,255,0.99)'\n\t@Input('sliderColor') sliderColor: string = 'rgba(255,255,255,0.47)'\n\t@Input('sliderColorRight') sliderColorRight: string = 'rgb(198, 198, 198)'\n\t@Output('onValueChanged') onValueChanged: EventEmitter<MINMAX> = new EventEmitter()\n\t@ViewChild('toSliders', { static: false }) toSliders!: ElementRef\n\t@ViewChild('fromSlider', { static: false }) fromSlider!: ElementRef\n\t@ViewChild('toSliderToolTip', { read: ElementRef }) toSliderToolTip!: ElementRef\n\t@ViewChild('fromSliderToolTip', { read: ElementRef }) fromSliderToolTip!: ElementRef\n\tprivate gradient!: string\n\tprivate destroyed$: Subject<void> = new Subject<void>()\n\n\t/**\n\t * The constructor function is a special function that is called when a new instance of the class is created\n\t * @param {FormBuilder} fb - FormBuilder - This is the FormBuilder service that we'll use to create our form.\n\t * @param {Renderer2} renderer - Renderer2 - This is the Angular Renderer2 service. It's used to manipulate the DOM.\n\t */\n\tconstructor(private readonly fb: FormBuilder, private renderer: Renderer2) {}\n\n\t/**\n\t * It creates a form.\n\t */\n\tngOnInit() {\n\t\tthis.#createFrom()\n\t}\n\n\t/**\n\t * A lifecycle hook that is called after a component's view has been fully initialized.\n\t */\n\tngAfterViewInit() {\n\t\tthis.#fillSlider('fromSlider', 'toSlider')\n\t\tthis.#setToggleAccessible()\n\t\tthis.#disabledSlider(this.disabled)\n\t}\n\n\t/**\n\t * When the component is destroyed, we want to complete the observable and let any subscribers know that the observable is\n\t * complete.\n\t */\n\tngOnDestroy(): void {\n\t\tthis.destroyed$.next()\n\t\tthis.destroyed$.complete()\n\t}\n\n\t/**\n\t * If the changes object has a property called disabled and it's not the first change and the current value is true, then\n\t * call the #disabledSlider function with the current value of the disabled property\n\t * @param {SimpleChanges} changes - SimpleChanges - this is the object that contains the changes that have been made to\n\t * the component.\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes && changes['disabled'] && !changes['disabled'].firstChange && changes['disabled'].currentValue) {\n\t\t\tthis.#disabledSlider(changes['disabled'].currentValue)\n\t\t}\n\t\tif (\n\t\t\tchanges &&\n\t\t\tchanges['setMinValue'] &&\n\t\t\t!changes['setMinValue'].firstChange &&\n\t\t\tchanges['setMinValue'].currentValue\n\t\t) {\n\t\t\tthis.slider.patchValue({\n\t\t\t\tfromSlider: changes['setMinValue'].currentValue,\n\t\t\t})\n\t\t}\n\t\tif (\n\t\t\tchanges &&\n\t\t\tchanges['setMaxValue'] &&\n\t\t\t!changes['setMaxValue'].firstChange &&\n\t\t\tchanges['setMaxValue'].currentValue\n\t\t) {\n\t\t\tthis.slider.patchValue({\n\t\t\t\ttoSlider: changes['setMaxValue'].currentValue,\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * It's a function that takes a string as an argument and if the showToolTip property is true, it calls the\n\t * fromSliderToolTipPosition() or toSliderToolTipPosition() function depending on the value of the string argument\n\t * @param {string} slideType - string - This is the type of slider that is being moved. It can be either 'from' or 'to'.\n\t */\n\tfireEventOnInput(slideType: string) {\n\t\tif (this.showToolTip) {\n\t\t\tif (slideType === 'from') {\n\t\t\t\tthis.fromSliderToolTipPosition()\n\t\t\t}\n\t\t\tif (slideType === 'to') {\n\t\t\t\tthis.toSliderToolTipPosition()\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * We're calculating the position of the tooltip based on the value of the slider\n\t */\n\tfromSliderToolTipPosition() {\n\t\tconst val = this.slider.get('fromSlider')?.value\n\t\tconst min = this.min ? this.min : 0\n\t\tconst max = this.max ? this.max : 100\n\t\tconst newVal = Number(((val - min) * 100) / (max - min))\n\t\tthis.fromSliderToolTip.nativeElement.style.left = `calc(${newVal}% + (${-6 - newVal * 0.4}px))`\n\t}\n\n\t/**\n\t * The function takes the value of the toSlider and converts it to a percentage value that is used to position the\n\t * toSliderToolTip\n\t */\n\t/**\n\t * The function takes the value of the toSlider and converts it to a percentage value that is used to position the\n\t * toSliderToolTip\n\t */\n\ttoSliderToolTipPosition() {\n\t\tconst toSlider = this.slider.get('toSlider')?.value\n\t\tconst y = 0.8875 * toSlider + 3.985\n\t\tthis.toSliderToolTip.nativeElement.style.left = y + '%'\n\t}\n\n\t/**\n\t * We're getting the values of the two sliders, and then emitting an event with those values\n\t */\n\tfireEventOnChange() {\n\t\tconst toSlider = this.slider.get('toSlider')?.value\n\t\tconst fromSlider = this.slider.get('fromSlider')?.value\n\t\tconst maxMin = {\n\t\t\tmin: fromSlider,\n\t\t\tmax: toSlider,\n\t\t}\n\t\tthis.onValueChanged.emit(maxMin)\n\t}\n\n\t/**\n\t * The function creates a form group with two form controls, one for the minimum value and one for the maximum value\n\t */\n\t#createFrom() {\n\t\tthis.slider = this.fb.group({\n\t\t\tfromSlider: [this.setMinValue, [Validators.required, Validators.max(this.max), Validators.min(this.min)]],\n\t\t\ttoSlider: [this.setMaxValue, [Validators.required, Validators.max(this.max), Validators.min(this.min)]],\n\t\t})\n\t\tthis.#onFormValueChange()\n\t}\n\n\t/**\n\t * The function subscribes to the valueChanges of the fromSlider and toSlider.\n\t *\n\t * The fromSlider is the slider on the left and the toSlider is the slider on the right.\n\t *\n\t * The function is called onFormValueChange() because it is called in the ngOnInit() function.\n\t *\n\t * The ngOnInit() function is called when the component is initialized.\n\t *\n\t * The function is called onFormValueChange() because it is called in the ngOnInit() function.\n\t *\n\t * The ngOnInit() function is called when the component is initialized.\n\t *\n\t * The function is called onFormValueChange() because it is called in the ngOnInit() function.\n\t *\n\t * The ngOnInit() function is called when the component is initialized.\n\t *\n\t * The function is called onFormValueChange() because it is called in the ngOnInit() function.\n\t *\n\t * The ngOnInit\n\t */\n\t#onFormValueChange() {\n\t\tthis.slider.get('fromSlider')?.valueChanges.subscribe(() => {\n\t\t\tconst fromSlider = this.slider.get('fromSlider')?.value\n\t\t\tif (this.fromSliderToolTip) {\n\t\t\t\tthis.fromSliderToolTip.nativeElement.innerHTML = `<span>${fromSlider}</span>`\n\t\t\t}\n\t\t\tthis.#controlFromSlider('fromSlider', 'toSlider')\n\t\t})\n\t\tthis.slider.get('toSlider')?.valueChanges.subscribe(() => {\n\t\t\tthis.#controlToSlider('fromSlider', 'toSlider')\n\t\t})\n\t}\n\n\t/**\n\t * If the value of the fromSlider is greater than the value of the toSlider, then the value of the fromSlider is set to\n\t * the value of the toSlider\n\t * @param {string} fromSlider - the name of the from slider\n\t * @param {string} toSlider - string - the name of the toSlider control\n\t */\n\t#controlFromSlider(fromSlider: string, toSlider: string) {\n\t\tconst [from, to] = this.#getParsed('fromSlider', 'toSlider')\n\t\tthis.#fillSlider(fromSlider, toSlider)\n\t\tif (from > to) {\n\t\t\tthis.slider.patchValue({\n\t\t\t\tfromSlider: to,\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * > If the value of the `fromSlider` is less than or equal to the value of the `toSlider`, then set the value of the\n\t * `toSlider` to the value of the `toSlider`. Otherwise, set the value of the `toSlider` to the value of the `fromSlider`\n\t * @param {string} fromSlider - The name of the slider that is being changed.\n\t * @param {string} toSlider - The name of the slider that is being changed.\n\t */\n\t#controlToSlider(fromSlider: string, toSlider: string) {\n\t\tconst [from, to] = this.#getParsed('fromSlider', 'toSlider')\n\t\tthis.#fillSlider(fromSlider, toSlider)\n\t\tthis.#setToggleAccessible()\n\t\tif (from <= to) {\n\t\t\tthis.slider.patchValue({\n\t\t\t\ttoSlider: to,\n\t\t\t})\n\t\t} else {\n\t\t\t/**\n\t\t\t * We're taking the values of the two inputs, calculating the percentage of the slider that should be filled, and then\n\t\t\t * setting the background of the slider to a gradient that fills the slider to the appropriate percentage\n\t\t\t * @param {string} fromC - string - the name of the form control for the left slider\n\t\t\t * @param {string} toC - string - the color of the slider\n\t\t\t */\n\t\t\tthis.slider.patchValue({\n\t\t\t\ttoSlider: from,\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * It returns the value of the form field that is passed in as a parameter\n\t * @param {string} fromC - The name of the form field that contains the value of the left slider.\n\t * @param {string} toC - The name of the form field that contains the value of the right slider.\n\t */\n\t#fillSlider(fromC: string, toC: string) {\n\t\tconst from = this.#getFormValue(fromC)\n\t\tconst to = this.#getFormValue(toC)\n\t\tconst sliderColor = this.sliderColor\n\t\tconst rangeColor = this.rangeColor\n\t\tconst rangeDistance = this.max - this.min\n\t\tconst fromPosition = this.doubleSlider ? from - this.min : this.min\n\t\tconst toPosition = to - this.min\n\t\tthis.gradient = `linear-gradient(\n to right,\n ${sliderColor} 0%,\n ${sliderColor} ${(fromPosition / rangeDistance) * 100}%,\n ${rangeColor} ${(fromPosition / rangeDistance) * 100}%,\n /**\n\t * It returns the value of the form field that is passed in as a parameter\n\t * @param {string} FormField - The name of the form field you want to get the value of.\n\t * @returns The value of the form field.\n\t */\n\t ${rangeColor} ${(toPosition / rangeDistance) * 100}%,\n ${this.sliderColorRight} ${(toPosition / rangeDistance) * 100}%,\n ${this.sliderColorRight} 100%)`\n\t\tthis.renderer.setStyle(this.toSliders.nativeElement, 'background', this.gradient)\n\t}\n\n\t/**\n\t * It returns the value of the form field that is passed in as a parameter\n\t * @param {string} FormField - The name of the form field you want to get the value of.\n\t * @returns The value of the form field.\n\t */\n\t#getFormValue(FormField: string) {\n\t\treturn this.slider.get(FormField)?.value\n\t}\n\n\t/**\n\t * If the value of the slider is less than or equal to 0, then set the z-index of the slider to 2, otherwise set it to 0\n\t */\n\t#setToggleAccessible() {\n\t\tconst currentTarget = this.slider.get('toSlider')?.value\n\t\tif (Number(currentTarget.value) <= 0) {\n\t\t\tthis.renderer.setStyle(this.toSliders.nativeElement, 'zIndex', 2)\n\t\t} else {\n\t\t\tthis.renderer.setStyle(this.toSliders.nativeElement, 'zIndex', 0)\n\t\t}\n\t}\n\n\t/**\n\t * It takes two strings, and returns an array of two numbers\n\t * @param {string} currentFrom - string - The name of the input that holds the \"from\" value\n\t * @param {string} currentTo - string - the name of the input that holds the value of the right slider\n\t * @returns An array of two numbers.\n\t */\n\t#getParsed(currentFrom: string, currentTo: string): any {\n\t\tconst from = parseInt(this.slider.get(currentFrom)?.value, 10)\n\t\tconst to = parseInt(this.slider.get(currentTo)?.value, 10)\n\t\treturn [from, to]\n\t}\n\n\t/**\n\t * It disables the slider and changes the color of the thumb to gray\n\t * @param {boolean} isDisabled - boolean - true if the slider is disabled, false if it's enabled\n\t */\n\t#disabledSlider(isDisabled: boolean): void {\n\t\tinterval(1)\n\t\t\t.pipe(takeUntil(this.destroyed$))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.doubleSlider) {\n\t\t\t\t\tthis.fromSlider.nativeElement.disabled = isDisabled\n\t\t\t\t\tthis.fromSliderToolTipPosition()\n\t\t\t\t}\n\t\t\t\tthis.toSliders.nativeElement.disabled = isDisabled\n\t\t\t\tthis.toSliderToolTipPosition()\n\t\t\t\tthis.#changeThumbColorOnDisabled()\n\t\t\t})\n\t}\n\n\t/**\n\t * If the slider is disabled, set the tooltip color to #dddddd and the tooltip hover color to #dddddd and the tooltip\n\t * hover shadow to none\n\t */\n\t#changeThumbColorOnDisabled(): void {\n\t\tif (this.disabled) {\n\t\t\tthis.toolTipColor = '#dddddd'\n\t\t\tthis.toolTipColorHover = '#dddddd'\n\t\t\tthis.toolTipColorHoverShadow = 'none'\n\t\t}\n\n\t\tif (this.fromSliderToolTip) {\n\t\t\tthis.renderer.setStyle(this.fromSliderToolTip.nativeElement, 'background-color', this.toolTipColor)\n\t\t\tthis.fromSliderToolTip.nativeElement.style.setProperty('--tooltip-arrow', this.toolTipColor)\n\t\t}\n\t\tif (this.toSliderToolTip) {\n\t\t\tthis.renderer.setStyle(this.toSliderToolTip.nativeElement, 'background-color', this.toolTipColor)\n\t\t\tthis.toSliderToolTip.nativeElement.style.setProperty('--tooltip-arrow', this.toolTipColor)\n\t\t}\n\n\t\tif (this.fromSlider) {\n\t\t\tthis.fromSlider.nativeElement.style.setProperty('--slider-thumb-color', this.toolTipColor)\n\t\t\tthis.fromSlider.nativeElement.style.setProperty('--slider-thumb-color-hover', this.toolTipColorHover)\n\t\t\tthis.fromSlider.nativeElement.style.setProperty(\n\t\t\t\t'--slider-thumb-color-hover-shadow',\n\t\t\t\tthis.toolTipColorHoverShadow,\n\t\t\t)\n\t\t}\n\t\tif (this.toSliders) {\n\t\t\tthis.toSliders.nativeElement.style.setProperty('--slider-thumb-color', this.toolTipColor)\n\t\t\tthis.toSliders.nativeElement.style.setProperty('--slider-thumb-color-hover', this.toolTipColorHover)\n\t\t\tthis.toSliders.nativeElement.style.setProperty(\n\t\t\t\t'--slider-thumb-color-hover-shadow',\n\t\t\t\tthis.toolTipColorHoverShadow,\n\t\t\t)\n\t\t}\n\t}\n}\n","<form [formGroup]=\"slider\" novalidate>\r\n\t<div class=\"range_container\">\r\n\t\t<div class=\"sliders_control\">\r\n\t\t\t<input\r\n\t\t\t\t#fromSlider\r\n\t\t\t\t(change)=\"fireEventOnChange()\"\r\n\t\t\t\t(input)=\"fireEventOnInput('from')\"\r\n\t\t\t\t*ngIf=\"doubleSlider\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\tclass=\"from-slider range\"\r\n\t\t\t\tformControlName=\"fromSlider\"\r\n\t\t\t\tid=\"fromSlider\"\r\n\t\t\t\tstep=\"1\"\r\n\t\t\t\ttype=\"range\"\r\n\t\t\t/>\r\n\r\n\t\t\t<ng-container *ngIf=\"showToolTip\">\r\n\t\t\t\t<div #fromSliderToolTip *ngIf=\"doubleSlider\" class=\"tooltip\" id=\"rangeFrom\">\r\n\t\t\t\t\t{{ slider.get('fromSlider')?.value }}\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<input\r\n\t\t\t\t#toSliders\r\n\t\t\t\t(change)=\"fireEventOnChange()\"\r\n\t\t\t\t(input)=\"fireEventOnInput('to')\"\r\n\t\t\t\t[max]=\"max\"\r\n\t\t\t\t[min]=\"min\"\r\n\t\t\t\tclass=\"toSlider range\"\r\n\t\t\t\tformControlName=\"toSlider\"\r\n\t\t\t\tid=\"toSlider\"\r\n\t\t\t\tstep=\"1\"\r\n\t\t\t\ttype=\"range\"\r\n\t\t\t/>\r\n\t\t\t<div #toSliderToolTip *ngIf=\"showToolTip\" class=\"toSliderTooltip\" id=\"rangeTo\">\r\n\t\t\t\t{{ slider.get('toSlider')?.value }}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</form>\r\n","import { NgModule } from '@angular/core'\nimport { RmRangeSliderComponent } from './rm-range-slider.component'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { CommonModule } from '@angular/common'\n\n@NgModule({\n\tdeclarations: [RmRangeSliderComponent],\n\timports: [ReactiveFormsModule, CommonModule],\n\texports: [RmRangeSliderComponent],\n})\nexport class RmRangeSliderModule {}\n","/*\n * Public API Surface of rm-range-slider\n */\n\nexport * from './lib/rm-range-slider.component'\nexport * from './lib/rm-range-slider.module'\nexport * from './lib/rm-range-slider.component.interface'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|