dockview-core 4.0.1 → 4.2.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 (66) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -1
  2. package/dist/cjs/api/component.api.js +14 -0
  3. package/dist/cjs/dockview/components/popupService.js +1 -1
  4. package/dist/cjs/dockview/components/titlebar/tabs.js +9 -3
  5. package/dist/cjs/dockview/dockviewComponent.d.ts +16 -0
  6. package/dist/cjs/dockview/dockviewComponent.js +27 -10
  7. package/dist/cjs/dockview/options.d.ts +7 -0
  8. package/dist/cjs/dockview/options.js +1 -0
  9. package/dist/cjs/dom.d.ts +6 -4
  10. package/dist/cjs/dom.js +90 -49
  11. package/dist/cjs/events.d.ts +1 -1
  12. package/dist/cjs/events.js +1 -10
  13. package/dist/cjs/overlay/overlay.js +4 -4
  14. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +13 -2
  15. package/dist/cjs/paneview/draggablePaneviewPanel.js +14 -4
  16. package/dist/cjs/paneview/paneviewComponent.d.ts +5 -0
  17. package/dist/cjs/paneview/paneviewComponent.js +25 -3
  18. package/dist/cjs/paneview/paneviewPanel.d.ts +13 -4
  19. package/dist/cjs/paneview/paneviewPanel.js +9 -13
  20. package/dist/cjs/popoutWindow.js +2 -2
  21. package/dist/cjs/splitview/splitviewComponent.js +3 -0
  22. package/dist/dockview-core.amd.js +165 -66
  23. package/dist/dockview-core.amd.js.map +1 -1
  24. package/dist/dockview-core.amd.min.js +2 -2
  25. package/dist/dockview-core.amd.min.js.map +1 -1
  26. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  27. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  28. package/dist/dockview-core.amd.noStyle.js +164 -65
  29. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  30. package/dist/dockview-core.cjs.js +165 -66
  31. package/dist/dockview-core.cjs.js.map +1 -1
  32. package/dist/dockview-core.esm.js +165 -66
  33. package/dist/dockview-core.esm.js.map +1 -1
  34. package/dist/dockview-core.esm.min.js +2 -2
  35. package/dist/dockview-core.esm.min.js.map +1 -1
  36. package/dist/dockview-core.js +165 -66
  37. package/dist/dockview-core.js.map +1 -1
  38. package/dist/dockview-core.min.js +2 -2
  39. package/dist/dockview-core.min.js.map +1 -1
  40. package/dist/dockview-core.min.noStyle.js +2 -2
  41. package/dist/dockview-core.min.noStyle.js.map +1 -1
  42. package/dist/dockview-core.noStyle.js +164 -65
  43. package/dist/dockview-core.noStyle.js.map +1 -1
  44. package/dist/esm/api/component.api.d.ts +3 -1
  45. package/dist/esm/api/component.api.js +6 -0
  46. package/dist/esm/dockview/components/popupService.js +2 -2
  47. package/dist/esm/dockview/components/titlebar/tabs.js +9 -3
  48. package/dist/esm/dockview/dockviewComponent.d.ts +16 -0
  49. package/dist/esm/dockview/dockviewComponent.js +29 -12
  50. package/dist/esm/dockview/options.d.ts +7 -0
  51. package/dist/esm/dockview/options.js +1 -0
  52. package/dist/esm/dom.d.ts +6 -4
  53. package/dist/esm/dom.js +65 -16
  54. package/dist/esm/events.d.ts +1 -1
  55. package/dist/esm/events.js +0 -8
  56. package/dist/esm/overlay/overlay.js +5 -5
  57. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +13 -2
  58. package/dist/esm/paneview/draggablePaneviewPanel.js +14 -4
  59. package/dist/esm/paneview/paneviewComponent.d.ts +5 -0
  60. package/dist/esm/paneview/paneviewComponent.js +25 -3
  61. package/dist/esm/paneview/paneviewPanel.d.ts +13 -4
  62. package/dist/esm/paneview/paneviewPanel.js +9 -13
  63. package/dist/esm/popoutWindow.js +3 -3
  64. package/dist/esm/splitview/splitviewComponent.js +3 -0
  65. package/dist/styles/dockview.css +8 -2
  66. package/package.json +1 -1
