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
  */
@@ -72,7 +72,7 @@ export class ContentContainer extends CompositeDisposable {
72
72
  this.panel = panel;
73
73
  let container;
74
74
  switch (panel.api.renderer) {
75
- case 'onlyWhenVisibile':
75
+ case 'onlyWhenVisible':
76
76
  this.group.renderContainer.detatch(panel);
77
77
  if (this.panel) {
78
78
  if (doRender) {
@@ -118,7 +118,7 @@ export class ContentContainer extends CompositeDisposable {
118
118
  closePanel() {
119
119
  var _a;
120
120
  if (this.panel) {
121
- if (this.panel.api.renderer === 'onlyWhenVisibile') {
121
+ if (this.panel.api.renderer === 'onlyWhenVisible') {
122
122
  (_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);
123
123
  }
124
124
  }
@@ -4,6 +4,7 @@ import { Tab } from '../tab/tab';
4
4
  import { VoidContainer } from './voidContainer';
5
5
  import { toggleClass } from '../../../dom';
6
6
  import { WillShowOverlayLocationEvent, } from '../../dockviewGroupPanelModel';
7
+ import { getPanelData } from '../../../dnd/dataTransfer';
7
8
  export class TabsContainer extends CompositeDisposable {
8
9
  get panels() {
9
10
  return this.tabs.map((_) => _.value.panel.id);
@@ -128,6 +129,10 @@ export class TabsContainer extends CompositeDisposable {
128
129
  }), this.voidContainer.onWillShowOverlay((event) => {
129
130
  this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
130
131
  kind: 'header_space',
132
+ panel: this.group.activePanel,
133
+ api: this.accessor.api,
134
+ group: this.group,
135
+ getData: getPanelData,
131
136
  }));
132
137
  }), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {
133
138
  const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
@@ -225,7 +230,13 @@ export class TabsContainer extends CompositeDisposable {
225
230
  index: this.tabs.findIndex((x) => x.value === tab),
226
231
  });
227
232
  }), tab.onWillShowOverlay((event) => {
228
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));
233
+ this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
234
+ kind: 'tab',
235
+ panel: this.group.activePanel,
236
+ api: this.accessor.api,
237
+ group: this.group,
238
+ getData: getPanelData,
239
+ }));
229
240
  }));
230
241
  const value = { value: tab, disposable };
231
242
  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;
@@ -141,7 +141,10 @@ export class DockviewComponent extends BaseGrid {
141
141
  }
142
142
  get renderer() {
143
143
  var _a;
144
- return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';
144
+ return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisible';
145
+ }
146
+ get api() {
147
+ return this._api;
145
148
  }
146
149
  constructor(options) {
147
150
  var _a, _b;
@@ -276,6 +279,10 @@ export class DockviewComponent extends BaseGrid {
276
279
  }
277
280
  this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
278
281
  kind: 'edge',
282
+ panel: undefined,
283
+ api: this._api,
284
+ group: undefined,
285
+ getData: getPanelData,
279
286
  }));
280
287
  }), this._rootDropTarget.onDrop((event) => {
281
288
  var _a;
@@ -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 {
@@ -40,7 +40,7 @@ export class DockviewWillDropEvent extends DockviewDidDropEvent {
40
40
  }
41
41
  export class WillShowOverlayLocationEvent {
42
42
  get kind() {
43
- return this._kind;
43
+ return this.options.kind;
44
44
  }
45
45
  get nativeEvent() {
46
46
  return this.event.nativeEvent;
@@ -51,12 +51,24 @@ export class WillShowOverlayLocationEvent {
51
51
  get defaultPrevented() {
52
52
  return this.event.defaultPrevented;
53
53
  }
54
+ get panel() {
55
+ return this.options.panel;
56
+ }
57
+ get api() {
58
+ return this.options.api;
59
+ }
60
+ get group() {
61
+ return this.options.group;
62
+ }
54
63
  preventDefault() {
55
64
  this.event.preventDefault();
56
65
  }
66
+ getData() {
67
+ return this.options.getData();
68
+ }
57
69
  constructor(event, options) {
58
70
  this.event = event;
59
- this._kind = options.kind;
71
+ this.options = options;
60
72
  }
61
73
  }
62
74
  export class DockviewGroupPanelModel extends CompositeDisposable {
@@ -195,6 +207,10 @@ export class DockviewGroupPanelModel extends CompositeDisposable {
195
207
  }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
196
208
  this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
197
209
  kind: 'content',
210
+ panel: this.activePanel,
211
+ api: this._api,
212
+ group: this.groupPanel,
213
+ getData: getPanelData,
198
214
  }));
199
215
  }), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);
200
216
  }
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dockview-core",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support",
5
5
  "keywords": [
6
6
  "splitview",