dockview-core 1.7.4 → 1.7.6

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 (37) hide show
  1. package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
  2. package/dist/cjs/dnd/abstractDragHandler.d.ts.map +1 -1
  3. package/dist/cjs/dnd/abstractDragHandler.js +28 -24
  4. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  5. package/dist/cjs/events.js +2 -2
  6. package/dist/cjs/events.js.map +1 -1
  7. package/dist/cjs/gridview/gridview.d.ts.map +1 -1
  8. package/dist/cjs/gridview/gridview.js +36 -24
  9. package/dist/cjs/gridview/gridview.js.map +1 -1
  10. package/dist/cjs/splitview/splitview.d.ts.map +1 -1
  11. package/dist/cjs/splitview/splitview.js +12 -13
  12. package/dist/cjs/splitview/splitview.js.map +1 -1
  13. package/dist/dockview-core.amd.js +66 -51
  14. package/dist/dockview-core.amd.min.js +2 -2
  15. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  16. package/dist/dockview-core.amd.noStyle.js +65 -50
  17. package/dist/dockview-core.cjs.js +66 -51
  18. package/dist/dockview-core.esm.js +66 -51
  19. package/dist/dockview-core.esm.min.js +2 -2
  20. package/dist/dockview-core.js +66 -51
  21. package/dist/dockview-core.min.js +2 -2
  22. package/dist/dockview-core.min.noStyle.js +2 -2
  23. package/dist/dockview-core.noStyle.js +65 -50
  24. package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
  25. package/dist/esm/dnd/abstractDragHandler.d.ts.map +1 -1
  26. package/dist/esm/dnd/abstractDragHandler.js +15 -11
  27. package/dist/esm/dnd/abstractDragHandler.js.map +1 -1
  28. package/dist/esm/events.js +2 -2
  29. package/dist/esm/events.js.map +1 -1
  30. package/dist/esm/gridview/gridview.d.ts.map +1 -1
  31. package/dist/esm/gridview/gridview.js +34 -22
  32. package/dist/esm/gridview/gridview.js.map +1 -1
  33. package/dist/esm/splitview/splitview.d.ts.map +1 -1
  34. package/dist/esm/splitview/splitview.js +12 -13
  35. package/dist/esm/splitview/splitview.js.map +1 -1
  36. package/dist/styles/dockview.css +1 -0
  37. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.7.4
