{"version":3,"file":"Handle.cjs","sources":["../../../../../../packages/vue-components/vc-slider/src/Handle.tsx"],"sourcesContent":["import type { CSSProperties, PropType } from 'vue';\nimport { addEventListenerWrap, classNames, PropTypes } from '@antdv/utils';\nimport { computed, defineComponent, onBeforeUnmount, onMounted, shallowRef } from 'vue';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'Handle',\n  inheritAttrs: false,\n  props: {\n    prefixCls: String,\n    vertical: { type: Boolean, default: undefined },\n    offset: Number,\n    disabled: { type: Boolean, default: undefined },\n    min: Number,\n    max: Number,\n    value: Number,\n    tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    reverse: { type: Boolean, default: undefined },\n    ariaLabel: String,\n    ariaLabelledBy: String,\n    ariaValueTextFormatter: Function,\n    onMouseenter: { type: Function as PropType<(payload: MouseEvent) => void> },\n    onMouseleave: { type: Function as PropType<(payload: MouseEvent) => void> },\n    onMousedown: { type: Function as PropType<(payload: MouseEvent) => void> },\n  },\n  setup(props, { attrs, emit, expose }) {\n    const clickFocused = shallowRef(false);\n    const handle = shallowRef();\n    const handleMouseUp = () => {\n      if (document.activeElement === handle.value)\n        clickFocused.value = true;\n    };\n    const handleBlur = (e: FocusEvent) => {\n      clickFocused.value = false;\n      emit('blur', e);\n    };\n    const handleKeyDown = () => {\n      clickFocused.value = false;\n    };\n    const focus = () => {\n      handle.value?.focus();\n    };\n    const blur = () => {\n      handle.value?.blur();\n    };\n    const clickFocus = () => {\n      clickFocused.value = true;\n      focus();\n    };\n\n    // when click can not focus in vue, use mousedown trigger focus\n    const handleMousedown = (e: MouseEvent) => {\n      e.preventDefault();\n      focus();\n      emit('mousedown', e);\n    };\n    expose({\n      focus,\n      blur,\n      clickFocus,\n      ref: handle,\n    });\n    let onMouseUpListener = null;\n    onMounted(() => {\n      onMouseUpListener = addEventListenerWrap(document, 'mouseup', handleMouseUp);\n    });\n    onBeforeUnmount(() => {\n      onMouseUpListener?.remove();\n    });\n\n    const positionStyle = computed(() => {\n      const { vertical, offset, reverse } = props;\n      return vertical\n        ? {\n            [reverse ? 'top' : 'bottom']: `${offset}%`,\n            [reverse ? 'bottom' : 'top']: 'auto',\n            transform: reverse ? null : `translateY(+50%)`,\n          }\n        : {\n            [reverse ? 'right' : 'left']: `${offset}%`,\n            [reverse ? 'left' : 'right']: 'auto',\n            transform: `translateX(${reverse ? '+' : '-'}50%)`,\n          };\n    });\n    return () => {\n      const {\n        prefixCls,\n        disabled,\n        min,\n        max,\n        value,\n        tabindex,\n        ariaLabel,\n        ariaLabelledBy,\n        ariaValueTextFormatter,\n        onMouseenter,\n        onMouseleave,\n      } = props;\n      const className = classNames(attrs.class, {\n        [`${prefixCls}-handle-click-focused`]: clickFocused.value,\n      });\n\n      const ariaProps = {\n        'aria-valuemin': min,\n        'aria-valuemax': max,\n        'aria-valuenow': value,\n        'aria-disabled': !!disabled,\n      };\n      const elStyle = [attrs.style as CSSProperties, positionStyle.value];\n      let mergedTabIndex = tabindex || 0;\n      if (disabled || tabindex === null)\n        mergedTabIndex = null;\n\n      let ariaValueText;\n      if (ariaValueTextFormatter)\n        ariaValueText = ariaValueTextFormatter(value);\n\n      const handleProps = {\n        ...attrs,\n        role: 'slider',\n        tabindex: mergedTabIndex,\n        ...ariaProps,\n        class: className,\n        onBlur: handleBlur,\n        onKeydown: handleKeyDown,\n        onMousedown: handleMousedown,\n        onMouseenter,\n        onMouseleave,\n        ref: handle,\n        style: elStyle,\n      };\n      return (\n        <div\n          {...handleProps}\n          aria-label={ariaLabel}\n          aria-labelledby={ariaLabelledBy}\n          aria-valuetext={ariaValueText}\n        />\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","prefixCls","String","vertical","type","Boolean","default","undefined","offset","Number","disabled","min","max","value","tabindex","PropTypes","oneOfType","number","string","reverse","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","Function","onMouseenter","onMouseleave","onMousedown","setup","attrs","emit","expose","clickFocused","shallowRef","handle","handleMouseUp","document","activeElement","handleBlur","e","handleKeyDown","focus","blur","clickFocus","handleMousedown","preventDefault","ref","onMouseUpListener","onMounted","addEventListenerWrap","onBeforeUnmount","remove","positionStyle","computed","transform","className","classNames","class","ariaProps","elStyle","style","mergedTabIndex","ariaValueText","handleProps","role","onBlur","onKeydown","_createVNode"],"mappings":"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"}