UNPKG

dockview-core

Version:

Zero dependency layout manager supporting tabs, grids and splitviews

202 lines (201 loc) 9.07 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.DockviewGroupPanel = void 0; var dockviewGroupPanelModel_1 = require("./dockviewGroupPanelModel"); var gridviewPanel_1 = require("../gridview/gridviewPanel"); var dockviewGroupPanelApi_1 = require("../api/dockviewGroupPanelApi"); // GridConstraintChangeEvent2 is not exported, so we'll type it manually var MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH = 100; var MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT = 100; var DockviewGroupPanel = /** @class */ (function (_super) { __extends(DockviewGroupPanel, _super); function DockviewGroupPanel(accessor, id, options) { var _a, _b, _c, _d, _e, _f; var _this = _super.call(this, id, 'groupview_default', { minimumHeight: (_b = (_a = options.constraints) === null || _a === void 0 ? void 0 : _a.minimumHeight) !== null && _b !== void 0 ? _b : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT, minimumWidth: (_d = (_c = options.constraints) === null || _c === void 0 ? void 0 : _c.minimumWidth) !== null && _d !== void 0 ? _d : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH, maximumHeight: (_e = options.constraints) === null || _e === void 0 ? void 0 : _e.maximumHeight, maximumWidth: (_f = options.constraints) === null || _f === void 0 ? void 0 : _f.maximumWidth, }, new dockviewGroupPanelApi_1.DockviewGroupPanelApiImpl(id, accessor)) || this; // Track explicitly set constraints to override panel constraints _this._explicitConstraints = {}; _this.api.initialize(_this); // cannot use 'this' after after 'super' call _this._model = new dockviewGroupPanelModel_1.DockviewGroupPanelModel(_this.element, accessor, id, options, _this); _this.addDisposables(_this.model.onDidActivePanelChange(function (event) { _this.api._onDidActivePanelChange.fire(event); }), _this.api.onDidConstraintsChangeInternal(function (event) { // Track explicitly set constraints to override panel constraints // Extract numeric values from functions or values if (event.minimumWidth !== undefined) { _this._explicitConstraints.minimumWidth = typeof event.minimumWidth === 'function' ? event.minimumWidth() : event.minimumWidth; } if (event.minimumHeight !== undefined) { _this._explicitConstraints.minimumHeight = typeof event.minimumHeight === 'function' ? event.minimumHeight() : event.minimumHeight; } if (event.maximumWidth !== undefined) { _this._explicitConstraints.maximumWidth = typeof event.maximumWidth === 'function' ? event.maximumWidth() : event.maximumWidth; } if (event.maximumHeight !== undefined) { _this._explicitConstraints.maximumHeight = typeof event.maximumHeight === 'function' ? event.maximumHeight() : event.maximumHeight; } })); return _this; } Object.defineProperty(DockviewGroupPanel.prototype, "minimumWidth", { get: function () { var _a; // Check for explicitly set group constraint first if (typeof this._explicitConstraints.minimumWidth === 'number') { return this._explicitConstraints.minimumWidth; } var activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth; if (typeof activePanelMinimumWidth === 'number') { return activePanelMinimumWidth; } return _super.prototype.__minimumWidth.call(this); }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "minimumHeight", { get: function () { var _a; // Check for explicitly set group constraint first if (typeof this._explicitConstraints.minimumHeight === 'number') { return this._explicitConstraints.minimumHeight; } var activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight; if (typeof activePanelMinimumHeight === 'number') { return activePanelMinimumHeight; } return _super.prototype.__minimumHeight.call(this); }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "maximumWidth", { get: function () { var _a; // Check for explicitly set group constraint first if (typeof this._explicitConstraints.maximumWidth === 'number') { return this._explicitConstraints.maximumWidth; } var activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth; if (typeof activePanelMaximumWidth === 'number') { return activePanelMaximumWidth; } return _super.prototype.__maximumWidth.call(this); }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "maximumHeight", { get: function () { var _a; // Check for explicitly set group constraint first if (typeof this._explicitConstraints.maximumHeight === 'number') { return this._explicitConstraints.maximumHeight; } var activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight; if (typeof activePanelMaximumHeight === 'number') { return activePanelMaximumHeight; } return _super.prototype.__maximumHeight.call(this); }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "panels", { get: function () { return this._model.panels; }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "activePanel", { get: function () { return this._model.activePanel; }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "size", { get: function () { return this._model.size; }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "model", { get: function () { return this._model; }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "locked", { get: function () { return this._model.locked; }, set: function (value) { this._model.locked = value; }, enumerable: false, configurable: true }); Object.defineProperty(DockviewGroupPanel.prototype, "header", { get: function () { return this._model.header; }, enumerable: false, configurable: true }); DockviewGroupPanel.prototype.focus = function () { if (!this.api.isActive) { this.api.setActive(); } _super.prototype.focus.call(this); }; DockviewGroupPanel.prototype.initialize = function () { this._model.initialize(); }; DockviewGroupPanel.prototype.setActive = function (isActive) { _super.prototype.setActive.call(this, isActive); this.model.setActive(isActive); }; DockviewGroupPanel.prototype.layout = function (width, height) { _super.prototype.layout.call(this, width, height); this.model.layout(width, height); }; DockviewGroupPanel.prototype.getComponent = function () { return this._model; }; DockviewGroupPanel.prototype.toJSON = function () { return this.model.toJSON(); }; return DockviewGroupPanel; }(gridviewPanel_1.GridviewPanel)); exports.DockviewGroupPanel = DockviewGroupPanel;