yuang-framework-ui-pc
Version:
yuang-framework-ui-pc Library
66 lines (65 loc) • 2.61 kB
JavaScript
import { defineComponent, inject, resolveComponent, createElementBlock, openBlock, normalizeClass, renderSlot, Fragment, createElementVNode, createVNode, withCtx } from "vue";
import { ElIcon } from "element-plus";
import { CornerRightFilled, CornerLeftFilled } from "../icons";
import { TAB_WRAP_KEY } from "../ele-tabs/props";
import { tabToolProps } from "./props";
const _sfc_main = defineComponent({
name: "EleTabTool",
components: { ElIcon, CornerLeftFilled, CornerRightFilled },
props: tabToolProps,
setup(props) {
const wrapProps = inject(TAB_WRAP_KEY, null);
const handleItemClick = (e) => {
if (wrapProps && wrapProps.triggerTabItemClick) {
wrapProps.triggerTabItemClick(void 0, props.tabName, e);
}
};
const handleItemContextmenu = (e) => {
if (wrapProps && wrapProps.triggerItemContextMenu) {
wrapProps.triggerItemContextMenu(void 0, props.tabName, e);
}
};
return { handleItemClick, handleItemContextmenu };
}
});
const _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_CornerLeftFilled = resolveComponent("CornerLeftFilled");
const _component_ElIcon = resolveComponent("ElIcon");
const _component_CornerRightFilled = resolveComponent("CornerRightFilled");
return openBlock(), createElementBlock("div", {
class: normalizeClass(["ele-tab-tool", { "is-tab": _ctx.tab }, { "is-active": _ctx.active }])
}, [
_ctx.tab ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createElementVNode("div", {
class: "ele-tab-title",
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleItemClick && _ctx.handleItemClick(...args)),
onContextmenu: _cache[1] || (_cache[1] = (...args) => _ctx.handleItemContextmenu && _ctx.handleItemContextmenu(...args))
}, [
renderSlot(_ctx.$slots, "default")
], 32),
createVNode(_component_ElIcon, { class: "ele-tab-corner-left" }, {
default: withCtx(() => [
createVNode(_component_CornerLeftFilled)
]),
_: 1
}),
createVNode(_component_ElIcon, { class: "ele-tab-corner-right" }, {
default: withCtx(() => [
createVNode(_component_CornerRightFilled)
]),
_: 1
})
], 64)) : renderSlot(_ctx.$slots, "default", { key: 1 })
], 2);
}
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
index as default
};