UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

76 lines (65 loc) 2.76 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _vue = require("vue"); var _utils = require("../shared/utils"); var _mixins = require("../shared/mixins"); var _useTooltip = require("../shared/use-tooltip"); var _useRouteProps = require("../shared/use-route-props"); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function render(_ctx, _cache) { return (0, _vue.openBlock)(), (0, _vue.createBlock)("li", null, [(0, _vue.createVNode)("a", (0, _vue.mergeProps)({ ref: "linkElRef", class: _ctx.linkClasses }, _ctx.linkAttrs, { onClick: _cache[1] || (_cache[1] = function () { return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments); }) }), [(0, _vue.createTextVNode)((0, _vue.toDisplayString)(_ctx.title) + " " + (0, _vue.toDisplayString)(_ctx.text) + " ", 1), (0, _vue.renderSlot)(_ctx.$slots, "default")], 16)]); } var _default = { name: 'zmp-list-button', render: render, props: _extends({ title: [String, Number], text: [String, Number], tabLink: [Boolean, String], tabLinkActive: Boolean, link: [Boolean, String], href: [Boolean, String], target: String, tooltip: String, tooltipTrigger: String }, _mixins.colorProps, _mixins.actionsProps, _mixins.routerProps), emits: ['click'], setup: function setup(props, _ref) { var emit = _ref.emit; var linkElRef = (0, _vue.ref)(null); var onClick = function onClick(e) { emit('click', e); }; (0, _useTooltip.useTooltip)(linkElRef, props); (0, _useRouteProps.useRouteProps)(linkElRef, props); var linkAttrs = (0, _vue.computed)(function () { return _extends({ href: typeof props.link === 'boolean' && typeof props.href === 'boolean' ? '#' : props.link || props.href, target: props.target, 'data-tab': (0, _utils.isStringProp)(props.tabLink) && props.tabLink }, (0, _mixins.routerAttrs)(props), (0, _mixins.actionsAttrs)(props)); }); var linkClasses = (0, _vue.computed)(function () { return (0, _utils.classNames)(_extends({ 'list-button': true, 'tab-link': props.tabLink || props.tabLink === '', 'tab-link-active': props.tabLinkActive }, (0, _mixins.colorClasses)(props), (0, _mixins.routerClasses)(props), (0, _mixins.actionsClasses)(props))); }); return { linkAttrs: linkAttrs, linkClasses: linkClasses, onClick: onClick, linkElRef: linkElRef }; } }; exports.default = _default;