@rolster/react-components 19.8.19 → 19.8.20

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.
@@ -7,8 +7,9 @@ interface SliderProps extends RlsComponent {
7
7
  minValue?: number;
8
8
  onValue?: (value: number) => void;
9
9
  prefixIcon?: string;
10
+ step?: number;
10
11
  value?: number;
11
12
  }
12
- declare function RlsSliderComponent({ children, className, disabled, formControl, identifier, maxValue, minValue, onValue, prefixIcon, rlsTheme, value }: SliderProps): import("react/jsx-runtime").JSX.Element;
13
+ declare function RlsSliderComponent({ children, className, disabled, formControl, identifier, maxValue, minValue, onValue, prefixIcon, rlsTheme, step, value }: SliderProps): import("react/jsx-runtime").JSX.Element;
13
14
  export declare const RlsSlider: import("react").MemoExoticComponent<typeof RlsSliderComponent>;
14
15
  export {};
@@ -1,58 +1,148 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { memo, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
3
3
  import { renderClassStatus } from '../../../helpers/css';
4
+ import { normalizeSliderValue, sliderRateToValue, sliderValueToRate } from '../../../helpers/slider';
4
5
  import { RlsIcon } from '../../atoms/Icon/Icon';
5
- function calculateInitialValue(value, minValue, maxValue) {
6
- return minValue > value ? minValue : maxValue < value ? maxValue : value;
7
- }
8
- function calculateInitialRate(value, minValue, maxValue) {
9
- const rateMax = maxValue - minValue;
10
- const rateValue = value - minValue;
11
- return Math.ceil((rateValue / rateMax) * 100);
12
- }
13
- function RlsSliderComponent({ children, className, disabled, formControl, identifier, maxValue, minValue, onValue, prefixIcon, rlsTheme, value }) {
6
+ const DEFAULT_STEP = 1;
7
+ const PAGE_STEP_DIVISOR = 10;
8
+ function RlsSliderComponent({ children, className, disabled, formControl, identifier, maxValue, minValue, onValue, prefixIcon, rlsTheme, step, value }) {
14
9
  const minValueSlider = useMemo(() => {
15
10
  return minValue ?? 0;
16
11
  }, [minValue]);
17
12
  const maxValueSlider = useMemo(() => {
18
13
  return maxValue ?? 100;
19
14
  }, [maxValue]);
20
- const [valueSlider, setValue] = useState(calculateInitialValue(formControl?.value ?? value ?? 0, minValueSlider, maxValueSlider));
21
- const [rate, setRate] = useState(calculateInitialRate(valueSlider, minValueSlider, maxValueSlider));
22
- const refComponent = useRef(null);
15
+ const stepSlider = useMemo(() => {
16
+ return step && step > 0 ? step : DEFAULT_STEP;
17
+ }, [step]);
18
+ const [valueSlider, setValueSlider] = useState(() => {
19
+ return normalizeSliderValue(formControl?.value ?? value ?? 0, minValueSlider, maxValueSlider, stepSlider);
20
+ });
21
+ const [dragging, setDragging] = useState(false);
23
22
  const refTrack = useRef(null);
24
- const refTrackOn = useRef(null);
25
23
  const refThumb = useRef(null);
24
+ const refValue = useRef(valueSlider);
25
+ const refValueExternal = useRef(formControl?.value ?? value);
26
+ const labelId = useId();
27
+ const rate = useMemo(() => {
28
+ return sliderValueToRate(valueSlider, minValueSlider, maxValueSlider);
29
+ }, [valueSlider, minValueSlider, maxValueSlider]);
26
30
  const classNameSlider = renderClassStatus('rls-slider', {
27
31
  complet: valueSlider === maxValueSlider,
28
32
  disabled: disabled,
33
+ dragging: dragging,
29
34
  empty: valueSlider === minValueSlider
30
35
  }, className);
36
+ const commitValue = useCallback((valueNext) => {
37
+ if (refValue.current === valueNext) {
38
+ return;
39
+ }
40
+ refValue.current = valueNext;
41
+ setValueSlider(valueNext);
42
+ formControl?.setValue(valueNext);
43
+ onValue?.(valueNext);
44
+ }, [formControl, onValue]);
45
+ const commitRate = useCallback((rateNext) => {
46
+ commitValue(sliderRateToValue(rateNext, minValueSlider, maxValueSlider, stepSlider));
47
+ }, [commitValue, minValueSlider, maxValueSlider, stepSlider]);
48
+ const calculateRateFromClientX = useCallback((clientX) => {
49
+ const { left, width } = refTrack.current.getBoundingClientRect();
50
+ return width > 0 ? ((clientX - left) / width) * 100 : 0;
51
+ }, []);
52
+ const onPointerDown = useCallback((event) => {
53
+ if (disabled) {
54
+ return;
55
+ }
56
+ event.preventDefault();
57
+ refThumb.current.focus();
58
+ setDragging(true);
59
+ commitRate(calculateRateFromClientX(event.clientX));
60
+ }, [disabled, commitRate, calculateRateFromClientX]);
61
+ const calculateValueFromKey = useCallback((key) => {
62
+ const pageStep = Math.max(stepSlider, (maxValueSlider - minValueSlider) / PAGE_STEP_DIVISOR);
63
+ switch (key) {
64
+ case 'ArrowRight':
65
+ case 'ArrowUp':
66
+ return refValue.current + stepSlider;
67
+ case 'ArrowLeft':
68
+ case 'ArrowDown':
69
+ return refValue.current - stepSlider;
70
+ case 'PageUp':
71
+ return refValue.current + pageStep;
72
+ case 'PageDown':
73
+ return refValue.current - pageStep;
74
+ case 'Home':
75
+ return minValueSlider;
76
+ case 'End':
77
+ return maxValueSlider;
78
+ default:
79
+ return undefined;
80
+ }
81
+ }, [stepSlider, minValueSlider, maxValueSlider]);
82
+ const onKeyDown = useCallback((event) => {
83
+ if (disabled) {
84
+ return;
85
+ }
86
+ const valueNext = calculateValueFromKey(event.key);
87
+ if (valueNext === undefined) {
88
+ return;
89
+ }
90
+ event.preventDefault();
91
+ commitValue(normalizeSliderValue(valueNext, minValueSlider, maxValueSlider, stepSlider));
92
+ }, [
93
+ disabled,
94
+ calculateValueFromKey,
95
+ commitValue,
96
+ minValueSlider,
97
+ maxValueSlider,
98
+ stepSlider
99
+ ]);
100
+ useEffect(() => {
101
+ if (!dragging) {
102
+ return;
103
+ }
104
+ const onPointerMove = (event) => {
105
+ commitRate(calculateRateFromClientX(event.clientX));
106
+ };
107
+ const onPointerRelease = () => {
108
+ setDragging(false);
109
+ };
110
+ window.addEventListener('pointermove', onPointerMove);
111
+ window.addEventListener('pointerup', onPointerRelease);
112
+ window.addEventListener('pointercancel', onPointerRelease);
113
+ return () => {
114
+ window.removeEventListener('pointermove', onPointerMove);
115
+ window.removeEventListener('pointerup', onPointerRelease);
116
+ window.removeEventListener('pointercancel', onPointerRelease);
117
+ };
118
+ }, [dragging, commitRate, calculateRateFromClientX]);
31
119
  useEffect(() => {
32
120
  const valueInitial = formControl?.value ?? value ?? 0;
33
- refThumb.current.style.left = `${rate}%`;
34
- refTrackOn.current.style.width = `${rate}%`;
35
- if (valueInitial !== valueSlider) {
36
- formControl?.setValue(valueSlider);
37
- onValue?.(valueSlider);
121
+ if (valueInitial !== refValue.current) {
122
+ formControl?.setValue(refValue.current);
123
+ onValue?.(refValue.current);
38
124
  }
39
125
  }, []);
40
- const calculateValueWithRate = useCallback((rate) => {
41
- const value = Math.ceil(((maxValueSlider - minValueSlider) * rate) / 100);
42
- refThumb.current.style.left = `${rate}%`;
43
- refTrackOn.current.style.width = `${rate}%`;
44
- const sliderValue = value + minValueSlider;
45
- setRate(rate);
46
- setValue(sliderValue);
47
- formControl?.setValue(sliderValue);
48
- onValue?.(sliderValue);
49
- }, [minValueSlider, maxValueSlider, formControl, onValue]);
50
- const onClickTrack = useCallback((event) => {
51
- const { left, width } = refTrack.current.getBoundingClientRect();
52
- const rate = Math.ceil(((event.clientX - left) / width) * 100);
53
- calculateValueWithRate(rate);
54
- }, [minValueSlider, maxValueSlider]);
55
- return (_jsxs("div", { id: identifier, className: classNameSlider, "rls-theme": rlsTheme, children: [children && _jsx("span", { className: "rls-slider__label", children: children }), _jsxs("div", { className: "rls-slider__body", children: [prefixIcon && _jsx(RlsIcon, { value: prefixIcon }), _jsxs("div", { ref: refComponent, className: "rls-slider__component", children: [_jsx("div", { ref: refTrack, className: "rls-slider__track", onClick: onClickTrack, children: _jsx("div", { ref: refTrackOn, className: "rls-slider__track__on" }) }), _jsxs("div", { ref: refThumb, className: "rls-slider__thumb", children: [rate, "%"] })] })] })] }));
126
+ useEffect(() => {
127
+ const valueExternal = formControl?.value ?? value;
128
+ if (valueExternal === undefined ||
129
+ valueExternal === refValueExternal.current) {
130
+ return;
131
+ }
132
+ refValueExternal.current = valueExternal;
133
+ commitValue(normalizeSliderValue(valueExternal, minValueSlider, maxValueSlider, stepSlider));
134
+ }, [
135
+ value,
136
+ formControl?.value,
137
+ commitValue,
138
+ minValueSlider,
139
+ maxValueSlider,
140
+ stepSlider
141
+ ]);
142
+ useEffect(() => {
143
+ commitValue(normalizeSliderValue(refValue.current, minValueSlider, maxValueSlider, stepSlider));
144
+ }, [commitValue, minValueSlider, maxValueSlider, stepSlider]);
145
+ return (_jsxs("div", { id: identifier, className: classNameSlider, "rls-theme": rlsTheme, children: [children && (_jsx("span", { id: labelId, className: "rls-slider__label", children: children })), _jsxs("div", { className: "rls-slider__body", children: [prefixIcon && _jsx(RlsIcon, { value: prefixIcon }), _jsxs("div", { className: "rls-slider__component", onPointerDown: onPointerDown, children: [_jsx("div", { ref: refTrack, className: "rls-slider__track", children: _jsx("div", { className: "rls-slider__track__on", style: { width: `${rate}%` } }) }), _jsx("div", { ref: refThumb, className: "rls-slider__thumb", style: { left: `${rate}%` }, role: "slider", tabIndex: disabled ? -1 : 0, "aria-orientation": "horizontal", "aria-valuemin": minValueSlider, "aria-valuemax": maxValueSlider, "aria-valuenow": valueSlider, "aria-disabled": disabled || undefined, "aria-labelledby": children ? labelId : undefined, onKeyDown: onKeyDown, children: valueSlider })] })] })] }));
56
146
  }
57
147
  export const RlsSlider = memo(RlsSliderComponent);
58
148
  //# sourceMappingURL=Slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../../src/components/molecules/Slider/Slider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../../src/components/molecules/Slider/Slider.tsx"],"names":[],"mappings":"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"}
@@ -200,11 +200,17 @@ function RlsImageEditorComponent(props) {
200
200
  useResize({ refElement: refImage, onResize: onResizeElement });
201
201
  const onCropImage = useCallback(() => {
202
202
  const cropProps = getCropProperties();
203
- const width = props.maxWidth || cropProps.width;
204
- const height = width * getRatioFactor(ratio);
203
+ const width = Math.round(props.maxWidth
204
+ ? Math.min(props.maxWidth, cropProps.width)
205
+ : cropProps.width);
206
+ const height = Math.round(width * getRatioFactor(ratio));
205
207
  refPicture.current.width = width;
206
208
  refPicture.current.height = height;
207
209
  const context = refPicture.current.getContext('2d');
210
+ if (context) {
211
+ context.imageSmoothingEnabled = true;
212
+ context.imageSmoothingQuality = 'high';
213
+ }
208
214
  context?.drawImage(refCanvas.current, cropProps.left, cropProps.top, cropProps.width, cropProps.height, 0, 0, width, height);
209
215
  refPicture.current.toBlob((blob) => {
210
216
  if (blob) {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageEditor.js","sourceRoot":"","sources":["../../../../../src/components/organisms/ImageEditor/ImageEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageEditor.js","sourceRoot":"","sources":["../../../../../src/components/organisms/ImageEditor/ImageEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function clampNumber(value: number, minValue: number, maxValue: number): number;
2
+ export declare function normalizeSliderValue(value: number, minValue: number, maxValue: number, step: number): number;
3
+ export declare function sliderValueToRate(value: number, minValue: number, maxValue: number): number;
4
+ export declare function sliderRateToValue(rate: number, minValue: number, maxValue: number, step: number): number;
@@ -0,0 +1,37 @@
1
+ const RATE_MIN = 0;
2
+ const RATE_MAX = 100;
3
+ const PRECISION = 12;
4
+ export function clampNumber(value, minValue, maxValue) {
5
+ if (minValue > maxValue) {
6
+ return minValue;
7
+ }
8
+ return Math.min(Math.max(value, minValue), maxValue);
9
+ }
10
+ export function normalizeSliderValue(value, minValue, maxValue, step) {
11
+ const valueClamped = clampNumber(value, minValue, maxValue);
12
+ if (!step || step <= 0) {
13
+ return valueClamped;
14
+ }
15
+ if (valueClamped <= minValue) {
16
+ return minValue;
17
+ }
18
+ if (valueClamped >= maxValue) {
19
+ return maxValue;
20
+ }
21
+ const steps = Math.round((valueClamped - minValue) / step);
22
+ const valueStepped = parseFloat((minValue + steps * step).toPrecision(PRECISION));
23
+ return clampNumber(valueStepped, minValue, maxValue);
24
+ }
25
+ export function sliderValueToRate(value, minValue, maxValue) {
26
+ const range = maxValue - minValue;
27
+ if (range <= 0) {
28
+ return RATE_MIN;
29
+ }
30
+ return clampNumber(((value - minValue) / range) * RATE_MAX, RATE_MIN, RATE_MAX);
31
+ }
32
+ export function sliderRateToValue(rate, minValue, maxValue, step) {
33
+ const range = maxValue - minValue;
34
+ const rateClamped = clampNumber(rate, RATE_MIN, RATE_MAX);
35
+ return normalizeSliderValue(minValue + (range * rateClamped) / RATE_MAX, minValue, maxValue, step);
36
+ }
37
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.js","sourceRoot":"","sources":["../../../src/helpers/slider.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,QAAgB,EAChB,QAAgB;IAEhB,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,IAAY;IAEZ,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,UAAU,CAC7B,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CACjD,CAAC;IAEF,OAAO,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,QAAgB,EAChB,QAAgB;IAEhB,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAElC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,WAAW,CAChB,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,EACvC,QAAQ,EACR,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,QAAgB,EAChB,QAAgB,EAChB,IAAY;IAEZ,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1D,OAAO,oBAAoB,CACzB,QAAQ,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,QAAQ,EAC3C,QAAQ,EACR,QAAQ,EACR,IAAI,CACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,90 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { clampNumber, normalizeSliderValue, sliderRateToValue, sliderValueToRate } from './slider';
3
+ describe('clampNumber', () => {
4
+ it('should return the value when it is inside the range', () => {
5
+ expect(clampNumber(42, 0, 100)).toBe(42);
6
+ });
7
+ it('should return the minimum when the value is below the range', () => {
8
+ expect(clampNumber(-10, 0, 100)).toBe(0);
9
+ });
10
+ it('should return the maximum when the value is above the range', () => {
11
+ expect(clampNumber(180, 0, 100)).toBe(100);
12
+ });
13
+ it('should return the minimum when the range is inverted', () => {
14
+ expect(clampNumber(50, 100, 0)).toBe(100);
15
+ });
16
+ });
17
+ describe('normalizeSliderValue', () => {
18
+ it('should clamp the value into the range', () => {
19
+ expect(normalizeSliderValue(120, 0, 100, 1)).toBe(100);
20
+ expect(normalizeSliderValue(-5, 0, 100, 1)).toBe(0);
21
+ });
22
+ it('should snap the value to the nearest step', () => {
23
+ expect(normalizeSliderValue(12, 0, 100, 5)).toBe(10);
24
+ expect(normalizeSliderValue(13, 0, 100, 5)).toBe(15);
25
+ });
26
+ it('should snap relative to the minimum, not to zero', () => {
27
+ expect(normalizeSliderValue(56, 50, 100, 5)).toBe(55);
28
+ expect(normalizeSliderValue(58, 50, 100, 5)).toBe(60);
29
+ });
30
+ it('should never return a value outside the range when snapping', () => {
31
+ expect(normalizeSliderValue(99, 0, 100, 7)).toBe(98);
32
+ expect(normalizeSliderValue(100, 0, 100, 7)).toBe(100);
33
+ });
34
+ it('should keep both range ends reachable when the step misses them', () => {
35
+ expect(normalizeSliderValue(100, 0, 100, 7)).toBe(100);
36
+ expect(normalizeSliderValue(0, 0, 100, 7)).toBe(0);
37
+ expect(normalizeSliderValue(101, 0, 100, 30)).toBe(100);
38
+ });
39
+ it('should return the clamped value when the step is not usable', () => {
40
+ expect(normalizeSliderValue(12.5, 0, 100, 0)).toBe(12.5);
41
+ expect(normalizeSliderValue(12.5, 0, 100, -1)).toBe(12.5);
42
+ });
43
+ it('should not leak floating point noise with fractional steps', () => {
44
+ expect(normalizeSliderValue(0.3, 0, 1, 0.1)).toBe(0.3);
45
+ expect(normalizeSliderValue(0.7, 0, 1, 0.1)).toBe(0.7);
46
+ });
47
+ });
48
+ describe('sliderValueToRate', () => {
49
+ it('should return zero at the minimum', () => {
50
+ expect(sliderValueToRate(50, 50, 100)).toBe(0);
51
+ });
52
+ it('should return one hundred at the maximum', () => {
53
+ expect(sliderValueToRate(100, 50, 100)).toBe(100);
54
+ });
55
+ it('should return the proportional rate inside the range', () => {
56
+ expect(sliderValueToRate(60, 50, 100)).toBe(20);
57
+ expect(sliderValueToRate(75, 50, 100)).toBe(50);
58
+ });
59
+ it('should clamp the rate when the value is outside the range', () => {
60
+ expect(sliderValueToRate(20, 50, 100)).toBe(0);
61
+ expect(sliderValueToRate(140, 50, 100)).toBe(100);
62
+ });
63
+ it('should return zero when the range has no width', () => {
64
+ expect(sliderValueToRate(50, 50, 50)).toBe(0);
65
+ });
66
+ });
67
+ describe('sliderRateToValue', () => {
68
+ it('should return the minimum at rate zero', () => {
69
+ expect(sliderRateToValue(0, 50, 100, 1)).toBe(50);
70
+ });
71
+ it('should return the maximum at rate one hundred', () => {
72
+ expect(sliderRateToValue(100, 50, 100, 1)).toBe(100);
73
+ });
74
+ it('should map the rate to the real value of the range', () => {
75
+ expect(sliderRateToValue(20, 50, 100, 1)).toBe(60);
76
+ });
77
+ it('should clamp rates outside the zero to one hundred range', () => {
78
+ expect(sliderRateToValue(-30, 0, 100, 1)).toBe(0);
79
+ expect(sliderRateToValue(130, 0, 100, 1)).toBe(100);
80
+ });
81
+ it('should snap to the nearest step instead of always rounding up', () => {
82
+ expect(sliderRateToValue(3, 0, 10, 1)).toBe(0);
83
+ expect(sliderRateToValue(7, 0, 10, 1)).toBe(1);
84
+ });
85
+ it('should keep the value stable across a rate round trip', () => {
86
+ const value = sliderRateToValue(sliderValueToRate(72, 50, 100), 50, 100, 1);
87
+ expect(value).toBe(72);
88
+ });
89
+ });
90
+ //# sourceMappingURL=slider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.spec.js","sourceRoot":"","sources":["../../../src/helpers/slider.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolster/react-components",
3
- "version": "19.8.19",
3
+ "version": "19.8.20",
4
4
  "type": "module",
5
5
  "description": "Package containing UI components for React Project.",
6
6
  "license": "MIT",
@@ -29,14 +29,13 @@
29
29
  ],
30
30
  "scripts": {
31
31
  "prettier": "prettier --write .",
32
- "prettier:css": "prettier --write dist/**/*.css --ignore-path .prettierignore",
32
+ "lint": "eslint .",
33
+ "lint:fix": "eslint . --fix",
33
34
  "clean": "rimraf ./dist",
34
35
  "dev": "vite",
35
36
  "build": "npm run clean && tsc -p tsconfig.app.json && rollup -c rollup.config.mjs",
36
37
  "test": "vitest run",
37
- "prepublishOnly": "npm run build",
38
- "lint": "eslint .",
39
- "lint:fix": "eslint . --fix"
38
+ "prepublishOnly": "npm run build"
40
39
  },
41
40
  "dependencies": {
42
41
  "@rolster/commons": "^4.2.3",
@@ -56,7 +55,7 @@
56
55
  "@types/react": "^19.0.0",
57
56
  "@types/react-dom": "^19.0.0",
58
57
  "@vitejs/plugin-react": "^6.0.2",
59
- "@vitest/ui": "^4.1.9",
58
+ "@vitest/ui": "^5.0.0",
60
59
  "eslint": "^10.7.0",
61
60
  "eslint-plugin-perfectionist": "^5.10.0",
62
61
  "eslint-plugin-simple-import-sort": "^13.0.0",
@@ -69,7 +68,7 @@
69
68
  "typescript": "^6.0.3",
70
69
  "typescript-eslint": "^8.64.0",
71
70
  "vite": "^8.0.16",
72
- "vitest": "^4.1.9"
71
+ "vitest": "^5.0.0"
73
72
  },
74
73
  "repository": {
75
74
  "type": "git",