dockview-core 4.5.0 → 4.6.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 (50) hide show
  1. package/dist/cjs/api/component.api.d.ts +2 -1
  2. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +1 -1
  3. package/dist/cjs/dockview/components/titlebar/tabs.js +2 -2
  4. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +1 -1
  5. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +6 -3
  6. package/dist/cjs/dockview/components/titlebar/voidContainer.js +3 -0
  7. package/dist/cjs/dockview/dockviewComponent.d.ts +2 -1
  8. package/dist/cjs/dockview/dockviewComponent.js +2 -1
  9. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +3 -24
  10. package/dist/cjs/dockview/dockviewGroupPanelModel.js +3 -65
  11. package/dist/cjs/dockview/events.d.ts +28 -0
  12. package/dist/cjs/dockview/events.js +66 -0
  13. package/dist/cjs/dockview/options.d.ts +2 -1
  14. package/dist/dockview-core.amd.js +42 -37
  15. package/dist/dockview-core.amd.js.map +1 -1
  16. package/dist/dockview-core.amd.min.js +2 -2
  17. package/dist/dockview-core.amd.min.js.map +1 -1
  18. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  19. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  20. package/dist/dockview-core.amd.noStyle.js +41 -36
  21. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  22. package/dist/dockview-core.cjs.js +42 -37
  23. package/dist/dockview-core.cjs.js.map +1 -1
  24. package/dist/dockview-core.esm.js +43 -37
  25. package/dist/dockview-core.esm.js.map +1 -1
  26. package/dist/dockview-core.esm.min.js +2 -2
  27. package/dist/dockview-core.esm.min.js.map +1 -1
  28. package/dist/dockview-core.js +42 -37
  29. package/dist/dockview-core.js.map +1 -1
  30. package/dist/dockview-core.min.js +2 -2
  31. package/dist/dockview-core.min.js.map +1 -1
  32. package/dist/dockview-core.min.noStyle.js +2 -2
  33. package/dist/dockview-core.min.noStyle.js.map +1 -1
  34. package/dist/dockview-core.noStyle.js +41 -36
  35. package/dist/dockview-core.noStyle.js.map +1 -1
  36. package/dist/esm/api/component.api.d.ts +2 -1
  37. package/dist/esm/dockview/components/titlebar/tabs.d.ts +1 -1
  38. package/dist/esm/dockview/components/titlebar/tabs.js +1 -1
  39. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +1 -1
  40. package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -2
  41. package/dist/esm/dockview/components/titlebar/voidContainer.js +3 -0
  42. package/dist/esm/dockview/dockviewComponent.d.ts +2 -1
  43. package/dist/esm/dockview/dockviewComponent.js +2 -1
  44. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +3 -24
  45. package/dist/esm/dockview/dockviewGroupPanelModel.js +1 -33
  46. package/dist/esm/dockview/events.d.ts +28 -0
  47. package/dist/esm/dockview/events.js +33 -0
  48. package/dist/esm/dockview/options.d.ts +2 -1
  49. package/dist/styles/dockview.css +5 -0
  50. package/package.json +4 -5
@@ -15,7 +15,8 @@ import { IDockviewPanel } from '../dockview/dockviewPanel';
15
15
  import { PaneviewDidDropEvent } from '../paneview/draggablePaneviewPanel';
16
16
  import { GroupDragEvent, TabDragEvent } from '../dockview/components/titlebar/tabsContainer';
17
17
  import { Box } from '../types';
18
- import { DockviewDidDropEvent, DockviewWillDropEvent, WillShowOverlayLocationEvent } from '../dockview/dockviewGroupPanelModel';
18
+ import { DockviewDidDropEvent, DockviewWillDropEvent } from '../dockview/dockviewGroupPanelModel';
19
+ import { WillShowOverlayLocationEvent } from '../dockview/events';
19
20
  import { PaneviewComponentOptions, PaneviewDndOverlayEvent } from '../paneview/options';
20
21
  import { SplitviewComponentOptions } from '../splitview/options';
21
22
  import { GridviewComponentOptions } from '../gridview/options';
