UNPKG

dockview

Version:

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

53 lines (52 loc) 1.67 kB
import { Emitter } from '../events'; import { GridviewPanelApiImpl } from './gridviewPanelApi'; export class DockviewPanelApiImpl extends GridviewPanelApiImpl { constructor(panel, group) { super(panel.id); this.panel = panel; this._onDidDirtyChange = new Emitter(); this.onDidDirtyChange = this._onDidDirtyChange.event; this._onDidTitleChange = new Emitter(); this.onDidTitleChange = this._onDidTitleChange.event; this._titleChanged = new Emitter(); this.titleChanged = this._titleChanged.event; this._suppressClosableChanged = new Emitter(); this.suppressClosableChanged = this._suppressClosableChanged.event; this._group = group; this.addDisposables(this._onDidDirtyChange); } get tryClose() { return this._interceptor; } get title() { return this.panel.title; } get suppressClosable() { return !!this.panel.suppressClosable; } get isGroupActive() { var _a; return !!((_a = this.group) === null || _a === void 0 ? void 0 : _a.isActive); } set group(value) { this._group = value; } get group() { return this._group; } setTitle(title) { this._onDidTitleChange.fire({ title }); } close() { if (!this.group) { throw new Error(`panel ${this.id} has no group`); } return this.group.model.closePanel(this.panel); } interceptOnCloseAction(interceptor) { this._interceptor = interceptor; } dispose() { super.dispose(); } }