dockview-core 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -1
  2. package/dist/cjs/api/component.api.js +14 -0
  3. package/dist/cjs/dockview/components/popupService.js +1 -1
  4. package/dist/cjs/dockview/dockviewComponent.d.ts +16 -0
  5. package/dist/cjs/dockview/dockviewComponent.js +27 -10
  6. package/dist/cjs/dom.d.ts +6 -4
  7. package/dist/cjs/dom.js +90 -49
  8. package/dist/cjs/events.d.ts +1 -1
  9. package/dist/cjs/events.js +1 -10
  10. package/dist/cjs/overlay/overlay.js +4 -4
  11. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +13 -2
  12. package/dist/cjs/paneview/draggablePaneviewPanel.js +14 -4
  13. package/dist/cjs/paneview/paneviewComponent.d.ts +5 -0
  14. package/dist/cjs/paneview/paneviewComponent.js +25 -3
  15. package/dist/cjs/paneview/paneviewPanel.d.ts +13 -4
  16. package/dist/cjs/paneview/paneviewPanel.js +9 -13
  17. package/dist/cjs/popoutWindow.js +2 -2
  18. package/dist/cjs/splitview/splitviewComponent.js +3 -0
  19. package/dist/dockview-core.amd.js +154 -62
  20. package/dist/dockview-core.amd.js.map +1 -1
  21. package/dist/dockview-core.amd.min.js +2 -2
  22. package/dist/dockview-core.amd.min.js.map +1 -1
  23. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  24. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  25. package/dist/dockview-core.amd.noStyle.js +154 -62
  26. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  27. package/dist/dockview-core.cjs.js +154 -62
  28. package/dist/dockview-core.cjs.js.map +1 -1
  29. package/dist/dockview-core.esm.js +154 -62
  30. package/dist/dockview-core.esm.js.map +1 -1
  31. package/dist/dockview-core.esm.min.js +2 -2
  32. package/dist/dockview-core.esm.min.js.map +1 -1
  33. package/dist/dockview-core.js +154 -62
  34. package/dist/dockview-core.js.map +1 -1
  35. package/dist/dockview-core.min.js +2 -2
  36. package/dist/dockview-core.min.js.map +1 -1
  37. package/dist/dockview-core.min.noStyle.js +2 -2
  38. package/dist/dockview-core.min.noStyle.js.map +1 -1
  39. package/dist/dockview-core.noStyle.js +154 -62
  40. package/dist/dockview-core.noStyle.js.map +1 -1
  41. package/dist/esm/api/component.api.d.ts +3 -1
  42. package/dist/esm/api/component.api.js +6 -0
  43. package/dist/esm/dockview/components/popupService.js +2 -2
  44. package/dist/esm/dockview/dockviewComponent.d.ts +16 -0
  45. package/dist/esm/dockview/dockviewComponent.js +29 -12
  46. package/dist/esm/dom.d.ts +6 -4
  47. package/dist/esm/dom.js +65 -16
  48. package/dist/esm/events.d.ts +1 -1
  49. package/dist/esm/events.js +0 -8
  50. package/dist/esm/overlay/overlay.js +5 -5
  51. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +13 -2
  52. package/dist/esm/paneview/draggablePaneviewPanel.js +14 -4
  53. package/dist/esm/paneview/paneviewComponent.d.ts +5 -0
  54. package/dist/esm/paneview/paneviewComponent.js +25 -3
  55. package/dist/esm/paneview/paneviewPanel.d.ts +13 -4
  56. package/dist/esm/paneview/paneviewPanel.js +9 -13
  57. package/dist/esm/popoutWindow.js +3 -3
  58. package/dist/esm/splitview/splitviewComponent.js +3 -0
  59. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 4.0.1
3
+ * @version 4.1.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -219,14 +219,6 @@
219
219
  }
220
220
  Emitter.ENABLE_TRACKING = false;
221
221
  Emitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();
222
- function addDisposableWindowListener(element, type, listener, options) {
223
- element.addEventListener(type, listener, options);
224
- return {
225
- dispose: () => {
226
- element.removeEventListener(type, listener, options);
227
- },
228
- };
229
- }
230
222
  function addDisposableListener(element, type, listener, options) {
231
223
  element.addEventListener(type, listener, options);
232
224
  return {
@@ -405,9 +397,6 @@
405
397
  }
406
398
  return false;
407
399
  }
