dockview-core 2.1.4 → 3.0.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 (77) hide show
  1. package/dist/cjs/api/component.api.d.ts +4 -3
  2. package/dist/cjs/api/component.api.js +8 -22
  3. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +2 -1
  4. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +30 -33
  5. package/dist/cjs/dockview/options.d.ts +4 -8
  6. package/dist/cjs/dockview/options.js +28 -20
  7. package/dist/cjs/events.d.ts +9 -0
  8. package/dist/cjs/events.js +18 -1
  9. package/dist/cjs/gridview/gridviewComponent.js +15 -24
  10. package/dist/cjs/gridview/options.d.ts +10 -12
  11. package/dist/cjs/gridview/options.js +15 -0
  12. package/dist/cjs/index.d.ts +4 -4
  13. package/dist/cjs/index.js +8 -1
  14. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +2 -2
  15. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +6 -2
  16. package/dist/cjs/paneview/draggablePaneviewPanel.js +8 -9
  17. package/dist/cjs/paneview/options.d.ts +25 -21
  18. package/dist/cjs/paneview/options.js +42 -0
  19. package/dist/cjs/paneview/paneviewComponent.d.ts +12 -15
  20. package/dist/cjs/paneview/paneviewComponent.js +30 -40
  21. package/dist/cjs/paneview/paneviewPanel.d.ts +3 -8
  22. package/dist/cjs/splitview/options.d.ts +7 -9
  23. package/dist/cjs/splitview/options.js +17 -0
  24. package/dist/cjs/splitview/splitview.d.ts +5 -5
  25. package/dist/cjs/splitview/splitviewComponent.js +10 -21
  26. package/dist/dockview-core.amd.js +160 -159
  27. package/dist/dockview-core.amd.js.map +1 -1
  28. package/dist/dockview-core.amd.min.js +2 -2
  29. package/dist/dockview-core.amd.min.js.map +1 -1
  30. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  31. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  32. package/dist/dockview-core.amd.noStyle.js +160 -159
  33. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  34. package/dist/dockview-core.cjs.js +160 -159
  35. package/dist/dockview-core.cjs.js.map +1 -1
  36. package/dist/dockview-core.esm.js +156 -159
  37. package/dist/dockview-core.esm.js.map +1 -1
  38. package/dist/dockview-core.esm.min.js +2 -2
  39. package/dist/dockview-core.esm.min.js.map +1 -1
  40. package/dist/dockview-core.js +160 -159
  41. package/dist/dockview-core.js.map +1 -1
  42. package/dist/dockview-core.min.js +2 -2
  43. package/dist/dockview-core.min.js.map +1 -1
  44. package/dist/dockview-core.min.noStyle.js +2 -2
  45. package/dist/dockview-core.min.noStyle.js.map +1 -1
  46. package/dist/dockview-core.noStyle.js +160 -159
  47. package/dist/dockview-core.noStyle.js.map +1 -1
  48. package/dist/esm/api/component.api.d.ts +4 -3
  49. package/dist/esm/api/component.api.js +4 -10
  50. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +2 -1
  51. package/dist/esm/dockview/components/titlebar/tabsContainer.js +20 -23
  52. package/dist/esm/dockview/options.d.ts +4 -8
  53. package/dist/esm/dockview/options.js +4 -9
  54. package/dist/esm/events.d.ts +9 -0
  55. package/dist/esm/events.js +11 -0
  56. package/dist/esm/gridview/gridviewComponent.js +15 -24
  57. package/dist/esm/gridview/options.d.ts +10 -12
  58. package/dist/esm/gridview/options.js +14 -1
  59. package/dist/esm/index.d.ts +4 -4
  60. package/dist/esm/index.js +3 -0
  61. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +2 -2
  62. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +6 -2
  63. package/dist/esm/paneview/draggablePaneviewPanel.js +8 -9
  64. package/dist/esm/paneview/options.d.ts +25 -21
  65. package/dist/esm/paneview/options.js +22 -1
  66. package/dist/esm/paneview/paneviewComponent.d.ts +12 -15
  67. package/dist/esm/paneview/paneviewComponent.js +30 -40
  68. package/dist/esm/paneview/paneviewPanel.d.ts +3 -8
  69. package/dist/esm/splitview/options.d.ts +7 -9
  70. package/dist/esm/splitview/options.js +16 -1
  71. package/dist/esm/splitview/splitview.d.ts +5 -5
  72. package/dist/esm/splitview/splitviewComponent.js +10 -21
  73. package/package.json +1 -1
  74. package/dist/cjs/panel/componentFactory.d.ts +0 -11
  75. package/dist/cjs/panel/componentFactory.js +0 -30
  76. package/dist/esm/panel/componentFactory.d.ts +0 -11
  77. package/dist/esm/panel/componentFactory.js +0 -24
