{"version":3,"file":"useSliderTooltip.mjs","sources":["../../../src/slider/hooks/useSliderTooltip.tsx"],"sourcesContent":["import { TooltipProps } from '../../tooltip';\nimport { ref, computed, ComputedRef, Ref } from 'vue';\nimport { TdSliderProps } from '../type';\nimport { formatLabel } from '../util/common';\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}\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  /** 合并最终tooltip属性，以外部同名属性覆盖初始化属性 */\n  const validProps = computed(() => {\n    const { vertical, tooltipProps, label, value } = tooltipConfig.value;\n    const placement = vertical ? 'right' : 'top';\n    let content = formatLabel(label, value);\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":["visible","trigger","showArrow","attach","theme","normalizeProps","content","placement","tooltipRef","tooltipProps","toggleTooltip","showTooltip"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,IAAA,YAAA,GAAA;AACEA,EAAAA,OAAAA,EAAAA,KAAAA;AACAC,EAAAA,OAAAA,EAAAA,OAAAA;AACAC,EAAAA,SAAAA,EAAAA,IAAAA;;;AAGAC,EAAAA,MAAAA,EAAAA,MAAAA;AACAC,EAAAA,KAAAA,EAAAA,SAAAA;AACF,CAAA,CAAA;AAeO,IAAA,gBAAA,GAAA,SAAA,gBAAA,CAAA,aAAA,EAAA;AACL,EAAA,IAAA,UAAA,GAAA,GAAA,EAAA,CAAA;;;AAGW,MAAA,OAAA,CAAA,aAAA,CAAA,KAAA,CAAA,YAAA,KAAA,KAAA,CAAA;;;AAGA,MAAA,OAAA,GAAA,CAAA;AACT,KAAA;AACF,GAAA,CAAA,CAAA;;AAGM,EAAA,IAAA,aAAA,GAAA,SAAA,aAAA,CAAA,OAAA,EAAA;AACJ,IAAA,IAAA,CAAA,WAAA,CAAA,KAAA,EAAA,OAAA;AACAC,IAAAA,cAAAA,CAAAA,KAAAA,CAAAA,OAAAA,GAAAA,OAAAA,CAAAA;;AAII,EAAA,IAAA,UAAA,GAAA,QAAA,CAAA,YAAA;AACJ,IAAA,IAAA,oBAAA,GAAA,aAAA,CAAA,KAAA;;;;;AACM,IAAA,IAAA,SAAA,GAAA,QAAA,GAAA,OAAA,GAAA,KAAA,CAAA;AACF,IAAA,IAAA,OAAA,GAAA,WAAA,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;AAGAA,QAAAA,cAAAA,CAAAA,KAAAA,CAAAA,SAAAA,GAAAA,SAAAA,CAAAA;AACF,OAAA;;;AAGA,OAAA;;AAEmDC,QAAAA,OAAAA,EAAAA,OAAAA;AAAQ,OAAA,CAAA,CAAA;AAC7D,KAAA;AACA,IAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,cAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA;AAAkCC,MAAAA,SAAAA,EAAAA,SAAAA;AAAWD,MAAAA,OAAAA,EAAAA,OAAAA;AAAQ,KAAA,CAAA,CAAA;AACvD,GAAA,CAAA,CAAA;;AAGEE,IAAAA,UAAAA,EAAAA,UAAAA;AACAC,IAAAA,YAAAA,EAAAA,UAAAA;AACAC,IAAAA,aAAAA,EAAAA,aAAAA;AACAC,IAAAA,WAAAA,EAAAA,WAAAA;;AAEJ;;;;"}