@perspective-dev/viewer 4.1.1 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/perspective-viewer.js +2 -2
- package/dist/cdn/perspective-viewer.js.map +4 -4
- package/dist/css/botanical.css +1 -0
- package/dist/css/dracula.css +1 -1
- package/dist/css/gruvbox-dark.css +1 -1
- package/dist/css/gruvbox.css +1 -1
- package/dist/css/solarized.css +1 -1
- package/dist/css/themes.css +1 -1
- package/dist/css/vaporwave.css +1 -1
- package/dist/esm/extensions.d.ts +32 -1
- package/dist/esm/perspective-viewer.d.ts +1 -0
- package/dist/esm/perspective-viewer.inline.js +2 -2
- package/dist/esm/perspective-viewer.inline.js.map +4 -4
- package/dist/esm/perspective-viewer.js +2 -2
- package/dist/esm/perspective-viewer.js.map +4 -4
- package/dist/esm/ts-rs/GroupRollupMode.d.ts +1 -0
- package/dist/esm/ts-rs/ViewerConfigUpdate.d.ts +2 -0
- package/dist/wasm/perspective-viewer.d.ts +1403 -1319
- package/dist/wasm/perspective-viewer.js +3531 -3268
- package/dist/wasm/perspective-viewer.wasm +0 -0
- package/dist/wasm/perspective-viewer.wasm.d.ts +111 -99
- package/package.json +4 -3
- package/src/less/column-selector.less +2 -2
- package/src/less/config-selector.less +66 -4
- package/src/rust/components/column_dropdown.rs +8 -8
- package/src/rust/components/column_selector/config_selector.rs +102 -29
- package/src/rust/components/column_selector/filter_column.rs +12 -12
- package/src/rust/components/column_selector/pivot_column.rs +12 -7
- package/src/rust/components/column_selector.rs +27 -17
- package/src/rust/components/column_settings_sidebar/style_tab/symbol/row_selector.rs +5 -5
- package/src/rust/components/column_settings_sidebar.rs +2 -4
- package/src/rust/components/containers/dragdrop_list.rs +32 -10
- package/src/rust/components/containers/scroll_panel.rs +8 -1
- package/src/rust/components/containers/select.rs +9 -9
- package/src/rust/components/containers/split_panel.rs +2 -2
- package/src/rust/components/filter_dropdown.rs +8 -8
- package/src/rust/components/function_dropdown.rs +8 -8
- package/src/rust/components/modal.rs +4 -4
- package/src/rust/components/plugin_selector.rs +15 -5
- package/src/rust/components/status_indicator.rs +3 -0
- package/src/rust/custom_elements/filter_dropdown.rs +4 -4
- package/src/rust/custom_elements/viewer.rs +2 -7
- package/src/rust/js/plugin.rs +19 -0
- package/src/rust/model/copy_export.rs +2 -1
- package/src/rust/model/intersection_observer.rs +3 -1
- package/src/rust/presentation/sheets.rs +4 -1
- package/src/rust/presentation.rs +4 -4
- package/src/rust/renderer/registry.rs +8 -1
- package/src/rust/session/column_defaults_update.rs +18 -0
- package/src/rust/session/replace_expression_update.rs +1 -0
- package/src/themes/botanical.less +142 -0
- package/src/themes/themes.less +2 -1
- package/src/ts/extensions.ts +73 -2
- package/src/ts/perspective-viewer.ts +1 -0
- package/src/ts/ts-rs/GroupRollupMode.ts +3 -0
- package/src/ts/ts-rs/ViewerConfigUpdate.ts +2 -1
- package/tsconfig.json +1 -0
- /package/dist/wasm/snippets/{perspective-viewer-11a3c51b6310ee99 → perspective-viewer-d729f682ba5c19df}/inline0.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-11a3c51b6310ee99/inline2.js → perspective-viewer-d729f682ba5c19df/inline1.js} +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-11a3c51b6310ee99/inline1.js → perspective-viewer-d729f682ba5c19df/inline2.js} +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-11a3c51b6310ee99 → perspective-viewer-d729f682ba5c19df}/inline3.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-11a3c51b6310ee99 → perspective-viewer-d729f682ba5c19df}/inline4.js +0 -0
package/src/rust/presentation.rs
CHANGED
|
@@ -243,10 +243,10 @@ impl Presentation {
|
|
|
243
243
|
/// A `bool` indicating whether the internal state changed.
|
|
244
244
|
pub async fn set_theme_name(&self, theme: Option<&str>) -> ApiResult<bool> {
|
|
245
245
|
let (themes, selected) = self.get_selected_theme_config().await?;
|
|
246
|
-
if let Some(x) = selected
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
246
|
+
if let Some(x) = selected
|
|
247
|
+
&& themes.get(x).map(|x| x.as_str()) == theme
|
|
248
|
+
{
|
|
249
|
+
return Ok(false);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
let index = if let Some(theme) = theme {
|
|
@@ -102,7 +102,14 @@ pub impl LocalKey<Rc<RefCell<Vec<PluginRecord>>>> {
|
|
|
102
102
|
.unwrap_or_else(|| "Custom".to_owned()),
|
|
103
103
|
priority: plugin_inst.priority().unwrap_or_default(),
|
|
104
104
|
};
|
|
105
|
+
|
|
105
106
|
let mut plugins = plugin.borrow_mut();
|
|
107
|
+
if let Some(first) = plugins.first()
|
|
108
|
+
&& first.tag_name.as_str() == "perspective-viewer-plugin"
|
|
109
|
+
{
|
|
110
|
+
plugins.clear();
|
|
111
|
+
}
|
|
112
|
+
|
|
106
113
|
plugins.push(record);
|
|
107
114
|
plugins.sort_by(|a, b| Ord::cmp(&b.priority, &a.priority));
|
|
108
115
|
});
|
|
@@ -121,7 +128,7 @@ fn register_default() {
|
|
|
121
128
|
name: "Debug".to_owned(),
|
|
122
129
|
category: "Custom".to_owned(),
|
|
123
130
|
tag_name: "perspective-viewer-plugin".to_owned(),
|
|
124
|
-
priority:
|
|
131
|
+
priority: -1,
|
|
125
132
|
})
|
|
126
133
|
}
|
|
127
134
|
})
|
|
@@ -31,6 +31,24 @@ pub impl ViewConfigUpdate {
|
|
|
31
31
|
columns: &[Option<String>],
|
|
32
32
|
requirements: &ViewConfigRequirements,
|
|
33
33
|
) {
|
|
34
|
+
let rollup_features = metadata
|
|
35
|
+
.get_features()
|
|
36
|
+
.map(|x| x.get_group_rollup_modes())
|
|
37
|
+
.unwrap_or_default();
|
|
38
|
+
|
|
39
|
+
let group_rollups = requirements.get_group_rollups(&rollup_features);
|
|
40
|
+
if !group_rollups.contains(
|
|
41
|
+
self.group_rollup_mode
|
|
42
|
+
.as_ref()
|
|
43
|
+
.unwrap_or(&GroupRollupMode::Rollup),
|
|
44
|
+
) {
|
|
45
|
+
self.group_rollup_mode = group_rollups.first().cloned();
|
|
46
|
+
tracing::error!(
|
|
47
|
+
"Setting plugin-advised rollup mode {:?}",
|
|
48
|
+
self.group_rollup_mode
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
34
52
|
if let (
|
|
35
53
|
None,
|
|
36
54
|
ViewConfigRequirements {
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
2
|
+
// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
3
|
+
// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
4
|
+
// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
5
|
+
// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
6
|
+
// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
7
|
+
// ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
8
|
+
// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
9
|
+
// ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
10
|
+
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
|
+
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
|
+
|
|
13
|
+
@import "icons.less";
|
|
14
|
+
@import "intl.less";
|
|
15
|
+
|
|
16
|
+
@import url("ref://pro.less");
|
|
17
|
+
|
|
18
|
+
// Register theme for auto-detection
|
|
19
|
+
perspective-viewer,
|
|
20
|
+
perspective-viewer[theme="Botanical"] {
|
|
21
|
+
--theme-name: "Botanical";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
perspective-viewer[theme="Botanical"] {
|
|
25
|
+
@include perspective-viewer-botanical;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
perspective-copy-menu[theme="Botanical"],
|
|
29
|
+
perspective-export-menu[theme="Botanical"],
|
|
30
|
+
perspective-dropdown[theme="Botanical"],
|
|
31
|
+
perspective-date-column-style[theme="Botanical"],
|
|
32
|
+
perspective-datetime-column-style[theme="Botanical"],
|
|
33
|
+
perspective-number-column-style[theme="Botanical"],
|
|
34
|
+
perspective-string-column-style[theme="Botanical"] {
|
|
35
|
+
@include perspective-modal-botanical;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@mixin perspective-viewer-botanical {
|
|
39
|
+
@include perspective-viewer-pro;
|
|
40
|
+
@include perspective-viewer-botanical--colors;
|
|
41
|
+
@include perspective-viewer-botanical--datagrid;
|
|
42
|
+
@include perspective-viewer-botanical--d3fc;
|
|
43
|
+
@include perspective-viewer-botanical--openlayers;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@mixin perspective-modal-botanical {
|
|
47
|
+
@include perspective-modal-pro;
|
|
48
|
+
@include perspective-viewer-botanical--colors;
|
|
49
|
+
|
|
50
|
+
background-color: #1a2e1a;
|
|
51
|
+
border: 1px solid #3d5c3d;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@mixin perspective-viewer-botanical--colors {
|
|
55
|
+
background-color: #1a2e1a;
|
|
56
|
+
color: #e0ead8;
|
|
57
|
+
--icon--color: #e0ead8;
|
|
58
|
+
--active--color: #5a9e4b;
|
|
59
|
+
--error--color: #e8836a;
|
|
60
|
+
--inactive--color: #526b4a;
|
|
61
|
+
--inactive--border-color: #3d5c3d;
|
|
62
|
+
--plugin--background: #1a2e1a;
|
|
63
|
+
--modal-target--background: rgba(224, 234, 216, 0.05);
|
|
64
|
+
--active--background: rgba(90, 158, 75, 0.5);
|
|
65
|
+
--expression--operator-color: #b8c9ad;
|
|
66
|
+
--expression--function-color: #7bc96f;
|
|
67
|
+
--expression--error-color: rgb(232, 131, 106);
|
|
68
|
+
--calendar--filter: invert(1);
|
|
69
|
+
--warning--color: #1a2e1a;
|
|
70
|
+
--warning--background: var(--icon--color);
|
|
71
|
+
|
|
72
|
+
--select-arrow--background-image: var(
|
|
73
|
+
--select-arrow-light--background-image
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
--select-arrow--hover--background-image: var(
|
|
77
|
+
--select-arrow-dark--background-image
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
// Syntax
|
|
81
|
+
--code-editor-symbol--color: #e0ead8;
|
|
82
|
+
--code-editor-literal--color: #a8d8a0;
|
|
83
|
+
--code-editor-operator--color: rgb(206, 176, 104);
|
|
84
|
+
--code-editor-comment--color: rgb(120, 160, 100);
|
|
85
|
+
--code-editor-column--color: #c9a0d8;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@mixin perspective-viewer-botanical--openlayers {
|
|
89
|
+
--map-tile-url: "http://{a-c}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png";
|
|
90
|
+
--map-attribution--filter: invert(1) hue-rotate(180deg);
|
|
91
|
+
--map-element-background: #1e3420;
|
|
92
|
+
--map-category-1: rgb(90, 158, 75);
|
|
93
|
+
--map-category-2: rgb(206, 176, 104);
|
|
94
|
+
--map-category-3: rgb(160, 110, 180);
|
|
95
|
+
--map-category-4: rgb(80, 170, 150);
|
|
96
|
+
--map-category-5: rgb(140, 170, 90);
|
|
97
|
+
--map-category-6: rgb(200, 120, 140);
|
|
98
|
+
--map-category-7: rgb(100, 150, 190);
|
|
99
|
+
--map-category-8: rgb(210, 140, 80);
|
|
100
|
+
--map-category-9: rgb(130, 120, 190);
|
|
101
|
+
--map-category-10: rgb(170, 200, 110);
|
|
102
|
+
--map-gradient: linear-gradient(#e8836a 0%, #1a2e1a 50%, #5a9e4b 100%);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@mixin perspective-viewer-botanical--datagrid {
|
|
106
|
+
--rt-pos-cell--color: #7bc96f;
|
|
107
|
+
--rt-neg-cell--color: #ebac21;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@mixin perspective-viewer-botanical--d3fc {
|
|
111
|
+
--d3fc-legend--text: #b8c9ad;
|
|
112
|
+
--d3fc-treedata--labels: #e0ead8;
|
|
113
|
+
--d3fc-treedata--hover-highlight: #e0ead8;
|
|
114
|
+
--d3fc-tooltip--color: #e0ead8;
|
|
115
|
+
--d3fc-axis-ticks--color: #b8c9ad;
|
|
116
|
+
--d3fc-axis--lines: #526b4a;
|
|
117
|
+
--d3fc-gridline--color: #2a4228;
|
|
118
|
+
--d3fc-tooltip--background: rgba(30, 52, 32, 1);
|
|
119
|
+
--d3fc-tooltip--border-color: #1a2e1a;
|
|
120
|
+
--d3fc-legend--background: var(--plugin--background);
|
|
121
|
+
|
|
122
|
+
--d3fc-series: rgb(90, 158, 75);
|
|
123
|
+
--d3fc-series-1: rgb(90, 158, 75);
|
|
124
|
+
--d3fc-series-2: rgb(206, 176, 104);
|
|
125
|
+
--d3fc-series-3: rgb(160, 110, 180);
|
|
126
|
+
--d3fc-series-4: rgb(80, 170, 150);
|
|
127
|
+
--d3fc-series-5: rgb(140, 170, 90);
|
|
128
|
+
--d3fc-series-6: rgb(200, 120, 140);
|
|
129
|
+
--d3fc-series-7: rgb(100, 150, 190);
|
|
130
|
+
--d3fc-series-8: rgb(210, 140, 80);
|
|
131
|
+
--d3fc-series-9: rgb(130, 120, 190);
|
|
132
|
+
--d3fc-series-10: rgb(170, 200, 110);
|
|
133
|
+
|
|
134
|
+
--d3fc-full--gradient: linear-gradient(
|
|
135
|
+
#e8836a 0%,
|
|
136
|
+
#1a2e1a 50%,
|
|
137
|
+
#5a9e4b 100%
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
--d3fc-positive--gradient: linear-gradient(#1a2e1a 0%, #5a9e4b 100%);
|
|
141
|
+
--d3fc-negative--gradient: linear-gradient(#e8836a 0%, #1a2e1a 100%);
|
|
142
|
+
}
|
package/src/themes/themes.less
CHANGED
package/src/ts/extensions.ts
CHANGED
|
@@ -14,7 +14,41 @@ import type { HTMLPerspectiveViewerPluginElement } from "./plugin";
|
|
|
14
14
|
import type { PerspectiveViewerElement } from "../../dist/wasm/perspective-viewer.js";
|
|
15
15
|
import type React from "react";
|
|
16
16
|
import type { ViewerConfigUpdate } from "./ts-rs/ViewerConfigUpdate.js";
|
|
17
|
-
import type {
|
|
17
|
+
import type {
|
|
18
|
+
ViewWindow,
|
|
19
|
+
ViewConfigUpdate,
|
|
20
|
+
Filter,
|
|
21
|
+
} from "@perspective-dev/client";
|
|
22
|
+
|
|
23
|
+
export class PerspectiveSelectDetail {
|
|
24
|
+
selected: boolean;
|
|
25
|
+
row: Record<string, unknown>;
|
|
26
|
+
column_names?: string[];
|
|
27
|
+
removeConfigs: ViewConfigUpdate[];
|
|
28
|
+
insertConfigs: ViewConfigUpdate[];
|
|
29
|
+
|
|
30
|
+
constructor(
|
|
31
|
+
selected: boolean,
|
|
32
|
+
row: Record<string, unknown>,
|
|
33
|
+
column_names: string[],
|
|
34
|
+
removeConfigs: ViewConfigUpdate[],
|
|
35
|
+
insertConfigs: ViewConfigUpdate[],
|
|
36
|
+
) {
|
|
37
|
+
this.selected = selected;
|
|
38
|
+
this.row = row;
|
|
39
|
+
this.column_names = column_names;
|
|
40
|
+
this.removeConfigs = removeConfigs;
|
|
41
|
+
this.insertConfigs = insertConfigs;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get removeFilters(): Filter[] {
|
|
45
|
+
return this.removeConfigs.flatMap((x) => x.filter ?? []);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get insertFilters(): Filter[] {
|
|
49
|
+
return this.insertConfigs.flatMap((x) => x.filter ?? []);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
18
52
|
import type {
|
|
19
53
|
ExportDropDownMenuElement,
|
|
20
54
|
CopyDropDownMenuElement,
|
|
@@ -48,11 +82,15 @@ export type PerspectiveSelectEventDetail = {
|
|
|
48
82
|
|
|
49
83
|
type ReactPerspectiveViewerAttributes<T> = React.HTMLAttributes<T>;
|
|
50
84
|
|
|
51
|
-
type JsxPerspectiveViewerElement = {
|
|
85
|
+
type JsxPerspectiveViewerElement = {
|
|
86
|
+
class?: string;
|
|
87
|
+
} & React.DetailedHTMLProps<
|
|
52
88
|
ReactPerspectiveViewerAttributes<HTMLPerspectiveViewerElement>,
|
|
53
89
|
HTMLPerspectiveViewerElement
|
|
54
90
|
>;
|
|
55
91
|
|
|
92
|
+
// React <19
|
|
93
|
+
|
|
56
94
|
declare global {
|
|
57
95
|
namespace JSX {
|
|
58
96
|
interface IntrinsicElements {
|
|
@@ -61,6 +99,39 @@ declare global {
|
|
|
61
99
|
}
|
|
62
100
|
}
|
|
63
101
|
|
|
102
|
+
// React >=19
|
|
103
|
+
|
|
104
|
+
// Why are these `ts-ignore`? React 19 makes choice of JSX runtime in `tsconfig`
|
|
105
|
+
// the determination of which runtime this needs to be, but this is chosen
|
|
106
|
+
// by the user ... so I'm not sure what the React authors want from me here
|
|
107
|
+
// exactly. Divination?
|
|
108
|
+
|
|
109
|
+
// @ts-ignore
|
|
110
|
+
declare module "react/jsx-runtime" {
|
|
111
|
+
namespace JSX {
|
|
112
|
+
interface IntrinsicElements {
|
|
113
|
+
"perspective-viewer": JsxPerspectiveViewerElement;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
declare module "react/jsx-dev-runtime" {
|
|
120
|
+
namespace JSX {
|
|
121
|
+
interface IntrinsicElements {
|
|
122
|
+
"perspective-viewer": JsxPerspectiveViewerElement;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare module "react" {
|
|
128
|
+
namespace JSX {
|
|
129
|
+
interface IntrinsicElements {
|
|
130
|
+
"perspective-viewer": JsxPerspectiveViewerElement;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
64
135
|
// Custom Elements extensions
|
|
65
136
|
|
|
66
137
|
declare global {
|
|
@@ -35,6 +35,7 @@ export { IPerspectiveViewerPlugin } from "./plugin";
|
|
|
35
35
|
export { HTMLPerspectiveViewerPluginElement } from "./plugin";
|
|
36
36
|
|
|
37
37
|
export type * from "./extensions.ts";
|
|
38
|
+
export { PerspectiveSelectDetail } from "./extensions.ts";
|
|
38
39
|
export type * from "./ts-rs/ViewerConfigUpdate.d.ts";
|
|
39
40
|
export type * from "./ts-rs/ColumnConfigValues.d.ts";
|
|
40
41
|
export type * from "./ts-rs/Filter.d.ts";
|
|
@@ -4,6 +4,7 @@ import type { ColumnConfigValues } from "./ColumnConfigValues.js";
|
|
|
4
4
|
import type { Expressions } from "./Expressions.js";
|
|
5
5
|
import type { Filter } from "./Filter.js";
|
|
6
6
|
import type { FilterReducer } from "./FilterReducer.js";
|
|
7
|
+
import type { GroupRollupMode } from "./GroupRollupMode.js";
|
|
7
8
|
import type { OptionalUpdate } from "./OptionalUpdate.js";
|
|
8
9
|
import type { PluginConfig } from "./PluginConfig.js";
|
|
9
10
|
import type { Sort } from "./Sort.js";
|
|
@@ -87,4 +88,4 @@ expressions?: Expressions,
|
|
|
87
88
|
* applied to columns in the `View` constructor using a dictionary of
|
|
88
89
|
* column name to aggregate function name.
|
|
89
90
|
*/
|
|
90
|
-
aggregates?: { [key in string]?: Aggregate }, group_by_depth?: number, filter_op?: FilterReducer, };
|
|
91
|
+
aggregates?: { [key in string]?: Aggregate }, group_by_depth?: number, filter_op?: FilterReducer, group_rollup_mode?: GroupRollupMode, };
|
package/tsconfig.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|