tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 15.3 kB
Source Map (JSON)
{"version":3,"file":"fab.mjs","sources":["../../src/fab/fab.tsx"],"sourcesContent":["import { defineComponent, ref, computed, onMounted, watch } from 'vue';\nimport config from '../config';\nimport FabProps from './props';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport TButton from '../button';\nimport { TdFabProps } from './type';\nimport { reconvertUnit } from '../shared';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-fab`,\n props: FabProps,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n\n const fabClass = usePrefixClass('fab');\n const fabRef = ref();\n const fabButtonRef = ref();\n const customNodeRef = ref();\n\n const handleClick = (e: MouseEvent) => {\n props.onClick?.({ e });\n };\n\n const mounted = ref(false);\n const fabButtonSize = ref({\n width: 48,\n height: 48,\n });\n const btnSwitchPos = ref({\n x: 16,\n y: 32,\n });\n const switchPos = ref({\n hasMoved: false, // exclude click event\n x: btnSwitchPos.value.x, // right\n y: btnSwitchPos.value.y, // bottom\n startX: 0,\n startY: 0,\n endX: 0,\n endY: 0,\n });\n\n const onTouchStart = (e: TouchEvent) => {\n props.onDragStart?.({ e });\n\n switchPos.value.startX = e.touches[0].pageX;\n switchPos.value.startY = e.touches[0].pageY;\n };\n\n const onTouchMove = (e: TouchEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n if (!props.draggable) {\n return;\n }\n\n if (e.touches.length <= 0) {\n return;\n }\n const offsetX = e.touches[0].pageX - switchPos.value.startX;\n const offsetY = e.touches[0].pageY - switchPos.value.startY;\n let x = Math.floor(switchPos.value.x - offsetX);\n let y = Math.floor(switchPos.value.y - offsetY);\n\n [x, y] = getSwitchButtonSafeAreaXY(x, y);\n\n if (props.draggable !== 'vertical') {\n btnSwitchPos.value.x = x;\n switchPos.value.endX = x;\n }\n if (props.draggable !== 'horizontal') {\n btnSwitchPos.value.y = y;\n switchPos.value.endY = y;\n }\n switchPos.value.hasMoved = true;\n };\n\n const getSwitchButtonSafeAreaXY = (x: number, y: number) => {\n const bottomThreshold = reconvertUnit(props.yBounds?.[1] ?? 0);\n const topThreshold = reconvertUnit(props.yBounds?.[0] ?? 0);\n\n const docWidth = Math.min(window.innerWidth, document.documentElement.clientWidth, screen.width);\n const docHeight = Math.min(window.innerHeight, document.documentElement.clientHeight, screen.height);\n\n const maxY = docHeight - fabButtonSize.value.height - topThreshold;\n const maxX = docWidth - fabButtonSize.value.width;\n\n x = Math.max(0, Math.min(maxX, x));\n y = Math.max(bottomThreshold, Math.min(maxY, y));\n\n return [x, y];\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n if (!switchPos.value.hasMoved) {\n return;\n }\n props.onDragEnd?.({ e });\n switchPos.value.startX = 0;\n switchPos.value.startY = 0;\n switchPos.value.hasMoved = false;\n setSwitchPosition(switchPos.value.endX, switchPos.value.endY);\n };\n\n const setSwitchPosition = (switchX: number, switchY: number) => {\n [switchX, switchY] = getSwitchButtonSafeAreaXY(switchX, switchY);\n switchPos.value.x = switchX;\n switchPos.value.y = switchY;\n\n if (props.draggable !== 'vertical') {\n btnSwitchPos.value.x = switchX;\n }\n if (props.draggable !== 'horizontal') {\n btnSwitchPos.value.y = switchY;\n }\n };\n\n const fabStyle = computed(() => {\n const { x, y } = btnSwitchPos.value;\n\n return `right: ${x}px;bottom: ${y}px;`;\n });\n\n onMounted(() => {\n mounted.value = true;\n resetDraggableParams();\n\n if (fabButtonRef.value || customNodeRef.value) {\n const info = window.getComputedStyle(fabButtonRef.value?.$el || customNodeRef.value);\n\n fabButtonSize.value.height = +reconvertUnit(info.height);\n fabButtonSize.value.width = +reconvertUnit(info.width);\n }\n });\n\n const getFabOriginStyle = () => {\n const info = window.getComputedStyle(fabRef.value);\n const { right, bottom } = info || {};\n\n return {\n right: +(reconvertUnit(right) || 0),\n bottom: +(reconvertUnit(bottom) || 0),\n };\n };\n\n const resetDraggableParams = () => {\n const { right, bottom } = getFabOriginStyle();\n\n btnSwitchPos.value.x = right;\n btnSwitchPos.value.y = bottom;\n\n switchPos.value.x = right;\n switchPos.value.y = bottom;\n };\n\n watch(\n () => props.style,\n () => {\n resetDraggableParams();\n },\n );\n\n return () => {\n const icon = () => renderTNodeJSX('icon');\n const defaultContent = (\n <TButton\n size=\"large\"\n theme=\"primary\"\n shape={props.text ? 'round' : 'circle'}\n class={`${fabClass.value}__button`}\n {...(props.buttonProps as TdFabProps['buttonProps'])}\n icon={icon}\n ref={fabButtonRef}\n >\n {props.text}\n </TButton>\n );\n\n const customNode = renderTNodeJSX('default');\n return (\n <div\n class={fabClass.value}\n style={mounted.value && props.draggable ? fabStyle.value : props.style}\n onClick={handleClick}\n onTouchstart={onTouchStart}\n onTouchmove={onTouchMove}\n onTouchend={onTouchEnd}\n ref={fabRef}\n >\n {customNode ? <div ref={customNodeRef}>{customNode}</div> : defaultContent}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","FabProps","setup","renderTNodeJSX","useTNodeJSX","fabClass","usePrefixClass","fabRef","ref","fabButtonRef","customNodeRef","handleClick","e","_props$onClick","onClick","call","mounted","fabButtonSize","width","height","btnSwitchPos","x","y","switchPos","hasMoved","value","startX","startY","endX","endY","onTouchStart","_props$onDragStart","onDragStart","touches","pageX","pageY","onTouchMove","stopPropagation","preventDefault","draggable","length","offsetX","offsetY","Math","floor","_getSwitchButtonSafeA","getSwitchButtonSafeAreaXY","_getSwitchButtonSafeA2","_slicedToArray","_props$yBounds$","_props$yBounds","_props$yBounds$2","_props$yBounds2","bottomThreshold","reconvertUnit","yBounds","topThreshold","docWidth","min","window","innerWidth","document","documentElement","clientWidth","screen","docHeight","innerHeight","clientHeight","maxY","maxX","max","onTouchEnd","_props$onDragEnd","onDragEnd","setSwitchPosition","switchX","switchY","_getSwitchButtonSafeA3","_getSwitchButtonSafeA4","fabStyle","computed","_btnSwitchPos$value","concat","onMounted","resetDraggableParams","_fabButtonRef$value","info","getComputedStyle","$el","getFabOriginStyle","_ref","right","bottom","_getFabOriginStyle","watch","style","icon","defaultContent","_createVNode","TButton","_mergeProps","text","buttonProps","default","_default","customNode"],"mappings":"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"}