@@ -39,7 +39,6 @@ export interface IPaneviewPanel extends BasePanelViewExported<PaneviewPanelApiIm
39
39
  headerVisible: boolean;
40
40
  }
41
41
  export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelApiImpl> implements IPaneview, IPaneviewPanel {
42
- private readonly headerComponent;
43
42
  private readonly _onDidChangeExpansionState;
44
43
  onDidChangeExpansionState: Event<boolean>;
45
44
  private readonly _onDidChange;
@@ -47,7 +46,6 @@ export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelA
47
46
  size?: number;
48
47
  orthogonalSize?: number;
49
48
  }>;
50
- private readonly headerSize;
51
49
  private _orthogonalSize;
52
50
  private _size;
53
51
  private _minimumBodySize;
@@ -57,10 +55,11 @@ export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelA
57
55
  protected body?: HTMLElement;
58
56
  private bodyPart?;
59
57
  private headerPart?;
60
- private expandedSize;
61
58
  private animationTimer;
62
59
  private _orientation;
63
60
  private _headerVisible;
61
+ readonly headerSize: number;
62
+ readonly headerComponent: string | undefined;
64
63
  set orientation(value: Orientation);
65
64
  get orientation(): Orientation;
66
65
  get minimumSize(): number;
@@ -74,7 +73,17 @@ export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelA
74
73
  set maximumBodySize(value: number);
75
74
  get headerVisible(): boolean;
76
75
  set headerVisible(value: boolean);
77
- constructor(id: string, component: string, headerComponent: string | undefined, orientation: Orientation, isExpanded: boolean, isHeaderVisible: boolean);
76
+ constructor(options: {
77
+ id: string;
78
+ component: string;
79
+ headerComponent: string | undefined;
80
+ orientation: Orientation;
81
+ isExpanded: boolean;
82
+ isHeaderVisible: boolean;
83
+ headerSize: number;
84
+ minimumBodySize: number;
85
+ maximumBodySize: number;
86
+ });
78
87
  setVisible(isVisible: boolean): void;
79
88
  setActive(isActive: boolean): void;
80
89
  isExpanded(): boolean;
@@ -51,26 +51,25 @@ export class PaneviewPanel extends BasePanelView {
51
51
  this._headerVisible = value;
52
52
  this.header.style.display = value ? '' : 'none';
53
53
  }
