UNPKG

yuang-framework-ui-pc

Version:

yuang-framework-ui-pc Library

106 lines (105 loc) 3.43 kB
import { defineComponent, ref, shallowReactive, provide, resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, createBlock, mergeProps, withCtx, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, renderSlot, createVNode } from "vue"; import EleTooltip from "../ele-tooltip/index"; import EleText from "../ele-text/index"; import { toolbarProps, TOOLBAR_KEY } from "./props"; const _sfc_main = defineComponent({ name: "EleToolbar", components: { EleTooltip, EleText }, props: toolbarProps, setup() { const tooltipRef = ref(null); const virtualRef = ref(); const tooltipContent = ref(""); const tooltipProps = ref({}); const showTooltip = (text, el, options) => { virtualRef.value = el; tooltipContent.value = text ?? ""; tooltipProps.value = options || {}; }; const hideTooltip = () => { tooltipRef.value && tooltipRef.value.hide(); }; const toolbarProvide = shallowReactive({ showTooltip, hideTooltip }); provide(TOOLBAR_KEY, toolbarProvide); return { tooltipRef, virtualRef, tooltipContent, tooltipProps, showTooltip, hideTooltip }; } }); 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_EleText = resolveComponent("EleText"); const _component_EleTooltip = resolveComponent("EleTooltip"); return openBlock(), createElementBlock("div", { class: normalizeClass([ "ele-toolbar", { "is-default": "plain" !== _ctx.theme }, { "is-plain": "plain" === _ctx.theme } ]) }, [ _ctx.title || _ctx.subtitle ? (openBlock(), createElementBlock("div", { key: 0, class: "ele-toolbar-title", style: normalizeStyle(_ctx.titleStyle) }, [ _ctx.title ? (openBlock(), createBlock(_component_EleText, mergeProps({ key: 0, type: "heading" }, _ctx.titleProps || {}), { default: withCtx(() => [ createTextVNode(toDisplayString(_ctx.title), 1) ]), _: 1 }, 16)) : createCommentVNode("", true), _ctx.subtitle ? (openBlock(), createBlock(_component_EleText, mergeProps({ key: 1, size: "xs" }, _ctx.subtitleProps || {}), { default: withCtx(() => [ createTextVNode(toDisplayString(_ctx.subtitle), 1) ]), _: 1 }, 16)) : createCommentVNode("", true) ], 4)) : createCommentVNode("", true), createElementVNode("div", { class: "ele-toolbar-body", style: normalizeStyle(_ctx.bodyStyle) }, [ renderSlot(_ctx.$slots, "default") ], 4), createElementVNode("div", { class: "ele-toolbar-tools", style: normalizeStyle(_ctx.toolsStyle) }, [ renderSlot(_ctx.$slots, "tools") ], 4), createVNode(_component_EleTooltip, mergeProps({ trigger: "hover", placement: "top", persistent: false, content: _ctx.tooltipContent }, _ctx.tooltipProps || {}, { virtualTriggering: true, virtualRef: _ctx.virtualRef, ref: "tooltipRef" }), null, 16, ["content", "virtualRef"]) ], 2); } const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { index as default };