@malloydata/render 0.0.24-dev230224214106 → 0.0.24-dev230301165401
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/data_styles.d.ts +27 -27
- package/dist/drill.d.ts +1 -1
- package/dist/drill.js +12 -12
- package/dist/html/bar_chart.d.ts +4 -4
- package/dist/html/bar_chart.js +5 -5
- package/dist/html/boolean.d.ts +2 -2
- package/dist/html/bytes.d.ts +2 -2
- package/dist/html/bytes.js +1 -1
- package/dist/html/cartesian_chart.d.ts +4 -4
- package/dist/html/cartesian_chart.js +30 -30
- package/dist/html/chart.d.ts +5 -5
- package/dist/html/chart.js +10 -10
- package/dist/html/container.d.ts +3 -3
- package/dist/html/currency.d.ts +2 -2
- package/dist/html/currency.js +4 -4
- package/dist/html/dashboard.d.ts +3 -3
- package/dist/html/dashboard.js +32 -31
- package/dist/html/date.d.ts +2 -2
- package/dist/html/date.js +2 -2
- package/dist/html/html_view.d.ts +3 -3
- package/dist/html/html_view.js +40 -40
- package/dist/html/image.d.ts +2 -2
- package/dist/html/image.js +2 -2
- package/dist/html/index.d.ts +1 -1
- package/dist/html/json.d.ts +2 -2
- package/dist/html/json.js +2 -2
- package/dist/html/line_chart.d.ts +4 -4
- package/dist/html/line_chart.js +6 -6
- package/dist/html/link.d.ts +2 -2
- package/dist/html/link.js +4 -4
- package/dist/html/list.d.ts +3 -3
- package/dist/html/list.js +7 -7
- package/dist/html/list_detail.d.ts +2 -2
- package/dist/html/number.d.ts +2 -2
- package/dist/html/percent.d.ts +2 -2
- package/dist/html/percent.js +1 -1
- package/dist/html/point_map.d.ts +4 -4
- package/dist/html/point_map.js +69 -69
- package/dist/html/scatter_chart.d.ts +4 -4
- package/dist/html/scatter_chart.js +6 -6
- package/dist/html/segment_map.d.ts +4 -4
- package/dist/html/segment_map.js +61 -61
- package/dist/html/shape_map.d.ts +4 -4
- package/dist/html/shape_map.js +73 -73
- package/dist/html/state_codes.js +108 -108
- package/dist/html/table.d.ts +3 -3
- package/dist/html/table.js +16 -16
- package/dist/html/text.d.ts +2 -2
- package/dist/html/text.js +1 -1
- package/dist/html/unsupported.d.ts +2 -2
- package/dist/html/unsupported.js +4 -4
- package/dist/html/utils.d.ts +4 -4
- package/dist/html/utils.js +51 -51
- package/dist/html/vega_spec.d.ts +6 -6
- package/dist/html/vega_spec.js +287 -287
- package/dist/index.d.ts +2 -2
- package/dist/renderer.d.ts +3 -3
- package/package.json +2 -2
package/dist/html/html_view.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DataArray, Explore, Field } from
|
|
2
|
-
import { StyleDefaults } from
|
|
3
|
-
import { RendererOptions, Renderer } from
|
|
1
|
+
import { DataArray, Explore, Field } from '@malloydata/malloy';
|
|
2
|
+
import { StyleDefaults } from '../data_styles';
|
|
3
|
+
import { RendererOptions, Renderer } from '../renderer';
|
|
4
4
|
export declare class HTMLView {
|
|
5
5
|
private document;
|
|
6
6
|
constructor(document: Document);
|
package/dist/html/html_view.js
CHANGED
|
@@ -54,7 +54,7 @@ class HTMLView {
|
|
|
54
54
|
}
|
|
55
55
|
async render(table, options) {
|
|
56
56
|
const renderer = makeRenderer(table.field, this.document, options, {
|
|
57
|
-
|
|
57
|
+
size: 'large',
|
|
58
58
|
});
|
|
59
59
|
try {
|
|
60
60
|
// TODO Implement row streaming capability for some renderers: some renderers should be usable
|
|
@@ -70,7 +70,7 @@ class HTMLView {
|
|
|
70
70
|
return (0, utils_1.createErrorElement)(this.document, error);
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
|
-
return (0, utils_1.createErrorElement)(this.document,
|
|
73
|
+
return (0, utils_1.createErrorElement)(this.document, 'Internal error - Exception not an Error object.');
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -90,25 +90,25 @@ class JSONView {
|
|
|
90
90
|
return (0, utils_1.createErrorElement)(this.document, error);
|
|
91
91
|
}
|
|
92
92
|
else {
|
|
93
|
-
return (0, utils_1.createErrorElement)(this.document,
|
|
93
|
+
return (0, utils_1.createErrorElement)(this.document, 'Internal error - Exception not an Error object.');
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
exports.JSONView = JSONView;
|
|
99
99
|
const suffixMap = {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
100
|
+
_shape_map: 'shape_map',
|
|
101
|
+
_point_map: 'point_map',
|
|
102
|
+
_bar_chart: 'bar_chart',
|
|
103
|
+
_image: 'image',
|
|
104
|
+
_json: 'json',
|
|
105
|
+
_segment_map: 'segment_map',
|
|
106
|
+
_dashboard: 'dashboard',
|
|
107
|
+
_line_chart: 'line_chart',
|
|
108
|
+
_scatter_chart: 'scatter_chart',
|
|
109
|
+
_url: 'link',
|
|
110
|
+
_list: 'list',
|
|
111
|
+
_list_detail: 'list_detail',
|
|
112
112
|
};
|
|
113
113
|
function getRendererOptions(field, dataStyles) {
|
|
114
114
|
var _a, _b, _c;
|
|
@@ -132,10 +132,10 @@ function getRendererOptions(field, dataStyles) {
|
|
|
132
132
|
}
|
|
133
133
|
else {
|
|
134
134
|
renderer = {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
label
|
|
138
|
-
}
|
|
135
|
+
renderer: suffixMap[suffix],
|
|
136
|
+
data: {
|
|
137
|
+
label,
|
|
138
|
+
},
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
141
|
break;
|
|
@@ -154,41 +154,41 @@ function isContainer(field) {
|
|
|
154
154
|
function makeRenderer(field, document, options, styleDefaults) {
|
|
155
155
|
const renderDef = getRendererOptions(field, options.dataStyles) || {};
|
|
156
156
|
options.dataStyles[field.name] = renderDef;
|
|
157
|
-
if (renderDef.renderer ===
|
|
157
|
+
if (renderDef.renderer === 'shape_map') {
|
|
158
158
|
return new shape_map_1.HTMLShapeMapRenderer(document, styleDefaults, options, renderDef);
|
|
159
159
|
}
|
|
160
|
-
else if (renderDef.renderer ===
|
|
160
|
+
else if (renderDef.renderer === 'point_map') {
|
|
161
161
|
return new point_map_1.HTMLPointMapRenderer(document, styleDefaults, options, renderDef);
|
|
162
162
|
}
|
|
163
|
-
else if (renderDef.renderer ===
|
|
163
|
+
else if (renderDef.renderer === 'image') {
|
|
164
164
|
return new image_1.HTMLImageRenderer(document);
|
|
165
165
|
}
|
|
166
|
-
else if (renderDef.renderer ===
|
|
166
|
+
else if (renderDef.renderer === 'segment_map') {
|
|
167
167
|
return new segment_map_1.HTMLSegmentMapRenderer(document, styleDefaults, options, renderDef);
|
|
168
168
|
}
|
|
169
|
-
else if (renderDef.renderer ===
|
|
169
|
+
else if (renderDef.renderer === 'dashboard') {
|
|
170
170
|
return makeContainerRenderer(dashboard_1.HTMLDashboardRenderer, document, isContainer(field), options);
|
|
171
171
|
}
|
|
172
|
-
else if (renderDef.renderer ===
|
|
172
|
+
else if (renderDef.renderer === 'json') {
|
|
173
173
|
return new json_1.HTMLJSONRenderer(document);
|
|
174
174
|
}
|
|
175
|
-
else if (renderDef.renderer ===
|
|
175
|
+
else if (renderDef.renderer === 'line_chart') {
|
|
176
176
|
return new line_chart_1.HTMLLineChartRenderer(document, styleDefaults, options, renderDef);
|
|
177
177
|
}
|
|
178
|
-
else if (renderDef.renderer ===
|
|
178
|
+
else if (renderDef.renderer === 'scatter_chart') {
|
|
179
179
|
return new scatter_chart_1.HTMLScatterChartRenderer(document, styleDefaults, options, renderDef);
|
|
180
180
|
}
|
|
181
|
-
else if (renderDef.renderer ===
|
|
181
|
+
else if (renderDef.renderer === 'bar_chart') {
|
|
182
182
|
return new bar_chart_1.HTMLBarChartRenderer(document, styleDefaults, options, renderDef);
|
|
183
183
|
}
|
|
184
|
-
else if (renderDef.renderer ===
|
|
184
|
+
else if (renderDef.renderer === 'vega') {
|
|
185
185
|
const spec = renderDef.spec;
|
|
186
186
|
if (spec) {
|
|
187
187
|
return new vega_spec_1.HTMLVegaSpecRenderer(document, styleDefaults, options, spec);
|
|
188
188
|
}
|
|
189
189
|
else if (renderDef.spec_name) {
|
|
190
190
|
const vegaRenderer = options.dataStyles[renderDef.spec_name];
|
|
191
|
-
if (vegaRenderer !== undefined && vegaRenderer.renderer ===
|
|
191
|
+
if (vegaRenderer !== undefined && vegaRenderer.renderer === 'vega') {
|
|
192
192
|
if (vegaRenderer.spec) {
|
|
193
193
|
return new vega_spec_1.HTMLVegaSpecRenderer(document, styleDefaults, options, vegaRenderer.spec);
|
|
194
194
|
}
|
|
@@ -205,44 +205,44 @@ function makeRenderer(field, document, options, styleDefaults) {
|
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
else {
|
|
208
|
-
if (renderDef.renderer ===
|
|
208
|
+
if (renderDef.renderer === 'time' ||
|
|
209
209
|
(field.hasParentExplore() &&
|
|
210
210
|
field.isAtomicField() &&
|
|
211
211
|
(field.type === malloy_1.AtomicFieldType.Date ||
|
|
212
212
|
field.type === malloy_1.AtomicFieldType.Timestamp))) {
|
|
213
213
|
return new date_1.HTMLDateRenderer(document);
|
|
214
214
|
}
|
|
215
|
-
else if (renderDef.renderer ===
|
|
215
|
+
else if (renderDef.renderer === 'currency') {
|
|
216
216
|
return new currency_1.HTMLCurrencyRenderer(document);
|
|
217
217
|
}
|
|
218
|
-
else if (renderDef.renderer ===
|
|
218
|
+
else if (renderDef.renderer === 'percent') {
|
|
219
219
|
return new percent_1.HTMLPercentRenderer(document);
|
|
220
220
|
}
|
|
221
|
-
else if (renderDef.renderer ===
|
|
221
|
+
else if (renderDef.renderer === 'number' ||
|
|
222
222
|
(field.hasParentExplore() &&
|
|
223
223
|
field.isAtomicField() &&
|
|
224
224
|
field.type === malloy_1.AtomicFieldType.Number)) {
|
|
225
225
|
return new number_1.HTMLNumberRenderer(document);
|
|
226
226
|
}
|
|
227
|
-
else if (renderDef.renderer ===
|
|
227
|
+
else if (renderDef.renderer === 'bytes') {
|
|
228
228
|
return new bytes_1.HTMLBytesRenderer(document);
|
|
229
229
|
}
|
|
230
|
-
else if (renderDef.renderer ===
|
|
230
|
+
else if (renderDef.renderer === 'boolean' ||
|
|
231
231
|
(field.hasParentExplore() &&
|
|
232
232
|
field.isAtomicField() &&
|
|
233
233
|
field.type === malloy_1.AtomicFieldType.Boolean)) {
|
|
234
234
|
return new boolean_1.HTMLBooleanRenderer(document);
|
|
235
235
|
}
|
|
236
|
-
else if (renderDef.renderer ===
|
|
236
|
+
else if (renderDef.renderer === 'link') {
|
|
237
237
|
return new link_1.HTMLLinkRenderer(document);
|
|
238
238
|
}
|
|
239
|
-
else if (renderDef.renderer ===
|
|
239
|
+
else if (renderDef.renderer === 'list') {
|
|
240
240
|
return makeContainerRenderer(list_1.HTMLListRenderer, document, isContainer(field), options);
|
|
241
241
|
}
|
|
242
|
-
else if (renderDef.renderer ===
|
|
242
|
+
else if (renderDef.renderer === 'list_detail') {
|
|
243
243
|
return makeContainerRenderer(list_detail_1.HTMLListDetailRenderer, document, isContainer(field), options);
|
|
244
244
|
}
|
|
245
|
-
else if (renderDef.renderer ===
|
|
245
|
+
else if (renderDef.renderer === 'table' ||
|
|
246
246
|
!field.hasParentExplore() ||
|
|
247
247
|
field.isExploreField()) {
|
|
248
248
|
return makeContainerRenderer(table_1.HTMLTableRenderer, document, isContainer(field), options);
|
package/dist/html/image.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataColumn } from
|
|
2
|
-
import { Renderer } from
|
|
1
|
+
import { DataColumn } from '@malloydata/malloy';
|
|
2
|
+
import { Renderer } from '../renderer';
|
|
3
3
|
export declare class HTMLImageRenderer implements Renderer {
|
|
4
4
|
private readonly document;
|
|
5
5
|
constructor(document: Document);
|
package/dist/html/image.js
CHANGED
|
@@ -30,12 +30,12 @@ class HTMLImageRenderer {
|
|
|
30
30
|
}
|
|
31
31
|
async render(data) {
|
|
32
32
|
if (!data.isString()) {
|
|
33
|
-
return (0, utils_1.createErrorElement)(this.document,
|
|
33
|
+
return (0, utils_1.createErrorElement)(this.document, 'Invalid field for Image renderer');
|
|
34
34
|
}
|
|
35
35
|
if (data.isNull()) {
|
|
36
36
|
return (0, utils_1.createNullElement)(this.document);
|
|
37
37
|
}
|
|
38
|
-
const element = this.document.createElement(
|
|
38
|
+
const element = this.document.createElement('img');
|
|
39
39
|
element.src = data.value;
|
|
40
40
|
return element;
|
|
41
41
|
}
|
package/dist/html/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { HTMLView } from
|
|
1
|
+
export { HTMLView } from './html_view';
|
package/dist/html/json.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataColumn } from
|
|
2
|
-
import { Renderer } from
|
|
1
|
+
import { DataColumn } from '@malloydata/malloy';
|
|
2
|
+
import { Renderer } from '../renderer';
|
|
3
3
|
export declare class HTMLJSONRenderer implements Renderer {
|
|
4
4
|
private readonly document;
|
|
5
5
|
constructor(document: Document);
|
package/dist/html/json.js
CHANGED
|
@@ -30,9 +30,9 @@ class HTMLJSONRenderer {
|
|
|
30
30
|
}
|
|
31
31
|
async render(table) {
|
|
32
32
|
if (!table.isArray() && !table.isRecord()) {
|
|
33
|
-
(0, utils_1.createErrorElement)(this.document,
|
|
33
|
+
(0, utils_1.createErrorElement)(this.document, 'Invalid data for chart renderer.');
|
|
34
34
|
}
|
|
35
|
-
const element = this.document.createElement(
|
|
35
|
+
const element = this.document.createElement('pre');
|
|
36
36
|
element.appendChild(this.document.createTextNode(JSON.stringify(table.value, undefined, 2)));
|
|
37
37
|
return element;
|
|
38
38
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DataColumn, Field } from
|
|
2
|
-
import { HTMLCartesianChartRenderer } from
|
|
1
|
+
import { DataColumn, Field } from '@malloydata/malloy';
|
|
2
|
+
import { HTMLCartesianChartRenderer } from './cartesian_chart';
|
|
3
3
|
export declare class HTMLLineChartRenderer extends HTMLCartesianChartRenderer {
|
|
4
|
-
getMark():
|
|
5
|
-
getDataType(field: Field):
|
|
4
|
+
getMark(): 'line';
|
|
5
|
+
getDataType(field: Field): 'temporal' | 'ordinal' | 'quantitative' | 'nominal';
|
|
6
6
|
getDataValue(data: DataColumn): Date | string | number | null;
|
|
7
7
|
}
|
package/dist/html/line_chart.js
CHANGED
|
@@ -26,21 +26,21 @@ exports.HTMLLineChartRenderer = void 0;
|
|
|
26
26
|
const cartesian_chart_1 = require("./cartesian_chart");
|
|
27
27
|
class HTMLLineChartRenderer extends cartesian_chart_1.HTMLCartesianChartRenderer {
|
|
28
28
|
getMark() {
|
|
29
|
-
return
|
|
29
|
+
return 'line';
|
|
30
30
|
}
|
|
31
31
|
getDataType(field) {
|
|
32
32
|
if (field.isAtomicField()) {
|
|
33
33
|
if (field.isDate() || field.isTimestamp()) {
|
|
34
|
-
return
|
|
34
|
+
return 'temporal';
|
|
35
35
|
}
|
|
36
36
|
else if (field.isString()) {
|
|
37
|
-
return
|
|
37
|
+
return 'nominal';
|
|
38
38
|
}
|
|
39
39
|
else if (field.isNumber()) {
|
|
40
|
-
return
|
|
40
|
+
return 'quantitative';
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
throw new Error(
|
|
43
|
+
throw new Error('Invalid field type for line chart.');
|
|
44
44
|
}
|
|
45
45
|
getDataValue(data) {
|
|
46
46
|
if (data.isNull()) {
|
|
@@ -53,7 +53,7 @@ class HTMLLineChartRenderer extends cartesian_chart_1.HTMLCartesianChartRenderer
|
|
|
53
53
|
return data.value;
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
throw new Error(
|
|
56
|
+
throw new Error('Invalid field type for line chart.');
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
}
|
package/dist/html/link.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataColumn } from
|
|
2
|
-
import { Renderer } from
|
|
1
|
+
import { DataColumn } from '@malloydata/malloy';
|
|
2
|
+
import { Renderer } from '../renderer';
|
|
3
3
|
export declare class HTMLLinkRenderer implements Renderer {
|
|
4
4
|
private readonly document;
|
|
5
5
|
constructor(document: Document);
|
package/dist/html/link.js
CHANGED
|
@@ -33,12 +33,12 @@ class HTMLLinkRenderer {
|
|
|
33
33
|
return (0, utils_1.createNullElement)(this.document);
|
|
34
34
|
}
|
|
35
35
|
if (!data.isString()) {
|
|
36
|
-
return (0, utils_1.createErrorElement)(this.document,
|
|
36
|
+
return (0, utils_1.createErrorElement)(this.document, 'Invalid type for link renderer.');
|
|
37
37
|
}
|
|
38
|
-
const element = document.createElement(
|
|
38
|
+
const element = document.createElement('a');
|
|
39
39
|
element.href = data.value;
|
|
40
|
-
element.target =
|
|
41
|
-
element.appendChild(this.document.createTextNode(data.value.replace(/\//g,
|
|
40
|
+
element.target = '_blank';
|
|
41
|
+
element.appendChild(this.document.createTextNode(data.value.replace(/\//g, '/\u200C')));
|
|
42
42
|
return element;
|
|
43
43
|
}
|
|
44
44
|
}
|
package/dist/html/list.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DataColumn, Explore, Field } from
|
|
2
|
-
import { StyleDefaults } from
|
|
3
|
-
import { ContainerRenderer } from
|
|
1
|
+
import { DataColumn, Explore, Field } from '@malloydata/malloy';
|
|
2
|
+
import { StyleDefaults } from '../data_styles';
|
|
3
|
+
import { ContainerRenderer } from './container';
|
|
4
4
|
export declare class HTMLListRenderer extends ContainerRenderer {
|
|
5
5
|
protected childrenStyleDefaults: StyleDefaults;
|
|
6
6
|
getValueField(struct: Explore): Field;
|
package/dist/html/list.js
CHANGED
|
@@ -29,7 +29,7 @@ class HTMLListRenderer extends container_1.ContainerRenderer {
|
|
|
29
29
|
constructor() {
|
|
30
30
|
super(...arguments);
|
|
31
31
|
this.childrenStyleDefaults = {
|
|
32
|
-
|
|
32
|
+
size: 'small',
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
getValueField(struct) {
|
|
@@ -40,18 +40,18 @@ class HTMLListRenderer extends container_1.ContainerRenderer {
|
|
|
40
40
|
}
|
|
41
41
|
async render(table) {
|
|
42
42
|
if (!table.isArray()) {
|
|
43
|
-
return (0, utils_1.createErrorElement)(this.document,
|
|
43
|
+
return (0, utils_1.createErrorElement)(this.document, 'Invalid data for chart renderer.');
|
|
44
44
|
}
|
|
45
45
|
if (table.rowCount === 0) {
|
|
46
|
-
return this.document.createElement(
|
|
46
|
+
return this.document.createElement('span');
|
|
47
47
|
}
|
|
48
48
|
const valueField = this.getValueField(table.field);
|
|
49
49
|
const detailField = this.getDetailField(table.field);
|
|
50
|
-
const element = this.document.createElement(
|
|
50
|
+
const element = this.document.createElement('span');
|
|
51
51
|
let isFirst = true;
|
|
52
52
|
for (const row of table) {
|
|
53
53
|
if (!isFirst) {
|
|
54
|
-
element.appendChild(this.document.createTextNode(
|
|
54
|
+
element.appendChild(this.document.createTextNode(', '));
|
|
55
55
|
}
|
|
56
56
|
isFirst = false;
|
|
57
57
|
const childRenderer = this.childRenderers[valueField.name];
|
|
@@ -61,9 +61,9 @@ class HTMLListRenderer extends container_1.ContainerRenderer {
|
|
|
61
61
|
const childRenderer = this.childRenderers[detailField.name];
|
|
62
62
|
await (0, utils_1.yieldTask)();
|
|
63
63
|
const rendered = await childRenderer.render(row.cell(detailField));
|
|
64
|
-
element.appendChild(this.document.createTextNode(
|
|
64
|
+
element.appendChild(this.document.createTextNode('('));
|
|
65
65
|
element.appendChild(rendered);
|
|
66
|
-
element.appendChild(this.document.createTextNode(
|
|
66
|
+
element.appendChild(this.document.createTextNode(')'));
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
return element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Explore, Field } from
|
|
2
|
-
import { HTMLListRenderer } from
|
|
1
|
+
import { Explore, Field } from '@malloydata/malloy';
|
|
2
|
+
import { HTMLListRenderer } from './list';
|
|
3
3
|
export declare class HTMLListDetailRenderer extends HTMLListRenderer {
|
|
4
4
|
getDetailField(explore: Explore): Field | undefined;
|
|
5
5
|
}
|
package/dist/html/number.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataColumn } from
|
|
2
|
-
import { HTMLTextRenderer } from
|
|
1
|
+
import { DataColumn } from '@malloydata/malloy';
|
|
2
|
+
import { HTMLTextRenderer } from './text';
|
|
3
3
|
export declare class HTMLNumberRenderer extends HTMLTextRenderer {
|
|
4
4
|
getNumber(data: DataColumn): number | null;
|
|
5
5
|
getText(data: DataColumn): string | null;
|
package/dist/html/percent.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataColumn } from
|
|
2
|
-
import { HTMLNumberRenderer } from
|
|
1
|
+
import { DataColumn } from '@malloydata/malloy';
|
|
2
|
+
import { HTMLNumberRenderer } from './number';
|
|
3
3
|
export declare class HTMLPercentRenderer extends HTMLNumberRenderer {
|
|
4
4
|
getText(data: DataColumn): string | null;
|
|
5
5
|
}
|
package/dist/html/percent.js
CHANGED
|
@@ -29,7 +29,7 @@ class HTMLPercentRenderer extends number_1.HTMLNumberRenderer {
|
|
|
29
29
|
const num = this.getNumber(data);
|
|
30
30
|
return num === null
|
|
31
31
|
? num
|
|
32
|
-
: (num * 100).toLocaleString(
|
|
32
|
+
: (num * 100).toLocaleString('en', { maximumFractionDigits: 2 }) + '%';
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
exports.HTMLPercentRenderer = HTMLPercentRenderer;
|
package/dist/html/point_map.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as lite from
|
|
2
|
-
import { DataArray, DataColumn, Field } from
|
|
3
|
-
import { HTMLChartRenderer } from
|
|
1
|
+
import * as lite from 'vega-lite';
|
|
2
|
+
import { DataArray, DataColumn, Field } from '@malloydata/malloy';
|
|
3
|
+
import { HTMLChartRenderer } from './chart';
|
|
4
4
|
export declare class HTMLPointMapRenderer extends HTMLChartRenderer {
|
|
5
5
|
getDataValue(data: DataColumn): string | number;
|
|
6
|
-
getDataType(field: Field):
|
|
6
|
+
getDataType(field: Field): 'ordinal' | 'quantitative' | 'nominal';
|
|
7
7
|
getVegaLiteSpec(data: DataArray): lite.TopLevelSpec;
|
|
8
8
|
}
|
package/dist/html/point_map.js
CHANGED
|
@@ -38,22 +38,22 @@ class HTMLPointMapRenderer extends chart_1.HTMLChartRenderer {
|
|
|
38
38
|
else if (data.isTimestamp() || data.isDate()) {
|
|
39
39
|
return (0, utils_1.timeToString)(data.value, data.field.timeframe || malloy_1.TimestampTimeframe.Second);
|
|
40
40
|
}
|
|
41
|
-
throw new Error(
|
|
41
|
+
throw new Error('Invalid field type for point map chart.');
|
|
42
42
|
}
|
|
43
43
|
getDataType(field) {
|
|
44
44
|
if (field.isAtomicField()) {
|
|
45
45
|
if (field.isDate() || field.isTimestamp() || field.isString()) {
|
|
46
|
-
return
|
|
46
|
+
return 'nominal';
|
|
47
47
|
}
|
|
48
48
|
else if (field.isNumber()) {
|
|
49
|
-
return
|
|
49
|
+
return 'quantitative';
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
throw new Error(
|
|
52
|
+
throw new Error('Invalid field type for point map.');
|
|
53
53
|
}
|
|
54
54
|
getVegaLiteSpec(data) {
|
|
55
55
|
if (data.isNull()) {
|
|
56
|
-
throw new Error(
|
|
56
|
+
throw new Error('Expected struct value not to be null.');
|
|
57
57
|
}
|
|
58
58
|
const fields = data.field.intrinsicFields;
|
|
59
59
|
const latField = fields[0];
|
|
@@ -66,90 +66,90 @@ class HTMLPointMapRenderer extends chart_1.HTMLChartRenderer {
|
|
|
66
66
|
const shapeType = shapeField ? this.getDataType(shapeField) : undefined;
|
|
67
67
|
const colorDef = colorField !== undefined
|
|
68
68
|
? {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
field: colorField.name,
|
|
70
|
+
type: colorType,
|
|
71
|
+
axis: { title: (0, utils_1.formatTitle)(this.options, colorField.name) },
|
|
72
|
+
scale: (0, utils_1.getColorScale)(colorType, false),
|
|
73
73
|
}
|
|
74
74
|
: undefined;
|
|
75
75
|
const sizeDef = sizeField
|
|
76
76
|
? {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
field: sizeField.name,
|
|
78
|
+
type: sizeType,
|
|
79
|
+
axis: { title: (0, utils_1.formatTitle)(this.options, sizeField.name) },
|
|
80
80
|
}
|
|
81
|
-
: {
|
|
81
|
+
: { value: 5 };
|
|
82
82
|
const shapeDef = shapeField
|
|
83
83
|
? {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
field: shapeField.name,
|
|
85
|
+
type: shapeType,
|
|
86
|
+
axis: { title: (0, utils_1.formatTitle)(this.options, shapeField.name) },
|
|
87
87
|
}
|
|
88
|
-
: {
|
|
88
|
+
: { value: 'circle' };
|
|
89
89
|
return {
|
|
90
90
|
...this.getSize(),
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
data: {
|
|
92
|
+
values: this.mapData(data),
|
|
93
93
|
},
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
projection: {
|
|
95
|
+
type: 'albersUsa',
|
|
96
96
|
},
|
|
97
|
-
|
|
97
|
+
layer: [
|
|
98
98
|
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
99
|
+
data: {
|
|
100
|
+
values: states_10m_json_1.default,
|
|
101
|
+
format: {
|
|
102
|
+
type: 'topojson',
|
|
103
|
+
feature: 'states',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
mark: {
|
|
107
|
+
type: 'geoshape',
|
|
108
|
+
fill: '#efefef',
|
|
109
|
+
stroke: 'white',
|
|
105
110
|
},
|
|
106
|
-
"mark": {
|
|
107
|
-
"type": "geoshape",
|
|
108
|
-
"fill": "#efefef",
|
|
109
|
-
"stroke": "white"
|
|
110
|
-
}
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
}
|
|
113
|
+
mark: 'point',
|
|
114
|
+
encoding: {
|
|
115
|
+
latitude: { field: latField.name, type: 'quantitative' },
|
|
116
|
+
longitude: { field: lonField.name, type: 'quantitative' },
|
|
117
|
+
size: sizeDef,
|
|
118
|
+
color: colorDef,
|
|
119
|
+
shape: shapeDef,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
122
|
],
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
123
|
+
background: 'transparent',
|
|
124
|
+
config: {
|
|
125
|
+
axis: {
|
|
126
|
+
labelFont: 'var(--malloy-font-family, Roboto)',
|
|
127
|
+
titleFont: 'var(--malloy-font-family, Roboto)',
|
|
128
|
+
titleFontWeight: 500,
|
|
129
|
+
titleColor: 'var(--malloy-title-color, #505050)',
|
|
130
|
+
labelColor: 'var(--malloy-label-color, #000000)',
|
|
131
|
+
titleFontSize: 12,
|
|
132
132
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
legend: {
|
|
134
|
+
labelFont: 'var(--malloy-font-family, Roboto)',
|
|
135
|
+
titleFont: 'var(--malloy-font-family, Roboto)',
|
|
136
|
+
titleFontWeight: 500,
|
|
137
|
+
titleColor: 'var(--malloy-title-color, #505050)',
|
|
138
|
+
labelColor: 'var(--malloy-label-color, #000000)',
|
|
139
|
+
titleFontSize: 12,
|
|
140
140
|
},
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
141
|
+
header: {
|
|
142
|
+
labelFont: 'var(--malloy-font-family, Roboto)',
|
|
143
|
+
titleFont: 'var(--malloy-font-family, Roboto)',
|
|
144
|
+
titleFontWeight: 500,
|
|
145
145
|
},
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
}
|
|
146
|
+
mark: { font: 'var(--malloy-Roboto' },
|
|
147
|
+
title: {
|
|
148
|
+
font: 'var(--malloy-font-family, Roboto)',
|
|
149
|
+
subtitleFont: 'var(--malloy-font-family, Roboto)',
|
|
150
|
+
fontWeight: 500,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DataColumn, Field } from
|
|
2
|
-
import { HTMLCartesianChartRenderer } from
|
|
1
|
+
import { DataColumn, Field } from '@malloydata/malloy';
|
|
2
|
+
import { HTMLCartesianChartRenderer } from './cartesian_chart';
|
|
3
3
|
export declare class HTMLScatterChartRenderer extends HTMLCartesianChartRenderer {
|
|
4
|
-
getMark():
|
|
5
|
-
getDataType(field: Field):
|
|
4
|
+
getMark(): 'point';
|
|
5
|
+
getDataType(field: Field): 'temporal' | 'ordinal' | 'quantitative' | 'nominal';
|
|
6
6
|
getDataValue(data: DataColumn): Date | string | number | null;
|
|
7
7
|
}
|