@perspective-dev/viewer 4.3.0 → 4.4.1

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.
Files changed (243) hide show
  1. package/dist/cdn/perspective-viewer.js +2 -2
  2. package/dist/cdn/perspective-viewer.js.map +4 -4
  3. package/dist/css/botanical.css +1 -1
  4. package/dist/css/dracula.css +1 -1
  5. package/dist/css/gruvbox-dark.css +1 -1
  6. package/dist/css/gruvbox.css +1 -1
  7. package/dist/css/icons.css +1 -1
  8. package/dist/css/intl/de.css +1 -1
  9. package/dist/css/intl/es.css +1 -1
  10. package/dist/css/intl/fr.css +1 -1
  11. package/dist/css/intl/ja.css +1 -1
  12. package/dist/css/intl/pt.css +1 -1
  13. package/dist/css/intl/zh.css +1 -1
  14. package/dist/css/intl.css +1 -1
  15. package/dist/css/monokai.css +1 -1
  16. package/dist/css/phosphor.css +1 -0
  17. package/dist/css/pro-dark.css +1 -1
  18. package/dist/css/pro.css +1 -1
  19. package/dist/css/solarized-dark.css +1 -1
  20. package/dist/css/solarized.css +1 -1
  21. package/dist/css/themes.css +1 -1
  22. package/dist/css/vaporwave.css +1 -1
  23. package/dist/esm/extensions.d.ts +4 -0
  24. package/dist/esm/perspective-viewer.d.ts +1 -0
  25. package/dist/esm/perspective-viewer.inline.js +2 -2
  26. package/dist/esm/perspective-viewer.inline.js.map +4 -4
  27. package/dist/esm/perspective-viewer.js +2 -2
  28. package/dist/esm/perspective-viewer.js.map +4 -4
  29. package/dist/esm/plugin.d.ts +9 -9
  30. package/dist/esm/ts-rs/NumberForegroundMode.d.ts +1 -1
  31. package/dist/esm/ts-rs/ViewerConfig.d.ts +36 -0
  32. package/dist/wasm/perspective-viewer.d.ts +68 -59
  33. package/dist/wasm/perspective-viewer.js +216 -171
  34. package/dist/wasm/perspective-viewer.wasm +0 -0
  35. package/dist/wasm/perspective-viewer.wasm.d.ts +19 -20
  36. package/package.json +7 -5
  37. package/src/{less/aggregate-selector.less → css/aggregate-selector.css} +23 -20
  38. package/src/css/column-dropdown.css +109 -0
  39. package/src/{less/column-selector.less → css/column-selector.css} +160 -158
  40. package/src/{less/column-settings-panel.less → css/column-settings-panel.css} +70 -59
  41. package/src/{less/column-style.less → css/column-style.css} +52 -66
  42. package/src/{less/column-symbol-attributes.less → css/column-symbol-attributes.css} +15 -14
  43. package/src/{less/config-selector.less → css/config-selector.css} +151 -135
  44. package/src/{less/containers/dropdown-menu.less → css/containers/dropdown-menu.css} +20 -19
  45. package/src/{less/containers/pairs-list.less → css/containers/pairs-list.css} +13 -12
  46. package/src/{themes/variables.less → css/containers/scroll-panel.css} +25 -22
  47. package/src/{less/containers/split-panel.less → css/containers/split-panel.css} +15 -14
  48. package/src/{less/containers/tabs.less → css/containers/tabs.css} +17 -19
  49. package/src/css/dom/checkbox.css +102 -0
  50. package/src/css/dom/scrollbar.css +35 -0
  51. package/src/{less/dom/select.less → css/dom/select.css} +17 -18
  52. package/src/{less/empty-column.less → css/empty-column.css} +19 -18
  53. package/src/{less/expression-editor.less → css/expression-editor.css} +19 -18
  54. package/src/{less/filter-dropdown.less → css/filter-dropdown.css} +12 -11
  55. package/src/{less/filter-item.less → css/filter-item.css} +16 -15
  56. package/src/{less/form/code-editor.less → css/form/code-editor.css} +26 -30
  57. package/src/{less/form/debug.less → css/form/debug.css} +19 -18
  58. package/src/{less/function-dropdown.less → css/function-dropdown.css} +12 -11
  59. package/src/css/plugin-selector.css +261 -0
  60. package/src/{less/render-warning.less → css/render-warning.css} +18 -17
  61. package/src/{less/status-bar.less → css/status-bar.css} +157 -145
  62. package/src/css/type-icon.css +116 -0
  63. package/src/{less/viewer.less → css/viewer.css} +112 -146
  64. package/src/rust/components/column_dropdown.rs +229 -119
  65. package/src/rust/components/column_selector/active_column.rs +81 -62
  66. package/src/rust/components/column_selector/add_expression_button.rs +1 -0
  67. package/src/rust/components/column_selector/aggregate_selector.rs +25 -15
  68. package/src/rust/components/column_selector/config_selector.rs +315 -199
  69. package/src/rust/components/column_selector/empty_column.rs +2 -2
  70. package/src/rust/components/column_selector/expr_edit_button.rs +8 -2
  71. package/src/rust/components/column_selector/filter_column.rs +37 -26
  72. package/src/rust/components/column_selector/inactive_column.rs +41 -29
  73. package/src/rust/components/column_selector/invalid_column.rs +7 -18
  74. package/src/rust/components/column_selector/pivot_column.rs +11 -5
  75. package/src/rust/components/column_selector/sort_column.rs +23 -13
  76. package/src/rust/components/column_selector.rs +163 -84
  77. package/src/rust/components/column_settings_sidebar/style_tab/symbol/row_selector.rs +1 -1
  78. package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_pairs.rs +3 -2
  79. package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_pairs_item.rs +3 -2
  80. package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_selector.rs +2 -3
  81. package/src/rust/components/column_settings_sidebar/style_tab/symbol.rs +7 -1
  82. package/src/rust/components/column_settings_sidebar/style_tab.rs +153 -112
  83. package/src/rust/components/column_settings_sidebar.rs +91 -53
  84. package/src/rust/components/containers/dragdrop_list.rs +2 -1
  85. package/src/rust/components/containers/sidebar_close_button.rs +1 -1
  86. package/src/rust/components/containers/split_panel.rs +1 -0
  87. package/src/rust/components/containers/tab_list.rs +1 -1
  88. package/src/rust/components/copy_dropdown.rs +7 -28
  89. package/src/rust/components/datetime_column_style/custom.rs +2 -2
  90. package/src/rust/components/datetime_column_style/simple.rs +2 -2
  91. package/src/rust/components/datetime_column_style.rs +4 -2
  92. package/src/rust/components/editable_header.rs +7 -4
  93. package/src/rust/components/empty_row.rs +1 -1
  94. package/src/rust/components/export_dropdown.rs +4 -30
  95. package/src/rust/components/expression_editor.rs +19 -10
  96. package/src/rust/components/filter_dropdown.rs +246 -102
  97. package/src/rust/components/font_loader.rs +11 -28
  98. package/src/rust/components/form/code_editor.rs +17 -2
  99. package/src/rust/components/form/color_range_selector.rs +19 -6
  100. package/src/rust/components/form/debug.rs +30 -13
  101. package/src/rust/components/function_dropdown.rs +186 -113
  102. package/src/rust/components/main_panel.rs +71 -89
  103. package/src/rust/components/mod.rs +1 -1
  104. package/src/rust/components/modal.rs +7 -1
  105. package/src/rust/components/number_column_style.rs +30 -7
  106. package/src/rust/components/plugin_selector.rs +34 -102
  107. package/src/rust/components/portal.rs +274 -0
  108. package/src/rust/components/render_warning.rs +72 -123
  109. package/src/rust/components/settings_panel.rs +115 -11
  110. package/src/rust/components/status_bar.rs +222 -98
  111. package/src/rust/components/status_bar_counter.rs +8 -20
  112. package/src/rust/components/status_indicator.rs +64 -114
  113. package/src/rust/components/string_column_style.rs +2 -2
  114. package/src/rust/components/style/style_cache.rs +5 -1
  115. package/src/rust/components/viewer.rs +391 -40
  116. package/src/rust/config/number_column_style.rs +5 -1
  117. package/src/rust/config/viewer_config.rs +2 -2
  118. package/src/rust/custom_elements/copy_dropdown.rs +102 -21
  119. package/src/rust/custom_elements/debug_plugin.rs +4 -4
  120. package/src/rust/custom_elements/export_dropdown.rs +102 -20
  121. package/src/rust/custom_elements/mod.rs +0 -7
  122. package/src/rust/custom_elements/modal.rs +7 -103
  123. package/src/rust/custom_elements/viewer.rs +114 -39
  124. package/src/rust/custom_events.rs +23 -2
  125. package/src/rust/dragdrop.rs +149 -10
  126. package/src/{less/containers/scroll-panel.less → rust/engines.rs} +15 -13
  127. package/src/rust/js/plugin.rs +1 -1
  128. package/src/rust/lib.rs +10 -4
  129. package/src/rust/presentation/props.rs +39 -0
  130. package/src/rust/presentation/sheets.rs +3 -3
  131. package/src/rust/presentation.rs +44 -8
  132. package/src/rust/renderer/limits.rs +32 -3
  133. package/src/{less/dom/scrollbar.less → rust/renderer/props.rs} +18 -19
  134. package/src/rust/renderer.rs +93 -14
  135. package/src/rust/session/column_defaults_update.rs +1 -1
  136. package/src/rust/session/metadata.rs +23 -2
  137. package/src/rust/session/props.rs +178 -0
  138. package/src/rust/session.rs +124 -117
  139. package/src/rust/tasks/column_locator.rs +133 -0
  140. package/src/rust/{model → tasks}/columns_iter_set.rs +14 -23
  141. package/src/rust/{model → tasks}/edit_expression.rs +34 -10
  142. package/src/rust/{model → tasks}/eject.rs +2 -2
  143. package/src/rust/{model → tasks}/get_viewer_config.rs +0 -11
  144. package/src/rust/{model → tasks}/intersection_observer.rs +19 -3
  145. package/src/{less/containers/radio-list.less → rust/tasks/is_invalid_drop.rs} +21 -14
  146. package/src/rust/tasks/mod.rs +52 -0
  147. package/src/rust/{model → tasks}/plugin_column_styles.rs +69 -46
  148. package/src/rust/{model → tasks}/resize_observer.rs +39 -6
  149. package/src/rust/{model → tasks}/restore_and_render.rs +4 -3
  150. package/src/rust/{model → tasks}/send_plugin_config.rs +1 -1
  151. package/src/rust/tasks/structural.rs +53 -0
  152. package/src/rust/utils/mod.rs +4 -0
  153. package/src/rust/utils/modal_position.rs +110 -0
  154. package/src/rust/utils/ptr_eq_rc.rs +74 -0
  155. package/src/rust/utils/pubsub.rs +11 -1
  156. package/src/svg/bg-pattern.png +0 -0
  157. package/src/svg/close-icon.svg +1 -1
  158. package/src/svg/datagrid-select-row-tree.svg +13 -0
  159. package/src/svg/expression.svg +1 -1
  160. package/src/svg/mega-menu-icons-candlestick.svg +1 -1
  161. package/src/svg/mega-menu-icons-datagrid.svg +1 -2
  162. package/src/svg/mega-menu-icons-heatmap.svg +1 -1
  163. package/src/svg/mega-menu-icons-map-scatter.svg +1 -1
  164. package/src/svg/mega-menu-icons-ohlc.svg +1 -1
  165. package/src/svg/mega-menu-icons-sunburst.svg +1 -1
  166. package/src/svg/mega-menu-icons-treemap.svg +1 -1
  167. package/src/svg/mega-menu-icons-x-bar.svg +1 -1
  168. package/src/svg/mega-menu-icons-x-y-line.svg +1 -1
  169. package/src/svg/mega-menu-icons-x-y-scatter.svg +1 -1
  170. package/src/svg/mega-menu-icons-y-area.svg +1 -1
  171. package/src/svg/mega-menu-icons-y-bar.svg +1 -1
  172. package/src/svg/mega-menu-icons-y-line.svg +1 -1
  173. package/src/svg/mega-menu-icons-y-scatter.svg +1 -1
  174. package/src/svg/radio-hover.svg +1 -1
  175. package/src/svg/radio-off.svg +1 -1
  176. package/src/svg/radio-on.svg +1 -1
  177. package/src/themes/botanical.css +157 -0
  178. package/src/themes/defaults.css +157 -0
  179. package/src/themes/dracula.css +233 -0
  180. package/src/themes/gruvbox-dark.css +255 -0
  181. package/src/themes/gruvbox.css +134 -0
  182. package/src/themes/icons.css +107 -0
  183. package/src/themes/intl/de.css +102 -0
  184. package/src/themes/intl/es.css +102 -0
  185. package/src/themes/intl/fr.css +102 -0
  186. package/src/themes/intl/ja.css +102 -0
  187. package/src/themes/intl/pt.css +102 -0
  188. package/src/themes/intl/zh.css +102 -0
  189. package/src/themes/intl.css +102 -0
  190. package/src/themes/monokai.css +233 -0
  191. package/src/themes/phosphor.css +184 -0
  192. package/src/themes/pro-dark.css +158 -0
  193. package/src/themes/{themes.less → pro.css} +17 -21
  194. package/src/themes/solarized-dark.css +135 -0
  195. package/src/themes/solarized.css +95 -0
  196. package/src/themes/themes.css +23 -0
  197. package/src/themes/vaporwave.css +256 -0
  198. package/src/ts/extensions.ts +8 -1
  199. package/src/ts/perspective-viewer.ts +1 -0
  200. package/src/ts/plugin.ts +9 -9
  201. package/src/ts/ts-rs/NumberForegroundMode.ts +1 -1
  202. package/src/ts/ts-rs/ViewerConfig.ts +15 -0
  203. package/dist/css/variables.css +0 -0
  204. package/src/less/column-dropdown.less +0 -95
  205. package/src/less/dom/checkbox.less +0 -100
  206. package/src/less/plugin-selector.less +0 -183
  207. package/src/less/type-icon.less +0 -68
  208. package/src/rust/components/error_message.rs +0 -56
  209. package/src/rust/custom_elements/column_dropdown.rs +0 -123
  210. package/src/rust/custom_elements/filter_dropdown.rs +0 -179
  211. package/src/rust/custom_elements/function_dropdown.rs +0 -115
  212. package/src/rust/model/column_locator.rs +0 -82
  213. package/src/rust/model/is_invalid_drop.rs +0 -36
  214. package/src/rust/model/mod.rs +0 -100
  215. package/src/rust/model/reset_all.rs +0 -38
  216. package/src/rust/model/structural.rs +0 -244
  217. package/src/themes/botanical.less +0 -142
  218. package/src/themes/dracula.less +0 -101
  219. package/src/themes/gruvbox-dark.less +0 -116
  220. package/src/themes/gruvbox.less +0 -152
  221. package/src/themes/icons.less +0 -130
  222. package/src/themes/intl/de.less +0 -102
  223. package/src/themes/intl/es.less +0 -102
  224. package/src/themes/intl/fr.less +0 -102
  225. package/src/themes/intl/ja.less +0 -102
  226. package/src/themes/intl/pt.less +0 -102
  227. package/src/themes/intl/zh.less +0 -102
  228. package/src/themes/intl.less +0 -102
  229. package/src/themes/monokai.less +0 -107
  230. package/src/themes/pro-dark.less +0 -147
  231. package/src/themes/pro.less +0 -186
  232. package/src/themes/solarized-dark.less +0 -78
  233. package/src/themes/solarized.less +0 -102
  234. package/src/themes/vaporwave.less +0 -145
  235. /package/dist/wasm/snippets/{perspective-viewer-d729f682ba5c19df → perspective-viewer-d924246f0b4a3dce}/inline0.js +0 -0
  236. /package/dist/wasm/snippets/{perspective-viewer-d729f682ba5c19df → perspective-viewer-d924246f0b4a3dce}/inline1.js +0 -0
  237. /package/dist/wasm/snippets/{perspective-viewer-d729f682ba5c19df → perspective-viewer-d924246f0b4a3dce}/inline2.js +0 -0
  238. /package/dist/wasm/snippets/{perspective-viewer-d729f682ba5c19df → perspective-viewer-d924246f0b4a3dce}/inline3.js +0 -0
  239. /package/dist/wasm/snippets/{perspective-viewer-d729f682ba5c19df → perspective-viewer-d924246f0b4a3dce}/inline4.js +0 -0
  240. /package/src/rust/{model → tasks}/copy_export.rs +0 -0
  241. /package/src/rust/{model → tasks}/export_app.rs +0 -0
  242. /package/src/rust/{model → tasks}/export_method.rs +0 -0
  243. /package/src/rust/{model → tasks}/update_and_render.rs +0 -0