3
+ * @version 1.7.6
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -197,7 +197,7 @@ define(['exports'], (function (exports) { 'use strict';
197
197
  element.addEventListener(type, listener, options);
198
198
  return {
199
199
  dispose: () => {
200
- element.removeEventListener(type, listener);
200
+ element.removeEventListener(type, listener, options);
201
201
  },
202
202
  };
203
203
  }
@@ -205,7 +205,7 @@ define(['exports'], (function (exports) { 'use strict';
205
205
  element.addEventListener(type, listener, options);
206
206
  return {
207
207
  dispose: () => {
208
- element.removeEventListener(type, listener);
208
+ element.removeEventListener(type, listener, options);
209
209
  },
210
210
  };
211
211
  }
@@ -890,7 +890,7 @@ define(['exports'], (function (exports) { 'use strict';
890
890
  //add sash
891
891
  const sash = document.createElement('div');
892
892
  sash.className = 'sash';
893
- const onStart = (event) => {
893
+ const onPointerStart = (event) => {
894
894
  for (const item of this.viewItems) {
895
895
  item.enabled = false;
896
896
  }
@@ -949,11 +949,10 @@ define(['exports'], (function (exports) { 'use strict';
949
949
  size: snappedViewItem.size,
950
950
  };
951
951
  }
952
- //
953
- const mousemove = (mousemoveEvent) => {
952
+ const onPointerMove = (event) => {
954
953
  const current = this._orientation === exports.Orientation.HORIZONTAL
955
- ? mousemoveEvent.clientX
956
- : mousemoveEvent.clientY;
954
+ ? event.clientX
955
+ : event.clientY;
957
956
  const delta = current - start;
958
957
  this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);
959
958
  this.distributeEmptySpace();
@@ -967,20 +966,20 @@ define(['exports'], (function (exports) { 'use strict';
967
966
  iframe.style.pointerEvents = 'auto';
968
967
  }
969
968
  this.saveProportions();
970
- document.removeEventListener('mousemove', mousemove);
971
- document.removeEventListener('mouseup', end);
972
- document.removeEventListener('mouseend', end);
969
+ document.removeEventListener('pointermove', onPointerMove);
970
+ document.removeEventListener('pointerup', end);
971
+ document.removeEventListener('pointercancel', end);
973
972
  this._onDidSashEnd.fire(undefined);
974
973
  };
975
- document.addEventListener('mousemove', mousemove);
976
- document.addEventListener('mouseup', end);
977
- document.addEventListener('mouseend', end);
974
+ document.addEventListener('pointermove', onPointerMove);
975
+ document.addEventListener('pointerup', end);
976
+ document.addEventListener('pointercancel', end);
978
977
  };
979
- sash.addEventListener('mousedown', onStart);
978
+ sash.addEventListener('pointerdown', onPointerStart);
980
979
  const sashItem = {
981
980
  container: sash,
982
981
  disposable: () => {
983
- sash.removeEventListener('mousedown', onStart);
982
+ sash.removeEventListener('pointerdown', onPointerStart);
984
983
  this.sashContainer.removeChild(sash);
985
984
  },
986
985
  };
@@ -2073,58 +2072,70 @@ define(['exports'], (function (exports) { 'use strict';
2073
2072
  if (!(parent instanceof BranchNode)) {
2074
2073
  throw new Error('Invalid location');
2075
2074
  }
2076
- const node = parent.children[index];
2077
- if (!(node instanceof LeafNode)) {
2075
+ const nodeToRemove = parent.children[index];
2076
+ if (!(nodeToRemove instanceof LeafNode)) {
2078
2077
  throw new Error('Invalid location');
2079
2078
  }
2080
- const view = node.view;
2081
- node.dispose(); // dispose of node
2082
- const child = parent.removeChild(index, sizing);
2083
- child.dispose();
2084
- if (parent.children.length === 0) {
2085
- return view;
2086
- }
2087
- if (parent.children.length > 1) {
2088
- return view;
2079
+ parent.removeChild(index, sizing);
2080
+ nodeToRemove.dispose();
2081
+ if (parent.children.length !== 1) {
2082
+ return nodeToRemove.view;
2089
2083
  }
2084
+ // if the parent has only one child and we know the parent is a BranchNode we can make the tree
2085
+ // more efficiently spaced by replacing the parent BranchNode with the child.
2086
+ // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child
2087
+ // is a BranchNode too we should spread it's children into the grandparent.
2088
+ // refer to the remaining child as the sibling
2090
2089
  const sibling = parent.children[0];
2091
2090
  if (pathToParent.length === 0) {
2092
- // parent is root
2091
+ // if the parent is root
2093
2092
  if (sibling instanceof LeafNode) {
2094
- return view;
2095
- }
2096
- // we must promote sibling to be the new root
2097
- const child = parent.removeChild(0, sizing);
2098
- child.dispose();
2093
+ // if the sibling is a leaf node no action is required
2094
+ return nodeToRemove.view;
2095
+ }
2096
+ // otherwise the sibling is a branch node. since the parent is the root and the root has only one child
2097
+ // which is a branch node we can just set this branch node to be the new root node
2098
+ // for good housekeeping we'll removing the sibling from it's existing tree
2099
+ parent.removeChild(0, sizing);
2100
+ // and set that sibling node to be root
2099
2101
  this.root = sibling;
2100
- return view;
2102
+ return nodeToRemove.view;
2101
2103
  }
2104
+ // otherwise the parent is apart of a large sub-tree
2102
2105
  const [grandParent, ..._] = [...pathToParent].reverse();
2103
2106
  const [parentIndex, ...__] = [...rest].reverse();
2104
2107
  const isSiblingVisible = parent.isChildVisible(0);
2105
- const childNode = parent.removeChild(0, sizing);
2106
- childNode.dispose();
2108
+ // either way we need to remove the sibling from it's existing tree
2109
+ parent.removeChild(0, sizing);
2110
+ // note the sizes of all of the grandparents children
2107
2111
  const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2108
- const parentNode = grandParent.removeChild(parentIndex, sizing);
2109
- parentNode.dispose();
2112
+ // remove the parent from the grandparent since we are moving the sibling to take the parents place
2113
+ // this parent is no longer used and can be disposed of
2114
+ grandParent.removeChild(parentIndex, sizing).dispose();
2110
2115
  if (sibling instanceof BranchNode) {
2116
+ // replace the parent with the siblings children
2111
2117
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
2118
+ // and add those siblings to the grandparent
2112
2119
  for (let i = 0; i < sibling.children.length; i++) {
2113
2120
  const child = sibling.children[i];
2114
2121
  grandParent.addChild(child, child.size, parentIndex + i);
2115
2122
  }
2116
2123
  }
2117
2124
  else {
2125
+ // otherwise create a new leaf node and add that to the grandparent
2118
2126
  const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);
2119
2127
  const siblingSizing = isSiblingVisible
2120
2128
  ? sibling.orthogonalSize
2121
2129
  : exports.Sizing.Invisible(sibling.orthogonalSize);
2122
2130
  grandParent.addChild(newSibling, siblingSizing, parentIndex);
2123
2131
  }
2132
+ // the containing node of the sibling is no longer required and can be disposed of
2133
+ sibling.dispose();
2134
+ // resize everything
2124
2135
  for (let i = 0; i < sizes.length; i++) {
2125
2136
  grandParent.resizeChild(i, sizes[i]);
2126
2137
  }
2127
- return view;
2138
+ return nodeToRemove.view;
2128
2139
  }
2129
2140
  layout(width, height) {
2130
2141
  const [size, orthogonalSize] = this.root.orientation === exports.Orientation.HORIZONTAL
@@ -2837,25 +2848,32 @@ define(['exports'], (function (exports) { 'use strict';
2837
2848
  constructor(el) {
2838
2849
  super();
2839
2850
  this.el = el;
2840
- this.disposable = new MutableDisposable();
2851
+ this.dataDisposable = new MutableDisposable();
2852
+ this.pointerEventsDisposable = new MutableDisposable();
2841
2853
  this._onDragStart = new Emitter();
2842
2854
  this.onDragStart = this._onDragStart.event;
2843
- this.iframes = [];
2844
- this.addDisposables(this._onDragStart);
2855
+ this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);
2845
2856
  this.configure();
2846
2857
  }
2847
2858
  configure() {
2848
2859
  this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
2849
- this.iframes = [
2860
+ const iframes = [
2850
2861
  ...getElementsByTagName('iframe'),
2851
2862
  ...getElementsByTagName('webview'),
2852
2863
  ];
2853
- for (const iframe of this.iframes) {
2864
+ this.pointerEventsDisposable.value = {
2865
+ dispose: () => {
2866
+ for (const iframe of iframes) {
2867
+ iframe.style.pointerEvents = 'auto';
2868
+ }
2869
+ },
2870
+ };
2871
+ for (const iframe of iframes) {
2854
2872
  iframe.style.pointerEvents = 'none';
2855
2873
  }
2856
2874
  this.el.classList.add('dv-dragged');
2857
2875
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
2858
- this.disposable.value = this.getData(event.dataTransfer);
2876
+ this.dataDisposable.value = this.getData(event.dataTransfer);
2859
2877
  if (event.dataTransfer) {
2860
2878
  event.dataTransfer.effectAllowed = 'move';
2861
2879
  /**
@@ -2870,11 +2888,8 @@ define(['exports'], (function (exports) { 'use strict';
2870
2888
  event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
2871
2889
  }
2872
2890
  }), addDisposableListener(this.el, 'dragend', () => {
2873
- for (const iframe of this.iframes) {
2874
- iframe.style.pointerEvents = 'auto';
2875
- }
2876
- this.iframes = [];
2877
- this.disposable.dispose();
2891
+ this.pointerEventsDisposable.dispose();
2892
+ this.dataDisposable.dispose();
2878
2893
  }));
2879
2894
  }
2880
2895
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.7.4
3
+ * @version 1.7.6
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -33,7 +33,7 @@ function styleInject(css, ref) {
33
33
  }
34
34
  }
35
35
 
36
- var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dv-tab-dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .default-tab .action-container .tab-list .tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
36
+ var css_248z = ".dockview-svg {\n display: inline-block;\n fill: currentcolor;\n line-height: 1;\n stroke: currentcolor;\n stroke-width: 0;\n}\n.dockview-theme-dark {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-tabs-and-actions-container-background-color: #2d2d30;\n --dv-tabs-and-actions-container-height: 20px;\n --dv-tabs-and-actions-container-font-size: 11px;\n --dv-activegroup-visiblepanel-tab-background-color: #007acc;\n --dv-inactivegroup-visiblepanel-tab-background-color: #3f3f46;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: white;\n --dv-inactivegroup-visiblepanel-tab-color: white;\n --dv-inactivegroup-hiddenpanel-tab-color: white;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-activegroup-hiddenpanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n box-sizing: content-box;\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.active-tab {\n border-top: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container .tab.inactive-tab {\n border-top: 2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n}\n\n.dockview-theme-abyss {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #000c18;\n --dv-tabs-and-actions-container-background-color: #1c1c2a;\n --dv-activegroup-visiblepanel-tab-background-color: #000c18;\n --dv-activegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #000c18;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #10192c;\n --dv-tab-divider-color: #2b2b4a;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(255, 255, 255, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(255, 255, 255, 0.25);\n --dv-separator-border: #2b2b4a;\n --dv-paneview-header-border-color: #2b2b4a;\n --dv-paneview-active-outline-color: #596f99;\n}\n\n.dockview-theme-dracula {\n --dv-background-color: black;\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-icon-hover-background-color: rgba(90, 93, 94, 0.31);\n --dv-group-view-background-color: #282a36;\n --dv-tabs-and-actions-container-background-color: #191a21;\n --dv-activegroup-visiblepanel-tab-background-color: #282a36;\n --dv-activegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-inactivegroup-visiblepanel-tab-background-color: #282a36;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #21222c;\n --dv-tab-divider-color: #191a21;\n --dv-activegroup-visiblepanel-tab-color: rgb(248, 248, 242);\n --dv-activegroup-hiddenpanel-tab-color: rgb(98, 114, 164);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(248, 248, 242, 0.5);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(98, 114, 164, 0.5);\n --dv-separator-border: #bd93f9;\n --dv-paneview-header-border-color: #bd93f9;\n --dv-paneview-active-outline-color: #6272a4;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n top: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #94527e;\n z-index: 999;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n position: relative;\n}\n.dockview-theme-dracula .groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab::after {\n position: absolute;\n left: 0px;\n bottom: 0px;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: #5e3d5a;\n z-index: 999;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition: top 70ms ease-out, left 70ms ease-out, width 70ms ease-out, height 70ms ease-out, opacity 0.15s ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.dv-dockview {\n position: relative;\n background-color: var(--dv-group-view-background-color);\n}\n.dv-dockview .dv-watermark-container {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 100%;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dv-tab-dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n cursor: pointer;\n}\n.pane-container .view .default-header .dockview-pane-header-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.pane-container .view .default-header > span {\n padding-left: 8px;\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n background-color: var(--dv-background-color);\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dv-dragged {\n transform: translate3d(0px, 0px, 0px); /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dv-tab-dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding: 0px 8px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .default-tab .action-container .tab-list .tab-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .tabs-container .tab {\n flex-grow: 1;\n}\n.tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .void-container {\n flex-grow: 0;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n cursor: grab;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-container {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}\n.watermark .actions-container {\n display: flex;\n align-items: center;\n padding: 0px 8px;\n}\n.watermark .actions-container .close-action {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n cursor: pointer;\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.watermark .actions-container .close-action:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}";
37
37
  styleInject(css_248z);
38
38
 
39
39
  class TransferObject {
@@ -227,7 +227,7 @@ function addDisposableWindowListener(element, type, listener, options) {
227
227
  element.addEventListener(type, listener, options);
228
228
  return {
229
229
  dispose: () => {
230
- element.removeEventListener(type, listener);
230
+ element.removeEventListener(type, listener, options);
231
231
  },
232
232
  };
233
233
  }
@@ -235,7 +235,7 @@ function addDisposableListener(element, type, listener, options) {
235
235
  element.addEventListener(type, listener, options);
236
236
  return {
237
237
  dispose: () => {
238
- element.removeEventListener(type, listener);
238
+ element.removeEventListener(type, listener, options);
239
239
  },
240
240
  };
241
241
  }
@@ -920,7 +920,7 @@ class Splitview {
920
920
  //add sash
921
921
  const sash = document.createElement('div');
922
922
  sash.className = 'sash';
923
- const onStart = (event) => {
923
+ const onPointerStart = (event) => {
924
924
  for (const item of this.viewItems) {
925
925
  item.enabled = false;
926
926
  }
@@ -979,11 +979,10 @@ class Splitview {
979
979
  size: snappedViewItem.size,
980
980
  };
981
981
  }
982
- //
983
- const mousemove = (mousemoveEvent) => {
982
+ const onPointerMove = (event) => {
984
983
  const current = this._orientation === exports.Orientation.HORIZONTAL
985
- ? mousemoveEvent.clientX
986
- : mousemoveEvent.clientY;
984
+ ? event.clientX
985
+ : event.clientY;
987
986
  const delta = current - start;
988
987
  this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);
989
988
  this.distributeEmptySpace();
@@ -997,20 +996,20 @@ class Splitview {
997
996
  iframe.style.pointerEvents = 'auto';
998
997
  }
999
998
  this.saveProportions();
1000
- document.removeEventListener('mousemove', mousemove);
1001
- document.removeEventListener('mouseup', end);
1002
- document.removeEventListener('mouseend', end);
999
+ document.removeEventListener('pointermove', onPointerMove);
1000
+ document.removeEventListener('pointerup', end);
1001
+ document.removeEventListener('pointercancel', end);
1003
1002
  this._onDidSashEnd.fire(undefined);
1004
1003
  };
1005
- document.addEventListener('mousemove', mousemove);
1006
- document.addEventListener('mouseup', end);
1007
- document.addEventListener('mouseend', end);
1004
+ document.addEventListener('pointermove', onPointerMove);
1005
+ document.addEventListener('pointerup', end);
1006
+ document.addEventListener('pointercancel', end);
1008
1007
  };
1009
- sash.addEventListener('mousedown', onStart);
1008
+ sash.addEventListener('pointerdown', onPointerStart);
1010
1009
  const sashItem = {
1011
1010
  container: sash,
1012
1011
  disposable: () => {
1013
- sash.removeEventListener('mousedown', onStart);
1012
+ sash.removeEventListener('pointerdown', onPointerStart);
1014
1013
  this.sashContainer.removeChild(sash);
1015
1014
  },
1016
1015
  };
@@ -2103,58 +2102,70 @@ class Gridview {
2103
2102
  if (!(parent instanceof BranchNode)) {
2104
2103
  throw new Error('Invalid location');
2105
2104
  }
2106
- const node = parent.children[index];
2107
- if (!(node instanceof LeafNode)) {
2105
+ const nodeToRemove = parent.children[index];
2106
+ if (!(nodeToRemove instanceof LeafNode)) {
2108
2107
  throw new Error('Invalid location');
2109
2108
  }
2110
- const view = node.view;
2111
- node.dispose(); // dispose of node
2112
- const child = parent.removeChild(index, sizing);
2113
- child.dispose();
2114
- if (parent.children.length === 0) {
2115
- return view;
2116
- }
2117
- if (parent.children.length > 1) {
2118
- return view;
2109
+ parent.removeChild(index, sizing);
2110
+ nodeToRemove.dispose();
2111
+ if (parent.children.length !== 1) {
2112
+ return nodeToRemove.view;
2119
2113
  }
2114
+ // if the parent has only one child and we know the parent is a BranchNode we can make the tree
2115
+ // more efficiently spaced by replacing the parent BranchNode with the child.
2116
+ // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child
2117
+ // is a BranchNode too we should spread it's children into the grandparent.
2118
+ // refer to the remaining child as the sibling
2120
2119
  const sibling = parent.children[0];
2121
2120
  if (pathToParent.length === 0) {
2122
- // parent is root
2121
+ // if the parent is root
2123
2122
  if (sibling instanceof LeafNode) {
2124
- return view;
2125
- }
2126
- // we must promote sibling to be the new root
2127
- const child = parent.removeChild(0, sizing);
2128
- child.dispose();
2123
+ // if the sibling is a leaf node no action is required
2124
+ return nodeToRemove.view;
2125
+ }
2126
+ // otherwise the sibling is a branch node. since the parent is the root and the root has only one child
2127
+ // which is a branch node we can just set this branch node to be the new root node
2128
+ // for good housekeeping we'll removing the sibling from it's existing tree
2129
+ parent.removeChild(0, sizing);
2130
+ // and set that sibling node to be root
2129
2131
  this.root = sibling;
2130
- return view;
2132
+ return nodeToRemove.view;
2131
2133
  }
2134
+ // otherwise the parent is apart of a large sub-tree
2132
2135
  const [grandParent, ..._] = [...pathToParent].reverse();
2133
2136
  const [parentIndex, ...__] = [...rest].reverse();
2134
2137
  const isSiblingVisible = parent.isChildVisible(0);
2135
- const childNode = parent.removeChild(0, sizing);
2136
- childNode.dispose();
2138
+ // either way we need to remove the sibling from it's existing tree
2139
+ parent.removeChild(0, sizing);
2140
+ // note the sizes of all of the grandparents children
2137
2141
  const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2138
- const parentNode = grandParent.removeChild(parentIndex, sizing);
2139
- parentNode.dispose();
2142
+ // remove the parent from the grandparent since we are moving the sibling to take the parents place
2143
+ // this parent is no longer used and can be disposed of
2144
+ grandParent.removeChild(parentIndex, sizing).dispose();
2140
2145
  if (sibling instanceof BranchNode) {
2146
+ // replace the parent with the siblings children
2141
2147
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
2148
+ // and add those siblings to the grandparent
2142
2149
  for (let i = 0; i < sibling.children.length; i++) {
2143
2150
  const child = sibling.children[i];
2144
2151
  grandParent.addChild(child, child.size, parentIndex + i);
2145
2152
  }
2146
2153
  }
2147
2154
  else {
2155
+ // otherwise create a new leaf node and add that to the grandparent
2148
2156
  const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);
2149
2157
  const siblingSizing = isSiblingVisible
2150
2158
  ? sibling.orthogonalSize
2151
2159
  : exports.Sizing.Invisible(sibling.orthogonalSize);
2152
2160
  grandParent.addChild(newSibling, siblingSizing, parentIndex);
2153
2161
  }
2162
+ // the containing node of the sibling is no longer required and can be disposed of
2163
+ sibling.dispose();
2164
+ // resize everything
2154
2165
  for (let i = 0; i < sizes.length; i++) {
2155
2166
  grandParent.resizeChild(i, sizes[i]);
2156
2167
  }
2157
- return view;
2168
+ return nodeToRemove.view;
2158
2169
  }
2159
2170
  layout(width, height) {
2160
2171
  const [size, orthogonalSize] = this.root.orientation === exports.Orientation.HORIZONTAL
@@ -2867,25 +2878,32 @@ class DragHandler extends CompositeDisposable {
2867
2878
  constructor(el) {
2868
2879
  super();
2869
2880
  this.el = el;
2870
- this.disposable = new MutableDisposable();
2881
+ this.dataDisposable = new MutableDisposable();
2882
+ this.pointerEventsDisposable = new MutableDisposable();
2871
2883
  this._onDragStart = new Emitter();
2872
2884
  this.onDragStart = this._onDragStart.event;
2873
- this.iframes = [];
2874
- this.addDisposables(this._onDragStart);
2885
+ this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);
2875
2886
  this.configure();
2876
2887
  }
2877
2888
  configure() {
2878
2889
  this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
2879
- this.iframes = [
2890
+ const iframes = [
2880
2891
  ...getElementsByTagName('iframe'),
2881
2892
  ...getElementsByTagName('webview'),
2882
2893
  ];
2883
- for (const iframe of this.iframes) {
2894
+ this.pointerEventsDisposable.value = {
2895
+ dispose: () => {
2896
+ for (const iframe of iframes) {
2897
+ iframe.style.pointerEvents = 'auto';
2898
+ }
2899
+ },
2900
+ };
2901
+ for (const iframe of iframes) {
2884
2902
  iframe.style.pointerEvents = 'none';
2885
2903
  }
2886
2904
  this.el.classList.add('dv-dragged');
2887
2905
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
2888
- this.disposable.value = this.getData(event.dataTransfer);
2906
+ this.dataDisposable.value = this.getData(event.dataTransfer);
2889
2907
  if (event.dataTransfer) {
2890
2908
  event.dataTransfer.effectAllowed = 'move';
2891
2909
  /**
@@ -2900,11 +2918,8 @@ class DragHandler extends CompositeDisposable {
2900
2918
  event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
2901
2919
  }
2902
2920
  }), addDisposableListener(this.el, 'dragend', () => {
2903
- for (const iframe of this.iframes) {
2904
- iframe.style.pointerEvents = 'auto';
2905
- }
2906
- this.iframes = [];
2907
- this.disposable.dispose();
2921
+ this.pointerEventsDisposable.dispose();
2922
+ this.dataDisposable.dispose();
2908
2923
  }));
2909
2924
  }
2910
2925
  }