@mstone6969/graph 0.0.0-stage → 0.2.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 +479 -2
- package/dist/ExcelWriter-3ZSYUH4T.cjs +154 -0
- package/dist/GraphType.js +634 -0
- package/dist/PdfWriter-6HJFYMCO.cjs +205 -0
- package/dist/catalog-YWX6FHRM.cjs +8 -0
- package/dist/catalog.js +44 -0
- package/dist/charts/bars/BandChart.js +103 -0
- package/dist/charts/bars/BarChart.js +155 -0
- package/dist/charts/bars/BarFrame.js +70 -0
- package/dist/charts/bars/BarRows.js +91 -0
- package/dist/charts/bars/ButterflyChart.js +85 -0
- package/dist/charts/bars/DateBarChart.js +149 -0
- package/dist/charts/bars/DivergingBarChart.js +226 -0
- package/dist/charts/bars/DotPlot.js +167 -0
- package/dist/charts/bars/DumbbellChart.js +160 -0
- package/dist/charts/bars/FacetedBarChart.js +179 -0
- package/dist/charts/bars/GroupedStackedBar.js +156 -0
- package/dist/charts/bars/IconlessRankBar.js +139 -0
- package/dist/charts/bars/LollipopChart.js +130 -0
- package/dist/charts/bars/MirrorChart.js +170 -0
- package/dist/charts/bars/PercentChangeBar.js +174 -0
- package/dist/charts/bars/PopulationPyramid.js +101 -0
- package/dist/charts/bars/ProgressBars.js +180 -0
- package/dist/charts/bars/RangeBarChart.js +197 -0
- package/dist/charts/bars/TripleBarOverlay.js +145 -0
- package/dist/charts/bars/WaterfallChart.js +214 -0
- package/dist/charts/bars/index.js +40 -0
- package/dist/charts/business/SparkBar.js +281 -0
- package/dist/charts/business/TornadoChart.js +436 -0
- package/dist/charts/business/index.js +5 -0
- package/dist/charts/comparison/BandValueChart.js +153 -0
- package/dist/charts/comparison/BarMeanChart.js +130 -0
- package/dist/charts/comparison/CycleChart.js +227 -0
- package/dist/charts/comparison/DeviationChart.js +137 -0
- package/dist/charts/comparison/EffectForestPlot.js +207 -0
- package/dist/charts/comparison/ErrorBarChart.js +134 -0
- package/dist/charts/comparison/FloatingBarChart.js +150 -0
- package/dist/charts/comparison/GaugeBarsComparison.js +196 -0
- package/dist/charts/comparison/IntervalChart.js +146 -0
- package/dist/charts/comparison/MeanLineChart.js +142 -0
- package/dist/charts/comparison/PairedBarChart.js +179 -0
- package/dist/charts/comparison/RadarLikeProfileChart.js +152 -0
- package/dist/charts/comparison/RangeDotChart.js +131 -0
- package/dist/charts/comparison/RankedDotChart.js +128 -0
- package/dist/charts/comparison/SlopeGraphRanked.js +195 -0
- package/dist/charts/comparison/TableLensChart.js +203 -0
- package/dist/charts/comparison/Tally.js +129 -0
- package/dist/charts/comparison/index.js +36 -0
- package/dist/charts/comparison/settleMarks.js +9 -0
- package/dist/charts/demography/DemographyMarks.js +31 -0
- package/dist/charts/demography/LexisCells.js +143 -0
- package/dist/charts/demography/LexisDiagram.js +488 -0
- package/dist/charts/demography/Nomogram.js +447 -0
- package/dist/charts/demography/NomogramLaw.js +221 -0
- package/dist/charts/demography/NomogramScale.js +116 -0
- package/dist/charts/demography/NomogramSolver.js +73 -0
- package/dist/charts/demography/index.js +9 -0
- package/dist/charts/density/BinnedDotChart.js +109 -0
- package/dist/charts/density/ContourChart.js +112 -0
- package/dist/charts/density/ContourLabels.js +41 -0
- package/dist/charts/density/ConvexLayers.js +140 -0
- package/dist/charts/density/DelaunayMesh.js +186 -0
- package/dist/charts/density/DensityContourChart.js +107 -0
- package/dist/charts/density/DensityEnums.js +45 -0
- package/dist/charts/density/DensityScatter.js +118 -0
- package/dist/charts/density/DotDensityChart.js +250 -0
- package/dist/charts/density/DotLattice.js +74 -0
- package/dist/charts/density/FieldChart.js +58 -0
- package/dist/charts/density/FieldContours.js +56 -0
- package/dist/charts/density/FieldLevels.js +66 -0
- package/dist/charts/density/FilledContour.js +90 -0
- package/dist/charts/density/GeoFreeShadedSurface.js +108 -0
- package/dist/charts/density/GradientFieldChart.js +156 -0
- package/dist/charts/density/GridFieldChart.js +103 -0
- package/dist/charts/density/HexbinChart.js +130 -0
- package/dist/charts/density/IsolineChart.js +165 -0
- package/dist/charts/density/KernelDensity2D.js +193 -0
- package/dist/charts/density/KernelField.js +63 -0
- package/dist/charts/density/MarchingSquaresChart.js +203 -0
- package/dist/charts/density/PlaneGeometry.js +91 -0
- package/dist/charts/density/PointDensityChart.js +116 -0
- package/dist/charts/density/QuadtreeChart.js +147 -0
- package/dist/charts/density/RasterDensity.js +140 -0
- package/dist/charts/density/ShadeRaster.js +27 -0
- package/dist/charts/density/StippleDensity.js +121 -0
- package/dist/charts/density/SunflowerPlot.js +94 -0
- package/dist/charts/density/TileMapDensity.js +119 -0
- package/dist/charts/density/TwoDHistogram.js +231 -0
- package/dist/charts/density/VoronoiDiagram.js +124 -0
- package/dist/charts/density/index.js +57 -0
- package/dist/charts/diagrams/ArchitectureCanvas.js +68 -0
- package/dist/charts/diagrams/ArchitectureDiagram.js +331 -0
- package/dist/charts/diagrams/ArchitectureLayout.js +106 -0
- package/dist/charts/diagrams/ArchitectureLinkLabels.js +78 -0
- package/dist/charts/diagrams/ArchitectureModel.js +108 -0
- package/dist/charts/diagrams/ArchitectureRouter.js +348 -0
- package/dist/charts/diagrams/ArchitectureSamples.js +312 -0
- package/dist/charts/diagrams/ArchitectureShapes.js +130 -0
- package/dist/charts/diagrams/ArchitectureText.js +25 -0
- package/dist/charts/diagrams/DiagramText.js +38 -0
- package/dist/charts/diagrams/EntityRelationshipDiagram.js +465 -0
- package/dist/charts/diagrams/ErCrowsFoot.js +33 -0
- package/dist/charts/diagrams/ErSamples.js +205 -0
- package/dist/charts/diagrams/ErSchema.js +122 -0
- package/dist/charts/diagrams/LogicCircuit.js +154 -0
- package/dist/charts/diagrams/LogicCircuitLayout.js +600 -0
- package/dist/charts/diagrams/LogicCircuitSamples.js +66 -0
- package/dist/charts/diagrams/LogicGateDiagram.js +216 -0
- package/dist/charts/diagrams/LogicGateSymbol.js +113 -0
- package/dist/charts/diagrams/NetworkTopologyDiagram.js +247 -0
- package/dist/charts/diagrams/SequenceDiagram.js +351 -0
- package/dist/charts/diagrams/SequenceLayout.js +422 -0
- package/dist/charts/diagrams/SequenceModel.js +221 -0
- package/dist/charts/diagrams/TopologyLayout.js +143 -0
- package/dist/charts/diagrams/architectureEnums.js +50 -0
- package/dist/charts/diagrams/index.js +26 -0
- package/dist/charts/diagrams/logicEnums.js +42 -0
- package/dist/charts/diagrams/sequenceEnums.js +40 -0
- package/dist/charts/distribution/AxisFrame.js +89 -0
- package/dist/charts/distribution/BackToBackHistogram.js +100 -0
- package/dist/charts/distribution/BarcodePlot.js +104 -0
- package/dist/charts/distribution/BeanPlot.js +92 -0
- package/dist/charts/distribution/BeeswarmChart.js +155 -0
- package/dist/charts/distribution/BinnedChart.js +51 -0
- package/dist/charts/distribution/BoxPlot.js +186 -0
- package/dist/charts/distribution/BoxenChart.js +96 -0
- package/dist/charts/distribution/CumulativeDistribution.js +122 -0
- package/dist/charts/distribution/DensityChart.js +143 -0
- package/dist/charts/distribution/DensityStrip.js +124 -0
- package/dist/charts/distribution/DistributionChart.js +187 -0
- package/dist/charts/distribution/DistributionSamples.js +11 -0
- package/dist/charts/distribution/DistributionStats.js +225 -0
- package/dist/charts/distribution/DotStackBase.js +65 -0
- package/dist/charts/distribution/Dotplot.js +77 -0
- package/dist/charts/distribution/FrequencyPolygon.js +132 -0
- package/dist/charts/distribution/HalfEyePlot.js +133 -0
- package/dist/charts/distribution/HistogramChart.js +168 -0
- package/dist/charts/distribution/KdeBand.js +56 -0
- package/dist/charts/distribution/LetterValueBase.js +51 -0
- package/dist/charts/distribution/LetterValuePlot.js +103 -0
- package/dist/charts/distribution/ParetoChart.js +248 -0
- package/dist/charts/distribution/QuantileDotplot.js +62 -0
- package/dist/charts/distribution/RaincloudChart.js +136 -0
- package/dist/charts/distribution/RidgelineChart.js +154 -0
- package/dist/charts/distribution/SinaPlot.js +106 -0
- package/dist/charts/distribution/StemLeaf.js +249 -0
- package/dist/charts/distribution/StripPlot.js +113 -0
- package/dist/charts/distribution/Violin3DChart.js +135 -0
- package/dist/charts/distribution/ViolinChart.js +88 -0
- package/dist/charts/distribution/enums.js +299 -0
- package/dist/charts/distribution/index.js +51 -0
- package/dist/charts/earthscience/BaseflowSeparation.js +104 -0
- package/dist/charts/earthscience/EarthSample.js +79 -0
- package/dist/charts/earthscience/HovmollerDiagram.js +477 -0
- package/dist/charts/earthscience/HovmollerEnums.js +42 -0
- package/dist/charts/earthscience/HovmollerField.js +180 -0
- package/dist/charts/earthscience/HovmollerSample.js +40 -0
- package/dist/charts/earthscience/HovmollerSpeed.js +71 -0
- package/dist/charts/earthscience/Hydrograph.js +442 -0
- package/dist/charts/earthscience/SimplexContours.js +94 -0
- package/dist/charts/earthscience/SimplexField.js +118 -0
- package/dist/charts/earthscience/TernaryContour.js +262 -0
- package/dist/charts/earthscience/index.js +14 -0
- package/dist/charts/engineering/BodePlot.js +211 -0
- package/dist/charts/engineering/ComplexMath.js +50 -0
- package/dist/charts/engineering/ConstellationDiagram.js +280 -0
- package/dist/charts/engineering/EngineeringChart.js +296 -0
- package/dist/charts/engineering/EyeDiagram.js +271 -0
- package/dist/charts/engineering/FatigueSNCurve.js +231 -0
- package/dist/charts/engineering/FrequencyResponseChart.js +46 -0
- package/dist/charts/engineering/GoodmanDiagram.js +250 -0
- package/dist/charts/engineering/HysteresisLoopChart.js +236 -0
- package/dist/charts/engineering/IVCurveChart.js +197 -0
- package/dist/charts/engineering/LoadLineChart.js +247 -0
- package/dist/charts/engineering/MohrCircle.js +256 -0
- package/dist/charts/engineering/MollierChart.js +235 -0
- package/dist/charts/engineering/MoodyDiagram.js +238 -0
- package/dist/charts/engineering/NicholsChart.js +190 -0
- package/dist/charts/engineering/NyquistHelix3D.js +149 -0
- package/dist/charts/engineering/NyquistPlot.js +201 -0
- package/dist/charts/engineering/PoleZeroPlot.js +148 -0
- package/dist/charts/engineering/PsychrometricChart.js +258 -0
- package/dist/charts/engineering/PumpCurveChart.js +310 -0
- package/dist/charts/engineering/RootLocusPlot.js +135 -0
- package/dist/charts/engineering/SParameterChart.js +214 -0
- package/dist/charts/engineering/SParameterData.js +69 -0
- package/dist/charts/engineering/SPlaneChart.js +71 -0
- package/dist/charts/engineering/SmithChart.js +259 -0
- package/dist/charts/engineering/SteamModel.js +154 -0
- package/dist/charts/engineering/StepResponseChart.js +201 -0
- package/dist/charts/engineering/StressStrainChart.js +243 -0
- package/dist/charts/engineering/ThermalProfileChart.js +255 -0
- package/dist/charts/engineering/TransferFunction.js +96 -0
- package/dist/charts/engineering/TransferSurface3D.js +208 -0
- package/dist/charts/engineering/index.js +53 -0
- package/dist/charts/financial/BollingerBands.js +123 -0
- package/dist/charts/financial/BrickChart.js +56 -0
- package/dist/charts/financial/CandlestickChart.js +60 -0
- package/dist/charts/financial/DepthChart.js +255 -0
- package/dist/charts/financial/DrawdownChart.js +148 -0
- package/dist/charts/financial/DrawdownMath.js +51 -0
- package/dist/charts/financial/EquityBase.js +124 -0
- package/dist/charts/financial/EquityCurve.js +170 -0
- package/dist/charts/financial/FinanceInk.js +87 -0
- package/dist/charts/financial/FinanceMath.js +121 -0
- package/dist/charts/financial/HeikinAshiChart.js +58 -0
- package/dist/charts/financial/IchimokuCloud.js +112 -0
- package/dist/charts/financial/KagiChart.js +91 -0
- package/dist/charts/financial/LineBreakChart.js +52 -0
- package/dist/charts/financial/MACDChart.js +119 -0
- package/dist/charts/financial/MarketProfileChart.js +234 -0
- package/dist/charts/financial/OHLCChart.js +57 -0
- package/dist/charts/financial/OscillatorChart.js +56 -0
- package/dist/charts/financial/PayoffDiagram.js +288 -0
- package/dist/charts/financial/PointFigureChart.js +135 -0
- package/dist/charts/financial/PriceChart.js +168 -0
- package/dist/charts/financial/PriceMarks.js +64 -0
- package/dist/charts/financial/PriceTransforms.js +284 -0
- package/dist/charts/financial/ProjectionCone.js +134 -0
- package/dist/charts/financial/Quotes.js +74 -0
- package/dist/charts/financial/RSIChart.js +74 -0
- package/dist/charts/financial/RelativeStrengthRotation.js +434 -0
- package/dist/charts/financial/RelativeStrengthRotationMath.js +71 -0
- package/dist/charts/financial/RelativeStrengthRotationSamples.js +27 -0
- package/dist/charts/financial/RenkoChart.js +58 -0
- package/dist/charts/financial/ReturnCalendar.js +196 -0
- package/dist/charts/financial/SessionChart.js +194 -0
- package/dist/charts/financial/StochasticChart.js +77 -0
- package/dist/charts/financial/TpoProfile.js +172 -0
- package/dist/charts/financial/VolatilitySurface.js +197 -0
- package/dist/charts/financial/VolumeBars.js +160 -0
- package/dist/charts/financial/VolumeProfile.js +205 -0
- package/dist/charts/financial/YieldCurve.js +277 -0
- package/dist/charts/financial/financeEnums.js +269 -0
- package/dist/charts/financial/index.js +64 -0
- package/dist/charts/flow/AlluvialChart.js +129 -0
- package/dist/charts/flow/ChordFlow.js +262 -0
- package/dist/charts/flow/CircularSankey.js +239 -0
- package/dist/charts/flow/CohortFlow.js +333 -0
- package/dist/charts/flow/ConversionFlow.js +281 -0
- package/dist/charts/flow/DecisionTreeChart.js +332 -0
- package/dist/charts/flow/EnergyBalanceChart.js +287 -0
- package/dist/charts/flow/FlowChart.js +145 -0
- package/dist/charts/flow/FlowGraph.js +97 -0
- package/dist/charts/flow/FlowMapLess.js +229 -0
- package/dist/charts/flow/FlowNodeLinkChart.js +130 -0
- package/dist/charts/flow/FlowPathKit.js +114 -0
- package/dist/charts/flow/FlowSamples.js +109 -0
- package/dist/charts/flow/FlowTable.js +57 -0
- package/dist/charts/flow/LayeredLayout.js +106 -0
- package/dist/charts/flow/MarimekkoFlow.js +199 -0
- package/dist/charts/flow/MaxFlow.js +76 -0
- package/dist/charts/flow/NetworkFlowChart.js +204 -0
- package/dist/charts/flow/ParallelSets.js +120 -0
- package/dist/charts/flow/ProcessFlowChart.js +175 -0
- package/dist/charts/flow/RetentionFlow.js +242 -0
- package/dist/charts/flow/RibbonFlow.js +187 -0
- package/dist/charts/flow/SankeyChart.js +166 -0
- package/dist/charts/flow/StateTransitionChart.js +298 -0
- package/dist/charts/flow/StratumChart.js +184 -0
- package/dist/charts/flow/SwimFlowChart.js +191 -0
- package/dist/charts/flow/flowEnums.js +51 -0
- package/dist/charts/flow/index.js +47 -0
- package/dist/charts/frameworks/AnsoffMatrix.js +523 -0
- package/dist/charts/frameworks/FrameworkText.js +98 -0
- package/dist/charts/frameworks/NpsGauge.js +279 -0
- package/dist/charts/frameworks/NpsSurvey.js +58 -0
- package/dist/charts/frameworks/PerceptualMap.js +419 -0
- package/dist/charts/frameworks/PerceptualProjection.js +142 -0
- package/dist/charts/frameworks/PositioningSamples.js +191 -0
- package/dist/charts/frameworks/RaciMatrix.js +458 -0
- package/dist/charts/frameworks/RaciPlan.js +81 -0
- package/dist/charts/frameworks/RaciSamples.js +76 -0
- package/dist/charts/frameworks/SwotMatrix.js +358 -0
- package/dist/charts/frameworks/SwotSamples.js +85 -0
- package/dist/charts/frameworks/VanWestendorpChart.js +187 -0
- package/dist/charts/frameworks/VanWestendorpSurvey.js +197 -0
- package/dist/charts/frameworks/index.js +26 -0
- package/dist/charts/frameworks/raciEnums.js +30 -0
- package/dist/charts/frameworks/swotEnums.js +34 -0
- package/dist/charts/genomics/CircosFrame.js +32 -0
- package/dist/charts/genomics/CircosPlot.js +319 -0
- package/dist/charts/genomics/GenomeAssembly.js +218 -0
- package/dist/charts/genomics/GenomeCytobands.js +157 -0
- package/dist/charts/genomics/GenomeIdeogram.js +422 -0
- package/dist/charts/genomics/GenomeSamples.js +478 -0
- package/dist/charts/genomics/GenomeStainScale.js +24 -0
- package/dist/charts/genomics/genomicsEnums.js +67 -0
- package/dist/charts/genomics/index.js +11 -0
- package/dist/charts/geoflows/ConnectionMap.js +137 -0
- package/dist/charts/geoflows/DensityFlowMap.js +184 -0
- package/dist/charts/geoflows/FlowGeometry.js +137 -0
- package/dist/charts/geoflows/FlowMap.js +104 -0
- package/dist/charts/geoflows/GeoBeeswarm.js +161 -0
- package/dist/charts/geoflows/GeoFlowChart.js +316 -0
- package/dist/charts/geoflows/GeoFlowFrame.js +97 -0
- package/dist/charts/geoflows/GeoFlowSample.js +253 -0
- package/dist/charts/geoflows/GeoLinkChart.js +155 -0
- package/dist/charts/geoflows/GeoPointChart.js +42 -0
- package/dist/charts/geoflows/GeoSankey.js +167 -0
- package/dist/charts/geoflows/GeoTrackChart.js +60 -0
- package/dist/charts/geoflows/GreatCircleArcMap.js +135 -0
- package/dist/charts/geoflows/HubSpokeMap.js +208 -0
- package/dist/charts/geoflows/IsochroneMap.js +198 -0
- package/dist/charts/geoflows/MeridianMap.js +161 -0
- package/dist/charts/geoflows/MigrationMap.js +228 -0
- package/dist/charts/geoflows/MinardFlowMap.js +158 -0
- package/dist/charts/geoflows/RingMap.js +173 -0
- package/dist/charts/geoflows/RouteMap.js +203 -0
- package/dist/charts/geoflows/SmallMultipleMaps.js +143 -0
- package/dist/charts/geoflows/SphericalVoronoi.js +125 -0
- package/dist/charts/geoflows/SpiderMap.js +184 -0
- package/dist/charts/geoflows/StormTrackMap.js +223 -0
- package/dist/charts/geoflows/TrajectoryMap.js +202 -0
- package/dist/charts/geoflows/VoronoiMap.js +123 -0
- package/dist/charts/geoflows/WindMap.js +293 -0
- package/dist/charts/geoflows/index.js +47 -0
- package/dist/charts/geomaps/BivariateChoropleth.js +117 -0
- package/dist/charts/geomaps/BubbleMap.js +115 -0
- package/dist/charts/geomaps/CartogramDorling.js +125 -0
- package/dist/charts/geomaps/ChoroplethBase.js +47 -0
- package/dist/charts/geomaps/ChoroplethMap.js +49 -0
- package/dist/charts/geomaps/ClippedGlobeMap.js +141 -0
- package/dist/charts/geomaps/ContourMap.js +97 -0
- package/dist/charts/geomaps/DotDensityMap.js +140 -0
- package/dist/charts/geomaps/DotMap.js +66 -0
- package/dist/charts/geomaps/DrillDownMap.js +132 -0
- package/dist/charts/geomaps/FloorPlanMap.js +324 -0
- package/dist/charts/geomaps/FloorPlanModel.js +179 -0
- package/dist/charts/geomaps/FloorPlanSamples.js +416 -0
- package/dist/charts/geomaps/GeoChart.js +196 -0
- package/dist/charts/geomaps/GeoClasses.js +89 -0
- package/dist/charts/geomaps/GeoField.js +111 -0
- package/dist/charts/geomaps/GeoLand.js +29 -0
- package/dist/charts/geomaps/GeoLegend.js +56 -0
- package/dist/charts/geomaps/GeoProjection.js +159 -0
- package/dist/charts/geomaps/GeoSamples.js +140 -0
- package/dist/charts/geomaps/GeoViewport.js +148 -0
- package/dist/charts/geomaps/GraticuleMap.js +42 -0
- package/dist/charts/geomaps/HatchedChoropleth.js +110 -0
- package/dist/charts/geomaps/HeatMapGeo.js +114 -0
- package/dist/charts/geomaps/HexTileMap.js +96 -0
- package/dist/charts/geomaps/InsetMap.js +124 -0
- package/dist/charts/geomaps/LabelledMap.js +247 -0
- package/dist/charts/geomaps/NonContiguousCartogram.js +75 -0
- package/dist/charts/geomaps/PieChartMap.js +144 -0
- package/dist/charts/geomaps/PointDensityMap.js +109 -0
- package/dist/charts/geomaps/PointMap.js +93 -0
- package/dist/charts/geomaps/PrismLikeShadedMap.js +168 -0
- package/dist/charts/geomaps/ProportionalSymbolMap.js +144 -0
- package/dist/charts/geomaps/RegionMap.js +118 -0
- package/dist/charts/geomaps/RidgelineMap.js +109 -0
- package/dist/charts/geomaps/RoomLabelFit.js +200 -0
- package/dist/charts/geomaps/SlippyPointMap.js +128 -0
- package/dist/charts/geomaps/SlippyRegionMap.js +86 -0
- package/dist/charts/geomaps/SlippyView.js +134 -0
- package/dist/charts/geomaps/SpikeMap.js +103 -0
- package/dist/charts/geomaps/TileGridMap.js +93 -0
- package/dist/charts/geomaps/TileMap.js +75 -0
- package/dist/charts/geomaps/TissotMap.js +90 -0
- package/dist/charts/geomaps/UsCountyMap.js +59 -0
- package/dist/charts/geomaps/UsMapBase.js +43 -0
- package/dist/charts/geomaps/UsStateMap.js +68 -0
- package/dist/charts/geomaps/index.js +78 -0
- package/dist/charts/hierarchy/AdjacencyChart.js +87 -0
- package/dist/charts/hierarchy/BalloonTree.js +136 -0
- package/dist/charts/hierarchy/CartesianTreeChart.js +125 -0
- package/dist/charts/hierarchy/CirclePackChart.js +92 -0
- package/dist/charts/hierarchy/CollapsibleTree.js +70 -0
- package/dist/charts/hierarchy/DecompositionTree.js +175 -0
- package/dist/charts/hierarchy/DendrogramChart.js +71 -0
- package/dist/charts/hierarchy/FishboneDiagram.js +138 -0
- package/dist/charts/hierarchy/FlameGraph.js +66 -0
- package/dist/charts/hierarchy/HierarchyChart.js +83 -0
- package/dist/charts/hierarchy/IcicleChart.js +56 -0
- package/dist/charts/hierarchy/IcicleZoom.js +91 -0
- package/dist/charts/hierarchy/IndentedTreeChart.js +130 -0
- package/dist/charts/hierarchy/MindMap.js +143 -0
- package/dist/charts/hierarchy/NestedTreemap.js +121 -0
- package/dist/charts/hierarchy/OrgChart.js +240 -0
- package/dist/charts/hierarchy/PartitionChart.js +116 -0
- package/dist/charts/hierarchy/PhylogeneticTree.js +245 -0
- package/dist/charts/hierarchy/PolarFrame.js +35 -0
- package/dist/charts/hierarchy/RadialDendrogram.js +64 -0
- package/dist/charts/hierarchy/RadialTreeBase.js +95 -0
- package/dist/charts/hierarchy/RadialTreeChart.js +43 -0
- package/dist/charts/hierarchy/SunburstChart.js +133 -0
- package/dist/charts/hierarchy/TidyTreeChart.js +42 -0
- package/dist/charts/hierarchy/TreeLinks.js +57 -0
- package/dist/charts/hierarchy/TreeModel.js +137 -0
- package/dist/charts/hierarchy/TreeNodeLinkChart.js +50 -0
- package/dist/charts/hierarchy/TreeSamples.js +51 -0
- package/dist/charts/hierarchy/TreeStyle.js +91 -0
- package/dist/charts/hierarchy/TreemapChart.js +104 -0
- package/dist/charts/hierarchy/TreemapTiling.js +16 -0
- package/dist/charts/hierarchy/ZoomAdjacencyChart.js +18 -0
- package/dist/charts/hierarchy/hierarchyEnums.js +226 -0
- package/dist/charts/hierarchy/index.js +53 -0
- package/dist/charts/indicators/ActivityRings.js +139 -0
- package/dist/charts/indicators/BatteryChart.js +136 -0
- package/dist/charts/indicators/BulletChart.js +222 -0
- package/dist/charts/indicators/DeltaIndicator.js +254 -0
- package/dist/charts/indicators/DialChart.js +66 -0
- package/dist/charts/indicators/GaugeChart.js +170 -0
- package/dist/charts/indicators/HarveyBalls.js +182 -0
- package/dist/charts/indicators/IndicatorChart.js +293 -0
- package/dist/charts/indicators/IndicatorEnums.js +331 -0
- package/dist/charts/indicators/IndicatorSamples.js +18 -0
- package/dist/charts/indicators/KpiTile.js +249 -0
- package/dist/charts/indicators/LiquidFillGauge.js +180 -0
- package/dist/charts/indicators/MeterChart.js +244 -0
- package/dist/charts/indicators/ProgressRing.js +107 -0
- package/dist/charts/indicators/RadialProgress.js +114 -0
- package/dist/charts/indicators/RatingStars.js +257 -0
- package/dist/charts/indicators/ScoreCard.js +172 -0
- package/dist/charts/indicators/SegmentedGauge.js +133 -0
- package/dist/charts/indicators/SpeedometerChart.js +142 -0
- package/dist/charts/indicators/StepProgress.js +170 -0
- package/dist/charts/indicators/TallyChart.js +268 -0
- package/dist/charts/indicators/TargetChart.js +160 -0
- package/dist/charts/indicators/ThermometerChart.js +144 -0
- package/dist/charts/indicators/TrafficLightChart.js +235 -0
- package/dist/charts/indicators/VuMeterChart.js +155 -0
- package/dist/charts/indicators/index.js +49 -0
- package/dist/charts/lifescience/LoessFit.js +113 -0
- package/dist/charts/lifescience/MaPlot.js +337 -0
- package/dist/charts/lifescience/MaPlotSamples.js +35 -0
- package/dist/charts/lifescience/OncoGlyph.js +137 -0
- package/dist/charts/lifescience/OncoPrint.js +373 -0
- package/dist/charts/lifescience/OncoPrintMatrix.js +107 -0
- package/dist/charts/lifescience/OncoPrintSamples.js +142 -0
- package/dist/charts/lifescience/PedigreeChart.js +306 -0
- package/dist/charts/lifescience/PedigreeLayout.js +261 -0
- package/dist/charts/lifescience/PedigreeRows.js +70 -0
- package/dist/charts/lifescience/PedigreeSamples.js +161 -0
- package/dist/charts/lifescience/PedigreeSymbol.js +47 -0
- package/dist/charts/lifescience/RamachandranPlot.js +364 -0
- package/dist/charts/lifescience/RamachandranRegions.js +2712 -0
- package/dist/charts/lifescience/RamachandranSamples.js +235 -0
- package/dist/charts/lifescience/index.js +25 -0
- package/dist/charts/lifescience/pedigreeEnums.js +21 -0
- package/dist/charts/lifescience/ramachandranEnums.js +34 -0
- package/dist/charts/linesareas/AreaChart.js +76 -0
- package/dist/charts/linesareas/BumpChart.js +155 -0
- package/dist/charts/linesareas/CumulativeLine.js +115 -0
- package/dist/charts/linesareas/DifferenceChart.js +168 -0
- package/dist/charts/linesareas/DualAxisChart.js +151 -0
- package/dist/charts/linesareas/FanChart.js +135 -0
- package/dist/charts/linesareas/ForecastLine.js +161 -0
- package/dist/charts/linesareas/HorizonChart.js +134 -0
- package/dist/charts/linesareas/IndexedLine.js +94 -0
- package/dist/charts/linesareas/LayeredChart.js +97 -0
- package/dist/charts/linesareas/LineChart.js +76 -0
- package/dist/charts/linesareas/LineEnums.js +253 -0
- package/dist/charts/linesareas/MultiLineChart.js +97 -0
- package/dist/charts/linesareas/RangeAreaChart.js +148 -0
- package/dist/charts/linesareas/RidgeLines.js +118 -0
- package/dist/charts/linesareas/SeasonalLines.js +134 -0
- package/dist/charts/linesareas/SlopeChart.js +183 -0
- package/dist/charts/linesareas/SparklineChart.js +211 -0
- package/dist/charts/linesareas/StackedAreaChart.js +67 -0
- package/dist/charts/linesareas/StepChart.js +85 -0
- package/dist/charts/linesareas/Streamgraph.js +70 -0
- package/dist/charts/linesareas/ThresholdAreaChart.js +133 -0
- package/dist/charts/linesareas/TrendChart.js +300 -0
- package/dist/charts/linesareas/TrendHover.js +55 -0
- package/dist/charts/linesareas/TrendLabels.js +32 -0
- package/dist/charts/linesareas/TrendMath.js +62 -0
- package/dist/charts/linesareas/TrendTable.js +87 -0
- package/dist/charts/linesareas/index.js +51 -0
- package/dist/charts/massive/CanvasSurface.js +174 -0
- package/dist/charts/massive/LttbDecimator.js +50 -0
- package/dist/charts/massive/MassiveChart.js +409 -0
- package/dist/charts/massive/MassiveColorTable.js +31 -0
- package/dist/charts/massive/MassiveDensityChart.js +46 -0
- package/dist/charts/massive/MassiveDensityRaster.js +124 -0
- package/dist/charts/massive/MassiveEnums.js +22 -0
- package/dist/charts/massive/MassiveLineChart.js +82 -0
- package/dist/charts/massive/MassiveLineLayer.js +42 -0
- package/dist/charts/massive/MassiveLineSeries.js +63 -0
- package/dist/charts/massive/MassiveMarkLayer.js +38 -0
- package/dist/charts/massive/MassiveNearestIndex.js +90 -0
- package/dist/charts/massive/MassivePointColumns.js +84 -0
- package/dist/charts/massive/MassiveScatterChart.js +57 -0
- package/dist/charts/massive/MassiveTypes.js +4 -0
- package/dist/charts/massive/MinMaxDecimator.js +56 -0
- package/dist/charts/massive/PassThroughDecimator.js +13 -0
- package/dist/charts/massive/index.js +24 -0
- package/dist/charts/mathematical/ArgandDiagram.js +222 -0
- package/dist/charts/mathematical/BandRaster.js +34 -0
- package/dist/charts/mathematical/BifurcationDiagram.js +155 -0
- package/dist/charts/mathematical/CobwebPlot.js +133 -0
- package/dist/charts/mathematical/ComplexDomainColoring.js +188 -0
- package/dist/charts/mathematical/FibonacciSpiralChart.js +255 -0
- package/dist/charts/mathematical/FieldPlot.js +131 -0
- package/dist/charts/mathematical/FourierSeriesChart.js +276 -0
- package/dist/charts/mathematical/FunctionCurves.js +33 -0
- package/dist/charts/mathematical/FunctionPlot.js +188 -0
- package/dist/charts/mathematical/ImplicitPlot.js +153 -0
- package/dist/charts/mathematical/IterationMap.js +62 -0
- package/dist/charts/mathematical/LissajousChart.js +242 -0
- package/dist/charts/mathematical/MandelbrotChart.js +191 -0
- package/dist/charts/mathematical/MathMarks.js +63 -0
- package/dist/charts/mathematical/MathNumerics.js +168 -0
- package/dist/charts/mathematical/MathPlane.js +207 -0
- package/dist/charts/mathematical/NumberLineChart.js +261 -0
- package/dist/charts/mathematical/ParametricPlot.js +203 -0
- package/dist/charts/mathematical/PhasePortrait.js +210 -0
- package/dist/charts/mathematical/PolarCurvePlot.js +190 -0
- package/dist/charts/mathematical/RiemannSumChart.js +185 -0
- package/dist/charts/mathematical/SetRelationChart.js +393 -0
- package/dist/charts/mathematical/SlopeFieldChart.js +145 -0
- package/dist/charts/mathematical/StreamlineChart.js +159 -0
- package/dist/charts/mathematical/TaylorSeriesChart.js +175 -0
- package/dist/charts/mathematical/VectorFieldChart.js +140 -0
- package/dist/charts/mathematical/index.js +47 -0
- package/dist/charts/matrix/BubbleMatrix.js +108 -0
- package/dist/charts/matrix/ClusteredHeatmap.js +177 -0
- package/dist/charts/matrix/CohortMatrix.js +139 -0
- package/dist/charts/matrix/ConfusionMatrix.js +186 -0
- package/dist/charts/matrix/ContingencyChart.js +201 -0
- package/dist/charts/matrix/CorrelationMatrix.js +167 -0
- package/dist/charts/matrix/DiagonalMatrix.js +151 -0
- package/dist/charts/matrix/GridPlot.js +211 -0
- package/dist/charts/matrix/HeatmapChart.js +124 -0
- package/dist/charts/matrix/HintonDiagram.js +92 -0
- package/dist/charts/matrix/MatrixChart.js +209 -0
- package/dist/charts/matrix/MatrixDotChart.js +98 -0
- package/dist/charts/matrix/MatrixGlyphs.js +82 -0
- package/dist/charts/matrix/MatrixModel.js +99 -0
- package/dist/charts/matrix/MatrixSeriation.js +162 -0
- package/dist/charts/matrix/MatrixSurface.js +43 -0
- package/dist/charts/matrix/MatrixTowers3D.js +152 -0
- package/dist/charts/matrix/PunchCard.js +153 -0
- package/dist/charts/matrix/RecurrencePlot.js +177 -0
- package/dist/charts/matrix/RiskMatrix.js +264 -0
- package/dist/charts/matrix/SeriationMatrix.js +151 -0
- package/dist/charts/matrix/SortedMatrix.js +136 -0
- package/dist/charts/matrix/SpyPlot.js +163 -0
- package/dist/charts/matrix/TableHeatmap.js +175 -0
- package/dist/charts/matrix/TilegramChart.js +203 -0
- package/dist/charts/matrix/TriangleMatrix.js +146 -0
- package/dist/charts/matrix/WaffleMatrix.js +145 -0
- package/dist/charts/matrix/index.js +53 -0
- package/dist/charts/matrix/matrixEnums.js +48 -0
- package/dist/charts/mlcharts/AttentionGrid.js +79 -0
- package/dist/charts/mlcharts/AttentionHeatmap.js +329 -0
- package/dist/charts/mlcharts/AttentionModel.js +132 -0
- package/dist/charts/mlcharts/AttentionSamples.js +82 -0
- package/dist/charts/mlcharts/CellNumber.js +8 -0
- package/dist/charts/mlcharts/CurveDiagnosticSamples.js +95 -0
- package/dist/charts/mlcharts/CurvePickMark.js +31 -0
- package/dist/charts/mlcharts/DecisionBoundaryChart.js +316 -0
- package/dist/charts/mlcharts/DecisionSamples.js +60 -0
- package/dist/charts/mlcharts/DecisionSurface.js +130 -0
- package/dist/charts/mlcharts/DistinctTicks.js +13 -0
- package/dist/charts/mlcharts/ElbowMath.js +153 -0
- package/dist/charts/mlcharts/ElbowPlot.js +273 -0
- package/dist/charts/mlcharts/ExplainabilitySamples.js +70 -0
- package/dist/charts/mlcharts/FeatureImportanceChart.js +150 -0
- package/dist/charts/mlcharts/ImportanceRanking.js +98 -0
- package/dist/charts/mlcharts/LearningCurveChart.js +276 -0
- package/dist/charts/mlcharts/LearningCurveMath.js +92 -0
- package/dist/charts/mlcharts/PartialDependence.js +92 -0
- package/dist/charts/mlcharts/PartialDependencePlot.js +225 -0
- package/dist/charts/mlcharts/WideLabel.js +28 -0
- package/dist/charts/mlcharts/curveDiagnosticEnums.js +37 -0
- package/dist/charts/mlcharts/index.js +32 -0
- package/dist/charts/multivariate/AnchoredProjection.js +45 -0
- package/dist/charts/multivariate/AndrewsCurves.js +193 -0
- package/dist/charts/multivariate/ConditionalPlot.js +137 -0
- package/dist/charts/multivariate/CrossfilterHistograms.js +247 -0
- package/dist/charts/multivariate/DimensionalStacking.js +205 -0
- package/dist/charts/multivariate/GlyphPlot.js +212 -0
- package/dist/charts/multivariate/HeatedParallelSets.js +236 -0
- package/dist/charts/multivariate/HyperboxChart.js +200 -0
- package/dist/charts/multivariate/InstancedSticks.js +32 -0
- package/dist/charts/multivariate/MultiDimensionalScaling.js +93 -0
- package/dist/charts/multivariate/MultivariateKit.js +168 -0
- package/dist/charts/multivariate/MultivariateMath.js +196 -0
- package/dist/charts/multivariate/MultivariateSample.js +42 -0
- package/dist/charts/multivariate/PCABiplot.js +141 -0
- package/dist/charts/multivariate/PCAScatter3D.js +217 -0
- package/dist/charts/multivariate/PanelScatter.js +88 -0
- package/dist/charts/multivariate/ParallelCoordinates.js +262 -0
- package/dist/charts/multivariate/ParallelPlanes3D.js +175 -0
- package/dist/charts/multivariate/PixelBarChart.js +201 -0
- package/dist/charts/multivariate/ProjectionChart.js +55 -0
- package/dist/charts/multivariate/RadViz.js +89 -0
- package/dist/charts/multivariate/SankeyMultivariate.js +178 -0
- package/dist/charts/multivariate/ScatterplotMatrix.js +310 -0
- package/dist/charts/multivariate/StarCoordinates.js +130 -0
- package/dist/charts/multivariate/SurveyPlot.js +159 -0
- package/dist/charts/multivariate/TableChart.js +270 -0
- package/dist/charts/multivariate/TrellisScatter.js +93 -0
- package/dist/charts/multivariate/WideTable.js +67 -0
- package/dist/charts/multivariate/index.js +52 -0
- package/dist/charts/network/AdjacencyMatrixChart.js +189 -0
- package/dist/charts/network/ArcDiagram.js +129 -0
- package/dist/charts/network/BioFabricChart.js +173 -0
- package/dist/charts/network/BipartiteChart.js +135 -0
- package/dist/charts/network/ChordDiagram.js +143 -0
- package/dist/charts/network/CircularLayoutGraph.js +120 -0
- package/dist/charts/network/ClusteredForceChart.js +131 -0
- package/dist/charts/network/CommunityChart.js +305 -0
- package/dist/charts/network/ContactMap.js +186 -0
- package/dist/charts/network/EdgeRouter.js +181 -0
- package/dist/charts/network/EgoNetworkChart.js +157 -0
- package/dist/charts/network/ForceGraphChart.js +97 -0
- package/dist/charts/network/GeoFreeNodeLink.js +127 -0
- package/dist/charts/network/GraphCommunities.js +101 -0
- package/dist/charts/network/GraphLayouts.js +154 -0
- package/dist/charts/network/GraphMetrics.js +97 -0
- package/dist/charts/network/GraphOrder.js +56 -0
- package/dist/charts/network/GraphTrees.js +131 -0
- package/dist/charts/network/GridLayoutGraph.js +164 -0
- package/dist/charts/network/GroupInABox.js +185 -0
- package/dist/charts/network/HierarchicalEdgeBundling.js +194 -0
- package/dist/charts/network/HiveChart.js +195 -0
- package/dist/charts/network/LabelPlacer.js +95 -0
- package/dist/charts/network/NetworkChart.js +189 -0
- package/dist/charts/network/NetworkModel.js +119 -0
- package/dist/charts/network/NetworkSamples.js +127 -0
- package/dist/charts/network/NodeLinkNetwork.js +91 -0
- package/dist/charts/network/PivotGraph.js +149 -0
- package/dist/charts/network/RadialNetwork.js +155 -0
- package/dist/charts/network/SpanningTreeChart.js +117 -0
- package/dist/charts/network/StressLayoutGraph.js +63 -0
- package/dist/charts/network/SugiyamaDagChart.js +170 -0
- package/dist/charts/network/SugiyamaLayout.js +210 -0
- package/dist/charts/network/TreeOfNetwork.js +241 -0
- package/dist/charts/network/index.js +53 -0
- package/dist/charts/network/networkEnums.js +53 -0
- package/dist/charts/pictorial/ArrowGlyphs.js +191 -0
- package/dist/charts/pictorial/BoxCanvas.js +84 -0
- package/dist/charts/pictorial/BubbleText.js +240 -0
- package/dist/charts/pictorial/ColorSwatchChart.js +219 -0
- package/dist/charts/pictorial/ConcordanceChart.js +209 -0
- package/dist/charts/pictorial/Corpus.js +49 -0
- package/dist/charts/pictorial/FaceGlyphs.js +125 -0
- package/dist/charts/pictorial/GlyphChart.js +232 -0
- package/dist/charts/pictorial/IconArray.js +207 -0
- package/dist/charts/pictorial/IsotypeChart.js +155 -0
- package/dist/charts/pictorial/PictogramChart.js +120 -0
- package/dist/charts/pictorial/PictorialIcons.js +30 -0
- package/dist/charts/pictorial/PolarGlyphMatrix.js +200 -0
- package/dist/charts/pictorial/SankeyText.js +250 -0
- package/dist/charts/pictorial/SentimentStrip.js +178 -0
- package/dist/charts/pictorial/ShapeGrid.js +198 -0
- package/dist/charts/pictorial/StarGlyphs.js +89 -0
- package/dist/charts/pictorial/TagChart.js +181 -0
- package/dist/charts/pictorial/TextMetrics.js +31 -0
- package/dist/charts/pictorial/TextTreemap.js +142 -0
- package/dist/charts/pictorial/UnitChart.js +49 -0
- package/dist/charts/pictorial/WeatherGlyphs.js +199 -0
- package/dist/charts/pictorial/WordChart.js +41 -0
- package/dist/charts/pictorial/WordCloudChart.js +141 -0
- package/dist/charts/pictorial/WordTreeChart.js +198 -0
- package/dist/charts/pictorial/index.js +44 -0
- package/dist/charts/proportion/BarOfPie.js +181 -0
- package/dist/charts/proportion/DonutChart.js +103 -0
- package/dist/charts/proportion/DotMatrixChart.js +168 -0
- package/dist/charts/proportion/EulerDiagram.js +75 -0
- package/dist/charts/proportion/EulerLayout.js +91 -0
- package/dist/charts/proportion/ExplodedPie.js +70 -0
- package/dist/charts/proportion/FunnelChart.js +204 -0
- package/dist/charts/proportion/MosaicChart.js +224 -0
- package/dist/charts/proportion/NestedDonut.js +182 -0
- package/dist/charts/proportion/ParliamentChart.js +221 -0
- package/dist/charts/proportion/PieBase.js +189 -0
- package/dist/charts/proportion/PieChart.js +44 -0
- package/dist/charts/proportion/PiePerCategory.js +132 -0
- package/dist/charts/proportion/PowerDiagram.js +112 -0
- package/dist/charts/proportion/ProportionalAreaChart.js +191 -0
- package/dist/charts/proportion/PyramidChart.js +154 -0
- package/dist/charts/proportion/SemiDonutChart.js +106 -0
- package/dist/charts/proportion/SetData.js +56 -0
- package/dist/charts/proportion/SetDiagram.js +94 -0
- package/dist/charts/proportion/SetRegions.js +52 -0
- package/dist/charts/proportion/ShareChart.js +22 -0
- package/dist/charts/proportion/ShareData.js +94 -0
- package/dist/charts/proportion/ShareEnums.js +34 -0
- package/dist/charts/proportion/TreemapBar.js +155 -0
- package/dist/charts/proportion/UpSetPlot.js +245 -0
- package/dist/charts/proportion/VennDiagram.js +155 -0
- package/dist/charts/proportion/VoronoiShareChart.js +139 -0
- package/dist/charts/proportion/Waffle3DChart.js +164 -0
- package/dist/charts/proportion/WaffleChart.js +184 -0
- package/dist/charts/proportion/index.js +53 -0
- package/dist/charts/radial/CircularBarplot.js +122 -0
- package/dist/charts/radial/CircularHeatmap.js +140 -0
- package/dist/charts/radial/ClockChart.js +221 -0
- package/dist/charts/radial/CoxcombChart.js +125 -0
- package/dist/charts/radial/Polar.js +125 -0
- package/dist/charts/radial/PolarAreaChart.js +90 -0
- package/dist/charts/radial/PolarBase.js +227 -0
- package/dist/charts/radial/PolarScatter.js +146 -0
- package/dist/charts/radial/RadarChart.js +145 -0
- package/dist/charts/radial/RadialAreaChart.js +103 -0
- package/dist/charts/radial/RadialBarChart.js +169 -0
- package/dist/charts/radial/RadialBoxPlot.js +210 -0
- package/dist/charts/radial/RadialColumnChart.js +119 -0
- package/dist/charts/radial/RadialDumbbell.js +143 -0
- package/dist/charts/radial/RadialGantt.js +153 -0
- package/dist/charts/radial/RadialHistogram.js +179 -0
- package/dist/charts/radial/RadialLineChart.js +84 -0
- package/dist/charts/radial/RadialStackedArea.js +89 -0
- package/dist/charts/radial/RoseChart.js +113 -0
- package/dist/charts/radial/SpiralChart.js +188 -0
- package/dist/charts/radial/SunburstBar.js +140 -0
- package/dist/charts/radial/TemporalPolar.js +110 -0
- package/dist/charts/radial/WindRoseChart.js +164 -0
- package/dist/charts/radial/index.js +47 -0
- package/dist/charts/radial/radialEnums.js +201 -0
- package/dist/charts/scatter/BubbleChart.js +123 -0
- package/dist/charts/scatter/CategoryScatterBase.js +164 -0
- package/dist/charts/scatter/ChangeScatter.js +142 -0
- package/dist/charts/scatter/ConnectedScatter.js +144 -0
- package/dist/charts/scatter/ConvexHullScatter.js +168 -0
- package/dist/charts/scatter/DropLineScatter.js +121 -0
- package/dist/charts/scatter/EllipseScatter.js +194 -0
- package/dist/charts/scatter/ErrorBarScatter.js +177 -0
- package/dist/charts/scatter/JitterPlot.js +103 -0
- package/dist/charts/scatter/LabelledScatter.js +272 -0
- package/dist/charts/scatter/MarginalScatter.js +256 -0
- package/dist/charts/scatter/ParetoScatter.js +146 -0
- package/dist/charts/scatter/QuadrantChart.js +195 -0
- package/dist/charts/scatter/Regression.js +157 -0
- package/dist/charts/scatter/RegressionScatter.js +142 -0
- package/dist/charts/scatter/RugScatter.js +138 -0
- package/dist/charts/scatter/ScatterBase.js +283 -0
- package/dist/charts/scatter/ScatterGeometry.js +95 -0
- package/dist/charts/scatter/ScatterPlot.js +36 -0
- package/dist/charts/scatter/VoronoiScatter.js +128 -0
- package/dist/charts/scatter/index.js +40 -0
- package/dist/charts/scientific/Atmosphere.js +57 -0
- package/dist/charts/scientific/ChromatogramChart.js +213 -0
- package/dist/charts/scientific/ClimateChart.js +71 -0
- package/dist/charts/scientific/ClimographChart.js +273 -0
- package/dist/charts/scientific/Draft.js +89 -0
- package/dist/charts/scientific/ElectrophoresisGel.js +240 -0
- package/dist/charts/scientific/GridContours.js +29 -0
- package/dist/charts/scientific/HertzsprungRussell.js +272 -0
- package/dist/charts/scientific/HodographChart.js +265 -0
- package/dist/charts/scientific/MassSpectrumChart.js +180 -0
- package/dist/charts/scientific/PeakFinder.js +31 -0
- package/dist/charts/scientific/PeriodicElements.js +111 -0
- package/dist/charts/scientific/PeriodicTableChart.js +206 -0
- package/dist/charts/scientific/PhaseDiagram.js +392 -0
- package/dist/charts/scientific/PiperDiagram.js +286 -0
- package/dist/charts/scientific/RoseStrainChart.js +305 -0
- package/dist/charts/scientific/ScientificSample.js +413 -0
- package/dist/charts/scientific/SequenceLogoChart.js +225 -0
- package/dist/charts/scientific/Simplex.js +155 -0
- package/dist/charts/scientific/SkewTChart.js +257 -0
- package/dist/charts/scientific/SoilTextureChart.js +592 -0
- package/dist/charts/scientific/SpectralAnalysis.js +59 -0
- package/dist/charts/scientific/SpectrogramChart.js +236 -0
- package/dist/charts/scientific/StereonetChart.js +268 -0
- package/dist/charts/scientific/StiffDiagram.js +271 -0
- package/dist/charts/scientific/TaylorDiagram.js +253 -0
- package/dist/charts/scientific/TernaryPlot.js +268 -0
- package/dist/charts/scientific/WalterLiethChart.js +213 -0
- package/dist/charts/scientific/index.js +44 -0
- package/dist/charts/signals/AudiogramChart.js +235 -0
- package/dist/charts/signals/CepstrumChart.js +161 -0
- package/dist/charts/signals/ECGChart.js +358 -0
- package/dist/charts/signals/EnvelopeChart.js +137 -0
- package/dist/charts/signals/FilterResponseChart.js +264 -0
- package/dist/charts/signals/ImpulseResponseChart.js +199 -0
- package/dist/charts/signals/LogicAnalyzerChart.js +173 -0
- package/dist/charts/signals/OscilloscopeChart.js +229 -0
- package/dist/charts/signals/PeriodogramChart.js +155 -0
- package/dist/charts/signals/PhaseSpace3DChart.js +190 -0
- package/dist/charts/signals/PhaseSpaceChart.js +148 -0
- package/dist/charts/signals/SeismogramChart.js +237 -0
- package/dist/charts/signals/SignalChart.js +164 -0
- package/dist/charts/signals/SignalDsp.js +328 -0
- package/dist/charts/signals/SignalEnums.js +32 -0
- package/dist/charts/signals/SignalRaster.js +36 -0
- package/dist/charts/signals/SignalSamples.js +107 -0
- package/dist/charts/signals/SignalScales.js +56 -0
- package/dist/charts/signals/SpectralChart.js +23 -0
- package/dist/charts/signals/SpectrumChart.js +160 -0
- package/dist/charts/signals/StemSignalChart.js +172 -0
- package/dist/charts/signals/TimeDomainDiffChart.js +202 -0
- package/dist/charts/signals/TimeFrequencyChart.js +84 -0
- package/dist/charts/signals/WaterfallSpectrum.js +131 -0
- package/dist/charts/signals/WaterfallSurface3DChart.js +220 -0
- package/dist/charts/signals/WaveformChart.js +174 -0
- package/dist/charts/signals/WaveletScalogram.js +120 -0
- package/dist/charts/signals/index.js +50 -0
- package/dist/charts/statistics/AttributeControlChart.js +115 -0
- package/dist/charts/statistics/AutocorrelationPlot.js +76 -0
- package/dist/charts/statistics/BlandAltmanPlot.js +251 -0
- package/dist/charts/statistics/CalibrationPlot.js +213 -0
- package/dist/charts/statistics/ClassifierCurveBase.js +94 -0
- package/dist/charts/statistics/ControlChart.js +215 -0
- package/dist/charts/statistics/CooksDistancePlot.js +161 -0
- package/dist/charts/statistics/CorrelogramBase.js +152 -0
- package/dist/charts/statistics/CrossCorrelationPlot.js +66 -0
- package/dist/charts/statistics/CusumChart.js +132 -0
- package/dist/charts/statistics/DetectionErrorCurve.js +108 -0
- package/dist/charts/statistics/EwmaChart.js +99 -0
- package/dist/charts/statistics/ForestPlot.js +221 -0
- package/dist/charts/statistics/FunnelPlot.js +196 -0
- package/dist/charts/statistics/InteractionPlot.js +207 -0
- package/dist/charts/statistics/KaplanMeierCurve.js +249 -0
- package/dist/charts/statistics/LagPlot.js +96 -0
- package/dist/charts/statistics/LiftChart.js +178 -0
- package/dist/charts/statistics/LorenzCurve.js +189 -0
- package/dist/charts/statistics/ManhattanPlot.js +222 -0
- package/dist/charts/statistics/MetaAnalysis.js +76 -0
- package/dist/charts/statistics/PPPlot.js +126 -0
- package/dist/charts/statistics/PartialAutocorrelation.js +77 -0
- package/dist/charts/statistics/PrecisionRecallCurve.js +157 -0
- package/dist/charts/statistics/ProcessChartBase.js +130 -0
- package/dist/charts/statistics/ProcessRules.js +39 -0
- package/dist/charts/statistics/QQPlot.js +191 -0
- package/dist/charts/statistics/ROCCurve.js +186 -0
- package/dist/charts/statistics/ReferenceLaw.js +64 -0
- package/dist/charts/statistics/RegressionFit.js +79 -0
- package/dist/charts/statistics/RegressionInfluencePlot.js +148 -0
- package/dist/charts/statistics/ResidualPlot.js +173 -0
- package/dist/charts/statistics/ScreePlot.js +210 -0
- package/dist/charts/statistics/SilhouettePlot.js +217 -0
- package/dist/charts/statistics/StatMath.js +202 -0
- package/dist/charts/statistics/StatisticalChart.js +197 -0
- package/dist/charts/statistics/VolcanoPlot.js +196 -0
- package/dist/charts/statistics/index.js +69 -0
- package/dist/charts/structure/DependencyMatrix.js +302 -0
- package/dist/charts/structure/DependencyOrdering.js +76 -0
- package/dist/charts/structure/MareyChart.js +270 -0
- package/dist/charts/structure/MareyTimetable.js +116 -0
- package/dist/charts/structure/StructureText.js +14 -0
- package/dist/charts/structure/TournamentBracket.js +255 -0
- package/dist/charts/structure/TournamentDraw.js +209 -0
- package/dist/charts/structure/TournamentLayout.js +216 -0
- package/dist/charts/structure/UmlClassDiagram.js +435 -0
- package/dist/charts/structure/UmlLayout.js +366 -0
- package/dist/charts/structure/index.js +17 -0
- package/dist/charts/structure/structureEnums.js +81 -0
- package/dist/charts/threebars/Area3DChart.js +132 -0
- package/dist/charts/threebars/Bar3DChart.js +56 -0
- package/dist/charts/threebars/BarField3DChart.js +125 -0
- package/dist/charts/threebars/Bubble3DChart.js +89 -0
- package/dist/charts/threebars/Candlestick3DChart.js +264 -0
- package/dist/charts/threebars/Cartesian3DChart.js +249 -0
- package/dist/charts/threebars/CurveSampler3D.js +36 -0
- package/dist/charts/threebars/Cylinder3DBars.js +54 -0
- package/dist/charts/threebars/Donut3DChart.js +58 -0
- package/dist/charts/threebars/Funnel3DChart.js +86 -0
- package/dist/charts/threebars/Histogram3DChart.js +239 -0
- package/dist/charts/threebars/Line3DChart.js +113 -0
- package/dist/charts/threebars/Lollipop3DChart.js +66 -0
- package/dist/charts/threebars/Marks3D.js +127 -0
- package/dist/charts/threebars/Pie3DChart.js +42 -0
- package/dist/charts/threebars/PointCloud3DChart.js +140 -0
- package/dist/charts/threebars/Polyline3D.js +17 -0
- package/dist/charts/threebars/Pyramid3DChart.js +85 -0
- package/dist/charts/threebars/Radar3DChart.js +245 -0
- package/dist/charts/threebars/Ribbon3DChart.js +135 -0
- package/dist/charts/threebars/Round3DChart.js +166 -0
- package/dist/charts/threebars/Rows3D.js +44 -0
- package/dist/charts/threebars/Scatter3DChart.js +152 -0
- package/dist/charts/threebars/Series3DChart.js +124 -0
- package/dist/charts/threebars/Stacked3DBars.js +166 -0
- package/dist/charts/threebars/Stem3DChart.js +155 -0
- package/dist/charts/threebars/Tier3DChart.js +85 -0
- package/dist/charts/threebars/Waterfall3DChart.js +156 -0
- package/dist/charts/threebars/index.js +47 -0
- package/dist/charts/threeglobe/ArcGlobeChart.js +84 -0
- package/dist/charts/threeglobe/Bubble3DMap.js +73 -0
- package/dist/charts/threeglobe/ChoroplethGlobe.js +70 -0
- package/dist/charts/threeglobe/ContourGlobe.js +117 -0
- package/dist/charts/threeglobe/CylinderSurface.js +39 -0
- package/dist/charts/threeglobe/DotDensityGlobe.js +117 -0
- package/dist/charts/threeglobe/ExtrudedMapChart.js +68 -0
- package/dist/charts/threeglobe/FlatProjectionPlane.js +64 -0
- package/dist/charts/threeglobe/FlowGlobeChart.js +95 -0
- package/dist/charts/threeglobe/GeoField.js +49 -0
- package/dist/charts/threeglobe/GeoMesher.js +146 -0
- package/dist/charts/threeglobe/GeoRings.js +37 -0
- package/dist/charts/threeglobe/GeoSurface.js +30 -0
- package/dist/charts/threeglobe/Globe3DChart.js +59 -0
- package/dist/charts/threeglobe/GlobeChart.js +287 -0
- package/dist/charts/threeglobe/GlobeEnums.js +230 -0
- package/dist/charts/threeglobe/GlobeMath.js +25 -0
- package/dist/charts/threeglobe/GlobeProjections.js +18 -0
- package/dist/charts/threeglobe/GlobeSamples.js +75 -0
- package/dist/charts/threeglobe/Graticule3DGlobe.js +91 -0
- package/dist/charts/threeglobe/HeatGlobe.js +107 -0
- package/dist/charts/threeglobe/HexGlobe.js +118 -0
- package/dist/charts/threeglobe/LinkGlobeChart.js +55 -0
- package/dist/charts/threeglobe/MapPlaneChart.js +14 -0
- package/dist/charts/threeglobe/MeshBuffer.js +137 -0
- package/dist/charts/threeglobe/OwnedMesh.js +12 -0
- package/dist/charts/threeglobe/PlaneSurface.js +69 -0
- package/dist/charts/threeglobe/PointGlobeChart.js +83 -0
- package/dist/charts/threeglobe/PrismMapChart.js +96 -0
- package/dist/charts/threeglobe/RegionGlobeChart.js +81 -0
- package/dist/charts/threeglobe/RibbonGlobe.js +81 -0
- package/dist/charts/threeglobe/RingGlobe.js +106 -0
- package/dist/charts/threeglobe/SiteGlobeChart.js +53 -0
- package/dist/charts/threeglobe/SphereGrid.js +90 -0
- package/dist/charts/threeglobe/SphereSurface.js +40 -0
- package/dist/charts/threeglobe/SpikeGlobeChart.js +80 -0
- package/dist/charts/threeglobe/StreamGlobe.js +141 -0
- package/dist/charts/threeglobe/Tile3DMap.js +102 -0
- package/dist/charts/threeglobe/TrajectoryGlobe.js +138 -0
- package/dist/charts/threeglobe/index.js +59 -0
- package/dist/charts/threenetwork/Arc3DDiagram.js +105 -0
- package/dist/charts/threenetwork/Calendar3DChart.js +179 -0
- package/dist/charts/threenetwork/Chord3DChart.js +150 -0
- package/dist/charts/threenetwork/CirclePack3DChart.js +161 -0
- package/dist/charts/threenetwork/City3DChart.js +128 -0
- package/dist/charts/threenetwork/ConeTreeChart.js +149 -0
- package/dist/charts/threenetwork/Dag3DChart.js +149 -0
- package/dist/charts/threenetwork/Force3DGraph.js +102 -0
- package/dist/charts/threenetwork/ForceLayout3D.js +103 -0
- package/dist/charts/threenetwork/Gantt3DChart.js +183 -0
- package/dist/charts/threenetwork/Graph3DBase.js +165 -0
- package/dist/charts/threenetwork/Hierarchy3DBase.js +42 -0
- package/dist/charts/threenetwork/Hive3DChart.js +150 -0
- package/dist/charts/threenetwork/Icicle3DChart.js +87 -0
- package/dist/charts/threenetwork/LabelSpacer3D.js +40 -0
- package/dist/charts/threenetwork/Loft.js +39 -0
- package/dist/charts/threenetwork/MatrixCube3D.js +145 -0
- package/dist/charts/threenetwork/MultilayerNetwork3D.js +139 -0
- package/dist/charts/threenetwork/NetworkMarks3D.js +130 -0
- package/dist/charts/threenetwork/Parallel3DCoordinates.js +155 -0
- package/dist/charts/threenetwork/Path3D.js +45 -0
- package/dist/charts/threenetwork/RingSegment3D.js +17 -0
- package/dist/charts/threenetwork/Sankey3DChart.js +182 -0
- package/dist/charts/threenetwork/Sphere3DGraph.js +125 -0
- package/dist/charts/threenetwork/Spiral3DTimeline.js +159 -0
- package/dist/charts/threenetwork/Sunburst3DChart.js +103 -0
- package/dist/charts/threenetwork/Temporal3DBase.js +22 -0
- package/dist/charts/threenetwork/Timeline3DChart.js +168 -0
- package/dist/charts/threenetwork/Tree3DChart.js +124 -0
- package/dist/charts/threenetwork/Treemap3DChart.js +98 -0
- package/dist/charts/threenetwork/enums.js +9 -0
- package/dist/charts/threenetwork/index.js +56 -0
- package/dist/charts/threesurfaces/ColorRamp.js +18 -0
- package/dist/charts/threesurfaces/ComplexSurface.js +156 -0
- package/dist/charts/threesurfaces/ContourSurface.js +149 -0
- package/dist/charts/threesurfaces/DensitySurface.js +162 -0
- package/dist/charts/threesurfaces/GridSurfaceBase.js +64 -0
- package/dist/charts/threesurfaces/HeightfieldBars.js +138 -0
- package/dist/charts/threesurfaces/ImplicitSurface.js +237 -0
- package/dist/charts/threesurfaces/IsoSurfaceMesher.js +75 -0
- package/dist/charts/threesurfaces/LayeredSurfaces.js +178 -0
- package/dist/charts/threesurfaces/MeshSurface.js +186 -0
- package/dist/charts/threesurfaces/ParametricForms.js +173 -0
- package/dist/charts/threesurfaces/ParametricSurface.js +178 -0
- package/dist/charts/threesurfaces/PhaseSurface.js +206 -0
- package/dist/charts/threesurfaces/PolarSurface.js +135 -0
- package/dist/charts/threesurfaces/RibbonSurface.js +167 -0
- package/dist/charts/threesurfaces/Ridgeline3DChart.js +166 -0
- package/dist/charts/threesurfaces/SaddleSurface.js +214 -0
- package/dist/charts/threesurfaces/ShortTimeTransform.js +53 -0
- package/dist/charts/threesurfaces/SliceSurface.js +101 -0
- package/dist/charts/threesurfaces/Spectrogram3DChart.js +92 -0
- package/dist/charts/threesurfaces/SurfaceBase.js +333 -0
- package/dist/charts/threesurfaces/SurfaceChart.js +75 -0
- package/dist/charts/threesurfaces/SurfaceField.js +158 -0
- package/dist/charts/threesurfaces/SurfaceGeometry.js +121 -0
- package/dist/charts/threesurfaces/SurfaceMesh.js +24 -0
- package/dist/charts/threesurfaces/SurfaceSpace.js +70 -0
- package/dist/charts/threesurfaces/TerrainChart.js +202 -0
- package/dist/charts/threesurfaces/TriangulatedSurface.js +252 -0
- package/dist/charts/threesurfaces/TubeBatch.js +72 -0
- package/dist/charts/threesurfaces/Waterfall3DSpectrum.js +109 -0
- package/dist/charts/threesurfaces/WireframeSurface.js +105 -0
- package/dist/charts/threesurfaces/index.js +49 -0
- package/dist/charts/threevolume/AtomicOrbitalChart.js +228 -0
- package/dist/charts/threevolume/Bubble3DCloud.js +126 -0
- package/dist/charts/threevolume/Cloud3DChart.js +100 -0
- package/dist/charts/threevolume/Contour3DStack.js +183 -0
- package/dist/charts/threevolume/CrystalLattice.js +282 -0
- package/dist/charts/threevolume/Density3DChart.js +212 -0
- package/dist/charts/threevolume/FlowParticles.js +119 -0
- package/dist/charts/threevolume/Helix3DChart.js +142 -0
- package/dist/charts/threevolume/IsosurfaceChart.js +78 -0
- package/dist/charts/threevolume/LorenzAttractor.js +322 -0
- package/dist/charts/threevolume/Molecule3DChart.js +162 -0
- package/dist/charts/threevolume/Orbital3DChart.js +188 -0
- package/dist/charts/threevolume/PointCloudChart.js +171 -0
- package/dist/charts/threevolume/PointRowsChart.js +137 -0
- package/dist/charts/threevolume/Slab3DChart.js +145 -0
- package/dist/charts/threevolume/Streamline3DChart.js +106 -0
- package/dist/charts/threevolume/TubeTrajectoryChart.js +156 -0
- package/dist/charts/threevolume/Vector3DField.js +109 -0
- package/dist/charts/threevolume/VectorField3D.js +117 -0
- package/dist/charts/threevolume/VectorField3DChart.js +27 -0
- package/dist/charts/threevolume/VolumeGrid.js +176 -0
- package/dist/charts/threevolume/VolumeGridChart.js +42 -0
- package/dist/charts/threevolume/VolumeIsoSurface.js +177 -0
- package/dist/charts/threevolume/VolumeRaycastChart.js +198 -0
- package/dist/charts/threevolume/VolumeScene.js +136 -0
- package/dist/charts/threevolume/VolumeSheet.js +39 -0
- package/dist/charts/threevolume/VolumeSlicesChart.js +134 -0
- package/dist/charts/threevolume/VolumeStrands.js +73 -0
- package/dist/charts/threevolume/VoxelChart.js +86 -0
- package/dist/charts/threevolume/index.js +52 -0
- package/dist/charts/threevolume/volumeEnums.js +338 -0
- package/dist/charts/timeline/BurnChart.js +138 -0
- package/dist/charts/timeline/BurndownChart.js +93 -0
- package/dist/charts/timeline/BurnupChart.js +103 -0
- package/dist/charts/timeline/CalendarHeatmap.js +332 -0
- package/dist/charts/timeline/ChronologyChart.js +203 -0
- package/dist/charts/timeline/CriticalPathChart.js +139 -0
- package/dist/charts/timeline/CriticalPathMethod.js +89 -0
- package/dist/charts/timeline/CumulativeFlowChart.js +163 -0
- package/dist/charts/timeline/CycleTimeChart.js +176 -0
- package/dist/charts/timeline/EventDropChart.js +184 -0
- package/dist/charts/timeline/GanttChart.js +215 -0
- package/dist/charts/timeline/LifelineChart.js +173 -0
- package/dist/charts/timeline/MarimekkoTime.js +192 -0
- package/dist/charts/timeline/MilestoneChart.js +184 -0
- package/dist/charts/timeline/MilestoneTrendChart.js +148 -0
- package/dist/charts/timeline/PERTChart.js +236 -0
- package/dist/charts/timeline/PeriodicHeatmap.js +218 -0
- package/dist/charts/timeline/ResourceAllocationChart.js +281 -0
- package/dist/charts/timeline/RoadmapChart.js +198 -0
- package/dist/charts/timeline/SwimlaneChart.js +212 -0
- package/dist/charts/timeline/TimeBandChart.js +23 -0
- package/dist/charts/timeline/TimeMarks.js +95 -0
- package/dist/charts/timeline/TimeRows.js +128 -0
- package/dist/charts/timeline/TimeSamples.js +96 -0
- package/dist/charts/timeline/TimelineChart.js +221 -0
- package/dist/charts/timeline/index.js +46 -0
- package/dist/chunk-753UBLV2.cjs +33 -0
- package/dist/chunk-KGSYGPLS.cjs +16 -0
- package/dist/chunk-VX54A7KA.cjs +17 -0
- package/dist/chunk-WAODDPYX.cjs +102044 -0
- package/dist/chunk-Z3JPIJSC.cjs +338 -0
- package/dist/core/AnnotationLayer.js +236 -0
- package/dist/core/AnnotationPlacer.js +47 -0
- package/dist/core/AnnotationScale.js +64 -0
- package/dist/core/AxisWindow.js +85 -0
- package/dist/core/CartesianChart.js +218 -0
- package/dist/core/Chart.js +298 -0
- package/dist/core/Chart2D.js +286 -0
- package/dist/core/Chart3D.js +328 -0
- package/dist/core/ChartBrush.js +162 -0
- package/dist/core/ChartExportError.js +26 -0
- package/dist/core/ChartExporter.js +340 -0
- package/dist/core/ChartRegistry.js +53 -0
- package/dist/core/ChartViewport.js +401 -0
- package/dist/core/ColumnCheck.js +53 -0
- package/dist/core/Context2D.js +178 -0
- package/dist/core/Context3D.js +81 -0
- package/dist/core/ExcelWriter.js +152 -0
- package/dist/core/ExportText.js +28 -0
- package/dist/core/KeyboardNav.js +437 -0
- package/dist/core/LiveMotion.js +200 -0
- package/dist/core/LiveStream.js +179 -0
- package/dist/core/MarkOrigin.js +88 -0
- package/dist/core/MarkStyle.js +294 -0
- package/dist/core/Palette.js +69 -0
- package/dist/core/PdfPage.js +13 -0
- package/dist/core/PdfWriter.js +245 -0
- package/dist/core/RadialChart.js +14 -0
- package/dist/core/Scales.js +101 -0
- package/dist/core/SceneOverlay.js +63 -0
- package/dist/core/TextFit.js +37 -0
- package/dist/core/Theme.js +102 -0
- package/dist/core/Tooltip.js +73 -0
- package/dist/core/VariantSpace.js +30 -0
- package/dist/core/ZoomControls.js +28 -0
- package/dist/core/enums.js +139 -0
- package/dist/core/pathMorph.js +15 -0
- package/dist/counties-10m-SUUOGEQ6.cjs +15 -0
- package/dist/countries-10m-W7BHA2Y5.cjs +15 -0
- package/dist/countries-110m-FX2H3PT5.cjs +16 -0
- package/dist/countries-50m-6EAF3KCW.cjs +15 -0
- package/dist/data/GeoAtlas.js +119 -0
- package/dist/data/SampleData.js +329 -0
- package/dist/data/WorldSample.js +23 -0
- package/dist/index.cjs +6907 -0
- package/dist/index.d.cts +59137 -0
- package/dist/index.d.ts +59137 -0
- package/dist/index.js +977 -0
- package/dist/react/ChartView.js +87 -0
- package/dist/react/Graph.js +19 -0
- package/dist/react/GraphHandle.js +26 -0
- package/dist/react/chartComponent.js +18 -0
- package/dist/react/components.js +1888 -0
- package/dist/react/useLiveChart.js +34 -0
- package/dist/vendor/d3-cloud/src/layout.js +549 -0
- package/dist/vendor/d3-cloud/src/sprite.js +346 -0
- package/dist/vendor/us-atlas/counties-10m.json.js +53660 -0
- package/dist/vendor/us-atlas/states-10m.json.js +13858 -0
- package/dist/vendor/world-atlas/countries-10m.json.js +486537 -0
- package/dist/vendor/world-atlas/countries-110m.json.js +9360 -0
- package/dist/vendor/world-atlas/countries-50m.json.js +84531 -0
- package/package.json +106 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Malcolmston
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,480 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @mstone6969/graph
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A class-based chart library for React. Every chart is a TypeScript class with a matching React component: 2D charts draw to SVG with d3, and 3D charts draw to WebGL with three.js.
|
|
4
|
+
|
|
5
|
+
[Live site](https://malcolmston.github.io/graph/)
|
|
6
|
+
|
|
7
|
+
**628 chart classes (519 d3/SVG, 109 three.js/WebGL) expand to 42,154 variant combinations (35,114 2D, 7,040 3D).** A type is one class with one combination of its variant axes, for example `bar.horizontal.stacked`. Every type passes a test proving its geometry differs from its siblings, so this counts configurations, not 42,154 separately designed forms.
|
|
8
|
+
|
|
9
|
+
The count comes from `yarn vitest run src/catalog.test.ts`, which prints it. A class such as `BarChart` is one piece of code; its declared variant axes (orientation, stacking, padding) multiply into chart types, so hand-written classes are far fewer than types.
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
yarn add @mstone6969/graph react react-dom
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Everything comes from one import, and bundlers keep only what you use: `Bar` adds about 323 KB minified, `BarChart` about 190 KB, and `GraphType` about 20 KB, measured in a Vite app build with React external. `react` must be installed even if you only use the classes.
|
|
18
|
+
|
|
19
|
+
## Four ways to use it
|
|
20
|
+
|
|
21
|
+
**Component.** The usual choice. Every chart has one, and its props are typed for that chart. Sample data is drawn until you pass `data`.
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import { Bar, Orientation, StackMode } from '@mstone6969/graph'
|
|
25
|
+
|
|
26
|
+
<Bar data={rows} orientation={Orientation.Horizontal} stack={StackMode.Stacked} />
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
A component is named after its class without `Chart`, `Plot`, `Map`, `Graph` or `Diagram`, so `BarChart` gives `Bar` and `ChoroplethMap` gives `Choropleth`. If that name is taken, by a class or a browser global, it ends in `Graph` instead: `BackToBackHistogram` gives `BackToBackHistogramGraph`, and each chart page on the site shows the name.
|
|
30
|
+
|
|
31
|
+
**GraphType.** For a chart chosen at runtime. `GraphType` has one member per class, and variants are props. `Graph` loads the whole catalog the first time it needs one, so prefer a component when you know the chart.
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
import { Graph, GraphType, Orientation } from '@mstone6969/graph'
|
|
35
|
+
|
|
36
|
+
<Graph type={GraphType.BarChart} data={rows} orientation={Orientation.Horizontal} />
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Class.** `<Graph>` creates the chart for you. Changing a prop updates the chart in place, so its marks animate to the new state.
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
import { BarChart, Graph, Orientation, StackMode } from '@mstone6969/graph'
|
|
43
|
+
|
|
44
|
+
<Graph of={BarChart} data={rows} orientation={Orientation.Horizontal} stack={StackMode.Stacked} />
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Instance.** You own the object and can call its methods. Use this outside React too, with `chart.mount(element)`.
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
import { BarChart, Graph, Orientation } from '@mstone6969/graph'
|
|
51
|
+
|
|
52
|
+
const chart = new BarChart({ data: rows, orientation: Orientation.Horizontal, title: 'Revenue by region' })
|
|
53
|
+
|
|
54
|
+
<Graph chart={chart} />
|
|
55
|
+
chart.update({ orientation: Orientation.Vertical })
|
|
56
|
+
chart.table() // { columns, rows }, for accessibility or export
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Option fields name your data columns, and their defaults match the sample data, so `<Bar data={sales} x="region" y="revenue" series="year" />` is all a custom dataset needs.
|
|
60
|
+
|
|
61
|
+
`<Graph>` keeps `type`, `of`, `chart`, `className`, `style`, `id` and `role` for itself. A few classes, such as `BoxPlot`, have a variant axis called `style`: reach those through an instance. Components keep only `className`, `style`, `id` and `role`, so a chart option called `type` works on them.
|
|
62
|
+
|
|
63
|
+
Every chart also takes the shared `ChartOptions`: `width`, `height`, `title`, `subtitle`, `theme`, `animate`, `legend`, `tooltip`, `margin`, `ariaLabel`, `onSelect` and `keyboard`. Without a fixed size it takes its parent's width, follows resizes and is 400px tall.
|
|
64
|
+
|
|
65
|
+
Every x/y chart also takes `xTicks`, `yTicks`, `xFormat`, `yFormat`, `xDomain` and `yDomain`. The domains fix the ends of a continuous axis, `null` keeps the chart's own value for one end, and marks past them are clipped to the plot. Band axes, and charts whose marks do not follow an axis, ignore them.
|
|
66
|
+
|
|
67
|
+
Every x/y chart also takes `referenceLines`, `referenceBands` and `annotations`, positioned by data value through the chart's own scales, so categories, dates and log axes all work. `axis` names the axis the value sits on, so `AnnotationAxis.Y` (the default) draws a horizontal line. Values off the domain are skipped, bands are trimmed to it, and a label with no free spot in the plot is dropped. Bands sit behind the marks, so charts that fill the whole plot hide them.
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<Graph of={LineChart} data={rows}
|
|
71
|
+
referenceLines={[{ value: 100, label: 'Target' }, { axis: AnnotationAxis.X, value: launch, label: 'Launch' }]}
|
|
72
|
+
referenceBands={[{ from: 20, to: 40, label: 'Safe range' }]}
|
|
73
|
+
annotations={[{ x: launch, y: 92, text: 'Price cut' }]} />
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Live data
|
|
77
|
+
|
|
78
|
+
`append` adds rows as they arrive instead of replacing the data. However fast rows come, the chart repaints at most once per animation frame.
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
const chart = new LineChart({ data: [] }).mount(el)
|
|
82
|
+
socket.onmessage = (event) => chart.append(JSON.parse(event.data), { window: 60_000 })
|
|
83
|
+
|
|
84
|
+
chart.append(rows, { keep: 500 }) // latest 500 rows, per series on charts with a series or group column
|
|
85
|
+
chart.append(rows, { window: 5000 }) // rows within 5s of the newest x; x units, so ms for dates
|
|
86
|
+
chart.pause() // freezes the picture; rows keep arriving and aging out
|
|
87
|
+
chart.resume() // catches up in one paint
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
`window` and `keep` can be combined and stick for later calls. With neither, rows accumulate without limit. `window` reads the chart's `x` column; pass `{ x: 'column' }` if it has none. `update({ data })` replaces the live buffer. After `destroy()`, late rows are ignored, so a socket that outlives its chart is harmless. Series keep their colour and stack order as rows age out, so `chart.data` may list a series' oldest row early, and a series that returns after leaving the window comes last in the stack.
|
|
91
|
+
|
|
92
|
+
In React, `useLiveChart` gives you stable handlers:
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
import { Graph, useLiveChart } from '@mstone6969/graph'
|
|
96
|
+
|
|
97
|
+
const live = useLiveChart(() => new LineChart({ data: [] }), { window: 60_000 })
|
|
98
|
+
useEffect(() => socket.subscribe(live.append), [live.append])
|
|
99
|
+
return <Graph chart={live.chart} />
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Supported:** flat rows and long-form series rows (`{ date, series, value }`) on 2D charts with `DataShape.Table`, which is 379 catalog classes, row-fed massive charts included. Columnar massive data and anything else throws a clear error from `append` and `pause`: 3D charts, and hierarchy, graph, matrix, grid, volume, geo, function, text and genome data.
|
|
103
|
+
|
|
104
|
+
**Motion:** cartesian charts whose x and y are both continuous slide. Each paint draws final geometry, then the marks, ticks and grid decay smoothly from where they last appeared, so a spike rescales instead of jumping, and marks are clipped to the plot only while they move. Charts with a band or point axis, a zoom or brush, their own `draw`, or no axes morph each mark with its usual transition instead. Massive charts draw on a canvas, so they and their axes repaint in one step. `animate: false` and reduced motion paint straight through.
|
|
105
|
+
|
|
106
|
+
## Zoom, pan and brush
|
|
107
|
+
|
|
108
|
+
Every x/y chart takes `zoom` and `brush`. Both are off by default, and then nothing about the chart changes.
|
|
109
|
+
|
|
110
|
+
```tsx
|
|
111
|
+
import { ZoomAxis, type BrushRange } from '@mstone6969/graph'
|
|
112
|
+
|
|
113
|
+
<Graph of={LineChart} data={rows} zoom /> // wheel, drag, double click and buttons along x
|
|
114
|
+
<Graph of={ScatterPlot} data={rows} zoom={ZoomAxis.XY} /> // both axes
|
|
115
|
+
<Graph of={LineChart} data={rows} brush onBrush={(range: BrushRange | null, settled: boolean) => settled && setRange(range)} />
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Zooming redraws through the real scales, so ticks are recomputed and marks stay sharp and at their drawn size. Nothing animates during a gesture. `chart.viewport` does the same from code: `zoomIn`, `zoomOut`, `reset`, `fit({ x: [a, b] })`, `brush({ x: [a, b] })`, `clearBrush`, and `domain` for what is on screen.
|
|
119
|
+
|
|
120
|
+
`onBrush` reports data, not pixels: `{ x: [low, high] }` in numbers or dates, or the list of bands covered on a band axis, and `null` when cleared. It fires while dragging with `settled` false, then once with `settled` true. A click on the plot or the × button clears it. The selection stays on its data while the chart zooms. With `zoom` on too, drag brushes, the wheel zooms and shift-drag pans. `brush: true` runs along the same axes as `zoom`. On touch, a finger brushes from anywhere on the plot; with `zoom` on too, a second finger does not pinch.
|
|
121
|
+
|
|
122
|
+
| Axis | Zoom | Brush reports |
|
|
123
|
+
| --- | --- | --- |
|
|
124
|
+
| Linear, power, sqrt, symlog, log | Domain narrows; log zooms in log space | `[number, number]` |
|
|
125
|
+
| Time | Domain narrows, ticks follow the span | `[Date, Date]` |
|
|
126
|
+
| Band, point | Bands widen; ticks outside the plot are dropped | Band names |
|
|
127
|
+
|
|
128
|
+
`zoom: true` follows the categories when y is the band axis, so a horizontal bar chart widens its bars instead of cutting their length. Asking for a value axis on a bar chart (`ZoomAxis.XY`) does cut bars at the plot edge, since their baseline leaves the view.
|
|
129
|
+
|
|
130
|
+
Not supported: a chart that cannot follow a scale says so with one `console.warn`, has `chart.viewport.supported === false`, and draws as if the option were off. That covers custom axes with no inverse or a fixed domain (`DetectionErrorCurve`'s probit and log scales; the y axes of `ManhattanPlot` and of a mel `SpectrogramChart`, which still zoom along x). `TileMapDensity` has no interactive zoom: its `zoom` option is the tile level, a non-number there is refused, and `brush` still works. Charts with a second value scale (`DualAxisChart`, `ParetoChart`, `TimeDomainDiffChart`, `FilterResponseChart`) and `ECGChart`'s fixed amplitude grid zoom along their first axis only, because the rest would otherwise drift from its marks. The y axis does not rescale to fit the visible x window. Hand-picked ticks stay while at least three are in view, then the scale ticks itself; a chart's own tick text gives way to d3's when zoom makes neighbouring labels equal. Layers in the margin, such as a second axis or end labels, stay out of the clip on that side.
|
|
131
|
+
|
|
132
|
+
## Export
|
|
133
|
+
|
|
134
|
+
Every chart saves itself as an image, a PDF, a spreadsheet or plain data. `chart.exportFormats` says what is available.
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
import { ExportFormat, PdfOrientation, PdfPageSize } from '@mstone6969/graph'
|
|
138
|
+
|
|
139
|
+
chart.toSVG() // string, 2D only
|
|
140
|
+
chart.toPNG({ scale: 3 }) // Promise<Blob>, scale defaults to 2
|
|
141
|
+
chart.toCSV() // string, from chart.table()
|
|
142
|
+
chart.toPDF({ pageSize: PdfPageSize.Letter, orientation: PdfOrientation.Landscape, title: 'Revenue', table: true }) // Promise<Blob>
|
|
143
|
+
chart.toExcel({ image: true }) // Promise<Blob>, an .xlsx from chart.table()
|
|
144
|
+
chart.download(ExportFormat.PNG, { filename: 'revenue.png' })
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
A `ref` on `<Graph>` gives the same methods, plus the live `chart`:
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
const graph = useRef<GraphHandle>(null)
|
|
151
|
+
|
|
152
|
+
<Graph ref={graph} of={BarChart} data={rows} />
|
|
153
|
+
<button onClick={() => graph.current?.download(ExportFormat.SVG)}>Save</button>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Charts export finished: marks caught mid-animation are saved at their end state, rows appended but not yet painted are included, and the dimming of a hovered chart is left out. A smooth map zoom still in flight is saved where it has reached. `toStandaloneSVG`, `toPNG` and `download` wait for shapes a map loads on demand; `toSVG()` is synchronous and draws what is loaded now, so await one of those for a `geography` that may still be loading. A chart that is not mounted is drawn off-screen for the export, at its `width` and `height` or 640×400. Failures throw `ChartExportError`, whose `code` is an `ExportErrorCode`; an export never falls back to a blank file.
|
|
157
|
+
|
|
158
|
+
- **SVG** carries computed styles, the theme surface as a real rectangle, and the map's current zoom as plain transforms. On-screen zoom buttons are left out. It is unavailable for 3D charts, which render to WebGL: `toSVG()` throws and `exportFormats` omits it.
|
|
159
|
+
- **3D PNG** comes from the chart's renderer at the current camera, with any entry animation finished, and labels, title and legend drawn on top. A `scale` beyond the GPU's limit throws.
|
|
160
|
+
- **CSV** needs rows in `table()`, and throws otherwise. Dates are ISO 8601. Text that a spreadsheet would run as a formula is prefixed with `'`. `download` adds the byte order mark Excel needs; `toCSV()` does not.
|
|
161
|
+
- **Fonts.** `toSVG()` is synchronous and names the theme's font stack. `chart.toStandaloneSVG()`, `toPNG` and `download` also embed any `@font-face` the page declares for that font, when its stylesheet is readable. A font that cannot be fetched stays linked and the text draws in the fallback fonts.
|
|
162
|
+
- **PDF is a picture.** `toPDF` places the chart on the page as a PNG, on 2D and 3D charts alike, so its text cannot be selected and it pixelates when zoomed far in. `scale` defaults to 3. `table: true` adds `table()` as real text on pages after it. Built-in PDF fonts are Western European only, so other scripts are drawn as small pictures. Tables stop at 25,000 rows, and a cell wider than a column ends in an ellipsis.
|
|
163
|
+
- **Excel needs rows.** `toExcel` writes `table()` to a real .xlsx with numbers as numbers, dates as dates in local time, and text as text. Cells starting with `=`, `+`, `-` or `@` are stored as text and never run. A chart without rows rejects with `ExportErrorCode.NoData`, and a chart with more rows than a worksheet holds does not list it. `image: true` adds a sheet holding the chart.
|
|
164
|
+
- **PDF and Excel load on use.** Their code, and `pdf-lib` and `fflate`, are dynamic imports, so a chart that never calls them keeps them out of your main bundle. If the load fails, the call rejects with `ExportErrorCode.Unavailable`.
|
|
165
|
+
- **Web map tiles.** `toSVG()` keeps tiles as links, so that file needs the network. `toStandaloneSVG()`, `toPNG` and `download` fetch every tile and embed it. The tile server must send `Access-Control-Allow-Origin`: if any tile cannot be read within 20 seconds, they reject with `ExportErrorCode.Tainted` and name the tile, rather than save a map with holes. Without `tiles`, a slippy map has nothing to fetch and always exports.
|
|
166
|
+
|
|
167
|
+
## Keyboard
|
|
168
|
+
|
|
169
|
+
2D charts take `keyboard` to reach their data marks without a mouse. It is off by default. On, the chart is one tab stop however many marks it has.
|
|
170
|
+
|
|
171
|
+
| Key | Action |
|
|
172
|
+
| --- | --- |
|
|
173
|
+
| Arrows | Move between marks. Left and Right stay in a series, Up and Down change series. A Line has one mark per x, so there Down also moves along x. Without series, or in a free layout such as a map or scatter, arrows go the way they point. |
|
|
174
|
+
| Shift and an arrow | Step through the series in data order, so every mark is reachable, including marks stacked on the same spot |
|
|
175
|
+
| Home, End, Page Up, Page Down | First, last, or a tenth of the way through the series |
|
|
176
|
+
| Enter, Space | Select the mark, as a click does, so `onSelect` fires and a drill map drills |
|
|
177
|
+
| Escape | Leave the marks. The next arrow picks up where you were |
|
|
178
|
+
|
|
179
|
+
The current mark gets a ring, the hover tooltip and an `aria-live` reading of that tooltip. `tooltip: false` removes the box and keeps the ring and the reading, because the reading is the only way a screen reader user gets the value. Marks reached are the ones given to `ctx.hover`, and on a zoomed chart only those inside the plot. A chart with no such marks, as with the signal and massive charts, the recurrence plot, crossfilter histograms or empty data, stays `role="img"` with no tab stop. Exports leave all of this out. 3D charts ignore the option.
|
|
180
|
+
|
|
181
|
+
With marks to reach, the svg becomes `role="application"`. `img` hides its children and is not a keyboard target, and a screen reader in browse mode would otherwise use the arrow keys itself. DOM focus stays on the svg and the cursor moves over the marks, so a redraw cannot lose focus and the marks are never written to.
|
|
182
|
+
|
|
183
|
+
## Large data
|
|
184
|
+
|
|
185
|
+
SVG slows down past about 10,000 marks, so `src/charts/massive` draws to a canvas under a transparent SVG. Axes, legend, title, zoom, brush and annotations work as on any x/y chart. All three stayed interactive at 1,000,000 points in WebKit.
|
|
186
|
+
|
|
187
|
+
```tsx
|
|
188
|
+
import { Graph, MassiveDecimation, MassiveLineChart, MassiveScatterChart, ZoomAxis } from '@mstone6969/graph'
|
|
189
|
+
|
|
190
|
+
<Graph of={MassiveScatterChart} data={rows} zoom={ZoomAxis.XY} />
|
|
191
|
+
<Graph of={MassiveLineChart} data={{ x: times, y: values, time: true }} decimation={MassiveDecimation.Lttb} zoom />
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
- `MassiveScatterChart` draws dots while they read and a density raster once they overplot; zooming in brings the dots back. `display` forces either.
|
|
195
|
+
- `MassiveLineChart` keeps every peak with `MassiveDecimation.MinMax`, the default. `Lttb` keeps the shape with fewer points. `None` draws every point, and is not responsive at 1M.
|
|
196
|
+
- `MassiveDensityChart` is always the raster, with `bin` and `densityScale`.
|
|
197
|
+
|
|
198
|
+
Columnar data (`{ x, y, series, names, time }` with typed arrays) is the cheapest input. Rows work too and can be appended; columnar data cannot. With no SVG marks, `keyboard` has nothing to reach.
|
|
199
|
+
|
|
200
|
+
## Styling
|
|
201
|
+
|
|
202
|
+
`chartStyle` styles any chart from the shared layer. Unset keys leave the chart as drawn. Colours take any CSS colour, or a theme token name such as `good`.
|
|
203
|
+
|
|
204
|
+
```tsx
|
|
205
|
+
import { Bar, Line, ScaleKind, StrokeDash } from '@mstone6969/graph'
|
|
206
|
+
|
|
207
|
+
<Line data={rows} chartStyle={{ seriesColors: { Paid: '#0072b2' }, strokeWidth: 1.5, strokeDash: StrokeDash.Dashed, opacity: 0.8 }} />
|
|
208
|
+
<Bar data={rows} yScaleType={ScaleKind.Sqrt} aspectRatio={2} chartStyle={{ colors: ['#7a5230', '#3f7c85'], fontSize: 1.2 }} />
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
- Colour: `colors`, `seriesColors`, `sequential`, `diverging`.
|
|
212
|
+
- Marks: `strokeWidth`, `strokeDash`, `strokeCap`, `strokeJoin`, `opacity`, `markSize`, `edges`. SVG marks; `opacity` also reaches 3D materials.
|
|
213
|
+
- Text: `fontSize`, `fontFamily`.
|
|
214
|
+
- 3D: `wireframe`, `antialias`, `pixelRatio`.
|
|
215
|
+
- Beside `chartStyle`: `aspectRatio` on every chart, `xScaleType` and `yScaleType` on SVG charts with x and y axes.
|
|
216
|
+
- `chart.renderer` says what draws the marks: `RenderType.Svg`, `Canvas` or `WebGL`. Canvas charts take colour and text styling only.
|
|
217
|
+
|
|
218
|
+
The playground offers each of these where it changes the chart in front of you. See the Styling page of the docs.
|
|
219
|
+
|
|
220
|
+
## Specialist charts
|
|
221
|
+
|
|
222
|
+
Every chart here takes the shared options, and it has a component and a `GraphType` member.
|
|
223
|
+
|
|
224
|
+
**Business.** `TornadoChart` ranks drivers by how far each moves an output around the base case. `SparkBar` draws word-sized bars, one aligned row per series, including win-loss tiles.
|
|
225
|
+
|
|
226
|
+
```tsx
|
|
227
|
+
import { SparkBar, SparkBarForm, TornadoChart } from '@mstone6969/graph'
|
|
228
|
+
|
|
229
|
+
<Graph of={TornadoChart} data={[{ driver: 'Price', low: 80, high: 130, base: 100 }, { driver: 'Volume', low: 90, high: 115, base: 100 }]} />
|
|
230
|
+
<Graph of={SparkBar} data={rows} x="week" y="net" series="region" form={SparkBarForm.WinLoss} />
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Genomics.** `CircosPlot` draws a genome as a ring with data tracks and links, and `GenomeIdeogram` draws banded chromosomes with annotations. `GenomeSamples.cancerGenome(seed)` shows the data shape, and `bandFields`, `trackFields`, `linkFields` and `annotationFields` remap your columns.
|
|
234
|
+
|
|
235
|
+
```tsx
|
|
236
|
+
import { CircosPlot, GenomeIdeogram, GenomeIdeogramLayout, GenomeSamples } from '@mstone6969/graph'
|
|
237
|
+
|
|
238
|
+
const genome = GenomeSamples.cancerGenome(1) // { bands, tracks, links, annotations }
|
|
239
|
+
|
|
240
|
+
<Graph of={CircosPlot} data={genome} />
|
|
241
|
+
<Graph of={GenomeIdeogram} data={genome} layout={GenomeIdeogramLayout.Karyogram} />
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**Earth science.** `Hydrograph` plots discharge under rainfall and separates baseflow, in m³/s, mm and km²: pass your catchment's `area`, because the event ends and phi-index depend on it. `TernaryContour` contours a surface over three-part compositions.
|
|
245
|
+
|
|
246
|
+
```tsx
|
|
247
|
+
import { BaseflowMethod, Hydrograph, TernaryContour, TernarySurface } from '@mstone6969/graph'
|
|
248
|
+
|
|
249
|
+
<Graph of={Hydrograph} data={rows} time="time" flow="flow" rain="rain" baseflow={BaseflowMethod.Eckhardt} area={60} />
|
|
250
|
+
<Graph of={TernaryContour} data={rows} a="sand" b="clay" c="silt" value="porosity" surface={TernarySurface.ScheffeQuadratic} />
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Demography.** `LexisDiagram` shades rates on an isometric calendar-by-age plane, so cohorts run at 45 degrees at any size. `Nomogram` is a parallel-scale alignment chart with a live isopleth: drag a handle, use the arrow keys, or call `chart.place(rail, value)` and read `chart.solution`. Pass a `NomogramLaw` for your own equation.
|
|
254
|
+
|
|
255
|
+
```tsx
|
|
256
|
+
import { LexisCellKind, LexisDiagram, Nomogram, NomogramLawKind, type NomogramSolution } from '@mstone6969/graph'
|
|
257
|
+
|
|
258
|
+
<Graph of={LexisDiagram} data={rows} cells={LexisCellKind.AgePeriod} />
|
|
259
|
+
<Graph of={Nomogram} data={rows} law={NomogramLawKind.Fagan} onSolve={(solution: NomogramSolution) => console.log(solution)} />
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Structure.** `TournamentBracket` derives its pairings from seeds and scores. `DependencyMatrix` and `UmlClassDiagram` take `GraphData`. `MareyChart` plots timetables, with stations spaced by real distance; `time` and `depart` take dates or `HH:MM` clock times, including GTFS times past `24:00`.
|
|
263
|
+
|
|
264
|
+
```tsx
|
|
265
|
+
import { DependencyMatrix, DsmOrder, MareyChart, TournamentBracket, TournamentElimination, UmlClassDiagram, UmlDirection } from '@mstone6969/graph'
|
|
266
|
+
|
|
267
|
+
<Graph of={TournamentBracket} data={results} elimination={TournamentElimination.Double} />
|
|
268
|
+
<Graph of={DependencyMatrix} data={graph} order={DsmOrder.Partition} />
|
|
269
|
+
<Graph of={UmlClassDiagram} data={graph} direction={UmlDirection.LeftRight} />
|
|
270
|
+
<Graph of={MareyChart} data={timetable} trip="train" encounters />
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Market profile.** `MarketProfileChart` prints a letter for each time bracket at every price traded, with the point of control, the value area and the initial balance. It joins the financial module and reads the usual `date`, `open`, `high`, `low` and `close` columns.
|
|
274
|
+
|
|
275
|
+
```tsx
|
|
276
|
+
import { MarketProfileChart, TpoBracket, TpoForm } from '@mstone6969/graph'
|
|
277
|
+
|
|
278
|
+
<Graph of={MarketProfileChart} data={bars} form={TpoForm.Blocks} bracket={TpoBracket.Hour} />
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Applied charts
|
|
282
|
+
|
|
283
|
+
These take the shared options too, and each has a component and a `GraphType` member. Their built-in samples are synthetic, so `meta.sample` shows the data shape and nothing more.
|
|
284
|
+
|
|
285
|
+
**Software diagrams.** `SequenceDiagram` orders messages between lifelines, with activation bars replayed from the calls, `alt`, `opt` and `loop` frames, and notes. `EntityRelationshipDiagram` takes one row per table column, as `information_schema` gives them, and derives crow's foot cardinality from nullability and keys. `ArchitectureDiagram` draws a C4 model at the context, container or component level from one data set. `NetworkTopologyDiagram` lays out routers, switches, servers, clouds and databases by tier, ring or force. `LogicGateDiagram` simulates a circuit in 0, 1 and X, and colours each wire by its state.
|
|
286
|
+
|
|
287
|
+
```tsx
|
|
288
|
+
import { ArchitectureDiagram, ArchitectureLevel, EntityRelationshipDiagram, ErDetail, LogicGateDiagram, LogicSymbolStyle, NetworkTopologyDiagram, SequenceDiagram, SequenceNumbering, TopologyArrangement } from '@mstone6969/graph'
|
|
289
|
+
|
|
290
|
+
<Graph of={SequenceDiagram} data={[{ from: 'Web', to: 'API', label: 'POST /order', kind: 'sync' }, { from: 'API', to: 'Web', label: '201', kind: 'return' }]} numbering={SequenceNumbering.Nested} />
|
|
291
|
+
<Graph of={EntityRelationshipDiagram} data={columns} table="table_name" column="column_name" detail={ErDetail.Keys} /> // rows: { table, column, type, key, references, nullable }
|
|
292
|
+
<Graph of={ArchitectureDiagram} data={{ nodes, links }} level={ArchitectureLevel.Containers} /> // nodes: { id, name, kind, parent, technology, description, external }
|
|
293
|
+
<Graph of={NetworkTopologyDiagram} data={{ nodes, links }} arrangement={TopologyArrangement.Radial} /> // nodes: { id, name, kind, address }
|
|
294
|
+
<Graph of={LogicGateDiagram} data={{ gates, wires }} symbols={LogicSymbolStyle.Iec} /> // gates: { id, type, label, value }, wires: { from, to }
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Machine learning.** All six plot results you already have: none of them trains a model. `LearningCurveChart` takes long rows of `epoch`, `run`, `split` and `value`, and draws the mean per split with a spread band, the best epoch and the overfitting gap. `ElbowPlot` marks the bend by Kneedle, the L method, chord distance or second difference, and says so when a curve has none. `DecisionBoundaryChart` contours your classifier's probabilities over two features. `FeatureImportanceChart` ranks scores, with whiskers and the tail folded into Other. `PartialDependencePlot` sweeps your `predict` function over background rows, or reads precomputed curves. `AttentionHeatmap` draws weights as given, with target tokens as rows, and `chart.check()` reports rows that do not sum to 1 instead of renormalising them.
|
|
298
|
+
|
|
299
|
+
```tsx
|
|
300
|
+
import { AttentionHeadView, AttentionHeatmap, DecisionBoundaryChart, ElbowMethod, ElbowPlot, FeatureImportanceChart, FeatureImportanceSign, LearningCurveChart, OverfitShading, PartialDependencePlot, RunSpread, SilhouetteView } from '@mstone6969/graph'
|
|
301
|
+
|
|
302
|
+
<Graph of={LearningCurveChart} data={rows} x="epoch" y="value" run="run" split="split" validationSplit="val" spread={RunSpread.Confidence95} gap={OverfitShading.AfterBest} />
|
|
303
|
+
<Graph of={ElbowPlot} data={rows} x="k" y="inertia" method={ElbowMethod.Kneedle} silhouetteView={SilhouetteView.Panel} /> // rows: { k, inertia, silhouette }
|
|
304
|
+
<Graph of={DecisionBoundaryChart} data={{ points, predict: (x, y) => model.proba(x, y) }} /> // predict returns { class: probability } or a label
|
|
305
|
+
<Graph of={FeatureImportanceChart} data={rows} x="feature" y="gain" sign={FeatureImportanceSign.Value} top={12} />
|
|
306
|
+
<Graph of={PartialDependencePlot} data={background} x="age" predict={model.predict} />
|
|
307
|
+
<Graph of={AttentionHeatmap} data={{ source, target, heads: [{ name: 'Head 1', weights }] }} headView={AttentionHeadView.SmallMultiples} />
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Strategy and research frameworks.** `SwotMatrix` and `RaciMatrix` fit wrapped text to their cells and count what they cannot show. `RaciMatrix` audits every task for exactly one Accountable and at least one Responsible: read `chart.plan.flagged`. `VanWestendorpChart` finds the four price points from one row per respondent, and `curves` picks between the two published PMC and PME conventions. `NpsGauge` takes 0 to 10 answers. `AnsoffMatrix` places initiatives by market and product. `PerceptualMap` plots two rated attributes with fitted property vectors, or a Gabriel biplot.
|
|
311
|
+
|
|
312
|
+
```tsx
|
|
313
|
+
import { AnsoffDisplay, AnsoffMatrix, NpsGauge, PerceptualMap, RaciMatrix, SwotLayout, SwotMatrix, VanWestendorpChart, VanWestendorpCurves } from '@mstone6969/graph'
|
|
314
|
+
|
|
315
|
+
<Graph of={SwotMatrix} data={[{ quadrant: 'S', item: 'Loyal regulars' }]} layout={SwotLayout.Rows} />
|
|
316
|
+
<Graph of={RaciMatrix} data={[{ task: 'Launch', role: 'Lead', assignment: 'A/R' }]} grouping load />
|
|
317
|
+
<Graph of={VanWestendorpChart} data={rows} tooCheap="q1" cheap="q2" expensive="q3" tooExpensive="q4" curves={VanWestendorpCurves.Direct} />
|
|
318
|
+
<Graph of={NpsGauge} data={rows} score="score" />
|
|
319
|
+
<Graph of={AnsoffMatrix} data={rows} item="initiative" display={AnsoffDisplay.Bars} risk />
|
|
320
|
+
<Graph of={PerceptualMap} data={rows} name="brand" x="price" y="quality" xDomain={[1, 7]} yDomain={[1, 7]} vectors />
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Life science.** `MaPlot` computes M and A with median or loess normalisation and BH or Bonferroni calls, from red and green channels, precomputed values or a DESeq2-style `baseMean`. `OncoPrint` reads cBioPortal and MAF alteration terms, with a row for every profiled sample so that frequencies keep the whole cohort as the denominator. `PedigreeChart` follows standard genetics notation. Status columns are boolean-like, so map PED affection codes first: in PED, 1 means unaffected. `RamachandranPlot` judges each residue against the MolProbity Top8000 regions for its class. The regions are simplified polygons, so use MolProbity itself for formal validation.
|
|
324
|
+
|
|
325
|
+
The Ramachandran regions are adapted from the Richardson Lab Top8000 data (Williams et al. 2018, Protein Science 27:293-315), used under CC BY 4.0. The chart's default subtitle carries this credit, so keep it, or credit the data yourself, if you replace the subtitle.
|
|
326
|
+
|
|
327
|
+
```tsx
|
|
328
|
+
import { MaNormalization, MaPlot, OncoPrint, OncoSort, PedigreeCarrierMark, PedigreeChart, RamachandranPanel, RamachandranPlot } from '@mstone6969/graph'
|
|
329
|
+
|
|
330
|
+
<Graph of={MaPlot} data={rows} gene="gene" red="R" green="G" pvalue="p" normalization={MaNormalization.Loess} />
|
|
331
|
+
<Graph of={OncoPrint} data={maf} sample="Tumor_Sample_Barcode" gene="Hugo_Symbol" alteration="Variant_Classification" sort={OncoSort.Memo} />
|
|
332
|
+
<Graph of={PedigreeChart} data={people} carrierMark={PedigreeCarrierMark.Dot} showKey /> // rows: { id, father, mother, sex, affected, carrier, deceased, proband }
|
|
333
|
+
<Graph of={RamachandranPlot} data={residues} panel={RamachandranPanel.Glycine} /> // rows: { phi, psi, residue, nextResidue, omega, label }
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
`<Graph>` and components keep `id` and `style` for themselves, so rename `PedigreeChart`'s id column, or set `HovmollerDiagram`'s `style`, through an instance.
|
|
337
|
+
|
|
338
|
+
**Rotation, waves and buildings.** `RelativeStrengthRotation` joins the financial module. It tracks relative strength and its momentum through four quadrants, a method developed by Julius de Kempenaer. His exact formula is proprietary, so `RotationMethod` offers two named approximations that will not match licensed software, or you can name your own computed columns with `ratio` and `momentum`. It does not reproduce licensed RRG output. `HovmollerDiagram` joins the earth science module and maps a field against time and longitude or latitude, with stated or fitted phase-speed guides. `FloorPlanMap` joins the maps and draws rooms in plain plan units, with one colour scale across floors, door swings, asset markers and on-screen floor buttons.
|
|
339
|
+
|
|
340
|
+
```tsx
|
|
341
|
+
import { FloorDoorSwing, FloorPlanMap, HovmollerDiagram, HovmollerGuides, HovmollerSection, RelativeStrengthRotation, RotationMethod } from '@mstone6969/graph'
|
|
342
|
+
|
|
343
|
+
<Graph of={RelativeStrengthRotation} data={prices} benchmarkSymbol="SPX" method={RotationMethod.ZScore} tail={10} /> // rows: { date, series, close }
|
|
344
|
+
<Graph of={HovmollerDiagram} data={rows} section={HovmollerSection.Longitude} guides={HovmollerGuides.Fitted} /> // rows: { time, longitude, latitude, value }
|
|
345
|
+
<Graph of={FloorPlanMap} data={{ rooms, doors: [{ from: 'Lab', to: 'Hall', level: 2, swing: FloorDoorSwing.Left }], assets }} level={2} zoom /> // rooms: { name, level, value, points }
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
## Maps
|
|
349
|
+
|
|
350
|
+
Every 2D map takes `zoom` for drag, wheel, double click and on-screen buttons. `chart.viewport` does the same from code (`zoomIn`, `zoomOut`, `reset`, `fit`).
|
|
351
|
+
|
|
352
|
+
Region maps take `geography` to load bundled shapes on demand, so a page only downloads what it draws, then `rows` and `join` to attach your values. Shapes carry `fips`, `code` (states) and `name`.
|
|
353
|
+
|
|
354
|
+
```tsx
|
|
355
|
+
import { GeoLayer, UsCountyMap, ChoroplethMap } from '@mstone6969/graph'
|
|
356
|
+
|
|
357
|
+
<Graph of={UsCountyMap} rows={rows} /> // rows: [{ fips: '48201', value: 12 }]
|
|
358
|
+
<Graph of={ChoroplethMap} geography={GeoLayer.World50m} rows={rows} join="name" zoom />
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
`GeoLayer.World110m` swaps to 1:50m outlines by itself once you zoom in. `GeoAtlas` loads the same layers directly.
|
|
362
|
+
|
|
363
|
+
`DrillDownMap` opens a region into what it contains. With no setup it goes country, state, county; pass `children` for your own levels. One `rows` table can hold every level.
|
|
364
|
+
|
|
365
|
+
`SlippyPointMap` and `SlippyRegionMap` are Web Mercator maps. They draw their own land and make no network requests unless you pass `tiles`:
|
|
366
|
+
|
|
367
|
+
```tsx
|
|
368
|
+
import { OPEN_STREET_MAP, SlippyPointMap } from '@mstone6969/graph'
|
|
369
|
+
|
|
370
|
+
<Graph of={SlippyPointMap} data={places} tiles={OPEN_STREET_MAP} />
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
`TileSource` requires `attribution`, and the map prints it. The public OpenStreetMap server has a usage policy: use your own provider for production traffic.
|
|
374
|
+
|
|
375
|
+
## How it fits together
|
|
376
|
+
|
|
377
|
+
**Abstract classes** hold everything charts share. You only write the part that differs.
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
Chart options, lifecycle, sizing, theme, palette, tooltip
|
|
381
|
+
├── Chart2D SVG root, title, legend. You implement draw()
|
|
382
|
+
│ ├── CartesianChart axes and grid. You implement scales() and plotMarks()
|
|
383
|
+
│ └── RadialChart centred polar frame. You implement drawRadial()
|
|
384
|
+
└── Chart3D renderer, camera, lights, orbit, picking. You implement build()
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Concrete classes** extend one of those. When several classes in a module share logic, the module adds its own abstract class between them.
|
|
388
|
+
|
|
389
|
+
**Enums** name every option value, so `Orientation.Horizontal` is checked by the compiler and shows up in autocomplete. Shared ones (`ChartFamily`, `Dimension`, `DataShape`, `StackMode`, `CurveKind`, `ScaleKind`, `SymbolKind`, `LegendPosition`, `ThemeMode`) live in core. Modules export their own for chart-specific choices.
|
|
390
|
+
|
|
391
|
+
**Interfaces** are the contracts. `ChartOptions` is what every chart accepts, each class extends it with its own options, `ChartMeta` describes a class, `ChartClass` is any constructor with that `meta`, and `ChartType` is one class plus one combination of values. Data shapes (`Row`, `TreeNode`, `GraphData`, `MatrixData`, `GridData`, `VolumeData`) are interfaces too.
|
|
392
|
+
|
|
393
|
+
**The variant system** ties these together. Every class declares `static readonly meta`, and `meta.variants` maps option keys to values, with the first value as the default:
|
|
394
|
+
|
|
395
|
+
```ts
|
|
396
|
+
variants: {
|
|
397
|
+
orientation: [Orientation.Vertical, Orientation.Horizontal],
|
|
398
|
+
stack: [StackMode.None, StackMode.Stacked, StackMode.Normalized],
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
`VariantSpace` expands that into the cartesian product, and `meta.valid(values)` prunes combinations in which an axis would have no effect. Moved axes form the id, so the type above with both axes changed is `bar.horizontal.stacked`. `ChartRegistry` holds the result as `catalog`:
|
|
403
|
+
|
|
404
|
+
```ts
|
|
405
|
+
import { catalog, ChartFamily, Dimension, GraphType } from '@mstone6969/graph'
|
|
406
|
+
|
|
407
|
+
catalog.find({ text: 'stacked', family: ChartFamily.Comparison, dimension: Dimension.Two })
|
|
408
|
+
const [type] = catalog.find({ text: 'horizontal stacked', family: ChartFamily.Comparison })
|
|
409
|
+
const chart = catalog.create(type, { data: rows })
|
|
410
|
+
catalog.create(GraphType.BarChart, { data: rows })
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Adding a chart
|
|
414
|
+
|
|
415
|
+
1. Create one class in its own file under `src/charts/<module>/`, with its options interface beside it. Extend the abstract that fits.
|
|
416
|
+
2. Declare `static readonly meta`: a globally unique kebab-case `id`, `name`, one-sentence `description`, `family`, `dimension`, `shape`, a `sample` built from `SampleData`, and `variants`.
|
|
417
|
+
3. Draw through the context so animation, tooltips and themes work: `ctx.marks` for joins, `ctx.set` for animated attributes, `ctx.hover` on data marks, `ctx.palette` for colour.
|
|
418
|
+
4. Re-export it from the module's `index.ts` and list it in `<module>Catalog`.
|
|
419
|
+
|
|
420
|
+
```ts
|
|
421
|
+
import { scaleBand, scaleLinear, type ScaleBand, type ScaleLinear } from 'd3'
|
|
422
|
+
import { CartesianChart, ChartFamily, DataShape, Dimension, type CartesianOptions, type Context2D, type Row } from '../../core'
|
|
423
|
+
import { SampleData } from '../../data'
|
|
424
|
+
|
|
425
|
+
export interface DotRankOptions extends CartesianOptions<Row[]> { x?: string; y?: string; rule?: boolean }
|
|
426
|
+
interface DotRankAxes { x: ScaleBand<string>; y: ScaleLinear<number, number> }
|
|
427
|
+
|
|
428
|
+
/** Ranks categories with a dot, for when bars would be too heavy. */
|
|
429
|
+
export class DotRankChart extends CartesianChart<DotRankOptions, DotRankAxes> {
|
|
430
|
+
static readonly meta = {
|
|
431
|
+
id: 'dot-rank', name: 'Dot rank', family: ChartFamily.Comparison, dimension: Dimension.Two, shape: DataShape.Table,
|
|
432
|
+
description: 'Ranks categories by value with a single dot per category.',
|
|
433
|
+
sample: (seed: number) => SampleData.categories(seed, 7, 1),
|
|
434
|
+
variants: { rule: [false, true] },
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
protected override defaults() { return { x: 'category', y: 'value', rule: false } }
|
|
438
|
+
|
|
439
|
+
protected scales(ctx: Context2D): DotRankAxes {
|
|
440
|
+
const { data, x, y } = this.options
|
|
441
|
+
const top = Math.max(0, ...data.map((row) => +row[y!]!))
|
|
442
|
+
return {
|
|
443
|
+
x: scaleBand(data.map((row) => String(row[x!])), [0, ctx.plot.width]).padding(0.3),
|
|
444
|
+
y: scaleLinear([0, top], [ctx.plot.height, 0]).nice(),
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
protected plotMarks(ctx: Context2D, axes: DotRankAxes): void {
|
|
449
|
+
const { data, x, y, rule } = this.options
|
|
450
|
+
const center = (row: Row) => axes.x(String(row[x!]))! + axes.x.bandwidth() / 2
|
|
451
|
+
const rules = ctx.marks('rules', 'line', rule ? data : [], (row) => String(row[x!])).attr('stroke', ctx.theme.axis).attr('stroke-width', 2)
|
|
452
|
+
ctx.set(rules, { x1: center, x2: center, y1: axes.y(0), y2: (row) => axes.y(+row[y!]!) })
|
|
453
|
+
const dots = ctx.marks('dots', 'circle', data, (row) => String(row[x!])).attr('fill', ctx.palette.color('value'))
|
|
454
|
+
ctx.set(dots, { cx: center, cy: (row) => axes.y(+row[y!]!), r: 6 }, { r: 0 }, 20)
|
|
455
|
+
ctx.hover(dots, (row) => ({ title: String(row[x!]), rows: [[y!, +row[y!]!]] }))
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
The full rules are in [AUTHORING.md](AUTHORING.md). A chart is finished when `yarn vitest run src/charts/<module>` passes and `yarn sheet <module>` renders it correctly in light and dark.
|
|
461
|
+
|
|
462
|
+
## Site
|
|
463
|
+
|
|
464
|
+
The site is at <https://malcolmston.github.io/graph/>. It covers the 628 chart classes with a page per chart, a family page for each of the 21 families, guides and reference docs, and a playground that runs TSX in the browser. Sample data is labelled as such. `gallery/` holds its source, and `.github/workflows/pages.yml` deploys it on every push to `main`.
|
|
465
|
+
|
|
466
|
+
```sh
|
|
467
|
+
yarn install # once
|
|
468
|
+
yarn dev # local site, on the port Vite prints
|
|
469
|
+
yarn build:gallery # writes dist-gallery/
|
|
470
|
+
yarn generate:docs # rebuilds gallery/docs/generated after a change to src
|
|
471
|
+
yarn e2e # checks dist-gallery in WebKit, screenshots in .cache/gallery/
|
|
472
|
+
yarn e2e:site # every docs page, family and chart link in WebKit, screenshots in .cache/site/
|
|
473
|
+
yarn e2e:animated # every 2D class settles on its static render
|
|
474
|
+
yarn e2e:maps # map input in WebKit, including tiles
|
|
475
|
+
yarn e2e:live # streaming soak and fidelity sweep
|
|
476
|
+
yarn e2e:keyboard # real key presses
|
|
477
|
+
yarn e2e:zoom # real wheel, drag and keyboard
|
|
478
|
+
yarn e2e:export # real exports in WebKit, files in .cache/export/
|
|
479
|
+
yarn e2e:massive # draw times at 100k and 1M points, report as JSON
|
|
480
|
+
```
|