UNPKG

dockview

Version:

Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support

35 lines (34 loc) 1.73 kB
import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel'; import { createComponent } from '../panel/componentFactory'; import { DockviewApi } from '../api/component.api'; import { DefaultTab } from '../dockview/components/tab/defaultTab'; import { DefaultGroupPanelView } from '../dockview/defaultGroupPanelView'; export class ReactPanelDeserialzier { constructor(layout) { this.layout = layout; } fromJSON(panelData) { var _a, _b, _c; const panelId = panelData.id; const params = panelData.params; const title = panelData.title; const state = panelData.state; const suppressClosable = panelData.suppressClosable; const viewData = panelData.view; const view = new DefaultGroupPanelView({ content: createComponent(viewData.content.id, viewData.content.id, this.layout.options.components, this.layout.options.frameworkComponents, (_a = this.layout.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.content), tab: ((_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id) ? createComponent(viewData.tab.id, viewData.tab.id, this.layout.options.tabComponents, this.layout.options.frameworkTabComponents, (_c = this.layout.options.frameworkComponentFactory) === null || _c === void 0 ? void 0 : _c.tab) : new DefaultTab(), }); const panel = new DockviewGroupPanel(panelId, new DockviewApi(this.layout)); panel.init({ view, title, suppressClosable, params: params || {}, state: state || {}, }); return panel; } }