@@ -12,11 +12,11 @@ import { ISplitviewPanel } from '../splitview/splitviewPanel';
12
12
  import { DockviewGroupPanel, IDockviewGroupPanel } from '../dockview/dockviewGroupPanel';
13
13
  import { Event } from '../events';
14
14
  import { IDockviewPanel } from '../dockview/dockviewPanel';
15
- import { PaneviewDropEvent } from '../paneview/draggablePaneviewPanel';
15
+ import { PaneviewDidDropEvent } from '../paneview/draggablePaneviewPanel';
16
16
  import { GroupDragEvent, TabDragEvent } from '../dockview/components/titlebar/tabsContainer';
17
17
  import { Box } from '../types';
18
18
  import { DockviewDidDropEvent, DockviewWillDropEvent, WillShowOverlayLocationEvent } from '../dockview/dockviewGroupPanelModel';
19
- import { PaneviewComponentOptions } from '../paneview/options';
19
+ import { PaneviewComponentOptions, PaneviewDndOverlayEvent } from '../paneview/options';
20
20
  import { SplitviewComponentOptions } from '../splitview/options';
21
21
  import { GridviewComponentOptions } from '../gridview/options';
22
22
  export interface CommonApi<T = any> {
@@ -164,7 +164,8 @@ export declare class PaneviewApi implements CommonApi<SerializedPaneview> {
164
164
  /**
165
165
  * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.
166
166
  */
167
- get onDidDrop(): Event<PaneviewDropEvent>;
167
+ get onDidDrop(): Event<PaneviewDidDropEvent>;
168
+ get onUnhandledDragOverEvent(): Event<PaneviewDndOverlayEvent>;
168
169
  constructor(component: IPaneviewComponent);
169
170
  /**
170
171
  * Remove a panel given the panel object.
@@ -1,18 +1,6 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = void 0;
15
- var events_1 = require("../events");
16
4
  var SplitviewApi = /** @class */ (function () {
17
5
  function SplitviewApi(component) {
18
6
  this.component = component;
@@ -295,16 +283,14 @@ var PaneviewApi = /** @class */ (function () {
295
283
  * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.
296
284
  */
297
285
  get: function () {
298
- var _this = this;
299
- var emitter = new events_1.Emitter();
300
- var disposable = this.component.onDidDrop(function (e) {
301
- emitter.fire(__assign(__assign({}, e), { api: _this }));
302
- });
303
- emitter.dispose = function () {
304
- disposable.dispose();
305
- emitter.dispose();
306
- };
307
- return emitter.event;
286
+ return this.component.onDidDrop;
287
+ },
288
+ enumerable: false,
289
+ configurable: true
290
+ });
291
+ Object.defineProperty(PaneviewApi.prototype, "onUnhandledDragOverEvent", {
292
+ get: function () {
293
+ return this.component.onUnhandledDragOverEvent;
308
294
  },
309
295
  enumerable: false,
310
296
  configurable: true
@@ -76,10 +76,11 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
76
76
  indexOf(id: string): number;
77
77
  constructor(accessor: DockviewComponent, group: DockviewGroupPanel);
78
78
  setActive(_isGroupActive: boolean): void;
79
- private addTab;
80
79
  delete(id: string): void;
81
80
  setActivePanel(panel: IDockviewPanel): void;
82
81
  openPanel(panel: IDockviewPanel, index?: number): void;
83
82
  closePanel(panel: IDockviewPanel): void;
84
83
  dispose(): void;
84
+ private addTab;
85
+ private updateClassnames;
85
86
  }
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __values = (this && this.__values) || function(o) {
18
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
19
+ if (m) return m.call(o);
20
+ if (o && typeof o.length === "number") return {
21
+ next: function () {
22
+ if (o && i >= o.length) o = void 0;
23
+ return { value: o && o[i++], done: !o };
24
+ }
25
+ };
26
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
27
+ };
17
28
  var __read = (this && this.__read) || function (o, n) {
18
29
  var m = typeof Symbol === "function" && o[Symbol.iterator];
19
30
  if (!m) return o;
@@ -39,17 +50,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
50
  }
40
51
  return to.concat(ar || Array.prototype.slice.call(from));
41
52
  };
42
- var __values = (this && this.__values) || function(o) {
43
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
44
- if (m) return m.call(o);
45
- if (o && typeof o.length === "number") return {
46
- next: function () {
47
- if (o && i >= o.length) o = void 0;
48
- return { value: o && o[i++], done: !o };
49
- }
50
- };
51
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
52
- };
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
54
  exports.TabsContainer = void 0;
55
55
  var lifecycle_1 = require("../../../lifecycle");
@@ -93,15 +93,7 @@ var TabsContainer = /** @class */ (function (_super) {
93
93
  _this._element.appendChild(_this.leftActionsContainer);
94
94
  _this._element.appendChild(_this.voidContainer.element);
95
95
  _this._element.appendChild(_this.rightActionsContainer);
96
- _this.addDisposables(_this.accessor.onDidAddPanel(function (e) {
97
- if (e.api.group === _this.group) {
98
- (0, dom_1.toggleClass)(_this._element, 'dv-single-tab', _this.size === 1);
99
- }
100
- }), _this.accessor.onDidRemovePanel(function (e) {
101
- if (e.api.group === _this.group) {
102
- (0, dom_1.toggleClass)(_this._element, 'dv-single-tab', _this.size === 1);
103
- }
104
- }), _this._onWillShowOverlay, _this._onDrop, _this._onTabDragStart, _this._onGroupDragStart, _this.voidContainer, _this.voidContainer.onDragStart(function (event) {
96
+ _this.addDisposables(_this._onWillShowOverlay, _this._onDrop, _this._onTabDragStart, _this._onGroupDragStart, _this.voidContainer, _this.voidContainer.onDragStart(function (event) {
105
97
  _this._onGroupDragStart.fire({
106
98
  nativeEvent: event,
107
99
  group: _this.group,
@@ -233,19 +225,6 @@ var TabsContainer = /** @class */ (function (_super) {
233
225
  TabsContainer.prototype.setActive = function (_isGroupActive) {
234
226
  // noop
235
227
  };
236
- TabsContainer.prototype.addTab = function (tab, index) {
237
- if (index === void 0) { index = this.tabs.length; }
238
- if (index < 0 || index > this.tabs.length) {
239
- throw new Error('invalid location');
240
- }
241
- this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);
242
- this.tabs = __spreadArray(__spreadArray(__spreadArray([], __read(this.tabs.slice(0, index)), false), [
243
- tab
244
- ], false), __read(this.tabs.slice(index)), false);
245
- if (this.selectedIndex < 0) {
246
- this.selectedIndex = index;
247
- }
248
- };
249
228
  TabsContainer.prototype.delete = function (id) {
250
229
  var index = this.tabs.findIndex(function (tab) { return tab.value.panel.id === id; });
251
230
  var tabToRemove = this.tabs.splice(index, 1)[0];
@@ -253,6 +232,7 @@ var TabsContainer = /** @class */ (function (_super) {
253
232
  disposable.dispose();
254
233
  value.dispose();
255
234
  value.element.remove();
235
+ this.updateClassnames();
256
236
  };
257
237
  TabsContainer.prototype.setActivePanel = function (panel) {
258
238
  this.tabs.forEach(function (tab) {
@@ -334,6 +314,23 @@ var TabsContainer = /** @class */ (function (_super) {
334
314
  }
335
315
  this.tabs = [];
336
316
  };
317
+ TabsContainer.prototype.addTab = function (tab, index) {
318
+ if (index === void 0) { index = this.tabs.length; }
319
+ if (index < 0 || index > this.tabs.length) {
320
+ throw new Error('invalid location');
321
+ }
322
+ this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);
323
+ this.tabs = __spreadArray(__spreadArray(__spreadArray([], __read(this.tabs.slice(0, index)), false), [
324
+ tab
325
+ ], false), __read(this.tabs.slice(index)), false);
326
+ if (this.selectedIndex < 0) {
327
+ this.selectedIndex = index;
328
+ }
329
+ this.updateClassnames();
330
+ };
331
+ TabsContainer.prototype.updateClassnames = function () {
332
+ (0, dom_1.toggleClass)(this._element, 'dv-single-tab', this.size === 1);
333
+ };
337
334
  return TabsContainer;
338
335
  }(lifecycle_1.CompositeDisposable));
339
336
  exports.TabsContainer = TabsContainer;
@@ -13,6 +13,7 @@ import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
13
13
  import { IGroupHeaderProps } from './framework';
14
14
  import { FloatingGroupOptions } from './dockviewComponent';
15
15
  import { Contraints } from '../gridview/gridviewPanel';
16
+ import { AcceptableEvent, IAcceptableEvent } from '../events';
16
17
  export interface IHeaderActionsRenderer extends IDisposable {
17
18
  readonly element: HTMLElement;
18
19
  init(params: IGroupHeaderProps): void;
@@ -55,27 +56,22 @@ export interface DockviewOptions {
55
56
  */
56
57
  noPanelsOverlay?: 'emptyGroup' | 'watermark';
57
58
  }
58
- export interface DockviewDndOverlayEvent {
59
+ export interface DockviewDndOverlayEvent extends IAcceptableEvent {
59
60
  nativeEvent: DragEvent;
60
61
  target: DockviewGroupDropLocation;
61
62
  position: Position;
62
63
  group?: DockviewGroupPanel;
63
64
  getData: () => PanelTransfer | undefined;
64
- isAccepted: boolean;
65
- accept(): void;
66
65
  }
67
- export declare class DockviewUnhandledDragOverEvent implements DockviewDndOverlayEvent {
66
+ export declare class DockviewUnhandledDragOverEvent extends AcceptableEvent implements DockviewDndOverlayEvent {
68
67
  readonly nativeEvent: DragEvent;
69
68
  readonly target: DockviewGroupDropLocation;
70
69
  readonly position: Position;
71
70
  readonly getData: () => PanelTransfer | undefined;
72
71
  readonly group?: DockviewGroupPanel | undefined;
73
- private _isAccepted;
74
- get isAccepted(): boolean;
75
72
  constructor(nativeEvent: DragEvent, target: DockviewGroupDropLocation, position: Position, getData: () => PanelTransfer | undefined, group?: DockviewGroupPanel | undefined);
76
- accept(): void;
77
73
  }
78
- export declare const PROPERTY_KEYS: (keyof DockviewOptions)[];
74
+ export declare const PROPERTY_KEYS_DOCKVIEW: (keyof DockviewOptions)[];
79
75
  export interface CreateComponentOptions {
80
76
  /**
81
77
  * The unqiue identifer of the component
@@ -1,29 +1,37 @@
1
1
  "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
2
17
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isGroupOptionsWithGroup = exports.isGroupOptionsWithPanel = exports.isPanelOptionsWithGroup = exports.isPanelOptionsWithPanel = exports.PROPERTY_KEYS = exports.DockviewUnhandledDragOverEvent = void 0;
4
- var DockviewUnhandledDragOverEvent = /** @class */ (function () {
18
+ exports.isGroupOptionsWithGroup = exports.isGroupOptionsWithPanel = exports.isPanelOptionsWithGroup = exports.isPanelOptionsWithPanel = exports.PROPERTY_KEYS_DOCKVIEW = exports.DockviewUnhandledDragOverEvent = void 0;
19
+ var events_1 = require("../events");
20
+ var DockviewUnhandledDragOverEvent = /** @class */ (function (_super) {
21
+ __extends(DockviewUnhandledDragOverEvent, _super);
5
22
  function DockviewUnhandledDragOverEvent(nativeEvent, target, position, getData, group) {
6
- this.nativeEvent = nativeEvent;
7
- this.target = target;
8
- this.position = position;
9
- this.getData = getData;
10
- this.group = group;
11
- this._isAccepted = false;
23
+ var _this = _super.call(this) || this;
24
+ _this.nativeEvent = nativeEvent;
25
+ _this.target = target;
26
+ _this.position = position;
27
+ _this.getData = getData;
28
+ _this.group = group;
29
+ return _this;
12
30
  }
13
- Object.defineProperty(DockviewUnhandledDragOverEvent.prototype, "isAccepted", {
14
- get: function () {
15
- return this._isAccepted;
16
- },
17
- enumerable: false,
18
- configurable: true
19
- });
20
- DockviewUnhandledDragOverEvent.prototype.accept = function () {
21
- this._isAccepted = true;
22
- };
23
31
  return DockviewUnhandledDragOverEvent;
24
- }());
32
+ }(events_1.AcceptableEvent));
25
33
  exports.DockviewUnhandledDragOverEvent = DockviewUnhandledDragOverEvent;
26
- exports.PROPERTY_KEYS = (function () {
34
+ exports.PROPERTY_KEYS_DOCKVIEW = (function () {
27
35
  /**
28
36
  * by readong the keys from an empty value object TypeScript will error
29
37
  * when we add or remove new properties to `DockviewOptions`
@@ -17,6 +17,15 @@ export declare class DockviewEvent implements IDockviewEvent {
17
17
  get defaultPrevented(): boolean;
18
18
  preventDefault(): void;
19
19
  }
20
+ export interface IAcceptableEvent {
21
+ readonly isAccepted: boolean;
22
+ accept(): void;
23
+ }
24
+ export declare class AcceptableEvent implements IAcceptableEvent {
25
+ private _isAccepted;
26
+ get isAccepted(): boolean;
27
+ accept(): void;
28
+ }
20
29
  declare class LeakageMonitor {
21
30
  readonly events: Map<Event<any>, Stacktrace>;
22
31
  get size(): number;
@@ -11,7 +11,7 @@ var __values = (this && this.__values) || function(o) {
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.AsapEvent = exports.addDisposableListener = exports.addDisposableWindowListener = exports.Emitter = exports.DockviewEvent = exports.Event = void 0;
14
+ exports.AsapEvent = exports.addDisposableListener = exports.addDisposableWindowListener = exports.Emitter = exports.AcceptableEvent = exports.DockviewEvent = exports.Event = void 0;
15
15
  var Event;
16
16
  (function (Event) {
17
17
  Event.any = function () {
@@ -48,6 +48,23 @@ var DockviewEvent = /** @class */ (function () {
48
48
  return DockviewEvent;
49
49
  }());
50
50
  exports.DockviewEvent = DockviewEvent;
51
+ var AcceptableEvent = /** @class */ (function () {
52
+ function AcceptableEvent() {
53
+ this._isAccepted = false;
54
+ }
55
+ Object.defineProperty(AcceptableEvent.prototype, "isAccepted", {
56
+ get: function () {
57
+ return this._isAccepted;
58
+ },
59
+ enumerable: false,
60
+ configurable: true
61
+ });
62
+ AcceptableEvent.prototype.accept = function () {
63
+ this._isAccepted = true;
64
+ };
65
+ return AcceptableEvent;
66
+ }());
67
+ exports.AcceptableEvent = AcceptableEvent;
51
68
  var LeakageMonitor = /** @class */ (function () {
52
69
  function LeakageMonitor() {
53
70
  this.events = new Map();
@@ -58,15 +58,17 @@ var gridview_1 = require("./gridview");
58
58
  var array_1 = require("../array");
59
59
  var lifecycle_1 = require("../lifecycle");
60
60
  var baseComponentGridview_1 = require("./baseComponentGridview");
61
- var componentFactory_1 = require("../panel/componentFactory");
62
61
  var events_1 = require("../events");
63
62
  var GridviewComponent = /** @class */ (function (_super) {
64
63
  __extends(GridviewComponent, _super);
65
64
  function GridviewComponent(parentElement, options) {
65
+ var _a;
66
66
  var _this = _super.call(this, parentElement, {
67
- proportionalLayout: options.proportionalLayout,
67
+ proportionalLayout: (_a = options.proportionalLayout) !== null && _a !== void 0 ? _a : true,
68
68
  orientation: options.orientation,
69
- styles: options.styles,
69
+ styles: options.hideBorders
70
+ ? { separatorBorder: 'transparent' }
71
+ : undefined,
70
72
  disableAutoResizing: options.disableAutoResizing,
71
73
  className: options.className,
72
74
  }) || this;
@@ -86,12 +88,6 @@ var GridviewComponent = /** @class */ (function (_super) {
86
88
  }), _this.onDidActiveChange(function (event) {
87
89
  _this._onDidActiveGroupChange.fire(event);
88
90
  }));
89
- if (!_this.options.components) {
90
- _this.options.components = {};
91
- }
92
- if (!_this.options.frameworkComponents) {
93
- _this.options.frameworkComponents = {};
94
- }
95
91
  return _this;
96
92
  }
97
93
  Object.defineProperty(GridviewComponent.prototype, "orientation", {
@@ -171,14 +167,11 @@ var GridviewComponent = /** @class */ (function (_super) {
171
167
  var height = this.height;
172
168
  this.gridview.deserialize(grid, {
173
169
  fromJSON: function (node) {
174
- var _a, _b;
175
170
  var data = node.data;
176
- var view = (0, componentFactory_1.createComponent)(data.id, data.component, (_a = _this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = _this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, _this.options.frameworkComponentFactory
177
- ? {
178
- createComponent: _this.options.frameworkComponentFactory
179
- .createComponent,
180
- }
181
- : undefined);
171
+ var view = _this.options.createComponent({
172
+ id: data.id,
173
+ name: data.component,
174
+ });
182
175
  queue_1.push(function () {
183
176
  return view.init({
184
177
  params: data.params,
@@ -279,7 +272,7 @@ var GridviewComponent = /** @class */ (function (_super) {
279
272
  this.doAddGroup(removedPanel, relativeLocation, options.size);
280
273
  };
281
274
  GridviewComponent.prototype.addPanel = function (options) {
282
- var _a, _b, _c, _d, _e, _f;
275
+ var _a, _b, _c, _d;
283
276
  var relativeLocation = (_a = options.location) !== null && _a !== void 0 ? _a : [0];
284
277
  if ((_b = options.position) === null || _b === void 0 ? void 0 : _b.referencePanel) {
285
278
  var referenceGroup = (_c = this._groups.get(options.position.referencePanel)) === null || _c === void 0 ? void 0 : _c.value;
@@ -295,14 +288,12 @@ var GridviewComponent = /** @class */ (function (_super) {
295
288
  relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
296
289
  }
297
290
  }
298
- var view = (0, componentFactory_1.createComponent)(options.id, options.component, (_d = this.options.components) !== null && _d !== void 0 ? _d : {}, (_e = this.options.frameworkComponents) !== null && _e !== void 0 ? _e : {}, this.options.frameworkComponentFactory
299
- ? {
300
- createComponent: this.options.frameworkComponentFactory
301
- .createComponent,
302
- }
303
- : undefined);
291
+ var view = this.options.createComponent({
292
+ id: options.id,
293
+ name: options.component,
294
+ });
304
295
  view.init({
305
- params: (_f = options.params) !== null && _f !== void 0 ? _f : {},
296
+ params: (_d = options.params) !== null && _d !== void 0 ? _d : {},
306
297
  minimumWidth: options.minimumWidth,
307
298
  maximumWidth: options.maximumWidth,
308
299
  minimumHeight: options.minimumHeight,
@@ -1,17 +1,15 @@
1
1
  import { GridviewPanel } from './gridviewPanel';
2
- import { ISplitviewStyles, Orientation } from '../splitview/splitview';
3
- import { ComponentConstructor, FrameworkFactory } from '../panel/componentFactory';
4
- export interface GridviewComponentOptions {
2
+ import { Orientation } from '../splitview/splitview';
3
+ import { CreateComponentOptions } from '../dockview/options';
4
+ export interface GridviewOptions {
5
5
  disableAutoResizing?: boolean;
6
- proportionalLayout: boolean;
6
+ proportionalLayout?: boolean;
7
7
  orientation: Orientation;
8
- components?: {
9
- [componentName: string]: ComponentConstructor<GridviewPanel>;
10
- };
11
- frameworkComponents?: {
12
- [componentName: string]: any;
13
- };
14
- frameworkComponentFactory?: FrameworkFactory<GridviewPanel>;
15
- styles?: ISplitviewStyles;
16
8
  className?: string;
9
+ hideBorders?: boolean;
17
10
  }
11
+ export interface GridviewFrameworkOptions {
12
+ createComponent: (options: CreateComponentOptions) => GridviewPanel;
13
+ }
14
+ export type GridviewComponentOptions = GridviewOptions & GridviewFrameworkOptions;
15
+ export declare const PROPERTY_KEYS_GRIDVIEW: (keyof GridviewOptions)[];
@@ -1,2 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROPERTY_KEYS_GRIDVIEW = void 0;
4
+ exports.PROPERTY_KEYS_GRIDVIEW = (function () {
5
+ /**
6
+ * by readong the keys from an empty value object TypeScript will error
7
+ * when we add or remove new properties to `DockviewOptions`
8
+ */
9
+ var properties = {
10
+ disableAutoResizing: undefined,
11
+ proportionalLayout: undefined,
12
+ orientation: undefined,
13
+ hideBorders: undefined,
14
+ className: undefined,
15
+ };
16
+ return Object.keys(properties);
17
+ })();
@@ -8,12 +8,12 @@ export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
8
8
  export { IDisposable as DockviewIDisposable, MutableDisposable as DockviewMutableDisposable, CompositeDisposable as DockviewCompositeDisposable, Disposable as DockviewDisposable, } from './lifecycle';
9
9
  export * from './panel/types';
10
10
  export * from './splitview/splitview';
11
- export { SplitviewComponentOptions, PanelViewInitParameters, } from './splitview/options';
11
+ export { SplitviewComponentOptions, PanelViewInitParameters, SplitviewOptions, SplitviewFrameworkOptions, PROPERTY_KEYS_SPLITVIEW, } from './splitview/options';
12
12
  export * from './paneview/paneview';
13
13
  export * from './gridview/gridview';
14
- export { GridviewComponentOptions } from './gridview/options';
14
+ export { GridviewComponentOptions, GridviewOptions, GridviewFrameworkOptions, PROPERTY_KEYS_GRIDVIEW, } from './gridview/options';
15
15
  export * from './gridview/baseComponentGridview';
16
- export { DraggablePaneviewPanel, PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
16
+ export { DraggablePaneviewPanel, PaneviewDidDropEvent as PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
17
17
  export * from './dockview/components/panel/content';
18
18
  export * from './dockview/components/tab/tab';
19
19
  export * from './dockview/dockviewGroupPanelModel';
@@ -29,7 +29,7 @@ export * from './dockview/dockviewComponent';
29
29
  export * from './gridview/gridviewComponent';
30
30
  export * from './splitview/splitviewComponent';
31
31
  export * from './paneview/paneviewComponent';
32
- export { PaneviewComponentOptions } from './paneview/options';
32
+ export { PaneviewComponentOptions, PaneviewOptions, PaneviewFrameworkOptions, PROPERTY_KEYS_PANEVIEW, PaneviewUnhandledDragOverEvent, PaneviewDndOverlayEvent, } from './paneview/options';
33
33
  export * from './gridview/gridviewPanel';
34
34
  export { SplitviewPanel, ISplitviewPanel } from './splitview/splitviewPanel';
35
35
  export * from './paneview/paneviewPanel';
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.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.SplitviewPanel = exports.DefaultDockviewDeserialzier = exports.DefaultTab = exports.DraggablePaneviewPanel = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = exports.PanelTransfer = exports.PaneTransfer = exports.getPanelData = exports.getPaneData = void 0;
17
+ exports.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.SplitviewPanel = exports.PaneviewUnhandledDragOverEvent = exports.PROPERTY_KEYS_PANEVIEW = exports.DefaultDockviewDeserialzier = exports.DefaultTab = exports.DraggablePaneviewPanel = exports.PROPERTY_KEYS_GRIDVIEW = exports.PROPERTY_KEYS_SPLITVIEW = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = exports.PanelTransfer = exports.PaneTransfer = exports.getPanelData = exports.getPaneData = void 0;
18
18
  var dataTransfer_1 = require("./dnd/dataTransfer");
19
19
  Object.defineProperty(exports, "getPaneData", { enumerable: true, get: function () { return dataTransfer_1.getPaneData; } });
20
20
  Object.defineProperty(exports, "getPanelData", { enumerable: true, get: function () { return dataTransfer_1.getPanelData; } });
@@ -34,8 +34,12 @@ Object.defineProperty(exports, "DockviewCompositeDisposable", { enumerable: true
34
34
  Object.defineProperty(exports, "DockviewDisposable", { enumerable: true, get: function () { return lifecycle_1.Disposable; } });
35
35
  __exportStar(require("./panel/types"), exports);
36
36
  __exportStar(require("./splitview/splitview"), exports);
37
+ var options_1 = require("./splitview/options");
38
+ Object.defineProperty(exports, "PROPERTY_KEYS_SPLITVIEW", { enumerable: true, get: function () { return options_1.PROPERTY_KEYS_SPLITVIEW; } });
37
39
  __exportStar(require("./paneview/paneview"), exports);
38
40
  __exportStar(require("./gridview/gridview"), exports);
41
+ var options_2 = require("./gridview/options");
42
+ Object.defineProperty(exports, "PROPERTY_KEYS_GRIDVIEW", { enumerable: true, get: function () { return options_2.PROPERTY_KEYS_GRIDVIEW; } });
39
43
  __exportStar(require("./gridview/baseComponentGridview"), exports);
40
44
  var draggablePaneviewPanel_1 = require("./paneview/draggablePaneviewPanel");
41
45
  Object.defineProperty(exports, "DraggablePaneviewPanel", { enumerable: true, get: function () { return draggablePaneviewPanel_1.DraggablePaneviewPanel; } });
@@ -54,6 +58,9 @@ __exportStar(require("./dockview/dockviewComponent"), exports);
54
58
  __exportStar(require("./gridview/gridviewComponent"), exports);
55
59
  __exportStar(require("./splitview/splitviewComponent"), exports);
56
60
  __exportStar(require("./paneview/paneviewComponent"), exports);
61
+ var options_3 = require("./paneview/options");
62
+ Object.defineProperty(exports, "PROPERTY_KEYS_PANEVIEW", { enumerable: true, get: function () { return options_3.PROPERTY_KEYS_PANEVIEW; } });
63
+ Object.defineProperty(exports, "PaneviewUnhandledDragOverEvent", { enumerable: true, get: function () { return options_3.PaneviewUnhandledDragOverEvent; } });
57
64
  __exportStar(require("./gridview/gridviewPanel"), exports);
58
65
  var splitviewPanel_1 = require("./splitview/splitviewPanel");
59
66
  Object.defineProperty(exports, "SplitviewPanel", { enumerable: true, get: function () { return splitviewPanel_1.SplitviewPanel; } });
@@ -1,8 +1,8 @@
1
1
  import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';
2
2
  import { CompositeDisposable } from '../lifecycle';
3
3
  import { PanelUpdateEvent } from '../panel/types';
4
- import { IPaneHeaderPart, PanePanelInitParameter } from './paneviewPanel';
5
- export declare class DefaultHeader extends CompositeDisposable implements IPaneHeaderPart {
4
+ import { IPanePart, PanePanelInitParameter } from './paneviewPanel';
5
+ export declare class DefaultHeader extends CompositeDisposable implements IPanePart {
6
6
  private readonly _expandedIcon;
7
7
  private readonly _collapsedIcon;
8
8
  private readonly disposable;
@@ -1,10 +1,12 @@
1
1
  import { PaneviewApi } from '../api/component.api';
2
2
  import { PaneTransfer } from '../dnd/dataTransfer';
3
3
  import { DroptargetEvent } from '../dnd/droptarget';
4
+ import { Event } from '../events';
4
5
  import { Orientation } from '../splitview/splitview';
6
+ import { PaneviewDndOverlayEvent } from './options';
5
7
  import { IPaneviewComponent } from './paneviewComponent';
6
8
  import { IPaneviewPanel, PaneviewPanel } from './paneviewPanel';
7
- export interface PaneviewDropEvent extends DroptargetEvent {
9
+ export interface PaneviewDidDropEvent extends DroptargetEvent {
8
10
  panel: IPaneviewPanel;
9
11
  getData: () => PaneTransfer | undefined;
10
12
  api: PaneviewApi;
@@ -14,7 +16,9 @@ export declare abstract class DraggablePaneviewPanel extends PaneviewPanel {
14
16
  private handler;
15
17
  private target;
16
18
  private readonly _onDidDrop;
17
- readonly onDidDrop: import("../events").Event<PaneviewDropEvent>;
19
+ readonly onDidDrop: Event<PaneviewDidDropEvent>;
20
+ private readonly _onUnhandledDragOverEvent;
21
+ readonly onUnhandledDragOverEvent: Event<PaneviewDndOverlayEvent>;
18
22
  constructor(accessor: IPaneviewComponent, id: string, component: string, headerComponent: string | undefined, orientation: Orientation, isExpanded: boolean, disableDnd: boolean);
19
23
  private initDragFeatures;
20
24
  private onDrop;
@@ -32,6 +32,7 @@ var abstractDragHandler_1 = require("../dnd/abstractDragHandler");
32
32
  var dataTransfer_1 = require("../dnd/dataTransfer");
33
33
  var droptarget_1 = require("../dnd/droptarget");
34
34
  var events_1 = require("../events");
35
+ var options_1 = require("./options");
35
36
  var paneviewPanel_1 = require("./paneviewPanel");
36
37
  var DraggablePaneviewPanel = /** @class */ (function (_super) {
37
38
  __extends(DraggablePaneviewPanel, _super);
@@ -40,6 +41,9 @@ var DraggablePaneviewPanel = /** @class */ (function (_super) {
40
41
  _this.accessor = accessor;
41
42
  _this._onDidDrop = new events_1.Emitter();
42
43
  _this.onDidDrop = _this._onDidDrop.event;
44
+ _this._onUnhandledDragOverEvent = new events_1.Emitter();
45
+ _this.onUnhandledDragOverEvent = _this._onUnhandledDragOverEvent.event;
46
+ _this.addDisposables(_this._onDidDrop, _this._onUnhandledDragOverEvent);
43
47
  if (!disableDnd) {
44
48
  _this.initDragFeatures();
45
49
  }
@@ -73,7 +77,7 @@ var DraggablePaneviewPanel = /** @class */ (function (_super) {
73
77
  overlayModel: {
74
78
  activationSize: { type: 'percentage', value: 50 },
75
79
  },
76
- canDisplayOverlay: function (event) {
80
+ canDisplayOverlay: function (event, position) {
77
81
  var data = (0, dataTransfer_1.getPaneData)();
78
82
  if (data) {
79
83
  if (data.paneId !== _this.id &&
@@ -81,14 +85,9 @@ var DraggablePaneviewPanel = /** @class */ (function (_super) {
81
85
  return true;
82
86
  }
83
87
  }
84
- if (_this.accessor.options.showDndOverlay) {
85
- return _this.accessor.options.showDndOverlay({
86
- nativeEvent: event,
87
- getData: dataTransfer_1.getPaneData,
88
- panel: _this,
89
- });
90
- }
91
- return false;
88
+ var firedEvent = new options_1.PaneviewUnhandledDragOverEvent(event, position, dataTransfer_1.getPaneData, _this);
89
+ _this._onUnhandledDragOverEvent.fire(firedEvent);
90
+ return firedEvent.isAccepted;
92
91
  },
93
92
  });
94
93
  this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop(function (event) {