dockview-core 1.11.0 → 1.12.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 (41) hide show
  1. package/dist/cjs/api/dockviewPanelApi.d.ts +6 -0
  2. package/dist/cjs/api/panelApi.d.ts +4 -0
  3. package/dist/cjs/dockview/components/panel/content.js +2 -2
  4. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +12 -1
  5. package/dist/cjs/dockview/dockviewComponent.d.ts +2 -0
  6. package/dist/cjs/dockview/dockviewComponent.js +12 -1
  7. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +9 -1
  8. package/dist/cjs/dockview/dockviewGroupPanelModel.js +30 -2
  9. package/dist/cjs/overlayRenderContainer.d.ts +1 -1
  10. package/dist/dockview-core.amd.js +40 -7
  11. package/dist/dockview-core.amd.js.map +1 -1
  12. package/dist/dockview-core.amd.min.js +2 -2
  13. package/dist/dockview-core.amd.min.js.map +1 -1
  14. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  15. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  16. package/dist/dockview-core.amd.noStyle.js +40 -7
  17. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  18. package/dist/dockview-core.cjs.js +40 -7
  19. package/dist/dockview-core.cjs.js.map +1 -1
  20. package/dist/dockview-core.esm.js +40 -7
  21. package/dist/dockview-core.esm.js.map +1 -1
  22. package/dist/dockview-core.esm.min.js +2 -2
  23. package/dist/dockview-core.esm.min.js.map +1 -1
  24. package/dist/dockview-core.js +40 -7
  25. package/dist/dockview-core.js.map +1 -1
  26. package/dist/dockview-core.min.js +2 -2
  27. package/dist/dockview-core.min.js.map +1 -1
  28. package/dist/dockview-core.min.noStyle.js +2 -2
  29. package/dist/dockview-core.min.noStyle.js.map +1 -1
  30. package/dist/dockview-core.noStyle.js +40 -7
  31. package/dist/dockview-core.noStyle.js.map +1 -1
  32. package/dist/esm/api/dockviewPanelApi.d.ts +6 -0
  33. package/dist/esm/api/panelApi.d.ts +4 -0
  34. package/dist/esm/dockview/components/panel/content.js +2 -2
  35. package/dist/esm/dockview/components/titlebar/tabsContainer.js +12 -1
  36. package/dist/esm/dockview/dockviewComponent.d.ts +2 -0
  37. package/dist/esm/dockview/dockviewComponent.js +8 -1
  38. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +9 -1
  39. package/dist/esm/dockview/dockviewGroupPanelModel.js +18 -2
  40. package/dist/esm/overlayRenderContainer.d.ts +1 -1
  41. package/package.json +1 -1
