@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
105 lines (100 loc) • 3.37 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../hooks/index.js');
require('../../../tokens/index.js');
require('../../../utils/index.js');
var index$1 = require('../../icon/index.js');
var sidebarItem = require('./sidebar-item.js');
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
var index = require('../../../hooks/use-namespace/index.js');
var sidebar = require('../../../tokens/sidebar.js');
var error = require('../../../utils/error.js');
const __default__ = vue.defineComponent({
name: "VsSidebarItem"
});
const _sfc_main = vue.defineComponent({
...__default__,
props: sidebarItem.sidebarItemProps,
setup(__props) {
const props = __props;
const slots = vue.useSlots();
const ns = index.useNamespace("sidebar-item");
const sidebar$1 = vue.inject(sidebar.sidebarContextKey);
if (!sidebar$1) {
error.throwError("sidebar-item", "need to call inside the sidebar component");
}
const handleClickItem = (router) => {
if (props.id) {
sidebar$1.handleClickItem(props.id);
}
if (props.to) {
router.push(props.to);
} else if (props.href) {
window.open(props.href, props.target);
}
};
const itemKls = vue.computed(() => [
ns.b(),
ns.is("active", props.active || sidebar$1.modelValue.value == props.id),
ns.is("has-icon", Boolean(slots.icon))
]);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock(
"button",
{
class: vue.normalizeClass(itemKls.value),
onClick: _cache[0] || (_cache[0] = ($event) => handleClickItem(_ctx.$router))
},
[
_ctx.$slots.icon ? (vue.openBlock(), vue.createElementBlock(
"div",
{
key: 0,
class: vue.normalizeClass(vue.unref(ns).e("icon"))
},
[
vue.renderSlot(_ctx.$slots, "icon")
],
2
)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode(
"div",
{
class: vue.normalizeClass(vue.unref(ns).e("text"))
},
[
vue.renderSlot(_ctx.$slots, "default")
],
2
),
vue.createElementVNode(
"div",
{
class: vue.normalizeClass(vue.unref(ns).e("text-tooltip"))
},
[
vue.renderSlot(_ctx.$slots, "default")
],
2
),
_ctx.$slots.arrow ? vue.renderSlot(_ctx.$slots, "arrow", { key: 1 }) : _ctx.arrow ? (vue.openBlock(), vue.createElementBlock(
"div",
{
key: 2,
class: vue.normalizeClass(vue.unref(ns).e("arrow"))
},
[
vue.createVNode(vue.unref(index$1.IconArrow))
],
2
)) : vue.createCommentVNode("v-if", true)
],
2
);
};
}
});
var SidebarItem = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/sidebar/src/sidebar-item.vue"]]);
exports["default"] = SidebarItem;
//# sourceMappingURL=sidebar-item2.js.map