dockview 1.7.4 → 1.7.5

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.7.4
3
+ * @version 1.7.5
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -217,7 +217,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
217
217
  element.addEventListener(type, listener, options);
218
218
  return {
219
219
  dispose: () => {
220
- element.removeEventListener(type, listener);
220
+ element.removeEventListener(type, listener, options);
221
221
  },
222
222
  };
223
223
  }
@@ -225,7 +225,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
225
225
  element.addEventListener(type, listener, options);
226
226
  return {
227
227
  dispose: () => {
228
- element.removeEventListener(type, listener);
228
+ element.removeEventListener(type, listener, options);
229
229
  },
230
230
  };
231
231
  }
@@ -989,12 +989,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
989
989
  this.saveProportions();
990
990
  document.removeEventListener('mousemove', mousemove);
991
991
  document.removeEventListener('mouseup', end);
992
- document.removeEventListener('mouseend', end);
993
992
  this._onDidSashEnd.fire(undefined);
994
993
  };
995
994
  document.addEventListener('mousemove', mousemove);
996
995
  document.addEventListener('mouseup', end);
997
- document.addEventListener('mouseend', end);
998
996
  };
999
997
  sash.addEventListener('mousedown', onStart);
1000
998
  const sashItem = {
@@ -2097,36 +2095,30 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2097
2095
  if (!(node instanceof LeafNode)) {
2098
2096
  throw new Error('Invalid location');
2099
2097
  }
2100
- const view = node.view;
2101
- node.dispose(); // dispose of node
2102
- const child = parent.removeChild(index, sizing);
2103
- child.dispose();
2098
+ parent.removeChild(index, sizing);
2104
2099
  if (parent.children.length === 0) {
2105
- return view;
2100
+ return node.view;
2106
2101
  }
2107
2102
  if (parent.children.length > 1) {
2108
- return view;
2103
+ return node.view;
2109
2104
  }
2110
2105
  const sibling = parent.children[0];
2111
2106
  if (pathToParent.length === 0) {
2112
2107
  // parent is root
2113
2108
  if (sibling instanceof LeafNode) {
2114
- return view;
2109
+ return node.view;
2115
2110
  }
2116
2111
  // we must promote sibling to be the new root
2117
- const child = parent.removeChild(0, sizing);
2118
- child.dispose();
2112
+ parent.removeChild(0, sizing);
2119
2113
  this.root = sibling;
2120
- return view;
2114
+ return node.view;
2121
2115
  }
2122
2116
  const [grandParent, ..._] = [...pathToParent].reverse();
2123
2117
  const [parentIndex, ...__] = [...rest].reverse();
2124
2118
  const isSiblingVisible = parent.isChildVisible(0);
2125
- const childNode = parent.removeChild(0, sizing);
2126
- childNode.dispose();
2119
+ parent.removeChild(0, sizing);
2127
2120
  const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2128
- const parentNode = grandParent.removeChild(parentIndex, sizing);
2129
- parentNode.dispose();
2121
+ grandParent.removeChild(parentIndex, sizing);
2130
2122
  if (sibling instanceof BranchNode) {
2131
2123
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
2132
2124
  for (let i = 0; i < sibling.children.length; i++) {
@@ -2144,7 +2136,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2144
2136
  for (let i = 0; i < sizes.length; i++) {
2145
2137
  grandParent.resizeChild(i, sizes[i]);
2146
2138
  }
2147
- return view;
2139
+ return node.view;
2148
2140
  }
2149
2141
  layout(width, height) {
2150
2142
  const [size, orthogonalSize] = this.root.orientation === exports.Orientation.HORIZONTAL
@@ -2857,25 +2849,32 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2857
2849
  constructor(el) {
2858
2850
  super();
2859
2851
  this.el = el;
2860
- this.disposable = new MutableDisposable();
2852
+ this.dataDisposable = new MutableDisposable();
2853
+ this.pointerEventsDisposable = new MutableDisposable();
2861
2854
  this._onDragStart = new Emitter();
2862
2855
  this.onDragStart = this._onDragStart.event;
2863
- this.iframes = [];
2864
- this.addDisposables(this._onDragStart);
2856
+ this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);
2865
2857
  this.configure();
2866
2858
  }
2867
2859
  configure() {
2868
2860
  this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
2869
- this.iframes = [
2861
+ const iframes = [
2870
2862
  ...getElementsByTagName('iframe'),
2871
2863
  ...getElementsByTagName('webview'),
2872
2864
  ];
2873
- for (const iframe of this.iframes) {
2865
+ this.pointerEventsDisposable.value = {
2866
+ dispose: () => {
2867
+ for (const iframe of iframes) {
2868
+ iframe.style.pointerEvents = 'auto';
2869
+ }
2870
+ },
2871
+ };
2872
+ for (const iframe of iframes) {
2874
2873
  iframe.style.pointerEvents = 'none';
2875
2874
  }
2876
2875
  this.el.classList.add('dv-dragged');
2877
2876
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
2878
- this.disposable.value = this.getData(event.dataTransfer);
2877
+ this.dataDisposable.value = this.getData(event.dataTransfer);
2879
2878
  if (event.dataTransfer) {
2880
2879
  event.dataTransfer.effectAllowed = 'move';
2881
2880
  /**
@@ -2890,11 +2889,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2890
2889
  event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
2891
2890
  }
2892
2891
  }), addDisposableListener(this.el, 'dragend', () => {
2893
- for (const iframe of this.iframes) {
2894
- iframe.style.pointerEvents = 'auto';
2895
- }
2896
- this.iframes = [];
2897
- this.disposable.dispose();
2892
+ this.pointerEventsDisposable.dispose();
2893
+ this.dataDisposable.dispose();
2898
2894
  }));
2899
2895
  }
2900
2896
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.7.4
3
+ * @version 1.7.5
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -250,7 +250,7 @@ function addDisposableWindowListener(element, type, listener, options) {
250
250
  element.addEventListener(type, listener, options);
251
251
  return {
252
252
  dispose: () => {
253
- element.removeEventListener(type, listener);
253
+ element.removeEventListener(type, listener, options);
254
254
  },
255
255
  };
256
256
  }
@@ -258,7 +258,7 @@ function addDisposableListener(element, type, listener, options) {
258
258
  element.addEventListener(type, listener, options);
259
259
  return {
260
260
  dispose: () => {
261
- element.removeEventListener(type, listener);
261
+ element.removeEventListener(type, listener, options);
262
262
  },
263
263
  };
264
264
  }
@@ -1022,12 +1022,10 @@ class Splitview {
1022
1022
  this.saveProportions();
1023
1023
  document.removeEventListener('mousemove', mousemove);
1024
1024
  document.removeEventListener('mouseup', end);
1025
- document.removeEventListener('mouseend', end);
1026
1025
  this._onDidSashEnd.fire(undefined);
1027
1026
  };
1028
1027
  document.addEventListener('mousemove', mousemove);
1029
1028
  document.addEventListener('mouseup', end);
1030
- document.addEventListener('mouseend', end);
1031
1029
  };
1032
1030
  sash.addEventListener('mousedown', onStart);
1033
1031
  const sashItem = {
@@ -2130,36 +2128,30 @@ class Gridview {
2130
2128
  if (!(node instanceof LeafNode)) {
2131
2129
  throw new Error('Invalid location');
2132
2130
  }
2133
- const view = node.view;
2134
- node.dispose(); // dispose of node
2135
- const child = parent.removeChild(index, sizing);
2136
- child.dispose();
2131
+ parent.removeChild(index, sizing);
2137
2132
  if (parent.children.length === 0) {
2138
- return view;
2133
+ return node.view;
2139
2134
  }
2140
2135
  if (parent.children.length > 1) {
2141
- return view;
2136
+ return node.view;
2142
2137
  }
2143
2138
  const sibling = parent.children[0];
2144
2139
  if (pathToParent.length === 0) {
2145
2140
  // parent is root
2146
2141
  if (sibling instanceof LeafNode) {
2147
- return view;
2142
+ return node.view;
2148
2143
  }
2149
2144
  // we must promote sibling to be the new root
2150
- const child = parent.removeChild(0, sizing);
2151
- child.dispose();
2145
+ parent.removeChild(0, sizing);
2152
2146
  this.root = sibling;
2153
- return view;
2147
+ return node.view;
2154
2148
  }
2155
2149
  const [grandParent, ..._] = [...pathToParent].reverse();
2156
2150
  const [parentIndex, ...__] = [...rest].reverse();
2157
2151
  const isSiblingVisible = parent.isChildVisible(0);
2158
- const childNode = parent.removeChild(0, sizing);
2159
- childNode.dispose();
2152
+ parent.removeChild(0, sizing);
2160
2153
  const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2161
- const parentNode = grandParent.removeChild(parentIndex, sizing);
2162
- parentNode.dispose();
2154
+ grandParent.removeChild(parentIndex, sizing);
2163
2155
  if (sibling instanceof BranchNode) {
2164
2156
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
2165
2157
  for (let i = 0; i < sibling.children.length; i++) {
@@ -2177,7 +2169,7 @@ class Gridview {
2177
2169
  for (let i = 0; i < sizes.length; i++) {
2178
2170
  grandParent.resizeChild(i, sizes[i]);
2179
2171
  }
2180
- return view;
2172
+ return node.view;
2181
2173
  }
2182
2174
  layout(width, height) {
2183
2175
  const [size, orthogonalSize] = this.root.orientation === exports.Orientation.HORIZONTAL
@@ -2890,25 +2882,32 @@ class DragHandler extends CompositeDisposable {
2890
2882
  constructor(el) {
2891
2883
  super();
2892
2884
  this.el = el;
2893
- this.disposable = new MutableDisposable();
2885
+ this.dataDisposable = new MutableDisposable();
2886
+ this.pointerEventsDisposable = new MutableDisposable();
2894
2887
  this._onDragStart = new Emitter();
2895
2888
  this.onDragStart = this._onDragStart.event;
2896
- this.iframes = [];
2897
- this.addDisposables(this._onDragStart);
2889
+ this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);
2898
2890
  this.configure();
2899
2891
  }
2900
2892
  configure() {
2901
2893
  this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
2902
- this.iframes = [
2894
+ const iframes = [
2903
2895
  ...getElementsByTagName('iframe'),
2904
2896
  ...getElementsByTagName('webview'),
2905
2897
  ];
2906
- for (const iframe of this.iframes) {
2898
+ this.pointerEventsDisposable.value = {
2899
+ dispose: () => {
2900
+ for (const iframe of iframes) {
2901
+ iframe.style.pointerEvents = 'auto';
2902
+ }
2903
+ },
2904
+ };
2905
+ for (const iframe of iframes) {
2907
2906
  iframe.style.pointerEvents = 'none';
2908
2907
  }
2909
2908
  this.el.classList.add('dv-dragged');
2910
2909
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
2911
- this.disposable.value = this.getData(event.dataTransfer);
2910
+ this.dataDisposable.value = this.getData(event.dataTransfer);
2912
2911
  if (event.dataTransfer) {
2913
2912
  event.dataTransfer.effectAllowed = 'move';
2914
2913
  /**
@@ -2923,11 +2922,8 @@ class DragHandler extends CompositeDisposable {
2923
2922
  event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
2924
2923
  }
2925
2924
  }), addDisposableListener(this.el, 'dragend', () => {
2926
- for (const iframe of this.iframes) {
2927
- iframe.style.pointerEvents = 'auto';
2928
- }
2929
- this.iframes = [];
2930
- this.disposable.dispose();
2925
+ this.pointerEventsDisposable.dispose();
2926
+ this.dataDisposable.dispose();
2931
2927
  }));
2932
2928
  }
2933
2929
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.7.4
3
+ * @version 1.7.5
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -228,7 +228,7 @@ function addDisposableWindowListener(element, type, listener, options) {
228
228
  element.addEventListener(type, listener, options);
229
229
  return {
230
230
  dispose: () => {
231
- element.removeEventListener(type, listener);
231
+ element.removeEventListener(type, listener, options);
232
232
  },
233
233
  };
234
234
  }
@@ -236,7 +236,7 @@ function addDisposableListener(element, type, listener, options) {
236
236
  element.addEventListener(type, listener, options);
237
237
  return {
238
238
  dispose: () => {
239
- element.removeEventListener(type, listener);
239
+ element.removeEventListener(type, listener, options);
240
240
  },
241
241
  };
242
242
  }
@@ -1000,12 +1000,10 @@ class Splitview {
1000
1000
  this.saveProportions();
1001
1001
  document.removeEventListener('mousemove', mousemove);
1002
1002
  document.removeEventListener('mouseup', end);
1003
- document.removeEventListener('mouseend', end);
1004
1003
  this._onDidSashEnd.fire(undefined);
1005
1004
  };
1006
1005
  document.addEventListener('mousemove', mousemove);
1007
1006
  document.addEventListener('mouseup', end);
1008
- document.addEventListener('mouseend', end);
1009
1007
  };
1010
1008
  sash.addEventListener('mousedown', onStart);
1011
1009
  const sashItem = {
@@ -2108,36 +2106,30 @@ class Gridview {
2108
2106
  if (!(node instanceof LeafNode)) {
2109
2107
  throw new Error('Invalid location');
2110
2108
  }
2111
- const view = node.view;
2112
- node.dispose(); // dispose of node
2113
- const child = parent.removeChild(index, sizing);
2114
- child.dispose();
2109
+ parent.removeChild(index, sizing);
2115
2110
  if (parent.children.length === 0) {
2116
- return view;
2111
+ return node.view;
2117
2112
  }
2118
2113
  if (parent.children.length > 1) {
2119
- return view;
2114
+ return node.view;
2120
2115
  }
2121
2116
  const sibling = parent.children[0];
2122
2117
  if (pathToParent.length === 0) {
2123
2118
  // parent is root
2124
2119
  if (sibling instanceof LeafNode) {
2125
- return view;
2120
+ return node.view;
2126
2121
  }
2127
2122
  // we must promote sibling to be the new root
2128
- const child = parent.removeChild(0, sizing);
2129
- child.dispose();
2123
+ parent.removeChild(0, sizing);
2130
2124
  this.root = sibling;
2131
- return view;
2125
+ return node.view;
2132
2126
  }
2133
2127
  const [grandParent, ..._] = [...pathToParent].reverse();
2134
2128
  const [parentIndex, ...__] = [...rest].reverse();
2135
2129
  const isSiblingVisible = parent.isChildVisible(0);
2136
- const childNode = parent.removeChild(0, sizing);
2137
- childNode.dispose();
2130
+ parent.removeChild(0, sizing);
2138
2131
  const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));
2139
- const parentNode = grandParent.removeChild(parentIndex, sizing);
2140
- parentNode.dispose();
2132
+ grandParent.removeChild(parentIndex, sizing);
2141
2133
  if (sibling instanceof BranchNode) {
2142
2134
  sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));
2143
2135
  for (let i = 0; i < sibling.children.length; i++) {
@@ -2155,7 +2147,7 @@ class Gridview {
2155
2147
  for (let i = 0; i < sizes.length; i++) {
2156
2148
  grandParent.resizeChild(i, sizes[i]);
2157
2149
  }
2158
- return view;
2150
+ return node.view;
2159
2151
  }
2160
2152
  layout(width, height) {
2161
2153
  const [size, orthogonalSize] = this.root.orientation === Orientation.HORIZONTAL
@@ -2868,25 +2860,32 @@ class DragHandler extends CompositeDisposable {
2868
2860
  constructor(el) {
2869
2861
  super();
2870
2862
  this.el = el;
2871
- this.disposable = new MutableDisposable();
2863
+ this.dataDisposable = new MutableDisposable();
2864
+ this.pointerEventsDisposable = new MutableDisposable();
2872
2865
  this._onDragStart = new Emitter();
2873
2866
  this.onDragStart = this._onDragStart.event;
2874
- this.iframes = [];
2875
- this.addDisposables(this._onDragStart);
2867
+ this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);
2876
2868
  this.configure();
2877
2869
  }
2878
2870
  configure() {
2879
2871
  this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
2880
- this.iframes = [
2872
+ const iframes = [
2881
2873
  ...getElementsByTagName('iframe'),
2882
2874
  ...getElementsByTagName('webview'),
2883
2875
  ];
2884
- for (const iframe of this.iframes) {
2876
+ this.pointerEventsDisposable.value = {
2877
+ dispose: () => {
2878
+ for (const iframe of iframes) {
2879
+ iframe.style.pointerEvents = 'auto';
2880
+ }
2881
+ },
2882
+ };
2883
+ for (const iframe of iframes) {
2885
2884
  iframe.style.pointerEvents = 'none';
2886
2885
  }
2887
2886
  this.el.classList.add('dv-dragged');
2888
2887
  setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
2889
- this.disposable.value = this.getData(event.dataTransfer);
2888
+ this.dataDisposable.value = this.getData(event.dataTransfer);
2890
2889
  if (event.dataTransfer) {
2891
2890
  event.dataTransfer.effectAllowed = 'move';
2892
2891
  /**
@@ -2901,11 +2900,8 @@ class DragHandler extends CompositeDisposable {
2901
2900
  event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
2902
2901
  }
2903
2902
  }), addDisposableListener(this.el, 'dragend', () => {
2904
- for (const iframe of this.iframes) {
2905
- iframe.style.pointerEvents = 'auto';
2906
- }
2907
- this.iframes = [];
2908
- this.disposable.dispose();
2903
+ this.pointerEventsDisposable.dispose();
2904
+ this.dataDisposable.dispose();
2909
2905
  }));
2910
2906
  }
2911
2907
  }