@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,52 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
3
|
+
import type { GeoGraticuleGenerator } from 'd3-geo';
|
|
4
|
+
import type { LineString, MultiLineString, Polygon } from 'geojson';
|
|
5
|
+
export type GraticuleProps = {
|
|
6
|
+
/**
|
|
7
|
+
* Render function for graticules which is passed a GeoJSON MultiLineString geometry object
|
|
8
|
+
* representing all meridians and parallels for the graticule.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Render function for graticules which is passed a GeoJSON MultiLineString geometry object
|
|
12
|
+
* representing all meridians and parallels for the graticule.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Render function for graticules which is passed a GeoJSON MultiLineString geometry object
|
|
16
|
+
* representing all meridians and parallels for the graticule.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Render function for graticules which is passed a GeoJSON MultiLineString geometry object
|
|
20
|
+
* representing all meridians and parallels for the graticule.
|
|
21
|
+
*/
|
|
22
|
+
graticule?: (multiLineString: MultiLineString) => string;
|
|
23
|
+
/**
|
|
24
|
+
* Render function for graticule lines, which is invoked once for each meridian or parallel for the graticule,
|
|
25
|
+
* and is passed the GeoJSON LineString object representing said meridian or parallel.
|
|
26
|
+
*/
|
|
27
|
+
lines?: (lineString: LineString) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Render function for the outline of the graticule (i.e. along the meridians and parallels defining its extent).
|
|
30
|
+
* It is passed a GeoJSON Polygon geometry object representing the outline.
|
|
31
|
+
*/
|
|
32
|
+
outline?: (polygon: Polygon) => string;
|
|
33
|
+
/** Override render function, which is passed the configured graticule generator. */
|
|
34
|
+
children?: ({ graticule, }: {
|
|
35
|
+
graticule: GeoGraticuleGenerator;
|
|
36
|
+
}) => ReactNode;
|
|
37
|
+
/** Sets the major and minor extents of the graticule generator, which defaults to ⟨⟨-180°, -80° - ε⟩, ⟨180°, 80° + ε⟩⟩. */
|
|
38
|
+
extent?: [[number, number], [number, number]];
|
|
39
|
+
/** Sets the major extent of the graticule generator, which defaults to ⟨⟨-180°, -90° + ε⟩, ⟨180°, 90° - ε⟩⟩. */
|
|
40
|
+
extentMajor?: [[number, number], [number, number]];
|
|
41
|
+
/** Sets the major extent of the graticule generator, which defaults to ⟨⟨-180°, -80° - ε⟩, ⟨180°, 80° + ε⟩⟩. */
|
|
42
|
+
extentMinor?: [[number, number], [number, number]];
|
|
43
|
+
/** Sets both the major and minor step of the graticule generator. */
|
|
44
|
+
step?: [number, number];
|
|
45
|
+
/** Sets the major step of the graticule generator, which defaults to ⟨90°, 360°⟩. */
|
|
46
|
+
stepMajor?: [number, number];
|
|
47
|
+
/** Sets the major step of the graticule generator, which defaults to ⟨10°, 10°⟩. */
|
|
48
|
+
stepMinor?: [number, number];
|
|
49
|
+
/** Sets the precision of the graticule generator, which defaults to 2.5°. */
|
|
50
|
+
precision?: number;
|
|
51
|
+
};
|
|
52
|
+
export default function Graticule({ graticule, lines, outline, extent, extentMajor, extentMinor, step, stepMajor, stepMinor, precision, children, ...restProps }: GraticuleProps & Omit<SVGProps<SVGPathElement>, keyof GraticuleProps>): import("react").JSX.Element;
|
package/src/geo/index.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// @octanejs/visx/geo
|
|
2
|
+
export { default as Albers } from './projections/Albers.tsrx';
|
|
3
|
+
export { default as AlbersUsa } from './projections/AlbersUsa.tsrx';
|
|
4
|
+
export { default as Mercator } from './projections/Mercator.tsrx';
|
|
5
|
+
export { default as Orthographic } from './projections/Orthographic.tsrx';
|
|
6
|
+
export { default as NaturalEarth } from './projections/NaturalEarth.tsrx';
|
|
7
|
+
export { default as EqualEarth } from './projections/EqualEarth.tsrx';
|
|
8
|
+
export { default as CustomProjection } from './projections/CustomProjection.tsrx';
|
|
9
|
+
export { default as Graticule } from './graticule/Graticule.tsrx';
|
|
10
|
+
|
|
11
|
+
export type * from './types';
|
|
12
|
+
export type { GraticuleProps } from './graticule/Graticule.tsrx';
|
|
13
|
+
export type { ProjectionProps } from './projections/Projection.tsrx';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection="albers" {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function Albers<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>) {
|
|
9
|
+
return <Projection projection="albers" {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection="albers" {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function Albers<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection="albersUsa" {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function AlbersUsa<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>) {
|
|
9
|
+
return <Projection projection="albersUsa" {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection="albersUsa" {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function AlbersUsa<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection={customProjection} {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function CustomProjection<Datum extends GeoPermissibleObjects>(props: ProjectionProps<Datum>) {
|
|
9
|
+
return <Projection {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection={customProjection} {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function CustomProjection<Datum extends GeoPermissibleObjects>(props: ProjectionProps<Datum>): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection="equalEarth" {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function EqualEarth<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>) {
|
|
9
|
+
return <Projection projection="equalEarth" {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection="equalEarth" {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function EqualEarth<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection="mercator" {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function Mercator<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>) {
|
|
9
|
+
return <Projection projection="mercator" {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection="mercator" {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function Mercator<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection="naturalEarth" {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function NaturalEarth<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>) {
|
|
9
|
+
return <Projection projection="naturalEarth" {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection="naturalEarth" {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function NaturalEarth<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
2
|
+
import Projection from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* All props pass through to `<Projection projection="orthographic" {...props} />`
|
|
7
|
+
*/
|
|
8
|
+
export default function Orthographic<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>) {
|
|
9
|
+
return <Projection projection="orthographic" {...props} />;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ProjectionProps } from './Projection.tsrx';
|
|
3
|
+
import type { GeoPermissibleObjects } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* All props pass through to `<Projection projection="orthographic" {...props} />`
|
|
6
|
+
*/
|
|
7
|
+
export default function Orthographic<Datum extends GeoPermissibleObjects>(props: Omit<ProjectionProps<Datum>, 'projection'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import type { ReactNode, SVGProps, Ref } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import { Group } from '@octanejs/visx/group';
|
|
4
|
+
import type { GeoPath, GeoProjection, ExtendedFeature } from 'd3-geo';
|
|
5
|
+
import {
|
|
6
|
+
geoOrthographic,
|
|
7
|
+
geoAlbers,
|
|
8
|
+
geoAlbersUsa,
|
|
9
|
+
geoMercator,
|
|
10
|
+
geoNaturalEarth1,
|
|
11
|
+
geoEqualEarth,
|
|
12
|
+
geoPath,
|
|
13
|
+
} from 'd3-geo';
|
|
14
|
+
// this is just for types
|
|
15
|
+
// eslint-disable-next-line import/no-unresolved
|
|
16
|
+
import type { LineString, Polygon, MultiLineString } from 'geojson';
|
|
17
|
+
|
|
18
|
+
import type { GraticuleProps } from '../graticule/Graticule.tsrx';
|
|
19
|
+
import Graticule from '../graticule/Graticule.tsrx';
|
|
20
|
+
import type {
|
|
21
|
+
GeoPermissibleObjects,
|
|
22
|
+
ProjectionPreset,
|
|
23
|
+
Projection as ProjectionShape,
|
|
24
|
+
} from '../types';
|
|
25
|
+
|
|
26
|
+
const projectionMapping: { [projection in ProjectionPreset]: () => GeoProjection } = {
|
|
27
|
+
orthographic: () => geoOrthographic(),
|
|
28
|
+
albers: () => geoAlbers(),
|
|
29
|
+
albersUsa: () => geoAlbersUsa(),
|
|
30
|
+
mercator: () => geoMercator(),
|
|
31
|
+
naturalEarth: () => geoNaturalEarth1(),
|
|
32
|
+
equalEarth: () => geoEqualEarth(),
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type ProjectionProps<Datum extends GeoPermissibleObjects = GeoPermissibleObjects> = {
|
|
36
|
+
/** Array of features to project. */
|
|
37
|
+
data: Datum[];
|
|
38
|
+
/** Preset projection name, or custom projection function which returns a GeoProjection. */
|
|
39
|
+
projection?: ProjectionShape;
|
|
40
|
+
/** Hook to render above features, passed the configured projectionFunc. */
|
|
41
|
+
projectionFunc?: (projection: GeoProjection) => ReactNode;
|
|
42
|
+
/** Sets the projection’s clipping circle radius to the specified angle in degree. */
|
|
43
|
+
clipAngle?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Sets the projection’s viewport clip extent to the specified bounds in pixels. extent bounds
|
|
46
|
+
* are specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left-side of the viewport,
|
|
47
|
+
* y₀ is the top, x₁ is the right and y₁ is the bottom.
|
|
48
|
+
*/
|
|
49
|
+
clipExtent?: [[number, number], [number, number]];
|
|
50
|
+
/**
|
|
51
|
+
* Sets the projection’s scale factor to the specified value. The scale factor corresponds linearly
|
|
52
|
+
* to the distance between projected points; however, absolute scale factors are not equivalent
|
|
53
|
+
* across projections.
|
|
54
|
+
*/
|
|
55
|
+
scale?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Sets the projection’s translation offset, which determines the pixel coordinates of the
|
|
58
|
+
* projection’s center, to the specified two-element array [tx, ty].
|
|
59
|
+
*/
|
|
60
|
+
translate?: [number, number];
|
|
61
|
+
/** Sets the projection’s center to the specified two-element array of longitude and latitude in degrees. */
|
|
62
|
+
center?: [number, number];
|
|
63
|
+
/** Sets the projection’s three-axis spherical rotation to the specified angles [lambda, phi [, gamma]], corresponding to yaw, pitch, and roll. */
|
|
64
|
+
rotate?: [number, number] | [number, number, number];
|
|
65
|
+
/** Sets the threshold for the projection’s adaptive resampling to the specified value in pixels. */
|
|
66
|
+
precision?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Sets the projection’s scale and translate to fit the specified GeoJSON object in the center of the given extent.
|
|
69
|
+
* The extent is specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box,
|
|
70
|
+
* y₀ is the top, x₁ is the right and y₁ is the bottom.
|
|
71
|
+
*/
|
|
72
|
+
fitExtent?: [[[number, number], [number, number]], ExtendedFeature]; // ExtendedFeature | ExtendedFeatureCollection | GeoGeometryObjects,
|
|
73
|
+
/** Convenience prop for props.fitExtent where the top-left corner of the extent is [0, 0]. */
|
|
74
|
+
fitSize?: [[number, number], ExtendedFeature]; // ExtendedFeature | ExtendedFeatureCollection | GeoGeometryObjects
|
|
75
|
+
/** Hook to render anything at the centroid of a feature. */
|
|
76
|
+
centroid?: (centroid: [number, number], feature: ParsedFeature<Datum>) => ReactNode;
|
|
77
|
+
/** className to apply to feature path elements. */
|
|
78
|
+
className?: string;
|
|
79
|
+
/** Override render function which is passed path data and a copy of the constructed projection. */
|
|
80
|
+
children?: (args: {
|
|
81
|
+
path: GeoPath<unknown, GeoPermissibleObjects>;
|
|
82
|
+
features: ParsedFeature<Datum>[];
|
|
83
|
+
projection: GeoProjection;
|
|
84
|
+
}) => ReactNode;
|
|
85
|
+
/** Function invoked for each feature which returns a Ref to the projection path element for that feature. */
|
|
86
|
+
innerRef?: (feature: ParsedFeature<Datum>, index: number) => Ref<SVGPathElement>;
|
|
87
|
+
/** If specified, renders a Graticule with the specified props. Specify `graticule.foreground = true` to be rendered on top of features. */
|
|
88
|
+
graticule?: Omit<GraticuleProps, 'lines'> & { foreground: boolean };
|
|
89
|
+
/** If specified, renders a Graticule lines with the specified props. Specify `graticuleLines.foreground = true` to be rendered on top of features. */
|
|
90
|
+
graticuleLines?: Omit<GraticuleProps, 'lines'> & { foreground: boolean };
|
|
91
|
+
/** If specified, renders a Graticule outline with the specified props. Specify `graticuleOutline.foreground = true` to be rendered on top of features. */
|
|
92
|
+
graticuleOutline?: Omit<GraticuleProps, 'outline'> & { foreground: boolean };
|
|
93
|
+
/** Limits the digits for coordinates generated in SVG path strings to the specified number of digits. */
|
|
94
|
+
digits?: number;
|
|
95
|
+
/** Sets the radius used to display Point and MultiPoint geometries to the specified number. */
|
|
96
|
+
pointRadius?: number;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export interface ParsedFeature<Datum> {
|
|
100
|
+
feature: Datum;
|
|
101
|
+
type: ProjectionShape;
|
|
102
|
+
projection: GeoProjection;
|
|
103
|
+
index: number;
|
|
104
|
+
centroid: [number, number];
|
|
105
|
+
path: string | null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Component for all projections.
|
|
110
|
+
*/
|
|
111
|
+
export default function Projection<Datum extends GeoPermissibleObjects>({
|
|
112
|
+
data,
|
|
113
|
+
projection = 'mercator',
|
|
114
|
+
projectionFunc,
|
|
115
|
+
clipAngle,
|
|
116
|
+
clipExtent,
|
|
117
|
+
scale,
|
|
118
|
+
translate,
|
|
119
|
+
center,
|
|
120
|
+
rotate,
|
|
121
|
+
precision,
|
|
122
|
+
fitExtent,
|
|
123
|
+
fitSize,
|
|
124
|
+
centroid,
|
|
125
|
+
graticule,
|
|
126
|
+
graticuleLines,
|
|
127
|
+
graticuleOutline,
|
|
128
|
+
className,
|
|
129
|
+
innerRef,
|
|
130
|
+
digits,
|
|
131
|
+
pointRadius,
|
|
132
|
+
children,
|
|
133
|
+
...restProps
|
|
134
|
+
}: ProjectionProps<Datum> & Omit<SVGProps<SVGPathElement>, keyof ProjectionProps<Datum>>) {
|
|
135
|
+
const maybeCustomProjection =
|
|
136
|
+
typeof projection === 'string' ? projectionMapping[projection] : projection;
|
|
137
|
+
|
|
138
|
+
const currProjection = maybeCustomProjection();
|
|
139
|
+
|
|
140
|
+
if (clipAngle && currProjection.clipAngle) currProjection.clipAngle(clipAngle);
|
|
141
|
+
if (clipExtent && currProjection.clipExtent) currProjection.clipExtent(clipExtent);
|
|
142
|
+
if (scale && currProjection.scale) currProjection.scale(scale);
|
|
143
|
+
if (translate && currProjection.translate) currProjection.translate(translate);
|
|
144
|
+
if (center && currProjection.center) currProjection.center(center);
|
|
145
|
+
if (rotate && currProjection.rotate) currProjection.rotate(rotate);
|
|
146
|
+
if (precision && currProjection.precision) currProjection.precision(precision);
|
|
147
|
+
if (fitExtent && currProjection.fitExtent) currProjection.fitExtent(...fitExtent);
|
|
148
|
+
if (fitSize && currProjection.fitSize) currProjection.fitSize(...fitSize);
|
|
149
|
+
|
|
150
|
+
const path = geoPath().projection(currProjection);
|
|
151
|
+
|
|
152
|
+
if (digits !== undefined) path.digits(digits);
|
|
153
|
+
if (pointRadius !== undefined) path.pointRadius(pointRadius);
|
|
154
|
+
|
|
155
|
+
const features: ParsedFeature<Datum>[] = data.map(
|
|
156
|
+
(feature, i) => ({
|
|
157
|
+
feature,
|
|
158
|
+
type: projection,
|
|
159
|
+
projection: currProjection,
|
|
160
|
+
index: i,
|
|
161
|
+
centroid: path.centroid(feature),
|
|
162
|
+
path: path(feature),
|
|
163
|
+
}),
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
if (children) return <>
|
|
167
|
+
{children({ path, features, projection: currProjection })}
|
|
168
|
+
</>;
|
|
169
|
+
|
|
170
|
+
return <Group className="visx-geo">
|
|
171
|
+
{graticule && !graticule.foreground &&
|
|
172
|
+
<Graticule graticule={(ml: MultiLineString) => path(ml) || ''} {...graticule} />}
|
|
173
|
+
{graticuleLines && !graticuleLines.foreground &&
|
|
174
|
+
<Graticule lines={(l: LineString) => path(l) || ''} {...graticuleLines} />}
|
|
175
|
+
{graticuleOutline && !graticuleOutline.foreground &&
|
|
176
|
+
<Graticule outline={(p: Polygon) => path(p) || ''} {...graticuleOutline} />}
|
|
177
|
+
|
|
178
|
+
{features.map(
|
|
179
|
+
(feature, i) => <g key={`${projection}-${i}`}>
|
|
180
|
+
<path
|
|
181
|
+
className={cx(`visx-geo-${projection}`, className)}
|
|
182
|
+
d={feature.path || ''}
|
|
183
|
+
ref={innerRef?.(feature, i)}
|
|
184
|
+
{...restProps}
|
|
185
|
+
/>
|
|
186
|
+
{centroid?.(feature.centroid, feature)}
|
|
187
|
+
</g>,
|
|
188
|
+
)}
|
|
189
|
+
|
|
190
|
+
{/* TODO: Maybe find a different way to pass projection function to use for example invert */}
|
|
191
|
+
{projectionFunc?.(currProjection)}
|
|
192
|
+
|
|
193
|
+
{graticule?.foreground &&
|
|
194
|
+
<Graticule graticule={(ml: MultiLineString) => path(ml) || ''} {...graticule} />}
|
|
195
|
+
|
|
196
|
+
{graticuleLines?.foreground &&
|
|
197
|
+
<Graticule lines={(l: LineString) => path(l) || ''} {...graticuleLines} />}
|
|
198
|
+
{graticuleOutline?.foreground &&
|
|
199
|
+
<Graticule outline={(p: Polygon) => path(p) || ''} {...graticuleOutline} />}
|
|
200
|
+
</Group>;
|
|
201
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, SVGProps, Ref } from 'react';
|
|
3
|
+
import type { GeoPath, GeoProjection, ExtendedFeature } from 'd3-geo';
|
|
4
|
+
import type { GraticuleProps } from '../graticule/Graticule.tsrx';
|
|
5
|
+
import type { GeoPermissibleObjects, Projection as ProjectionShape } from '../types';
|
|
6
|
+
export type ProjectionProps<Datum extends GeoPermissibleObjects = GeoPermissibleObjects> = {
|
|
7
|
+
/** Array of features to project. */
|
|
8
|
+
data: Datum[];
|
|
9
|
+
/** Preset projection name, or custom projection function which returns a GeoProjection. */
|
|
10
|
+
projection?: ProjectionShape;
|
|
11
|
+
/** Hook to render above features, passed the configured projectionFunc. */
|
|
12
|
+
projectionFunc?: (projection: GeoProjection) => ReactNode;
|
|
13
|
+
/** Sets the projection’s clipping circle radius to the specified angle in degree. */
|
|
14
|
+
clipAngle?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Sets the projection’s viewport clip extent to the specified bounds in pixels. extent bounds
|
|
17
|
+
* are specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left-side of the viewport,
|
|
18
|
+
* y₀ is the top, x₁ is the right and y₁ is the bottom.
|
|
19
|
+
*/
|
|
20
|
+
clipExtent?: [[number, number], [number, number]];
|
|
21
|
+
/**
|
|
22
|
+
* Sets the projection’s scale factor to the specified value. The scale factor corresponds linearly
|
|
23
|
+
* to the distance between projected points; however, absolute scale factors are not equivalent
|
|
24
|
+
* across projections.
|
|
25
|
+
*/
|
|
26
|
+
scale?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Sets the projection’s translation offset, which determines the pixel coordinates of the
|
|
29
|
+
* projection’s center, to the specified two-element array [tx, ty].
|
|
30
|
+
*/
|
|
31
|
+
translate?: [number, number];
|
|
32
|
+
/** Sets the projection’s center to the specified two-element array of longitude and latitude in degrees. */
|
|
33
|
+
center?: [number, number];
|
|
34
|
+
/** Sets the projection’s three-axis spherical rotation to the specified angles [lambda, phi [, gamma]], corresponding to yaw, pitch, and roll. */
|
|
35
|
+
rotate?: [number, number] | [number, number, number];
|
|
36
|
+
/** Sets the threshold for the projection’s adaptive resampling to the specified value in pixels. */
|
|
37
|
+
precision?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the projection’s scale and translate to fit the specified GeoJSON object in the center of the given extent.
|
|
40
|
+
* The extent is specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box,
|
|
41
|
+
* y₀ is the top, x₁ is the right and y₁ is the bottom.
|
|
42
|
+
*/
|
|
43
|
+
fitExtent?: [[[number, number], [number, number]], ExtendedFeature];
|
|
44
|
+
/** Convenience prop for props.fitExtent where the top-left corner of the extent is [0, 0]. */
|
|
45
|
+
fitSize?: [[number, number], ExtendedFeature];
|
|
46
|
+
/** Hook to render anything at the centroid of a feature. */
|
|
47
|
+
centroid?: (centroid: [number, number], feature: ParsedFeature<Datum>) => ReactNode;
|
|
48
|
+
/** className to apply to feature path elements. */
|
|
49
|
+
className?: string;
|
|
50
|
+
/** Override render function which is passed path data and a copy of the constructed projection. */
|
|
51
|
+
children?: (args: {
|
|
52
|
+
path: GeoPath<unknown, GeoPermissibleObjects>;
|
|
53
|
+
features: ParsedFeature<Datum>[];
|
|
54
|
+
projection: GeoProjection;
|
|
55
|
+
}) => ReactNode;
|
|
56
|
+
/** Function invoked for each feature which returns a Ref to the projection path element for that feature. */
|
|
57
|
+
innerRef?: (feature: ParsedFeature<Datum>, index: number) => Ref<SVGPathElement>;
|
|
58
|
+
/** If specified, renders a Graticule with the specified props. Specify `graticule.foreground = true` to be rendered on top of features. */
|
|
59
|
+
graticule?: Omit<GraticuleProps, 'lines'> & {
|
|
60
|
+
foreground: boolean;
|
|
61
|
+
};
|
|
62
|
+
/** If specified, renders a Graticule lines with the specified props. Specify `graticuleLines.foreground = true` to be rendered on top of features. */
|
|
63
|
+
graticuleLines?: Omit<GraticuleProps, 'lines'> & {
|
|
64
|
+
foreground: boolean;
|
|
65
|
+
};
|
|
66
|
+
/** If specified, renders a Graticule outline with the specified props. Specify `graticuleOutline.foreground = true` to be rendered on top of features. */
|
|
67
|
+
graticuleOutline?: Omit<GraticuleProps, 'outline'> & {
|
|
68
|
+
foreground: boolean;
|
|
69
|
+
};
|
|
70
|
+
/** Limits the digits for coordinates generated in SVG path strings to the specified number of digits. */
|
|
71
|
+
digits?: number;
|
|
72
|
+
/** Sets the radius used to display Point and MultiPoint geometries to the specified number. */
|
|
73
|
+
pointRadius?: number;
|
|
74
|
+
};
|
|
75
|
+
export interface ParsedFeature<Datum> {
|
|
76
|
+
feature: Datum;
|
|
77
|
+
type: ProjectionShape;
|
|
78
|
+
projection: GeoProjection;
|
|
79
|
+
index: number;
|
|
80
|
+
centroid: [number, number];
|
|
81
|
+
path: string | null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Component for all projections.
|
|
85
|
+
*/
|
|
86
|
+
export default function Projection<Datum extends GeoPermissibleObjects>({ data, projection, projectionFunc, clipAngle, clipExtent, scale, translate, center, rotate, precision, fitExtent, fitSize, centroid, graticule, graticuleLines, graticuleOutline, className, innerRef, digits, pointRadius, children, ...restProps }: ProjectionProps<Datum> & Omit<SVGProps<SVGPathElement>, keyof ProjectionProps<Datum>>): import("react").JSX.Element;
|
package/src/geo/types.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { GeoProjection, GeoPermissibleObjects as GeoPermissibleObjectType } from 'd3-geo';
|
|
2
|
+
|
|
3
|
+
export type GeoPermissibleObjects = GeoPermissibleObjectType;
|
|
4
|
+
|
|
5
|
+
export type Projection = ProjectionPreset | (() => GeoProjection);
|
|
6
|
+
|
|
7
|
+
// @TODO: Implement all projections of d3-geo
|
|
8
|
+
export type ProjectionPreset =
|
|
9
|
+
| 'orthographic'
|
|
10
|
+
| 'albers'
|
|
11
|
+
| 'albersUsa'
|
|
12
|
+
| 'mercator'
|
|
13
|
+
| 'naturalEarth'
|
|
14
|
+
| 'equalEarth';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import { Group } from '@octanejs/visx/group';
|
|
4
|
+
|
|
5
|
+
export type GlyphProps = {
|
|
6
|
+
/** Top offset to apply to glyph g element container. */
|
|
7
|
+
top?: number;
|
|
8
|
+
/** Left offset to apply to glyph g element container. */
|
|
9
|
+
left?: number;
|
|
10
|
+
/** classname to apply to glyph g element container. */
|
|
11
|
+
className?: string;
|
|
12
|
+
/** Children to render. */
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default function Glyph({ top = 0, left = 0, className, children }: GlyphProps) {
|
|
17
|
+
return <Group className={cx('visx-glyph', className)} top={top} left={left}>{children}</Group>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export type GlyphProps = {
|
|
4
|
+
/** Top offset to apply to glyph g element container. */
|
|
5
|
+
top?: number;
|
|
6
|
+
/** Left offset to apply to glyph g element container. */
|
|
7
|
+
left?: number;
|
|
8
|
+
/** classname to apply to glyph g element container. */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Children to render. */
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export default function Glyph({ top, left, className, children }: GlyphProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import type { Symbol } from 'd3-shape';
|
|
4
|
+
import { symbol, symbolCircle } from 'd3-shape';
|
|
5
|
+
import Glyph from './Glyph.tsrx';
|
|
6
|
+
|
|
7
|
+
export type GlyphCircleProps<Datum> = {
|
|
8
|
+
/** Render function override which is passed the configured path generator. */
|
|
9
|
+
children?: ({
|
|
10
|
+
path,
|
|
11
|
+
}: {
|
|
12
|
+
path: Symbol<unknown, Datum>;
|
|
13
|
+
}) => ReactNode;
|
|
14
|
+
/** classname to apply to glyph path element. */
|
|
15
|
+
className?: string;
|
|
16
|
+
/** Top offset to apply to glyph g element container. */
|
|
17
|
+
top?: number;
|
|
18
|
+
/** Left offset to apply to glyph g element container. */
|
|
19
|
+
left?: number;
|
|
20
|
+
/** Size of circle in px, or an accessor which takes Datum as input and returns a size. */
|
|
21
|
+
size?: number | ((d: Datum) => number);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default function GlyphCircle<Datum = unknown>({
|
|
25
|
+
children,
|
|
26
|
+
className,
|
|
27
|
+
top,
|
|
28
|
+
left,
|
|
29
|
+
size,
|
|
30
|
+
...restProps
|
|
31
|
+
}: GlyphCircleProps<Datum> & Omit<SVGProps<SVGPathElement>, keyof GlyphCircleProps<Datum>>) {
|
|
32
|
+
const path = symbol<Datum>();
|
|
33
|
+
path.type(symbolCircle);
|
|
34
|
+
|
|
35
|
+
// TS can't differentiate the method overload here
|
|
36
|
+
if (typeof size === 'number') path.size(size);
|
|
37
|
+
else if (size) path.size(size);
|
|
38
|
+
|
|
39
|
+
if (children) return <>
|
|
40
|
+
{children({ path })}
|
|
41
|
+
</>;
|
|
42
|
+
|
|
43
|
+
return <Glyph top={top} left={left}>
|
|
44
|
+
<path className={cx('visx-glyph-circle', className)} d={path() || ''} {...restProps} />
|
|
45
|
+
</Glyph>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
3
|
+
import type { Symbol } from 'd3-shape';
|
|
4
|
+
export type GlyphCircleProps<Datum> = {
|
|
5
|
+
/** Render function override which is passed the configured path generator. */
|
|
6
|
+
children?: ({ path, }: {
|
|
7
|
+
path: Symbol<unknown, Datum>;
|
|
8
|
+
}) => ReactNode;
|
|
9
|
+
/** classname to apply to glyph path element. */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Top offset to apply to glyph g element container. */
|
|
12
|
+
top?: number;
|
|
13
|
+
/** Left offset to apply to glyph g element container. */
|
|
14
|
+
left?: number;
|
|
15
|
+
/** Size of circle in px, or an accessor which takes Datum as input and returns a size. */
|
|
16
|
+
size?: number | ((d: Datum) => number);
|
|
17
|
+
};
|
|
18
|
+
export default function GlyphCircle<Datum = unknown>({ children, className, top, left, size, ...restProps }: GlyphCircleProps<Datum> & Omit<SVGProps<SVGPathElement>, keyof GlyphCircleProps<Datum>>): import("react").JSX.Element;
|