asciitorium
Version:
an ASCII CLUI framework
29 lines (28 loc) • 798 B
JavaScript
var _a;
import { RowLayout } from './RowLayout.js';
import { ColumnLayout } from './ColumnLayout.js';
/**
* Registry of available layouts
*/
export class LayoutRegistry {
static register(type, layoutClass) {
this.layouts.set(type, layoutClass);
}
static create(type, options) {
const LayoutClass = this.layouts.get(type);
if (!LayoutClass) {
throw new Error(`Unknown layout type: ${type}`);
}
return new LayoutClass(options);
}
static getAvailableTypes() {
return Array.from(this.layouts.keys());
}
}
_a = LayoutRegistry;
LayoutRegistry.layouts = new Map();
// Static initialization - register all built-in layouts
(() => {
_a.layouts.set('row', RowLayout);
_a.layouts.set('column', ColumnLayout);
})();