dockview-core 1.10.0 → 1.10.2

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 (91) hide show
  1. package/dist/cjs/api/component.api.d.ts +10 -2
  2. package/dist/cjs/api/component.api.js +10 -2
  3. package/dist/cjs/api/dockviewGroupPanelApi.js +1 -1
  4. package/dist/cjs/api/dockviewPanelApi.d.ts +5 -1
  5. package/dist/cjs/api/dockviewPanelApi.js +43 -26
  6. package/dist/cjs/api/gridviewPanelApi.d.ts +1 -1
  7. package/dist/cjs/api/gridviewPanelApi.js +2 -2
  8. package/dist/cjs/api/panelApi.d.ts +12 -16
  9. package/dist/cjs/api/panelApi.js +17 -20
  10. package/dist/cjs/api/paneviewPanelApi.d.ts +1 -1
  11. package/dist/cjs/api/paneviewPanelApi.js +2 -2
  12. package/dist/cjs/api/splitviewPanelApi.d.ts +1 -1
  13. package/dist/cjs/api/splitviewPanelApi.js +2 -2
  14. package/dist/cjs/dockview/components/panel/content.js +1 -1
  15. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
  16. package/dist/cjs/dockview/deserializer.js +1 -1
  17. package/dist/cjs/dockview/dockviewComponent.js +18 -8
  18. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +10 -5
  19. package/dist/cjs/dockview/dockviewGroupPanelModel.js +16 -0
  20. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  21. package/dist/cjs/dockview/dockviewPanel.js +2 -2
  22. package/dist/cjs/dockview/options.d.ts +3 -3
  23. package/dist/cjs/dockview/types.d.ts +0 -1
  24. package/dist/cjs/gridview/gridviewPanel.js +4 -4
  25. package/dist/cjs/lifecycle.d.ts +1 -1
  26. package/dist/cjs/paneview/paneview.d.ts +1 -0
  27. package/dist/cjs/paneview/paneview.js +3 -0
  28. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -0
  29. package/dist/cjs/paneview/paneviewComponent.js +6 -0
  30. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -0
  31. package/dist/cjs/paneview/paneviewPanel.js +6 -2
  32. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  33. package/dist/cjs/splitview/splitviewComponent.js +5 -5
  34. package/dist/cjs/splitview/splitviewPanel.js +4 -4
  35. package/dist/dockview-core.amd.js +134 -79
  36. package/dist/dockview-core.amd.js.map +1 -1
  37. package/dist/dockview-core.amd.min.js +2 -2
  38. package/dist/dockview-core.amd.min.js.map +1 -1
  39. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  40. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  41. package/dist/dockview-core.amd.noStyle.js +134 -79
  42. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  43. package/dist/dockview-core.cjs.js +134 -79
  44. package/dist/dockview-core.cjs.js.map +1 -1
  45. package/dist/dockview-core.esm.js +134 -79
  46. package/dist/dockview-core.esm.js.map +1 -1
  47. package/dist/dockview-core.esm.min.js +2 -2
  48. package/dist/dockview-core.esm.min.js.map +1 -1
  49. package/dist/dockview-core.js +134 -79
  50. package/dist/dockview-core.js.map +1 -1
  51. package/dist/dockview-core.min.js +2 -2
  52. package/dist/dockview-core.min.js.map +1 -1
  53. package/dist/dockview-core.min.noStyle.js +2 -2
  54. package/dist/dockview-core.min.noStyle.js.map +1 -1
  55. package/dist/dockview-core.noStyle.js +134 -79
  56. package/dist/dockview-core.noStyle.js.map +1 -1
  57. package/dist/esm/api/component.api.d.ts +10 -2
  58. package/dist/esm/api/component.api.js +10 -2
  59. package/dist/esm/api/dockviewGroupPanelApi.js +1 -1
  60. package/dist/esm/api/dockviewPanelApi.d.ts +5 -1
  61. package/dist/esm/api/dockviewPanelApi.js +38 -25
  62. package/dist/esm/api/gridviewPanelApi.d.ts +1 -1
  63. package/dist/esm/api/gridviewPanelApi.js +2 -2
  64. package/dist/esm/api/panelApi.d.ts +12 -16
  65. package/dist/esm/api/panelApi.js +16 -16
  66. package/dist/esm/api/paneviewPanelApi.d.ts +1 -1
  67. package/dist/esm/api/paneviewPanelApi.js +2 -2
  68. package/dist/esm/api/splitviewPanelApi.d.ts +1 -1
  69. package/dist/esm/api/splitviewPanelApi.js +2 -2
  70. package/dist/esm/dockview/components/panel/content.js +1 -1
  71. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
  72. package/dist/esm/dockview/deserializer.js +1 -1
  73. package/dist/esm/dockview/dockviewComponent.js +19 -9
  74. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +10 -5
  75. package/dist/esm/dockview/dockviewGroupPanelModel.js +11 -0
  76. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  77. package/dist/esm/dockview/dockviewPanel.js +2 -2
  78. package/dist/esm/dockview/options.d.ts +3 -3
  79. package/dist/esm/dockview/types.d.ts +0 -1
  80. package/dist/esm/gridview/gridviewPanel.js +4 -4
  81. package/dist/esm/lifecycle.d.ts +1 -1
  82. package/dist/esm/paneview/paneview.d.ts +1 -0
  83. package/dist/esm/paneview/paneview.js +3 -0
  84. package/dist/esm/paneview/paneviewComponent.d.ts +2 -0
  85. package/dist/esm/paneview/paneviewComponent.js +6 -0
  86. package/dist/esm/paneview/paneviewPanel.d.ts +2 -0
  87. package/dist/esm/paneview/paneviewPanel.js +6 -2
  88. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  89. package/dist/esm/splitview/splitviewComponent.js +5 -5
  90. package/dist/esm/splitview/splitviewPanel.js +4 -4
  91. package/package.json +1 -1
