graphein 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +80 -1
- package/dist/index.js +602 -296
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3050,6 +3050,14 @@ interface Frame {
|
|
|
3050
3050
|
xLabelAngle: number;
|
|
3051
3051
|
}
|
|
3052
3052
|
declare const TICK_SIZE = 6;
|
|
3053
|
+
/**
|
|
3054
|
+
* The default outer padding for a visual: none. Charts reach the container edges
|
|
3055
|
+
* so the consuming application owns all outer spacing. Functional space (axis
|
|
3056
|
+
* gutters, title band, legend strips, mark-extent insets) is reserved on top of
|
|
3057
|
+
* this by {@link computeFrame} and the renderers, so nothing clips. Callers merge
|
|
3058
|
+
* `spec.padding` over it (`{ ...NO_PADDING, ...spec.padding }`) to allow overrides.
|
|
3059
|
+
*/
|
|
3060
|
+
declare const NO_PADDING: Insets;
|
|
3053
3061
|
/** Reserve space for every region and return the plot rect + positioned chrome. */
|
|
3054
3062
|
declare function computeFrame(input: FrameInput): Frame;
|
|
3055
3063
|
|
|
@@ -3865,6 +3873,14 @@ interface RenderOptions {
|
|
|
3865
3873
|
* flat so the chrome isn't doubled. Optional; defaults to false.
|
|
3866
3874
|
*/
|
|
3867
3875
|
frame?: boolean;
|
|
3876
|
+
/**
|
|
3877
|
+
* Publish the chart's effective config (spec minus `data`) to a
|
|
3878
|
+
* `data-graphein-spec` DOM attribute on the root and re-render when an external
|
|
3879
|
+
* tool edits it (merging the edit with the chart's in-memory data). Lets browser
|
|
3880
|
+
* tools identify and live-edit the chart from the DOM. Optional; defaults to true.
|
|
3881
|
+
* Set `false` to opt out (no attribute, no observer).
|
|
3882
|
+
*/
|
|
3883
|
+
inspect?: boolean;
|
|
3868
3884
|
}
|
|
3869
3885
|
interface ChartInstance {
|
|
3870
3886
|
/** Re-render with a new spec (data or config changes). */
|
|
@@ -3904,6 +3920,62 @@ declare global {
|
|
|
3904
3920
|
}
|
|
3905
3921
|
declare function render(target: HTMLElement | string, spec: ChartSpec, options?: RenderOptions): ChartInstance;
|
|
3906
3922
|
|
|
3923
|
+
/**
|
|
3924
|
+
* DOM spec publishing — makes a rendered chart identifiable and editable by
|
|
3925
|
+
* external tools (agents, devtools extensions, page scripts) straight from the
|
|
3926
|
+
* DOM, with no JS handle required.
|
|
3927
|
+
*
|
|
3928
|
+
* Each chart/dashboard root carries:
|
|
3929
|
+
* - `data-graphein-spec`: the effective spec **minus its `data` array** (config
|
|
3930
|
+
* only), JSON-serialized. Compact, and no row-level data leaks into the DOM.
|
|
3931
|
+
* - `data-graphein-type`: the chart/dashboard `type`, so a tool can find and
|
|
3932
|
+
* filter Graphein visuals cheaply (`querySelectorAll('[data-graphein-spec]')`)
|
|
3933
|
+
* without parsing JSON.
|
|
3934
|
+
*
|
|
3935
|
+
* Editing `data-graphein-spec` is **two-way**: a {@link MutationObserver} reports
|
|
3936
|
+
* the change and the runtime re-renders, merging the edited config with the
|
|
3937
|
+
* chart's existing in-memory data (see the runtime's `onExternalEdit`). Malformed
|
|
3938
|
+
* edits are ignored so a tool can't break a live chart mid-keystroke.
|
|
3939
|
+
*/
|
|
3940
|
+
/** Attribute holding the JSON-serialized config (spec without `data`). */
|
|
3941
|
+
declare const SPEC_ATTR = "data-graphein-spec";
|
|
3942
|
+
/** Attribute holding the chart/dashboard type, for cheap querying. */
|
|
3943
|
+
declare const TYPE_ATTR = "data-graphein-type";
|
|
3944
|
+
interface SpecLike {
|
|
3945
|
+
type?: unknown;
|
|
3946
|
+
data?: unknown;
|
|
3947
|
+
}
|
|
3948
|
+
/** A shallow copy of a spec without its top-level `data` array (config only). */
|
|
3949
|
+
declare function stripData<T extends SpecLike>(spec: T): Omit<T, 'data'>;
|
|
3950
|
+
/** Serialize a spec's config (its `data` excluded) to a JSON string. */
|
|
3951
|
+
declare function serializeSpec(spec: SpecLike): string;
|
|
3952
|
+
interface Inspector {
|
|
3953
|
+
/**
|
|
3954
|
+
* Publish `spec`'s config to the root. Writes `data-graphein-spec` only when the
|
|
3955
|
+
* serialized config actually changed (so resize/animation frames don't churn the
|
|
3956
|
+
* DOM), and refreshes `data-graphein-type`.
|
|
3957
|
+
*/
|
|
3958
|
+
write(spec: SpecLike): void;
|
|
3959
|
+
/** Stop observing. Leaves the published attributes in place. */
|
|
3960
|
+
destroy(): void;
|
|
3961
|
+
}
|
|
3962
|
+
interface InspectorOptions {
|
|
3963
|
+
/**
|
|
3964
|
+
* Invoked when an external agent edits `data-graphein-spec` to a value the
|
|
3965
|
+
* inspector didn't write, with the parsed config object. JSON parse failures and
|
|
3966
|
+
* non-object payloads are swallowed (the last good render is kept).
|
|
3967
|
+
*/
|
|
3968
|
+
onExternalEdit(config: Record<string, unknown>): void;
|
|
3969
|
+
}
|
|
3970
|
+
/**
|
|
3971
|
+
* Wire spec-publishing + two-way editing onto a chart/dashboard root element.
|
|
3972
|
+
*
|
|
3973
|
+
* The {@link MutationObserver} is created only when the API exists, so this is a
|
|
3974
|
+
* no-op observer in SSR/Node/headless environments (attributes are still set,
|
|
3975
|
+
* which is harmless).
|
|
3976
|
+
*/
|
|
3977
|
+
declare function createInspector(root: HTMLElement, options: InspectorOptions): Inspector;
|
|
3978
|
+
|
|
3907
3979
|
/**
|
|
3908
3980
|
* Dashboard auto-wiring — pure spec rewriting that turns a set of views into
|
|
3909
3981
|
* cross-interacting ones by injecting `params` (sources), `highlight`, and
|
|
@@ -3947,6 +4019,13 @@ declare function wireViews(views: DashboardView[], interactions: 'auto' | 'none'
|
|
|
3947
4019
|
interface RenderDashboardOptions {
|
|
3948
4020
|
/** Share a bus with charts/dashboards outside this one. */
|
|
3949
4021
|
store?: SelectionStore;
|
|
4022
|
+
/**
|
|
4023
|
+
* Publish each view's config (and the dashboard's) to `data-graphein-spec` DOM
|
|
4024
|
+
* attributes and re-render on external edits, so browser tools can identify and
|
|
4025
|
+
* live-edit the page from the DOM. Optional; defaults to true. Set `false` to opt
|
|
4026
|
+
* out for the whole dashboard (propagates to every view).
|
|
4027
|
+
*/
|
|
4028
|
+
inspect?: boolean;
|
|
3950
4029
|
}
|
|
3951
4030
|
interface DashboardInstance {
|
|
3952
4031
|
/** Re-render with a new dashboard spec (keeps the shared store/selection). */
|
|
@@ -4009,4 +4088,4 @@ declare function renderDashboard(target: HTMLElement | string, spec: DashboardSp
|
|
|
4009
4088
|
*/
|
|
4010
4089
|
declare const VERSION = "0.1.0";
|
|
4011
4090
|
|
|
4012
|
-
export { type AggOp, type AggregateOp, type AggregateTransform, type AnimateOptions, type AnimationConfig, type AnimationHandle, type Annotation, type AnySpec, type ArcOptions, type AreaOptions, type AreaPoint, type AreaSpec, type AxesConfig, type AxisConfig, type AxisInput, type BackingSize, type BandScale, type BandScaleOptions, type BarSpec, type BaseSlicerSpec, type BaseSpec, type BinLayout, type BinTransform, type BoxSpec, type BuildOptions, type BulletSpec, CARTESIAN_TYPES, CHART_TYPES, type CalculateTransform, type CalendarHeatmapSpec, CanvasLayer, type CanvasPillStyle, type CanvasTextCmd, type CartesianChartSpec, type CartesianInteractionBuilder, type CartesianModel, type CartesianRenderer, type CategoryInsights, type ChartInsights, type ChartInstance, type ChartSpec, type ChartSummary, type ChartType, type ChoroplethSpec, type ColorScale, type ColumnProfile, type ComboAxisModel, type ComboLayer, type ComboLayerModel, type ComboMark, type ComboModel, type ComboSide, type ComboSpec, type Comparable, type ConditionalFormat, type ContinuousScale, type ControllerSelect, type Curve, type CurveType, type CustomRenderer, DEFAULT_ENTRANCE_DURATION, DEFAULT_ROUGH_STYLE, DEFAULT_UPDATE_DURATION, DIM_ALPHA, type DashboardCell, type DashboardInstance, type DashboardLayout, type DashboardResponsiveSpan, type DashboardSection, type DashboardSpec, type DashboardView, type DateRangeSlicerSpec, type Datum, type DecimateOptions, type Dimensions, type DropdownSlicerSpec, type DumbbellSpec, type EasingFunction, type Emphasis, type Encoding, type EntranceContext, ExpressionError, type Extent, FACETABLE_TYPES, FUNCTION_NAMES, type FacetConfig, type FacetLayout, type FacetPanel, type FieldDef, type FieldType, type FieldValue, type FillStyle, type FilterClause, type FilterPredicate, type FilterTransform, type FoldTransform, type Frame, type FrameInput, type FunnelSpec, type GaugeSpec, type GeoFeature, type GeoFeatureCollection, type GeoGeometry, type GeoMultiPolygon, type GeoPolygon, type GeoPosition, type GroupedMap, type HachureSegment, type HeadlessTarget, type HeatmapSpec, type HighlightConfig, type HistogramBin, type HistogramBinDatum, type HistogramModel, type HistogramSpec, type Hover, type IconRule, type Insets, type InsightFamily, type InsightOptions, InteractionController, type InteractionLink, type InteractionModel, type Interpolator, type JsonPatchOp, type KpiComparison, type KpiSpec, type LegendConfig, type LegendHitRegion, type LegendItem, type LegendPosition, type LegendSymbol, type LineOptions, type LineSpec, type LinearScaleOptions, type LintFinding, type ListSlicerSpec, type LiteralPredicate, type LogScaleOptions, type MapProjection, type MarkOptions, type MatrixSpec, type MatrixValueDef, type NumberFormatSpec, type OKLCH, type OKLab, type OverlayTextOpts, type PathSink, type PieLabels, type PieSpec, type PivotCell, type PivotFlatRow, type PivotHeaderNode, type PivotOptions, type PivotResult, type PivotValueDef, type Point, type PointRef, type PointScale, type PointScaleOptions, type PointSelection, type PositionedLegendItem, type RGBA, type RangeSelection, type RangeSlicerSpec, type RecommendOptions, type RecommendedChart, type Rect, type RegressionFit, type RenderContext, type RenderDashboardOptions, type RenderDiagnostic, type RenderOptions, type RenderReport, type RepairResult, type ReportInput, type ReportSeverity, type ResolvedEntrance, type ResolvedSeries, type ResolvedSketch, type Rng, type RoughContext, RoughPen, type RoughStyle, SKETCH_FONT_FAMILY, SKETCH_FONT_NAME, SLICER_TYPES, SR_ONLY_STYLE, type SankeySpec, type ScaleConfig, type ScaleType, type ScatterInsights, type ScatterSpec, type SearchSlicerSpec, type SelectConfig, type SelectionChangeListener, type SelectionDef, type SelectionListener, type SelectionParam, type SelectionStore, type SelectionValue, type SeriesInsights, type SetSelection, type SharedScales, type Size, type SketchConfig, type SlicerSpec, type SlicerType, type SlopeSpec, Surface, TICK_SIZE, TIME_UNITS, TRANSFORM_KINDS, type TableColumn, type TableSpec, type TextMetricsLite, type TextSelection, type ThemeColors, type ThemeFont, type ThemeInput, type ThemeTokens, type Tick, type TimeScaleOptions, type TimeUnit, type TimeUnitTransform, type TitleConfig, type TitleInput, Tooltip, type TooltipConfig, type TooltipContent, type TooltipRow, type Transform, type TreemapSpec, type TrendlineConfig, type UpdateContext, VERSION, type ValidationError, type ValidationResult, type ValueInsights, type ValueRef, type ValueRule, type WaterfallSpec, type WiredView, type XKind, type XModel, type YModel, aggregateValues, analyzeChart, animate, applyA11y, applyAggregate, applyBin, applyCalculate, applyFilter, applyFold, applyPatch, applyPick, applyTimeUnit, applyTransform, applyTransforms, arc, area, assertValidSpec, autoInsightAnnotations, backOut, bandScale, bounceOut, buildCartesianInteraction, buildCartesianModel, buildComboModel, buildDataTableFallback, buildFacetModels, buildHistogramModel, buildRenderReport, cartesianInteractionBuilders, cartesianRenderers, categorical, categoricalSchemes, chartTitleText, chartTypeLabel, checkExpression, clamp01, clamp255, compileExpression, compilePredicate, computeBackingSize, computeBins, computeFrame, computeSeriesInsights, contrastRatio, createDiv, createRoughPen, createSelectionStore, cubicIn, cubicInOut, cubicOut, curveCatmullRom, curveLinear, curveMonotoneX, curveStep, curveStepAfter, curveStepBefore, customRenderers, darkTheme, decimate, defaultSpan, dependentParams, diverging, divergingColorScale, divergingSchemes, drawAnnotationLabels, drawAnnotations, drawAxesUnderlay, drawFacet, drawLegend, drawOverlay, drawTitle, drawTrendlineLabels, drawTrendlines, easings, elasticOut, ellipsize, ensureSketchFont, expoInOut, expoOut, facetReport, fillParentStyle, filterRows, fontString, formatDate, formatNumber, formatValue, getDevicePixelRatio, groupBy, hashString, inferFieldType, inferFieldTypes, inferValueType, inheritInto, interpolateArray, interpolateNumber, interpolateNumberArray, interpolateObject, interpolateOklab, interpolateRgb, isBrowser, isEmptyValue, isFaceted, isParamClause, isSlicerType, keyFields, legendSwatchWidth, lightTheme, line, linear, linearRegression, linearScale, linearToSrgb, lintSpec, literalToValue, logScale, lttbRun, makeMatcher, matchesValue, measureText, monotoneXTangents, mulberry32, niceDomain, oklabToOklch, oklabToRgb, oklchToOklab, ordinalColorScale, overlayTextToCanvasCmd, paintCanvasText, paintLegendSwatch, parseColor, parseNumberFormat, pivot, placeViews, pointScale, polygonHachureLines, prefersReducedMotion, prettyDate, profileColumns, quadIn, quadInOut, quadOut, rampFromStops, readableTextColor, recommendChart, relativeLuminance, render, renderDashboard, renderToContext, repairReport, repairSpec, resolveCurve, resolveDashboardLayout, resolveDashboardSections, resolveEmphasis, resolveEntrance, resolveFilterValues, resolveInsightOptions, resolveSketch, resolveTheme, resolveUpdate, resolveValueRef, rgbToOklab, rgbaToCss, rotatePoint, roundedRect, sampleArc, sequential, sequentialColorScale, sequentialSchemes, setMeasureContext, setStyle, sinInOut, slicerParamName, smartDate, specFields, srgbToLinear, summarize, summarizeChart, themes, tickIncrement, tickStep, ticks, timeScale, timeTickFormat, timeTicks, toHex, toPointer, tooltipEnabled, truncateTo, validateDashboard, validateSpec, wireViews, withAlpha, withSketchFont };
|
|
4091
|
+
export { type AggOp, type AggregateOp, type AggregateTransform, type AnimateOptions, type AnimationConfig, type AnimationHandle, type Annotation, type AnySpec, type ArcOptions, type AreaOptions, type AreaPoint, type AreaSpec, type AxesConfig, type AxisConfig, type AxisInput, type BackingSize, type BandScale, type BandScaleOptions, type BarSpec, type BaseSlicerSpec, type BaseSpec, type BinLayout, type BinTransform, type BoxSpec, type BuildOptions, type BulletSpec, CARTESIAN_TYPES, CHART_TYPES, type CalculateTransform, type CalendarHeatmapSpec, CanvasLayer, type CanvasPillStyle, type CanvasTextCmd, type CartesianChartSpec, type CartesianInteractionBuilder, type CartesianModel, type CartesianRenderer, type CategoryInsights, type ChartInsights, type ChartInstance, type ChartSpec, type ChartSummary, type ChartType, type ChoroplethSpec, type ColorScale, type ColumnProfile, type ComboAxisModel, type ComboLayer, type ComboLayerModel, type ComboMark, type ComboModel, type ComboSide, type ComboSpec, type Comparable, type ConditionalFormat, type ContinuousScale, type ControllerSelect, type Curve, type CurveType, type CustomRenderer, DEFAULT_ENTRANCE_DURATION, DEFAULT_ROUGH_STYLE, DEFAULT_UPDATE_DURATION, DIM_ALPHA, type DashboardCell, type DashboardInstance, type DashboardLayout, type DashboardResponsiveSpan, type DashboardSection, type DashboardSpec, type DashboardView, type DateRangeSlicerSpec, type Datum, type DecimateOptions, type Dimensions, type DropdownSlicerSpec, type DumbbellSpec, type EasingFunction, type Emphasis, type Encoding, type EntranceContext, ExpressionError, type Extent, FACETABLE_TYPES, FUNCTION_NAMES, type FacetConfig, type FacetLayout, type FacetPanel, type FieldDef, type FieldType, type FieldValue, type FillStyle, type FilterClause, type FilterPredicate, type FilterTransform, type FoldTransform, type Frame, type FrameInput, type FunnelSpec, type GaugeSpec, type GeoFeature, type GeoFeatureCollection, type GeoGeometry, type GeoMultiPolygon, type GeoPolygon, type GeoPosition, type GroupedMap, type HachureSegment, type HeadlessTarget, type HeatmapSpec, type HighlightConfig, type HistogramBin, type HistogramBinDatum, type HistogramModel, type HistogramSpec, type Hover, type IconRule, type Insets, type InsightFamily, type InsightOptions, type Inspector, type InspectorOptions, InteractionController, type InteractionLink, type InteractionModel, type Interpolator, type JsonPatchOp, type KpiComparison, type KpiSpec, type LegendConfig, type LegendHitRegion, type LegendItem, type LegendPosition, type LegendSymbol, type LineOptions, type LineSpec, type LinearScaleOptions, type LintFinding, type ListSlicerSpec, type LiteralPredicate, type LogScaleOptions, type MapProjection, type MarkOptions, type MatrixSpec, type MatrixValueDef, NO_PADDING, type NumberFormatSpec, type OKLCH, type OKLab, type OverlayTextOpts, type PathSink, type PieLabels, type PieSpec, type PivotCell, type PivotFlatRow, type PivotHeaderNode, type PivotOptions, type PivotResult, type PivotValueDef, type Point, type PointRef, type PointScale, type PointScaleOptions, type PointSelection, type PositionedLegendItem, type RGBA, type RangeSelection, type RangeSlicerSpec, type RecommendOptions, type RecommendedChart, type Rect, type RegressionFit, type RenderContext, type RenderDashboardOptions, type RenderDiagnostic, type RenderOptions, type RenderReport, type RepairResult, type ReportInput, type ReportSeverity, type ResolvedEntrance, type ResolvedSeries, type ResolvedSketch, type Rng, type RoughContext, RoughPen, type RoughStyle, SKETCH_FONT_FAMILY, SKETCH_FONT_NAME, SLICER_TYPES, SPEC_ATTR, SR_ONLY_STYLE, type SankeySpec, type ScaleConfig, type ScaleType, type ScatterInsights, type ScatterSpec, type SearchSlicerSpec, type SelectConfig, type SelectionChangeListener, type SelectionDef, type SelectionListener, type SelectionParam, type SelectionStore, type SelectionValue, type SeriesInsights, type SetSelection, type SharedScales, type Size, type SketchConfig, type SlicerSpec, type SlicerType, type SlopeSpec, Surface, TICK_SIZE, TIME_UNITS, TRANSFORM_KINDS, TYPE_ATTR, type TableColumn, type TableSpec, type TextMetricsLite, type TextSelection, type ThemeColors, type ThemeFont, type ThemeInput, type ThemeTokens, type Tick, type TimeScaleOptions, type TimeUnit, type TimeUnitTransform, type TitleConfig, type TitleInput, Tooltip, type TooltipConfig, type TooltipContent, type TooltipRow, type Transform, type TreemapSpec, type TrendlineConfig, type UpdateContext, VERSION, type ValidationError, type ValidationResult, type ValueInsights, type ValueRef, type ValueRule, type WaterfallSpec, type WiredView, type XKind, type XModel, type YModel, aggregateValues, analyzeChart, animate, applyA11y, applyAggregate, applyBin, applyCalculate, applyFilter, applyFold, applyPatch, applyPick, applyTimeUnit, applyTransform, applyTransforms, arc, area, assertValidSpec, autoInsightAnnotations, backOut, bandScale, bounceOut, buildCartesianInteraction, buildCartesianModel, buildComboModel, buildDataTableFallback, buildFacetModels, buildHistogramModel, buildRenderReport, cartesianInteractionBuilders, cartesianRenderers, categorical, categoricalSchemes, chartTitleText, chartTypeLabel, checkExpression, clamp01, clamp255, compileExpression, compilePredicate, computeBackingSize, computeBins, computeFrame, computeSeriesInsights, contrastRatio, createDiv, createInspector, createRoughPen, createSelectionStore, cubicIn, cubicInOut, cubicOut, curveCatmullRom, curveLinear, curveMonotoneX, curveStep, curveStepAfter, curveStepBefore, customRenderers, darkTheme, decimate, defaultSpan, dependentParams, diverging, divergingColorScale, divergingSchemes, drawAnnotationLabels, drawAnnotations, drawAxesUnderlay, drawFacet, drawLegend, drawOverlay, drawTitle, drawTrendlineLabels, drawTrendlines, easings, elasticOut, ellipsize, ensureSketchFont, expoInOut, expoOut, facetReport, fillParentStyle, filterRows, fontString, formatDate, formatNumber, formatValue, getDevicePixelRatio, groupBy, hashString, inferFieldType, inferFieldTypes, inferValueType, inheritInto, interpolateArray, interpolateNumber, interpolateNumberArray, interpolateObject, interpolateOklab, interpolateRgb, isBrowser, isEmptyValue, isFaceted, isParamClause, isSlicerType, keyFields, legendSwatchWidth, lightTheme, line, linear, linearRegression, linearScale, linearToSrgb, lintSpec, literalToValue, logScale, lttbRun, makeMatcher, matchesValue, measureText, monotoneXTangents, mulberry32, niceDomain, oklabToOklch, oklabToRgb, oklchToOklab, ordinalColorScale, overlayTextToCanvasCmd, paintCanvasText, paintLegendSwatch, parseColor, parseNumberFormat, pivot, placeViews, pointScale, polygonHachureLines, prefersReducedMotion, prettyDate, profileColumns, quadIn, quadInOut, quadOut, rampFromStops, readableTextColor, recommendChart, relativeLuminance, render, renderDashboard, renderToContext, repairReport, repairSpec, resolveCurve, resolveDashboardLayout, resolveDashboardSections, resolveEmphasis, resolveEntrance, resolveFilterValues, resolveInsightOptions, resolveSketch, resolveTheme, resolveUpdate, resolveValueRef, rgbToOklab, rgbaToCss, rotatePoint, roundedRect, sampleArc, sequential, sequentialColorScale, sequentialSchemes, serializeSpec, setMeasureContext, setStyle, sinInOut, slicerParamName, smartDate, specFields, srgbToLinear, stripData, summarize, summarizeChart, themes, tickIncrement, tickStep, ticks, timeScale, timeTickFormat, timeTicks, toHex, toPointer, tooltipEnabled, truncateTo, validateDashboard, validateSpec, wireViews, withAlpha, withSketchFont };
|