maille
Version:
Component library for MithrilJS
37 lines (36 loc) • 1.56 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
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;