@@ -15,7 +15,7 @@ export class DockviewPanel extends CompositeDisposable {
15
15
  var _a;
16
16
  return (_a = this._renderer) !== null && _a !== void 0 ? _a : this.accessor.renderer;
17
17
  }
18
- constructor(id, accessor, containerApi, group, view, options) {
18
+ constructor(id, component, tabComponent, accessor, containerApi, group, view, options) {
19
19
  super();
20
20
  this.id = id;
21
21
  this.accessor = accessor;
@@ -23,7 +23,7 @@ export class DockviewPanel extends CompositeDisposable {
23
23
  this.view = view;
24
24
  this._renderer = options.renderer;
25
25
  this._group = group;
26
- this.api = new DockviewPanelApiImpl(this, this._group, accessor);
26
+ this.api = new DockviewPanelApiImpl(this, this._group, accessor, component, tabComponent);
27
27
  this.addDisposables(this.api.onActiveChange(() => {
28
28
  accessor.setActivePanel(this);
29
29
  }), this.api.onDidSizeChange((event) => {
@@ -1,14 +1,14 @@
1
1
  import { DockviewApi } from '../api/component.api';
2
2
  import { Direction } from '../gridview/baseComponentGridview';
3
3
  import { IGridView } from '../gridview/gridview';
4
- import { IContentRenderer, ITabRenderer, WatermarkConstructor, IWatermarkRenderer, DockviewDropTargets } from './types';
4
+ import { IContentRenderer, ITabRenderer, WatermarkConstructor, IWatermarkRenderer } from './types';
5
5
  import { Parameters } from '../panel/types';
6
6
  import { DockviewGroupPanel } from './dockviewGroupPanel';
7
7
  import { ISplitviewStyles, Orientation } from '../splitview/splitview';
8
8
  import { PanelTransfer } from '../dnd/dataTransfer';
9
9
  import { IDisposable } from '../lifecycle';
10
10
  import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
11
- import { GroupOptions } from './dockviewGroupPanelModel';
11
+ import { DockviewGroupDropLocation, GroupOptions } from './dockviewGroupPanelModel';
12
12
  import { IDockviewPanel } from './dockviewPanel';
13
13
  import { ComponentConstructor, FrameworkFactory } from '../panel/componentFactory';
14
14
  import { DockviewGroupPanelApi } from '../api/dockviewGroupPanelApi';
@@ -50,7 +50,7 @@ export interface ViewFactoryData {
50
50
  }
51
51
  export interface DockviewDndOverlayEvent {
52
52
  nativeEvent: DragEvent;
53
- target: DockviewDropTargets;
53
+ target: DockviewGroupDropLocation;
54
54
  position: Position;
55
55
  group?: DockviewGroupPanel;
56
56
  getData: () => PanelTransfer | undefined;
@@ -6,7 +6,6 @@ import { Event } from '../events';
6
6
  import { Optional } from '../types';
7
7
  import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel';
8
8
  import { DockviewPanelRenderer } from '../overlayRenderContainer';
9
- export type DockviewDropTargets = 'tab' | 'panel' | 'tabContainer' | 'edge';
10
9
  export interface HeaderPartInitParameters {
11
10
  title: string;
12
11
  }
@@ -52,7 +52,7 @@ export class GridviewPanel extends BasePanelView {
52
52
  return this.api.isActive;
53
53
  }
54
54
  constructor(id, component, options, api) {
55
- super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id));
55
+ super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
56
56
  this._evaluatedMinimumWidth = 0;
57
57
  this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;
58
58
  this._evaluatedMinimumHeight = 0;
@@ -77,10 +77,10 @@ export class GridviewPanel extends BasePanelView {
77
77
  this._maximumHeight = options.maximumHeight;
78
78
  }
79
79
  this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement
80
- this.addDisposables(this.api.onDidHiddenChange((event) => {
81
- const { isHidden } = event;
80
+ this.addDisposables(this.api.onWillVisibilityChange((event) => {
81
+ const { isVisible } = event;
82
82
  const { accessor } = this._params;
83
- accessor.setVisible(this, !isHidden);
83
+ accessor.setVisible(this, isVisible);
84
84
  }), this.api.onActiveChange(() => {
85
85
  const { accessor } = this._params;
86
86
  accessor.doSetGroupActive(this);
@@ -1,5 +1,5 @@
1
1
  export interface IDisposable {
2
- dispose: () => void;
2
+ dispose(): void;
3
3
  }
4
4
  export interface IValueDisposable<T> {
5
5
  readonly value: T;
@@ -26,6 +26,7 @@ export declare class Paneview extends CompositeDisposable implements IDisposable
26
26
  orientation: Orientation;
27
27
  descriptor?: ISplitViewDescriptor;
28
28
  });
29
+ setViewVisible(index: number, visible: boolean): void;
29
30
  addPane(pane: PaneviewPanel, size?: number | Sizing, index?: number, skipLayout?: boolean): void;
30
31
  getViewSize(index: number): number;
31
32
  getPanes(): PaneviewPanel[];
@@ -66,6 +66,9 @@ export class Paneview extends CompositeDisposable {
66
66
  this._onDidChange.fire();
67
67
  }));
68
68
  }
69
+ setViewVisible(index, visible) {
70
+ this.splitview.setViewVisible(index, visible);
71
+ }
69
72
  addPane(pane, size, index = this.splitview.length, skipLayout = false) {
70
73
  const disposable = pane.onDidChangeExpansionState(() => {
71
74
  this.setupAnimation();
@@ -84,6 +84,7 @@ export interface IPaneviewComponent extends IDisposable {
84
84
  getPanel(id: string): IPaneviewPanel | undefined;
85
85
  movePanel(from: number, to: number): void;
86
86
  updateOptions(options: Partial<PaneviewComponentOptions>): void;
87
+ setVisible(panel: IPaneviewPanel, visible: boolean): void;
87
88
  clear(): void;
88
89
  }
89
90
  export declare class PaneviewComponent extends Resizable implements IPaneviewComponent {
@@ -112,6 +113,7 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
112
113
  get width(): number;
113
114
  get options(): PaneviewComponentOptions;
114
115
  constructor(options: PaneviewComponentOptions);
116
+ setVisible(panel: PaneviewPanel, visible: boolean): void;
115
117
  focus(): void;
116
118
  updateOptions(options: Partial<PaneviewComponentOptions>): void;
117
119
  addPanel<T extends object = Parameters>(options: AddPaneviewComponentOptions<T>): IPaneviewPanel;
@@ -85,6 +85,10 @@ export class PaneviewComponent extends Resizable {
85
85
  });
86
86
  this.addDisposables(this._disposable);
87
87
  }
88
+ setVisible(panel, visible) {
89
+ const index = this.panels.indexOf(panel);
90
+ this.paneview.setViewVisible(index, visible);
91
+ }
88
92
  focus() {
89
93
  //noop
90
94
  }
@@ -131,6 +135,7 @@ export class PaneviewComponent extends Resizable {
131
135
  isExpanded: options.isExpanded,
132
136
  title: options.title,
133
137
  containerApi: new PaneviewApi(this),
138
+ accessor: this,
134
139
  });
135
140
  this.paneview.addPane(view, size, index);
136
141
  view.orientation = this.paneview.orientation;
@@ -230,6 +235,7 @@ export class PaneviewComponent extends Resizable {
230
235
  title: data.title,
231
236
  isExpanded: !!view.expanded,
232
237
  containerApi: new PaneviewApi(this),
238
+ accessor: this,
233
239
  });
234
240
  panel.orientation = this.paneview.orientation;
235
241
  });
@@ -5,6 +5,7 @@ import { BasePanelView, BasePanelViewExported, BasePanelViewState } from '../gri
5
5
  import { IDisposable } from '../lifecycle';
6
6
  import { IFrameworkPart, PanelInitParameters, PanelUpdateEvent } from '../panel/types';
7
7
  import { IView, Orientation } from '../splitview/splitview';
8
+ import { PaneviewComponent } from './paneviewComponent';
8
9
  export interface PanePanelViewState extends BasePanelViewState {
9
10
  headerComponent?: string;
10
11
  title: string;
@@ -15,6 +16,7 @@ export interface PanePanelInitParameter extends PanelInitParameters {
15
16
  isExpanded?: boolean;
16
17
  title: string;
17
18
  containerApi: PaneviewApi;
19
+ accessor: PaneviewComponent;
18
20
  }
19
21
  export interface PanePanelComponentInitParameter extends PanePanelInitParameter {
20
22
  api: PaneviewPanelApiImpl;
@@ -52,7 +52,7 @@ export class PaneviewPanel extends BasePanelView {
52
52
  this.header.style.display = value ? '' : 'none';
53
53
  }
54
54
  constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
55
- super(id, component, new PaneviewPanelApiImpl(id));
55
+ super(id, component, new PaneviewPanelApiImpl(id, component));
56
56
  this.headerComponent = headerComponent;
57
57
  this._onDidChangeExpansionState = new Emitter({ replay: true });
58
58
  this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
@@ -72,7 +72,11 @@ export class PaneviewPanel extends BasePanelView {
72
72
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
73
73
  this._orientation = orientation;
74
74
  this.element.classList.add('pane');
75
- this.addDisposables(this.api.onDidSizeChange((event) => {
75
+ this.addDisposables(this.api.onWillVisibilityChange((event) => {
76
+ const { isVisible } = event;
77
+ const { accessor } = this._params;
78
+ accessor.setVisible(this, isVisible);
79
+ }), this.api.onDidSizeChange((event) => {
76
80
  this._onDidChange.fire({ size: event.size });
77
81
  }), addDisposableListener(this.element, 'mouseenter', (ev) => {
78
82
  this.api._onMouseEnter.fire(ev);
@@ -88,7 +88,7 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
88
88
  focus(): void;
89
89
  movePanel(from: number, to: number): void;
90
90
  setVisible(panel: SplitviewPanel, visible: boolean): void;
91
- setActive(view: SplitviewPanel, skipFocus?: boolean): void;
91
+ setActive(panel: SplitviewPanel, skipFocus?: boolean): void;
92
92
  removePanel(panel: SplitviewPanel, sizing?: Sizing): void;
93
93
  getPanel(id: string): SplitviewPanel | undefined;
94
94
  addPanel<T extends object = Parameters>(options: AddSplitviewComponentOptions<T>): SplitviewPanel;
@@ -86,19 +86,19 @@ export class SplitviewComponent extends Resizable {
86
86
  const index = this.panels.indexOf(panel);
87
87
  this.splitview.setViewVisible(index, visible);
88
88
  }
89
- setActive(view, skipFocus) {
90
- this._activePanel = view;
89
+ setActive(panel, skipFocus) {
90
+ this._activePanel = panel;
91
91
  this.panels
92
- .filter((v) => v !== view)
92
+ .filter((v) => v !== panel)
93
93
  .forEach((v) => {
94
94
  v.api._onDidActiveChange.fire({ isActive: false });
95
95
  if (!skipFocus) {
96
96
  v.focus();
97
97
  }
98
98
  });
99
- view.api._onDidActiveChange.fire({ isActive: true });
99
+ panel.api._onDidActiveChange.fire({ isActive: true });
100
100
  if (!skipFocus) {
101
- view.focus();
101
+ panel.focus();
102
102
  }
103
103
  }
104
104
  removePanel(panel, sizing) {
@@ -36,7 +36,7 @@ export class SplitviewPanel extends BasePanelView {
36
36
  return this._snap;
37
37
  }
38
38
  constructor(id, componentName) {
39
- super(id, componentName, new SplitviewPanelApiImpl(id));
39
+ super(id, componentName, new SplitviewPanelApiImpl(id, componentName));
40
40
  this._evaluatedMinimumSize = 0;
41
41
  this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;
42
42
  this._minimumSize = 0;
@@ -45,10 +45,10 @@ export class SplitviewPanel extends BasePanelView {
45
45
  this._onDidChange = new Emitter();
46
46
  this.onDidChange = this._onDidChange.event;
47
47
  this.api.initialize(this);
48
- this.addDisposables(this._onDidChange, this.api.onDidHiddenChange((event) => {
49
- const { isHidden } = event;
48
+ this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {
49
+ const { isVisible } = event;
50
50
  const { accessor } = this._params;
51
- accessor.setVisible(this, !isHidden);
51
+ accessor.setVisible(this, isVisible);
52
52
  }), this.api.onActiveChange(() => {
53
53
  const { accessor } = this._params;
54
54
  accessor.setActive(this);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dockview-core",
3
- "version": "1.10.0",
3
+ "version": "1.10.2",
4
4
  "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support",
5
5
  "keywords": [
6
6
  "splitview",