dockview-core 6.6.1 → 7.0.3

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 (203) hide show
  1. package/README.md +8 -1
  2. package/dist/cjs/api/component.api.d.ts +42 -21
  3. package/dist/cjs/api/component.api.js +111 -20
  4. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +23 -8
  5. package/dist/cjs/api/dockviewGroupPanelApi.js +24 -1
  6. package/dist/cjs/api/dockviewPanelApi.d.ts +4 -3
  7. package/dist/cjs/api/dockviewPanelApi.js +8 -0
  8. package/dist/cjs/dnd/dropTargetAnchorContainer.js +1 -2
  9. package/dist/cjs/dnd/droptarget.d.ts +8 -0
  10. package/dist/cjs/dnd/droptarget.js +28 -0
  11. package/dist/cjs/dnd/pointer/longPress.js +1 -1
  12. package/dist/cjs/dnd/pointer/pointerDragController.js +9 -7
  13. package/dist/cjs/dnd/pointer/pointerDragSource.js +4 -2
  14. package/dist/cjs/dockview/accessibilityMessages.d.ts +32 -0
  15. package/dist/cjs/dockview/accessibilityMessages.js +51 -0
  16. package/dist/cjs/dockview/allModules.d.ts +8 -0
  17. package/dist/cjs/dockview/allModules.js +25 -0
  18. package/dist/cjs/dockview/components/panel/content.d.ts +2 -0
  19. package/dist/cjs/dockview/components/panel/content.js +41 -10
  20. package/dist/cjs/dockview/components/popupService.js +1 -1
  21. package/dist/cjs/dockview/components/tab/tab.js +35 -7
  22. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +34 -0
  23. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +95 -0
  24. package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +51 -0
  25. package/dist/cjs/dockview/components/titlebar/groupDragSource.js +218 -0
  26. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +2 -1
  27. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +36 -30
  28. package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +27 -5
  29. package/dist/cjs/dockview/components/titlebar/tabGroups.js +104 -53
  30. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +12 -0
  31. package/dist/cjs/dockview/components/titlebar/tabs.js +121 -25
  32. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +4 -0
  33. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +13 -3
  34. package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +1 -4
  35. package/dist/cjs/dockview/components/titlebar/voidContainer.js +32 -156
  36. package/dist/cjs/dockview/dndCapabilities.js +3 -3
  37. package/dist/cjs/dockview/dockviewComponent.d.ts +304 -49
  38. package/dist/cjs/dockview/dockviewComponent.js +1839 -1075
  39. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +33 -2
  40. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +39 -3
  41. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -2
  42. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +36 -14
  43. package/dist/cjs/dockview/dockviewGroupPanelModel.js +151 -125
  44. package/dist/cjs/dockview/dockviewPanel.d.ts +2 -2
  45. package/dist/cjs/dockview/dockviewPanel.js +4 -5
  46. package/dist/cjs/dockview/dockviewShell.d.ts +29 -7
  47. package/dist/cjs/dockview/dockviewShell.js +94 -36
  48. package/dist/cjs/dockview/edgeGroupService.d.ts +38 -0
  49. package/dist/cjs/dockview/edgeGroupService.js +128 -0
  50. package/dist/cjs/dockview/floatingGroupService.d.ts +37 -0
  51. package/dist/cjs/dockview/floatingGroupService.js +231 -0
  52. package/dist/cjs/dockview/headerActionsService.d.ts +32 -0
  53. package/dist/cjs/dockview/headerActionsService.js +149 -0
  54. package/dist/cjs/dockview/liveRegionService.d.ts +53 -0
  55. package/dist/cjs/dockview/liveRegionService.js +185 -0
  56. package/dist/cjs/dockview/moduleContracts.d.ts +119 -0
  57. package/dist/cjs/dockview/moduleContracts.js +2 -0
  58. package/dist/cjs/dockview/modules.d.ts +110 -0
  59. package/dist/cjs/dockview/modules.js +304 -0
  60. package/dist/cjs/dockview/options.d.ts +159 -6
  61. package/dist/cjs/dockview/options.js +8 -1
  62. package/dist/cjs/dockview/popoutWindowService.d.ts +95 -0
  63. package/dist/cjs/dockview/popoutWindowService.js +261 -0
  64. package/dist/cjs/dockview/rootDropTargetService.d.ts +35 -0
  65. package/dist/cjs/dockview/rootDropTargetService.js +87 -0
  66. package/dist/cjs/dockview/strictEventsSequencing.js +6 -6
  67. package/dist/cjs/dockview/tabGroup.js +3 -3
  68. package/dist/cjs/dockview/tabGroupAccent.js +1 -3
  69. package/dist/cjs/dockview/watermarkService.d.ts +30 -0
  70. package/dist/cjs/dockview/watermarkService.js +61 -0
  71. package/dist/cjs/dom.js +1 -1
  72. package/dist/cjs/events.js +1 -1
  73. package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
  74. package/dist/cjs/gridview/baseComponentGridview.js +6 -10
  75. package/dist/cjs/gridview/branchNode.js +13 -17
  76. package/dist/cjs/gridview/gridview.js +8 -8
  77. package/dist/cjs/gridview/gridviewComponent.d.ts +3 -3
  78. package/dist/cjs/gridview/gridviewComponent.js +1 -6
  79. package/dist/cjs/gridview/gridviewPanel.d.ts +1 -1
  80. package/dist/cjs/index.d.ts +11 -4
  81. package/dist/cjs/index.js +14 -1
  82. package/dist/cjs/overlay/overlay.d.ts +43 -1
  83. package/dist/cjs/overlay/overlay.js +82 -36
  84. package/dist/cjs/overlay/overlayRenderContainer.js +3 -4
  85. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
  86. package/dist/cjs/paneview/draggablePaneviewPanel.js +5 -5
  87. package/dist/cjs/paneview/paneviewComponent.d.ts +3 -3
  88. package/dist/cjs/paneview/paneviewComponent.js +7 -11
  89. package/dist/cjs/popoutWindow.js +4 -4
  90. package/dist/cjs/scrollbar.d.ts +1 -1
  91. package/dist/cjs/scrollbar.js +7 -6
  92. package/dist/cjs/splitview/splitview.d.ts +1 -1
  93. package/dist/cjs/splitview/splitview.js +21 -20
  94. package/dist/cjs/splitview/viewItem.js +1 -1
  95. package/dist/dockview-core.js +3548 -1544
  96. package/dist/dockview-core.min.js +2 -2
  97. package/dist/dockview-core.min.js.map +1 -1
  98. package/dist/dockview-core.min.noStyle.js +2 -2
  99. package/dist/dockview-core.min.noStyle.js.map +1 -1
  100. package/dist/dockview-core.noStyle.js +3547 -1543
  101. package/dist/esm/api/component.api.d.ts +42 -21
  102. package/dist/esm/api/component.api.js +63 -18
  103. package/dist/esm/api/dockviewGroupPanelApi.d.ts +23 -8
  104. package/dist/esm/api/dockviewGroupPanelApi.js +20 -1
  105. package/dist/esm/api/dockviewPanelApi.d.ts +4 -3
  106. package/dist/esm/api/dockviewPanelApi.js +7 -0
  107. package/dist/esm/dnd/dropTargetAnchorContainer.js +1 -2
  108. package/dist/esm/dnd/droptarget.d.ts +8 -0
  109. package/dist/esm/dnd/droptarget.js +28 -0
  110. package/dist/esm/dnd/pointer/longPress.js +1 -1
  111. package/dist/esm/dnd/pointer/pointerDragController.js +9 -7
  112. package/dist/esm/dnd/pointer/pointerDragSource.js +4 -2
  113. package/dist/esm/dockview/accessibilityMessages.d.ts +32 -0
  114. package/dist/esm/dockview/accessibilityMessages.js +30 -0
  115. package/dist/esm/dockview/allModules.d.ts +8 -0
  116. package/dist/esm/dockview/allModules.js +22 -0
  117. package/dist/esm/dockview/components/panel/content.d.ts +2 -0
  118. package/dist/esm/dockview/components/panel/content.js +42 -11
  119. package/dist/esm/dockview/components/popupService.js +1 -1
  120. package/dist/esm/dockview/components/tab/tab.js +35 -7
  121. package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +34 -0
  122. package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +65 -0
  123. package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +51 -0
  124. package/dist/esm/dockview/components/titlebar/groupDragSource.js +178 -0
  125. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +2 -1
  126. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +36 -30
  127. package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +27 -5
  128. package/dist/esm/dockview/components/titlebar/tabGroups.js +91 -41
  129. package/dist/esm/dockview/components/titlebar/tabs.d.ts +12 -0
  130. package/dist/esm/dockview/components/titlebar/tabs.js +119 -26
  131. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +4 -0
  132. package/dist/esm/dockview/components/titlebar/tabsContainer.js +8 -2
  133. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +1 -4
  134. package/dist/esm/dockview/components/titlebar/voidContainer.js +34 -146
  135. package/dist/esm/dockview/dndCapabilities.js +3 -3
  136. package/dist/esm/dockview/dockviewComponent.d.ts +304 -49
  137. package/dist/esm/dockview/dockviewComponent.js +1459 -772
  138. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +33 -2
  139. package/dist/esm/dockview/dockviewFloatingGroupPanel.js +35 -3
  140. package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -2
  141. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +36 -14
  142. package/dist/esm/dockview/dockviewGroupPanelModel.js +127 -117
  143. package/dist/esm/dockview/dockviewPanel.d.ts +2 -2
  144. package/dist/esm/dockview/dockviewPanel.js +1 -2
  145. package/dist/esm/dockview/dockviewShell.d.ts +29 -7
  146. package/dist/esm/dockview/dockviewShell.js +89 -37
  147. package/dist/esm/dockview/edgeGroupService.d.ts +38 -0
  148. package/dist/esm/dockview/edgeGroupService.js +63 -0
  149. package/dist/esm/dockview/floatingGroupService.d.ts +37 -0
  150. package/dist/esm/dockview/floatingGroupService.js +150 -0
  151. package/dist/esm/dockview/headerActionsService.d.ts +32 -0
  152. package/dist/esm/dockview/headerActionsService.js +86 -0
  153. package/dist/esm/dockview/liveRegionService.d.ts +53 -0
  154. package/dist/esm/dockview/liveRegionService.js +159 -0
  155. package/dist/esm/dockview/moduleContracts.d.ts +119 -0
  156. package/dist/esm/dockview/moduleContracts.js +1 -0
  157. package/dist/esm/dockview/modules.d.ts +110 -0
  158. package/dist/esm/dockview/modules.js +170 -0
  159. package/dist/esm/dockview/options.d.ts +159 -6
  160. package/dist/esm/dockview/options.js +8 -1
  161. package/dist/esm/dockview/popoutWindowService.d.ts +95 -0
  162. package/dist/esm/dockview/popoutWindowService.js +175 -0
  163. package/dist/esm/dockview/rootDropTargetService.d.ts +35 -0
  164. package/dist/esm/dockview/rootDropTargetService.js +82 -0
  165. package/dist/esm/dockview/strictEventsSequencing.js +6 -6
  166. package/dist/esm/dockview/tabGroup.js +3 -3
  167. package/dist/esm/dockview/tabGroupAccent.js +1 -3
  168. package/dist/esm/dockview/watermarkService.d.ts +30 -0
  169. package/dist/esm/dockview/watermarkService.js +56 -0
  170. package/dist/esm/dom.js +1 -1
  171. package/dist/esm/events.js +1 -1
  172. package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
  173. package/dist/esm/gridview/baseComponentGridview.js +5 -10
  174. package/dist/esm/gridview/branchNode.js +13 -15
  175. package/dist/esm/gridview/gridview.js +8 -8
  176. package/dist/esm/gridview/gridviewComponent.d.ts +3 -3
  177. package/dist/esm/gridview/gridviewComponent.js +1 -6
  178. package/dist/esm/gridview/gridviewPanel.d.ts +1 -1
  179. package/dist/esm/index.d.ts +11 -4
  180. package/dist/esm/index.js +4 -0
  181. package/dist/esm/overlay/overlay.d.ts +43 -1
  182. package/dist/esm/overlay/overlay.js +78 -36
  183. package/dist/esm/overlay/overlayRenderContainer.js +3 -4
  184. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
  185. package/dist/esm/paneview/draggablePaneviewPanel.js +5 -5
  186. package/dist/esm/paneview/paneviewComponent.d.ts +3 -3
  187. package/dist/esm/paneview/paneviewComponent.js +7 -11
  188. package/dist/esm/popoutWindow.js +4 -4
  189. package/dist/esm/scrollbar.d.ts +1 -1
  190. package/dist/esm/scrollbar.js +7 -6
  191. package/dist/esm/splitview/splitview.d.ts +1 -1
  192. package/dist/esm/splitview/splitview.js +21 -20
  193. package/dist/esm/splitview/viewItem.js +1 -1
  194. package/dist/package/main.cjs.js +3550 -1546
  195. package/dist/package/main.cjs.min.js +2 -2
  196. package/dist/package/main.esm.min.mjs +2 -2
  197. package/dist/package/main.esm.mjs +3538 -1545
  198. package/dist/styles/dockview.css +283 -21
  199. package/package.json +10 -1
  200. package/dist/cjs/dockview/contextMenu.d.ts +0 -10
  201. package/dist/cjs/dockview/contextMenu.js +0 -313
  202. package/dist/esm/dockview/contextMenu.d.ts +0 -10
  203. package/dist/esm/dockview/contextMenu.js +0 -228
