@perspective-dev/viewer 4.5.2 → 5.0.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 +20 -1
- package/dist/cdn/perspective-viewer.js.map +4 -4
- package/dist/css/botanical.css +1 -1
- 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/monokai.css +1 -1
- package/dist/css/phosphor.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 +22 -3
- package/dist/esm/perspective-viewer.d.ts +9 -0
- package/dist/esm/perspective-viewer.inline.js +20 -1
- package/dist/esm/perspective-viewer.inline.js.map +4 -4
- package/dist/esm/perspective-viewer.js +20 -1
- package/dist/esm/perspective-viewer.js.map +4 -4
- package/dist/esm/plugin.d.ts +71 -5
- package/dist/esm/ts-rs/ClientOptions.d.ts +7 -0
- package/dist/esm/ts-rs/ExportMethod.d.ts +1 -0
- package/dist/esm/ts-rs/ExportOptions.d.ts +9 -0
- package/dist/esm/ts-rs/GetClientOptions.d.ts +8 -0
- package/dist/esm/ts-rs/GetTableOptions.d.ts +8 -0
- package/dist/esm/ts-rs/Layout.d.ts +11 -0
- package/dist/esm/ts-rs/Orientation.d.ts +4 -0
- package/dist/esm/ts-rs/PanelOptions.d.ts +7 -0
- package/dist/esm/ts-rs/PanelViewerConfig.d.ts +39 -0
- package/dist/esm/ts-rs/SplitLayout.d.ts +7 -0
- package/dist/esm/ts-rs/TabLayout.d.ts +10 -0
- package/dist/esm/ts-rs/ViewerConfig.d.ts +6 -2
- package/dist/esm/ts-rs/WorkspaceConfig.d.ts +40 -0
- package/dist/esm/ts-rs/WorkspaceConfigUpdate.d.ts +28 -0
- package/dist/wasm/perspective-viewer.d.ts +211 -77
- package/dist/wasm/perspective-viewer.js +528 -180
- package/dist/wasm/perspective-viewer.wasm +0 -0
- package/dist/wasm/perspective-viewer.wasm.d.ts +34 -26
- package/dist/wasm/snippets/perspective-viewer-daeef4ceb066e6c7/inline0.js +6 -0
- package/dist/wasm/snippets/{perspective-viewer-93064d0d79855d97/inline3.js → perspective-viewer-daeef4ceb066e6c7/inline4.js} +5 -0
- package/package.json +3 -2
- package/src/css/_context_menu.css +14 -0
- package/src/css/column-settings-panel.css +1 -1
- package/src/css/containers/context-menu.css +101 -0
- package/src/css/panel-tab.css +193 -0
- package/src/css/plugin-selector.css +7 -10
- package/src/css/status-bar.css +75 -81
- package/src/css/viewer.css +180 -70
- package/src/rust/components/column_dropdown.rs +40 -30
- package/src/rust/components/column_selector/active_column.rs +7 -18
- package/src/rust/components/column_selector/aggregate_selector.rs +4 -7
- package/src/rust/components/column_selector/config_selector.rs +33 -81
- package/src/rust/components/column_selector/filter_column.rs +5 -15
- package/src/rust/components/column_selector/inactive_column.rs +3 -8
- package/src/rust/components/column_selector/sort_column.rs +3 -6
- package/src/rust/components/column_selector.rs +5 -11
- package/src/rust/components/containers/split_panel.rs +175 -62
- package/src/rust/components/context_menu.rs +130 -0
- package/src/rust/components/form/debug.rs +3 -0
- package/src/rust/components/global_filter_bar.rs +76 -0
- package/src/rust/components/main_panel/frame_theme.rs +186 -0
- package/src/rust/components/main_panel/msg.rs +62 -0
- package/src/rust/components/main_panel/presize.rs +220 -0
- package/src/rust/components/main_panel/reconcile.rs +224 -0
- package/src/rust/components/main_panel/render.rs +385 -0
- package/src/rust/components/main_panel/update.rs +184 -0
- package/src/rust/components/main_panel.rs +311 -71
- package/src/rust/components/mod.rs +4 -0
- package/src/rust/components/panel_menu.rs +486 -0
- package/src/rust/components/panel_tab.rs +505 -0
- package/src/rust/components/plugin_tab.rs +1 -1
- package/src/rust/components/settings_panel.rs +13 -5
- package/src/rust/components/status_bar.rs +110 -178
- package/src/rust/components/status_indicator.rs +6 -9
- package/src/rust/components/style/mod.rs +5 -0
- package/src/rust/components/style/style_provider.rs +2 -0
- package/src/rust/components/viewer/filters.rs +133 -0
- package/src/rust/components/viewer/msg.rs +180 -0
- package/src/rust/components/viewer/panels.rs +326 -0
- package/src/rust/components/viewer/render.rs +243 -0
- package/src/rust/components/viewer/settings.rs +402 -0
- package/src/rust/components/viewer/snapshots.rs +134 -0
- package/src/rust/components/viewer/wiring.rs +505 -0
- package/src/rust/components/viewer.rs +243 -756
- package/src/rust/config/export_method.rs +1 -1
- package/src/rust/config/mod.rs +4 -0
- package/src/rust/config/options.rs +71 -0
- package/src/rust/config/viewer_config.rs +24 -2
- package/src/rust/config/workspace_config.rs +92 -0
- package/src/rust/custom_elements/copy_dropdown.rs +3 -1
- package/src/rust/custom_elements/debug_plugin.rs +20 -1
- package/src/rust/custom_elements/export_dropdown.rs +3 -1
- package/src/rust/custom_elements/viewer.rs +1015 -286
- package/src/rust/custom_events.rs +212 -61
- package/src/rust/js/mod.rs +2 -0
- package/src/rust/js/plugin.rs +297 -10
- package/src/rust/js/regular_layout.rs +258 -0
- package/src/rust/lib.rs +20 -1
- package/src/rust/presentation.rs +66 -33
- package/src/rust/queries/get_viewer_config.rs +29 -11
- package/src/rust/queries/plugin_column_styles.rs +2 -2
- package/src/rust/renderer/activate.rs +41 -14
- package/src/rust/renderer/dispatch.rs +436 -0
- package/src/rust/renderer/plugin_config.rs +495 -0
- package/src/rust/renderer/registry.rs +18 -6
- package/src/rust/renderer/render_timer.rs +29 -10
- package/src/rust/renderer.rs +350 -837
- package/src/rust/session/column_defaults_update.rs +26 -8
- package/src/rust/session/view_subscription.rs +30 -15
- package/src/rust/session.rs +753 -264
- package/src/rust/tasks/apply_global_filters.rs +89 -0
- package/src/rust/tasks/auto_pause.rs +171 -0
- package/src/rust/tasks/copy_export.rs +29 -19
- package/src/rust/tasks/create_panel.rs +243 -0
- package/src/rust/tasks/dismiss_render_warning.rs +3 -1
- package/src/rust/tasks/edit_expression.rs +4 -4
- package/src/rust/tasks/eject.rs +64 -23
- package/src/rust/tasks/mod.rs +28 -4
- package/src/rust/tasks/pipeline.rs +411 -0
- package/src/rust/tasks/presize_panels.rs +324 -0
- package/src/rust/tasks/reset_all.rs +22 -12
- package/src/rust/tasks/resize_observer.rs +124 -87
- package/src/rust/tasks/restore_and_render.rs +80 -86
- package/src/rust/tasks/restore_panel.rs +145 -0
- package/src/rust/tasks/send_column_config.rs +5 -2
- package/src/rust/tasks/send_plugin_config.rs +5 -2
- package/src/rust/tasks/set_edit_mode.rs +59 -0
- package/src/rust/tasks/sync_update_panels.rs +152 -0
- package/src/rust/tasks/table_lifecycle.rs +158 -0
- package/src/rust/tasks/update_theme.rs +56 -12
- package/src/rust/utils/completion.rs +56 -0
- package/src/rust/utils/custom_element.rs +5 -0
- package/src/rust/utils/debounce.rs +130 -7
- package/src/rust/utils/mod.rs +6 -0
- package/src/rust/utils/pending_effects.rs +62 -0
- package/src/rust/utils/spawn.rs +33 -0
- package/src/rust/utils/weak_scope.rs +0 -10
- package/src/rust/workspace.rs +846 -0
- package/src/svg/active-indicator.svg +3 -0
- package/src/themes/botanical.css +5 -2
- package/src/themes/defaults.css +54 -2
- package/src/themes/dracula.css +6 -3
- package/src/themes/gruvbox-dark.css +5 -2
- package/src/themes/gruvbox.css +5 -2
- package/src/themes/icons.css +4 -2
- package/src/themes/monokai.css +5 -2
- package/src/themes/phosphor.css +5 -2
- package/src/themes/pro-dark.css +5 -2
- package/src/themes/pro.css +2 -1
- package/src/themes/solarized-dark.css +5 -2
- package/src/themes/solarized.css +5 -2
- package/src/themes/vaporwave.css +5 -2
- package/src/ts/bootstrap.ts +8 -7
- package/src/ts/extensions.ts +30 -2
- package/src/ts/perspective-viewer.ts +10 -0
- package/src/ts/plugin.ts +72 -5
- package/src/ts/ts-rs/ClientOptions.ts +7 -0
- package/src/ts/ts-rs/ExportMethod.ts +3 -0
- package/src/ts/ts-rs/ExportOptions.ts +8 -0
- package/src/ts/ts-rs/GetClientOptions.ts +7 -0
- package/src/ts/ts-rs/GetTableOptions.ts +7 -0
- package/src/ts/ts-rs/Layout.ts +9 -0
- package/src/ts/ts-rs/Orientation.ts +6 -0
- package/src/ts/ts-rs/PanelOptions.ts +7 -0
- package/src/ts/ts-rs/PanelViewerConfig.ts +15 -0
- package/src/ts/ts-rs/SplitLayout.ts +5 -0
- package/src/ts/ts-rs/TabLayout.ts +11 -0
- package/src/ts/ts-rs/ViewerConfig.ts +6 -2
- package/src/ts/ts-rs/WorkspaceConfig.ts +36 -0
- package/src/ts/ts-rs/WorkspaceConfigUpdate.ts +24 -0
- package/src/rust/tasks/intersection_observer.rs +0 -98
- package/src/rust/tasks/update_and_render.rs +0 -110
- /package/dist/wasm/snippets/{perspective-viewer-93064d0d79855d97/inline0.js → perspective-viewer-daeef4ceb066e6c7/inline1.js} +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-93064d0d79855d97/inline1.js → perspective-viewer-daeef4ceb066e6c7/inline2.js} +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-93064d0d79855d97/inline2.js → perspective-viewer-daeef4ceb066e6c7/inline3.js} +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-93064d0d79855d97/inline4.js → perspective-viewer-daeef4ceb066e6c7/inline5.js} +0 -0
|
@@ -18,8 +18,23 @@ import type {
|
|
|
18
18
|
export type * from "../../src/ts/ts-rs/ViewerConfig.d.ts";
|
|
19
19
|
export type * from "../../src/ts/ts-rs/ViewerConfigUpdate.d.ts";
|
|
20
20
|
export type * from "../../src/ts/ts-rs/PluginStaticConfig.d.ts";
|
|
21
|
+
export type * from "../../src/ts/ts-rs/WorkspaceConfig.d.ts";
|
|
22
|
+
export type * from "../../src/ts/ts-rs/WorkspaceConfigUpdate.d.ts";
|
|
23
|
+
export type * from "../../src/ts/ts-rs/ExportMethod.d.ts";
|
|
24
|
+
export type * from "../../src/ts/ts-rs/PanelOptions.d.ts";
|
|
25
|
+
export type * from "../../src/ts/ts-rs/ClientOptions.d.ts";
|
|
26
|
+
export type * from "../../src/ts/ts-rs/ExportOptions.d.ts";
|
|
27
|
+
export type * from "../../src/ts/ts-rs/GetTableOptions.d.ts";
|
|
28
|
+
export type * from "../../src/ts/ts-rs/GetClientOptions.d.ts";
|
|
29
|
+
import type {GetTableOptions} from "../../src/ts/ts-rs/GetTableOptions.d.ts";
|
|
30
|
+
import type {PanelOptions} from "../../src/ts/ts-rs/PanelOptions.d.ts";
|
|
31
|
+
import type {ExportOptions} from "../../src/ts/ts-rs/ExportOptions.d.ts";
|
|
32
|
+
import type {GetClientOptions} from "../../src/ts/ts-rs/GetClientOptions.d.ts";
|
|
33
|
+
import type {ClientOptions} from "../../src/ts/ts-rs/ClientOptions.d.ts";
|
|
21
34
|
import type {ViewerConfig} from "../../src/ts/ts-rs/ViewerConfig.d.ts";
|
|
22
35
|
import type {ViewerConfigUpdate} from "../../src/ts/ts-rs/ViewerConfigUpdate.d.ts";
|
|
36
|
+
import type {WorkspaceConfig} from "../../src/ts/ts-rs/WorkspaceConfig.d.ts";
|
|
37
|
+
import type {WorkspaceConfigUpdate} from "../../src/ts/ts-rs/WorkspaceConfigUpdate.d.ts";
|
|
23
38
|
|
|
24
39
|
|
|
25
40
|
|
|
@@ -372,6 +387,19 @@ export class PerspectiveDebugPluginElement {
|
|
|
372
387
|
restore(_config?: any | null): void;
|
|
373
388
|
restyle(): void;
|
|
374
389
|
save(): any;
|
|
390
|
+
/**
|
|
391
|
+
* Delegates to `draw()` VIRTUALLY — through the JS element's `draw`
|
|
392
|
+
* property, never `self.draw(view)` (Rust static dispatch). This
|
|
393
|
+
* element is the documented base class for custom plugins
|
|
394
|
+
* (`class MyPlugin extends
|
|
395
|
+
* customElements.get("perspective-viewer-plugin")`), whose contract is
|
|
396
|
+
* "`update()` defaults to dispatch to `draw()`" — a
|
|
397
|
+
* subclass overriding only `draw` must receive `update`-path repaints
|
|
398
|
+
* (`BindDisposition::Unchanged`/`Adopted` runs,
|
|
399
|
+
* `PLUGIN_DRAW_INVARIANT_PLAN.md`); the static call bypassed the
|
|
400
|
+
* override and repainted the Debug CSV instead (the
|
|
401
|
+
* `view_lifecycle.spec` regression).
|
|
402
|
+
*/
|
|
375
403
|
update(view: View): Promise<any>;
|
|
376
404
|
readonly config_column_names: any;
|
|
377
405
|
readonly min_config_columns: any;
|
|
@@ -412,6 +440,16 @@ export class PerspectiveViewerElement {
|
|
|
412
440
|
* Create a new JavaScript Heap reference for this model instance.
|
|
413
441
|
*/
|
|
414
442
|
__get_model(): PerspectiveViewerElement;
|
|
443
|
+
/**
|
|
444
|
+
* Add a new, independent panel to this viewer's layout, rendering the
|
|
445
|
+
* supplied [`ViewerConfigUpdate`] into it. The panel uses the default
|
|
446
|
+
* [`perspective_client::Client`] (the first passed to [`Self::load`]) to
|
|
447
|
+
* resolve its `table`. Returns the generated panel id.
|
|
448
|
+
*
|
|
449
|
+
* Element-level config fields (`settings`, `theme`) in the argument are
|
|
450
|
+
* ignored — those are shared across the element, not per-panel.
|
|
451
|
+
*/
|
|
452
|
+
addPanel(update: ViewerConfigUpdate): Promise<any>;
|
|
415
453
|
connectedCallback(): void;
|
|
416
454
|
/**
|
|
417
455
|
* Copy this viewer's `View` or `Table` data as CSV to the system
|
|
@@ -430,11 +468,11 @@ export class PerspectiveViewerElement {
|
|
|
430
468
|
* })
|
|
431
469
|
* ```
|
|
432
470
|
*/
|
|
433
|
-
copy(
|
|
471
|
+
copy(options?: ExportOptions | null): Promise<any>;
|
|
434
472
|
/**
|
|
435
|
-
* Delete
|
|
473
|
+
* Delete all internal [`View`]s and all associated state, rendering this
|
|
436
474
|
* `<perspective-viewer>` unusable and freeing all associated resources.
|
|
437
|
-
* Does not delete
|
|
475
|
+
* Does not delete any supplied [`Table`] (as this is constructed by the
|
|
438
476
|
* callee).
|
|
439
477
|
*
|
|
440
478
|
* Calling _any_ method on a `<perspective-viewer>` after [`Self::delete`]
|
|
@@ -471,16 +509,25 @@ export class PerspectiveViewerElement {
|
|
|
471
509
|
* })
|
|
472
510
|
* ```
|
|
473
511
|
*/
|
|
474
|
-
download(
|
|
512
|
+
download(options?: ExportOptions | null): Promise<any>;
|
|
475
513
|
/**
|
|
476
|
-
*
|
|
477
|
-
* `
|
|
514
|
+
* Remove a [`Client`] from this `<perspective-viewer>` and dispose every
|
|
515
|
+
* panel bound to it (each panel's `View` is deleted and its `Table`
|
|
516
|
+
* reference released).
|
|
478
517
|
*
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
*
|
|
518
|
+
* # Arguments
|
|
519
|
+
*
|
|
520
|
+
* - `options` - An optional `{client?: string}` dict naming the client to
|
|
521
|
+
* eject; the active panel's client when omitted.
|
|
522
|
+
*
|
|
523
|
+
* # JavaScript Examples
|
|
524
|
+
*
|
|
525
|
+
* ```javascript
|
|
526
|
+
* await viewer.eject();
|
|
527
|
+
* await viewer.eject({client: "remote"});
|
|
528
|
+
* ```
|
|
482
529
|
*/
|
|
483
|
-
eject(): Promise<any>;
|
|
530
|
+
eject(options?: ClientOptions | null): Promise<any>;
|
|
484
531
|
/**
|
|
485
532
|
* Exports this viewer's internal [`View`] as a JavaSript data, the
|
|
486
533
|
* exact type of which depends on the `method` but defaults to `String`
|
|
@@ -501,7 +548,7 @@ export class PerspectiveViewerElement {
|
|
|
501
548
|
* const data = await viewer.export("plugin");
|
|
502
549
|
* ```
|
|
503
550
|
*/
|
|
504
|
-
export(
|
|
551
|
+
export(options?: ExportOptions | null): Promise<any>;
|
|
505
552
|
/**
|
|
506
553
|
* Flush any pending modifications to this `<perspective-viewer>`. Since
|
|
507
554
|
* `<perspective-viewer>`'s API is almost entirely `async`, it may take
|
|
@@ -523,6 +570,11 @@ export class PerspectiveViewerElement {
|
|
|
523
570
|
* ```
|
|
524
571
|
*/
|
|
525
572
|
flush(): Promise<any>;
|
|
573
|
+
/**
|
|
574
|
+
* The id of the active panel — the one the settings panel and status-bar
|
|
575
|
+
* toolbar target — or `null` when the element has zero panels.
|
|
576
|
+
*/
|
|
577
|
+
getActivePanel(): any;
|
|
526
578
|
/**
|
|
527
579
|
* Get an `Array` of all of the plugin custom elements registered for this
|
|
528
580
|
* element. This may not include plugins which called
|
|
@@ -546,12 +598,17 @@ export class PerspectiveViewerElement {
|
|
|
546
598
|
* const client = await viewer.getClient();
|
|
547
599
|
* ```
|
|
548
600
|
*/
|
|
549
|
-
getClient(
|
|
601
|
+
getClient(options?: GetClientOptions | null): Promise<any>;
|
|
550
602
|
/**
|
|
551
|
-
* Get this viewer's edit port for the
|
|
552
|
-
* [`Table::update`] for details on ports)
|
|
603
|
+
* Get this viewer's edit port for the named panel's [`Table`] (see
|
|
604
|
+
* [`Table::update`] for details on ports), or the active panel when
|
|
605
|
+
* `panel` is omitted.
|
|
553
606
|
*/
|
|
554
|
-
getEditPort(): number;
|
|
607
|
+
getEditPort(options?: PanelOptions | null): number;
|
|
608
|
+
/**
|
|
609
|
+
* Get the ids of all panels in this viewer's layout, in insertion order.
|
|
610
|
+
*/
|
|
611
|
+
getPanelNames(): Array<any>;
|
|
555
612
|
/**
|
|
556
613
|
* Gets a plugin Custom Element with the `name` field, or get the active
|
|
557
614
|
* plugin if no `name` is provided.
|
|
@@ -573,12 +630,12 @@ export class PerspectiveViewerElement {
|
|
|
573
630
|
* const {virtual_fps, actual_fps} = await viewer.getRenderStats();
|
|
574
631
|
* ```
|
|
575
632
|
*/
|
|
576
|
-
getRenderStats(): any;
|
|
633
|
+
getRenderStats(options?: PanelOptions | null): any;
|
|
577
634
|
/**
|
|
578
635
|
* Return a [`perspective_js::JsViewWindow`] for the currently selected
|
|
579
|
-
* region.
|
|
636
|
+
* region of the named panel, or the active panel when `panel` is omitted.
|
|
580
637
|
*/
|
|
581
|
-
getSelection(): ViewWindow | undefined;
|
|
638
|
+
getSelection(options?: PanelOptions | null): ViewWindow | undefined;
|
|
582
639
|
/**
|
|
583
640
|
* Get the underlying [`Table`] for this viewer (as passed to
|
|
584
641
|
* [`PerspectiveViewerElement::load`] or as the `table` field to
|
|
@@ -596,7 +653,7 @@ export class PerspectiveViewerElement {
|
|
|
596
653
|
* const table = await viewer.getTable();
|
|
597
654
|
* ```
|
|
598
655
|
*/
|
|
599
|
-
getTable(
|
|
656
|
+
getTable(options?: GetTableOptions | null): Promise<any>;
|
|
600
657
|
/**
|
|
601
658
|
* Get the underlying [`View`] for this viewer.
|
|
602
659
|
*
|
|
@@ -618,22 +675,15 @@ export class PerspectiveViewerElement {
|
|
|
618
675
|
* const view = await viewer.getView();
|
|
619
676
|
* ```
|
|
620
677
|
*/
|
|
621
|
-
getView(): Promise<any>;
|
|
678
|
+
getView(options?: PanelOptions | null): Promise<any>;
|
|
622
679
|
/**
|
|
623
680
|
* Get a copy of the [`ViewConfig`] for the current [`View`]. This is
|
|
624
681
|
* non-blocking as it does not need to access the plugin (unlike
|
|
625
682
|
* [`PerspectiveViewerElement::save`]), and also makes no API calls to the
|
|
626
683
|
* server (unlike [`PerspectiveViewerElement::getView`] followed by
|
|
627
684
|
* [`View::get_config`])
|
|
628
|
-
*
|
|
629
|
-
* Returns the [`ViewConfig`] the currently-bound `View` was constructed
|
|
630
|
-
* from, so the value is consistent with what the active plugin is
|
|
631
|
-
* rendering even if a queued [`Self::restore`]/`update_and_render` has
|
|
632
|
-
* already mutated the live config in anticipation of the next draw.
|
|
633
|
-
* Falls back to the live session config when no `View` has yet been
|
|
634
|
-
* created (e.g., after `load` but before the first render).
|
|
635
685
|
*/
|
|
636
|
-
getViewConfig(): Promise<any>;
|
|
686
|
+
getViewConfig(options?: PanelOptions | null): Promise<any>;
|
|
637
687
|
/**
|
|
638
688
|
* Loads a [`Client`], or optionally [`Table`], or optionally a Javascript
|
|
639
689
|
* `Promise` which returns a [`Client`] or [`Table`], in this viewer.
|
|
@@ -710,28 +760,40 @@ export class PerspectiveViewerElement {
|
|
|
710
760
|
* await viewer.load(table);
|
|
711
761
|
* ```
|
|
712
762
|
*/
|
|
713
|
-
load(
|
|
763
|
+
load(client: Client | Table | Promise<Client | Table>): Promise<any>;
|
|
714
764
|
constructor(elem: HTMLElement);
|
|
715
765
|
/**
|
|
716
|
-
*
|
|
717
|
-
*
|
|
766
|
+
* Remove the panel with id `name` from the layout, disposing its engines
|
|
767
|
+
* (its `View` is deleted and its `Table` reference released). The last
|
|
768
|
+
* remaining panel cannot be removed (resolves as a no-op). Resolves
|
|
769
|
+
* after the panel's teardown run completes, carrying any teardown
|
|
770
|
+
* error — previously fire-and-forget and silently dropped (invariant
|
|
771
|
+
* I6). See also [`Self::addPanel`].
|
|
718
772
|
*/
|
|
719
|
-
|
|
773
|
+
removePanel(name: string): Promise<any>;
|
|
720
774
|
/**
|
|
721
|
-
* Reset
|
|
775
|
+
* Reset a panel's `ViewerConfig` to its data-relative default.
|
|
776
|
+
*
|
|
777
|
+
* Without a `panel`, this is ELEMENT-LEVEL: EVERY panel is reset and the
|
|
778
|
+
* cross-filter overlay cleared (symmetric with whole-element
|
|
779
|
+
* [`Self::save`] / [`Self::restore`]). With `{panel}`, only that panel is
|
|
780
|
+
* reset — the other panels and the overlay are left untouched.
|
|
722
781
|
*
|
|
723
782
|
* # Arguments
|
|
724
783
|
*
|
|
725
784
|
* - `reset_all` - If set, will clear expressions and column settings as
|
|
726
785
|
* well.
|
|
786
|
+
* - `options` - An optional `{panel?: string}`; the panel to reset, or
|
|
787
|
+
* every panel when omitted.
|
|
727
788
|
*
|
|
728
789
|
* # JavaScript Examples
|
|
729
790
|
*
|
|
730
791
|
* ```javascript
|
|
731
|
-
* await viewer.reset();
|
|
792
|
+
* await viewer.reset(); // every panel
|
|
793
|
+
* await viewer.reset(true, {panel: "p1"}); // just "p1", + expressions
|
|
732
794
|
* ```
|
|
733
795
|
*/
|
|
734
|
-
reset(reset_all?: boolean | null): Promise<any>;
|
|
796
|
+
reset(reset_all?: boolean | null, options?: PanelOptions | null): Promise<any>;
|
|
735
797
|
/**
|
|
736
798
|
* If this element is in an _errored_ state, this method will clear it and
|
|
737
799
|
* re-render. Calling this method is equivalent to clicking the error reset
|
|
@@ -780,9 +842,23 @@ export class PerspectiveViewerElement {
|
|
|
780
842
|
*/
|
|
781
843
|
resize(options?: any | null): Promise<any>;
|
|
782
844
|
/**
|
|
783
|
-
*
|
|
784
|
-
* [`perspective_js::JsViewConfig`] (
|
|
785
|
-
*
|
|
845
|
+
* Restore a single panel from a full/partial
|
|
846
|
+
* [`perspective_js::JsViewConfig`] (its user-configurable state, including
|
|
847
|
+
* the `Table` name) — the active panel, or a specific panel via the
|
|
848
|
+
* optional `{panel}` selector.
|
|
849
|
+
*
|
|
850
|
+
* If `panel` names no existing panel, a NEW panel is created with that id
|
|
851
|
+
* and the config restored into it (an upsert), equivalent to
|
|
852
|
+
* [`Self::addPanel`] but with a caller-chosen id. As with a created panel,
|
|
853
|
+
* the element-level `settings`/`theme` fields are ignored in that case.
|
|
854
|
+
*
|
|
855
|
+
* On an empty element with a pending [`Self::load`] whose payload is not
|
|
856
|
+
* yet classified, the active-target form (no `panel`) instead claims and
|
|
857
|
+
* restores into that load's reserved first panel — see [`Self::load`].
|
|
858
|
+
*
|
|
859
|
+
* This restores a SINGLE panel; a whole-element config (with a `panels`
|
|
860
|
+
* map) must be applied via [`Self::restoreWorkspace`] — its `panels` /
|
|
861
|
+
* `layout` keys are ignored here.
|
|
786
862
|
*
|
|
787
863
|
* One of the best ways to use [`Self::restore`] is by first configuring
|
|
788
864
|
* a `<perspective-viewer>` as you wish, then using either the `Debug`
|
|
@@ -793,6 +869,7 @@ export class PerspectiveViewerElement {
|
|
|
793
869
|
*
|
|
794
870
|
* - `update` - The config to restore to, as returned by [`Self::save`] in
|
|
795
871
|
* either "json", "string" or "arraybuffer" format.
|
|
872
|
+
* - `name` - The panel to target, or `None` for the active panel.
|
|
796
873
|
*
|
|
797
874
|
* # JavaScript Examples
|
|
798
875
|
*
|
|
@@ -810,7 +887,22 @@ export class PerspectiveViewerElement {
|
|
|
810
887
|
* await viewer.restore({group_by: ["State"]});
|
|
811
888
|
* ```
|
|
812
889
|
*/
|
|
813
|
-
restore(update: ViewerConfigUpdate): Promise<
|
|
890
|
+
restore(update: ViewerConfigUpdate, options?: PanelOptions | null): Promise<void>;
|
|
891
|
+
/**
|
|
892
|
+
* Restore the ENTIRE element from a whole-element
|
|
893
|
+
* [`WorkspaceConfigUpdate`] (`{version, active?, layout, panels, ...}`) —
|
|
894
|
+
* the multi-panel counterpart of [`Self::restore`]. Every existing panel
|
|
895
|
+
* is replaced by the `panels` entries, and the layout tree + master/detail
|
|
896
|
+
* cross-filter state re-applied. Unlike [`Self::restore`], this never
|
|
897
|
+
* falls back to the single-panel path.
|
|
898
|
+
*
|
|
899
|
+
* # JavaScript Examples
|
|
900
|
+
*
|
|
901
|
+
* ```javascript
|
|
902
|
+
* await viewer.restoreWorkspace(await otherViewer.saveWorkspace());
|
|
903
|
+
* ```
|
|
904
|
+
*/
|
|
905
|
+
restoreWorkspace(update: WorkspaceConfigUpdate): Promise<void>;
|
|
814
906
|
/**
|
|
815
907
|
* Restyle all plugins from current document.
|
|
816
908
|
*
|
|
@@ -831,34 +923,67 @@ export class PerspectiveViewerElement {
|
|
|
831
923
|
*/
|
|
832
924
|
restyleElement(): Promise<any>;
|
|
833
925
|
/**
|
|
834
|
-
* Save
|
|
835
|
-
*
|
|
926
|
+
* Save a single panel's user-configurable state as a [`ViewerConfig`], one
|
|
927
|
+
* which can be restored via [`Self::restore`] — the active panel, or a
|
|
928
|
+
* specific panel via the optional `{panel}` selector.
|
|
929
|
+
*
|
|
930
|
+
* This saves a SINGLE panel; to snapshot the ENTIRE element (every panel +
|
|
931
|
+
* layout + cross-filters) use [`Self::saveWorkspace`].
|
|
932
|
+
*
|
|
933
|
+
* # Arguments
|
|
934
|
+
*
|
|
935
|
+
* - `options` - An optional `{panel?: string}`; the panel to save, or the
|
|
936
|
+
* active panel when omitted.
|
|
836
937
|
*
|
|
837
938
|
* # JavaScript Examples
|
|
838
939
|
*
|
|
839
940
|
* Get the current `group_by` setting:
|
|
840
941
|
*
|
|
841
942
|
* ```javascript
|
|
842
|
-
* const {group_by} = await viewer.
|
|
943
|
+
* const {group_by} = await viewer.save();
|
|
843
944
|
* ```
|
|
844
945
|
*
|
|
845
946
|
* Reset workflow attached to an external button `myResetButton`:
|
|
846
947
|
*
|
|
847
948
|
* ```javascript
|
|
848
949
|
* const token = await viewer.save();
|
|
849
|
-
* myResetButton.addEventListener("
|
|
950
|
+
* myResetButton.addEventListener("click", async () => {
|
|
850
951
|
* await viewer.restore(token);
|
|
851
952
|
* });
|
|
852
953
|
* ```
|
|
853
954
|
*/
|
|
854
|
-
save(): Promise<ViewerConfig>;
|
|
955
|
+
save(options?: PanelOptions | null): Promise<ViewerConfig>;
|
|
956
|
+
/**
|
|
957
|
+
* Save the ENTIRE element to a whole-element [`WorkspaceConfig`]
|
|
958
|
+
* (`{version, active?, layout, panels, ...}`) — the multi-panel
|
|
959
|
+
* counterpart of [`Self::save`]. Unlike [`Self::save`] (which emits a
|
|
960
|
+
* single `ViewerConfig` for one panel), this ALWAYS emits the
|
|
961
|
+
* whole-element format, restorable via [`Self::restoreWorkspace`].
|
|
962
|
+
*
|
|
963
|
+
* # JavaScript Examples
|
|
964
|
+
*
|
|
965
|
+
* ```javascript
|
|
966
|
+
* const token = await viewer.saveWorkspace();
|
|
967
|
+
* await viewer.restoreWorkspace(token);
|
|
968
|
+
* ```
|
|
969
|
+
*/
|
|
970
|
+
saveWorkspace(): Promise<WorkspaceConfig>;
|
|
971
|
+
/**
|
|
972
|
+
* Make the panel with id `name` the active panel, re-targeting the
|
|
973
|
+
* settings panel and status-bar toolbar (and the root's
|
|
974
|
+
* session/renderer subscriptions) to its engines. Resolves after the
|
|
975
|
+
* activation-chrome redraws on both sides of the switch have completed
|
|
976
|
+
* (invariant I6).
|
|
977
|
+
*/
|
|
978
|
+
setActivePanel(name: string): Promise<any>;
|
|
855
979
|
/**
|
|
856
980
|
* Sets the auto-pause behavior of this component.
|
|
857
981
|
*
|
|
858
|
-
* When `true`, this `<perspective-viewer>` will
|
|
859
|
-
*
|
|
860
|
-
*
|
|
861
|
-
*
|
|
982
|
+
* When `true`, this `<perspective-viewer>` will skip rendering
|
|
983
|
+
* whenever it cannot be seen — tracked via an `IntersectionObserver`
|
|
984
|
+
* on itself (scrolled out of the viewport, `display: none`) combined
|
|
985
|
+
* with the document's page visibility (backgrounded browser tab,
|
|
986
|
+
* minimized window). Auto-pause is enabled by default.
|
|
862
987
|
*
|
|
863
988
|
* # Arguments
|
|
864
989
|
*
|
|
@@ -897,9 +1022,10 @@ export class PerspectiveViewerElement {
|
|
|
897
1022
|
*/
|
|
898
1023
|
setAutoSize(autosize: boolean): void;
|
|
899
1024
|
/**
|
|
900
|
-
* Set the selection [`perspective_js::JsViewWindow`] for
|
|
1025
|
+
* Set the selection [`perspective_js::JsViewWindow`] for the named panel,
|
|
1026
|
+
* or the active panel when `panel` is omitted.
|
|
901
1027
|
*/
|
|
902
|
-
setSelection(window?: ViewWindow | null): void;
|
|
1028
|
+
setSelection(window?: ViewWindow | null, options?: PanelOptions | null): void;
|
|
903
1029
|
/**
|
|
904
1030
|
* Determines the render throttling behavior. Can be an integer, for
|
|
905
1031
|
* millisecond window to throttle render event; or, if `None`, adaptive
|
|
@@ -928,7 +1054,7 @@ export class PerspectiveViewerElement {
|
|
|
928
1054
|
* string}`. The CustomEvent is also fired whenever the user toggles the
|
|
929
1055
|
* sidebar manually.
|
|
930
1056
|
*/
|
|
931
|
-
toggleColumnSettings(column_name: string): Promise<any>;
|
|
1057
|
+
toggleColumnSettings(column_name: string, options?: PanelOptions | null): Promise<any>;
|
|
932
1058
|
/**
|
|
933
1059
|
* Toggle (or force) the config panel open/closed.
|
|
934
1060
|
*
|
|
@@ -1439,43 +1565,49 @@ export interface InitOutput {
|
|
|
1439
1565
|
readonly perspectivedebugpluginelement_restore: (a: number, b: number, c: number) => void;
|
|
1440
1566
|
readonly perspectivedebugpluginelement_save: (a: number, b: number) => void;
|
|
1441
1567
|
readonly perspectivedebugpluginelement_select_mode: (a: number, b: number) => void;
|
|
1568
|
+
readonly perspectivedebugpluginelement_update: (a: number, b: number) => number;
|
|
1442
1569
|
readonly perspectiveviewerelement___get_model: (a: number) => number;
|
|
1570
|
+
readonly perspectiveviewerelement_addPanel: (a: number, b: number) => number;
|
|
1443
1571
|
readonly perspectiveviewerelement_connectedCallback: (a: number, b: number) => void;
|
|
1444
1572
|
readonly perspectiveviewerelement_copy: (a: number, b: number) => number;
|
|
1445
1573
|
readonly perspectiveviewerelement_delete: (a: number) => number;
|
|
1446
1574
|
readonly perspectiveviewerelement_download: (a: number, b: number) => number;
|
|
1447
|
-
readonly perspectiveviewerelement_eject: (a: number) => number;
|
|
1575
|
+
readonly perspectiveviewerelement_eject: (a: number, b: number) => number;
|
|
1448
1576
|
readonly perspectiveviewerelement_export: (a: number, b: number) => number;
|
|
1449
1577
|
readonly perspectiveviewerelement_flush: (a: number) => number;
|
|
1578
|
+
readonly perspectiveviewerelement_getActivePanel: (a: number) => number;
|
|
1450
1579
|
readonly perspectiveviewerelement_getAllPlugins: (a: number) => number;
|
|
1451
1580
|
readonly perspectiveviewerelement_getClient: (a: number, b: number) => number;
|
|
1452
|
-
readonly perspectiveviewerelement_getEditPort: (a: number, b: number) => void;
|
|
1581
|
+
readonly perspectiveviewerelement_getEditPort: (a: number, b: number, c: number) => void;
|
|
1582
|
+
readonly perspectiveviewerelement_getPanelNames: (a: number) => number;
|
|
1453
1583
|
readonly perspectiveviewerelement_getPlugin: (a: number, b: number, c: number, d: number) => void;
|
|
1454
|
-
readonly perspectiveviewerelement_getRenderStats: (a: number, b: number) => void;
|
|
1455
|
-
readonly perspectiveviewerelement_getSelection: (a: number) =>
|
|
1584
|
+
readonly perspectiveviewerelement_getRenderStats: (a: number, b: number, c: number) => void;
|
|
1585
|
+
readonly perspectiveviewerelement_getSelection: (a: number, b: number, c: number) => void;
|
|
1456
1586
|
readonly perspectiveviewerelement_getTable: (a: number, b: number) => number;
|
|
1457
|
-
readonly perspectiveviewerelement_getView: (a: number) => number;
|
|
1458
|
-
readonly perspectiveviewerelement_getViewConfig: (a: number) => number;
|
|
1587
|
+
readonly perspectiveviewerelement_getView: (a: number, b: number) => number;
|
|
1588
|
+
readonly perspectiveviewerelement_getViewConfig: (a: number, b: number) => number;
|
|
1459
1589
|
readonly perspectiveviewerelement_load: (a: number, b: number, c: number) => void;
|
|
1460
1590
|
readonly perspectiveviewerelement_new: (a: number) => number;
|
|
1461
|
-
readonly
|
|
1462
|
-
readonly perspectiveviewerelement_reset: (a: number, b: number) => number;
|
|
1591
|
+
readonly perspectiveviewerelement_removePanel: (a: number, b: number, c: number) => number;
|
|
1592
|
+
readonly perspectiveviewerelement_reset: (a: number, b: number, c: number) => number;
|
|
1463
1593
|
readonly perspectiveviewerelement_resetError: (a: number) => number;
|
|
1464
1594
|
readonly perspectiveviewerelement_resetThemes: (a: number, b: number, c: number) => number;
|
|
1465
1595
|
readonly perspectiveviewerelement_resize: (a: number, b: number) => number;
|
|
1466
|
-
readonly perspectiveviewerelement_restore: (a: number, b: number) => number;
|
|
1596
|
+
readonly perspectiveviewerelement_restore: (a: number, b: number, c: number) => number;
|
|
1597
|
+
readonly perspectiveviewerelement_restoreWorkspace: (a: number, b: number) => number;
|
|
1467
1598
|
readonly perspectiveviewerelement_restyleElement: (a: number) => number;
|
|
1468
|
-
readonly perspectiveviewerelement_save: (a: number) => number;
|
|
1599
|
+
readonly perspectiveviewerelement_save: (a: number, b: number) => number;
|
|
1600
|
+
readonly perspectiveviewerelement_saveWorkspace: (a: number) => number;
|
|
1601
|
+
readonly perspectiveviewerelement_setActivePanel: (a: number, b: number, c: number) => number;
|
|
1469
1602
|
readonly perspectiveviewerelement_setAutoPause: (a: number, b: number) => number;
|
|
1470
1603
|
readonly perspectiveviewerelement_setAutoSize: (a: number, b: number) => void;
|
|
1471
|
-
readonly perspectiveviewerelement_setSelection: (a: number, b: number, c: number) => void;
|
|
1604
|
+
readonly perspectiveviewerelement_setSelection: (a: number, b: number, c: number, d: number) => void;
|
|
1472
1605
|
readonly perspectiveviewerelement_setThrottle: (a: number, b: number, c: number) => void;
|
|
1473
|
-
readonly perspectiveviewerelement_toggleColumnSettings: (a: number, b: number, c: number) => number;
|
|
1606
|
+
readonly perspectiveviewerelement_toggleColumnSettings: (a: number, b: number, c: number, d: number) => number;
|
|
1474
1607
|
readonly perspectiveviewerelement_toggleConfig: (a: number, b: number) => number;
|
|
1475
1608
|
readonly registerPlugin: (a: number, b: number) => void;
|
|
1476
1609
|
readonly perspectivedebugpluginelement_delete: (a: number) => number;
|
|
1477
1610
|
readonly perspectivedebugpluginelement_resize: (a: number) => number;
|
|
1478
|
-
readonly perspectivedebugpluginelement_update: (a: number, b: number) => number;
|
|
1479
1611
|
readonly perspectivedebugpluginelement_min_config_columns: (a: number) => number;
|
|
1480
1612
|
readonly perspectivedebugpluginelement_restyle: (a: number) => void;
|
|
1481
1613
|
readonly exportdropdownmenuelement_new: (a: number) => number;
|
|
@@ -1572,19 +1704,21 @@ export interface InitOutput {
|
|
|
1572
1704
|
readonly virtualdataslice_setStringCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
1573
1705
|
readonly virtualserver_handleRequest: (a: number, b: number, c: number) => number;
|
|
1574
1706
|
readonly virtualserver_new: (a: number, b: number) => void;
|
|
1575
|
-
readonly
|
|
1576
|
-
readonly
|
|
1577
|
-
readonly
|
|
1578
|
-
readonly
|
|
1579
|
-
readonly
|
|
1580
|
-
readonly
|
|
1581
|
-
readonly
|
|
1582
|
-
readonly
|
|
1583
|
-
readonly
|
|
1584
|
-
readonly
|
|
1585
|
-
readonly
|
|
1586
|
-
readonly
|
|
1587
|
-
readonly
|
|
1707
|
+
readonly __wasm_bindgen_func_elem_15590: (a: number, b: number) => void;
|
|
1708
|
+
readonly __wasm_bindgen_func_elem_3497: (a: number, b: number) => void;
|
|
1709
|
+
readonly __wasm_bindgen_func_elem_18482: (a: number, b: number) => void;
|
|
1710
|
+
readonly __wasm_bindgen_func_elem_19140: (a: number, b: number) => void;
|
|
1711
|
+
readonly __wasm_bindgen_func_elem_19169: (a: number, b: number) => void;
|
|
1712
|
+
readonly __wasm_bindgen_func_elem_26445: (a: number, b: number, c: number, d: number) => void;
|
|
1713
|
+
readonly __wasm_bindgen_func_elem_6144: (a: number, b: number, c: number) => void;
|
|
1714
|
+
readonly __wasm_bindgen_func_elem_6145: (a: number, b: number, c: number) => void;
|
|
1715
|
+
readonly __wasm_bindgen_func_elem_6146: (a: number, b: number, c: number) => void;
|
|
1716
|
+
readonly __wasm_bindgen_func_elem_6142: (a: number, b: number, c: number) => void;
|
|
1717
|
+
readonly __wasm_bindgen_func_elem_18602: (a: number, b: number, c: number) => void;
|
|
1718
|
+
readonly __wasm_bindgen_func_elem_19145: (a: number, b: number, c: number) => void;
|
|
1719
|
+
readonly __wasm_bindgen_func_elem_19186: (a: number, b: number, c: number) => void;
|
|
1720
|
+
readonly __wasm_bindgen_func_elem_16279: (a: number, b: number) => number;
|
|
1721
|
+
readonly __wasm_bindgen_func_elem_19144: (a: number, b: number) => void;
|
|
1588
1722
|
readonly __wbindgen_export: (a: number, b: number) => number;
|
|
1589
1723
|
readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
1590
1724
|
readonly __wbindgen_export3: (a: number) => void;
|