dockview-core 1.15.3 → 1.16.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 (99) hide show
  1. package/dist/cjs/api/component.api.d.ts +30 -6
  2. package/dist/cjs/api/component.api.js +42 -6
  3. package/dist/cjs/api/dockviewPanelApi.d.ts +1 -1
  4. package/dist/cjs/api/entryPoints.d.ts +9 -0
  5. package/dist/cjs/api/entryPoints.js +28 -0
  6. package/dist/cjs/dnd/abstractDragHandler.js +2 -65
  7. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
  8. package/dist/cjs/dockview/dockviewComponent.d.ts +4 -2
  9. package/dist/cjs/dockview/dockviewComponent.js +59 -17
  10. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
  11. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +1 -1
  12. package/dist/cjs/dockview/dockviewGroupPanelModel.js +1 -1
  13. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  14. package/dist/cjs/dockview/dockviewPanel.js +1 -1
  15. package/dist/cjs/dockview/options.d.ts +2 -2
  16. package/dist/cjs/dockview/options.js +1 -0
  17. package/dist/cjs/dockview/types.d.ts +1 -1
  18. package/dist/cjs/dom.d.ts +3 -0
  19. package/dist/cjs/dom.js +66 -1
  20. package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -2
  21. package/dist/cjs/gridview/baseComponentGridview.js +3 -0
  22. package/dist/cjs/gridview/gridviewComponent.d.ts +1 -1
  23. package/dist/cjs/gridview/gridviewComponent.js +3 -2
  24. package/dist/cjs/gridview/options.d.ts +1 -1
  25. package/dist/cjs/index.d.ts +2 -1
  26. package/dist/cjs/index.js +6 -1
  27. package/dist/cjs/{dnd → overlay}/overlay.d.ts +3 -0
  28. package/dist/cjs/{dnd → overlay}/overlay.js +41 -82
  29. package/dist/cjs/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
  30. package/dist/cjs/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +41 -6
  31. package/dist/cjs/paneview/options.d.ts +1 -1
  32. package/dist/cjs/paneview/paneviewComponent.d.ts +1 -1
  33. package/dist/cjs/paneview/paneviewComponent.js +5 -2
  34. package/dist/cjs/splitview/options.d.ts +1 -1
  35. package/dist/cjs/splitview/splitview.js +64 -71
  36. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  37. package/dist/cjs/splitview/splitviewComponent.js +5 -2
  38. package/dist/dockview-core.amd.js +258 -98
  39. package/dist/dockview-core.amd.js.map +1 -1
  40. package/dist/dockview-core.amd.min.js +2 -2
  41. package/dist/dockview-core.amd.min.js.map +1 -1
  42. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  43. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  44. package/dist/dockview-core.amd.noStyle.js +257 -97
  45. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  46. package/dist/dockview-core.cjs.js +258 -98
  47. package/dist/dockview-core.cjs.js.map +1 -1
  48. package/dist/dockview-core.esm.js +255 -99
  49. package/dist/dockview-core.esm.js.map +1 -1
  50. package/dist/dockview-core.esm.min.js +2 -2
  51. package/dist/dockview-core.esm.min.js.map +1 -1
  52. package/dist/dockview-core.js +258 -98
  53. package/dist/dockview-core.js.map +1 -1
  54. package/dist/dockview-core.min.js +2 -2
  55. package/dist/dockview-core.min.js.map +1 -1
  56. package/dist/dockview-core.min.noStyle.js +2 -2
  57. package/dist/dockview-core.min.noStyle.js.map +1 -1
  58. package/dist/dockview-core.noStyle.js +257 -97
  59. package/dist/dockview-core.noStyle.js.map +1 -1
  60. package/dist/esm/api/component.api.d.ts +30 -6
  61. package/dist/esm/api/component.api.js +42 -6
  62. package/dist/esm/api/dockviewPanelApi.d.ts +1 -1
  63. package/dist/esm/api/entryPoints.d.ts +9 -0
  64. package/dist/esm/api/entryPoints.js +21 -0
  65. package/dist/esm/dnd/abstractDragHandler.js +3 -11
  66. package/dist/esm/dockview/components/panel/content.js +1 -1
  67. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
  68. package/dist/esm/dockview/dockviewComponent.d.ts +4 -2
  69. package/dist/esm/dockview/dockviewComponent.js +47 -13
  70. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
  71. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +1 -1
  72. package/dist/esm/dockview/dockviewGroupPanelModel.js +1 -1
  73. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  74. package/dist/esm/dockview/dockviewPanel.js +1 -1
  75. package/dist/esm/dockview/options.d.ts +2 -2
  76. package/dist/esm/dockview/options.js +1 -0
  77. package/dist/esm/dockview/types.d.ts +1 -1
  78. package/dist/esm/dom.d.ts +3 -0
  79. package/dist/esm/dom.js +20 -0
  80. package/dist/esm/gridview/baseComponentGridview.d.ts +3 -2
  81. package/dist/esm/gridview/baseComponentGridview.js +3 -0
  82. package/dist/esm/gridview/gridviewComponent.d.ts +1 -1
  83. package/dist/esm/gridview/gridviewComponent.js +3 -2
  84. package/dist/esm/gridview/options.d.ts +1 -1
  85. package/dist/esm/index.d.ts +2 -1
  86. package/dist/esm/index.js +1 -0
  87. package/dist/esm/{dnd → overlay}/overlay.d.ts +3 -0
  88. package/dist/esm/{dnd → overlay}/overlay.js +36 -32
  89. package/dist/esm/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
  90. package/dist/esm/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +39 -6
  91. package/dist/esm/paneview/options.d.ts +1 -1
  92. package/dist/esm/paneview/paneviewComponent.d.ts +1 -1
  93. package/dist/esm/paneview/paneviewComponent.js +5 -2
  94. package/dist/esm/splitview/options.d.ts +1 -1
  95. package/dist/esm/splitview/splitview.js +37 -27
  96. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  97. package/dist/esm/splitview/splitviewComponent.js +5 -2
  98. package/dist/styles/dockview.css +78 -82
  99. package/package.json +1 -1
