dockview-core 1.15.3 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/cjs/api/component.api.d.ts +30 -6
  2. package/dist/cjs/api/component.api.js +42 -6
  3. package/dist/cjs/api/dockviewPanelApi.d.ts +1 -1
  4. package/dist/cjs/api/entryPoints.d.ts +9 -0
  5. package/dist/cjs/api/entryPoints.js +28 -0
  6. package/dist/cjs/dnd/abstractDragHandler.js +2 -65
  7. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
  8. package/dist/cjs/dockview/dockviewComponent.d.ts +4 -2
  9. package/dist/cjs/dockview/dockviewComponent.js +59 -17
  10. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
  11. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +1 -1
  12. package/dist/cjs/dockview/dockviewGroupPanelModel.js +1 -1
  13. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  14. package/dist/cjs/dockview/dockviewPanel.js +1 -1
  15. package/dist/cjs/dockview/options.d.ts +2 -2
  16. package/dist/cjs/dockview/options.js +1 -0
  17. package/dist/cjs/dockview/types.d.ts +1 -1
  18. package/dist/cjs/dom.d.ts +3 -0
  19. package/dist/cjs/dom.js +66 -1
  20. package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -2
  21. package/dist/cjs/gridview/baseComponentGridview.js +3 -0
  22. package/dist/cjs/gridview/gridviewComponent.d.ts +1 -1
  23. package/dist/cjs/gridview/gridviewComponent.js +3 -2
  24. package/dist/cjs/gridview/options.d.ts +1 -1
  25. package/dist/cjs/index.d.ts +2 -1
  26. package/dist/cjs/index.js +6 -1
  27. package/dist/cjs/{dnd → overlay}/overlay.d.ts +3 -0
  28. package/dist/cjs/{dnd → overlay}/overlay.js +41 -82
  29. package/dist/cjs/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
  30. package/dist/cjs/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +41 -6
  31. package/dist/cjs/paneview/options.d.ts +1 -1
  32. package/dist/cjs/paneview/paneviewComponent.d.ts +1 -1
  33. package/dist/cjs/paneview/paneviewComponent.js +5 -2
  34. package/dist/cjs/splitview/options.d.ts +1 -1
  35. package/dist/cjs/splitview/splitview.js +64 -71
  36. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  37. package/dist/cjs/splitview/splitviewComponent.js +5 -2
  38. package/dist/dockview-core.amd.js +258 -98
  39. package/dist/dockview-core.amd.js.map +1 -1
  40. package/dist/dockview-core.amd.min.js +2 -2
  41. package/dist/dockview-core.amd.min.js.map +1 -1
  42. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  43. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  44. package/dist/dockview-core.amd.noStyle.js +257 -97
  45. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  46. package/dist/dockview-core.cjs.js +258 -98
  47. package/dist/dockview-core.cjs.js.map +1 -1
  48. package/dist/dockview-core.esm.js +255 -99
  49. package/dist/dockview-core.esm.js.map +1 -1
  50. package/dist/dockview-core.esm.min.js +2 -2
  51. package/dist/dockview-core.esm.min.js.map +1 -1
  52. package/dist/dockview-core.js +258 -98
  53. package/dist/dockview-core.js.map +1 -1
  54. package/dist/dockview-core.min.js +2 -2
  55. package/dist/dockview-core.min.js.map +1 -1
  56. package/dist/dockview-core.min.noStyle.js +2 -2
  57. package/dist/dockview-core.min.noStyle.js.map +1 -1
  58. package/dist/dockview-core.noStyle.js +257 -97
  59. package/dist/dockview-core.noStyle.js.map +1 -1
  60. package/dist/esm/api/component.api.d.ts +30 -6
  61. package/dist/esm/api/component.api.js +42 -6
  62. package/dist/esm/api/dockviewPanelApi.d.ts +1 -1
  63. package/dist/esm/api/entryPoints.d.ts +9 -0
  64. package/dist/esm/api/entryPoints.js +21 -0
  65. package/dist/esm/dnd/abstractDragHandler.js +3 -11
  66. package/dist/esm/dockview/components/panel/content.js +1 -1
  67. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
  68. package/dist/esm/dockview/dockviewComponent.d.ts +4 -2
  69. package/dist/esm/dockview/dockviewComponent.js +47 -13
  70. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
  71. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +1 -1
  72. package/dist/esm/dockview/dockviewGroupPanelModel.js +1 -1
  73. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  74. package/dist/esm/dockview/dockviewPanel.js +1 -1
  75. package/dist/esm/dockview/options.d.ts +2 -2
  76. package/dist/esm/dockview/options.js +1 -0
  77. package/dist/esm/dockview/types.d.ts +1 -1
  78. package/dist/esm/dom.d.ts +3 -0
  79. package/dist/esm/dom.js +20 -0
  80. package/dist/esm/gridview/baseComponentGridview.d.ts +3 -2
  81. package/dist/esm/gridview/baseComponentGridview.js +3 -0
  82. package/dist/esm/gridview/gridviewComponent.d.ts +1 -1
  83. package/dist/esm/gridview/gridviewComponent.js +3 -2
  84. package/dist/esm/gridview/options.d.ts +1 -1
  85. package/dist/esm/index.d.ts +2 -1
  86. package/dist/esm/index.js +1 -0
  87. package/dist/esm/{dnd → overlay}/overlay.d.ts +3 -0
  88. package/dist/esm/{dnd → overlay}/overlay.js +36 -32
  89. package/dist/esm/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
  90. package/dist/esm/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +39 -6
  91. package/dist/esm/paneview/options.d.ts +1 -1
  92. package/dist/esm/paneview/paneviewComponent.d.ts +1 -1
  93. package/dist/esm/paneview/paneviewComponent.js +5 -2
  94. package/dist/esm/splitview/options.d.ts +1 -1
  95. package/dist/esm/splitview/splitview.js +37 -27
  96. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  97. package/dist/esm/splitview/splitviewComponent.js +5 -2
  98. package/dist/styles/dockview.css +78 -82
  99. package/package.json +1 -1
