chore: import upstream snapshot with attribution
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user