@octanejs/visx 0.1.0
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/LICENSE +21 -0
- package/README.md +67 -0
- package/UPSTREAM.md +52 -0
- package/package.json +161 -0
- package/src/a11y/components/ChartA11yAnnouncer.tsrx +40 -0
- package/src/a11y/components/ChartA11yAnnouncer.tsrx.d.ts +14 -0
- package/src/a11y/components/ChartA11yDataTable.tsrx +40 -0
- package/src/a11y/components/ChartA11yDataTable.tsrx.d.ts +9 -0
- package/src/a11y/generators/ariaProps.ts +79 -0
- package/src/a11y/generators/dataTableHTML.ts +24 -0
- package/src/a11y/generators/description.ts +125 -0
- package/src/a11y/index.ts +35 -0
- package/src/a11y/keyboard/stateMachine.ts +231 -0
- package/src/a11y/react/index.ts +59 -0
- package/src/a11y/server.ts +29 -0
- package/src/a11y/types.ts +104 -0
- package/src/a11y/useChartA11y.tsrx +144 -0
- package/src/a11y/useChartA11y.tsrx.d.ts +27 -0
- package/src/a11y/useChartKeyboardNav.tsrx +234 -0
- package/src/a11y/useChartKeyboardNav.tsrx.d.ts +26 -0
- package/src/a11y/utils/data.ts +80 -0
- package/src/a11y/utils/format.ts +73 -0
- package/src/a11y/utils/table.ts +81 -0
- package/src/annotation/components/Annotation.tsrx +14 -0
- package/src/annotation/components/Annotation.tsrx.d.ts +8 -0
- package/src/annotation/components/CircleSubject.tsrx +37 -0
- package/src/annotation/components/CircleSubject.tsrx.d.ts +12 -0
- package/src/annotation/components/Connector.tsrx +75 -0
- package/src/annotation/components/Connector.tsrx.d.ts +14 -0
- package/src/annotation/components/EditableAnnotation.tsrx +179 -0
- package/src/annotation/components/EditableAnnotation.tsrx.d.ts +33 -0
- package/src/annotation/components/HtmlLabel.tsrx +93 -0
- package/src/annotation/components/HtmlLabel.tsrx.d.ts +10 -0
- package/src/annotation/components/Label.tsrx +249 -0
- package/src/annotation/components/Label.tsrx.d.ts +60 -0
- package/src/annotation/components/LabelAnchorLine.tsrx +32 -0
- package/src/annotation/components/LabelAnchorLine.tsrx.d.ts +12 -0
- package/src/annotation/components/LineSubject.tsrx +50 -0
- package/src/annotation/components/LineSubject.tsrx.d.ts +21 -0
- package/src/annotation/context/AnnotationContext.tsrx +6 -0
- package/src/annotation/context/AnnotationContext.tsrx.d.ts +4 -0
- package/src/annotation/index.ts +18 -0
- package/src/annotation/types/index.ts +10 -0
- package/src/axis/axis/Axis.tsrx +54 -0
- package/src/axis/axis/Axis.tsrx.d.ts +7 -0
- package/src/axis/axis/AxisBottom.tsrx +37 -0
- package/src/axis/axis/AxisBottom.tsrx.d.ts +10 -0
- package/src/axis/axis/AxisLeft.tsrx +37 -0
- package/src/axis/axis/AxisLeft.tsrx.d.ts +11 -0
- package/src/axis/axis/AxisRenderer.tsrx +102 -0
- package/src/axis/axis/AxisRenderer.tsrx.d.ts +3 -0
- package/src/axis/axis/AxisRight.tsrx +39 -0
- package/src/axis/axis/AxisRight.tsrx.d.ts +12 -0
- package/src/axis/axis/AxisTop.tsrx +38 -0
- package/src/axis/axis/AxisTop.tsrx.d.ts +11 -0
- package/src/axis/axis/Ticks.tsrx +56 -0
- package/src/axis/axis/Ticks.tsrx.d.ts +3 -0
- package/src/axis/constants/orientation.ts +12 -0
- package/src/axis/index.ts +10 -0
- package/src/axis/react/index.ts +5 -0
- package/src/axis/react/useAxis.tsrx +89 -0
- package/src/axis/react/useAxis.tsrx.d.ts +13 -0
- package/src/axis/types.ts +145 -0
- package/src/axis/utils/createPoint.ts +5 -0
- package/src/axis/utils/getAxisRangePaddingConfig.ts +11 -0
- package/src/axis/utils/getLabelTransform.ts +44 -0
- package/src/axis/utils/getTickFormatter.ts +19 -0
- package/src/axis/utils/getTickPosition.ts +28 -0
- package/src/bounds/enhancers/withBoundingRects.tsrx +59 -0
- package/src/bounds/enhancers/withBoundingRects.tsrx.d.ts +21 -0
- package/src/bounds/index.ts +6 -0
- package/src/brush/BaseBrush.tsrx +567 -0
- package/src/brush/BaseBrush.tsrx.d.ts +39 -0
- package/src/brush/Brush.tsrx +217 -0
- package/src/brush/Brush.tsrx.d.ts +56 -0
- package/src/brush/BrushCorner.tsrx +173 -0
- package/src/brush/BrushCorner.tsrx.d.ts +21 -0
- package/src/brush/BrushHandle.tsrx +222 -0
- package/src/brush/BrushHandle.tsrx.d.ts +33 -0
- package/src/brush/BrushOverlay.tsrx +18 -0
- package/src/brush/BrushOverlay.tsrx.d.ts +15 -0
- package/src/brush/BrushSelection.tsrx +181 -0
- package/src/brush/BrushSelection.tsrx.d.ts +27 -0
- package/src/brush/index.ts +9 -0
- package/src/brush/types.ts +62 -0
- package/src/brush/utils.ts +89 -0
- package/src/chart/config.ts +50 -0
- package/src/chart/domains.ts +47 -0
- package/src/chart/index.ts +33 -0
- package/src/chart/responsive.ts +3 -0
- package/src/chart/ticks.ts +90 -0
- package/src/chart/useChartDimensions.tsrx +74 -0
- package/src/chart/useChartDimensions.tsrx.d.ts +28 -0
- package/src/chord/Chord.tsrx +42 -0
- package/src/chord/Chord.tsrx.d.ts +22 -0
- package/src/chord/Ribbon.tsrx +63 -0
- package/src/chord/Ribbon.tsrx.d.ts +26 -0
- package/src/chord/index.ts +6 -0
- package/src/clip-path/clip-paths/CircleClipPath.tsrx +26 -0
- package/src/clip-path/clip-paths/CircleClipPath.tsrx.d.ts +14 -0
- package/src/clip-path/clip-paths/ClipPath.tsrx +21 -0
- package/src/clip-path/clip-paths/ClipPath.tsrx.d.ts +10 -0
- package/src/clip-path/clip-paths/RectClipPath.tsrx +28 -0
- package/src/clip-path/clip-paths/RectClipPath.tsrx.d.ts +15 -0
- package/src/clip-path/index.ts +4 -0
- package/src/curve/index.ts +21 -0
- package/src/delaunay/components/Polygon.tsrx +32 -0
- package/src/delaunay/components/Polygon.tsrx.d.ts +14 -0
- package/src/delaunay/delaunay.ts +17 -0
- package/src/delaunay/index.ts +4 -0
- package/src/delaunay/voronoi.ts +30 -0
- package/src/drag/Drag.tsrx +66 -0
- package/src/drag/Drag.tsrx.d.ts +17 -0
- package/src/drag/index.ts +13 -0
- package/src/drag/useDrag.tsrx +214 -0
- package/src/drag/useDrag.tsrx.d.ts +60 -0
- package/src/drag/util/clampNumber.ts +4 -0
- package/src/drag/util/getClosestPoint.ts +13 -0
- package/src/drag/util/raise.ts +8 -0
- package/src/drag/util/restrictPoint.ts +18 -0
- package/src/drag/util/useSamplesAlongPath.tsrx +26 -0
- package/src/drag/util/useSamplesAlongPath.tsrx.d.ts +3 -0
- package/src/drag/util/useStateWithCallback.tsrx +26 -0
- package/src/drag/util/useStateWithCallback.tsrx.d.ts +5 -0
- package/src/event/getXAndYFromEvent.ts +36 -0
- package/src/event/index.ts +3 -0
- package/src/event/localPoint.ts +18 -0
- package/src/event/localPointGeneric.ts +34 -0
- package/src/event/touchPoint.ts +2 -0
- package/src/event/typeGuards.ts +37 -0
- package/src/event/types.ts +13 -0
- package/src/external.d.ts +3 -0
- package/src/geo/graticule/Graticule.tsrx +97 -0
- package/src/geo/graticule/Graticule.tsrx.d.ts +52 -0
- package/src/geo/index.ts +13 -0
- package/src/geo/projections/Albers.tsrx +10 -0
- package/src/geo/projections/Albers.tsrx.d.ts +7 -0
- package/src/geo/projections/AlbersUsa.tsrx +10 -0
- package/src/geo/projections/AlbersUsa.tsrx.d.ts +7 -0
- package/src/geo/projections/CustomProjection.tsrx +10 -0
- package/src/geo/projections/CustomProjection.tsrx.d.ts +7 -0
- package/src/geo/projections/EqualEarth.tsrx +10 -0
- package/src/geo/projections/EqualEarth.tsrx.d.ts +7 -0
- package/src/geo/projections/Mercator.tsrx +10 -0
- package/src/geo/projections/Mercator.tsrx.d.ts +7 -0
- package/src/geo/projections/NaturalEarth.tsrx +10 -0
- package/src/geo/projections/NaturalEarth.tsrx.d.ts +7 -0
- package/src/geo/projections/Orthographic.tsrx +10 -0
- package/src/geo/projections/Orthographic.tsrx.d.ts +7 -0
- package/src/geo/projections/Projection.tsrx +201 -0
- package/src/geo/projections/Projection.tsrx.d.ts +86 -0
- package/src/geo/types.ts +14 -0
- package/src/glyph/glyphs/Glyph.tsrx +18 -0
- package/src/glyph/glyphs/Glyph.tsrx.d.ts +13 -0
- package/src/glyph/glyphs/GlyphCircle.tsrx +46 -0
- package/src/glyph/glyphs/GlyphCircle.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphCross.tsrx +46 -0
- package/src/glyph/glyphs/GlyphCross.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphDiamond.tsrx +46 -0
- package/src/glyph/glyphs/GlyphDiamond.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphDot.tsrx +29 -0
- package/src/glyph/glyphs/GlyphDot.tsrx.d.ts +17 -0
- package/src/glyph/glyphs/GlyphSquare.tsrx +46 -0
- package/src/glyph/glyphs/GlyphSquare.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphStar.tsrx +45 -0
- package/src/glyph/glyphs/GlyphStar.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphTriangle.tsrx +46 -0
- package/src/glyph/glyphs/GlyphTriangle.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphWye.tsrx +45 -0
- package/src/glyph/glyphs/GlyphWye.tsrx.d.ts +18 -0
- package/src/glyph/index.ts +20 -0
- package/src/gradient/gradients/GradientDarkgreenGreen.tsrx +13 -0
- package/src/gradient/gradients/GradientDarkgreenGreen.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientLightgreenGreen.tsrx +13 -0
- package/src/gradient/gradients/GradientLightgreenGreen.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientOrangeRed.tsrx +13 -0
- package/src/gradient/gradients/GradientOrangeRed.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPinkBlue.tsrx +13 -0
- package/src/gradient/gradients/GradientPinkBlue.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPinkRed.tsrx +13 -0
- package/src/gradient/gradients/GradientPinkRed.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPurpleOrange.tsrx +13 -0
- package/src/gradient/gradients/GradientPurpleOrange.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPurpleRed.tsrx +13 -0
- package/src/gradient/gradients/GradientPurpleRed.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPurpleTeal.tsrx +13 -0
- package/src/gradient/gradients/GradientPurpleTeal.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientSteelPurple.tsrx +13 -0
- package/src/gradient/gradients/GradientSteelPurple.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientTealBlue.tsrx +13 -0
- package/src/gradient/gradients/GradientTealBlue.tsrx.d.ts +6 -0
- package/src/gradient/gradients/LinearGradient.tsrx +85 -0
- package/src/gradient/gradients/LinearGradient.tsrx.d.ts +37 -0
- package/src/gradient/gradients/RadialGradient.tsrx +43 -0
- package/src/gradient/gradients/RadialGradient.tsrx.d.ts +5 -0
- package/src/gradient/index.ts +16 -0
- package/src/grid/grids/Grid.tsrx +86 -0
- package/src/grid/grids/Grid.tsrx.d.ts +30 -0
- package/src/grid/grids/GridAngle.tsrx +74 -0
- package/src/grid/grids/GridAngle.tsrx.d.ts +29 -0
- package/src/grid/grids/GridColumns.tsrx +76 -0
- package/src/grid/grids/GridColumns.tsrx.d.ts +18 -0
- package/src/grid/grids/GridPolar.tsrx +189 -0
- package/src/grid/grids/GridPolar.tsrx.d.ts +123 -0
- package/src/grid/grids/GridRadial.tsrx +92 -0
- package/src/grid/grids/GridRadial.tsrx.d.ts +44 -0
- package/src/grid/grids/GridRows.tsrx +76 -0
- package/src/grid/grids/GridRows.tsrx.d.ts +18 -0
- package/src/grid/index.ts +11 -0
- package/src/grid/types.ts +40 -0
- package/src/grid/utils/getScaleBandwidth.ts +5 -0
- package/src/grid/utils/polarToCartesian.ts +16 -0
- package/src/group/Group.tsrx +33 -0
- package/src/group/Group.tsrx.d.ts +16 -0
- package/src/group/index.ts +2 -0
- package/src/heatmap/heatmaps/HeatmapCircle.tsrx +109 -0
- package/src/heatmap/heatmaps/HeatmapCircle.tsrx.d.ts +44 -0
- package/src/heatmap/heatmaps/HeatmapRect.tsrx +121 -0
- package/src/heatmap/heatmaps/HeatmapRect.tsrx.d.ts +49 -0
- package/src/heatmap/index.ts +11 -0
- package/src/heatmap/types.ts +22 -0
- package/src/hierarchy/HierarchyDefaultLink.tsrx +19 -0
- package/src/hierarchy/HierarchyDefaultLink.tsrx.d.ts +13 -0
- package/src/hierarchy/HierarchyDefaultNode.tsrx +7 -0
- package/src/hierarchy/HierarchyDefaultNode.tsrx.d.ts +9 -0
- package/src/hierarchy/HierarchyDefaultRectNode.tsrx +7 -0
- package/src/hierarchy/HierarchyDefaultRectNode.tsrx.d.ts +10 -0
- package/src/hierarchy/hierarchies/Cluster.tsrx +81 -0
- package/src/hierarchy/hierarchies/Cluster.tsrx.d.ts +40 -0
- package/src/hierarchy/hierarchies/Pack.tsrx +69 -0
- package/src/hierarchy/hierarchies/Pack.tsrx.d.ts +35 -0
- package/src/hierarchy/hierarchies/Partition.tsrx +62 -0
- package/src/hierarchy/hierarchies/Partition.tsrx.d.ts +27 -0
- package/src/hierarchy/hierarchies/Tree.tsrx +82 -0
- package/src/hierarchy/hierarchies/Tree.tsrx.d.ts +43 -0
- package/src/hierarchy/hierarchies/Treemap.tsrx +97 -0
- package/src/hierarchy/hierarchies/Treemap.tsrx.d.ts +47 -0
- package/src/hierarchy/index.ts +26 -0
- package/src/hierarchy/types.ts +21 -0
- package/src/hierarchy/utils/setNumOrNumAccessor.ts +11 -0
- package/src/index.ts +74 -0
- package/src/internal/spring.tsrx +190 -0
- package/src/internal/spring.tsrx.d.ts +28 -0
- package/src/internal/useMeasure.tsrx +120 -0
- package/src/internal/useMeasure.tsrx.d.ts +22 -0
- package/src/kernel/accessors/normalizeAccessor.ts +59 -0
- package/src/kernel/domain/useDomain.tsrx +111 -0
- package/src/kernel/domain/useDomain.tsrx.d.ts +13 -0
- package/src/kernel/format/formatNumber.ts +8 -0
- package/src/kernel/ids/useStableId.tsrx +7 -0
- package/src/kernel/ids/useStableId.tsrx.d.ts +2 -0
- package/src/kernel/index.ts +25 -0
- package/src/kernel/memo/shallowEqual.ts +65 -0
- package/src/kernel/memo/useStructuralMemo.tsrx +18 -0
- package/src/kernel/memo/useStructuralMemo.tsrx.d.ts +3 -0
- package/src/kernel/path/createPath.ts +132 -0
- package/src/kernel/path/toPath2D.ts +41 -0
- package/src/kernel/refs/useLatestRef.tsrx +7 -0
- package/src/kernel/refs/useLatestRef.tsrx.d.ts +4 -0
- package/src/kernel/refs/useStableCallback.tsrx +13 -0
- package/src/kernel/refs/useStableCallback.tsrx.d.ts +2 -0
- package/src/kernel/warnings.ts +76 -0
- package/src/legend/index.ts +27 -0
- package/src/legend/legends/Legend/LegendItem.tsrx +35 -0
- package/src/legend/legends/Legend/LegendItem.tsrx.d.ts +16 -0
- package/src/legend/legends/Legend/LegendLabel.tsrx +39 -0
- package/src/legend/legends/Legend/LegendLabel.tsrx.d.ts +16 -0
- package/src/legend/legends/Legend/LegendShape.tsrx +64 -0
- package/src/legend/legends/Legend/LegendShape.tsrx.d.ts +25 -0
- package/src/legend/legends/Legend/index.tsrx +140 -0
- package/src/legend/legends/Legend/index.tsrx.d.ts +50 -0
- package/src/legend/legends/Linear.tsrx +23 -0
- package/src/legend/legends/Linear.tsrx.d.ts +11 -0
- package/src/legend/legends/Ordinal.tsrx +13 -0
- package/src/legend/legends/Ordinal.tsrx.d.ts +8 -0
- package/src/legend/legends/Quantile.tsrx +53 -0
- package/src/legend/legends/Quantile.tsrx.d.ts +12 -0
- package/src/legend/legends/Size.tsrx +37 -0
- package/src/legend/legends/Size.tsrx.d.ts +14 -0
- package/src/legend/legends/Threshold.tsrx +108 -0
- package/src/legend/legends/Threshold.tsrx.d.ts +23 -0
- package/src/legend/shapes/Circle.tsrx +27 -0
- package/src/legend/shapes/Circle.tsrx.d.ts +13 -0
- package/src/legend/shapes/Line.tsrx +33 -0
- package/src/legend/shapes/Line.tsrx.d.ts +13 -0
- package/src/legend/shapes/Rect.tsrx +23 -0
- package/src/legend/shapes/Rect.tsrx.d.ts +13 -0
- package/src/legend/types/index.ts +64 -0
- package/src/legend/util/defaultDomain.ts +21 -0
- package/src/legend/util/identity.ts +3 -0
- package/src/legend/util/labelTransformFactory.ts +18 -0
- package/src/legend/util/renderShape.ts +67 -0
- package/src/legend/util/valueOrIdentity.ts +12 -0
- package/src/marker/index.ts +9 -0
- package/src/marker/markers/Arrow.tsrx +30 -0
- package/src/marker/markers/Arrow.tsrx.d.ts +3 -0
- package/src/marker/markers/Circle.tsrx +26 -0
- package/src/marker/markers/Circle.tsrx.d.ts +3 -0
- package/src/marker/markers/Cross.tsrx +27 -0
- package/src/marker/markers/Cross.tsrx.d.ts +3 -0
- package/src/marker/markers/Line.tsrx +29 -0
- package/src/marker/markers/Line.tsrx.d.ts +3 -0
- package/src/marker/markers/Marker.tsrx +46 -0
- package/src/marker/markers/Marker.tsrx.d.ts +25 -0
- package/src/marker/markers/X.tsrx +6 -0
- package/src/marker/markers/X.tsrx.d.ts +3 -0
- package/src/mock-data/generators/genBin.ts +28 -0
- package/src/mock-data/generators/genBins.ts +27 -0
- package/src/mock-data/generators/genDateValue.ts +22 -0
- package/src/mock-data/generators/genPhyllotaxis.ts +27 -0
- package/src/mock-data/generators/genRandomNormalPoints.ts +32 -0
- package/src/mock-data/generators/genStats.ts +96 -0
- package/src/mock-data/generators/getSeededRandom.ts +9 -0
- package/src/mock-data/index.ts +40 -0
- package/src/mock-data/mocks/appleStock.ts +1289 -0
- package/src/mock-data/mocks/bitcoinPrice.ts +382 -0
- package/src/mock-data/mocks/browserUsage.ts +4053 -0
- package/src/mock-data/mocks/cityTemperature.ts +2207 -0
- package/src/mock-data/mocks/exoplanets.ts +5295 -0
- package/src/mock-data/mocks/groupDateValue.ts +22 -0
- package/src/mock-data/mocks/lesMiserables.ts +355 -0
- package/src/mock-data/mocks/letterFrequency.ts +35 -0
- package/src/mock-data/mocks/planets.ts +55 -0
- package/src/mock-data/mocks/shakespeare.ts +1870 -0
- package/src/network/DefaultLink.tsrx +16 -0
- package/src/network/DefaultLink.tsrx.d.ts +3 -0
- package/src/network/DefaultNode.tsrx +16 -0
- package/src/network/DefaultNode.tsrx.d.ts +9 -0
- package/src/network/Graph.tsrx +43 -0
- package/src/network/Graph.tsrx.d.ts +16 -0
- package/src/network/Links.tsrx +27 -0
- package/src/network/Links.tsrx.d.ts +12 -0
- package/src/network/Nodes.tsrx +41 -0
- package/src/network/Nodes.tsrx.d.ts +17 -0
- package/src/network/index.ts +11 -0
- package/src/network/types.ts +22 -0
- package/src/pattern/constants/index.ts +8 -0
- package/src/pattern/index.ts +16 -0
- package/src/pattern/patterns/Circles.tsrx +78 -0
- package/src/pattern/patterns/Circles.tsrx.d.ts +26 -0
- package/src/pattern/patterns/Hexagons.tsrx +63 -0
- package/src/pattern/patterns/Hexagons.tsrx.d.ts +26 -0
- package/src/pattern/patterns/Lines.tsrx +95 -0
- package/src/pattern/patterns/Lines.tsrx.d.ts +31 -0
- package/src/pattern/patterns/Path.tsrx +58 -0
- package/src/pattern/patterns/Path.tsrx.d.ts +28 -0
- package/src/pattern/patterns/Pattern.tsrx +25 -0
- package/src/pattern/patterns/Pattern.tsrx.d.ts +13 -0
- package/src/pattern/patterns/Waves.tsrx +69 -0
- package/src/pattern/patterns/Waves.tsrx.d.ts +26 -0
- package/src/point/Point.ts +20 -0
- package/src/point/index.ts +4 -0
- package/src/point/subtractPoints.ts +8 -0
- package/src/point/sumPoints.ts +8 -0
- package/src/react-spring/axis/AnimatedAxis.tsrx +28 -0
- package/src/react-spring/axis/AnimatedAxis.tsrx.d.ts +7 -0
- package/src/react-spring/axis/AnimatedTicks.tsrx +85 -0
- package/src/react-spring/axis/AnimatedTicks.tsrx.d.ts +6 -0
- package/src/react-spring/grid/AnimatedGridColumns.tsrx +38 -0
- package/src/react-spring/grid/AnimatedGridColumns.tsrx.d.ts +6 -0
- package/src/react-spring/grid/AnimatedGridLines.tsrx +47 -0
- package/src/react-spring/grid/AnimatedGridLines.tsrx.d.ts +10 -0
- package/src/react-spring/grid/AnimatedGridRows.tsrx +38 -0
- package/src/react-spring/grid/AnimatedGridRows.tsrx.d.ts +6 -0
- package/src/react-spring/index.ts +7 -0
- package/src/react-spring/spring-configs/useLineTransitionConfig.tsrx +102 -0
- package/src/react-spring/spring-configs/useLineTransitionConfig.tsrx.d.ts +50 -0
- package/src/react-spring/types/index.ts +1 -0
- package/src/responsive/components/ParentSize.tsrx +66 -0
- package/src/responsive/components/ParentSize.tsrx.d.ts +21 -0
- package/src/responsive/components/ScaleSVG.tsrx +44 -0
- package/src/responsive/components/ScaleSVG.tsrx.d.ts +19 -0
- package/src/responsive/enhancers/withParentSize.tsrx +101 -0
- package/src/responsive/enhancers/withParentSize.tsrx.d.ts +17 -0
- package/src/responsive/enhancers/withScreenSize.tsrx +64 -0
- package/src/responsive/enhancers/withScreenSize.tsrx.d.ts +17 -0
- package/src/responsive/hooks/useParentSize.tsrx +103 -0
- package/src/responsive/hooks/useParentSize.tsrx.d.ts +25 -0
- package/src/responsive/hooks/useScreenSize.tsrx +53 -0
- package/src/responsive/hooks/useScreenSize.tsrx.d.ts +12 -0
- package/src/responsive/index.ts +21 -0
- package/src/responsive/types/index.ts +36 -0
- package/src/responsive/utils/debounce.ts +59 -0
- package/src/sankey/Sankey.tsrx +157 -0
- package/src/sankey/Sankey.tsrx.d.ts +54 -0
- package/src/sankey/index.ts +20 -0
- package/src/sankey/types.ts +10 -0
- package/src/scale/createScale.ts +176 -0
- package/src/scale/index.ts +31 -0
- package/src/scale/operators/align.ts +16 -0
- package/src/scale/operators/base.ts +16 -0
- package/src/scale/operators/clamp.ts +16 -0
- package/src/scale/operators/constant.ts +16 -0
- package/src/scale/operators/domain.ts +25 -0
- package/src/scale/operators/exponent.ts +16 -0
- package/src/scale/operators/interpolate.ts +23 -0
- package/src/scale/operators/nice.ts +81 -0
- package/src/scale/operators/padding.ts +30 -0
- package/src/scale/operators/range.ts +22 -0
- package/src/scale/operators/reverse.ts +23 -0
- package/src/scale/operators/round.ts +32 -0
- package/src/scale/operators/scaleOperator.ts +86 -0
- package/src/scale/operators/unknown.ts +16 -0
- package/src/scale/operators/zero.ts +21 -0
- package/src/scale/react/index.ts +3 -0
- package/src/scale/react/useScale.tsrx +48 -0
- package/src/scale/react/useScale.tsrx.d.ts +20 -0
- package/src/scale/scales/band.ts +19 -0
- package/src/scale/scales/linear.ts +21 -0
- package/src/scale/scales/log.ts +21 -0
- package/src/scale/scales/ordinal.ts +13 -0
- package/src/scale/scales/point.ts +19 -0
- package/src/scale/scales/power.ts +22 -0
- package/src/scale/scales/quantile.ts +12 -0
- package/src/scale/scales/quantize.ts +18 -0
- package/src/scale/scales/radial.ts +19 -0
- package/src/scale/scales/squareRoot.ts +21 -0
- package/src/scale/scales/symlog.ts +21 -0
- package/src/scale/scales/threshold.ts +14 -0
- package/src/scale/scales/time.ts +20 -0
- package/src/scale/scales/utc.ts +20 -0
- package/src/scale/types/Base.ts +14 -0
- package/src/scale/types/BaseScaleConfig.ts +123 -0
- package/src/scale/types/Nice.ts +1 -0
- package/src/scale/types/Scale.ts +96 -0
- package/src/scale/types/ScaleConfig.ts +210 -0
- package/src/scale/types/ScaleInterpolate.ts +14 -0
- package/src/scale/updateScale.ts +163 -0
- package/src/scale/utils/coerceNumber.ts +10 -0
- package/src/scale/utils/createColorInterpolator.ts +43 -0
- package/src/scale/utils/getTicks.ts +25 -0
- package/src/scale/utils/inferScaleType.ts +60 -0
- package/src/scale/utils/isUtcScale.ts +16 -0
- package/src/scale/utils/scaleCanBeZeroed.ts +25 -0
- package/src/scale/utils/toString.ts +5 -0
- package/src/shape/index.ts +96 -0
- package/src/shape/react/index.ts +5 -0
- package/src/shape/react/usePie.tsrx +60 -0
- package/src/shape/react/usePie.tsrx.d.ts +20 -0
- package/src/shape/shapes/Arc.tsrx +60 -0
- package/src/shape/shapes/Arc.tsrx.d.ts +17 -0
- package/src/shape/shapes/Area.tsrx +32 -0
- package/src/shape/shapes/Area.tsrx.d.ts +4 -0
- package/src/shape/shapes/AreaClosed.tsrx +47 -0
- package/src/shape/shapes/AreaClosed.tsrx.d.ts +6 -0
- package/src/shape/shapes/AreaStack.tsrx +78 -0
- package/src/shape/shapes/AreaStack.tsrx.d.ts +7 -0
- package/src/shape/shapes/Bar.tsrx +18 -0
- package/src/shape/shapes/Bar.tsrx.d.ts +10 -0
- package/src/shape/shapes/BarGroup.tsrx +131 -0
- package/src/shape/shapes/BarGroup.tsrx.d.ts +57 -0
- package/src/shape/shapes/BarGroupHorizontal.tsrx +100 -0
- package/src/shape/shapes/BarGroupHorizontal.tsrx.d.ts +21 -0
- package/src/shape/shapes/BarRounded.tsrx +153 -0
- package/src/shape/shapes/BarRounded.tsrx.d.ts +44 -0
- package/src/shape/shapes/BarStack.tsrx +103 -0
- package/src/shape/shapes/BarStack.tsrx.d.ts +13 -0
- package/src/shape/shapes/BarStackHorizontal.tsrx +99 -0
- package/src/shape/shapes/BarStackHorizontal.tsrx.d.ts +13 -0
- package/src/shape/shapes/Circle.tsrx +18 -0
- package/src/shape/shapes/Circle.tsrx.d.ts +10 -0
- package/src/shape/shapes/Line.tsrx +43 -0
- package/src/shape/shapes/Line.tsrx.d.ts +21 -0
- package/src/shape/shapes/LinePath.tsrx +44 -0
- package/src/shape/shapes/LinePath.tsrx.d.ts +19 -0
- package/src/shape/shapes/LineRadial.tsrx +42 -0
- package/src/shape/shapes/LineRadial.tsrx.d.ts +12 -0
- package/src/shape/shapes/Pie.tsrx +87 -0
- package/src/shape/shapes/Pie.tsrx.d.ts +30 -0
- package/src/shape/shapes/Polygon.tsrx +85 -0
- package/src/shape/shapes/Polygon.tsrx.d.ts +37 -0
- package/src/shape/shapes/SplitLinePath.tsrx +86 -0
- package/src/shape/shapes/SplitLinePath.tsrx.d.ts +23 -0
- package/src/shape/shapes/Stack.tsrx +83 -0
- package/src/shape/shapes/Stack.tsrx.d.ts +25 -0
- package/src/shape/shapes/link/curve/LinkHorizontalCurve.tsrx +63 -0
- package/src/shape/shapes/link/curve/LinkHorizontalCurve.tsrx.d.ts +11 -0
- package/src/shape/shapes/link/curve/LinkRadialCurve.tsrx +72 -0
- package/src/shape/shapes/link/curve/LinkRadialCurve.tsrx.d.ts +9 -0
- package/src/shape/shapes/link/curve/LinkVerticalCurve.tsrx +62 -0
- package/src/shape/shapes/link/curve/LinkVerticalCurve.tsrx.d.ts +9 -0
- package/src/shape/shapes/link/diagonal/LinkHorizontal.tsrx +47 -0
- package/src/shape/shapes/link/diagonal/LinkHorizontal.tsrx.d.ts +7 -0
- package/src/shape/shapes/link/diagonal/LinkRadial.tsrx +49 -0
- package/src/shape/shapes/link/diagonal/LinkRadial.tsrx.d.ts +9 -0
- package/src/shape/shapes/link/diagonal/LinkVertical.tsrx +46 -0
- package/src/shape/shapes/link/diagonal/LinkVertical.tsrx.d.ts +6 -0
- package/src/shape/shapes/link/line/LinkHorizontalLine.tsrx +53 -0
- package/src/shape/shapes/link/line/LinkHorizontalLine.tsrx.d.ts +7 -0
- package/src/shape/shapes/link/line/LinkRadialLine.tsrx +58 -0
- package/src/shape/shapes/link/line/LinkRadialLine.tsrx.d.ts +5 -0
- package/src/shape/shapes/link/line/LinkVerticalLine.tsrx +53 -0
- package/src/shape/shapes/link/line/LinkVerticalLine.tsrx.d.ts +5 -0
- package/src/shape/shapes/link/step/LinkHorizontalStep.tsrx +59 -0
- package/src/shape/shapes/link/step/LinkHorizontalStep.tsrx.d.ts +12 -0
- package/src/shape/shapes/link/step/LinkRadialStep.tsrx +68 -0
- package/src/shape/shapes/link/step/LinkRadialStep.tsrx.d.ts +8 -0
- package/src/shape/shapes/link/step/LinkVerticalStep.tsrx +59 -0
- package/src/shape/shapes/link/step/LinkVerticalStep.tsrx.d.ts +10 -0
- package/src/shape/types/D3ShapeConfig.ts +91 -0
- package/src/shape/types/accessor.ts +9 -0
- package/src/shape/types/area.ts +14 -0
- package/src/shape/types/barGroup.ts +57 -0
- package/src/shape/types/barStack.ts +55 -0
- package/src/shape/types/base.ts +23 -0
- package/src/shape/types/index.ts +8 -0
- package/src/shape/types/link.ts +37 -0
- package/src/shape/types/stack.ts +15 -0
- package/src/shape/util/D3ShapeFactories.ts +125 -0
- package/src/shape/util/accessors.ts +25 -0
- package/src/shape/util/getBandwidth.ts +11 -0
- package/src/shape/util/getOrCreateMeasurementElement.ts +28 -0
- package/src/shape/util/getSplitLineSegments.ts +100 -0
- package/src/shape/util/setNumberOrNumberAccessor.ts +11 -0
- package/src/shape/util/stackOffset.ts +23 -0
- package/src/shape/util/stackOrder.ts +23 -0
- package/src/shape/util/trigonometry.ts +1 -0
- package/src/stats/BoxPlot.tsrx +257 -0
- package/src/stats/BoxPlot.tsrx.d.ts +51 -0
- package/src/stats/ViolinPlot.tsrx +78 -0
- package/src/stats/ViolinPlot.tsrx.d.ts +21 -0
- package/src/stats/index.ts +8 -0
- package/src/stats/types.ts +56 -0
- package/src/stats/util/computeStats.ts +71 -0
- package/src/text/Text.tsrx +43 -0
- package/src/text/Text.tsrx.d.ts +4 -0
- package/src/text/hooks/useText.tsrx +125 -0
- package/src/text/hooks/useText.tsrx.d.ts +7 -0
- package/src/text/index.ts +5 -0
- package/src/text/types.ts +54 -0
- package/src/text/util/getStringWidth.ts +38 -0
- package/src/text/util/memoize.ts +13 -0
- package/src/theme/compat/fromXYChartTheme.ts +132 -0
- package/src/theme/index.ts +14 -0
- package/src/theme/provider/ThemeScope.tsrx +58 -0
- package/src/theme/provider/ThemeScope.tsrx.d.ts +23 -0
- package/src/theme/provider/defineTheme.ts +67 -0
- package/src/theme/react/ThemeContext.tsrx +7 -0
- package/src/theme/react/ThemeContext.tsrx.d.ts +4 -0
- package/src/theme/react/ThemeProvider.tsrx +14 -0
- package/src/theme/react/ThemeProvider.tsrx.d.ts +4 -0
- package/src/theme/react/categoricalColor.ts +32 -0
- package/src/theme/react/index.ts +29 -0
- package/src/theme/react/useAxisStyle.tsrx +100 -0
- package/src/theme/react/useAxisStyle.tsrx.d.ts +23 -0
- package/src/theme/react/useCategoricalScale.tsrx +23 -0
- package/src/theme/react/useCategoricalScale.tsrx.d.ts +3 -0
- package/src/theme/react/useChartConfig.tsrx +108 -0
- package/src/theme/react/useChartConfig.tsrx.d.ts +15 -0
- package/src/theme/react/useColor.tsrx +18 -0
- package/src/theme/react/useColor.tsrx.d.ts +4 -0
- package/src/theme/react/useColorScale.tsrx +39 -0
- package/src/theme/react/useColorScale.tsrx.d.ts +7 -0
- package/src/theme/react/useGridStyle.tsrx +15 -0
- package/src/theme/react/useGridStyle.tsrx.d.ts +6 -0
- package/src/theme/react/useTheme.tsrx +7 -0
- package/src/theme/react/useTheme.tsrx.d.ts +3 -0
- package/src/theme/react/warn.ts +3 -0
- package/src/theme/runtime/createRuntimeTheme.ts +70 -0
- package/src/theme/runtime/resolveThemeInput.ts +19 -0
- package/src/theme/tokens/categorical.ts +18 -0
- package/src/theme/tokens/cssVar.ts +5 -0
- package/src/theme/tokens/dark.ts +51 -0
- package/src/theme/tokens/light.ts +62 -0
- package/src/theme/tokens/names.ts +49 -0
- package/src/theme/tokens/style.ts +45 -0
- package/src/theme/tokens/types.ts +118 -0
- package/src/theme/utils/warn.ts +5 -0
- package/src/threshold/Threshold.tsrx +112 -0
- package/src/threshold/Threshold.tsrx.d.ts +45 -0
- package/src/threshold/index.ts +2 -0
- package/src/tooltip/Portal.tsrx +27 -0
- package/src/tooltip/Portal.tsrx.d.ts +10 -0
- package/src/tooltip/context/TooltipPositionContext.tsrx +16 -0
- package/src/tooltip/context/TooltipPositionContext.tsrx.d.ts +11 -0
- package/src/tooltip/enhancers/withTooltip.tsrx +29 -0
- package/src/tooltip/enhancers/withTooltip.tsrx.d.ts +8 -0
- package/src/tooltip/floating/ChartTooltip.tsrx +95 -0
- package/src/tooltip/floating/ChartTooltip.tsrx.d.ts +29 -0
- package/src/tooltip/floating/ChartTooltipContent.tsrx +219 -0
- package/src/tooltip/floating/ChartTooltipContent.tsrx.d.ts +57 -0
- package/src/tooltip/floating/FloatingTooltip.tsrx +269 -0
- package/src/tooltip/floating/FloatingTooltip.tsrx.d.ts +20 -0
- package/src/tooltip/floating/anchors.ts +146 -0
- package/src/tooltip/floating/context.tsrx +29 -0
- package/src/tooltip/floating/context.tsrx.d.ts +9 -0
- package/src/tooltip/floating/index.ts +61 -0
- package/src/tooltip/floating/internalTypes.ts +125 -0
- package/src/tooltip/floating/middleware.ts +104 -0
- package/src/tooltip/floating/types.ts +198 -0
- package/src/tooltip/floating/useChartTooltip.tsrx +180 -0
- package/src/tooltip/floating/useChartTooltip.tsrx.d.ts +40 -0
- package/src/tooltip/floating/useFloatingTooltip.tsrx +301 -0
- package/src/tooltip/floating/useFloatingTooltip.tsrx.d.ts +3 -0
- package/src/tooltip/hooks/useTooltip.tsrx +67 -0
- package/src/tooltip/hooks/useTooltip.tsrx.d.ts +25 -0
- package/src/tooltip/hooks/useTooltipInPortal.tsrx +92 -0
- package/src/tooltip/hooks/useTooltipInPortal.tsrx.d.ts +34 -0
- package/src/tooltip/index.ts +20 -0
- package/src/tooltip/tooltips/Tooltip.tsrx +71 -0
- package/src/tooltip/tooltips/Tooltip.tsrx.d.ts +39 -0
- package/src/tooltip/tooltips/TooltipWithBounds.tsrx +82 -0
- package/src/tooltip/tooltips/TooltipWithBounds.tsrx.d.ts +9 -0
- package/src/voronoi/components/VoronoiPolygon.tsrx +32 -0
- package/src/voronoi/components/VoronoiPolygon.tsrx.d.ts +14 -0
- package/src/voronoi/index.ts +6 -0
- package/src/voronoi/react/index.ts +5 -0
- package/src/voronoi/react/useVoronoi.tsrx +30 -0
- package/src/voronoi/react/useVoronoi.tsrx.d.ts +10 -0
- package/src/voronoi/voronoi.ts +32 -0
- package/src/wordcloud/Wordcloud.tsrx +20 -0
- package/src/wordcloud/Wordcloud.tsrx.d.ts +7 -0
- package/src/wordcloud/d3-cloud.d.ts +1 -0
- package/src/wordcloud/index.ts +3 -0
- package/src/wordcloud/types.ts +154 -0
- package/src/wordcloud/useWordcloud.tsrx +277 -0
- package/src/wordcloud/useWordcloud.tsrx.d.ts +16 -0
- package/src/xychart/classes/DataRegistry.ts +53 -0
- package/src/xychart/components/Tooltip.tsrx +356 -0
- package/src/xychart/components/Tooltip.tsrx.d.ts +57 -0
- package/src/xychart/components/XYChart.tsrx +196 -0
- package/src/xychart/components/XYChart.tsrx.d.ts +47 -0
- package/src/xychart/components/annotation/AnimatedAnnotation.tsrx +72 -0
- package/src/xychart/components/annotation/AnimatedAnnotation.tsrx.d.ts +7 -0
- package/src/xychart/components/annotation/Annotation.tsrx +20 -0
- package/src/xychart/components/annotation/Annotation.tsrx.d.ts +7 -0
- package/src/xychart/components/annotation/AnnotationCircleSubject.tsrx +12 -0
- package/src/xychart/components/annotation/AnnotationCircleSubject.tsrx.d.ts +5 -0
- package/src/xychart/components/annotation/AnnotationConnector.tsrx +12 -0
- package/src/xychart/components/annotation/AnnotationConnector.tsrx.d.ts +5 -0
- package/src/xychart/components/annotation/AnnotationLabel.tsrx +29 -0
- package/src/xychart/components/annotation/AnnotationLabel.tsrx.d.ts +5 -0
- package/src/xychart/components/annotation/AnnotationLineSubject.tsrx +28 -0
- package/src/xychart/components/annotation/AnnotationLineSubject.tsrx.d.ts +9 -0
- package/src/xychart/components/annotation/private/BaseAnnotation.tsrx +86 -0
- package/src/xychart/components/annotation/private/BaseAnnotation.tsrx.d.ts +18 -0
- package/src/xychart/components/axis/AnimatedAxis.tsrx +15 -0
- package/src/xychart/components/axis/AnimatedAxis.tsrx.d.ts +9 -0
- package/src/xychart/components/axis/Axis.tsrx +11 -0
- package/src/xychart/components/axis/Axis.tsrx.d.ts +5 -0
- package/src/xychart/components/axis/BaseAxis.tsrx +94 -0
- package/src/xychart/components/axis/BaseAxis.tsrx.d.ts +15 -0
- package/src/xychart/components/grid/AnimatedGrid.tsrx +34 -0
- package/src/xychart/components/grid/AnimatedGrid.tsrx.d.ts +8 -0
- package/src/xychart/components/grid/BaseGrid.tsrx +49 -0
- package/src/xychart/components/grid/BaseGrid.tsrx.d.ts +16 -0
- package/src/xychart/components/grid/Grid.tsrx +9 -0
- package/src/xychart/components/grid/Grid.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedAreaSeries.tsrx +8 -0
- package/src/xychart/components/series/AnimatedAreaSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedAreaStack.tsrx +8 -0
- package/src/xychart/components/series/AnimatedAreaStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedBarGroup.tsrx +8 -0
- package/src/xychart/components/series/AnimatedBarGroup.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedBarSeries.tsrx +15 -0
- package/src/xychart/components/series/AnimatedBarSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedBarStack.tsrx +8 -0
- package/src/xychart/components/series/AnimatedBarStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedGlyphSeries.tsrx +28 -0
- package/src/xychart/components/series/AnimatedGlyphSeries.tsrx.d.ts +8 -0
- package/src/xychart/components/series/AnimatedLineSeries.tsrx +8 -0
- package/src/xychart/components/series/AnimatedLineSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AreaSeries.tsrx +7 -0
- package/src/xychart/components/series/AreaSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AreaStack.tsrx +7 -0
- package/src/xychart/components/series/AreaStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/BarGroup.tsrx +8 -0
- package/src/xychart/components/series/BarGroup.tsrx.d.ts +4 -0
- package/src/xychart/components/series/BarSeries.tsrx +13 -0
- package/src/xychart/components/series/BarSeries.tsrx.d.ts +5 -0
- package/src/xychart/components/series/BarStack.tsrx +8 -0
- package/src/xychart/components/series/BarStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/GlyphSeries.tsrx +38 -0
- package/src/xychart/components/series/GlyphSeries.tsrx.d.ts +8 -0
- package/src/xychart/components/series/LineSeries.tsrx +7 -0
- package/src/xychart/components/series/LineSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/private/AnimatedBars.tsrx +151 -0
- package/src/xychart/components/series/private/AnimatedBars.tsrx.d.ts +5 -0
- package/src/xychart/components/series/private/AnimatedGlyphs.tsrx +108 -0
- package/src/xychart/components/series/private/AnimatedGlyphs.tsrx.d.ts +40 -0
- package/src/xychart/components/series/private/AnimatedPath.tsrx +47 -0
- package/src/xychart/components/series/private/AnimatedPath.tsrx.d.ts +4 -0
- package/src/xychart/components/series/private/Bars.tsrx +45 -0
- package/src/xychart/components/series/private/Bars.tsrx.d.ts +4 -0
- package/src/xychart/components/series/private/BaseAreaSeries.tsrx +187 -0
- package/src/xychart/components/series/private/BaseAreaSeries.tsrx.d.ts +20 -0
- package/src/xychart/components/series/private/BaseAreaStack.tsrx +259 -0
- package/src/xychart/components/series/private/BaseAreaStack.tsrx.d.ts +19 -0
- package/src/xychart/components/series/private/BaseBarGroup.tsrx +198 -0
- package/src/xychart/components/series/private/BaseBarGroup.tsrx.d.ts +15 -0
- package/src/xychart/components/series/private/BaseBarSeries.tsrx +154 -0
- package/src/xychart/components/series/private/BaseBarSeries.tsrx.d.ts +16 -0
- package/src/xychart/components/series/private/BaseBarStack.tsrx +192 -0
- package/src/xychart/components/series/private/BaseBarStack.tsrx.d.ts +14 -0
- package/src/xychart/components/series/private/BaseGlyphSeries.tsrx +107 -0
- package/src/xychart/components/series/private/BaseGlyphSeries.tsrx.d.ts +14 -0
- package/src/xychart/components/series/private/BaseLineSeries.tsrx +135 -0
- package/src/xychart/components/series/private/BaseLineSeries.tsrx.d.ts +14 -0
- package/src/xychart/components/series/private/defaultRenderGlyph.tsrx +29 -0
- package/src/xychart/components/series/private/defaultRenderGlyph.tsrx.d.ts +3 -0
- package/src/xychart/constants.ts +9 -0
- package/src/xychart/context/DataContext.tsrx +23 -0
- package/src/xychart/context/DataContext.tsrx.d.ts +11 -0
- package/src/xychart/context/EventEmitterContext.tsrx +6 -0
- package/src/xychart/context/EventEmitterContext.tsrx.d.ts +3 -0
- package/src/xychart/context/ThemeContext.tsrx +7 -0
- package/src/xychart/context/ThemeContext.tsrx.d.ts +4 -0
- package/src/xychart/context/TooltipContext.tsrx +7 -0
- package/src/xychart/context/TooltipContext.tsrx.d.ts +3 -0
- package/src/xychart/hooks/useDataRegistry.tsrx +41 -0
- package/src/xychart/hooks/useDataRegistry.tsrx.d.ts +5 -0
- package/src/xychart/hooks/useDimensions.tsrx +40 -0
- package/src/xychart/hooks/useDimensions.tsrx.d.ts +15 -0
- package/src/xychart/hooks/useEventEmitter.tsrx +62 -0
- package/src/xychart/hooks/useEventEmitter.tsrx.d.ts +24 -0
- package/src/xychart/hooks/useEventEmitters.tsrx +64 -0
- package/src/xychart/hooks/useEventEmitters.tsrx.d.ts +25 -0
- package/src/xychart/hooks/useEventHandlers.tsrx +162 -0
- package/src/xychart/hooks/useEventHandlers.tsrx.d.ts +31 -0
- package/src/xychart/hooks/useScales.tsrx +113 -0
- package/src/xychart/hooks/useScales.tsrx.d.ts +15 -0
- package/src/xychart/hooks/useSeriesEvents.tsrx +82 -0
- package/src/xychart/hooks/useSeriesEvents.tsrx.d.ts +18 -0
- package/src/xychart/hooks/useStackedData.tsrx +96 -0
- package/src/xychart/hooks/useStackedData.tsrx.d.ts +14 -0
- package/src/xychart/index.ts +56 -0
- package/src/xychart/providers/DataProvider.tsrx +141 -0
- package/src/xychart/providers/DataProvider.tsrx.d.ts +22 -0
- package/src/xychart/providers/EventEmitterProvider.tsrx +10 -0
- package/src/xychart/providers/EventEmitterProvider.tsrx.d.ts +6 -0
- package/src/xychart/providers/ThemeProvider.tsrx +13 -0
- package/src/xychart/providers/ThemeProvider.tsrx.d.ts +8 -0
- package/src/xychart/providers/TooltipProvider.tsrx +101 -0
- package/src/xychart/providers/TooltipProvider.tsrx.d.ts +10 -0
- package/src/xychart/theme/buildChartTheme.ts +178 -0
- package/src/xychart/theme/colors.ts +174 -0
- package/src/xychart/theme/themes/dark.ts +24 -0
- package/src/xychart/theme/themes/light.ts +16 -0
- package/src/xychart/typeguards/events.ts +12 -0
- package/src/xychart/typeguards/isValidNumber.ts +3 -0
- package/src/xychart/types/axis.ts +3 -0
- package/src/xychart/types/data.ts +57 -0
- package/src/xychart/types/event.ts +30 -0
- package/src/xychart/types/index.ts +6 -0
- package/src/xychart/types/series.ts +219 -0
- package/src/xychart/types/theme.ts +50 -0
- package/src/xychart/types/tooltip.ts +24 -0
- package/src/xychart/utils/cleanColorString.ts +4 -0
- package/src/xychart/utils/collectDataRegistryEntries.ts +50 -0
- package/src/xychart/utils/combineBarStackData.ts +51 -0
- package/src/xychart/utils/findNearestDatumSingleDimension.ts +64 -0
- package/src/xychart/utils/findNearestDatumX.ts +34 -0
- package/src/xychart/utils/findNearestDatumXY.ts +42 -0
- package/src/xychart/utils/findNearestDatumY.ts +34 -0
- package/src/xychart/utils/findNearestGroupDatum.ts +50 -0
- package/src/xychart/utils/findNearestStackDatum.ts +44 -0
- package/src/xychart/utils/getBarStackRegistryData.ts +49 -0
- package/src/xychart/utils/getChildrenAndGrandchildrenWithProps.ts +24 -0
- package/src/xychart/utils/getScaleBandwidth.ts +7 -0
- package/src/xychart/utils/getScaleBaseline.ts +24 -0
- package/src/xychart/utils/getScaledValueFactory.ts +21 -0
- package/src/xychart/utils/isDiscreteScale.ts +9 -0
- package/src/zoom/Zoom.tsrx +375 -0
- package/src/zoom/Zoom.tsrx.d.ts +62 -0
- package/src/zoom/index.ts +16 -0
- package/src/zoom/types.ts +120 -0
- package/src/zoom/util/matrix.ts +104 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { ReactNode, SVGAttributes } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import { Group } from '@octanejs/visx/group';
|
|
4
|
+
import type { SankeyExtraProperties, SankeyGraph, SankeyLink, SankeyNode } from 'd3-sankey';
|
|
5
|
+
import { sankey as d3sankey, sankeyLinkHorizontal } from 'd3-sankey';
|
|
6
|
+
import type { Link } from 'd3-shape';
|
|
7
|
+
|
|
8
|
+
const DEFAULT_COLOR = '#000';
|
|
9
|
+
|
|
10
|
+
type NodeProps =
|
|
11
|
+
Pick<SVGAttributes<SVGRectElement>, | 'stroke'
|
|
12
|
+
| 'strokeOpacity'
|
|
13
|
+
| 'strokeWidth'
|
|
14
|
+
| 'fill'
|
|
15
|
+
| 'fillOpacity'>;
|
|
16
|
+
type LinkProps =
|
|
17
|
+
Pick<SVGAttributes<SVGPathElement>, | 'fill'
|
|
18
|
+
| 'fillOpacity'
|
|
19
|
+
| 'stroke'
|
|
20
|
+
| 'strokeOpacity'
|
|
21
|
+
| 'strokeWidth'
|
|
22
|
+
| 'strokeDasharray'
|
|
23
|
+
| 'strokeDashoffset'>;
|
|
24
|
+
|
|
25
|
+
type CreatePath<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> =
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
Link<any, SankeyLink<NodeDatum, LinkDatum>, [number, number]>;
|
|
28
|
+
|
|
29
|
+
type NodeIdAccessor<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> =
|
|
30
|
+
(node: SankeyNode<NodeDatum, LinkDatum>) => string | number;
|
|
31
|
+
|
|
32
|
+
type SourceAccessor<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> =
|
|
33
|
+
Exclude<Parameters<CreatePath<NodeDatum, LinkDatum>['source']>, undefined>[0];
|
|
34
|
+
|
|
35
|
+
type TargetAccessor<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> =
|
|
36
|
+
Exclude<Parameters<CreatePath<NodeDatum, LinkDatum>['target']>, undefined>[0];
|
|
37
|
+
|
|
38
|
+
type NodeAlignment<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> =
|
|
39
|
+
(node: SankeyNode<NodeDatum, LinkDatum>, n: number) => number;
|
|
40
|
+
|
|
41
|
+
type SankeyChildrenFunction<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> =
|
|
42
|
+
(args: {
|
|
43
|
+
graph: SankeyGraph<NodeDatum, LinkDatum>;
|
|
44
|
+
createPath: CreatePath<NodeDatum, LinkDatum>;
|
|
45
|
+
}) => ReactNode;
|
|
46
|
+
|
|
47
|
+
export type SankeyProps<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = {
|
|
48
|
+
/** The root data from which to derive the sankey layout. */
|
|
49
|
+
root: SankeyGraph<NodeDatum, LinkDatum>;
|
|
50
|
+
/** The class name(s) applied to the g element container. */
|
|
51
|
+
className?: string;
|
|
52
|
+
/** Render override function which is passed the computed sankey data graph */
|
|
53
|
+
children?: SankeyChildrenFunction<NodeDatum, LinkDatum>;
|
|
54
|
+
/** Sets the node id accessor. */
|
|
55
|
+
nodeId?: NodeIdAccessor<NodeDatum, LinkDatum>;
|
|
56
|
+
/** Sets the node width. */
|
|
57
|
+
nodeWidth?: number;
|
|
58
|
+
/** Sets the node padding. */
|
|
59
|
+
nodePadding?: number;
|
|
60
|
+
/** Sets the node alignment function. */
|
|
61
|
+
nodeAlign?: NodeAlignment<NodeDatum, LinkDatum>;
|
|
62
|
+
/** Sets the extent of the sankey layout. */
|
|
63
|
+
extent?: [[number, number], [number, number]];
|
|
64
|
+
/** Sets the size of the layout. A convenience method equivalent to using an extent of [[0, 0], [width, height]] */
|
|
65
|
+
size?: [number, number];
|
|
66
|
+
/** Sets the number of relaxation iterations. */
|
|
67
|
+
iterations?: number;
|
|
68
|
+
/** Sets the node comparison function. */
|
|
69
|
+
nodeSort?: (a: SankeyNode<NodeDatum, LinkDatum>, b: SankeyNode<NodeDatum, LinkDatum>) => | number
|
|
70
|
+
| undefined
|
|
71
|
+
| null;
|
|
72
|
+
/** Sets the link comparison function */
|
|
73
|
+
linkSort?: (a: SankeyLink<NodeDatum, LinkDatum>, b: SankeyLink<NodeDatum, LinkDatum>) => | number
|
|
74
|
+
| undefined
|
|
75
|
+
| null;
|
|
76
|
+
/** Sets the props for the default rendered node rect. Ignored when children is defined. */
|
|
77
|
+
nodeProps?: NodeProps;
|
|
78
|
+
/** Sets the props for the default rendered link path. Ignored when children is defined. */
|
|
79
|
+
linkProps?: LinkProps;
|
|
80
|
+
/** Sets the source accessor for determining the link path. */
|
|
81
|
+
sourceAccessor?: SourceAccessor<NodeDatum, LinkDatum>;
|
|
82
|
+
/** Sets the target accessor for determining the link path. */
|
|
83
|
+
targetAccessor?: TargetAccessor<NodeDatum, LinkDatum>
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Exposes d3-sankey as a React component.
|
|
88
|
+
*/
|
|
89
|
+
export default function Sankey<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties>({
|
|
90
|
+
root,
|
|
91
|
+
className,
|
|
92
|
+
children,
|
|
93
|
+
nodeId,
|
|
94
|
+
nodeWidth = 2,
|
|
95
|
+
nodePadding,
|
|
96
|
+
nodeAlign,
|
|
97
|
+
extent,
|
|
98
|
+
size,
|
|
99
|
+
iterations,
|
|
100
|
+
nodeSort,
|
|
101
|
+
linkSort,
|
|
102
|
+
nodeProps = {},
|
|
103
|
+
linkProps = {},
|
|
104
|
+
sourceAccessor,
|
|
105
|
+
targetAccessor,
|
|
106
|
+
}: SankeyProps<NodeDatum, LinkDatum>) {
|
|
107
|
+
const sankey = d3sankey<NodeDatum, LinkDatum>();
|
|
108
|
+
if (nodeId) sankey.nodeId(nodeId);
|
|
109
|
+
if (nodeWidth) sankey.nodeWidth(nodeWidth);
|
|
110
|
+
if (nodePadding) sankey.nodePadding(nodePadding);
|
|
111
|
+
if (nodeAlign) sankey.nodeAlign(nodeAlign);
|
|
112
|
+
if (extent) sankey.extent(extent);
|
|
113
|
+
if (size) sankey.size(size);
|
|
114
|
+
if (iterations) sankey.iterations(iterations);
|
|
115
|
+
if (nodeSort) sankey.nodeSort(nodeSort);
|
|
116
|
+
if (linkSort) sankey.linkSort(linkSort);
|
|
117
|
+
|
|
118
|
+
const graph = sankey(root);
|
|
119
|
+
const createPath = sankeyLinkHorizontal<NodeDatum, LinkDatum>();
|
|
120
|
+
if (sourceAccessor) createPath.source(sourceAccessor);
|
|
121
|
+
if (targetAccessor) createPath.target(targetAccessor);
|
|
122
|
+
|
|
123
|
+
if (children) {
|
|
124
|
+
return <>
|
|
125
|
+
{children({ graph, createPath })}
|
|
126
|
+
</>;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return <Group className={cx('visx-sankey', className)}>
|
|
130
|
+
<Group className="visx-sankey-links">{graph.links.map(
|
|
131
|
+
(link, i) =>
|
|
132
|
+
<path
|
|
133
|
+
d={createPath(link) ?? ''}
|
|
134
|
+
key={i}
|
|
135
|
+
fill="transparent"
|
|
136
|
+
stroke={DEFAULT_COLOR}
|
|
137
|
+
strokeWidth={Math.max(1, link.width ?? 0)}
|
|
138
|
+
strokeOpacity={0.5}
|
|
139
|
+
{...linkProps}
|
|
140
|
+
/>,
|
|
141
|
+
)}</Group>
|
|
142
|
+
<Group className="visx-sankey-nodes">{graph.nodes.map(
|
|
143
|
+
({ y0, y1, x0, x1 }, i) => y0 !== undefined && y1 !== undefined && x0 !== undefined &&
|
|
144
|
+
x1 !== undefined
|
|
145
|
+
? <rect
|
|
146
|
+
fill={DEFAULT_COLOR}
|
|
147
|
+
width={x1 - x0}
|
|
148
|
+
height={y1 - y0}
|
|
149
|
+
x={x0}
|
|
150
|
+
y={y0}
|
|
151
|
+
key={i}
|
|
152
|
+
{...nodeProps}
|
|
153
|
+
/>
|
|
154
|
+
: null,
|
|
155
|
+
)}</Group>
|
|
156
|
+
</Group>;
|
|
157
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, SVGAttributes } from 'react';
|
|
3
|
+
import type { SankeyExtraProperties, SankeyGraph, SankeyLink, SankeyNode } from 'd3-sankey';
|
|
4
|
+
import type { Link } from 'd3-shape';
|
|
5
|
+
type NodeProps = Pick<SVGAttributes<SVGRectElement>, 'stroke' | 'strokeOpacity' | 'strokeWidth' | 'fill' | 'fillOpacity'>;
|
|
6
|
+
type LinkProps = Pick<SVGAttributes<SVGPathElement>, 'fill' | 'fillOpacity' | 'stroke' | 'strokeOpacity' | 'strokeWidth' | 'strokeDasharray' | 'strokeDashoffset'>;
|
|
7
|
+
type CreatePath<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = Link<any, SankeyLink<NodeDatum, LinkDatum>, [number, number]>;
|
|
8
|
+
type NodeIdAccessor<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = (node: SankeyNode<NodeDatum, LinkDatum>) => string | number;
|
|
9
|
+
type SourceAccessor<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = Exclude<Parameters<CreatePath<NodeDatum, LinkDatum>['source']>, undefined>[0];
|
|
10
|
+
type TargetAccessor<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = Exclude<Parameters<CreatePath<NodeDatum, LinkDatum>['target']>, undefined>[0];
|
|
11
|
+
type NodeAlignment<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = (node: SankeyNode<NodeDatum, LinkDatum>, n: number) => number;
|
|
12
|
+
type SankeyChildrenFunction<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = (args: {
|
|
13
|
+
graph: SankeyGraph<NodeDatum, LinkDatum>;
|
|
14
|
+
createPath: CreatePath<NodeDatum, LinkDatum>;
|
|
15
|
+
}) => ReactNode;
|
|
16
|
+
export type SankeyProps<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties> = {
|
|
17
|
+
/** The root data from which to derive the sankey layout. */
|
|
18
|
+
root: SankeyGraph<NodeDatum, LinkDatum>;
|
|
19
|
+
/** The class name(s) applied to the g element container. */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Render override function which is passed the computed sankey data graph */
|
|
22
|
+
children?: SankeyChildrenFunction<NodeDatum, LinkDatum>;
|
|
23
|
+
/** Sets the node id accessor. */
|
|
24
|
+
nodeId?: NodeIdAccessor<NodeDatum, LinkDatum>;
|
|
25
|
+
/** Sets the node width. */
|
|
26
|
+
nodeWidth?: number;
|
|
27
|
+
/** Sets the node padding. */
|
|
28
|
+
nodePadding?: number;
|
|
29
|
+
/** Sets the node alignment function. */
|
|
30
|
+
nodeAlign?: NodeAlignment<NodeDatum, LinkDatum>;
|
|
31
|
+
/** Sets the extent of the sankey layout. */
|
|
32
|
+
extent?: [[number, number], [number, number]];
|
|
33
|
+
/** Sets the size of the layout. A convenience method equivalent to using an extent of [[0, 0], [width, height]] */
|
|
34
|
+
size?: [number, number];
|
|
35
|
+
/** Sets the number of relaxation iterations. */
|
|
36
|
+
iterations?: number;
|
|
37
|
+
/** Sets the node comparison function. */
|
|
38
|
+
nodeSort?: (a: SankeyNode<NodeDatum, LinkDatum>, b: SankeyNode<NodeDatum, LinkDatum>) => number | undefined | null;
|
|
39
|
+
/** Sets the link comparison function */
|
|
40
|
+
linkSort?: (a: SankeyLink<NodeDatum, LinkDatum>, b: SankeyLink<NodeDatum, LinkDatum>) => number | undefined | null;
|
|
41
|
+
/** Sets the props for the default rendered node rect. Ignored when children is defined. */
|
|
42
|
+
nodeProps?: NodeProps;
|
|
43
|
+
/** Sets the props for the default rendered link path. Ignored when children is defined. */
|
|
44
|
+
linkProps?: LinkProps;
|
|
45
|
+
/** Sets the source accessor for determining the link path. */
|
|
46
|
+
sourceAccessor?: SourceAccessor<NodeDatum, LinkDatum>;
|
|
47
|
+
/** Sets the target accessor for determining the link path. */
|
|
48
|
+
targetAccessor?: TargetAccessor<NodeDatum, LinkDatum>;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Exposes d3-sankey as a React component.
|
|
52
|
+
*/
|
|
53
|
+
export default function Sankey<NodeDatum extends SankeyExtraProperties, LinkDatum extends SankeyExtraProperties>({ root, className, children, nodeId, nodeWidth, nodePadding, nodeAlign, extent, size, iterations, nodeSort, linkSort, nodeProps, linkProps, sourceAccessor, targetAccessor, }: SankeyProps<NodeDatum, LinkDatum>): import("react").JSX.Element;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// @octanejs/visx/sankey
|
|
2
|
+
export { default as Sankey } from './Sankey.tsrx';
|
|
3
|
+
export {
|
|
4
|
+
sankey,
|
|
5
|
+
sankeyLinkHorizontal,
|
|
6
|
+
sankeyLeft,
|
|
7
|
+
sankeyRight,
|
|
8
|
+
sankeyCenter,
|
|
9
|
+
sankeyJustify,
|
|
10
|
+
} from 'd3-sankey';
|
|
11
|
+
export type {
|
|
12
|
+
SankeyProps,
|
|
13
|
+
SankeyExtraProperties,
|
|
14
|
+
SankeyGraph,
|
|
15
|
+
SankeyLink,
|
|
16
|
+
SankeyNode,
|
|
17
|
+
SankeyNodeMinimal,
|
|
18
|
+
SankeyLinkMinimal,
|
|
19
|
+
SankeyLayout,
|
|
20
|
+
} from './types';
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
/* eslint-disable no-redeclare */
|
|
3
|
+
import type { ScaleConfig, PickScaleConfigWithoutType, PickScaleConfig } from './types/ScaleConfig';
|
|
4
|
+
import type { DefaultThresholdInput, PickD3Scale, D3Scale } from './types/Scale';
|
|
5
|
+
import type { StringLike, DefaultOutput } from './types/Base';
|
|
6
|
+
import createLinearScale from './scales/linear';
|
|
7
|
+
import createLogScale from './scales/log';
|
|
8
|
+
import createPowScale from './scales/power';
|
|
9
|
+
import createSqrtScale from './scales/squareRoot';
|
|
10
|
+
import createSymlogScale from './scales/symlog';
|
|
11
|
+
import createTimeScale from './scales/time';
|
|
12
|
+
import createUtcScale from './scales/utc';
|
|
13
|
+
import createQuantileScale from './scales/quantile';
|
|
14
|
+
import createQuantizeScale from './scales/quantize';
|
|
15
|
+
import createThresholdScale from './scales/threshold';
|
|
16
|
+
import createOrdinalScale from './scales/ordinal';
|
|
17
|
+
import createPointScale from './scales/point';
|
|
18
|
+
import createBandScale from './scales/band';
|
|
19
|
+
import createRadialScale from './scales/radial';
|
|
20
|
+
|
|
21
|
+
// Overload function for more strict typing, e.g.,
|
|
22
|
+
// If the config is a linear config then a ScaleLinear will be returned
|
|
23
|
+
// instead of a union type of all scales.
|
|
24
|
+
|
|
25
|
+
function createScale<
|
|
26
|
+
Output = DefaultOutput,
|
|
27
|
+
DiscreteInput extends StringLike = StringLike,
|
|
28
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
29
|
+
>(
|
|
30
|
+
config?: PickScaleConfig<'linear', Output> | PickScaleConfigWithoutType<'linear', Output>,
|
|
31
|
+
): PickD3Scale<'linear', Output>;
|
|
32
|
+
|
|
33
|
+
function createScale<
|
|
34
|
+
Output = DefaultOutput,
|
|
35
|
+
DiscreteInput extends StringLike = StringLike,
|
|
36
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
37
|
+
>(config: PickScaleConfig<'log', Output>): PickD3Scale<'log', Output>;
|
|
38
|
+
|
|
39
|
+
function createScale<
|
|
40
|
+
Output = DefaultOutput,
|
|
41
|
+
DiscreteInput extends StringLike = StringLike,
|
|
42
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
43
|
+
>(config: PickScaleConfig<'pow', Output>): PickD3Scale<'pow', Output>;
|
|
44
|
+
|
|
45
|
+
function createScale<
|
|
46
|
+
Output = DefaultOutput,
|
|
47
|
+
DiscreteInput extends StringLike = StringLike,
|
|
48
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
49
|
+
>(config: PickScaleConfig<'sqrt', Output>): PickD3Scale<'sqrt', Output>;
|
|
50
|
+
|
|
51
|
+
function createScale<
|
|
52
|
+
Output = DefaultOutput,
|
|
53
|
+
DiscreteInput extends StringLike = StringLike,
|
|
54
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
55
|
+
>(config: PickScaleConfig<'symlog', Output>): PickD3Scale<'symlog', Output>;
|
|
56
|
+
|
|
57
|
+
function createScale<
|
|
58
|
+
Output = DefaultOutput,
|
|
59
|
+
DiscreteInput extends StringLike = StringLike,
|
|
60
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
61
|
+
>(config: PickScaleConfig<'time', Output>): PickD3Scale<'time', Output>;
|
|
62
|
+
|
|
63
|
+
function createScale<
|
|
64
|
+
Output = DefaultOutput,
|
|
65
|
+
DiscreteInput extends StringLike = StringLike,
|
|
66
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
67
|
+
>(config: PickScaleConfig<'utc', Output>): PickD3Scale<'utc', Output>;
|
|
68
|
+
|
|
69
|
+
function createScale<
|
|
70
|
+
Output = DefaultOutput,
|
|
71
|
+
DiscreteInput extends StringLike = StringLike,
|
|
72
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
73
|
+
>(config: PickScaleConfig<'quantile', Output>): PickD3Scale<'quantile', Output>;
|
|
74
|
+
|
|
75
|
+
function createScale<
|
|
76
|
+
Output = DefaultOutput,
|
|
77
|
+
DiscreteInput extends StringLike = StringLike,
|
|
78
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
79
|
+
>(config: PickScaleConfig<'quantize', Output>): PickD3Scale<'quantize', Output>;
|
|
80
|
+
|
|
81
|
+
function createScale<
|
|
82
|
+
Output = DefaultOutput,
|
|
83
|
+
DiscreteInput extends StringLike = StringLike,
|
|
84
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
85
|
+
>(
|
|
86
|
+
config: PickScaleConfig<'threshold', Output, StringLike, ThresholdInput>,
|
|
87
|
+
): PickD3Scale<'threshold', Output, StringLike, ThresholdInput>;
|
|
88
|
+
|
|
89
|
+
function createScale<
|
|
90
|
+
Output = DefaultOutput,
|
|
91
|
+
DiscreteInput extends StringLike = StringLike,
|
|
92
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
93
|
+
>(
|
|
94
|
+
config: PickScaleConfig<'ordinal', Output, DiscreteInput>,
|
|
95
|
+
): PickD3Scale<'ordinal', Output, DiscreteInput>;
|
|
96
|
+
|
|
97
|
+
function createScale<
|
|
98
|
+
Output = DefaultOutput,
|
|
99
|
+
DiscreteInput extends StringLike = StringLike,
|
|
100
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
101
|
+
>(
|
|
102
|
+
config: PickScaleConfig<'point', Output, DiscreteInput>,
|
|
103
|
+
): PickD3Scale<'point', Output, DiscreteInput>;
|
|
104
|
+
|
|
105
|
+
function createScale<
|
|
106
|
+
Output = DefaultOutput,
|
|
107
|
+
DiscreteInput extends StringLike = StringLike,
|
|
108
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
109
|
+
>(
|
|
110
|
+
config: PickScaleConfig<'band', Output, DiscreteInput>,
|
|
111
|
+
): PickD3Scale<'band', Output, DiscreteInput>;
|
|
112
|
+
|
|
113
|
+
function createScale<
|
|
114
|
+
Output = DefaultOutput,
|
|
115
|
+
DiscreteInput extends StringLike = StringLike,
|
|
116
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
117
|
+
>(config: PickScaleConfig<'radial', Output>): PickD3Scale<'radial', Output>;
|
|
118
|
+
|
|
119
|
+
function createScale<
|
|
120
|
+
Output = DefaultOutput,
|
|
121
|
+
DiscreteInput extends StringLike = StringLike,
|
|
122
|
+
ThresholdInput extends DefaultThresholdInput = DefaultThresholdInput,
|
|
123
|
+
>(
|
|
124
|
+
config: ScaleConfig<Output, DiscreteInput, ThresholdInput>,
|
|
125
|
+
): D3Scale<Output, DiscreteInput, ThresholdInput>;
|
|
126
|
+
|
|
127
|
+
// Actual implementation
|
|
128
|
+
|
|
129
|
+
function createScale<
|
|
130
|
+
Output,
|
|
131
|
+
DiscreteInput extends StringLike,
|
|
132
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
133
|
+
>(
|
|
134
|
+
config?:
|
|
135
|
+
| ScaleConfig<Output, DiscreteInput, ThresholdInput>
|
|
136
|
+
| PickScaleConfigWithoutType<'linear', Output>,
|
|
137
|
+
) {
|
|
138
|
+
if (typeof config !== 'undefined' && 'type' in config) {
|
|
139
|
+
switch (config.type) {
|
|
140
|
+
case 'linear':
|
|
141
|
+
return createLinearScale(config);
|
|
142
|
+
case 'log':
|
|
143
|
+
return createLogScale(config);
|
|
144
|
+
case 'pow':
|
|
145
|
+
return createPowScale(config);
|
|
146
|
+
case 'sqrt':
|
|
147
|
+
return createSqrtScale(config);
|
|
148
|
+
case 'symlog':
|
|
149
|
+
return createSymlogScale(config);
|
|
150
|
+
case 'time':
|
|
151
|
+
return createTimeScale(config);
|
|
152
|
+
case 'utc':
|
|
153
|
+
return createUtcScale(config);
|
|
154
|
+
case 'quantile':
|
|
155
|
+
return createQuantileScale(config);
|
|
156
|
+
case 'quantize':
|
|
157
|
+
return createQuantizeScale(config);
|
|
158
|
+
case 'threshold':
|
|
159
|
+
return createThresholdScale(config);
|
|
160
|
+
case 'ordinal':
|
|
161
|
+
return createOrdinalScale(config);
|
|
162
|
+
case 'point':
|
|
163
|
+
return createPointScale(config);
|
|
164
|
+
case 'band':
|
|
165
|
+
return createBandScale(config);
|
|
166
|
+
case 'radial':
|
|
167
|
+
return createRadialScale(config);
|
|
168
|
+
default:
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// If type is not specified, fallback to linear scale
|
|
173
|
+
return createLinearScale(config);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export default createScale;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// @octanejs/visx/scale
|
|
2
|
+
export { default as scaleBand } from './scales/band';
|
|
3
|
+
export { default as scalePoint } from './scales/point';
|
|
4
|
+
export { default as scaleLinear } from './scales/linear';
|
|
5
|
+
export { default as scaleRadial } from './scales/radial';
|
|
6
|
+
export { default as scaleTime } from './scales/time';
|
|
7
|
+
export { default as scaleUtc } from './scales/utc';
|
|
8
|
+
export { default as scaleLog } from './scales/log';
|
|
9
|
+
export { default as scalePower } from './scales/power';
|
|
10
|
+
export { default as scaleOrdinal } from './scales/ordinal';
|
|
11
|
+
export { default as scaleQuantize } from './scales/quantize';
|
|
12
|
+
export { default as scaleQuantile } from './scales/quantile';
|
|
13
|
+
export { default as scaleSymlog } from './scales/symlog';
|
|
14
|
+
export { default as scaleThreshold } from './scales/threshold';
|
|
15
|
+
export { default as scaleSqrt } from './scales/squareRoot';
|
|
16
|
+
|
|
17
|
+
export { default as createScale } from './createScale';
|
|
18
|
+
export { default as updateScale } from './updateScale';
|
|
19
|
+
export { default as inferScaleType } from './utils/inferScaleType';
|
|
20
|
+
|
|
21
|
+
export { default as coerceNumber } from './utils/coerceNumber';
|
|
22
|
+
export { default as getTicks } from './utils/getTicks';
|
|
23
|
+
export { default as toString } from './utils/toString';
|
|
24
|
+
export { default as scaleCanBeZeroed } from './utils/scaleCanBeZeroed';
|
|
25
|
+
|
|
26
|
+
// export types
|
|
27
|
+
export type * from './types/Base';
|
|
28
|
+
export type * from './types/Nice';
|
|
29
|
+
export type * from './types/Scale';
|
|
30
|
+
export type * from './types/ScaleConfig';
|
|
31
|
+
export type * from './types/ScaleInterpolate';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
4
|
+
|
|
5
|
+
export default function applyAlign<
|
|
6
|
+
Output,
|
|
7
|
+
DiscreteInput extends StringLike,
|
|
8
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
9
|
+
>(
|
|
10
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
11
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
12
|
+
) {
|
|
13
|
+
if ('align' in scale && 'align' in config && typeof config.align !== 'undefined') {
|
|
14
|
+
scale.align(config.align);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
4
|
+
|
|
5
|
+
export default function applyBase<
|
|
6
|
+
Output,
|
|
7
|
+
DiscreteInput extends StringLike,
|
|
8
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
9
|
+
>(
|
|
10
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
11
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
12
|
+
) {
|
|
13
|
+
if ('base' in scale && 'base' in config && typeof config.base !== 'undefined') {
|
|
14
|
+
scale.base(config.base);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
4
|
+
|
|
5
|
+
export default function applyClamp<
|
|
6
|
+
Output,
|
|
7
|
+
DiscreteInput extends StringLike,
|
|
8
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
9
|
+
>(
|
|
10
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
11
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
12
|
+
) {
|
|
13
|
+
if ('clamp' in scale && 'clamp' in config && typeof config.clamp !== 'undefined') {
|
|
14
|
+
scale.clamp(config.clamp);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
4
|
+
|
|
5
|
+
export default function applyConstant<
|
|
6
|
+
Output,
|
|
7
|
+
DiscreteInput extends StringLike,
|
|
8
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
9
|
+
>(
|
|
10
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
11
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
12
|
+
) {
|
|
13
|
+
if ('constant' in scale && 'constant' in config && typeof config.constant !== 'undefined') {
|
|
14
|
+
scale.constant(config.constant);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
4
|
+
|
|
5
|
+
export default function applyDomain<
|
|
6
|
+
Output,
|
|
7
|
+
DiscreteInput extends StringLike,
|
|
8
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
9
|
+
>(
|
|
10
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
11
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
12
|
+
) {
|
|
13
|
+
if (config.domain) {
|
|
14
|
+
if ('nice' in scale || 'quantiles' in scale) {
|
|
15
|
+
// continuous input scales
|
|
16
|
+
scale.domain(config.domain as number[] | Date[]);
|
|
17
|
+
} else if ('padding' in scale) {
|
|
18
|
+
// point and band scales
|
|
19
|
+
scale.domain(config.domain as DiscreteInput[]);
|
|
20
|
+
} else {
|
|
21
|
+
// ordinal and threshold scale
|
|
22
|
+
scale.domain(config.domain as ThresholdInput[]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
4
|
+
|
|
5
|
+
export default function applyExponent<
|
|
6
|
+
Output,
|
|
7
|
+
DiscreteInput extends StringLike,
|
|
8
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
9
|
+
>(
|
|
10
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
11
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
12
|
+
) {
|
|
13
|
+
if ('exponent' in scale && 'exponent' in config && typeof config.exponent !== 'undefined') {
|
|
14
|
+
scale.exponent(config.exponent);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { InterpolatorFactory } from 'd3-scale';
|
|
2
|
+
import type { StringLike } from '../types/Base';
|
|
3
|
+
import type { D3Scale, DefaultThresholdInput } from '../types/Scale';
|
|
4
|
+
import createColorInterpolator from '../utils/createColorInterpolator';
|
|
5
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
6
|
+
|
|
7
|
+
export default function applyInterpolate<
|
|
8
|
+
Output,
|
|
9
|
+
DiscreteInput extends StringLike,
|
|
10
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
11
|
+
>(
|
|
12
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
13
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
14
|
+
) {
|
|
15
|
+
if (
|
|
16
|
+
'interpolate' in config &&
|
|
17
|
+
'interpolate' in scale &&
|
|
18
|
+
typeof config.interpolate !== 'undefined'
|
|
19
|
+
) {
|
|
20
|
+
const interpolator = createColorInterpolator(config.interpolate);
|
|
21
|
+
scale.interpolate(interpolator as unknown as InterpolatorFactory<Output, Output>);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { CountableTimeInterval } from 'd3-time';
|
|
2
|
+
import {
|
|
3
|
+
timeSecond,
|
|
4
|
+
timeMinute,
|
|
5
|
+
timeHour,
|
|
6
|
+
timeDay,
|
|
7
|
+
timeYear,
|
|
8
|
+
timeMonth,
|
|
9
|
+
timeWeek,
|
|
10
|
+
utcSecond,
|
|
11
|
+
utcMinute,
|
|
12
|
+
utcHour,
|
|
13
|
+
utcDay,
|
|
14
|
+
utcWeek,
|
|
15
|
+
utcMonth,
|
|
16
|
+
utcYear,
|
|
17
|
+
} from 'd3-time';
|
|
18
|
+
import type { ScaleTime } from 'd3-scale';
|
|
19
|
+
import type { StringLike } from '../types/Base';
|
|
20
|
+
import type { DefaultThresholdInput, D3Scale } from '../types/Scale';
|
|
21
|
+
import type { ScaleConfigWithoutType } from '../types/ScaleConfig';
|
|
22
|
+
import type { NiceTime } from '../types/Nice';
|
|
23
|
+
import isUtcScale from '../utils/isUtcScale';
|
|
24
|
+
|
|
25
|
+
const localTimeIntervals: {
|
|
26
|
+
[key in NiceTime]: CountableTimeInterval;
|
|
27
|
+
} = {
|
|
28
|
+
day: timeDay,
|
|
29
|
+
hour: timeHour,
|
|
30
|
+
minute: timeMinute,
|
|
31
|
+
month: timeMonth,
|
|
32
|
+
second: timeSecond,
|
|
33
|
+
week: timeWeek,
|
|
34
|
+
year: timeYear,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const utcIntervals: {
|
|
38
|
+
[key in NiceTime]: CountableTimeInterval;
|
|
39
|
+
} = {
|
|
40
|
+
day: utcDay,
|
|
41
|
+
hour: utcHour,
|
|
42
|
+
minute: utcMinute,
|
|
43
|
+
month: utcMonth,
|
|
44
|
+
second: utcSecond,
|
|
45
|
+
week: utcWeek,
|
|
46
|
+
year: utcYear,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default function applyNice<
|
|
50
|
+
Output,
|
|
51
|
+
DiscreteInput extends StringLike,
|
|
52
|
+
ThresholdInput extends DefaultThresholdInput,
|
|
53
|
+
>(
|
|
54
|
+
scale: D3Scale<Output, DiscreteInput, ThresholdInput>,
|
|
55
|
+
config: ScaleConfigWithoutType<Output, DiscreteInput, ThresholdInput>,
|
|
56
|
+
) {
|
|
57
|
+
if ('nice' in config && typeof config.nice !== 'undefined' && 'nice' in scale) {
|
|
58
|
+
const { nice } = config;
|
|
59
|
+
if (typeof nice === 'boolean') {
|
|
60
|
+
if (nice) {
|
|
61
|
+
scale.nice();
|
|
62
|
+
}
|
|
63
|
+
} else if (typeof nice === 'number') {
|
|
64
|
+
scale.nice(nice);
|
|
65
|
+
} else {
|
|
66
|
+
const timeScale = scale as ScaleTime<Output, Output>;
|
|
67
|
+
const isUtc = isUtcScale(timeScale);
|
|
68
|
+
if (typeof nice === 'string') {
|
|
69
|
+
timeScale.nice(isUtc ? utcIntervals[nice] : localTimeIntervals[nice]);
|
|
70
|
+
} else {
|
|
71
|
+
const { interval, step } = nice;
|
|
72
|
+
const parsedInterval = (
|
|
73
|
+
isUtc ? utcIntervals[interval] : localTimeIntervals[interval]
|
|
74
|
+
).every(step);
|
|
75
|
+
if (parsedInterval != null) {
|
|
76
|
+
timeScale.nice(parsedInterval as CountableTimeInterval);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|