diff --git a/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts b/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts index 6ee389a3b..48cfa1a4d 100644 --- a/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts +++ b/packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts @@ -16,7 +16,6 @@ import { DockviewPanelApi, DockviewPanelApiImpl, } from '../../api/dockviewPanelApi'; -import { DefaultDockviewDeserialzier } from '../../dockview/deserializer'; import { IDockviewPanelModel } from '../../dockview/dockviewPanelModel'; import { DockviewPanelModelMock } from '../__mocks__/mockDockviewPanelMode'; import { DefaultTab } from '../../dockview/components/tab/defaultTab'; @@ -470,7 +469,6 @@ describe('dockviewComponent', () => { test('serialization', () => { dockview.layout(1000, 1000); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); dockview.fromJSON({ activeGroup: 'group-1', grid: { @@ -1382,7 +1380,6 @@ describe('dockviewComponent', () => { default: PanelContentPartTest, }, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); dockview.layout(500, 1000); @@ -1507,7 +1504,6 @@ describe('dockviewComponent', () => { }) ); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); dockview.fromJSON({ activeGroup: 'group-1', grid: { @@ -1641,7 +1637,6 @@ describe('dockviewComponent', () => { default: PanelContentPartTest, }, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); dockview.fromJSON({ activeGroup: 'group-1', grid: { @@ -1731,7 +1726,6 @@ describe('dockviewComponent', () => { test_tab_id: PanelTabPartTest, }, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); dockview.fromJSON({ activeGroup: 'group-1', grid: { @@ -1840,7 +1834,6 @@ describe('dockviewComponent', () => { test_tab_id: PanelTabPartTest, }, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); dockview.fromJSON({ activeGroup: 'group-1', grid: { @@ -1928,7 +1921,6 @@ describe('dockviewComponent', () => { }, orientation: Orientation.HORIZONTAL, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); expect(dockview.orientation).toBe(Orientation.HORIZONTAL); @@ -2034,7 +2026,6 @@ describe('dockviewComponent', () => { }, orientation: Orientation.HORIZONTAL, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); expect(dockview.orientation).toBe(Orientation.HORIZONTAL); @@ -2175,7 +2166,6 @@ describe('dockviewComponent', () => { }, orientation: Orientation.HORIZONTAL, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); expect(dockview.orientation).toBe(Orientation.HORIZONTAL); @@ -2303,7 +2293,6 @@ describe('dockviewComponent', () => { }, orientation: Orientation.HORIZONTAL, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); expect(dockview.groups.length).toBe(0); }); @@ -2320,7 +2309,6 @@ describe('dockviewComponent', () => { }, orientation: Orientation.HORIZONTAL, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); expect(dockview.groups.length).toBe(0); @@ -2360,7 +2348,6 @@ describe('dockviewComponent', () => { }, orientation: Orientation.HORIZONTAL, }); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); expect(JSON.parse(JSON.stringify(dockview.toJSON()))).toEqual({ grid: { diff --git a/packages/dockview-core/src/dockview/dockviewComponent.ts b/packages/dockview-core/src/dockview/dockviewComponent.ts index c2ab01930..8c549b632 100644 --- a/packages/dockview-core/src/dockview/dockviewComponent.ts +++ b/packages/dockview-core/src/dockview/dockviewComponent.ts @@ -16,7 +16,7 @@ import { DockviewDropTargets, } from './types'; import { sequentialNumberGenerator } from '../math'; -import { IPanelDeserializer } from './deserializer'; +import { DefaultDockviewDeserialzier } from './deserializer'; import { createComponent } from '../panel/componentFactory'; import { AddGroupOptions, @@ -87,7 +87,6 @@ export interface IDockviewComponent extends IBaseGrid { readonly onDidDrop: Event; readonly orientation: Orientation; tabHeight: number | undefined; - deserializer: IPanelDeserializer | undefined; updateOptions(options: DockviewComponentUpdateOptions): void; moveGroupOrPanel( referenceGroup: DockviewGroupPanel, @@ -125,8 +124,8 @@ export class DockviewComponent implements IDockviewComponent { private readonly nextGroupId = sequentialNumberGenerator(); - private _deserializer: IPanelDeserializer | undefined; - private _api: DockviewApi; + private readonly _deserializer = new DefaultDockviewDeserialzier(this); + private readonly _api: DockviewApi; private _options: Exclude; private watermark: IWatermarkRenderer | null = null; @@ -161,14 +160,6 @@ export class DockviewComponent return this.groups.flatMap((group) => group.panels); } - get deserializer(): IPanelDeserializer | undefined { - return this._deserializer; - } - - set deserializer(value: IPanelDeserializer | undefined) { - this._deserializer = value; - } - get options(): DockviewComponentOptions { return this._options; } @@ -428,9 +419,6 @@ export class DockviewComponent fromJSON(data: SerializedDockview): void { this.clear(); - if (!this.deserializer) { - throw new Error('no deserializer provided'); - } const { grid, panels, options, activeGroup } = data; if (typeof options?.tabHeight === 'number') { @@ -454,7 +442,7 @@ export class DockviewComponent this._onDidAddGroup.fire(group); for (const child of views) { - const panel = this.deserializer!.fromJSON( + const panel = this._deserializer.fromJSON( panels[child], group ); diff --git a/packages/dockview/src/dockview/dockview.tsx b/packages/dockview/src/dockview/dockview.tsx index 7d1fe46fa..534a1cca6 100644 --- a/packages/dockview/src/dockview/dockview.tsx +++ b/packages/dockview/src/dockview/dockview.tsx @@ -11,7 +11,6 @@ import { ITabRenderer, watchElementResize, DockviewGroupPanel, - DefaultDockviewDeserialzier, } from 'dockview-core'; import { ReactPanelContentPart } from './reactContentPart'; import { ReactPanelHeaderPart } from './reactHeaderPart'; @@ -173,7 +172,6 @@ export const DockviewReact = React.forwardRef( }); domRef.current?.appendChild(dockview.element); - dockview.deserializer = new DefaultDockviewDeserialzier(dockview); const { clientWidth, clientHeight } = domRef.current!; dockview.layout(clientWidth, clientHeight);