package/dist/cjs/dom.js CHANGED
@@ -25,8 +25,33 @@ var __values = (this && this.__values) || function(o) {
25
25
  };
26
26
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
27
27
  };
28
+ var __read = (this && this.__read) || function (o, n) {
29
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
30
+ if (!m) return o;
31
+ var i = m.call(o), r, ar = [], e;
32
+ try {
33
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34
+ }
35
+ catch (error) { e = { error: error }; }
36
+ finally {
37
+ try {
38
+ if (r && !r.done && (m = i["return"])) m.call(i);
39
+ }
40
+ finally { if (e) throw e.error; }
41
+ }
42
+ return ar;
43
+ };
44
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
45
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
46
+ if (ar || !(i in from)) {
47
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
48
+ ar[i] = from[i];
49
+ }
50
+ }
51
+ return to.concat(ar || Array.prototype.slice.call(from));
52
+ };
28
53
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.addTestId = exports.isInDocument = exports.getDomNodePagePosition = exports.addStyles = exports.quasiDefaultPrevented = exports.quasiPreventDefault = exports.trackFocus = exports.getElementsByTagName = exports.isAncestor = exports.toggleClass = exports.addClasses = exports.removeClasses = exports.watchElementResize = void 0;
54
+ exports.disableIframePointEvents = exports.addTestId = exports.isInDocument = exports.getDomNodePagePosition = exports.addStyles = exports.quasiDefaultPrevented = exports.quasiPreventDefault = exports.trackFocus = exports.getElementsByTagName = exports.isAncestor = exports.toggleClass = exports.addClasses = exports.removeClasses = exports.watchElementResize = void 0;
30
55
  var events_1 = require("./events");
31
56
  var lifecycle_1 = require("./lifecycle");
