@holoviz/panel 0.12.4 → 0.12.5

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 (48) hide show
  1. package/dist/bundled/js/jquery-3.5.1.min.js +2 -0
  2. package/dist/bundled/js/jquery-3.5.1.slim.min.js +2 -0
  3. package/dist/bundled/materialtemplate/material.css +8 -1
  4. package/dist/bundled/plotlyplot/jquery-3.5.1.min.js +2 -0
  5. package/dist/bundled/terminal/xterm@4.14.1/lib/xterm.js +2 -0
  6. package/dist/bundled/terminal/xterm@4.14.1/lib/xterm.js.map +1 -0
  7. package/dist/css/card.css +1 -1
  8. package/dist/lib/models/card.js +8 -2
  9. package/dist/lib/models/card.js.map +1 -1
  10. package/dist/lib/models/data.d.ts +1 -1
  11. package/dist/lib/models/data.js +3 -4
  12. package/dist/lib/models/data.js.map +1 -1
  13. package/dist/lib/models/plotly.d.ts +5 -3
  14. package/dist/lib/models/plotly.js +38 -33
  15. package/dist/lib/models/plotly.js.map +1 -1
  16. package/dist/lib/models/tabulator.js +27 -12
  17. package/dist/lib/models/tabulator.js.map +1 -1
  18. package/dist/lib/models/terminal.d.ts +9 -3
  19. package/dist/lib/models/terminal.js +20 -14
  20. package/dist/lib/models/terminal.js.map +1 -1
  21. package/dist/lib/models/vega.d.ts +3 -0
  22. package/dist/lib/models/vega.js +25 -1
  23. package/dist/lib/models/vega.js.map +1 -1
  24. package/dist/lib/models/vtk/panel_fullscreen_renwin_sync.d.ts +1 -1
  25. package/dist/lib/models/vtk/panel_fullscreen_renwin_sync.js +92 -92
  26. package/dist/lib/models/vtk/panel_fullscreen_renwin_sync.js.map +1 -1
  27. package/dist/lib/models/vtk/util.d.ts +1 -1
  28. package/dist/lib/models/vtk/util.js +6 -2
  29. package/dist/lib/models/vtk/util.js.map +1 -1
  30. package/dist/lib/models/vtk/vtkaxes.js +3 -3
  31. package/dist/lib/models/vtk/vtkaxes.js.map +1 -1
  32. package/dist/lib/models/vtk/vtkjs.js +2 -2
  33. package/dist/lib/models/vtk/vtkjs.js.map +1 -1
  34. package/dist/lib/models/vtk/vtklayout.js +2 -2
  35. package/dist/lib/models/vtk/vtklayout.js.map +1 -1
  36. package/dist/lib/models/vtk/vtksynchronized.js +3 -2
  37. package/dist/lib/models/vtk/vtksynchronized.js.map +1 -1
  38. package/dist/lib/styles/card.css.js +1 -1
  39. package/dist/panel.js +377 -311
  40. package/dist/panel.js.map +1 -1
  41. package/dist/panel.json +1 -1
  42. package/dist/panel.min.js +22 -22
  43. package/package.json +2 -2
  44. package/dist/bundled/js/jquery-1.11.1.min.js +0 -4
  45. package/dist/bundled/js/jquery-3.4.1.slim.min.js +0 -2
  46. package/dist/bundled/plotlyplot/jquery-3.4.1.min.js +0 -2
  47. package/dist/bundled/terminal/xterm@4.11.0/lib/xterm.js +0 -2
  48. package/dist/bundled/terminal/xterm@4.11.0/lib/xterm.js.map +0 -1
package/dist/panel.js CHANGED
@@ -56,11 +56,11 @@
56
56
  __esExport("AcePlot", ace_1.AcePlot);
57
57
  var audio_1 = require("339f84d639") /* ./audio */;
58
58
  __esExport("Audio", audio_1.Audio);
59
- var card_1 = require("c816112d20") /* ./card */;
59
+ var card_1 = require("b75e913327") /* ./card */;
60
60
  __esExport("Card", card_1.Card);
61
61
  var comm_manager_1 = require("e552778259") /* ./comm_manager */;
62
62
  __esExport("CommManager", comm_manager_1.CommManager);
63
- var tabulator_1 = require("99e23dce53") /* ./tabulator */;
63
+ var tabulator_1 = require("50549c6ddc") /* ./tabulator */;
64
64
  __esExport("DataTabulator", tabulator_1.DataTabulator);
65
65
  var datetime_picker_1 = require("6e11b2cfe2") /* ./datetime_picker */;
66
66
  __esExport("DatetimePicker", datetime_picker_1.DatetimePicker);
@@ -88,7 +88,7 @@
88
88
  __esExport("Perspective", perspective_1.Perspective);
89
89
  var player_1 = require("2e8044c920") /* ./player */;
90
90
  __esExport("Player", player_1.Player);
91
- var plotly_1 = require("50ac0b0178") /* ./plotly */;
91
+ var plotly_1 = require("cb7735fd77") /* ./plotly */;
92
92
  __esExport("PlotlyPlot", plotly_1.PlotlyPlot);
93
93
  var progress_1 = require("9f787650b9") /* ./progress */;
94
94
  __esExport("Progress", progress_1.Progress);
@@ -100,13 +100,13 @@
100
100
  __esExport("SpeechToText", speech_to_text_1.SpeechToText);
101
101
  var state_1 = require("bfa46a5f19") /* ./state */;
102
102
  __esExport("State", state_1.State);
103
- var terminal_1 = require("91fe88c277") /* ./terminal */;
103
+ var terminal_1 = require("edf66f5228") /* ./terminal */;
104
104
  __esExport("Terminal", terminal_1.Terminal);
105
105
  var text_to_speech_1 = require("33cd2c254e") /* ./text_to_speech */;
106
106
  __esExport("TextToSpeech", text_to_speech_1.TextToSpeech);
107
107
  var trend_1 = require("effe070807") /* ./trend */;
108
108
  __esExport("TrendIndicator", trend_1.TrendIndicator);
109
- var vega_1 = require("4feb5fa522") /* ./vega */;
109
+ var vega_1 = require("345d5ea993") /* ./vega */;
110
110
  __esExport("VegaPlot", vega_1.VegaPlot);
111
111
  var video_1 = require("ffe54b53c3") /* ./video */;
112
112
  __esExport("Video", video_1.Video);
@@ -467,7 +467,7 @@
467
467
  Audio.__module__ = "panel.models.widgets";
468
468
  Audio.init_Audio();
469
469
  },
