UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

85 lines (70 loc) 2.63 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 _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;