@@ -132,12 +132,12 @@ export interface IPerspectiveViewerPlugin {
132
132
  * Like `update()`, but for when the dimensions of the plugin have changed
133
133
  * and the underlying data has not.
134
134
  */
135
- resize(): Promise<void>;
135
+ resize(view: View): Promise<void>;
136
136
  /**
137
137
  * Notify the plugin that the style environment has changed. Useful for
138
138
  * plugins which read CSS styles via `window.getComputedStyle()`.
139
139
  */
140
- restyle(): Promise<void>;
140
+ restyle(view: View): Promise<void>;
141
141
  /**
142
142
  * Save this plugin's state to a JSON-serializable value. While this value
143
143
  * can be anything, it should work reciprocally with `restore()` to return
@@ -149,15 +149,15 @@ export interface IPerspectiveViewerPlugin {
149
149
  * reload. For example, `@perspective-dev/viewer-d3fc` uses
150
150
  * `plugin_config` to remember the user-repositionable legend coordinates.
151
151
  */
152
- save(): Promise<any>;
152
+ save(): any;
153
153
  /**
154
154
  * Restore this plugin to a state previously returned by `save()`.
155
155
  */
156
- restore(config: any): Promise<void>;
156
+ restore(config: any): void;
157
157
  /**
158
158
  * Free any resources acquired by this plugin and prepare to be deleted.
159
159
  */
160
- delete(): Promise<void>;
160
+ delete(): void;
161
161
  }
