{"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\nconst getNumber = (num: string) => num.replace(/[^\\d]/g, '');\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\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      right: `${btnSwitchPos.value.x}px`,\n      bottom: `${btnSwitchPos.value.y}px`,\n    }));\n\n    onMounted(() => {\n      mounted.value = true;\n      resetDraggableParams();\n\n      const info = window.getComputedStyle(fabButtonRef.value.$el);\n      fabButtonSize.value.height = +getNumber(info.height);\n      fabButtonSize.value.width = +getNumber(info.width);\n    });\n\n    const getFabOriginStyle = () => {\n      const info = window.getComputedStyle(fabRef.value);\n      const { right, bottom } = info || {};\n\n      return {\n        right: +(getNumber(right) || 0),\n        bottom: +(getNumber(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      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          <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        </div>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","getNumber","num","replace","defineComponent","name","props","FabProps","setup","renderTNodeJSX","useTNodeJSX","fabClass","usePrefixClass","fabRef","ref","fabButtonRef","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","right","concat","bottom","onMounted","resetDraggableParams","info","getComputedStyle","$el","getFabOriginStyle","_ref","_getFabOriginStyle","watch","style","icon","_createVNode","_objectSpread","text","buttonProps"],"mappings":"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"}