32
57
  function watchElementResize(element, cb) {
@@ -278,3 +303,43 @@ function addTestId(element, id) {
278
303
  element.setAttribute('data-testid', id);
279
304
  }
280
305
  exports.addTestId = addTestId;
306
+ function disableIframePointEvents() {
307
+ var e_5, _a;
308
+ var iframes = __spreadArray(__spreadArray([], __read(getElementsByTagName('iframe')), false), __read(getElementsByTagName('webview')), false);
309
+ var original = new WeakMap(); // don't hold onto HTMLElement references longer than required
310
+ try {
311
+ for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
312
+ var iframe = iframes_1_1.value;
313
+ original.set(iframe, iframe.style.pointerEvents);
314
+ iframe.style.pointerEvents = 'none';
315
+ }
316
+ }
317
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
318
+ finally {
319
+ try {
320
+ if (iframes_1_1 && !iframes_1_1.done && (_a = iframes_1.return)) _a.call(iframes_1);
321
+ }
322
+ finally { if (e_5) throw e_5.error; }
323
+ }
324
+ return {
325
+ release: function () {
326
+ var e_6, _a;
327
+ var _b;
328
+ try {
329
+ for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
330
+ var iframe = iframes_2_1.value;
331
+ iframe.style.pointerEvents = (_b = original.get(iframe)) !== null && _b !== void 0 ? _b : 'auto';
332
+ }
333
+ }
334
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
335
+ finally {
336
+ try {
337
+ if (iframes_2_1 && !iframes_2_1.done && (_a = iframes_2.return)) _a.call(iframes_2);
338
+ }
339
+ finally { if (e_6) throw e_6.error; }
340
+ }
341
+ iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
342
+ },
343
+ };
344
+ }
345
+ exports.disableIframePointEvents = disableIframePointEvents;
@@ -1,7 +1,7 @@
1
1
  import { Event, AsapEvent } from '../events';
2
2
  import { Gridview, IGridView } from './gridview';
3
3
  import { Position } from '../dnd/droptarget';
4
- import { IValueDisposable } from '../lifecycle';
4
+ import { IDisposable, IValueDisposable } from '../lifecycle';
5
5
  import { ISplitviewStyles, Orientation } from '../splitview/splitview';
6
6
  import { IPanel } from '../panel/types';
7
7
  import { MovementOptions2 } from '../dockview/options';
@@ -16,12 +16,13 @@ export interface BaseGridOptions {
16
16
  readonly disableAutoResizing?: boolean;
17
17
  readonly locked?: boolean;
18
18
  readonly margin?: number;
19
+ readonly className?: string;
19
20
  }
20
21
  export interface IGridPanelView extends IGridView, IPanel {
21
22
  setActive(isActive: boolean): void;
22
23
  readonly isActive: boolean;
23
24
  }
