vega-lite
Version:
Vega-Lite is a concise high-level language for interactive visualization.
35 lines • 1.91 kB
TypeScript
import type { SignalRef } from 'vega';
import { FieldName } from '../channeldef.js';
import { Config } from '../config.js';
import { Encoding } from '../encoding.js';
import { ParameterPredicate } from '../predicate.js';
import { ExprRef } from '../expr.js';
import { Projection } from '../projection.js';
import { TopLevelSelectionParameter } from '../selection.js';
import { GenericSpec, NormalizedSpec } from '../spec/index.js';
import { GenericLayerSpec, NormalizedLayerSpec } from '../spec/layer.js';
import { GenericUnitSpec, NormalizedUnitSpec } from '../spec/unit.js';
import { Dict } from '../util.js';
import { RepeaterValue } from './repeater.js';
export type Normalize<S extends GenericSpec<any, any, any, any>, NS extends NormalizedSpec> = (spec: S, params: NormalizerParams) => NS;
export interface ExtraNormalizer<S extends GenericSpec<any, any, any, FieldName>, // Input type
O extends NormalizedSpec, // Output Type
SN extends GenericSpec<any, any, any, FieldName> = S> {
name: string;
hasMatchingType: (spec: GenericSpec<any, any, any, any>, config: Config) => spec is S;
run(spec: S, params: NormalizerParams, normalize: Normalize<SN, O>): O;
}
export type NonFacetUnitNormalizer<S extends GenericUnitSpec<any, any>> = ExtraNormalizer<S, NormalizedUnitSpec | NormalizedLayerSpec, GenericUnitSpec<any, any> | GenericLayerSpec<any>>;
export type NormalizeLayerOrUnit = Normalize<GenericUnitSpec<any, any> | GenericLayerSpec<any>, NormalizedUnitSpec | NormalizedLayerSpec>;
export interface NormalizerParams {
config: Config<SignalRef>;
parentEncoding?: Encoding<FieldName>;
parentProjection?: Projection<ExprRef>;
repeater?: RepeaterValue;
repeaterPrefix?: string;
selections?: TopLevelSelectionParameter[];
emptySelections?: Dict<boolean>;
selectionPredicates?: Dict<ParameterPredicate[]>;
path?: string[];
}
//# sourceMappingURL=base.d.ts.map