@@ -39,6 +39,15 @@ export class Overlay extends CompositeDisposable {
39
39
  get isVisible() {
40
40
  return this._isVisible;
41
41
  }
42
+ /**
43
+ * Height of the optional drag-handle header, or 0 when none is present.
44
+ * Used to translate between the overlay's outer box and the content area
45
+ * available to the group beneath the header.
46
+ */
47
+ get headerHeight() {
48
+ var _a, _b;
49
+ return (_b = (_a = this.options.header) === null || _a === void 0 ? void 0 : _a.offsetHeight) !== null && _b !== void 0 ? _b : 0;
50
+ }
42
51
  constructor(options) {
43
52
  super();
44
53
  this.options = options;
@@ -54,6 +63,11 @@ export class Overlay extends CompositeDisposable {
54
63
  this._dragCancelled = false;
55
64
  this.addDisposables(this._onDidChange, this._onDidChangeEnd, this._onDidStartMoving, this._dragMove);
56
65
  this._element.className = 'dv-resize-container';
66
+ // Floating groups are non-modal dialogs over the layout. The contained
67
+ // group(s) carry their own `role="region"` + label, so the dialog
68
+ // itself only needs role + modality here.
69
+ this._element.setAttribute('role', 'dialog');
70
+ this._element.setAttribute('aria-modal', 'false');
57
71
  this._isVisible = true;
58
72
  this.setupResize('top');
59
73
  this.setupResize('bottom');
@@ -63,6 +77,10 @@ export class Overlay extends CompositeDisposable {
63
77
  this.setupResize('topright');
64
78
  this.setupResize('bottomleft');
65
79
  this.setupResize('bottomright');
80
+ if (this.options.header) {
81
+ toggleClass(this._element, 'dv-resize-container-with-titlebar', true);
82
+ this._element.appendChild(this.options.header);
83
+ }
66
84
  this._element.appendChild(this.options.content);
67
85
  this.options.container.appendChild(this._element);
68
86
  // if input bad resize within acceptable boundaries
@@ -140,19 +158,19 @@ export class Overlay extends CompositeDisposable {
140
158
  const element = this._element.getBoundingClientRect();
141
159
  const result = {};
142
160
  if (this.verticalAlignment === 'top') {
143
- result.top = parseFloat(this._element.style.top);
161
+ result.top = Number.parseFloat(this._element.style.top);
144
162
  }
145
163
  else if (this.verticalAlignment === 'bottom') {
146
- result.bottom = parseFloat(this._element.style.bottom);
164
+ result.bottom = Number.parseFloat(this._element.style.bottom);
147
165
  }
148
166
  else {
149
167
  result.top = element.top - container.top;
150
168
  }
151
169
  if (this.horiziontalAlignment === 'left') {
152
- result.left = parseFloat(this._element.style.left);
170
+ result.left = Number.parseFloat(this._element.style.left);
153
171
  }
154
172
  else if (this.horiziontalAlignment === 'right') {
155
- result.right = parseFloat(this._element.style.right);
173
+ result.right = Number.parseFloat(this._element.style.right);
156
174
  }
157
175
  else {
158
176
  result.left = element.left - container.left;
@@ -177,9 +195,14 @@ export class Overlay extends CompositeDisposable {
177
195
  }
178
196
  setupDrag(dragTarget, options = { inDragMode: false }) {
179
197
  const track = (captureTarget, pointerId) => {
198
+ var _a, _b, _c;
180
199
  let offset = null;
181
200
  let hasMoved = false;
182
201
  this._dragCancelled = false;
202
+ // Snapshot once per drag — siblings don't move while this one drags.
203
+ const siblingBoxes = this.options.transformDragPosition
204
+ ? ((_c = (_b = (_a = this.options).getSiblingBoxes) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : [])
205
+ : [];
183
206
  const iframes = disableIframePointEvents();
184
207
  if (captureTarget &&
185
208
  typeof pointerId === 'number' &&
@@ -187,7 +210,7 @@ export class Overlay extends CompositeDisposable {
187
210
  try {
188
211
  captureTarget.setPointerCapture(pointerId);
189
212
  }
190
- catch (_a) {
213
+ catch (_d) {
191
214
  // ignore – non-fatal if the browser refuses capture
192
215
  }
193
216
  }
@@ -211,7 +234,7 @@ export class Overlay extends CompositeDisposable {
211
234
  }
212
235
  }
213
236
  },
214
- }, addDisposableListener(window, 'pointermove', (e) => {
237
+ }, addDisposableListener(globalThis.window, 'pointermove', (e) => {
215
238
  if (this._dragCancelled) {
216
239
  return;
217
240
  }
@@ -220,21 +243,41 @@ export class Overlay extends CompositeDisposable {
220
243
  const y = e.clientY - containerRect.top;
221
244
  toggleClass(this._element, 'dv-resize-container-dragging', true);
222
245
  const overlayRect = this._element.getBoundingClientRect();
223
- if (offset === null) {
224
- offset = {
225
- x: e.clientX - overlayRect.left,
226
- y: e.clientY - overlayRect.top,
227
- };
228
- }
246
+ offset !== null && offset !== void 0 ? offset : (offset = {
247
+ x: e.clientX - overlayRect.left,
248
+ y: e.clientY - overlayRect.top,
249
+ });
229
250
  const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
230
251
  const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));
231
- const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
232
- const bottom = clamp(offset.y -
233
- y +
234
- containerRect.height -
235
- overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
236
- const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
237
- const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
252
+ let proposedTop = y - offset.y;
253
+ let proposedLeft = x - offset.x;
254
+ // Let a consumer nudge the proposed position (snapping,
255
+ // custom bounds) before the container clamp below.
256
+ if (this.options.transformDragPosition) {
257
+ const adjusted = this.options.transformDragPosition({
258
+ proposed: {
259
+ top: proposedTop,
260
+ left: proposedLeft,
261
+ width: overlayRect.width,
262
+ height: overlayRect.height,
263
+ },
264
+ container: {
265
+ width: containerRect.width,
266
+ height: containerRect.height,
267
+ },
268
+ others: siblingBoxes,
269
+ });
270
+ if (adjusted) {
271
+ proposedTop = adjusted.top;
272
+ proposedLeft = adjusted.left;
273
+ }
274
+ }
275
+ const maxTop = Math.max(0, containerRect.height - overlayRect.height + yOffset);
276
+ const maxLeft = Math.max(0, containerRect.width - overlayRect.width + xOffset);
277
+ const top = clamp(proposedTop, -yOffset, maxTop);
278
+ const bottom = clamp(containerRect.height - overlayRect.height - proposedTop, -yOffset, maxTop);
279
+ const left = clamp(proposedLeft, -xOffset, maxLeft);
280
+ const right = clamp(containerRect.width - overlayRect.width - proposedLeft, -xOffset, maxLeft);
238
281
  const bounds = {};
239
282
  // Anchor to top or to bottom depending on which one is closer
240
283
  if (top <= bottom) {
@@ -255,7 +298,7 @@ export class Overlay extends CompositeDisposable {
255
298
  hasMoved = true;
256
299
  this._onDidStartMoving.fire();
257
300
  }
258
- }), addDisposableListener(window, 'pointerup', end), addDisposableListener(window, 'pointercancel', end));
301
+ }), addDisposableListener(globalThis.window, 'pointerup', end), addDisposableListener(globalThis.window, 'pointercancel', end));
259
302
  };
260
303
  this.addDisposables(addDisposableListener(dragTarget, 'pointerdown', (event) => {
261
304
  if (event.defaultPrevented) {
@@ -309,20 +352,18 @@ export class Overlay extends CompositeDisposable {
309
352
  move.dispose();
310
353
  this._onDidChangeEnd.fire();
311
354
  };
312
- move.value = new CompositeDisposable(addDisposableListener(window, 'pointermove', (e) => {
355
+ move.value = new CompositeDisposable(addDisposableListener(globalThis.window, 'pointermove', (e) => {
313
356
  const containerRect = this.options.container.getBoundingClientRect();
314
357
  const overlayRect = this._element.getBoundingClientRect();
315
358
  const y = e.clientY - containerRect.top;
316
359
  const x = e.clientX - containerRect.left;
317
- if (startPosition === null) {
318
- // record the initial dimensions since as all subsequence moves are relative to this
319
- startPosition = {
320
- originalY: y,
321
- originalHeight: overlayRect.height,
322
- originalX: x,
323
- originalWidth: overlayRect.width,
324
- };
325
- }
360
+ // record the initial dimensions since as all subsequence moves are relative to this
361
+ startPosition !== null && startPosition !== void 0 ? startPosition : (startPosition = {
362
+ originalY: y,
363
+ originalHeight: overlayRect.height,
364
+ originalX: x,
365
+ originalWidth: overlayRect.width,
366
+ });
326
367
  let top = undefined;
327
368
  let bottom = undefined;
328
369
  let height = undefined;
@@ -337,7 +378,8 @@ export class Overlay extends CompositeDisposable {
337
378
  ? Math.max(0, containerRect.height -
338
379
  Overlay.MINIMUM_HEIGHT)
339
380
  : Math.max(0, startPosition.originalY +
340
- startPosition.originalHeight -
381
+ startPosition
382
+ .originalHeight -
341
383
  Overlay.MINIMUM_HEIGHT);
342
384
  top = clamp(y, 0, maxTop);
343
385
  height =
@@ -352,8 +394,8 @@ export class Overlay extends CompositeDisposable {
352
394
  startPosition.originalHeight;
353
395
  // When dragging bottom handle, constrain height to container height
354
396
  const minHeight = top < 0 &&
355
- typeof this.options.minimumInViewportHeight ===
356
- 'number'
397
+ typeof this.options
398
+ .minimumInViewportHeight === 'number'
357
399
  ? -top +
358
400
  this.options.minimumInViewportHeight
359
401
  : Overlay.MINIMUM_HEIGHT;
@@ -383,8 +425,8 @@ export class Overlay extends CompositeDisposable {
383
425
  startPosition.originalWidth;
384
426
  // When dragging right handle, constrain width to container width
385
427
  const minWidth = left < 0 &&
386
- typeof this.options.minimumInViewportWidth ===
387
- 'number'
428
+ typeof this.options
429
+ .minimumInViewportWidth === 'number'
388
430
  ? -left +
389
431
  this.options.minimumInViewportWidth
390
432
  : Overlay.MINIMUM_WIDTH;
@@ -453,7 +495,7 @@ export class Overlay extends CompositeDisposable {
453
495
  }
454
496
  }
455
497
  },
456
- }, addDisposableListener(window, 'pointerup', end), addDisposableListener(window, 'pointercancel', end));
498
+ }, addDisposableListener(globalThis.window, 'pointerup', end), addDisposableListener(globalThis.window, 'pointercancel', end));
457
499
  }));
458
500
  }
459
501
  getMinimumWidth(width) {
@@ -9,7 +9,7 @@ class PositionCache {
9
9
  }
10
10
  getPosition(element) {
11
11
  const cached = this.cache.get(element);
12
- if (cached && cached.frameId === this.currentFrameId) {
12
+ if ((cached === null || cached === void 0 ? void 0 : cached.frameId) === this.currentFrameId) {
13
13
  return cached.rect;
14
14
  }
15
15
  this.scheduleFrameUpdate();
@@ -221,11 +221,10 @@ export class OverlayRenderContainer extends CompositeDisposable {
221
221
  correctLayerPosition();
222
222
  }));
223
223
  this.map[panel.api.id].destroy = Disposable.from(() => {
224
- var _a;
225
224
  if (contentElement.parentElement === focusContainer) {
226
- focusContainer.removeChild(contentElement);
225
+ contentElement.remove();
227
226
  }
228
- (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
227
+ focusContainer.remove();
229
228
  });
230
229
  correctLayerPosition();
231
230
  queueMicrotask(() => {
@@ -18,8 +18,8 @@ export declare abstract class DraggablePaneviewPanel extends PaneviewPanel {
18
18
  private pointerTarget;
19
19
  private readonly _onDidDrop;
20
20
  readonly onDidDrop: Event<PaneviewDidDropEvent>;
21
- private readonly _onUnhandledDragOverEvent;
22
- readonly onUnhandledDragOverEvent: Event<PaneviewDndOverlayEvent>;
21
+ private readonly _onUnhandledDragOver;
22
+ readonly onUnhandledDragOver: Event<PaneviewDndOverlayEvent>;
23
23
  readonly accessor: IPaneviewComponent;
24
24
  constructor(options: {
25
25
  accessor: IPaneviewComponent;
@@ -19,10 +19,10 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
19
19
  });
20
20
  this._onDidDrop = new Emitter();
21
21
  this.onDidDrop = this._onDidDrop.event;
22
- this._onUnhandledDragOverEvent = new Emitter();
23
- this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
22
+ this._onUnhandledDragOver = new Emitter();
23
+ this.onUnhandledDragOver = this._onUnhandledDragOver.event;
24
24
  this.accessor = options.accessor;
25
- this.addDisposables(this._onDidDrop, this._onUnhandledDragOverEvent);
25
+ this.addDisposables(this._onDidDrop, this._onUnhandledDragOver);
26
26
  if (!options.disableDnd) {
27
27
  this.initDragFeatures();
28
28
  }
@@ -55,7 +55,7 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
55
55
  }
56
56
  }
57
57
  const firedEvent = new PaneviewUnhandledDragOverEvent(event, position, getPaneData, this);
58
- this._onUnhandledDragOverEvent.fire(firedEvent);
58
+ this._onUnhandledDragOver.fire(firedEvent);
59
59
  return firedEvent.isAccepted;
60
60
  };
61
61
  const dropTargetOptions = {
@@ -75,7 +75,7 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
75
75
  }
76
76
  onDrop(event) {
77
77
  const data = getPaneData();
78
- if (!data || data.viewId !== this.accessor.id) {
78
+ if ((data === null || data === void 0 ? void 0 : data.viewId) !== this.accessor.id) {
79
79
  // if there is no local drag event for this panel
80
80
  // or if the drag event was creating by another Paneview instance
81
81
  this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));
@@ -74,7 +74,7 @@ export interface IPaneviewComponent extends IDisposable {
74
74
  readonly onDidDrop: Event<PaneviewDidDropEvent>;
75
75
  readonly onDidLayoutChange: Event<void>;
76
76
  readonly onDidLayoutFromJSON: Event<void>;
77
- readonly onUnhandledDragOverEvent: Event<PaneviewDndOverlayEvent>;
77
+ readonly onUnhandledDragOver: Event<PaneviewDndOverlayEvent>;
78
78
  addPanel<T extends object = Parameters>(options: AddPaneviewComponentOptions<T>): IPaneviewPanel;
79
79
  layout(width: number, height: number): void;
80
80
  toJSON(): SerializedPaneview;
@@ -103,8 +103,8 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
103
103
  readonly onDidAddView: Event<PaneviewPanel>;
104
104
  private readonly _onDidRemoveView;
105
105
  readonly onDidRemoveView: Event<PaneviewPanel>;
106
- private readonly _onUnhandledDragOverEvent;
107
- readonly onUnhandledDragOverEvent: Event<PaneviewDndOverlayEvent>;
106
+ private readonly _onUnhandledDragOver;
107
+ readonly onUnhandledDragOver: Event<PaneviewDndOverlayEvent>;
108
108
  private readonly _classNames;
109
109
  get id(): string;
110
110
  get panels(): PaneviewPanel[];
@@ -86,11 +86,11 @@ export class PaneviewComponent extends Resizable {
86
86
  this.onDidAddView = this._onDidAddView.event;
87
87
  this._onDidRemoveView = new Emitter();
88
88
  this.onDidRemoveView = this._onDidRemoveView.event;
89
- this._onUnhandledDragOverEvent = new Emitter();
90
- this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
89
+ this._onUnhandledDragOver = new Emitter();
90
+ this.onUnhandledDragOver = this._onUnhandledDragOver.event;
91
91
  this.element.style.height = '100%';
92
92
  this.element.style.width = '100%';
93
- this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this._onUnhandledDragOverEvent);
93
+ this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this._onUnhandledDragOver);
94
94
  this._classNames = new Classnames(this.element);
95
95
  this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
96
96
  // the container is owned by the third-party, do not modify/delete it
@@ -132,9 +132,7 @@ export class PaneviewComponent extends Resizable {
132
132
  name: options.headerComponent,
133
133
  });
134
134
  }
135
- if (!header) {
136
- header = new DefaultHeader();
137
- }
135
+ header !== null && header !== void 0 ? header : (header = new DefaultHeader());
138
136
  const view = new PaneFramework({
139
137
  id: options.id,
140
138
  component: options.component,
@@ -233,9 +231,7 @@ export class PaneviewComponent extends Resizable {
233
231
  name: data.headerComponent,
234
232
  });
235
233
  }
236
- if (!header) {
237
- header = new DefaultHeader();
238
- }
234
+ header !== null && header !== void 0 ? header : (header = new DefaultHeader());
239
235
  const panel = new PaneFramework({
240
236
  id: data.id,
241
237
  component: data.component,
@@ -286,8 +282,8 @@ export class PaneviewComponent extends Resizable {
286
282
  doAddPanel(panel) {
287
283
  const disposable = new CompositeDisposable(panel.onDidDrop((event) => {
288
284
  this._onDidDrop.fire(event);
289
- }), panel.onUnhandledDragOverEvent((event) => {
290
- this._onUnhandledDragOverEvent.fire(event);
285
+ }), panel.onUnhandledDragOver((event) => {
286
+ this._onUnhandledDragOver.fire(event);
291
287
  }));
292
288
  this._viewDisposables.set(panel.id, disposable);
293
289
  }
@@ -19,13 +19,13 @@ import { CompositeDisposable, Disposable } from './lifecycle';
19
19
  export function assertSameOriginPopoutUrl(url) {
20
20
  let resolved;
21
21
  try {
22
- resolved = new URL(url, window.location.href);
22
+ resolved = new URL(url, globalThis.location.href);
23
23
  }
24
24
  catch (_a) {
25
25
  throw new Error(`dockview: invalid popout URL: ${url}`);
26
26
  }
27
27
  const protocolOk = resolved.protocol === 'http:' || resolved.protocol === 'https:';
28
- if (!protocolOk || resolved.origin !== window.location.origin) {
28
+ if (!protocolOk || resolved.origin !== globalThis.location.origin) {
29
29
  throw new Error(`dockview: popout URL must be same-origin http(s); got: ${url}`);
30
30
  }
31
31
  }
@@ -103,7 +103,7 @@ export class PopoutWindow extends CompositeDisposable {
103
103
  this._window = { value: externalWindow, disposable };
104
104
  disposable.addDisposables(Disposable.from(() => {
105
105
  externalWindow.close();
106
- }), addDisposableListener(window, 'beforeunload', () => {
106
+ }), addDisposableListener(globalThis.window, 'beforeunload', () => {
107
107
  /**
108
108
  * before the main window closes we should close this popup too
109
109
  * to be good citizens
@@ -133,7 +133,7 @@ export class PopoutWindow extends CompositeDisposable {
133
133
  const externalDocument = externalWindow.document;
134
134
  externalDocument.title = document.title;
135
135
  externalDocument.body.appendChild(container);
136
- addStyles(externalDocument, window.document.styleSheets, {
136
+ addStyles(externalDocument, globalThis.document.styleSheets, {
137
137
  nonce: this.options.nonce,
138
138
  });
139
139
  /**
@@ -6,7 +6,7 @@ export declare class Scrollbar extends CompositeDisposable {
6
6
  private _scrollOffset;
7
7
  private _animationTimer;
8
8
  private _orientation;
9
- static MouseWheelSpeed: number;
9
+ static readonly MouseWheelSpeed = 1;
10
10
  get element(): HTMLElement;
11
11
  get orientation(): 'horizontal' | 'vertical';
12
12
  set orientation(value: 'horizontal' | 'vertical');
@@ -58,15 +58,16 @@ export class Scrollbar extends CompositeDisposable {
58
58
  this._scrollOffset = originalScrollOffset + delta / p;
59
59
  this.calculateScrollbarStyles();
60
60
  };
61
+ const doc = this.element.ownerDocument;
61
62
  const onEnd = () => {
62
63
  toggleClass(this.element, 'dv-scrollable-scrolling', false);
63
- document.removeEventListener('pointermove', onPointerMove);
64
- document.removeEventListener('pointerup', onEnd);
65
- document.removeEventListener('pointercancel', onEnd);
64
+ doc.removeEventListener('pointermove', onPointerMove);
65
+ doc.removeEventListener('pointerup', onEnd);
66
+ doc.removeEventListener('pointercancel', onEnd);
66
67
  };
67
- document.addEventListener('pointermove', onPointerMove);
68
- document.addEventListener('pointerup', onEnd);
69
- document.addEventListener('pointercancel', onEnd);
68
+ doc.addEventListener('pointermove', onPointerMove);
69
+ doc.addEventListener('pointerup', onEnd);
70
+ doc.addEventListener('pointercancel', onEnd);
70
71
  }), addDisposableListener(this.element, 'scroll', () => {
71
72
  this.calculateScrollbarStyles();
72
73
  }), addDisposableListener(this.scrollableElement, 'scroll', () => {
@@ -137,7 +137,7 @@ export declare class Splitview {
137
137
  private findFirstSnapIndex;
138
138
  private updateSashEnablement;
139
139
  private updateSash;
140
- private resize;
140
+ private readonly resize;
141
141
  private createViewContainer;
142
142
  private createSashContainer;
143
143
  private createContainer;
@@ -342,7 +342,7 @@ export class Splitview {
342
342
  const viewItem = new ViewItem(container, view, viewSize, {
343
343
  dispose: () => {
344
344
  disposable.dispose();
345
- this.viewContainer.removeChild(container);
345
+ container.remove();
346
346
  },
347
347
  });
348
348
  if (index === this.viewItems.length) {
@@ -418,29 +418,30 @@ export class Splitview {
418
418
  this.distributeEmptySpace();
419
419
  this.layoutViews();
420
420
  };
421
+ const doc = sash.ownerDocument;
421
422
  const end = () => {
422
423
  for (const item of this.viewItems) {
423
424
  item.enabled = true;
424
425
  }
425
426
  iframes.release();
426
427
  this.saveProportions();
427
- document.removeEventListener('pointermove', onPointerMove);
428
- document.removeEventListener('pointerup', end);
429
- document.removeEventListener('pointercancel', end);
430
- document.removeEventListener('contextmenu', end);
428
+ doc.removeEventListener('pointermove', onPointerMove);
429
+ doc.removeEventListener('pointerup', end);
430
+ doc.removeEventListener('pointercancel', end);
431
+ doc.removeEventListener('contextmenu', end);
431
432
  this._onDidSashEnd.fire(undefined);
432
433
  };
433
- document.addEventListener('pointermove', onPointerMove);
434
- document.addEventListener('pointerup', end);
435
- document.addEventListener('pointercancel', end);
436
- document.addEventListener('contextmenu', end);
434
+ doc.addEventListener('pointermove', onPointerMove);
435
+ doc.addEventListener('pointerup', end);
436
+ doc.addEventListener('pointercancel', end);
437
+ doc.addEventListener('contextmenu', end);
437
438
  };
438
439
  sash.addEventListener('pointerdown', onPointerStart);
439
440
  const sashItem = {
440
441
  container: sash,
441
442
  disposable: () => {
442
443
  sash.removeEventListener('pointerdown', onPointerStart);
443
- this.sashContainer.removeChild(sash);
444
+ sash.remove();
444
445
  },
445
446
  };
446
447
  this.sashContainer.appendChild(sash);
@@ -487,7 +488,7 @@ export class Splitview {
487
488
  if (!skipLayout) {
488
489
  this.relayout();
489
490
  }
490
- if (sizing && sizing.type === 'distribute') {
491
+ if ((sizing === null || sizing === void 0 ? void 0 : sizing.type) === 'distribute') {
491
492
  this.distributeViewSizes();
492
493
  }
493
494
  this._onDidRemoveView.fire(viewItem.view);
@@ -502,7 +503,7 @@ export class Splitview {
502
503
  }
503
504
  moveView(from, to) {
504
505
  const cachedVisibleSize = this.getViewCachedVisibleSize(from);
505
- const sizing = typeof cachedVisibleSize === 'undefined'
506
+ const sizing = cachedVisibleSize === undefined
506
507
  ? this.getViewSize(from)
507
508
  : Sizing.Invisible(cachedVisibleSize);
508
509
  const view = this.removeView(from, undefined, true);
@@ -512,13 +513,7 @@ export class Splitview {
512
513
  const previousSize = Math.max(this.size, this._contentSize);
513
514
  this.size = size;
514
515
  this.orthogonalSize = orthogonalSize;
515
- if (!this.proportions) {
516
- const indexes = range(this.viewItems.length);
517
- const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
518
- const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
519
- this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
520
- }
521
- else {
516
+ if (this.proportions) {
522
517
  let total = 0;
523
518
  for (let i = 0; i < this.viewItems.length; i++) {
524
519
  const item = this.viewItems[i];
@@ -538,6 +533,12 @@ export class Splitview {
538
533
  }
539
534
  }
540
535
  }
536
+ else {
537
+ const indexes = range(this.viewItems.length);
538
+ const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);
539
+ const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);
540
+ this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
541
+ }
541
542
  this.distributeEmptySpace();
542
543
  this.layoutViews();
543
544
  }
@@ -757,7 +758,7 @@ export class Splitview {
757
758
  this._onDidRemoveView.dispose();
758
759
  for (let i = 0; i < this.element.children.length; i++) {
759
760
  if (this.element.children.item(i) === this.element) {
760
- this.element.removeChild(this.element);
761
+ this.element.remove();
761
762
  break;
762
763
  }
763
764
  }
@@ -10,7 +10,7 @@ export class ViewItem {
10
10
  return this._cachedVisibleSize;
11
11
  }
12
12
  get visible() {
13
- return typeof this._cachedVisibleSize === 'undefined';
13
+ return this._cachedVisibleSize === undefined;
14
14
  }
15
15
  get minimumSize() {
16
16
  return this.visible ? this.view.minimumSize : 0;