@pibbl/core 0.0.3-alpha.85.1 → 0.0.3-alpha.90.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/dist/features/viz/index.d.ts +13 -0
- package/dist/features/viz/index.js +57 -0
- package/dist/features/viz/index.js.map +2 -2
- package/dist/features/viz/lib/graph/bipartite.d.ts +14 -0
- package/dist/features/viz/lib/graph/bipartite.js +250 -0
- package/dist/features/viz/lib/graph/bipartite.js.map +7 -0
- package/dist/features/viz/lib/graph/chord.d.ts +44 -0
- package/dist/features/viz/lib/graph/chord.js +348 -0
- package/dist/features/viz/lib/graph/chord.js.map +7 -0
- package/dist/features/viz/lib/graph/dependency.d.ts +26 -0
- package/dist/features/viz/lib/graph/dependency.js +141 -0
- package/dist/features/viz/lib/graph/dependency.js.map +7 -0
- package/dist/features/viz/lib/graph/force.d.ts +28 -0
- package/dist/features/viz/lib/graph/force.js +580 -0
- package/dist/features/viz/lib/graph/force.js.map +7 -0
- package/dist/features/viz/lib/graph/hierarchy.d.ts +21 -0
- package/dist/features/viz/lib/graph/hierarchy.js +112 -0
- package/dist/features/viz/lib/graph/hierarchy.js.map +7 -0
- package/dist/features/viz/lib/graph/icicle.d.ts +16 -0
- package/dist/features/viz/lib/graph/icicle.js +153 -0
- package/dist/features/viz/lib/graph/icicle.js.map +7 -0
- package/dist/features/viz/lib/graph/matrix.d.ts +30 -0
- package/dist/features/viz/lib/graph/matrix.js +243 -0
- package/dist/features/viz/lib/graph/matrix.js.map +7 -0
- package/dist/features/viz/lib/graph/neighborhood.d.ts +11 -0
- package/dist/features/viz/lib/graph/neighborhood.js +281 -0
- package/dist/features/viz/lib/graph/neighborhood.js.map +7 -0
- package/dist/features/viz/lib/graph/routes.d.ts +35 -0
- package/dist/features/viz/lib/graph/routes.js +102 -0
- package/dist/features/viz/lib/graph/routes.js.map +7 -0
- package/dist/features/viz/lib/graph/sankey.d.ts +44 -0
- package/dist/features/viz/lib/graph/sankey.js +341 -0
- package/dist/features/viz/lib/graph/sankey.js.map +7 -0
- package/dist/features/viz/lib/graph/shared.d.ts +59 -0
- package/dist/features/viz/lib/graph/shared.js +296 -0
- package/dist/features/viz/lib/graph/shared.js.map +7 -0
- package/dist/features/viz/lib/graph/tree.d.ts +11 -0
- package/dist/features/viz/lib/graph/tree.js +232 -0
- package/dist/features/viz/lib/graph/tree.js.map +7 -0
- package/dist/features/viz/lib/graph/treemap.d.ts +20 -0
- package/dist/features/viz/lib/graph/treemap.js +227 -0
- package/dist/features/viz/lib/graph/treemap.js.map +7 -0
- package/dist/features/viz/lib/graph/types.d.ts +1097 -0
- package/dist/filters/backdrop-contrast-gpu.d.ts +5 -0
- package/dist/filters/backdrop-contrast-gpu.js +33 -0
- package/dist/filters/backdrop-contrast-gpu.js.map +7 -0
- package/dist/filters/backdrop-contrast.d.ts +21 -0
- package/dist/filters/backdrop-contrast.js +61 -0
- package/dist/filters/backdrop-contrast.js.map +7 -0
- package/dist/filters/filter-executor.d.ts +11 -4
- package/dist/filters/filter-executor.js +104 -49
- package/dist/filters/filter-executor.js.map +2 -2
- package/dist/filters/render-backdrop-contrast-boundary.d.ts +31 -0
- package/dist/filters/render-backdrop-contrast-boundary.js +116 -0
- package/dist/filters/render-backdrop-contrast-boundary.js.map +7 -0
- package/dist/filters.d.ts +9 -7
- package/dist/filters.js +2 -0
- package/dist/filters.js.map +2 -2
- package/package.json +2 -2
|
@@ -100,3 +100,16 @@ export { TrajectorySeries } from "./lib/trajectory-series.js";
|
|
|
100
100
|
export type { TrajectorySeriesProps, TrajectorySeriesStyle, TrajectoryGroupAccessor, } from "./lib/trajectory-series.js";
|
|
101
101
|
export { PairedSeries } from "./lib/paired-series.js";
|
|
102
102
|
export type { PairedSeriesProps, PairedSeriesStyle, } from "./lib/paired-series.js";
|
|
103
|
+
export type { VizKey, Accessor, Bounds, Point, Style, MarkStyle, NodeStyle, EdgeStyle, LabelStyle, FrameStyle, LabelGeometry, GraphData, GraphAccessors, GraphNodeGeometry, GraphRoute, GraphEdgeGeometry, GraphLayout, GraphPresentation, MarkInteraction, GraphNodeProps, GraphEdgeProps, GraphLabelProps, GraphViewProps, DependencyStyle, DependencyOptions, DependencyGraphProps, ForceSettings, ForceOptions, ForceLayout, ForceNetworkController, ForceStyle, ForceNetworkProps, ForceHookOptions, HierarchyAccessors, TreeEdge, TreeNodeGeometry, TreeLayout, TreeStyle, TreeOptions, TidyTreeProps, MatrixData, MatrixAccessors, MatrixCellGeometry, MatrixLayout, MatrixStyle, MatrixOptions, AdjacencyMatrixProps, MatrixCellProps, SankeyNodeGeometry, SankeyFlowGeometry, SankeyLayout, SankeyAccessors, SankeyStyle, SankeyOptions, SankeyProps, BipartiteData, BipartiteAccessors, BipartiteEdgeGeometry, BipartiteLayout, BipartiteStyle, BipartiteOptions, BipartiteGraphProps, PartitionAccessors, PartitionCellGeometry, PartitionLayout, PartitionPresentation, TreemapStyle, TreemapOptions, TreemapProps, PartitionCellProps, NeighborhoodStyle, NeighborhoodOptions, NeighborhoodNodeGeometry, NeighborhoodLayout, RadialNeighborhoodProps, IcicleStyle, IcicleOptions, IcicleProps, ChordData, ChordAccessors, ChordArc, ChordBandGeometry, ChordRibbonGeometry, ChordLayout, ChordStyle, ChordOptions, ChordDiagramProps, ForceSimulation, ForceSimulationFactory, Size, } from './lib/graph/types.js';
|
|
104
|
+
export { GraphNode, GraphEdge, GraphLabel, GraphView, defaultGraphNodeStyle, defaultGraphEdgeStyle, defaultGraphLabelStyle } from './lib/graph/shared.js';
|
|
105
|
+
export { straightGraphRoute, orthogonalGraphRoute, curvedGraphRoute } from './lib/graph/routes.js';
|
|
106
|
+
export { layoutDependencies, DependencyGraph } from './lib/graph/dependency.js';
|
|
107
|
+
export { layoutMatrix, AdjacencyMatrix, MatrixCell, defaultMatrixCellStyle } from './lib/graph/matrix.js';
|
|
108
|
+
export { layoutSankey, Sankey, SankeyNode, SankeyFlow, defaultSankeyNodeStyle, defaultSankeyFlowStyle } from './lib/graph/sankey.js';
|
|
109
|
+
export { layoutBipartite, BipartiteGraph } from './lib/graph/bipartite.js';
|
|
110
|
+
export { layoutChords, ChordDiagram, ChordBand, ChordRibbon, defaultChordBandStyle, defaultChordRibbonStyle } from './lib/graph/chord.js';
|
|
111
|
+
export { layoutTree, TidyTree } from './lib/graph/tree.js';
|
|
112
|
+
export { layoutTreemap, Treemap, TreemapCell, defaultPartitionCellStyle } from './lib/graph/treemap.js';
|
|
113
|
+
export { layoutIcicle, Icicle, IcicleCell } from './lib/graph/icicle.js';
|
|
114
|
+
export { layoutNeighborhood, RadialNeighborhood } from './lib/graph/neighborhood.js';
|
|
115
|
+
export { createForceSimulation, layoutForceNetwork, useForceNetwork, ForceNetwork } from './lib/graph/force.js';
|
|
@@ -95,7 +95,20 @@ import { CensoredPointSeries } from "./lib/censored-point-series.js";
|
|
|
95
95
|
import { WeightedPointSeries } from "./lib/weighted-point-series.js";
|
|
96
96
|
import { TrajectorySeries } from "./lib/trajectory-series.js";
|
|
97
97
|
import { PairedSeries } from "./lib/paired-series.js";
|
|
98
|
+
import { GraphNode, GraphEdge, GraphLabel, GraphView, defaultGraphNodeStyle, defaultGraphEdgeStyle, defaultGraphLabelStyle } from "./lib/graph/shared.js";
|
|
99
|
+
import { straightGraphRoute, orthogonalGraphRoute, curvedGraphRoute } from "./lib/graph/routes.js";
|
|
100
|
+
import { layoutDependencies, DependencyGraph } from "./lib/graph/dependency.js";
|
|
101
|
+
import { layoutMatrix, AdjacencyMatrix, MatrixCell, defaultMatrixCellStyle } from "./lib/graph/matrix.js";
|
|
102
|
+
import { layoutSankey, Sankey, SankeyNode, SankeyFlow, defaultSankeyNodeStyle, defaultSankeyFlowStyle } from "./lib/graph/sankey.js";
|
|
103
|
+
import { layoutBipartite, BipartiteGraph } from "./lib/graph/bipartite.js";
|
|
104
|
+
import { layoutChords, ChordDiagram, ChordBand, ChordRibbon, defaultChordBandStyle, defaultChordRibbonStyle } from "./lib/graph/chord.js";
|
|
105
|
+
import { layoutTree, TidyTree } from "./lib/graph/tree.js";
|
|
106
|
+
import { layoutTreemap, Treemap, TreemapCell, defaultPartitionCellStyle } from "./lib/graph/treemap.js";
|
|
107
|
+
import { layoutIcicle, Icicle, IcicleCell } from "./lib/graph/icicle.js";
|
|
108
|
+
import { layoutNeighborhood, RadialNeighborhood } from "./lib/graph/neighborhood.js";
|
|
109
|
+
import { createForceSimulation, layoutForceNetwork, useForceNetwork, ForceNetwork } from "./lib/graph/force.js";
|
|
98
110
|
export {
|
|
111
|
+
AdjacencyMatrix,
|
|
99
112
|
AnchoredLayout,
|
|
100
113
|
AreaSeries,
|
|
101
114
|
Axis,
|
|
@@ -103,21 +116,34 @@ export {
|
|
|
103
116
|
BarScale,
|
|
104
117
|
BarSeries,
|
|
105
118
|
BaselineSeries,
|
|
119
|
+
BipartiteGraph,
|
|
106
120
|
CandlestickSeries,
|
|
107
121
|
CensoredPointSeries,
|
|
122
|
+
ChordBand,
|
|
123
|
+
ChordDiagram,
|
|
124
|
+
ChordRibbon,
|
|
125
|
+
DependencyGraph,
|
|
108
126
|
DivergingColorScale,
|
|
109
127
|
EditableReferenceBand,
|
|
110
128
|
EditableReferenceLine,
|
|
111
129
|
EditableTrendLine,
|
|
130
|
+
ForceNetwork,
|
|
131
|
+
GraphEdge,
|
|
132
|
+
GraphLabel,
|
|
133
|
+
GraphNode,
|
|
134
|
+
GraphView,
|
|
112
135
|
GridLines,
|
|
113
136
|
HorizontalIntervalSeries,
|
|
114
137
|
HoverCard,
|
|
115
138
|
HoverData,
|
|
139
|
+
Icicle,
|
|
140
|
+
IcicleCell,
|
|
116
141
|
IntervalBandSeries,
|
|
117
142
|
IntervalDiamondSeries,
|
|
118
143
|
LineSeries,
|
|
119
144
|
LinearScale,
|
|
120
145
|
LogScale,
|
|
146
|
+
MatrixCell,
|
|
121
147
|
OhlcBarSeries,
|
|
122
148
|
PairedSeries,
|
|
123
149
|
PieLabel,
|
|
@@ -126,15 +152,22 @@ export {
|
|
|
126
152
|
PlotSeries,
|
|
127
153
|
PointScale,
|
|
128
154
|
PointSeries,
|
|
155
|
+
RadialNeighborhood,
|
|
129
156
|
RangeNavigator,
|
|
130
157
|
ReferenceBand,
|
|
131
158
|
ReferenceLine,
|
|
159
|
+
Sankey,
|
|
160
|
+
SankeyFlow,
|
|
161
|
+
SankeyNode,
|
|
132
162
|
ScaleAdjust,
|
|
133
163
|
SequentialColorScale,
|
|
134
164
|
SymlogScale,
|
|
135
165
|
ThresholdColorScale,
|
|
166
|
+
TidyTree,
|
|
136
167
|
TradingTimeScale,
|
|
137
168
|
TrajectorySeries,
|
|
169
|
+
Treemap,
|
|
170
|
+
TreemapCell,
|
|
138
171
|
UTCScale,
|
|
139
172
|
VerticalIntervalSeries,
|
|
140
173
|
VolumeSeries,
|
|
@@ -143,6 +176,17 @@ export {
|
|
|
143
176
|
bollingerBands,
|
|
144
177
|
closestPoint,
|
|
145
178
|
closestX,
|
|
179
|
+
createForceSimulation,
|
|
180
|
+
curvedGraphRoute,
|
|
181
|
+
defaultChordBandStyle,
|
|
182
|
+
defaultChordRibbonStyle,
|
|
183
|
+
defaultGraphEdgeStyle,
|
|
184
|
+
defaultGraphLabelStyle,
|
|
185
|
+
defaultGraphNodeStyle,
|
|
186
|
+
defaultMatrixCellStyle,
|
|
187
|
+
defaultPartitionCellStyle,
|
|
188
|
+
defaultSankeyFlowStyle,
|
|
189
|
+
defaultSankeyNodeStyle,
|
|
146
190
|
defineSeries,
|
|
147
191
|
exponentialMovingAverage,
|
|
148
192
|
extent,
|
|
@@ -150,6 +194,16 @@ export {
|
|
|
150
194
|
indexTo100,
|
|
151
195
|
interpolateNumericRange,
|
|
152
196
|
interpolateX,
|
|
197
|
+
layoutBipartite,
|
|
198
|
+
layoutChords,
|
|
199
|
+
layoutDependencies,
|
|
200
|
+
layoutForceNetwork,
|
|
201
|
+
layoutIcicle,
|
|
202
|
+
layoutMatrix,
|
|
203
|
+
layoutNeighborhood,
|
|
204
|
+
layoutSankey,
|
|
205
|
+
layoutTree,
|
|
206
|
+
layoutTreemap,
|
|
153
207
|
linearInterpolation,
|
|
154
208
|
linearTicks,
|
|
155
209
|
monotoneX,
|
|
@@ -158,6 +212,7 @@ export {
|
|
|
158
212
|
nearestPoint,
|
|
159
213
|
niceLinearDomain,
|
|
160
214
|
niceUTCDomain,
|
|
215
|
+
orthogonalGraphRoute,
|
|
161
216
|
padLinearDomain,
|
|
162
217
|
panDomain,
|
|
163
218
|
percentageReturns,
|
|
@@ -169,8 +224,10 @@ export {
|
|
|
169
224
|
stepBefore,
|
|
170
225
|
stepMidpoint,
|
|
171
226
|
stochasticOscillator,
|
|
227
|
+
straightGraphRoute,
|
|
172
228
|
useBarScale,
|
|
173
229
|
useDivergingColorScale,
|
|
230
|
+
useForceNetwork,
|
|
174
231
|
useLinearScale,
|
|
175
232
|
useLogScale,
|
|
176
233
|
usePointScale,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/features/viz/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { LinearScale } from \"./lib/linear-scale-component.js\";\nexport { BarScale } from \"./lib/bar-scale.js\";\nexport { UTCScale } from \"./lib/utc-scale-component.js\";\nexport { useLinearScale } from \"./lib/use-linear-scale.js\";\nexport { useBarScale } from \"./lib/use-bar-scale.js\";\nexport { useUTCScale } from \"./lib/use-utc-scale.js\";\nexport type {\n ScaleId,\n LinearDomain,\n BandCategory,\n BandDomain,\n BarScaleProps,\n BandScaleRange,\n ResolvedBandScale,\n ScaleRange,\n ScaleLayoutStyle,\n LinearScaleProps,\n ResolvedLinearScale,\n ResolvedScale,\n} from \"./lib/types.js\";\nexport { Axis } from \"./lib/axis.js\";\nexport { LineSeries } from \"./lib/line-series.js\";\nexport { AreaSeries } from \"./lib/area-series.js\";\nexport type { AreaSeriesProps, AreaSeriesStyle } from \"./lib/area-series.js\";\nexport { IntervalBandSeries } from \"./lib/interval-band-series.js\";\nexport type { IntervalBandSeriesProps } from \"./lib/interval-band-series.js\";\nexport {\n HorizontalIntervalSeries,\n VerticalIntervalSeries,\n} from \"./lib/interval-series.js\";\nexport type {\n IntervalSeriesStyle,\n IntervalSeriesProps,\n HorizontalIntervalSeriesProps,\n VerticalIntervalSeriesProps,\n} from \"./lib/interval-series.js\";\nexport type { SeriesCurve } from \"./lib/curve-definition.js\";\nexport { stepBefore, stepAfter, stepMidpoint } from \"./lib/step-curves.js\";\nexport { monotoneX } from \"./lib/monotone-curve.js\";\nexport { ScaleAdjust } from \"./lib/scale-adjust.js\";\nexport type {\n AxisStyle,\n AxisProps,\n LineCoordinate,\n LineAccessor,\n SeriesAccessor,\n SeriesCoordinate,\n LineCurve,\n LineSeriesStyle,\n LineSeriesProps,\n ScaleAdjustProps,\n} from \"./lib/types.js\";\nexport { PointSeries } from \"./lib/point-series.js\";\nexport type {\n PointAccessor,\n PointMarkStyle,\n PointSeriesStyle,\n PointStyleResolver,\n PointSeriesProps,\n} from \"./lib/point-types.js\";\nexport { PlotSeries } from \"./lib/plot-series.js\";\nexport type { PlotSeriesProps, PlotKeyAccessor } from \"./lib/plot-types.js\";\nexport { nearestDomainValue, nearestPoint } from \"./lib/nearest.js\";\nexport type { NearestPointOptions, NearestPoint } from \"./lib/nearest.js\";\n\nexport { HoverData } from \"./lib/hover-data.js\";\nexport { defineSeries, closestPoint } from \"./lib/hover-queries.js\";\nexport type {\n HoverQueryContext,\n HoverQuery,\n HoverDataProps,\n HoverSeries,\n HoverPoint,\n HoverHit,\n HoverSeriesMap,\n ClosestPointHit,\n ClosestPointOptions,\n} from \"./lib/hover-types.js\";\n\nexport { HoverCard } from \"./lib/hover-card.js\";\nexport type {\n HoverCardProps,\n HoverCardStyle,\n HoverBounds,\n HoverPlacement,\n} from \"./lib/hover-card.js\";\n\nexport {\n closestX,\n interpolateX,\n linearInterpolation,\n} from \"./lib/hover-queries.js\";\nexport type {\n ClosestXOptions,\n ClosestXHit,\n HoverInterpolation,\n InterpolateXOptions,\n HoverSample,\n} from \"./lib/hover-types.js\";\n\nexport { AnchoredLayout } from \"./lib/anchored-layout.js\";\nexport type {\n AnchoredItem,\n AnchoredPlacement,\n AnchoredLayoutProps,\n} from \"./lib/anchored-layout.js\";\n\nexport { BarSeries } from \"./lib/bar-series.js\";\nexport type {\n BarThresholdFill,\n BarCategoryAccessor,\n BarSeriesStyle,\n BarStyleResolver,\n BarSeriesProps,\n} from \"./lib/bar-series.js\";\n\nexport { pieSlices } from \"./lib/pie-slices.js\";\nexport type { PieOptions, PieSliceGeometry } from \"./lib/pie-slices.js\";\n\nexport { PieLayout, PieSlice, PieLabel } from \"./lib/pie-layout.js\";\nexport type {\n PieLayoutProps,\n PieLayoutStyle,\n PieLayoutSlice,\n PieLabelPlacement,\n PieLabelLayout,\n PieSliceProps,\n PieSliceStyle,\n PieLabelProps,\n PieLabelStyle,\n} from \"./lib/pie-types.js\";\n\nexport { extent, niceUTCDomain } from \"./lib/utc-scale.js\";\nexport type {\n NumericDomain,\n UtcDomain,\n UTCScaleProps,\n ResolvedUtcScale,\n ResolvedContinuousScale,\n} from \"./lib/types.js\";\n\nexport {\n linearTicks,\n niceLinearDomain,\n formatNumber,\n} from \"./lib/numeric-ticks.js\";\nexport type {\n LinearTickOptions,\n NumberFormatOptions,\n} from \"./lib/numeric-ticks.js\";\nexport { interpolateNumericRange } from \"./lib/numeric-range-interpolation.js\";\nexport {\n visibleOhlcPriceExtent,\n padLinearDomain,\n} from \"./lib/financial-autoscale.js\";\nexport type {\n VisibleOhlcPriceExtentOptions,\n PadLinearDomainOptions,\n} from \"./lib/financial-autoscale.js\";\nexport { percentageReturns, indexTo100 } from \"./lib/financial-comparison.js\";\nexport type {\n ComparisonBaseOptions,\n PercentageReturnPoint,\n IndexedValuePoint,\n} from \"./lib/financial-comparison.js\";\nexport { aggregateOhlcv, sessionVwap } from \"./lib/financial-aggregation.js\";\nexport type {\n OhlcvBucket,\n OhlcvSource,\n AggregatedOhlcvPoint,\n AggregateOhlcvOptions,\n SessionIdentifier,\n SessionAccessor,\n SessionVwapOptions,\n SessionVwapPoint,\n} from \"./lib/financial-aggregation.js\";\nexport {\n RangeNavigator,\n EditableReferenceLine,\n EditableReferenceBand,\n EditableTrendLine,\n} from \"./lib/editable-chart-elements.js\";\nexport type {\n ChartAnchor,\n RangeNavigatorProps,\n RangeNavigatorStyle,\n EditableReferenceLineProps,\n EditableReferenceLineStyle,\n EditableReferenceBandProps,\n EditableReferenceBandStyle,\n EditableTrendLineProps,\n EditableTrendLineStyle,\n} from \"./lib/editable-chart-elements.js\";\nexport {\n simpleMovingAverage,\n exponentialMovingAverage,\n bollingerBands,\n} from \"./lib/financial-indicators.js\";\nexport type {\n MovingAverageOptions,\n BollingerBandsOptions,\n MovingAveragePoint,\n BollingerBandPoint,\n} from \"./lib/financial-indicators.js\";\nexport {\n relativeStrengthIndex,\n movingAverageConvergenceDivergence,\n stochasticOscillator,\n} from \"./lib/financial-oscillators.js\";\nexport type {\n OscillatorOptions,\n RelativeStrengthIndexOptions,\n MovingAverageConvergenceDivergenceOptions,\n StochasticOscillatorOptions,\n RelativeStrengthIndexPoint,\n MovingAverageConvergenceDivergencePoint,\n StochasticOscillatorPoint,\n} from \"./lib/financial-oscillators.js\";\n\nexport { utcTickLabels } from \"./lib/utc-labels.js\";\nexport type { UTCTickLabelOptions } from \"./lib/utc-labels.js\";\n\nexport { LogScale } from \"./lib/log-scale-component.js\";\nexport { useLogScale } from \"./lib/use-log-scale.js\";\nexport type { LogScaleProps, ResolvedLogScale } from \"./lib/types.js\";\n\nexport { SymlogScale } from \"./lib/symlog-scale-component.js\";\nexport { useSymlogScale } from \"./lib/use-symlog-scale.js\";\nexport type { SymlogScaleProps, ResolvedSymlogScale } from \"./lib/types.js\";\n\nexport { PointScale } from \"./lib/point-scale-component.js\";\nexport { usePointScale } from \"./lib/use-point-scale.js\";\nexport type { PointScaleProps, ResolvedPointScale } from \"./lib/types.js\";\nexport { GridLines, ReferenceLine } from \"./lib/chart-lines.js\";\nexport type {\n ChartLineProps,\n GridLinesProps,\n ReferenceLineProps,\n} from \"./lib/chart-lines.js\";\nexport { ReferenceBand } from \"./lib/reference-band.js\";\nexport type { ReferenceBandProps } from \"./lib/reference-band.js\";\nexport { AxisTitle } from \"./lib/axis-title.js\";\nexport type { AxisTitleProps } from \"./lib/axis-title.js\";\n\nexport { panDomain, zoomDomain } from \"./lib/domain-navigation.js\";\nexport type {\n DomainNavigationConstraints,\n PanDomainOptions,\n ZoomDomainOptions,\n} from \"./lib/domain-navigation.js\";\n\nexport {\n SequentialColorScale,\n useSequentialColorScale,\n} from \"./lib/sequential-color-scale.js\";\nexport {\n DivergingColorScale,\n useDivergingColorScale,\n} from \"./lib/diverging-color-scale.js\";\nexport type {\n ColorScaleStop,\n SequentialColorScaleProps,\n DivergingColorScaleProps,\n ResolvedSequentialColorScale,\n ResolvedDivergingColorScale,\n} from \"./lib/color-types.js\";\n\nexport {\n ThresholdColorScale,\n useThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\nexport type {\n ThresholdColorBand,\n ThresholdColorScaleProps,\n ResolvedThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\n\nexport { VolumeSeries } from \"./lib/volume-series.js\";\nexport type {\n VolumeSeriesProps,\n VolumeSeriesStyle,\n} from \"./lib/volume-series.js\";\n\nexport {\n TradingTimeScale,\n useTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport type {\n TradingTimeScaleProps,\n ResolvedTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport { CandlestickSeries } from \"./lib/candlestick-series.js\";\nexport type {\n CandlestickSeriesProps,\n CandlestickSeriesStyle,\n CandleBodyStyle,\n CandleWickStyle,\n} from \"./lib/candlestick-series.js\";\nexport { OhlcBarSeries } from \"./lib/ohlc-bar-series.js\";\nexport type {\n OhlcBarSeriesProps,\n OhlcBarSeriesStyle,\n} from \"./lib/ohlc-bar-series.js\";\n\nexport { BaselineSeries } from \"./lib/baseline-series.js\";\nexport type {\n BaselineSeriesProps,\n BaselineSeriesStyle,\n BaselineSideStyle,\n} from \"./lib/baseline-series.js\";\nexport { IntervalDiamondSeries } from \"./lib/interval-diamond-series.js\";\nexport type {\n IntervalDiamondSeriesProps,\n IntervalDiamondSeriesStyle,\n} from \"./lib/interval-diamond-series.js\";\nexport { CensoredPointSeries } from \"./lib/censored-point-series.js\";\nexport type {\n CensoringStatus,\n CensoringAccessor,\n CensoredPointSeriesProps,\n CensoredPointSeriesStyle,\n} from \"./lib/censored-point-series.js\";\nexport { WeightedPointSeries } from \"./lib/weighted-point-series.js\";\nexport type {\n WeightedPointSeriesProps,\n WeightedPointSeriesStyle,\n WeightAccessor,\n} from \"./lib/weighted-point-series.js\";\nexport { TrajectorySeries } from \"./lib/trajectory-series.js\";\nexport type {\n TrajectorySeriesProps,\n TrajectorySeriesStyle,\n TrajectoryGroupAccessor,\n} from \"./lib/trajectory-series.js\";\nexport { PairedSeries } from \"./lib/paired-series.js\";\nexport type {\n PairedSeriesProps,\n PairedSeriesStyle,\n} from \"./lib/paired-series.js\";\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAe5B,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,SAAS,0BAA0B;AAEnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAQP,SAAS,YAAY,WAAW,oBAAoB;AACpD,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAa5B,SAAS,mBAAmB;AAQ5B,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB,oBAAoB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,cAAc,oBAAoB;AAa3C,SAAS,iBAAiB;AAQ1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,sBAAsB;AAO/B,SAAS,iBAAiB;AAS1B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,UAAU,gBAAgB;AAa9C,SAAS,QAAQ,qBAAqB;AAStC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,+BAA+B;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,mBAAmB,kBAAkB;AAM9C,SAAS,gBAAgB,mBAAmB;AAW5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP,SAAS,qBAAqB;AAG9B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAG5B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,WAAW,qBAAqB;AAMzC,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,kBAAkB;AAOtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAOP,SAAS,oBAAoB;AAM7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,yBAAyB;AAOlC,SAAS,qBAAqB;AAM9B,SAAS,sBAAsB;AAM/B,SAAS,6BAA6B;AAKtC,SAAS,2BAA2B;AAOpC,SAAS,2BAA2B;AAMpC,SAAS,wBAAwB;AAMjC,SAAS,oBAAoB;",
|
|
4
|
+
"sourcesContent": ["export { LinearScale } from \"./lib/linear-scale-component.js\";\nexport { BarScale } from \"./lib/bar-scale.js\";\nexport { UTCScale } from \"./lib/utc-scale-component.js\";\nexport { useLinearScale } from \"./lib/use-linear-scale.js\";\nexport { useBarScale } from \"./lib/use-bar-scale.js\";\nexport { useUTCScale } from \"./lib/use-utc-scale.js\";\nexport type {\n ScaleId,\n LinearDomain,\n BandCategory,\n BandDomain,\n BarScaleProps,\n BandScaleRange,\n ResolvedBandScale,\n ScaleRange,\n ScaleLayoutStyle,\n LinearScaleProps,\n ResolvedLinearScale,\n ResolvedScale,\n} from \"./lib/types.js\";\nexport { Axis } from \"./lib/axis.js\";\nexport { LineSeries } from \"./lib/line-series.js\";\nexport { AreaSeries } from \"./lib/area-series.js\";\nexport type { AreaSeriesProps, AreaSeriesStyle } from \"./lib/area-series.js\";\nexport { IntervalBandSeries } from \"./lib/interval-band-series.js\";\nexport type { IntervalBandSeriesProps } from \"./lib/interval-band-series.js\";\nexport {\n HorizontalIntervalSeries,\n VerticalIntervalSeries,\n} from \"./lib/interval-series.js\";\nexport type {\n IntervalSeriesStyle,\n IntervalSeriesProps,\n HorizontalIntervalSeriesProps,\n VerticalIntervalSeriesProps,\n} from \"./lib/interval-series.js\";\nexport type { SeriesCurve } from \"./lib/curve-definition.js\";\nexport { stepBefore, stepAfter, stepMidpoint } from \"./lib/step-curves.js\";\nexport { monotoneX } from \"./lib/monotone-curve.js\";\nexport { ScaleAdjust } from \"./lib/scale-adjust.js\";\nexport type {\n AxisStyle,\n AxisProps,\n LineCoordinate,\n LineAccessor,\n SeriesAccessor,\n SeriesCoordinate,\n LineCurve,\n LineSeriesStyle,\n LineSeriesProps,\n ScaleAdjustProps,\n} from \"./lib/types.js\";\nexport { PointSeries } from \"./lib/point-series.js\";\nexport type {\n PointAccessor,\n PointMarkStyle,\n PointSeriesStyle,\n PointStyleResolver,\n PointSeriesProps,\n} from \"./lib/point-types.js\";\nexport { PlotSeries } from \"./lib/plot-series.js\";\nexport type { PlotSeriesProps, PlotKeyAccessor } from \"./lib/plot-types.js\";\nexport { nearestDomainValue, nearestPoint } from \"./lib/nearest.js\";\nexport type { NearestPointOptions, NearestPoint } from \"./lib/nearest.js\";\n\nexport { HoverData } from \"./lib/hover-data.js\";\nexport { defineSeries, closestPoint } from \"./lib/hover-queries.js\";\nexport type {\n HoverQueryContext,\n HoverQuery,\n HoverDataProps,\n HoverSeries,\n HoverPoint,\n HoverHit,\n HoverSeriesMap,\n ClosestPointHit,\n ClosestPointOptions,\n} from \"./lib/hover-types.js\";\n\nexport { HoverCard } from \"./lib/hover-card.js\";\nexport type {\n HoverCardProps,\n HoverCardStyle,\n HoverBounds,\n HoverPlacement,\n} from \"./lib/hover-card.js\";\n\nexport {\n closestX,\n interpolateX,\n linearInterpolation,\n} from \"./lib/hover-queries.js\";\nexport type {\n ClosestXOptions,\n ClosestXHit,\n HoverInterpolation,\n InterpolateXOptions,\n HoverSample,\n} from \"./lib/hover-types.js\";\n\nexport { AnchoredLayout } from \"./lib/anchored-layout.js\";\nexport type {\n AnchoredItem,\n AnchoredPlacement,\n AnchoredLayoutProps,\n} from \"./lib/anchored-layout.js\";\n\nexport { BarSeries } from \"./lib/bar-series.js\";\nexport type {\n BarThresholdFill,\n BarCategoryAccessor,\n BarSeriesStyle,\n BarStyleResolver,\n BarSeriesProps,\n} from \"./lib/bar-series.js\";\n\nexport { pieSlices } from \"./lib/pie-slices.js\";\nexport type { PieOptions, PieSliceGeometry } from \"./lib/pie-slices.js\";\n\nexport { PieLayout, PieSlice, PieLabel } from \"./lib/pie-layout.js\";\nexport type {\n PieLayoutProps,\n PieLayoutStyle,\n PieLayoutSlice,\n PieLabelPlacement,\n PieLabelLayout,\n PieSliceProps,\n PieSliceStyle,\n PieLabelProps,\n PieLabelStyle,\n} from \"./lib/pie-types.js\";\n\nexport { extent, niceUTCDomain } from \"./lib/utc-scale.js\";\nexport type {\n NumericDomain,\n UtcDomain,\n UTCScaleProps,\n ResolvedUtcScale,\n ResolvedContinuousScale,\n} from \"./lib/types.js\";\n\nexport {\n linearTicks,\n niceLinearDomain,\n formatNumber,\n} from \"./lib/numeric-ticks.js\";\nexport type {\n LinearTickOptions,\n NumberFormatOptions,\n} from \"./lib/numeric-ticks.js\";\nexport { interpolateNumericRange } from \"./lib/numeric-range-interpolation.js\";\nexport {\n visibleOhlcPriceExtent,\n padLinearDomain,\n} from \"./lib/financial-autoscale.js\";\nexport type {\n VisibleOhlcPriceExtentOptions,\n PadLinearDomainOptions,\n} from \"./lib/financial-autoscale.js\";\nexport { percentageReturns, indexTo100 } from \"./lib/financial-comparison.js\";\nexport type {\n ComparisonBaseOptions,\n PercentageReturnPoint,\n IndexedValuePoint,\n} from \"./lib/financial-comparison.js\";\nexport { aggregateOhlcv, sessionVwap } from \"./lib/financial-aggregation.js\";\nexport type {\n OhlcvBucket,\n OhlcvSource,\n AggregatedOhlcvPoint,\n AggregateOhlcvOptions,\n SessionIdentifier,\n SessionAccessor,\n SessionVwapOptions,\n SessionVwapPoint,\n} from \"./lib/financial-aggregation.js\";\nexport {\n RangeNavigator,\n EditableReferenceLine,\n EditableReferenceBand,\n EditableTrendLine,\n} from \"./lib/editable-chart-elements.js\";\nexport type {\n ChartAnchor,\n RangeNavigatorProps,\n RangeNavigatorStyle,\n EditableReferenceLineProps,\n EditableReferenceLineStyle,\n EditableReferenceBandProps,\n EditableReferenceBandStyle,\n EditableTrendLineProps,\n EditableTrendLineStyle,\n} from \"./lib/editable-chart-elements.js\";\nexport {\n simpleMovingAverage,\n exponentialMovingAverage,\n bollingerBands,\n} from \"./lib/financial-indicators.js\";\nexport type {\n MovingAverageOptions,\n BollingerBandsOptions,\n MovingAveragePoint,\n BollingerBandPoint,\n} from \"./lib/financial-indicators.js\";\nexport {\n relativeStrengthIndex,\n movingAverageConvergenceDivergence,\n stochasticOscillator,\n} from \"./lib/financial-oscillators.js\";\nexport type {\n OscillatorOptions,\n RelativeStrengthIndexOptions,\n MovingAverageConvergenceDivergenceOptions,\n StochasticOscillatorOptions,\n RelativeStrengthIndexPoint,\n MovingAverageConvergenceDivergencePoint,\n StochasticOscillatorPoint,\n} from \"./lib/financial-oscillators.js\";\n\nexport { utcTickLabels } from \"./lib/utc-labels.js\";\nexport type { UTCTickLabelOptions } from \"./lib/utc-labels.js\";\n\nexport { LogScale } from \"./lib/log-scale-component.js\";\nexport { useLogScale } from \"./lib/use-log-scale.js\";\nexport type { LogScaleProps, ResolvedLogScale } from \"./lib/types.js\";\n\nexport { SymlogScale } from \"./lib/symlog-scale-component.js\";\nexport { useSymlogScale } from \"./lib/use-symlog-scale.js\";\nexport type { SymlogScaleProps, ResolvedSymlogScale } from \"./lib/types.js\";\n\nexport { PointScale } from \"./lib/point-scale-component.js\";\nexport { usePointScale } from \"./lib/use-point-scale.js\";\nexport type { PointScaleProps, ResolvedPointScale } from \"./lib/types.js\";\nexport { GridLines, ReferenceLine } from \"./lib/chart-lines.js\";\nexport type {\n ChartLineProps,\n GridLinesProps,\n ReferenceLineProps,\n} from \"./lib/chart-lines.js\";\nexport { ReferenceBand } from \"./lib/reference-band.js\";\nexport type { ReferenceBandProps } from \"./lib/reference-band.js\";\nexport { AxisTitle } from \"./lib/axis-title.js\";\nexport type { AxisTitleProps } from \"./lib/axis-title.js\";\n\nexport { panDomain, zoomDomain } from \"./lib/domain-navigation.js\";\nexport type {\n DomainNavigationConstraints,\n PanDomainOptions,\n ZoomDomainOptions,\n} from \"./lib/domain-navigation.js\";\n\nexport {\n SequentialColorScale,\n useSequentialColorScale,\n} from \"./lib/sequential-color-scale.js\";\nexport {\n DivergingColorScale,\n useDivergingColorScale,\n} from \"./lib/diverging-color-scale.js\";\nexport type {\n ColorScaleStop,\n SequentialColorScaleProps,\n DivergingColorScaleProps,\n ResolvedSequentialColorScale,\n ResolvedDivergingColorScale,\n} from \"./lib/color-types.js\";\n\nexport {\n ThresholdColorScale,\n useThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\nexport type {\n ThresholdColorBand,\n ThresholdColorScaleProps,\n ResolvedThresholdColorScale,\n} from \"./lib/threshold-color-scale.js\";\n\nexport { VolumeSeries } from \"./lib/volume-series.js\";\nexport type {\n VolumeSeriesProps,\n VolumeSeriesStyle,\n} from \"./lib/volume-series.js\";\n\nexport {\n TradingTimeScale,\n useTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport type {\n TradingTimeScaleProps,\n ResolvedTradingTimeScale,\n} from \"./lib/trading-time-scale.js\";\nexport { CandlestickSeries } from \"./lib/candlestick-series.js\";\nexport type {\n CandlestickSeriesProps,\n CandlestickSeriesStyle,\n CandleBodyStyle,\n CandleWickStyle,\n} from \"./lib/candlestick-series.js\";\nexport { OhlcBarSeries } from \"./lib/ohlc-bar-series.js\";\nexport type {\n OhlcBarSeriesProps,\n OhlcBarSeriesStyle,\n} from \"./lib/ohlc-bar-series.js\";\n\nexport { BaselineSeries } from \"./lib/baseline-series.js\";\nexport type {\n BaselineSeriesProps,\n BaselineSeriesStyle,\n BaselineSideStyle,\n} from \"./lib/baseline-series.js\";\nexport { IntervalDiamondSeries } from \"./lib/interval-diamond-series.js\";\nexport type {\n IntervalDiamondSeriesProps,\n IntervalDiamondSeriesStyle,\n} from \"./lib/interval-diamond-series.js\";\nexport { CensoredPointSeries } from \"./lib/censored-point-series.js\";\nexport type {\n CensoringStatus,\n CensoringAccessor,\n CensoredPointSeriesProps,\n CensoredPointSeriesStyle,\n} from \"./lib/censored-point-series.js\";\nexport { WeightedPointSeries } from \"./lib/weighted-point-series.js\";\nexport type {\n WeightedPointSeriesProps,\n WeightedPointSeriesStyle,\n WeightAccessor,\n} from \"./lib/weighted-point-series.js\";\nexport { TrajectorySeries } from \"./lib/trajectory-series.js\";\nexport type {\n TrajectorySeriesProps,\n TrajectorySeriesStyle,\n TrajectoryGroupAccessor,\n} from \"./lib/trajectory-series.js\";\nexport { PairedSeries } from \"./lib/paired-series.js\";\nexport type {\n PairedSeriesProps,\n PairedSeriesStyle,\n} from \"./lib/paired-series.js\";\n\n// Graph visualization: public geometry, marks, layouts, and reference compositions.\nexport type {\n VizKey,\n Accessor,\n Bounds,\n Point,\n Style,\n MarkStyle,\n NodeStyle,\n EdgeStyle,\n LabelStyle,\n FrameStyle,\n LabelGeometry,\n GraphData,\n GraphAccessors,\n GraphNodeGeometry,\n GraphRoute,\n GraphEdgeGeometry,\n GraphLayout,\n GraphPresentation,\n MarkInteraction,\n GraphNodeProps,\n GraphEdgeProps,\n GraphLabelProps,\n GraphViewProps,\n DependencyStyle,\n DependencyOptions,\n DependencyGraphProps,\n ForceSettings,\n ForceOptions,\n ForceLayout,\n ForceNetworkController,\n ForceStyle,\n ForceNetworkProps,\n ForceHookOptions,\n HierarchyAccessors,\n TreeEdge,\n TreeNodeGeometry,\n TreeLayout,\n TreeStyle,\n TreeOptions,\n TidyTreeProps,\n MatrixData,\n MatrixAccessors,\n MatrixCellGeometry,\n MatrixLayout,\n MatrixStyle,\n MatrixOptions,\n AdjacencyMatrixProps,\n MatrixCellProps,\n SankeyNodeGeometry,\n SankeyFlowGeometry,\n SankeyLayout,\n SankeyAccessors,\n SankeyStyle,\n SankeyOptions,\n SankeyProps,\n BipartiteData,\n BipartiteAccessors,\n BipartiteEdgeGeometry,\n BipartiteLayout,\n BipartiteStyle,\n BipartiteOptions,\n BipartiteGraphProps,\n PartitionAccessors,\n PartitionCellGeometry,\n PartitionLayout,\n PartitionPresentation,\n TreemapStyle,\n TreemapOptions,\n TreemapProps,\n PartitionCellProps,\n NeighborhoodStyle,\n NeighborhoodOptions,\n NeighborhoodNodeGeometry,\n NeighborhoodLayout,\n RadialNeighborhoodProps,\n IcicleStyle,\n IcicleOptions,\n IcicleProps,\n ChordData,\n ChordAccessors,\n ChordArc,\n ChordBandGeometry,\n ChordRibbonGeometry,\n ChordLayout,\n ChordStyle,\n ChordOptions,\n ChordDiagramProps,\n ForceSimulation,\n ForceSimulationFactory,\n Size,\n} from './lib/graph/types.js';\nexport { GraphNode, GraphEdge, GraphLabel, GraphView, defaultGraphNodeStyle, defaultGraphEdgeStyle, defaultGraphLabelStyle } from './lib/graph/shared.js';\nexport { straightGraphRoute, orthogonalGraphRoute, curvedGraphRoute } from './lib/graph/routes.js';\nexport { layoutDependencies, DependencyGraph } from './lib/graph/dependency.js';\nexport { layoutMatrix, AdjacencyMatrix, MatrixCell, defaultMatrixCellStyle } from './lib/graph/matrix.js';\nexport { layoutSankey, Sankey, SankeyNode, SankeyFlow, defaultSankeyNodeStyle, defaultSankeyFlowStyle } from './lib/graph/sankey.js';\nexport { layoutBipartite, BipartiteGraph } from './lib/graph/bipartite.js';\nexport { layoutChords, ChordDiagram, ChordBand, ChordRibbon, defaultChordBandStyle, defaultChordRibbonStyle } from './lib/graph/chord.js';\nexport { layoutTree, TidyTree } from './lib/graph/tree.js';\nexport { layoutTreemap, Treemap, TreemapCell, defaultPartitionCellStyle } from './lib/graph/treemap.js';\nexport { layoutIcicle, Icicle, IcicleCell } from './lib/graph/icicle.js';\nexport { layoutNeighborhood, RadialNeighborhood } from './lib/graph/neighborhood.js';\nexport { createForceSimulation, layoutForceNetwork, useForceNetwork, ForceNetwork } from './lib/graph/force.js';\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAe5B,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,SAAS,0BAA0B;AAEnC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAQP,SAAS,YAAY,WAAW,oBAAoB;AACpD,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAa5B,SAAS,mBAAmB;AAQ5B,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB,oBAAoB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,cAAc,oBAAoB;AAa3C,SAAS,iBAAiB;AAQ1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,sBAAsB;AAO/B,SAAS,iBAAiB;AAS1B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,UAAU,gBAAgB;AAa9C,SAAS,QAAQ,qBAAqB;AAStC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,+BAA+B;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,mBAAmB,kBAAkB;AAM9C,SAAS,gBAAgB,mBAAmB;AAW5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWP,SAAS,qBAAqB;AAG9B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAG5B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,WAAW,qBAAqB;AAMzC,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB;AAG1B,SAAS,WAAW,kBAAkB;AAOtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAOP,SAAS,oBAAoB;AAM7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,yBAAyB;AAOlC,SAAS,qBAAqB;AAM9B,SAAS,sBAAsB;AAM/B,SAAS,6BAA6B;AAKtC,SAAS,2BAA2B;AAOpC,SAAS,2BAA2B;AAMpC,SAAS,wBAAwB;AAMjC,SAAS,oBAAoB;AAmG7B,SAAS,WAAW,WAAW,YAAY,WAAW,uBAAuB,uBAAuB,8BAA8B;AAClI,SAAS,oBAAoB,sBAAsB,wBAAwB;AAC3E,SAAS,oBAAoB,uBAAuB;AACpD,SAAS,cAAc,iBAAiB,YAAY,8BAA8B;AAClF,SAAS,cAAc,QAAQ,YAAY,YAAY,wBAAwB,8BAA8B;AAC7G,SAAS,iBAAiB,sBAAsB;AAChD,SAAS,cAAc,cAAc,WAAW,aAAa,uBAAuB,+BAA+B;AACnH,SAAS,YAAY,gBAAgB;AACrC,SAAS,eAAe,SAAS,aAAa,iCAAiC;AAC/E,SAAS,cAAc,QAAQ,kBAAkB;AACjD,SAAS,oBAAoB,0BAA0B;AACvD,SAAS,uBAAuB,oBAAoB,iBAAiB,oBAAoB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PibblNode } from "@pibbl/core";
|
|
2
|
+
import type { BipartiteData, BipartiteGraphProps, BipartiteLayout, BipartiteOptions } from "./types.js";
|
|
3
|
+
/** Arranges two explicit entity sets in columns, retaining side-qualified identity.
|
|
4
|
+
* @param graph - Explicit left and right entities with cross-set edges. See {@link BipartiteData}.
|
|
5
|
+
* @param options - Accessors, dimensions, and column spacing. See {@link BipartiteOptions}.
|
|
6
|
+
* @returns Immutable side-aware nodes and routed edges. See {@link BipartiteLayout}.
|
|
7
|
+
*/
|
|
8
|
+
export declare function layoutBipartite<L, R, E>(graph: BipartiteData<L, R, E>, options: BipartiteOptions<L, R, E>): BipartiteLayout<L, R, E>;
|
|
9
|
+
/** Render left/right entity sets and their cross-set relationships.
|
|
10
|
+
* @param props - Entity data and presentation.
|
|
11
|
+
* @returns Canvas node.
|
|
12
|
+
* @see {@link layoutBipartite}
|
|
13
|
+
*/
|
|
14
|
+
export declare function BipartiteGraph<L, R, E>(props: BipartiteGraphProps<L, R, E>): PibblNode;
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { jsx, jsxs } from "@pibbl/core/jsx-runtime";
|
|
2
|
+
import { Group, SvgPath, resolveSignalValue } from "@pibbl/core";
|
|
3
|
+
import {
|
|
4
|
+
defaultGraphEdgeStyle,
|
|
5
|
+
defaultGraphLabelStyle,
|
|
6
|
+
defaultGraphNodeStyle,
|
|
7
|
+
GraphLabel,
|
|
8
|
+
GraphNode,
|
|
9
|
+
resolveMarkStyle,
|
|
10
|
+
useGraphFrame
|
|
11
|
+
} from "./shared.js";
|
|
12
|
+
function access(input, datum) {
|
|
13
|
+
return typeof input === "function" ? input(datum) : datum[input];
|
|
14
|
+
}
|
|
15
|
+
function finite(value, name, zero = false) {
|
|
16
|
+
if (!Number.isFinite(value) || zero && value < 0)
|
|
17
|
+
throw new RangeError(
|
|
18
|
+
`layoutBipartite: ${name} must be finite${zero ? " and nonnegative" : ""}.`
|
|
19
|
+
);
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
function label(text, bounds) {
|
|
23
|
+
return Object.freeze({
|
|
24
|
+
text,
|
|
25
|
+
bounds: Object.freeze(bounds),
|
|
26
|
+
rotationDegrees: 0
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function route(a, b) {
|
|
30
|
+
const middle = (a.x + b.x) / 2;
|
|
31
|
+
const segments = Object.freeze([
|
|
32
|
+
{ type: "move", x: a.x, y: a.y },
|
|
33
|
+
{
|
|
34
|
+
type: "cubic",
|
|
35
|
+
cp1x: middle,
|
|
36
|
+
cp1y: a.y,
|
|
37
|
+
cp2x: middle,
|
|
38
|
+
cp2y: b.y,
|
|
39
|
+
x: b.x,
|
|
40
|
+
y: b.y
|
|
41
|
+
}
|
|
42
|
+
]);
|
|
43
|
+
return Object.freeze({
|
|
44
|
+
sourceAnchor: Object.freeze(a),
|
|
45
|
+
targetAnchor: Object.freeze(b),
|
|
46
|
+
segments,
|
|
47
|
+
arrowSegments: null
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function path(route2) {
|
|
51
|
+
return route2.segments.map(
|
|
52
|
+
(segment) => segment.type === "move" ? `M ${segment.x} ${segment.y}` : segment.type === "cubic" ? `C ${segment.cp1x} ${segment.cp1y} ${segment.cp2x} ${segment.cp2y} ${segment.x} ${segment.y}` : ""
|
|
53
|
+
).join(" ");
|
|
54
|
+
}
|
|
55
|
+
function placed(data, keyBy, labelBy, atX, bounds, size, gap) {
|
|
56
|
+
const total = data.reduce((sum, datum) => sum + (size?.(datum).height ?? 34), 0) + Math.max(0, data.length - 1) * gap;
|
|
57
|
+
let y = bounds.y + Math.max(0, (bounds.height - total) / 2);
|
|
58
|
+
const seen = /* @__PURE__ */ new Set();
|
|
59
|
+
return Object.freeze(
|
|
60
|
+
data.map((datum) => {
|
|
61
|
+
const key = access(keyBy, datum);
|
|
62
|
+
if (seen.has(key))
|
|
63
|
+
throw new Error(
|
|
64
|
+
`layoutBipartite: duplicate node key ${String(key)} on one side.`
|
|
65
|
+
);
|
|
66
|
+
seen.add(key);
|
|
67
|
+
const dimensions = size?.(datum) ?? { width: 150, height: 34 };
|
|
68
|
+
const box = {
|
|
69
|
+
x: atX,
|
|
70
|
+
y,
|
|
71
|
+
width: dimensions.width,
|
|
72
|
+
height: dimensions.height
|
|
73
|
+
};
|
|
74
|
+
y += dimensions.height + gap;
|
|
75
|
+
return Object.freeze({
|
|
76
|
+
key,
|
|
77
|
+
datum,
|
|
78
|
+
bounds: Object.freeze(box),
|
|
79
|
+
label: label(labelBy ? access(labelBy, datum) : String(key), box),
|
|
80
|
+
detail: null
|
|
81
|
+
});
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
function layoutBipartite(graph, options) {
|
|
86
|
+
const b = options.bounds;
|
|
87
|
+
finite(b.x, "bounds.x");
|
|
88
|
+
finite(b.y, "bounds.y");
|
|
89
|
+
finite(b.width, "bounds.width", true);
|
|
90
|
+
finite(b.height, "bounds.height", true);
|
|
91
|
+
const gap = finite(options.nodeGap ?? 12, "nodeGap", true), columnGap = finite(options.columnGap ?? 120, "columnGap", true);
|
|
92
|
+
const leftSize = options.leftSize, leftResolver = typeof leftSize === "function" ? leftSize : leftSize === void 0 ? void 0 : () => leftSize;
|
|
93
|
+
const rightSize = options.rightSize, rightResolver = typeof rightSize === "function" ? rightSize : rightSize === void 0 ? void 0 : () => rightSize;
|
|
94
|
+
const left = placed(
|
|
95
|
+
graph.left,
|
|
96
|
+
options.leftKey,
|
|
97
|
+
options.leftLabel,
|
|
98
|
+
b.x,
|
|
99
|
+
b,
|
|
100
|
+
leftResolver,
|
|
101
|
+
gap
|
|
102
|
+
);
|
|
103
|
+
const rightWidth = typeof rightSize === "function" ? 150 : rightSize?.width ?? 150;
|
|
104
|
+
const right = placed(
|
|
105
|
+
graph.right,
|
|
106
|
+
options.rightKey,
|
|
107
|
+
options.rightLabel,
|
|
108
|
+
Math.max(b.x, b.x + b.width - rightWidth),
|
|
109
|
+
b,
|
|
110
|
+
rightResolver,
|
|
111
|
+
gap
|
|
112
|
+
);
|
|
113
|
+
const leftByKey = new Map(left.map((node) => [node.key, node])), rightByKey = new Map(right.map((node) => [node.key, node]));
|
|
114
|
+
const edgeKeys = /* @__PURE__ */ new Set();
|
|
115
|
+
const edges = graph.edges.map((edge) => {
|
|
116
|
+
const key = access(options.edgeKey, edge);
|
|
117
|
+
if (edgeKeys.has(key))
|
|
118
|
+
throw new Error(`layoutBipartite: duplicate edge key ${String(key)}.`);
|
|
119
|
+
edgeKeys.add(key);
|
|
120
|
+
const source = access(options.source, edge), target = access(options.target, edge), leftNode = leftByKey.get(source), rightNode = rightByKey.get(target);
|
|
121
|
+
if (!leftNode || !rightNode)
|
|
122
|
+
throw new RangeError(
|
|
123
|
+
"layoutBipartite: every edge must point from a known left key to a known right key."
|
|
124
|
+
);
|
|
125
|
+
const r = route(
|
|
126
|
+
{
|
|
127
|
+
x: leftNode.bounds.x + leftNode.bounds.width,
|
|
128
|
+
y: leftNode.bounds.y + leftNode.bounds.height / 2
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
x: rightNode.bounds.x,
|
|
132
|
+
y: rightNode.bounds.y + rightNode.bounds.height / 2
|
|
133
|
+
}
|
|
134
|
+
);
|
|
135
|
+
return Object.freeze({
|
|
136
|
+
key,
|
|
137
|
+
datum: edge,
|
|
138
|
+
sourceKey: source,
|
|
139
|
+
targetKey: target,
|
|
140
|
+
left: leftNode,
|
|
141
|
+
right: rightNode,
|
|
142
|
+
route: r,
|
|
143
|
+
path: path(r),
|
|
144
|
+
arrowPath: null
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
if (left.length && right.length && right[0].bounds.x - (left[0].bounds.x + left[0].bounds.width) < columnGap)
|
|
148
|
+
throw new RangeError(
|
|
149
|
+
"layoutBipartite: bounds are too narrow for node sizes and columnGap."
|
|
150
|
+
);
|
|
151
|
+
return Object.freeze({
|
|
152
|
+
bounds: Object.freeze({ ...b }),
|
|
153
|
+
left,
|
|
154
|
+
right,
|
|
155
|
+
edges: Object.freeze(edges)
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function BipartiteGraph(props) {
|
|
159
|
+
const frame = useGraphFrame(props.style), style = frame.style;
|
|
160
|
+
if (!frame.bounds.width || !frame.bounds.height)
|
|
161
|
+
return /* @__PURE__ */ jsx(Group, { style: frame.groupStyle, children: null });
|
|
162
|
+
const layout = layoutBipartite(resolveSignalValue(props.graph), {
|
|
163
|
+
...props,
|
|
164
|
+
bounds: frame.bounds,
|
|
165
|
+
columnGap: style.columnGap,
|
|
166
|
+
nodeGap: style.nodeGap
|
|
167
|
+
});
|
|
168
|
+
return /* @__PURE__ */ jsxs(Group, { style: frame.groupStyle, children: [
|
|
169
|
+
layout.edges.map((edge) => /* @__PURE__ */ jsx(
|
|
170
|
+
Group,
|
|
171
|
+
{
|
|
172
|
+
onClick: (event) => props.onEdgeClick?.(edge, event),
|
|
173
|
+
children: props.renderEdge ? props.renderEdge(edge) : /* @__PURE__ */ jsx(
|
|
174
|
+
SvgPath,
|
|
175
|
+
{
|
|
176
|
+
style: {
|
|
177
|
+
...defaultGraphEdgeStyle(edge),
|
|
178
|
+
...resolveMarkStyle(edge, props.edgeStyle),
|
|
179
|
+
d: edge.path
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
)
|
|
183
|
+
},
|
|
184
|
+
String(edge.key)
|
|
185
|
+
)),
|
|
186
|
+
layout.left.map((node) => /* @__PURE__ */ jsx(
|
|
187
|
+
Group,
|
|
188
|
+
{
|
|
189
|
+
onClick: (event) => props.onLeftNodeClick?.(node, event),
|
|
190
|
+
children: props.renderLeftNode ? props.renderLeftNode(node) : /* @__PURE__ */ jsxs(Group, { children: [
|
|
191
|
+
/* @__PURE__ */ jsx(
|
|
192
|
+
GraphNode,
|
|
193
|
+
{
|
|
194
|
+
node,
|
|
195
|
+
style: {
|
|
196
|
+
...defaultGraphNodeStyle(node),
|
|
197
|
+
...resolveMarkStyle(node, props.leftNodeStyle)
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
),
|
|
201
|
+
/* @__PURE__ */ jsx(
|
|
202
|
+
GraphLabel,
|
|
203
|
+
{
|
|
204
|
+
label: node.label,
|
|
205
|
+
style: {
|
|
206
|
+
...defaultGraphLabelStyle(node.label),
|
|
207
|
+
...resolveSignalValue(props.labelStyle)
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
)
|
|
211
|
+
] })
|
|
212
|
+
},
|
|
213
|
+
`left-${String(node.key)}`
|
|
214
|
+
)),
|
|
215
|
+
layout.right.map((node) => /* @__PURE__ */ jsx(
|
|
216
|
+
Group,
|
|
217
|
+
{
|
|
218
|
+
onClick: (event) => props.onRightNodeClick?.(node, event),
|
|
219
|
+
children: props.renderRightNode ? props.renderRightNode(node) : /* @__PURE__ */ jsxs(Group, { children: [
|
|
220
|
+
/* @__PURE__ */ jsx(
|
|
221
|
+
GraphNode,
|
|
222
|
+
{
|
|
223
|
+
node,
|
|
224
|
+
style: {
|
|
225
|
+
...defaultGraphNodeStyle(node),
|
|
226
|
+
...resolveMarkStyle(node, props.rightNodeStyle)
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
),
|
|
230
|
+
/* @__PURE__ */ jsx(
|
|
231
|
+
GraphLabel,
|
|
232
|
+
{
|
|
233
|
+
label: node.label,
|
|
234
|
+
style: {
|
|
235
|
+
...defaultGraphLabelStyle(node.label),
|
|
236
|
+
...resolveSignalValue(props.labelStyle)
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
)
|
|
240
|
+
] })
|
|
241
|
+
},
|
|
242
|
+
`right-${String(node.key)}`
|
|
243
|
+
))
|
|
244
|
+
] });
|
|
245
|
+
}
|
|
246
|
+
export {
|
|
247
|
+
BipartiteGraph,
|
|
248
|
+
layoutBipartite
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=bipartite.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/features/viz/lib/graph/bipartite.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Group, SvgPath, resolveSignalValue } from \"@pibbl/core\";\nimport type { PathSegment, PibblNode } from \"@pibbl/core\";\nimport type {\n Accessor,\n BipartiteData,\n BipartiteGraphProps,\n BipartiteLayout,\n BipartiteOptions,\n GraphNodeGeometry,\n Size,\n VizKey,\n} from \"./types.js\";\nimport {\n defaultGraphEdgeStyle,\n defaultGraphLabelStyle,\n defaultGraphNodeStyle,\n GraphLabel,\n GraphNode,\n resolveMarkStyle,\n useGraphFrame,\n} from \"./shared.js\";\n\nfunction access<D, V>(input: Accessor<D, V>, datum: D): V {\n return typeof input === \"function\"\n ? input(datum)\n : (datum as Record<PropertyKey, V>)[input];\n}\nfunction finite(value: number, name: string, zero = false) {\n if (!Number.isFinite(value) || (zero && value < 0))\n throw new RangeError(\n `layoutBipartite: ${name} must be finite${zero ? \" and nonnegative\" : \"\"}.`,\n );\n return value;\n}\nfunction label(\n text: string,\n bounds: { x: number; y: number; width: number; height: number },\n) {\n return Object.freeze({\n text,\n bounds: Object.freeze(bounds),\n rotationDegrees: 0,\n });\n}\nfunction route(a: { x: number; y: number }, b: { x: number; y: number }) {\n const middle = (a.x + b.x) / 2;\n const segments = Object.freeze([\n { type: \"move\" as const, x: a.x, y: a.y },\n {\n type: \"cubic\" as const,\n cp1x: middle,\n cp1y: a.y,\n cp2x: middle,\n cp2y: b.y,\n x: b.x,\n y: b.y,\n },\n ]);\n return Object.freeze({\n sourceAnchor: Object.freeze(a),\n targetAnchor: Object.freeze(b),\n segments,\n arrowSegments: null,\n });\n}\nfunction path(route: { segments: readonly PathSegment[] }) {\n return route.segments\n .map((segment) =>\n segment.type === \"move\"\n ? `M ${segment.x} ${segment.y}`\n : segment.type === \"cubic\"\n ? `C ${segment.cp1x} ${segment.cp1y} ${segment.cp2x} ${segment.cp2y} ${segment.x} ${segment.y}`\n : \"\",\n )\n .join(\" \");\n}\nfunction placed<D>(\n data: readonly D[],\n keyBy: Accessor<D, VizKey>,\n labelBy: Accessor<D, string> | undefined,\n atX: number,\n bounds: { y: number; height: number },\n size: ((datum: D) => Size) | undefined,\n gap: number,\n): readonly GraphNodeGeometry<D>[] {\n const total =\n data.reduce((sum, datum) => sum + (size?.(datum).height ?? 34), 0) +\n Math.max(0, data.length - 1) * gap;\n let y = bounds.y + Math.max(0, (bounds.height - total) / 2);\n const seen = new Set<VizKey>();\n return Object.freeze(\n data.map((datum) => {\n const key = access(keyBy, datum);\n if (seen.has(key))\n throw new Error(\n `layoutBipartite: duplicate node key ${String(key)} on one side.`,\n );\n seen.add(key);\n const dimensions = size?.(datum) ?? { width: 150, height: 34 };\n const box = {\n x: atX,\n y,\n width: dimensions.width,\n height: dimensions.height,\n };\n y += dimensions.height + gap;\n return Object.freeze({\n key,\n datum,\n bounds: Object.freeze(box),\n label: label(labelBy ? access(labelBy, datum) : String(key), box),\n detail: null,\n });\n }),\n );\n}\n\n/** Arranges two explicit entity sets in columns, retaining side-qualified identity.\n * @param graph - Explicit left and right entities with cross-set edges. See {@link BipartiteData}.\n * @param options - Accessors, dimensions, and column spacing. See {@link BipartiteOptions}.\n * @returns Immutable side-aware nodes and routed edges. See {@link BipartiteLayout}.\n */\nexport function layoutBipartite<L, R, E>(\n graph: BipartiteData<L, R, E>,\n options: BipartiteOptions<L, R, E>,\n): BipartiteLayout<L, R, E> {\n const b = options.bounds;\n finite(b.x, \"bounds.x\");\n finite(b.y, \"bounds.y\");\n finite(b.width, \"bounds.width\", true);\n finite(b.height, \"bounds.height\", true);\n const gap = finite(options.nodeGap ?? 12, \"nodeGap\", true),\n columnGap = finite(options.columnGap ?? 120, \"columnGap\", true);\n const leftSize = options.leftSize,\n leftResolver: ((datum: L) => Size) | undefined =\n typeof leftSize === \"function\"\n ? leftSize\n : leftSize === undefined\n ? undefined\n : () => leftSize;\n const rightSize = options.rightSize,\n rightResolver: ((datum: R) => Size) | undefined =\n typeof rightSize === \"function\"\n ? rightSize\n : rightSize === undefined\n ? undefined\n : () => rightSize;\n const left = placed(\n graph.left,\n options.leftKey,\n options.leftLabel,\n b.x,\n b,\n leftResolver,\n gap,\n );\n const rightWidth =\n typeof rightSize === \"function\" ? 150 : (rightSize?.width ?? 150);\n const right = placed(\n graph.right,\n options.rightKey,\n options.rightLabel,\n Math.max(b.x, b.x + b.width - rightWidth),\n b,\n rightResolver,\n gap,\n );\n const leftByKey = new Map(left.map((node) => [node.key, node])),\n rightByKey = new Map(right.map((node) => [node.key, node]));\n const edgeKeys = new Set<VizKey>();\n const edges = graph.edges.map((edge) => {\n const key = access(options.edgeKey, edge);\n if (edgeKeys.has(key))\n throw new Error(`layoutBipartite: duplicate edge key ${String(key)}.`);\n edgeKeys.add(key);\n const source = access(options.source, edge),\n target = access(options.target, edge),\n leftNode = leftByKey.get(source),\n rightNode = rightByKey.get(target);\n if (!leftNode || !rightNode)\n throw new RangeError(\n \"layoutBipartite: every edge must point from a known left key to a known right key.\",\n );\n const r = route(\n {\n x: leftNode.bounds.x + leftNode.bounds.width,\n y: leftNode.bounds.y + leftNode.bounds.height / 2,\n },\n {\n x: rightNode.bounds.x,\n y: rightNode.bounds.y + rightNode.bounds.height / 2,\n },\n );\n return Object.freeze({\n key,\n datum: edge,\n sourceKey: source,\n targetKey: target,\n left: leftNode,\n right: rightNode,\n route: r,\n path: path(r),\n arrowPath: null,\n });\n });\n if (\n left.length &&\n right.length &&\n right[0].bounds.x - (left[0].bounds.x + left[0].bounds.width) < columnGap\n )\n throw new RangeError(\n \"layoutBipartite: bounds are too narrow for node sizes and columnGap.\",\n );\n return Object.freeze({\n bounds: Object.freeze({ ...b }),\n left,\n right,\n edges: Object.freeze(edges),\n });\n}\n\n/** Render left/right entity sets and their cross-set relationships.\n * @param props - Entity data and presentation.\n * @returns Canvas node.\n * @see {@link layoutBipartite}\n */\nexport function BipartiteGraph<L, R, E>(\n props: BipartiteGraphProps<L, R, E>,\n): PibblNode {\n const frame = useGraphFrame(props.style),\n style = frame.style;\n if (!frame.bounds.width || !frame.bounds.height)\n return <Group style={frame.groupStyle}>{null}</Group>;\n const layout = layoutBipartite(resolveSignalValue(props.graph), {\n ...props,\n bounds: frame.bounds,\n columnGap: style.columnGap,\n nodeGap: style.nodeGap,\n });\n return (\n <Group style={frame.groupStyle}>\n {layout.edges.map((edge) => (\n <Group\n key={String(edge.key)}\n onClick={(event) => props.onEdgeClick?.(edge, event)}\n >\n {props.renderEdge ? (\n props.renderEdge(edge)\n ) : (\n <SvgPath\n style={{\n ...defaultGraphEdgeStyle(edge),\n ...resolveMarkStyle(edge, props.edgeStyle),\n d: edge.path,\n }}\n />\n )}\n </Group>\n ))}\n {layout.left.map((node) => (\n <Group\n key={`left-${String(node.key)}`}\n onClick={(event) => props.onLeftNodeClick?.(node, event)}\n >\n {props.renderLeftNode ? (\n props.renderLeftNode(node)\n ) : (\n <Group>\n <GraphNode\n node={node}\n style={{\n ...defaultGraphNodeStyle(node),\n ...resolveMarkStyle(node, props.leftNodeStyle),\n }}\n />\n <GraphLabel\n label={node.label}\n style={{\n ...defaultGraphLabelStyle(node.label),\n ...resolveSignalValue(props.labelStyle),\n }}\n />\n </Group>\n )}\n </Group>\n ))}\n {layout.right.map((node) => (\n <Group\n key={`right-${String(node.key)}`}\n onClick={(event) => props.onRightNodeClick?.(node, event)}\n >\n {props.renderRightNode ? (\n props.renderRightNode(node)\n ) : (\n <Group>\n <GraphNode\n node={node}\n style={{\n ...defaultGraphNodeStyle(node),\n ...resolveMarkStyle(node, props.rightNodeStyle),\n }}\n />\n <GraphLabel\n label={node.label}\n style={{\n ...defaultGraphLabelStyle(node.label),\n ...resolveSignalValue(props.labelStyle),\n }}\n />\n </Group>\n )}\n </Group>\n ))}\n </Group>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["route"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { PibblNode } from "@pibbl/core";
|
|
2
|
+
import type { ChordBandGeometry, ChordData, ChordDiagramProps, ChordLayout, ChordOptions, ChordRibbonGeometry, EdgeStyle, MarkInteraction, Style } from "./types.js";
|
|
3
|
+
/** Computes a directed chord layout, aggregating repeated ordered transfer pairs.
|
|
4
|
+
* @param data - Ordered category transfers. See {@link ChordData}.
|
|
5
|
+
* @param options - Accessors, bounds, angular spacing, and unit. See {@link ChordOptions}.
|
|
6
|
+
* @returns Immutable bands and directed ribbon geometry. See {@link ChordLayout}.
|
|
7
|
+
*/
|
|
8
|
+
export declare function layoutChords<C, T>(data: ChordData<C, T>, options: ChordOptions<C, T>): ChordLayout<C, T>;
|
|
9
|
+
/** Default outer-band paint for custom chord compositions.
|
|
10
|
+
* @param _band - Band geometry.
|
|
11
|
+
* @returns Resolved band paint.
|
|
12
|
+
* @see {@link ChordBand}
|
|
13
|
+
*/
|
|
14
|
+
export declare function defaultChordBandStyle<C>(_band: ChordBandGeometry<C>): EdgeStyle;
|
|
15
|
+
/** Default directed-ribbon paint for custom chord compositions.
|
|
16
|
+
* @param _ribbon - Ribbon geometry.
|
|
17
|
+
* @returns Resolved ribbon paint.
|
|
18
|
+
* @see {@link ChordRibbon}
|
|
19
|
+
*/
|
|
20
|
+
export declare function defaultChordRibbonStyle<T>(_ribbon: ChordRibbonGeometry<T>): EdgeStyle;
|
|
21
|
+
/** Draw one supplied category band.
|
|
22
|
+
* @param argument - Band props.
|
|
23
|
+
* @returns Canvas node.
|
|
24
|
+
* @see {@link ChordBandGeometry}
|
|
25
|
+
*/
|
|
26
|
+
export declare function ChordBand<C>({ band, style: input, ...events }: MarkInteraction & {
|
|
27
|
+
readonly band: ChordBandGeometry<C>;
|
|
28
|
+
readonly style?: Style<EdgeStyle>;
|
|
29
|
+
}): PibblNode;
|
|
30
|
+
/** Draw one supplied directed ribbon.
|
|
31
|
+
* @param argument - Ribbon props.
|
|
32
|
+
* @returns Canvas node.
|
|
33
|
+
* @see {@link ChordRibbonGeometry}
|
|
34
|
+
*/
|
|
35
|
+
export declare function ChordRibbon<T>({ ribbon, style: input, ...events }: MarkInteraction & {
|
|
36
|
+
readonly ribbon: ChordRibbonGeometry<T>;
|
|
37
|
+
readonly style?: Style<EdgeStyle>;
|
|
38
|
+
}): PibblNode;
|
|
39
|
+
/** Render a directed transfer chord diagram.
|
|
40
|
+
* @param props - Transfer data and presentation.
|
|
41
|
+
* @returns Canvas node.
|
|
42
|
+
* @see {@link layoutChords}
|
|
43
|
+
*/
|
|
44
|
+
export declare function ChordDiagram<C, T>(props: ChordDiagramProps<C, T>): PibblNode;
|