@sophistry/charts 0.0.0-stage → 0.0.1
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 +32 -2
- package/dist/3d/bar-chart3d.d.ts +56 -0
- package/dist/3d/bar-chart3d.d.ts.map +1 -0
- package/dist/3d/definitions.d.ts +38 -0
- package/dist/3d/definitions.d.ts.map +1 -0
- package/dist/3d/definitions.js +14 -0
- package/dist/3d/forward.d.ts +65 -0
- package/dist/3d/forward.d.ts.map +1 -0
- package/dist/3d/index.d.ts +31 -0
- package/dist/3d/index.d.ts.map +1 -0
- package/dist/3d/index.js +1 -0
- package/dist/3d/quiver3d.d.ts +53 -0
- package/dist/3d/quiver3d.d.ts.map +1 -0
- package/dist/3d/scatter3d.d.ts +45 -0
- package/dist/3d/scatter3d.d.ts.map +1 -0
- package/dist/3d/stem3d.d.ts +46 -0
- package/dist/3d/stem3d.d.ts.map +1 -0
- package/dist/3d/surface-grid3d.d.ts +34 -0
- package/dist/3d/surface-grid3d.d.ts.map +1 -0
- package/dist/3d/tri-surface3d.d.ts +46 -0
- package/dist/3d/tri-surface3d.d.ts.map +1 -0
- package/dist/3d/voxels3d.d.ts +26 -0
- package/dist/3d/voxels3d.d.ts.map +1 -0
- package/dist/3d/wireframe3d.d.ts +31 -0
- package/dist/3d/wireframe3d.d.ts.map +1 -0
- package/dist/band.d.ts +21 -0
- package/dist/band.d.ts.map +1 -0
- package/dist/bars/bar-chart.d.ts +144 -0
- package/dist/bars/bar-chart.d.ts.map +1 -0
- package/dist/bars/bar-labels.d.ts +117 -0
- package/dist/bars/bar-labels.d.ts.map +1 -0
- package/dist/bars/bars.d.ts +224 -0
- package/dist/bars/bars.d.ts.map +1 -0
- package/dist/bars/bullet.d.ts +158 -0
- package/dist/bars/bullet.d.ts.map +1 -0
- package/dist/bars/candlestick.d.ts +98 -0
- package/dist/bars/candlestick.d.ts.map +1 -0
- package/dist/bars/funnel.d.ts +91 -0
- package/dist/bars/funnel.d.ts.map +1 -0
- package/dist/bars/histogram.d.ts +109 -0
- package/dist/bars/histogram.d.ts.map +1 -0
- package/dist/bars/index.d.ts +23 -0
- package/dist/bars/index.d.ts.map +1 -0
- package/dist/bars/race.d.ts +29 -0
- package/dist/bars/race.d.ts.map +1 -0
- package/dist/bars/rules.d.ts +122 -0
- package/dist/bars/rules.d.ts.map +1 -0
- package/dist/bars/shared.d.ts +42 -0
- package/dist/bars/shared.d.ts.map +1 -0
- package/dist/bars/transforms.d.ts +250 -0
- package/dist/bars/transforms.d.ts.map +1 -0
- package/dist/bars/waterfall.d.ts +107 -0
- package/dist/bars/waterfall.d.ts.map +1 -0
- package/dist/batch.d.ts +143 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/channels-_Xf-p6Lx.js +56 -0
- package/dist/chart.d.ts +88 -0
- package/dist/chart.d.ts.map +1 -0
- package/dist/color-norm.d.ts +91 -0
- package/dist/color-norm.d.ts.map +1 -0
- package/dist/context.d.ts +112 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/curves/density.d.ts +126 -0
- package/dist/curves/density.d.ts.map +1 -0
- package/dist/curves/ecdf.d.ts +73 -0
- package/dist/curves/ecdf.d.ts.map +1 -0
- package/dist/curves/fill-between.d.ts +101 -0
- package/dist/curves/fill-between.d.ts.map +1 -0
- package/dist/curves/index.d.ts +16 -0
- package/dist/curves/index.d.ts.map +1 -0
- package/dist/curves/line-plot.d.ts +105 -0
- package/dist/curves/line-plot.d.ts.map +1 -0
- package/dist/curves/regression.d.ts +125 -0
- package/dist/curves/regression.d.ts.map +1 -0
- package/dist/curves/shared.d.ts +53 -0
- package/dist/curves/shared.d.ts.map +1 -0
- package/dist/curves/stack-plot.d.ts +141 -0
- package/dist/curves/stack-plot.d.ts.map +1 -0
- package/dist/curves/stairs.d.ts +171 -0
- package/dist/curves/stairs.d.ts.map +1 -0
- package/dist/data/channels.d.ts +171 -0
- package/dist/data/channels.d.ts.map +1 -0
- package/dist/end-space.d.ts +82 -0
- package/dist/end-space.d.ts.map +1 -0
- package/dist/entries/definitions.d.ts +21 -0
- package/dist/entries/definitions.d.ts.map +1 -0
- package/dist/entries/definitions.js +6 -0
- package/dist/frame/band-axis.d.ts +43 -0
- package/dist/frame/band-axis.d.ts.map +1 -0
- package/dist/frame/coords.d.ts +112 -0
- package/dist/frame/coords.d.ts.map +1 -0
- package/dist/frame/fit.d.ts +171 -0
- package/dist/frame/fit.d.ts.map +1 -0
- package/dist/frame/format.d.ts +41 -0
- package/dist/frame/format.d.ts.map +1 -0
- package/dist/frame/guide-metrics.d.ts +37 -0
- package/dist/frame/guide-metrics.d.ts.map +1 -0
- package/dist/frame/guides.d.ts +68 -0
- package/dist/frame/guides.d.ts.map +1 -0
- package/dist/frame/keys.d.ts +97 -0
- package/dist/frame/keys.d.ts.map +1 -0
- package/dist/frame/layout.d.ts +146 -0
- package/dist/frame/layout.d.ts.map +1 -0
- package/dist/frame/registry.d.ts +32 -0
- package/dist/frame/registry.d.ts.map +1 -0
- package/dist/frame/reports.d.ts +54 -0
- package/dist/frame/reports.d.ts.map +1 -0
- package/dist/frame/secondary-axes.d.ts +74 -0
- package/dist/frame/secondary-axes.d.ts.map +1 -0
- package/dist/frame/secondary.d.ts +57 -0
- package/dist/frame/secondary.d.ts.map +1 -0
- package/dist/frame/tooltip-overlay.d.ts +65 -0
- package/dist/frame/tooltip-overlay.d.ts.map +1 -0
- package/dist/frame/types.d.ts +659 -0
- package/dist/frame/types.d.ts.map +1 -0
- package/dist/grids/barbs.d.ts +52 -0
- package/dist/grids/barbs.d.ts.map +1 -0
- package/dist/grids/cell-rects.d.ts +38 -0
- package/dist/grids/cell-rects.d.ts.map +1 -0
- package/dist/grids/cells.d.ts +131 -0
- package/dist/grids/cells.d.ts.map +1 -0
- package/dist/grids/contour-f.d.ts +81 -0
- package/dist/grids/contour-f.d.ts.map +1 -0
- package/dist/grids/contour-shared.d.ts +54 -0
- package/dist/grids/contour-shared.d.ts.map +1 -0
- package/dist/grids/contour.d.ts +85 -0
- package/dist/grids/contour.d.ts.map +1 -0
- package/dist/grids/dendrogram.d.ts +105 -0
- package/dist/grids/dendrogram.d.ts.map +1 -0
- package/dist/grids/heatmap.d.ts +164 -0
- package/dist/grids/heatmap.d.ts.map +1 -0
- package/dist/grids/hex-bin.d.ts +94 -0
- package/dist/grids/hex-bin.d.ts.map +1 -0
- package/dist/grids/hist2d.d.ts +108 -0
- package/dist/grids/hist2d.d.ts.map +1 -0
- package/dist/grids/imshow.d.ts +85 -0
- package/dist/grids/imshow.d.ts.map +1 -0
- package/dist/grids/index.d.ts +27 -0
- package/dist/grids/index.d.ts.map +1 -0
- package/dist/grids/pcolormesh.d.ts +91 -0
- package/dist/grids/pcolormesh.d.ts.map +1 -0
- package/dist/grids/ramp-cells.d.ts +67 -0
- package/dist/grids/ramp-cells.d.ts.map +1 -0
- package/dist/grids/tri-contour.d.ts +121 -0
- package/dist/grids/tri-contour.d.ts.map +1 -0
- package/dist/grids/tri-shared.d.ts +62 -0
- package/dist/grids/tri-shared.d.ts.map +1 -0
- package/dist/grids/tripcolor.d.ts +74 -0
- package/dist/grids/tripcolor.d.ts.map +1 -0
- package/dist/guides/colorbar.d.ts +111 -0
- package/dist/guides/colorbar.d.ts.map +1 -0
- package/dist/guides/index.d.ts +12 -0
- package/dist/guides/index.d.ts.map +1 -0
- package/dist/guides/legend.d.ts +119 -0
- package/dist/guides/legend.d.ts.map +1 -0
- package/dist/guides/nodes.d.ts +14 -0
- package/dist/guides/nodes.d.ts.map +1 -0
- package/dist/guides/size-legend.d.ts +234 -0
- package/dist/guides/size-legend.d.ts.map +1 -0
- package/dist/hierarchy/breadcrumbs.d.ts +134 -0
- package/dist/hierarchy/breadcrumbs.d.ts.map +1 -0
- package/dist/hierarchy/circle-pack.d.ts +73 -0
- package/dist/hierarchy/circle-pack.d.ts.map +1 -0
- package/dist/hierarchy/drill.d.ts +246 -0
- package/dist/hierarchy/drill.d.ts.map +1 -0
- package/dist/hierarchy/frame.d.ts +68 -0
- package/dist/hierarchy/frame.d.ts.map +1 -0
- package/dist/hierarchy/icicle.d.ts +77 -0
- package/dist/hierarchy/icicle.d.ts.map +1 -0
- package/dist/hierarchy/index.d.ts +21 -0
- package/dist/hierarchy/index.d.ts.map +1 -0
- package/dist/hierarchy/labels.d.ts +25 -0
- package/dist/hierarchy/labels.d.ts.map +1 -0
- package/dist/hierarchy/mosaic.d.ts +131 -0
- package/dist/hierarchy/mosaic.d.ts.map +1 -0
- package/dist/hierarchy/own-tooltip.d.ts +13 -0
- package/dist/hierarchy/own-tooltip.d.ts.map +1 -0
- package/dist/hierarchy/props.d.ts +14 -0
- package/dist/hierarchy/props.d.ts.map +1 -0
- package/dist/hierarchy/sankey.d.ts +133 -0
- package/dist/hierarchy/sankey.d.ts.map +1 -0
- package/dist/hierarchy/shared.d.ts +248 -0
- package/dist/hierarchy/shared.d.ts.map +1 -0
- package/dist/hierarchy/sunburst.d.ts +75 -0
- package/dist/hierarchy/sunburst.d.ts.map +1 -0
- package/dist/hierarchy/tree.d.ts +125 -0
- package/dist/hierarchy/tree.d.ts.map +1 -0
- package/dist/hierarchy/treemap.d.ts +77 -0
- package/dist/hierarchy/treemap.d.ts.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/item-tooltip.d.ts +34 -0
- package/dist/item-tooltip.d.ts.map +1 -0
- package/dist/join.d.ts +224 -0
- package/dist/join.d.ts.map +1 -0
- package/dist/math/3d/bar3d.d.ts +28 -0
- package/dist/math/3d/bar3d.d.ts.map +1 -0
- package/dist/math/3d/quiver3d.d.ts +27 -0
- package/dist/math/3d/quiver3d.d.ts.map +1 -0
- package/dist/math/3d/scatter3d.d.ts +16 -0
- package/dist/math/3d/scatter3d.d.ts.map +1 -0
- package/dist/math/3d/stem3d.d.ts +23 -0
- package/dist/math/3d/stem3d.d.ts.map +1 -0
- package/dist/math/3d/surfaceGrid3d.d.ts +34 -0
- package/dist/math/3d/surfaceGrid3d.d.ts.map +1 -0
- package/dist/math/3d/trisurface.d.ts +12 -0
- package/dist/math/3d/trisurface.d.ts.map +1 -0
- package/dist/math/3d/voxels.d.ts +18 -0
- package/dist/math/3d/voxels.d.ts.map +1 -0
- package/dist/math/aggregate.d.ts +69 -0
- package/dist/math/aggregate.d.ts.map +1 -0
- package/dist/math/bar.d.ts +32 -0
- package/dist/math/bar.d.ts.map +1 -0
- package/dist/math/barLabels.d.ts +84 -0
- package/dist/math/barLabels.d.ts.map +1 -0
- package/dist/math/barbs.d.ts +37 -0
- package/dist/math/barbs.d.ts.map +1 -0
- package/dist/math/boxplot.d.ts +37 -0
- package/dist/math/boxplot.d.ts.map +1 -0
- package/dist/math/breadcrumbs.d.ts +129 -0
- package/dist/math/breadcrumbs.d.ts.map +1 -0
- package/dist/math/bubble.d.ts +39 -0
- package/dist/math/bubble.d.ts.map +1 -0
- package/dist/math/bullet.d.ts +111 -0
- package/dist/math/bullet.d.ts.map +1 -0
- package/dist/math/chord.d.ts +104 -0
- package/dist/math/chord.d.ts.map +1 -0
- package/dist/math/cluster.d.ts +89 -0
- package/dist/math/cluster.d.ts.map +1 -0
- package/dist/math/contour.d.ts +49 -0
- package/dist/math/contour.d.ts.map +1 -0
- package/dist/math/contourf.d.ts +51 -0
- package/dist/math/contourf.d.ts.map +1 -0
- package/dist/math/dodge.d.ts +37 -0
- package/dist/math/dodge.d.ts.map +1 -0
- package/dist/math/ecdf.d.ts +42 -0
- package/dist/math/ecdf.d.ts.map +1 -0
- package/dist/math/errorbar.d.ts +28 -0
- package/dist/math/errorbar.d.ts.map +1 -0
- package/dist/math/eventplot.d.ts +27 -0
- package/dist/math/eventplot.d.ts.map +1 -0
- package/dist/math/facet.d.ts +91 -0
- package/dist/math/facet.d.ts.map +1 -0
- package/dist/math/fillBetween.d.ts +29 -0
- package/dist/math/fillBetween.d.ts.map +1 -0
- package/dist/math/gauge.d.ts +72 -0
- package/dist/math/gauge.d.ts.map +1 -0
- package/dist/math/hexbin.d.ts +21 -0
- package/dist/math/hexbin.d.ts.map +1 -0
- package/dist/math/hierarchy.d.ts +180 -0
- package/dist/math/hierarchy.d.ts.map +1 -0
- package/dist/math/hierarchyJoin.d.ts +60 -0
- package/dist/math/hierarchyJoin.d.ts.map +1 -0
- package/dist/math/histogram.d.ts +37 -0
- package/dist/math/histogram.d.ts.map +1 -0
- package/dist/math/histogram2d.d.ts +45 -0
- package/dist/math/histogram2d.d.ts.map +1 -0
- package/dist/math/imshow.d.ts +27 -0
- package/dist/math/imshow.d.ts.map +1 -0
- package/dist/math/index.d.ts +140 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/math/index.js +3 -0
- package/dist/math/jitter.d.ts +17 -0
- package/dist/math/jitter.d.ts.map +1 -0
- package/dist/math/join.d.ts +136 -0
- package/dist/math/join.d.ts.map +1 -0
- package/dist/math/keyframes.d.ts +128 -0
- package/dist/math/keyframes.d.ts.map +1 -0
- package/dist/math/legend.d.ts +121 -0
- package/dist/math/legend.d.ts.map +1 -0
- package/dist/math/line.d.ts +54 -0
- package/dist/math/line.d.ts.map +1 -0
- package/dist/math/morph.d.ts +82 -0
- package/dist/math/morph.d.ts.map +1 -0
- package/dist/math/mosaic.d.ts +120 -0
- package/dist/math/mosaic.d.ts.map +1 -0
- package/dist/math/ordinal.d.ts +80 -0
- package/dist/math/ordinal.d.ts.map +1 -0
- package/dist/math/parallel.d.ts +39 -0
- package/dist/math/parallel.d.ts.map +1 -0
- package/dist/math/pcolormesh.d.ts +23 -0
- package/dist/math/pcolormesh.d.ts.map +1 -0
- package/dist/math/pie.d.ts +106 -0
- package/dist/math/pie.d.ts.map +1 -0
- package/dist/math/polarArea.d.ts +35 -0
- package/dist/math/polarArea.d.ts.map +1 -0
- package/dist/math/radar.d.ts +111 -0
- package/dist/math/radar.d.ts.map +1 -0
- package/dist/math/range.d.ts +99 -0
- package/dist/math/range.d.ts.map +1 -0
- package/dist/math/regression.d.ts +110 -0
- package/dist/math/regression.d.ts.map +1 -0
- package/dist/math/reveal.d.ts +64 -0
- package/dist/math/reveal.d.ts.map +1 -0
- package/dist/math/sankey.d.ts +155 -0
- package/dist/math/sankey.d.ts.map +1 -0
- package/dist/math/scatter.d.ts +15 -0
- package/dist/math/scatter.d.ts.map +1 -0
- package/dist/math/shared/binning.d.ts +24 -0
- package/dist/math/shared/binning.d.ts.map +1 -0
- package/dist/math/shared/gridCells.d.ts +42 -0
- package/dist/math/shared/gridCells.d.ts.map +1 -0
- package/dist/math/shared/gridExtent.d.ts +6 -0
- package/dist/math/shared/gridExtent.d.ts.map +1 -0
- package/dist/math/shared/pairs.d.ts +3 -0
- package/dist/math/shared/pairs.d.ts.map +1 -0
- package/dist/math/shared/polar.d.ts +24 -0
- package/dist/math/shared/polar.d.ts.map +1 -0
- package/dist/math/stack.d.ts +70 -0
- package/dist/math/stack.d.ts.map +1 -0
- package/dist/math/stackplot.d.ts +36 -0
- package/dist/math/stackplot.d.ts.map +1 -0
- package/dist/math/stairs.d.ts +18 -0
- package/dist/math/stairs.d.ts.map +1 -0
- package/dist/math/stem.d.ts +22 -0
- package/dist/math/stem.d.ts.map +1 -0
- package/dist/math/symbol.d.ts +26 -0
- package/dist/math/symbol.d.ts.map +1 -0
- package/dist/math/tree.d.ts +118 -0
- package/dist/math/tree.d.ts.map +1 -0
- package/dist/math/tricontour.d.ts +77 -0
- package/dist/math/tricontour.d.ts.map +1 -0
- package/dist/math/violin.d.ts +100 -0
- package/dist/math/violin.d.ts.map +1 -0
- package/dist/math/waffle.d.ts +49 -0
- package/dist/math/waffle.d.ts.map +1 -0
- package/dist/math/waterfall.d.ts +29 -0
- package/dist/math/waterfall.d.ts.map +1 -0
- package/dist/math-CSHNpGej.js +3648 -0
- package/dist/mix.d.ts +25 -0
- package/dist/mix.d.ts.map +1 -0
- package/dist/multiview/brush.d.ts +166 -0
- package/dist/multiview/brush.d.ts.map +1 -0
- package/dist/multiview/chart-group.d.ts +266 -0
- package/dist/multiview/chart-group.d.ts.map +1 -0
- package/dist/multiview/chart-link.d.ts +189 -0
- package/dist/multiview/chart-link.d.ts.map +1 -0
- package/dist/multiview/chart-zoom.d.ts +145 -0
- package/dist/multiview/chart-zoom.d.ts.map +1 -0
- package/dist/multiview/facet.d.ts +239 -0
- package/dist/multiview/facet.d.ts.map +1 -0
- package/dist/multiview/group-guides.d.ts +100 -0
- package/dist/multiview/group-guides.d.ts.map +1 -0
- package/dist/multiview/index.d.ts +18 -0
- package/dist/multiview/index.d.ts.map +1 -0
- package/dist/multiview/joint-plot.d.ts +115 -0
- package/dist/multiview/joint-plot.d.ts.map +1 -0
- package/dist/multiview/pair-plot.d.ts +154 -0
- package/dist/multiview/pair-plot.d.ts.map +1 -0
- package/dist/multiview/panels.d.ts +23 -0
- package/dist/multiview/panels.d.ts.map +1 -0
- package/dist/multiview/parallel-coordinates.d.ts +110 -0
- package/dist/multiview/parallel-coordinates.d.ts.map +1 -0
- package/dist/points/event-plot.d.ts +68 -0
- package/dist/points/event-plot.d.ts.map +1 -0
- package/dist/points/index.d.ts +20 -0
- package/dist/points/index.d.ts.map +1 -0
- package/dist/points/labels.d.ts +71 -0
- package/dist/points/labels.d.ts.map +1 -0
- package/dist/points/links.d.ts +124 -0
- package/dist/points/links.d.ts.map +1 -0
- package/dist/points/rects.d.ts +81 -0
- package/dist/points/rects.d.ts.map +1 -0
- package/dist/points/rug.d.ts +73 -0
- package/dist/points/rug.d.ts.map +1 -0
- package/dist/points/scatter.d.ts +170 -0
- package/dist/points/scatter.d.ts.map +1 -0
- package/dist/points/segment-marks.d.ts +40 -0
- package/dist/points/segment-marks.d.ts.map +1 -0
- package/dist/points/shared.d.ts +35 -0
- package/dist/points/shared.d.ts.map +1 -0
- package/dist/points/stem.d.ts +76 -0
- package/dist/points/stem.d.ts.map +1 -0
- package/dist/points/strip.d.ts +146 -0
- package/dist/points/strip.d.ts.map +1 -0
- package/dist/points/symbol-marker.d.ts +34 -0
- package/dist/points/symbol-marker.d.ts.map +1 -0
- package/dist/points/ticks.d.ts +103 -0
- package/dist/points/ticks.d.ts.map +1 -0
- package/dist/props.d.ts +127 -0
- package/dist/props.d.ts.map +1 -0
- package/dist/radial/chord.d.ts +149 -0
- package/dist/radial/chord.d.ts.map +1 -0
- package/dist/radial/gauge.d.ts +127 -0
- package/dist/radial/gauge.d.ts.map +1 -0
- package/dist/radial/index.d.ts +16 -0
- package/dist/radial/index.d.ts.map +1 -0
- package/dist/radial/pie-chart.d.ts +144 -0
- package/dist/radial/pie-chart.d.ts.map +1 -0
- package/dist/radial/polar-area-chart.d.ts +136 -0
- package/dist/radial/polar-area-chart.d.ts.map +1 -0
- package/dist/radial/radar-chart.d.ts +177 -0
- package/dist/radial/radar-chart.d.ts.map +1 -0
- package/dist/radial/radial-bar-chart.d.ts +117 -0
- package/dist/radial/radial-bar-chart.d.ts.map +1 -0
- package/dist/radial/shared.d.ts +79 -0
- package/dist/radial/shared.d.ts.map +1 -0
- package/dist/radial/waffle.d.ts +131 -0
- package/dist/radial/waffle.d.ts.map +1 -0
- package/dist/raster.d.ts +44 -0
- package/dist/raster.d.ts.map +1 -0
- package/dist/series.d.ts +72 -0
- package/dist/series.d.ts.map +1 -0
- package/dist/src-CwGo1bes.js +19221 -0
- package/dist/stagger.d.ts +55 -0
- package/dist/stagger.d.ts.map +1 -0
- package/dist/statistics/box-plot.d.ts +152 -0
- package/dist/statistics/box-plot.d.ts.map +1 -0
- package/dist/statistics/error-bar.d.ts +149 -0
- package/dist/statistics/error-bar.d.ts.map +1 -0
- package/dist/statistics/groups.d.ts +141 -0
- package/dist/statistics/groups.d.ts.map +1 -0
- package/dist/statistics/index.d.ts +8 -0
- package/dist/statistics/index.d.ts.map +1 -0
- package/dist/statistics/violin-plot.d.ts +144 -0
- package/dist/statistics/violin-plot.d.ts.map +1 -0
- package/dist/text-width.d.ts +10 -0
- package/dist/text-width.d.ts.map +1 -0
- package/dist/tooltip.d.ts +277 -0
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/util.d.ts +34 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/voxels-9lJ2TZS4.js +235 -0
- package/dist/wireframe3d-D157GZAq.js +345 -0
- package/package.json +86 -3
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data channels: how a chart reads one field out of each datum. A channel
|
|
3
|
+
* is a key of the datum (`x="year"`, type-checked against `T`) or a function
|
|
4
|
+
* `(d, i) => value`. Singular props are channels, plural ones (`xs`,
|
|
5
|
+
* `colors`, `edges`) literal arrays. With `number[]` data the main numeric
|
|
6
|
+
* channel defaults to the datum itself. Colour is a constant or a function,
|
|
7
|
+
* never a key; colour by a field with `series`. Dates in positional
|
|
8
|
+
* channels are read as epoch milliseconds.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import type { ContextKey } from "@sophistry/core";
|
|
13
|
+
import type { ColorInput } from "@sophistry/core/color";
|
|
14
|
+
import type { TemporalValue, TimeZone } from "@sophistry/core/geometry";
|
|
15
|
+
/**
|
|
16
|
+
* A channel function: reads one value from a datum and its index.
|
|
17
|
+
*
|
|
18
|
+
* @category Channels
|
|
19
|
+
*/
|
|
20
|
+
export type ChannelFn<T, V> = (datum: T, index: number) => V;
|
|
21
|
+
/**
|
|
22
|
+
* The keys of `T` whose values suit a `V`-valued channel (`V`, `null` or `undefined`).
|
|
23
|
+
*
|
|
24
|
+
* @category Channels
|
|
25
|
+
*/
|
|
26
|
+
export type ChannelKey<T, V> = [T] extends [object] ? {
|
|
27
|
+
[K in keyof T & string]-?: T[K] extends V | null | undefined ? K : never;
|
|
28
|
+
}[keyof T & string] : never;
|
|
29
|
+
/**
|
|
30
|
+
* Where a chart finds a `V` in each `T`: a key of `T` whose value is a `V`,
|
|
31
|
+
* or a function `(d, i) => V`.
|
|
32
|
+
*
|
|
33
|
+
* @see https://sophistry.dev/guides/charts/#data-and-channels
|
|
34
|
+
* @category Channels
|
|
35
|
+
*/
|
|
36
|
+
export type Channel<T, V> = ChannelKey<T, V> | ChannelFn<T, V>;
|
|
37
|
+
/**
|
|
38
|
+
* A position on a continuous axis, as positional channels (`x`, `y`, `x1`,
|
|
39
|
+
* …) accept it: a number, a `Date`, or a Temporal value (`Instant`,
|
|
40
|
+
* `ZonedDateTime`, `PlainDate`, `PlainDateTime`).
|
|
41
|
+
*
|
|
42
|
+
* @see https://sophistry.dev/guides/charts/#dates-and-time-zones
|
|
43
|
+
* @category Channels
|
|
44
|
+
*/
|
|
45
|
+
export type PositionValue = number | Date | TemporalValue;
|
|
46
|
+
/**
|
|
47
|
+
* What a channel of `V`s reads once resolved: dates become epoch
|
|
48
|
+
* milliseconds, anything else is as given.
|
|
49
|
+
*
|
|
50
|
+
* @category Channels
|
|
51
|
+
*/
|
|
52
|
+
export type ChannelRead<V> = V extends Date | TemporalValue ? number : V;
|
|
53
|
+
/**
|
|
54
|
+
* A number: one constant for every datum, or a per-datum {@link Channel}.
|
|
55
|
+
*
|
|
56
|
+
* @category Channels
|
|
57
|
+
*/
|
|
58
|
+
export type Quantity<T> = number | Channel<T, number>;
|
|
59
|
+
/**
|
|
60
|
+
* A colour: one constant (a CSS string or a `Color` such as `BLUE`) or
|
|
61
|
+
* `(d, i) => colour`. No key form: a string is always a colour.
|
|
62
|
+
*
|
|
63
|
+
* @category Channels
|
|
64
|
+
*/
|
|
65
|
+
export type ColorChannel<T> = ColorInput | ChannelFn<T, ColorInput>;
|
|
66
|
+
/**
|
|
67
|
+
* Placeholder type of a required channel prop; see {@link RequiredUnless}.
|
|
68
|
+
* Its name is what a "missing property" error shows.
|
|
69
|
+
*
|
|
70
|
+
* @category Channels
|
|
71
|
+
*/
|
|
72
|
+
export interface RequiredChannel<T, V> {
|
|
73
|
+
/** @internal */
|
|
74
|
+
readonly __channel?: [T, V];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Makes the channel prop `K` required unless `T` is already a `V` (then the
|
|
78
|
+
* channel defaults to the datum itself; nullish members of `T` don't
|
|
79
|
+
* count). Intersect it with a props interface declaring `K` as an optional
|
|
80
|
+
* {@link Channel}; `T` stays inferred from `data`.
|
|
81
|
+
*
|
|
82
|
+
* @category Channels
|
|
83
|
+
*/
|
|
84
|
+
export type RequiredUnless<T, V, K extends string> = [NonNullable<T>] extends [
|
|
85
|
+
V
|
|
86
|
+
] ? unknown : {
|
|
87
|
+
[P in K]-?: RequiredChannel<T, V>;
|
|
88
|
+
};
|
|
89
|
+
/** The identity channel, the default for `number[]` data. */
|
|
90
|
+
export declare const identity: <T, V>(datum: T) => V;
|
|
91
|
+
/** Position of a datum: the default `x` channel for `number[]` data. */
|
|
92
|
+
export declare const indexOf: (_datum: unknown, index: number) => number;
|
|
93
|
+
/**
|
|
94
|
+
* Turns a {@link Channel} into a plain function: a key reads that property,
|
|
95
|
+
* a function is called as is. Dates come back as epoch milliseconds (plain
|
|
96
|
+
* Temporal dates in the axis's `timeZone`, else UTC); read through a
|
|
97
|
+
* positional channel under a `<Chart>`, they also make that axis a time
|
|
98
|
+
* axis. An omitted channel resolves to `fallback`, or `undefined`.
|
|
99
|
+
*
|
|
100
|
+
* A mark passes the {@link DateSink} it read from {@link dateSinkContext}.
|
|
101
|
+
*
|
|
102
|
+
* @param fallback - Used when `channel` is `undefined`.
|
|
103
|
+
* @param name - Prop name for the error message.
|
|
104
|
+
* @param sink - Where a positional channel notes dates (the enclosing chart's).
|
|
105
|
+
* @throws {TypeError} If `channel` is neither a function nor a string or symbol key.
|
|
106
|
+
* @category Channels
|
|
107
|
+
*/
|
|
108
|
+
export declare function resolveChannel<T, V>(channel: Channel<T, V>, fallback?: undefined, name?: string, sink?: DateSink | null): ChannelFn<T, ChannelRead<V>>;
|
|
109
|
+
export declare function resolveChannel<T, V>(channel: Channel<T, V> | undefined, fallback: ChannelFn<T, V>, name?: string, sink?: DateSink | null): ChannelFn<T, ChannelRead<V>>;
|
|
110
|
+
export declare function resolveChannel<T, V>(channel: Channel<T, V> | undefined, fallback?: undefined, name?: string, sink?: DateSink | null): ChannelFn<T, ChannelRead<V>> | undefined;
|
|
111
|
+
/** An axis a channel's dates can be noted on: a chart's own, or a secondary one. */
|
|
112
|
+
export type DateAxis = "x" | "y" | "x2" | "y2";
|
|
113
|
+
/**
|
|
114
|
+
* Where positional channels note that they read dates, so `<Chart>` can
|
|
115
|
+
* infer a `"utc"` scale; also gives the zone an axis reads plain Temporal
|
|
116
|
+
* dates in.
|
|
117
|
+
*
|
|
118
|
+
* @category Extending
|
|
119
|
+
*/
|
|
120
|
+
export interface DateSink {
|
|
121
|
+
note(axis: DateAxis): void;
|
|
122
|
+
/** The zone `axis` names, if any, else `"UTC"`. */
|
|
123
|
+
timeZone(axis: DateAxis): TimeZone;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Provided by `chart` (and redirected by `secondaryX`/`secondaryY`); outside
|
|
127
|
+
* one (3D charts, transforms) it is null. Marks read it with
|
|
128
|
+
* `ctx.context(dateSinkContext)` and pass it to {@link resolveChannel}.
|
|
129
|
+
*
|
|
130
|
+
* @category Extending
|
|
131
|
+
*/
|
|
132
|
+
export declare const dateSinkContext: ContextKey<DateSink | null>;
|
|
133
|
+
/**
|
|
134
|
+
* A {@link Quantity} as a function: a constant ignores the datum. An omitted
|
|
135
|
+
* quantity resolves to `fallback`, or `undefined`.
|
|
136
|
+
*
|
|
137
|
+
* @category Channels
|
|
138
|
+
*/
|
|
139
|
+
export declare function resolveQuantity<T>(quantity: Quantity<T>): ChannelFn<T, number>;
|
|
140
|
+
export declare function resolveQuantity<T>(quantity: Quantity<T> | undefined, fallback: ChannelFn<T, number>): ChannelFn<T, number>;
|
|
141
|
+
export declare function resolveQuantity<T>(quantity: Quantity<T> | undefined): ChannelFn<T, number> | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* Reads a channel across `data`.
|
|
144
|
+
*
|
|
145
|
+
* @param name - Prop name for the error message.
|
|
146
|
+
* @returns One value per datum, in order (dates as epoch milliseconds).
|
|
147
|
+
* @category Channels
|
|
148
|
+
*/
|
|
149
|
+
export declare function channelValues<T, V>(data: readonly T[], channel: Channel<T, V> | undefined, fallback?: ChannelFn<T, V>, name?: string, sink?: DateSink | null): (ChannelRead<V> | undefined)[];
|
|
150
|
+
/**
|
|
151
|
+
* {@link channelValues} for a numeric channel: non-numbers become `NaN`
|
|
152
|
+
* (which charts skip), dates epoch milliseconds.
|
|
153
|
+
*
|
|
154
|
+
* @category Channels
|
|
155
|
+
*/
|
|
156
|
+
export declare function numberValues<T, V extends PositionValue = PositionValue>(data: readonly T[], channel: Channel<T, V> | undefined, fallback?: ChannelFn<T, NoInfer<V>>, name?: string, sink?: DateSink | null): number[];
|
|
157
|
+
/**
|
|
158
|
+
* A {@link ColorChannel} as a function, or `undefined` when omitted.
|
|
159
|
+
*
|
|
160
|
+
* @category Channels
|
|
161
|
+
*/
|
|
162
|
+
export declare function resolveColor<T>(color: ColorChannel<T> | undefined): ChannelFn<T, string> | undefined;
|
|
163
|
+
/**
|
|
164
|
+
* Colour of datum `i`: the per-datum `color` if given, else the `colors`
|
|
165
|
+
* palette cycled by index, else `fallback`.
|
|
166
|
+
*
|
|
167
|
+
* @param fallback - Used when the palette is empty.
|
|
168
|
+
* @category Channels
|
|
169
|
+
*/
|
|
170
|
+
export declare function colorResolver<T>(color: ColorChannel<T> | undefined, palette: readonly ColorInput[], fallback: ColorInput): ChannelFn<T, string>;
|
|
171
|
+
//# sourceMappingURL=channels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/data/channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a keyed mark draws each end of its transition when a fitted axis
|
|
3
|
+
* changes kind between them (band ↔ continuous). Internal.
|
|
4
|
+
*/
|
|
5
|
+
import type { CoordinateSystem } from "@sophistry/core";
|
|
6
|
+
import type { BandScale, Point } from "@sophistry/core/geometry";
|
|
7
|
+
import type { ChartEnds, ChartFrame } from "./frame/types";
|
|
8
|
+
import type { JoinEnd, JoinFrame } from "./join";
|
|
9
|
+
import type { AreaPoint } from "./math/morph";
|
|
10
|
+
/**
|
|
11
|
+
* What a mark's geometry maps through: a plot's `coordsToPoint`, {@link SCENE_UNITS},
|
|
12
|
+
* or mid-swap one of {@link EndSpace.morph}'s mixed-unit mappings.
|
|
13
|
+
*/
|
|
14
|
+
export interface Mapper extends Pick<CoordinateSystem, "coordsToPoint"> {
|
|
15
|
+
/** Which coordinates `coordsToPoint` takes already in scene units (the swapping axes, mid-swap); the rest it maps from data units. */
|
|
16
|
+
scene?: {
|
|
17
|
+
x: boolean;
|
|
18
|
+
y: boolean;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** A mapping for geometry already in scene units: `coordsToPoint` returns its point as given. */
|
|
22
|
+
export declare const SCENE_UNITS: Mapper;
|
|
23
|
+
/** Area runs through `coords`, for a mid-swap area morph; runs reversed by the mapping are turned around so the morph still blends per x. */
|
|
24
|
+
export declare function sceneAreaRuns(runs: readonly (readonly AreaPoint[])[], coords: Mapper): AreaPoint[][];
|
|
25
|
+
/** Where a mark draws each end of its keyed transition: see {@link endSpace}. */
|
|
26
|
+
export interface EndSpace {
|
|
27
|
+
/** The plot at each end while a fitted axis changes kind (see {@link ChartEnds}); undefined otherwise. */
|
|
28
|
+
ends: ChartEnds | undefined;
|
|
29
|
+
/** The coordinates a datum of `end` maps through: that end's plot mid-swap, else the mark's own. */
|
|
30
|
+
coords(end: JoinEnd): CoordinateSystem;
|
|
31
|
+
/** A band axis's scale at `end`: that end's mid-swap, else the chart's now. */
|
|
32
|
+
band(end: JoinEnd, axis: "x" | "y"): BandScale | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* A key in both ends, in scene units at update progress `u`, from `a` (its
|
|
35
|
+
* `data` datum) to `b` (its `to` datum). Mid-swap, the swapping axis blends
|
|
36
|
+
* in scene units between the two ends' plots. Exact at `u` 0 and 1.
|
|
37
|
+
*/
|
|
38
|
+
point(a: Point, b: Point, u: number): Point;
|
|
39
|
+
/** Whether a kind swap runs; marks building their own geometry then build each end through its own `coords` and blend in scene units. */
|
|
40
|
+
swapping: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* A per-datum mark's anchor on one key's frame, in scene units. `anchor`
|
|
43
|
+
* reads one end's state as a data-unit point. Mid-swap, a key in both ends
|
|
44
|
+
* blends between its two ends' anchors; any other maps through its own end.
|
|
45
|
+
*/
|
|
46
|
+
place<S>(frame: JoinFrame<S>, anchor: (state: S, end: JoinEnd) => Point): Point;
|
|
47
|
+
/**
|
|
48
|
+
* A per-datum mark's own geometry on one key's frame: `build` maps one
|
|
49
|
+
* end's state through given coordinates. Mid-swap, a key in both ends
|
|
50
|
+
* builds each end through its own plot and `blend`s them in scene units.
|
|
51
|
+
*/
|
|
52
|
+
shape<S, G>(frame: JoinFrame<S>, build: (state: S, end: JoinEnd, coords: CoordinateSystem) => G | null, blend: (a: G, b: G, u: number) => G): G | null;
|
|
53
|
+
/**
|
|
54
|
+
* A grouped mark's shape for a group in both ends at update progress `u`.
|
|
55
|
+
* Without a swap, `morph` blends in data units and `build` maps through the
|
|
56
|
+
* mark's coordinates. Mid-swap, only the swapping axis blends in scene
|
|
57
|
+
* units (via `scene`), so an axis that keeps its kind (log, sqrt) morphs
|
|
58
|
+
* exactly as without a swap. Exact at `u` 0 and 1.
|
|
59
|
+
*/
|
|
60
|
+
morph<S, G>(a: S, b: S, u: number, spec: {
|
|
61
|
+
scene: (state: S, coords: Mapper, end: JoinEnd) => S;
|
|
62
|
+
morph: (a: S, b: S, u: number) => S;
|
|
63
|
+
build: (state: S, coords: Mapper, end: JoinEnd) => G;
|
|
64
|
+
}): G;
|
|
65
|
+
/** Where the axes are drawn at `end`, in data units: that end's own mid-swap, else the chart's; outside a chart, the crossing. */
|
|
66
|
+
axesAt(end: JoinEnd): {
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Plumbing for a keyed mark in a {@link Chart} whose fitted axis changes
|
|
73
|
+
* kind between the ends (a bar chart's categories becoming a number line).
|
|
74
|
+
* Keys in both ends move from where end A draws them to where end B does,
|
|
75
|
+
* leaving keys draw through end A, entering keys through end B, so nothing
|
|
76
|
+
* jumps when the plot switches axes. Without a swap every method is the
|
|
77
|
+
* plain path. Call in each `update` with the frame and coordinates it read.
|
|
78
|
+
*
|
|
79
|
+
* @param coords - The coordinates the mark otherwise draws through.
|
|
80
|
+
*/
|
|
81
|
+
export declare function endSpace(frame: ChartFrame | null, coords: CoordinateSystem): EndSpace;
|
|
82
|
+
//# sourceMappingURL=end-space.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"end-space.d.ts","sourceRoot":"","sources":["../src/end-space.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@sophistry/charts/definitions`: every definition the package's main
|
|
3
|
+
* entry exports, keyed by export name. What `@sophistry/codegen` reads
|
|
4
|
+
* to generate the framework bindings' chart components (`export const
|
|
5
|
+
* Scatter = wrap(scatter);`).
|
|
6
|
+
*
|
|
7
|
+
* Collected from the main entry's exports, so a definition is picked up as
|
|
8
|
+
* soon as it is exported from `@sophistry/charts`. Kept off the main
|
|
9
|
+
* entry: reading the whole module namespace would defeat tree shaking.
|
|
10
|
+
*
|
|
11
|
+
* @module @sophistry/charts/definitions
|
|
12
|
+
*/
|
|
13
|
+
import * as entry from "../index";
|
|
14
|
+
/**
|
|
15
|
+
* Every definition `@sophistry/charts` exports, by export name
|
|
16
|
+
* (`{ chart, scatter, ... }`).
|
|
17
|
+
*
|
|
18
|
+
* @category Charts
|
|
19
|
+
*/
|
|
20
|
+
export declare const definitions: import("@sophistry/core/definitions").DefinitionExports<typeof entry>;
|
|
21
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/entries/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,uEAA4B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A chart's categorical axis: the line the bands stand on, and a name under
|
|
3
|
+
* (or beside) each band. Internal to the frame (and a group's guides); not
|
|
4
|
+
* exported from the package entry.
|
|
5
|
+
*/
|
|
6
|
+
import type { AxisOptions, CoordinateSystem } from "@sophistry/core";
|
|
7
|
+
import type { BandKey, BandScale } from "@sophistry/core/geometry";
|
|
8
|
+
import type { MergedAxisOptions } from "./fit";
|
|
9
|
+
/**
|
|
10
|
+
* Props for {@link bandAxis}.
|
|
11
|
+
*
|
|
12
|
+
* @category Extending
|
|
13
|
+
*/
|
|
14
|
+
export interface BandAxisProps {
|
|
15
|
+
band: BandScale;
|
|
16
|
+
/** A category name's opacity, 0..1 (a keyed transition fading it in or out). @default 1 */
|
|
17
|
+
weight?: (key: BandKey) => number;
|
|
18
|
+
options: MergedAxisOptions;
|
|
19
|
+
/** An outline around each name; see `LabelProps.halo`. */
|
|
20
|
+
halo?: AxisOptions["numberHalo"];
|
|
21
|
+
coords: CoordinateSystem;
|
|
22
|
+
along: "x" | "y";
|
|
23
|
+
/** The other axis's value the line sits at, in data units. */
|
|
24
|
+
at: number;
|
|
25
|
+
/** Where the line sits across the plot in scene units, in place of `at` (mid-swap). */
|
|
26
|
+
across?: number;
|
|
27
|
+
/** On the top or right edge: names face outward (up, right). */
|
|
28
|
+
far?: boolean;
|
|
29
|
+
/** The whole axis's opacity, 0..1 (a kind swap's cross-fade). @default 1 */
|
|
30
|
+
opacity?: number;
|
|
31
|
+
progress: number;
|
|
32
|
+
zIndex?: number;
|
|
33
|
+
visible?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A categorical axis: the line the bands stand on, and a name under (or
|
|
37
|
+
* beside) each band, faded by `weight` and by where the band sits in a
|
|
38
|
+
* zoomed window.
|
|
39
|
+
*
|
|
40
|
+
* @category Extending
|
|
41
|
+
*/
|
|
42
|
+
export declare const bandAxis: import("@sophistry/core").Definition<BandAxisProps, import("@sophistry/core/internal").CompositeNode<BandAxisProps>, keyof BandAxisProps>;
|
|
43
|
+
//# sourceMappingURL=band-axis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"band-axis.d.ts","sourceRoot":"","sources":["../../src/frame/band-axis.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,WAAW,EAEX,gBAAgB,EAEhB,MAAM,iBAAiB,CAAC;AAazB,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAS,MAAM,0BAA0B,CAAC;AAM1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM/C;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IAClC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AA2ID;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,2IAmBnB,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `chart`'s coordinate systems: the plot through its primary and
|
|
3
|
+
* secondary axes, the ghost and end mappings of an axis changing kind, and
|
|
4
|
+
* where the axes stand.
|
|
5
|
+
*
|
|
6
|
+
* {@link createChartCoords} is made once per chart; its function runs on
|
|
7
|
+
* every update and returns the same coordinate system objects while their
|
|
8
|
+
* mapping is unchanged (they are immutable, so a new one means the mapping
|
|
9
|
+
* moved).
|
|
10
|
+
*/
|
|
11
|
+
import type { CoordinateSystem, XAxisPosition, YAxisPosition } from "@sophistry/core";
|
|
12
|
+
import type { Bounds, Point, Range } from "@sophistry/core/geometry";
|
|
13
|
+
import type { JoinStages, StageWindow } from "../math/join";
|
|
14
|
+
import type { AxisEnds, MergedAxisOptions, ResolvedAxis } from "./fit";
|
|
15
|
+
import type { SecondaryFlags } from "./secondary";
|
|
16
|
+
import type { ChartEnd, ChartEnds } from "./types";
|
|
17
|
+
/** A kind's crossing on an axis: a band axis's first slot, a continuous one's zero (or nearest end). */
|
|
18
|
+
export declare const crossingOf: (axis: ResolvedAxis) => number;
|
|
19
|
+
/** What one update of the chart's coordinates reads. */
|
|
20
|
+
export interface ChartCoordsInput {
|
|
21
|
+
xOptions: MergedAxisOptions;
|
|
22
|
+
yOptions: MergedAxisOptions;
|
|
23
|
+
x: {
|
|
24
|
+
axis: ResolvedAxis;
|
|
25
|
+
range: Range;
|
|
26
|
+
};
|
|
27
|
+
y: {
|
|
28
|
+
axis: ResolvedAxis;
|
|
29
|
+
range: Range;
|
|
30
|
+
};
|
|
31
|
+
x2: {
|
|
32
|
+
axis: ResolvedAxis;
|
|
33
|
+
range: Range;
|
|
34
|
+
options: MergedAxisOptions;
|
|
35
|
+
};
|
|
36
|
+
y2: {
|
|
37
|
+
axis: ResolvedAxis;
|
|
38
|
+
range: Range;
|
|
39
|
+
options: MergedAxisOptions;
|
|
40
|
+
};
|
|
41
|
+
/** The primary axes' fitted ends (steady while the blend moves). */
|
|
42
|
+
xEnds: AxisEnds | undefined;
|
|
43
|
+
yEnds: AxisEnds | undefined;
|
|
44
|
+
/** The other end of an axis changing kind mid-swap. */
|
|
45
|
+
xGhost: ResolvedAxis | undefined;
|
|
46
|
+
yGhost: ResolvedAxis | undefined;
|
|
47
|
+
axisBands: {
|
|
48
|
+
x: boolean;
|
|
49
|
+
y: boolean;
|
|
50
|
+
};
|
|
51
|
+
xPosition: XAxisPosition;
|
|
52
|
+
yPosition: YAxisPosition;
|
|
53
|
+
plotWidth: number;
|
|
54
|
+
plotHeight: number;
|
|
55
|
+
center: Point;
|
|
56
|
+
stage(pick: (stages: JoinStages) => StageWindow): number;
|
|
57
|
+
}
|
|
58
|
+
/** A chart's coordinate systems on one update. */
|
|
59
|
+
export interface ChartCoords {
|
|
60
|
+
/** The plot through the primary axes. */
|
|
61
|
+
coords: CoordinateSystem;
|
|
62
|
+
/** y through `y2`. */
|
|
63
|
+
coords2: CoordinateSystem;
|
|
64
|
+
/** x through `x2`. */
|
|
65
|
+
coords3: CoordinateSystem;
|
|
66
|
+
/** Both secondary axes. */
|
|
67
|
+
coords4: CoordinateSystem;
|
|
68
|
+
/** The plot through a kind-swapping x axis's ghost. */
|
|
69
|
+
ghostX: CoordinateSystem;
|
|
70
|
+
/** The plot through a kind-swapping y axis's ghost. */
|
|
71
|
+
ghostY: CoordinateSystem;
|
|
72
|
+
/** Where a kind-swapping axis's ghost stands across the other axis, in data units. */
|
|
73
|
+
ghostAt(axis: "x" | "y", ghost: ResolvedAxis): number;
|
|
74
|
+
/** Which fitted axes change kind across the keyed transition, if any. */
|
|
75
|
+
kindSwap: {
|
|
76
|
+
x: boolean;
|
|
77
|
+
y: boolean;
|
|
78
|
+
} | undefined;
|
|
79
|
+
/** The ends a context's layers see (see {@link ChartEnds}). */
|
|
80
|
+
endsThrough(flags: SecondaryFlags): ChartEnds | undefined;
|
|
81
|
+
/** The primary context's ends, with their mappings even when no axis swaps. */
|
|
82
|
+
primaryEnds: {
|
|
83
|
+
ends: ChartEnds | undefined;
|
|
84
|
+
from: ChartEnd;
|
|
85
|
+
to: ChartEnd;
|
|
86
|
+
};
|
|
87
|
+
/** Mid-swap, where the axes stand at each end blended in scene units. */
|
|
88
|
+
swapOrigin: (Point & {
|
|
89
|
+
x2: boolean;
|
|
90
|
+
y2: boolean;
|
|
91
|
+
}) | undefined;
|
|
92
|
+
/** Where each axis is drawn, in data units. */
|
|
93
|
+
axesAt: {
|
|
94
|
+
x: number;
|
|
95
|
+
y: number;
|
|
96
|
+
};
|
|
97
|
+
/** The y value the x axis runs along. */
|
|
98
|
+
xAxisAt: number;
|
|
99
|
+
/** The x value the y axis stands at. */
|
|
100
|
+
yAxisAt: number;
|
|
101
|
+
/** Where the axes are drawn, in scene units. */
|
|
102
|
+
origin: Point;
|
|
103
|
+
/** Where the axes' titles hang from. */
|
|
104
|
+
titlesAt: Point;
|
|
105
|
+
area: Bounds;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The chart's coordinate systems and where its axes stand. Make one per
|
|
109
|
+
* chart in `setup`; call the result in every update.
|
|
110
|
+
*/
|
|
111
|
+
export declare function createChartCoords(): (input: ChartCoordsInput) => ChartCoords;
|
|
112
|
+
//# sourceMappingURL=coords.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coords.d.ts","sourceRoot":"","sources":["../../src/frame/coords.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fitting one axis of a `chart` to its layers' reports: resolving,
|
|
3
|
+
* comparing, and transitioning axes, and {@link createAxisFit}, made once
|
|
4
|
+
* per axis (`x`, `y`, `x2`, `y2`) in the chart's `setup`.
|
|
5
|
+
*
|
|
6
|
+
* Each step is a function of the chart's current inputs with a last-value
|
|
7
|
+
* cache, so a step whose inputs
|
|
8
|
+
* kept their identity returns its last result (and a result equal by value
|
|
9
|
+
* to the last keeps the last one's identity, so the coordinate systems and
|
|
10
|
+
* guides downstream see nothing new).
|
|
11
|
+
*/
|
|
12
|
+
import type { BandKey, BandScale, Range, RangeTransition, ScaleSpec, TimeZone } from "@sophistry/core/geometry";
|
|
13
|
+
import type { JoinStages, StageWindow } from "../math/join";
|
|
14
|
+
import type { AxisExtent, ChartLayerExtent, ChartXAxisOptions, ChartYAxisOptions, LayerTransition } from "./types";
|
|
15
|
+
/** One axis's options once `axis` and `xAxis`/`yAxis` are merged. */
|
|
16
|
+
export type MergedAxisOptions = ChartXAxisOptions | ChartYAxisOptions;
|
|
17
|
+
/** A range as given: fixed, or a transition between two. */
|
|
18
|
+
export type GivenRange = Range | RangeTransition | undefined;
|
|
19
|
+
/** How far a stage of the frame's keyed transition has got (0 without one). */
|
|
20
|
+
export type StageAt = (pick: (stages: JoinStages) => StageWindow) => number;
|
|
21
|
+
/** An axis as the plot maps through it: a band scale, or a continuous scale's range. */
|
|
22
|
+
export type ResolvedAxis = {
|
|
23
|
+
kind: "band";
|
|
24
|
+
band: BandScale;
|
|
25
|
+
range: Range;
|
|
26
|
+
} | {
|
|
27
|
+
kind: "continuous";
|
|
28
|
+
scale: ScaleSpec;
|
|
29
|
+
range: Range;
|
|
30
|
+
base?: number;
|
|
31
|
+
timeZone?: TimeZone;
|
|
32
|
+
};
|
|
33
|
+
/** Whether an axis's scale is plain linear (the default). */
|
|
34
|
+
export declare function linearScale(scale: ScaleSpec | "band" | undefined): boolean;
|
|
35
|
+
export declare function resolveAxis(options: MergedAxisOptions, fixed: Range | undefined, reports: readonly AxisExtent[], vertical: boolean): ResolvedAxis;
|
|
36
|
+
/** A secondary axis when no layer maps through it (and the stand-in for a band one). */
|
|
37
|
+
export declare const NO_SECONDARY_AXIS: ResolvedAxis;
|
|
38
|
+
/** Both ends of an axis fitted for a keyed transition. */
|
|
39
|
+
export interface AxisEnds {
|
|
40
|
+
from: ResolvedAxis;
|
|
41
|
+
to: ResolvedAxis;
|
|
42
|
+
}
|
|
43
|
+
/** How an axis changes over a keyed transition (see `rescaleKind`). */
|
|
44
|
+
export type RescaleChange = "none" | "expand" | "contract" | "shift";
|
|
45
|
+
/** A fitted axis's own transition while a keyed one runs. */
|
|
46
|
+
export type FittedTransition = {
|
|
47
|
+
kind: "continuous";
|
|
48
|
+
range: RangeTransition;
|
|
49
|
+
} | {
|
|
50
|
+
kind: "band";
|
|
51
|
+
band: BandScale;
|
|
52
|
+
from: BandScale;
|
|
53
|
+
to: BandScale;
|
|
54
|
+
} | AxisSwap;
|
|
55
|
+
/**
|
|
56
|
+
* A fitted axis that changes kind over a keyed transition (band ↔
|
|
57
|
+
* continuous): the two axes cross-fade over the update stage, the plot
|
|
58
|
+
* mapping through the near end's axis until its midpoint.
|
|
59
|
+
*/
|
|
60
|
+
export interface AxisSwap {
|
|
61
|
+
kind: "swap";
|
|
62
|
+
from: ResolvedAxis;
|
|
63
|
+
to: ResolvedAxis;
|
|
64
|
+
u: number;
|
|
65
|
+
}
|
|
66
|
+
export declare function sameAxis(a: ResolvedAxis, b: ResolvedAxis): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* How long an axis's range is in its own units: bands on a band axis, the
|
|
69
|
+
* logarithm's span on a log axis, the plain difference otherwise.
|
|
70
|
+
*/
|
|
71
|
+
export declare function axisSpan(axis: ResolvedAxis): number;
|
|
72
|
+
/** {@link sameAxis}, and for a band axis every category in the same place (a blended or slotted band moves them). */
|
|
73
|
+
export declare function samePlacement(a: ResolvedAxis, b: ResolvedAxis): boolean;
|
|
74
|
+
/** Two optional axes placing everything alike. */
|
|
75
|
+
export declare function sameOptionalPlacement(a: ResolvedAxis | undefined, b: ResolvedAxis | undefined): boolean;
|
|
76
|
+
export declare function sameRangeEnds(a: {
|
|
77
|
+
from: Range;
|
|
78
|
+
to: Range;
|
|
79
|
+
} | undefined, b: {
|
|
80
|
+
from: Range;
|
|
81
|
+
to: Range;
|
|
82
|
+
} | undefined): boolean;
|
|
83
|
+
export declare function sameEnds(a: AxisEnds | undefined, b: AxisEnds | undefined): boolean;
|
|
84
|
+
/** How an axis's fitted range (or category count) changes between the ends. */
|
|
85
|
+
export declare function endsKind(ends: AxisEnds | undefined): RescaleChange;
|
|
86
|
+
/** A fixed range as shown now: itself, or a transition's blend. */
|
|
87
|
+
export declare function shownRange(range: GivenRange, options: MergedAxisOptions): Range | undefined;
|
|
88
|
+
/** Both ends of an axis fitted during a keyed transition; undefined when nothing transitions or the range is given. */
|
|
89
|
+
export declare function fittedEnds(transitioning: boolean, options: MergedAxisOptions, given: GivenRange, list: readonly ChartLayerExtent[], pick: (report: ChartLayerExtent) => AxisExtent | undefined, pickTo: (transition: LayerTransition) => AxisExtent | undefined, vertical: boolean): AxisEnds | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* The axis the plot maps through now: mid-swap the near end's, on a fitted
|
|
92
|
+
* transition its blend, else resolved from `extents`. A band axis's `slot`
|
|
93
|
+
* applies last.
|
|
94
|
+
*/
|
|
95
|
+
export declare function axisNow(options: MergedAxisOptions, given: GivenRange, fit: FittedTransition | undefined, extents: readonly AxisExtent[], vertical: boolean, resolve?: typeof resolveAxis): ResolvedAxis;
|
|
96
|
+
/** A category's strength on a band axis mid-transition: leaving ones fade with the exits, new ones with the enters. */
|
|
97
|
+
export declare function bandWeight(fit: FittedTransition | undefined, stage: StageAt): ((key: BandKey) => number) | undefined;
|
|
98
|
+
/** An axis changing kind through a keyed transition, as its guides draw it. */
|
|
99
|
+
export interface AxisSwapView {
|
|
100
|
+
/** The opacity of the axis mapped through now. */
|
|
101
|
+
fade: number;
|
|
102
|
+
/** The other end, drawn at the rest; undefined outside the update stage. */
|
|
103
|
+
ghost: ResolvedAxis | undefined;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* An axis changing kind through a keyed transition: `fade` is the opacity of
|
|
107
|
+
* the axis mapped through now, `ghost` the other end drawn at the rest. Make
|
|
108
|
+
* one per axis; the ghost keeps its identity while it places alike.
|
|
109
|
+
*/
|
|
110
|
+
export declare function createAxisSwap(): (fit: FittedTransition | undefined) => AxisSwapView;
|
|
111
|
+
/** A secondary axis's range aligned with its primary's ticks, or fitted on its own when no alignment fits. */
|
|
112
|
+
export declare function alignedToPrimary(range: Range, list: readonly AxisExtent[], mine: MergedAxisOptions, primary: MergedAxisOptions): Range;
|
|
113
|
+
/** What one update of an axis's fit reads. Every field keeps its identity while unchanged. */
|
|
114
|
+
export interface AxisFitInput {
|
|
115
|
+
options: MergedAxisOptions;
|
|
116
|
+
/** The range given for the axis, if any. */
|
|
117
|
+
given: GivenRange;
|
|
118
|
+
/** The reports the axis is fitted to (blends held out). */
|
|
119
|
+
reports: readonly ChartLayerExtent[];
|
|
120
|
+
/** Whether a keyed transition runs (steady while its blend moves). */
|
|
121
|
+
transitioning: boolean;
|
|
122
|
+
/** A secondary axis's state (see `secondaryFit`). */
|
|
123
|
+
secondary?: {
|
|
124
|
+
has: boolean;
|
|
125
|
+
aligns: boolean;
|
|
126
|
+
alignedEnds: {
|
|
127
|
+
from: Range;
|
|
128
|
+
to: Range;
|
|
129
|
+
} | undefined;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/** One axis as drawn on one update. */
|
|
133
|
+
export interface PlacedAxis {
|
|
134
|
+
/** The fitted axis's own transition while a keyed one runs. */
|
|
135
|
+
fitted: FittedTransition | undefined;
|
|
136
|
+
/** The range as given, or the fitted transition while one runs: what the number line is given. */
|
|
137
|
+
given: GivenRange;
|
|
138
|
+
/** The axis the plot maps through now (identity kept while it places alike). */
|
|
139
|
+
axis: ResolvedAxis;
|
|
140
|
+
/** Its range (identity kept while equal). */
|
|
141
|
+
range: Range;
|
|
142
|
+
}
|
|
143
|
+
/** What {@link createAxisFit} fits an axis from. */
|
|
144
|
+
export interface AxisFitDeps {
|
|
145
|
+
/** A report's extent on this axis. */
|
|
146
|
+
pick(report: ChartLayerExtent): AxisExtent | undefined;
|
|
147
|
+
/** A transitioning report's far end's extent on this axis. */
|
|
148
|
+
pickTo(transition: LayerTransition): AxisExtent | undefined;
|
|
149
|
+
/** The extents the axis is fitted to at rest; every report's `pick` by default. */
|
|
150
|
+
extents?: (reports: readonly ChartLayerExtent[]) => AxisExtent[];
|
|
151
|
+
vertical: boolean;
|
|
152
|
+
/** A secondary axis: continuous only, ranged by `alignedEnds` with `alignTicks`. */
|
|
153
|
+
secondary?: boolean;
|
|
154
|
+
}
|
|
155
|
+
/** One axis's fit; see {@link createAxisFit}. */
|
|
156
|
+
export interface AxisFit {
|
|
157
|
+
/** Both ends during a keyed transition (steady while the blend moves); identity kept while equal. */
|
|
158
|
+
ends(input: AxisFitInput): AxisEnds | undefined;
|
|
159
|
+
/** How the axis rescales between the ends. */
|
|
160
|
+
change(input: AxisFitInput): RescaleChange;
|
|
161
|
+
/** The axis as drawn now. `primaryGiven` is the primary's given range, for a secondary axis. */
|
|
162
|
+
place(input: AxisFitInput, stage: StageAt, primaryGiven?: GivenRange): PlacedAxis;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* One axis's fit, in two steps around the frame's transition stages:
|
|
166
|
+
* `ends` and `change` read only steady inputs and feed the stages;
|
|
167
|
+
* `place(stage)` gives the axis as drawn each update, compared by placement
|
|
168
|
+
* so unchanged frames keep every identity. Make one per axis in `setup`.
|
|
169
|
+
*/
|
|
170
|
+
export declare function createAxisFit(deps: AxisFitDeps): AxisFit;
|
|
171
|
+
//# sourceMappingURL=fit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit.d.ts","sourceRoot":"","sources":["../../src/frame/fit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACX,OAAO,EACP,SAAS,EACT,KAAK,EACL,eAAe,EACf,SAAS,EACT,QAAQ,EACR,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK5D,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,MAAM,SAAS,CAAC;AAEjB,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEtE,4DAA4D;AAC5D,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;AAE7D,+EAA+E;AAC/E,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,WAAW,KAAK,MAAM,CAAC;AAE5E,wFAAwF;AACxF,MAAM,MAAM,YAAY,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/C;IACA,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAML,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAE1E;AAED,wBAAgB,WAAW,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,QAAQ,EAAE,OAAO,GACf,YAAY,CA2Dd;AAED,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,EAAE,YAI/B,CAAC;AAEF,0DAA0D;AAC1D,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAErE,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GACjE,QAAQ,CAAC;AAEZ;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACV;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAelE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAOnD;AAED,qHAAqH;AACrH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CASvE;AAED,kDAAkD;AAClD,wBAAgB,qBAAqB,CACpC,CAAC,EAAE,YAAY,GAAG,SAAS,EAC3B,CAAC,EAAE,YAAY,GAAG,SAAS,GACzB,OAAO,CAET;AAED,wBAAgB,aAAa,CAC5B,CAAC,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,GAAG,SAAS,EACzC,CAAC,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,GAAG,SAAS,GACvC,OAAO,CAIT;AAED,wBAAgB,QAAQ,CACvB,CAAC,EAAE,QAAQ,GAAG,SAAS,EACvB,CAAC,EAAE,QAAQ,GAAG,SAAS,GACrB,OAAO,CAIT;AA6BD,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAIlE;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CACzB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iBAAiB,GACxB,KAAK,GAAG,SAAS,CAQnB;AAED,uHAAuH;AACvH,wBAAgB,UAAU,CACzB,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,gBAAgB,EAAE,EACjC,IAAI,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,UAAU,GAAG,SAAS,EAC1D,MAAM,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,UAAU,GAAG,SAAS,EAC/D,QAAQ,EAAE,OAAO,GACf,QAAQ,GAAG,SAAS,CActB;AA2CD;;;;GAIG;AACH,wBAAgB,OAAO,CACtB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,OAAO,WAAyB,GACvC,YAAY,CAkCd;AAED,uHAAuH;AACvH,wBAAgB,UAAU,CACzB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,KAAK,EAAE,OAAO,GACZ,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,GAAG,SAAS,CAOxC;AAED,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC5B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,CACjC,GAAG,EAAE,gBAAgB,GAAG,SAAS,KAC7B,YAAY,CAehB;AAED,8GAA8G;AAC9G,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,SAAS,UAAU,EAAE,EAC3B,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,iBAAiB,GACxB,KAAK,CAmBP;AAED,8FAA8F;AAC9F,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4CAA4C;IAC5C,KAAK,EAAE,UAAU,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,sEAAsE;IACtE,aAAa,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,SAAS,CAAC,EAAE;QACX,GAAG,EAAE,OAAO,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE;YAAE,IAAI,EAAE,KAAK,CAAC;YAAC,EAAE,EAAE,KAAK,CAAA;SAAE,GAAG,SAAS,CAAC;KACpD,CAAC;CACF;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IAC1B,+DAA+D;IAC/D,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,kGAAkG;IAClG,KAAK,EAAE,UAAU,CAAC;IAClB,gFAAgF;IAChF,IAAI,EAAE,YAAY,CAAC;IACnB,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC;CACb;AAED,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC3B,sCAAsC;IACtC,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;IACvD,8DAA8D;IAC9D,MAAM,CAAC,UAAU,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,mFAAmF;IACnF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,KAAK,UAAU,EAAE,CAAC;IACjE,QAAQ,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,OAAO;IACvB,qGAAqG;IACrG,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,8CAA8C;IAC9C,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;IAC3C,gGAAgG;IAChG,KAAK,CACJ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,EACd,YAAY,CAAC,EAAE,UAAU,GACvB,UAAU,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CA0HxD"}
|