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
  */
@@ -249,14 +249,6 @@
249
249
  }
250
250
  Emitter.ENABLE_TRACKING = false;
251
251
  Emitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();
252
- function addDisposableWindowListener(element, type, listener, options) {
253
- element.addEventListener(type, listener, options);
254
- return {
255
- dispose: () => {
256
- element.removeEventListener(type, listener, options);
257
- },
258
- };
259
- }
260
252
  function addDisposableListener(element, type, listener, options) {
261
253
  element.addEventListener(type, listener, options);
262
254
  return {
@@ -435,9 +427,6 @@
435
427
  }
436
428
  return false;
437
429
  }
438
- function getElementsByTagName(tag) {
439
- return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);
440
- }
441
430
  function trackFocus(element) {
442
431
  return new FocusTracker(element);
443
432
  }
@@ -484,14 +473,8 @@
484
473
  }
485
474
  }
486
475
  };
487
- if (element instanceof HTMLElement) {
488
- this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));
489
- this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
490
- }
491
- else {
492
- this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));
493
- this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));
494
- }
476
+ this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));
477
+ this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
495
478
  }
496
479
  refreshState() {
497
480
  this._refreshStateHandler();
@@ -565,11 +548,30 @@
565
548
  function addTestId(element, id) {
566
549
  element.setAttribute('data-testid', id);
567
550
  }
568
- function disableIframePointEvents() {
569
- const iframes = [
570
- ...getElementsByTagName('iframe'),
571
- ...getElementsByTagName('webview'),
572
- ];
551
+ /**
552
+ * Should be more efficient than element.querySelectorAll("*") since there
553
+ * is no need to store every element in-memory using this approach
554
+ */
555
+ function allTagsNamesInclusiveOfShadowDoms(tagNames) {
556
+ const iframes = [];
557
+ function findIframesInNode(node) {
558
+ if (node.nodeType === Node.ELEMENT_NODE) {
559
+ if (tagNames.includes(node.tagName)) {
560
+ iframes.push(node);
561
+ }
562
+ if (node.shadowRoot) {
563
+ findIframesInNode(node.shadowRoot);
564
+ }
565
+ for (const child of node.children) {
566
+ findIframesInNode(child);
567
+ }
568
+ }
569
+ }
570
+ findIframesInNode(document.documentElement);
571
+ return iframes;
572
+ }
573
+ function disableIframePointEvents(rootNode = document) {
574
+ const iframes = allTagsNamesInclusiveOfShadowDoms(['IFRAME', 'WEBVIEW']);
573
575
  const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
574
576
  for (const iframe of iframes) {
575
577
  original.set(iframe, iframe.style.pointerEvents);
@@ -621,6 +623,7 @@
621
623
  }
622
624
  }
623
625
  }
626
+ const DEBOUCE_DELAY = 100;
624
627
  function isChildEntirelyVisibleWithinParent(child, parent) {
625
628
  //
626
629
  const childPosition = getDomNodePagePosition(child);
@@ -634,6 +637,41 @@
634
637
  }
635
638
  return true;
636
639
  }
640
+ function onDidWindowMoveEnd(window) {
641
+ const emitter = new Emitter();
642
+ let previousScreenX = window.screenX;
643
+ let previousScreenY = window.screenY;
644
+ let timeout;
645
+ const checkMovement = () => {
646
+ if (window.closed) {
647
+ return;
648
+ }
649
+ const currentScreenX = window.screenX;
650
+ const currentScreenY = window.screenY;
651
+ if (currentScreenX !== previousScreenX ||
652
+ currentScreenY !== previousScreenY) {
653
+ clearTimeout(timeout);
654
+ timeout = setTimeout(() => {
655
+ emitter.fire();
656
+ }, DEBOUCE_DELAY);
657
+ previousScreenX = currentScreenX;
658
+ previousScreenY = currentScreenY;
659
+ }
660
+ requestAnimationFrame(checkMovement);
661
+ };
662
+ checkMovement();
663
+ return emitter;
664
+ }
665
+ function onDidWindowResizeEnd(element, cb) {
666
+ let resizeTimeout;
667
+ const disposable = new CompositeDisposable(addDisposableListener(element, 'resize', () => {
668
+ clearTimeout(resizeTimeout);
669
+ resizeTimeout = setTimeout(() => {
670
+ cb();
671
+ }, DEBOUCE_DELAY);
672
+ }));
673
+ return disposable;
674
+ }
637
675
 
