Skip to content

Commit 0f6bfcd

Browse files
committed
Update @perspective-dev/workspace to load Client
Signed-off-by: Andrew Stein <[email protected]>
1 parent 255b777 commit 0f6bfcd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1034
-601
lines changed

docs/template.html

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,24 @@
1919
</head>
2020

2121
<body>
22-
<perspective-viewer> </perspective-viewer>
22+
<perspective-viewer></perspective-viewer>
2323
<script type="module">
2424
import "/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
2525
import "/node_modules/@perspective-dev/viewer-datagrid/dist/cdn/perspective-viewer-datagrid.js";
2626
import "/node_modules/@perspective-dev/viewer-d3fc/dist/cdn/perspective-viewer-d3fc.js";
2727
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
2828
const WORKER = await perspective.worker();
29-
async function on_load() {
30-
var el = document.getElementsByTagName("perspective-viewer")[0];
31-
const plugin = await el.getPlugin("Heatmap");
32-
plugin.render_warning = false;
33-
const table = WORKER.table(this.response);
34-
await el.load(table);
35-
await el.toggleConfig();
36-
window.__TEST_PERSPECTIVE_READY__ = true;
37-
}
3829

3930
var xhr = new XMLHttpRequest();
40-
xhr.open("GET", "/node_modules/superstore-arrow/superstore.lz4.arrow", true);
41-
xhr.responseType = "arraybuffer";
42-
xhr.onload = on_load.bind(xhr);
43-
xhr.send(null);
31+
const req = await fetch("/node_modules/superstore-arrow/superstore.lz4.arrow");
32+
const buff = await req.arrayBuffer();
33+
var el = document.getElementsByTagName("perspective-viewer")[0];
34+
const plugin = await el.getPlugin("Heatmap");
35+
plugin.render_warning = false;
36+
const table = WORKER.table(buff);
37+
await el.load(table);
38+
await el.toggleConfig();
39+
4440
</script>
4541
</body>
4642
</html>

