@perspective-dev/viewer 5.3.1 → 5.5.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.
Files changed (291) hide show
  1. package/dist/cdn/perspective-viewer.js +6 -6
  2. package/dist/cdn/perspective-viewer.js.map +2 -2
  3. package/dist/css/blueprint.css +1 -1
  4. package/dist/css/botanical.css +1 -1
  5. package/dist/css/dracula.css +1 -1
  6. package/dist/css/eggplant.css +1 -1
  7. package/dist/css/gruvbox-dark.css +1 -1
  8. package/dist/css/gruvbox.css +1 -1
  9. package/dist/css/icons.css +1 -1
  10. package/dist/css/intl/ar.css +1 -0
  11. package/dist/css/intl/de.css +1 -1
  12. package/dist/css/intl/es.css +1 -1
  13. package/dist/css/intl/fr.css +1 -1
  14. package/dist/css/intl/ja.css +1 -1
  15. package/dist/css/intl/pt.css +1 -1
  16. package/dist/css/intl/zh.css +1 -1
  17. package/dist/css/intl.css +1 -1
  18. package/dist/css/ledger.css +1 -1
  19. package/dist/css/monokai.css +1 -1
  20. package/dist/css/nord.css +1 -1
  21. package/dist/css/phosphor.css +1 -1
  22. package/dist/css/pro-dark.css +1 -1
  23. package/dist/css/pro.css +1 -1
  24. package/dist/css/solarized-dark.css +1 -1
  25. package/dist/css/solarized.css +1 -1
  26. package/dist/css/themes.css +1 -1
  27. package/dist/css/vaporwave.css +1 -1
  28. package/dist/css/velvet.css +1 -1
  29. package/dist/docs/perspective-docs.json +1 -1
  30. package/dist/esm/extensions.d.ts +0 -5
  31. package/dist/esm/perspective-viewer.d.ts +2 -0
  32. package/dist/esm/perspective-viewer.inline.js +8 -8
  33. package/dist/esm/perspective-viewer.inline.js.map +2 -2
  34. package/dist/esm/perspective-viewer.js +5 -5
  35. package/dist/esm/perspective-viewer.js.map +2 -2
  36. package/dist/esm/plugin.d.ts +9 -0
  37. package/dist/esm/ts-rs/AddPanelOptions.d.ts +9 -0
  38. package/dist/esm/ts-rs/GetViewMode.d.ts +4 -0
  39. package/dist/esm/ts-rs/GetViewOptions.d.ts +8 -0
  40. package/dist/esm/ts-rs/RestoreOptions.d.ts +6 -0
  41. package/dist/esm/ts-rs/RestoreWorkspaceOptions.d.ts +9 -0
  42. package/dist/esm/ts-rs/ViewOnUpdateResp.d.ts +1 -1
  43. package/dist/esm/ts-rs/WorkspaceConfigUpdate.d.ts +30 -22
  44. package/dist/wasm/perspective-viewer.d.ts +137 -104
  45. package/dist/wasm/perspective-viewer.js +337 -269
  46. package/dist/wasm/perspective-viewer.wasm +0 -0
  47. package/dist/wasm/perspective-viewer.wasm.d.ts +20 -30
  48. package/package.json +7 -7
  49. package/src/css/_context_menu.css +1 -1
  50. package/src/css/_dropdown_menu.css +1 -1
  51. package/src/css/_viewer_bundle.css +7 -8
  52. package/src/css/column-dropdown.css +0 -3
  53. package/src/css/column-selector.css +18 -7
  54. package/src/css/column-settings-panel.css +0 -225
  55. package/src/css/column-style.css +175 -0
  56. package/src/css/config-selector.css +19 -11
  57. package/src/css/filter-dropdown.css +5 -5
  58. package/src/css/form/debug.css +37 -4
  59. package/src/css/function-dropdown.css +5 -5
  60. package/src/css/panel-tab.css +23 -0
  61. package/src/css/plugin-selector.css +5 -5
  62. package/src/css/render-warning.css +1 -1
  63. package/src/css/status-bar.css +63 -21
  64. package/src/css/type-icon.css +1 -3
  65. package/src/css/{containers → ui/containers}/context-menu.css +22 -16
  66. package/src/css/ui/containers/dropdown-menu-items.css +66 -0
  67. package/src/css/{containers → ui/containers}/dropdown-menu.css +8 -53
  68. package/src/css/{containers → ui/containers}/tabs.css +2 -1
  69. package/src/css/viewer.css +32 -26
  70. package/src/rust/agent/tools.rs +80 -7
  71. package/src/rust/components/chat_panel.rs +1 -1
  72. package/src/rust/components/{form/code_editor.rs → code_editor.rs} +4 -2
  73. package/src/rust/components/column_dropdown.rs +2 -2
  74. package/src/rust/components/column_selector/active_column.rs +24 -9
  75. package/src/rust/components/column_selector/aggregate_selector.rs +1 -1
  76. package/src/rust/components/column_selector/config_selector.rs +2 -2
  77. package/src/rust/components/column_selector/filter_column.rs +8 -5
  78. package/src/rust/components/column_selector/inactive_column.rs +4 -2
  79. package/src/rust/components/column_selector/pivot_column.rs +4 -3
  80. package/src/rust/components/column_selector/sort_column.rs +7 -4
  81. package/src/rust/components/column_selector.rs +14 -3
  82. package/src/rust/components/column_settings_sidebar/style_tab/agg_depth_selector.rs +1 -1
  83. package/src/rust/components/column_settings_sidebar/style_tab/alignment_field.rs +90 -0
  84. package/src/rust/components/column_settings_sidebar/style_tab/font_field.rs +267 -0
  85. package/src/rust/components/column_settings_sidebar/style_tab/primitive_field.rs +16 -18
  86. package/src/rust/components/column_settings_sidebar/style_tab/symbol/symbol_selector.rs +1 -1
  87. package/src/rust/components/column_settings_sidebar/style_tab.rs +70 -12
  88. package/src/rust/components/column_settings_sidebar.rs +3 -4
  89. package/src/rust/components/copy_dropdown.rs +1 -1
  90. package/src/rust/components/datetime_column_style/custom.rs +1 -3
  91. package/src/rust/components/datetime_column_style/simple.rs +1 -2
  92. package/src/rust/components/datetime_column_style.rs +1 -2
  93. package/src/rust/components/{form/debug.rs → debug_panel.rs} +112 -55
  94. package/src/rust/components/{containers/dragdrop_list.rs → dragdrop_list.rs} +2 -10
  95. package/src/rust/components/export_dropdown.rs +1 -1
  96. package/src/rust/components/expression_editor.rs +1 -1
  97. package/src/rust/components/filter_dropdown.rs +2 -2
  98. package/src/rust/components/function_dropdown.rs +2 -2
  99. package/src/rust/components/main_panel/frame_theme.rs +3 -59
  100. package/src/rust/components/main_panel/msg.rs +4 -0
  101. package/src/rust/components/main_panel/reconcile.rs +9 -4
  102. package/src/rust/components/main_panel/render.rs +62 -11
  103. package/src/rust/components/main_panel/update.rs +39 -10
  104. package/src/rust/components/main_panel.rs +40 -2
  105. package/src/rust/components/mod.rs +5 -8
  106. package/src/rust/components/new_panel_menu.rs +97 -0
  107. package/src/rust/components/number_series_style.rs +2 -3
  108. package/src/rust/components/panel_menu.rs +61 -87
  109. package/src/rust/components/panel_tab.rs +100 -43
  110. package/src/rust/components/plugin_tab.rs +58 -4
  111. package/src/rust/components/render_warning.rs +2 -2
  112. package/src/rust/components/{status_bar_counter.rs → rows_counter.rs} +10 -10
  113. package/src/rust/components/settings_panel.rs +8 -2
  114. package/src/rust/components/status_bar.rs +113 -19
  115. package/src/rust/components/status_indicator.rs +9 -14
  116. package/src/rust/components/{style/mod.rs → style.rs} +32 -15
  117. package/src/rust/components/style_controls/number_string_format/digits_section.rs +3 -5
  118. package/src/rust/components/style_controls/number_string_format/misc_section.rs +1 -1
  119. package/src/rust/components/style_controls/number_string_format/style_section.rs +1 -1
  120. package/src/rust/components/viewer/msg.rs +43 -30
  121. package/src/rust/components/viewer/panels.rs +53 -19
  122. package/src/rust/components/viewer/render.rs +16 -13
  123. package/src/rust/components/viewer/settings.rs +137 -68
  124. package/src/rust/components/viewer/snapshots.rs +5 -10
  125. package/src/rust/components/viewer/wiring.rs +11 -22
  126. package/src/rust/components/viewer.rs +15 -10
  127. package/src/rust/components/window_editor.rs +8 -9
  128. package/src/rust/config/column_config_schema.rs +312 -33
  129. package/src/rust/config/datetime_column_style.rs +0 -11
  130. package/src/rust/config/mod.rs +0 -4
  131. package/src/rust/config/options.rs +50 -0
  132. package/src/rust/config/workspace_config.rs +70 -24
  133. package/src/rust/custom_elements/debug_plugin.rs +1 -10
  134. package/src/rust/custom_elements/mod.rs +0 -3
  135. package/src/rust/custom_elements/viewer.rs +194 -115
  136. package/src/rust/js/plugin.rs +3 -87
  137. package/src/rust/lib.rs +19 -18
  138. package/src/rust/presentation/column_locator.rs +3 -7
  139. package/src/rust/presentation.rs +68 -38
  140. package/src/rust/queries/hosted_tables.rs +38 -0
  141. package/src/rust/queries/mod.rs +2 -0
  142. package/src/rust/queries/palette_set.rs +1 -1
  143. package/src/rust/queries/plugin_column_styles.rs +6 -5
  144. package/src/rust/renderer/activate.rs +1 -3
  145. package/src/rust/renderer/dispatch.rs +83 -22
  146. package/src/rust/renderer/limits.rs +24 -5
  147. package/src/rust/renderer/plugin_config.rs +201 -41
  148. package/src/rust/renderer/plugin_store.rs +2 -1
  149. package/src/rust/renderer/props.rs +7 -1
  150. package/src/rust/renderer.rs +23 -27
  151. package/src/rust/session/props.rs +8 -3
  152. package/src/rust/session/view_subscription.rs +19 -6
  153. package/src/rust/session.rs +189 -150
  154. package/src/rust/tasks/create_panel.rs +5 -2
  155. package/src/rust/tasks/dismiss_render_warning.rs +1 -1
  156. package/src/rust/tasks/eject.rs +1 -0
  157. package/src/rust/tasks/pipeline.rs +18 -67
  158. package/src/rust/tasks/presize_panels.rs +24 -1
  159. package/src/rust/tasks/restore_and_render.rs +0 -17
  160. package/src/rust/tasks/restore_panel.rs +129 -30
  161. package/src/rust/tasks/send_column_config.rs +4 -1
  162. package/src/rust/tasks/send_plugin_config.rs +1 -1
  163. package/src/rust/tasks/set_edit_mode.rs +1 -1
  164. package/src/rust/tasks/sync_update_panels.rs +147 -67
  165. package/src/rust/tasks/table_lifecycle.rs +7 -1
  166. package/src/rust/{components → ui}/containers/control_group.rs +25 -3
  167. package/src/rust/{components → ui}/containers/dropdown_menu.rs +5 -2
  168. package/src/rust/{components → ui}/containers/mod.rs +0 -4
  169. package/src/rust/{components → ui}/containers/scroll_panel.rs +0 -22
  170. package/src/rust/{components → ui}/containers/scroll_panel_item.rs +0 -13
  171. package/src/rust/{components → ui}/containers/select.rs +0 -6
  172. package/src/rust/{components → ui}/containers/sidebar.rs +5 -32
  173. package/src/rust/{components → ui}/containers/split_panel.rs +8 -80
  174. package/src/rust/{components → ui}/containers/tab_list.rs +15 -9
  175. package/src/rust/{components → ui}/context_menu.rs +8 -13
  176. package/src/rust/{presentation/drag_helpers.rs → ui/dragdrop.rs} +26 -31
  177. package/src/rust/{components → ui}/font_loader.rs +0 -26
  178. package/src/rust/{components → ui}/form/color_selector.rs +4 -2
  179. package/src/rust/{config/datetime_column_style/color_mode.rs → ui/form/intl_label.rs} +42 -42
  180. package/src/rust/{components → ui}/form/mirrored_textarea.rs +0 -53
  181. package/src/rust/{components → ui}/form/mod.rs +1 -10
  182. package/src/rust/{components → ui}/form/multi_stop_gradient_selector.rs +4 -5
  183. package/src/rust/{components → ui}/form/named_value_picker.rs +1 -6
  184. package/src/rust/{components → ui}/form/number_field.rs +1 -1
  185. package/src/rust/{components → ui}/form/number_range_field.rs +1 -1
  186. package/src/rust/{components → ui}/form/optional_field.rs +3 -1
  187. package/src/rust/{components → ui}/form/palette_selector.rs +4 -5
  188. package/src/rust/{components → ui}/form/select_enum_field.rs +2 -2
  189. package/src/rust/{components → ui}/form/select_value_field.rs +2 -2
  190. package/src/rust/ui/mod.rs +56 -0
  191. package/src/rust/ui/modal.rs +61 -0
  192. package/src/rust/{components → ui}/portal.rs +175 -79
  193. package/src/rust/{components/style/style_provider.rs → ui/style.rs} +4 -34
  194. package/src/rust/utils/completion.rs +0 -6
  195. package/src/rust/{config/css_scale.rs → utils/css.rs} +38 -35
  196. package/src/rust/utils/css_vars.rs +13 -0
  197. package/src/rust/utils/local_fonts.rs +395 -0
  198. package/src/rust/utils/mod.rs +4 -0
  199. package/src/rust/workspace.rs +47 -0
  200. package/src/svg/boolean-type.svg +3 -2
  201. package/src/svg/checkbox-checked-icon.svg +4 -7
  202. package/src/svg/checkbox-hover.svg +3 -3
  203. package/src/svg/checkbox-off.svg +2 -3
  204. package/src/svg/checkbox-on.svg +3 -3
  205. package/src/svg/checkbox-unchecked-icon.svg +3 -3
  206. package/src/svg/datagrid-select-column.svg +8 -15
  207. package/src/svg/datagrid-select-region.svg +8 -15
  208. package/src/svg/datagrid-select-row-tree.svg +7 -12
  209. package/src/svg/datagrid-select-row.svg +8 -13
  210. package/src/svg/date-type.svg +4 -23
  211. package/src/svg/drawer-tab-hover.svg +4 -6
  212. package/src/svg/drawer-tab-invert-hover.svg +5 -5
  213. package/src/svg/drawer-tab-invert.svg +3 -5
  214. package/src/svg/drawer-tab.svg +5 -5
  215. package/src/svg/mega-menu-icons-candlestick.svg +5 -37
  216. package/src/svg/mega-menu-icons-ohlc.svg +4 -39
  217. package/src/svg/mega-menu-icons-sunburst.svg +4 -38
  218. package/src/svg/mega-menu-icons-treemap.svg +3 -43
  219. package/src/svg/mega-menu-icons-y-scatter.svg +12 -72
  220. package/src/svg/new-panel-icon.svg +4 -0
  221. package/src/svg/number-type.svg +3 -3
  222. package/src/svg/radio-hover.svg +3 -3
  223. package/src/svg/radio-off.svg +3 -3
  224. package/src/svg/radio-on.svg +3 -3
  225. package/src/svg/status_ok.svg +3 -26
  226. package/src/svg/status_pending.svg +3 -0
  227. package/src/svg/string-type.svg +4 -8
  228. package/src/svg/theme-icon.svg +5 -5
  229. package/src/themes/blueprint.css +0 -57
  230. package/src/themes/botanical.css +0 -36
  231. package/src/themes/defaults.css +1 -24
  232. package/src/themes/dracula.css +0 -58
  233. package/src/themes/eggplant.css +0 -58
  234. package/src/themes/gruvbox-dark.css +0 -65
  235. package/src/themes/gruvbox.css +1 -39
  236. package/src/themes/icons.css +2 -8
  237. package/src/themes/intl/ar.css +198 -0
  238. package/src/themes/intl/de.css +63 -40
  239. package/src/themes/intl/es.css +58 -35
  240. package/src/themes/intl/fr.css +57 -34
  241. package/src/themes/intl/ja.css +59 -36
  242. package/src/themes/intl/pt.css +54 -31
  243. package/src/themes/intl/zh.css +65 -42
  244. package/src/themes/intl.css +34 -8
  245. package/src/themes/ledger.css +1 -59
  246. package/src/themes/monokai.css +0 -51
  247. package/src/themes/nord.css +0 -55
  248. package/src/themes/phosphor.css +0 -48
  249. package/src/themes/pro-dark.css +0 -37
  250. package/src/themes/pro.css +3 -23
  251. package/src/themes/solarized-dark.css +0 -31
  252. package/src/themes/solarized.css +1 -24
  253. package/src/themes/vaporwave.css +0 -44
  254. package/src/themes/velvet.css +0 -60
  255. package/src/ts/extensions.ts +0 -13
  256. package/src/ts/perspective-viewer.ts +2 -0
  257. package/src/ts/plugin.ts +9 -0
  258. package/src/ts/ts-rs/AddPanelOptions.ts +10 -0
  259. package/src/ts/ts-rs/{DatetimeColorMode.ts → GetViewMode.ts} +4 -1
  260. package/src/ts/ts-rs/GetViewOptions.ts +7 -0
  261. package/src/ts/ts-rs/RestoreOptions.ts +7 -1
  262. package/src/ts/ts-rs/RestoreWorkspaceOptions.ts +10 -0
  263. package/src/ts/ts-rs/ViewOnUpdateResp.ts +1 -1
  264. package/src/ts/ts-rs/WorkspaceConfigUpdate.ts +31 -20
  265. package/dist/esm/ts-rs/DatetimeColorMode.d.ts +0 -1
  266. package/dist/esm/ts-rs/FormatMode.d.ts +0 -1
  267. package/dist/esm/ts-rs/StringColorMode.d.ts +0 -1
  268. package/src/css/plugin-settings-panel.css +0 -171
  269. package/src/rust/components/modal.rs +0 -177
  270. package/src/rust/components/string_column_style.rs +0 -121
  271. package/src/rust/config/string_column_style.rs +0 -135
  272. package/src/rust/custom_elements/copy_dropdown.rs +0 -219
  273. package/src/rust/custom_elements/export_dropdown.rs +0 -216
  274. package/src/rust/custom_elements/modal.rs +0 -299
  275. package/src/ts/ts-rs/FormatMode.ts +0 -3
  276. package/src/ts/ts-rs/StringColorMode.ts +0 -3
  277. /package/dist/wasm/snippets/{perspective-viewer-87bd21b215d0631a → perspective-viewer-ea71a3990cad35d7}/inline0.js +0 -0
  278. /package/dist/wasm/snippets/{perspective-viewer-87bd21b215d0631a → perspective-viewer-ea71a3990cad35d7}/inline1.js +0 -0
  279. /package/dist/wasm/snippets/{perspective-viewer-87bd21b215d0631a → perspective-viewer-ea71a3990cad35d7}/inline2.js +0 -0
  280. /package/dist/wasm/snippets/{perspective-viewer-87bd21b215d0631a → perspective-viewer-ea71a3990cad35d7}/inline3.js +0 -0
  281. /package/dist/wasm/snippets/{perspective-viewer-87bd21b215d0631a → perspective-viewer-ea71a3990cad35d7}/inline4.js +0 -0
  282. /package/dist/wasm/snippets/{perspective-viewer-87bd21b215d0631a → perspective-viewer-ea71a3990cad35d7}/inline5.js +0 -0
  283. /package/src/css/{containers → ui/containers}/scroll-panel.css +0 -0
  284. /package/src/css/{containers → ui/containers}/split-panel.css +0 -0
  285. /package/src/css/{dom → ui/dom}/checkbox.css +0 -0
  286. /package/src/css/{dom → ui/dom}/scrollbar.css +0 -0
  287. /package/src/css/{dom → ui/dom}/select.css +0 -0
  288. /package/src/css/{form → ui/form}/mirrored-textarea.css +0 -0
  289. /package/src/rust/components/{form → code_editor}/highlight.rs +0 -0
  290. /package/src/rust/{components → ui}/containers/sidebar_close_button.rs +0 -0
  291. /package/src/rust/{components → ui}/form/number_input.rs +0 -0
