chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module">
|
||||
import "/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
|
||||
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
|
||||
window.WORKER = perspective.worker();
|
||||
</script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,44 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<script type="module">
|
||||
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
|
||||
import "/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
|
||||
|
||||
class TestChartPlugin extends customElements.get("perspective-viewer-plugin") {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "test chart",
|
||||
select_mode: "toggle",
|
||||
config_column_names: ["X Axis", "Y Axis", "Color", "Size", "Tooltip"],
|
||||
min_config_columns: 2,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("test-chart-plugin", TestChartPlugin);
|
||||
const Viewer = customElements.get("perspective-viewer");
|
||||
Viewer.registerPlugin("test-chart-plugin");
|
||||
|
||||
const viewer = document.createElement("perspective-viewer");
|
||||
document.body.appendChild(viewer);
|
||||
let resp = await fetch("/node_modules/@perspective-dev/test/assets/superstore.csv");
|
||||
|
||||
let csv = await resp.text();
|
||||
const worker = await perspective.worker();
|
||||
const table = worker.table(csv, {
|
||||
index: "Row ID",
|
||||
name: "load-viewer-csv",
|
||||
});
|
||||
|
||||
await viewer.load(table);
|
||||
window.__TEST_WORKER__ = worker;
|
||||
window.__TEST_PERSPECTIVE_READY__ = true;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,48 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<script type="module">
|
||||
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
|
||||
import "/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
|
||||
|
||||
class TestColumnSettingsPlugin extends customElements.get("perspective-viewer-plugin") {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "test column settings",
|
||||
select_mode: "select",
|
||||
config_column_names: [],
|
||||
can_render_column_styles: true,
|
||||
};
|
||||
}
|
||||
|
||||
column_style_controls(type, group) {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("test-column-settings-plugin", TestColumnSettingsPlugin);
|
||||
const Viewer = customElements.get("perspective-viewer");
|
||||
Viewer.registerPlugin("test-column-settings-plugin");
|
||||
|
||||
const viewer = document.createElement("perspective-viewer");
|
||||
document.body.appendChild(viewer);
|
||||
let resp = await fetch("/node_modules/@perspective-dev/test/assets/superstore.csv");
|
||||
|
||||
let csv = await resp.text();
|
||||
const worker = await perspective.worker();
|
||||
const table = worker.table(csv, {
|
||||
index: "Row ID",
|
||||
name: "load-viewer-csv",
|
||||
});
|
||||
|
||||
await viewer.load(table);
|
||||
window.__TEST_WORKER__ = worker;
|
||||
window.__TEST_PERSPECTIVE_READY__ = true;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,141 @@
|
||||
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
||||
// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
||||
// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
||||
// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
||||
// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
||||
// ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
||||
// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
||||
// ┃ This file is part of the Perspective library, distributed under the terms ┃
|
||||
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
||||
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
import "/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
|
||||
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
|
||||
|
||||
const BasePlugin = customElements.get("perspective-viewer-plugin");
|
||||
|
||||
class DebugStyledPlugin extends BasePlugin {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "Debug Styled",
|
||||
select_mode: "toggle",
|
||||
config_column_names: ["Columns"],
|
||||
priority: 1,
|
||||
can_render_column_styles: true,
|
||||
};
|
||||
}
|
||||
|
||||
plugin_config_schema() {
|
||||
return {
|
||||
fields: [
|
||||
{
|
||||
kind: "Enum",
|
||||
key: "edit_mode",
|
||||
default: "READ_ONLY",
|
||||
variants: [
|
||||
{ value: "EDIT", label: "Edit" },
|
||||
{ value: "READ_ONLY", label: "Read-only" },
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
column_config_schema(type) {
|
||||
const fields = [];
|
||||
if (type === "integer" || type === "float") {
|
||||
fields.push({
|
||||
kind: "ColorRange",
|
||||
key_pos: "pos_fg_color",
|
||||
key_neg: "neg_fg_color",
|
||||
default_pos: "#2771a8",
|
||||
default_neg: "#ff471e",
|
||||
is_gradient: false,
|
||||
});
|
||||
fields.push({ kind: "NumberFormat" });
|
||||
} else if (type === "date") {
|
||||
fields.push({ kind: "DatetimeFormat" });
|
||||
} else if (type === "datetime") {
|
||||
fields.push({ kind: "DatetimeFormat" });
|
||||
fields.push({
|
||||
kind: "Enum",
|
||||
key: "datetime_color_mode",
|
||||
default: "none",
|
||||
variants: [
|
||||
{ value: "none", label: "None" },
|
||||
{ value: "foreground", label: "Foreground" },
|
||||
],
|
||||
});
|
||||
} else if (type === "string") {
|
||||
fields.push({ kind: "StringFormat" });
|
||||
}
|
||||
|
||||
return { fields };
|
||||
}
|
||||
|
||||
restore(token, columns_config) {
|
||||
this._restored_plugin_config = token;
|
||||
this._restored_columns_config = columns_config;
|
||||
this._restore_count = (this._restore_count ?? 0) + 1;
|
||||
}
|
||||
|
||||
async update(view) {
|
||||
return this.draw(view);
|
||||
}
|
||||
|
||||
async draw(view) {
|
||||
this._draw_count = (this._draw_count ?? 0) + 1;
|
||||
const num_rows = await view.num_rows();
|
||||
this.textContent = `${this.get_static_config().name}: ${num_rows} rows`;
|
||||
}
|
||||
}
|
||||
|
||||
class DebugAltPlugin extends DebugStyledPlugin {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "Debug Alt",
|
||||
select_mode: "select",
|
||||
priority: 0,
|
||||
can_render_column_styles: false,
|
||||
};
|
||||
}
|
||||
|
||||
plugin_config_schema() {
|
||||
return { fields: [] };
|
||||
}
|
||||
|
||||
column_config_schema() {
|
||||
return { fields: [] };
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("perspective-viewer-debug-styled", DebugStyledPlugin);
|
||||
customElements.define("perspective-viewer-debug-alt", DebugAltPlugin);
|
||||
|
||||
const Viewer = customElements.get("perspective-viewer");
|
||||
Viewer.registerPlugin("perspective-viewer-debug-styled");
|
||||
Viewer.registerPlugin("perspective-viewer-debug-alt");
|
||||
|
||||
async function load() {
|
||||
const resp = await fetch(
|
||||
"/node_modules/@perspective-dev/test/assets/superstore.csv",
|
||||
);
|
||||
|
||||
const csv = await resp.text();
|
||||
const viewer = document.querySelector("perspective-viewer");
|
||||
const worker = await perspective.worker();
|
||||
const table = worker.table(csv, {
|
||||
index: "Row ID",
|
||||
name: "load-viewer-csv",
|
||||
});
|
||||
|
||||
if (viewer) {
|
||||
await viewer.load(table);
|
||||
}
|
||||
|
||||
window.__TEST_WORKER__ = worker;
|
||||
}
|
||||
|
||||
await load();
|
||||
window.__TEST_PERSPECTIVE_READY__ = true;
|
||||
@@ -0,0 +1,48 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer> </perspective-viewer>
|
||||
<script type="module">
|
||||
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
|
||||
window.WORKER = perspective.worker();
|
||||
const datetime_range_data = [
|
||||
{
|
||||
v: new Date(2020, 2, 1),
|
||||
w: new Date(2020, 2, 1, 12, 30, 55),
|
||||
x: 1,
|
||||
y: "a",
|
||||
z: true,
|
||||
}, // 2020/03/01 12:30:55 GMT-0400
|
||||
{
|
||||
v: new Date(2020, 9, 1),
|
||||
w: new Date(2020, 9, 1, 15, 30, 55),
|
||||
x: 2,
|
||||
y: "b",
|
||||
z: false,
|
||||
}, // 2020/10/01 15:30:55 GMT-0400
|
||||
{
|
||||
v: new Date(2020, 10, 1),
|
||||
w: new Date(2020, 10, 1, 19, 30, 55),
|
||||
x: 3,
|
||||
y: "c",
|
||||
z: true,
|
||||
}, // 2020/11/01 19:30:55 GMT-0500
|
||||
{
|
||||
v: new Date(2020, 11, 1),
|
||||
w: new Date(2020, 11, 1, 23, 30, 55),
|
||||
x: 4,
|
||||
y: "d",
|
||||
z: false,
|
||||
}, // 2020/12/01 23:30:55 GMT-0500
|
||||
];
|
||||
const table = window.WORKER.table(datetime_range_data);
|
||||
document.querySelector("perspective-viewer").load(table);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,43 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module">
|
||||
await customElements.whenDefined("perspective-viewer-plugin");
|
||||
const BASE = customElements.get("perspective-viewer-plugin");
|
||||
class TestChartPluginHighPriority extends BASE {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "HighPriority",
|
||||
config_column_names: [],
|
||||
priority: 10,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class TestChartPluginLowPriority extends BASE {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "LowPriority",
|
||||
config_column_names: [],
|
||||
priority: -10,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("low-priority", TestChartPluginLowPriority);
|
||||
customElements.define("high-priority", TestChartPluginHighPriority);
|
||||
await customElements.whenDefined("perspective-viewer").then((viewer) => {
|
||||
viewer.registerPlugin("low-priority");
|
||||
viewer.registerPlugin("high-priority");
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="module" src="/node_modules/@perspective-dev/test/load-viewer-csv.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,49 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module">
|
||||
await customElements.whenDefined("perspective-viewer-plugin");
|
||||
const BASE = customElements.get("perspective-viewer-plugin");
|
||||
|
||||
class TestPluginImplementsResize extends BASE {
|
||||
get_static_config() {
|
||||
return {
|
||||
name: "Resizing Plugin",
|
||||
select_mode: "select",
|
||||
config_column_names: [],
|
||||
};
|
||||
}
|
||||
|
||||
async draw(view) {
|
||||
this._view = view;
|
||||
console.log(await this._view.num_rows());
|
||||
return await super.draw(view);
|
||||
}
|
||||
|
||||
async update(view) {
|
||||
this._view = view;
|
||||
console.log(await this._view.num_rows());
|
||||
return await super.update(view);
|
||||
}
|
||||
|
||||
async resize(view) {
|
||||
console.log(await this._view.num_rows());
|
||||
await this._view.to_csv();
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("resize-plugin", TestPluginImplementsResize);
|
||||
await customElements.whenDefined("perspective-viewer").then((viewer) => {
|
||||
viewer.registerPlugin("resize-plugin");
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="module" src="/node_modules/@perspective-dev/test/load-viewer-csv.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer-charts/dist/cdn/perspective-viewer-charts.js"></script>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer-datagrid/dist/cdn/perspective-viewer-datagrid.js"></script>
|
||||
<script type="module" src="/node_modules/@perspective-dev/test/load-viewer-csv.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<perspective-viewer> </perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,12 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="./debug_plugins.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module">
|
||||
import "/node_modules/@perspective-dev/viewer/dist/esm/perspective-viewer.inline.js";
|
||||
import perspective from "/node_modules/@perspective-dev/client/dist/cdn/perspective.js";
|
||||
|
||||
async function load() {
|
||||
let resp = await fetch("/node_modules/@perspective-dev/test/assets/superstore.csv");
|
||||
let csv = await resp.text();
|
||||
const viewer = document.querySelector("perspective-viewer");
|
||||
const worker = await perspective.worker();
|
||||
const table = worker.table(csv, { index: "Row ID" });
|
||||
await viewer.load(table);
|
||||
window.__TEST_WORKER__ = worker;
|
||||
}
|
||||
|
||||
await load();
|
||||
window.__TEST_PERSPECTIVE_READY__ = true;
|
||||
</script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,21 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="http://localhost:6598/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module" src="http://localhost:6598/node_modules/@perspective-dev/test/load-viewer-csv-single-threaded.js"></script>
|
||||
<link rel="stylesheet" href="http://localhost:6598/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="http://localhost:6598/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
<style>
|
||||
perspective-viewer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,13 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module" src="/node_modules/@perspective-dev/test/load-viewer-csv.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body>
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module" src="/node_modules/@perspective-dev/test/load-viewer.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
</head>
|
||||
<body></body>
|
||||
</html>
|
||||
@@ -0,0 +1,19 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="module" src="/node_modules/@perspective-dev/viewer/dist/cdn/perspective-viewer.js"></script>
|
||||
<script type="module" src="/node_modules/@perspective-dev/test/load-viewer-csv.js"></script>
|
||||
<link rel="stylesheet" href="../css/demo.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@perspective-dev/viewer/dist/css/pro.css" />
|
||||
<link rel="stylesheet" href="/node_modules/@fontsource/roboto-mono/400.css" />
|
||||
<style>
|
||||
perspective-viewer {
|
||||
top: 50px !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<input />
|
||||
<perspective-viewer></perspective-viewer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user