UNPKG

jiro-ui

Version:

A Mithril.js UI library based from construct-ui

39 lines (38 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ListItem = void 0; var tslib_1 = require("tslib"); var mithril_1 = tslib_1.__importDefault(require("mithril")); var classnames_1 = tslib_1.__importDefault(require("classnames")); var _shared_1 = require("../../_shared"); var util_1 = require("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 = tslib_1.__rest(attrs, ["active", "class", "contentLeft", "contentRight", "disabled", "selected", "label", "onclick"]); var classes = classnames_1.default(_shared_1.Classes.LIST_ITEM, active && _shared_1.Classes.ACTIVE, disabled && _shared_1.Classes.DISABLED, selected && _shared_1.Classes.SELECTED, className); var content = [ contentLeft && mithril_1.default("." + _shared_1.Classes.LIST_ITEM_CONTENT_LEFT, contentLeft), label, contentRight && mithril_1.default("." + _shared_1.Classes.LIST_ITEM_CONTENT_RIGHT, contentRight) ]; return mithril_1.default('', tslib_1.__assign(tslib_1.__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 = _shared_1.getClosest(el, "." + _shared_1.Classes.LIST_ITEM_CONTENT_LEFT); var isRightContentClick = _shared_1.getClosest(el, "." + _shared_1.Classes.LIST_ITEM_CONTENT_RIGHT); var allowContentClick = allowOnContentClick || (!isLeftContentClick && !isRightContentClick); if (util_1.isFunction(onclick) && allowContentClick) { _shared_1.safeCall(onclick, e); } else e.redraw = false; }; return ListItem; }()); exports.ListItem = ListItem;