162
162
  /**
163
163
  * The `<perspective-viewer-plugin>` element, the default perspective plugin
@@ -187,9 +187,9 @@ export declare class HTMLPerspectiveViewerPluginElement extends HTMLElement impl
187
187
  update(view: View): Promise<void>;
188
188
  draw(view: View): Promise<void>;
189
189
  clear(): Promise<void>;
190
- resize(): Promise<void>;
191
- restyle(): Promise<void>;
192
- save(): Promise<any>;
193
- restore(): Promise<void>;
190
+ resize(view: View): Promise<void>;
191
+ restyle(view: View): Promise<void>;
192
+ save(): any;
193
+ restore(): void;
194
194
  delete(): Promise<void>;
195
195
  }
@@ -1 +1 @@
1
- export type NumberForegroundMode = "disabled" | "color" | "bar";
1
+ export type NumberForegroundMode = "disabled" | "color" | "bar" | "label-bar";
@@ -0,0 +1,36 @@
1
+ import type { Aggregate } from "./Aggregate.js";
2
+ import type { ColumnConfigValues } from "./ColumnConfigValues.js";
3
+ import type { Expressions } from "./Expressions.js";
4
+ import type { Filter } from "./Filter.js";
5
+ import type { FilterReducer } from "./FilterReducer.js";
6
+ import type { GroupRollupMode } from "./GroupRollupMode.js";
7
+ import type { Sort } from "./Sort.js";
8
+ import type { JsonValue } from "./serde_json/JsonValue.js";
9
+ /**
10
+ * The state of an entire `custom_elements::PerspectiveViewerElement` component
11
+ * and its `Plugin`.
12
+ */
13
+ export type ViewerConfig<V = string> = {
14
+ version: V;
15
+ columns_config: {
16
+ [key in string]?: ColumnConfigValues;
17
+ };
18
+ plugin: string;
19
+ plugin_config: JsonValue;
20
+ settings: boolean;
21
+ table: string | null;
22
+ theme: string | null;
23
+ title: string | null;
24
+ group_by: Array<string>;
25
+ split_by: Array<string>;
26
+ sort: Array<Sort>;
27
+ filter: Array<Filter>;
28
+ group_rollup_mode: GroupRollupMode;
29
+ filter_op?: FilterReducer;
30
+ expressions: Expressions;
31
+ columns: Array<string | null>;
32
+ aggregates: {
33
+ [key in string]?: Aggregate;
34
+ };
35
+ group_by_depth?: number | null;
36
+ };
@@ -7,12 +7,18 @@ import type {
7
7
  ColumnWindow,
8
8
  ViewWindow,
9
9
  OnUpdateOptions,
10
+ JoinOptions,
10
11
  UpdateOptions,
11
12
  DeleteOptions,
12
13
  ViewConfigUpdate,
13
14
  SystemInfo,
14
15
  } from "@perspective-dev/client";
