UNPKG

tdesign-vue-next

Version:
1 lines 5.63 kB
{"version":3,"file":"useSliderTooltip.mjs","sources":["../../../../components/slider/hooks/useSliderTooltip.tsx"],"sourcesContent":["import { computed, ComputedRef, ref, Ref } from 'vue';\n\nimport { formatLabel } from '@tdesign/common-js/slider/utils';\nimport { useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport type { TooltipProps } from '../../tooltip';\nimport type { TdSliderProps } from '../type';\n\nconst initialProps: TooltipProps & { overlayClassName: string } = {\n visible: false,\n trigger: 'hover',\n showArrow: true,\n overlayInnerStyle: undefined,\n overlayClassName: undefined,\n attach: 'body',\n theme: 'default',\n};\n\nexport interface TooltipConfig {\n tooltipProps: boolean | TooltipProps;\n vertical: boolean;\n value: number;\n label: TdSliderProps['label'];\n position: string;\n range: boolean;\n}\n\n/**\n * 聚合管理滑块tooltip内容hook\n * @param tooltipProps tooltip属性配置\n * @param vertical 是否垂直展示\n * @returns\n */\nexport const useSliderTooltip = (tooltipConfig: Ref<TooltipConfig>) => {\n const tooltipRef = ref();\n const showTooltip = computed({\n get() {\n return !tooltipConfig.value.tooltipProps === false;\n },\n set(val) {\n return val;\n },\n });\n const normalizeProps = ref<TooltipProps & { overlayClassName: string }>({ ...initialProps });\n /** 开关显示tooltip */\n const toggleTooltip = (toState: boolean) => {\n if (!showTooltip.value) return;\n normalizeProps.value.visible = toState;\n };\n\n const renderTNodeJSX = useTNodeJSX();\n\n /** 合并最终tooltip属性,以外部同名属性覆盖初始化属性 */\n const validProps = computed(() => {\n const { vertical, tooltipProps, label, value, position, range } = tooltipConfig.value;\n const placement = vertical ? 'right' : 'top';\n\n let content = (() => {\n if (label === true) {\n return String(value);\n }\n if (typeof label === 'string') {\n return formatLabel(label, value);\n }\n if (typeof label === 'function') {\n return label;\n }\n return renderTNodeJSX('label', {\n params: range\n ? {\n value,\n position,\n }\n : { value },\n });\n })();\n\n if (tooltipProps instanceof Object) {\n if (!tooltipProps?.placement) {\n normalizeProps.value.placement = placement;\n }\n if (tooltipProps.content) {\n content = tooltipProps.content;\n }\n // @ts-ignore\n return { ...normalizeProps.value, ...tooltipProps, content };\n }\n return { ...normalizeProps.value, placement, content };\n });\n\n return {\n tooltipRef,\n tooltipProps: validProps as ComputedRef<TdSliderProps['tooltipProps']>,\n toggleTooltip,\n showTooltip,\n };\n};\n"],"names":["initialProps","visible","trigger","showArrow","overlayInnerStyle","overlayClassName","attach","theme","useSliderTooltip","tooltipConfig","tooltipRef","ref","showTooltip","computed","get","value","tooltipProps","set","val","normalizeProps","_objectSpread","toggleTooltip","toState","renderTNodeJSX","useTNodeJSX","validProps","_tooltipConfig$value","vertical","label","position","range","placement","content","String","formatLabel","params","Object"],"mappings":"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"}