@arminmajerie/dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews (SolidJS only)
47 lines (46 loc) • 1.36 kB
JavaScript
import { SolidPart } from '../solid';
import { DockviewEmitter, } from '@arminmajerie/dockview-core';
export class SolidPanelContentPart {
id;
component;
solidPortalStore;
_element;
part;
_onDidFocus = new DockviewEmitter();
onDidFocus = this._onDidFocus.event;
_onDidBlur = new DockviewEmitter();
onDidBlur = this._onDidBlur.event;
get element() {
return this._element;
}
constructor(id, component, solidPortalStore) {
this.id = id;
this.component = component;
this.solidPortalStore = solidPortalStore;
this._element = document.createElement('div');
this._element.className = 'dv-solid-part';
this._element.style.height = '100%';
this._element.style.width = '100%';
}
focus() {
// TODO: implement focus logic if needed
}
init(parameters) {
this.part = new SolidPart(this.element, this.solidPortalStore, this.component, {
params: parameters.params,
api: parameters.api,
containerApi: parameters.containerApi,
});
}
update(event) {
this.part?.update({ params: event.params });
}
layout(_width, _height) {
// noop
}
dispose() {
this._onDidFocus.dispose();
this._onDidBlur.dispose();
this.part?.dispose();
}
}