@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,57 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { SVGProps, ReactNode } from 'react';
|
|
3
|
+
import type { TooltipProps as BaseTooltipProps, UseTooltipPortalOptions } from '@octanejs/visx/tooltip';
|
|
4
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
5
|
+
import type { GlyphProps as RenderGlyphProps, TooltipContextType } from '../types';
|
|
6
|
+
export type RenderTooltipParams<Datum extends object> = TooltipContextType<Datum> & {
|
|
7
|
+
colorScale?: PickD3Scale<'ordinal', string, string>;
|
|
8
|
+
};
|
|
9
|
+
export interface RenderTooltipGlyphProps<Datum extends object> extends RenderGlyphProps<Datum> {
|
|
10
|
+
glyphStyle?: SVGProps<SVGCircleElement>;
|
|
11
|
+
isNearestDatum: boolean;
|
|
12
|
+
}
|
|
13
|
+
export type TooltipProps<Datum extends object> = {
|
|
14
|
+
/**
|
|
15
|
+
* When TooltipContext.tooltipOpen=true, this function is invoked and if the
|
|
16
|
+
* return value is non-null, its content is rendered inside the tooltip container.
|
|
17
|
+
* Content will be rendered in an HTML parent.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* When TooltipContext.tooltipOpen=true, this function is invoked and if the
|
|
21
|
+
* return value is non-null, its content is rendered inside the tooltip container.
|
|
22
|
+
* Content will be rendered in an HTML parent.
|
|
23
|
+
*/
|
|
24
|
+
renderTooltip: (params: RenderTooltipParams<Datum>) => ReactNode;
|
|
25
|
+
/** Function which handles rendering glyphs. */
|
|
26
|
+
renderGlyph?: (params: RenderTooltipGlyphProps<Datum>) => ReactNode;
|
|
27
|
+
/** Whether to snap tooltip + crosshair x-coord to the nearest Datum x-coord instead of the event x-coord. */
|
|
28
|
+
snapTooltipToDatumX?: boolean;
|
|
29
|
+
/** Whether to snap tooltip + crosshair y-coord to the nearest Datum y-coord instead of the event y-coord. */
|
|
30
|
+
snapTooltipToDatumY?: boolean;
|
|
31
|
+
/** Whether to show a vertical line at tooltip position. */
|
|
32
|
+
showVerticalCrosshair?: boolean;
|
|
33
|
+
/** Whether to show a horizontal line at tooltip position. */
|
|
34
|
+
showHorizontalCrosshair?: boolean;
|
|
35
|
+
/** Whether to show a glyph at the tooltip position for the (single) nearest Datum. */
|
|
36
|
+
showDatumGlyph?: boolean;
|
|
37
|
+
/** Whether to show a glyph for the nearest Datum in each series. */
|
|
38
|
+
showSeriesGlyphs?: boolean;
|
|
39
|
+
/** Optional styles for the vertical crosshair, if visible. */
|
|
40
|
+
verticalCrosshairStyle?: SVGProps<SVGLineElement>;
|
|
41
|
+
/** Optional styles for the vertical crosshair, if visible. */
|
|
42
|
+
horizontalCrosshairStyle?: SVGProps<SVGLineElement>;
|
|
43
|
+
/** Optional styles for the point, if visible. */
|
|
44
|
+
glyphStyle?: SVGProps<SVGCircleElement>;
|
|
45
|
+
/**
|
|
46
|
+
* Tooltip depends on ResizeObserver, which may be polyfilled globally,
|
|
47
|
+
* passed to XYChart, or injected into this component.
|
|
48
|
+
*/
|
|
49
|
+
resizeObserverPolyfill?: UseTooltipPortalOptions['polyfill'];
|
|
50
|
+
} & Omit<BaseTooltipProps, 'left' | 'top' | 'children'> & Pick<UseTooltipPortalOptions, 'debounce' | 'detectBounds' | 'scroll' | 'zIndex'>;
|
|
51
|
+
/**
|
|
52
|
+
* This is a wrapper component which bails early if tooltip is not visible.
|
|
53
|
+
* If scroll detection is enabled in UseTooltipPortalOptions, this avoids re-rendering
|
|
54
|
+
* the component on every scroll. If many charts with Tooltips are rendered on a page,
|
|
55
|
+
* this also avoids creating many resize observers / hitting browser limits.
|
|
56
|
+
*/
|
|
57
|
+
export default function Tooltip<Datum extends object>(props: TooltipProps<Datum>): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/* eslint jsx-a11y/mouse-events-have-key-events: 'off', @typescript-eslint/no-explicit-any: 'off' */
|
|
2
|
+
import { useContext, useEffect } from 'octane';
|
|
3
|
+
import type { ReactNode, PointerEvent } from 'react';
|
|
4
|
+
import { ParentSize } from '@octanejs/visx/responsive';
|
|
5
|
+
import type { ResizeObserverPolyfill } from '@octanejs/visx/responsive';
|
|
6
|
+
import type { AxisScaleOutput } from '@octanejs/visx/axis';
|
|
7
|
+
import type { ScaleConfig } from '@octanejs/visx/scale';
|
|
8
|
+
|
|
9
|
+
import DataContext from '../context/DataContext.tsrx';
|
|
10
|
+
import type { Margin, EventHandlerParams } from '../types';
|
|
11
|
+
import useEventEmitter from '../hooks/useEventEmitter.tsrx';
|
|
12
|
+
import EventEmitterProvider from '../providers/EventEmitterProvider.tsrx';
|
|
13
|
+
import TooltipContext from '../context/TooltipContext.tsrx';
|
|
14
|
+
import TooltipProvider from '../providers/TooltipProvider.tsrx';
|
|
15
|
+
import type { DataProviderProps } from '../providers/DataProvider.tsrx';
|
|
16
|
+
import DataProvider from '../providers/DataProvider.tsrx';
|
|
17
|
+
import useEventEmitters from '../hooks/useEventEmitters.tsrx';
|
|
18
|
+
import { XYCHART_EVENT_SOURCE } from '../constants';
|
|
19
|
+
import useEventHandlers, {
|
|
20
|
+
POINTER_EVENTS_ALL,
|
|
21
|
+
POINTER_EVENTS_NEAREST,
|
|
22
|
+
} from '../hooks/useEventHandlers.tsrx';
|
|
23
|
+
|
|
24
|
+
const DEFAULT_MARGIN = { top: 50, right: 50, bottom: 50, left: 50 };
|
|
25
|
+
|
|
26
|
+
export type XYChartProps<XScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, YScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, Datum extends object> = {
|
|
27
|
+
/** aria-label for the chart svg element. */
|
|
28
|
+
accessibilityLabel?: string;
|
|
29
|
+
/** Whether to capture and dispatch pointer events to EventEmitter context (which e.g., Series subscribe to). */
|
|
30
|
+
captureEvents?: boolean;
|
|
31
|
+
/** Total width of the desired chart svg, including margin. */
|
|
32
|
+
width?: number;
|
|
33
|
+
/** Total height of the desired chart svg, including margin. */
|
|
34
|
+
height?: number;
|
|
35
|
+
/** Margin to apply around the outside. */
|
|
36
|
+
margin?: Margin;
|
|
37
|
+
/** XYChart children (Series, Tooltip, etc.). */
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
/** If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as the theme. */
|
|
40
|
+
theme?: DataProviderProps<XScaleConfig, YScaleConfig>['theme'];
|
|
41
|
+
/** If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as the xScale config. */
|
|
42
|
+
xScale?: DataProviderProps<XScaleConfig, YScaleConfig>['xScale'];
|
|
43
|
+
/** If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as the yScale config. */
|
|
44
|
+
yScale?: DataProviderProps<XScaleConfig, YScaleConfig>['yScale'];
|
|
45
|
+
/* If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as horizontal. Determines whether Series will be plotted horizontally (e.g., horizontal bars). By default this will try to be inferred based on scale types. */
|
|
46
|
+
horizontal?: boolean | 'auto';
|
|
47
|
+
/** Callback invoked for onPointerMove events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
48
|
+
onPointerMove?: ({
|
|
49
|
+
datum,
|
|
50
|
+
distanceX,
|
|
51
|
+
distanceY,
|
|
52
|
+
event,
|
|
53
|
+
index,
|
|
54
|
+
key,
|
|
55
|
+
svgPoint,
|
|
56
|
+
}: EventHandlerParams<Datum>) => void;
|
|
57
|
+
/** Callback invoked for onPointerOut events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
58
|
+
onPointerOut?: (/** The PointerEvent. */
|
|
59
|
+
/** The PointerEvent. */
|
|
60
|
+
event: PointerEvent) => void;
|
|
61
|
+
/** Callback invoked for onPointerUp events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
62
|
+
onPointerUp?: ({
|
|
63
|
+
datum,
|
|
64
|
+
distanceX,
|
|
65
|
+
distanceY,
|
|
66
|
+
event,
|
|
67
|
+
index,
|
|
68
|
+
key,
|
|
69
|
+
svgPoint,
|
|
70
|
+
}: EventHandlerParams<Datum>) => void;
|
|
71
|
+
/** Callback invoked for onPointerDown events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
72
|
+
onPointerDown?: ({
|
|
73
|
+
datum,
|
|
74
|
+
distanceX,
|
|
75
|
+
distanceY,
|
|
76
|
+
event,
|
|
77
|
+
index,
|
|
78
|
+
key,
|
|
79
|
+
svgPoint,
|
|
80
|
+
}: EventHandlerParams<Datum>) => void;
|
|
81
|
+
/** Whether to invoke PointerEvent handlers for all dataKeys, or the nearest dataKey. */
|
|
82
|
+
pointerEventsDataKey?: 'all' | 'nearest';
|
|
83
|
+
/**
|
|
84
|
+
* Responsive charts, <Tooltip />, and <AnnotationLabel /> depend on ResizeObserver
|
|
85
|
+
* which may be polyfilled globally, passed to individual components or injected once
|
|
86
|
+
* into this component.
|
|
87
|
+
*/
|
|
88
|
+
resizeObserverPolyfill?: ResizeObserverPolyfill
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const allowedEventSources = [XYCHART_EVENT_SOURCE];
|
|
92
|
+
|
|
93
|
+
export default function XYChart<XScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, YScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, Datum extends object>(props: XYChartProps<XScaleConfig, YScaleConfig, Datum>) {
|
|
94
|
+
const {
|
|
95
|
+
accessibilityLabel = 'XYChart',
|
|
96
|
+
captureEvents = true,
|
|
97
|
+
children,
|
|
98
|
+
height,
|
|
99
|
+
horizontal,
|
|
100
|
+
margin = DEFAULT_MARGIN,
|
|
101
|
+
onPointerMove,
|
|
102
|
+
onPointerOut,
|
|
103
|
+
onPointerUp,
|
|
104
|
+
onPointerDown,
|
|
105
|
+
pointerEventsDataKey = 'nearest',
|
|
106
|
+
theme,
|
|
107
|
+
width,
|
|
108
|
+
xScale,
|
|
109
|
+
yScale,
|
|
110
|
+
// pass prop to context so it can be used anywhere
|
|
111
|
+
resizeObserverPolyfill: resizeObserverPolyfillProp,
|
|
112
|
+
} = props;
|
|
113
|
+
const { setDimensions, resizeObserverPolyfill } = useContext(DataContext);
|
|
114
|
+
const tooltipContext = useContext(TooltipContext);
|
|
115
|
+
const emit = useEventEmitter();
|
|
116
|
+
|
|
117
|
+
// update dimensions in context
|
|
118
|
+
useEffect(() => {
|
|
119
|
+
if (setDimensions && width != null && height != null && width > 0 && height > 0) {
|
|
120
|
+
setDimensions({ width, height, margin });
|
|
121
|
+
}
|
|
122
|
+
}, [setDimensions, width, height, margin]);
|
|
123
|
+
|
|
124
|
+
const eventEmitters = useEventEmitters({ source: XYCHART_EVENT_SOURCE });
|
|
125
|
+
useEventHandlers({
|
|
126
|
+
dataKey: pointerEventsDataKey === 'nearest' ? POINTER_EVENTS_NEAREST : POINTER_EVENTS_ALL,
|
|
127
|
+
onPointerMove,
|
|
128
|
+
onPointerOut,
|
|
129
|
+
onPointerUp,
|
|
130
|
+
onPointerDown,
|
|
131
|
+
allowedSources: allowedEventSources,
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
// if Context or dimensions are not available, wrap self in the needed providers
|
|
135
|
+
if (!setDimensions) {
|
|
136
|
+
if (!xScale || !yScale) {
|
|
137
|
+
console.warn(
|
|
138
|
+
'[@octanejs/visx/xychart] XYChart: When no DataProvider is available in context, you must pass xScale & yScale config to XYChart.',
|
|
139
|
+
);
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
return <DataProvider
|
|
143
|
+
xScale={xScale}
|
|
144
|
+
yScale={yScale}
|
|
145
|
+
theme={theme}
|
|
146
|
+
initialDimensions={{ width, height, margin }}
|
|
147
|
+
horizontal={horizontal}
|
|
148
|
+
resizeObserverPolyfill={resizeObserverPolyfillProp}
|
|
149
|
+
>
|
|
150
|
+
<XYChart {...props} />
|
|
151
|
+
</DataProvider>;
|
|
152
|
+
}
|
|
153
|
+
if (width == null || height == null) {
|
|
154
|
+
return <ParentSize resizeObserverPolyfill={resizeObserverPolyfill}>
|
|
155
|
+
{(dims) =>
|
|
156
|
+
<XYChart
|
|
157
|
+
{...props}
|
|
158
|
+
width={props.width == null ? dims.width : props.width}
|
|
159
|
+
height={props.height == null ? dims.height : props.height}
|
|
160
|
+
/>}
|
|
161
|
+
</ParentSize>;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (tooltipContext == null) {
|
|
165
|
+
return <TooltipProvider>
|
|
166
|
+
<XYChart {...props} />
|
|
167
|
+
</TooltipProvider>;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// EventEmitterProvider should be the last wrapper so we do not duplicate handlers
|
|
171
|
+
if (emit == null) {
|
|
172
|
+
return <EventEmitterProvider>
|
|
173
|
+
<XYChart {...props} />
|
|
174
|
+
</EventEmitterProvider>;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (width <= 0 || height <= 0) {
|
|
178
|
+
if (process.env.NODE_ENV === 'development') {
|
|
179
|
+
console.info('XYChart has a zero width or height, bailing', { width, height });
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return <svg width={width} height={height} aria-label={accessibilityLabel}>
|
|
185
|
+
{children}
|
|
186
|
+
{captureEvents &&
|
|
187
|
+
<rect
|
|
188
|
+
x={margin.left}
|
|
189
|
+
y={margin.top}
|
|
190
|
+
width={width - margin.left - margin.right}
|
|
191
|
+
height={height - margin.top - margin.bottom}
|
|
192
|
+
fill="transparent"
|
|
193
|
+
{...eventEmitters}
|
|
194
|
+
/>}
|
|
195
|
+
</svg>;
|
|
196
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, PointerEvent } from 'react';
|
|
3
|
+
import type { ResizeObserverPolyfill } from '@octanejs/visx/responsive';
|
|
4
|
+
import type { AxisScaleOutput } from '@octanejs/visx/axis';
|
|
5
|
+
import type { ScaleConfig } from '@octanejs/visx/scale';
|
|
6
|
+
import type { Margin, EventHandlerParams } from '../types';
|
|
7
|
+
import type { DataProviderProps } from '../providers/DataProvider.tsrx';
|
|
8
|
+
export type XYChartProps<XScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, YScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, Datum extends object> = {
|
|
9
|
+
/** aria-label for the chart svg element. */
|
|
10
|
+
accessibilityLabel?: string;
|
|
11
|
+
/** Whether to capture and dispatch pointer events to EventEmitter context (which e.g., Series subscribe to). */
|
|
12
|
+
captureEvents?: boolean;
|
|
13
|
+
/** Total width of the desired chart svg, including margin. */
|
|
14
|
+
width?: number;
|
|
15
|
+
/** Total height of the desired chart svg, including margin. */
|
|
16
|
+
height?: number;
|
|
17
|
+
/** Margin to apply around the outside. */
|
|
18
|
+
margin?: Margin;
|
|
19
|
+
/** XYChart children (Series, Tooltip, etc.). */
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
/** If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as the theme. */
|
|
22
|
+
theme?: DataProviderProps<XScaleConfig, YScaleConfig>['theme'];
|
|
23
|
+
/** If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as the xScale config. */
|
|
24
|
+
xScale?: DataProviderProps<XScaleConfig, YScaleConfig>['xScale'];
|
|
25
|
+
/** If DataContext is not available, XYChart will wrap itself in a DataProvider and set this as the yScale config. */
|
|
26
|
+
yScale?: DataProviderProps<XScaleConfig, YScaleConfig>['yScale'];
|
|
27
|
+
horizontal?: boolean | 'auto';
|
|
28
|
+
/** Callback invoked for onPointerMove events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
29
|
+
onPointerMove?: ({ datum, distanceX, distanceY, event, index, key, svgPoint, }: EventHandlerParams<Datum>) => void;
|
|
30
|
+
/** Callback invoked for onPointerOut events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
31
|
+
onPointerOut?: (/** The PointerEvent. */
|
|
32
|
+
/** The PointerEvent. */
|
|
33
|
+
event: PointerEvent) => void;
|
|
34
|
+
/** Callback invoked for onPointerUp events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
35
|
+
onPointerUp?: ({ datum, distanceX, distanceY, event, index, key, svgPoint, }: EventHandlerParams<Datum>) => void;
|
|
36
|
+
/** Callback invoked for onPointerDown events for the nearest Datum to the PointerEvent _for each Series with pointerEvents={true}_. */
|
|
37
|
+
onPointerDown?: ({ datum, distanceX, distanceY, event, index, key, svgPoint, }: EventHandlerParams<Datum>) => void;
|
|
38
|
+
/** Whether to invoke PointerEvent handlers for all dataKeys, or the nearest dataKey. */
|
|
39
|
+
pointerEventsDataKey?: 'all' | 'nearest';
|
|
40
|
+
/**
|
|
41
|
+
* Responsive charts, <Tooltip />, and <AnnotationLabel /> depend on ResizeObserver
|
|
42
|
+
* which may be polyfilled globally, passed to individual components or injected once
|
|
43
|
+
* into this component.
|
|
44
|
+
*/
|
|
45
|
+
resizeObserverPolyfill?: ResizeObserverPolyfill;
|
|
46
|
+
};
|
|
47
|
+
export default function XYChart<XScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, YScaleConfig extends ScaleConfig<AxisScaleOutput, any, any>, Datum extends object>(props: XYChartProps<XScaleConfig, YScaleConfig, Datum>): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from 'octane';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
import { useSpring, animated, to } from '../../../internal/spring.tsrx';
|
|
4
|
+
import {
|
|
5
|
+
Annotation as VisxAnnotation,
|
|
6
|
+
EditableAnnotation as VisxEditableAnnotation,
|
|
7
|
+
} from '@octanejs/visx/annotation';
|
|
8
|
+
import type {
|
|
9
|
+
AnnotationProps as VisxAnnotationProps,
|
|
10
|
+
EditableAnnotationProps,
|
|
11
|
+
EditableAnnotationProps as VisxEditableAnnotationProps,
|
|
12
|
+
} from '@octanejs/visx/annotation';
|
|
13
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
14
|
+
import type { BaseAnnotationProps } from './private/BaseAnnotation.tsrx';
|
|
15
|
+
import BaseAnnotation from './private/BaseAnnotation.tsrx';
|
|
16
|
+
|
|
17
|
+
export type AnnotationProps<
|
|
18
|
+
XScale extends AxisScale,
|
|
19
|
+
YScale extends AxisScale,
|
|
20
|
+
Datum extends object,
|
|
21
|
+
> = { editable?: boolean } & Omit<
|
|
22
|
+
BaseAnnotationProps<XScale, YScale, Datum>,
|
|
23
|
+
'AnnotationComponent'
|
|
24
|
+
>;
|
|
25
|
+
|
|
26
|
+
function BaseAnimatedAnnotation({
|
|
27
|
+
x = 0,
|
|
28
|
+
y = 0,
|
|
29
|
+
AnnotationComponent,
|
|
30
|
+
...props
|
|
31
|
+
}: {
|
|
32
|
+
AnnotationComponent: FC<VisxAnnotationProps> | FC<VisxEditableAnnotationProps>;
|
|
33
|
+
} & VisxAnnotationProps &
|
|
34
|
+
EditableAnnotationProps) {
|
|
35
|
+
const lastXY = useRef({ x, y });
|
|
36
|
+
|
|
37
|
+
// in order to keep x/y/dx/dy accurate in AnnotationComponent, animate the delta
|
|
38
|
+
// between positions, to an x + y transform of zero from the previous value
|
|
39
|
+
const animatedXY = useSpring({
|
|
40
|
+
from: { x: lastXY.current.x - x, y: lastXY.current.y - y },
|
|
41
|
+
to: { x: 0, y: 0 },
|
|
42
|
+
reset: true,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
lastXY.current = { x, y };
|
|
47
|
+
}, [x, y]);
|
|
48
|
+
|
|
49
|
+
return <animated.g // for perf animate a group element not the Annotation itself
|
|
50
|
+
transform={to([animatedXY.x, animatedXY.y], (xVal, yVal) => `translate(${xVal}, ${yVal})`)}
|
|
51
|
+
>
|
|
52
|
+
<AnnotationComponent x={x} y={y} {...props} />
|
|
53
|
+
</animated.g>
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export default function AnimatedAnnotation<
|
|
57
|
+
XScale extends AxisScale,
|
|
58
|
+
YScale extends AxisScale,
|
|
59
|
+
Datum extends object,
|
|
60
|
+
>({ editable, ...props }: AnnotationProps<XScale, YScale, Datum>) {
|
|
61
|
+
const AnnotationComponent: BaseAnnotationProps<XScale, YScale, Datum>['AnnotationComponent'] =
|
|
62
|
+
useCallback(
|
|
63
|
+
(annotationProps: VisxAnnotationProps & VisxEditableAnnotationProps) => (
|
|
64
|
+
<BaseAnimatedAnnotation
|
|
65
|
+
AnnotationComponent={editable ? VisxEditableAnnotation : VisxAnnotation}
|
|
66
|
+
{...annotationProps}
|
|
67
|
+
/>
|
|
68
|
+
),
|
|
69
|
+
[editable],
|
|
70
|
+
);
|
|
71
|
+
return <BaseAnnotation AnnotationComponent={AnnotationComponent} {...props} />;
|
|
72
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
3
|
+
import type { BaseAnnotationProps } from './private/BaseAnnotation.tsrx';
|
|
4
|
+
export type AnnotationProps<XScale extends AxisScale, YScale extends AxisScale, Datum extends object> = {
|
|
5
|
+
editable?: boolean;
|
|
6
|
+
} & Omit<BaseAnnotationProps<XScale, YScale, Datum>, 'AnnotationComponent'>;
|
|
7
|
+
export default function AnimatedAnnotation<XScale extends AxisScale, YScale extends AxisScale, Datum extends object>({ editable, ...props }: AnnotationProps<XScale, YScale, Datum>): import("react").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Annotation as VisxAnnotation,
|
|
3
|
+
EditableAnnotation as VisxEditableAnnotation,
|
|
4
|
+
} from '@octanejs/visx/annotation';
|
|
5
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
6
|
+
import type { BaseAnnotationProps } from './private/BaseAnnotation.tsrx';
|
|
7
|
+
import BaseAnnotation from './private/BaseAnnotation.tsrx';
|
|
8
|
+
|
|
9
|
+
export type AnnotationProps<XScale extends AxisScale, YScale extends AxisScale, Datum extends object> =
|
|
10
|
+
{ editable?: boolean } & Omit<BaseAnnotationProps<XScale, YScale, Datum>, 'AnnotationComponent'>;
|
|
11
|
+
|
|
12
|
+
export default function Annotation<XScale extends AxisScale, YScale extends AxisScale, Datum extends object>({
|
|
13
|
+
editable,
|
|
14
|
+
...props
|
|
15
|
+
}: AnnotationProps<XScale, YScale, Datum>) {
|
|
16
|
+
return <BaseAnnotation
|
|
17
|
+
AnnotationComponent={editable ? VisxEditableAnnotation : VisxAnnotation}
|
|
18
|
+
{...props}
|
|
19
|
+
/>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
3
|
+
import type { BaseAnnotationProps } from './private/BaseAnnotation.tsrx';
|
|
4
|
+
export type AnnotationProps<XScale extends AxisScale, YScale extends AxisScale, Datum extends object> = {
|
|
5
|
+
editable?: boolean;
|
|
6
|
+
} & Omit<BaseAnnotationProps<XScale, YScale, Datum>, 'AnnotationComponent'>;
|
|
7
|
+
export default function Annotation<XScale extends AxisScale, YScale extends AxisScale, Datum extends object>({ editable, ...props }: AnnotationProps<XScale, YScale, Datum>): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useContext } from 'octane';
|
|
2
|
+
import { CircleSubject as BaseCircleSubject } from '@octanejs/visx/annotation';
|
|
3
|
+
import type { CircleSubjectProps } from '@octanejs/visx/annotation';
|
|
4
|
+
import DataContext from '../../context/DataContext.tsrx';
|
|
5
|
+
|
|
6
|
+
export type AnnotationSubjectCircleProps = CircleSubjectProps;
|
|
7
|
+
|
|
8
|
+
/** AnnotationSubjectCircle which provides color from theme. */
|
|
9
|
+
export default function AnnotationCircleSubject(props: AnnotationSubjectCircleProps) {
|
|
10
|
+
const { theme } = useContext(DataContext);
|
|
11
|
+
return <BaseCircleSubject stroke={theme?.axisStyles.x.bottom.axisLine.stroke} {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { CircleSubjectProps } from '@octanejs/visx/annotation';
|
|
3
|
+
export type AnnotationSubjectCircleProps = CircleSubjectProps;
|
|
4
|
+
/** AnnotationSubjectCircle which provides color from theme. */
|
|
5
|
+
export default function AnnotationCircleSubject(props: AnnotationSubjectCircleProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useContext } from 'octane';
|
|
2
|
+
import { Connector as BaseConnector } from '@octanejs/visx/annotation';
|
|
3
|
+
import type { ConnectorProps as BaseConnectorProps } from '@octanejs/visx/annotation';
|
|
4
|
+
import DataContext from '../../context/DataContext.tsrx';
|
|
5
|
+
|
|
6
|
+
export type AnnotationConnectorProps = BaseConnectorProps;
|
|
7
|
+
|
|
8
|
+
/** AnnotationConnector which provides color from theme. */
|
|
9
|
+
export default function AnnotationConnector(props: AnnotationConnectorProps) {
|
|
10
|
+
const { theme } = useContext(DataContext);
|
|
11
|
+
return <BaseConnector stroke={theme?.axisStyles.x.bottom.axisLine.stroke} {...props} />;
|
|
12
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ConnectorProps as BaseConnectorProps } from '@octanejs/visx/annotation';
|
|
3
|
+
export type AnnotationConnectorProps = BaseConnectorProps;
|
|
4
|
+
/** AnnotationConnector which provides color from theme. */
|
|
5
|
+
export default function AnnotationConnector(props: AnnotationConnectorProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useContext } from 'octane';
|
|
2
|
+
import { Label as BaseLabel } from '@octanejs/visx/annotation';
|
|
3
|
+
import type { LabelProps as BaseLabelProps } from '@octanejs/visx/annotation';
|
|
4
|
+
import DataContext from '../../context/DataContext.tsrx';
|
|
5
|
+
|
|
6
|
+
export type AnnotationLabelProps = BaseLabelProps;
|
|
7
|
+
|
|
8
|
+
const defaultBackgroundProps = { fillOpacity: 0.7 };
|
|
9
|
+
|
|
10
|
+
/** AnnotationLabel which provides text styles from theme. */
|
|
11
|
+
export default function AnnotationLabel(props: AnnotationLabelProps) {
|
|
12
|
+
const { theme, resizeObserverPolyfill } = useContext(DataContext);
|
|
13
|
+
const titleProps = theme?.svgLabelBig;
|
|
14
|
+
const subtitleProps = theme?.svgLabelSmall;
|
|
15
|
+
return <BaseLabel
|
|
16
|
+
anchorLineStroke={theme?.axisStyles.x.bottom.axisLine.stroke}
|
|
17
|
+
backgroundFill={theme?.backgroundColor}
|
|
18
|
+
backgroundProps={defaultBackgroundProps}
|
|
19
|
+
showAnchorLine
|
|
20
|
+
subtitleFontSize={subtitleProps?.fontSize}
|
|
21
|
+
subtitleFontWeight={subtitleProps?.fontWeight}
|
|
22
|
+
subtitleProps={subtitleProps}
|
|
23
|
+
titleFontSize={titleProps?.fontSize}
|
|
24
|
+
titleFontWeight={titleProps?.fontWeight}
|
|
25
|
+
titleProps={titleProps}
|
|
26
|
+
resizeObserverPolyfill={resizeObserverPolyfill}
|
|
27
|
+
{...props}
|
|
28
|
+
/>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { LabelProps as BaseLabelProps } from '@octanejs/visx/annotation';
|
|
3
|
+
export type AnnotationLabelProps = BaseLabelProps;
|
|
4
|
+
/** AnnotationLabel which provides text styles from theme. */
|
|
5
|
+
export default function AnnotationLabel(props: AnnotationLabelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useContext } from 'octane';
|
|
2
|
+
import type { SVGProps } from 'react';
|
|
3
|
+
import { LineSubject as BaseLineSubject } from '@octanejs/visx/annotation';
|
|
4
|
+
import type { LineSubjectProps } from '@octanejs/visx/annotation';
|
|
5
|
+
import DataContext from '../../context/DataContext.tsrx';
|
|
6
|
+
|
|
7
|
+
export type AnnotationLineSubjectProps = Omit<LineSubjectProps, 'min' | 'max'> & {
|
|
8
|
+
min?: number;
|
|
9
|
+
max?: number;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/** AnnotationLineSubject which provides color and dimensions from context. */
|
|
13
|
+
export default function AnnotationLineSubject({
|
|
14
|
+
min,
|
|
15
|
+
max,
|
|
16
|
+
...props
|
|
17
|
+
}: AnnotationLineSubjectProps & Omit<SVGProps<SVGLineElement>, keyof AnnotationLineSubjectProps>) {
|
|
18
|
+
const { theme, margin, innerHeight = 0, innerWidth = 0 } = useContext(DataContext);
|
|
19
|
+
return <BaseLineSubject
|
|
20
|
+
stroke={theme?.axisStyles.x.bottom.axisLine.stroke}
|
|
21
|
+
min={min ?? (props.orientation === 'horizontal' ? margin?.left : margin?.top) ?? 0}
|
|
22
|
+
max={max ??
|
|
23
|
+
(props.orientation === 'horizontal'
|
|
24
|
+
? (margin?.left ?? 0) + innerWidth
|
|
25
|
+
: (margin?.top ?? 0) + innerHeight)}
|
|
26
|
+
{...props}
|
|
27
|
+
/>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { SVGProps } from 'react';
|
|
3
|
+
import type { LineSubjectProps } from '@octanejs/visx/annotation';
|
|
4
|
+
export type AnnotationLineSubjectProps = Omit<LineSubjectProps, 'min' | 'max'> & {
|
|
5
|
+
min?: number;
|
|
6
|
+
max?: number;
|
|
7
|
+
};
|
|
8
|
+
/** AnnotationLineSubject which provides color and dimensions from context. */
|
|
9
|
+
export default function AnnotationLineSubject({ min, max, ...props }: AnnotationLineSubjectProps & Omit<SVGProps<SVGLineElement>, keyof AnnotationLineSubjectProps>): import("react").JSX.Element;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { useContext, useMemo } from 'octane';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
import type { AnnotationProps, EditableAnnotationProps } from '@octanejs/visx/annotation';
|
|
4
|
+
import type { ScaleInput } from '@octanejs/visx/scale';
|
|
5
|
+
import { coerceNumber } from '@octanejs/visx/scale';
|
|
6
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
7
|
+
import DataContext from '../../../context/DataContext.tsrx';
|
|
8
|
+
import getScaleBandwidth from '../../../utils/getScaleBandwidth';
|
|
9
|
+
import isValidNumber from '../../../typeguards/isValidNumber';
|
|
10
|
+
|
|
11
|
+
export type BaseAnnotationProps<XScale extends AxisScale, YScale extends AxisScale, Datum extends object> =
|
|
12
|
+
Pick<EditableAnnotationProps, | 'canEditLabel'
|
|
13
|
+
| 'canEditSubject'
|
|
14
|
+
| 'children'
|
|
15
|
+
| 'dx'
|
|
16
|
+
| 'dy'
|
|
17
|
+
| 'onDragEnd'
|
|
18
|
+
| 'onDragMove'
|
|
19
|
+
| 'onDragStart'> & {
|
|
20
|
+
/** Annotation component to render. */
|
|
21
|
+
AnnotationComponent: FC<AnnotationProps> | FC<EditableAnnotationProps>;
|
|
22
|
+
/** Key for series to which datum belongs (used for x/yAccessors). Alternatively xAccessor + yAccessor may be specified. */
|
|
23
|
+
dataKey?: string;
|
|
24
|
+
/** Datum to annotate, used for Annotation positioning. */
|
|
25
|
+
datum: Datum;
|
|
26
|
+
/** If dataKey is not specified, you must specify an xAccessor for datum. */
|
|
27
|
+
xAccessor?: (d: Datum) => ScaleInput<XScale>;
|
|
28
|
+
/** If dataKey is not specified, you must specify an yAccessor for datum. */
|
|
29
|
+
yAccessor?: (d: Datum) => ScaleInput<YScale>;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// used for auto-positioning
|
|
33
|
+
const minimumLabelDimension = 16;
|
|
34
|
+
|
|
35
|
+
export default function BaseAnnotation<XScale extends AxisScale, YScale extends AxisScale, Datum extends object>({
|
|
36
|
+
AnnotationComponent,
|
|
37
|
+
children,
|
|
38
|
+
datum,
|
|
39
|
+
dataKey,
|
|
40
|
+
xAccessor: propsXAccessor,
|
|
41
|
+
yAccessor: propsYAccessor,
|
|
42
|
+
dx: propsDx = 0,
|
|
43
|
+
dy: propsDy = 0,
|
|
44
|
+
...annotationProps
|
|
45
|
+
}: BaseAnnotationProps<XScale, YScale, Datum>) {
|
|
46
|
+
const { innerHeight, innerWidth, margin, xScale, yScale, dataRegistry } =
|
|
47
|
+
useContext(DataContext) || {};
|
|
48
|
+
|
|
49
|
+
const xBandWidth = useMemo(() => (xScale ? getScaleBandwidth(xScale) : 0), [xScale]);
|
|
50
|
+
const yBandWidth = useMemo(() => (yScale ? getScaleBandwidth(yScale) : 0), [yScale]);
|
|
51
|
+
|
|
52
|
+
if ((!propsXAccessor || !propsYAccessor) && !dataKey) {
|
|
53
|
+
console.warn(
|
|
54
|
+
'[@octanejs/visx/xychart/BaseAnnotation]: dataKey or x/yAccessors must be specified.',
|
|
55
|
+
);
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const registryEntry =
|
|
60
|
+
propsXAccessor && propsYAccessor || dataKey == null ? null : dataRegistry?.get(dataKey);
|
|
61
|
+
const xAccessor = propsXAccessor || registryEntry?.xAccessor;
|
|
62
|
+
const yAccessor = propsYAccessor || registryEntry?.yAccessor;
|
|
63
|
+
|
|
64
|
+
if (!xScale || !yScale || !innerWidth || !innerHeight || !xAccessor || !yAccessor || !margin) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const x = (coerceNumber(xScale(xAccessor(datum))) ?? NaN) + xBandWidth / 2;
|
|
69
|
+
const y = (coerceNumber(yScale(yAccessor(datum))) ?? NaN) + yBandWidth / 2;
|
|
70
|
+
const dx =
|
|
71
|
+
x + propsDx + minimumLabelDimension > margin.left + innerWidth ? -propsDx : propsDx;
|
|
72
|
+
const dy =
|
|
73
|
+
y + propsDy + minimumLabelDimension > margin.top + innerHeight ? -propsDy : propsDy;
|
|
74
|
+
|
|
75
|
+
return isValidNumber(x) && isValidNumber(y)
|
|
76
|
+
? <AnnotationComponent
|
|
77
|
+
width={innerWidth}
|
|
78
|
+
height={innerHeight}
|
|
79
|
+
{...annotationProps}
|
|
80
|
+
x={x}
|
|
81
|
+
y={y}
|
|
82
|
+
dx={dx}
|
|
83
|
+
dy={dy}
|
|
84
|
+
>{children}</AnnotationComponent>
|
|
85
|
+
: null;
|
|
86
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
import type { AnnotationProps, EditableAnnotationProps } from '@octanejs/visx/annotation';
|
|
4
|
+
import type { ScaleInput } from '@octanejs/visx/scale';
|
|
5
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
6
|
+
export type BaseAnnotationProps<XScale extends AxisScale, YScale extends AxisScale, Datum extends object> = Pick<EditableAnnotationProps, 'canEditLabel' | 'canEditSubject' | 'children' | 'dx' | 'dy' | 'onDragEnd' | 'onDragMove' | 'onDragStart'> & {
|
|
7
|
+
/** Annotation component to render. */
|
|
8
|
+
AnnotationComponent: FC<AnnotationProps> | FC<EditableAnnotationProps>;
|
|
9
|
+
/** Key for series to which datum belongs (used for x/yAccessors). Alternatively xAccessor + yAccessor may be specified. */
|
|
10
|
+
dataKey?: string;
|
|
11
|
+
/** Datum to annotate, used for Annotation positioning. */
|
|
12
|
+
datum: Datum;
|
|
13
|
+
/** If dataKey is not specified, you must specify an xAccessor for datum. */
|
|
14
|
+
xAccessor?: (d: Datum) => ScaleInput<XScale>;
|
|
15
|
+
/** If dataKey is not specified, you must specify an yAccessor for datum. */
|
|
16
|
+
yAccessor?: (d: Datum) => ScaleInput<YScale>;
|
|
17
|
+
};
|
|
18
|
+
export default function BaseAnnotation<XScale extends AxisScale, YScale extends AxisScale, Datum extends object>({ AnnotationComponent, children, datum, dataKey, xAccessor: propsXAccessor, yAccessor: propsYAccessor, dx: propsDx, dy: propsDy, ...annotationProps }: BaseAnnotationProps<XScale, YScale, Datum>): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
2
|
+
import { AnimatedAxis as VxAnimatedAxis } from '@octanejs/visx/react-spring';
|
|
3
|
+
import type { AnimationTrajectory } from '@octanejs/visx/react-spring';
|
|
4
|
+
import type { BaseAxisProps } from './BaseAxis.tsrx';
|
|
5
|
+
import BaseAxis from './BaseAxis.tsrx';
|
|
6
|
+
|
|
7
|
+
export type AnimatedAxisProps<Scale extends AxisScale> =
|
|
8
|
+
Omit<BaseAxisProps<Scale>, 'AxisComponent'> & {
|
|
9
|
+
/** Animation trjectory of axis ticks. */
|
|
10
|
+
animationTrajectory?: AnimationTrajectory;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default function AnimatedAxis<Scale extends AxisScale>(props: AnimatedAxisProps<Scale>) {
|
|
14
|
+
return <BaseAxis AxisComponent={VxAnimatedAxis} {...props} />;
|
|
15
|
+
}
|