54
- constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
55
- super(id, component, new PaneviewPanelApiImpl(id, component));
56
- this.headerComponent = headerComponent;
54
+ constructor(options) {
55
+ super(options.id, options.component, new PaneviewPanelApiImpl(options.id, options.component));
57
56
  this._onDidChangeExpansionState = new Emitter({ replay: true });
58
57
  this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
59
58
  this._onDidChange = new Emitter();
60
59
  this.onDidChange = this._onDidChange.event;
61
- this.headerSize = 22;
62
60
  this._orthogonalSize = 0;
63
61
  this._size = 0;
64
- this._minimumBodySize = 100;
65
- this._maximumBodySize = Number.POSITIVE_INFINITY;
66
62
  this._isExpanded = false;
67
- this.expandedSize = 0;
68
63
  this.api.pane = this; // TODO cannot use 'this' before 'super'
69
64
  this.api.initialize(this);
70
- this._isExpanded = isExpanded;
71
- this._headerVisible = isHeaderVisible;
65
+ this.headerSize = options.headerSize;
66
+ this.headerComponent = options.headerComponent;
67
+ this._minimumBodySize = options.minimumBodySize;
68
+ this._maximumBodySize = options.maximumBodySize;
69
+ this._isExpanded = options.isExpanded;
70
+ this._headerVisible = options.isHeaderVisible;
72
71
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
73
- this._orientation = orientation;
72
+ this._orientation = options.orientation;
74
73
  this.element.classList.add('dv-pane');
75
74
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
76
75
  const { isVisible } = event;
@@ -137,9 +136,6 @@ export class PaneviewPanel extends BasePanelView {
137
136
  const [width, height] = this.orientation === Orientation.HORIZONTAL
138
137
  ? [size, orthogonalSize]
139
138
  : [orthogonalSize, size];
140
- if (this.isExpanded()) {
141
- this.expandedSize = width;
142
- }
143
139
  super.layout(width, height);
144
140
  }
145
141
  init(parameters) {
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { addStyles } from './dom';
11
- import { Emitter, addDisposableWindowListener } from './events';
11
+ import { Emitter, addDisposableListener } from './events';
12
12
  import { CompositeDisposable, Disposable } from './lifecycle';
13
13
  export class PopoutWindow extends CompositeDisposable {
14
14
  get window() {
@@ -83,7 +83,7 @@ export class PopoutWindow extends CompositeDisposable {
83
83
  this._window = { value: externalWindow, disposable };
84
84
  disposable.addDisposables(Disposable.from(() => {
85
85
  externalWindow.close();
86
- }), addDisposableWindowListener(window, 'beforeunload', () => {
86
+ }), addDisposableListener(window, 'beforeunload', () => {
87
87
  /**
88
88
  * before the main window closes we should close this popup too
89
89
  * to be good citizens
@@ -118,7 +118,7 @@ export class PopoutWindow extends CompositeDisposable {
118
118
  * beforeunload must be registered after load for reasons I could not determine
119
119
  * otherwise the beforeunload event will not fire when the window is closed
120
120
  */
121
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
121
+ addDisposableListener(externalWindow, 'beforeunload', () => {
122
122
  /**
123
123
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
124
124
  */
@@ -23,6 +23,9 @@ export class SplitviewComponent extends Resizable {
23
23
  return this._splitview;
24
24
  }
25
25
  set splitview(value) {
26
+ if (this._splitview) {
27
+ this._splitview.dispose();
28
+ }
26
29
  this._splitview = value;
27
30
  this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
28
31
  this._onDidLayoutChange.fire(undefined);
@@ -1,7 +1,6 @@
1
1
  .dv-scrollable {
2
2
  position: relative;
3
3
  overflow: hidden;
4
- width: 100%;
5
4
  }
6
5
  .dv-scrollable .dv-scrollbar-horizontal {
7
6
  position: absolute;
@@ -1100,7 +1099,7 @@
1100
1099
  .dv-tabs-container {
1101
1100
  display: flex;
1102
1101
  height: 100%;
1103
- overflow: hidden;
1102
+ overflow: auto;
1104
1103
  scrollbar-width: thin;
1105
1104
  /* Track */
1106
1105
  /* Handle */
@@ -1126,6 +1125,10 @@
1126
1125
  background: var(--dv-tabs-container-scrollbar-color);
1127
1126
  }
1128
1127
 
1128
+ .dv-scrollable > .dv-tabs-container {
1129
+ overflow: hidden;
1130
+ }
1131
+
1129
1132
  .dv-tab {
1130
1133
  -webkit-user-drag: element;
1131
1134
  outline: none;
@@ -1162,6 +1165,9 @@
1162
1165
  height: var(--dv-tabs-and-actions-container-height);
1163
1166
  font-size: var(--dv-tabs-and-actions-container-font-size);
1164
1167
  }
1168
+ .dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable {
1169
+ flex-grow: 1;
1170
+ }
1165
1171
  .dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container {
1166
1172
  flex-grow: 1;
1167
1173
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dockview-core",
3
- "version": "4.0.1",
3
+ "version": "4.2.0",
4
4
  "description": "Zero dependency layout manager supporting tabs, grids and splitviews",
5
5
  "keywords": [
6
6
  "splitview",