UNPKG

maille

Version:

Component library for MithrilJS

37 lines (36 loc) 1.56 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 const component_1 = __importDefault(require("../text-input/component")); const component_2 = __importDefault(require("../button/component")); class InputGroup { view(vnode) { const disabled = vnode.attrs.disabled || false; const rounded = vnode.attrs.rounded || false; const outlined = vnode.attrs.outlined || false; const classes = new Set(["maille", "maille-text-input-group", "flex"]); if (rounded) { classes.add("rounded"); } if (outlined) { classes.add("outlined"); } if (disabled) { classes.add("disabled"); } const className = [...classes].join(" "); const id = vnode.attrs.id; const inputAttrs = Object.assign({}, vnode.attrs.inputAttrs, { disabled, rounded }); const buttonAttrs = Object.assign({}, vnode.attrs.buttonAttrs, { disabled, rounded, outlined }); const buttonChildren = vnode.attrs.buttonChildren || []; // Build the container return mithril_1.default("span", { id, className }, [ mithril_1.default(component_1.default, inputAttrs), mithril_1.default(component_2.default, buttonAttrs, buttonChildren), ]); } } exports.default = InputGroup;