{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/tooltip/follow/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 UiTooltipFollowProps, UiTooltipFollowEmits } from \"../index\";\r\n\r\n//* 组合函数\r\nexport const useComposable = (define: UiTooltipFollowProps, emits: SetupContext<typeof UiTooltipFollowEmits>[\"emit\"]) => {\r\n    //* 响应式变量\r\n    const refs = {\r\n        event: ref<MouseEvent>(), //* Event缓存\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: (ev: MouseEvent, 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 (ev && nodes.tooltip.value) {\r\n                    //* 将event缓存中\r\n                    refs.event.value = ev;\r\n                    //* 将content添加到视图容器中\r\n                    node.append(document.body, nodes.tooltip.value);\r\n                    //* 根据配置计算当前窗口位置\r\n                    dispose.boundary.relativeMouseBody(ev, nodes.tooltip.value, {\r\n                        offsetX: define.offsetX,\r\n                        offsetY: define.offsetY,\r\n                        initialization: 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    //* 计算属性\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        container: {\r\n            mouseenter: (ev: MouseEvent) => !define.disabled && methods.show(ev, true),\r\n            mouseleave: () => !define.disabled && methods.hidden(),\r\n            mousemove: (ev: MouseEvent) => !define.disabled && methods.show(ev),\r\n        },\r\n\r\n        content: {\r\n            mouseleave: () => !define.disabled && methods.hidden(),\r\n            mouseenter: () => {\r\n                if (!define.disabled) {\r\n                    refs.visible.value = true;\r\n                    refs.event.value && methods.show(refs.event.value);\r\n                }\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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"}