examples/blocks/src/dataset/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@
153153
let rows = [];
154154
const batch_size = Math.floor(nrows / num_batches.value);
155155
const batch_freq = batch_delay.value;
156-
const tbl = await client.table(new_schema());
156+
const tbl = await client.table(new_schema(), { name: "superstore" });
157157
(function batch() {
158158
while (nrows > 0) {
159159
rows.push(new_row());
@@ -207,17 +207,17 @@
207207
},
208208
{
209209
limit: 2000,
210+
name: "stats",
210211
},
211212
);
212213

213-
window.psp_workspace.addTable("stats", stats_table);
214-
215-
(async function checkmem() {
214+
(async function check_mem_loop() {
216215
await stats_table.update([await client.system_info()]);
217-
setTimeout(checkmem, 200);
216+
setTimeout(check_mem_loop, 200);
218217
})();
219218

220-
window.psp_workspace.restore(await fetch("layout.json").then((x) => x.json()));
219+
await window.psp_workspace.load(client);
220+
await window.psp_workspace.restore(await fetch("layout.json").then((x) => x.json()));
221221
</script>
222222
</body>
223223
</html>

examples/blocks/src/editable/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
const resp = await fetch("/node_modules/superstore-arrow/superstore.lz4.arrow");
1818
const arrow = await resp.arrayBuffer();
1919
const viewer = document.getElementsByTagName("perspective-viewer")[0];
20-
const table = worker.table(arrow);
21-
viewer.load(table);
22-
viewer.restore({ settings: true, plugin_config: { edit_mode: "EDIT" } });
20+
await worker.table(arrow, { name: "superstore" });
21+
await viewer.load(worker);
22+
await viewer.restore({ table: "superstore", settings: true, plugin_config: { edit_mode: "EDIT" } });
2323
</script>
2424
<style>
2525
perspective-viewer {

examples/blocks/src/movies/index.html

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
right: 0;
1515
}
1616

17+
body {
18+
overflow: hidden;
19+
}
20+
1721
perspective-viewer {
1822
--d3fc-positive--gradient: linear-gradient(#94d0ff, #8795e8, #966bff, #ad8cff, #c774e8, #c774a9, #ff6ad5, #ff6a8b, #ff8b8b, #ffa58b, #ffde8b, #cdde8b, #8bde8b, #20de8b) !important;
1923
--d3fc-negative--gradient: linear-gradient(#94d0ff, #8795e8, #966bff, #ad8cff, #c774e8, #c774a9, #ff6ad5, #ff6a8b, #ff8b8b, #ffa58b, #ffde8b, #cdde8b, #8bde8b, #20de8b) !important;
@@ -22,9 +26,7 @@
2226
</style>
2327
</head>
2428
<body>
25-
<perspective-workspace id="workspace">
26-
<perspective-viewer table="movies"></perspective-viewer>
27-
</perspective-workspace>
29+
<perspective-workspace id="workspace"> </perspective-workspace>
2830
<script type="module">
2931
import "/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
3032
import "/node_modules/@perspective-dev/workspace/dist/cdn/perspective-workspace.js";
@@ -54,24 +56,22 @@
5456

5557
const MOVIES_URL = "https://vega.github.io/editor/data/movies.json";
5658

57-
const datasource = async () => {
59+
(async () => {
5860
const request = fetch(MOVIES_URL);
5961
const worker = await perspective.worker();
6062
const response = await request;
6163
const json = await response.json();
6264
for (const row of json) {
6365
row["Release Date"] = row["Release Date"] ? new Date(row["Release Date"]) || null : null;
6466
}
65-
const table = await worker.table(SCHEMA);
66-
table.update(json);
67-
return table;
68-
};
69-
70-
let req = await fetch("layout.json");
71-
let layout = await req.json();
7267

73-
window.workspace.tables.set("movies", datasource());
74-
window.workspace.restore(layout);
68+
const table = await worker.table(SCHEMA, { name: "movies" });
69+
table.update(json);
70+
let req = await fetch("layout.json");
71+
let layout = await req.json();
72+
await window.workspace.load(worker);
73+
await window.workspace.restore(layout);
74+
})();
7575
</script>
7676
</body>
7777
</html>

examples/blocks/src/raycasting/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ const LAYOUT = {
127127
group_by: [`x`],
128128
split_by: [`y`],
129129
columns: ["color"],
130+
table: "raycasting",
130131
expressions: {
131132
color: EXPRESSION,
132133
x: `floor(index() / ${RESOLUTION}) - ${RESOLUTION} / 2`,
@@ -140,6 +141,6 @@ const heatmap_plugin = await window.viewer.getPlugin("Heatmap");
140141
heatmap_plugin.max_cells = 100000;
141142
const worker = await perspective.worker();
142143
const index = new Array(Math.pow(RESOLUTION, 2)).fill(0);
143-
const table = worker.table({ index });
144-
window.viewer.load(table);
144+
worker.table({ index }, { name: "raycasting" });
145+
window.viewer.load(worker);
145146
await window.viewer.restore(LAYOUT);

examples/blocks/src/superstore/index.html

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
44
<link rel="preload" href="/node_modules/@perspective-dev/server/dist/wasm/perspective-server.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" />
55
<link rel="preload" href="/node_modules/@perspective-dev/viewer/dist/wasm/perspective-viewer.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" />
6-
<link rel="stylesheet" crossorigin="anonymous" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
6+
<link rel="stylesheet" crossorigin="anonymous" href="/node_modules/@perspective-dev/viewer/dist/css/themes.css" />
77
<link rel="stylesheet" crossorigin="anonymous" href="/node_modules/@perspective-dev/workspace/dist/css/pro.css" />
88
<style>
99
perspective-workspace {
@@ -37,17 +37,14 @@
3737
return json;
3838
}
3939

40-
const datasource = async () => {
41-
const request = fetch(DATA_URL);
42-
const worker = await perspective.worker();
43-
const response = await request;
44-
const buffer = await response.arrayBuffer();
45-
return await worker.table(buffer);
46-
};
47-
48-
window.workspace.tables.set("superstore", datasource());
40+
const request = fetch(DATA_URL);
41+
const worker = await perspective.worker();
42+
const response = await request;
43+
const buffer = await response.arrayBuffer();
44+
await worker.table(buffer, { name: "superstore" });
45+
window.workspace.load(worker);
4946
const layout = await get_layout();
50-
window.workspace.restore(layout);
47+
await window.workspace.restore(layout);
5148
</script>
5249
</body>
5350
</html>

packages/viewer-d3fc/src/ts/axis/valueFormatter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import * as d3 from "d3";
1515
const SI_MIN = 10000000;
1616

1717
export const getValueFormatterForRange = (min: number, max: number) => {
18-
let precision = Math.ceil(Math.abs(Math.log10(max - min))) + 1;
18+
let precision =
19+
min == max ? 0 : Math.ceil(Math.abs(Math.log10(max - min))) + 1;
1920

2021
return (d: number) => {
2122
try {

packages/viewer-d3fc/src/ts/d3fc/axis/multi-axis.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ const multiAxis = (orient: Orient, baseAxis, scale): MultiAxis => {
6060
const domainPathDataJoin = dataJoin("path", "domain");
6161

6262
const translate = (x, y) =>
63-
isVertical() ? `translate(${y}, ${x})` : `translate(${x}, ${y})`;
63+
isNaN(x) || isNaN(y)
64+
? ""
65+
: isVertical()
66+
? `translate(${y}, ${x})`
67+
: `translate(${x}, ${y})`;
6468

6569
const pathTranspose = (arr) =>
6670
isVertical() ? arr.map((d) => [d[1], d[0]]) : arr;

packages/viewer-d3fc/src/ts/data/splitAndBaseData.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ export function splitAndBaseData(
4444
return {
4545
key,
4646
crossValue: labelfn(col, i),
47-
mainValue: value,
48-
baseValue: baseValue,
47+
mainValue: isNaN(value) ? 0 : value,
48+
baseValue: isNaN(baseValue) ? 0 : baseValue,
4949
row: col,
5050
};
5151
});

packages/viewer-d3fc/src/ts/plugin/plugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ class HTMLPerspectiveViewerD3fcPluginElement extends HTMLElement {
341341
}
342342

343343
metadata = await Promise.all([
344-
viewer.save(),
344+
viewer.getViewConfig(),
345345
viewer.getTable().then((table) => table.schema()),
346346
view.expression_schema(false),
347347
view.schema(false),

0 commit comments

Comments
 (0)