638
676
  function tail(arr) {
639
677
  if (arr.length === 0) {
@@ -3573,6 +3611,12 @@
3573
3611
  get onUnhandledDragOverEvent() {
3574
3612
  return this.component.onUnhandledDragOverEvent;
3575
3613
  }
3614
+ get onDidPopoutGroupSizeChange() {
3615
+ return this.component.onDidPopoutGroupSizeChange;
3616
+ }
3617
+ get onDidPopoutGroupPositionChange() {
3618
+ return this.component.onDidPopoutGroupPositionChange;
3619
+ }
3576
3620
  /**
3577
3621
  * All panel objects.
3578
3622
  */
@@ -4538,26 +4582,25 @@
4538
4582
  this._headerVisible = value;
4539
4583
  this.header.style.display = value ? '' : 'none';
4540
4584
  }
4541
- constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
4542
- super(id, component, new PaneviewPanelApiImpl(id, component));
4543
- this.headerComponent = headerComponent;
4585
+ constructor(options) {
4586
+ super(options.id, options.component, new PaneviewPanelApiImpl(options.id, options.component));
4544
4587
  this._onDidChangeExpansionState = new Emitter({ replay: true });
4545
4588
  this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
4546
4589
  this._onDidChange = new Emitter();
4547
4590
  this.onDidChange = this._onDidChange.event;
4548
- this.headerSize = 22;
4549
4591
  this._orthogonalSize = 0;
4550
4592
  this._size = 0;
4551
- this._minimumBodySize = 100;
4552
- this._maximumBodySize = Number.POSITIVE_INFINITY;
4553
4593
  this._isExpanded = false;
4554
- this.expandedSize = 0;
4555
4594
  this.api.pane = this; // TODO cannot use 'this' before 'super'
4556
4595
  this.api.initialize(this);
4557
- this._isExpanded = isExpanded;
4558
- this._headerVisible = isHeaderVisible;
4596
+ this.headerSize = options.headerSize;
4597
+ this.headerComponent = options.headerComponent;
4598
+ this._minimumBodySize = options.minimumBodySize;
4599
+ this._maximumBodySize = options.maximumBodySize;
4600
+ this._isExpanded = options.isExpanded;
4601
+ this._headerVisible = options.isHeaderVisible;
4559
4602
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4560
- this._orientation = orientation;
4603
+ this._orientation = options.orientation;
4561
4604
  this.element.classList.add('dv-pane');
4562
4605
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4563
4606
  const { isVisible } = event;
@@ -4624,9 +4667,6 @@
4624
4667
  const [width, height] = this.orientation === exports.Orientation.HORIZONTAL
4625
4668
  ? [size, orthogonalSize]
4626
4669
  : [orthogonalSize, size];
4627
- if (this.isExpanded()) {
4628
- this.expandedSize = width;
4629
- }
4630
4670
  super.layout(width, height);
4631
4671
  }
4632
4672
  init(parameters) {
@@ -4683,15 +4723,25 @@
4683
4723
  }
4684
4724
 
4685
4725
  class DraggablePaneviewPanel extends PaneviewPanel {
4686
- constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {
4687
- super(id, component, headerComponent, orientation, isExpanded, true);
4688
- this.accessor = accessor;
4726
+ constructor(options) {
4727
+ super({
4728
+ id: options.id,
4729
+ component: options.component,
4730
+ headerComponent: options.headerComponent,
4731
+ orientation: options.orientation,
4732
+ isExpanded: options.isExpanded,
4733
+ isHeaderVisible: true,
4734
+ headerSize: options.headerSize,
4735
+ minimumBodySize: options.minimumBodySize,
4736
+ maximumBodySize: options.maximumBodySize,
4737
+ });
4689
4738
  this._onDidDrop = new Emitter();
4690
4739
  this.onDidDrop = this._onDidDrop.event;
4691
4740
  this._onUnhandledDragOverEvent = new Emitter();
4692
4741
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
4742
+ this.accessor = options.accessor;
4693
4743
  this.addDisposables(this._onDidDrop, this._onUnhandledDragOverEvent);
4694
- if (!disableDnd) {
4744
+ if (!options.disableDnd) {
4695
4745
  this.initDragFeatures();
4696
4746
  }
4697
4747
  }
@@ -7325,7 +7375,7 @@
7325
7375
  dispose: () => {
7326
7376
  iframes.release();
7327
7377
  },
7328
- }, addDisposableWindowListener(window, 'pointermove', (e) => {
7378
+ }, addDisposableListener(window, 'pointermove', (e) => {
7329
7379
  const containerRect = this.options.container.getBoundingClientRect();
7330
7380
  const x = e.clientX - containerRect.left;
7331
7381
  const y = e.clientY - containerRect.top;
@@ -7362,7 +7412,7 @@
7362
7412
  bounds.right = right;
7363
7413
  }
7364
7414
  this.setBounds(bounds);
7365
- }), addDisposableWindowListener(window, 'pointerup', () => {
7415
+ }), addDisposableListener(window, 'pointerup', () => {
7366
7416
  toggleClass(this._element, 'dv-resize-container-dragging', false);
7367
7417
  move.dispose();
7368
7418
  this._onDidChangeEnd.fire();
@@ -7407,7 +7457,7 @@
7407
7457
  e.preventDefault();
7408
7458
  let startPosition = null;
7409
7459
  const iframes = disableIframePointEvents();
7410
- move.value = new CompositeDisposable(addDisposableWindowListener(window, 'pointermove', (e) => {
7460
+ move.value = new CompositeDisposable(addDisposableListener(window, 'pointermove', (e) => {
7411
7461
  const containerRect = this.options.container.getBoundingClientRect();
7412
7462
  const overlayRect = this._element.getBoundingClientRect();
7413
7463
  const y = e.clientY - containerRect.top;
@@ -7531,7 +7581,7 @@
7531
7581
  dispose: () => {
7532
7582
  iframes.release();
7533
7583
  },
7534
- }, addDisposableWindowListener(window, 'pointerup', () => {
7584
+ }, addDisposableListener(window, 'pointerup', () => {
7535
7585
  move.dispose();
7536
7586
  this._onDidChangeEnd.fire();
7537
7587
  }));
@@ -7837,7 +7887,7 @@
7837
7887
  this._window = { value: externalWindow, disposable };
7838
7888
  disposable.addDisposables(exports.DockviewDisposable.from(() => {
7839
7889
  externalWindow.close();
7840
- }), addDisposableWindowListener(window, 'beforeunload', () => {
7890
+ }), addDisposableListener(window, 'beforeunload', () => {
7841
7891
  /**
7842
7892
  * before the main window closes we should close this popup too
7843
7893
  * to be good citizens
@@ -7872,7 +7922,7 @@
7872
7922
  * beforeunload must be registered after load for reasons I could not determine
7873
7923
  * otherwise the beforeunload event will not fire when the window is closed
7874
7924
  */
7875
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7925
+ addDisposableListener(externalWindow, 'beforeunload', () => {
7876
7926
  /**
7877
7927
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7878
7928
  */
@@ -7969,7 +8019,7 @@
7969
8019
  wrapper.style.left = `${position.x - offsetX}px`;
7970
8020
  this._element.appendChild(wrapper);
7971
8021
  this._active = wrapper;
7972
- this._activeDisposable.value = new CompositeDisposable(addDisposableWindowListener(window, 'pointerdown', (event) => {
8022
+ this._activeDisposable.value = new CompositeDisposable(addDisposableListener(window, 'pointerdown', (event) => {
7973
8023
  var _a;
7974
8024
  const target = event.target;
7975
8025
  if (!(target instanceof HTMLElement)) {
@@ -8148,6 +8198,10 @@
8148
8198
  this.onDidRemovePanel = this._onDidRemovePanel.event;
8149
8199
  this._onDidAddPanel = new Emitter();
8150
8200
  this.onDidAddPanel = this._onDidAddPanel.event;
8201
+ this._onDidPopoutGroupSizeChange = new Emitter();
8202
+ this.onDidPopoutGroupSizeChange = this._onDidPopoutGroupSizeChange.event;
8203
+ this._onDidPopoutGroupPositionChange = new Emitter();
8204
+ this.onDidPopoutGroupPositionChange = this._onDidPopoutGroupPositionChange.event;
8151
8205
  this._onDidLayoutFromJSON = new Emitter();
8152
8206
  this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
8153
8207
  this._onDidActivePanelChange = new Emitter();
@@ -8177,7 +8231,7 @@
8177
8231
  if (options.debug) {
8178
8232
  this.addDisposables(new StrictEventsSequencing(this));
8179
8233
  }
8180
- 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(() => {
8234
+ 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(() => {
8181
8235
  this.updateWatermark();
8182
8236
  }), this.onDidAdd((event) => {
8183
8237
  if (!this._moving) {
@@ -8198,7 +8252,7 @@
8198
8252
  });
8199
8253
  }), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
8200
8254
  this.updateWatermark();
8201
- }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
8255
+ }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange, this.onDidPopoutGroupPositionChange, this.onDidPopoutGroupSizeChange)(() => {
8202
8256
  this._bufferOnDidLayoutChange.fire();
8203
8257
  }), exports.DockviewDisposable.from(() => {
8204
8258
  // iterate over a copy of the array since .dispose() mutates the original array
@@ -8459,13 +8513,26 @@
8459
8513
  },
8460
8514
  },
8461
8515
  };
8462
- popoutWindowDisposable.addDisposables(
8516
+ const _onDidWindowPositionChange = onDidWindowMoveEnd(_window.window);
8517
+ popoutWindowDisposable.addDisposables(_onDidWindowPositionChange, onDidWindowResizeEnd(_window.window, () => {
8518
+ this._onDidPopoutGroupSizeChange.fire({
8519
+ width: _window.window.innerWidth,
8520
+ height: _window.window.innerHeight,
8521
+ group,
8522
+ });
8523
+ }), _onDidWindowPositionChange.event(() => {
8524
+ this._onDidPopoutGroupPositionChange.fire({
8525
+ screenX: _window.window.screenX,
8526
+ screenY: _window.window.screenX,
8527
+ group,
8528
+ });
8529
+ }),
8463
8530
  /**
8464
8531
  * ResizeObserver seems slow here, I do not know why but we don't need it
8465
8532
  * since we can reply on the window resize event as we will occupy the full
8466
8533
  * window dimensions
8467
8534
  */
8468
- addDisposableWindowListener(_window.window, 'resize', () => {
8535
+ addDisposableListener(_window.window, 'resize', () => {
8469
8536
  group.layout(_window.window.innerWidth, _window.window.innerHeight);
8470
8537
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
8471
8538
  if (this.isDisposed) {
@@ -8679,7 +8746,7 @@
8679
8746
  }
8680
8747
  this.updateWatermark();
8681
8748
  }
8682
- orthogonalize(position) {
8749
+ orthogonalize(position, options) {
8683
8750
  switch (position) {
8684
8751
  case 'top':
8685
8752
  case 'bottom':
@@ -8702,10 +8769,10 @@
8702
8769
  case 'top':
8703
8770
  case 'left':
8704
8771
  case 'center':
8705
- return this.createGroupAtLocation([0]); // insert into first position
8772
+ return this.createGroupAtLocation([0], undefined, options); // insert into first position
8706
8773
  case 'bottom':
8707
8774
  case 'right':
8708
- return this.createGroupAtLocation([this.gridview.length]); // insert into last position
8775
+ return this.createGroupAtLocation([this.gridview.length], undefined, options); // insert into last position
8709
8776
  default:
8710
8777
  throw new Error(`unsupported position ${position}`);
8711
8778
  }
@@ -9201,7 +9268,7 @@
9201
9268
  }
9202
9269
  }
9203
9270
  else {
9204
- const group = this.orthogonalize(directionToPosition(options.direction));
9271
+ const group = this.orthogonalize(directionToPosition(options.direction), options);
9205
9272
  if (!options.skipSetActive) {
9206
9273
  this.doSetGroupAndPanelActive(group);
9207
9274
  }
@@ -9643,8 +9710,8 @@
9643
9710
  });
9644
9711
  return panel;
9645
9712
  }
9646
- createGroupAtLocation(location, size) {
9647
- const group = this.createGroup();
9713
+ createGroupAtLocation(location, size, options) {
9714
+ const group = this.createGroup(options);
9648
9715
  this.doAddGroup(group, location, size);
9649
9716
  return group;
9650
9717
  }
@@ -9978,6 +10045,9 @@
9978
10045
  return this._splitview;
9979
10046
  }
9980
10047
  set splitview(value) {
10048
+ if (this._splitview) {
10049
+ this._splitview.dispose();
10050
+ }
9981
10051
  this._splitview = value;
9982
10052
  this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
9983
10053
  this._onDidLayoutChange.fire(undefined);
@@ -10281,9 +10351,23 @@
10281
10351
  }
10282
10352
 
10283
10353
  const nextLayoutId = sequentialNumberGenerator();
10354
+ const HEADER_SIZE = 22;
10355
+ const MINIMUM_BODY_SIZE = 0;
10356
+ const MAXIMUM_BODY_SIZE = Number.MAX_SAFE_INTEGER;
10284
10357
  class PaneFramework extends DraggablePaneviewPanel {
10285
10358
  constructor(options) {
10286
- super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);
10359
+ super({
10360
+ accessor: options.accessor,
10361
+ id: options.id,
10362
+ component: options.component,
10363
+ headerComponent: options.headerComponent,
10364
+ orientation: options.orientation,
10365
+ isExpanded: options.isExpanded,
10366
+ disableDnd: options.disableDnd,
10367
+ headerSize: options.headerSize,
10368
+ minimumBodySize: options.minimumBodySize,
10369
+ maximumBodySize: options.maximumBodySize,
10370
+ });
10287
10371
  this.options = options;
10288
10372
  }
10289
10373
  getBodyComponent() {
@@ -10378,7 +10462,7 @@
10378
10462
  this._options = Object.assign(Object.assign({}, this.options), options);
10379
10463
  }
10380
10464
  addPanel(options) {
10381
- var _a;
10465
+ var _a, _b;
10382
10466
  const body = this.options.createComponent({
10383
10467
  id: options.id,
10384
10468
  name: options.component,
@@ -10403,12 +10487,15 @@
10403
10487
  isExpanded: !!options.isExpanded,
10404
10488
  disableDnd: !!this.options.disableDnd,
10405
10489
  accessor: this,
10490
+ headerSize: (_a = options.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,
10491
+ minimumBodySize: MINIMUM_BODY_SIZE,
10492
+ maximumBodySize: MAXIMUM_BODY_SIZE,
10406
10493
  });
10407
10494
  this.doAddPanel(view);
10408
10495
  const size = typeof options.size === 'number' ? options.size : exports.Sizing.Distribute;
10409
10496
  const index = typeof options.index === 'number' ? options.index : undefined;
10410
10497
  view.init({
10411
- params: (_a = options.params) !== null && _a !== void 0 ? _a : {},
10498
+ params: (_b = options.params) !== null && _b !== void 0 ? _b : {},
10412
10499
  minimumBodySize: options.minimumBodySize,
10413
10500
  maximumBodySize: options.maximumBodySize,
10414
10501
  isExpanded: options.isExpanded,
@@ -10453,6 +10540,7 @@
10453
10540
  data: view.toJSON(),
10454
10541
  minimumSize: minimum(view.minimumBodySize),
10455
10542
  maximumSize: maximum(view.maximumBodySize),
10543
+ headerSize: view.headerSize,
10456
10544
  expanded: view.isExpanded(),
10457
10545
  };
10458
10546
  });
@@ -10473,6 +10561,7 @@
10473
10561
  descriptor: {
10474
10562
  size,
10475
10563
  views: views.map((view) => {
10564
+ var _a, _b, _c;
10476
10565
  const data = view.data;
10477
10566
  const body = this.options.createComponent({
10478
10567
  id: data.id,
@@ -10499,6 +10588,9 @@
10499
10588
  isExpanded: !!view.expanded,
10500
10589
  disableDnd: !!this.options.disableDnd,
10501
10590
  accessor: this,
10591
+ headerSize: (_a = view.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,
10592
+ minimumBodySize: (_b = view.minimumSize) !== null && _b !== void 0 ? _b : MINIMUM_BODY_SIZE,
10593
+ maximumBodySize: (_c = view.maximumSize) !== null && _c !== void 0 ? _c : MAXIMUM_BODY_SIZE,
10502
10594
  });
10503
10595
  this.doAddPanel(panel);
10504
10596
  queue.push(() => {