@sodacore/ui
Version:
Sodacore UI is a powerful JSON-based DSL for describing web pages that can be rendered by a frontend JavaScript framework.
48 lines (47 loc) • 1.1 kB
JavaScript
import Layout from './layout';
export default class Page {
constructor(title) {
this.title = title;
this.layout = new Layout();
this.elements = [];
}
setTitle(title) {
this.title = title;
return this;
}
getTitle() {
return this.title;
}
setLayout(layout) {
this.layout = layout;
return this;
}
getLayout() {
return this.layout;
}
addElement(element) {
this.elements.push(element);
return this;
}
addElements(...elements) {
this.elements.push(...elements);
return this;
}
removeElement(element) {
this.elements = this.elements.filter(e => e !== element);
return this;
}
getElements() {
return this.elements;
}
getElement(key) {
return this.elements.find(element => element.getKey() === key);
}
toJSON() {
return {
title: this.title,
layout: this.layout.toJSON(),
elements: this.elements.map(element => element.toJSON()),
};
}
}