@malloydata/render 0.0.220-dev241206021955 → 0.0.220-dev241206171130

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.
@@ -7,7 +7,8 @@ export type RendererProps = {
7
7
  tag: Tag;
8
8
  customProps?: Record<string, Record<string, unknown>>;
9
9
  };
10
- export declare function shouldRenderAs(f: Field | Explore, tagOverride?: Tag): "table" | "dashboard" | "image" | "list" | "scatter_chart" | "segment_map" | "shape_map" | "cell" | "link" | "chart";
10
+ export declare function shouldRenderChartAs(tag: Tag): string | undefined;
11
+ export declare function shouldRenderAs(f: Field | Explore, tagOverride?: Tag): string;
11
12
  export declare const NULL_SYMBOL = "\u2205";
12
13
  export declare function applyRenderer(props: RendererProps): {
13
14
  renderAs: string;
@@ -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 | "∅";
@@ -2,7 +2,7 @@ import { ModelDef, QueryResult, Result } from '@malloydata/malloy';
2
2
  import { Accessor } from 'solid-js';
3
3
  import './render.css';
4
4
  import { ComponentOptions, ICustomElement } from 'component-register';
5
- import { DashboardConfig, MalloyClickEventPayload, TableConfig, VegaConfigHandler } from './types';
5
+ import { DashboardConfig, DrillData, MalloyClickEventPayload, TableConfig, VegaConfigHandler } from './types';
6
6
  export type MalloyRenderProps = {
7
7
  result?: Result;
8
8
  queryResult?: QueryResult;
@@ -10,6 +10,7 @@ export type MalloyRenderProps = {
10
10
  scrollEl?: HTMLElement;
11
11
  modalElement?: HTMLElement;
12
12
  onClick?: (payload: MalloyClickEventPayload) => void;
13
+ onDrill?: (drillData: DrillData) => void;
13
14
  vegaConfigOverride?: VegaConfigHandler;
14
15
  tableConfig?: Partial<TableConfig>;
15
16
  dashboardConfig?: Partial<DashboardConfig>;
@@ -22,6 +23,7 @@ export declare const useConfig: () => {
22
23
  addCSSToShadowRoot: (css: string) => void;
23
24
  addCSSToDocument: (id: string, css: string) => void;
24
25
  onClick?: ((payload: MalloyClickEventPayload) => void) | undefined;
26
+ onDrill?: ((drillData: DrillData) => void) | undefined;
25
27
  vegaConfigOverride?: VegaConfigHandler | undefined;
26
28
  modalElement?: HTMLElement | undefined;
27
29
  };
@@ -1,3 +1,5 @@
1
+ import { DrillData, RenderResultMetadata, DimensionContextEntry } from '../types';
2
+ import { Field } from '@malloydata/malloy';
1
3
  interface BrushDataBase {
2
4
  fieldRefId: string;
3
5
  sourceId: string;
@@ -30,14 +32,23 @@ export type VegaBrushOutput = {
30
32
  };
31
33
  export interface ResultStoreData {
32
34
  brushes: BrushData[];
35
+ showCopiedModal: boolean;
33
36
  }
34
37
  export declare function createResultStore(): {
35
38
  store: ResultStoreData;
36
39
  applyBrushOps: (ops: ModifyBrushOp[]) => void;
40
+ triggerCopiedModal: (time?: number) => void;
37
41
  };
38
42
  export type ResultStore = ReturnType<typeof createResultStore>;
39
43
  export declare function useResultStore(): {
40
44
  store: ResultStoreData;
41
45
  applyBrushOps: (ops: ModifyBrushOp[]) => void;
46
+ triggerCopiedModal: (time?: number) => void;
42
47
  };
48
+ export declare function copyExplorePathQueryToClipboard({ metadata, field, dimensionContext, onDrill, }: {
49
+ metadata: RenderResultMetadata;
50
+ field: Field;
51
+ dimensionContext: DimensionContextEntry[];
52
+ onDrill?: (drillData: DrillData) => void;
53
+ }): Promise<void>;
43
54
  export {};
@@ -1,6 +1,6 @@
1
1
  import { createStore, SetStoreFunction, Store } from 'solid-js/store';
2
2
  import { TableLayout } from './table-layout';
3
- import { Field } from '@malloydata/malloy';
3
+ import { DimensionContextEntry } from '../types';
4
4
  type TableStore = {
5
5
  headerSizes: Record<string, number>;
6
6
  columnWidths: Record<string, number>;
@@ -8,10 +8,6 @@ type TableStore = {
8
8
  highlightedExplore: string[] | null;
9
9
  showCopiedModal: boolean;
10
10
  };
11
- export type DimensionContextEntry = {
12
- fieldDef: string;
13
- value: string | number | boolean | Date;
14
- };
15
11
  export type TableContext = {
16
12
  root: boolean;
17
13
  layout: TableLayout;
@@ -21,10 +17,8 @@ export type TableContext = {
21
17
  currentRow: number[];
22
18
  currentExplore: string[];
23
19
  dimensionContext: DimensionContextEntry[];
24
- copyExplorePathQueryToClipboard: (tableCtx: TableContext, field: Field, dimensionContext: DimensionContextEntry[]) => void;
25
20
  };
26
21
  export declare const TableContext: import("solid-js").Context<TableContext | undefined>;
27
22
  export declare const useTableContext: () => TableContext | undefined;
28
23
  export declare function createTableStore(): [get: TableStore, set: SetStoreFunction<TableStore>];
29
- export declare function copyExplorePathQueryToClipboard(tableCtx: TableContext, field: Field, dimensionContext: DimensionContextEntry[]): Promise<void>;
30
24
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Component } from 'solid-js';
2
2
  import { DataArrayOrRecord } from '@malloydata/malloy';
3
- import { DimensionContextEntry } from './table-context';
3
+ import { DimensionContextEntry } from '../types';
4
4
  declare const MalloyTable: Component<{
5
5
  data: DataArrayOrRecord;
6
6
  rowLimit?: number;
@@ -96,4 +96,14 @@ export type TableConfig = {
96
96
  export type DashboardConfig = {
97
97
  disableVirtualization: boolean;
98
98
  };
99
+ export type DrillData = {
100
+ dimensionFilters: DimensionContextEntry[];
101
+ copyQueryToClipboard: () => Promise<void>;
102
+ query: string;
103
+ whereClause: string;
104
+ };
105
+ export type DimensionContextEntry = {
106
+ fieldDef: string;
107
+ value: string | number | boolean | Date;
108
+ };
99
109
  export {};
@@ -28,7 +28,7 @@ import { TextRendererFactory } from './text';
28
28
  import { DataVolumeRendererFactory } from './data_volume';
29
29
  import { DurationRendererFactory } from './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: (TextRendererFactory | DurationRendererFactory | VegaRendererFactory | LineChartRendererFactory | ScatterChartRendererFactory | ShapeMapRendererFactory | SegmentMapRendererFactory | JSONRendererFactory | NumberRendererFactory | PointMapRendererFactory | ImageRendererFactory | SparkLineRendererFactory | BarChartRendererFactory | BarSparkLineRendererFactory | AreaSparkLineRendererFactory | ColumnSparkLineRendererFactory | 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;
@@ -1,3 +1,4 @@
1
+ import { MalloyRenderProps } from '../component/render';
1
2
  import { DataStyles } from './data_styles';
2
3
  export interface RendererOptions {
3
4
  dataStyles: DataStyles;
@@ -5,5 +6,6 @@ export interface RendererOptions {
5
6
  onDrill?: DrillFunction;
6
7
  titleCase?: boolean;
7
8
  queryTimezone?: string;
9
+ nextRendererOptions?: Partial<MalloyRenderProps>;
8
10
  }
9
11
  export type DrillFunction = (drillQuery: string, target: HTMLElement, drillFilters: string[]) => void;
@@ -146146,7 +146146,11 @@ class uut {
146146
146146
  if (!e.modelTag.has("renderer_legacy"))
146147
146147
  if (!!((o = this.document.defaultView) != null && o.customElements.get("malloy-render"))) {
146148
146148
  const a = this.document.createElement("malloy-render");
146149
- return a.result = e, a;
146149
+ a.result = e;
146150
+ const l = n.nextRendererOptions ?? {};
146151
+ for (const [c, f] of Object.entries(l))
146152
+ a[c] = f;
146153
+ return a;
146150
146154
  } else
146151
146155
  console.warn(
146152
146156
  "Tried to use the new Malloy renderer, but the malloy-render component was not found. Falling back to the legacy renderer."