UNPKG

tav-ui

Version:
1 lines 17.7 kB
{"version":3,"file":"verify2.mjs","sources":["../../../../../../../packages/components/verify/src/verify.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref, unref, watch, watchEffect } from 'vue'\nimport { CheckOutlined, DoubleRightOutlined } from '@ant-design/icons-vue'\nimport { useTimeoutFn } from '@tav-ui/hooks/core/useTimeout'\nimport { useEventListener } from '@tav-ui/hooks/event/useEventListener'\nimport { getSlot } from '@tav-ui/utils/helper/tsxHelper'\nimport { verifyProps } from './types'\nimport type { Ref } from 'vue'\n\nexport default defineComponent({\n name: 'TaVerify',\n props: verifyProps,\n emits: ['success', 'update:value', 'change', 'start', 'move', 'end'],\n setup(props, { emit, slots, expose }) {\n const state = reactive({\n isMoving: false,\n isPassing: false,\n moveDistance: 0,\n toLeft: false,\n startTime: 0,\n endTime: 0,\n })\n\n const wrapElRef = ref<HTMLDivElement | null>(null)\n const barElRef = ref<HTMLDivElement | null>(null)\n const contentElRef = ref<HTMLDivElement | null>(null)\n const actionElRef = ref(null) as Ref<HTMLDivElement | null>\n\n useEventListener({\n el: document,\n name: 'mouseup',\n listener: () => {\n if (state.isMoving) {\n resume()\n }\n },\n })\n\n const getActionStyleRef = computed(() => {\n const { height, actionStyle } = props\n const h = `${parseInt(height as string)}px`\n return {\n left: 0,\n width: h,\n height: h,\n ...actionStyle,\n }\n })\n\n const getWrapStyleRef = computed(() => {\n const { height, width, circle, wrapStyle } = props\n const h = parseInt(height as string)\n const w = `${parseInt(width as string)}px`\n return {\n width: w,\n height: `${h}px`,\n lineHeight: `${h}px`,\n borderRadius: circle ? `${h / 2}px` : 0,\n ...wrapStyle,\n }\n })\n\n const getBarStyleRef = computed(() => {\n const { height, circle, barStyle } = props\n const h = parseInt(height as string)\n return {\n height: `${h}px`,\n borderRadius: circle ? `${h / 2}px 0 0 ${h / 2}px` : 0,\n ...barStyle,\n }\n })\n\n const getContentStyleRef = computed(() => {\n const { height, width, contentStyle } = props\n const h = `${parseInt(height as string)}px`\n const w = `${parseInt(width as string)}px`\n\n return {\n height: h,\n width: w,\n ...contentStyle,\n }\n })\n\n watch(\n () => state.isPassing,\n (isPassing) => {\n if (isPassing) {\n const { startTime, endTime } = state\n const time = (endTime - startTime) / 1000\n emit('success', { isPassing, time: time.toFixed(1) })\n emit('update:value', isPassing)\n emit('change', isPassing)\n }\n }\n )\n\n watchEffect(() => {\n state.isPassing = !!props.value\n })\n\n function getEventPageX(e: MouseEvent | TouchEvent) {\n return (e as MouseEvent).pageX || (e as TouchEvent).touches[0].pageX\n }\n\n function handleDragStart(e: MouseEvent | TouchEvent) {\n if (state.isPassing) {\n return\n }\n const actionEl = unref(actionElRef)\n if (!actionEl) return\n emit('start', e)\n state.moveDistance = getEventPageX(e) - parseInt(actionEl.style.left.replace('px', ''), 10)\n state.startTime = new Date().getTime()\n state.isMoving = true\n }\n\n function getOffset(el: HTMLDivElement) {\n const actionWidth = parseInt(el.style.width)\n const { width } = props\n const widthNum = parseInt(width as string)\n const offset = widthNum - actionWidth - 6\n return { offset, widthNum, actionWidth }\n }\n\n function handleDragMoving(e: MouseEvent | TouchEvent) {\n const { isMoving, moveDistance } = state\n if (isMoving) {\n const actionEl = unref(actionElRef)\n const barEl = unref(barElRef)\n if (!actionEl || !barEl) return\n const { offset, widthNum, actionWidth } = getOffset(actionEl)\n const moveX = getEventPageX(e) - moveDistance\n\n emit('move', {\n event: e,\n moveDistance,\n moveX,\n })\n if (moveX > 0 && moveX <= offset) {\n actionEl.style.left = `${moveX}px`\n barEl.style.width = `${moveX + actionWidth / 2}px`\n } else if (moveX > offset) {\n actionEl.style.left = `${widthNum - actionWidth}px`\n barEl.style.width = `${widthNum - actionWidth / 2}px`\n if (!props.isSlot) {\n checkPass()\n }\n }\n }\n }\n\n function handleDragOver(e: MouseEvent | TouchEvent) {\n const { isMoving, isPassing, moveDistance } = state\n if (isMoving && !isPassing) {\n emit('end', e)\n const actionEl = unref(actionElRef)\n const barEl = unref(barElRef)\n if (!actionEl || !barEl) return\n const moveX = getEventPageX(e) - moveDistance\n const { offset, widthNum, actionWidth } = getOffset(actionEl)\n if (moveX < offset) {\n if (!props.isSlot) {\n resume()\n } else {\n setTimeout(() => {\n if (!props.value) {\n resume()\n } else {\n const contentEl = unref(contentElRef)\n if (contentEl) {\n contentEl.style.width = `${parseInt(barEl.style.width)}px`\n }\n }\n }, 0)\n }\n } else {\n actionEl.style.left = `${widthNum - actionWidth}px`\n barEl.style.width = `${widthNum - actionWidth / 2}px`\n checkPass()\n }\n state.isMoving = false\n }\n }\n\n function checkPass() {\n if (props.isSlot) {\n resume()\n return\n }\n state.endTime = new Date().getTime()\n state.isPassing = true\n state.isMoving = false\n }\n\n function resume() {\n state.isMoving = false\n state.isPassing = false\n state.moveDistance = 0\n state.toLeft = false\n state.startTime = 0\n state.endTime = 0\n const actionEl = unref(actionElRef)\n const barEl = unref(barElRef)\n const contentEl = unref(contentElRef)\n if (!actionEl || !barEl || !contentEl) return\n state.toLeft = true\n useTimeoutFn(() => {\n state.toLeft = false\n actionEl.style.left = '0'\n barEl.style.width = '0'\n // The time is consistent with the animation time\n }, 300)\n contentEl.style.width = unref(getContentStyleRef).width\n }\n\n expose({\n resume,\n })\n\n return () => {\n const renderBar = () => {\n const cls = [`darg-verify-bar`]\n if (state.toLeft) {\n cls.push('to-left')\n }\n return <div class={cls} ref={barElRef} style={unref(getBarStyleRef)} />\n }\n\n const renderContent = () => {\n const cls = [`darg-verify-content`]\n const { isPassing } = state\n const { text, successText } = props\n\n isPassing && cls.push('success')\n\n return (\n <div class={cls} ref={contentElRef} style={unref(getContentStyleRef)}>\n {getSlot(slots, 'text', isPassing) || (isPassing ? successText : text)}\n </div>\n )\n }\n\n const renderAction = () => {\n const cls = [`darg-verify-action`]\n const { toLeft, isPassing } = state\n if (toLeft) {\n cls.push('to-left')\n }\n return (\n <div\n class={cls}\n onMousedown={handleDragStart}\n onTouchstart={handleDragStart}\n style={unref(getActionStyleRef)}\n ref={actionElRef}\n >\n {getSlot(slots, 'actionIcon', isPassing) ||\n (isPassing ? (\n <CheckOutlined class={`darg-verify-action__icon`} />\n ) : (\n <DoubleRightOutlined class={`darg-verify-action__icon`} />\n ))}\n </div>\n )\n }\n\n return (\n <div\n class=\"ta-darg-verify\"\n ref={wrapElRef}\n style={unref(getWrapStyleRef)}\n onMousemove={handleDragMoving}\n onTouchmove={handleDragMoving}\n onMouseleave={handleDragOver}\n onMouseup={handleDragOver}\n onTouchend={handleDragOver}\n >\n {renderBar()}\n {renderContent()}\n {renderAction()}\n </div>\n )\n }\n },\n})\n"],"names":["defineComponent","name","props","verifyProps","emits","emit","slots","expose","state","reactive","isMoving","isPassing","moveDistance","toLeft","startTime","endTime","wrapElRef","barElRef","contentElRef","useEventListener","el","document","listener","height","actionStyle","left","width","circle","wrapStyle","h","parseInt","lineHeight","borderRadius","barStyle","contentStyle","watch","time","watchEffect","getEventPageX","e","handleDragStart","actionEl","getOffset","actionWidth","style","widthNum","handleDragMoving","event","moveX","handleDragOver","actionElRef","offset","setTimeout","contentEl","isSlot","resume","barEl","useTimeoutFn","_createVNode","renderBar","cls","unref","getBarStyleRef","renderContent","text","successText","getSlot","renderAction"],"mappings":"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"}