24
- export interface IBaseGrid<T extends IGridPanelView> {
25
+ export interface IBaseGrid<T extends IGridPanelView> extends IDisposable {
25
26
  readonly element: HTMLElement;
26
27
  readonly id: string;
27
28
  readonly width: number;
@@ -68,6 +68,9 @@ var BaseGrid = /** @class */ (function (_super) {
68
68
  _this.onDidViewVisibilityChangeMicroTaskQueue = _this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;
69
69
  _this.element.style.height = '100%';
70
70
  _this.element.style.width = '100%';
71
+ if (typeof options.className === 'string') {
72
+ _this.element.classList.add(options.className);
73
+ }
71
74
  options.parentElement.appendChild(_this.element);
72
75
  _this.gridview = new gridview_1.Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
73
76
  _this.gridview.locked = !!options.locked;
@@ -62,7 +62,7 @@ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implement
62
62
  get options(): GridviewComponentOptions;
63
63
  get deserializer(): IPanelDeserializer | undefined;
64
64
  set deserializer(value: IPanelDeserializer | undefined);
65
- constructor(options: GridviewComponentOptions);
65
+ constructor(parentElement: HTMLElement, options: GridviewComponentOptions);
66
66
  updateOptions(options: Partial<GridviewComponentUpdateOptions>): void;
67
67
  removePanel(panel: GridviewPanel): void;
68
68
  /**
@@ -62,13 +62,14 @@ var componentFactory_1 = require("../panel/componentFactory");
62
62
  var events_1 = require("../events");
63
63
  var GridviewComponent = /** @class */ (function (_super) {
64
64
  __extends(GridviewComponent, _super);
65
- function GridviewComponent(options) {
65
+ function GridviewComponent(parentElement, options) {
66
66
  var _this = _super.call(this, {
67
- parentElement: options.parentElement,
67
+ parentElement: parentElement,
68
68
  proportionalLayout: options.proportionalLayout,
69
69
  orientation: options.orientation,
70
70
  styles: options.styles,
71
71
  disableAutoResizing: options.disableAutoResizing,
72
+ className: options.className,
72
73
  }) || this;
73
74
  _this._onDidLayoutfromJSON = new events_1.Emitter();
74
75
  _this.onDidLayoutFromJSON = _this._onDidLayoutfromJSON.event;
@@ -13,5 +13,5 @@ export interface GridviewComponentOptions {
13
13
  };
14
14
  frameworkComponentFactory?: FrameworkFactory<GridviewPanel>;
15
15
  styles?: ISplitviewStyles;
16
- parentElement: HTMLElement;
16
+ className?: string;
17
17
  }
@@ -35,7 +35,7 @@ export * from './gridview/gridviewPanel';
35
35
  export * from './splitview/splitviewPanel';
36
36
  export * from './paneview/paneviewPanel';
37
37
  export * from './dockview/types';
38
- export { DockviewPanelRenderer } from './overlayRenderContainer';
38
+ export { DockviewPanelRenderer } from './overlay/overlayRenderContainer';
39
39
  export { Position, positionToDirection, directionToPosition, MeasuredValue, DroptargetOverlayModel, } from './dnd/droptarget';
40
40
  export { FocusEvent, PanelDimensionChangeEvent, VisibilityEvent, ActiveEvent, PanelApi, } from './api/panelApi';
41
41
  export { SizeEvent, GridviewPanelApi, GridConstraintChangeEvent, } from './api/gridviewPanelApi';
@@ -44,3 +44,4 @@ export { PanelSizeEvent, PanelConstraintChangeEvent, SplitviewPanelApi, } from '
44
44
  export { ExpansionEvent, PaneviewPanelApi } from './api/paneviewPanelApi';
45
45
  export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, } from './api/dockviewGroupPanelApi';
46
46
  export { CommonApi, SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
47
+ export { createDockview, createGridview, createPaneview, createSplitview, } from './api/entryPoints';
package/dist/cjs/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = void 0;
17
+ exports.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = void 0;
18
18
  __exportStar(require("./dnd/dataTransfer"), exports);
19
19
  /**
20
20
  * Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need
@@ -60,3 +60,8 @@ Object.defineProperty(exports, "SplitviewApi", { enumerable: true, get: function
60
60
  Object.defineProperty(exports, "PaneviewApi", { enumerable: true, get: function () { return component_api_1.PaneviewApi; } });
61
61
  Object.defineProperty(exports, "GridviewApi", { enumerable: true, get: function () { return component_api_1.GridviewApi; } });
62
62
  Object.defineProperty(exports, "DockviewApi", { enumerable: true, get: function () { return component_api_1.DockviewApi; } });
63
+ var entryPoints_1 = require("./api/entryPoints");
64
+ Object.defineProperty(exports, "createDockview", { enumerable: true, get: function () { return entryPoints_1.createDockview; } });
65
+ Object.defineProperty(exports, "createGridview", { enumerable: true, get: function () { return entryPoints_1.createGridview; } });
66
+ Object.defineProperty(exports, "createPaneview", { enumerable: true, get: function () { return entryPoints_1.createPaneview; } });
67
+ Object.defineProperty(exports, "createSplitview", { enumerable: true, get: function () { return entryPoints_1.createSplitview; } });
@@ -1,6 +1,7 @@
1
1
  import { Event } from '../events';
2
2
  import { CompositeDisposable } from '../lifecycle';
3
3
  import { AnchoredBox } from '../types';
4
+ export declare const DEFAULT_OVERLAY_Z_INDEX = 999;
4
5
  export declare class Overlay extends CompositeDisposable {
5
6
  private readonly options;
6
7
  private _element;
@@ -14,12 +15,14 @@ export declare class Overlay extends CompositeDisposable {
14
15
  private horiziontalAlignment;
15
16
  set minimumInViewportWidth(value: number | undefined);
16
17
  set minimumInViewportHeight(value: number | undefined);
18
+ get element(): HTMLElement;
17
19
  constructor(options: AnchoredBox & {
18
20
  container: HTMLElement;
19
21
  content: HTMLElement;
20
22
  minimumInViewportWidth?: number;
21
23
  minimumInViewportHeight?: number;
22
24
  });
25
+ bringToFront(): void;
23
26
  setBounds(bounds?: Partial<AnchoredBox>): void;
24
27
  toJSON(): AnchoredBox;
25
28
  setupDrag(dragTarget: HTMLElement, options?: {
@@ -50,34 +50,36 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
50
  }
51
51
  return to.concat(ar || Array.prototype.slice.call(from));
52
52
  };
53
- var __values = (this && this.__values) || function(o) {
54
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
55
- if (m) return m.call(o);
56
- if (o && typeof o.length === "number") return {
57
- next: function () {
58
- if (o && i >= o.length) o = void 0;
59
- return { value: o && o[i++], done: !o };
60
- }
61
- };
62
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
63
- };
64
53
  Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.Overlay = void 0;
54
+ exports.Overlay = exports.DEFAULT_OVERLAY_Z_INDEX = void 0;
66
55
  var dom_1 = require("../dom");
67
56
  var events_1 = require("../events");
68
57
  var lifecycle_1 = require("../lifecycle");
69
58
  var math_1 = require("../math");
70
- var bringElementToFront = (function () {
71
- var previous = null;
72
- function pushToTop(element) {
73
- if (previous !== element && previous !== null) {
74
- (0, dom_1.toggleClass)(previous, 'dv-bring-to-front', false);
75
- }
76
- (0, dom_1.toggleClass)(element, 'dv-bring-to-front', true);
77
- previous = element;
59
+ exports.DEFAULT_OVERLAY_Z_INDEX = 999;
60
+ var AriaLevelTracker = /** @class */ (function () {
61
+ function AriaLevelTracker() {
62
+ this._orderedList = [];
78
63
  }
79
- return pushToTop;
80
- })();
64
+ AriaLevelTracker.prototype.push = function (element) {
65
+ this._orderedList = __spreadArray(__spreadArray([], __read(this._orderedList.filter(function (item) { return item !== element; })), false), [
66
+ element,
67
+ ], false);
68
+ this.update();
69
+ };
70
+ AriaLevelTracker.prototype.destroy = function (element) {
71
+ this._orderedList = this._orderedList.filter(function (item) { return item !== element; });
72
+ this.update();
73
+ };
74
+ AriaLevelTracker.prototype.update = function () {
75
+ for (var i = 0; i < this._orderedList.length; i++) {
76
+ this._orderedList[i].setAttribute('aria-level', "".concat(i));
77
+ this._orderedList[i].style.zIndex = "".concat(exports.DEFAULT_OVERLAY_Z_INDEX + i * 2);
78
+ }
79
+ };
80
+ return AriaLevelTracker;
81
+ }());
82
+ var arialLevelTracker = new AriaLevelTracker();
81
83
  var Overlay = /** @class */ (function (_super) {
82
84
  __extends(Overlay, _super);
83
85
  function Overlay(options) {
@@ -102,6 +104,7 @@ var Overlay = /** @class */ (function (_super) {
102
104
  _this.options.container.appendChild(_this._element);
103
105
  // if input bad resize within acceptable boundaries
104
106
  _this.setBounds(__assign(__assign(__assign(__assign({ height: _this.options.height, width: _this.options.width }, ('top' in _this.options && { top: _this.options.top })), ('bottom' in _this.options && { bottom: _this.options.bottom })), ('left' in _this.options && { left: _this.options.left })), ('right' in _this.options && { right: _this.options.right })));
107
+ arialLevelTracker.push(_this._element);
105
108
  return _this;
106
109
  }
107
110
  Object.defineProperty(Overlay.prototype, "minimumInViewportWidth", {
@@ -118,6 +121,16 @@ var Overlay = /** @class */ (function (_super) {
118
121
  enumerable: false,
119
122
  configurable: true
120
123
  });
124
+ Object.defineProperty(Overlay.prototype, "element", {
125
+ get: function () {
126
+ return this._element;
127
+ },
128
+ enumerable: false,
129
+ configurable: true
130
+ });
131
+ Overlay.prototype.bringToFront = function () {
132
+ arialLevelTracker.push(this._element);
133
+ };
121
134
  Overlay.prototype.setBounds = function (bounds) {
122
135
  if (bounds === void 0) { bounds = {}; }
123
136
  if (typeof bounds.height === 'number') {
@@ -206,38 +219,11 @@ var Overlay = /** @class */ (function (_super) {
206
219
  if (options === void 0) { options = { inDragMode: false }; }
207
220
  var move = new lifecycle_1.MutableDisposable();
208
221
  var track = function () {
209
- var e_1, _a;
210
222
  var offset = null;
211
- var iframes = __spreadArray(__spreadArray([], __read((0, dom_1.getElementsByTagName)('iframe')), false), __read((0, dom_1.getElementsByTagName)('webview')), false);
212
- try {
213
- for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
214
- var iframe = iframes_1_1.value;
215
- iframe.style.pointerEvents = 'none';
216
- }
217
- }
218
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
219
- finally {
220
- try {
221
- if (iframes_1_1 && !iframes_1_1.done && (_a = iframes_1.return)) _a.call(iframes_1);
222
- }
223
- finally { if (e_1) throw e_1.error; }
224
- }
223
+ var iframes = (0, dom_1.disableIframePointEvents)();
225
224
  move.value = new lifecycle_1.CompositeDisposable({
226
225
  dispose: function () {
227
- var e_2, _a;
228
- try {
229
- for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
230
- var iframe = iframes_2_1.value;
231
- iframe.style.pointerEvents = 'auto';
232
- }
233
- }
234
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
235
- finally {
236
- try {
237
- if (iframes_2_1 && !iframes_2_1.done && (_a = iframes_2.return)) _a.call(iframes_2);
238
- }
239
- finally { if (e_2) throw e_2.error; }
240
- }
226
+ iframes.release();
241
227
  },
242
228
  }, (0, events_1.addDisposableWindowListener)(window, 'mousemove', function (e) {
243
229
  var containerRect = _this.options.container.getBoundingClientRect();
@@ -306,9 +292,8 @@ var Overlay = /** @class */ (function (_super) {
306
292
  track();
307
293
  }
308
294
  }), (0, events_1.addDisposableListener)(this.options.content, 'mousedown', function () {
309
- bringElementToFront(_this._element);
295
+ arialLevelTracker.push(_this._element);
310
296
  }, true));
311
- bringElementToFront(this._element);
312
297
  if (options.inDragMode) {
313
298
  track();
314
299
  }
@@ -320,23 +305,9 @@ var Overlay = /** @class */ (function (_super) {
320
305
  this._element.appendChild(resizeHandleElement);
321
306
  var move = new lifecycle_1.MutableDisposable();
322
307
  this.addDisposables(move, (0, events_1.addDisposableListener)(resizeHandleElement, 'mousedown', function (e) {
323
- var e_3, _a;
324
308
  e.preventDefault();
325
309
  var startPosition = null;
326
- var iframes = __spreadArray(__spreadArray([], __read((0, dom_1.getElementsByTagName)('iframe')), false), __read((0, dom_1.getElementsByTagName)('webview')), false);
327
- try {
328
- for (var iframes_3 = __values(iframes), iframes_3_1 = iframes_3.next(); !iframes_3_1.done; iframes_3_1 = iframes_3.next()) {
329
- var iframe = iframes_3_1.value;
330
- iframe.style.pointerEvents = 'none';
331
- }
332
- }
333
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
334
- finally {
335
- try {
336
- if (iframes_3_1 && !iframes_3_1.done && (_a = iframes_3.return)) _a.call(iframes_3);
337
- }
338
- finally { if (e_3) throw e_3.error; }
339
- }
310
+ var iframes = (0, dom_1.disableIframePointEvents)();
340
311
  move.value = new lifecycle_1.CompositeDisposable((0, events_1.addDisposableWindowListener)(window, 'mousemove', function (e) {
341
312
  var containerRect = _this.options.container.getBoundingClientRect();
342
313
  var overlayRect = _this._element.getBoundingClientRect();
@@ -459,20 +430,7 @@ var Overlay = /** @class */ (function (_super) {
459
430
  _this.setBounds(bounds);
460
431
  }), {
461
432
  dispose: function () {
462
- var e_4, _a;
463
- try {
464
- for (var iframes_4 = __values(iframes), iframes_4_1 = iframes_4.next(); !iframes_4_1.done; iframes_4_1 = iframes_4.next()) {
465
- var iframe = iframes_4_1.value;
466
- iframe.style.pointerEvents = 'auto';
467
- }
468
- }
469
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
470
- finally {
471
- try {
472
- if (iframes_4_1 && !iframes_4_1.done && (_a = iframes_4.return)) _a.call(iframes_4);
473
- }
474
- finally { if (e_4) throw e_4.error; }
475
- }
433
+ iframes.release();
476
434
  },
477
435
  }, (0, events_1.addDisposableWindowListener)(window, 'mouseup', function () {
478
436
  move.dispose();
@@ -493,6 +451,7 @@ var Overlay = /** @class */ (function (_super) {
493
451
  return 0;
494
452
  };
495
453
  Overlay.prototype.dispose = function () {
454
+ arialLevelTracker.destroy(this._element);
496
455
  this._element.remove();
497
456
  _super.prototype.dispose.call(this);
498
457
  };
@@ -1,16 +1,18 @@
1
- import { Droptarget } from './dnd/droptarget';
2
- import { CompositeDisposable } from './lifecycle';
3
- import { IDockviewPanel } from './dockview/dockviewPanel';
1
+ import { Droptarget } from '../dnd/droptarget';
2
+ import { CompositeDisposable } from '../lifecycle';
3
+ import { IDockviewPanel } from '../dockview/dockviewPanel';
4
+ import { DockviewComponent } from '../dockview/dockviewComponent';
4
5
  export type DockviewPanelRenderer = 'onlyWhenVisible' | 'always';
5
6
  export interface IRenderable {
6
7
  readonly element: HTMLElement;
7
8
  readonly dropTarget: Droptarget;
8
9
  }
9
10
  export declare class OverlayRenderContainer extends CompositeDisposable {
10
- private readonly element;
11
+ readonly element: HTMLElement;
12
+ readonly accessor: DockviewComponent;
11
13
  private readonly map;
12
14
  private _disposed;
13
- constructor(element: HTMLElement);
15
+ constructor(element: HTMLElement, accessor: DockviewComponent);
14
16
  detatch(panel: IDockviewPanel): boolean;
15
17
  attach(options: {
16
18
  panel: IDockviewPanel;
@@ -27,9 +27,10 @@ var __values = (this && this.__values) || function(o) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.OverlayRenderContainer = void 0;
30
- var dnd_1 = require("./dnd/dnd");
31
- var dom_1 = require("./dom");
32
- var lifecycle_1 = require("./lifecycle");
30
+ var dnd_1 = require("../dnd/dnd");
31
+ var dom_1 = require("../dom");
32
+ var lifecycle_1 = require("../lifecycle");
33
+ var overlay_1 = require("./overlay");
33
34
  function createFocusableElement() {
34
35
  var element = document.createElement('div');
35
36
  element.tabIndex = -1;
@@ -37,9 +38,10 @@ function createFocusableElement() {
37
38
  }
38
39
  var OverlayRenderContainer = /** @class */ (function (_super) {
39
40
  __extends(OverlayRenderContainer, _super);
40
- function OverlayRenderContainer(element) {
41
+ function OverlayRenderContainer(element, accessor) {
41
42
  var _this = _super.call(this) || this;
42
43
  _this.element = element;
44
+ _this.accessor = accessor;
43
45
  _this.map = {};
44
46
  _this._disposed = false;
45
47
  _this.addDisposables(lifecycle_1.Disposable.from(function () {
@@ -108,7 +110,37 @@ var OverlayRenderContainer = /** @class */ (function (_super) {
108
110
  }
109
111
  focusContainer.style.display = panel.api.isVisible ? '' : 'none';
110
112
  };
111
- var disposable = new lifecycle_1.CompositeDisposable(
113
+ var observerDisposable = new lifecycle_1.MutableDisposable();
114
+ var correctLayerPosition = function () {
115
+ if (panel.api.location.type === 'floating') {
116
+ queueMicrotask(function () {
117
+ var floatingGroup = _this.accessor.floatingGroups.find(function (group) { return group.group === panel.api.group; });
118
+ if (!floatingGroup) {
119
+ return;
120
+ }
121
+ var element = floatingGroup.overlay.element;
122
+ var update = function () {
123
+ var level = Number(element.getAttribute('aria-level'));
124
+ focusContainer.style.zIndex = "".concat(overlay_1.DEFAULT_OVERLAY_Z_INDEX + level * 2 + 1);
125
+ };
126
+ var observer = new MutationObserver(function () {
127
+ update();
128
+ });
129
+ observerDisposable.value = lifecycle_1.Disposable.from(function () {
130
+ return observer.disconnect();
131
+ });
132
+ observer.observe(element, {
133
+ attributeFilter: ['aria-level'],
134
+ attributes: true,
135
+ });
136
+ update();
137
+ });
138
+ }
139
+ else {
140
+ focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here
141
+ }
142
+ };
143
+ var disposable = new lifecycle_1.CompositeDisposable(observerDisposable,
112
144
  /**
113
145
  * since container is positioned absoutely we must explicitly forward
114
146
  * the dnd events for the expect behaviours to continue to occur in terms of dnd
@@ -132,7 +164,7 @@ var OverlayRenderContainer = /** @class */ (function (_super) {
132
164
  onDragOver: function (e) {
133
165
  referenceContainer.dropTarget.dnd.onDragOver(e);
134
166
  },
135
- }), panel.api.onDidVisibilityChange(function (event) {
167
+ }), panel.api.onDidVisibilityChange(function () {
136
168
  /**
137
169
  * Control the visibility of the content, however even when not visible (display: none)
138
170
  * the content is still maintained within the DOM hence DOM specific attributes
@@ -144,6 +176,8 @@ var OverlayRenderContainer = /** @class */ (function (_super) {
144
176
  return;
145
177
  }
146
178
  resize();
179
+ }), panel.api.onDidLocationChange(function () {
180
+ correctLayerPosition();
147
181
  }));
148
182
  this.map[panel.api.id].destroy = lifecycle_1.Disposable.from(function () {
149
183
  var _a;
@@ -152,6 +186,7 @@ var OverlayRenderContainer = /** @class */ (function (_super) {
152
186
  }
153
187
  (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);
154
188
  });
189
+ correctLayerPosition();
155
190
  queueMicrotask(function () {
156
191
  if (_this.isDisposed) {
157
192
  return;
@@ -21,5 +21,5 @@ export interface PaneviewComponentOptions {
21
21
  };
22
22
  disableDnd?: boolean;
23
23
  showDndOverlay?: (event: PaneviewDndOverlayEvent) => boolean;
24
- parentElement: HTMLElement;
24
+ className?: string;
25
25
  }
@@ -112,7 +112,7 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
112
112
  get height(): number;
113
113
  get width(): number;
114
114
  get options(): PaneviewComponentOptions;
115
- constructor(options: PaneviewComponentOptions);
115
+ constructor(parentElement: HTMLElement, options: PaneviewComponentOptions);
116
116
  setVisible(panel: PaneviewPanel, visible: boolean): void;
117
117
  focus(): void;
118
118
  updateOptions(options: Partial<PaneviewComponentOptions>): void;
@@ -83,8 +83,8 @@ var PaneFramework = /** @class */ (function (_super) {
83
83
  exports.PaneFramework = PaneFramework;
84
84
  var PaneviewComponent = /** @class */ (function (_super) {
85
85
  __extends(PaneviewComponent, _super);
86
- function PaneviewComponent(options) {
87
- var _this = _super.call(this, options.parentElement, options.disableAutoResizing) || this;
86
+ function PaneviewComponent(parentElement, options) {
87
+ var _this = _super.call(this, parentElement, options.disableAutoResizing) || this;
88
88
  _this._id = nextLayoutId.next();
89
89
  _this._disposable = new lifecycle_1.MutableDisposable();
90
90
  _this._viewDisposables = new Map();
@@ -98,6 +98,9 @@ var PaneviewComponent = /** @class */ (function (_super) {
98
98
  _this.onDidAddView = _this._onDidAddView.event;
99
99
  _this._onDidRemoveView = new events_1.Emitter();
100
100
  _this.onDidRemoveView = _this._onDidRemoveView.event;
101
+ if (typeof options.className === 'string') {
102
+ _this.element.classList.add(options.className);
103
+ }
101
104
  _this.addDisposables(_this._onDidLayoutChange, _this._onDidLayoutfromJSON, _this._onDidDrop, _this._onDidAddView, _this._onDidRemoveView);
102
105
  _this._options = options;
103
106
  if (!options.components) {
@@ -19,5 +19,5 @@ export interface SplitviewComponentOptions extends SplitViewOptions {
19
19
  [componentName: string]: any;
20
20
  };
21
21
  frameworkWrapper?: FrameworkFactory<SplitviewPanel>;
22
- parentElement: HTMLElement;
22
+ className?: string;
23
23
  }