@malloydata/render 0.0.24-dev230224184907 → 0.0.24-dev230228224434

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.
Files changed (58) hide show
  1. package/dist/data_styles.d.ts +27 -27
  2. package/dist/drill.d.ts +1 -1
  3. package/dist/drill.js +12 -12
  4. package/dist/html/bar_chart.d.ts +4 -4
  5. package/dist/html/bar_chart.js +5 -5
  6. package/dist/html/boolean.d.ts +2 -2
  7. package/dist/html/bytes.d.ts +2 -2
  8. package/dist/html/bytes.js +1 -1
  9. package/dist/html/cartesian_chart.d.ts +4 -4
  10. package/dist/html/cartesian_chart.js +30 -30
  11. package/dist/html/chart.d.ts +5 -5
  12. package/dist/html/chart.js +10 -10
  13. package/dist/html/container.d.ts +3 -3
  14. package/dist/html/currency.d.ts +2 -2
  15. package/dist/html/currency.js +4 -4
  16. package/dist/html/dashboard.d.ts +3 -3
  17. package/dist/html/dashboard.js +32 -31
  18. package/dist/html/date.d.ts +2 -2
  19. package/dist/html/date.js +2 -2
  20. package/dist/html/html_view.d.ts +3 -3
  21. package/dist/html/html_view.js +40 -40
  22. package/dist/html/image.d.ts +2 -2
  23. package/dist/html/image.js +2 -2
  24. package/dist/html/index.d.ts +1 -1
  25. package/dist/html/json.d.ts +2 -2
  26. package/dist/html/json.js +2 -2
  27. package/dist/html/line_chart.d.ts +4 -4
  28. package/dist/html/line_chart.js +6 -6
  29. package/dist/html/link.d.ts +2 -2
  30. package/dist/html/link.js +4 -4
  31. package/dist/html/list.d.ts +3 -3
  32. package/dist/html/list.js +7 -7
  33. package/dist/html/list_detail.d.ts +2 -2
  34. package/dist/html/number.d.ts +2 -2
  35. package/dist/html/percent.d.ts +2 -2
  36. package/dist/html/percent.js +1 -1
  37. package/dist/html/point_map.d.ts +4 -4
  38. package/dist/html/point_map.js +69 -69
  39. package/dist/html/scatter_chart.d.ts +4 -4
  40. package/dist/html/scatter_chart.js +6 -6
  41. package/dist/html/segment_map.d.ts +4 -4
  42. package/dist/html/segment_map.js +61 -61
  43. package/dist/html/shape_map.d.ts +4 -4
  44. package/dist/html/shape_map.js +73 -73
  45. package/dist/html/state_codes.js +108 -108
  46. package/dist/html/table.d.ts +3 -3
  47. package/dist/html/table.js +16 -16
  48. package/dist/html/text.d.ts +2 -2
  49. package/dist/html/text.js +1 -1
  50. package/dist/html/unsupported.d.ts +2 -2
  51. package/dist/html/unsupported.js +4 -4
  52. package/dist/html/utils.d.ts +4 -4
  53. package/dist/html/utils.js +51 -51
  54. package/dist/html/vega_spec.d.ts +6 -6
  55. package/dist/html/vega_spec.js +287 -287
  56. package/dist/index.d.ts +2 -2
  57. package/dist/renderer.d.ts +3 -3
  58. package/package.json +2 -2
@@ -1,58 +1,58 @@
1
- import * as lite from "vega-lite";
1
+ import * as lite from 'vega-lite';
2
2
  export declare type DataStyles = {
3
3
  [fieldName: string]: RenderDef;
4
4
  };
