zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
106 lines (92 loc) • 3.39 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _vue = require("vue");
var _navLeft = _interopRequireDefault(require("./nav-left"));
var _navTitle = _interopRequireDefault(require("./nav-title"));
var _navbar = _interopRequireDefault(require("../components/navbar"));
var _constants = require("../../common/constants");
var _mixins = require("../shared/mixins");
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_NavLeft = (0, _vue.resolveComponent)("NavLeft");
var _component_NavTitle = (0, _vue.resolveComponent)("NavTitle");
var _component_Navbar = (0, _vue.resolveComponent)("Navbar");
return (0, _vue.openBlock)(), (0, _vue.createBlock)("div", {
ref: _ctx.elRef
}, [(0, _vue.createVNode)(_component_Navbar, (0, _vue.mergeProps)(_extends({}, _ctx.$props, _ctx.$attrs), {
class: {
'zmp-navbar-fill': _ctx.fill
},
"back-link": false,
title: false,
subtitle: false
}), (0, _vue.createSlots)({
default: (0, _vue.withCtx)(function () {
return [_ctx.title || _ctx.subtitle ? ((0, _vue.openBlock)(), (0, _vue.createBlock)(_component_NavTitle, (0, _vue.mergeProps)({
key: 0
}, _ctx.$props), null, 16)) : (0, _vue.createCommentVNode)("", true)];
}),
_: 2
}, [_ctx.backLink ? {
name: "nav-left",
fn: (0, _vue.withCtx)(function () {
return [(0, _vue.createVNode)(_component_NavLeft, (0, _vue.mergeProps)(_ctx.$props, {
onBackClick: _cache[1] || (_cache[1] = function ($event) {
return _ctx.$emit('click:back', $event);
})
}), null, 16)];
})
} : undefined, (0, _vue.renderList)(_ctx.$slots, function (_, name) {
return {
name: name,
fn: (0, _vue.withCtx)(function (slotData) {
return [(0, _vue.renderSlot)(_ctx.$slots, name, slotData)];
})
};
})]), 1040, ["class"])], 512);
}
var _default = {
name: 'zmp-navbar',
render: render,
components: {
Navbar: _navbar.default,
NavLeft: _navLeft.default,
NavTitle: _navTitle.default
},
props: _extends({
backLink: [Boolean, String],
backLinkUrl: String,
backLinkForce: Boolean,
backLinkShowText: Boolean,
sliding: Boolean,
title: String,
subtitle: String,
hidden: Boolean,
fill: Boolean,
noShadow: Boolean,
noHairline: Boolean,
innerClass: String,
innerClassName: String,
large: Boolean,
largeTransparent: Boolean,
transparent: Boolean,
titleLarge: String
}, _mixins.colorProps),
emits: ['click:back'],
setup: function setup(props) {
var elRef = (0, _vue.ref)();
(0, _vue.onMounted)(function () {
if (props.large) {
var root = document.documentElement;
var height = elRef.value.el ? elRef.value.el.offsetHeight : _constants.DEFAULT_LARGE_NAVBAR_HEIGHT;
root.style.setProperty('--zmp-navbar-height', height + "px");
}
}, []);
return {
elRef: elRef
};
}
};
exports.default = _default;