@elliemae/ds-slider 2.1.0 → 2.2.0-alpha.3
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/cjs/DSSlider.js +48 -33
- package/cjs/DSSlider.js.map +7 -0
- package/cjs/components/SliderImp.js +154 -158
- package/cjs/components/SliderImp.js.map +7 -0
- package/cjs/components/Thumb.js +64 -63
- package/cjs/components/Thumb.js.map +7 -0
- package/cjs/components/TickMarks.js +72 -31
- package/cjs/components/TickMarks.js.map +7 -0
- package/cjs/components/TickMarksValues.js +59 -38
- package/cjs/components/TickMarksValues.js.map +7 -0
- package/cjs/components/Track.js +66 -55
- package/cjs/components/Track.js.map +7 -0
- package/cjs/components/context.js +36 -13
- package/cjs/components/context.js.map +7 -0
- package/cjs/components/styled.js +93 -58
- package/cjs/components/styled.js.map +7 -0
- package/cjs/components/utils.js +46 -36
- package/cjs/components/utils.js.map +7 -0
- package/cjs/index.js +36 -11
- package/cjs/index.js.map +7 -0
- package/cjs/prop-types.js +52 -49
- package/cjs/prop-types.js.map +7 -0
- package/esm/DSSlider.js +16 -20
- package/esm/DSSlider.js.map +7 -0
- package/esm/components/SliderImp.js +120 -139
- package/esm/components/SliderImp.js.map +7 -0
- package/esm/components/Thumb.js +33 -54
- package/esm/components/Thumb.js.map +7 -0
- package/esm/components/TickMarks.js +42 -23
- package/esm/components/TickMarks.js.map +7 -0
- package/esm/components/TickMarksValues.js +30 -31
- package/esm/components/TickMarksValues.js.map +7 -0
- package/esm/components/Track.js +36 -46
- package/esm/components/Track.js.map +7 -0
- package/esm/components/context.js +7 -5
- package/esm/components/context.js.map +7 -0
- package/esm/components/styled.js +64 -44
- package/esm/components/styled.js.map +7 -0
- package/esm/components/utils.js +15 -29
- package/esm/components/utils.js.map +7 -0
- package/esm/index.js +7 -1
- package/esm/index.js.map +7 -0
- package/esm/prop-types.js +23 -44
- package/esm/prop-types.js.map +7 -0
- package/package.json +6 -6
|
@@ -1,39 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useState, useEffect, useRef, useMemo } from "react";
|
|
3
|
+
import { v4 as uuidv4 } from "uuid";
|
|
4
|
+
import { Range } from "react-range";
|
|
5
|
+
import { usePrevious } from "@elliemae/ds-utilities";
|
|
6
|
+
import DSTruncatedTooltipText, {
|
|
7
|
+
TooltipTextProvider
|
|
8
|
+
} from "@elliemae/ds-truncated-tooltip-text";
|
|
9
|
+
import { Grid } from "@elliemae/ds-grid";
|
|
10
|
+
import Track from "./Track";
|
|
11
|
+
import Thumb from "./Thumb";
|
|
12
|
+
import {
|
|
13
|
+
LabelWrapper,
|
|
14
|
+
StyledRangeWrapper,
|
|
15
|
+
LabelText,
|
|
16
|
+
ValueText
|
|
17
|
+
} from "./styled";
|
|
18
|
+
import { conformedLabel } from "./utils";
|
|
19
|
+
import { SliderContext } from "./context";
|
|
20
|
+
const getSubArrayFromRange = (arr, [minVal, maxVal], isCustomTickMarksValues = false) => {
|
|
19
21
|
const trueMinVal = isCustomTickMarksValues ? arr[minVal] : minVal;
|
|
20
|
-
const minIndex = arr.findIndex(el => el === trueMinVal);
|
|
21
|
-
|
|
22
|
-
if (maxVal !== undefined) {
|
|
23
|
-
// if two handlers, return the found slice
|
|
22
|
+
const minIndex = arr.findIndex((el) => el === trueMinVal);
|
|
23
|
+
if (maxVal !== void 0) {
|
|
24
24
|
const trueMaxVal = isCustomTickMarksValues ? arr[maxVal] : maxVal;
|
|
25
|
-
const maxIndex = arr.findIndex(el => el === trueMaxVal);
|
|
26
|
-
if (minIndex >= 0 && maxIndex > minIndex)
|
|
25
|
+
const maxIndex = arr.findIndex((el) => el === trueMaxVal);
|
|
26
|
+
if (minIndex >= 0 && maxIndex > minIndex)
|
|
27
|
+
return arr.slice(minIndex, maxIndex + 1);
|
|
27
28
|
return [];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
}
|
|
31
30
|
return [trueMinVal];
|
|
32
31
|
};
|
|
33
|
-
|
|
34
|
-
const SliderImp = props => {
|
|
35
|
-
var _ref$current3;
|
|
36
|
-
|
|
32
|
+
const SliderImp = (props) => {
|
|
37
33
|
const {
|
|
38
34
|
containerProps,
|
|
39
35
|
disabled,
|
|
@@ -51,54 +47,46 @@ const SliderImp = props => {
|
|
|
51
47
|
} = props;
|
|
52
48
|
const ref = useRef();
|
|
53
49
|
const [width, setWidth] = useState(0);
|
|
54
|
-
const sliderUUID = useMemo(() =>
|
|
50
|
+
const sliderUUID = useMemo(() => uuidv4(), []);
|
|
55
51
|
const parsedMinValue = useMemo(() => {
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
if (customTickMarksValues?.length)
|
|
53
|
+
return 0;
|
|
58
54
|
return minValue;
|
|
59
|
-
}, [customTickMarksValues
|
|
55
|
+
}, [customTickMarksValues?.length, minValue]);
|
|
60
56
|
const parsedMaxValue = useMemo(() => {
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
if (customTickMarksValues?.length)
|
|
58
|
+
return customTickMarksValues?.length - 1;
|
|
63
59
|
return maxValue;
|
|
64
|
-
}, [customTickMarksValues
|
|
60
|
+
}, [customTickMarksValues?.length, maxValue]);
|
|
65
61
|
const parsedStep = useMemo(() => {
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
if (customTickMarksValues?.length)
|
|
63
|
+
return 1;
|
|
68
64
|
return step;
|
|
69
|
-
}, [customTickMarksValues
|
|
65
|
+
}, [customTickMarksValues?.length, step]);
|
|
70
66
|
const parsedValuesArray = useMemo(() => {
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
if (customTickMarksValues?.length)
|
|
68
|
+
return customTickMarksValues;
|
|
73
69
|
const newLength = Math.ceil(maxValue / step);
|
|
74
70
|
const valuesArray = [];
|
|
75
|
-
|
|
76
71
|
for (let i = 0; i <= newLength; i += 1) {
|
|
77
72
|
valuesArray.push(step * i);
|
|
78
73
|
}
|
|
79
|
-
|
|
80
74
|
return valuesArray;
|
|
81
|
-
}, [customTickMarksValues
|
|
82
|
-
const [rangeValues, setRangeValues] = useState(withTwoHandles ? [parsedMinValue, parsedMaxValue] : [parsedMinValue]);
|
|
83
|
-
// this is important to handle the selected range labels colors
|
|
84
|
-
|
|
75
|
+
}, [customTickMarksValues?.length, minValue, maxValue, step]);
|
|
76
|
+
const [rangeValues, setRangeValues] = useState(withTwoHandles ? [parsedMinValue, parsedMaxValue] : [parsedMinValue]);
|
|
85
77
|
const [fullSelectedValues, setFullSelectedValues] = useState([]);
|
|
86
78
|
useEffect(() => {
|
|
87
|
-
const selectedRangeValues = getSubArrayFromRange(parsedValuesArray, rangeValues, !!
|
|
79
|
+
const selectedRangeValues = getSubArrayFromRange(parsedValuesArray, rangeValues, !!customTickMarksValues?.length);
|
|
88
80
|
setFullSelectedValues(selectedRangeValues);
|
|
89
|
-
}, [parsedValuesArray, rangeValues, customTickMarksValues
|
|
81
|
+
}, [parsedValuesArray, rangeValues, customTickMarksValues?.length]);
|
|
90
82
|
const prevWithTwoHandles = usePrevious(withTwoHandles);
|
|
91
|
-
|
|
92
83
|
const resizeHandler = () => {
|
|
93
|
-
var _ref$current;
|
|
94
|
-
|
|
95
84
|
setWidth(0);
|
|
96
|
-
setWidth(
|
|
85
|
+
setWidth(ref.current?.clientWidth);
|
|
97
86
|
};
|
|
98
|
-
|
|
99
87
|
useEffect(() => {
|
|
100
|
-
window.addEventListener(
|
|
101
|
-
return () => window.removeEventListener(
|
|
88
|
+
window.addEventListener("resize", resizeHandler);
|
|
89
|
+
return () => window.removeEventListener("resize", resizeHandler);
|
|
102
90
|
});
|
|
103
91
|
useEffect(() => {
|
|
104
92
|
if (!prevWithTwoHandles && withTwoHandles) {
|
|
@@ -108,85 +96,78 @@ const SliderImp = props => {
|
|
|
108
96
|
}
|
|
109
97
|
}, [withTwoHandles]);
|
|
110
98
|
useEffect(() => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
maxValue: parsedMaxValue,
|
|
141
|
-
step: parsedStep,
|
|
142
|
-
parsedValuesArray,
|
|
143
|
-
withTickMarks,
|
|
144
|
-
withTickMarksValues,
|
|
145
|
-
withTwoHandles,
|
|
146
|
-
customTickMarksValues,
|
|
147
|
-
rangeValues,
|
|
148
|
-
fullSelectedValues,
|
|
149
|
-
zIndex
|
|
150
|
-
}
|
|
151
|
-
}, void 0, finalLabelText && /*#__PURE__*/_jsx(LabelWrapper, {
|
|
152
|
-
width: width
|
|
153
|
-
}, void 0, /*#__PURE__*/_jsx(DSTruncatedTooltipText, {
|
|
154
|
-
value: SliderLabel
|
|
155
|
-
})), /*#__PURE__*/_jsx(StyledRangeWrapper, {}, void 0, /*#__PURE__*/_jsx(Range, {
|
|
99
|
+
setWidth(ref.current?.clientWidth);
|
|
100
|
+
}, [ref.current?.clientWidth]);
|
|
101
|
+
const [finalLabelText, finalValueText] = useMemo(() => conformedLabel(rangeValues, label, labelWithValue, withTwoHandles, customTickMarksValues, parsedStep), [
|
|
102
|
+
rangeValues,
|
|
103
|
+
label,
|
|
104
|
+
labelWithValue,
|
|
105
|
+
withTwoHandles,
|
|
106
|
+
customTickMarksValues,
|
|
107
|
+
parsedStep
|
|
108
|
+
]);
|
|
109
|
+
const SliderLabel = /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(LabelText, null, finalLabelText), finalLabelText && " ", /* @__PURE__ */ React2.createElement(ValueText, {
|
|
110
|
+
disabled
|
|
111
|
+
}, finalValueText));
|
|
112
|
+
return /* @__PURE__ */ React2.createElement(TooltipTextProvider, null, /* @__PURE__ */ React2.createElement("div", {
|
|
113
|
+
ref
|
|
114
|
+
}, /* @__PURE__ */ React2.createElement(Grid, {
|
|
115
|
+
width: "100%",
|
|
116
|
+
style: { maxWidth: "100%" },
|
|
117
|
+
containerProps,
|
|
118
|
+
"data-testid": "slider",
|
|
119
|
+
rows: ["auto", "auto"]
|
|
120
|
+
}, /* @__PURE__ */ React2.createElement(SliderContext.Provider, {
|
|
121
|
+
value: {
|
|
122
|
+
disabled,
|
|
123
|
+
sliderUUID,
|
|
124
|
+
label,
|
|
125
|
+
labelWithValue,
|
|
126
|
+
minValue: parsedMinValue,
|
|
127
|
+
maxValue: parsedMaxValue,
|
|
156
128
|
step: parsedStep,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
129
|
+
parsedValuesArray,
|
|
130
|
+
withTickMarks,
|
|
131
|
+
withTickMarksValues,
|
|
132
|
+
withTwoHandles,
|
|
133
|
+
customTickMarksValues,
|
|
134
|
+
rangeValues,
|
|
135
|
+
fullSelectedValues,
|
|
136
|
+
zIndex
|
|
137
|
+
}
|
|
138
|
+
}, finalLabelText && /* @__PURE__ */ React2.createElement(LabelWrapper, {
|
|
139
|
+
width
|
|
140
|
+
}, /* @__PURE__ */ React2.createElement(DSTruncatedTooltipText, {
|
|
141
|
+
value: SliderLabel
|
|
142
|
+
})), /* @__PURE__ */ React2.createElement(StyledRangeWrapper, null, /* @__PURE__ */ React2.createElement(Range, {
|
|
143
|
+
step: parsedStep,
|
|
144
|
+
min: parsedMinValue,
|
|
145
|
+
max: parsedMaxValue,
|
|
146
|
+
values: rangeValues,
|
|
147
|
+
disabled,
|
|
148
|
+
onChange: (values) => {
|
|
149
|
+
if (withTwoHandles && values[0] === values[1])
|
|
150
|
+
return;
|
|
151
|
+
setRangeValues(values);
|
|
152
|
+
onChange(values);
|
|
153
|
+
},
|
|
154
|
+
renderTrack: ({ props: trackProps, children }) => /* @__PURE__ */ React2.createElement(Track, {
|
|
155
|
+
props: trackProps
|
|
156
|
+
}, children),
|
|
157
|
+
renderThumb: (renderArgs) => {
|
|
158
|
+
const { index, props: thumbProps, isDragged } = renderArgs;
|
|
159
|
+
return /* @__PURE__ */ React2.createElement(Thumb, {
|
|
160
|
+
key: `${sliderUUID}-${thumbProps.key}`,
|
|
161
|
+
props: thumbProps,
|
|
162
|
+
isDragged,
|
|
163
|
+
index
|
|
164
|
+
});
|
|
165
|
+
},
|
|
166
|
+
allowOverlap: false
|
|
167
|
+
}))))));
|
|
168
|
+
};
|
|
169
|
+
var SliderImp_default = SliderImp;
|
|
170
|
+
export {
|
|
171
|
+
SliderImp_default as default
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=SliderImp.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/SliderImp.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { useState, useEffect, useRef, useMemo } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { Range } from 'react-range';\nimport { usePrevious } from '@elliemae/ds-utilities';\nimport DSTruncatedTooltipText, {\n TooltipTextProvider,\n} from '@elliemae/ds-truncated-tooltip-text';\nimport { Grid } from '@elliemae/ds-grid';\nimport Track from './Track';\nimport Thumb from './Thumb';\nimport {\n LabelWrapper,\n StyledRangeWrapper,\n LabelText,\n ValueText,\n} from './styled';\nimport { conformedLabel } from './utils';\nimport { SliderContext } from './context';\n\nconst getSubArrayFromRange = (\n arr,\n [minVal, maxVal], // maxValue is undefined when only one handler\n isCustomTickMarksValues = false,\n) => {\n const trueMinVal = isCustomTickMarksValues ? arr[minVal] : minVal;\n const minIndex = arr.findIndex((el) => el === trueMinVal);\n\n if (maxVal !== undefined) {\n // if two handlers, return the found slice\n const trueMaxVal = isCustomTickMarksValues ? arr[maxVal] : maxVal;\n const maxIndex = arr.findIndex((el) => el === trueMaxVal);\n\n if (minIndex >= 0 && maxIndex > minIndex)\n return arr.slice(minIndex, maxIndex + 1);\n return [];\n }\n // if only one handler, return the value in an array\n return [trueMinVal];\n};\n\nconst SliderImp = (props) => {\n const {\n containerProps,\n disabled,\n label,\n labelWithValue,\n minValue,\n maxValue,\n step,\n onChange,\n withTickMarks,\n withTickMarksValues,\n withTwoHandles,\n customTickMarksValues,\n zIndex,\n } = props;\n const ref = useRef();\n const [width, setWidth] = useState(0);\n const sliderUUID = useMemo(() => uuidv4(), []);\n\n const parsedMinValue = useMemo(() => {\n // ensure this works correctly with customTickMarksValues array\n if (customTickMarksValues?.length) return 0;\n return minValue;\n }, [customTickMarksValues?.length, minValue]);\n const parsedMaxValue = useMemo(() => {\n // ensure this works correctly with customTickMarksValues array\n if (customTickMarksValues?.length) return customTickMarksValues?.length - 1;\n return maxValue;\n }, [customTickMarksValues?.length, maxValue]);\n const parsedStep = useMemo(() => {\n // ensure this works correctly with customTickMarksValues array\n if (customTickMarksValues?.length) return 1;\n return step;\n }, [customTickMarksValues?.length, step]);\n\n const parsedValuesArray = useMemo(() => {\n // ensure this works correctly with customTickMarksValues array\n if (customTickMarksValues?.length) return customTickMarksValues;\n const newLength = Math.ceil(maxValue / step);\n const valuesArray = [];\n for (let i = 0; i <= newLength; i += 1) {\n valuesArray.push(step * i);\n }\n\n return valuesArray;\n }, [customTickMarksValues?.length, minValue, maxValue, step]);\n\n const [rangeValues, setRangeValues] = useState(\n withTwoHandles ? [parsedMinValue, parsedMaxValue] : [parsedMinValue],\n );\n // track the full slice of values selected instead of only the limits\n // this is important to handle the selected range labels colors\n const [fullSelectedValues, setFullSelectedValues] = useState([]);\n useEffect(() => {\n const selectedRangeValues = getSubArrayFromRange(\n parsedValuesArray,\n rangeValues,\n !!customTickMarksValues?.length,\n );\n setFullSelectedValues(selectedRangeValues);\n }, [parsedValuesArray, rangeValues, customTickMarksValues?.length]);\n\n const prevWithTwoHandles = usePrevious(withTwoHandles);\n const resizeHandler = () => {\n setWidth(0);\n setWidth(ref.current?.clientWidth);\n };\n useEffect(() => {\n window.addEventListener('resize', resizeHandler);\n return () => window.removeEventListener('resize', resizeHandler);\n });\n useEffect(() => {\n if (!prevWithTwoHandles && withTwoHandles) {\n setRangeValues([parsedMinValue, parsedMaxValue]);\n } else if (prevWithTwoHandles && !withTwoHandles) {\n setRangeValues([parsedMinValue]);\n }\n }, [withTwoHandles]);\n\n useEffect(() => {\n setWidth(ref.current?.clientWidth);\n }, [ref.current?.clientWidth]);\n\n const [finalLabelText, finalValueText] = useMemo(\n () =>\n conformedLabel(\n rangeValues,\n label,\n labelWithValue,\n withTwoHandles,\n customTickMarksValues,\n parsedStep,\n ),\n [\n rangeValues,\n label,\n labelWithValue,\n withTwoHandles,\n customTickMarksValues,\n parsedStep,\n ],\n );\n\n const SliderLabel = (\n <>\n <LabelText>{finalLabelText}</LabelText>\n {finalLabelText && ' '}\n <ValueText disabled={disabled}>{finalValueText}</ValueText>\n </>\n );\n\n return (\n <TooltipTextProvider>\n <div ref={ref}>\n <Grid\n width=\"100%\"\n style={{ maxWidth: '100%' }}\n containerProps={containerProps}\n data-testid=\"slider\"\n rows={['auto', 'auto']}\n >\n <SliderContext.Provider\n value={{\n disabled,\n sliderUUID,\n label,\n labelWithValue,\n minValue: parsedMinValue,\n maxValue: parsedMaxValue,\n step: parsedStep,\n parsedValuesArray,\n withTickMarks,\n withTickMarksValues,\n withTwoHandles,\n customTickMarksValues,\n rangeValues,\n fullSelectedValues,\n zIndex,\n }}\n >\n {finalLabelText && (\n <LabelWrapper width={width}>\n <DSTruncatedTooltipText value={SliderLabel} />\n </LabelWrapper>\n )}\n <StyledRangeWrapper>\n <Range\n step={parsedStep}\n min={parsedMinValue}\n max={parsedMaxValue}\n values={rangeValues}\n disabled={disabled}\n onChange={(values) => {\n if (withTwoHandles && values[0] === values[1]) return;\n setRangeValues(values);\n onChange(values);\n }}\n renderTrack={({ props: trackProps, children }) => (\n <Track props={trackProps}>{children}</Track>\n )}\n renderThumb={(renderArgs) => {\n const { index, props: thumbProps, isDragged } = renderArgs;\n return (\n <Thumb\n key={`${sliderUUID}-${thumbProps.key}`}\n props={thumbProps}\n isDragged={isDragged}\n index={index}\n />\n );\n }}\n allowOverlap={false}\n />\n </StyledRangeWrapper>\n </SliderContext.Provider>\n </Grid>\n </div>\n </TooltipTextProvider>\n );\n};\n\n// SliderImp.propTypes = sliderPropTypes;\n\nexport default SliderImp;\n"],
|
|
5
|
+
"mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AAEA,MAAM,uBAAuB,CAC3B,KACA,CAAC,QAAQ,SACT,0BAA0B,UACvB;AACH,QAAM,aAAa,0BAA0B,IAAI,UAAU;AAC3D,QAAM,WAAW,IAAI,UAAU,CAAC,OAAO,OAAO;AAE9C,MAAI,WAAW,QAAW;AAExB,UAAM,aAAa,0BAA0B,IAAI,UAAU;AAC3D,UAAM,WAAW,IAAI,UAAU,CAAC,OAAO,OAAO;AAE9C,QAAI,YAAY,KAAK,WAAW;AAC9B,aAAO,IAAI,MAAM,UAAU,WAAW;AACxC,WAAO;AAAA;AAGT,SAAO,CAAC;AAAA;AAGV,MAAM,YAAY,CAAC,UAAU;AAC3B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AACJ,QAAM,MAAM;AACZ,QAAM,CAAC,OAAO,YAAY,SAAS;AACnC,QAAM,aAAa,QAAQ,MAAM,UAAU;AAE3C,QAAM,iBAAiB,QAAQ,MAAM;AAEnC,QAAI,uBAAuB;AAAQ,aAAO;AAC1C,WAAO;AAAA,KACN,CAAC,uBAAuB,QAAQ;AACnC,QAAM,iBAAiB,QAAQ,MAAM;AAEnC,QAAI,uBAAuB;AAAQ,aAAO,uBAAuB,SAAS;AAC1E,WAAO;AAAA,KACN,CAAC,uBAAuB,QAAQ;AACnC,QAAM,aAAa,QAAQ,MAAM;AAE/B,QAAI,uBAAuB;AAAQ,aAAO;AAC1C,WAAO;AAAA,KACN,CAAC,uBAAuB,QAAQ;AAEnC,QAAM,oBAAoB,QAAQ,MAAM;AAEtC,QAAI,uBAAuB;AAAQ,aAAO;AAC1C,UAAM,YAAY,KAAK,KAAK,WAAW;AACvC,UAAM,cAAc;AACpB,aAAS,IAAI,GAAG,KAAK,WAAW,KAAK,GAAG;AACtC,kBAAY,KAAK,OAAO;AAAA;AAG1B,WAAO;AAAA,KACN,CAAC,uBAAuB,QAAQ,UAAU,UAAU;AAEvD,QAAM,CAAC,aAAa,kBAAkB,SACpC,iBAAiB,CAAC,gBAAgB,kBAAkB,CAAC;AAIvD,QAAM,CAAC,oBAAoB,yBAAyB,SAAS;AAC7D,YAAU,MAAM;AACd,UAAM,sBAAsB,qBAC1B,mBACA,aACA,CAAC,CAAC,uBAAuB;AAE3B,0BAAsB;AAAA,KACrB,CAAC,mBAAmB,aAAa,uBAAuB;AAE3D,QAAM,qBAAqB,YAAY;AACvC,QAAM,gBAAgB,MAAM;AAC1B,aAAS;AACT,aAAS,IAAI,SAAS;AAAA;AAExB,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU;AAClC,WAAO,MAAM,OAAO,oBAAoB,UAAU;AAAA;AAEpD,YAAU,MAAM;AACd,QAAI,CAAC,sBAAsB,gBAAgB;AACzC,qBAAe,CAAC,gBAAgB;AAAA,eACvB,sBAAsB,CAAC,gBAAgB;AAChD,qBAAe,CAAC;AAAA;AAAA,KAEjB,CAAC;AAEJ,YAAU,MAAM;AACd,aAAS,IAAI,SAAS;AAAA,KACrB,CAAC,IAAI,SAAS;AAEjB,QAAM,CAAC,gBAAgB,kBAAkB,QACvC,MACE,eACE,aACA,OACA,gBACA,gBACA,uBACA,aAEJ;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIJ,QAAM,cACJ,4DACE,qCAAC,WAAD,MAAY,iBACX,kBAAkB,KACnB,qCAAC,WAAD;AAAA,IAAW;AAAA,KAAqB;AAIpC,SACE,qCAAC,qBAAD,MACE,qCAAC,OAAD;AAAA,IAAK;AAAA,KACH,qCAAC,MAAD;AAAA,IACE,OAAM;AAAA,IACN,OAAO,EAAE,UAAU;AAAA,IACnB;AAAA,IACA,eAAY;AAAA,IACZ,MAAM,CAAC,QAAQ;AAAA,KAEf,qCAAC,cAAc,UAAf;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,UAAU;AAAA,MACV,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,KAGD,kBACC,qCAAC,cAAD;AAAA,IAAc;AAAA,KACZ,qCAAC,wBAAD;AAAA,IAAwB,OAAO;AAAA,OAGnC,qCAAC,oBAAD,MACE,qCAAC,OAAD;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,IACR;AAAA,IACA,UAAU,CAAC,WAAW;AACpB,UAAI,kBAAkB,OAAO,OAAO,OAAO;AAAI;AAC/C,qBAAe;AACf,eAAS;AAAA;AAAA,IAEX,aAAa,CAAC,EAAE,OAAO,YAAY,eACjC,qCAAC,OAAD;AAAA,MAAO,OAAO;AAAA,OAAa;AAAA,IAE7B,aAAa,CAAC,eAAe;AAC3B,YAAM,EAAE,OAAO,OAAO,YAAY,cAAc;AAChD,aACE,qCAAC,OAAD;AAAA,QACE,KAAK,GAAG,cAAc,WAAW;AAAA,QACjC,OAAO;AAAA,QACP;AAAA,QACA;AAAA;AAAA;AAAA,IAIN,cAAc;AAAA;AAAA;AAY9B,IAAO,oBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/components/Thumb.js
CHANGED
|
@@ -1,30 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
import { useState, useContext } from 'react';
|
|
10
|
-
import { TooltipText } from '@elliemae/ds-tooltip';
|
|
11
|
-
import { SliderContext } from './context.js';
|
|
12
|
-
import { conformedThumbLabel } from './utils.js';
|
|
13
|
-
import { ThumbStyled, TooltipContainerStyled, TooltipArrow } from './styled.js';
|
|
14
|
-
import { jsx } from 'react/jsx-runtime';
|
|
15
|
-
|
|
16
|
-
var _TooltipArrow;
|
|
17
|
-
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
-
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
|
|
22
|
-
const Thumb = _ref => {
|
|
23
|
-
let {
|
|
24
|
-
index,
|
|
25
|
-
props,
|
|
26
|
-
isDragged
|
|
27
|
-
} = _ref;
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useContext, useState } from "react";
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import { TooltipText } from "@elliemae/ds-tooltip";
|
|
5
|
+
import { SliderContext } from "./context";
|
|
6
|
+
import { conformedThumbLabel } from "./utils";
|
|
7
|
+
import { ThumbStyled, TooltipContainerStyled, TooltipArrow } from "./styled";
|
|
8
|
+
const Thumb = ({ index, props, isDragged }) => {
|
|
28
9
|
const [isHovered, setIsHovered] = useState(false);
|
|
29
10
|
const {
|
|
30
11
|
disabled,
|
|
@@ -34,31 +15,29 @@ const Thumb = _ref => {
|
|
|
34
15
|
step,
|
|
35
16
|
minValue
|
|
36
17
|
} = useContext(SliderContext);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
);
|
|
18
|
+
const cleanedProps = { ...props };
|
|
19
|
+
return /* @__PURE__ */ React2.createElement(ThumbStyled, {
|
|
20
|
+
...cleanedProps,
|
|
21
|
+
"data-testid": "slider-thumb",
|
|
22
|
+
disabled,
|
|
23
|
+
style: { ...cleanedProps.style, zIndex },
|
|
24
|
+
index,
|
|
25
|
+
onMouseEnter: () => setIsHovered(true),
|
|
26
|
+
onMouseLeave: () => setIsHovered(false)
|
|
27
|
+
}, /* @__PURE__ */ React2.createElement(TooltipContainerStyled, {
|
|
28
|
+
isDragged,
|
|
29
|
+
isHovered
|
|
30
|
+
}, /* @__PURE__ */ React2.createElement(TooltipText, null, conformedThumbLabel(rangeValues, customTickMarksValues, index, step, minValue)), /* @__PURE__ */ React2.createElement(TooltipArrow, null)));
|
|
31
|
+
};
|
|
32
|
+
Thumb.propTypes = {
|
|
33
|
+
index: PropTypes.number,
|
|
34
|
+
props: PropTypes.shape({
|
|
35
|
+
style: PropTypes.shape({}).isRequired
|
|
36
|
+
}).isRequired,
|
|
37
|
+
isDragged: PropTypes.bool
|
|
38
|
+
};
|
|
39
|
+
var Thumb_default = Thumb;
|
|
40
|
+
export {
|
|
41
|
+
Thumb_default as default
|
|
62
42
|
};
|
|
63
|
-
|
|
64
|
-
export { Thumb as default };
|
|
43
|
+
//# sourceMappingURL=Thumb.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/Thumb.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { TooltipText } from '@elliemae/ds-tooltip';\nimport { SliderContext } from './context';\nimport { conformedThumbLabel } from './utils';\nimport { ThumbStyled, TooltipContainerStyled, TooltipArrow } from './styled';\n\nconst Thumb = ({ index, props, isDragged }) => {\n const [isHovered, setIsHovered] = useState(false);\n const {\n disabled,\n rangeValues,\n zIndex,\n customTickMarksValues,\n step,\n minValue,\n } = useContext(SliderContext);\n\n const cleanedProps = { ...props };\n // delete cleanedProps.key;\n // delete cleanedProps.draggable;\n return (\n // ...props is needed because it's received from the library\n // ...props.style has it own style from the library but has a bug with the zIndex for two thumbs, so that's why it has to be overwrite\n <ThumbStyled\n {...cleanedProps}\n data-testid=\"slider-thumb\"\n disabled={disabled}\n // eslint-disable-next-line react/prop-types\n style={{ ...cleanedProps.style, zIndex }}\n index={index}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <TooltipContainerStyled isDragged={isDragged} isHovered={isHovered}>\n <TooltipText>\n {conformedThumbLabel(\n rangeValues,\n customTickMarksValues,\n index,\n step,\n minValue,\n )}\n </TooltipText>\n <TooltipArrow />\n </TooltipContainerStyled>\n </ThumbStyled>\n );\n};\n\nThumb.propTypes = {\n index: PropTypes.number,\n props: PropTypes.shape({\n style: PropTypes.shape({}).isRequired,\n }).isRequired,\n isDragged: PropTypes.bool,\n};\n\nexport default Thumb;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,QAAQ,CAAC,EAAE,OAAO,OAAO,gBAAgB;AAC7C,QAAM,CAAC,WAAW,gBAAgB,SAAS;AAC3C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW;AAEf,QAAM,eAAe,KAAK;AAG1B,SAGE,qCAAC,aAAD;AAAA,OACM;AAAA,IACJ,eAAY;AAAA,IACZ;AAAA,IAEA,OAAO,KAAK,aAAa,OAAO;AAAA,IAChC;AAAA,IACA,cAAc,MAAM,aAAa;AAAA,IACjC,cAAc,MAAM,aAAa;AAAA,KAEjC,qCAAC,wBAAD;AAAA,IAAwB;AAAA,IAAsB;AAAA,KAC5C,qCAAC,aAAD,MACG,oBACC,aACA,uBACA,OACA,MACA,YAGJ,qCAAC,cAAD;AAAA;AAMR,MAAM,YAAY;AAAA,EAChB,OAAO,UAAU;AAAA,EACjB,OAAO,UAAU,MAAM;AAAA,IACrB,OAAO,UAAU,MAAM,IAAI;AAAA,KAC1B;AAAA,EACH,WAAW,UAAU;AAAA;AAGvB,IAAO,gBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useContext } from
|
|
3
|
-
import styled from
|
|
4
|
-
import { __UNSAFE_SPACE_TO_DIMSUM } from
|
|
5
|
-
import { SliderContext } from
|
|
6
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useContext } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { __UNSAFE_SPACE_TO_DIMSUM } from "@elliemae/ds-system";
|
|
5
|
+
import { SliderContext } from "./context";
|
|
7
6
|
const TickMarks = () => {
|
|
8
7
|
const {
|
|
9
8
|
minValue,
|
|
@@ -14,26 +13,46 @@ const TickMarks = () => {
|
|
|
14
13
|
zIndex
|
|
15
14
|
} = useContext(SliderContext);
|
|
16
15
|
const dots = [];
|
|
17
|
-
|
|
18
16
|
for (let index = minValue || 0; index <= maxValue; index += step) {
|
|
19
17
|
const isActive = withTwoHandles ? rangeValues[0] <= index && index < rangeValues[1] : rangeValues[0] > index;
|
|
20
|
-
dots.push(
|
|
18
|
+
dots.push(/* @__PURE__ */ React2.createElement(Dot, {
|
|
21
19
|
"data-testid": "slider-dot",
|
|
22
|
-
isActive
|
|
23
|
-
|
|
20
|
+
isActive,
|
|
21
|
+
key: index
|
|
22
|
+
}));
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
return /*#__PURE__*/_jsx(DotsContainer, {
|
|
24
|
+
return /* @__PURE__ */ React2.createElement(DotsContainer, {
|
|
27
25
|
"data-testid": "slider-tick-marks",
|
|
28
|
-
zIndex
|
|
29
|
-
},
|
|
26
|
+
zIndex
|
|
27
|
+
}, dots);
|
|
28
|
+
};
|
|
29
|
+
const Dot = styled.div`
|
|
30
|
+
&:after {
|
|
31
|
+
content: '';
|
|
32
|
+
background: ${(props) => props.isActive ? props.theme.colors.brand[300] : props.theme.colors.neutral[400]};
|
|
33
|
+
border-radius: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs)};
|
|
34
|
+
display: block;
|
|
35
|
+
position: relative;
|
|
36
|
+
width: 2px;
|
|
37
|
+
height: 2px;
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
const DotsContainer = styled.div`
|
|
41
|
+
padding: 0
|
|
42
|
+
calc(${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs)} * 0.5);
|
|
43
|
+
align-items: center;
|
|
44
|
+
display: flex;
|
|
45
|
+
justify-content: space-between;
|
|
46
|
+
pointer-events: none;
|
|
47
|
+
position: absolute;
|
|
48
|
+
top: 0;
|
|
49
|
+
left: 0;
|
|
50
|
+
right: 0;
|
|
51
|
+
bottom: 0;
|
|
52
|
+
z-index: ${(props) => props.zIndex - 1};
|
|
53
|
+
`;
|
|
54
|
+
var TickMarks_default = TickMarks;
|
|
55
|
+
export {
|
|
56
|
+
TickMarks_default as default
|
|
30
57
|
};
|
|
31
|
-
|
|
32
|
-
const Dot = /*#__PURE__*/styled.div.withConfig({
|
|
33
|
-
componentId: "sc-15z2sh4-0"
|
|
34
|
-
})(["&:after{content:'';background:", ";border-radius:", ";display:block;position:relative;width:2px;height:2px;}"], props => props.isActive ? props.theme.colors.brand[300] : props.theme.colors.neutral[400], props => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs));
|
|
35
|
-
const DotsContainer = /*#__PURE__*/styled.div.withConfig({
|
|
36
|
-
componentId: "sc-15z2sh4-1"
|
|
37
|
-
})(["padding:0 calc(", " * 0.5);align-items:center;display:flex;justify-content:space-between;pointer-events:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:", ";"], props => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs), props => props.zIndex - 1);
|
|
38
|
-
|
|
39
|
-
export { TickMarks as default };
|
|
58
|
+
//# sourceMappingURL=TickMarks.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/TickMarks.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable indent */\nimport React, { useContext } from 'react';\nimport styled from 'styled-components';\nimport { __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\nimport { SliderContext } from './context';\n\nconst TickMarks = () => {\n const {\n minValue,\n maxValue,\n rangeValues,\n step,\n withTwoHandles,\n zIndex,\n } = useContext(SliderContext);\n const dots = [];\n\n for (let index = minValue || 0; index <= maxValue; index += step) {\n const isActive = withTwoHandles\n ? rangeValues[0] <= index && index < rangeValues[1]\n : rangeValues[0] > index;\n dots.push(<Dot data-testid=\"slider-dot\" isActive={isActive} key={index} />);\n }\n\n return (\n <DotsContainer data-testid=\"slider-tick-marks\" zIndex={zIndex}>\n {dots}\n </DotsContainer>\n );\n};\n\nconst Dot = styled.div`\n &:after {\n content: '';\n background: ${(props) =>\n props.isActive\n ? props.theme.colors.brand[300]\n : props.theme.colors.neutral[400]};\n border-radius: ${(props) =>\n __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs)};\n display: block;\n position: relative;\n width: 2px;\n height: 2px;\n }\n`;\n\nconst DotsContainer = styled.div`\n padding: 0\n calc(${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs)} * 0.5);\n align-items: center;\n display: flex;\n justify-content: space-between;\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: ${(props) => props.zIndex - 1};\n`;\n\nexport default TickMarks;\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AACA;AACA;AAEA,MAAM,YAAY,MAAM;AACtB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW;AACf,QAAM,OAAO;AAEb,WAAS,QAAQ,YAAY,GAAG,SAAS,UAAU,SAAS,MAAM;AAChE,UAAM,WAAW,iBACb,YAAY,MAAM,SAAS,QAAQ,YAAY,KAC/C,YAAY,KAAK;AACrB,SAAK,KAAK,qCAAC,KAAD;AAAA,MAAK,eAAY;AAAA,MAAa;AAAA,MAAoB,KAAK;AAAA;AAAA;AAGnE,SACE,qCAAC,eAAD;AAAA,IAAe,eAAY;AAAA,IAAoB;AAAA,KAC5C;AAAA;AAKP,MAAM,MAAM,OAAO;AAAA;AAAA;AAAA,kBAGD,CAAC,UACb,MAAM,WACF,MAAM,MAAM,OAAO,MAAM,OACzB,MAAM,MAAM,OAAO,QAAQ;AAAA,qBAChB,CAAC,UAChB,yBAAyB,MAAM,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQjD,MAAM,gBAAgB,OAAO;AAAA;AAAA,WAElB,CAAC,UAAU,yBAAyB,MAAM,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAUpD,CAAC,UAAU,MAAM,SAAS;AAAA;AAGvC,IAAO,oBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,36 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';
|
|
7
|
-
import { SliderContext } from './context.js';
|
|
8
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useContext, useMemo } from "react";
|
|
3
|
+
import styled from "styled-components";
|
|
4
|
+
import { __UNSAFE_SPACE_TO_DIMSUM } from "@elliemae/ds-system";
|
|
5
|
+
import { SliderContext } from "./context";
|
|
9
6
|
const TickMarks = () => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const TickMarksLabels = useMemo(() => parsedValuesArray.map(value => {
|
|
18
|
-
const isSelected = fullSelectedValues.findIndex(selectedVal => selectedVal === value) >= 0;
|
|
19
|
-
return /*#__PURE__*/_jsx(TickMarkValue, {
|
|
20
|
-
isSelected: isSelected
|
|
21
|
-
}, "".concat(sliderUUID, "-").concat(value), value);
|
|
7
|
+
const { parsedValuesArray, fullSelectedValues, sliderUUID } = useContext(SliderContext);
|
|
8
|
+
const TickMarksLabels = useMemo(() => parsedValuesArray.map((value) => {
|
|
9
|
+
const isSelected = fullSelectedValues.findIndex((selectedVal) => selectedVal === value) >= 0;
|
|
10
|
+
return /* @__PURE__ */ React2.createElement(TickMarkValue, {
|
|
11
|
+
key: `${sliderUUID}-${value}`,
|
|
12
|
+
isSelected
|
|
13
|
+
}, value);
|
|
22
14
|
}), [parsedValuesArray, sliderUUID, fullSelectedValues]);
|
|
23
|
-
const PureTickMArksValues = useMemo(() =>
|
|
15
|
+
const PureTickMArksValues = useMemo(() => /* @__PURE__ */ React2.createElement(TickMarksContainer, {
|
|
24
16
|
"data-testid": "slider-tick-marks-values"
|
|
25
|
-
},
|
|
17
|
+
}, TickMarksLabels), [TickMarksLabels]);
|
|
26
18
|
return PureTickMArksValues;
|
|
27
19
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
const TickMarkValue = styled.div`
|
|
21
|
+
margin: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.s)} 0;
|
|
22
|
+
overflow: visible;
|
|
23
|
+
transform: translateX(-100%);
|
|
24
|
+
width: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs)};
|
|
25
|
+
color: ${(props) => props.isSelected ? props.theme.colors.neutral[800] : props.theme.colors.neutral[500]};
|
|
26
|
+
`;
|
|
27
|
+
const TickMarksContainer = styled.div`
|
|
28
|
+
display: flex;
|
|
29
|
+
justify-content: space-between;
|
|
30
|
+
`;
|
|
31
|
+
var TickMarksValues_default = TickMarks;
|
|
32
|
+
export {
|
|
33
|
+
TickMarksValues_default as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=TickMarksValues.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/TickMarksValues.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-plusplus */\nimport React, { useContext, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\nimport { SliderContext } from './context';\n\nconst TickMarks = () => {\n const { parsedValuesArray, fullSelectedValues, sliderUUID } = useContext(\n SliderContext,\n );\n\n const TickMarksLabels = useMemo(\n () =>\n parsedValuesArray.map((value) => {\n const isSelected =\n fullSelectedValues.findIndex(\n (selectedVal) => selectedVal === value,\n ) >= 0;\n return (\n <TickMarkValue key={`${sliderUUID}-${value}`} isSelected={isSelected}>\n {value}\n </TickMarkValue>\n );\n }),\n\n [parsedValuesArray, sliderUUID, fullSelectedValues],\n );\n\n const PureTickMArksValues = useMemo(\n () => (\n <TickMarksContainer data-testid=\"slider-tick-marks-values\">\n {TickMarksLabels}\n </TickMarksContainer>\n ),\n [TickMarksLabels],\n );\n\n return PureTickMArksValues;\n};\n\nconst TickMarkValue = styled.div`\n margin: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.s)} 0;\n overflow: visible;\n transform: translateX(-100%);\n width: ${(props) => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xxs)};\n color: ${(props) =>\n props.isSelected\n ? props.theme.colors.neutral[800]\n : props.theme.colors.neutral[500]};\n`;\n\nconst TickMarksContainer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport default TickMarks;\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AACA;AACA;AAEA,MAAM,YAAY,MAAM;AACtB,QAAM,EAAE,mBAAmB,oBAAoB,eAAe,WAC5D;AAGF,QAAM,kBAAkB,QACtB,MACE,kBAAkB,IAAI,CAAC,UAAU;AAC/B,UAAM,aACJ,mBAAmB,UACjB,CAAC,gBAAgB,gBAAgB,UAC9B;AACP,WACE,qCAAC,eAAD;AAAA,MAAe,KAAK,GAAG,cAAc;AAAA,MAAS;AAAA,OAC3C;AAAA,MAKT,CAAC,mBAAmB,YAAY;AAGlC,QAAM,sBAAsB,QAC1B,MACE,qCAAC,oBAAD;AAAA,IAAoB,eAAY;AAAA,KAC7B,kBAGL,CAAC;AAGH,SAAO;AAAA;AAGT,MAAM,gBAAgB,OAAO;AAAA,YACjB,CAAC,UAAU,yBAAyB,MAAM,MAAM,MAAM;AAAA;AAAA;AAAA,WAGvD,CAAC,UAAU,yBAAyB,MAAM,MAAM,MAAM;AAAA,WACtD,CAAC,UACR,MAAM,aACF,MAAM,MAAM,OAAO,QAAQ,OAC3B,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGnC,MAAM,qBAAqB,OAAO;AAAA;AAAA;AAAA;AAKlC,IAAO,0BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|