{"version":3,"file":"Tour.cjs","sources":["../../../../../../packages/vue-components/vc-tour/src/Tour.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { CSSProperties, ExtractPropTypes } from 'vue';\nimport type { Gap } from './hooks/useTarget';\nimport type { TourStepInfo, TourStepProps } from './interface';\nimport type { PlacementType } from './placements';\nimport { useMergedState } from '@antdv/hooks';\nimport {\n  arrayType,\n  booleanType,\n  classNames,\n  functionType,\n  initDefaultProps,\n  objectType,\n  someType,\n  stringType,\n} from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  ref,\n  shallowRef,\n  toRefs,\n  watch,\n  watchEffect,\n} from 'vue';\nimport Portal from '../../portal/src/PortalWrapper';\nimport { triggerProps } from '../../vc-trigger/src/interface';\nimport Trigger from '../../vc-trigger/src/Trigger';\nimport useTarget from './hooks/useTarget';\nimport Mask from './Mask';\nimport { getPlacements } from './placements';\nimport TourStep from './TourStep';\n\nconst CENTER_PLACEHOLDER: CSSProperties = {\n  left: '50%',\n  top: '50%',\n  width: '1px',\n  height: '1px',\n};\n\nexport function tourProps() {\n  const { builtinPlacements, popupAlign } = triggerProps();\n  return {\n    builtinPlacements,\n    popupAlign,\n    steps: arrayType<TourStepInfo[]>(),\n    open: booleanType(),\n    defaultCurrent: { type: Number },\n    current: { type: Number },\n    onChange: functionType<(current: number) => void>(),\n    onClose: functionType<(current: number) => void>(),\n    onFinish: functionType<() => void>(),\n    mask: someType<boolean | { style?: CSSProperties; color?: string }>([Boolean, Object], true),\n    arrow: someType<boolean | { pointAtCenter: boolean }>([Boolean, Object], true),\n    rootClassName: { type: String },\n    placement: stringType<PlacementType>('bottom'),\n    prefixCls: { type: String, default: 'rc-tour' },\n    renderPanel: functionType<(props: TourStepProps, current: number) => VueNode>(),\n    gap: objectType<Gap>(),\n    animated: someType<boolean | { placeholder: boolean }>([Boolean, Object]),\n    scrollIntoViewOptions: someType<boolean | ScrollIntoViewOptions>([Boolean, Object], true),\n    zIndex: { type: Number, default: 1001 },\n  };\n}\n\nexport type TourProps = Partial<ExtractPropTypes<ReturnType<typeof tourProps>>>;\n\nconst Tour = defineComponent({\n  name: 'Tour',\n  inheritAttrs: false,\n  props: initDefaultProps(tourProps(), {}),\n  setup(props) {\n    const { defaultCurrent, placement, mask, scrollIntoViewOptions, open, gap, arrow }\n      = toRefs(props);\n\n    const triggerRef = ref();\n\n    const [mergedCurrent, setMergedCurrent] = useMergedState(0, {\n      value: computed(() => props.current),\n      defaultValue: defaultCurrent.value,\n    });\n\n    const [mergedOpen, setMergedOpen] = useMergedState(undefined, {\n      value: computed(() => props.open),\n      postState: origin =>\n        mergedCurrent.value < 0 || mergedCurrent.value >= props.steps.length\n          ? false\n          : origin ?? true,\n    });\n\n    const openRef = shallowRef(mergedOpen.value);\n    watchEffect(() => {\n      if (mergedOpen.value && !openRef.value)\n        setMergedCurrent(0);\n\n      openRef.value = mergedOpen.value;\n    });\n\n    const curStep = computed(() => (props.steps[mergedCurrent.value] || {}) as TourStepInfo);\n\n    const mergedPlacement = computed(() => curStep.value.placement ?? placement.value);\n    const mergedMask = computed(() => mergedOpen.value && (curStep.value.mask ?? mask.value));\n    const mergedScrollIntoViewOptions = computed(\n      () => curStep.value.scrollIntoViewOptions ?? scrollIntoViewOptions.value,\n    );\n    const [posInfo, targetElement] = useTarget(\n      computed(() => curStep.value.target),\n      open,\n      gap,\n      mergedScrollIntoViewOptions,\n    );\n\n    // ========================= arrow =========================\n    const mergedArrow = computed(() =>\n      targetElement.value\n        ? typeof curStep.value.arrow === 'undefined'\n          ? arrow.value\n          : curStep.value.arrow\n        : false,\n    );\n    const arrowPointAtCenter = computed(() =>\n      typeof mergedArrow.value === 'object' ? mergedArrow.value.pointAtCenter : false,\n    );\n\n    watch(arrowPointAtCenter, () => {\n      triggerRef.value?.forcePopupAlign();\n    });\n    watch(mergedCurrent, () => {\n      triggerRef.value?.forcePopupAlign();\n    });\n\n    // ========================= Change =========================\n    const onInternalChange = (nextCurrent: number) => {\n      setMergedCurrent(nextCurrent);\n      props.onChange?.(nextCurrent);\n    };\n\n    return () => {\n      const {\n        prefixCls,\n        steps,\n        onClose,\n        onFinish,\n        rootClassName,\n        renderPanel,\n        animated,\n        zIndex,\n        ...restProps\n      } = props;\n\n      // ========================= Render =========================\n      // Skip if not init yet\n      if (targetElement.value === undefined)\n        return null;\n\n      const handleClose = () => {\n        setMergedOpen(false);\n        onClose?.(mergedCurrent.value);\n      };\n\n      const mergedShowMask\n        = typeof mergedMask.value === 'boolean' ? mergedMask.value : !!mergedMask.value;\n      const mergedMaskStyle = typeof mergedMask.value === 'boolean' ? undefined : mergedMask.value;\n\n      // when targetElement is not exist, use body as triggerDOMNode\n      const getTriggerDOMNode = () => {\n        return targetElement.value || document.body;\n      };\n\n      const getPopupElement = () => (\n        <TourStep\n          arrow={mergedArrow.value}\n          key=\"content\"\n          prefixCls={prefixCls}\n          total={steps.length}\n          renderPanel={renderPanel}\n          onPrev={() => {\n            onInternalChange(mergedCurrent.value - 1);\n          }}\n          onNext={() => {\n            onInternalChange(mergedCurrent.value + 1);\n          }}\n          onClose={handleClose}\n          current={mergedCurrent.value}\n          onFinish={() => {\n            handleClose();\n            onFinish?.();\n          }}\n          {...curStep.value}\n        />\n      );\n      const posInfoStyle = computed(() => {\n        const info = posInfo.value || CENTER_PLACEHOLDER;\n        // 如果info[key] 是number，添加 px\n        const style: CSSProperties = {};\n        Object.keys(info).forEach((key) => {\n          if (typeof info[key] === 'number')\n            style[key] = `${info[key]}px`;\n          else\n            style[key] = info[key];\n        });\n        return style;\n      });\n      return mergedOpen.value\n        ? (\n            <>\n              <Mask\n                zIndex={zIndex}\n                prefixCls={prefixCls}\n                pos={posInfo.value}\n                showMask={mergedShowMask}\n                style={mergedMaskStyle?.style}\n                fill={mergedMaskStyle?.color}\n                open={mergedOpen.value}\n                animated={animated}\n                rootClassName={rootClassName}\n              />\n              <Trigger\n                {...restProps}\n                arrow={!!restProps.arrow}\n                builtinPlacements={\n                  !curStep.value.target\n                    ? undefined\n                    : restProps.builtinPlacements ?? getPlacements(arrowPointAtCenter.value)\n                }\n                ref={triggerRef}\n                popupStyle={\n                  !curStep.value.target\n                    ? {\n                        ...curStep.value.style,\n                        position: 'fixed',\n                        left: CENTER_PLACEHOLDER.left,\n                        top: CENTER_PLACEHOLDER.top,\n                        transform: 'translate(-50%, -50%)',\n                      }\n                    : curStep.value.style\n                }\n                popupPlacement={mergedPlacement.value}\n                popupVisible={mergedOpen.value}\n                popupClassName={classNames(rootClassName, curStep.value.className)}\n                prefixCls={prefixCls}\n                popup={getPopupElement}\n                forceRender={false}\n                destroyPopupOnHide\n                zIndex={zIndex}\n                mask={false}\n                getTriggerDOMNode={getTriggerDOMNode}\n              >\n                <Portal visible={mergedOpen.value} autoLock>\n                  <div\n                    class={classNames(rootClassName, `${prefixCls}-target-placeholder`)}\n                    style={{\n                      ...posInfoStyle.value,\n                      position: 'fixed',\n                      pointerEvents: 'none',\n                    }}\n                  />\n                </Portal>\n              </Trigger>\n            </>\n          )\n        : null;\n    };\n  },\n});\n\nexport default Tour;\n"],"names":["CENTER_PLACEHOLDER","left","top","width","height","tourProps","builtinPlacements","popupAlign","triggerProps","steps","arrayType","open","booleanType","defaultCurrent","type","Number","current","onChange","functionType","onClose","onFinish","mask","someType","Boolean","Object","arrow","rootClassName","String","placement","stringType","prefixCls","default","renderPanel","gap","objectType","animated","scrollIntoViewOptions","zIndex","Tour","defineComponent","name","inheritAttrs","props","initDefaultProps","setup","toRefs","triggerRef","ref","mergedCurrent","setMergedCurrent","useMergedState","value","computed","defaultValue","mergedOpen","setMergedOpen","undefined","postState","origin","length","openRef","shallowRef","watchEffect","curStep","mergedPlacement","mergedMask","mergedScrollIntoViewOptions","posInfo","targetElement","useTarget","target","mergedArrow","arrowPointAtCenter","pointAtCenter","watch","forcePopupAlign","onInternalChange","nextCurrent","restProps","handleClose","mergedShowMask","mergedMaskStyle","getTriggerDOMNode","document","body","getPopupElement","_createVNode","TourStep","onPrev","onNext","posInfoStyle","info","style","keys","forEach","key","_Fragment","Mask","color","Trigger","getPlacements","position","transform","classNames","className","Portal","pointerEvents"],"mappings":"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"}