dockview-core 4.2.1 → 4.2.4

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 (35) hide show
  1. package/dist/cjs/dockview/components/popupService.d.ts +1 -0
  2. package/dist/cjs/dockview/components/popupService.js +6 -1
  3. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -1
  4. package/dist/cjs/dockview/dockviewComponent.js +19 -17
  5. package/dist/cjs/dom.d.ts +4 -0
  6. package/dist/cjs/dom.js +42 -1
  7. package/dist/dockview-core.amd.js +68 -20
  8. package/dist/dockview-core.amd.js.map +1 -1
  9. package/dist/dockview-core.amd.min.js +2 -2
  10. package/dist/dockview-core.amd.min.js.map +1 -1
  11. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  12. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  13. package/dist/dockview-core.amd.noStyle.js +68 -20
  14. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  15. package/dist/dockview-core.cjs.js +68 -20
  16. package/dist/dockview-core.cjs.js.map +1 -1
  17. package/dist/dockview-core.esm.js +68 -20
  18. package/dist/dockview-core.esm.js.map +1 -1
  19. package/dist/dockview-core.esm.min.js +2 -2
  20. package/dist/dockview-core.esm.min.js.map +1 -1
  21. package/dist/dockview-core.js +68 -20
  22. package/dist/dockview-core.js.map +1 -1
  23. package/dist/dockview-core.min.js +2 -2
  24. package/dist/dockview-core.min.js.map +1 -1
  25. package/dist/dockview-core.min.noStyle.js +2 -2
  26. package/dist/dockview-core.min.noStyle.js.map +1 -1
  27. package/dist/dockview-core.noStyle.js +68 -20
  28. package/dist/dockview-core.noStyle.js.map +1 -1
  29. package/dist/esm/dockview/components/popupService.d.ts +1 -0
  30. package/dist/esm/dockview/components/popupService.js +6 -1
  31. package/dist/esm/dockview/components/titlebar/tabsContainer.js +6 -2
  32. package/dist/esm/dockview/dockviewComponent.js +19 -17
  33. package/dist/esm/dom.d.ts +4 -0
  34. package/dist/esm/dom.js +38 -0
  35. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 4.2.1
3
+ * @version 4.2.4
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -638,6 +638,44 @@ define(['exports'], (function (exports) { 'use strict';
638
638
  }));
639
639
  return disposable;
640
640
  }
641
+ function shiftAbsoluteElementIntoView(element, root, options = { buffer: 10 }) {
642
+ const buffer = options.buffer;
643
+ const rect = element.getBoundingClientRect();
644
+ const rootRect = element.getBoundingClientRect();
645
+ const viewportWidth = root.clientWidth;
646
+ const viewportHeight = root.clientHeight;
647
+ let translateX = 0;
648
+ let translateY = 0;
649
+ const left = rect.left - rootRect.left;
650
+ const top = rect.top - rootRect.top;
651
+ const bottom = rect.bottom - rootRect.bottom;
652
+ const right = rect.right - rootRect.right;
653
+ // Check horizontal overflow
654
+ if (left < buffer) {
655
+ translateX = buffer - left;
656
+ }
657
+ else if (right > viewportWidth - buffer) {
658
+ translateX = viewportWidth - right - buffer;
659
+ }
660
+ // Check vertical overflow
661
+ if (top < buffer) {
662
+ translateY = buffer - top;
663
+ }
664
+ else if (bottom > viewportHeight - buffer) {
665
+ translateY = viewportHeight - bottom - buffer;
666
+ }
667
+ // Apply the translation if needed
668
+ if (translateX !== 0 || translateY !== 0) {
669
+ element.style.transform = `translate(${translateX}px, ${translateY}px)`;
670
+ }
671
+ }
672
+ function findRelativeZIndexParent(el) {
673
+ let tmp = el;
674
+ while (tmp && (tmp.style.zIndex === 'auto' || tmp.style.zIndex === '')) {
675
+ tmp = tmp.parentElement;
676
+ }
677
+ return tmp;
678
+ }
641
679
 
