UNPKG

maille

Version:

Component library for MithrilJS

54 lines (53 loc) 2.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const mithril_1 = __importDefault(require("mithril")); // +standalone class ThreeRowLayout { view(vnode) { const classes = new Set(["maille", "maille-three-row-layout"]); // Build list of classes if (vnode.attrs.className) { vnode.attrs.className.split(" ").forEach(c => classes.add(c)); } const className = [...classes].join(" "); const children = [ this.buildHeader(vnode), this.buildBody(vnode), this.buildFooter(vnode), ]; return mithril_1.default("div", { className }, children); } buildHeader(vnode) { if (!vnode.attrs.header) { return null; } const header = vnode.attrs.header; // Build header content const headerAttrs = Object.assign({}, header.container && header.container.attrs ? header.container.attrs : {}); const headerContent = header.content ? header.content : []; return mithril_1.default(".maille-three-row-layout-header-container", headerAttrs, headerContent); } buildBody(vnode) { if (!vnode.attrs.body) { return null; } const body = vnode.attrs.body; // Build body content const bodyAttrs = Object.assign({}, body.container && body.container.attrs ? body.container.attrs : {}); const bodyContent = body.content ? body.content : []; return mithril_1.default(".maille-three-row-layout-body-container", bodyAttrs, bodyContent); } buildFooter(vnode) { if (!vnode.attrs.footer) { return null; } const footer = vnode.attrs.footer; // Build footer content const footerAttrs = Object.assign({}, footer.container && footer.container.attrs ? footer.container.attrs : {}); const footerContent = footer.content ? footer.content : []; return mithril_1.default(".maille-three-row-layout-footer-container", footerAttrs, footerContent); } } exports.default = ThreeRowLayout;