diff --git a/packages/dockview-core/src/__tests__/__mocks__/mockDockviewPanelMode.ts b/packages/dockview-core/src/__tests__/__mocks__/mockDockviewPanelMode.ts index 9b85e2feb..e116982d6 100644 --- a/packages/dockview-core/src/__tests__/__mocks__/mockDockviewPanelMode.ts +++ b/packages/dockview-core/src/__tests__/__mocks__/mockDockviewPanelMode.ts @@ -1,5 +1,5 @@ import { IDockviewPanelModel } from '../../dockview/dockviewPanelModel'; -import { GroupPanel } from '../../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; import { GroupPanelPartInitParameters, GroupPanelUpdateEvent, @@ -29,7 +29,10 @@ export class DockviewPanelModelMock implements IDockviewPanelModel { // } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void { + updateParentGroup( + group: DockviewGroupPanel, + isPanelVisible: boolean + ): void { // } diff --git a/packages/dockview-core/src/__tests__/api/dockviewPanelApi.spec.ts b/packages/dockview-core/src/__tests__/api/dockviewPanelApi.spec.ts index 148e0ff2e..096761ee8 100644 --- a/packages/dockview-core/src/__tests__/api/dockviewPanelApi.spec.ts +++ b/packages/dockview-core/src/__tests__/api/dockviewPanelApi.spec.ts @@ -1,7 +1,7 @@ import { DockviewPanelApiImpl, TitleEvent } from '../../api/dockviewPanelApi'; import { DockviewComponent } from '../../dockview/dockviewComponent'; import { DockviewPanel, IDockviewPanel } from '../../dockview/dockviewPanel'; -import { GroupPanel } from '../../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; describe('groupPanelApi', () => { test('title', () => { @@ -10,7 +10,7 @@ describe('groupPanelApi', () => { update: jest.fn(), } as any; }); - const groupMock = jest.fn(() => { + const groupMock = jest.fn(() => { return {} as any; }); @@ -37,7 +37,7 @@ describe('groupPanelApi', () => { onDidRemovePanel: jest.fn(), options: {}, }; - const groupViewPanel = new GroupPanel( + const groupViewPanel = new DockviewGroupPanel( accessor, '', {} @@ -45,7 +45,7 @@ describe('groupPanelApi', () => { const cut = new DockviewPanelApiImpl( groupPanel, - groupViewPanel + groupViewPanel ); let events = 0; @@ -57,7 +57,7 @@ describe('groupPanelApi', () => { expect(events).toBe(0); expect(cut.group).toBe(groupViewPanel); - const groupViewPanel2 = new GroupPanel( + const groupViewPanel2 = new DockviewGroupPanel( accessor, '', {} diff --git a/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts b/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts index 346abb44f..e8ed2e4c5 100644 --- a/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts +++ b/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts @@ -6,7 +6,6 @@ import { } from '../../groupview/types'; import { PanelUpdateEvent } from '../../panel/types'; import { Orientation } from '../../splitview/core/splitview'; -import { GroupPanel } from '../../groupview/groupviewPanel'; import { CompositeDisposable } from '../../lifecycle'; import { GroupPanelUpdateEvent, @@ -23,6 +22,7 @@ import { DefaultDockviewDeserialzier } from '../../dockview/deserializer'; import { IDockviewPanelModel } from '../../dockview/dockviewPanelModel'; import { DockviewPanelModelMock } from '../__mocks__/mockDockviewPanelMode'; import { DefaultTab } from '../../dockview/components/tab/defaultTab'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; class PanelContentPartTest implements IContentRenderer { element: HTMLElement = document.createElement('div'); @@ -36,10 +36,6 @@ class PanelContentPartTest implements IContentRenderer { this.element.classList.add(`testpanel-${id}`); } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void { - //noop - } - init(parameters: GroupPanelPartInitParameters): void { //noop } @@ -78,10 +74,6 @@ class PanelTabPartTest implements ITabRenderer { this.element.className = `panel-tab-part-${id}`; } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void { - //noop - } - init(parameters: GroupPanelPartInitParameters): void { //noop } @@ -105,7 +97,7 @@ class PanelTabPartTest implements ITabRenderer { } class TestGroupPanel implements IDockviewPanel { - private _group: GroupPanel | undefined; + private _group: DockviewGroupPanel | undefined; readonly api: DockviewPanelApi; readonly view: IDockviewPanelModel; @@ -116,7 +108,7 @@ class TestGroupPanel implements IDockviewPanel { accessor: DockviewComponent ) { this.api = new DockviewPanelApiImpl(this, this._group!); - this._group = new GroupPanel(accessor, id, {}); + this._group = new DockviewGroupPanel(accessor, id, {}); this.view = new DockviewPanelModelMock( 'component', new PanelContentPartTest(id, 'component'), @@ -128,11 +120,11 @@ class TestGroupPanel implements IDockviewPanel { get params(): Record { return {}; } - get group(): GroupPanel { + get group(): DockviewGroupPanel { return this._group!; } - updateParentGroup(group: GroupPanel, isGroupActive: boolean): void { + updateParentGroup(group: DockviewGroupPanel, isGroupActive: boolean): void { this._group = group; } @@ -838,7 +830,7 @@ describe('dockviewComponent', () => { let events: { panel?: IDockviewPanel; - group?: GroupPanel | undefined; + group?: DockviewGroupPanel | undefined; type: string; }[] = []; @@ -1028,7 +1020,7 @@ describe('dockviewComponent', () => { position: { referencePanel: 'panel2', direction: 'below' }, }); - const removedGroups: GroupPanel[] = []; + const removedGroups: DockviewGroupPanel[] = []; const removedPanels: IDockviewPanel[] = []; const disposable = new CompositeDisposable( @@ -1481,9 +1473,9 @@ describe('dockviewComponent', () => { dockview.layout(1000, 1000); - let addGroup: GroupPanel[] = []; - let removeGroup: GroupPanel[] = []; - let activeGroup: (GroupPanel | undefined)[] = []; + let addGroup: DockviewGroupPanel[] = []; + let removeGroup: DockviewGroupPanel[] = []; + let activeGroup: (DockviewGroupPanel | undefined)[] = []; let addPanel: IDockviewPanel[] = []; let removePanel: IDockviewPanel[] = []; let activePanel: (IDockviewPanel | undefined)[] = []; diff --git a/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts b/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts index 3d13adb4b..60022dcc6 100644 --- a/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts +++ b/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts @@ -1,8 +1,8 @@ import { DockviewComponent } from '../../dockview/dockviewComponent'; import { DockviewApi } from '../../api/component.api'; import { DockviewPanel } from '../../dockview/dockviewPanel'; -import { GroupPanel } from '../../groupview/groupviewPanel'; import { IDockviewPanelModel } from '../../dockview/dockviewPanelModel'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; describe('dockviewPanel', () => { test('update title', () => { @@ -14,7 +14,7 @@ describe('dockviewPanel', () => { const accessorMock = jest.fn(() => { return {} as any; }); - const groupMock = jest.fn(() => { + const groupMock = jest.fn(() => { return {} as any; }); const panelModelMock = jest.fn, []>(() => { @@ -57,7 +57,7 @@ describe('dockviewPanel', () => { const accessorMock = jest.fn(() => { return {} as any; }); - const groupMock = jest.fn(() => { + const groupMock = jest.fn(() => { return {} as any; }); const panelModelMock = jest.fn, []>(() => { @@ -89,7 +89,7 @@ describe('dockviewPanel', () => { const accessorMock = jest.fn(() => { return {} as any; }); - const groupMock = jest.fn(() => { + const groupMock = jest.fn(() => { return {} as any; }); const panelModelMock = jest.fn, []>(() => { @@ -121,7 +121,7 @@ describe('dockviewPanel', () => { const accessorMock = jest.fn(() => { return {} as any; }); - const groupMock = jest.fn(() => { + const groupMock = jest.fn(() => { return { api: { setSize: jest.fn(), diff --git a/packages/dockview-core/src/__tests__/gridview/gridviewPanel.spec.ts b/packages/dockview-core/src/__tests__/gridview/gridviewPanel.spec.ts index c251d2dbe..94b90ca9c 100644 --- a/packages/dockview-core/src/__tests__/gridview/gridviewPanel.spec.ts +++ b/packages/dockview-core/src/__tests__/gridview/gridviewPanel.spec.ts @@ -1,5 +1,5 @@ import { DockviewComponent } from '../../dockview/dockviewComponent'; -import { GroupPanel } from '../../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; describe('gridviewPanel', () => { test('get panel', () => { @@ -13,7 +13,7 @@ describe('gridviewPanel', () => { const accessor = new accessorMock(); - const cut = new GroupPanel(accessor, 'id', {}); + const cut = new DockviewGroupPanel(accessor, 'id', {}); expect(cut.params).toEqual(undefined); diff --git a/packages/dockview-core/src/__tests__/groupview/groupview.spec.ts b/packages/dockview-core/src/__tests__/groupview/dockviewGroupPanelModel.spec.ts similarity index 87% rename from packages/dockview-core/src/__tests__/groupview/groupview.spec.ts rename to packages/dockview-core/src/__tests__/groupview/dockviewGroupPanelModel.spec.ts index 36d4193c9..a3284a3d8 100644 --- a/packages/dockview-core/src/__tests__/groupview/groupview.spec.ts +++ b/packages/dockview-core/src/__tests__/groupview/dockviewGroupPanelModel.spec.ts @@ -11,8 +11,10 @@ import { IWatermarkRenderer, } from '../../groupview/types'; import { PanelUpdateEvent } from '../../panel/types'; -import { GroupOptions, Groupview } from '../../groupview/groupview'; -import { GroupPanel } from '../../groupview/groupviewPanel'; +import { + DockviewGroupPanelModel, + GroupOptions, +} from '../../groupview/dockviewGroupPanelModel'; import { fireEvent } from '@testing-library/dom'; import { LocalSelectionTransfer, PanelTransfer } from '../../dnd/dataTransfer'; import { CompositeDisposable } from '../../lifecycle'; @@ -22,6 +24,7 @@ import { IDockviewPanelModel, DockviewPanelModel, } from '../../dockview/dockviewPanelModel'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; enum GroupChangeKind2 { ADD_PANEL, @@ -52,7 +55,10 @@ class TestModel implements IDockviewPanelModel { // } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void { + updateParentGroup( + group: DockviewGroupPanel, + isPanelVisible: boolean + ): void { // } @@ -120,10 +126,6 @@ class TestContentPart implements IContentRenderer { //void } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean) { - //noop - } - focus() { //noop } @@ -155,10 +157,6 @@ class TestHeaderPart implements ITabRenderer { //void } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean) { - //noop - } - focus() { //noop } @@ -173,7 +171,7 @@ class TestHeaderPart implements ITabRenderer { } export class TestPanel implements IDockviewPanel { - private _group: GroupPanel | undefined; + private _group: DockviewGroupPanel | undefined; private _params: IGroupPanelInitParameters; readonly view: IDockviewPanelModel; @@ -201,8 +199,8 @@ export class TestPanel implements IDockviewPanel { this._params = params; } - updateParentGroup(group: GroupPanel, isGroupActive: boolean) { - this._group = group; + updateParentGroup(group: DockviewGroupPanel, isGroupActive: boolean): void { + // } layout(width: number, height: number) { @@ -230,7 +228,7 @@ export class TestPanel implements IDockviewPanel { } describe('groupview', () => { - let groupview: GroupPanel; + let groupview: DockviewGroupPanel; let dockview: DockviewComponent; let options: GroupOptions; @@ -255,7 +253,7 @@ describe('groupview', () => { options = { tabHeight: 30, }; - groupview = new GroupPanel(dockview, 'groupview-1', options); + groupview = new DockviewGroupPanel(dockview, 'groupview-1', options); groupview.initialize(); }); @@ -264,7 +262,7 @@ describe('groupview', () => { const panel2 = new TestPanel('panel2', jest.fn() as any); const panel3 = new TestPanel('panel3', jest.fn() as any); - const groupview2 = new GroupPanel(dockview, 'groupview-2', { + const groupview2 = new DockviewGroupPanel(dockview, 'groupview-2', { tabHeight: 25, panels: [panel1, panel2, panel3], activePanel: panel2, @@ -518,7 +516,7 @@ describe('groupview', () => { } ); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( document.createElement('div'), dockviewComponent, 'id', @@ -543,7 +541,7 @@ describe('groupview', () => { } ); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( document.createElement('div'), dockviewComponent, 'id', @@ -574,7 +572,7 @@ describe('groupview', () => { ); const groupviewContainer = document.createElement('div'); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( groupviewContainer, dockviewComponent, 'id', @@ -621,28 +619,32 @@ describe('groupview', () => { }; }); const accessor = new accessorMock() as DockviewComponent; - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { - return { - id: 'testgroupid', - model: groupView, - }; - }); + const groupPanelMock = jest.fn, []>( + () => { + return { + id: 'testgroupid', + model: groupView, + }; + } + ); const container = document.createElement('div'); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( container, accessor, 'groupviewid', {}, - new groupPanelMock() as GroupPanel + new groupPanelMock() as DockviewGroupPanel ); const element = container @@ -678,15 +680,17 @@ describe('groupview', () => { }; }); const accessor = new accessorMock() as DockviewComponent; - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -694,12 +698,12 @@ describe('groupview', () => { }); const container = document.createElement('div'); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( container, accessor, 'groupviewid', {}, - new groupPanelMock() as GroupPanel + new groupPanelMock() as DockviewGroupPanel ); cut.openPanel(new TestPanel('panel1', jest.fn() as any)); @@ -742,15 +746,17 @@ describe('groupview', () => { }; }); const accessor = new accessorMock() as DockviewComponent; - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -758,12 +764,12 @@ describe('groupview', () => { }); const container = document.createElement('div'); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( container, accessor, 'groupviewid', {}, - new groupPanelMock() as GroupPanel + new groupPanelMock() as DockviewGroupPanel ); cut.openPanel(new TestPanel('panel1', jest.fn() as any)); @@ -807,15 +813,17 @@ describe('groupview', () => { }; }); const accessor = new accessorMock() as DockviewComponent; - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -823,12 +831,12 @@ describe('groupview', () => { }); const container = document.createElement('div'); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( container, accessor, 'groupviewid', {}, - new groupPanelMock() as GroupPanel + new groupPanelMock() as DockviewGroupPanel ); cut.openPanel(new TestPanel('panel1', jest.fn() as any)); @@ -859,15 +867,17 @@ describe('groupview', () => { }); test('that watermark is added', () => { - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -876,12 +886,12 @@ describe('groupview', () => { const container = document.createElement('div'); - const cut = new Groupview( + const cut = new DockviewGroupPanelModel( container, dockview, 'groupviewid', {}, - new groupPanelMock() as GroupPanel + new groupPanelMock() as DockviewGroupPanel ); cut.initialize(); diff --git a/packages/dockview-core/src/__tests__/groupview/panel/content.spec.ts b/packages/dockview-core/src/__tests__/groupview/panel/content.spec.ts index 5ddaafb11..5fbc3806e 100644 --- a/packages/dockview-core/src/__tests__/groupview/panel/content.spec.ts +++ b/packages/dockview-core/src/__tests__/groupview/panel/content.spec.ts @@ -7,7 +7,6 @@ import { } from '../../../groupview/types'; import { CompositeDisposable } from '../../../lifecycle'; import { PanelUpdateEvent } from '../../../panel/types'; -import { GroupPanel } from '../../../groupview/groupviewPanel'; import { IDockviewPanel } from '../../../dockview/dockviewPanel'; import { IDockviewPanelModel } from '../../../dockview/dockviewPanelModel'; @@ -27,10 +26,6 @@ class TestContentRenderer this.element = document.createElement('div'); } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void { - // - } - init(parameters: GroupPanelContentPartInitParameters): void { // } diff --git a/packages/dockview-core/src/__tests__/groupview/tab.spec.ts b/packages/dockview-core/src/__tests__/groupview/tab.spec.ts index abe02fcf9..a3d65516b 100644 --- a/packages/dockview-core/src/__tests__/groupview/tab.spec.ts +++ b/packages/dockview-core/src/__tests__/groupview/tab.spec.ts @@ -1,8 +1,8 @@ import { fireEvent } from '@testing-library/dom'; import { LocalSelectionTransfer, PanelTransfer } from '../../dnd/dataTransfer'; import { DockviewComponent } from '../../dockview/dockviewComponent'; -import { Groupview } from '../../groupview/groupview'; -import { GroupPanel } from '../../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../../groupview/dockviewGroupPanel'; +import { DockviewGroupPanelModel } from '../../groupview/dockviewGroupPanelModel'; import { Tab } from '../../groupview/tab'; describe('tab', () => { @@ -34,15 +34,17 @@ describe('tab', () => { id: 'testcomponentid', }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -50,7 +52,7 @@ describe('tab', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new Tab('panelId', accessor, groupPanel); @@ -77,15 +79,17 @@ describe('tab', () => { id: 'testcomponentid', }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -93,7 +97,7 @@ describe('tab', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new Tab('panel1', accessor, groupPanel); @@ -125,15 +129,17 @@ describe('tab', () => { id: 'testcomponentid', }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -141,7 +147,7 @@ describe('tab', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new Tab('panel1', accessor, groupPanel); @@ -173,15 +179,17 @@ describe('tab', () => { id: 'testcomponentid', }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -189,7 +197,7 @@ describe('tab', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new Tab('panel1', accessor, groupPanel); @@ -227,15 +235,17 @@ describe('tab', () => { id: 'testcomponentid', }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -243,7 +253,7 @@ describe('tab', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new Tab('panel1', accessor, groupPanel); diff --git a/packages/dockview-core/src/__tests__/groupview/titlebar/tabsContainer.spec.ts b/packages/dockview-core/src/__tests__/groupview/titlebar/tabsContainer.spec.ts index 51a4f132a..d404cc8b0 100644 --- a/packages/dockview-core/src/__tests__/groupview/titlebar/tabsContainer.spec.ts +++ b/packages/dockview-core/src/__tests__/groupview/titlebar/tabsContainer.spec.ts @@ -1,13 +1,13 @@ import { DockviewComponent } from '../../../dockview/dockviewComponent'; -import { GroupPanel } from '../../../groupview/groupviewPanel'; import { TabsContainer } from '../../../groupview/titlebar/tabsContainer'; import { fireEvent } from '@testing-library/dom'; -import { Groupview } from '../../../groupview/groupview'; import { LocalSelectionTransfer, PanelTransfer, } from '../../../dnd/dataTransfer'; -import { TestPanel } from '../groupview.spec'; +import { TestPanel } from '../dockviewGroupPanelModel.spec'; +import { DockviewGroupPanelModel } from '../../../groupview/dockviewGroupPanelModel'; +import { DockviewGroupPanel } from '../../../groupview/dockviewGroupPanel'; describe('tabsContainer', () => { test('that an external event does not render a drop target and calls through to the group mode', () => { @@ -18,22 +18,24 @@ describe('tabsContainer', () => { options: {}, }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { model: groupView, }; }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new TabsContainer(accessor, groupPanel); @@ -71,15 +73,17 @@ describe('tabsContainer', () => { options: {}, }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -88,7 +92,7 @@ describe('tabsContainer', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new TabsContainer(accessor, groupPanel); @@ -137,15 +141,17 @@ describe('tabsContainer', () => { options: {}, }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -154,7 +160,7 @@ describe('tabsContainer', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new TabsContainer(accessor, groupPanel); @@ -200,15 +206,17 @@ describe('tabsContainer', () => { options: {}, }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -217,7 +225,7 @@ describe('tabsContainer', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new TabsContainer(accessor, groupPanel); @@ -263,15 +271,17 @@ describe('tabsContainer', () => { options: {}, }; }); - const groupviewMock = jest.fn, []>(() => { - return { - canDisplayOverlay: jest.fn(), - }; - }); + const groupviewMock = jest.fn, []>( + () => { + return { + canDisplayOverlay: jest.fn(), + }; + } + ); - const groupView = new groupviewMock() as Groupview; + const groupView = new groupviewMock() as DockviewGroupPanelModel; - const groupPanelMock = jest.fn, []>(() => { + const groupPanelMock = jest.fn, []>(() => { return { id: 'testgroupid', model: groupView, @@ -279,7 +289,7 @@ describe('tabsContainer', () => { }); const accessor = new accessorMock() as DockviewComponent; - const groupPanel = new groupPanelMock() as GroupPanel; + const groupPanel = new groupPanelMock() as DockviewGroupPanel; const cut = new TabsContainer(accessor, groupPanel); diff --git a/packages/dockview-core/src/api/component.api.ts b/packages/dockview-core/src/api/component.api.ts index c61d81c46..54619e319 100644 --- a/packages/dockview-core/src/api/component.api.ts +++ b/packages/dockview-core/src/api/component.api.ts @@ -30,7 +30,10 @@ import { } from '../splitview/splitviewComponent'; import { IView, Orientation, Sizing } from '../splitview/core/splitview'; import { ISplitviewPanel } from '../splitview/splitviewPanel'; -import { GroupPanel, IGroupviewPanel } from '../groupview/groupviewPanel'; +import { + DockviewGroupPanel, + IDockviewGroupPanel, +} from '../groupview/dockviewGroupPanel'; import { Emitter, Event } from '../events'; import { IDockviewPanel } from '../dockview/dockviewPanel'; import { PaneviewDropEvent } from '../paneview/draggablePaneviewPanel'; @@ -362,15 +365,15 @@ export class DockviewApi implements CommonApi { return this.component.totalPanels; } - get onDidActiveGroupChange(): Event { + get onDidActiveGroupChange(): Event { return this.component.onDidActiveGroupChange; } - get onDidAddGroup(): Event { + get onDidAddGroup(): Event { return this.component.onDidAddGroup; } - get onDidRemoveGroup(): Event { + get onDidRemoveGroup(): Event { return this.component.onDidRemoveGroup; } @@ -402,7 +405,7 @@ export class DockviewApi implements CommonApi { return this.component.panels; } - get groups(): GroupPanel[] { + get groups(): DockviewGroupPanel[] { return this.component.groups; } @@ -410,7 +413,7 @@ export class DockviewApi implements CommonApi { return this.component.activePanel; } - get activeGroup(): GroupPanel | undefined { + get activeGroup(): DockviewGroupPanel | undefined { return this.component.activeGroup; } @@ -440,7 +443,7 @@ export class DockviewApi implements CommonApi { return this.component.addPanel(options); } - addGroup(options?: AddGroupOptions): IGroupviewPanel { + addGroup(options?: AddGroupOptions): IDockviewGroupPanel { return this.component.addGroup(options); } @@ -456,11 +459,11 @@ export class DockviewApi implements CommonApi { return this.component.closeAllGroups(); } - removeGroup(group: IGroupviewPanel): void { - this.component.removeGroup(group); + removeGroup(group: IDockviewGroupPanel): void { + this.component.removeGroup(group); } - getGroup(id: string): GroupPanel | undefined { + getGroup(id: string): DockviewGroupPanel | undefined { return this.component.getPanel(id); } diff --git a/packages/dockview-core/src/api/dockviewPanelApi.ts b/packages/dockview-core/src/api/dockviewPanelApi.ts index 6da42de2c..3da452efc 100644 --- a/packages/dockview-core/src/api/dockviewPanelApi.ts +++ b/packages/dockview-core/src/api/dockviewPanelApi.ts @@ -1,6 +1,6 @@ import { Emitter, Event } from '../events'; import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi'; -import { GroupPanel } from '../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../groupview/dockviewGroupPanel'; import { MutableDisposable } from '../lifecycle'; import { IDockviewPanel } from '../dockview/dockviewPanel'; @@ -13,7 +13,7 @@ export interface TitleEvent { * because it belongs to a groupview */ export interface DockviewPanelApi extends Omit { - readonly group: GroupPanel; + readonly group: DockviewGroupPanel; readonly isGroupActive: boolean; readonly title: string; readonly onDidActiveGroupChange: Event; @@ -26,7 +26,7 @@ export class DockviewPanelApiImpl extends GridviewPanelApiImpl implements DockviewPanelApi { - private _group: GroupPanel; + private _group: DockviewGroupPanel; readonly _onDidTitleChange = new Emitter(); readonly onDidTitleChange = this._onDidTitleChange.event; @@ -47,7 +47,7 @@ export class DockviewPanelApiImpl return !!this.group?.isActive; } - set group(value: GroupPanel) { + set group(value: DockviewGroupPanel) { const isOldGroupActive = this.isGroupActive; this._group = value; @@ -65,11 +65,11 @@ export class DockviewPanelApiImpl } } - get group(): GroupPanel { + get group(): DockviewGroupPanel { return this._group; } - constructor(private panel: IDockviewPanel, group: GroupPanel) { + constructor(private panel: IDockviewPanel, group: DockviewGroupPanel) { super(panel.id); this.initialize(panel); diff --git a/packages/dockview-core/src/dnd/groupDragHandler.ts b/packages/dockview-core/src/dnd/groupDragHandler.ts index 28ab895a0..4d3fa2ba2 100644 --- a/packages/dockview-core/src/dnd/groupDragHandler.ts +++ b/packages/dockview-core/src/dnd/groupDragHandler.ts @@ -1,4 +1,4 @@ -import { GroupPanel } from '../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../groupview/dockviewGroupPanel'; import { IDisposable } from '../lifecycle'; import { DragHandler } from './abstractDragHandler'; import { LocalSelectionTransfer, PanelTransfer } from './dataTransfer'; @@ -11,7 +11,7 @@ export class GroupDragHandler extends DragHandler { constructor( element: HTMLElement, private readonly accessorId: string, - private readonly group: GroupPanel + private readonly group: DockviewGroupPanel ) { super(element); } diff --git a/packages/dockview-core/src/dockview/components/tab/defaultTab.ts b/packages/dockview-core/src/dockview/components/tab/defaultTab.ts index 52135530d..40f8881b8 100644 --- a/packages/dockview-core/src/dockview/components/tab/defaultTab.ts +++ b/packages/dockview-core/src/dockview/components/tab/defaultTab.ts @@ -5,7 +5,7 @@ import { } from '../../../groupview/types'; import { addDisposableListener } from '../../../events'; import { PanelUpdateEvent } from '../../../panel/types'; -import { GroupPanel } from '../../../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../../../groupview/dockviewGroupPanel'; import { createCloseButton } from '../../../svg'; export class DefaultTab extends CompositeDisposable implements ITabRenderer { @@ -77,7 +77,10 @@ export class DefaultTab extends CompositeDisposable implements ITabRenderer { }); } - public updateParentGroup(group: GroupPanel, isPanelVisible: boolean) { + public updateParentGroup( + group: DockviewGroupPanel, + isPanelVisible: boolean + ) { const changed = this._isPanelVisible !== isPanelVisible || this._isGroupActive !== group.isActive; diff --git a/packages/dockview-core/src/dockview/components/watermark/watermark.ts b/packages/dockview-core/src/dockview/components/watermark/watermark.ts index c67fc6a6d..85d29d5ac 100644 --- a/packages/dockview-core/src/dockview/components/watermark/watermark.ts +++ b/packages/dockview-core/src/dockview/components/watermark/watermark.ts @@ -6,7 +6,7 @@ import { ActionContainer } from '../../../actionbar/actionsContainer'; import { addDisposableListener } from '../../../events'; import { toggleClass } from '../../../dom'; import { CompositeDisposable } from '../../../lifecycle'; -import { GroupPanel } from '../../../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../../../groupview/dockviewGroupPanel'; import { PanelUpdateEvent } from '../../../panel/types'; import { createCloseButton } from '../../../svg'; @@ -15,7 +15,7 @@ export class Watermark implements IWatermarkRenderer { private _element: HTMLElement; - private group: GroupPanel | undefined; + private group: DockviewGroupPanel | undefined; private params: GroupPanelPartInitParameters | undefined; get element() { @@ -83,7 +83,7 @@ export class Watermark this.render(); } - updateParentGroup(group: GroupPanel, _visible: boolean): void { + updateParentGroup(group: DockviewGroupPanel, _visible: boolean): void { this.group = group; this.render(); } diff --git a/packages/dockview-core/src/dockview/deserializer.ts b/packages/dockview-core/src/dockview/deserializer.ts index f1f4b6bd3..37a9d213a 100644 --- a/packages/dockview-core/src/dockview/deserializer.ts +++ b/packages/dockview-core/src/dockview/deserializer.ts @@ -1,5 +1,5 @@ import { GroupviewPanelState, ITabRenderer } from '../groupview/types'; -import { GroupPanel } from '../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../groupview/dockviewGroupPanel'; import { DockviewPanel, IDockviewPanel } from './dockviewPanel'; import { IDockviewComponent } from './dockviewComponent'; import { createComponent } from '../panel/componentFactory'; @@ -8,7 +8,10 @@ import { DockviewPanelModel } from './dockviewPanelModel'; import { DockviewApi } from '../api/component.api'; export interface IPanelDeserializer { - fromJSON(panelData: GroupviewPanelState, group: GroupPanel): IDockviewPanel; + fromJSON( + panelData: GroupviewPanelState, + group: DockviewGroupPanel + ): IDockviewPanel; } export class DefaultDockviewDeserialzier implements IPanelDeserializer { @@ -16,7 +19,7 @@ export class DefaultDockviewDeserialzier implements IPanelDeserializer { public fromJSON( panelData: GroupviewPanelState, - group: GroupPanel + group: DockviewGroupPanel ): IDockviewPanel { const panelId = panelData.id; const params = panelData.params; diff --git a/packages/dockview-core/src/dockview/dockviewComponent.ts b/packages/dockview-core/src/dockview/dockviewComponent.ts index 5a330291e..08acc2f1c 100644 --- a/packages/dockview-core/src/dockview/dockviewComponent.ts +++ b/packages/dockview-core/src/dockview/dockviewComponent.ts @@ -42,8 +42,11 @@ import { GroupOptions, GroupPanelViewState, GroupviewDropEvent, -} from '../groupview/groupview'; -import { GroupPanel, IGroupviewPanel } from '../groupview/groupviewPanel'; +} from '../groupview/dockviewGroupPanelModel'; +import { + DockviewGroupPanel, + IDockviewGroupPanel, +} from '../groupview/dockviewGroupPanel'; import { DockviewPanelModel } from './dockviewPanelModel'; import { getPanelData } from '../dnd/dataTransfer'; import { DockviewDropTargets } from '../groupview/dnd'; @@ -80,10 +83,10 @@ export type DockviewComponentUpdateOptions = Pick< export interface DockviewDropEvent extends GroupviewDropEvent { api: DockviewApi; - group: GroupPanel | null; + group: DockviewGroupPanel | null; } -export interface IDockviewComponent extends IBaseGrid { +export interface IDockviewComponent extends IBaseGrid { readonly activePanel: IDockviewPanel | undefined; readonly totalPanels: number; readonly panels: IDockviewPanel[]; @@ -93,21 +96,21 @@ export interface IDockviewComponent extends IBaseGrid { deserializer: IPanelDeserializer | undefined; updateOptions(options: DockviewComponentUpdateOptions): void; moveGroupOrPanel( - referenceGroup: GroupPanel, + referenceGroup: DockviewGroupPanel, groupId: string, itemId: string, target: Position, index?: number ): void; - doSetGroupActive: (group: GroupPanel, skipFocus?: boolean) => void; - removeGroup: (group: GroupPanel) => void; + doSetGroupActive: (group: DockviewGroupPanel, skipFocus?: boolean) => void; + removeGroup: (group: DockviewGroupPanel) => void; options: DockviewComponentOptions; addPanel(options: AddPanelOptions): IDockviewPanel; removePanel(panel: IDockviewPanel): void; getGroupPanel: (id: string) => IDockviewPanel | undefined; createWatermarkComponent(): IWatermarkRenderer; // lifecycle - addGroup(options?: AddGroupOptions): IGroupviewPanel; + addGroup(options?: AddGroupOptions): IDockviewGroupPanel; closeAllGroups(): void; // events moveToNext(options?: MovementOptions): void; @@ -124,7 +127,7 @@ export interface IDockviewComponent extends IBaseGrid { } export class DockviewComponent - extends BaseGrid + extends BaseGrid implements IDockviewComponent { private readonly nextGroupId = sequentialNumberGenerator(); @@ -301,7 +304,7 @@ export class DockviewComponent this.updateWatermark(); } - private orthogonalize(position: Position): GroupPanel { + private orthogonalize(position: Position): DockviewGroupPanel { switch (position) { case 'top': case 'bottom': @@ -381,7 +384,7 @@ export class DockviewComponent } const location = getGridLocation(options.group.element); - const next = this.gridview.next(location)?.view; + const next = this.gridview.next(location)?.view; this.doSetGroupActive(next); } @@ -403,7 +406,7 @@ export class DockviewComponent const location = getGridLocation(options.group.element); const next = this.gridview.previous(location)?.view; if (next) { - this.doSetGroupActive(next as GroupPanel); + this.doSetGroupActive(next as DockviewGroupPanel); } } @@ -532,7 +535,7 @@ export class DockviewComponent throw new Error(`panel with id ${options.id} already exists`); } - let referenceGroup: GroupPanel | undefined; + let referenceGroup: DockviewGroupPanel | undefined; if (options.position) { if (isPanelOptionsWithPanel(options.position)) { @@ -665,11 +668,11 @@ export class DockviewComponent } } - addGroup(options?: AddGroupOptions): GroupPanel { + addGroup(options?: AddGroupOptions): DockviewGroupPanel { const group = this.createGroup(); if (options) { - let referenceGroup: GroupPanel | undefined; + let referenceGroup: DockviewGroupPanel | undefined; if (isGroupOptionsWithPanel(options)) { const referencePanel = @@ -726,7 +729,7 @@ export class DockviewComponent } } - removeGroup(group: GroupPanel, skipActive = false): void { + removeGroup(group: DockviewGroupPanel, skipActive = false): void { const panels = [...group.panels]; // reassign since group panels will mutate for (const panel of panels) { @@ -740,7 +743,7 @@ export class DockviewComponent } moveGroupOrPanel( - referenceGroup: GroupPanel, + referenceGroup: DockviewGroupPanel, groupId: string, itemId: string | undefined, target: Position, @@ -831,8 +834,8 @@ export class DockviewComponent } private moveGroup( - sourceGroup: GroupPanel, - referenceGroup: GroupPanel, + sourceGroup: DockviewGroupPanel, + referenceGroup: DockviewGroupPanel, target: Position ): void { if (sourceGroup) { @@ -872,7 +875,10 @@ export class DockviewComponent } } - doSetGroupActive(group: GroupPanel | undefined, skipFocus?: boolean): void { + doSetGroupActive( + group: DockviewGroupPanel | undefined, + skipFocus?: boolean + ): void { const isGroupAlreadyFocused = this._activeGroup === group; super.doSetGroupActive(group, skipFocus); @@ -881,7 +887,7 @@ export class DockviewComponent } } - createGroup(options?: GroupOptions): GroupPanel { + createGroup(options?: GroupOptions): DockviewGroupPanel { if (!options) { options = { tabHeight: this.tabHeight }; } @@ -905,7 +911,7 @@ export class DockviewComponent } } - const view = new GroupPanel(this, id, options); + const view = new DockviewGroupPanel(this, id, options); view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group if (!this._groups.has(view.id)) { @@ -948,7 +954,7 @@ export class DockviewComponent private createPanel( options: AddPanelOptions, - group: GroupPanel + group: DockviewGroupPanel ): IDockviewPanel { const contentComponent = options.component; const tabComponent = @@ -976,13 +982,15 @@ export class DockviewComponent return panel; } - private createGroupAtLocation(location: number[] = [0]): GroupPanel { + private createGroupAtLocation( + location: number[] = [0] + ): DockviewGroupPanel { const group = this.createGroup(); this.doAddGroup(group, location); return group; } - private findGroup(panel: IDockviewPanel): GroupPanel | undefined { + private findGroup(panel: IDockviewPanel): DockviewGroupPanel | undefined { return Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel) )?.value; diff --git a/packages/dockview-core/src/dockview/dockviewPanel.ts b/packages/dockview-core/src/dockview/dockviewPanel.ts index b89deeae7..14823fbc3 100644 --- a/packages/dockview-core/src/dockview/dockviewPanel.ts +++ b/packages/dockview-core/src/dockview/dockviewPanel.ts @@ -8,7 +8,7 @@ import { GroupviewPanelState, IGroupPanelInitParameters, } from '../groupview/types'; -import { GroupPanel } from '../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../groupview/dockviewGroupPanel'; import { CompositeDisposable, IDisposable } from '../lifecycle'; import { IPanel, Parameters } from '../panel/types'; import { IDockviewPanelModel } from './dockviewPanelModel'; @@ -16,11 +16,11 @@ import { IDockviewComponent } from './dockviewComponent'; export interface IDockviewPanel extends IDisposable, IPanel { readonly view: IDockviewPanelModel; - readonly group: GroupPanel; + readonly group: DockviewGroupPanel; readonly api: DockviewPanelApi; readonly title: string; readonly params: Record | undefined; - updateParentGroup(group: GroupPanel, isGroupActive: boolean): void; + updateParentGroup(group: DockviewGroupPanel, isGroupActive: boolean): void; init(params: IGroupPanelInitParameters): void; toJSON(): GroupviewPanelState; update(event: GroupPanelUpdateEvent): void; @@ -31,7 +31,7 @@ export class DockviewPanel implements IDockviewPanel { readonly api: DockviewPanelApiImpl; - private _group: GroupPanel; + private _group: DockviewGroupPanel; private _params?: Parameters; private _title: string; @@ -44,7 +44,7 @@ export class DockviewPanel return this._title; } - get group(): GroupPanel { + get group(): DockviewGroupPanel { return this._group; } @@ -52,7 +52,7 @@ export class DockviewPanel public readonly id: string, accessor: IDockviewComponent, private readonly containerApi: DockviewApi, - group: GroupPanel, + group: DockviewGroupPanel, readonly view: IDockviewPanelModel ) { super(); @@ -139,7 +139,10 @@ export class DockviewPanel }); } - public updateParentGroup(group: GroupPanel, isGroupActive: boolean): void { + public updateParentGroup( + group: DockviewGroupPanel, + isGroupActive: boolean + ): void { this._group = group; this.api.group = group; diff --git a/packages/dockview-core/src/dockview/dockviewPanelModel.ts b/packages/dockview-core/src/dockview/dockviewPanelModel.ts index 210463ea1..0025d9549 100644 --- a/packages/dockview-core/src/dockview/dockviewPanelModel.ts +++ b/packages/dockview-core/src/dockview/dockviewPanelModel.ts @@ -5,7 +5,7 @@ import { ITabRenderer, GroupPanelUpdateEvent, } from '../groupview/types'; -import { GroupPanel } from '../groupview/groupviewPanel'; +import { DockviewGroupPanel } from '../groupview/dockviewGroupPanel'; import { IDisposable } from '../lifecycle'; import { createComponent } from '../panel/componentFactory'; import { IDockviewComponent } from './dockviewComponent'; @@ -23,14 +23,14 @@ export interface IDockviewPanelModel extends IDisposable { update(event: GroupPanelUpdateEvent): void; layout(width: number, height: number): void; init(params: GroupPanelPartInitParameters): void; - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void; + updateParentGroup(group: DockviewGroupPanel, isPanelVisible: boolean): void; } export class DockviewPanelModel implements IDockviewPanelModel { private readonly _content: IContentRenderer; private readonly _tab: ITabRenderer; - private _group: GroupPanel | null = null; + private _group: DockviewGroupPanel | null = null; private _isPanelVisible: boolean | null = null; get content(): IContentRenderer { @@ -57,7 +57,10 @@ export class DockviewPanelModel implements IDockviewPanelModel { this.tab.init(params); } - updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void { + updateParentGroup( + group: DockviewGroupPanel, + isPanelVisible: boolean + ): void { if (group !== this._group) { this._group = group; if (this._content.onGroupChange) { diff --git a/packages/dockview-core/src/dockview/options.ts b/packages/dockview-core/src/dockview/options.ts index 5a01c750e..862aeb476 100644 --- a/packages/dockview-core/src/dockview/options.ts +++ b/packages/dockview-core/src/dockview/options.ts @@ -7,7 +7,10 @@ import { WatermarkConstructor, IWatermarkRenderer, } from '../groupview/types'; -import { GroupPanel, GroupviewPanelApi } from '../groupview/groupviewPanel'; +import { + DockviewGroupPanel, + DockviewGroupPanelApi, +} from '../groupview/dockviewGroupPanel'; import { ISplitviewStyles, Orientation } from '../splitview/core/splitview'; import { FrameworkFactory } from '../types'; import { DockviewDropTargets } from '../groupview/dnd'; @@ -18,7 +21,10 @@ import { IDockviewPanel } from './dockviewPanel'; export interface IGroupControlRenderer extends IDisposable { readonly element: HTMLElement; - init(params: { containerApi: DockviewApi; api: GroupviewPanelApi }): void; + init(params: { + containerApi: DockviewApi; + api: DockviewGroupPanelApi; + }): void; } export interface GroupPanelFrameworkComponentFactory { @@ -61,7 +67,7 @@ export interface DockviewDndOverlayEvent { nativeEvent: DragEvent; target: DockviewDropTargets; position: Position; - group?: GroupPanel; + group?: DockviewGroupPanel; getData: () => PanelTransfer | undefined; } @@ -74,7 +80,9 @@ export interface DockviewComponentOptions extends DockviewRenderFunctions { styles?: ISplitviewStyles; defaultTabComponent?: string; showDndOverlay?: (event: DockviewDndOverlayEvent) => boolean; - createGroupControlElement?: (group: GroupPanel) => IGroupControlRenderer; + createGroupControlElement?: ( + group: DockviewGroupPanel + ) => IGroupControlRenderer; singleTabMode?: 'fullwidth' | 'default'; } @@ -93,7 +101,7 @@ type RelativePanel = { type RelativeGroup = { direction?: Direction; - referenceGroup: string | GroupPanel; + referenceGroup: string | DockviewGroupPanel; }; type AbsolutePosition = { @@ -136,7 +144,7 @@ type AddGroupOptionsWithPanel = { }; type AddGroupOptionsWithGroup = { - referenceGroup: string | GroupPanel; + referenceGroup: string | DockviewGroupPanel; direction?: Omit; }; @@ -169,5 +177,5 @@ export interface MovementOptions2 { export interface MovementOptions extends MovementOptions2 { includePanel?: boolean; - group?: GroupPanel; + group?: DockviewGroupPanel; } diff --git a/packages/dockview-core/src/groupview/groupview.scss b/packages/dockview-core/src/groupview/dockviewGroupPanel.scss similarity index 100% rename from packages/dockview-core/src/groupview/groupview.scss rename to packages/dockview-core/src/groupview/dockviewGroupPanel.scss diff --git a/packages/dockview-core/src/groupview/groupviewPanel.ts b/packages/dockview-core/src/groupview/dockviewGroupPanel.ts similarity index 73% rename from packages/dockview-core/src/groupview/groupviewPanel.ts rename to packages/dockview-core/src/groupview/dockviewGroupPanel.ts index db35c677a..1b9ae4abd 100644 --- a/packages/dockview-core/src/groupview/groupviewPanel.ts +++ b/packages/dockview-core/src/groupview/dockviewGroupPanel.ts @@ -1,24 +1,31 @@ import { IFrameworkPart } from '../panel/types'; import { DockviewComponent } from '../dockview/dockviewComponent'; import { GridviewPanelApi } from '../api/gridviewPanelApi'; -import { Groupview, GroupOptions, IHeader } from './groupview'; +import { + DockviewGroupPanelModel, + GroupOptions, + IHeader, +} from './dockviewGroupPanelModel'; import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel'; import { IDockviewPanel } from '../dockview/dockviewPanel'; -export interface IGroupviewPanel extends IGridviewPanel { - model: Groupview; +export interface IDockviewGroupPanel extends IGridviewPanel { + model: DockviewGroupPanelModel; locked: boolean; readonly size: number; readonly panels: IDockviewPanel[]; readonly activePanel: IDockviewPanel | undefined; } -export type IGroupviewPanelPublic = IGroupviewPanel; +export type IDockviewGroupPanelPublic = IDockviewGroupPanel; -export type GroupviewPanelApi = GridviewPanelApi; +export type DockviewGroupPanelApi = GridviewPanelApi; -export class GroupPanel extends GridviewPanel implements IGroupviewPanel { - private readonly _model: Groupview; +export class DockviewGroupPanel + extends GridviewPanel + implements IDockviewGroupPanel +{ + private readonly _model: DockviewGroupPanelModel; get panels(): IDockviewPanel[] { return this._model.panels; @@ -32,7 +39,7 @@ export class GroupPanel extends GridviewPanel implements IGroupviewPanel { return this._model.size; } - get model(): Groupview { + get model(): DockviewGroupPanelModel { return this._model; } @@ -71,7 +78,13 @@ export class GroupPanel extends GridviewPanel implements IGroupviewPanel { ) { super(id, 'groupview_default'); - this._model = new Groupview(this.element, accessor, id, options, this); + this._model = new DockviewGroupPanelModel( + this.element, + accessor, + id, + options, + this + ); } initialize() { diff --git a/packages/dockview-core/src/groupview/groupview.ts b/packages/dockview-core/src/groupview/dockviewGroupPanelModel.ts similarity index 98% rename from packages/dockview-core/src/groupview/groupview.ts rename to packages/dockview-core/src/groupview/dockviewGroupPanelModel.ts index 9387dffb2..c737d4448 100644 --- a/packages/dockview-core/src/groupview/groupview.ts +++ b/packages/dockview-core/src/groupview/dockviewGroupPanelModel.ts @@ -11,19 +11,19 @@ import { PanelInitParameters, PanelUpdateEvent } from '../panel/types'; import { ContentContainer, IContentContainer } from './panel/content'; import { ITabsContainer, TabsContainer } from './titlebar/tabsContainer'; import { IWatermarkRenderer } from './types'; -import { GroupPanel } from './groupviewPanel'; +import { DockviewGroupPanel } from './dockviewGroupPanel'; import { DockviewDropTargets } from './dnd'; import { IDockviewPanel } from '../dockview/dockviewPanel'; import { IGroupControlRenderer } from '../dockview/options'; export interface DndService { canDisplayOverlay( - group: IGroupview, + group: IDockviewGroupPanelModel, event: DragEvent, target: DockviewDropTargets ): boolean; onDrop( - group: IGroupview, + group: IDockviewGroupPanelModel, event: DragEvent, position: Position, index?: number @@ -77,7 +77,7 @@ export interface IHeader { height: number | undefined; } -export interface IGroupview extends IGridPanelView { +export interface IDockviewGroupPanelModel extends IGridPanelView { readonly isActive: boolean; readonly size: number; readonly panels: IDockviewPanel[]; @@ -117,7 +117,10 @@ export interface IGroupview extends IGridPanelView { ): boolean; } -export class Groupview extends CompositeDisposable implements IGroupview { +export class DockviewGroupPanelModel + extends CompositeDisposable + implements IDockviewGroupPanelModel +{ private readonly tabsContainer: ITabsContainer; private readonly contentContainer: IContentContainer; private readonly dropTarget: Droptarget; @@ -232,7 +235,7 @@ export class Groupview extends CompositeDisposable implements IGroupview { private accessor: DockviewComponent, public id: string, private readonly options: GroupOptions, - private readonly groupPanel: GroupPanel + private readonly groupPanel: DockviewGroupPanel ) { super(); diff --git a/packages/dockview-core/src/groupview/tab.ts b/packages/dockview-core/src/groupview/tab.ts index 72b1e44e7..36da8f5fa 100644 --- a/packages/dockview-core/src/groupview/tab.ts +++ b/packages/dockview-core/src/groupview/tab.ts @@ -8,7 +8,7 @@ import { import { toggleClass } from '../dom'; import { IDockviewComponent } from '../dockview/dockviewComponent'; import { ITabRenderer } from './types'; -import { GroupPanel } from './groupviewPanel'; +import { DockviewGroupPanel } from './dockviewGroupPanel'; import { DroptargetEvent, Droptarget } from '../dnd/droptarget'; import { DockviewDropTargets } from './dnd'; import { DragHandler } from '../dnd/abstractDragHandler'; @@ -40,7 +40,7 @@ export class Tab extends CompositeDisposable implements ITab { constructor( public readonly panelId: string, private readonly accessor: IDockviewComponent, - private readonly group: GroupPanel + private readonly group: DockviewGroupPanel ) { super(); diff --git a/packages/dockview-core/src/groupview/titlebar/tabsContainer.ts b/packages/dockview-core/src/groupview/titlebar/tabsContainer.ts index 74d746e3f..882dbafe2 100644 --- a/packages/dockview-core/src/groupview/titlebar/tabsContainer.ts +++ b/packages/dockview-core/src/groupview/titlebar/tabsContainer.ts @@ -6,7 +6,7 @@ import { import { addDisposableListener, Emitter, Event } from '../../events'; import { ITab, Tab } from '../tab'; import { DockviewComponent } from '../../dockview/dockviewComponent'; -import { GroupPanel } from '../groupviewPanel'; +import { DockviewGroupPanel } from '../dockviewGroupPanel'; import { VoidContainer } from './voidContainer'; import { toggleClass } from '../../dom'; import { IDockviewPanel } from '../../dockview/dockviewPanel'; @@ -135,7 +135,7 @@ export class TabsContainer constructor( private readonly accessor: DockviewComponent, - private readonly group: GroupPanel + private readonly group: DockviewGroupPanel ) { super(); diff --git a/packages/dockview-core/src/groupview/titlebar/voidContainer.ts b/packages/dockview-core/src/groupview/titlebar/voidContainer.ts index 70990ca7c..b73ec720b 100644 --- a/packages/dockview-core/src/groupview/titlebar/voidContainer.ts +++ b/packages/dockview-core/src/groupview/titlebar/voidContainer.ts @@ -6,7 +6,7 @@ import { DockviewComponent } from '../../dockview/dockviewComponent'; import { addDisposableListener, Emitter, Event } from '../../events'; import { CompositeDisposable } from '../../lifecycle'; import { DockviewDropTargets } from '../dnd'; -import { GroupPanel } from '../groupviewPanel'; +import { DockviewGroupPanel } from '../dockviewGroupPanel'; export class VoidContainer extends CompositeDisposable { private readonly _element: HTMLElement; @@ -21,7 +21,7 @@ export class VoidContainer extends CompositeDisposable { constructor( private readonly accessor: DockviewComponent, - private readonly group: GroupPanel + private readonly group: DockviewGroupPanel ) { super(); diff --git a/packages/dockview-core/src/groupview/types.ts b/packages/dockview-core/src/groupview/types.ts index dcda379ba..af36505a4 100644 --- a/packages/dockview-core/src/groupview/types.ts +++ b/packages/dockview-core/src/groupview/types.ts @@ -7,7 +7,7 @@ import { Parameters, } from '../panel/types'; import { DockviewApi } from '../api/component.api'; -import { GroupPanel } from './groupviewPanel'; +import { DockviewGroupPanel } from './dockviewGroupPanel'; import { Event } from '../events'; import { IDockviewPanelModel, @@ -38,7 +38,7 @@ export interface IWatermarkRenderer > { readonly element: HTMLElement; init: (params: GroupPanelPartInitParameters) => void; - updateParentGroup(group: GroupPanel, visible: boolean): void; + updateParentGroup(group: DockviewGroupPanel, visible: boolean): void; } export interface ITabRenderer @@ -48,7 +48,7 @@ export interface ITabRenderer > { readonly element: HTMLElement; init(parameters: GroupPanelPartInitParameters): void; - onGroupChange?(group: GroupPanel): void; + onGroupChange?(group: DockviewGroupPanel): void; onPanelVisibleChange?(isPanelVisible: boolean): void; } @@ -61,7 +61,7 @@ export interface IContentRenderer readonly onDidFocus?: Event; readonly onDidBlur?: Event; init(parameters: GroupPanelContentPartInitParameters): void; - onGroupChange?(group: GroupPanel): void; + onGroupChange?(group: DockviewGroupPanel): void; onPanelVisibleChange?(isPanelVisible: boolean): void; } diff --git a/packages/dockview-core/src/index.ts b/packages/dockview-core/src/index.ts index b5a753dca..62b231c69 100644 --- a/packages/dockview-core/src/index.ts +++ b/packages/dockview-core/src/index.ts @@ -23,7 +23,7 @@ export * from './splitview/core/options'; export * from './paneview/paneview'; export * from './gridview/gridview'; -export * from './groupview/groupview'; +export * from './groupview/dockviewGroupPanelModel'; export * from './gridview/baseComponentGridview'; export * from './paneview/draggablePaneviewPanel'; @@ -32,7 +32,7 @@ export * from './groupview/panel/content'; export * from './groupview/tab'; export * from './groupview/dnd'; export * from './groupview/types'; -export * from './groupview/groupviewPanel'; +export * from './groupview/dockviewGroupPanel'; export * from './dockview/options'; export * from './dockview/dockviewPanel'; diff --git a/packages/dockview/src/dockview/reactContentPart.ts b/packages/dockview/src/dockview/reactContentPart.ts index 79552bf13..3099dfa7b 100644 --- a/packages/dockview/src/dockview/reactContentPart.ts +++ b/packages/dockview/src/dockview/reactContentPart.ts @@ -3,7 +3,7 @@ import { ReactPart, ReactPortalStore } from '../react'; import { IDockviewPanelProps } from '../dockview/dockview'; import { DockviewEmitter, - Event, + DockviewEvent, GroupPanel, PanelUpdateEvent, IContentRenderer, @@ -17,10 +17,10 @@ export class ReactPanelContentPart implements IContentRenderer { private _group: GroupPanel | undefined; private readonly _onDidFocus = new DockviewEmitter(); - readonly onDidFocus: Event = this._onDidFocus.event; + readonly onDidFocus: DockviewEvent = this._onDidFocus.event; private readonly _onDidBlur = new DockviewEmitter(); - readonly onDidBlur: Event = this._onDidBlur.event; + readonly onDidBlur: DockviewEvent = this._onDidBlur.event; get element(): HTMLElement { return this._element;