UNPKG

dockview-solid

Version:

Zero dependency layout manager supporting tabs, grids and splitviews

55 lines (54 loc) 1.98 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridviewSolid = void 0; var solid_js_1 = require("solid-js"); var dockview_core_1 = require("dockview-core"); var view_1 = require("./view"); var GridviewSolid = function (props) { var container; var api; (0, solid_js_1.onMount)(function () { var frameworkOptions = { createComponent: function (options) { return new view_1.SolidGridPanelView(options.id, options.name, props.components[options.name]); }, }; var coreOptions = {}; dockview_core_1.PROPERTY_KEYS_GRIDVIEW.forEach(function (key) { if (key in props) { coreOptions[key] = props[key]; } }); api = (0, dockview_core_1.createGridview)(container, __assign(__assign({}, coreOptions), frameworkOptions)); api.layout(container.clientWidth, container.clientHeight); props.onReady({ api: api }); }); (0, solid_js_1.onCleanup)(function () { if (api) api.dispose(); }); (0, solid_js_1.createEffect)(function () { if (api) { var changes_1 = {}; dockview_core_1.PROPERTY_KEYS_GRIDVIEW.forEach(function (key) { if (key in props) { changes_1[key] = props[key]; } }); api.updateOptions(changes_1); } }); return <div style={{ height: '100%', width: '100%' }} ref={function (el) { return (container = el); }}/>; }; exports.GridviewSolid = GridviewSolid;