408
- function getElementsByTagName(tag) {
409
- return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);
410
- }
411
400
  function trackFocus(element) {
412
401
  return new FocusTracker(element);
413
402
  }
@@ -454,14 +443,8 @@
454
443
  }
455
444
  }
456
445
  };
457
- if (element instanceof HTMLElement) {
458
- this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));
459
- this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
460
- }
461
- else {
462
- this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));
463
- this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));
464
- }
446
+ this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));
447
+ this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
465
448
  }
466
449
  refreshState() {
467
450
  this._refreshStateHandler();
@@ -535,11 +518,30 @@
535
518
  function addTestId(element, id) {
536
519
  element.setAttribute('data-testid', id);
537
520
  }
538
- function disableIframePointEvents() {
539
- const iframes = [
540
- ...getElementsByTagName('iframe'),
541
- ...getElementsByTagName('webview'),
542
- ];
521
+ /**
522
+ * Should be more efficient than element.querySelectorAll("*") since there
523
+ * is no need to store every element in-memory using this approach
524
+ */
525
+ function allTagsNamesInclusiveOfShadowDoms(tagNames) {
526
+ const iframes = [];
527
+ function findIframesInNode(node) {
528
+ if (node.nodeType === Node.ELEMENT_NODE) {
529
+ if (tagNames.includes(node.tagName)) {
530
+ iframes.push(node);
531
+ }
532
+ if (node.shadowRoot) {
533
+ findIframesInNode(node.shadowRoot);
534
+ }
535
+ for (const child of node.children) {
536
+ findIframesInNode(child);
537
+ }
538
+ }
539
+ }
540
+ findIframesInNode(document.documentElement);
541
+ return iframes;
542
+ }
543
+ function disableIframePointEvents(rootNode = document) {
544
+ const iframes = allTagsNamesInclusiveOfShadowDoms(['IFRAME', 'WEBVIEW']);
543
545
  const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
544
546
  for (const iframe of iframes) {
545
547
  original.set(iframe, iframe.style.pointerEvents);
@@ -591,6 +593,7 @@
591
593
  }
592
594
  }
593
595
  }
596
+ const DEBOUCE_DELAY = 100;
594
597
  function isChildEntirelyVisibleWithinParent(child, parent) {
595
598
  //
596
599
  const childPosition = getDomNodePagePosition(child);
@@ -604,6 +607,41 @@
604
607
  }
605
608
  return true;
606
609
  }
610
+ function onDidWindowMoveEnd(window) {
611
+ const emitter = new Emitter();
612
+ let previousScreenX = window.screenX;
613
+ let previousScreenY = window.screenY;
614
+ let timeout;
615
+ const checkMovement = () => {
616
+ if (window.closed) {
617
+ return;
618
+ }
619
+ const currentScreenX = window.screenX;
620
+ const currentScreenY = window.screenY;
621
+ if (currentScreenX !== previousScreenX ||
622
+ currentScreenY !== previousScreenY) {
623
+ clearTimeout(timeout);
624
+ timeout = setTimeout(() => {
625
+ emitter.fire();
626
+ }, DEBOUCE_DELAY);
627
+ previousScreenX = currentScreenX;
628
+ previousScreenY = currentScreenY;
629
+ }
630
+ requestAnimationFrame(checkMovement);
631
+ };
632
+ checkMovement();
633
+ return emitter;
634
+ }
635
+ function onDidWindowResizeEnd(element, cb) {
636
+ let resizeTimeout;
637
+ const disposable = new CompositeDisposable(addDisposableListener(element, 'resize', () => {
638
+ clearTimeout(resizeTimeout);
639
+ resizeTimeout = setTimeout(() => {
640
+ cb();
641
+ }, DEBOUCE_DELAY);
642
+ }));
643
+ return disposable;
644
+ }
607
645
 