15
16
 
17
+ export type * from "../../src/ts/ts-rs/ViewerConfig.d.ts";
18
+ export type * from "../../src/ts/ts-rs/ViewerConfigUpdate.d.ts";
19
+ import type {ViewerConfig} from "../../src/ts/ts-rs/ViewerConfig.d.ts";
20
+ import type {ViewerConfigUpdate} from "../../src/ts/ts-rs/ViewerConfigUpdate.d.ts";
21
+
16
22
 
17
23
 
18
24
  /**
@@ -74,6 +80,30 @@ export class Client {
74
80
  get_hosted_table_names(): Promise<string[]>;
75
81
  handle_error(error: string, reconnect?: Function | null): Promise<void>;
76
82
  handle_response(value: any): Promise<void>;
83
+ /**
84
+ * Creates a new read-only [`Table`] by performing an INNER JOIN on two
85
+ * source tables. The resulting table is reactive: when either source
86
+ * table is updated, the join is automatically recomputed.
87
+ *
88
+ * # Arguments
89
+ *
90
+ * - `left` - The left source table (a [`Table`] instance or a table name
91
+ * string).
92
+ * - `right` - The right source table (a [`Table`] instance or a table name
93
+ * string).
94
+ * - `on` - The column name to join on. Must exist in both tables with the
95
+ * same type.
96
+ * - `options` - Optional join configuration: `{ join_type?: "inner" |
97
+ * "left" | "outer", name?: string }`.
98
+ *
99
+ * # JavaScript Examples
100
+ *
101
+ * ```javascript
102
+ * const joined = await client.join(orders_table, products_table, "Product ID", { join_type: "left" });
103
+ * const joined = await client.join("orders", "products", "Product ID", { join_type: "left" });
104
+ * ```
105
+ */
106
+ join(left: any, right: any, on: string, options?: JoinOptions | null): Promise<Table>;
77
107
  constructor(send_request: Function, close?: Function | null);
