@ohu-mobile/core
Version:
71 lines (70 loc) • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props"));
var _defineComponent = require("../_utils/defineComponent");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = exports.default = (0, _defineComponent.defineComponent)('list-item').create({
props: {
text: String,
minorText: String,
disabled: (0, _defineComponent.props)(Boolean).default(false),
button: (0, _defineComponent.props)(Boolean).default(false),
divider: (0, _defineComponent.props)(Boolean).default(true),
paddingDivider: (0, _defineComponent.props)(Boolean).default(true),
layoutReverse: (0, _defineComponent.props)(Boolean).default(false)
},
render: function render() {
var _this = this;
var h = arguments[0];
var $slots = this.$slots,
text = this.text,
minorText = this.minorText,
button = this.button,
divider = this.divider,
disabled = this.disabled,
paddingDivider = this.paddingDivider,
layoutReverse = this.layoutReverse;
var hasAction = !!$slots.action;
var root = this.$rootCls();
root.has([hasAction && 'action', divider && 'divider', paddingDivider && 'divider-padding']);
root.is([button && 'button', disabled && 'disabled', layoutReverse && 'reverse']);
var props = {
class: root
};
if (button) {
props.on = {
click: function click(e) {
if (disabled) return;
_this.$emit('click', e);
},
touchstart: function touchstart(e) {
_this.$emit('touchstart', e);
}
};
}
var textNode = $slots.text || text;
var minorTextNode = $slots.minorText || minorText;
var textClass = root.block('text');
var centerNode = $slots.default ? $slots.default : h("div", {
"class": textClass
}, [textNode && h("span", {
"class": textClass.element('primary')
}, [textNode]), minorTextNode && h("p", {
"class": textClass.element('minor')
}, [minorTextNode])]);
return h("li", (0, _babelHelperVueJsxMergeProps.default)([{}, props]), [h("div", {
"class": root.element('main')
}, [$slots.thumb && h("div", {
"class": root.block('thumb')
}, [$slots.thumb]), $slots.avatar && h("div", {
"class": root.block('avatar')
}, [$slots.avatar]), $slots.icon && h("div", {
"class": root.block('icon')
}, [$slots.icon]), centerNode]), hasAction && h("div", {
"class": root.block('action')
}, [$slots.action])]);
}
});