@malloydata/render 0.0.203-dev241022210817 → 0.0.203-dev241023170054

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.
@@ -1,4 +1,4 @@
1
1
  import { Explore, Tag } from '@malloydata/malloy';
2
2
  import { BarChartSettings } from './get-bar_chart-settings';
3
3
  import { RenderResultMetadata, VegaChartProps } from '../types';
4
- export declare function generateBarChartVegaLiteSpec(explore: Explore, settings: BarChartSettings, metadata: RenderResultMetadata, chartTag: Tag): VegaChartProps;
4
+ export declare function generateBarChartVegaSpec(explore: Explore, settings: BarChartSettings, metadata: RenderResultMetadata, chartTag: Tag): VegaChartProps;
@@ -5,10 +5,7 @@ export type BarChartSettings = {
5
5
  yChannel: Channel;
6
6
  seriesChannel: Channel;
7
7
  isStack: boolean;
8
+ interactive: boolean;
9
+ hideReferences: boolean;
8
10
  };
9
- export declare function getBarChartSettings(explore: Explore, tagOverride?: Tag): {
10
- xChannel: Channel;
11
- yChannel: Channel;
12
- seriesChannel: Channel;
13
- isStack: boolean;
14
- };
11
+ export declare function getBarChartSettings(explore: Explore, tagOverride?: Tag): BarChartSettings;
@@ -0,0 +1,16 @@
1
+ import { Explore } from '@malloydata/malloy';
2
+ import { MalloyVegaDataRecord, RenderResultMetadata } from '../types';
3
+ type CustomTooltipGetterOptions = {
4
+ explore: Explore;
5
+ records: MalloyVegaDataRecord[];
6
+ metadata: RenderResultMetadata;
7
+ };
8
+ export declare function getCustomTooltipEntries({ explore, records, metadata, }: CustomTooltipGetterOptions): {
9
+ label: string;
10
+ value: string | (() => import("solid-js").JSX.Element);
11
+ highlight: boolean;
12
+ entryType: "list-item" | "block";
13
+ ignoreHighlightState?: boolean | undefined;
14
+ color?: string | undefined;
15
+ }[];
16
+ export {};
@@ -1,4 +1,4 @@
1
1
  import { ChartTooltipEntry } from '../types';
2
2
  export declare function DefaultChartTooltip(props: {
3
- data: ChartTooltipEntry[];
3
+ data: ChartTooltipEntry;
4
4
  }): import("solid-js").JSX.Element;