470
- "c816112d20": /* models/card.js */ function _(require, module, exports, __esModule, __esExport) {
470
+ "b75e913327": /* models/card.js */ function _(require, module, exports, __esModule, __esExport) {
471
471
  __esModule();
472
472
  const tslib_1 = require("tslib");
473
473
  const column_1 = require("@bokehjs/models/layouts/column");
@@ -497,8 +497,14 @@
497
497
  const obbox = header.layout.bbox;
498
498
  const ibbox = header.layout.inner_bbox;
499
499
  if (obbox.x1 != 0) {
500
- const icon_style = getComputedStyle(this.button_el.children[0]);
501
- const offset = parseFloat(icon_style.width) + parseFloat(icon_style.marginLeft);
500
+ let offset;
501
+ if (this.model.collapsible) {
502
+ const icon_style = getComputedStyle(this.button_el.children[0]);
503
+ offset = (parseFloat(icon_style.width) + parseFloat(icon_style.marginLeft)) || 0;
504
+ }
505
+ else {
506
+ offset = 0;
507
+ }
502
508
  const outer = new bbox_1.BBox({ x0: obbox.x0, x1: obbox.x1 - offset, y0: obbox.y0, y1: obbox.y1 });
503
509
  const inner = new bbox_1.BBox({ x0: ibbox.x0, x1: ibbox.x1 - offset, y0: ibbox.y0, y1: ibbox.y1 });
504
510
  header.layout.set_geometry(outer, inner);
@@ -693,7 +699,7 @@
693
699
  CommManager.__module__ = "panel.models.comm_manager";
694
700
  CommManager.init_CommManager();
695
701
  },
696
- "99e23dce53": /* models/tabulator.js */ function _(require, module, exports, __esModule, __esExport) {
702
+ "50549c6ddc": /* models/tabulator.js */ function _(require, module, exports, __esModule, __esExport) {
697
703
  __esModule();
698
704
  const types_1 = require("@bokehjs/core/util/types");
699
705
  const html_box_1 = require("@bokehjs/models/layouts/html_box");
@@ -701,7 +707,8 @@
701
707
  const kinds_1 = require("@bokehjs/core/kinds");
702
708
  const column_data_source_1 = require("@bokehjs/models/sources/column_data_source");
703
709
  const tables_1 = require("@bokehjs/models/widgets/tables");
704
- const data_1 = require("f1971f81bf") /* ./data */;
710
+ const debounce_1 = require("99a25e6992") /* debounce */;
711
+ const data_1 = require("7f7d9e0c6b") /* ./data */;
705
712
  const layout_1 = require("4c755983eb") /* ./layout */;
706
713
  function find_group(key, value, records) {
707
714
  for (const record of records) {
@@ -917,14 +924,17 @@
917
924
  }
918
925
  getConfiguration() {
919
926
  const pagination = this.model.pagination == 'remote' ? 'local' : (this.model.pagination || false);
920
- let selectable = !(typeof this.model.select_mode === 'boolean');
927
+ // Only use selectable mode if explicitly requested otherwise manually handle selections
928
+ let selectable = this.model.select_mode === 'toggle' ? true : NaN;
921
929
  const that = this;
922
930
  let configuration = Object.assign(Object.assign({}, this.model.configuration), { index: "_index", nestedFieldSeparator: false, selectable: selectable, tableBuilding: function () { that.tableInit(that, this); }, renderComplete: () => this.renderComplete(), rowSelectionChanged: (data, rows) => this.rowSelectionChanged(data, rows), rowClick: (e, row) => this.rowClicked(e, row), cellEdited: (cell) => this.cellEdited(cell), columns: this.getColumns(), layout: this.getLayout(), pagination: pagination, paginationSize: this.model.page_size, paginationInitialPage: 1, selectableCheck: (row) => {
923
931
  const selectable = this.model.selectable_rows;
924
932
  return (selectable == null) || (selectable.indexOf(row._row.data._index) >= 0);
925
933
  }, tooltips: (cell) => {
926
934
  return cell.getColumn().getField() + ": " + cell.getValue();
927
- } });
935
+ }, scrollVertical: (0, debounce_1.debounce)(() => {
936
+ this.updateStyles();
937
+ }, 50, false) });
928
938
  if (pagination) {
929
939
  configuration['ajaxURL'] = "http://panel.pyviz.org";
930
940
  configuration['ajaxSorting'] = true;
@@ -951,8 +961,14 @@
951
961
  group_columns.push(Object.assign({}, col));
952
962
  columns.push(Object.assign(Object.assign({}, column), { columns: group_columns }));
953
963
  }
954
- else
964
+ else {
965
+ if (column.formatter === "rowSelection") {
966
+ column.cellClick = (_, cell) => {
967
+ cell.getRow().toggleSelect();
968
+ };
969
+ }
955
970
  columns.push(Object.assign({}, column));
971
+ }
956
972
  }
957
973
  for (const column of this.model.columns) {
958
974
  let tab_column = null;
@@ -1164,13 +1180,10 @@
1164
1180
  addData() {
1165
1181
  const rows = this.tabulator.rowManager.getRows();
1166
1182
  const last_row = rows[rows.length - 1];
1167
- let data = (0, data_1.transform_cds_to_records)(this.model.source, true);
1168
- this.tabulator.setData(data);
1169
- if (this.model.follow) {
1170
- this.tabulator.scrollToRow((last_row.data._index || 0), "top", false);
1171
- }
1172
- this.freezeRows();
1173
- this.updateSelection();
1183
+ const start = ((last_row === null || last_row === void 0 ? void 0 : last_row.data._index) || 0);
1184
+ this.setData();
1185
+ if (this.model.follow && last_row)
1186
+ this.tabulator.scrollToRow(start, "top", false);
1174
1187
  }
1175
1188
  updateOrAddData() {
1176
1189
  // To avoid double updating the tabulator data
@@ -1191,7 +1204,8 @@
1191
1204
  }
1192
1205
  setMaxPage() {
1193
1206
  this.tabulator.setMaxPage(this.model.max_page);
1194
- this.tabulator.modules.page._setPageButtons();
1207
+ if (this.tabulator.modules.page.pagesElement)
1208
+ this.tabulator.modules.page._setPageButtons();
1195
1209
  }
1196
1210
  setPage() {
1197
1211
  this.tabulator.setPage(Math.min(this.model.max_page, this.model.page));
@@ -1215,7 +1229,7 @@
1215
1229
  }
1216
1230
  // Update model
1217
1231
  rowClicked(e, row) {
1218
- if (this._selection_updating || this._initializing || this.model.select_mode !== true)
1232
+ if (this._selection_updating || this._initializing || (typeof this.model.select_mode) === 'string' || this.model.select_mode === false)
1219
1233
  return;
1220
1234
  let indices = [];
1221
1235
  const selected = this.model.source.selected;
@@ -1238,6 +1252,12 @@
1238
1252
  indices.push(index);
1239
1253
  else
1240
1254
  indices.splice(indices.indexOf(index), 1);
1255
+ // Remove the first selected indices when selectable is an int.
1256
+ if (typeof this.model.select_mode === 'number') {
1257
+ while (indices.length > this.model.select_mode) {
1258
+ indices.shift();
1259
+ }
1260
+ }
1241
1261
  const filtered = this._filter_selected(indices);
1242
1262
  this.tabulator.deselectRow();
1243
1263
  this.tabulator.selectRow(filtered);
@@ -1255,7 +1275,7 @@
1255
1275
  return filtered;
1256
1276
  }
1257
1277
  rowSelectionChanged(data, _) {
1258
- if (this._selection_updating || this._initializing || (typeof this.model.select_mode) === 'boolean')
1278
+ if (this._selection_updating || this._initializing || (typeof this.model.select_mode) === 'boolean' || (typeof this.model.select_mode) === 'number' || this.model.configuration.dataTree)
1259
1279
  return;
1260
1280
  const indices = data.map((row) => row._index);
1261
1281
  const filtered = this._filter_selected(indices);
@@ -1314,16 +1334,82 @@
1314
1334
  DataTabulator.__module__ = "panel.models.tabulator";
1315
1335
  DataTabulator.init_DataTabulator();
1316
1336
  },
1317
- "f1971f81bf": /* models/data.js */ function _(require, module, exports, __esModule, __esExport) {
1337
+ "99a25e6992": /* debounce/index.js */ function _(require, module, exports, __esModule, __esExport) {
1338
+ /**
1339
+ * Returns a function, that, as long as it continues to be invoked, will not
1340
+ * be triggered. The function will be called after it stops being called for
1341
+ * N milliseconds. If `immediate` is passed, trigger the function on the
1342
+ * leading edge, instead of the trailing. The function also has a property 'clear'
1343
+ * that is a function which will clear the timer to prevent previously scheduled executions.
1344
+ *
1345
+ * @source underscore.js
1346
+ * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
1347
+ * @param {Function} function to wrap
1348
+ * @param {Number} timeout in ms (`100`)
1349
+ * @param {Boolean} whether to execute at the beginning (`false`)
1350
+ * @api public
1351
+ */
1352
+ function debounce(func, wait, immediate) {
1353
+ var timeout, args, context, timestamp, result;
1354
+ if (null == wait)
1355
+ wait = 100;
1356
+ function later() {
1357
+ var last = Date.now() - timestamp;
1358
+ if (last < wait && last >= 0) {
1359
+ timeout = setTimeout(later, wait - last);
1360
+ }
1361
+ else {
1362
+ timeout = null;
1363
+ if (!immediate) {
1364
+ result = func.apply(context, args);
1365
+ context = args = null;
1366
+ }
1367
+ }
1368
+ }
1369
+ ;
1370
+ var debounced = function () {
1371
+ context = this;
1372
+ args = arguments;
1373
+ timestamp = Date.now();
1374
+ var callNow = immediate && !timeout;
1375
+ if (!timeout)
1376
+ timeout = setTimeout(later, wait);
1377
+ if (callNow) {
1378
+ result = func.apply(context, args);
1379
+ context = args = null;
1380
+ }
1381
+ return result;
1382
+ };
1383
+ debounced.clear = function () {
1384
+ if (timeout) {
1385
+ clearTimeout(timeout);
1386
+ timeout = null;
1387
+ }
1388
+ };
1389
+ debounced.flush = function () {
1390
+ if (timeout) {
1391
+ result = func.apply(context, args);
1392
+ context = args = null;
1393
+ clearTimeout(timeout);
1394
+ timeout = null;
1395
+ }
1396
+ };
1397
+ return debounced;
1398
+ }
1399
+ ;
1400
+ // Adds compatibility for ES modules
1401
+ debounce.debounce = debounce;
1402
+ module.exports = debounce;
1403
+ },
1404
+ "7f7d9e0c6b": /* models/data.js */ function _(require, module, exports, __esModule, __esExport) {
1318
1405
  __esModule();
1319
- function transform_cds_to_records(cds, addId = false) {
1406
+ function transform_cds_to_records(cds, addId = false, start = 0) {
1320
1407
  const data = [];
1321
1408
  const columns = cds.columns();
1322
1409
  const cdsLength = cds.get_length();
1323
- if (columns.length === 0 || cdsLength === null) {
1410
+ if (columns.length === 0 || cdsLength === null)
1324
1411
  return [];
1325
- }
1326
- for (let i = 0; i < cdsLength; i++) {
1412
+ for (let i = start; i < cdsLength; i++) {
1327
1413
  const item = {};
1328
1414
  for (const column of columns) {
1329
1415
  let array = cds.get_array(column);
@@ -4148,7 +4234,7 @@
4148
4234
  const dom_1 = require("@bokehjs/core/dom");
4149
4235
  const html_box_1 = require("@bokehjs/models/layouts/html_box");
4150
4236
  const column_data_source_1 = require("@bokehjs/models/sources/column_data_source");
4151
- const data_1 = require("f1971f81bf") /* ./data */;
4237
+ const data_1 = require("7f7d9e0c6b") /* ./data */;
4152
4238
  const layout_1 = require("4c755983eb") /* ./layout */;
4153
4239
  const tooltips_1 = require("6e04fbe567") /* ./tooltips */;
4154
4240
  const constants_1 = (0, tslib_1.__importDefault)(require("093eb75864") /* @luma.gl/constants */);
@@ -8128,7 +8214,7 @@
8128
8214
  Player.__module__ = "panel.models.widgets";
8129
8215
  Player.init_Player();
8130
8216
  },
8131
- "50ac0b0178": /* models/plotly.js */ function _(require, module, exports, __esModule, __esExport) {
8217
+ "cb7735fd77": /* models/plotly.js */ function _(require, module, exports, __esModule, __esExport) {
8132
8218
  __esModule();
8133
8219
  const dom_1 = require("@bokehjs/core/dom");
8134
8220
  const object_1 = require("@bokehjs/core/util/object");
@@ -8217,6 +8303,10 @@
8217
8303
  this._relayouting = false;
8218
8304
  }, 2000, false);
8219
8305
  }
8306
+ initialize() {
8307
+ super.initialize();
8308
+ this._layout_wrapper = (0, dom_1.div)({ style: "height: 100%; width: 100%;" });
8309
+ }
8220
8310
  connect_signals() {
8221
8311
  super.connect_signals();
8222
8312
  const { data, data_sources, layout, relayout, restyle } = this.model.properties;
@@ -8245,23 +8335,25 @@
8245
8335
  this.connect(this.model.properties.viewport_update_throttle.change, () => {
8246
8336
  this._updateSetViewportFunction();
8247
8337
  });
8248
- this.connect(this.model.properties._render_count.change, () => this.plot());
8338
+ this.connect(this.model.properties._render_count.change, () => {
8339
+ this.plot();
8340
+ });
8249
8341
  this.connect(this.model.properties.viewport.change, () => this._updateViewportFromProperty());
8342
+ this.connect(this.model.properties.visibility.change, () => {
8343
+ this.el.style.visibility = this.model.visibility ? 'visible' : 'hidden';
8344
+ });
8250
8345
  }
8251
- render() {
8346
+ async render() {
8252
8347
  super.render();
8253
- this._layout_wrapper = (0, dom_1.div)({ style: "height: 100%; width: 100%" });
8348
+ this.el.style.visibility = this.model.visibility ? 'visible' : 'hidden';
8254
8349
  this.el.appendChild(this._layout_wrapper);
8255
- if (!window.Plotly) {
8256
- return;
8257
- }
8258
- this.plot();
8350
+ await this.plot();
8351
+ window.Plotly.relayout(this._layout_wrapper, this.model.relayout);
8259
8352
  }
8260
8353
  _trace_data() {
8261
8354
  const data = [];
8262
- for (let i = 0; i < this.model.data.length; i++) {
8355
+ for (let i = 0; i < this.model.data.length; i++)
8263
8356
  data.push(this._get_trace(i, false));
8264
- }
8265
8357
  return data;
8266
8358
  }
8267
8359
  _layout_data() {
@@ -8326,29 +8418,27 @@
8326
8418
  this.model.hover_data = null;
8327
8419
  });
8328
8420
  }
8329
- plot() {
8330
- if (!window.Plotly) {
8421
+ async plot() {
8422
+ if (!window.Plotly)
8331
8423
  return;
8332
- }
8333
8424
  const data = this._trace_data();
8334
8425
  const newLayout = this._layout_data();
8335
8426
  this._reacting = true;
8336
- window.Plotly.react(this._layout_wrapper, data, newLayout, this.model.config).then(() => {
8337
- this._updateSetViewportFunction();
8338
- this._updateViewportProperty();
8339
- if (!this._plotInitialized)
8340
- this._install_callbacks();
8341
- this._plotInitialized = true;
8342
- this._reacting = false;
8343
- if (!_isHidden(this._layout_wrapper))
8344
- window.Plotly.Plots.resize(this._layout_wrapper);
8345
- });
8427
+ await window.Plotly.react(this._layout_wrapper, data, newLayout, this.model.config);
8428
+ this._updateSetViewportFunction();
8429
+ this._updateViewportProperty();
8430
+ if (!this._plotInitialized)
8431
+ this._install_callbacks();
8432
+ else if (!_isHidden(this._layout_wrapper))
8433
+ window.Plotly.Plots.resize(this._layout_wrapper);
8434
+ this._reacting = false;
8435
+ this._plotInitialized = true;
8346
8436
  }
8347
8437
  after_layout() {
8348
8438
  super.after_layout();
8349
- if (window.Plotly) {
8439
+ (0, layout_1.set_size)(this.el, this.model);
8440
+ if (window.Plotly && this._plotInitialized)
8350
8441
  window.Plotly.Plots.resize(this._layout_wrapper);
8351
- }
8352
8442
  }
8353
8443
  _get_trace(index, update) {
8354
8444
  const trace = (0, object_1.clone)(this.model.data[index]);
@@ -8388,7 +8478,10 @@
8388
8478
  if (!(0, eq_1.isEqual)((0, util_1.get)(fullLayout, key), value)) {
8389
8479
  let clonedViewport = (0, util_1.deepCopy)(this.model.viewport);
8390
8480
  clonedViewport['_update_from_property'] = true;
8391
- window.Plotly.relayout(this.el, clonedViewport);
8481
+ this._settingViewport = true;
8482
+ window.Plotly.relayout(this.el, clonedViewport).then(() => {
8483
+ this._settingViewport = false;
8484
+ });
8392
8485
  return false;
8393
8486
  }
8394
8487
  else {
@@ -8401,17 +8494,14 @@
8401
8494
  let viewport = {};
8402
8495
  // Get range for all xaxis and yaxis properties
8403
8496
  for (let prop in fullLayout) {
8404
- if (!fullLayout.hasOwnProperty(prop)) {
8497
+ if (!fullLayout.hasOwnProperty(prop))
8405
8498
  continue;
8406
- }
8407
8499
  let maybe_axis = prop.slice(0, 5);
8408
- if (maybe_axis === 'xaxis' || maybe_axis === 'yaxis') {
8500
+ if (maybe_axis === 'xaxis' || maybe_axis === 'yaxis')
8409
8501
  viewport[prop + '.range'] = (0, util_1.deepCopy)(fullLayout[prop].range);
8410
- }
8411
8502
  }
8412
- if (!(0, eq_1.isEqual)(viewport, this.model.viewport)) {
8503
+ if (!(0, eq_1.isEqual)(viewport, this.model.viewport))
8413
8504
  this._setViewport(viewport);
8414
- }
8415
8505
  }
8416
8506
  _updateSetViewportFunction() {
8417
8507
  if (this.model.viewport_update_policy === "continuous" ||
@@ -8443,7 +8533,7 @@
8443
8533
  }
8444
8534
  static init_PlotlyPlot() {
8445
8535
  this.prototype.default_view = PlotlyPlotView;
8446
- this.define(({ Array, Any, Ref, String, Nullable, Number }) => ({
8536
+ this.define(({ Array, Any, Boolean, Ref, String, Nullable, Number }) => ({
8447
8537
  data: [Array(Any), []],
8448
8538
  layout: [Any, {}],
8449
8539
  config: [Any, {}],
@@ -8459,6 +8549,7 @@
8459
8549
  viewport: [Any, {}],
8460
8550
  viewport_update_policy: [String, "mouseup"],
8461
8551
  viewport_update_throttle: [Number, 200],
8552
+ visibility: [Boolean, true],
8462
8553
  _render_count: [Number, 0],
8463
8554
  }));
8464
8555
  }
@@ -8468,73 +8559,6 @@
8468
8559
  PlotlyPlot.__module__ = "panel.models.plotly";
8469
8560
  PlotlyPlot.init_PlotlyPlot();
8470
8561
  },
8471
- "99a25e6992": /* debounce/index.js */ function _(require, module, exports, __esModule, __esExport) {
8472
- /**
8473
- * Returns a function, that, as long as it continues to be invoked, will not
8474
- * be triggered. The function will be called after it stops being called for
8475
- * N milliseconds. If `immediate` is passed, trigger the function on the
8476
- * leading edge, instead of the trailing. The function also has a property 'clear'
8477
- * that is a function which will clear the timer to prevent previously scheduled executions.
8478
- *
8479
- * @source underscore.js
8480
- * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
8481
- * @param {Function} function to wrap
8482
- * @param {Number} timeout in ms (`100`)
8483
- * @param {Boolean} whether to execute at the beginning (`false`)
8484
- * @api public
8485
- */
8486
- function debounce(func, wait, immediate) {
8487
- var timeout, args, context, timestamp, result;
8488
- if (null == wait)
8489
- wait = 100;
8490
- function later() {
8491
- var last = Date.now() - timestamp;
8492
- if (last < wait && last >= 0) {
8493
- timeout = setTimeout(later, wait - last);
8494
- }
8495
- else {
8496
- timeout = null;
8497
- if (!immediate) {
8498
- result = func.apply(context, args);
8499
- context = args = null;
8500
- }
8501
- }
8502
- }
8503
- ;
8504
- var debounced = function () {
8505
- context = this;
8506
- args = arguments;
8507
- timestamp = Date.now();
8508
- var callNow = immediate && !timeout;
8509
- if (!timeout)
8510
- timeout = setTimeout(later, wait);
8511
- if (callNow) {
8512
- result = func.apply(context, args);
8513
- context = args = null;
8514
- }
8515
- return result;
8516
- };
8517
- debounced.clear = function () {
8518
- if (timeout) {
8519
- clearTimeout(timeout);
8520
- timeout = null;
8521
- }
8522
- };
8523
- debounced.flush = function () {
8524
- if (timeout) {
8525
- result = func.apply(context, args);
8526
- context = args = null;
8527
- clearTimeout(timeout);
8528
- timeout = null;
8529
- }
8530
- };
8531
- return debounced;
8532
- }
8533
- ;
8534
- // Adds compatibility for ES modules
8535
- debounce.debounce = debounce;
8536
- module.exports = debounce;
8537
- },
8538
8562
  "990b5dd5c7": /* models/util.js */ function _(require, module, exports, __esModule, __esExport) {
8539
8563
  __esModule();
8540
8564
  const get = (obj, path, defaultValue = undefined) => {
@@ -8679,7 +8703,7 @@
8679
8703
  const html_box_1 = require("@bokehjs/models/layouts/html_box");
8680
8704
  const dom_1 = require("@bokehjs/core/dom");
8681
8705
  const color_1 = require("@bokehjs/core/util/color");
8682
- const data_1 = require("f1971f81bf") /* ./data */;
8706
+ const data_1 = require("7f7d9e0c6b") /* ./data */;
8683
8707
  const event_to_object_1 = require("3329d4aa5b") /* ./event-to-object */;
8684
8708
  const html_1 = require("2839081043") /* ./html */;
8685
8709
  const layout_1 = require("4c755983eb") /* ./layout */;
@@ -9559,11 +9583,24 @@
9559
9583
  State.__module__ = "panel.models.state";
9560
9584
  State.init_State();
9561
9585
  },
9562
- "91fe88c277": /* models/terminal.js */ function _(require, module, exports, __esModule, __esExport) {
9586
+ "edf66f5228": /* models/terminal.js */ function _(require, module, exports, __esModule, __esExport) {
9563
9587
  __esModule();
9564
9588
  const html_box_1 = require("@bokehjs/models/layouts/html_box");
9565
9589
  const dom_1 = require("@bokehjs/core/dom");
9590
+ const bokeh_events_1 = require("@bokehjs/core/bokeh_events");
9566
9591
  const layout_1 = require("4c755983eb") /* ./layout */;
9592
+ class KeystrokeEvent extends bokeh_events_1.ModelEvent {
9593
+ constructor(key) {
9594
+ super();
9595
+ this.key = key;
9596
+ this.event_name = "keystroke";
9597
+ }
9598
+ _to_json() {
9599
+ return { model: this.origin, key: this.key };
9600
+ }
9601
+ }
9602
+ exports.KeystrokeEvent = KeystrokeEvent;
9603
+ KeystrokeEvent.__name__ = "KeystrokeEvent";
9567
9604
  class TerminalView extends layout_1.PanelHTMLBoxView {
9568
9605
  connect_signals() {
9569
9606
  super.connect_signals();
@@ -9582,9 +9619,8 @@
9582
9619
  this.term.loadAddon(this.webLinksAddon);
9583
9620
  this.term.open(this.container);
9584
9621
  this.term.onRender(() => {
9585
- if (!this._rendered) {
9622
+ if (!this._rendered)
9586
9623
  this.fit();
9587
- }
9588
9624
  });
9589
9625
  this.write();
9590
9626
  this.el.appendChild(this.container);
@@ -9601,11 +9637,7 @@
9601
9637
  return new wn.WebLinksAddon.WebLinksAddon();
9602
9638
  }
9603
9639
  handleOnData(value) {
9604
- // Hack to handle repeating keyboard inputs
9605
- if (this.model.input === value)
9606
- this.model._value_repeats += 1;
9607
- else
9608
- this.model.input = value;
9640
+ this.model.trigger_event(new KeystrokeEvent(value));
9609
9641
  }
9610
9642
  write() {
9611
9643
  const text = this.model.output;
@@ -9617,7 +9649,6 @@
9617
9649
  this.term.write(cleaned);
9618
9650
  }
9619
9651
  clear() {
9620
- // https://stackoverflow.com/questions/65367607/how-to-handle-new-line-in-xterm-js-while-writing-data-into-the-terminal
9621
9652
  this.term.clear();
9622
9653
  }
9623
9654
  fit() {
@@ -9630,10 +9661,10 @@
9630
9661
  return;
9631
9662
  const cols = Math.max(2, Math.floor(width / cell_width));
9632
9663
  const rows = Math.max(1, Math.floor(height / cell_height));
9633
- if (this.term.rows !== rows || this.term.cols !== cols) {
9634
- renderer.clear();
9664
+ if (this.term.rows !== rows || this.term.cols !== cols)
9635
9665
  this.term.resize(cols, rows);
9636
- }
9666
+ this.model.ncols = cols;
9667
+ this.model.nrows = rows;
9637
9668
  this._rendered = true;
9638
9669
  }
9639
9670
  after_layout() {
@@ -9655,11 +9686,11 @@
9655
9686
  static init_Terminal() {
9656
9687
  this.prototype.default_view = TerminalView;
9657
9688
  this.define(({ Any, Int, String }) => ({
9689
+ _clears: [Int, 0],
9658
9690
  options: [Any, {}],
9659
9691
  output: [String,],
9660
- input: [String,],
9661
- _clears: [Int, 0],
9662
- _value_repeats: [Int, 0],
9692
+ ncols: [Int],
9693
+ nrows: [Int],
9663
9694
  }));
9664
9695
  }
9665
9696
  }
@@ -10012,7 +10043,7 @@
10012
10043
  TrendIndicator.__module__ = "panel.models.trend";
10013
10044
  TrendIndicator.init_TrendIndicator();
10014
10045
  },
10015
- "4feb5fa522": /* models/vega.js */ function _(require, module, exports, __esModule, __esExport) {
10046
+ "345d5ea993": /* models/vega.js */ function _(require, module, exports, __esModule, __esExport) {
10016
10047
  __esModule();
10017
10048
  const types_1 = require("@bokehjs/core/util/types");
10018
10049
  const html_box_1 = require("@bokehjs/models/layouts/html_box");
@@ -10075,7 +10106,31 @@
10075
10106
  }
10076
10107
  this.model.data['datasets'] = datasets;
10077
10108
  }
10078
- window.vegaEmbed(this.el, this.model.data, { actions: false });
10109
+ window.vegaEmbed(this.el, this.model.data, { actions: false }).then((result) => {
10110
+ this.vega_view = result.view;
10111
+ this.relayout();
10112
+ if (this.vega_view._viewHeight <= 0 || this.vega_view._viewWidth <= 0) {
10113
+ window.dispatchEvent(new Event('resize'));
10114
+ }
10115
+ });
10116
+ }
10117
+ relayout() {
10118
+ this.update_layout();
10119
+ this.compute_layout();
10120
+ if (this.root !== this)
10121
+ this.invalidate_layout();
10122
+ else if (this._parent != undefined) // HACK: Support ReactiveHTML
10123
+ this._parent.invalidate_layout();
10124
+ }
10125
+ box_sizing() {
10126
+ const sizing = super.box_sizing();
10127
+ if (this.vega_view != null) {
10128
+ if (sizing.height_policy === "fixed")
10129
+ sizing.height = this.vega_view._viewHeight;
10130
+ if (sizing.width_policy === "fixed")
10131
+ sizing.width = this.vega_view._viewWidth;
10132
+ }
10133
+ return sizing;
10079
10134
  }
10080
10135
  }
10081
10136
  exports.VegaPlotView = VegaPlotView;
@@ -10330,19 +10385,19 @@
10330
10385
  },
10331
10386
  "c51f25e2a7": /* models/vtk/index.js */ function _(require, module, exports, __esModule, __esExport) {
10332
10387
  __esModule();
10333
- var vtkjs_1 = require("34fc7779c7") /* ./vtkjs */;
10388
+ var vtkjs_1 = require("b6d9199d03") /* ./vtkjs */;
10334
10389
  __esExport("VTKJSPlot", vtkjs_1.VTKJSPlot);
10335
10390
  var vtkvolume_1 = require("89262e43a1") /* ./vtkvolume */;
10336
10391
  __esExport("VTKVolumePlot", vtkvolume_1.VTKVolumePlot);
10337
- var vtkaxes_1 = require("db7a0079c0") /* ./vtkaxes */;
10392
+ var vtkaxes_1 = require("204e2f98bd") /* ./vtkaxes */;
10338
10393
  __esExport("VTKAxes", vtkaxes_1.VTKAxes);
10339
- var vtksynchronized_1 = require("4baab0b7ce") /* ./vtksynchronized */;
10394
+ var vtksynchronized_1 = require("f2aca51dd4") /* ./vtksynchronized */;
10340
10395
  __esExport("VTKSynchronizedPlot", vtksynchronized_1.VTKSynchronizedPlot);
10341
10396
  },
10342
- "34fc7779c7": /* models/vtk/vtkjs.js */ function _(require, module, exports, __esModule, __esExport) {
10397
+ "b6d9199d03": /* models/vtk/vtkjs.js */ function _(require, module, exports, __esModule, __esExport) {
10343
10398
  __esModule();
10344
- const vtklayout_1 = require("46fdad9667") /* ./vtklayout */;
10345
- const util_1 = require("4eb45e35aa") /* ./util */;
10399
+ const vtklayout_1 = require("4150eab9ba") /* ./vtklayout */;
10400
+ const util_1 = require("993f3118b2") /* ./util */;
10346
10401
  class VTKJSPlotView extends vtklayout_1.AbstractVTKView {
10347
10402
  connect_signals() {
10348
10403
  super.connect_signals();
@@ -10377,7 +10432,7 @@
10377
10432
  renderer: this._vtk_renwin.getRenderer(),
10378
10433
  dataAccessHelper,
10379
10434
  });
10380
- const fn = util_1.vtk.macro.debounce(() => setTimeout(() => {
10435
+ const fn = window.vtk.macro.debounce(() => setTimeout(() => {
10381
10436
  if (this._axes == null && this.model.axes)
10382
10437
  this._set_axes();
10383
10438
  this._set_camera_state();
@@ -10404,7 +10459,7 @@
10404
10459
  VTKJSPlot.__name__ = "VTKJSPlot";
10405
10460
  VTKJSPlot.init_VTKJSPlot();
10406
10461
  },
10407
- "46fdad9667": /* models/vtk/vtklayout.js */ function _(require, module, exports, __esModule, __esExport) {
10462
+ "4150eab9ba": /* models/vtk/vtklayout.js */ function _(require, module, exports, __esModule, __esExport) {
10408
10463
  __esModule();
10409
10464
  const dom_1 = require("@bokehjs/core/dom");
10410
10465
  const html_box_1 = require("@bokehjs/models/layouts/html_box");
@@ -10412,9 +10467,9 @@
10412
10467
  const color_mapper_1 = require("@bokehjs/models/mappers/color_mapper");
10413
10468
  const kinds_1 = require("@bokehjs/core/kinds");
10414
10469
  const layout_1 = require("4c755983eb") /* ../layout */;
10415
- const util_1 = require("4eb45e35aa") /* ./util */;
10470
+ const util_1 = require("993f3118b2") /* ./util */;
10416
10471
  const vtkcolorbar_1 = require("c010237f8b") /* ./vtkcolorbar */;
10417
- const vtkaxes_1 = require("db7a0079c0") /* ./vtkaxes */;
10472
+ const vtkaxes_1 = require("204e2f98bd") /* ./vtkaxes */;
10418
10473
  const INFO_DIV_STYLE = {
10419
10474
  padding: "0px 2px 0px 2px",
10420
10475
  maxHeight: "150px",
@@ -10552,7 +10607,6 @@
10552
10607
  });
10553
10608
  }
10554
10609
  }
10555
- console.log(this.model.annotations);
10556
10610
  }
10557
10611
  connect_signals() {
10558
10612
  super.connect_signals();
@@ -10815,6 +10869,7 @@
10815
10869
  AbstractVTKView.__name__ = "AbstractVTKView";
10816
10870
  class AbstractVTKPlot extends html_box_1.HTMLBox {
10817
10871
  constructor(attrs) {
10872
+ (0, util_1.setup_vtkns)();
10818
10873
  super(attrs);
10819
10874
  }
10820
10875
  getActors() {
@@ -10840,7 +10895,7 @@
10840
10895
  AbstractVTKPlot.__module__ = "panel.models.vtk";
10841
10896
  AbstractVTKPlot.init_AbstractVTKPlot();
10842
10897
  },
10843
- "4eb45e35aa": /* models/vtk/util.js */ function _(require, module, exports, __esModule, __esExport) {
10898
+ "993f3118b2": /* models/vtk/util.js */ function _(require, module, exports, __esModule, __esExport) {
10844
10899
  __esModule();
10845
10900
  const array_1 = require("@bokehjs/core/util/array");
10846
10901
  const kinds_1 = require("@bokehjs/core/kinds");
@@ -10854,65 +10909,70 @@
10854
10909
  float32: Float32Array,
10855
10910
  float64: Float64Array,
10856
10911
  };
10857
- exports.vtk = window.vtk;
10858
10912
  exports.vtkns = {};
10859
- if (exports.vtk) {
10860
- exports.vtkns["Actor"] = exports.vtk.Rendering.Core.vtkActor;
10861
- exports.vtkns["AxesActor"] = exports.vtk.Rendering.Core.vtkAxesActor;
10862
- exports.vtkns["Base64"] = exports.vtk.Common.Core.vtkBase64;
10863
- exports.vtkns["BoundingBox"] = exports.vtk.Common.DataModel.vtkBoundingBox;
10864
- exports.vtkns["Camera"] = exports.vtk.Rendering.Core.vtkCamera;
10865
- exports.vtkns["ColorTransferFunction"] = exports.vtk.Rendering.Core.vtkColorTransferFunction;
10866
- exports.vtkns["CubeSource"] = exports.vtk.Filters.Sources.vtkCubeSource;
10867
- exports.vtkns["DataAccessHelper"] = exports.vtk.IO.Core.DataAccessHelper;
10868
- exports.vtkns["DataArray"] = exports.vtk.Common.Core.vtkDataArray;
10869
- exports.vtkns["Follower"] = exports.vtk.Rendering.Core.vtkFollower;
10870
- exports.vtkns["FullScreenRenderWindow"] = exports.vtk.Rendering.Misc.vtkFullScreenRenderWindow;
10871
- exports.vtkns["Glyph3DMapper"] = exports.vtk.Rendering.Core.vtkGlyph3DMapper;
10872
- exports.vtkns["HttpSceneLoader"] = exports.vtk.IO.Core.vtkHttpSceneLoader;
10873
- exports.vtkns["ImageData"] = exports.vtk.Common.DataModel.vtkImageData;
10874
- exports.vtkns["ImageMapper"] = exports.vtk.Rendering.Core.vtkImageMapper;
10875
- exports.vtkns["ImageProperty"] = exports.vtk.Rendering.Core.vtkImageProperty;
10876
- exports.vtkns["ImageSlice"] = exports.vtk.Rendering.Core.vtkImageSlice;
10913
+ function setup_vtkns() {
10914
+ if (exports.vtkns.Actor != null)
10915
+ return;
10916
+ const vtk = window.vtk;
10917
+ exports.vtkns["Actor"] = vtk.Rendering.Core.vtkActor;
10918
+ exports.vtkns["AxesActor"] = vtk.Rendering.Core.vtkAxesActor;
10919
+ exports.vtkns["Base64"] = vtk.Common.Core.vtkBase64;
10920
+ exports.vtkns["BoundingBox"] = vtk.Common.DataModel.vtkBoundingBox;
10921
+ exports.vtkns["Camera"] = vtk.Rendering.Core.vtkCamera;
10922
+ exports.vtkns["ColorTransferFunction"] = vtk.Rendering.Core.vtkColorTransferFunction;
10923
+ exports.vtkns["CubeSource"] = vtk.Filters.Sources.vtkCubeSource;
10924
+ exports.vtkns["DataAccessHelper"] = vtk.IO.Core.DataAccessHelper;
10925
+ exports.vtkns["DataArray"] = vtk.Common.Core.vtkDataArray;
10926
+ exports.vtkns["Follower"] = vtk.Rendering.Core.vtkFollower;
10927
+ exports.vtkns["FullScreenRenderWindow"] = vtk.Rendering.Misc.vtkFullScreenRenderWindow;
10928
+ exports.vtkns["Glyph3DMapper"] = vtk.Rendering.Core.vtkGlyph3DMapper;
10929
+ exports.vtkns["HttpSceneLoader"] = vtk.IO.Core.vtkHttpSceneLoader;
10930
+ exports.vtkns["ImageData"] = vtk.Common.DataModel.vtkImageData;
10931
+ exports.vtkns["ImageMapper"] = vtk.Rendering.Core.vtkImageMapper;
10932
+ exports.vtkns["ImageProperty"] = vtk.Rendering.Core.vtkImageProperty;
10933
+ exports.vtkns["ImageSlice"] = vtk.Rendering.Core.vtkImageSlice;
10877
10934
  exports.vtkns["InteractiveOrientationWidget"] =
10878
- exports.vtk.Widgets.Widgets3D.vtkInteractiveOrientationWidget;
10935
+ vtk.Widgets.Widgets3D.vtkInteractiveOrientationWidget;
10879
10936
  exports.vtkns["InteractorStyleTrackballCamera"] =
10880
- exports.vtk.Interaction.Style.vtkInteractorStyleTrackballCamera;
10881
- exports.vtkns["Light"] = exports.vtk.Rendering.Core.vtkLight;
10882
- exports.vtkns["LineSource"] = exports.vtk.Filters.Sources.vtkLineSource;
10883
- exports.vtkns["LookupTable"] = exports.vtk.Common.Core.vtkLookupTable;
10884
- exports.vtkns["macro"] = exports.vtk.macro;
10885
- exports.vtkns["Mapper"] = exports.vtk.Rendering.Core.vtkMapper;
10886
- exports.vtkns["OpenGLRenderWindow"] = exports.vtk.Rendering.OpenGL.vtkRenderWindow;
10937
+ vtk.Interaction.Style.vtkInteractorStyleTrackballCamera;
10938
+ exports.vtkns["Light"] = vtk.Rendering.Core.vtkLight;
10939
+ exports.vtkns["LineSource"] = vtk.Filters.Sources.vtkLineSource;
10940
+ exports.vtkns["LookupTable"] = vtk.Common.Core.vtkLookupTable;
10941
+ exports.vtkns["macro"] = vtk.macro;
10942
+ exports.vtkns["Mapper"] = vtk.Rendering.Core.vtkMapper;
10943
+ exports.vtkns["OpenGLRenderWindow"] = vtk.Rendering.OpenGL.vtkRenderWindow;
10887
10944
  exports.vtkns["OrientationMarkerWidget"] =
10888
- exports.vtk.Interaction.Widgets.vtkOrientationMarkerWidget;
10889
- exports.vtkns["OutlineFilter"] = exports.vtk.Filters.General.vtkOutlineFilter;
10890
- exports.vtkns["PiecewiseFunction"] = exports.vtk.Common.DataModel.vtkPiecewiseFunction;
10945
+ vtk.Interaction.Widgets.vtkOrientationMarkerWidget;
10946
+ exports.vtkns["OutlineFilter"] = vtk.Filters.General.vtkOutlineFilter;
10947
+ exports.vtkns["PiecewiseFunction"] = vtk.Common.DataModel.vtkPiecewiseFunction;
10891
10948
  exports.vtkns["PixelSpaceCallbackMapper"] =
10892
- exports.vtk.Rendering.Core.vtkPixelSpaceCallbackMapper;
10893
- exports.vtkns["PlaneSource"] = exports.vtk.Filters.Sources.vtkPlaneSource;
10894
- exports.vtkns["PointSource"] = exports.vtk.Filters.Sources.vtkPointSource;
10895
- exports.vtkns["PolyData"] = exports.vtk.Common.DataModel.vtkPolyData;
10896
- exports.vtkns["Property"] = exports.vtk.Rendering.Core.vtkProperty;
10897
- exports.vtkns["Renderer"] = exports.vtk.Rendering.Core.vtkRenderer;
10898
- exports.vtkns["RenderWindow"] = exports.vtk.Rendering.Core.vtkRenderWindow;
10899
- exports.vtkns["RenderWindowInteractor"] = exports.vtk.Rendering.Core.vtkRenderWindowInteractor;
10900
- exports.vtkns["SphereMapper"] = exports.vtk.Rendering.Core.vtkSphereMapper;
10949
+ vtk.Rendering.Core.vtkPixelSpaceCallbackMapper;
10950
+ exports.vtkns["PlaneSource"] = vtk.Filters.Sources.vtkPlaneSource;
10951
+ exports.vtkns["PointSource"] = vtk.Filters.Sources.vtkPointSource;
10952
+ exports.vtkns["PolyData"] = vtk.Common.DataModel.vtkPolyData;
10953
+ exports.vtkns["Property"] = vtk.Rendering.Core.vtkProperty;
10954
+ exports.vtkns["Renderer"] = vtk.Rendering.Core.vtkRenderer;
10955
+ exports.vtkns["RenderWindow"] = vtk.Rendering.Core.vtkRenderWindow;
10956
+ exports.vtkns["RenderWindowInteractor"] = vtk.Rendering.Core.vtkRenderWindowInteractor;
10957
+ exports.vtkns["SphereMapper"] = vtk.Rendering.Core.vtkSphereMapper;
10901
10958
  exports.vtkns["SynchronizableRenderWindow"] =
10902
- exports.vtk.Rendering.Misc.vtkSynchronizableRenderWindow;
10903
- exports.vtkns["ThirdParty"] = exports.vtk.ThirdParty;
10904
- exports.vtkns["Texture"] = exports.vtk.Rendering.Core.vtkTexture;
10905
- exports.vtkns["Volume"] = exports.vtk.Rendering.Core.vtkVolume;
10906
- exports.vtkns["VolumeController"] = exports.vtk.Interaction.UI.vtkVolumeController;
10907
- exports.vtkns["VolumeMapper"] = exports.vtk.Rendering.Core.vtkVolumeMapper;
10908
- exports.vtkns["VolumeProperty"] = exports.vtk.Rendering.Core.vtkVolumeProperty;
10909
- exports.vtkns["WidgetManager"] = exports.vtk.Widgets.Core.vtkWidgetManager;
10959
+ vtk.Rendering.Misc.vtkSynchronizableRenderWindow;
10960
+ exports.vtkns["ThirdParty"] = vtk.ThirdParty;
10961
+ exports.vtkns["Texture"] = vtk.Rendering.Core.vtkTexture;
10962
+ exports.vtkns["Volume"] = vtk.Rendering.Core.vtkVolume;
10963
+ exports.vtkns["VolumeController"] = vtk.Interaction.UI.vtkVolumeController;
10964
+ exports.vtkns["VolumeMapper"] = vtk.Rendering.Core.vtkVolumeMapper;
10965
+ exports.vtkns["VolumeProperty"] = vtk.Rendering.Core.vtkVolumeProperty;
10966
+ exports.vtkns["WidgetManager"] = vtk.Widgets.Core.vtkWidgetManager;
10910
10967
  const { vtkObjectManager } = exports.vtkns.SynchronizableRenderWindow;
10911
10968
  vtkObjectManager.setTypeMapping("vtkVolumeMapper", exports.vtkns.VolumeMapper.newInstance, vtkObjectManager.oneTimeGenericUpdater);
10912
10969
  vtkObjectManager.setTypeMapping("vtkSmartVolumeMapper", exports.vtkns.VolumeMapper.newInstance, vtkObjectManager.oneTimeGenericUpdater);
10913
10970
  vtkObjectManager.setTypeMapping("vtkFollower", exports.vtkns.Follower.newInstance, vtkObjectManager.genericUpdater);
10914
10971
  vtkObjectManager.setTypeMapping("vtkOpenGLGlyph3DMapper", exports.vtkns.Glyph3DMapper.newInstance, vtkObjectManager.genericUpdater);
10915
10972
  }
10973
+ exports.setup_vtkns = setup_vtkns;
10974
+ if (window.vtk)
10975
+ setup_vtkns();
10916
10976
  exports.Interpolation = (0, kinds_1.Enum)("fast_linear", "linear", "nearest");
10917
10977
  function applyStyle(el, style) {
10918
10978
  Object.keys(style).forEach((key) => {
@@ -11090,13 +11150,13 @@
11090
11150
  exports.VTKColorBar = VTKColorBar;
11091
11151
  VTKColorBar.__name__ = "VTKColorBar";
11092
11152
  },
11093
- "db7a0079c0": /* models/vtk/vtkaxes.js */ function _(require, module, exports, __esModule, __esExport) {
11153
+ "204e2f98bd": /* models/vtk/vtkaxes.js */ function _(require, module, exports, __esModule, __esExport) {
11094
11154
  __esModule();
11095
11155
  const tslib_1 = require("tslib");
11096
11156
  const p = (0, tslib_1.__importStar)(require("@bokehjs/core/properties"));
11097
11157
  const model_1 = require("@bokehjs/model");
11098
11158
  const gl_matrix_1 = require("2f3fd5db07") /* gl-matrix */;
11099
- const util_1 = require("4eb45e35aa") /* ./util */;
11159
+ const util_1 = require("993f3118b2") /* ./util */;
11100
11160
  class VTKAxes extends model_1.Model {
11101
11161
  constructor(attrs) {
11102
11162
  super(attrs);
@@ -11173,7 +11233,7 @@
11173
11233
  polys.push(this._make_grid_lines(this.yticks.length, this.zticks.length, offset)); //yz
11174
11234
  offset += this.yticks.length * this.zticks.length;
11175
11235
  polys.push(this._make_grid_lines(this.xticks.length, this.zticks.length, offset)); //xz
11176
- const gridPolyData = (0, util_1.vtk)({
11236
+ const gridPolyData = window.vtk({
11177
11237
  vtkClass: "vtkPolyData",
11178
11238
  points: {
11179
11239
  vtkClass: "vtkPoints",
@@ -11213,7 +11273,7 @@
11213
11273
  }
11214
11274
  return coords;
11215
11275
  }).flat(2);
11216
- const axesPolyData = (0, util_1.vtk)({
11276
+ const axesPolyData = window.vtk({
11217
11277
  vtkClass: "vtkPolyData",
11218
11278
  points: {
11219
11279
  vtkClass: "vtkPoints",
@@ -17882,8 +17942,8 @@
17882
17942
  },
17883
17943
  "89262e43a1": /* models/vtk/vtkvolume.js */ function _(require, module, exports, __esModule, __esExport) {
17884
17944
  __esModule();
17885
- const vtklayout_1 = require("46fdad9667") /* ./vtklayout */;
17886
- const util_1 = require("4eb45e35aa") /* ./util */;
17945
+ const vtklayout_1 = require("4150eab9ba") /* ./vtklayout */;
17946
+ const util_1 = require("993f3118b2") /* ./util */;
17887
17947
  class VTKVolumePlotView extends vtklayout_1.AbstractVTKView {
17888
17948
  connect_signals() {
17889
17949
  super.connect_signals();
@@ -18224,14 +18284,14 @@
18224
18284
  VTKVolumePlot.__name__ = "VTKVolumePlot";
18225
18285
  VTKVolumePlot.init_VTKVolumePlot();
18226
18286
  },
18227
- "4baab0b7ce": /* models/vtk/vtksynchronized.js */ function _(require, module, exports, __esModule, __esExport) {
18287
+ "f2aca51dd4": /* models/vtk/vtksynchronized.js */ function _(require, module, exports, __esModule, __esExport) {
18228
18288
  __esModule();
18229
18289
  const tslib_1 = require("tslib");
18230
18290
  const p = (0, tslib_1.__importStar)(require("@bokehjs/core/properties"));
18231
18291
  const object_1 = require("@bokehjs/core/util/object");
18232
- const vtklayout_1 = require("46fdad9667") /* ./vtklayout */;
18233
- const util_1 = require("4eb45e35aa") /* ./util */;
18234
- const panel_fullscreen_renwin_sync_1 = require("11e0707a8f") /* ./panel_fullscreen_renwin_sync */;
18292
+ const vtklayout_1 = require("4150eab9ba") /* ./vtklayout */;
18293
+ const panel_fullscreen_renwin_sync_1 = require("877619fe71") /* ./panel_fullscreen_renwin_sync */;
18294
+ const util_1 = require("993f3118b2") /* ./util */;
18235
18295
  const CONTEXT_NAME = "panel";
18236
18296
  class VTKSynchronizedPlotView extends vtklayout_1.AbstractVTKView {
18237
18297
  initialize() {
@@ -18282,7 +18342,7 @@
18282
18342
  });
18283
18343
  }
18284
18344
  init_vtk_renwin() {
18285
- this._vtk_renwin = panel_fullscreen_renwin_sync_1.FullScreenRenderWindowSynchronized.newInstance({
18345
+ this._vtk_renwin = util_1.vtkns.FullScreenRenderWindowSynchronized.newInstance({
18286
18346
  rootContainer: this.el,
18287
18347
  container: this._vtk_container,
18288
18348
  synchronizerContext: this._synchronizer_context,
@@ -18359,6 +18419,7 @@
18359
18419
  class VTKSynchronizedPlot extends vtklayout_1.AbstractVTKPlot {
18360
18420
  constructor(attrs) {
18361
18421
  super(attrs);
18422
+ (0, panel_fullscreen_renwin_sync_1.initialize_fullscreen_render)();
18362
18423
  this.outline = util_1.vtkns.OutlineFilter.newInstance(); //use to display bouding box of a selected actor
18363
18424
  const mapper = util_1.vtkns.Mapper.newInstance();
18364
18425
  mapper.setInputConnection(this.outline.getOutputPort());
@@ -18397,108 +18458,111 @@
18397
18458
  VTKSynchronizedPlot.__module__ = "panel.models.vtk";
18398
18459
  VTKSynchronizedPlot.init_VTKSynchronizedPlot();
18399
18460
  },
18400
- "11e0707a8f": /* models/vtk/panel_fullscreen_renwin_sync.js */ function _(require, module, exports, __esModule, __esExport) {
18461
+ "877619fe71": /* models/vtk/panel_fullscreen_renwin_sync.js */ function _(require, module, exports, __esModule, __esExport) {
18401
18462
  __esModule();
18402
- const util_1 = require("4eb45e35aa") /* ./util */;
18403
- if (util_1.vtk) {
18404
- const DEFAULT_VALUES = {
18405
- containerStyle: null,
18406
- controlPanelStyle: null,
18407
- listenWindowResize: true,
18408
- resizeCallback: null,
18409
- controllerVisibility: true,
18410
- synchronizerContextName: "default",
18411
- };
18412
- const STYLE_CONTROL_PANEL = {
18413
- position: "absolute",
18414
- left: "25px",
18415
- top: "25px",
18416
- backgroundColor: "white",
18417
- borderRadius: "5px",
18418
- listStyle: "none",
18419
- padding: "5px 10px",
18420
- margin: "0",
18421
- display: "block",
18422
- border: "solid 1px black",
18423
- maxWidth: "calc(100vw - 70px)",
18424
- maxHeight: "calc(100vh - 60px)",
18425
- overflow: "auto",
18463
+ const util_1 = require("993f3118b2") /* ./util */;
18464
+ //------------------------//
18465
+ //Custom Extended Classes
18466
+ //------------------------//
18467
+ const DEFAULT_VALUES = {
18468
+ containerStyle: null,
18469
+ controlPanelStyle: null,
18470
+ listenWindowResize: true,
18471
+ resizeCallback: null,
18472
+ controllerVisibility: true,
18473
+ synchronizerContextName: "default",
18474
+ };
18475
+ const STYLE_CONTROL_PANEL = {
18476
+ position: "absolute",
18477
+ left: "25px",
18478
+ top: "25px",
18479
+ backgroundColor: "white",
18480
+ borderRadius: "5px",
18481
+ listStyle: "none",
18482
+ padding: "5px 10px",
18483
+ margin: "0",
18484
+ display: "block",
18485
+ border: "solid 1px black",
18486
+ maxWidth: "calc(100vw - 70px)",
18487
+ maxHeight: "calc(100vh - 60px)",
18488
+ overflow: "auto",
18489
+ };
18490
+ function panelFullScreenRenderWindowSynchronized(publicAPI, model) {
18491
+ // Panel (modification) synchronizable renderWindow
18492
+ model.renderWindow = util_1.vtkns.SynchronizableRenderWindow.newInstance({
18493
+ synchronizerContext: model.synchronizerContext,
18494
+ });
18495
+ // OpenGlRenderWindow
18496
+ model.openGLRenderWindow = util_1.vtkns.OpenGLRenderWindow.newInstance();
18497
+ model.openGLRenderWindow.setContainer(model.container);
18498
+ model.renderWindow.addView(model.openGLRenderWindow);
18499
+ // Interactor
18500
+ model.interactor = util_1.vtkns.RenderWindowInteractor.newInstance();
18501
+ model.interactor.setInteractorStyle(util_1.vtkns.InteractorStyleTrackballCamera.newInstance());
18502
+ model.interactor.setView(model.openGLRenderWindow);
18503
+ model.interactor.initialize();
18504
+ model.interactor.bindEvents(model.container);
18505
+ publicAPI.getRenderer = () => model.renderWindow.getRenderers()[0];
18506
+ publicAPI.removeController = () => {
18507
+ const el = model.controlContainer;
18508
+ if (el) {
18509
+ el.parentNode.removeChild(el);
18510
+ }
18426
18511
  };
18427
- function panelFullScreenRenderWindowSynchronized(publicAPI, model) {
18428
- // Panel (modification) synchronizable renderWindow
18429
- model.renderWindow = util_1.vtkns.SynchronizableRenderWindow.newInstance({
18430
- synchronizerContext: model.synchronizerContext,
18431
- });
18432
- // OpenGlRenderWindow
18433
- model.openGLRenderWindow = util_1.vtkns.OpenGLRenderWindow.newInstance();
18434
- model.openGLRenderWindow.setContainer(model.container);
18435
- model.renderWindow.addView(model.openGLRenderWindow);
18436
- // Interactor
18437
- model.interactor = util_1.vtkns.RenderWindowInteractor.newInstance();
18438
- model.interactor.setInteractorStyle(util_1.vtkns.InteractorStyleTrackballCamera.newInstance());
18439
- model.interactor.setView(model.openGLRenderWindow);
18440
- model.interactor.initialize();
18441
- model.interactor.bindEvents(model.container);
18442
- publicAPI.getRenderer = () => model.renderWindow.getRenderers()[0];
18443
- publicAPI.removeController = () => {
18444
- const el = model.controlContainer;
18445
- if (el) {
18446
- el.parentNode.removeChild(el);
18512
+ publicAPI.setControllerVisibility = (visible) => {
18513
+ model.controllerVisibility = visible;
18514
+ if (model.controlContainer) {
18515
+ if (visible) {
18516
+ model.controlContainer.style.display = "block";
18447
18517
  }
18448
- };
18449
- publicAPI.setControllerVisibility = (visible) => {
18450
- model.controllerVisibility = visible;
18451
- if (model.controlContainer) {
18452
- if (visible) {
18453
- model.controlContainer.style.display = "block";
18454
- }
18455
- else {
18456
- model.controlContainer.style.display = "none";
18457
- }
18518
+ else {
18519
+ model.controlContainer.style.display = "none";
18458
18520
  }
18459
- };
18460
- publicAPI.toggleControllerVisibility = () => {
18461
- publicAPI.setControllerVisibility(!model.controllerVisibility);
18462
- };
18463
- publicAPI.addController = (html) => {
18464
- model.controlContainer = document.createElement("div");
18465
- (0, util_1.applyStyle)(model.controlContainer, model.controlPanelStyle || STYLE_CONTROL_PANEL);
18466
- model.rootContainer.appendChild(model.controlContainer);
18467
- model.controlContainer.innerHTML = html;
18468
- publicAPI.setControllerVisibility(model.controllerVisibility);
18469
- model.rootContainer.addEventListener("keypress", (e) => {
18470
- if (String.fromCharCode(e.charCode) === "c") {
18471
- publicAPI.toggleControllerVisibility();
18472
- }
18473
- });
18474
- };
18475
- // Properly release GL context
18476
- publicAPI.delete = util_1.vtk.macro.chain(publicAPI.setContainer, model.openGLRenderWindow.delete, publicAPI.delete);
18477
- // Handle window resize
18478
- publicAPI.resize = () => {
18479
- const dims = model.container.getBoundingClientRect();
18480
- const devicePixelRatio = window.devicePixelRatio || 1;
18481
- model.openGLRenderWindow.setSize(Math.floor(dims.width * devicePixelRatio), Math.floor(dims.height * devicePixelRatio));
18482
- if (model.resizeCallback) {
18483
- model.resizeCallback(dims);
18484
- }
18485
- model.renderWindow.render();
18486
- };
18487
- publicAPI.setResizeCallback = (cb) => {
18488
- model.resizeCallback = cb;
18489
- publicAPI.resize();
18490
- };
18491
- if (model.listenWindowResize) {
18492
- window.addEventListener("resize", publicAPI.resize);
18493
18521
  }
18522
+ };
18523
+ publicAPI.toggleControllerVisibility = () => {
18524
+ publicAPI.setControllerVisibility(!model.controllerVisibility);
18525
+ };
18526
+ publicAPI.addController = (html) => {
18527
+ model.controlContainer = document.createElement("div");
18528
+ (0, util_1.applyStyle)(model.controlContainer, model.controlPanelStyle || STYLE_CONTROL_PANEL);
18529
+ model.rootContainer.appendChild(model.controlContainer);
18530
+ model.controlContainer.innerHTML = html;
18531
+ publicAPI.setControllerVisibility(model.controllerVisibility);
18532
+ model.rootContainer.addEventListener("keypress", (e) => {
18533
+ if (String.fromCharCode(e.charCode) === "c") {
18534
+ publicAPI.toggleControllerVisibility();
18535
+ }
18536
+ });
18537
+ };
18538
+ // Properly release GL context
18539
+ publicAPI.delete = window.vtk.macro.chain(publicAPI.setContainer, model.openGLRenderWindow.delete, publicAPI.delete);
18540
+ // Handle window resize
18541
+ publicAPI.resize = () => {
18542
+ const dims = model.container.getBoundingClientRect();
18543
+ const devicePixelRatio = window.devicePixelRatio || 1;
18544
+ model.openGLRenderWindow.setSize(Math.floor(dims.width * devicePixelRatio), Math.floor(dims.height * devicePixelRatio));
18545
+ if (model.resizeCallback) {
18546
+ model.resizeCallback(dims);
18547
+ }
18548
+ model.renderWindow.render();
18549
+ };
18550
+ publicAPI.setResizeCallback = (cb) => {
18551
+ model.resizeCallback = cb;
18494
18552
  publicAPI.resize();
18553
+ };
18554
+ if (model.listenWindowResize) {
18555
+ window.addEventListener("resize", publicAPI.resize);
18495
18556
  }
18496
- exports.FullScreenRenderWindowSynchronized = {
18497
- newInstance: util_1.vtk.macro.newInstance((publicAPI, model, initialValues = {}) => {
18557
+ publicAPI.resize();
18558
+ }
18559
+ function initialize_fullscreen_render() {
18560
+ let FullScreenRenderWindowSynchronized = {
18561
+ newInstance: window.vtk.macro.newInstance((publicAPI, model, initialValues = {}) => {
18498
18562
  Object.assign(model, DEFAULT_VALUES, initialValues);
18499
18563
  // Object methods
18500
- util_1.vtk.macro.obj(publicAPI, model);
18501
- util_1.vtk.macro.get(publicAPI, model, [
18564
+ window.vtk.macro.obj(publicAPI, model);
18565
+ window.vtk.macro.get(publicAPI, model, [
18502
18566
  "renderWindow",
18503
18567
  "openGLRenderWindow",
18504
18568
  "interactor",
@@ -18511,7 +18575,9 @@
18511
18575
  panelFullScreenRenderWindowSynchronized(publicAPI, model);
18512
18576
  }),
18513
18577
  };
18578
+ util_1.vtkns.FullScreenRenderWindowSynchronized = FullScreenRenderWindowSynchronized;
18514
18579
  }
18580
+ exports.initialize_fullscreen_render = initialize_fullscreen_render;
18515
18581
  },
18516
- }, "4e90918c0a", {"index":"4e90918c0a","models/index":"7898617fc4","models/ace":"9fecc8d0f9","models/layout":"4c755983eb","models/audio":"339f84d639","models/card":"c816112d20","models/comm_manager":"e552778259","models/tabulator":"99e23dce53","models/data":"f1971f81bf","models/datetime_picker":"6e11b2cfe2","models/deckgl":"df2378664f","models/tooltips":"6e04fbe567","models/echarts":"9d046c4720","models/html":"2839081043","models/event-to-object":"3329d4aa5b","models/idom":"7d45bd3bc4","models/ipywidget":"0eae77d68f","models/json":"0d30bea0c8","models/file_download":"1767172ffa","models/katex":"7b859fb3cf","models/location":"642aa56b24","models/mathjax":"0c21036737","models/perspective":"84a772681d","models/player":"2e8044c920","models/plotly":"50ac0b0178","models/util":"990b5dd5c7","models/progress":"9f787650b9","models/reactive_html":"eb3a49319b","models/singleselect":"5ed2116e26","models/speech_to_text":"aaa48703af","models/state":"bfa46a5f19","models/terminal":"91fe88c277","models/text_to_speech":"33cd2c254e","models/trend":"effe070807","models/vega":"4feb5fa522","models/video":"ffe54b53c3","models/videostream":"e3e9b8e495","models/vtk/index":"c51f25e2a7","models/vtk/vtkjs":"34fc7779c7","models/vtk/vtklayout":"46fdad9667","models/vtk/util":"4eb45e35aa","models/vtk/vtkcolorbar":"c010237f8b","models/vtk/vtkaxes":"db7a0079c0","models/vtk/vtkvolume":"89262e43a1","models/vtk/vtksynchronized":"4baab0b7ce","models/vtk/panel_fullscreen_renwin_sync":"11e0707a8f"}, {});});
18582
+ }, "4e90918c0a", {"index":"4e90918c0a","models/index":"7898617fc4","models/ace":"9fecc8d0f9","models/layout":"4c755983eb","models/audio":"339f84d639","models/card":"b75e913327","models/comm_manager":"e552778259","models/tabulator":"50549c6ddc","models/data":"7f7d9e0c6b","models/datetime_picker":"6e11b2cfe2","models/deckgl":"df2378664f","models/tooltips":"6e04fbe567","models/echarts":"9d046c4720","models/html":"2839081043","models/event-to-object":"3329d4aa5b","models/idom":"7d45bd3bc4","models/ipywidget":"0eae77d68f","models/json":"0d30bea0c8","models/file_download":"1767172ffa","models/katex":"7b859fb3cf","models/location":"642aa56b24","models/mathjax":"0c21036737","models/perspective":"84a772681d","models/player":"2e8044c920","models/plotly":"cb7735fd77","models/util":"990b5dd5c7","models/progress":"9f787650b9","models/reactive_html":"eb3a49319b","models/singleselect":"5ed2116e26","models/speech_to_text":"aaa48703af","models/state":"bfa46a5f19","models/terminal":"edf66f5228","models/text_to_speech":"33cd2c254e","models/trend":"effe070807","models/vega":"345d5ea993","models/video":"ffe54b53c3","models/videostream":"e3e9b8e495","models/vtk/index":"c51f25e2a7","models/vtk/vtkjs":"b6d9199d03","models/vtk/vtklayout":"4150eab9ba","models/vtk/util":"993f3118b2","models/vtk/vtkcolorbar":"c010237f8b","models/vtk/vtkaxes":"204e2f98bd","models/vtk/vtkvolume":"89262e43a1","models/vtk/vtksynchronized":"f2aca51dd4","models/vtk/panel_fullscreen_renwin_sync":"877619fe71"}, {});});
18517
18583
  //# sourceMappingURL=panel.js.map