dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
38 lines (37 loc) • 1.41 kB
JavaScript
import { addDisposableListener } from '../events';
import { CompositeDisposable, MutableDisposable } from '../lifecycle';
export class DefaultHeader extends CompositeDisposable {
constructor() {
super();
this.disposable = new MutableDisposable();
this.apiRef = { api: null };
this._element = document.createElement('div');
this.element.className = 'default-header';
this._content = document.createElement('span');
this._expander = document.createElement('a');
this.element.appendChild(this._content);
this.element.appendChild(this._expander);
this.addDisposables(addDisposableListener(this._expander, 'click', () => {
var _a;
(_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);
}));
}
get element() {
return this._element;
}
init(params) {
this.apiRef.api = params.api;
this._content.textContent = params.title;
this._expander.textContent = params.api.isExpanded ? '<' : '>';
this.disposable.value = params.api.onDidExpansionChange((e) => {
this._expander.textContent = e.isExpanded ? '<' : '>';
});
}
update(params) {
//
}
dispose() {
this.disposable.dispose();
super.dispose();
}
}