{"version":3,"file":"useSureConfirm.mjs","sources":["../../src/swipe-cell/useSureConfirm.ts"],"sourcesContent":["import {\n  ref,\n  computed,\n  CSSProperties,\n  h,\n  nextTick,\n  watch,\n  ComponentInternalInstance,\n  setBlockTracking,\n  Ref,\n} from 'vue';\nimport { isFunction, isString } from 'lodash-es';\nimport { SwipeInitData } from './swipe-cell';\nimport { renderTNode } from '../shared';\nimport { SwipeActionItem } from './type';\nimport { TNode } from '../common';\n\n// 二次确认\nexport function useSureConfirm(instance: ComponentInternalInstance | null, initData: SwipeInitData) {\n  const sureRightRef = ref<HTMLElement>();\n  const sureLeftRef = ref<HTMLElement>();\n  const showSureRight = ref(false);\n  const showSureLeft = ref(false);\n  // 左右侧margin，用于补足二次确认内容和按钮集合的宽度不一致时，位移保持动态效果\n  const sureMarginRight = ref(0);\n  const sureMarginLeft = ref(0);\n  // 关闭时是否动效\n  const closedSure = ref(false);\n\n  const sureRightContent = ref();\n  const sureLeftContent = ref();\n\n  const handleSureClick = ref<SwipeActionItem['onClick']>();\n\n  const sureRightBgStyle = computed<CSSProperties>(() => {\n    const style = {\n      display: 'inline-block',\n      position: 'absolute',\n      width: '100%',\n      height: '100%',\n      backgroundColor: 'rgba(0,0,0,0)',\n      transition: closedSure.value ? 'none' : 'background-color .6s cubic-bezier(0.18, 0.89, 0.32, 1)',\n      transform: `translate3d(${initData.rightWidth}px, 0, 0)`,\n      pointerEvents: 'none',\n    } as CSSProperties;\n\n    if (showSureRight.value) {\n      style.backgroundColor = 'rgba(0,0,0,.5)';\n    } else {\n      style.backgroundColor = 'rgba(0,0,0,0)';\n    }\n    return style;\n  });\n\n  const sureLeftBgStyle = computed<CSSProperties>(() => {\n    const style = {\n      display: 'inline-block',\n      position: 'absolute',\n      width: '100%',\n      height: '100%',\n      backgroundColor: 'rgba(0,0,0,0)',\n      transition: closedSure.value ? 'none' : 'background-color .6s cubic-bezier(0.18, 0.89, 0.32, 1)',\n      transform: `translate3d(0, 0, 0)`,\n      pointerEvents: 'none',\n    } as CSSProperties;\n\n    if (showSureLeft.value) {\n      style.backgroundColor = 'rgba(0,0,0,.5)';\n    } else {\n      style.backgroundColor = 'rgba(0,0,0,0)';\n    }\n    return style;\n  });\n\n  const sureRightStyle = computed<CSSProperties>(() => {\n    const style = {\n      display: 'inline-block',\n      position: 'absolute',\n      height: '100%',\n      top: 0,\n      minWidth: '100%',\n      transition: closedSure.value ? 'none' : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)',\n      transform: `translate3d(0, 0, 0)`,\n    } as CSSProperties;\n\n    if (showSureRight.value) {\n      style.transform = `translate3d(0, 0, 0)`;\n    } else {\n      style.transform = `translate3d(${initData.rightWidth}px, 0, 0)`;\n    }\n    return style;\n  });\n\n  const sureLeftStyle = computed<CSSProperties>(() => {\n    const style = {\n      display: 'inline-block',\n      position: 'absolute',\n      height: '100%',\n      top: 0,\n      minWidth: '100%',\n      transition: closedSure.value ? 'none' : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)',\n      transform: `translate3d(0, 0, 0)`,\n    } as CSSProperties;\n\n    if (showSureLeft.value) {\n      style.transform = `translate3d(0, 0, 0)`;\n    } else {\n      style.transform = `translate3d(${-initData.leftWidth}px, 0, 0)`;\n    }\n    return style;\n  });\n\n  watch(showSureRight, () => {\n    if (initData.pos < 0) {\n      if (showSureRight.value) {\n        const sureRightWidth = sureRightRef.value?.clientWidth as number;\n        sureMarginRight.value = Math.max(initData.rightWidth, sureRightWidth) - initData.rightWidth;\n      } else {\n        sureMarginRight.value = 0;\n      }\n    }\n  });\n  watch(showSureLeft, () => {\n    if (initData.pos > 0) {\n      if (showSureLeft.value) {\n        const sureLeftWidth = sureLeftRef.value?.clientWidth as number;\n        sureMarginLeft.value = Math.max(initData.leftWidth, sureLeftWidth) - initData.leftWidth;\n      } else {\n        sureMarginLeft.value = 0;\n      }\n    }\n  });\n\n  const showSure = (sure: string | TNode, onClick?: SwipeActionItem['onClick']) => {\n    handleSureClick.value = onClick;\n\n    let sureContent: Ref<any> = sureRightContent;\n    let sureVisible: Ref<boolean> = showSureRight;\n    if (initData.pos > 0) {\n      sureContent = sureLeftContent;\n      sureVisible = showSureLeft;\n    }\n\n    if (isString(sure) && instance?.slots[sure]) {\n      sureContent.value = renderTNode(instance, sure);\n    } else if (isFunction(sure)) {\n      setBlockTracking(-1);\n      sureContent.value = sure(h);\n      setBlockTracking(1);\n    } else {\n      sureContent.value = sure;\n    }\n\n    nextTick(() => {\n      sureVisible.value = true;\n    });\n  };\n\n  return {\n    sureRightRef,\n    sureLeftRef,\n    showSureRight,\n    showSureLeft,\n    sureMarginRight,\n    sureMarginLeft,\n    closedSure,\n    sureRightContent,\n    sureLeftContent,\n    sureLeftBgStyle,\n    sureRightBgStyle,\n    sureRightStyle,\n    sureLeftStyle,\n    showSure,\n    handleSureClick,\n  };\n}\n"],"names":["useSureConfirm","instance","initData","sureRightRef","ref","sureLeftRef","showSureRight","showSureLeft","sureMarginRight","sureMarginLeft","closedSure","sureRightContent","sureLeftContent","handleSureClick","sureRightBgStyle","computed","style","display","position","width","height","backgroundColor","transition","value","transform","concat","rightWidth","pointerEvents","sureLeftBgStyle","sureRightStyle","top","minWidth","sureLeftStyle","leftWidth","watch","pos","_sureRightRef$value","sureRightWidth","clientWidth","Math","max","_sureLeftRef$value","sureLeftWidth","showSure","sure","onClick","sureContent","sureVisible","isString","slots","renderTNode","isFunction","setBlockTracking","h","nextTick"],"mappings":"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"}