@perspective-dev/viewer 4.2.0 → 4.4.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/icons.css +1 -1
- package/dist/css/intl/de.css +1 -1
- package/dist/css/intl/es.css +1 -1
- package/dist/css/intl/fr.css +1 -1
- package/dist/css/intl/ja.css +1 -1
- package/dist/css/intl/pt.css +1 -1
- package/dist/css/intl/zh.css +1 -1
- package/dist/css/intl.css +1 -1
- package/dist/css/monokai.css +1 -1
- package/dist/css/pro-dark.css +1 -1
- package/dist/css/pro.css +1 -1
- package/dist/css/solarized-dark.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 +57 -53
- package/dist/wasm/perspective-viewer.js +197 -164
- package/dist/wasm/perspective-viewer.wasm +0 -0
- package/dist/wasm/perspective-viewer.wasm.d.ts +17 -18
- package/package.json +9 -6
- package/src/{less/aggregate-selector.less → css/aggregate-selector.css} +23 -20
- package/src/css/column-dropdown.css +109 -0
- package/src/{less/column-selector.less → css/column-selector.css} +161 -159
- package/src/{less/column-settings-panel.less → css/column-settings-panel.css} +69 -59
- package/src/{less/column-style.less → css/column-style.css} +52 -66
- package/src/{less/column-symbol-attributes.less → css/column-symbol-attributes.css} +15 -14
- package/src/css/config-selector.css +441 -0
- package/src/{less/containers/dropdown-menu.less → css/containers/dropdown-menu.css} +20 -19
- package/src/{less/containers/pairs-list.less → css/containers/pairs-list.css} +13 -12
- package/src/{themes/variables.less → css/containers/scroll-panel.css} +25 -22
- package/src/{less/containers/split-panel.less → css/containers/split-panel.css} +15 -14
- package/src/{less/containers/tabs.less → css/containers/tabs.css} +17 -19
- package/src/css/dom/checkbox.css +102 -0
- package/src/css/dom/scrollbar.css +35 -0
- package/src/{less/dom/select.less → css/dom/select.css} +17 -18
- package/src/{less/empty-column.less → css/empty-column.css} +19 -18
- package/src/{less/expression-editor.less → css/expression-editor.css} +19 -18
- package/src/{less/filter-dropdown.less → css/filter-dropdown.css} +12 -11
- package/src/{less/filter-item.less → css/filter-item.css} +16 -15
- package/src/{less/form/code-editor.less → css/form/code-editor.css} +26 -30
- package/src/{less/form/debug.less → css/form/debug.css} +19 -18
- package/src/{less/function-dropdown.less → css/function-dropdown.css} +12 -11
- package/src/css/plugin-selector.css +261 -0
- package/src/{less/render-warning.less → css/render-warning.css} +18 -17
- package/src/{less/status-bar.less → css/status-bar.css} +156 -144
- package/src/css/type-icon.css +116 -0
- package/src/{less/viewer.less → css/viewer.css} +112 -146
- package/src/rust/components/column_dropdown.rs +229 -119
- package/src/rust/components/column_selector/active_column.rs +81 -62
- package/src/rust/components/column_selector/add_expression_button.rs +1 -0
- package/src/rust/components/column_selector/aggregate_selector.rs +25 -15
- package/src/rust/components/column_selector/config_selector.rs +374 -185
- package/src/rust/components/column_selector/empty_column.rs +2 -2
- package/src/rust/components/column_selector/expr_edit_button.rs +8 -2
- package/src/rust/components/column_selector/filter_column.rs +37 -26
- package/src/rust/components/column_selector/inactive_column.rs +41 -29
- package/src/rust/components/column_selector/invalid_column.rs +7 -18
- package/src/rust/components/column_selector/pivot_column.rs +21 -10
- package/src/rust/components/column_selector/sort_column.rs +23 -13
- package/src/rust/components/column_selector.rs +189 -100
- package/src/rust/components/column_settings_sidebar/style_tab/symbol/row_selector.rs +1 -1
- package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_pairs.rs +3 -2
- package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_pairs_item.rs +3 -2
- package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_selector.rs +2 -3
- package/src/rust/components/column_settings_sidebar/style_tab/symbol.rs +7 -1
- package/src/rust/components/column_settings_sidebar/style_tab.rs +153 -112
- package/src/rust/components/column_settings_sidebar.rs +91 -53
- package/src/rust/components/containers/dragdrop_list.rs +29 -7
- package/src/rust/components/containers/scroll_panel.rs +8 -1
- package/src/rust/components/containers/select.rs +3 -3
- package/src/rust/components/containers/sidebar_close_button.rs +1 -1
- package/src/rust/components/containers/split_panel.rs +3 -2
- package/src/rust/components/containers/tab_list.rs +1 -1
- package/src/rust/components/copy_dropdown.rs +7 -28
- package/src/rust/components/datetime_column_style/custom.rs +2 -2
- package/src/rust/components/datetime_column_style/simple.rs +2 -2
- package/src/rust/components/datetime_column_style.rs +4 -2
- package/src/rust/components/editable_header.rs +7 -4
- package/src/rust/components/empty_row.rs +1 -1
- package/src/rust/components/export_dropdown.rs +4 -30
- package/src/rust/components/expression_editor.rs +19 -10
- package/src/rust/components/filter_dropdown.rs +246 -102
- package/src/rust/components/font_loader.rs +11 -28
- package/src/rust/components/form/code_editor.rs +17 -2
- package/src/rust/components/form/color_range_selector.rs +19 -6
- package/src/rust/components/form/debug.rs +30 -13
- package/src/rust/components/function_dropdown.rs +186 -113
- package/src/rust/components/main_panel.rs +71 -89
- package/src/rust/components/mod.rs +1 -1
- package/src/rust/components/modal.rs +7 -1
- package/src/rust/components/number_column_style.rs +22 -7
- package/src/rust/components/plugin_selector.rs +34 -92
- package/src/rust/components/portal.rs +274 -0
- package/src/rust/components/render_warning.rs +72 -123
- package/src/rust/components/settings_panel.rs +115 -11
- package/src/rust/components/status_bar.rs +222 -98
- package/src/rust/components/status_bar_counter.rs +8 -20
- package/src/rust/components/status_indicator.rs +64 -111
- package/src/rust/components/string_column_style.rs +2 -2
- package/src/rust/components/style/style_cache.rs +5 -1
- package/src/rust/components/viewer.rs +391 -39
- package/src/rust/custom_elements/copy_dropdown.rs +102 -21
- package/src/rust/custom_elements/export_dropdown.rs +102 -20
- package/src/rust/custom_elements/mod.rs +0 -7
- package/src/rust/custom_elements/modal.rs +7 -103
- package/src/rust/custom_elements/viewer.rs +99 -35
- package/src/rust/custom_events.rs +23 -2
- package/src/rust/dragdrop.rs +149 -10
- package/src/{less/containers/scroll-panel.less → rust/engines.rs} +15 -13
- package/src/rust/js/plugin.rs +20 -1
- package/src/rust/lib.rs +5 -4
- package/src/rust/presentation/props.rs +39 -0
- package/src/rust/presentation/sheets.rs +3 -3
- package/src/rust/presentation.rs +44 -8
- package/src/rust/renderer/limits.rs +32 -3
- package/src/{less/dom/scrollbar.less → rust/renderer/props.rs} +18 -19
- package/src/rust/renderer/registry.rs +8 -1
- package/src/rust/renderer.rs +83 -9
- package/src/rust/session/column_defaults_update.rs +18 -0
- package/src/rust/session/metadata.rs +23 -2
- package/src/rust/session/props.rs +178 -0
- package/src/rust/session/replace_expression_update.rs +1 -0
- package/src/rust/session.rs +124 -117
- package/src/rust/tasks/column_locator.rs +133 -0
- package/src/rust/{model → tasks}/columns_iter_set.rs +14 -23
- package/src/rust/{model → tasks}/edit_expression.rs +34 -10
- package/src/rust/{model → tasks}/eject.rs +2 -2
- package/src/rust/{model → tasks}/get_viewer_config.rs +0 -11
- package/src/rust/{model → tasks}/intersection_observer.rs +22 -4
- package/src/{less/containers/radio-list.less → rust/tasks/is_invalid_drop.rs} +21 -14
- package/src/rust/tasks/mod.rs +52 -0
- package/src/rust/{model → tasks}/plugin_column_styles.rs +69 -46
- package/src/rust/{model → tasks}/resize_observer.rs +39 -6
- package/src/rust/{model → tasks}/send_plugin_config.rs +1 -1
- package/src/rust/tasks/structural.rs +53 -0
- package/src/rust/utils/mod.rs +4 -0
- package/src/rust/utils/modal_position.rs +110 -0
- package/src/rust/utils/ptr_eq_rc.rs +74 -0
- package/src/rust/utils/pubsub.rs +11 -1
- package/src/svg/bg-pattern.png +0 -0
- package/src/svg/close-icon.svg +1 -1
- package/src/svg/expression.svg +1 -1
- package/src/svg/mega-menu-icons-candlestick.svg +1 -1
- package/src/svg/mega-menu-icons-datagrid.svg +1 -2
- package/src/svg/mega-menu-icons-heatmap.svg +1 -1
- package/src/svg/mega-menu-icons-map-scatter.svg +1 -1
- package/src/svg/mega-menu-icons-ohlc.svg +1 -1
- package/src/svg/mega-menu-icons-sunburst.svg +1 -1
- package/src/svg/mega-menu-icons-treemap.svg +1 -1
- package/src/svg/mega-menu-icons-x-bar.svg +1 -1
- package/src/svg/mega-menu-icons-x-y-line.svg +1 -1
- package/src/svg/mega-menu-icons-x-y-scatter.svg +1 -1
- package/src/svg/mega-menu-icons-y-area.svg +1 -1
- package/src/svg/mega-menu-icons-y-bar.svg +1 -1
- package/src/svg/mega-menu-icons-y-line.svg +1 -1
- package/src/svg/mega-menu-icons-y-scatter.svg +1 -1
- package/src/svg/radio-hover.svg +1 -1
- package/src/svg/radio-off.svg +1 -1
- package/src/svg/radio-on.svg +1 -1
- package/src/themes/botanical.css +157 -0
- package/src/themes/defaults.css +139 -0
- package/src/themes/dracula.css +233 -0
- package/src/themes/gruvbox-dark.css +255 -0
- package/src/themes/gruvbox.css +134 -0
- package/src/themes/icons.css +124 -0
- package/src/themes/intl/de.css +102 -0
- package/src/themes/intl/es.css +102 -0
- package/src/themes/intl/fr.css +102 -0
- package/src/themes/intl/ja.css +102 -0
- package/src/themes/intl/pt.css +102 -0
- package/src/themes/intl/zh.css +102 -0
- package/src/themes/intl.css +102 -0
- package/src/themes/monokai.css +233 -0
- package/src/themes/pro-dark.css +158 -0
- package/src/themes/{themes.less → pro.css} +17 -20
- package/src/themes/solarized-dark.css +135 -0
- package/src/themes/solarized.css +95 -0
- package/src/themes/themes.css +22 -0
- package/src/themes/vaporwave.css +256 -0
- 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/css/variables.css +0 -0
- package/src/less/column-dropdown.less +0 -95
- package/src/less/config-selector.less +0 -363
- package/src/less/dom/checkbox.less +0 -100
- package/src/less/plugin-selector.less +0 -183
- package/src/less/type-icon.less +0 -68
- package/src/rust/components/error_message.rs +0 -56
- package/src/rust/custom_elements/column_dropdown.rs +0 -123
- package/src/rust/custom_elements/filter_dropdown.rs +0 -179
- package/src/rust/custom_elements/function_dropdown.rs +0 -115
- package/src/rust/model/column_locator.rs +0 -82
- package/src/rust/model/is_invalid_drop.rs +0 -36
- package/src/rust/model/mod.rs +0 -100
- package/src/rust/model/reset_all.rs +0 -38
- package/src/rust/model/structural.rs +0 -244
- package/src/themes/dracula.less +0 -101
- package/src/themes/gruvbox-dark.less +0 -116
- package/src/themes/gruvbox.less +0 -152
- package/src/themes/icons.less +0 -130
- package/src/themes/intl/de.less +0 -102
- package/src/themes/intl/es.less +0 -102
- package/src/themes/intl/fr.less +0 -102
- package/src/themes/intl/ja.less +0 -102
- package/src/themes/intl/pt.less +0 -102
- package/src/themes/intl/zh.less +0 -102
- package/src/themes/intl.less +0 -102
- package/src/themes/monokai.less +0 -107
- package/src/themes/pro-dark.less +0 -147
- package/src/themes/pro.less +0 -186
- package/src/themes/solarized-dark.less +0 -78
- package/src/themes/solarized.less +0 -102
- package/src/themes/vaporwave.less +0 -145
- /package/dist/wasm/snippets/{perspective-viewer-1586156e058be573 → perspective-viewer-68fef752754ffbc6}/inline0.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-1586156e058be573 → perspective-viewer-68fef752754ffbc6}/inline1.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-1586156e058be573 → perspective-viewer-68fef752754ffbc6}/inline2.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-1586156e058be573 → perspective-viewer-68fef752754ffbc6}/inline3.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-1586156e058be573 → perspective-viewer-68fef752754ffbc6}/inline4.js +0 -0
- /package/src/rust/{model → tasks}/copy_export.rs +0 -0
- /package/src/rust/{model → tasks}/export_app.rs +0 -0
- /package/src/rust/{model → tasks}/export_method.rs +0 -0
- /package/src/rust/{model → tasks}/restore_and_render.rs +0 -0
- /package/src/rust/{model → tasks}/update_and_render.rs +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
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 "./pro.css";
|
|
14
|
+
@import "./pro-dark.css";
|
|
15
|
+
@import "./monokai.css";
|
|
16
|
+
@import "./solarized.css";
|
|
17
|
+
@import "./solarized-dark.css";
|
|
18
|
+
@import "./vaporwave.css";
|
|
19
|
+
@import "./gruvbox.css";
|
|
20
|
+
@import "./gruvbox-dark.css";
|
|
21
|
+
@import "./dracula.css";
|
|
22
|
+
@import "./botanical.css";
|
|
@@ -0,0 +1,256 @@
|
|
|
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 "./defaults.css";
|
|
14
|
+
|
|
15
|
+
perspective-viewer,
|
|
16
|
+
perspective-viewer[theme="Vaporwave"] {
|
|
17
|
+
--psp-theme-name: "Vaporwave";
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
perspective-viewer[theme="Vaporwave"] {
|
|
21
|
+
/* perspective-viewer-pro-dark--colors (overrides) */
|
|
22
|
+
background-color: #242526;
|
|
23
|
+
color: white;
|
|
24
|
+
--psp--color: white;
|
|
25
|
+
--psp-active--color: #2770a9;
|
|
26
|
+
--psp-error--color: #ff9485;
|
|
27
|
+
--psp-inactive--color: #61656e;
|
|
28
|
+
--psp-inactive--border-color: #4c505b;
|
|
29
|
+
--psp--background-color: #242526;
|
|
30
|
+
--psp-active--background: rgba(39, 113, 170, 0.5);
|
|
31
|
+
--psp-expression--operator--color: #c5c9d0;
|
|
32
|
+
--psp-expression--function--color: #22a0ce;
|
|
33
|
+
--psp-expression--psp-error--color: rgb(255, 136, 136);
|
|
34
|
+
--psp-calendar--filter: invert(1);
|
|
35
|
+
--psp-warning--color: #242526;
|
|
36
|
+
--psp-warning--background: var(--psp--color);
|
|
37
|
+
|
|
38
|
+
--psp-icon--select-arrow--mask-image: var(
|
|
39
|
+
--psp-icon--select-arrow-light--mask-image
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
--psp-icon--select-arrow-hover--mask-image: var(
|
|
43
|
+
--psp-icon--select-arrow-dark--mask-image
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
--psp-code-editor--symbol--color: white;
|
|
47
|
+
--psp-code-editor--literal--color: #7dc3f0;
|
|
48
|
+
--psp-code-editor--operator--color: rgb(23, 166, 123);
|
|
49
|
+
--psp-code-editor--comment--color: rgb(204, 120, 48);
|
|
50
|
+
--psp-code-editor--column--color: #e18ee1;
|
|
51
|
+
|
|
52
|
+
/* perspective-viewer-pro-dark--datagrid */
|
|
53
|
+
--psp-datagrid--pos-cell--color: #7dc3f0;
|
|
54
|
+
--psp-datagrid--neg-cell--color: #ff9485;
|
|
55
|
+
|
|
56
|
+
/* perspective-viewer-pro-dark--d3fc (overrides) */
|
|
57
|
+
--psp-d3fc--legend--color: #c5c9d0;
|
|
58
|
+
--psp-d3fc--treemap--labels: white;
|
|
59
|
+
--psp-d3fc--treemap--hover-highlight: white;
|
|
60
|
+
--psp-d3fc--tooltip--color: white;
|
|
61
|
+
--psp-d3fc--axis-ticks--color: #c5c9d0;
|
|
62
|
+
--psp-d3fc--axis-lines--color: #61656e;
|
|
63
|
+
--psp-d3fc--gridline--color: #3b3f46;
|
|
64
|
+
--psp-d3fc--tooltip--background: rgba(42, 44, 47, 1);
|
|
65
|
+
--psp-d3fc--tooltip--border-color: #242526;
|
|
66
|
+
--psp-d3fc--legend--background: var(--psp--background-color);
|
|
67
|
+
--psp-d3fc--series--color: rgb(71, 120, 194);
|
|
68
|
+
--psp-d3fc--series-1--color: rgb(71, 120, 194);
|
|
69
|
+
--psp-d3fc--series-2--color: rgb(204, 120, 48);
|
|
70
|
+
--psp-d3fc--series-3--color: rgb(158, 84, 192);
|
|
71
|
+
--psp-d3fc--series-4--color: rgb(51, 150, 153);
|
|
72
|
+
--psp-d3fc--series-5--color: rgb(102, 114, 143);
|
|
73
|
+
--psp-d3fc--series-6--color: rgb(211, 103, 189);
|
|
74
|
+
--psp-d3fc--series-7--color: rgb(109, 124, 77);
|
|
75
|
+
--psp-d3fc--series-8--color: rgb(221, 99, 103);
|
|
76
|
+
--psp-d3fc--series-9--color: rgb(120, 104, 206);
|
|
77
|
+
--psp-d3fc--series-10--color: rgb(23, 166, 123);
|
|
78
|
+
--psp-d3fc--full-gradient--background: linear-gradient(
|
|
79
|
+
#dd6367 0%,
|
|
80
|
+
#242526 50%,
|
|
81
|
+
#3289c8 100%
|
|
82
|
+
);
|
|
83
|
+
--psp-d3fc--pos-gradient--background: linear-gradient(
|
|
84
|
+
#242526 0%,
|
|
85
|
+
#3289c8 100%
|
|
86
|
+
);
|
|
87
|
+
--psp-d3fc--neg-gradient--background: linear-gradient(
|
|
88
|
+
#dd6367 0%,
|
|
89
|
+
#242526 100%
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
/* perspective-viewer-pro-dark--openlayers (overrides) */
|
|
93
|
+
--psp-openlayers--tile-url: "http://{a-c}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png";
|
|
94
|
+
--psp-openlayers--attribution--filter: invert(1) hue-rotate(180deg);
|
|
95
|
+
--psp-openlayers--element--background: #212c2f;
|
|
96
|
+
--psp-openlayers--category-1--color: rgb(71, 120, 194);
|
|
97
|
+
--psp-openlayers--category-2--color: rgb(204, 120, 48);
|
|
98
|
+
--psp-openlayers--category-3--color: rgb(158, 84, 192);
|
|
99
|
+
--psp-openlayers--category-4--color: rgb(51, 150, 153);
|
|
100
|
+
--psp-openlayers--category-5--color: rgb(102, 114, 143);
|
|
101
|
+
--psp-openlayers--category-6--color: rgb(211, 103, 189);
|
|
102
|
+
--psp-openlayers--category-7--color: rgb(109, 124, 77);
|
|
103
|
+
--psp-openlayers--category-8--color: rgb(221, 99, 103);
|
|
104
|
+
--psp-openlayers--category-9--color: rgb(120, 104, 206);
|
|
105
|
+
--psp-openlayers--category-10--color: rgb(23, 166, 123);
|
|
106
|
+
--psp-openlayers--gradient--background: linear-gradient(
|
|
107
|
+
#dd6367 0%,
|
|
108
|
+
#242526 50%,
|
|
109
|
+
#3289c8 100%
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
/* perspective-viewer-vaporwave--colors */
|
|
113
|
+
color: #49acff;
|
|
114
|
+
background-color: rgb(7, 8, 29) !important;
|
|
115
|
+
--psp--color: #49acff;
|
|
116
|
+
--psp-inactive--color: rgb(19, 33, 50) !important;
|
|
117
|
+
--psp-inactive--border-color: var(--psp-inactive--color);
|
|
118
|
+
--psp--background-color: rgb(7, 8, 29) !important;
|
|
119
|
+
|
|
120
|
+
/* perspective-viewer-vaporwave--animation */
|
|
121
|
+
--psp-status-icon--updating-keyframes-start--filter: opacity(1);
|
|
122
|
+
--psp-status-icon--updating-keyframes-end--filter: opacity(0);
|
|
123
|
+
--psp-status-icon--updating-keyframes-start--transform: scale(1);
|
|
124
|
+
--psp-status-icon--updating-keyframes-end--transform: scale(0.5);
|
|
125
|
+
--psp-status-icon--keyframes-start--transform: scale(1.25);
|
|
126
|
+
--psp-status-icon--keyframes-end--transform: scale(1);
|
|
127
|
+
|
|
128
|
+
/* perspective-viewer-vaporwave--datagrid */
|
|
129
|
+
--pp-color-1: #092132;
|
|
130
|
+
--pp-color-2: #42b6e6;
|
|
131
|
+
--psp-datagrid--pos-cell--color: #42b6e6 !important;
|
|
132
|
+
--psp-datagrid--hover--border-color: var(--pp-color-1) !important;
|
|
133
|
+
|
|
134
|
+
/* FIXME: broken in shadow DOM */
|
|
135
|
+
regular-table table tbody th:empty {
|
|
136
|
+
background: linear-gradient(
|
|
137
|
+
to right,
|
|
138
|
+
transparent 9px,
|
|
139
|
+
rgb(19, 33, 50) 10px,
|
|
140
|
+
transparent 11px
|
|
141
|
+
);
|
|
142
|
+
background-repeat: no-repeat;
|
|
143
|
+
background-position: 0px -10px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* perspective-viewer-vaporwave--d3fc */
|
|
147
|
+
--psp-d3fc--axis-ticks--color: #49acff;
|
|
148
|
+
--psp-d3fc--gridline--color: rgb(19, 33, 50);
|
|
149
|
+
--psp-d3fc--series--color: #01cdfe;
|
|
150
|
+
--psp-d3fc--series-1--color: #01cdfe;
|
|
151
|
+
--psp-d3fc--series-2--color: #ff71ce;
|
|
152
|
+
--psp-d3fc--series-3--color: #05ffa1;
|
|
153
|
+
--psp-d3fc--series-4--color: #b967ff;
|
|
154
|
+
--psp-d3fc--series-5--color: #fffb96;
|
|
155
|
+
|
|
156
|
+
--psp-d3fc--series-6--color: hsl(192, 99%, 25%);
|
|
157
|
+
--psp-d3fc--series-7--color: hsl(321, 100%, 36%);
|
|
158
|
+
--psp-d3fc--series-8--color: hsl(192, 99%, 25%);
|
|
159
|
+
--psp-d3fc--series-9--color: hsl(157, 100%, 25%);
|
|
160
|
+
--psp-d3fc--series-10--color: hsl(272, 100%, 35%);
|
|
161
|
+
|
|
162
|
+
--psp-d3fc--neg-gradient--background: linear-gradient(
|
|
163
|
+
#f3d431,
|
|
164
|
+
#efb92d,
|
|
165
|
+
#ed9c25,
|
|
166
|
+
#eb7e20,
|
|
167
|
+
#e75d1e,
|
|
168
|
+
#d14632,
|
|
169
|
+
#b03e38,
|
|
170
|
+
#8c3a36,
|
|
171
|
+
#643633,
|
|
172
|
+
#07081d
|
|
173
|
+
) !important;
|
|
174
|
+
|
|
175
|
+
--psp-d3fc--pos-gradient--background: linear-gradient(
|
|
176
|
+
#07081d,
|
|
177
|
+
#2e4463,
|
|
178
|
+
#1e588a,
|
|
179
|
+
#086da7,
|
|
180
|
+
#0082b9,
|
|
181
|
+
#039ac7,
|
|
182
|
+
#12b1d4,
|
|
183
|
+
#2bc8e2,
|
|
184
|
+
#3ddff0,
|
|
185
|
+
#61f4fb
|
|
186
|
+
) !important;
|
|
187
|
+
|
|
188
|
+
--psp-d3fc--full-gradient--background: linear-gradient(
|
|
189
|
+
#f3d431,
|
|
190
|
+
#efb92d,
|
|
191
|
+
#ed9c25,
|
|
192
|
+
#eb7e20,
|
|
193
|
+
#e75d1e,
|
|
194
|
+
#d14632,
|
|
195
|
+
#b03e38,
|
|
196
|
+
#8c3a36,
|
|
197
|
+
#643633,
|
|
198
|
+
#07081d,
|
|
199
|
+
#2e4463,
|
|
200
|
+
#1e588a,
|
|
201
|
+
#086da7,
|
|
202
|
+
#0082b9,
|
|
203
|
+
#039ac7,
|
|
204
|
+
#12b1d4,
|
|
205
|
+
#2bc8e2,
|
|
206
|
+
#3ddff0,
|
|
207
|
+
#61f4fb
|
|
208
|
+
) !important;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
perspective-copy-menu[theme="Vaporwave"],
|
|
212
|
+
perspective-export-menu[theme="Vaporwave"],
|
|
213
|
+
perspective-dropdown[theme="Vaporwave"],
|
|
214
|
+
perspective-date-column-style[theme="Vaporwave"],
|
|
215
|
+
perspective-datetime-column-style[theme="Vaporwave"],
|
|
216
|
+
perspective-number-column-style[theme="Vaporwave"],
|
|
217
|
+
perspective-string-column-style[theme="Vaporwave"] {
|
|
218
|
+
/* perspective-viewer-pro-dark--colors (overrides) */
|
|
219
|
+
background-color: #242526;
|
|
220
|
+
color: white;
|
|
221
|
+
--psp--color: white;
|
|
222
|
+
--psp-active--color: #2770a9;
|
|
223
|
+
--psp-error--color: #ff9485;
|
|
224
|
+
--psp-inactive--color: #61656e;
|
|
225
|
+
--psp-inactive--border-color: #4c505b;
|
|
226
|
+
--psp--background-color: #242526;
|
|
227
|
+
--psp-active--background: rgba(39, 113, 170, 0.5);
|
|
228
|
+
--psp-expression--operator--color: #c5c9d0;
|
|
229
|
+
--psp-expression--function--color: #22a0ce;
|
|
230
|
+
--psp-expression--psp-error--color: rgb(255, 136, 136);
|
|
231
|
+
--psp-calendar--filter: invert(1);
|
|
232
|
+
--psp-warning--color: #242526;
|
|
233
|
+
--psp-warning--background: var(--psp--color);
|
|
234
|
+
--psp-icon--select-arrow--mask-image: var(
|
|
235
|
+
--psp-icon--select-arrow-light--mask-image
|
|
236
|
+
);
|
|
237
|
+
--psp-icon--select-arrow-hover--mask-image: var(
|
|
238
|
+
--psp-icon--select-arrow-dark--mask-image
|
|
239
|
+
);
|
|
240
|
+
--psp-code-editor--symbol--color: white;
|
|
241
|
+
--psp-code-editor--literal--color: #7dc3f0;
|
|
242
|
+
--psp-code-editor--operator--color: rgb(23, 166, 123);
|
|
243
|
+
--psp-code-editor--comment--color: rgb(204, 120, 48);
|
|
244
|
+
--psp-code-editor--column--color: #e18ee1;
|
|
245
|
+
|
|
246
|
+
border: 1px solid #4c505b;
|
|
247
|
+
|
|
248
|
+
/* perspective-viewer-vaporwave--colors */
|
|
249
|
+
color: #49acff;
|
|
250
|
+
--psp--color: #49acff;
|
|
251
|
+
--psp-inactive--color: rgb(19, 33, 50) !important;
|
|
252
|
+
--psp-inactive--border-color: var(--psp-inactive--color);
|
|
253
|
+
--psp--background-color: rgb(7, 8, 29) !important;
|
|
254
|
+
|
|
255
|
+
background-color: #07081d;
|
|
256
|
+
}
|
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
package/dist/css/variables.css
DELETED
|
File without changes
|
|
@@ -1,95 +0,0 @@
|
|
|
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 "dom/scrollbar.less";
|
|
14
|
-
|
|
15
|
-
@mixin icon {
|
|
16
|
-
background-repeat: no-repeat;
|
|
17
|
-
background-color: var(--icon--color);
|
|
18
|
-
content: "";
|
|
19
|
-
display: inline-block;
|
|
20
|
-
-webkit-mask-size: cover;
|
|
21
|
-
mask-size: cover;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
:host {
|
|
25
|
-
box-sizing: border-box;
|
|
26
|
-
position: fixed;
|
|
27
|
-
z-index: 10000;
|
|
28
|
-
outline: none;
|
|
29
|
-
font-size: 0.75em;
|
|
30
|
-
border: inherit;
|
|
31
|
-
// box-shadow: 0 2px 4px 0 rgb(0 0 0 / 10%);
|
|
32
|
-
user-select: none;
|
|
33
|
-
background-color: var(--icon--color, #fff) !important;
|
|
34
|
-
color: var(--plugin--background, #333) !important;
|
|
35
|
-
// padding: 6px 8px;
|
|
36
|
-
border: 1px solid var(--icon--color) !important;
|
|
37
|
-
max-width: 300px;
|
|
38
|
-
overflow: hidden;
|
|
39
|
-
max-height: 600px;
|
|
40
|
-
overflow: auto;
|
|
41
|
-
@include scrollbar;
|
|
42
|
-
|
|
43
|
-
display: flex;
|
|
44
|
-
flex-direction: column;
|
|
45
|
-
|
|
46
|
-
.selected {
|
|
47
|
-
background-color: var(--plugin--background) !important;
|
|
48
|
-
color: var(--icon--color) !important;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
span {
|
|
52
|
-
cursor: pointer;
|
|
53
|
-
padding: 4px 5px;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.no-results {
|
|
57
|
-
padding: 3px 24px 6px 11px;
|
|
58
|
-
color: var(--error--color);
|
|
59
|
-
font-size: 8px;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.no-results:before {
|
|
63
|
-
content: var(--no-results--content, "Invalid Column");
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
#add-expression {
|
|
67
|
-
&:before {
|
|
68
|
-
@include icon;
|
|
69
|
-
width: 14px;
|
|
70
|
-
height: 12px;
|
|
71
|
-
margin-right: 5px;
|
|
72
|
-
-webkit-mask-image: var(--add-expression-icon--mask-image);
|
|
73
|
-
mask-image: var(--add-expression-icon--mask-image);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
:host(:hover) {
|
|
79
|
-
.selected {
|
|
80
|
-
background-color: var(--icon--color, #fff) !important;
|
|
81
|
-
color: var(--plugin--background, #333) !important;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
span:hover,
|
|
85
|
-
span.selected:hover {
|
|
86
|
-
background-color: var(--plugin--background) !important;
|
|
87
|
-
color: var(--icon--color) !important;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
:host(.no-results) {
|
|
92
|
-
overflow: hidden;
|
|
93
|
-
background-color: transparent !important;
|
|
94
|
-
border: none !important;
|
|
95
|
-
}
|