dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
40 lines • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReactPanelDeserialzier = void 0;
var dockviewGroupPanel_1 = require("../dockview/dockviewGroupPanel");
var componentFactory_1 = require("../panel/componentFactory");
var component_api_1 = require("../api/component.api");
var defaultTab_1 = require("../dockview/components/tab/defaultTab");
var defaultGroupPanelView_1 = require("../dockview/defaultGroupPanelView");
var ReactPanelDeserialzier = /** @class */ (function () {
function ReactPanelDeserialzier(layout) {
this.layout = layout;
}
ReactPanelDeserialzier.prototype.fromJSON = function (panelData) {
var _a, _b, _c;
var panelId = panelData.id;
var params = panelData.params;
var title = panelData.title;
var state = panelData.state;
var suppressClosable = panelData.suppressClosable;
var viewData = panelData.view;
var view = new defaultGroupPanelView_1.DefaultGroupPanelView({
content: (0, componentFactory_1.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)
? (0, componentFactory_1.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_1.DefaultTab(),
});
var panel = new dockviewGroupPanel_1.DockviewGroupPanel(panelId, new component_api_1.DockviewApi(this.layout));
panel.init({
view: view,
title: title,
suppressClosable: suppressClosable,
params: params || {},
state: state || {},
});
return panel;
};
return ReactPanelDeserialzier;
}());
exports.ReactPanelDeserialzier = ReactPanelDeserialzier;
//# sourceMappingURL=deserializer.js.map