@@ -473,34 +473,21 @@ var Splitview = /** @class */ (function () {
473
473
  var sash_1 = document.createElement('div');
474
474
  sash_1.className = 'sash';
475
475
  var onPointerStart_1 = function (event) {
476
- var e_3, _a, e_4, _b;
476
+ var e_3, _a;
477
477
  try {
478
- for (var _c = __values(_this.viewItems), _d = _c.next(); !_d.done; _d = _c.next()) {
479
- var item = _d.value;
478
+ for (var _b = __values(_this.viewItems), _c = _b.next(); !_c.done; _c = _b.next()) {
479
+ var item = _c.value;
480
480
  item.enabled = false;
481
481
  }
482
482
  }
483
483
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
484
484
  finally {
485
485
  try {
486
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
486
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
487
487
  }
488
488
  finally { if (e_3) throw e_3.error; }
489
489
  }
490
- var iframes = __spreadArray(__spreadArray([], __read((0, dom_1.getElementsByTagName)('iframe')), false), __read((0, dom_1.getElementsByTagName)('webview')), false);
491
- try {
492
- for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
493
- var iframe = iframes_1_1.value;
494
- iframe.style.pointerEvents = 'none';
495
- }
496
- }
497
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
498
- finally {
499
- try {
500
- if (iframes_1_1 && !iframes_1_1.done && (_b = iframes_1.return)) _b.call(iframes_1);
501
- }
502
- finally { if (e_4) throw e_4.error; }
503
- }
490
+ var iframes = (0, dom_1.disableIframePointEvents)();
504
491
  var start = _this._orientation === Orientation.HORIZONTAL
505
492
  ? event.clientX
506
493
  : event.clientY;
@@ -565,33 +552,21 @@ var Splitview = /** @class */ (function () {
565
552
  _this.layoutViews();
566
553
  };
567
554
  var end = function () {
568
- var e_5, _a, e_6, _b;
555
+ var e_4, _a;
569
556
  try {
570
- for (var _c = __values(_this.viewItems), _d = _c.next(); !_d.done; _d = _c.next()) {
571
- var item = _d.value;
557
+ for (var _b = __values(_this.viewItems), _c = _b.next(); !_c.done; _c = _b.next()) {
558
+ var item = _c.value;
572
559
  item.enabled = true;
573
560
  }
574
561
  }
575
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
562
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
576
563
  finally {
577
564
  try {
578
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
579
- }
580
- finally { if (e_5) throw e_5.error; }
581
- }
582
- try {
583
- for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
584
- var iframe = iframes_2_1.value;
585
- iframe.style.pointerEvents = 'auto';
565
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
586
566
  }
567
+ finally { if (e_4) throw e_4.error; }
587
568
  }
588
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
589
- finally {
590
- try {
591
- if (iframes_2_1 && !iframes_2_1.done && (_b = iframes_2.return)) _b.call(iframes_2);
592
- }
593
- finally { if (e_6) throw e_6.error; }
594
- }
569
+ iframes.release();
595
570
  _this.saveProportions();
596
571
  document.removeEventListener('pointermove', onPointerMove);
597
572
  document.removeEventListener('pointerup', end);
@@ -624,7 +599,7 @@ var Splitview = /** @class */ (function () {
624
599
  this._onDidAddView.fire(view);
625
600
  };
626
601
  Splitview.prototype.distributeViewSizes = function () {
627
- var e_7, _a, e_8, _b;
602
+ var e_5, _a, e_6, _b;
628
603
  var _this = this;
629
604
  var flexibleViewItems = [];
630
605
  var flexibleSize = 0;
@@ -637,12 +612,12 @@ var Splitview = /** @class */ (function () {
637
612
  }
638
613
  }
639
614
  }
640
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
615
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
641
616
  finally {
642
617
  try {
643
618
  if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
644
619
  }
645
- finally { if (e_7) throw e_7.error; }
620
+ finally { if (e_5) throw e_5.error; }
646
621
  }
647
622
  var size = Math.floor(flexibleSize / flexibleViewItems.length);
648
623
  try {
@@ -651,12 +626,12 @@ var Splitview = /** @class */ (function () {
651
626
  item.size = (0, math_1.clamp)(size, item.minimumSize, item.maximumSize);
652
627
  }
653
628
  }
654
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
629
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
655
630
  finally {
656
631
  try {
657
632
  if (flexibleViewItems_1_1 && !flexibleViewItems_1_1.done && (_b = flexibleViewItems_1.return)) _b.call(flexibleViewItems_1);
658
633
  }
659
- finally { if (e_8) throw e_8.error; }
634
+ finally { if (e_6) throw e_6.error; }
660
635
  }
661
636
  var indexes = (0, math_1.range)(this.viewItems.length);
662
637
  var lowPriorityIndexes = indexes.filter(function (i) { return _this.viewItems[i].priority === LayoutPriority.Low; });
@@ -740,7 +715,7 @@ var Splitview = /** @class */ (function () {
740
715
  this.saveProportions();
741
716
  };
742
717
  Splitview.prototype.distributeEmptySpace = function (lowPriorityIndex) {
743
- var e_9, _a, e_10, _b;
718
+ var e_7, _a, e_8, _b;
744
719
  var _this = this;
745
720
  var contentSize = this.viewItems.reduce(function (r, i) { return r + i.size; }, 0);
746
721
  var emptyDelta = this.size - contentSize;
@@ -753,12 +728,12 @@ var Splitview = /** @class */ (function () {
753
728
  (0, array_1.pushToStart)(indexes, index);
754
729
  }
755
730
  }
756
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
731
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
757
732
  finally {
758
733
  try {
759
734
  if (highPriorityIndexes_2_1 && !highPriorityIndexes_2_1.done && (_a = highPriorityIndexes_2.return)) _a.call(highPriorityIndexes_2);
760
735
  }
761
- finally { if (e_9) throw e_9.error; }
736
+ finally { if (e_7) throw e_7.error; }
762
737
  }
763
738
  try {
764
739
  for (var lowPriorityIndexes_2 = __values(lowPriorityIndexes), lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next(); !lowPriorityIndexes_2_1.done; lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next()) {
@@ -766,12 +741,12 @@ var Splitview = /** @class */ (function () {
766
741
  (0, array_1.pushToEnd)(indexes, index);
767
742
  }
768
743
  }
769
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
744
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
770
745
  finally {
771
746
  try {
772
747
  if (lowPriorityIndexes_2_1 && !lowPriorityIndexes_2_1.done && (_b = lowPriorityIndexes_2.return)) _b.call(lowPriorityIndexes_2);
773
748
  }
774
- finally { if (e_10) throw e_10.error; }
749
+ finally { if (e_8) throw e_8.error; }
775
750
  }
776
751
  if (typeof lowPriorityIndex === 'number') {
777
752
  (0, array_1.pushToEnd)(indexes, lowPriorityIndex);
@@ -808,29 +783,47 @@ var Splitview = /** @class */ (function () {
808
783
  if (this.viewItems.length === 0) {
809
784
  return;
810
785
  }
811
- var sashCount = this.viewItems.length - 1;
812
- var marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
786
+ var visibleViewItems = this.viewItems.filter(function (i) { return i.visible; });
787
+ var sashCount = Math.max(0, visibleViewItems.length - 1);
788
+ var marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
813
789
  var totalLeftOffset = 0;
814
790
  var viewLeftOffsets = [];
815
- for (var i = 0; i < this.viewItems.length - 1; i++) {
816
- totalLeftOffset += this.viewItems[i].size;
817
- viewLeftOffsets.push(totalLeftOffset);
818
- var offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
819
- if (this._orientation === Orientation.HORIZONTAL) {
820
- this.sashes[i].container.style.left = "".concat(offset, "px");
821
- this.sashes[i].container.style.top = "0px";
791
+ var sashWidth = 4; // hardcoded in css
792
+ var runningVisiblePanelCount = this.viewItems.reduce(function (arr, viewItem, i) {
793
+ var flag = viewItem.visible ? 1 : 0;
794
+ if (i === 0) {
795
+ arr.push(flag);
822
796
  }
823
- if (this._orientation === Orientation.VERTICAL) {
824
- this.sashes[i].container.style.left = "0px";
825
- this.sashes[i].container.style.top = "".concat(offset, "px");
797
+ else {
798
+ arr.push(arr[i - 1] + flag);
826
799
  }
827
- }
800
+ return arr;
801
+ }, []);
802
+ // calculate both view and cash positions
828
803
  this.viewItems.forEach(function (view, i) {
829
- var size = view.size - marginReducedSize;
830
- var offset = i === 0
804
+ totalLeftOffset += _this.viewItems[i].size;
805
+ viewLeftOffsets.push(totalLeftOffset);
806
+ var size = view.visible ? view.size - marginReducedSize : 0;
807
+ var visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
808
+ var offset = i === 0 || visiblePanelsBeforeThisView === 0
831
809
  ? 0
832
810
  : viewLeftOffsets[i - 1] +
833
- (i / sashCount) * marginReducedSize;
811
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
812
+ if (i < _this.viewItems.length - 1) {
813
+ // calculate sash position
814
+ var newSize = view.visible
815
+ ? offset + size - sashWidth / 2 + _this.margin / 2
816
+ : offset;
817
+ if (_this._orientation === Orientation.HORIZONTAL) {
818
+ _this.sashes[i].container.style.left = "".concat(newSize, "px");
819
+ _this.sashes[i].container.style.top = "0px";
820
+ }
821
+ if (_this._orientation === Orientation.VERTICAL) {
822
+ _this.sashes[i].container.style.left = "0px";
823
+ _this.sashes[i].container.style.top = "".concat(newSize, "px");
824
+ }
825
+ }
826
+ // calculate view position
834
827
  if (_this._orientation === Orientation.HORIZONTAL) {
835
828
  view.container.style.width = "".concat(size, "px");
836
829
  view.container.style.left = "".concat(offset, "px");
@@ -847,7 +840,7 @@ var Splitview = /** @class */ (function () {
847
840
  });
848
841
  };
849
842
  Splitview.prototype.findFirstSnapIndex = function (indexes) {
850
- var e_11, _a, e_12, _b;
843
+ var e_9, _a, e_10, _b;
851
844
  try {
852
845
  // visible views first
853
846
  for (var indexes_1 = __values(indexes), indexes_1_1 = indexes_1.next(); !indexes_1_1.done; indexes_1_1 = indexes_1.next()) {
@@ -861,12 +854,12 @@ var Splitview = /** @class */ (function () {
861
854
  }
862
855
  }
863
856
  }
864
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
857
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
865
858
  finally {
866
859
  try {
867
860
  if (indexes_1_1 && !indexes_1_1.done && (_a = indexes_1.return)) _a.call(indexes_1);
868
861
  }
869
- finally { if (e_11) throw e_11.error; }
862
+ finally { if (e_9) throw e_9.error; }
870
863
  }
871
864
  try {
872
865
  // then, hidden views
@@ -882,12 +875,12 @@ var Splitview = /** @class */ (function () {
882
875
  }
883
876
  }
884
877
  }
885
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
878
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
886
879
  finally {
887
880
  try {
888
881
  if (indexes_2_1 && !indexes_2_1.done && (_b = indexes_2.return)) _b.call(indexes_2);
889
882
  }
890
- finally { if (e_12) throw e_12.error; }
883
+ finally { if (e_10) throw e_10.error; }
891
884
  }
892
885
  return undefined;
893
886
  };
@@ -971,7 +964,7 @@ var Splitview = /** @class */ (function () {
971
964
  return element;
972
965
  };
973
966
  Splitview.prototype.dispose = function () {
974
- var e_13, _a;
967
+ var e_11, _a;
975
968
  this._onDidSashEnd.dispose();
976
969
  this._onDidAddView.dispose();
977
970
  this._onDidRemoveView.dispose();
@@ -987,12 +980,12 @@ var Splitview = /** @class */ (function () {
987
980
  viewItem.dispose();
988
981
  }
989
982
  }
990
- catch (e_13_1) { e_13 = { error: e_13_1 }; }
983
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
991
984
  finally {
992
985
  try {
993
986
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
994
987
  }
995
- finally { if (e_13) throw e_13.error; }
988
+ finally { if (e_11) throw e_11.error; }
996
989
  }
997
990
  this.element.remove();
998
991
  };
@@ -83,7 +83,7 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
83
83
  get maximumSize(): number;
84
84
  get height(): number;
85
85
  get width(): number;
86
- constructor(options: SplitviewComponentOptions);
86
+ constructor(parentElement: HTMLElement, options: SplitviewComponentOptions);
87
87
  updateOptions(options: Partial<SplitviewComponentUpdateOptions>): void;
88
88
  focus(): void;
89
89
  movePanel(from: number, to: number): void;
@@ -64,8 +64,8 @@ var resizable_1 = require("../resizable");
64
64
  */
65
65
  var SplitviewComponent = /** @class */ (function (_super) {
66
66
  __extends(SplitviewComponent, _super);
67
- function SplitviewComponent(options) {
68
- var _this = _super.call(this, options.parentElement, options.disableAutoResizing) || this;
67
+ function SplitviewComponent(parentElement, options) {
68
+ var _this = _super.call(this, parentElement, options.disableAutoResizing) || this;
69
69
  _this._splitviewChangeDisposable = new lifecycle_1.MutableDisposable();
70
70
  _this._panels = new Map();
71
71
  _this._onDidLayoutfromJSON = new events_1.Emitter();
@@ -76,6 +76,9 @@ var SplitviewComponent = /** @class */ (function (_super) {
76
76
  _this.onDidRemoveView = _this._onDidRemoveView.event;
77
77
  _this._onDidLayoutChange = new events_1.Emitter();
78
78
  _this.onDidLayoutChange = _this._onDidLayoutChange.event;
79
+ if (typeof options.className === 'string') {
80
+ _this.element.classList.add(options.className);
81
+ }
79
82
  _this._options = options;
80
83
  if (!options.components) {
81
84
  options.components = {};