5
- export declare type ChartSize = "small" | "medium" | "large";
5
+ export declare type ChartSize = 'small' | 'medium' | 'large';
6
6
  export declare type RenderDef = ({
7
7
  renderer?: undefined;
8
8
  } & DataRenderOptions) | ({
9
- renderer: "table";
9
+ renderer: 'table';
10
10
  } & TableRenderOptions) | ({
11
- renderer: "dashboard";
11
+ renderer: 'dashboard';
12
12
  } & DashboardRenderOptions) | ({
13
- renderer: "text";
13
+ renderer: 'text';
14
14
  } & TextRenderOptions) | ({
15
- renderer: "currency";
15
+ renderer: 'currency';
16
16
  } & CurrencyRenderOptions) | ({
17
- renderer: "image";
17
+ renderer: 'image';
18
18
  } & ImageRenderOptions) | ({
19
- renderer: "time";
19
+ renderer: 'time';
20
20
  } & TimeRenderOptions) | ({
21
- renderer: "json";
21
+ renderer: 'json';
22
22
  } & JSONRenderOptions) | ({
23
- renderer: "single_value";
23
+ renderer: 'single_value';
24
24
  } & SingleValueRenderOptions) | ({
25
- renderer: "list";
25
+ renderer: 'list';
26
26
  } & ListRenderOptions) | ({
27
- renderer: "list_detail";
27
+ renderer: 'list_detail';
28
28
  } & ListDetailRenderOptions) | ({
29
- renderer: "cartesian_chart";
29
+ renderer: 'cartesian_chart';
30
30
  } & CartesianChartRenderOptions) | ({
31
- renderer: "bar_chart";
31
+ renderer: 'bar_chart';
32
32
  } & BarChartRenderOptions) | ({
33
- renderer: "scatter_chart";
33
+ renderer: 'scatter_chart';
34
34
  } & ScatterChartRenderOptions) | ({
35
- renderer: "line_chart";
35
+ renderer: 'line_chart';
36
36
  } & LineChartRenderOptions) | ({
37
- renderer: "point_map";
37
+ renderer: 'point_map';
38
38
  } & PointMapRenderOptions) | ({
39
- renderer: "segment_map";
39
+ renderer: 'segment_map';
40
40
  } & SegmentMapRenderOptions) | ({
41
- renderer: "shape_map";
41
+ renderer: 'shape_map';
42
42
  } & ShapeMapRenderOptions) | ({
43
- renderer: "number";
43
+ renderer: 'number';
44
44
  } & NumberRenderOptions) | ({
45
- renderer: "percent";
45
+ renderer: 'percent';
46
46
  } & PercentRenderOptions) | ({
47
- renderer: "boolean";
47
+ renderer: 'boolean';
48
48
  } & BooleanRenderOptions) | ({
49
- renderer: "spark_line";
49
+ renderer: 'spark_line';
50
50
  } & SparkLineRenderOptions) | ({
51
- renderer: "bytes";
51
+ renderer: 'bytes';
52
52
  } & BytesRenderOptions) | ({
53
- renderer: "link";
53
+ renderer: 'link';
54
54
  } & LinkRenderOptions) | ({
55
- renderer: "vega";
55
+ renderer: 'vega';
56
56
  } & VegaRenderOptions);
