various-ui
Version:
This is a test version of the Vue 3 component library
1 lines • 7.53 kB
Source Map (JSON)
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/tooltip/function/src/composable.ts"],"sourcesContent":["//* Vue\r\nimport { ref, computed, nextTick } from \"vue\";\r\nimport type { SetupContext } from \"vue\";\r\n//* 工具函数\r\nimport { node, dispose, animations } from \"@various/utils\";\r\n//* 公共变量\r\nimport type { UiTypes } from \"@various/constants\";\r\n//* 类型\r\nimport { type UiTooltipFunctionProps, UiTooltipFunctionEmits } from \"../index\";\r\n\r\nexport const useComposable = (define: UiTooltipFunctionProps, emits: SetupContext<typeof UiTooltipFunctionEmits>[\"emit\"]) => {\r\n //* 响应式变量\r\n const refs = {\r\n data: ref<{ align: UiTypes.align; option: { pageX: number; pageY: number } }>(), //* 数据缓存\r\n active: ref<boolean>(false), //* 激活状态\r\n visible: ref<boolean>(false), //* 隐藏状态\r\n visibleTimer: ref<NodeJS.Timeout>(), //* 隐藏状态延迟器\r\n };\r\n\r\n //* 节点\r\n const nodes = {\r\n tooltip: ref<HTMLDivElement>(),\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* 视图控制器 显示\r\n show: (align: UiTypes.align, option: { pageX: number; pageY: number; alignX?: UiTypes.align; initialization?: boolean }) => {\r\n refs.visibleTimer.value && clearTimeout(refs.visibleTimer.value);\r\n refs.visibleTimer.value = undefined;\r\n refs.visible.value = true;\r\n nextTick(() => {\r\n if (nodes.tooltip.value) {\r\n //* 数据缓存\r\n refs.data.value = { align, option };\r\n //* 将content添加到视图容器中\r\n node.append(document.body, nodes.tooltip.value);\r\n //* 根据配置计算当前窗口位置\r\n dispose.boundary.relativeMouseBody(option, nodes.tooltip.value, {\r\n align: { x: option.alignX, y: align },\r\n offsetX: define.offsetX,\r\n offsetY: define.offsetY,\r\n initialization: option.initialization,\r\n });\r\n }\r\n });\r\n },\r\n\r\n //* 视图控制器 隐藏\r\n hidden: (delay: number = 200) => {\r\n refs.visibleTimer.value && clearTimeout(refs.visibleTimer.value);\r\n refs.visibleTimer.value = setTimeout(() => {\r\n refs.visible.value = false;\r\n }, delay);\r\n },\r\n\r\n //* 入场前样式调整\r\n entrancePreAnimation: (el: Element) => {\r\n gsap.set(el, { opacity: 0 });\r\n },\r\n\r\n //* 入场动画\r\n entranceAnimation: (el: Element, done: () => void) => {\r\n gsap.to(el, { duration: 0.2, opacity: 1, onComplete: () => done() });\r\n },\r\n\r\n //* 离场动画\r\n departureAnimation: (el: Element, done: () => void) => {\r\n gsap.to(el, { duration: 0.2, opacity: 0, onComplete: () => done() });\r\n },\r\n };\r\n\r\n //* 计算属性\r\n const computeds = {\r\n //* 样式\r\n style: computed(() => {\r\n //* 初始化数据\r\n const result: any = {\r\n zIndex: define.zIndex || 66,\r\n };\r\n\r\n //* 添加宽度\r\n if (define.width) result[\"max-width\"] = `${define.width}px`;\r\n\r\n return result;\r\n }),\r\n };\r\n\r\n //* 处理函数列表\r\n const ons = {\r\n animation: animations.tooltip({\r\n afterEnter: () => emits(\"after-enter\"),\r\n afterLeave: () => emits(\"after-leave\"),\r\n beforeEnter: () => {\r\n refs.active.value = true;\r\n emits(\"before-enter\");\r\n },\r\n beforeLeave: () => {\r\n refs.active.value = false;\r\n emits(\"before-leave\");\r\n },\r\n }),\r\n\r\n content: {\r\n mouseleave: () => define.trigger != \"none\" && methods.hidden(),\r\n mouseenter: () => {\r\n refs.visible.value = true;\r\n refs.data.value && methods.show(refs.data.value.align, refs.data.value.option);\r\n },\r\n },\r\n };\r\n\r\n return { ons, refs, nodes, methods, computeds };\r\n};\r\n"],"names":["node.append","dispose.boundary.relativeMouseBody","animations.tooltip"],"mappings":"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"}