@@ -19,6 +19,12 @@ export interface ActiveGroupEvent {
19
19
  export interface GroupChangedEvent {
20
20
  }
21
21
  export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' | 'onDidConstraintsChange' | 'setConstraints'> {
22
+ /**
23
+ * The id of the tab component renderer
24
+ *
25
+ * Undefined if no custom tab renderer is provided
26
+ */
27
+ readonly tabComponent: string | undefined;
22
28
  readonly group: DockviewGroupPanel;
23
29
  readonly isGroupActive: boolean;
24
30
  readonly renderer: DockviewPanelRenderer;
@@ -23,6 +23,10 @@ export interface PanelApi {
23
23
  setActive(): void;
24
24
  setVisible(isVisible: boolean): void;
25
25
  updateParameters(parameters: Parameters): void;
26
+ /**
27
+ * The id of the component renderer
28
+ */
29
+ readonly component: string;
26
30
  /**
27
31
  * The id of the panel that would have been assigned when the panel was created
28
32
  */
@@ -98,7 +98,7 @@ var ContentContainer = /** @class */ (function (_super) {
98
98
  this.panel = panel;
99
99
  var container;
100
100
  switch (panel.api.renderer) {
101
- case 'onlyWhenVisibile':
101
+ case 'onlyWhenVisible':
102
102
  this.group.renderContainer.detatch(panel);
103
103
  if (this.panel) {
104
104
  if (doRender) {
@@ -144,7 +144,7 @@ var ContentContainer = /** @class */ (function (_super) {
144
144
  ContentContainer.prototype.closePanel = function () {
145
145
  var _a;
146
146
  if (this.panel) {
147
- if (this.panel.api.renderer === 'onlyWhenVisibile') {
147
+ if (this.panel.api.renderer === 'onlyWhenVisible') {
148
148
  (_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
149
149
  }
150
150
  }
@@ -58,6 +58,7 @@ var tab_1 = require("../tab/tab");
58
58
  var voidContainer_1 = require("./voidContainer");
59
59
  var dom_1 = require("../../../dom");
60
60
  var dockviewGroupPanelModel_1 = require("../../dockviewGroupPanelModel");
61
+ var dataTransfer_1 = require("../../../dnd/dataTransfer");
61
62
  var TabsContainer = /** @class */ (function (_super) {
62
63
  __extends(TabsContainer, _super);
63
64
  function TabsContainer(accessor, group) {
@@ -113,6 +114,10 @@ var TabsContainer = /** @class */ (function (_super) {
113
114
  }), _this.voidContainer.onWillShowOverlay(function (event) {
114
115
  _this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, {
115
116
  kind: 'header_space',
117
+ panel: _this.group.activePanel,
118
+ api: _this.accessor.api,
119
+ group: _this.group,
120
+ getData: dataTransfer_1.getPanelData,
116
121
  }));
117
122
  }), (0, events_1.addDisposableListener)(_this.voidContainer.element, 'mousedown', function (event) {
118
123
  var isFloatingGroupsEnabled = !_this.accessor.options.disableFloatingGroups;
@@ -298,7 +303,13 @@ var TabsContainer = /** @class */ (function (_super) {
298
303
  index: _this.tabs.findIndex(function (x) { return x.value === tab; }),
299
304
  });
300
305
  }), tab.onWillShowOverlay(function (event) {
301
- _this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, { kind: 'tab' }));
306
+ _this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, {
307
+ kind: 'tab',
308
+ panel: _this.group.activePanel,
309
+ api: _this.accessor.api,
310
+ group: _this.group,
311
+ getData: dataTransfer_1.getPanelData,
312
+ }));
302
313
  }));
303
314
  var value = { value: tab, disposable: disposable };
304
315
  this.addTab(value, index);
@@ -5,6 +5,7 @@ import { Event, Emitter } from '../events';
5
5
  import { IWatermarkRenderer, GroupviewPanelState } from './types';
6
6
  import { AddGroupOptions, AddPanelOptions, DockviewComponentOptions, MovementOptions } from './options';
7
7
  import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
8
+ import { DockviewApi } from '../api/component.api';
8
9
  import { Orientation } from '../splitview/splitview';
9
10
  import { GroupOptions, GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent, WillShowOverlayLocationEvent } from './dockviewGroupPanelModel';
10
11
  import { DockviewGroupPanel } from './dockviewGroupPanel';
@@ -156,6 +157,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
156
157
  get options(): DockviewComponentOptions;
157
158
  get activePanel(): IDockviewPanel | undefined;
158
159
  get renderer(): DockviewPanelRenderer;
160
+ get api(): DockviewApi;
159
161
  constructor(options: DockviewComponentOptions);
160
162
  addPopoutGroup(itemToPopout: DockviewPanel | DockviewGroupPanel, options?: {
161
163
  skipRemoveGroup?: boolean;
@@ -342,6 +342,10 @@ var DockviewComponent = /** @class */ (function (_super) {
342
342
  }
343
343
  _this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, {
344
344
  kind: 'edge',
345
+ panel: undefined,
346
+ api: _this._api,
347
+ group: undefined,
348
+ getData: dataTransfer_1.getPanelData,
345
349
  }));
346
350
  }), _this._rootDropTarget.onDrop(function (event) {
347
351
  var _a;
@@ -428,7 +432,14 @@ var DockviewComponent = /** @class */ (function (_super) {
428
432
  Object.defineProperty(DockviewComponent.prototype, "renderer", {
429
433
  get: function () {
430
434
  var _a;
431
- return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';
435
+ return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisible';
436
+ },
437
+ enumerable: false,
438
+ configurable: true
439
+ });
440
+ Object.defineProperty(DockviewComponent.prototype, "api", {
441
+ get: function () {
442
+ return this._api;
432
443
  },
433
444
  enumerable: false,
434
445
  configurable: true
@@ -118,14 +118,22 @@ export type DockviewGroupLocation = {
118
118
  };
119
119
  export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
120
120
  private readonly event;
121
- private _kind;
121
+ private readonly options;
122
122
  get kind(): DockviewGroupDropLocation;
123
123
  get nativeEvent(): DragEvent;
124
124
  get position(): Position;
125
125
  get defaultPrevented(): boolean;
126
+ get panel(): IDockviewPanel | undefined;
127
+ get api(): DockviewApi;
128
+ get group(): DockviewGroupPanel | undefined;
126
129
  preventDefault(): void;
130
+ getData(): PanelTransfer | undefined;
127
131
  constructor(event: WillShowOverlayEvent, options: {
128
132
  kind: DockviewGroupDropLocation;
133
+ panel: IDockviewPanel | undefined;
134
+ api: DockviewApi;
135
+ group: DockviewGroupPanel | undefined;
136
+ getData: () => PanelTransfer | undefined;
129
137
  });
130
138
  }
131
139
  export declare class DockviewGroupPanelModel extends CompositeDisposable implements IDockviewGroupPanelModel {
@@ -127,11 +127,11 @@ exports.DockviewWillDropEvent = DockviewWillDropEvent;
127
127
  var WillShowOverlayLocationEvent = /** @class */ (function () {
128
128
  function WillShowOverlayLocationEvent(event, options) {
129
129
  this.event = event;
130
- this._kind = options.kind;
130
+ this.options = options;
131
131
  }
132
132
  Object.defineProperty(WillShowOverlayLocationEvent.prototype, "kind", {
133
133
  get: function () {
134
- return this._kind;
134
+ return this.options.kind;
135
135
  },
136
136
  enumerable: false,
137
137
  configurable: true
@@ -157,9 +157,33 @@ var WillShowOverlayLocationEvent = /** @class */ (function () {
157
157
  enumerable: false,
158
158
  configurable: true
159
159
  });
160
+ Object.defineProperty(WillShowOverlayLocationEvent.prototype, "panel", {
161
+ get: function () {
162
+ return this.options.panel;
163
+ },
164
+ enumerable: false,
165
+ configurable: true
166
+ });
167
+ Object.defineProperty(WillShowOverlayLocationEvent.prototype, "api", {
168
+ get: function () {
169
+ return this.options.api;
170
+ },
171
+ enumerable: false,
172
+ configurable: true
173
+ });
174
+ Object.defineProperty(WillShowOverlayLocationEvent.prototype, "group", {
175
+ get: function () {
176
+ return this.options.group;
177
+ },
178
+ enumerable: false,
179
+ configurable: true
180
+ });
160
181
  WillShowOverlayLocationEvent.prototype.preventDefault = function () {
161
182
  this.event.preventDefault();
162
183
  };
184
+ WillShowOverlayLocationEvent.prototype.getData = function () {
185
+ return this.options.getData();
186
+ };
163
187
  return WillShowOverlayLocationEvent;
164
188
  }());
165
189
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
@@ -230,6 +254,10 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
230
254
  }), _this.contentContainer.dropTarget.onWillShowOverlay(function (event) {
231
255
  _this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
232
256
  kind: 'content',
257
+ panel: _this.activePanel,
258
+ api: _this._api,
259
+ group: _this.groupPanel,
260
+ getData: dataTransfer_1.getPanelData,
233
261
  }));
234
262
  }), _this._onMove, _this._onDidChange, _this._onDidDrop, _this._onWillDrop, _this._onDidAddPanel, _this._onDidRemovePanel, _this._onDidActivePanelChange);
235
263
  return _this;
@@ -1,7 +1,7 @@
1
1
  import { Droptarget } from './dnd/droptarget';
2
2
  import { CompositeDisposable } from './lifecycle';
3
3
  import { IDockviewPanel } from './dockview/dockviewPanel';
4
- export type DockviewPanelRenderer = 'onlyWhenVisibile' | 'always';
4
+ export type DockviewPanelRenderer = 'onlyWhenVisible' | 'always';
5
5
  export interface IRenderable {
6
6
  readonly element: HTMLElement;
7
7
  readonly dropTarget: Droptarget;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.11.0
3
+ * @version 1.12.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -3573,7 +3573,7 @@ define(['exports'], (function (exports) { 'use strict';
3573
3573
  this.panel = panel;
3574
3574
  let container;
3575
3575
  switch (panel.api.renderer) {
3576
- case 'onlyWhenVisibile':
3576
+ case 'onlyWhenVisible':
3577
3577
  this.group.renderContainer.detatch(panel);
3578
3578
  if (this.panel) {
3579
3579
  if (doRender) {
@@ -3619,7 +3619,7 @@ define(['exports'], (function (exports) { 'use strict';
3619
3619
  closePanel() {
3620
3620
  var _a;
3621
3621
  if (this.panel) {
3622
- if (this.panel.api.renderer === 'onlyWhenVisibile') {
3622
+ if (this.panel.api.renderer === 'onlyWhenVisible') {
3623
3623
  (_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
3624
3624
  }
3625
3625
  }
@@ -4008,6 +4008,10 @@ define(['exports'], (function (exports) { 'use strict';
4008
4008
  }), this.voidContainer.onWillShowOverlay((event) => {
4009
4009
  this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
4010
4010
  kind: 'header_space',
4011
+ panel: this.group.activePanel,
4012
+ api: this.accessor.api,
4013
+ group: this.group,
4014
+ getData: getPanelData,
4011
4015
  }));
4012
4016
  }), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {
4013
4017
  const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
@@ -4105,7 +4109,13 @@ define(['exports'], (function (exports) { 'use strict';
4105
4109
  index: this.tabs.findIndex((x) => x.value === tab),
4106
4110
  });
4107
4111
  }), tab.onWillShowOverlay((event) => {
4108
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));
4112
+ this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
4113
+ kind: 'tab',
4114
+ panel: this.group.activePanel,
4115
+ api: this.accessor.api,
4116
+ group: this.group,
4117
+ getData: getPanelData,
4118
+ }));
4109
4119
  }));
4110
4120
  const value = { value: tab, disposable };
4111
4121
  this.addTab(value, index);
@@ -4158,7 +4168,7 @@ define(['exports'], (function (exports) { 'use strict';
4158
4168
  }
4159
4169
  class WillShowOverlayLocationEvent {
4160
4170
  get kind() {
4161
- return this._kind;
4171
+ return this.options.kind;
4162
4172
  }
4163
4173
  get nativeEvent() {
4164
4174
  return this.event.nativeEvent;
@@ -4169,12 +4179,24 @@ define(['exports'], (function (exports) { 'use strict';
4169
4179
  get defaultPrevented() {
4170
4180
  return this.event.defaultPrevented;
4171
4181
  }
4182
+ get panel() {
4183
+ return this.options.panel;
4184
+ }
4185
+ get api() {
4186
+ return this.options.api;
4187
+ }
4188
+ get group() {
4189
+ return this.options.group;
4190
+ }
4172
4191
  preventDefault() {
4173
4192
  this.event.preventDefault();
4174
4193
  }
4194
+ getData() {
4195
+ return this.options.getData();
4196
+ }
4175
4197
  constructor(event, options) {
4176
4198
  this.event = event;
4177
- this._kind = options.kind;
4199
+ this.options = options;
4178
4200
  }
4179
4201
  }
4180
4202
  class DockviewGroupPanelModel extends CompositeDisposable {
@@ -4313,6 +4335,10 @@ define(['exports'], (function (exports) { 'use strict';
4313
4335
  }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
4314
4336
  this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
4315
4337
  kind: 'content',
4338
+ panel: this.activePanel,
4339
+ api: this._api,
4340
+ group: this.groupPanel,
4341
+ getData: getPanelData,
4316
4342
  }));
4317
4343
  }), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);
4318
4344
  }
@@ -6981,7 +7007,10 @@ define(['exports'], (function (exports) { 'use strict';
6981
7007
  }
6982
7008
  get renderer() {
6983
7009
  var _a;
6984
- return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';
7010
+ return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisible';
7011
+ }
7012
+ get api() {
7013
+ return this._api;
6985
7014
  }
6986
7015
  constructor(options) {
6987
7016
  var _a, _b;
@@ -7116,6 +7145,10 @@ define(['exports'], (function (exports) { 'use strict';
7116
7145
  }
7117
7146
  this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
7118
7147
  kind: 'edge',
7148
+ panel: undefined,
7149
+ api: this._api,
7150
+ group: undefined,
7151
+ getData: getPanelData,
7119
7152
  }));
7120
7153
  }), this._rootDropTarget.onDrop((event) => {
7121
7154
  var _a;