@sentropic/dataviz-react 0.4.0 → 0.4.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.
|
@@ -14,6 +14,7 @@ export type RangeSliderFilterProps = {
|
|
|
14
14
|
/** Upper bound of the track; defaults to the data maximum. */
|
|
15
15
|
max?: number;
|
|
16
16
|
step?: number;
|
|
17
|
+
className?: string;
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
20
|
* Pure: the numeric `[min, max]` domain of a dimension across rows (finite
|
|
@@ -21,13 +22,13 @@ export type RangeSliderFilterProps = {
|
|
|
21
22
|
*/
|
|
22
23
|
export declare function numericDomain(data: readonly Row[], dimension: string): NumericDomain;
|
|
23
24
|
/**
|
|
24
|
-
* Pure: two slider handles → a core `range` FilterSpec (bounds
|
|
25
|
-
* `lo <= hi`), or `null` when they span the whole domain
|
|
25
|
+
* Pure: the two range-slider handles → a core `range` FilterSpec (bounds
|
|
26
|
+
* normalized so `lo <= hi`), or `null` when they span the whole domain.
|
|
26
27
|
*/
|
|
27
28
|
export declare function rangeBoundsToSpec(lower: number, upper: number, domain: NumericDomain): FilterSpec | null;
|
|
28
29
|
/**
|
|
29
|
-
* A two-handle numeric range filter
|
|
30
|
-
*
|
|
30
|
+
* A two-handle numeric range filter built on the design-system RangeSlider,
|
|
31
|
+
* bound to a core `range` filter on a continuous dimension.
|
|
31
32
|
*/
|
|
32
|
-
export declare function RangeSliderFilter({ store, dimension, label, min, max, step }: RangeSliderFilterProps): import("react").JSX.Element;
|
|
33
|
+
export declare function RangeSliderFilter({ store, dimension, label, min, max, step, className }: RangeSliderFilterProps): import("react").JSX.Element;
|
|
33
34
|
//# sourceMappingURL=RangeSliderFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSliderFilter.d.ts","sourceRoot":"","sources":["../../src/lib/RangeSliderFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAExG,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,sCAAsC;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RangeSliderFilter.d.ts","sourceRoot":"","sources":["../../src/lib/RangeSliderFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAExG,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,sCAAsC;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAWpF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CAKxG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAQ,EAAE,SAAS,EAAE,EAAE,sBAAsB,+BA0BnH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { RangeSlider } from '@sentropic/design-system-react';
|
|
4
4
|
import { findDimension } from '@sentropic/dataviz-core';
|
|
5
5
|
/**
|
|
6
6
|
* Pure: the numeric `[min, max]` domain of a dimension across rows (finite
|
|
@@ -21,8 +21,8 @@ export function numericDomain(data, dimension) {
|
|
|
21
21
|
return min === Infinity ? { min: 0, max: 0 } : { min, max };
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Pure: two slider handles → a core `range` FilterSpec (bounds
|
|
25
|
-
* `lo <= hi`), or `null` when they span the whole domain
|
|
24
|
+
* Pure: the two range-slider handles → a core `range` FilterSpec (bounds
|
|
25
|
+
* normalized so `lo <= hi`), or `null` when they span the whole domain.
|
|
26
26
|
*/
|
|
27
27
|
export function rangeBoundsToSpec(lower, upper, domain) {
|
|
28
28
|
const lo = Math.min(lower, upper);
|
|
@@ -32,24 +32,23 @@ export function rangeBoundsToSpec(lower, upper, domain) {
|
|
|
32
32
|
return { kind: 'range', min: lo, max: hi };
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
* A two-handle numeric range filter
|
|
36
|
-
*
|
|
35
|
+
* A two-handle numeric range filter built on the design-system RangeSlider,
|
|
36
|
+
* bound to a core `range` filter on a continuous dimension.
|
|
37
37
|
*/
|
|
38
|
-
export function RangeSliderFilter({ store, dimension, label, min, max, step = 1 }) {
|
|
38
|
+
export function RangeSliderFilter({ store, dimension, label, min, max, step = 1, className }) {
|
|
39
39
|
const [domain] = useState(() => {
|
|
40
40
|
const d = numericDomain(store.data, dimension);
|
|
41
41
|
return { min: min ?? d.min, max: max ?? d.max };
|
|
42
42
|
});
|
|
43
43
|
const resolvedLabel = label ?? findDimension(store.model, dimension)?.label ?? dimension;
|
|
44
|
-
const [
|
|
45
|
-
const [upper, setUpper] = useState(domain.max);
|
|
44
|
+
const [value, setValue] = useState([domain.min, domain.max]);
|
|
46
45
|
useEffect(() => {
|
|
47
|
-
const spec = rangeBoundsToSpec(
|
|
46
|
+
const spec = rangeBoundsToSpec(value[0], value[1], domain);
|
|
48
47
|
if (spec)
|
|
49
48
|
store.setFilter(dimension, spec);
|
|
50
49
|
else
|
|
51
50
|
store.clearFilter(dimension);
|
|
52
|
-
}, [store, dimension,
|
|
53
|
-
return (
|
|
51
|
+
}, [store, dimension, value, domain]);
|
|
52
|
+
return (_jsx(RangeSlider, { label: resolvedLabel, value: value, min: domain.min, max: domain.max, step: step, showValue: true, className: className, onChange: setValue }));
|
|
54
53
|
}
|
|
55
54
|
//# sourceMappingURL=RangeSliderFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSliderFilter.js","sourceRoot":"","sources":["../../src/lib/RangeSliderFilter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RangeSliderFilter.js","sourceRoot":"","sources":["../../src/lib/RangeSliderFilter.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentropic/dataviz-react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "React adapter for @sentropic/dataviz-core, built on @sentropic/design-system-react.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"test": "vitest run"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@sentropic/dataviz-core": "0.4.
|
|
31
|
-
"@sentropic/design-system-react": "0.
|
|
30
|
+
"@sentropic/dataviz-core": "0.4.2",
|
|
31
|
+
"@sentropic/design-system-react": "0.23.0",
|
|
32
32
|
"@sentropic/design-system-themes": "0.11.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|