maille
Version:
Component library for MithrilJS
38 lines (37 loc) • 1.69 kB
JavaScript
;
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 TwoColumnLayout {
buildLHS(vnode) {
let lhsAttrs = {};
if (vnode.attrs.lhs && vnode.attrs.lhs.container && vnode.attrs.lhs.container.attrs) {
lhsAttrs = Object.assign({}, vnode.attrs.lhs.container.attrs);
}
const lhsContent = vnode.attrs.lhs && vnode.attrs.lhs.content ? vnode.attrs.lhs.content : [];
return mithril_1.default(".maille-two-column-layout-lhs-container", lhsAttrs, lhsContent);
}
buildRHS(vnode) {
let rhsAttrs = {};
if (vnode.attrs.rhs && vnode.attrs.rhs.container && vnode.attrs.rhs.container.attrs) {
rhsAttrs = Object.assign({}, vnode.attrs.rhs.container.attrs);
}
const rhsContent = vnode.attrs.rhs && vnode.attrs.rhs.content ? vnode.attrs.rhs.content : [];
return mithril_1.default(".maille-two-column-layout-rhs-container", rhsAttrs, rhsContent);
}
view(vnode) {
const classes = new Set(["maille", "maille-two-column-layout"]);
// Use list of state-managed classes to build className
if (vnode.attrs.className) {
vnode.attrs.className.split(" ").forEach(c => classes.add(c));
}
const className = [...classes].join(" ");
return mithril_1.default("div", { className }, [
this.buildLHS(vnode),
this.buildRHS(vnode),
]);
}
}
exports.default = TwoColumnLayout;