From abc3d0736ca88033355efef08da96c2324a4c805 Mon Sep 17 00:00:00 2001 From: Andrew Stein Date: Tue, 3 Mar 2026 11:38:58 -0500 Subject: [PATCH 1/2] Refactor C++ `leaves_only` to `group_rollup_mode` Signed-off-by: Andrew Stein --- rust/perspective-client/perspective.proto | 10 +- .../src/rust/config/view_config.rs | 68 +++ rust/perspective-client/src/rust/view.rs | 10 +- rust/perspective-js/test/js/filters.spec.js | 1 + .../test/js/group_rollup_mode.spec.js | 487 ++++++++++++++++++ rust/perspective-js/test/js/to_format.spec.js | 78 ++- .../test/js/view_config.spec.js | 5 + .../cpp/perspective/src/cpp/context_one.cpp | 21 +- .../cpp/perspective/src/cpp/context_two.cpp | 19 +- .../cpp/perspective/src/cpp/server.cpp | 25 +- .../cpp/perspective/src/cpp/traversal.cpp | 95 ++++ .../src/cpp/tree_context_common.cpp | 112 ++-- .../cpp/perspective/src/cpp/view.cpp | 88 +--- .../cpp/perspective/src/cpp/view_config.cpp | 11 +- .../src/include/perspective/context_one.h | 2 + .../src/include/perspective/context_two.h | 2 + .../src/include/perspective/server.h | 9 - .../src/include/perspective/traversal.h | 14 + .../src/include/perspective/view.h | 7 - .../src/include/perspective/view_config.h | 6 +- .../rust/session/replace_expression_update.rs | 1 + 21 files changed, 894 insertions(+), 177 deletions(-) create mode 100644 rust/perspective-js/test/js/group_rollup_mode.spec.js diff --git a/rust/perspective-client/perspective.proto b/rust/perspective-client/perspective.proto index e0aff91c56..fbdf8a1b39 100644 --- a/rust/perspective-client/perspective.proto +++ b/rust/perspective-client/perspective.proto @@ -393,7 +393,6 @@ message ViewToColumnsStringReq { optional bool id = 2; optional bool index = 3; optional bool formatted = 4; - optional bool leaves_only = 5; } message ViewToColumnsStringResp { @@ -405,7 +404,6 @@ message ViewToRowsStringReq { optional bool id = 2; optional bool index = 3; optional bool formatted = 4; - optional bool leaves_only = 5; } message ViewToRowsStringResp { @@ -417,7 +415,6 @@ message ViewToNdjsonStringReq { optional bool id = 2; optional bool index = 3; optional bool formatted = 4; - optional bool leaves_only = 5; } message ViewToNdjsonStringResp { @@ -522,6 +519,7 @@ message ViewConfig { map aggregates = 7; FilterReducer filter_op = 8; optional uint32 group_by_depth = 9; + optional GroupRollupMode group_rollup_mode = 10; message AggList { repeated string aggregations = 1; @@ -542,6 +540,12 @@ message ViewConfig { AND = 0; OR = 1; } + + enum GroupRollupMode { + ROLLUP = 0; + FLAT = 1; + // TOTAL = 2; + } } message ColumnsUpdate { diff --git a/rust/perspective-client/src/rust/config/view_config.rs b/rust/perspective-client/src/rust/config/view_config.rs index 50372b2eea..43a2d9c391 100644 --- a/rust/perspective-client/src/rust/config/view_config.rs +++ b/rust/perspective-client/src/rust/config/view_config.rs @@ -11,6 +11,7 @@ // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ use std::collections::HashMap; +use std::fmt::Display; use serde::{Deserialize, Serialize}; use ts_rs::TS; @@ -22,6 +23,48 @@ use super::sort::*; use crate::proto; use crate::proto::columns_update; +#[derive(Clone, Copy, Debug, Default, Deserialize, Serialize, PartialEq, Eq, TS)] +pub enum GroupRollupMode { + #[default] + #[serde(rename = "rollup")] + Rollup, + + #[serde(rename = "flat")] + Flat, + // #[serde(rename = "total")] + // Total, +} + +impl Display for GroupRollupMode { + fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> { + write!(fmt, "{}", match self { + Self::Rollup => "Rollup", + Self::Flat => "Flat", + // Self::Total => "Total", + }) + } +} + +impl From for GroupRollupMode { + fn from(value: proto::view_config::GroupRollupMode) -> Self { + match value { + proto::view_config::GroupRollupMode::Rollup => Self::Rollup, + proto::view_config::GroupRollupMode::Flat => Self::Flat, + // proto::view_config::GroupRollupMode::Total => Self::Total, + } + } +} + +impl From for proto::view_config::GroupRollupMode { + fn from(value: GroupRollupMode) -> Self { + match value { + GroupRollupMode::Rollup => proto::view_config::GroupRollupMode::Rollup, + GroupRollupMode::Flat => proto::view_config::GroupRollupMode::Flat, + // GroupRollupMode::Total => proto::view_config::GroupRollupMode::Total, + } + } +} + #[derive(Clone, Debug, Deserialize, Default, PartialEq, Serialize, TS)] #[serde(deny_unknown_fields)] pub struct ViewConfig { @@ -37,6 +80,10 @@ pub struct ViewConfig { #[serde(default)] pub filter: Vec, + // #[serde(skip_serializing_if = "is_default_value")] + #[serde(default)] + pub group_rollup_mode: GroupRollupMode, + #[serde(skip_serializing_if = "is_default_value")] #[serde(default)] pub filter_op: FilterReducer, @@ -164,6 +211,11 @@ pub struct ViewConfigUpdate { #[serde(default)] #[ts(optional)] pub filter_op: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default)] + #[ts(optional)] + pub group_rollup_mode: Option, } impl From for proto::ViewConfig { @@ -202,6 +254,9 @@ impl From for proto::ViewConfig { .map(|(x, y)| (x, y.into())) .collect(), group_by_depth: value.group_by_depth, + group_rollup_mode: value + .group_rollup_mode + .map(|x| proto::view_config::GroupRollupMode::from(x).into()), } } } @@ -236,6 +291,7 @@ impl From for ViewConfigUpdate { expressions: Some(value.expressions), aggregates: Some(value.aggregates), group_by_depth: value.group_by_depth, + group_rollup_mode: Some(value.group_rollup_mode), } } } @@ -265,6 +321,12 @@ impl From for ViewConfig { .map(|(x, y)| (x, y.into())) .collect(), group_by_depth: value.group_by_depth, + group_rollup_mode: value + .group_rollup_mode + .map(proto::view_config::GroupRollupMode::try_from) + .and_then(|x| x.ok()) + .map(|x| x.into()) + .unwrap_or_default(), } } } @@ -281,6 +343,7 @@ impl From for ViewConfig { expressions: value.expressions.unwrap_or_default(), aggregates: value.aggregates.unwrap_or_default(), group_by_depth: value.group_by_depth, + group_rollup_mode: value.group_rollup_mode.unwrap_or_default(), } } } @@ -312,6 +375,10 @@ impl From for ViewConfigUpdate { .collect(), ), group_by_depth: value.group_by_depth, + group_rollup_mode: value + .group_rollup_mode + .and_then(|x| proto::view_config::GroupRollupMode::try_from(x).ok()) + .map(|x| x.into()), } } } @@ -346,6 +413,7 @@ impl ViewConfig { changed = Self::_apply(&mut self.sort, update.sort) || changed; changed = Self::_apply(&mut self.aggregates, update.aggregates) || changed; changed = Self::_apply(&mut self.expressions, update.expressions) || changed; + changed = Self::_apply(&mut self.group_rollup_mode, update.group_rollup_mode) || changed; changed } diff --git a/rust/perspective-client/src/rust/view.rs b/rust/perspective-client/src/rust/view.rs index 05c7c134f2..fd0bec480b 100644 --- a/rust/perspective-client/src/rust/view.rs +++ b/rust/perspective-client/src/rust/view.rs @@ -100,10 +100,6 @@ pub struct ViewWindow { #[serde(skip_serializing_if = "Option::is_none")] pub index: Option, - #[ts(optional)] - #[serde(skip_serializing_if = "Option::is_none")] - pub leaves_only: Option, - /// Only impacts [`View::to_csv`] #[ts(optional)] #[serde(skip_serializing_if = "Option::is_none")] @@ -383,7 +379,7 @@ impl View { id: window.id, index: window.index, formatted: window.formatted, - leaves_only: window.leaves_only, + })); match self.client.oneshot(&msg).await? { @@ -402,7 +398,7 @@ impl View { id: window.id, index: window.index, formatted: window.formatted, - leaves_only: window.leaves_only, + })); match self.client.oneshot(&msg).await? { @@ -422,7 +418,7 @@ impl View { id: window.id, index: window.index, formatted: window.formatted, - leaves_only: window.leaves_only, + })); match self.client.oneshot(&msg).await? { diff --git a/rust/perspective-js/test/js/filters.spec.js b/rust/perspective-js/test/js/filters.spec.js index 4763e3deb3..613cd9af85 100644 --- a/rust/perspective-js/test/js/filters.spec.js +++ b/rust/perspective-js/test/js/filters.spec.js @@ -522,6 +522,7 @@ const datetime_data_local = [ group_by: [], sort: [], split_by: [], + group_rollup_mode: "rollup", }); view.delete(); diff --git a/rust/perspective-js/test/js/group_rollup_mode.spec.js b/rust/perspective-js/test/js/group_rollup_mode.spec.js new file mode 100644 index 0000000000..2a99f8f6be --- /dev/null +++ b/rust/perspective-js/test/js/group_rollup_mode.spec.js @@ -0,0 +1,487 @@ +// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃ +// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃ +// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃ +// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃ +// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ +// ┃ 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 { test, expect } from "@perspective-dev/test"; +import perspective from "./perspective_client"; + +const data = { + w: [1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5], + x: [1, 2, 3, 4, 4, 3, 2, 1], + y: ["a", "b", "c", "d", "a", "b", "c", "d"], + z: [true, false, true, false, true, false, true, false], +}; + +((perspective) => { + test.describe("group_rollup_mode", function () { + test.describe("flat", function () { + test("only emits leaves", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + }); + const json = await view.to_json(); + expect(json).toStrictEqual([ + { __ROW_PATH__: ["a"], w: 7, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["b"], w: 9, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["c"], w: 11, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["d"], w: 13, x: 5, y: 2, z: 2 }, + ]); + view.delete(); + table.delete(); + }); + + test("num_rows returns leaf count", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + }); + const num_rows = await view.num_rows(); + expect(num_rows).toEqual(4); + view.delete(); + table.delete(); + }); + + test("to_columns works", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + }); + const cols = await view.to_columns(); + expect(cols).toStrictEqual({ + __ROW_PATH__: [["a"], ["b"], ["c"], ["d"]], + w: [7, 9, 11, 13], + x: [5, 5, 5, 5], + y: [2, 2, 2, 2], + z: [2, 2, 2, 2], + }); + view.delete(); + table.delete(); + }); + + test("sort asc", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + sort: [["w", "asc"]], + }); + const cols = await view.to_columns(); + expect(cols).toStrictEqual({ + __ROW_PATH__: [["a"], ["b"], ["c"], ["d"]], + w: [7, 9, 11, 13], + x: [5, 5, 5, 5], + y: [2, 2, 2, 2], + z: [2, 2, 2, 2], + }); + view.delete(); + table.delete(); + }); + + test("sort desc", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + sort: [["w", "desc"]], + }); + const cols = await view.to_columns(); + expect(cols).toStrictEqual({ + __ROW_PATH__: [["d"], ["c"], ["b"], ["a"]], + w: [13, 11, 9, 7], + x: [5, 5, 5, 5], + y: [2, 2, 2, 2], + z: [2, 2, 2, 2], + }); + view.delete(); + table.delete(); + }); + + test("sort with hidden column", async function () { + const table = await perspective.table(data); + const view = await table.view({ + columns: ["y"], + group_by: ["y"], + group_rollup_mode: "flat", + sort: [["x", "desc"]], + }); + const cols = await view.to_columns(); + expect(cols).toStrictEqual({ + __ROW_PATH__: [["a"], ["b"], ["c"], ["d"]], + y: [2, 2, 2, 2], + }); + view.delete(); + table.delete(); + }); + + test("multi-level group_by", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y", "z"], + group_rollup_mode: "flat", + }); + const json = await view.to_json(); + expect(json).toStrictEqual([ + { + __ROW_PATH__: ["a", true], + w: 7, + x: 5, + y: 2, + z: 2, + }, + { + __ROW_PATH__: ["b", false], + w: 9, + x: 5, + y: 2, + z: 2, + }, + { + __ROW_PATH__: ["c", true], + w: 11, + x: 5, + y: 2, + z: 2, + }, + { + __ROW_PATH__: ["d", false], + w: 13, + x: 5, + y: 2, + z: 2, + }, + ]); + view.delete(); + table.delete(); + }); + + test("multi-level group_by with sort matches expanded tree order", async function () { + const table = await perspective.table(data); + const flat_view = await table.view({ + group_by: ["y", "z"], + group_rollup_mode: "flat", + sort: [["w", "desc"]], + }); + const flat_cols = await flat_view.to_columns(); + expect(flat_cols).toStrictEqual({ + __ROW_PATH__: [ + ["d", false], + ["c", true], + ["b", false], + ["a", true], + ], + w: [13, 11, 9, 7], + x: [5, 5, 5, 5], + y: [2, 2, 2, 2], + z: [2, 2, 2, 2], + }); + flat_view.delete(); + table.delete(); + }); + + test("with split_by", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + split_by: ["z"], + group_rollup_mode: "flat", + }); + const json = await view.to_json(); + expect(json).toStrictEqual([ + { + __ROW_PATH__: ["a"], + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 7, + "true|x": 5, + "true|y": 2, + "true|z": 2, + }, + { + __ROW_PATH__: ["b"], + "false|w": 9, + "false|x": 5, + "false|y": 2, + "false|z": 2, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + { + __ROW_PATH__: ["c"], + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 11, + "true|x": 5, + "true|y": 2, + "true|z": 2, + }, + { + __ROW_PATH__: ["d"], + "false|w": 13, + "false|x": 5, + "false|y": 2, + "false|z": 2, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + ]); + view.delete(); + table.delete(); + }); + + test("split_by only", async function () { + const table = await perspective.table(data); + const view = await table.view({ + split_by: ["z"], + group_rollup_mode: "flat", + }); + const json = await view.to_json(); + expect(json).toStrictEqual([ + { + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 1.5, + "true|x": 1, + "true|y": "a", + "true|z": true, + }, + { + "false|w": 2.5, + "false|x": 2, + "false|y": "b", + "false|z": false, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + { + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 3.5, + "true|x": 3, + "true|y": "c", + "true|z": true, + }, + { + "false|w": 4.5, + "false|x": 4, + "false|y": "d", + "false|z": false, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + { + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 5.5, + "true|x": 4, + "true|y": "a", + "true|z": true, + }, + { + "false|w": 6.5, + "false|x": 3, + "false|y": "b", + "false|z": false, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + { + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 7.5, + "true|x": 2, + "true|y": "c", + "true|z": true, + }, + { + "false|w": 8.5, + "false|x": 1, + "false|y": "d", + "false|z": false, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + ]); + view.delete(); + table.delete(); + }); + + test("with split_by and sort", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + split_by: ["z"], + group_rollup_mode: "flat", + sort: [["w", "desc"]], + }); + const json = await view.to_json(); + expect(json).toStrictEqual([ + { + __ROW_PATH__: ["d"], + "false|w": 13, + "false|x": 5, + "false|y": 2, + "false|z": 2, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + { + __ROW_PATH__: ["c"], + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 11, + "true|x": 5, + "true|y": 2, + "true|z": 2, + }, + { + __ROW_PATH__: ["b"], + "false|w": 9, + "false|x": 5, + "false|y": 2, + "false|z": 2, + "true|w": null, + "true|x": null, + "true|y": null, + "true|z": null, + }, + { + __ROW_PATH__: ["a"], + "false|w": null, + "false|x": null, + "false|y": null, + "false|z": null, + "true|w": 7, + "true|x": 5, + "true|y": 2, + "true|z": 2, + }, + ]); + view.delete(); + table.delete(); + }); + + test("updates after table.update()", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + }); + const before = await view.to_json(); + expect(before).toStrictEqual([ + { __ROW_PATH__: ["a"], w: 7, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["b"], w: 9, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["c"], w: 11, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["d"], w: 13, x: 5, y: 2, z: 2 }, + ]); + table.update([{ w: 9.5, x: 5, y: "e", z: true }]); + const after = await view.to_json(); + expect(after).toStrictEqual([ + { __ROW_PATH__: ["a"], w: 7, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["b"], w: 9, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["c"], w: 11, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["d"], w: 13, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["e"], w: 9.5, x: 5, y: 1, z: 1 }, + ]); + view.delete(); + table.delete(); + }); + + test("updates preserve sort order", async function () { + const table = await perspective.table(data); + const flat_view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + sort: [["w", "desc"]], + }); + table.update([{ w: 100, x: 5, y: "e", z: true }]); + const flat_cols = await flat_view.to_columns(); + expect(flat_cols).toStrictEqual({ + __ROW_PATH__: [["e"], ["d"], ["c"], ["b"], ["a"]], + w: [100, 13, 11, 9, 7], + x: [5, 5, 5, 5, 5], + y: [1, 2, 2, 2, 2], + z: [1, 2, 2, 2, 2], + }); + flat_view.delete(); + table.delete(); + }); + + test("viewport pagination", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + }); + const json = await view.to_json({ + start_row: 0, + end_row: 2, + }); + expect(json).toStrictEqual([ + { __ROW_PATH__: ["a"], w: 7, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["b"], w: 9, x: 5, y: 2, z: 2 }, + ]); + view.delete(); + table.delete(); + }); + + test("viewport pagination with sort", async function () { + const table = await perspective.table(data); + const view = await table.view({ + group_by: ["y"], + group_rollup_mode: "flat", + sort: [["w", "desc"]], + }); + const json = await view.to_json({ + start_row: 0, + end_row: 2, + }); + expect(json).toStrictEqual([ + { __ROW_PATH__: ["d"], w: 13, x: 5, y: 2, z: 2 }, + { __ROW_PATH__: ["c"], w: 11, x: 5, y: 2, z: 2 }, + ]); + view.delete(); + table.delete(); + }); + }); + }); +})(perspective); diff --git a/rust/perspective-js/test/js/to_format.spec.js b/rust/perspective-js/test/js/to_format.spec.js index 2f21262242..803ebb6884 100644 --- a/rust/perspective-js/test/js/to_format.spec.js +++ b/rust/perspective-js/test/js/to_format.spec.js @@ -525,8 +525,9 @@ const pivoted_output = [ let table = await perspective.table(int_float_string_data); let view = await table.view({ group_by: ["int"], + group_rollup_mode: "flat", }); - let json = await view.to_json({ leaves_only: true }); + let json = await view.to_json(); expect(json).toEqual([ { __ROW_PATH__: [1], @@ -560,6 +561,81 @@ const pivoted_output = [ view.delete(); table.delete(); }); + + test("num_rows returns correct leaf count", async function () { + let table = await perspective.table(int_float_string_data); + let view = await table.view({ + group_by: ["int"], + group_rollup_mode: "flat", + }); + let num_rows = await view.num_rows(); + expect(num_rows).toEqual(4); + view.delete(); + table.delete(); + }); + + test("viewport pagination returns exact page sizes", async function () { + let table = await perspective.table(int_float_string_data); + let view = await table.view({ + group_by: ["int"], + group_rollup_mode: "flat", + }); + let json = await view.to_json({ + start_row: 0, + end_row: 2, + }); + expect(json.length).toEqual(2); + expect(json[0].__ROW_PATH__).toEqual([1]); + expect(json[1].__ROW_PATH__).toEqual([2]); + view.delete(); + table.delete(); + }); + + test("to_columns works with leaves_only", async function () { + let table = await perspective.table(int_float_string_data); + let view = await table.view({ + group_by: ["int"], + group_rollup_mode: "flat", + }); + let cols = await view.to_columns(); + expect(cols["__ROW_PATH__"]).toEqual([[1], [2], [3], [4]]); + expect(cols["int"]).toEqual([1, 2, 3, 4]); + view.delete(); + table.delete(); + }); + + test("leaves_only with multi-level group_by", async function () { + let table = await perspective.table(int_float_string_data); + let view = await table.view({ + group_by: ["string", "int"], + group_rollup_mode: "flat", + }); + let num_rows = await view.num_rows(); + expect(num_rows).toEqual(4); + let json = await view.to_json(); + for (let row of json) { + expect(row.__ROW_PATH__.length).toEqual(2); + } + view.delete(); + table.delete(); + }); + + test("leaves_only updates after table.update()", async function () { + let table = await perspective.table(int_float_string_data); + let view = await table.view({ + group_by: ["int"], + group_rollup_mode: "flat", + }); + let num_rows = await view.num_rows(); + expect(num_rows).toEqual(4); + table.update([ + { int: 5, float: 6.0, string: "e", datetime: STD_DATE }, + ]); + let num_rows2 = await view.num_rows(); + expect(num_rows2).toEqual(5); + view.delete(); + table.delete(); + }); }); test.describe("to_arrow()", function () { diff --git a/rust/perspective-js/test/js/view_config.spec.js b/rust/perspective-js/test/js/view_config.spec.js index 80238c3b6a..56caa8ae6f 100644 --- a/rust/perspective-js/test/js/view_config.spec.js +++ b/rust/perspective-js/test/js/view_config.spec.js @@ -58,6 +58,7 @@ const data = [ group_by: ["y"], sort: [], split_by: [], + group_rollup_mode: "rollup", }); view.delete(); @@ -81,6 +82,7 @@ const data = [ group_by: ["y"], sort: [], split_by: [], + group_rollup_mode: "rollup", }); view.delete(); @@ -109,6 +111,7 @@ const data = [ group_by: ["y"], sort: [], split_by: [], + group_rollup_mode: "rollup", }); view.delete(); @@ -142,6 +145,7 @@ const data = [ group_by: ["y"], sort: [], split_by: [], + group_rollup_mode: "rollup", }); view.delete(); @@ -165,6 +169,7 @@ const data = [ group_by: ["y"], sort: [], split_by: [], + group_rollup_mode: "rollup", }); view.delete(); diff --git a/rust/perspective-server/cpp/perspective/src/cpp/context_one.cpp b/rust/perspective-server/cpp/perspective/src/cpp/context_one.cpp index 05b6b7c6f5..7d4f7a3939 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/context_one.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/context_one.cpp @@ -346,9 +346,13 @@ void t_ctx1::step_end() { PSP_TRACE_SENTINEL(); PSP_VERBOSE_ASSERT(m_init, "touching uninited object"); - sort_by(m_sortby); - if (m_depth_set) { - set_depth(m_depth); + if (m_leaves_only) { + m_traversal->rebuild_from_leaves(m_sortby); + } else { + sort_by(m_sortby); + if (m_depth_set) { + set_depth(m_depth); + } } } @@ -424,6 +428,14 @@ t_ctx1::set_depth(t_depth depth) { m_depth_set = true; } +void +t_ctx1::set_leaves_only(bool enabled) { + PSP_TRACE_SENTINEL(); + PSP_VERBOSE_ASSERT(m_init, "touching uninited object"); + m_leaves_only = enabled; + m_traversal->set_leaves_only(enabled, m_config.get_num_rpivots()); +} + std::vector t_ctx1::get_pkeys(const std::vector>& cells ) const { @@ -556,6 +568,9 @@ t_ctx1::reset(bool reset_expressions) { m_tree->init(); m_tree->set_deltas_enabled(get_feature_state(CTX_FEAT_DELTA)); m_traversal = std::make_shared(m_tree); + if (m_leaves_only) { + m_traversal->set_leaves_only(true, m_config.get_num_rpivots()); + } if (reset_expressions) { m_expression_tables->reset(); diff --git a/rust/perspective-server/cpp/perspective/src/cpp/context_two.cpp b/rust/perspective-server/cpp/perspective/src/cpp/context_two.cpp index a164e46427..d4c5980500 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/context_two.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/context_two.cpp @@ -110,8 +110,12 @@ t_ctx2::step_begin() { void t_ctx2::step_end() { - if (m_row_depth_set) { - set_depth(HEADER_ROW, m_row_depth); + if (m_leaves_only) { + m_rtraversal->rebuild_from_leaves(m_sortby); + } else { + if (m_row_depth_set) { + set_depth(HEADER_ROW, m_row_depth); + } } if (m_column_depth_set) { set_depth(HEADER_COLUMN, m_column_depth); @@ -738,7 +742,7 @@ t_ctx2::resolve_cells(const std::vector>& cells rval[idx].m_agg_index = agg_idx; - if (cell.first == 0) { + if (cell.first == 0 && !m_leaves_only) { rval[idx].m_idx = c_ptidx; rval[idx].m_treenum = 0; } else if (c_path.empty()) { @@ -935,6 +939,12 @@ t_ctx2::set_depth(t_header header, t_depth depth) { } } +void +t_ctx2::set_leaves_only(bool enabled) { + m_leaves_only = enabled; + m_rtraversal->set_leaves_only(enabled, m_config.get_num_rpivots()); +} + std::vector t_ctx2::get_pkeys(const std::vector>& cells ) const { @@ -1089,6 +1099,9 @@ t_ctx2::reset(bool reset_expressions) { m_rtraversal = std::make_shared(rtree()); m_ctraversal = std::make_shared(ctree()); + if (m_leaves_only) { + m_rtraversal->set_leaves_only(true, m_config.get_num_rpivots()); + } if (reset_expressions) { m_expression_tables->reset(); diff --git a/rust/perspective-server/cpp/perspective/src/cpp/server.cpp b/rust/perspective-server/cpp/perspective/src/cpp/server.cpp index 66251ba0d1..0680f4d6a9 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/server.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/server.cpp @@ -130,7 +130,9 @@ make_context( auto pool = table->get_pool(); auto gnode = table->get_gnode(); - if (row_pivot_depth > -1) { + if (view_config->is_leaves_only()) { + ctx1->set_leaves_only(true); + } else if (row_pivot_depth > -1) { ctx1->set_depth(row_pivot_depth - 1); } else { ctx1->set_depth(row_pivots.size()); @@ -193,7 +195,9 @@ make_context( ctx2->column_sort_by(col_sortspec); } - if (row_pivot_depth > -1) { + if (view_config->is_leaves_only() && !column_only) { + ctx2->set_leaves_only(true); + } else if (row_pivot_depth > -1) { ctx2->set_depth(t_header::HEADER_ROW, row_pivot_depth - 1); } else { ctx2->set_depth(t_header::HEADER_ROW, row_pivots.size()); @@ -2091,6 +2095,9 @@ ProtoServer::_handle_request(std::uint32_t client_id, Request&& req) { LOG_DEBUG("FILTER_OP: " << filter_op); + bool leaves_only = + cfg.has_group_rollup_mode() ? cfg.group_rollup_mode() == 1 : false; + auto config = std::make_shared( vocab, row_pivots, @@ -2101,7 +2108,8 @@ ProtoServer::_handle_request(std::uint32_t client_id, Request&& req) { sort_str, expressions, filter_op, - column_only + column_only, + leaves_only ); config->init(schema); @@ -2406,6 +2414,14 @@ ProtoServer::_handle_request(std::uint32_t client_id, Request&& req) { ); } + if (view_config->is_leaves_only()) { + const auto mode = proto::ViewConfig_GroupRollupMode::ViewConfig_GroupRollupMode_FLAT; + view_config_proto->set_group_rollup_mode(mode); + } else { + const auto mode = proto::ViewConfig_GroupRollupMode::ViewConfig_GroupRollupMode_ROLLUP; + view_config_proto->set_group_rollup_mode(mode); + } + for (const auto& expr : view_config->get_expressions()) { auto* proto_exprs = view_config_proto->mutable_expressions(); (*proto_exprs)[expr->get_expression_alias()] = @@ -2486,7 +2502,6 @@ ProtoServer::_handle_request(std::uint32_t client_id, Request&& req) { r.formatted(), r.index(), r.id(), - r.leaves_only(), view->sides(), view->sides() > 0 && !config->is_column_only(), nidx, @@ -2525,7 +2540,6 @@ ProtoServer::_handle_request(std::uint32_t client_id, Request&& req) { r.formatted(), r.index(), r.id(), - r.leaves_only(), view->sides(), view->sides() > 0 && !config->is_column_only(), nidx, @@ -2565,7 +2579,6 @@ ProtoServer::_handle_request(std::uint32_t client_id, Request&& req) { r.formatted(), r.index(), r.id(), - r.leaves_only(), view->sides(), view->sides() > 0 && !config->is_column_only(), nidx, diff --git a/rust/perspective-server/cpp/perspective/src/cpp/traversal.cpp b/rust/perspective-server/cpp/perspective/src/cpp/traversal.cpp index 2736105d5e..71a492d6f3 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/traversal.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/traversal.cpp @@ -75,6 +75,10 @@ t_traversal::populate_root_children(const std::shared_ptr& tree t_index t_traversal::expand_node(t_index exp_idx) { + if (m_leaves_only) { + return 0; + } + t_tvnode& exp_tvnode = (*m_nodes)[exp_idx]; if (exp_tvnode.m_expanded) { @@ -120,6 +124,10 @@ t_index t_traversal::expand_node( const std::vector& sortby, t_index exp_idx, t_ctx2* ctx2 ) { + if (m_leaves_only) { + return 0; + } + t_tvnode& exp_tvnode = (*m_nodes)[exp_idx]; if (exp_tvnode.m_expanded) { @@ -197,6 +205,10 @@ t_traversal::expand_node( t_index t_traversal::collapse_node(t_index idx) { + if (m_leaves_only) { + return 0; + } + t_tvnode& node = (*m_nodes)[idx]; if (!node.m_expanded) { @@ -699,4 +711,87 @@ t_traversal::get_node_expanded(t_index idx) const { } return m_nodes->at(idx).m_expanded; } + +void +t_traversal::set_leaves_only(bool enabled, t_uindex leaf_depth) { + m_leaves_only = enabled; + m_leaf_depth = leaf_depth; + if (m_leaves_only) { + rebuild_from_leaves({}); + } +} + +bool +t_traversal::is_leaves_only() const { + return m_leaves_only; +} + +void +t_traversal::collect_leaves( + t_uindex tnid, + t_uindex current_depth, + const std::vector& sortby, + const std::vector& sortby_agg_indices, + const std::vector& sort_orders +) { + if (current_depth >= m_leaf_depth) { + t_tvnode node; + node.m_expanded = false; + node.m_depth = m_leaf_depth; + node.m_rel_pidx = 0; + node.m_ndesc = 0; + node.m_nchild = 0; + node.m_tnid = tnid; + m_nodes->push_back(node); + return; + } + + t_stnode_vec children; + m_tree->get_child_nodes(tnid, children); + + if (!sortby.empty() && children.size() > 1) { + auto n_children = children.size(); + auto sortelems = + std::make_shared>(n_children); + std::vector aggregates(sortby.size()); + + for (t_uindex i = 0; i < n_children; ++i) { + m_tree->get_aggregates_for_sorting( + children[i].m_idx, sortby_agg_indices, aggregates, nullptr + ); + (*sortelems)[i] = t_mselem(aggregates, i); + } + + std::vector sorted_idx(n_children); + t_multisorter sorter(sortelems, sort_orders); + argsort(sorted_idx, sorter); + + t_stnode_vec sorted_children(n_children); + for (t_uindex i = 0; i < n_children; ++i) { + sorted_children[i] = children[sorted_idx[i]]; + } + children = std::move(sorted_children); + } + + for (const auto& child : children) { + collect_leaves( + child.m_idx, current_depth + 1, sortby, sortby_agg_indices, + sort_orders + ); + } +} + +void +t_traversal::rebuild_from_leaves(const std::vector& sortby) { + m_nodes = std::make_shared>(); + + std::vector sortby_agg_indices(sortby.size()); + for (t_uindex i = 0; i < sortby.size(); ++i) { + sortby_agg_indices[i] = sortby[i].m_agg_index; + } + + std::vector sort_orders = get_sort_orders(sortby); + collect_leaves(0, 0, sortby, sortby_agg_indices, sort_orders); +} + } // end namespace perspective diff --git a/rust/perspective-server/cpp/perspective/src/cpp/tree_context_common.cpp b/rust/perspective-server/cpp/perspective/src/cpp/tree_context_common.cpp index d874ae9d53..59863f93b6 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/tree_context_common.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/tree_context_common.cpp @@ -70,13 +70,16 @@ notify_sparse_tree_common( auto zero_strands = tree->zero_strands(); - t_uindex t_osize = process_traversal ? traversal->size() : 0; - if (process_traversal) { + bool is_leaves_only = + process_traversal && traversal != nullptr && traversal->is_leaves_only(); + + if (process_traversal && !is_leaves_only) { + t_uindex t_osize = traversal->size(); traversal->drop_tree_indices(zero_strands); - } - t_uindex t_nsize = process_traversal ? traversal->size() : 0; - if (t_osize != t_nsize) { - tree->set_has_deltas(true); + t_uindex t_nsize = traversal->size(); + if (t_osize != t_nsize) { + tree->set_has_deltas(true); + } } auto non_zero_ids = tree->non_zero_ids(zero_strands); @@ -88,61 +91,68 @@ notify_sparse_tree_common( tree->update_aggs_from_static(dctx, gstate, expression_master_table); - std::set visited; - - struct t_leaf_path { - std::vector m_path; - t_uindex m_lfidx; - }; + if (is_leaves_only) { + traversal->rebuild_from_leaves(ctx_sortby); + } else { + std::set visited; - std::vector leaf_paths(non_zero_leaves.size()); + struct t_leaf_path { + std::vector m_path; + t_uindex m_lfidx; + }; - t_uindex count = 0; + std::vector leaf_paths(non_zero_leaves.size()); - for (auto lfidx : non_zero_leaves) { - leaf_paths[count].m_lfidx = lfidx; - tree->get_sortby_path(lfidx, leaf_paths[count].m_path); - std::reverse( - leaf_paths[count].m_path.begin(), leaf_paths[count].m_path.end() - ); - ++count; - } + t_uindex count = 0; - std::sort( - leaf_paths.begin(), - leaf_paths.end(), - [](const t_leaf_path& a, const t_leaf_path& b) { - return a.m_path < b.m_path; + for (auto lfidx : non_zero_leaves) { + leaf_paths[count].m_lfidx = lfidx; + tree->get_sortby_path(lfidx, leaf_paths[count].m_path); + std::reverse( + leaf_paths[count].m_path.begin(), + leaf_paths[count].m_path.end() + ); + ++count; } - ); - if (!leaf_paths.empty() && (traversal != nullptr) - && traversal->size() == 1) { - if (traversal->get_node(0).m_expanded) { - traversal->populate_root_children(tree); - } - } else { - for (const auto& lpath : leaf_paths) { - t_uindex lfidx = lpath.m_lfidx; - auto ancestry = tree->get_ancestry(lfidx); - - t_uindex num_tnodes_existed = 0; - - for (auto nidx : ancestry) { - if (non_zero_ids.find(nidx) == non_zero_ids.end() - || visited.find(nidx) != visited.end()) { - ++num_tnodes_existed; - } else { - break; - } + std::sort( + leaf_paths.begin(), + leaf_paths.end(), + [](const t_leaf_path& a, const t_leaf_path& b) { + return a.m_path < b.m_path; } + ); - if (process_traversal) { - traversal->add_node(ctx_sortby, ancestry, num_tnodes_existed); + if (!leaf_paths.empty() && (traversal != nullptr) + && traversal->size() == 1) { + if (traversal->get_node(0).m_expanded) { + traversal->populate_root_children(tree); } + } else { + for (const auto& lpath : leaf_paths) { + t_uindex lfidx = lpath.m_lfidx; + auto ancestry = tree->get_ancestry(lfidx); + + t_uindex num_tnodes_existed = 0; + + for (auto nidx : ancestry) { + if (non_zero_ids.find(nidx) == non_zero_ids.end() + || visited.find(nidx) != visited.end()) { + ++num_tnodes_existed; + } else { + break; + } + } + + if (process_traversal) { + traversal->add_node( + ctx_sortby, ancestry, num_tnodes_existed + ); + } - for (auto nidx : ancestry) { - visited.insert(nidx); + for (auto nidx : ancestry) { + visited.insert(nidx); + } } } } diff --git a/rust/perspective-server/cpp/perspective/src/cpp/view.cpp b/rust/perspective-server/cpp/perspective/src/cpp/view.cpp index 0634d2264c..545fad44e3 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/view.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/view.cpp @@ -1774,7 +1774,6 @@ View::write_row_path( t_uindex start_row, t_uindex end_row, bool has_row_path, - bool leaves_only, bool is_formatted, rapidjson::Writer& writer ) const { @@ -1782,21 +1781,13 @@ View::write_row_path( if (has_row_path) { writer.Key("__ROW_PATH__"); writer.StartArray(); - t_uindex depth = m_row_pivots.size(); for (auto r = start_row; r < end_row; ++r) { - if (leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } - writer.StartArray(); const auto row_path = get_row_path(r); // Question: Why are the row paths reversed? for (auto entry = row_path.size(); entry > 0; entry--) { const t_tscalar& scalar = row_path[entry - 1]; - write_scalar(scalar, is_formatted, writer); } @@ -1827,24 +1818,16 @@ View::write_column( t_uindex start_row, t_uindex end_row, bool has_row_path, - bool leaves_only, bool is_formatted, std::shared_ptr> slice, const std::vector>& col_names, rapidjson::Writer& writer ) const { - t_uindex depth = m_row_pivots.size(); writer.Key(col_path_to_legacy(col_names.at(c)).c_str()); writer.StartArray(); for (auto r = start_row; r < end_row; ++r) { - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } - auto scalar = slice->get(r, c); write_scalar(scalar, is_formatted, writer); @@ -1859,22 +1842,14 @@ View::write_index_column( t_uindex start_row, t_uindex end_row, bool has_row_path, - bool leaves_only, bool is_formatted, std::shared_ptr> slice, rapidjson::Writer& writer ) const { - t_uindex depth = m_row_pivots.size(); writer.Key("__INDEX__"); writer.StartArray(); for (auto r = start_row; r < end_row; ++r) { - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } - std::vector keys = slice->get_pkeys(r, 0); writer.StartArray(); @@ -1901,7 +1876,6 @@ View::to_rows( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -1929,8 +1903,6 @@ View::to_rows( ); } - t_uindex depth = m_row_pivots.size(); - // These columns don't exist as far as the view/table is concerned. They're // scoped to the serialization of the view itself. // @@ -1943,12 +1915,6 @@ View::to_rows( if (start_col <= (end_col + num_virtual_columns)) { for (auto r = start_row; r < end_row; ++r) { - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } - writer.StartObject(); if (get_ids) { std::pair pair{r, 0}; @@ -1998,7 +1964,6 @@ View::to_rows( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2018,8 +1983,6 @@ View::to_rows( return s.GetString(); } - t_uindex depth = m_row_pivots.size(); - std::vector column_names; for (auto c = start_col + 1; c < end_col; ++c) { if (c > columns_length) { @@ -2032,12 +1995,6 @@ View::to_rows( } for (auto r = start_row; r < end_row; ++r) { - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } - // Row writer.StartObject(); @@ -2104,7 +2061,6 @@ View::to_rows( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2129,15 +2085,8 @@ View::to_rows( column_names.emplace_back(col_path_to_legacy(col_names.at(c))); } - t_uindex depth = m_row_pivots.size(); bool column_only = is_column_only(); for (auto r = start_row; r < end_row; ++r) { - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } - // Row writer.StartObject(); @@ -2257,7 +2206,6 @@ View::to_ndjson( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2279,8 +2227,6 @@ View::to_ndjson( ); } - t_uindex depth = m_row_pivots.size(); - // These columns don't exist as far as the view/table is concerned. They're // scoped to the serialization of the view itself. // @@ -2299,11 +2245,6 @@ View::to_ndjson( rapidjson::StringBuffer s; rapidjson::Writer writer(s); - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } writer.StartObject(); if (get_ids) { @@ -2354,7 +2295,6 @@ View::to_ndjson( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2369,7 +2309,6 @@ View::to_ndjson( return ""; } - t_uindex depth = m_row_pivots.size(); std::vector column_names; for (auto c = start_col + 1; c < end_col; ++c) { if (c > columns_length) { @@ -2389,11 +2328,6 @@ View::to_ndjson( rapidjson::StringBuffer s; rapidjson::Writer writer(s); - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } // Row writer.StartObject(); @@ -2462,7 +2396,6 @@ View::to_ndjson( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2482,7 +2415,6 @@ View::to_ndjson( column_names.emplace_back(col_path_to_legacy(col_names.at(c))); } - t_uindex depth = m_row_pivots.size(); bool column_only = is_column_only(); std::stringstream ndjson; for (auto r = start_row; r < end_row; ++r) { @@ -2492,11 +2424,6 @@ View::to_ndjson( rapidjson::StringBuffer s; rapidjson::Writer writer(s); - if (has_row_path && leaves_only) { - if (m_ctx->unity_get_row_depth(r) < depth) { - continue; - } - } // Row writer.StartObject(); @@ -2566,7 +2493,6 @@ View::to_columns( bool is_formatted, bool get_pkeys, bool get_ids, - bool _leaves_only, t_uindex num_sides, bool _has_row_path, const std::string& nidx, @@ -2588,7 +2514,6 @@ View::to_columns( start_row, end_row, false, - false, is_formatted, slice, col_names, @@ -2598,7 +2523,7 @@ View::to_columns( if (get_pkeys) { write_index_column( - start_row, end_row, false, false, is_formatted, slice, writer + start_row, end_row, false, is_formatted, slice, writer ); } @@ -2633,7 +2558,6 @@ View::to_columns( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2648,7 +2572,7 @@ View::to_columns( rapidjson::StringBuffer s; rapidjson::Writer writer(s); writer.StartObject(); - write_row_path(start_row, end_row, true, leaves_only, is_formatted, writer); + write_row_path(start_row, end_row, true, is_formatted, writer); if (get_ids) { writer.Key("__ID__"); writer.StartArray(); @@ -2677,7 +2601,6 @@ View::to_columns( start_row, end_row, true, - leaves_only, is_formatted, slice, col_names, @@ -2687,7 +2610,7 @@ View::to_columns( if (get_pkeys) { write_index_column( - start_row, end_row, true, leaves_only, is_formatted, slice, writer + start_row, end_row, true, is_formatted, slice, writer ); } @@ -2706,7 +2629,6 @@ View::to_columns( bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -2721,7 +2643,7 @@ View::to_columns( rapidjson::Writer writer(s); writer.StartObject(); write_row_path( - start_row, end_row, has_row_path, leaves_only, is_formatted, writer + start_row, end_row, has_row_path, is_formatted, writer ); if (get_ids) { @@ -2756,7 +2678,6 @@ View::to_columns( start_row, end_row, has_row_path, - leaves_only, is_formatted, slice, col_names, @@ -2769,7 +2690,6 @@ View::to_columns( start_row, end_row, has_row_path, - leaves_only, is_formatted, slice, writer diff --git a/rust/perspective-server/cpp/perspective/src/cpp/view_config.cpp b/rust/perspective-server/cpp/perspective/src/cpp/view_config.cpp index 91414d6aca..be50f1a5ed 100644 --- a/rust/perspective-server/cpp/perspective/src/cpp/view_config.cpp +++ b/rust/perspective-server/cpp/perspective/src/cpp/view_config.cpp @@ -28,7 +28,8 @@ t_view_config::t_view_config( const std::vector>& sort, const std::vector>& expressions, std::string filter_op, - bool column_only + bool column_only, + bool leaves_only ) : m_init(false), m_vocab(std::move(vocab)), @@ -42,7 +43,8 @@ t_view_config::t_view_config( m_row_pivot_depth(-1), m_column_pivot_depth(-1), m_filter_op(std::move(filter_op)), - m_column_only(column_only) {} + m_column_only(column_only), + m_leaves_only(leaves_only) {} void t_view_config::init(const std::shared_ptr& schema) { @@ -265,6 +267,11 @@ t_view_config::is_column_only() const { return m_column_only; } +bool +t_view_config::is_leaves_only() const { + return m_leaves_only; +} + std::int32_t t_view_config::get_row_pivot_depth() const { PSP_VERBOSE_ASSERT(m_init, "touching uninited object"); diff --git a/rust/perspective-server/cpp/perspective/src/include/perspective/context_one.h b/rust/perspective-server/cpp/perspective/src/include/perspective/context_one.h index bd23f7c7f3..46c496928f 100644 --- a/rust/perspective-server/cpp/perspective/src/include/perspective/context_one.h +++ b/rust/perspective-server/cpp/perspective/src/include/perspective/context_one.h @@ -43,6 +43,7 @@ class PERSPECTIVE_EXPORT t_ctx1 : public t_ctxbase { std::vector get_aggregates() const; std::vector get_row_path(t_index idx) const; void set_depth(t_depth depth); + void set_leaves_only(bool enabled); t_index get_row_idx(const std::vector& path) const; @@ -60,6 +61,7 @@ class PERSPECTIVE_EXPORT t_ctx1 : public t_ctxbase { std::shared_ptr m_expression_tables; t_depth m_depth; bool m_depth_set; + bool m_leaves_only = false; }; } // end namespace perspective diff --git a/rust/perspective-server/cpp/perspective/src/include/perspective/context_two.h b/rust/perspective-server/cpp/perspective/src/include/perspective/context_two.h index 5fb16497f6..0a5eb6c988 100644 --- a/rust/perspective-server/cpp/perspective/src/include/perspective/context_two.h +++ b/rust/perspective-server/cpp/perspective/src/include/perspective/context_two.h @@ -55,6 +55,7 @@ class PERSPECTIVE_EXPORT t_ctx2 : public t_ctxbase { void column_sort_by(const std::vector& sortby); void set_depth(t_header header, t_depth depth); + void set_leaves_only(bool enabled); std::pair get_min_max(const std::string& colname ) const; @@ -93,6 +94,7 @@ class PERSPECTIVE_EXPORT t_ctx2 : public t_ctxbase { t_depth m_column_depth; bool m_column_depth_set; std::shared_ptr m_expression_tables; + bool m_leaves_only = false; }; } // end namespace perspective diff --git a/rust/perspective-server/cpp/perspective/src/include/perspective/server.h b/rust/perspective-server/cpp/perspective/src/include/perspective/server.h index c6f3aef2bf..acbae6b5a1 100644 --- a/rust/perspective-server/cpp/perspective/src/include/perspective/server.h +++ b/rust/perspective-server/cpp/perspective/src/include/perspective/server.h @@ -171,7 +171,6 @@ namespace server { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, std::string nidx, @@ -189,7 +188,6 @@ namespace server { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, std::string nidx, @@ -207,7 +205,6 @@ namespace server { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, std::string nidx, @@ -311,7 +308,6 @@ namespace server { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, std::string nidx, @@ -327,7 +323,6 @@ namespace server { is_formatted, get_pkeys, get_ids, - leaves_only, num_sides, has_row_path, nidx, @@ -347,7 +342,6 @@ namespace server { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, std::string nidx, @@ -363,7 +357,6 @@ namespace server { is_formatted, get_pkeys, get_ids, - leaves_only, num_sides, has_row_path, nidx, @@ -383,7 +376,6 @@ namespace server { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, std::string nidx, @@ -399,7 +391,6 @@ namespace server { is_formatted, get_pkeys, get_ids, - leaves_only, num_sides, has_row_path, nidx, diff --git a/rust/perspective-server/cpp/perspective/src/include/perspective/traversal.h b/rust/perspective-server/cpp/perspective/src/include/perspective/traversal.h index aa7dd9776e..00fb379cc9 100644 --- a/rust/perspective-server/cpp/perspective/src/include/perspective/traversal.h +++ b/rust/perspective-server/cpp/perspective/src/include/perspective/traversal.h @@ -132,9 +132,23 @@ class t_traversal { void populate_root_children(const t_stnode_vec& rchildren); void populate_root_children(const std::shared_ptr& tree); + void set_leaves_only(bool enabled, t_uindex leaf_depth); + bool is_leaves_only() const; + void rebuild_from_leaves(const std::vector& sortby); + private: + void collect_leaves( + t_uindex tnid, + t_uindex current_depth, + const std::vector& sortby, + const std::vector& sortby_agg_indices, + const std::vector& sort_orders + ); + std::shared_ptr m_tree; std::shared_ptr> m_nodes; + bool m_leaves_only = false; + t_uindex m_leaf_depth = 0; }; /** diff --git a/rust/perspective-server/cpp/perspective/src/include/perspective/view.h b/rust/perspective-server/cpp/perspective/src/include/perspective/view.h index 97d3690758..f69a8bd43d 100644 --- a/rust/perspective-server/cpp/perspective/src/include/perspective/view.h +++ b/rust/perspective-server/cpp/perspective/src/include/perspective/view.h @@ -155,7 +155,6 @@ class PERSPECTIVE_EXPORT View { t_uindex start_row, t_uindex end_row, bool has_row_path, - bool leaves_only, bool is_formatted, rapidjson::Writer& writer ) const; @@ -165,7 +164,6 @@ class PERSPECTIVE_EXPORT View { t_uindex start_row, t_uindex end_row, bool has_row_path, - bool leaves_only, bool is_formatted, std::shared_ptr> slice, const std::vector>& col_names, @@ -177,7 +175,6 @@ class PERSPECTIVE_EXPORT View { t_uindex start_col, t_uindex end_col, bool has_row_path, - bool leaves_only, bool ids, bool pkeys, bool is_formatted, @@ -190,7 +187,6 @@ class PERSPECTIVE_EXPORT View { t_uindex start_row, t_uindex end_row, bool has_row_path, - bool leaves_only, bool is_formatted, std::shared_ptr> slice, rapidjson::Writer& writer @@ -224,7 +220,6 @@ class PERSPECTIVE_EXPORT View { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -241,7 +236,6 @@ class PERSPECTIVE_EXPORT View { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, @@ -258,7 +252,6 @@ class PERSPECTIVE_EXPORT View { bool is_formatted, bool get_pkeys, bool get_ids, - bool leaves_only, t_uindex num_sides, bool has_row_path, const std::string& nidx, diff --git a/rust/perspective-server/cpp/perspective/src/include/perspective/view_config.h b/rust/perspective-server/cpp/perspective/src/include/perspective/view_config.h index 757715f57b..8c0bc35695 100644 --- a/rust/perspective-server/cpp/perspective/src/include/perspective/view_config.h +++ b/rust/perspective-server/cpp/perspective/src/include/perspective/view_config.h @@ -57,7 +57,8 @@ class PERSPECTIVE_EXPORT t_view_config { const std::vector>& sort, const std::vector>& expressions, std::string filter_op, - bool column_only + bool column_only, + bool leaves_only = false ); /** @@ -119,6 +120,8 @@ class PERSPECTIVE_EXPORT t_view_config { bool is_column_only() const; + bool is_leaves_only() const; + std::int32_t get_row_pivot_depth() const; std::int32_t get_column_pivot_depth() const; @@ -238,5 +241,6 @@ class PERSPECTIVE_EXPORT t_view_config { * */ bool m_column_only; + bool m_leaves_only; }; } // end namespace perspective \ No newline at end of file diff --git a/rust/perspective-viewer/src/rust/session/replace_expression_update.rs b/rust/perspective-viewer/src/rust/session/replace_expression_update.rs index ae3a506328..e53ec6a3db 100644 --- a/rust/perspective-viewer/src/rust/session/replace_expression_update.rs +++ b/rust/perspective-viewer/src/rust/session/replace_expression_update.rs @@ -125,6 +125,7 @@ pub impl ViewConfig { filter: Some(filter), filter_op: None, group_by_depth: None, + leaves_only: None, } } } From 4e41d33ef713e0301f738440c4d77e521e94a5f7 Mon Sep 17 00:00:00 2001 From: Andrew Stein Date: Thu, 5 Mar 2026 10:42:05 -0500 Subject: [PATCH 2/2] UI Support Signed-off-by: Andrew Stein --- packages/viewer-d3fc/src/ts/plugin/plugin.ts | 4 + packages/viewer-d3fc/test/js/barWidth.spec.ts | 1 + .../src/less/regular_table.less | 61 +++++++++------ .../src/ts/custom_elements/datagrid.ts | 5 ++ .../ts/data_listener/format_tree_header.ts | 16 ++++ .../src/ts/data_listener/index.ts | 6 +- .../viewer-datagrid/src/ts/model/create.ts | 4 + .../viewer-datagrid/src/ts/plugin/draw.ts | 1 + .../src/ts/style_handlers/body.ts | 5 ++ .../src/ts/style_handlers/column_header.ts | 17 +++-- pnpm-lock.yaml | 12 +-- pnpm-workspace.yaml | 2 +- rust/perspective-client/src/rust/view.rs | 3 - .../src/less/config-selector.less | 32 +++++++- .../src/rust/components/column_selector.rs | 6 +- .../column_selector/config_selector.rs | 72 ++++++++++++++---- .../src/rust/components/containers/select.rs | 6 +- .../src/rust/components/plugin_selector.rs | 17 +++-- rust/perspective-viewer/src/rust/js/plugin.rs | 8 ++ .../rust/session/column_defaults_update.rs | 24 ++++++ .../rust/session/replace_expression_update.rs | 2 +- rust/perspective-viewer/test/js/dom.spec.js | 1 + .../perspective-viewer/test/js/events.spec.ts | 1 + tools/test/results.tar.gz | Bin 159074 -> 159719 bytes tools/test/src/js/utils.ts | 1 + 25 files changed, 232 insertions(+), 75 deletions(-) diff --git a/packages/viewer-d3fc/src/ts/plugin/plugin.ts b/packages/viewer-d3fc/src/ts/plugin/plugin.ts index 8153210bb4..ccca5254b0 100644 --- a/packages/viewer-d3fc/src/ts/plugin/plugin.ts +++ b/packages/viewer-d3fc/src/ts/plugin/plugin.ts @@ -136,6 +136,10 @@ class HTMLPerspectiveViewerD3fcPluginElement extends HTMLElement { return this._chart.plugin.selectMode || "select"; } + get group_rollups(): string[] { + return ["flat"]; + } + get min_config_columns() { return ( this._chart.plugin.initial?.count || diff --git a/packages/viewer-d3fc/test/js/barWidth.spec.ts b/packages/viewer-d3fc/test/js/barWidth.spec.ts index d5b2a58077..96a0283dc9 100644 --- a/packages/viewer-d3fc/test/js/barWidth.spec.ts +++ b/packages/viewer-d3fc/test/js/barWidth.spec.ts @@ -47,6 +47,7 @@ test.describe("Bar Width", () => { group_by: ["Order Date"], split_by: ["Profit"], theme: "Pro Light", + group_rollup_mode: "flat", }); await compareSVGContentsToSnapshot( diff --git a/packages/viewer-datagrid/src/less/regular_table.less b/packages/viewer-datagrid/src/less/regular_table.less index 67604bf94d..b02b892cbe 100644 --- a/packages/viewer-datagrid/src/less/regular_table.less +++ b/packages/viewer-datagrid/src/less/regular_table.less @@ -128,10 +128,20 @@ perspective-viewer { border-color: var(--selected-row--background-color, #ea7319) !important; } +regular-table.flat-group-rollup-mode.vertical-row-headers + th.psp-tree-label:not(:last-of-type) { + writing-mode: vertical-lr; +} + .psp-row-selected.psp-tree-label:not(:hover):before { color: white; } +regular-table:not(.flat-group-rollup-mode) + .psp-row-selected.psp-tree-label:not(:hover):before { + color: white; +} + .psp-row-subselected, :hover .psp-row-subselected, :hover th.psp-tree-leaf.psp-row-subselected, @@ -254,29 +264,36 @@ tbody th:empty { max-width: 20px; pointer-events: none; } -.psp-tree-label { - max-width: 0px; - min-width: 0px; -} -.psp-tree-label:before { - color: var(--icon--color); - font-family: var(--button--font-family, inherit); - padding-right: 11px; -} -.psp-tree-label-expand:before { - content: var(--tree-label-expand--content, "+"); -} -.psp-tree-label-collapse:before { - content: var(--tree-label-collapse--content, "-"); -} -.psp-tree-label-expand, -.psp-tree-label-collapse { - cursor: pointer; -} -.psp-tree-label:hover:before { - color: var(--active--color); - text-shadow: 0px 0px 5px var(--active--color); +regular-table:not(.flat-group-rollup-mode) { + .psp-tree-label { + max-width: 0px; + min-width: 0px; + } + + .psp-tree-label:before { + color: var(--icon--color); + font-family: var(--button--font-family, inherit); + padding-right: 11px; + } + + .psp-tree-label-expand:before { + content: var(--tree-label-expand--content, "+"); + } + + .psp-tree-label-collapse:before { + content: var(--tree-label-collapse--content, "-"); + } + + .psp-tree-label-expand, + .psp-tree-label-collapse { + cursor: pointer; + } + + .psp-tree-label:hover:before { + color: var(--active--color); + text-shadow: 0px 0px 5px var(--active--color); + } } .psp-tree-leaf { diff --git a/packages/viewer-datagrid/src/ts/custom_elements/datagrid.ts b/packages/viewer-datagrid/src/ts/custom_elements/datagrid.ts index a32e9bb2c1..6b4a219fc5 100644 --- a/packages/viewer-datagrid/src/ts/custom_elements/datagrid.ts +++ b/packages/viewer-datagrid/src/ts/custom_elements/datagrid.ts @@ -133,6 +133,10 @@ export class HTMLPerspectiveViewerDatagridPluginElement return ["Columns"]; } + get group_rollups(): string[] { + return ["rollup", "flat"]; + } + /** * Give the Datagrid a higher priority so it is loaded * over the default charts by default. @@ -179,6 +183,7 @@ export class HTMLPerspectiveViewerDatagridPluginElement viewport?.start_row !== null ? viewport.end_row - viewport.start_row : await view.num_rows(); + let out = ""; for (let ridx = 0; ridx < nrows; ridx++) { for (const col_name of cols) { diff --git a/packages/viewer-datagrid/src/ts/data_listener/format_tree_header.ts b/packages/viewer-datagrid/src/ts/data_listener/format_tree_header.ts index 80c09afab5..05b3f2dece 100644 --- a/packages/viewer-datagrid/src/ts/data_listener/format_tree_header.ts +++ b/packages/viewer-datagrid/src/ts/data_listener/format_tree_header.ts @@ -52,6 +52,22 @@ export function* format_tree_header_row_path( } } +export function* format_flat_header_row_path( + this: DatagridModel, + paths: unknown[][] = [], + row_headers: string[], + regularTable: RegularTable, +): Generator { + const plugins: ColumnsConfig = + (regularTable as any)[PRIVATE_PLUGIN_SYMBOL] || {}; + + for (let path of paths) { + yield path.map((part, i) => + format_cell.call(this, row_headers[i], part, plugins, true), + ) as RowHeaderCell[]; + } +} + /** * Format a single cell of the `group_by` tree header. */ diff --git a/packages/viewer-datagrid/src/ts/data_listener/index.ts b/packages/viewer-datagrid/src/ts/data_listener/index.ts index 8dbe61582a..0c575a3979 100644 --- a/packages/viewer-datagrid/src/ts/data_listener/index.ts +++ b/packages/viewer-datagrid/src/ts/data_listener/index.ts @@ -13,6 +13,7 @@ import { PRIVATE_PLUGIN_SYMBOL } from "../types.js"; import { format_cell } from "./format_cell.js"; import { + format_flat_header_row_path, format_tree_header, format_tree_header_row_path, } from "./format_tree_header.js"; @@ -207,9 +208,12 @@ export function createDataListener( } const is_row_path = columns.__ROW_PATH__ !== undefined; + const is_flat = this._config.group_rollup_mode === "flat"; const row_headers = Array.from( (is_row_path - ? format_tree_header_row_path + ? is_flat + ? format_flat_header_row_path + : format_tree_header_row_path : format_tree_header ).call( this, diff --git a/packages/viewer-datagrid/src/ts/model/create.ts b/packages/viewer-datagrid/src/ts/model/create.ts index c81dfc9990..3ed2526101 100644 --- a/packages/viewer-datagrid/src/ts/model/create.ts +++ b/packages/viewer-datagrid/src/ts/model/create.ts @@ -122,6 +122,9 @@ export async function createModel( } } + const group_rollup_mode_changed = + old.group_rollup_mode !== config.group_rollup_mode; + this._reset_scroll_top = group_by_changed; this._reset_scroll_left = split_by_changed; this._reset_select = @@ -132,6 +135,7 @@ export async function createModel( columns_changed; this._reset_column_size = + group_rollup_mode_changed || split_by_changed || group_by_changed || columns_changed || diff --git a/packages/viewer-datagrid/src/ts/plugin/draw.ts b/packages/viewer-datagrid/src/ts/plugin/draw.ts index 83ff118a0c..3abe1af671 100644 --- a/packages/viewer-datagrid/src/ts/plugin/draw.ts +++ b/packages/viewer-datagrid/src/ts/plugin/draw.ts @@ -37,6 +37,7 @@ export async function draw( const drawPromise = this.regular_table.draw({ invalid_columns: true, } as any); + if (this._reset_scroll_top) { this.regular_table.scrollTop = 0; this._reset_scroll_top = false; diff --git a/packages/viewer-datagrid/src/ts/style_handlers/body.ts b/packages/viewer-datagrid/src/ts/style_handlers/body.ts index 91023b8ccf..c5b0d614e2 100644 --- a/packages/viewer-datagrid/src/ts/style_handlers/body.ts +++ b/packages/viewer-datagrid/src/ts/style_handlers/body.ts @@ -49,6 +49,11 @@ export function applyBodyCellStyles( const hasSelected = selectedRowsMap.has(regularTable); const selected = selectedRowsMap.get(regularTable); + regularTable.classList.toggle( + "flat-group-rollup-mode", + this._config.group_rollup_mode === "flat", + ); + for (const { element: td, metadata, isHeader } of cells) { const column_name = metadata.column_header?.[this._config.split_by.length]; diff --git a/packages/viewer-datagrid/src/ts/style_handlers/column_header.ts b/packages/viewer-datagrid/src/ts/style_handlers/column_header.ts index e68d7ba9e0..49890b68ff 100644 --- a/packages/viewer-datagrid/src/ts/style_handlers/column_header.ts +++ b/packages/viewer-datagrid/src/ts/style_handlers/column_header.ts @@ -97,9 +97,11 @@ export function styleColumnHeaderRow( regularTable: RegularTableElement, is_menu_row: boolean, ): void { - const header_depth = this._config.group_by.length; - const selectedColumn = this._column_settings_selected_column; + const header_depth = + this._config.group_by.length - + (this._config.group_rollup_mode === "flat" ? 1 : 0); + const selectedColumn = this._column_settings_selected_column; for (const { element: td, metadata } of headerRow.cells) { if ( !metadata || @@ -110,14 +112,13 @@ export function styleColumnHeaderRow( const column_name = metadata.column_header?.[this._config.split_by.length]; + const sort = this._config.sort.find((x) => x[0] === column_name); - let needs_border = - metadata.type === "corner" && - metadata.row_header_x === header_depth; const is_corner = typeof metadata.x === "undefined"; - needs_border = - needs_border || - (metadata.x !== undefined && + const needs_border = + (metadata.type === "corner" && + metadata.row_header_x === header_depth) || + (!is_corner && (metadata.x + 1) % this._config.columns.length === 0); td.classList.toggle("psp-header-border", needs_border); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ffb06a261..f6682d7e94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -157,8 +157,8 @@ catalogs: specifier: '>17 <20' version: 18.3.1 regular-table: - specifier: '=0.8.1' - version: 0.8.1 + specifier: '=0.8.3' + version: 0.8.3 stoppable: specifier: '=1.1.0' version: 1.1.0 @@ -898,7 +898,7 @@ importers: version: 3.1.2 regular-table: specifier: 'catalog:' - version: 0.8.1 + version: 0.8.3 devDependencies: '@perspective-dev/esbuild-plugin': specifier: 'workspace:' @@ -7900,8 +7900,8 @@ packages: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true - regular-table@0.8.1: - resolution: {integrity: sha512-+HZgc1CFER+M5dFhsL5MYEU6WKRhLwxRT85h7OCJM0kfuZiYZBi2kSH4/HRc4aCNGiczQbp1EvuEhTgjSdBl7w==} + regular-table@0.8.3: + resolution: {integrity: sha512-GANAV656dyTza89S1pz1NwQdcIZv+uUyV5z9k2mPnVfQxWVY150Ft75p35El0ICGpKvUG9mz6BP5vq4+d9BwUg==} engines: {node: '>=16'} rehype-raw@7.0.0: @@ -17841,7 +17841,7 @@ snapshots: dependencies: jsesc: 3.1.0 - regular-table@0.8.1: {} + regular-table@0.8.3: {} rehype-raw@7.0.0: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index bee69d92c9..cf3f70e6bd 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -39,7 +39,7 @@ catalog: "pro_self_extracting_wasm": "0.0.9" "react-dom": ">17 <20" "react": ">17 <20" - "regular-table": "=0.8.1" + "regular-table": "=0.8.3" "stoppable": "=1.1.0" "ws": "^8.17.0" diff --git a/rust/perspective-client/src/rust/view.rs b/rust/perspective-client/src/rust/view.rs index fd0bec480b..91e8a6a1a4 100644 --- a/rust/perspective-client/src/rust/view.rs +++ b/rust/perspective-client/src/rust/view.rs @@ -379,7 +379,6 @@ impl View { id: window.id, index: window.index, formatted: window.formatted, - })); match self.client.oneshot(&msg).await? { @@ -398,7 +397,6 @@ impl View { id: window.id, index: window.index, formatted: window.formatted, - })); match self.client.oneshot(&msg).await? { @@ -418,7 +416,6 @@ impl View { id: window.id, index: window.index, formatted: window.formatted, - })); match self.client.oneshot(&msg).await? { diff --git a/rust/perspective-viewer/src/less/config-selector.less b/rust/perspective-viewer/src/less/config-selector.less index df4e96a6b2..08d6dfd54f 100644 --- a/rust/perspective-viewer/src/less/config-selector.less +++ b/rust/perspective-viewer/src/less/config-selector.less @@ -270,6 +270,30 @@ display: inline-block; } + .pivot_controls { + display: flex; + justify-content: flex-end; + height: 15px; + margin-bottom: -24px; + margin-right: 28px; + margin-top: 9px; + select:hover { + color: var(--icon--color, inherit); + } + } + + .group_rollup_wrapper { + width: 48px; + margin-bottom: -30px; + flex: 0 1 auto; + color: var(--inactive--color); + padding-top: 15px; + font-size: 9px; + select { + font-size: 9px !important; + } + } + #transpose_button { cursor: pointer; flex-grow: 0; @@ -278,12 +302,12 @@ user-select: none; padding: 0; align-self: center; - margin-bottom: -23px; - margin-top: 11.5px; - align-self: flex-end; + // margin-bottom: -23px; + // margin-top: 11.5px; + // align-self: flex-end; z-index: 1; min-height: 0px; - margin-right: 30px; + // margin-right: 30px; &:hover:before { color: var(--icon--color, inherit); diff --git a/rust/perspective-viewer/src/rust/components/column_selector.rs b/rust/perspective-viewer/src/rust/components/column_selector.rs index daa16a9fcf..d590cf8168 100644 --- a/rust/perspective-viewer/src/rust/components/column_selector.rs +++ b/rust/perspective-viewer/src/rust/components/column_selector.rs @@ -355,11 +355,7 @@ impl Component for ColumnSelector { }) .collect(); - let size = if !inactive_children.is_empty() { - 56.0 - } else { - 28.0 - }; + let size = 28.0; let add_column = if ctx .props() diff --git a/rust/perspective-viewer/src/rust/components/column_selector/config_selector.rs b/rust/perspective-viewer/src/rust/components/column_selector/config_selector.rs index 7f97441a19..4e1e4b282e 100644 --- a/rust/perspective-viewer/src/rust/components/column_selector/config_selector.rs +++ b/rust/perspective-viewer/src/rust/components/column_selector/config_selector.rs @@ -23,6 +23,7 @@ use super::filter_column::*; use super::pivot_column::*; use super::sort_column::*; use crate::components::containers::dragdrop_list::*; +use crate::components::containers::select::{Select, SelectItem}; use crate::components::style::LocalStyle; use crate::custom_elements::{ColumnDropDownElement, FilterDropDownElement}; use crate::dragdrop::*; @@ -32,7 +33,7 @@ use crate::session::*; use crate::utils::*; use crate::{PerspectiveProperties, css}; -#[derive(Properties, PerspectiveProperties!)] +#[derive(Clone, Properties, PerspectiveProperties!)] pub struct ConfigSelectorProps { pub onselect: Callback<()>, @@ -450,18 +451,55 @@ impl Component for ConfigSelector { let metadata = session.metadata(); let features = metadata.get_features().unwrap(); + let requirements = renderer.metadata(); + + let on_group_rollup_mode = Callback::from({ + let props = ctx.props().clone(); + move |x| { + let config = ViewConfigUpdate { + group_rollup_mode: Some(x), + ..ViewConfigUpdate::default() + }; + + props + .update_and_render(config) + .map(ApiFuture::spawn) + .unwrap_or_log(); + } + }); html! {
- if !config.group_by.is_empty() && config.split_by.is_empty() { - - } +
+ if !config.group_by.is_empty() { + if requirements.group_rollups.as_ref().map(|x| x.len()).unwrap_or_default() > 1 { + + id="group_rollup_mode_selector" + wrapper_class="group_rollup_wrapper" + values={Rc::new( + requirements + .group_rollups + .as_ref() + .unwrap() + .iter() + .map(|x| SelectItem::Option(*x)) + .collect(), + )} + selected={config.group_rollup_mode} + on_select={on_group_rollup_mode} + /> + } + if config.split_by.is_empty() { + + } + } +
if features.group_by { +
+ +
} } diff --git a/rust/perspective-viewer/src/rust/components/containers/select.rs b/rust/perspective-viewer/src/rust/components/containers/select.rs index aef0a649cc..e3af125533 100644 --- a/rust/perspective-viewer/src/rust/components/containers/select.rs +++ b/rust/perspective-viewer/src/rust/components/containers/select.rs @@ -220,9 +220,9 @@ where }; let value = if ctx.props().is_autosize { - self.selected.to_string() + Some(self.selected.to_string()) } else { - "".to_owned() + None }; html! { @@ -230,7 +230,7 @@ where -
{ select }
+
{ select }
} else {
{ select }
} diff --git a/rust/perspective-viewer/src/rust/components/plugin_selector.rs b/rust/perspective-viewer/src/rust/components/plugin_selector.rs index d3001ef823..219bdad458 100644 --- a/rust/perspective-viewer/src/rust/components/plugin_selector.rs +++ b/rust/perspective-viewer/src/rust/components/plugin_selector.rs @@ -83,11 +83,18 @@ impl Component for PluginSelector { let metadata = renderer.get_next_plugin_metadata(&PluginUpdate::Update(plugin_name)); - let mut update = ViewConfigUpdate::default(); - session.set_update_column_defaults( - &mut update, - metadata.as_ref().unwrap_or(&*renderer.metadata()), - ); + let prev_metadata = renderer.metadata(); + let requirements = metadata.as_ref().unwrap_or(&*prev_metadata); + let mut update = ViewConfigUpdate { + group_rollup_mode: requirements + .group_rollups + .as_ref() + .and_then(|x| x.first()) + .cloned(), + ..ViewConfigUpdate::default() + }; + + session.set_update_column_defaults(&mut update, requirements); if let Ok(task) = ctx.props().update_and_render(update) { ApiFuture::spawn(task); diff --git a/rust/perspective-viewer/src/rust/js/plugin.rs b/rust/perspective-viewer/src/rust/js/plugin.rs index 664660dd27..973e553998 100644 --- a/rust/perspective-viewer/src/rust/js/plugin.rs +++ b/rust/perspective-viewer/src/rust/js/plugin.rs @@ -10,6 +10,7 @@ // ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃ // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +use perspective_client::config::GroupRollupMode; use perspective_js::utils::*; use serde::*; use wasm_bindgen::prelude::*; @@ -61,6 +62,9 @@ extern "C" { #[wasm_bindgen(method, getter)] pub fn priority(this: &JsPerspectiveViewerPlugin) -> Option; + #[wasm_bindgen(method, getter)] + pub fn group_rollups(this: &JsPerspectiveViewerPlugin) -> Option; + /// Don't call this method directly. Instead, call the corresponding method on the PluginColumnStyles model. #[wasm_bindgen(method, catch)] pub fn can_render_column_styles(this: &JsPerspectiveViewerPlugin, view_type: &str, group: Option<&str>) -> ApiResult; @@ -146,6 +150,7 @@ pub struct ViewConfigRequirements { pub max_cells: Option, pub name: String, pub render_warning: bool, + pub group_rollups: Option>, } impl ViewConfigRequirements { @@ -169,6 +174,9 @@ impl JsPerspectiveViewerPlugin { max_cells: self.max_cells(), name: self.name(), render_warning: self.render_warning().unwrap_or(true), + group_rollups: self + .group_rollups() + .map(|x| x.into_serde_ext::>().unwrap()), }) } } diff --git a/rust/perspective-viewer/src/rust/session/column_defaults_update.rs b/rust/perspective-viewer/src/rust/session/column_defaults_update.rs index 69e9141230..74ee6b45d7 100644 --- a/rust/perspective-viewer/src/rust/session/column_defaults_update.rs +++ b/rust/perspective-viewer/src/rust/session/column_defaults_update.rs @@ -31,6 +31,30 @@ pub impl ViewConfigUpdate { columns: &[Option], requirements: &ViewConfigRequirements, ) { + if requirements + .group_rollups + .as_ref() + .map(|x| { + !x.contains( + self.group_rollup_mode + .as_ref() + .unwrap_or(&GroupRollupMode::Rollup), + ) + }) + .unwrap_or_default() + { + self.group_rollup_mode = requirements + .group_rollups + .as_ref() + .and_then(|x| x.first()) + .cloned(); + + tracing::error!( + "Setting plugin-advised rollup mode {:?}", + self.group_rollup_mode + ); + } + if let ( None, ViewConfigRequirements { diff --git a/rust/perspective-viewer/src/rust/session/replace_expression_update.rs b/rust/perspective-viewer/src/rust/session/replace_expression_update.rs index e53ec6a3db..ac1a4087ea 100644 --- a/rust/perspective-viewer/src/rust/session/replace_expression_update.rs +++ b/rust/perspective-viewer/src/rust/session/replace_expression_update.rs @@ -125,7 +125,7 @@ pub impl ViewConfig { filter: Some(filter), filter_op: None, group_by_depth: None, - leaves_only: None, + group_rollup_mode: None, } } } diff --git a/rust/perspective-viewer/test/js/dom.spec.js b/rust/perspective-viewer/test/js/dom.spec.js index 2a4ae630ca..75955b82d5 100644 --- a/rust/perspective-viewer/test/js/dom.spec.js +++ b/rust/perspective-viewer/test/js/dom.spec.js @@ -77,6 +77,7 @@ const RESULT = { table: "load-viewer-csv", theme: "Pro Light", title: null, + group_rollup_mode: "rollup", }; test.describe("DOM API", () => { diff --git a/rust/perspective-viewer/test/js/events.spec.ts b/rust/perspective-viewer/test/js/events.spec.ts index 1256a28e2b..60ef965ee4 100644 --- a/rust/perspective-viewer/test/js/events.spec.ts +++ b/rust/perspective-viewer/test/js/events.spec.ts @@ -80,6 +80,7 @@ test.describe("Events", () => { plugin: "Debug", plugin_config: {}, group_by: ["State"], + group_rollup_mode: "rollup", settings: true, sort: [], table: "load-viewer-csv", diff --git a/tools/test/results.tar.gz b/tools/test/results.tar.gz index df0165f9f04017198efa7ae2dd97d8dd2bde0635..31f28658559fa6916c2472dd83851b0ee64f8169 100644 GIT binary patch literal 159719 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

$ybA?YJN! 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 CFH0Bz literal 159074 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 X8CIxMC}i$D{sN8SBcVaaxIq33{%1n& diff --git a/tools/test/src/js/utils.ts b/tools/test/src/js/utils.ts index 4a1d567504..9da4a299bb 100644 --- a/tools/test/src/js/utils.ts +++ b/tools/test/src/js/utils.ts @@ -31,6 +31,7 @@ export const DEFAULT_CONFIG: ViewerConfigUpdate = { expressions: {}, filter: [], group_by: [], + group_rollup_mode: "rollup", plugin: "", plugin_config: {}, settings: false,