LANCommander/LANCommander.UI/Components/SplitPane/SplitPane.ts

35 lines
899 B
TypeScript
Raw Permalink Normal View History

2025-09-06 13:09:47 -05:00
import Split from 'split.js'
export class SplitPane {
2026-01-03 15:52:09 -06:00
constructor(paneId: string) {
this.Init(paneId);
}
public static Create(paneId: string): SplitPane {
return new SplitPane(paneId);
}
Init(paneId: string) {
let splitPane = document.querySelector<HTMLElement>(`#split-pane-${paneId}`);
if (splitPane != null) {
let panes = Array.from(splitPane.querySelectorAll<HTMLElement>('.pane'));
let opts = new SplitPaneOptions();
for (let pane of panes) {
let size = parseInt(pane.getAttribute('data-size'));
if (isNaN(size))
opts.sizes.push(0);
else
opts.sizes.push(size);
}
Split(panes, opts);
}
}
}
class SplitPaneOptions implements Split.Options {
sizes: number[] = [];
}