dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
48 lines • 1.95 kB
JavaScript
;
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultDeserializer = void 0;
var DefaultDeserializer = /** @class */ (function () {
function DefaultDeserializer(layout, panelDeserializer) {
this.layout = layout;
this.panelDeserializer = panelDeserializer;
}
DefaultDeserializer.prototype.fromJSON = function (node) {
var e_1, _a;
var children = node.data.views;
var active = node.data.activeView;
var panels = [];
try {
for (var children_1 = __values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {
var child = children_1_1.value;
var panel = this.panelDeserializer.createPanel(child);
panels.push(panel);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);
}
finally { if (e_1) throw e_1.error; }
}
return this.layout.createGroup({
panels: panels,
activePanel: panels.find(function (p) { return p.id === active; }),
id: node.data.id,
});
};
return DefaultDeserializer;
}());
exports.DefaultDeserializer = DefaultDeserializer;
//# sourceMappingURL=deserializer.js.map