UNPKG

dockview-core

Version:

Zero dependency layout manager supporting tabs, grids and splitviews

35 lines (34 loc) 1.51 kB
import { DockviewPanel } from './dockviewPanel'; import { DockviewPanelModel } from './dockviewPanelModel'; import { DockviewApi } from '../api/component.api'; export class DefaultDockviewDeserialzier { constructor(accessor) { this.accessor = accessor; } fromJSON(panelData, group) { var _a, _b; const panelId = panelData.id; const params = panelData.params; const title = panelData.title; const viewData = panelData.view; const contentComponent = viewData ? viewData.content.id : (_a = panelData.contentComponent) !== null && _a !== void 0 ? _a : 'unknown'; const tabComponent = viewData ? (_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id : panelData.tabComponent; const view = new DockviewPanelModel(this.accessor, panelId, contentComponent, tabComponent); const panel = new DockviewPanel(panelId, contentComponent, tabComponent, this.accessor, new DockviewApi(this.accessor), group, view, { renderer: panelData.renderer, minimumWidth: panelData.minimumWidth, minimumHeight: panelData.minimumHeight, maximumWidth: panelData.maximumWidth, maximumHeight: panelData.maximumHeight, }); panel.init({ title: title !== null && title !== void 0 ? title : panelId, params: params !== null && params !== void 0 ? params : {}, }); return panel; } }