Skip to content

Commit 17a39de

Browse files
authored
Merge pull request #549 from jpmorganchase/viewer-table-ownership
Added table ownership flag to `<perspective-viewer>` `delete()` method
2 parents 52d134e + 6b5e79b commit 17a39de

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

packages/perspective-viewer/src/js/viewer.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,11 +457,13 @@ class PerspectiveViewer extends ActionElement {
457457
* user state). This (or the underlying `perspective.table`'s equivalent
458458
* method) must be called in order for its memory to be reclaimed.
459459
*
460+
* @param {boolean} delete_table Should a delete call also be made to the
461+
* underlying `table()`.
460462
* @returns {Promise<boolean>} Whether or not this call resulted in the
461463
* underlying `perspective.table` actually being deleted.
462464
*/
463-
delete() {
464-
let x = this._clear_state();
465+
delete(delete_table = true) {
466+
let x = this._clear_state(delete_table);
465467
if (this._plugin.delete) {
466468
this._plugin.delete.call(this);
467469
}

packages/perspective-viewer/src/js/viewer/perspective_element.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ export class PerspectiveElement extends StateElement {
312312
return () => this.setAttribute("render_time", performance.now() - t);
313313
}
314314

315-
_clear_state() {
315+
_clear_state(clear_table = true) {
316316
if (this._task) {
317317
this._task.cancel();
318318
}
@@ -324,7 +324,7 @@ export class PerspectiveElement extends StateElement {
324324
view.remove_update(this._view_updater);
325325
view.remove_delete();
326326
}
327-
if (this._table) {
327+
if (this._table && clear_table) {
328328
const table = this._table;
329329
this._table = undefined;
330330
if (table._owner_viewer && table._owner_viewer === this) {

0 commit comments

Comments
 (0)