608
646
  function tail(arr) {
609
647
  if (arr.length === 0) {
@@ -3543,6 +3581,12 @@
3543
3581
  get onUnhandledDragOverEvent() {
3544
3582
  return this.component.onUnhandledDragOverEvent;
3545
3583
  }
3584
+ get onDidPopoutGroupSizeChange() {
3585
+ return this.component.onDidPopoutGroupSizeChange;
3586
+ }
3587
+ get onDidPopoutGroupPositionChange() {
3588
+ return this.component.onDidPopoutGroupPositionChange;
3589
+ }
3546
3590
  /**
3547
3591
  * All panel objects.
3548
3592
  */
@@ -4508,26 +4552,25 @@
4508
4552
  this._headerVisible = value;
4509
4553
  this.header.style.display = value ? '' : 'none';
4510
4554
  }
4511
- constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
4512
- super(id, component, new PaneviewPanelApiImpl(id, component));
4513
- this.headerComponent = headerComponent;
4555
+ constructor(options) {
4556
+ super(options.id, options.component, new PaneviewPanelApiImpl(options.id, options.component));
4514
4557
  this._onDidChangeExpansionState = new Emitter({ replay: true });
4515
4558
  this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
4516
4559
  this._onDidChange = new Emitter();
4517
4560
  this.onDidChange = this._onDidChange.event;
4518
- this.headerSize = 22;
4519
4561
  this._orthogonalSize = 0;
4520
4562
  this._size = 0;
4521
- this._minimumBodySize = 100;
4522
- this._maximumBodySize = Number.POSITIVE_INFINITY;
4523
4563
  this._isExpanded = false;
4524
- this.expandedSize = 0;
4525
4564
  this.api.pane = this; // TODO cannot use 'this' before 'super'
4526
4565
  this.api.initialize(this);
4527
- this._isExpanded = isExpanded;
4528
- this._headerVisible = isHeaderVisible;
4566
+ this.headerSize = options.headerSize;
4567
+ this.headerComponent = options.headerComponent;
4568
+ this._minimumBodySize = options.minimumBodySize;
4569
+ this._maximumBodySize = options.maximumBodySize;
4570
+ this._isExpanded = options.isExpanded;
4571
+ this._headerVisible = options.isHeaderVisible;
4529
4572
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4530
- this._orientation = orientation;
4573
+ this._orientation = options.orientation;
4531
4574
  this.element.classList.add('dv-pane');
4532
4575
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4533
4576
  const { isVisible } = event;
@@ -4594,9 +4637,6 @@
4594
4637
  const [width, height] = this.orientation === exports.Orientation.HORIZONTAL
4595
4638
  ? [size, orthogonalSize]
4596
4639
  : [orthogonalSize, size];
4597
- if (this.isExpanded()) {
4598
- this.expandedSize = width;
4599
- }
4600
4640
  super.layout(width, height);
4601
4641
  }
4602
4642
  init(parameters) {
@@ -4653,15 +4693,25 @@
4653
4693
  }
4654
4694
 
4655
4695
  class DraggablePaneviewPanel extends PaneviewPanel {
4656
- constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
4657
- super(id, component, headerComponent, orientation, isExpanded, true);
4658
- this.accessor = accessor;
4696
+ constructor(options) {
4697
+ super({
4698
+ id: options.id,
4699
+ component: options.component,
4700
+ headerComponent: options.headerComponent,
4701
+ orientation: options.orientation,
4702
+ isExpanded: options.isExpanded,
4703
+ isHeaderVisible: true,
4704
+ headerSize: options.headerSize,
4705
+ minimumBodySize: options.minimumBodySize,
4706
+ maximumBodySize: options.maximumBodySize,
4707
+ });
4659
4708
  this._onDidDrop = new Emitter();
4660
4709
  this.onDidDrop = this._onDidDrop.event;
4661
4710
  this._onUnhandledDragOverEvent = new Emitter();
4662
4711
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
4712
+ this.accessor = options.accessor;
4663
4713
  this.addDisposables(this._onDidDrop, this._onUnhandledDragOverEvent);
4664
- if (!disableDnd) {
4714
+ if (!options.disableDnd) {
4665
4715
  this.initDragFeatures();
4666
4716
  }
4667
4717
  }
@@ -7295,7 +7345,7 @@
7295
7345
  dispose: () => {
7296
7346
  iframes.release();
7297
7347
  },
7298
- }, addDisposableWindowListener(window, 'pointermove', (e) => {
7348
+ }, addDisposableListener(window, 'pointermove', (e) => {
7299
7349
  const containerRect = this.options.container.getBoundingClientRect();
7300
7350
  const x = e.clientX - containerRect.left;
7301
7351
  const y = e.clientY - containerRect.top;
@@ -7332,7 +7382,7 @@
7332
7382
  bounds.right = right;
7333
7383
  }
7334
7384
  this.setBounds(bounds);
7335
- }), addDisposableWindowListener(window, 'pointerup', () => {
7385
+ }), addDisposableListener(window, 'pointerup', () => {
7336
7386
  toggleClass(this._element, 'dv-resize-container-dragging', false);
7337
7387
  move.dispose();
7338
7388
  this._onDidChangeEnd.fire();
@@ -7377,7 +7427,7 @@
7377
7427
  e.preventDefault();
7378
7428
  let startPosition = null;
7379
7429
  const iframes = disableIframePointEvents();
7380
- move.value = new CompositeDisposable(addDisposableWindowListener(window, 'pointermove', (e) => {
7430
+ move.value = new CompositeDisposable(addDisposableListener(window, 'pointermove', (e) => {
7381
7431
  const containerRect = this.options.container.getBoundingClientRect();
7382
7432
  const overlayRect = this._element.getBoundingClientRect();
7383
7433
  const y = e.clientY - containerRect.top;
@@ -7501,7 +7551,7 @@
7501
7551
  dispose: () => {
7502
7552
  iframes.release();
7503
7553
  },
7504
- }, addDisposableWindowListener(window, 'pointerup', () => {
7554
+ }, addDisposableListener(window, 'pointerup', () => {
7505
7555
  move.dispose();
7506
7556
  this._onDidChangeEnd.fire();
7507
7557
  }));
@@ -7807,7 +7857,7 @@
7807
7857
  this._window = { value: externalWindow, disposable };
7808
7858
  disposable.addDisposables(exports.DockviewDisposable.from(() => {
7809
7859
  externalWindow.close();
7810
- }), addDisposableWindowListener(window, 'beforeunload', () => {
7860
+ }), addDisposableListener(window, 'beforeunload', () => {
7811
7861
  /**
7812
7862
  * before the main window closes we should close this popup too
7813
7863
  * to be good citizens
@@ -7842,7 +7892,7 @@
7842
7892
  * beforeunload must be registered after load for reasons I could not determine
7843
7893
  * otherwise the beforeunload event will not fire when the window is closed
7844
7894
  */
7845
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7895
+ addDisposableListener(externalWindow, 'beforeunload', () => {
7846
7896
  /**
7847
7897
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7848
7898
  */
@@ -7939,7 +7989,7 @@
7939
7989
  wrapper.style.left = `${position.x - offsetX}px`;
7940
7990
  this._element.appendChild(wrapper);
7941
7991
  this._active = wrapper;
7942
- this._activeDisposable.value = new CompositeDisposable(addDisposableWindowListener(window, 'pointerdown', (event) => {
7992
+ this._activeDisposable.value = new CompositeDisposable(addDisposableListener(window, 'pointerdown', (event) => {
7943
7993
  var _a;
7944
7994
  const target = event.target;
7945
7995
  if (!(target instanceof HTMLElement)) {
@@ -8118,6 +8168,10 @@
8118
8168
  this.onDidRemovePanel = this._onDidRemovePanel.event;
8119
8169
  this._onDidAddPanel = new Emitter();
8120
8170
  this.onDidAddPanel = this._onDidAddPanel.event;
8171
+ this._onDidPopoutGroupSizeChange = new Emitter();
8172
+ this.onDidPopoutGroupSizeChange = this._onDidPopoutGroupSizeChange.event;
8173
+ this._onDidPopoutGroupPositionChange = new Emitter();
8174
+ this.onDidPopoutGroupPositionChange = this._onDidPopoutGroupPositionChange.event;
8121
8175
  this._onDidLayoutFromJSON = new Emitter();
8122
8176
  this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
8123
8177
  this._onDidActivePanelChange = new Emitter();
@@ -8147,7 +8201,7 @@
8147
8201
  if (options.debug) {
8148
8202
  this.addDisposables(new StrictEventsSequencing(this));
8149
8203
  }
8150
- this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8204
+ this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8151
8205
  this.updateWatermark();
8152
8206
  }), this.onDidAdd((event) => {
8153
8207
  if (!this._moving) {
@@ -8168,7 +8222,7 @@
8168
8222
  });
8169
8223
  }), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
8170
8224
  this.updateWatermark();
8171
- }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
8225
+ }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange, this.onDidPopoutGroupPositionChange, this.onDidPopoutGroupSizeChange)(() => {
8172
8226
  this._bufferOnDidLayoutChange.fire();
8173
8227
  }), exports.DockviewDisposable.from(() => {
8174
8228
  // iterate over a copy of the array since .dispose() mutates the original array
@@ -8429,13 +8483,26 @@
8429
8483
  },
8430
8484
  },
8431
8485
  };
8432
- popoutWindowDisposable.addDisposables(
8486
+ const _onDidWindowPositionChange = onDidWindowMoveEnd(_window.window);
8487
+ popoutWindowDisposable.addDisposables(_onDidWindowPositionChange, onDidWindowResizeEnd(_window.window, () => {
8488
+ this._onDidPopoutGroupSizeChange.fire({
8489
+ width: _window.window.innerWidth,
8490
+ height: _window.window.innerHeight,
8491
+ group,
8492
+ });
8493
+ }), _onDidWindowPositionChange.event(() => {
8494
+ this._onDidPopoutGroupPositionChange.fire({
8495
+ screenX: _window.window.screenX,
8496
+ screenY: _window.window.screenX,
8497
+ group,
8498
+ });
8499
+ }),
8433
8500
  /**
8434
8501
  * ResizeObserver seems slow here, I do not know why but we don't need it
8435
8502
  * since we can reply on the window resize event as we will occupy the full
8436
8503
  * window dimensions
8437
8504
  */
8438
- addDisposableWindowListener(_window.window, 'resize', () => {
8505
+ addDisposableListener(_window.window, 'resize', () => {
8439
8506
  group.layout(_window.window.innerWidth, _window.window.innerHeight);
8440
8507
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
8441
8508
  if (this.isDisposed) {
@@ -8649,7 +8716,7 @@
8649
8716
  }
8650
8717
  this.updateWatermark();
8651
8718
  }
8652
- orthogonalize(position) {
8719
+ orthogonalize(position, options) {
8653
8720
  switch (position) {
8654
8721
  case 'top':
8655
8722
  case 'bottom':
@@ -8672,10 +8739,10 @@
8672
8739
  case 'top':
8673
8740
  case 'left':
8674
8741
  case 'center':
8675
- return this.createGroupAtLocation([0]); // insert into first position
8742
+ return this.createGroupAtLocation([0], undefined, options); // insert into first position
8676
8743
  case 'bottom':
8677
8744
  case 'right':
8678
- return this.createGroupAtLocation([this.gridview.length]); // insert into last position
8745
+ return this.createGroupAtLocation([this.gridview.length], undefined, options); // insert into last position
8679
8746
  default:
8680
8747
  throw new Error(`unsupported position ${position}`);
8681
8748
  }
@@ -9171,7 +9238,7 @@
9171
9238
  }
9172
9239
  }
9173
9240
  else {
9174
- const group = this.orthogonalize(directionToPosition(options.direction));
9241
+ const group = this.orthogonalize(directionToPosition(options.direction), options);
9175
9242
  if (!options.skipSetActive) {
9176
9243
  this.doSetGroupAndPanelActive(group);
9177
9244
  }
@@ -9613,8 +9680,8 @@
9613
9680
  });
9614
9681
  return panel;
9615
9682
  }
9616
- createGroupAtLocation(location, size) {
9617
- const group = this.createGroup();
9683
+ createGroupAtLocation(location, size, options) {
9684
+ const group = this.createGroup(options);
9618
9685
  this.doAddGroup(group, location, size);
9619
9686
  return group;
9620
9687
  }
@@ -9948,6 +10015,9 @@
9948
10015
  return this._splitview;
9949
10016
  }
9950
10017
  set splitview(value) {
10018
+ if (this._splitview) {
10019
+ this._splitview.dispose();
10020
+ }
9951
10021
  this._splitview = value;
9952
10022
  this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
9953
10023
  this._onDidLayoutChange.fire(undefined);
@@ -10251,9 +10321,23 @@
10251
10321
  }
10252
10322
 
10253
10323
  const nextLayoutId = sequentialNumberGenerator();
10324
+ const HEADER_SIZE = 22;
10325
+ const MINIMUM_BODY_SIZE = 0;
10326
+ const MAXIMUM_BODY_SIZE = Number.MAX_SAFE_INTEGER;
10254
10327
  class PaneFramework extends DraggablePaneviewPanel {
10255
10328
  constructor(options) {
10256
- super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
10329
+ super({
10330
+ accessor: options.accessor,
10331
+ id: options.id,
10332
+ component: options.component,
10333
+ headerComponent: options.headerComponent,
10334
+ orientation: options.orientation,
10335
+ isExpanded: options.isExpanded,
10336
+ disableDnd: options.disableDnd,
10337
+ headerSize: options.headerSize,
10338
+ minimumBodySize: options.minimumBodySize,
10339
+ maximumBodySize: options.maximumBodySize,
10340
+ });
10257
10341
  this.options = options;
10258
10342
  }
10259
10343
  getBodyComponent() {
@@ -10348,7 +10432,7 @@
10348
10432
  this._options = Object.assign(Object.assign({}, this.options), options);
10349
10433
  }
10350
10434
  addPanel(options) {
10351
- var _a;
10435
+ var _a, _b;
10352
10436
  const body = this.options.createComponent({
10353
10437
  id: options.id,
10354
10438
  name: options.component,
@@ -10373,12 +10457,15 @@
10373
10457
  isExpanded: !!options.isExpanded,
10374
10458
  disableDnd: !!this.options.disableDnd,
10375
10459
  accessor: this,
10460
+ headerSize: (_a = options.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,
10461
+ minimumBodySize: MINIMUM_BODY_SIZE,
10462
+ maximumBodySize: MAXIMUM_BODY_SIZE,
10376
10463
  });
10377
10464
  this.doAddPanel(view);
10378
10465
  const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
10379
10466
  const index = typeof options.index === 'number' ? options.index : undefined;
10380
10467
  view.init({
10381
- params: (_a = options.params) !== null && _a !== void 0 ? _a : {},
10468
+ params: (_b = options.params) !== null && _b !== void 0 ? _b : {},
10382
10469
  minimumBodySize: options.minimumBodySize,
10383
10470
  maximumBodySize: options.maximumBodySize,
10384
10471
  isExpanded: options.isExpanded,
@@ -10423,6 +10510,7 @@
10423
10510
  data: view.toJSON(),
10424
10511
  minimumSize: minimum(view.minimumBodySize),
10425
10512
  maximumSize: maximum(view.maximumBodySize),
10513
+ headerSize: view.headerSize,
10426
10514
  expanded: view.isExpanded(),
10427
10515
  };
10428
10516
  });
@@ -10443,6 +10531,7 @@
10443
10531
  descriptor: {
10444
10532
  size,
10445
10533
  views: views.map((view) => {
10534
+ var _a, _b, _c;
10446
10535
  const data = view.data;
10447
10536
  const body = this.options.createComponent({
10448
10537
  id: data.id,
@@ -10469,6 +10558,9 @@
10469
10558
  isExpanded: !!view.expanded,
10470
10559
  disableDnd: !!this.options.disableDnd,
10471
10560
  accessor: this,
10561
+ headerSize: (_a = view.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,
10562
+ minimumBodySize: (_b = view.minimumSize) !== null && _b !== void 0 ? _b : MINIMUM_BODY_SIZE,
10563
+ maximumBodySize: (_c = view.maximumSize) !== null && _c !== void 0 ? _c : MAXIMUM_BODY_SIZE,
10472
10564
  });
10473
10565
  this.doAddPanel(panel);
10474
10566
  queue.push(() => {