@@ -7,7 +7,7 @@ export type ChartLayoutSettings = {
7
7
  labelAngle: number;
8
8
  labelAlign?: string;
9
9
  labelBaseline?: string;
10
- labelSize: number;
10
+ labelLimit: number;
11
11
  height: number;
12
12
  titleSize: number;
13
13
  hidden: boolean;
@@ -16,6 +16,7 @@ export type ChartLayoutSettings = {
16
16
  width: number;
17
17
  tickCount?: number;
18
18
  hidden: boolean;
19
+ yTitleSize: number;
19
20
  };
20
21
  yScale: {
21
22
  domain: number[];
@@ -10,6 +10,7 @@ export declare const baseVegaConfig: () => {
10
10
  };
11
11
  axisY: {
12
12
  gridColor: string;
13
+ grid: boolean;
13
14
  tickColor: string;
14
15
  domain: boolean;
15
16
  labelFont: string;
@@ -4,3 +4,4 @@ export declare function getFieldPathArrayFromRoot(f: Field | Explore): string[];
4
4
  export declare function getFieldPathFromRoot(f: Field | Explore): string;
5
5
  export declare function getFieldPathBetweenFields(parentField: Field | Explore, childField: Field | Explore): string;
6
6
  export declare function getFieldFromRootPath(root: Explore, path: string): Field;
7
+ export declare function getFieldReferenceId(field: Field): string | null;
@@ -1,2 +1,2 @@
1
1
  import { AtomicField, DataColumn } from '@malloydata/malloy';
2
- export declare function renderLink(f: AtomicField, data: DataColumn): "∅" | import("solid-js").JSX.Element;
2
+ export declare function renderLink(f: AtomicField, data: DataColumn): import("solid-js").JSX.Element | "∅";
@@ -1,2 +1,2 @@
1
1
  import { RendererProps } from './apply-renderer';
2
- export declare function renderList(props: RendererProps): "∅" | import("solid-js").JSX.Element;
2
+ export declare function renderList(props: RendererProps): import("solid-js").JSX.Element | "∅";
@@ -0,0 +1,43 @@
1
+ interface BrushDataBase {
2
+ fieldRefId: string;
3
+ sourceId: string;
4
+ }
5
+ interface BrushDataDimension extends BrushDataBase {
6
+ type: 'dimension';
7
+ value: (string | number | boolean | Date)[];
8
+ }
9
+ interface BrushDataMeasure extends BrushDataBase {
10
+ type: 'measure';
11
+ value: number[];
12
+ }
13
+ export interface ModifyBrushOp {
14
+ type: 'add' | 'remove';
15
+ sourceId: string;
16
+ value?: BrushData;
17
+ }
18
+ interface BrushDataMeasureRange extends BrushDataBase {
19
+ type: 'measure-range';
20
+ value: [number, number];
21
+ }
22
+ export type BrushData = BrushDataDimension | BrushDataMeasure | BrushDataMeasureRange;
23
+ export type VegaBrushOutput = {
24
+ sourceId: string;
25
+ data: BrushData | null;
26
+ debounce?: number | {
27
+ time?: number;
28
+ strategy?: 'always' | 'on-empty';
29
+ };
30
+ };
31
+ export interface ResultStoreData {
32
+ brushes: BrushData[];
33
+ }
34
+ export declare function createResultStore(): {
35
+ store: ResultStoreData;
36
+ applyBrushOps: (ops: ModifyBrushOp[]) => void;
37
+ };
38
+ export type ResultStore = ReturnType<typeof createResultStore>;
39
+ export declare function useResultStore(): {
40
+ store: ResultStoreData;
41
+ applyBrushOps: (ops: ModifyBrushOp[]) => void;
42
+ };
43
+ export {};
@@ -1,7 +1,10 @@
1
1
  /// <reference path="../../src/vega.d.ts" />
2
- import { DataColumn, Explore, Field, QueryData, Tag } from '@malloydata/malloy';
3
- import { Item } from 'vega';
2
+ import { DataColumn, DataRecord, Explore, Field, QueryData, QueryDataRow, Tag } from '@malloydata/malloy';
3
+ import { Item, View } from 'vega';
4
+ import { JSX } from 'solid-js';
5
+ import { ResultStore } from './result-store/result-store';
4
6
  export type VegaSpec = any;
7
+ export type DataInjector = (field: Explore, data: QueryData, spec: VegaSpec) => void;
5
8
  export type VegaChartProps = {
6
9
  spec: VegaSpec;
7
10
  specType: 'vega' | 'vega-lite';
@@ -10,7 +13,8 @@ export type VegaChartProps = {
10
13
  totalWidth: number;
11
14
  totalHeight: number;
12
15
  chartType: string;
13
- getTooltipData?: (item: Item) => ChartTooltipEntry[] | null;
16
+ injectData?: DataInjector;
17
+ getTooltipData?: (item: Item, view: View) => ChartTooltipEntry | null;
14
18
  };
15
19
  export type FieldHeaderRangeMap = Record<string, {
16
20
  abs: [number, number];
@@ -38,6 +42,7 @@ export interface RenderResultMetadata {
38
42
  modelTag: Tag;
39
43
  resultTag: Tag;
40
44
  rootField: Field | Explore;
45
+ store: ResultStore;
41
46
  }
42
47
  export type MalloyClickEventPayload = {
43
48
  field: Field;
@@ -50,7 +55,21 @@ export type MalloyClickEventPayload = {
50
55
  };
51
56
  export type VegaConfigHandler = (chartType: string) => Record<string, unknown> | undefined;
52
57
  export type ChartTooltipEntry = {
53
- field: Field;
54
- fieldName: string;
55
- value: unknown;
58
+ title: string[];
59
+ entries: {
60
+ label: string;
61
+ value: string | (() => JSX.Element);
62
+ highlight: boolean;
63
+ entryType: 'list-item' | 'block';
64
+ ignoreHighlightState?: boolean;
65
+ color?: string;
66
+ }[];
67
+ };
68
+ export type DataRowWithRecord = QueryDataRow & {
69
+ __malloyDataRecord: DataRecord;
70
+ };
71
+ export type MalloyVegaDataRecord = {
72
+ __source: QueryDataRow & {
73
+ __malloyDataRecord: DataRecord;
74
+ };
56
75
  };
@@ -0,0 +1,22 @@
1
+ import { ChartLayoutSettings } from '../chart-layout-settings';
2
+ type MeasureAxisOptions = {
3
+ type: 'y';
4
+ title: string;
5
+ tickCount: string | number;
6
+ labelLimit: number;
7
+ fieldPath: string;
8
+ fieldRef: string | null;
9
+ brushMeasureRangeSourceId: string;
10
+ showBrushes?: boolean;
11
+ axisSettings: ChartLayoutSettings['yAxis'];
12
+ };
13
+ export declare function createMeasureAxis({ type, title, tickCount, labelLimit, fieldPath, showBrushes, axisSettings, }: MeasureAxisOptions): {
14
+ axis: any;
15
+ interactiveMarks: any[];
16
+ interactiveSignals: never[];
17
+ brushMeasureEvents: {
18
+ events: string;
19
+ update: string;
20
+ }[];
21
+ };
22
+ export {};
@@ -1,12 +1,22 @@
1
1
  /// <reference path="../../../src/vega.d.ts" />
2
2
  import { VegaJSON } from '../vega-types';
3
- import { EventListenerHandler } from 'vega';
3
+ import { EventListenerHandler, View, SignalListenerHandler } from 'vega';
4
+ import './vega-expr-addons';
5
+ import { Explore, ExploreField } from '@malloydata/malloy';
4
6
  type VegaChartProps = {
5
7
  spec: VegaJSON;
6
8
  type: 'vega' | 'vega-lite';
9
+ explore: Explore | ExploreField;
7
10
  width?: number;
8
11
  height?: number;
9
12
  onMouseOver?: EventListenerHandler;
13
+ onView?: (view: View) => void;
14
+ onViewInterface?: (viewInterface: ViewInterface) => void;
15
+ };
16
+ export type ViewInterface = {
17
+ view: View;
18
+ setSignalAndRun: (name: string, value: unknown) => void;
19
+ onSignal: (name: string, cb: SignalListenerHandler) => void;
10
20
  };
11
21
  export declare function VegaChart(props: VegaChartProps): import("solid-js").JSX.Element;
12
22
  export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ /// <reference path="../../../src/vega.d.ts" />
2
+ import { Item, SignalListenerHandler, View } from 'vega';
3
+ export declare function addSignalListenerIfExists(view: View, signal: string, cb: SignalListenerHandler): void;
4
+ export declare function setSignalIfExists(view: View, signal: string, value: unknown): void;
5
+ export declare function getMarkName(item: Item): string;
6
+ export declare function signalLogger(view: View, id?: string): (...signals: string[]) => void;
@@ -28,7 +28,7 @@ import { TextRendererFactory } from './html/text';
28
28
  import { DataVolumeRendererFactory } from './html/data_volume';
29
29
  import { DurationRendererFactory } from './html/duration';
30
30
  export declare class MainRendererFactory {
31
- static renderFactories: (JSONRendererFactory | TextRendererFactory | NumberRendererFactory | ShapeMapRendererFactory | PointMapRendererFactory | ImageRendererFactory | SegmentMapRendererFactory | VegaRendererFactory | LineChartRendererFactory | SparkLineRendererFactory | BarChartRendererFactory | BarSparkLineRendererFactory | AreaSparkLineRendererFactory | ColumnSparkLineRendererFactory | ScatterChartRendererFactory | DateRendererFactory | CurrencyRendererFactory | PercentRendererFactory | BytesRendererFactory | BooleanRendererFactory | LinkRendererFactory | UnsupportedRendererFactory | DataVolumeRendererFactory | DurationRendererFactory)[];
31
+ static renderFactories: (JSONRendererFactory | TextRendererFactory | NumberRendererFactory | ShapeMapRendererFactory | PointMapRendererFactory | ImageRendererFactory | SegmentMapRendererFactory | DurationRendererFactory | VegaRendererFactory | LineChartRendererFactory | SparkLineRendererFactory | BarChartRendererFactory | BarSparkLineRendererFactory | AreaSparkLineRendererFactory | ColumnSparkLineRendererFactory | ScatterChartRendererFactory | DateRendererFactory | CurrencyRendererFactory | PercentRendererFactory | BytesRendererFactory | BooleanRendererFactory | LinkRendererFactory | UnsupportedRendererFactory | DataVolumeRendererFactory)[];
32
32
  create(renderDef: RenderDef | undefined, tagged: Tag, document: Document, styleDefaults: StyleDefaults, rendererOptions: RendererOptions, field: Field | Explore, timezone?: string | undefined): Renderer | undefined;
33
33
  matchesRenderDef(renderDef: RenderDef | undefined, factory: RendererFactory<DataRenderOptions>): boolean | "" | undefined;
34
34
  matchesTag(tagged: Tag, factory: RendererFactory<DataRenderOptions>): boolean | "" | undefined;