zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
85 lines (70 loc) • 2.63 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _vue = require("vue");
var _utils = require("../shared/utils");
var _mixins = require("../shared/mixins");
var _useTheme = require("../shared/use-theme");
var _link = _interopRequireDefault(require("./link"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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) {
var _component_zmp_link = (0, _vue.resolveComponent)("zmp-link");
return (0, _vue.openBlock)(), (0, _vue.createBlock)("div", {
class: _ctx.classes
}, [_ctx.backLink ? ((0, _vue.openBlock)(), (0, _vue.createBlock)(_component_zmp_link, {
key: 0,
href: _ctx.backLinkUrl || '#',
back: "",
icon: "icon-back",
force: _ctx.backLinkForce || undefined,
class: !_ctx.text ? 'icon-only' : undefined,
text: _ctx.text,
onClick: _ctx.onBackClick
}, null, 8, ["href", "force", "class", "text", "onClick"])) : (0, _vue.createCommentVNode)("", true), (0, _vue.renderSlot)(_ctx.$slots, "default")], 2);
}
var _default = {
name: 'zmp-nav-left',
render: render,
components: {
zmpLink: _link.default
},
props: _extends({
backLink: [Boolean, String],
backLinkUrl: String,
backLinkForce: Boolean,
backLinkShowText: {
type: Boolean,
default: undefined
},
sliding: Boolean
}, _mixins.colorProps),
emits: ['back:click', 'click:back'],
setup: function setup(props, _ref) {
var emit = _ref.emit;
var onBackClick = function onBackClick(event) {
emit('back:click', event);
emit('click:back', event);
};
var theme = (0, _useTheme.useTheme)();
var text = (0, _vue.computed)(function () {
var needBackLinkText = props.backLinkShowText;
if (typeof needBackLinkText === 'undefined') needBackLinkText = !theme.value.md;
if (props.backLink) {
return props.backLink !== true && needBackLinkText ? props.backLink : undefined;
}
return undefined;
});
var classes = (0, _vue.computed)(function () {
return (0, _utils.classNames)('left', {
sliding: props.sliding
}, (0, _mixins.colorClasses)(props));
});
return {
classes: classes,
onBackClick: onBackClick,
text: text
};
}
};
exports.default = _default;