UNPKG

@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
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()), }; } }