@@ -88,6 +88,15 @@ export interface IPerspectiveViewerPlugin {
88
88
  kind: string;
89
89
  }>;
90
90
  };
91
+ /**
92
+ * The plugin-level settings schema as it applies to `current_value`, the
93
+ * `plugin_config` state the schema should describe.
94
+ */
95
+ plugin_config_schema?(view_config?: Record<string, unknown>, current_value?: Record<string, unknown> | null): {
96
+ fields: Array<Record<string, unknown> & {
97
+ kind: string;
98
+ }>;
99
+ };
91
100
  /**
92
101
  * Render this plugin using the provided `View`. While there is no
93
102
  * provision to cancel a render in progress per se, calling a method on
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Options for the `addPanel()` method.
3
+ */
4
+ export type AddPanelOptions = {
5
+ /**
6
+ * As `RestoreOptions::wait_for_table`.
7
+ */
8
+ wait_for_table?: boolean;
9
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * How `getView` resolves the `View` it returns.
3
+ */
4
+ export type GetViewMode = "live" | "clone" | "auto";
@@ -0,0 +1,8 @@
1
+ import type { GetViewMode } from "./GetViewMode.js";
2
+ /**
3
+ * The `getView` argument: the `mode` and the target panel.
4
+ */
5
+ export type GetViewOptions = {
6
+ mode?: GetViewMode;
7
+ panel?: string;
8
+ };
@@ -16,4 +16,10 @@ export type RestoreOptions = {
16
16
  * known-good config to recover exactly.
17
17
  */
18
18
  suppress_errors?: boolean;
19
+ /**
20
+ * When `true`, a `table` no loaded client hosts yet leaves the panel
21
+ * empty and pending until the table is created, instead of the default
22
+ * error.
23
+ */
24
+ wait_for_table?: boolean;
19
25
  };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Options for the `restoreWorkspace()` method.
3
+ */
4
+ export type RestoreWorkspaceOptions = {
5
+ /**
6
+ * As `RestoreOptions::wait_for_table`, applied to every panel entry.
7
+ */
8
+ wait_for_table?: boolean;
9
+ };
@@ -1,4 +1,4 @@
1
1
  export type ViewOnUpdateResp = {
2
- delta: Array<number>;
2
+ delta: Uint8Array | undefined;
3
3
  port_id: number;
4
4
  };
@@ -1,39 +1,47 @@
1
1
  import type { Filter } from "./Filter.js";
2
2
  import type { Layout } from "./Layout.js";
3
+ import type { OptionalUpdate } from "./OptionalUpdate.js";
3
4
  import type { ViewerConfigInitial } from "./ViewerConfigInitial.js";
4
5
  /**
5
- * The parse target of a workspace config in
6
- * [`PerspectiveViewerElement::restoreWorkspace`]. Mirrors
7
- * [`WorkspaceConfig`], but `panels` entries are [`ViewerConfigInitial`]s —
8
- * every entry creates a NEW panel, so `table` is required by type (a
9
- * stray per-panel `settings` key is ignored; it is element-level state,
10
- * carried by the top-level `active` field).
6
+ * The [`PerspectiveViewerElement::restoreWorkspace`] argument: a field-wise
7
+ * update of the element's workspace state, like [`ViewerConfigUpdate`] for a
8
+ * panel, where an absent key is unchanged, `null` resets and a value
9
+ * replaces.
11
10
  */
12
11
  export type WorkspaceConfigUpdate = {
13
- active?: string;
12
+ /**
13
+ * The panel to activate with the settings sidebar open, by `panels` key
14
+ * or existing panel id; `null` closes the sidebar.
15
+ */
16
+ active?: OptionalUpdate<string>;
17
+ /**
18
+ * The layout tree to stage, naming `panels` keys or existing panel ids.
19
+ */
14
20
  layout?: Layout;
15
- panels: {
21
+ /**
22
+ * The complete replacement panel set, each [`ViewerConfigInitial`] entry
23
+ * creating a new panel (`{}` empties the element); absent keeps the
24
+ * existing panels.
25
+ */
26
+ panels?: {
16
27
  [key in string]?: ViewerConfigInitial;
17
28
  };
18
29
  /**
19
- * The element-level global (master/detail cross-) filters to re-apply as
20
- * a transient overlay on every DETAIL panel. Restored as one
21
- * unattributed bucket: the next selection on any master replaces it.
22
- * `Option` so an explicit `undefined` property deserializes as
23
- * `None` like an absent key (also `masters` / `palette` below).
30
+ * The element-level cross-filter set applied to every detail panel as
31
+ * one unattributed bucket, replacing the current set; `null` clears it.
24
32
  */
25
- global_filters?: Array<Filter> | null;
33
+ global_filters?: OptionalUpdate<Array<Filter>>;
26
34
  /**
27
- * The master (filter-source) panels, by saved `panels` key. An id not in
28
- * `panels` warns and is dropped.
35
+ * The master (filter-source) panels by `panels` key or existing panel
36
+ * id, unknown ids dropped with a warning; `null` demotes every panel.
29
37
  */
30
- masters?: Array<string> | null;
38
+ masters?: OptionalUpdate<Array<string>>;
31
39
  /**
32
- * Named color-scale definitions to apply to the host (see
33
- * [`WorkspaceConfig::palette`]), replacing any previously restored
34
- * palette.
40
+ * Named color-scale definitions applied to the host (see
41
+ * [`WorkspaceConfig::palette`]), replacing the previous palette; `null`
42
+ * clears it.
35
43
  */
36
- palette?: {
44
+ palette?: OptionalUpdate<{
37
45
  [key in string]?: string;
38
- } | null;
46
+ }>;
39
47
  };
@@ -87,19 +87,21 @@ export interface VirtualServerHandler {
87
87
 
88
88
  import type {
89
89
  ColumnType,
90
- TableInitOptions,
91
90
  ColumnWindow,
92
- ViewWindow,
93
- TypedArrayWindow,
94
- OnUpdateOptions,
91
+ DeleteOptions,
92
+ Features,
95
93
  JoinOptions,
94
+ OnRemoveData,
95
+ OnUpdateData,
96
+ OnUpdateOptions,
97
+ Scalar,
98
+ SystemInfo,
99
+ TableInitOptions,
100
+ TypedArrayWindow,
96
101
  UpdateOptions,
97
- DeleteOptions,
98
102
  ViewConfig,
99
103
  ViewConfigUpdate,
100
- SystemInfo,
101
- Scalar,
102
- Features,
104
+ ViewWindow,
103
105
  } from "@perspective-dev/client";
104
106
 
105
107
  export type * from "../../src/ts/ts-rs/ViewerConfig.d.ts";
@@ -111,24 +113,29 @@ export type * from "../../src/ts/ts-rs/WorkspaceConfigUpdate.d.ts";
111
113
  export type * from "../../src/ts/ts-rs/ExportMethod.d.ts";
112
114
  export type * from "../../src/ts/ts-rs/PanelOptions.d.ts";
113
115
  export type * from "../../src/ts/ts-rs/RestoreOptions.d.ts";
116
+ export type * from "../../src/ts/ts-rs/RestoreWorkspaceOptions.d.ts";
117
+ export type * from "../../src/ts/ts-rs/AddPanelOptions.d.ts";
114
118
  export type * from "../../src/ts/ts-rs/SaveWorkspaceOptions.d.ts";
115
119
  export type * from "../../src/ts/ts-rs/ClientOptions.d.ts";
116
120
  export type * from "../../src/ts/ts-rs/ExportOptions.d.ts";
117
121
  export type * from "../../src/ts/ts-rs/GetTableOptions.d.ts";
118
122
  export type * from "../../src/ts/ts-rs/GetClientOptions.d.ts";
123
+ export type * from "../../src/ts/ts-rs/GetViewOptions.d.ts";
124
+ export type * from "../../src/ts/ts-rs/GetViewMode.d.ts";
119
125
  export type * from "../../src/ts/ts-rs/CustomNumberFormatConfig.d.ts";
120
126
  export type * from "../../src/ts/ts-rs/NumberFormatStyle.d.ts";
121
127
  export type * from "../../src/ts/ts-rs/Notation.d.ts";
122
128
  export type * from "../../src/ts/ts-rs/DatetimeFormatType.d.ts";
123
- export type * from "../../src/ts/ts-rs/StringColorMode.d.ts";
124
- export type * from "../../src/ts/ts-rs/DatetimeColorMode.d.ts";
125
- export type * from "../../src/ts/ts-rs/FormatMode.d.ts";
129
+
126
130
  import type {GetTableOptions} from "../../src/ts/ts-rs/GetTableOptions.d.ts";
127
131
  import type {PanelOptions} from "../../src/ts/ts-rs/PanelOptions.d.ts";
128
132
  import type {RestoreOptions} from "../../src/ts/ts-rs/RestoreOptions.d.ts";
133
+ import type {RestoreWorkspaceOptions} from "../../src/ts/ts-rs/RestoreWorkspaceOptions.d.ts";
134
+ import type {AddPanelOptions} from "../../src/ts/ts-rs/AddPanelOptions.d.ts";
129
135
  import type {SaveWorkspaceOptions} from "../../src/ts/ts-rs/SaveWorkspaceOptions.d.ts";
130
136
  import type {ExportOptions} from "../../src/ts/ts-rs/ExportOptions.d.ts";
131
137
  import type {GetClientOptions} from "../../src/ts/ts-rs/GetClientOptions.d.ts";
138
+ import type {GetViewOptions} from "../../src/ts/ts-rs/GetViewOptions.d.ts";
132
139
  import type {ClientOptions} from "../../src/ts/ts-rs/ClientOptions.d.ts";
133
140
  import type {ViewerConfig} from "../../src/ts/ts-rs/ViewerConfig.d.ts";
134
141
  import type {ViewerConfigUpdate} from "../../src/ts/ts-rs/ViewerConfigUpdate.d.ts";
@@ -372,26 +379,6 @@ export class Client {
372
379
  terminate(): any;
373
380
  }
374
381
 
375
- export class CopyDropDownMenuElement {
376
- free(): void;
377
- [Symbol.dispose](): void;
378
- __set_model(parent: PerspectiveViewerElement): void;
379
- connected_callback(): void;
380
- hide(): void;
381
- constructor(elem: HTMLElement);
382
- open(target: HTMLElement): void;
383
- }
384
-
385
- export class ExportDropDownMenuElement {
386
- free(): void;
387
- [Symbol.dispose](): void;
388
- __set_model(parent: PerspectiveViewerElement): void;
389
- connected_callback(): void;
390
- hide(): void;
391
- constructor(elem: HTMLElement);
392
- open(target: HTMLElement): void;
393
- }
394
-
395
382
  /**
396
383
  * JavaScript-facing DuckDB SQL query builder.
397
384
  *
@@ -489,16 +476,7 @@ export class PerspectiveDebugPluginElement {
489
476
  save(): any;
490
477
  /**
491
478
  * Delegates to `draw()` VIRTUALLY — through the JS element's `draw`
492
- * property, never `self.draw(view)` (Rust static dispatch). This
493
- * element is the documented base class for custom plugins
494
- * (`class MyPlugin extends
495
- * customElements.get("perspective-viewer-plugin")`), whose contract is
496
- * "`update()` defaults to dispatch to `draw()`" — a
497
- * subclass overriding only `draw` must receive `update`-path repaints
498
- * (`BindDisposition::Unchanged`/`Adopted` runs,
499
- * `PLUGIN_DRAW_INVARIANT_PLAN.md`); the static call bypassed the
500
- * override and repainted the Debug CSV instead (the
501
- * `view_lifecycle.spec` regression).
479
+ * property, never `self.draw(view)` (Rust static dispatch).
502
480
  */
503
481
  update(view: View): Promise<any>;
504
482
  readonly config_column_names: any;
@@ -551,8 +529,15 @@ export class PerspectiveViewerElement {
551
529
  *
552
530
  * The element-level `settings` field does not exist on the argument
553
531
  * type (it is shared across the element, not per-panel).
532
+ *
533
+ * # Arguments
534
+ *
535
+ * - `config` - The new panel's initial config, whose `table` is required.
536
+ * - `options.wait_for_table` - when `true`, a `table` no loaded client
537
+ * hosts yet creates the panel empty and pending until the table is
538
+ * created, instead of the default rejection.
554
539
  */
555
- addPanel(config: ViewerConfigInitial): Promise<any>;
540
+ addPanel(config: ViewerConfigInitial, options?: AddPanelOptions | null): Promise<any>;
556
541
  /**
557
542
  * Configure the embedded LLM agent (see `prompt()`), replacing any prior
558
543
  * configuration and conversation.
@@ -840,27 +825,46 @@ export class PerspectiveViewerElement {
840
825
  getTable(options?: GetTableOptions | null): Promise<any>;
841
826
  getThemes(): Promise<any>;
842
827
  /**
843
- * Get the underlying [`View`] for this viewer.
828
+ * Get a [`View`] for a panel of this viewer, as currently configured by
829
+ * the user.
844
830
  *
845
- * Use this method to get promgrammatic access to the [`View`] as currently
846
- * configured by the user, for e.g. serializing as an
847
- * [Apache Arrow](https://arrow.apache.org/) before passing to another
848
- * library.
831
+ * # Arguments
849
832
  *
850
- * The [`View`] returned by this method is owned by the
851
- * [`PerspectiveViewerElement`] and may be _invalidated_ by
852
- * [`View::delete`] at any time. Plugins which rely on this [`View`] for
853
- * their [`HTMLPerspectiveViewerPluginElement::draw`] implementations
854
- * should treat this condition as a _cancellation_ by silently aborting on
855
- * "View already deleted" errors from method calls.
833
+ * - `mode` - which [`View`] to return:
834
+ * - `"live"` (default) - the panel's own [`View`], which the viewer
835
+ * replaces on every config change and deletes when auto-paused or
836
+ * [`PerspectiveViewerElement::delete`]d, so calls on it may fail with
837
+ * "View already deleted", it must never be deleted by the caller, and
838
+ * it rejects with `No View for panel "<name>"` while none is bound
839
+ * (auto-paused or not yet rendered).
840
+ * - `"clone"` - a new [`View`] built from the panel's effective config
841
+ * (global filter included), independent of the render lifecycle, which
842
+ * the caller owns and must [`View::delete`].
843
+ * - `"auto"` - `"live"` when the panel has a bound [`View`], else
844
+ * `"clone"`.
845
+ * - `panel` - the target panel, or the active panel when omitted.
846
+ *
847
+ * Plugins which rely on the live [`View`] for their
848
+ * [`HTMLPerspectiveViewerPluginElement::draw`] implementations should
849
+ * treat "View already deleted" as a _cancellation_ by silently aborting.
856
850
  *
857
851
  * # JavaScript Examples
858
852
  *
859
853
  * ```javascript
860
854
  * const view = await viewer.getView();
861
855
  * ```
856
+ *
857
+ * Export every panel without borrowing the viewer's own [`View`]:
858
+ *
859
+ * ```javascript
860
+ * for (const panel of viewer.getPanelNames()) {
861
+ * const view = await viewer.getView({ panel, mode: "clone" });
862
+ * const arrow = await view.to_arrow();
863
+ * await view.delete();
864
+ * }
865
+ * ```
862
866
  */
863
- getView(options?: PanelOptions | null): Promise<any>;
867
+ getView(options?: GetViewOptions | null): Promise<any>;
864
868
  /**
865
869
  * Get a copy of the [`ViewConfig`] for the current [`View`]. This is
866
870
  * non-blocking as it does not need to access the plugin (unlike
@@ -1061,12 +1065,13 @@ export class PerspectiveViewerElement {
1061
1065
  * - `options.panel` - The panel to target, or the active panel when
1062
1066
  * omitted.
1063
1067
  * - `options.suppress_errors` - when `true`, a failed restore only rejects
1064
- * the returned `Promise`; the error is NOT committed to the viewer's
1065
- * visible error state and the session remains usable. The view config is
1066
- * rolled back to its pre-call value, so a rejected patch cannot re-merge
1067
- * into a later restore. Element-level state the call already applied
1068
- * (theme, title, a plugin swap) is NOT undone — restore a known-good
1069
- * config to recover those exactly.
1068
+ * the returned `Promise` and rolls the view config back, leaving the
1069
+ * viewer's visible error state and any element-level state the call
1070
+ * already applied (theme, title, plugin, a successful `table` change)
1071
+ * untouched.
1072
+ * - `options.wait_for_table` - when `true`, a `table` no loaded client
1073
+ * hosts yet leaves the panel empty and pending until the table is
1074
+ * created, instead of the default error.
1070
1075
  *
1071
1076
  * # JavaScript Examples
1072
1077
  *
@@ -1086,20 +1091,33 @@ export class PerspectiveViewerElement {
1086
1091
  */
1087
1092
  restore(update: ViewerConfigUpdate, options?: RestoreOptions | null): Promise<void>;
1088
1093
  /**
1089
- * Restore the ENTIRE element from a [`WorkspaceConfigUpdate`]
1090
- * (`{version, active?, layout, panels, ...}`) —
1091
- * the multi-panel counterpart of [`Self::restore`]. Every existing panel
1092
- * is replaced by the `panels` entries, and the layout tree + master/detail
1093
- * cross-filter state re-applied. Unlike [`Self::restore`], this never
1094
- * falls back to the single-panel path.
1094
+ * Apply a [`WorkspaceConfigUpdate`] to the element — the multi-panel
1095
+ * counterpart of [`Self::restore`] and like it a field-wise update, where
1096
+ * an absent field is unchanged, `null` resets and a value replaces.
1097
+ *
1098
+ * # Arguments
1099
+ *
1100
+ * - `update` - The workspace config update: a [`Self::saveWorkspace`]
1101
+ * token replaces every panel (`panels` is the whole set), while a token
1102
+ * without `panels` keeps them and `layout`, `active` and `masters` name
1103
+ * them by their existing ids.
1104
+ * - `options.wait_for_table` - when `true`, a panel whose `table` no
1105
+ * loaded client hosts yet is created empty and pending until the table
1106
+ * is created, instead of the default error.
1095
1107
  *
1096
1108
  * # JavaScript Examples
1097
1109
  *
1098
1110
  * ```javascript
1099
1111
  * await viewer.restoreWorkspace(await otherViewer.saveWorkspace());
1100
1112
  * ```
1113
+ *
1114
+ * Cross-filter the current panels without re-creating them:
1115
+ *
1116
+ * ```javascript
1117
+ * await viewer.restoreWorkspace({ global_filters: [["Region", "==", "West"]] });
1118
+ * ```
1101
1119
  */
1102
- restoreWorkspace(update: WorkspaceConfigUpdate): Promise<void>;
1120
+ restoreWorkspace(update: WorkspaceConfigUpdate, options?: RestoreWorkspaceOptions | null): Promise<void>;
1103
1121
  /**
1104
1122
  * Restyle all plugins from current document.
1105
1123
  *
@@ -1588,12 +1606,31 @@ export class View {
1588
1606
  * deleted, this callback will be invoked.
1589
1607
  */
1590
1608
  on_delete(on_delete: Function): Promise<any>;
1609
+ /**
1610
+ * Register a callback which is invoked whenever rows are removed from
1611
+ * this [`View`]'s [`Table`] by [`Table::remove`], with an object
1612
+ * containing `port_id` and `indices`, the removed `index` column
1613
+ * values as an Arrow of one column named after the index.
1614
+ *
1615
+ * [`Table::replace`] reports the keys it does not re-supply and
1616
+ * [`Table::clear`] reports every key. `on_remove` never fires for a
1617
+ * [`Table`] without an `index`.
1618
+ *
1619
+ * # JavaScript Examples
1620
+ *
1621
+ * ```javascript
1622
+ * const id = await view.on_remove(({ indices, port_id }) => {
1623
+ * replica.remove(indices);
1624
+ * });
1625
+ * ```
1626
+ */
1627
+ on_remove(on_remove_js: (data: OnRemoveData) => void): Promise<any>;
1591
1628
  /**
1592
1629
  * Register a callback with this [`View`]. Whenever the view's underlying
1593
1630
  * table emits an update, this callback will be invoked with an object
1594
1631
  * containing `port_id`, indicating which port the update fired on, and
1595
1632
  * optionally `delta`, which is the new data that was updated for each
1596
- * cell or each row.
1633
+ * cell or each row (as an Arrow).
1597
1634
  *
1598
1635
  * # Arguments
1599
1636
  *
@@ -1601,27 +1638,33 @@ export class View {
1601
1638
  * object with two keys: `port_id`, indicating which port the update was
1602
1639
  * triggered on, and `delta`, whose value is dependent on the mode
1603
1640
  * parameter.
1604
- * - `options` - If this is provided as `OnUpdateOptions { mode:
1605
- * Some(OnUpdateMode::Row) }`, then `delta` is an Arrow of the updated
1606
- * rows. Otherwise `delta` will be [`Option::None`].
1641
+ * - `options` - If this is provided as `{mode: "row"}`, then `delta` is an
1642
+ * Arrow of the updated rows. Otherwise `delta` will be `null`.
1607
1643
  *
1608
1644
  * # JavaScript Examples
1609
1645
  *
1610
1646
  * ```javascript
1611
- * // Attach an `on_update` callback
1612
1647
  * view.on_update((updated) => console.log(updated.port_id));
1613
1648
  * ```
1614
1649
  *
1615
1650
  * ```javascript
1616
- * // `on_update` with row deltas
1617
1651
  * view.on_update((updated) => console.log(updated.delta), { mode: "row" });
1618
1652
  * ```
1619
1653
  */
1620
- on_update(on_update_js: Function, options?: OnUpdateOptions | null): Promise<any>;
1654
+ on_update(on_update_js: (data: OnUpdateData) => void, options?: OnUpdateOptions | null): Promise<any>;
1621
1655
  /**
1622
1656
  * Unregister a previously registered [`View::on_delete`] callback.
1623
1657
  */
1624
1658
  remove_delete(callback_id: number): Promise<any>;
1659
+ /**
1660
+ * Unregister a previously registered [`View::on_remove`] callback.
1661
+ *
1662
+ * # Arguments
1663
+ *
1664
+ * - `id` - A callback `id` as returned by a reciprocal call to
1665
+ * [`View::on_remove`].
1666
+ */
1667
+ remove_remove(callback_id: number): Promise<void>;
1625
1668
  /**
1626
1669
  * Unregister a previously registered update callback with this [`View`].
1627
1670
  *
@@ -1740,17 +1783,8 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
1740
1783
 
1741
1784
  export interface InitOutput {
1742
1785
  readonly memory: WebAssembly.Memory;
1743
- readonly __wbg_copydropdownmenuelement_free: (a: number, b: number) => void;
1744
1786
  readonly __wbg_perspectivedebugpluginelement_free: (a: number, b: number) => void;
1745
1787
  readonly __wbg_perspectiveviewerelement_free: (a: number, b: number) => void;
1746
- readonly copydropdownmenuelement___set_model: (a: number, b: number) => void;
1747
- readonly copydropdownmenuelement_connected_callback: (a: number) => void;
1748
- readonly copydropdownmenuelement_hide: (a: number, b: number) => void;
1749
- readonly copydropdownmenuelement_new: (a: number) => number;
1750
- readonly copydropdownmenuelement_open: (a: number, b: number) => void;
1751
- readonly exportdropdownmenuelement___set_model: (a: number, b: number) => void;
1752
- readonly exportdropdownmenuelement_hide: (a: number, b: number) => void;
1753
- readonly exportdropdownmenuelement_open: (a: number, b: number) => void;
1754
1788
  readonly get_wasm_module: (a: number) => void;
1755
1789
  readonly get_worker_url: (a: number) => void;
1756
1790
  readonly init: (a: number, b: number) => void;
@@ -1765,7 +1799,7 @@ export interface InitOutput {
1765
1799
  readonly perspectivedebugpluginelement_select_mode: (a: number, b: number) => void;
1766
1800
  readonly perspectivedebugpluginelement_update: (a: number, b: number) => number;
1767
1801
  readonly perspectiveviewerelement___get_model: (a: number) => number;
1768
- readonly perspectiveviewerelement_addPanel: (a: number, b: number) => number;
1802
+ readonly perspectiveviewerelement_addPanel: (a: number, b: number, c: number) => number;
1769
1803
  readonly perspectiveviewerelement_agentConfig: (a: number, b: number, c: number) => void;
1770
1804
  readonly perspectiveviewerelement_agentPrompt: (a: number, b: number, c: number) => number;
1771
1805
  readonly perspectiveviewerelement_agentReset: (a: number) => number;
@@ -1796,7 +1830,7 @@ export interface InitOutput {
1796
1830
  readonly perspectiveviewerelement_resetThemes: (a: number, b: number, c: number) => number;
1797
1831
  readonly perspectiveviewerelement_resize: (a: number, b: number) => number;
1798
1832
  readonly perspectiveviewerelement_restore: (a: number, b: number, c: number) => number;
1799
- readonly perspectiveviewerelement_restoreWorkspace: (a: number, b: number) => number;
1833
+ readonly perspectiveviewerelement_restoreWorkspace: (a: number, b: number, c: number) => number;
1800
1834
  readonly perspectiveviewerelement_restyleElement: (a: number) => number;
1801
1835
  readonly perspectiveviewerelement_save: (a: number, b: number) => number;
1802
1836
  readonly perspectiveviewerelement_saveWorkspace: (a: number, b: number) => number;
@@ -1812,9 +1846,6 @@ export interface InitOutput {
1812
1846
  readonly perspectivedebugpluginelement_resize: (a: number) => number;
1813
1847
  readonly perspectivedebugpluginelement_min_config_columns: (a: number) => number;
1814
1848
  readonly perspectivedebugpluginelement_restyle: (a: number) => void;
1815
- readonly exportdropdownmenuelement_new: (a: number) => number;
1816
- readonly __wbg_exportdropdownmenuelement_free: (a: number, b: number) => void;
1817
- readonly exportdropdownmenuelement_connected_callback: (a: number) => void;
1818
1849
  readonly __wbg_client_free: (a: number, b: number) => void;
1819
1850
  readonly __wbg_genericsqlvirtualservermodel_free: (a: number, b: number) => void;
1820
1851
  readonly __wbg_proxysession_free: (a: number, b: number) => void;
@@ -1883,8 +1914,10 @@ export interface InitOutput {
1883
1914
  readonly view_num_columns: (a: number) => number;
1884
1915
  readonly view_num_rows: (a: number) => number;
1885
1916
  readonly view_on_delete: (a: number, b: number) => number;
1917
+ readonly view_on_remove: (a: number, b: number) => number;
1886
1918
  readonly view_on_update: (a: number, b: number, c: number) => number;
1887
1919
  readonly view_remove_delete: (a: number, b: number) => number;
1920
+ readonly view_remove_remove: (a: number, b: number) => number;
1888
1921
  readonly view_remove_update: (a: number, b: number) => number;
1889
1922
  readonly view_schema: (a: number) => number;
1890
1923
  readonly view_set_depth: (a: number, b: number) => number;
@@ -1906,22 +1939,22 @@ export interface InitOutput {
1906
1939
  readonly virtualdataslice_setStringCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1907
1940
  readonly virtualserver_handleRequest: (a: number, b: number, c: number) => number;
1908
1941
  readonly virtualserver_new: (a: number, b: number) => void;
1909
- readonly __wasm_bindgen_func_elem_18416: (a: number, b: number) => void;
1910
- readonly __wasm_bindgen_func_elem_19123: (a: number, b: number) => void;
1911
- readonly __wasm_bindgen_func_elem_20026: (a: number, b: number) => void;
1912
- readonly __wasm_bindgen_func_elem_4350: (a: number, b: number) => void;
1913
- readonly __wasm_bindgen_func_elem_24703: (a: number, b: number) => void;
1914
- readonly __wasm_bindgen_func_elem_32844: (a: number, b: number, c: number, d: number) => void;
1915
- readonly __wasm_bindgen_func_elem_18535: (a: number, b: number, c: number) => void;
1916
- readonly __wasm_bindgen_func_elem_19128: (a: number, b: number, c: number) => void;
1917
- readonly __wasm_bindgen_func_elem_7657: (a: number, b: number, c: number) => void;
1918
- readonly __wasm_bindgen_func_elem_7658: (a: number, b: number, c: number) => void;
1919
- readonly __wasm_bindgen_func_elem_7659: (a: number, b: number, c: number) => void;
1920
- readonly __wasm_bindgen_func_elem_7655: (a: number, b: number, c: number) => void;
1921
- readonly __wasm_bindgen_func_elem_24720: (a: number, b: number, c: number) => void;
1922
- readonly __wasm_bindgen_func_elem_21027: (a: number, b: number) => number;
1923
- readonly __wasm_bindgen_func_elem_19127: (a: number, b: number) => void;
1924
- readonly __wasm_bindgen_func_elem_21028: (a: number, b: number) => void;
1942
+ readonly __wasm_bindgen_func_elem_18885: (a: number, b: number) => void;
1943
+ readonly __wasm_bindgen_func_elem_4479: (a: number, b: number) => void;
1944
+ readonly __wasm_bindgen_func_elem_19596: (a: number, b: number) => void;
1945
+ readonly __wasm_bindgen_func_elem_20506: (a: number, b: number) => void;
1946
+ readonly __wasm_bindgen_func_elem_25319: (a: number, b: number) => void;
1947
+ readonly __wasm_bindgen_func_elem_33477: (a: number, b: number, c: number, d: number) => void;
1948
+ readonly __wasm_bindgen_func_elem_19005: (a: number, b: number, c: number) => void;
1949
+ readonly __wasm_bindgen_func_elem_7877: (a: number, b: number, c: number) => void;
1950
+ readonly __wasm_bindgen_func_elem_7878: (a: number, b: number, c: number) => void;
1951
+ readonly __wasm_bindgen_func_elem_7879: (a: number, b: number, c: number) => void;
1952
+ readonly __wasm_bindgen_func_elem_7875: (a: number, b: number, c: number) => void;
1953
+ readonly __wasm_bindgen_func_elem_19601: (a: number, b: number, c: number) => void;
1954
+ readonly __wasm_bindgen_func_elem_25336: (a: number, b: number, c: number) => void;
1955
+ readonly __wasm_bindgen_func_elem_21545: (a: number, b: number) => number;
1956
+ readonly __wasm_bindgen_func_elem_19600: (a: number, b: number) => void;
1957
+ readonly __wasm_bindgen_func_elem_21546: (a: number, b: number) => void;
1925
1958
  readonly __wbindgen_export: (a: number, b: number) => number;
1926
1959
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
1927
1960
  readonly __wbindgen_export3: (a: number) => void;