@@ -2,7 +2,7 @@ import { Event } from '../../../events';
2
2
  import { CompositeDisposable } from '../../../lifecycle';
3
3
  import { DockviewComponent } from '../../dockviewComponent';
4
4
  import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
- import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
5
+ import { WillShowOverlayLocationEvent } from '../../events';
6
6
  import { IDockviewPanel } from '../../dockviewPanel';
7
7
  import { Tab } from '../tab/tab';
8
8
  import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
@@ -3,7 +3,7 @@ import { isChildEntirelyVisibleWithinParent, OverflowObserver, } from '../../../
3
3
  import { addDisposableListener, Emitter } from '../../../events';
4
4
  import { CompositeDisposable, Disposable, MutableDisposable, } from '../../../lifecycle';
5
5
  import { Scrollbar } from '../../../scrollbar';
6
- import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
6
+ import { WillShowOverlayLocationEvent } from '../../events';
7
7
  import { Tab } from '../tab/tab';
8
8
  export class Tabs extends CompositeDisposable {
9
9
  get showTabsOverflowControl() {
@@ -4,7 +4,7 @@ import { Tab } from '../tab/tab';
4
4
  import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
5
  import { IDockviewPanel } from '../../dockviewPanel';
6
6
  import { DockviewComponent } from '../../dockviewComponent';
7
- import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
7
+ import { WillShowOverlayLocationEvent } from '../../events';
8
8
  export interface TabDropIndexEvent {
9
9
  readonly event: DragEvent;
10
10
  readonly index: number;
@@ -2,7 +2,7 @@ import { CompositeDisposable, Disposable, MutableDisposable, } from '../../../li
2
2
  import { addDisposableListener, Emitter } from '../../../events';
3
3
  import { VoidContainer } from './voidContainer';
4
4
  import { findRelativeZIndexParent, toggleClass } from '../../../dom';
5
- import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
5
+ import { WillShowOverlayLocationEvent } from '../../events';
6
6
  import { getPanelData } from '../../../dnd/dataTransfer';
7
7
  import { Tabs } from './tabs';
8
8
  import { createDropdownElementHandle, } from './tabOverflowControl';
@@ -210,8 +210,11 @@ export class TabsContainer extends CompositeDisposable {
210
210
  toggleClass(wrapper, 'dv-tab', true);
211
211
  toggleClass(wrapper, 'dv-active-tab', panelObject.api.isActive);
212
212
  toggleClass(wrapper, 'dv-inactive-tab', !panelObject.api.isActive);
213
- wrapper.addEventListener('pointerdown', () => {
213
+ wrapper.addEventListener('click', (event) => {
214
214
  this.accessor.popupService.close();
215
+ if (event.defaultPrevented) {
216
+ return;
217
+ }
215
218
  tab.element.scrollIntoView();
216
219
  tab.panel.api.setActive();
217
220
  });
@@ -3,6 +3,7 @@ import { Droptarget, } from '../../../dnd/droptarget';
3
3
  import { GroupDragHandler } from '../../../dnd/groupDragHandler';
4
4
  import { addDisposableListener, Emitter } from '../../../events';
5
5
  import { CompositeDisposable } from '../../../lifecycle';
6
+ import { toggleClass } from '../../../dom';
6
7
  export class VoidContainer extends CompositeDisposable {
7
8
  get element() {
8
9
  return this._element;
@@ -18,6 +19,7 @@ export class VoidContainer extends CompositeDisposable {
18
19
  this._element = document.createElement('div');
19
20
  this._element.className = 'dv-void-container';
20
21
  this._element.draggable = !this.accessor.options.disableDnd;
22
+ toggleClass(this._element, 'dv-draggable', !this.accessor.options.disableDnd);
21
23
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
22
24
  this.accessor.doSetGroupActive(this.group);
23
25
  }));
@@ -42,5 +44,6 @@ export class VoidContainer extends CompositeDisposable {
42
44
  }
43
45
  updateDragAndDropState() {
44
46
  this._element.draggable = !this.accessor.options.disableDnd;
47
+ toggleClass(this._element, 'dv-draggable', !this.accessor.options.disableDnd);
45
48
  }
46
49
  }
@@ -7,7 +7,8 @@ import { AddGroupOptions, AddPanelOptions, DockviewComponentOptions, DockviewDnd
7
7
  import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
8
8
  import { DockviewApi } from '../api/component.api';
9
9
  import { Orientation } from '../splitview/splitview';
10
- import { GroupOptions, GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent, WillShowOverlayLocationEvent } from './dockviewGroupPanelModel';
10
+ import { GroupOptions, GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent } from './dockviewGroupPanelModel';
11
+ import { WillShowOverlayLocationEvent } from './events';
11
12
  import { DockviewGroupPanel } from './dockviewGroupPanel';
12
13
  import { Parameters } from '../panel/types';
13
14
  import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
@@ -11,7 +11,8 @@ import { DockviewUnhandledDragOverEvent, isGroupOptionsWithGroup, isGroupOptions
11
11
  import { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';
12
12
  import { DockviewApi } from '../api/component.api';
13
13
  import { Orientation } from '../splitview/splitview';
14
- import { DockviewDidDropEvent, DockviewWillDropEvent, WillShowOverlayLocationEvent, } from './dockviewGroupPanelModel';
14
+ import { DockviewDidDropEvent, DockviewWillDropEvent, } from './dockviewGroupPanelModel';
15
+ import { WillShowOverlayLocationEvent } from './events';
15
16
  import { DockviewGroupPanel } from './dockviewGroupPanel';
16
17
  import { DockviewPanelModel } from './dockviewPanelModel';
17
18
  import { getPanelData } from '../dnd/dataTransfer';
@@ -1,8 +1,9 @@
1
1
  import { DockviewApi } from '../api/component.api';
2
2
  import { PanelTransfer } from '../dnd/dataTransfer';
3
- import { Position, WillShowOverlayEvent } from '../dnd/droptarget';
3
+ import { Position } from '../dnd/droptarget';
4
4
  import { DockviewComponent } from './dockviewComponent';
5
- import { DockviewEvent, Event, IDockviewEvent } from '../events';
5
+ import { DockviewEvent, Event } from '../events';
6
+ import { DockviewGroupDropLocation, WillShowOverlayLocationEvent } from './events';
6
7
  import { IViewSize } from '../gridview/gridview';
7
8
  import { CompositeDisposable } from '../lifecycle';
8
9
  import { IPanel, PanelInitParameters, PanelUpdateEvent, Parameters } from '../panel/types';
@@ -75,7 +76,6 @@ export interface IHeader {
75
76
  hidden: boolean;
76
77
  }
77
78
  export type DockviewGroupPanelLocked = boolean | 'no-drop-target';
78
- export type DockviewGroupDropLocation = 'tab' | 'header_space' | 'content' | 'edge';
79
79
  export interface IDockviewGroupPanelModel extends IPanel {
80
80
  readonly isActive: boolean;
81
81
  readonly size: number;
@@ -123,27 +123,6 @@ export type DockviewGroupLocation = {
123
123
  getWindow: () => Window;
124
124
  popoutUrl?: string;
125
125
  };
126
- export interface WillShowOverlayLocationEventOptions {
127
- readonly kind: DockviewGroupDropLocation;
128
- readonly panel: IDockviewPanel | undefined;
129
- readonly api: DockviewApi;
130
- readonly group: DockviewGroupPanel | undefined;
131
- getData: () => PanelTransfer | undefined;
132
- }
133
- export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
134
- private readonly event;
135
- readonly options: WillShowOverlayLocationEventOptions;
136
- get kind(): DockviewGroupDropLocation;
137
- get nativeEvent(): DragEvent;
138
- get position(): Position;
139
- get defaultPrevented(): boolean;
140
- get panel(): IDockviewPanel | undefined;
141
- get api(): DockviewApi;
142
- get group(): DockviewGroupPanel | undefined;
143
- preventDefault(): void;
144
- getData(): PanelTransfer | undefined;
145
- constructor(event: WillShowOverlayEvent, options: WillShowOverlayLocationEventOptions);
146
- }
147
126
  export declare class DockviewGroupPanelModel extends CompositeDisposable implements IDockviewGroupPanelModel {
148
127
  private readonly container;
149
128
  private readonly accessor;
@@ -2,6 +2,7 @@ import { DockviewApi } from '../api/component.api';
2
2
  import { getPanelData } from '../dnd/dataTransfer';
3
3
  import { isAncestor, toggleClass } from '../dom';
4
4
  import { addDisposableListener, DockviewEvent, Emitter, } from '../events';
5
+ import { WillShowOverlayLocationEvent } from './events';
5
6
  import { CompositeDisposable } from '../lifecycle';
6
7
  import { ContentContainer, } from './components/panel/content';
7
8
  import { TabsContainer, } from './components/titlebar/tabsContainer';
@@ -39,39 +40,6 @@ export class DockviewWillDropEvent extends DockviewDidDropEvent {
39
40
  this._kind = options.kind;
40
41
  }
41
42
  }
42
- export class WillShowOverlayLocationEvent {
43
- get kind() {
44
- return this.options.kind;
45
- }
46
- get nativeEvent() {
47
- return this.event.nativeEvent;
48
- }
49
- get position() {
50
- return this.event.position;
51
- }
52
- get defaultPrevented() {
53
- return this.event.defaultPrevented;
54
- }
55
- get panel() {
56
- return this.options.panel;
57
- }
58
- get api() {
59
- return this.options.api;
60
- }
61
- get group() {
62
- return this.options.group;
63
- }
64
- preventDefault() {
65
- this.event.preventDefault();
66
- }
67
- getData() {
68
- return this.options.getData();
69
- }
70
- constructor(event, options) {
71
- this.event = event;
72
- this.options = options;
73
- }
74
- }
75
43
  export class DockviewGroupPanelModel extends CompositeDisposable {
76
44
  get element() {
77
45
  throw new Error('dockview: not supported');
@@ -0,0 +1,28 @@
1
+ import { Position, WillShowOverlayEvent } from '../dnd/droptarget';
2
+ import { PanelTransfer } from '../dnd/dataTransfer';
3
+ import { DockviewApi } from '../api/component.api';
4
+ import { IDockviewPanel } from './dockviewPanel';
5
+ import { DockviewGroupPanel } from './dockviewGroupPanel';
6
+ import { IDockviewEvent } from '../events';
7
+ export type DockviewGroupDropLocation = 'tab' | 'header_space' | 'content' | 'edge';
8
+ export interface WillShowOverlayLocationEventOptions {
9
+ readonly kind: DockviewGroupDropLocation;
10
+ readonly panel: IDockviewPanel | undefined;
11
+ readonly api: DockviewApi;
12
+ readonly group: DockviewGroupPanel | undefined;
13
+ getData: () => PanelTransfer | undefined;
14
+ }
15
+ export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
16
+ private readonly event;
17
+ readonly options: WillShowOverlayLocationEventOptions;
18
+ get kind(): DockviewGroupDropLocation;
19
+ get nativeEvent(): DragEvent;
20
+ get position(): Position;
21
+ get defaultPrevented(): boolean;
22
+ get panel(): IDockviewPanel | undefined;
23
+ get api(): DockviewApi;
24
+ get group(): DockviewGroupPanel | undefined;
25
+ preventDefault(): void;
26
+ getData(): PanelTransfer | undefined;
27
+ constructor(event: WillShowOverlayEvent, options: WillShowOverlayLocationEventOptions);
28
+ }
@@ -0,0 +1,33 @@
1
+ export class WillShowOverlayLocationEvent {
2
+ get kind() {
3
+ return this.options.kind;
4
+ }
5
+ get nativeEvent() {
6
+ return this.event.nativeEvent;
7
+ }
8
+ get position() {
9
+ return this.event.position;
10
+ }
11
+ get defaultPrevented() {
12
+ return this.event.defaultPrevented;
13
+ }
14
+ get panel() {
15
+ return this.options.panel;
16
+ }
17
+ get api() {
18
+ return this.options.api;
19
+ }
20
+ get group() {
21
+ return this.options.group;
22
+ }
23
+ preventDefault() {
24
+ this.event.preventDefault();
25
+ }
26
+ getData() {
27
+ return this.options.getData();
28
+ }
29
+ constructor(event, options) {
30
+ this.event = event;
31
+ this.options = options;
32
+ }
33
+ }
@@ -7,7 +7,8 @@ import { DockviewGroupPanel } from './dockviewGroupPanel';
7
7
  import { PanelTransfer } from '../dnd/dataTransfer';
8
8
  import { IDisposable } from '../lifecycle';
9
9
  import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
10
- import { DockviewGroupDropLocation, GroupOptions } from './dockviewGroupPanelModel';
10
+ import { GroupOptions } from './dockviewGroupPanelModel';
11
+ import { DockviewGroupDropLocation } from './events';
11
12
  import { IDockviewPanel } from './dockviewPanel';
12
13
  import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
13
14
  import { IGroupHeaderProps } from './framework';
@@ -292,6 +292,7 @@
292
292
  --dv-active-sash-color: transparent;
293
293
  --dv-active-sash-transition-duration: 0.1s;
294
294
  --dv-active-sash-transition-delay: 0.5s;
295
+ box-sizing: border-box;
295
296
  padding: 10px;
296
297
  background-color: #ebeced;
297
298
  --dv-group-view-background-color: #ebeced;
@@ -411,6 +412,7 @@
411
412
  --dv-tab-margin: 0.5rem 0.25rem;
412
413
  --dv-tabs-and-actions-container-height: 44px;
413
414
  --dv-border-radius: 20px;
415
+ box-sizing: border-box;
414
416
  --dv-color-abyss-dark: rgb(11, 6, 17);
415
417
  --dv-color-abyss: #16121f;
416
418
  --dv-color-abyss-light: #201d2b;
@@ -515,6 +517,7 @@
515
517
  --dv-tab-margin: 0.5rem 0.25rem;
516
518
  --dv-tabs-and-actions-container-height: 44px;
517
519
  --dv-border-radius: 20px;
520
+ box-sizing: border-box;
518
521
  --dv-drag-over-border: 2px solid rgb(91, 30, 207);
519
522
  --dv-drag-over-background-color: "";
520
523
  --dv-group-view-background-color: #f6f5f9;
@@ -1181,6 +1184,8 @@
1181
1184
  .dv-tabs-and-actions-container .dv-void-container {
1182
1185
  display: flex;
1183
1186
  flex-grow: 1;
1187
+ }
1188
+ .dv-tabs-and-actions-container .dv-void-container.dv-draggable {
1184
1189
  cursor: grab;
1185
1190
  }
1186
1191
  .dv-tabs-and-actions-container .dv-right-actions-container {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dockview-core",
3
- "version": "4.5.0",
3
+ "version": "4.6.2",
4
4
  "description": "Zero dependency layout manager supporting tabs, grids and splitviews",
5
5
  "keywords": [
6
6
  "splitview",
@@ -41,14 +41,13 @@
41
41
  "README.md"
42
42
  ],
43
43
  "scripts": {
44
- "build": "npm run build:package && npm run build:bundles",
45
- "build:bundles": "rollup -c",
44
+ "build:bundle": "rollup -c",
46
45
  "build:cjs": "cross-env ../../node_modules/.bin/tsc --build ./tsconfig.json --verbose --extendedDiagnostics",
47
46
  "build:css": "gulp sass",
48
47
  "build:esm": "cross-env ../../node_modules/.bin/tsc --build ./tsconfig.esm.json --verbose --extendedDiagnostics",
49
- "build:package": "npm run build:cjs && npm run build:esm && npm run build:css",
48
+ "build": "npm run build:cjs && npm run build:esm && npm run build:css",
50
49
  "clean": "rimraf dist/ .build/ .rollup.cache/",
51
- "prepublishOnly": "npm run rebuild && npm run test",
50
+ "prepublishOnly": "npm run rebuild && npm run build:bundle && npm run test",
52
51
  "rebuild": "npm run clean && npm run build",
53
52
  "test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-core",
54
53
  "test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-core --coverage"