78
108
  new_proxy_session(on_response: Function): ProxySession;
79
109
  on_error(callback: Function): Promise<number>;
@@ -202,20 +232,9 @@ export class Client {
202
232
  terminate(): any;
203
233
  }
204
234
 
205
- export class ColumnDropDownElement {
206
- private constructor();
207
- free(): void;
208
- [Symbol.dispose](): void;
209
- }
210
-
211
235
  export class CopyDropDownMenuElement {
212
236
  free(): void;
213
237
  [Symbol.dispose](): void;
214
- /**
215
- * Internal Only.
216
- *
217
- * Set this custom element model's raw pointer.
218
- */
219
238
  __set_model(parent: PerspectiveViewerElement): void;
220
239
  connected_callback(): void;
221
240
  hide(): void;
@@ -226,11 +245,6 @@ export class CopyDropDownMenuElement {
226
245
  export class ExportDropDownMenuElement {
227
246
  free(): void;
228
247
  [Symbol.dispose](): void;
229
- /**
230
- * Internal Only.
231
- *
232
- * Set this custom element model's raw pointer.
233
- */
234
248
  __set_model(parent: PerspectiveViewerElement): void;
235
249
  connected_callback(): void;
236
250
  hide(): void;
@@ -238,18 +252,6 @@ export class ExportDropDownMenuElement {
238
252
  open(target: HTMLElement): void;
239
253
  }
240
254
 
241
- export class FilterDropDownElement {
242
- private constructor();
243
- free(): void;
244
- [Symbol.dispose](): void;
245
- }
246
-
247
- export class FunctionDropDownElement {
248
- private constructor();
249
- free(): void;
250
- [Symbol.dispose](): void;
251
- }
252
-
253
255
  /**
254
256
  * JavaScript-facing DuckDB SQL query builder.
255
257
  *
@@ -296,6 +298,10 @@ export class GenericSQLVirtualServerModel {
296
298
  * Returns the SQL query to fetch data from a view with the given viewport.
297
299
  */
298
300
  viewGetData(view_id: string, config: any, viewport: any, schema: any): string;
301
+ /**
302
+ * Returns the SQL query to get the min and max values of a column.
303
+ */
304
+ viewGetMinMax(view_id: string, column_name: string, config: any): string;
299
305
  /**
300
306
  * Returns the SQL query to describe a view's schema.
301
307
  */
@@ -338,9 +344,9 @@ export class PerspectiveDebugPluginElement {
338
344
  draw(view: View): Promise<any>;
339
345
  constructor(elem: HTMLElement);
340
346
  resize(): Promise<any>;
341
- restore(): Promise<any>;
347
+ restore(_config?: any | null): void;
342
348
  restyle(): Promise<any>;
343
- save(): Promise<any>;
349
+ save(): any;
344
350
  update(view: View): Promise<any>;
345
351
  readonly config_column_names: any;
346
352
  readonly min_config_columns: any;
@@ -727,17 +733,20 @@ export class PerspectiveViewerElement {
727
733
  *
728
734
  * # Arguments
729
735
  *
730
- * - `force` - If [`Self::resize`] is called with `false` or without an
731
- * argument, and _auto-size_ mode is enabled via [`Self::setAutoSize`],
732
- * [`Self::resize`] will log a warning and auto-disable auto-size mode.
736
+ * - `options` - An optional object with the following fields:
737
+ * - `dimensions` - An optional object `{width, height}` providing
738
+ * explicit size hints (in pixels) for the plugin container. When
739
+ * provided, the plugin element will be temporarily sized to these
740
+ * dimensions during resize, then reset.
733
741
  *
734
742
  * # JavaScript Examples
735
743
  *
736
744
  * ```javascript
737
- * await viewer.resize(true)
745
+ * await viewer.resize()
746
+ * await viewer.resize({dimensions: {width: 800, height: 600}})
738
747
  * ```
739
748
  */
740
- resize(force?: boolean | null): Promise<any>;
749
+ resize(options?: any | null): Promise<any>;
741
750
  /**
742
751
  * Restores this element from a full/partial
743
752
  * [`perspective_js::JsViewConfig`] (this element's user-configurable
@@ -769,7 +778,7 @@ export class PerspectiveViewerElement {
769
778
  * await viewer.restore({group_by: ["State"]});
770
779
  * ```
771
780
  */
772
- restore(update: any): Promise<any>;
781
+ restore(update: ViewerConfigUpdate): Promise<any>;
773
782
  /**
774
783
  * Restyle all plugins from current document.
775
784
  *
@@ -784,7 +793,7 @@ export class PerspectiveViewerElement {
784
793
  * # JavaScript Examples
785
794
  *
786
795
  * ```javascript
787
- * viewer.style = "--icon--color: red";
796
+ * viewer.style = "--psp--color: red";
788
797
  * await viewer.restyleElement();
789
798
  * ```
790
799
  */
@@ -810,7 +819,7 @@ export class PerspectiveViewerElement {
810
819
  * });
811
820
  * ```
812
821
  */
813
- save(): Promise<any>;
822
+ save(): Promise<ViewerConfig>;
814
823
  /**
815
824
  * Sets the auto-pause behavior of this component.
816
825
  *
@@ -831,7 +840,7 @@ export class PerspectiveViewerElement {
831
840
  * viewer.setAutoPause(false);
832
841
  * ```
833
842
  */
834
- setAutoPause(autopause: boolean): void;
843
+ setAutoPause(autopause: boolean): Promise<any>;
835
844
  /**
836
845
  * Sets the auto-size behavior of this component.
837
846
  *
@@ -1317,6 +1326,7 @@ export class View {
1317
1326
  export class VirtualDataSlice {
1318
1327
  free(): void;
1319
1328
  [Symbol.dispose](): void;
1329
+ fromArrowIpc(ipc: Uint8Array): void;
1320
1330
  constructor(config: ViewConfigUpdate);
1321
1331
  setBooleanCol(name: string, index: number, val: any, group_by_index?: number | null): void;
1322
1332
  setCol(dtype: string, name: string, index: number, val: any, group_by_index?: number | null): void;
@@ -1352,10 +1362,7 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
1352
1362
 
1353
1363
  export interface InitOutput {
1354
1364
  readonly memory: WebAssembly.Memory;
1355
- readonly __wbg_columndropdownelement_free: (a: number, b: number) => void;
1356
1365
  readonly __wbg_copydropdownmenuelement_free: (a: number, b: number) => void;
1357
- readonly __wbg_filterdropdownelement_free: (a: number, b: number) => void;
1358
- readonly __wbg_functiondropdownelement_free: (a: number, b: number) => void;
1359
1366
  readonly __wbg_perspectivedebugpluginelement_free: (a: number, b: number) => void;
1360
1367
  readonly __wbg_perspectiveviewerelement_free: (a: number, b: number) => void;
1361
1368
  readonly copydropdownmenuelement___set_model: (a: number, b: number) => void;
@@ -1373,6 +1380,8 @@ export interface InitOutput {
1373
1380
  readonly perspectivedebugpluginelement_draw: (a: number, b: number) => number;
1374
1381
  readonly perspectivedebugpluginelement_name: (a: number, b: number) => void;
1375
1382
  readonly perspectivedebugpluginelement_new: (a: number) => number;
1383
+ readonly perspectivedebugpluginelement_restore: (a: number, b: number, c: number) => void;
1384
+ readonly perspectivedebugpluginelement_save: (a: number, b: number) => void;
1376
1385
  readonly perspectivedebugpluginelement_select_mode: (a: number, b: number) => void;
1377
1386
  readonly perspectiveviewerelement___get_model: (a: number) => number;
1378
1387
  readonly perspectiveviewerelement_connectedCallback: (a: number, b: number) => void;
@@ -1401,7 +1410,7 @@ export interface InitOutput {
1401
1410
  readonly perspectiveviewerelement_restore: (a: number, b: number) => number;
1402
1411
  readonly perspectiveviewerelement_restyleElement: (a: number) => number;
1403
1412
  readonly perspectiveviewerelement_save: (a: number) => number;
1404
- readonly perspectiveviewerelement_setAutoPause: (a: number, b: number) => void;
1413
+ readonly perspectiveviewerelement_setAutoPause: (a: number, b: number) => number;
1405
1414
  readonly perspectiveviewerelement_setAutoSize: (a: number, b: number) => void;
1406
1415
  readonly perspectiveviewerelement_setSelection: (a: number, b: number, c: number) => void;
1407
1416
  readonly perspectiveviewerelement_setThrottle: (a: number, b: number, c: number) => void;
@@ -1410,10 +1419,8 @@ export interface InitOutput {
1410
1419
  readonly registerPlugin: (a: number, b: number) => void;
1411
1420
  readonly perspectivedebugpluginelement_update: (a: number, b: number) => number;
1412
1421
  readonly perspectivedebugpluginelement_min_config_columns: (a: number) => number;
1413
- readonly perspectivedebugpluginelement_save: (a: number) => number;
1414
1422
  readonly perspectivedebugpluginelement_delete: (a: number) => number;
1415
1423
  readonly perspectivedebugpluginelement_resize: (a: number) => number;
1416
- readonly perspectivedebugpluginelement_restore: (a: number) => number;
1417
1424
  readonly perspectivedebugpluginelement_restyle: (a: number) => number;
1418
1425
  readonly exportdropdownmenuelement_new: (a: number) => number;
1419
1426
  readonly __wbg_exportdropdownmenuelement_free: (a: number, b: number) => void;
@@ -1429,6 +1436,7 @@ export interface InitOutput {
1429
1436
  readonly client_get_hosted_table_names: (a: number) => number;
1430
1437
  readonly client_handle_error: (a: number, b: number, c: number, d: number) => number;
1431
1438
  readonly client_handle_response: (a: number, b: number) => number;
1439
+ readonly client_join: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
1432
1440
  readonly client_new: (a: number, b: number, c: number) => void;
1433
1441
  readonly client_new_proxy_session: (a: number, b: number) => number;
1434
1442
  readonly client_on_error: (a: number, b: number) => number;
@@ -1447,6 +1455,7 @@ export interface InitOutput {
1447
1455
  readonly genericsqlvirtualservermodel_viewColumnSize: (a: number, b: number, c: number, d: number) => void;
1448
1456
  readonly genericsqlvirtualservermodel_viewDelete: (a: number, b: number, c: number, d: number) => void;
1449
1457
  readonly genericsqlvirtualservermodel_viewGetData: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1458
+ readonly genericsqlvirtualservermodel_viewGetMinMax: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1450
1459
  readonly genericsqlvirtualservermodel_viewSchema: (a: number, b: number, c: number, d: number) => void;
1451
1460
  readonly genericsqlvirtualservermodel_viewSize: (a: number, b: number, c: number, d: number) => void;
1452
1461
  readonly proxysession_close: (a: number) => number;
@@ -1494,6 +1503,7 @@ export interface InitOutput {
1494
1503
  readonly view_to_json: (a: number, b: number) => number;
1495
1504
  readonly view_to_json_string: (a: number, b: number) => number;
1496
1505
  readonly view_to_ndjson: (a: number, b: number) => number;
1506
+ readonly virtualdataslice_fromArrowIpc: (a: number, b: number, c: number) => void;
1497
1507
  readonly virtualdataslice_new: (a: number) => number;
1498
1508
  readonly virtualdataslice_setBooleanCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1499
1509
  readonly virtualdataslice_setCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
@@ -1503,20 +1513,19 @@ export interface InitOutput {
1503
1513
  readonly virtualdataslice_setStringCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1504
1514
  readonly virtualserver_handleRequest: (a: number, b: number, c: number) => number;
1505
1515
  readonly virtualserver_new: (a: number, b: number) => void;
1506
- readonly __wasm_bindgen_func_elem_13482: (a: number, b: number) => void;
1507
- readonly __wasm_bindgen_func_elem_3123: (a: number, b: number) => void;
1508
- readonly __wasm_bindgen_func_elem_3124: (a: number, b: number) => void;
1509
- readonly __wasm_bindgen_func_elem_18167: (a: number, b: number) => void;
1510
- readonly __wasm_bindgen_func_elem_18937: (a: number, b: number) => void;
1511
- readonly __wasm_bindgen_func_elem_18961: (a: number, b: number) => void;
1512
- readonly __wasm_bindgen_func_elem_20888: (a: number, b: number, c: number, d: number) => void;
1513
- readonly __wasm_bindgen_func_elem_5237: (a: number, b: number, c: number) => void;
1514
- readonly __wasm_bindgen_func_elem_5238: (a: number, b: number, c: number) => void;
1515
- readonly __wasm_bindgen_func_elem_5235: (a: number, b: number, c: number) => void;
1516
- readonly __wasm_bindgen_func_elem_18286: (a: number, b: number, c: number) => void;
1517
- readonly __wasm_bindgen_func_elem_18978: (a: number, b: number, c: number) => void;
1518
- readonly __wasm_bindgen_func_elem_14371: (a: number, b: number) => number;
1519
- readonly __wasm_bindgen_func_elem_18940: (a: number, b: number) => void;
1516
+ readonly __wasm_bindgen_func_elem_13446: (a: number, b: number) => void;
1517
+ readonly __wasm_bindgen_func_elem_3157: (a: number, b: number) => void;
1518
+ readonly __wasm_bindgen_func_elem_16508: (a: number, b: number) => void;
1519
+ readonly __wasm_bindgen_func_elem_17165: (a: number, b: number) => void;
1520
+ readonly __wasm_bindgen_func_elem_17190: (a: number, b: number) => void;
1521
+ readonly __wasm_bindgen_func_elem_24303: (a: number, b: number, c: number, d: number) => void;
1522
+ readonly __wasm_bindgen_func_elem_5198: (a: number, b: number, c: number) => void;
1523
+ readonly __wasm_bindgen_func_elem_5199: (a: number, b: number, c: number) => void;
1524
+ readonly __wasm_bindgen_func_elem_5196: (a: number, b: number, c: number) => void;
1525
+ readonly __wasm_bindgen_func_elem_16627: (a: number, b: number, c: number) => void;
1526
+ readonly __wasm_bindgen_func_elem_17207: (a: number, b: number, c: number) => void;
1527
+ readonly __wasm_bindgen_func_elem_14349: (a: number, b: number) => number;
1528
+ readonly __wasm_bindgen_func_elem_17168: (a: number, b: number) => void;
1520
1529
  readonly __wbindgen_export: (a: number, b: number) => number;
1521
1530
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
1522
1531
  readonly __wbindgen_export3: (a: number) => void;