various-ui
Version:
This is a test version of the Vue 3 component library
1 lines • 8.64 kB
Source Map (JSON)
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/tooltip/default/src/composable.ts"],"sourcesContent":["//* 公共插件\r\nimport { computed, nextTick, ref } from \"vue\";\r\nimport type { SetupContext } from \"vue\";\r\n//* 工具函数\r\nimport { animations, dispose, node } from \"@various/utils\";\r\n//* 类型\r\nimport { type UiTooltipProps, UiTooltipEmits } from \"../index\";\r\n\r\n//* 组合函数\r\nexport const useComposable = (define: UiTooltipProps, emits: SetupContext<typeof UiTooltipEmits>[\"emit\"]) => {\r\n //* 静态变量\r\n const vars = {\r\n observer: <ResizeObserver | undefined>undefined,\r\n };\r\n\r\n //* 响应式变量\r\n const refs = {\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 container: ref<HTMLDivElement>(),\r\n triangle: ref<HTMLDivElement>(),\r\n tooltip: ref<HTMLDivElement>(),\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* 视图控制器 显示\r\n show: () => {\r\n //* 数据初始化\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 //* 检测是否满足运行条件\r\n if (!nodes.container.value || !nodes.tooltip.value) return;\r\n else {\r\n //* 将内容添加到视图容器中\r\n node.append(document.body, nodes.tooltip.value);\r\n //* 注册观察者\r\n vars.observer?.disconnect();\r\n vars.observer = new ResizeObserver(() => {\r\n if (!nodes.container.value || !nodes.tooltip.value) return;\r\n else {\r\n //* 数据初始化\r\n const data = { container: nodes.container.value, triangle: nodes.triangle.value, view: nodes.tooltip.value };\r\n dispose.boundary.relativeContainerBody(data, {\r\n direction: define.direction,\r\n offset: define.offset,\r\n align: define.align,\r\n width: define.width,\r\n });\r\n }\r\n });\r\n\r\n vars.observer.observe(document.documentElement);\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 //* 状态更新\r\n refs.visible.value = false;\r\n //* 注销观察者\r\n vars.observer?.disconnect();\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 //* 鼠标点击事件\r\n click: () => !define.disabled && define.trigger == \"click\" && methods.show(),\r\n //* 鼠标移入事件\r\n mouseenter: () => !define.disabled && define.trigger == \"hover\" && methods.show(),\r\n //* 鼠标移出事件\r\n mouseleave: () => !define.disabled && (define.trigger == \"hover\" || define.trigger == \"click\") && methods.hidden(),\r\n },\r\n\r\n content: {\r\n //* 鼠标移入事件\r\n mouseenter: () => !define.disabled && (define.trigger == \"hover\" || define.trigger == \"click\") && methods.show(),\r\n //* 鼠标移出事件\r\n mouseleave: () => !define.disabled && (define.trigger == \"hover\" || define.trigger == \"click\") && methods.hidden(),\r\n },\r\n };\r\n\r\n return { ons, vars, refs, nodes, methods, computeds };\r\n};\r\n"],"names":["node.append","dispose.boundary.relativeContainerBody","animations.tooltip"],"mappings":"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"}