{"version":3,"file":"Slider.mjs","sources":["../../../../../../packages/components/slider/src/Slider.tsx"],"sourcesContent":["import type { SlotsType } from 'vue';\nimport type { HandleGeneratorFn, HandleGeneratorInfo, SliderValue, Visibles } from './interface';\nimport { classNames, devWarning } from '@antdv/utils';\nimport { VcHandle, VcRange, VcSlider } from '@antdv/vue-components';\nimport { computed, defineComponent, ref } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { useInjectFormItemContext } from '../../form/src/FormItemContext';\nimport useStyle from '../style';\nimport { sliderProps } from './props';\nimport SliderTooltip from './SliderTooltip';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ASlider',\n  inheritAttrs: false,\n  props: sliderProps(),\n  // emits: ['update:value', 'change', 'afterChange', 'blur'],\n  slots: Object as SlotsType<{\n    mark?: any\n    default?: any\n  }>,\n  setup(props, { attrs, slots, emit, expose }) {\n    // Warning for deprecated usage\n    if (process.env.NODE_ENV !== 'production') {\n      [['tooltipVisible', 'tooltipOpen']].forEach(([deprecatedName, newName]) => {\n        devWarning(\n          props.tooltipVisible === undefined,\n          'Slider',\n          `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`,\n        );\n      });\n    }\n    const { prefixCls, rootPrefixCls, direction, getPopupContainer, configProvider }\n      = useConfigInject('slider', props);\n\n    // style\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const formItemContext = useInjectFormItemContext();\n    const sliderRef = ref();\n    const visibles = ref<Visibles>({});\n    const toggleTooltipOpen = (index: number, visible: boolean) => {\n      visibles.value[index] = visible;\n    };\n    const tooltipPlacement = computed(() => {\n      if (props.tooltipPlacement)\n        return props.tooltipPlacement;\n\n      if (!props.vertical)\n        return 'top';\n\n      return direction.value === 'rtl' ? 'left' : 'right';\n    });\n\n    const focus = () => {\n      sliderRef.value?.focus();\n    };\n    const blur = () => {\n      sliderRef.value?.blur();\n    };\n    const handleChange = (val: SliderValue) => {\n      emit('update:value', val);\n      emit('change', val);\n      formItemContext.onFieldChange();\n    };\n    const handleBlur = (e: FocusEvent) => {\n      emit('blur', e);\n    };\n    expose({\n      focus,\n      blur,\n    });\n    const handleWithTooltip: HandleGeneratorFn = ({\n      tooltipPrefixCls,\n      info: { value, dragging, index, ...restProps },\n    }) => {\n      const { tipFormatter, tooltipOpen = props.tooltipVisible, getTooltipPopupContainer } = props;\n      const isTipFormatter = tipFormatter ? (visibles.value[index] || dragging) : false;\n      const open = tooltipOpen || (tooltipOpen === undefined && isTipFormatter);\n      return (\n        <SliderTooltip\n          prefixCls={tooltipPrefixCls}\n          title={tipFormatter ? tipFormatter(value) : ''}\n          open={open}\n          placement={tooltipPlacement.value}\n          transitionName={`${rootPrefixCls.value}-zoom-down`}\n          key={index}\n          overlayClassName={`${prefixCls.value}-tooltip`}\n          getPopupContainer={getTooltipPopupContainer || getPopupContainer?.value}\n        >\n          <VcHandle\n            {...restProps}\n            value={value}\n            onMouseenter={() => toggleTooltipOpen(index, true)}\n            onMouseleave={() => toggleTooltipOpen(index, false)}\n          />\n        </SliderTooltip>\n      );\n    };\n    return () => {\n      const {\n        tooltipPrefixCls: customizeTooltipPrefixCls,\n        range,\n        id = formItemContext.id.value,\n        ...restProps\n      } = props;\n      const tooltipPrefixCls = configProvider.getPrefixCls('tooltip', customizeTooltipPrefixCls);\n      const cls = classNames(\n        attrs.class,\n        {\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        },\n        hashId.value,\n      );\n\n      // make reverse default on rtl direction\n      if (direction.value === 'rtl' && !restProps.vertical)\n        restProps.reverse = !restProps.reverse;\n\n      // extrack draggableTrack from range={{ ... }}\n      let draggableTrack: boolean | undefined;\n      if (typeof range === 'object')\n        draggableTrack = range.draggableTrack;\n\n      if (range) {\n        return wrapSSR(\n          <VcRange\n            {...attrs}\n            {...restProps}\n            step={restProps.step!}\n            draggableTrack={draggableTrack}\n            class={cls}\n            ref={sliderRef}\n            handle={(info: HandleGeneratorInfo) =>\n              handleWithTooltip({\n                tooltipPrefixCls,\n                prefixCls: prefixCls.value,\n                info,\n              })}\n            prefixCls={prefixCls.value}\n            onChange={handleChange}\n            onBlur={handleBlur}\n            v-slots={{ mark: slots.mark }}\n          />,\n        );\n      }\n      return wrapSSR(\n        <VcSlider\n          {...attrs}\n          {...restProps}\n          id={id}\n          step={restProps.step!}\n          class={cls}\n          ref={sliderRef}\n          handle={(info: HandleGeneratorInfo) =>\n            handleWithTooltip({\n              tooltipPrefixCls,\n              prefixCls: prefixCls.value,\n              info,\n            })}\n          prefixCls={prefixCls.value}\n          onChange={handleChange}\n          onBlur={handleBlur}\n          v-slots={{ mark: slots.mark }}\n        />,\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","sliderProps","slots","Object","setup","attrs","emit","expose","process","env","NODE_ENV","forEach","deprecatedName","newName","devWarning","tooltipVisible","undefined","prefixCls","rootPrefixCls","direction","getPopupContainer","configProvider","useConfigInject","wrapSSR","hashId","useStyle","formItemContext","useInjectFormItemContext","sliderRef","ref","visibles","toggleTooltipOpen","index","visible","value","tooltipPlacement","computed","vertical","focus","blur","handleChange","val","onFieldChange","handleBlur","e","handleWithTooltip","tooltipPrefixCls","info","dragging","restProps","tipFormatter","tooltipOpen","getTooltipPopupContainer","isTipFormatter","open","_createVNode","SliderTooltip","default","VcHandle","onMouseenter","onMouseleave","customizeTooltipPrefixCls","range","id","getPrefixCls","cls","classNames","class","reverse","draggableTrack","VcRange","step","mark","VcSlider"],"mappings":";;;;;;;;;;;;;;AAWA,8BAA+B,eAAA,CAAA;AAAA,EAC7BA,YAAc,EAAA;AAAA,IAAEC,IAAM,EAAA,CAAA;AAAA,GAAE;AAAA,EACxBC,IAAM,EAAA,SAAA;AAAA,EACNC,YAAc,EAAA,KAAA;AAAA,EACdC,OAAOC,WAAY,EAAA;AAAA;AAAA,EAEnBC,KAAOC,EAAAA,MAAAA;AAAAA,EAIPC,MAAMJ,KAAO,EAAA;AAAA,IAAEK,KAAAA;AAAAA,IAAOH,KAAAA;AAAAA,IAAOI,IAAAA;AAAAA,IAAMC,MAAAA;AAAAA,GAAU,EAAA;AAE3C,IAAIC,IAAAA,OAAAA,CAAQC,GAAIC,CAAAA,QAAAA,KAAa,YAAc,EAAA;AACzC,MAAC,CAAA,CAAC,gBAAkB,EAAA,aAAa,CAAC,CAAA,CAAEC,QAAQ,CAAC,CAACC,cAAgBC,EAAAA,OAAO,CAAM,KAAA;AACzEC,QACEd,UAAAA,CAAAA,KAAAA,CAAMe,mBAAmBC,KACzB,CAAA,EAAA,QAAA,EACC,KAAIJ,cAAe,CAAA,+BAAA,EAAiCC,OAAQ,CAC/D,WAAA,CAAA,CAAA,CAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AACA,IAAM,MAAA;AAAA,MAAEI,SAAAA;AAAAA,MAAWC,aAAAA;AAAAA,MAAeC,SAAAA;AAAAA,MAAWC,iBAAAA;AAAAA,MAAmBC,cAAAA;AAAAA,KAAe,GAC3EC,eAAgB,CAAA,QAAA,EAAUtB,KAAK,CAAA,CAAA;AAGnC,IAAA,MAAM,CAACuB,OAAAA,EAASC,MAAM,CAAA,GAAIC,SAASR,SAAS,CAAA,CAAA;AAE5C,IAAA,MAAMS,kBAAkBC,wBAAyB,EAAA,CAAA;AACjD,IAAA,MAAMC,YAAYC,GAAI,EAAA,CAAA;AACtB,IAAMC,MAAAA,QAAAA,GAAWD,GAAc,CAAA,EAAE,CAAA,CAAA;AACjC,IAAME,MAAAA,iBAAAA,GAAoBA,CAACC,KAAAA,EAAeC,OAAqB,KAAA;AAC7DH,MAASI,QAAAA,CAAAA,KAAAA,CAAMF,KAAK,CAAIC,GAAAA,OAAAA,CAAAA;AAAAA,KAC1B,CAAA;AACA,IAAME,MAAAA,gBAAAA,GAAmBC,SAAS,MAAM;AACtC,MAAA,IAAIpC,KAAMmC,CAAAA,gBAAAA;AACR,QAAA,OAAOnC,KAAMmC,CAAAA,gBAAAA,CAAAA;AAEf,MAAA,IAAI,CAACnC,KAAMqC,CAAAA,QAAAA;AACT,QAAO,OAAA,KAAA,CAAA;AAET,MAAOlB,OAAAA,SAAAA,CAAUe,KAAU,KAAA,KAAA,GAAQ,MAAS,GAAA,OAAA,CAAA;AAAA,KAC7C,CAAA,CAAA;AAED,IAAA,MAAMI,QAAQA,MAAM;;AAClBV,MAAAA,CAAAA,EAAAA,GAAAA,SAAAA,CAAUM,UAAVN,IAAiBU,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,KAAAA,EAAAA,CAAAA;AAAAA,KACnB,CAAA;AACA,IAAA,MAAMC,OAAOA,MAAM;;AACjBX,MAAAA,CAAAA,EAAAA,GAAAA,SAAAA,CAAUM,UAAVN,IAAiBW,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,EAAAA,CAAAA;AAAAA,KACnB,CAAA;AACA,IAAA,MAAMC,eAAgBC,CAAqB,GAAA,KAAA;AACzCnC,MAAAA,IAAAA,CAAK,gBAAgBmC,GAAG,CAAA,CAAA;AACxBnC,MAAAA,IAAAA,CAAK,UAAUmC,GAAG,CAAA,CAAA;AAClBf,MAAAA,eAAAA,CAAgBgB,aAAc,EAAA,CAAA;AAAA,KAChC,CAAA;AACA,IAAA,MAAMC,aAAcC,CAAkB,CAAA,KAAA;AACpCtC,MAAAA,IAAAA,CAAK,QAAQsC,CAAC,CAAA,CAAA;AAAA,KAChB,CAAA;AACArC,IAAO,MAAA,CAAA;AAAA,MACL+B,KAAAA;AAAAA,MACAC,IAAAA;AAAAA,KACD,CAAA,CAAA;AACD,IAAA,MAAMM,oBAAuCA,CAAC;AAAA,MAC5CC,gBAAAA;AAAAA,MACAC,IAAM,EAAA;AAAA,QAAEb,KAAAA;AAAAA,QAAOc,QAAAA;AAAAA,QAAUhB,KAAAA;AAAAA,QAAO,GAAGiB,SAAAA;AAAAA,OAAU;AAAA,KACzC,KAAA;AACJ,MAAM,MAAA;AAAA,QAAEC,YAAAA;AAAAA,QAAcC,cAAcnD,KAAMe,CAAAA,cAAAA;AAAAA,QAAgBqC,wBAAAA;AAAAA,OAA6BpD,GAAAA,KAAAA,CAAAA;AACvF,MAAA,MAAMqD,iBAAiBH,YAAgBpB,GAAAA,QAAAA,CAASI,KAAMF,CAAAA,KAAK,KAAKgB,QAAY,GAAA,KAAA,CAAA;AAC5E,MAAMM,MAAAA,IAAAA,GAAOH,WAAgBA,IAAAA,WAAAA,KAAgBnC,KAAaqC,CAAAA,IAAAA,cAAAA,CAAAA;AAC1D,MAAA,OAAAE,YAAAC,aAAA,EAAA;AAAA,QAAA,WAEeV,EAAAA,gBAAAA;AAAAA,QAAgB,OACpBI,EAAAA,YAAAA,GAAeA,YAAahB,CAAAA,KAAK,CAAI,GAAA,EAAA;AAAA,QAAE,MACxCoB,EAAAA,IAAAA;AAAAA,QAAI,aACCnB,gBAAiBD,CAAAA,KAAAA;AAAAA,QAAK,gBAAA,EAChB,CAAEhB,EAAAA,aAAAA,CAAcgB,KAAM,CAAA,UAAA,CAAA;AAAA,QAAW,KAC7CF,EAAAA,KAAAA;AAAAA,QAAK,kBAAA,EACS,CAAEf,EAAAA,SAAAA,CAAUiB,KAAM,CAAA,QAAA,CAAA;AAAA,QAAS,mBAAA,EAC3BkB,6BAA4BhC,iBAAmBc,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAAA,CAAAA,KAAAA,CAAAA;AAAAA,OAAK,EAAA;AAAA,QAAAuB,OAAAA,EAAAA,MAAAF,CAAAA,WAAAA,CAAAG,QAAA,EAAA;AAAA,UAAA,GAGjET,SAAAA;AAAAA,UAAS,OACNf,EAAAA,KAAAA;AAAAA,UAAK,cACEyB,EAAAA,MAAM5B,iBAAkBC,CAAAA,KAAAA,EAAO,IAAI,CAAA;AAAA,UAAC,cACpC4B,EAAAA,MAAM7B,iBAAkBC,CAAAA,KAAAA,EAAO,KAAK,CAAA;AAAA,SAAC,EAAA,IAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAI3D,CAAA;AACA,IAAA,OAAO,MAAM;AACX,MAAM,MAAA;AAAA,QACJc,gBAAkBe,EAAAA,yBAAAA;AAAAA,QAClBC,KAAAA;AAAAA,QACAC,EAAAA,GAAKrC,gBAAgBqC,EAAG7B,CAAAA,KAAAA;AAAAA,QACxB,GAAGe,SAAAA;AAAAA,OACDjD,GAAAA,KAAAA,CAAAA;AACJ,MAAA,MAAM8C,gBAAmBzB,GAAAA,cAAAA,CAAe2C,YAAa,CAAA,SAAA,EAAWH,yBAAyB,CAAA,CAAA;AACzF,MAAMI,MAAAA,GAAAA,GAAMC,UACV7D,CAAAA,KAAAA,CAAM8D,KACN,EAAA;AAAA,QACE,CAAE,CAAElD,EAAAA,SAAAA,CAAUiB,KAAM,CAAK,IAAA,CAAA,GAAGf,UAAUe,KAAU,KAAA,KAAA;AAAA,OAClD,EACAV,OAAOU,KACT,CAAA,CAAA;AAGA,MAAA,IAAIf,SAAUe,CAAAA,KAAAA,KAAU,KAAS,IAAA,CAACe,SAAUZ,CAAAA,QAAAA;AAC1CY,QAAUmB,SAAAA,CAAAA,OAAAA,GAAU,CAACnB,SAAUmB,CAAAA,OAAAA,CAAAA;AAGjC,MAAIC,IAAAA,cAAAA,CAAAA;AACJ,MAAA,IAAI,OAAOP,KAAU,KAAA,QAAA;AACnBO,QAAAA,cAAAA,GAAiBP,KAAMO,CAAAA,cAAAA,CAAAA;AAEzB,MAAA,IAAIP,KAAO,EAAA;AACT,QAAOvC,OAAAA,OAAAA,CAAOgC,YAAAe,OAAA,EAAA;AAAA,UAAA,GAENjE,KAAAA;AAAAA,UAAK,GACL4C,SAAAA;AAAAA,UAAS,QACPA,SAAUsB,CAAAA,IAAAA;AAAAA,UAAI,gBACJF,EAAAA,cAAAA;AAAAA,UAAc,OACvBJ,EAAAA,GAAAA;AAAAA,UAAG,KACLrC,EAAAA,SAAAA;AAAAA,UAAS,QAAA,EACLmB,UACPF,iBAAkB,CAAA;AAAA,YAChBC,gBAAAA;AAAAA,YACA7B,WAAWA,SAAUiB,CAAAA,KAAAA;AAAAA,YACrBa,IAAAA;AAAAA,WACD,CAAA;AAAA,UAAC,aACO9B,SAAUiB,CAAAA,KAAAA;AAAAA,UAAK,UAChBM,EAAAA,YAAAA;AAAAA,UAAY,QACdG,EAAAA,UAAAA;AAAAA,SACC,EAAA;AAAA,UAAE6B,MAAMtE,KAAMsE,CAAAA,IAAAA;AAAAA,SAAM,CAEjC,CAAA,CAAA;AAAA,OACF;AACA,MAAOjD,OAAAA,OAAAA,CAAOgC,YAAAkB,QAAA,EAAA;AAAA,QAAA,GAENpE,KAAAA;AAAAA,QAAK,GACL4C,SAAAA;AAAAA,QAAS,IACTc,EAAAA,EAAAA;AAAAA,QAAE,QACAd,SAAUsB,CAAAA,IAAAA;AAAAA,QAAI,OACbN,EAAAA,GAAAA;AAAAA,QAAG,KACLrC,EAAAA,SAAAA;AAAAA,QAAS,QAAA,EACLmB,UACPF,iBAAkB,CAAA;AAAA,UAChBC,gBAAAA;AAAAA,UACA7B,WAAWA,SAAUiB,CAAAA,KAAAA;AAAAA,UACrBa,IAAAA;AAAAA,SACD,CAAA;AAAA,QAAC,aACO9B,SAAUiB,CAAAA,KAAAA;AAAAA,QAAK,UAChBM,EAAAA,YAAAA;AAAAA,QAAY,QACdG,EAAAA,UAAAA;AAAAA,OACC,EAAA;AAAA,QAAE6B,MAAMtE,KAAMsE,CAAAA,IAAAA;AAAAA,OAAM,CAEjC,CAAA,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}