642
680
  function tail(arr) {
643
681
  if (arr.length === 0) {
@@ -5605,7 +5643,7 @@ define(['exports'], (function (exports) { 'use strict';
5605
5643
  toggleClass(wrapper, 'dv-tab', true);
5606
5644
  toggleClass(wrapper, 'dv-active-tab', panelObject.api.isActive);
5607
5645
  toggleClass(wrapper, 'dv-inactive-tab', !panelObject.api.isActive);
5608
- wrapper.addEventListener('mousedown', () => {
5646
+ wrapper.addEventListener('pointerdown', () => {
5609
5647
  this.accessor.popupService.close();
5610
5648
  tab.element.scrollIntoView();
5611
5649
  tab.panel.api.setActive();
@@ -5613,9 +5651,13 @@ define(['exports'], (function (exports) { 'use strict';
5613
5651
  wrapper.appendChild(child);
5614
5652
  el.appendChild(wrapper);
5615
5653
  }
5654
+ const relativeParent = findRelativeZIndexParent(root);
5616
5655
  this.accessor.popupService.openPopover(el, {
5617
5656
  x: event.clientX,
5618
5657
  y: event.clientY,
5658
+ zIndex: (relativeParent === null || relativeParent === void 0 ? void 0 : relativeParent.style.zIndex)
5659
+ ? `calc(${relativeParent.style.zIndex} * 2)`
5660
+ : undefined,
5619
5661
  });
5620
5662
  }));
5621
5663
  }
@@ -7980,10 +8022,11 @@ define(['exports'], (function (exports) { 'use strict';
7980
8022
  }), this._activeDisposable);
7981
8023
  }
7982
8024
  openPopover(element, position) {
8025
+ var _a;
7983
8026
  this.close();
7984
8027
  const wrapper = document.createElement('div');
7985
8028
  wrapper.style.position = 'absolute';
7986
- wrapper.style.zIndex = '99';
8029
+ wrapper.style.zIndex = (_a = position.zIndex) !== null && _a !== void 0 ? _a : 'var(--dv-overlay-z-index)';
7987
8030
  wrapper.appendChild(element);
7988
8031
  const anchorBox = this._element.getBoundingClientRect();
7989
8032
  const offsetX = anchorBox.left;
@@ -8007,6 +8050,9 @@ define(['exports'], (function (exports) { 'use strict';
8007
8050
  }
8008
8051
  this.close();
8009
8052
  }));
8053
+ requestAnimationFrame(() => {
8054
+ shiftAbsoluteElementIntoView(wrapper, this.root);
8055
+ });
8010
8056
  }
8011
8057
  close() {
8012
8058
  if (this._active) {
@@ -9540,24 +9586,26 @@ define(['exports'], (function (exports) { 'use strict';
9540
9586
  selectedPopoutGroup.disposable.dispose();
9541
9587
  }
9542
9588
  }
9543
- const referenceLocation = getGridLocation(to.element);
9544
- const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
9545
- let size;
9546
- switch (this.gridview.orientation) {
9547
- case exports.Orientation.VERTICAL:
9548
- size =
9549
- referenceLocation.length % 2 == 0
9550
- ? from.api.width
9551
- : from.api.height;
9552
- break;
9553
- case exports.Orientation.HORIZONTAL:
9554
- size =
9555
- referenceLocation.length % 2 == 0
9556
- ? from.api.height
9557
- : from.api.width;
9558
- break;
9589
+ if (from.api.location.type !== 'popout') {
9590
+ const referenceLocation = getGridLocation(to.element);
9591
+ const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
9592
+ let size;
9593
+ switch (this.gridview.orientation) {
9594
+ case exports.Orientation.VERTICAL:
9595
+ size =
9596
+ referenceLocation.length % 2 == 0
9597
+ ? from.api.width
9598
+ : from.api.height;
9599
+ break;
9600
+ case exports.Orientation.HORIZONTAL:
9601
+ size =
9602
+ referenceLocation.length % 2 == 0
9603
+ ? from.api.height
9604
+ : from.api.width;
9605
+ break;
9606
+ }
9607
+ this.gridview.addView(from, size, dropLocation);
9559
9608
  }
9560
- this.gridview.addView(from, size, dropLocation);
9561
9609
  }
9562
9610
  from.panels.forEach((panel) => {
9563
9611
  this._onDidMovePanel.fire({ panel, from });