UNPKG

tdesign-vue-next

Version:
1 lines 17.7 kB
{"version":3,"file":"slider-button.mjs","sources":["../../../components/slider/slider-button.tsx"],"sourcesContent":["import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n inject,\n nextTick,\n reactive,\n ref,\n watchEffect,\n} from 'vue';\nimport { isFunction } from 'lodash-es';\n\nimport { formatPrecision } from '@tdesign/common-js/slider/utils';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport TTooltip from '../tooltip/index';\nimport { sliderPropsInjectKey } from './consts';\nimport { useSliderTooltip } from './hooks/useSliderTooltip';\n\nimport type { TdSliderProps } from './type';\n\nexport default defineComponent({\n name: 'TSliderButton',\n props: {\n value: {\n type: [Number],\n default: 0,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n tooltipProps: {\n type: [Boolean, Object],\n default: true,\n },\n label: {\n type: [String, Boolean, Function] as PropType<TdSliderProps['label']>,\n },\n range: {\n type: Boolean,\n default: false,\n },\n position: {\n type: String,\n },\n },\n emits: ['input', 'mouseup'],\n setup(props, ctx) {\n const COMPONENT_NAME = usePrefixClass('slider__button');\n const tooltipConfig = computed(() => props);\n const { tooltipRef, tooltipProps, toggleTooltip, showTooltip } = useSliderTooltip(tooltipConfig);\n const parentProps = inject(sliderPropsInjectKey);\n const buttonRef = ref();\n const dragged = ref(false);\n\n /** --------------------- slide button 相关状态start ------------------- */\n const slideButtonProps = reactive({\n dragging: false,\n isClick: false,\n startX: 0,\n startY: 0,\n startPos: 0,\n newPos: null,\n });\n\n const rangeDiff = computed(() => {\n return Number(parentProps.max) - Number(parentProps.min);\n });\n\n const currentPos = computed(() => {\n return `${((props.value - parentProps.min) / rangeDiff.value) * 100}%`;\n });\n\n const step = computed(() => {\n return parentProps.step;\n });\n\n const wrapperStyle = computed(() => {\n return props.vertical ? { bottom: currentPos.value } : { left: currentPos.value };\n });\n\n watchEffect(() => {\n parentProps.toggleDragging(slideButtonProps.dragging);\n });\n /** --------------------- slide button 相关状态end ------------------- */\n\n /** --------------------- slide button 相关事件start ------------------- */\n /** 设置当前位置 */\n const setPosition = (pos: number) => {\n let newPos = pos;\n if (newPos === null || Number.isNaN(newPos)) {\n return;\n }\n\n if (newPos > 100) {\n newPos = 100;\n } else if (newPos < 0) {\n newPos = 0;\n }\n const perStepLen = (100 * step.value) / rangeDiff.value;\n const steps = Math.round(newPos / perStepLen);\n let value = steps * perStepLen * rangeDiff.value * 0.01;\n value += parentProps.min;\n value = formatPrecision(value, parentProps.precision);\n ctx.emit('input', value);\n nextTick(() => {\n tooltipRef.value && tooltipRef.value.updatePopper?.();\n });\n };\n\n const handleMouseEnter = () => {\n (buttonRef.value as ComponentPublicInstance).focus();\n toggleTooltip(true);\n };\n const handleMouseLeave = () => {\n if (!slideButtonProps.dragging) {\n toggleTooltip(false);\n }\n };\n\n const onDragStart = (event: MouseEvent | TouchEvent) => {\n slideButtonProps.dragging = true;\n slideButtonProps.isClick = true;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchstart') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n slideButtonProps.startY = clientY;\n } else {\n slideButtonProps.startX = clientX;\n }\n slideButtonProps.startPos = parseFloat(currentPos.value);\n slideButtonProps.newPos = slideButtonProps.startPos;\n };\n\n const onDragging = (e: MouseEvent | TouchEvent) => {\n const event = e;\n if (!slideButtonProps.dragging) {\n return;\n }\n dragged.value = true;\n slideButtonProps.isClick = false;\n if (parentProps?.resetSize && isFunction(parentProps?.resetSize)) {\n parentProps.resetSize();\n }\n let diff = 0;\n const parentSliderSize = parentProps.sliderSize;\n const { type } = event;\n let { clientY, clientX } = event as MouseEvent;\n if (type === 'touchmove') {\n const touch = (event as TouchEvent).touches;\n [clientY, clientX] = [touch[0].clientY, touch[0].clientX];\n }\n if (props.vertical) {\n diff = slideButtonProps.startY - clientY;\n } else {\n diff = clientX - slideButtonProps.startX;\n }\n diff = (diff / parentSliderSize) * 100;\n slideButtonProps.newPos = slideButtonProps.startPos + diff;\n setPosition(slideButtonProps.newPos);\n };\n\n const onDragEnd = () => {\n if (slideButtonProps.dragging) {\n setTimeout(() => {\n slideButtonProps.dragging = false;\n toggleTooltip(false);\n if (!slideButtonProps.isClick) {\n setPosition(slideButtonProps.newPos);\n }\n dragged.value && ctx.emit('mouseup');\n dragged.value = false;\n }, 0);\n window.removeEventListener('mousemove', onDragging);\n window.removeEventListener('touchmove', onDragging);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchend', onDragEnd);\n window.removeEventListener('contextmenu', onDragEnd);\n }\n };\n\n function onButtonDown(event: MouseEvent | TouchEvent) {\n if (parentProps.disabled) {\n return;\n }\n event.preventDefault();\n onDragStart(event);\n window.addEventListener('mousemove', onDragging);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragging);\n window.addEventListener('touchend', onDragEnd);\n window.addEventListener('contextmenu', onDragEnd);\n }\n\n const onKeyDown = (state: 'sub' | 'add') => {\n if (parentProps.disabled) {\n return;\n }\n let stepLength = (step.value / rangeDiff.value) * 100;\n if (state === 'sub') {\n stepLength = -stepLength;\n }\n slideButtonProps.newPos = parseFloat(currentPos.value) + stepLength;\n setPosition(slideButtonProps.newPos);\n };\n\n const onNativeKeyDown = (e: KeyboardEvent) => {\n const { code } = e;\n e.preventDefault();\n if (code === 'ArrowDown' || code === 'ArrowLeft') {\n onKeyDown('sub');\n }\n if (code === 'ArrowUp' || code === 'ArrowRight') {\n onKeyDown('add');\n }\n };\n /** --------------------- slide button 相关事件end ------------------- */\n\n /** 暴露设置按钮坐标方法供父组件调用 */\n ctx.expose({\n setPosition,\n });\n\n return () => (\n <div\n ref={buttonRef}\n class={`${COMPONENT_NAME.value}-wrapper`}\n style={wrapperStyle.value}\n tabindex=\"0\"\n show-tooltip={showTooltip.value}\n onMouseenter={handleMouseEnter}\n onMouseleave={handleMouseLeave}\n onMousedown={onButtonDown}\n onTouchstart={onButtonDown}\n onFocus={handleMouseEnter}\n onBlur={handleMouseLeave}\n onKeydown={onNativeKeyDown}\n >\n {/* hide tooltip with `hideEmptyPopup`, empty content won't show */}\n <TTooltip ref={tooltipRef} hideEmptyPopup disabled={!showTooltip.value} {...tooltipProps.value}>\n <div class={[COMPONENT_NAME.value, { [`${COMPONENT_NAME.value}--dragging`]: slideButtonProps.dragging }]} />\n </TTooltip>\n </div>\n );\n },\n});\n"],"names":["defineComponent","name","props","value","type","Number","vertical","Boolean","tooltipProps","Object","label","String","Function","range","position","emits","setup","ctx","COMPONENT_NAME","usePrefixClass","tooltipConfig","computed","_useSliderTooltip","useSliderTooltip","tooltipRef","toggleTooltip","showTooltip","parentProps","inject","sliderPropsInjectKey","buttonRef","ref","dragged","slideButtonProps","reactive","dragging","isClick","startX","startY","startPos","newPos","rangeDiff","max","min","currentPos","concat","step","wrapperStyle","bottom","left","watchEffect","toggleDragging","setPosition","pos","isNaN","perStepLen","steps","Math","round","formatPrecision","precision","emit","nextTick","_tooltipRef$value$upd","_tooltipRef$value","updatePopper","call","handleMouseEnter","focus","handleMouseLeave","onDragStart","event","clientY","clientX","touch","touches","_ref","parseFloat","onDragging","e","resetSize","isFunction","diff","parentSliderSize","sliderSize","_ref2","onDragEnd","setTimeout","window","removeEventListener","onButtonDown","disabled","preventDefault","addEventListener","onKeyDown","state","stepLength","onNativeKeyDown","code","expose","_createVNode","TTooltip","_mergeProps","_default","_defineProperty"],"mappings":"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"}