57
57
  export interface DataRenderOptions {
58
58
  data?: {
@@ -82,7 +82,7 @@ export interface BytesRenderOptions extends TextRenderOptions {
82
82
  }
83
83
  export interface CurrencyRenderOptions extends TextRenderOptions {
84
84
  currency?: {
85
- unit?: "dollars" | "pounds";
85
+ unit?: 'dollars' | 'pounds';
86
86
  };
87
87
  }
88
88
  export interface TimeRenderOptions extends TextRenderOptions {
package/dist/drill.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DataArrayOrRecord, Explore } from "@malloydata/malloy";
1
+ import { DataArrayOrRecord, Explore } from '@malloydata/malloy';
2
2
  export declare function getDrillFilters(data: DataArrayOrRecord): {
3
3
  formattedFilters: string[];
4
4
  source: Explore | undefined;
package/dist/drill.js CHANGED
@@ -32,34 +32,34 @@ function timestampToDateFilter(key, value, timeframe) {
32
32
  const adjustedTimeframe = timeframe === malloy_1.TimestampTimeframe.Minute
33
33
  ? malloy_1.TimestampTimeframe.Second
34
34
  : timeframe || malloy_1.TimestampTimeframe.Second;
35
- const filterValue = "@" + (0, utils_1.timeToString)(value, adjustedTimeframe);
36
- return { key, "value": filterValue };
35
+ const filterValue = '@' + (0, utils_1.timeToString)(value, adjustedTimeframe);
36
+ return { key, value: filterValue };
37
37
  }
38
38
  function getTableFilters(table) {
39
39
  const filters = [];
40
40
  for (const f of table.field.filters || []) {
41
- if (f.expressionType === "scalar") {
42
- filters.push({ "key": f.code, "value": undefined });
41
+ if (f.expressionType === 'scalar') {
42
+ filters.push({ key: f.code, value: undefined });
43
43
  }
44
44
  }
45
45
  return filters;
46
46
  }
47
47
  function getRowFilters(row) {
48
48
  const filters = [];
49
- const dimensions = row.field.intrinsicFields.filter((field) => field.isAtomicField() && field.sourceWasDimension());
49
+ const dimensions = row.field.intrinsicFields.filter(field => field.isAtomicField() && field.sourceWasDimension());
50
50
  for (const dim of dimensions) {
51
51
  const cell = row.cell(dim);
52
52
  // if we have an expression, use it instead of the name of the field.
53
53
  const key = dim.isAtomicField() || dim.isQueryField() ? dim.expression : undefined;
54
54
  if (key && !cell.isArray()) {
55
55
  if (cell.isNull()) {
56
- filters.push({ key, "value": "null" });
56
+ filters.push({ key, value: 'null' });
57
57
  }
58
58
  else if (cell.isString()) {
59
- filters.push({ key, "value": filterQuote(cell.value) });
59
+ filters.push({ key, value: filterQuote(cell.value) });
60
60
  }
61
61
  else if (cell.isNumber() || cell.isBoolean()) {
62
- filters.push({ key, "value": cell.value.toString() });
62
+ filters.push({ key, value: cell.value.toString() });
63
63
  }
64
64
  else if (cell.isTimestamp() || cell.isDate()) {
65
65
  filters.push(timestampToDateFilter(key, cell.value, cell.field.timeframe));
@@ -97,17 +97,17 @@ function getDrillFilters(data) {
97
97
  // TODO HACK: some filters get duplicated by the language, and this
98
98
  // is a workaround until that is fixed
99
99
  const dedupedFilters = formattedFilters.filter((filter, index) => formattedFilters.find((otherFilter, otherIndex) => otherFilter === filter && index < otherIndex) === undefined);
100
- return { "formattedFilters": dedupedFilters, source };
100
+ return { formattedFilters: dedupedFilters, source };
101
101
  }
102
102
  exports.getDrillFilters = getDrillFilters;
103
103
  function getDrillQuery(data) {
104
104
  const { formattedFilters, source } = getDrillFilters(data);
105
105
  let ret = `query: ${(source === null || source === void 0 ? void 0 : source.name) || '"unable to compute source"'} `;
106
106
  if (formattedFilters.length) {
107
- ret += `{ \n where: \n ${formattedFilters.join(",\n ")}\n \n}\n`;
107
+ ret += `{ \n where: \n ${formattedFilters.join(',\n ')}\n \n}\n`;
108
108
  }
109
- const drillQuery = ret + "-> ";
110
- return { drillQuery, "drillFilters": formattedFilters };
109
+ const drillQuery = ret + '-> ';
110
+ return { drillQuery, drillFilters: formattedFilters };
111
111
  }
112
112
  exports.getDrillQuery = getDrillQuery;
113
113
  //# sourceMappingURL=drill.js.map
@@ -1,7 +1,7 @@
1
- import { DataColumn, Field } from "@malloydata/malloy";
2
- import { HTMLCartesianChartRenderer } from "./cartesian_chart";
1
+ import { DataColumn, Field } from '@malloydata/malloy';
2
+ import { HTMLCartesianChartRenderer } from './cartesian_chart';
3
3
  export declare class HTMLBarChartRenderer extends HTMLCartesianChartRenderer {
4
- getMark(): "bar";
5
- getDataType(field: Field): "temporal" | "ordinal" | "quantitative" | "nominal";
4
+ getMark(): 'bar';
5
+ getDataType(field: Field): 'temporal' | 'ordinal' | 'quantitative' | 'nominal';
6
6
  getDataValue(data: DataColumn): Date | string | number | null;
7
7
  }
@@ -26,18 +26,18 @@ exports.HTMLBarChartRenderer = void 0;
26
26
  const cartesian_chart_1 = require("./cartesian_chart");
27
27
  class HTMLBarChartRenderer extends cartesian_chart_1.HTMLCartesianChartRenderer {
28
28
  getMark() {
29
- return "bar";
29
+ return 'bar';
30
30
  }
31
31
  getDataType(field) {
32
32
  if (field.isAtomicField()) {
33
33
  if (field.isDate() || field.isTimestamp() || field.isString()) {
34
- return "nominal";
34
+ return 'nominal';
35
35
  }
36
36
  else if (field.isNumber()) {
37
- return "quantitative";
37
+ return 'quantitative';
38
38
  }
39
39
  }
40
- throw new Error("Invalid field type for bar chart.");
40
+ throw new Error('Invalid field type for bar chart.');
41
41
  }
42
42
  getDataValue(data) {
43
43
  if (data.isNull()) {
@@ -50,7 +50,7 @@ class HTMLBarChartRenderer extends cartesian_chart_1.HTMLCartesianChartRenderer
50
50
  return data.value;
51
51
  }
52
52
  else {
53
- throw new Error("Invalid field type for bar chart.");
53
+ throw new Error('Invalid field type for bar chart.');
54
54
  }
55
55
  }
56
56
  }
@@ -1,5 +1,5 @@
1
- import { DataColumn } from "@malloydata/malloy";
2
- import { HTMLTextRenderer } from "./text";
1
+ import { DataColumn } from '@malloydata/malloy';
2
+ import { HTMLTextRenderer } from './text';
3
3
  export declare class HTMLBooleanRenderer extends HTMLTextRenderer {
4
4
  getText(data: DataColumn): string | null;
5
5
  }
@@ -1,5 +1,5 @@
1
- import { DataColumn } from "@malloydata/malloy";
2
- import { HTMLTextRenderer } from "./text";
1
+ import { DataColumn } from '@malloydata/malloy';
2
+ import { HTMLTextRenderer } from './text';
3
3
  export declare class HTMLBytesRenderer extends HTMLTextRenderer {
4
4
  getText(data: DataColumn): string | null;
5
5
  }
@@ -29,7 +29,7 @@ class HTMLBytesRenderer extends text_1.HTMLTextRenderer {
29
29
  if (data.isNull()) {
30
30
  return null;
31
31
  }
32
- return data.bytes.value.toString("base64");
32
+ return data.bytes.value.toString('base64');
33
33
  }
34
34
  }
35
35
  exports.HTMLBytesRenderer = HTMLBytesRenderer;
@@ -1,7 +1,7 @@
1
- import { DataArray } from "@malloydata/malloy";
2
- import * as lite from "vega-lite";
3
- import { HTMLChartRenderer } from "./chart";
1
+ import { DataArray } from '@malloydata/malloy';
2
+ import * as lite from 'vega-lite';
3
+ import { HTMLChartRenderer } from './chart';
4
4
  export declare abstract class HTMLCartesianChartRenderer extends HTMLChartRenderer {
5
- abstract getMark(): "bar" | "line" | "point";
5
+ abstract getMark(): 'bar' | 'line' | 'point';
6
6
  getVegaLiteSpec(data: DataArray): lite.TopLevelSpec;
7
7
  }
@@ -42,55 +42,55 @@ class HTMLCartesianChartRenderer extends chart_1.HTMLChartRenderer {
42
42
  const mark = this.getMark();
43
43
  const colorDef = colorField !== undefined
44
44
  ? {
45
- "field": colorField.name,
46
- "type": colorType,
47
- "axis": { "title": (0, utils_1.formatTitle)(this.options, colorField.name) },
48
- "scale": (0, utils_1.getColorScale)(colorType, mark === "bar")
45
+ field: colorField.name,
46
+ type: colorType,
47
+ axis: { title: (0, utils_1.formatTitle)(this.options, colorField.name) },
48
+ scale: (0, utils_1.getColorScale)(colorType, mark === 'bar'),
49
49
  }
50
- : { "value": "#4285F4" };
50
+ : { value: '#4285F4' };
51
51
  const sizeDef = sizeField
52
52
  ? {
53
- "field": sizeField.name,
54
- "type": sizeType,
55
- "axis": { "title": (0, utils_1.formatTitle)(this.options, sizeField.name) }
53
+ field: sizeField.name,
54
+ type: sizeType,
55
+ axis: { title: (0, utils_1.formatTitle)(this.options, sizeField.name) },
56
56
  }
57
57
  : undefined;
58
58
  const shapeDef = shapeField
59
59
  ? {
60
- "field": shapeField.name,
61
- "type": shapeType,
62
- "axis": { "title": (0, utils_1.formatTitle)(this.options, shapeField.name) }
60
+ field: shapeField.name,
61
+ type: shapeType,
62
+ axis: { title: (0, utils_1.formatTitle)(this.options, shapeField.name) },
63
63
  }
64
64
  : undefined;
65
- const xSort = xType === "nominal" ? null : undefined;
66
- const ySort = yType === "nominal" ? null : undefined;
65
+ const xSort = xType === 'nominal' ? null : undefined;
66
+ const ySort = yType === 'nominal' ? null : undefined;
67
67
  const xDef = {
68
- "field": xField.name,
69
- "type": xType,
70
- "sort": xSort,
71
- "axis": { "title": (0, utils_1.formatTitle)(this.options, xField.name) }
68
+ field: xField.name,
69
+ type: xType,
70
+ sort: xSort,
71
+ axis: { title: (0, utils_1.formatTitle)(this.options, xField.name) },
72
72
  };
73
73
  const yDef = {
74
- "field": yField.name,
75
- "type": yType,
76
- "sort": ySort,
77
- "axis": { "title": (0, utils_1.formatTitle)(this.options, yField.name) }
74
+ field: yField.name,
75
+ type: yType,
76
+ sort: ySort,
77
+ axis: { title: (0, utils_1.formatTitle)(this.options, yField.name) },
78
78
  };
79
79
  return {
80
80
  ...vega_spec_1.DEFAULT_SPEC,
81
81
  ...this.getSize(),
82
- "data": {
83
- "values": this.mapData(data)
82
+ data: {
83
+ values: this.mapData(data),
84
84
  },
85
85
  mark,
86
- "encoding": {
87
- "x": xDef,
88
- "y": yDef,
89
- "size": sizeDef,
90
- "color": colorDef,
91
- "shape": shapeDef
86
+ encoding: {
87
+ x: xDef,
88
+ y: yDef,
89
+ size: sizeDef,
90
+ color: colorDef,
91
+ shape: shapeDef,
92
92
  },
93
- "background": "transparent"
93
+ background: 'transparent',
94
94
  };
95
95
  }
96
96
  }
@@ -1,7 +1,7 @@
1
- import * as lite from "vega-lite";
2
- import { DataArray, DataColumn, Field } from "@malloydata/malloy";
3
- import { Renderer, RendererOptions } from "../renderer";
4
- import { ChartRenderOptions, StyleDefaults } from "../data_styles";
1
+ import * as lite from 'vega-lite';
2
+ import { DataArray, DataColumn, Field } from '@malloydata/malloy';
3
+ import { Renderer, RendererOptions } from '../renderer';
4
+ import { ChartRenderOptions, StyleDefaults } from '../data_styles';
5
5
  declare type MappedRow = {
6
6
  [p: string]: string | number | Date | undefined | null;
7
7
  };
@@ -10,7 +10,7 @@ export declare abstract class HTMLChartRenderer implements Renderer {
10
10
  protected styleDefaults: StyleDefaults;
11
11
  protected options: RendererOptions;
12
12
  size: string;
13
- abstract getDataType(field: Field): "temporal" | "ordinal" | "quantitative" | "nominal";
13
+ abstract getDataType(field: Field): 'temporal' | 'ordinal' | 'quantitative' | 'nominal';
14
14
  abstract getDataValue(value: DataColumn): Date | string | number | null | undefined;
15
15
  mapData(data: DataArray): MappedRow[];
16
16
  getSize(): {
@@ -53,7 +53,7 @@ class HTMLChartRenderer {
53
53
  this.document = document;
54
54
  this.styleDefaults = styleDefaults;
55
55
  this.options = options;
56
- this.size = chartOptions.size || this.styleDefaults.size || "medium";
56
+ this.size = chartOptions.size || this.styleDefaults.size || 'medium';
57
57
  }
58
58
  mapData(data) {
59
59
  const mappedRows = [];
@@ -67,20 +67,20 @@ class HTMLChartRenderer {
67
67
  return mappedRows;
68
68
  }
69
69
  getSize() {
70
- if (this.size === "large") {
71
- return { "height": 350, "width": 500 };
70
+ if (this.size === 'large') {
71
+ return { height: 350, width: 500 };
72
72
  }
73
73
  else {
74
- return { "height": 175, "width": 250 };
74
+ return { height: 175, width: 250 };
75
75
  }
76
76
  }
77
77
  async render(table) {
78
78
  if (!table.isArray()) {
79
- throw new Error("Invalid type for chart renderer");
79
+ throw new Error('Invalid type for chart renderer');
80
80
  }
81
81
  const spec = this.getVegaLiteSpec(table);
82
82
  const vegaspec = lite.compile(spec, {
83
- "logger": {
83
+ logger: {
84
84
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
85
85
  // @ts-ignore
86
86
  level(newLevel) {
@@ -100,14 +100,14 @@ class HTMLChartRenderer {
100
100
  },
101
101
  debug() {
102
102
  return this;
103
- }
104
- }
103
+ },
104
+ },
105
105
  }).spec;
106
106
  const view = new vega.View(vega.parse(vegaspec), {
107
- "renderer": "none"
107
+ renderer: 'none',
108
108
  });
109
109
  view.logger().level(-1);
110
- const element = this.document.createElement("div");
110
+ const element = this.document.createElement('div');
111
111
  element.innerHTML = await view.toSVG();
112
112
  return element;
113
113
  }
@@ -1,6 +1,6 @@
1
- import { Explore } from "@malloydata/malloy";
2
- import { StyleDefaults } from "../data_styles";
3
- import { ChildRenderers, RendererOptions, RenderTree } from "../renderer";
1
+ import { Explore } from '@malloydata/malloy';
2
+ import { StyleDefaults } from '../data_styles';
3
+ import { ChildRenderers, RendererOptions, RenderTree } from '../renderer';
4
4
  export declare abstract class ContainerRenderer extends RenderTree {
5
5
  childRenderers: ChildRenderers;
6
6
  protected abstract childrenStyleDefaults: StyleDefaults;
@@ -1,5 +1,5 @@
1
- import { DataColumn } from "@malloydata/malloy";
2
- import { HTMLTextRenderer } from "./text";
1
+ import { DataColumn } from '@malloydata/malloy';
2
+ import { HTMLTextRenderer } from './text';
3
3
  export declare class HTMLCurrencyRenderer extends HTMLTextRenderer {
4
4
  getText(data: DataColumn): string | null;
5
5
  }
@@ -30,10 +30,10 @@ class HTMLCurrencyRenderer extends text_1.HTMLTextRenderer {
30
30
  return null;
31
31
  }
32
32
  // TODO get this from renderer options
33
- const unitText = "$";
34
- const numText = data.number.value.toLocaleString("en-US", {
35
- "minimumFractionDigits": 2,
36
- "maximumFractionDigits": 2
33
+ const unitText = '$';
34
+ const numText = data.number.value.toLocaleString('en-US', {
35
+ minimumFractionDigits: 2,
36
+ maximumFractionDigits: 2,
37
37
  });
38
38
  return `${unitText}${numText}`;
39
39
  }
@@ -1,6 +1,6 @@
1
- import { DataArrayOrRecord } from "@malloydata/malloy";
2
- import { StyleDefaults } from "../data_styles";
3
- import { ContainerRenderer } from "./container";
1
+ import { DataArrayOrRecord } from '@malloydata/malloy';
2
+ import { StyleDefaults } from '../data_styles';
3
+ import { ContainerRenderer } from './container';
4
4
  export declare class HTMLDashboardRenderer extends ContainerRenderer {
5
5
  protected childrenStyleDefaults: StyleDefaults;
6
6
  render(table: DataArrayOrRecord): Promise<HTMLElement>;
@@ -31,33 +31,33 @@ class HTMLDashboardRenderer extends container_1.ContainerRenderer {
31
31
  constructor() {
32
32
  super(...arguments);
33
33
  this.childrenStyleDefaults = {
34
- "size": "medium"
34
+ size: 'medium',
35
35
  };
36
36
  }
37
37
  async render(table) {
38
38
  if (!table.isArrayOrRecord()) {
39
- return (0, utils_1.createErrorElement)(this.document, "Invalid data for dashboard renderer.");
39
+ return (0, utils_1.createErrorElement)(this.document, 'Invalid data for dashboard renderer.');
40
40
  }
41
41
  const fields = table.field.intrinsicFields;
42
- const dimensions = fields.filter((field) => field.isAtomicField() && field.sourceWasDimension());
43
- const measures = fields.filter((field) => !field.isAtomicField() || field.sourceWasMeasureLike());
44
- const body = this.document.createElement("div");
42
+ const dimensions = fields.filter(field => field.isAtomicField() && field.sourceWasDimension());
43
+ const measures = fields.filter(field => !field.isAtomicField() || field.sourceWasMeasureLike());
44
+ const body = this.document.createElement('div');
45
45
  for (const row of table) {
46
- const dimensionsContainer = this.document.createElement("div");
47
- dimensionsContainer.classList.add("dimensions");
48
- dimensionsContainer.style.display = "flex";
49
- dimensionsContainer.style.flexWrap = "wrap";
50
- const rowElement = this.document.createElement("div");
51
- rowElement.style.position = "relative";
46
+ const dimensionsContainer = this.document.createElement('div');
47
+ dimensionsContainer.classList.add('dimensions');
48
+ dimensionsContainer.style.display = 'flex';
49
+ dimensionsContainer.style.flexWrap = 'wrap';
50
+ const rowElement = this.document.createElement('div');
51
+ rowElement.style.position = 'relative';
52
52
  for (const field of dimensions) {
53
53
  const renderer = this.childRenderers[field.name];
54
54
  const rendered = await renderer.render(row.cell(field));
55
- const renderedDimension = this.document.createElement("div");
55
+ const renderedDimension = this.document.createElement('div');
56
56
  renderedDimension.style.cssText = DIMENSION_BOX;
57
- const dimensionTitle = this.document.createElement("div");
57
+ const dimensionTitle = this.document.createElement('div');
58
58
  dimensionTitle.style.cssText = DIMENSION_TITLE;
59
59
  dimensionTitle.appendChild(this.document.createTextNode((0, utils_1.formatTitle)(this.options, field.name, this.options.dataStyles[field.name])));
60
- const dimensionInner = this.document.createElement("div");
60
+ const dimensionInner = this.document.createElement('div');
61
61
  dimensionInner.style.cssText = VERTICAL_CENTER;
62
62
  dimensionInner.appendChild(rendered);
63
63
  renderedDimension.appendChild(dimensionTitle);
@@ -65,15 +65,15 @@ class HTMLDashboardRenderer extends container_1.ContainerRenderer {
65
65
  dimensionsContainer.appendChild(renderedDimension);
66
66
  }
67
67
  if (dimensions.length > 0) {
68
- const rowSeparatorOuter = this.document.createElement("div");
69
- rowSeparatorOuter.classList.add("row-separator-outer");
68
+ const rowSeparatorOuter = this.document.createElement('div');
69
+ rowSeparatorOuter.classList.add('row-separator-outer');
70
70
  rowSeparatorOuter.style.cssText = ROW_SEPARATOR_OUTER;
71
- const rowSeparator = this.document.createElement("div");
71
+ const rowSeparator = this.document.createElement('div');
72
72
  rowSeparator.style.cssText = ROW_SEPARATOR;
73
73
  rowSeparatorOuter.appendChild(rowSeparator);
74
74
  dimensionsContainer.appendChild(rowSeparatorOuter);
75
75
  }
76
- const measuresContainer = this.document.createElement("div");
76
+ const measuresContainer = this.document.createElement('div');
77
77
  measuresContainer.style.cssText = MEASURE_BOXES;
78
78
  for (const field of measures) {
79
79
  const childRenderer = this.childRenderers[field.name];
@@ -83,14 +83,14 @@ class HTMLDashboardRenderer extends container_1.ContainerRenderer {
83
83
  measuresContainer.appendChild(rendered);
84
84
  }
85
85
  else if (childRenderer instanceof text_1.HTMLTextRenderer) {
86
- const measureBox = this.document.createElement("div");
86
+ const measureBox = this.document.createElement('div');
87
87
  measureBox.style.cssText = MEASURE_BOX;
88
- const measureTitle = this.document.createElement("div");
88
+ const measureTitle = this.document.createElement('div');
89
89
  measureTitle.style.cssText = TITLE;
90
90
  measureTitle.appendChild(this.document.createTextNode((0, utils_1.formatTitle)(this.options, field.name, this.options.dataStyles[field.name])));
91
- const measureInner = this.document.createElement("div");
91
+ const measureInner = this.document.createElement('div');
92
92
  measureInner.style.cssText = VERTICAL_CENTER;
93
- const innerInner = this.document.createElement("div");
93
+ const innerInner = this.document.createElement('div');
94
94
  innerInner.style.cssText = SINGLE_VALUE;
95
95
  innerInner.appendChild(rendered);
96
96
  measureInner.appendChild(innerInner);
@@ -99,14 +99,14 @@ class HTMLDashboardRenderer extends container_1.ContainerRenderer {
99
99
  measuresContainer.appendChild(measureBox);
100
100
  }
101
101
  else {
102
- const measureBox = this.document.createElement("div");
102
+ const measureBox = this.document.createElement('div');
103
103
  measureBox.style.cssText = MEASURE_BOX;
104
- const measureTitle = this.document.createElement("div");
104
+ const measureTitle = this.document.createElement('div');
105
105
  measureTitle.style.cssText = TITLE;
106
106
  measureTitle.appendChild(this.document.createTextNode((0, utils_1.formatTitle)(this.options, field.name, this.options.dataStyles[field.name])));
107
- const measureInner = this.document.createElement("div");
107
+ const measureInner = this.document.createElement('div');
108
108
  measureInner.style.cssText = VERTICAL_CENTER;
109
- const innerInner = this.document.createElement("div");
109
+ const innerInner = this.document.createElement('div');
110
110
  innerInner.style.cssText = HORIZONTAL_CENTER;
111
111
  innerInner.appendChild(rendered);
112
112
  measureInner.appendChild(innerInner);
@@ -117,10 +117,11 @@ class HTMLDashboardRenderer extends container_1.ContainerRenderer {
117
117
  }
118
118
  rowElement.appendChild(dimensionsContainer);
119
119
  if (dimensions.length > 0 && this.options.isDrillingEnabled) {
120
- const drillElement = this.document.createElement("span");
120
+ const drillElement = this.document.createElement('span');
121
121
  const drillIcon = (0, utils_1.createDrillIcon)(this.document);
122
122
  drillElement.appendChild(drillIcon);
123
- drillElement.style.cssText = `padding: 8px; vertical-align: top; width: 25px; cursor: pointer; position: absolute; top: 5px; right: 5px;`;
123
+ drillElement.style.cssText =
124
+ 'padding: 8px; vertical-align: top; width: 25px; cursor: pointer; position: absolute; top: 5px; right: 5px;';
124
125
  drillElement.onclick = () => {
125
126
  if (this.options.onDrill) {
126
127
  const { drillQuery, drillFilters } = (0, drill_1.getDrillQuery)(row);
@@ -129,11 +130,11 @@ class HTMLDashboardRenderer extends container_1.ContainerRenderer {
129
130
  };
130
131
  rowElement.appendChild(drillElement);
131
132
  }
132
- const dashboardOuter = this.document.createElement("div");
133
- dashboardOuter.classList.add("dashboard-outer");
133
+ const dashboardOuter = this.document.createElement('div');
134
+ dashboardOuter.classList.add('dashboard-outer');
134
135
  dashboardOuter.style.cssText = DASHBOARD_OUTER;
135
136
  if (dimensions.length > 0) {
136
- const nestIndicator = this.document.createElement("div");
137
+ const nestIndicator = this.document.createElement('div');
137
138
  nestIndicator.style.cssText = NEST_INDICATOR;
138
139
  dashboardOuter.appendChild(nestIndicator);
139
140
  }
@@ -1,5 +1,5 @@
1
- import { DataColumn } from "@malloydata/malloy";
2
- import { Renderer } from "../renderer";
1
+ import { DataColumn } from '@malloydata/malloy';
2
+ import { Renderer } from '../renderer';
3
3
  export declare class HTMLDateRenderer implements Renderer {
4
4
  private readonly document;
5
5
  constructor(document: Document);
package/dist/html/date.js CHANGED
@@ -34,12 +34,12 @@ class HTMLDateRenderer {
34
34
  return (0, utils_1.createNullElement)(this.document);
35
35
  }
36
36
  if (!data.isDate() && !data.isTimestamp()) {
37
- return (0, utils_1.createErrorElement)(this.document, "Invalid field for date renderer");
37
+ return (0, utils_1.createErrorElement)(this.document, 'Invalid field for date renderer');
38
38
  }
39
39
  const timeframe = data.field.timeframe ||
40
40
  (data.isTimestamp() ? malloy_1.TimestampTimeframe.Second : malloy_1.DateTimeframe.Day);
41
41
  const timestring = (0, utils_1.timeToString)(data.value, timeframe);
42
- const element = this.document.createElement("span");
42
+ const element = this.document.createElement('span');
43
43
  element.appendChild(this.document.createTextNode(timestring));
44
44
  return element;
45
45
  }