UNPKG

jiro-ui

Version:

A Mithril.js UI library based from construct-ui

36 lines (35 loc) 1.9 kB
import { __assign, __rest } from "tslib"; import m from 'mithril'; import classnames from 'classnames'; import { Classes, getClosest, safeCall } from '../../_shared'; import { isFunction } from 'util'; var ListItem = /** @class */ (function () { function ListItem() { } ListItem.prototype.view = function (_a) { var _this = this; var attrs = _a.attrs; var active = attrs.active, className = attrs.class, contentLeft = attrs.contentLeft, contentRight = attrs.contentRight, disabled = attrs.disabled, selected = attrs.selected, label = attrs.label, onclick = attrs.onclick, htmlAttrs = __rest(attrs, ["active", "class", "contentLeft", "contentRight", "disabled", "selected", "label", "onclick"]); var classes = classnames(Classes.LIST_ITEM, active && Classes.ACTIVE, disabled && Classes.DISABLED, selected && Classes.SELECTED, className); var content = [ contentLeft && m("." + Classes.LIST_ITEM_CONTENT_LEFT, contentLeft), label, contentRight && m("." + Classes.LIST_ITEM_CONTENT_RIGHT, contentRight) ]; return m('', __assign(__assign({}, htmlAttrs), { class: classes, onclick: function (e) { return _this.handleClick(e, attrs); } }), content); }; ListItem.prototype.handleClick = function (e, attrs) { var allowOnContentClick = attrs.allowOnContentClick, onclick = attrs.onclick; var el = e.target; var isLeftContentClick = getClosest(el, "." + Classes.LIST_ITEM_CONTENT_LEFT); var isRightContentClick = getClosest(el, "." + Classes.LIST_ITEM_CONTENT_RIGHT); var allowContentClick = allowOnContentClick || (!isLeftContentClick && !isRightContentClick); if (isFunction(onclick) && allowContentClick) { safeCall(onclick, e); } else e.redraw = false; }; return ListItem; }()); export { ListItem };