various-ui
Version:
This is a test version of the Vue 3 component library
78 lines (75 loc) • 2.8 kB
JavaScript
import { defineComponent, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, toHandlers, renderSlot, createVNode, Transition, withCtx, createElementVNode, createTextVNode, toDisplayString, createCommentVNode } from 'vue';
import '../../../utils/index.mjs';
import { UiTooltipFollowPropsOption, UiTooltipFollowEmits } from './index.mjs';
import { useComposable } from './src/composable.mjs';
import { remove } from '../../../utils/src/node/index.mjs';
const _hoisted_1 = { class: "ui-tooltip-content" };
const __default__ = defineComponent({ name: "UiTooltipFollow" });
var _sfc_main = /* @__PURE__ */ defineComponent({
...__default__,
props: UiTooltipFollowPropsOption,
emits: UiTooltipFollowEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const emits = __emit;
const define = __props;
const { ons, refs, nodes, methods, computeds } = useComposable(define, emits);
const { active, visible } = refs;
const { tooltip } = nodes;
const { show, hidden } = methods;
const { style } = computeds;
onBeforeUnmount(() => {
tooltip.value && remove(document.body, tooltip.value);
});
;
__expose({ show, hidden });
return (_ctx, _cache) => {
return openBlock(), createElementBlock(
"div",
mergeProps({
class: ["ui-tooltip-container", { "ui-active": unref(active) }]
}, toHandlers(unref(ons).container, true)),
[
renderSlot(_ctx.$slots, "default"),
createVNode(
Transition,
toHandlers(unref(ons).animation),
{
default: withCtx(() => [
unref(visible) ? (openBlock(), createElementBlock(
"div",
mergeProps({ key: 0 }, toHandlers(unref(ons).content, true), {
class: ["ui-tooltip", _ctx.classExtraName],
ref_key: "tooltip",
ref: tooltip,
style: unref(style)
}),
[
createElementVNode("div", _hoisted_1, [
renderSlot(_ctx.$slots, "content", {}, () => [
createTextVNode(
toDisplayString(_ctx.content),
1
/* TEXT */
)
])
])
],
16
/* FULL_PROPS */
)) : createCommentVNode("v-if", true)
]),
_: 3
/* FORWARDED */
},
16
/* FULL_PROPS */
)
],
16
/* FULL_PROPS */
);
};
}
});
export { _sfc_main as default };
//# sourceMappingURL=index.vue2.mjs.map