{"version":3,"file":"MotionTreeNode.cjs","sources":["../../../../../../packages/vue-components/vc-tree/src/MotionTreeNode.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport type { FlattenNode } from './interface';\nimport {\n  computed,\n  defineComponent,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  shallowRef,\n  Transition,\n  watch,\n} from 'vue';\nimport { collapseMotion } from '../../transition';\nimport { useInjectTreeContext } from './contextTypes';\nimport { treeNodeProps } from './props';\nimport TreeNode from './TreeNode';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'MotionTreeNode',\n  inheritAttrs: false,\n  props: {\n    ...treeNodeProps,\n    active: Boolean,\n    motion: Object,\n    motionNodes: { type: Array as PropType<FlattenNode[]> },\n    onMotionStart: Function,\n    onMotionEnd: Function,\n    motionType: String,\n    // treeNodeRequiredProps: { type: Object as PropType<TreeNodeRequiredProps> },\n  },\n  setup(props, { attrs, slots }) {\n    const visible = shallowRef(true);\n    const context = useInjectTreeContext();\n    const motionedRef = shallowRef(false);\n    const transitionProps = computed(() => {\n      if (props.motion)\n        return props.motion;\n      else\n        return collapseMotion();\n    });\n    const onMotionEnd = (node?: HTMLDivElement, type?: 'appear' | 'leave') => {\n      if (type === 'appear')\n        transitionProps.value?.onAfterEnter?.(node);\n      else if (type === 'leave')\n        transitionProps.value?.onAfterLeave?.(node);\n\n      if (!motionedRef.value)\n        props.onMotionEnd();\n\n      motionedRef.value = true;\n    };\n\n    watch(\n      () => props.motionNodes,\n      () => {\n        if (props.motionNodes && props.motionType === 'hide' && visible.value) {\n          nextTick(() => {\n            visible.value = false;\n          });\n        }\n      },\n      { immediate: true, flush: 'post' },\n    );\n    onMounted(() => {\n      props.motionNodes && props.onMotionStart();\n    });\n    onBeforeUnmount(() => {\n      props.motionNodes && onMotionEnd();\n    });\n\n    return () => {\n      const { motion, motionNodes, motionType, active, eventKey, ...otherProps } = props;\n      if (motionNodes) {\n        return (\n          <Transition\n            {...transitionProps.value}\n            appear={motionType === 'show'}\n            onAfterAppear={(node: HTMLDivElement) => onMotionEnd(node, 'appear')}\n            onAfterLeave={(node: HTMLDivElement) => onMotionEnd(node, 'leave')}\n          >\n            <div v-show={visible.value} class={`${context.value.prefixCls}-treenode-motion`}>\n              {motionNodes.map((treeNode: FlattenNode) => {\n                const {\n                  data: { ...restProps },\n                  title,\n                  key,\n                  isStart,\n                  isEnd,\n                } = treeNode;\n                delete restProps.children;\n\n                return (\n                  <TreeNode\n                    v-slots={slots}\n                    {...restProps}\n                    title={title}\n                    active={active}\n                    data={treeNode.data}\n                    key={key}\n                    eventKey={key}\n                    isStart={isStart}\n                    isEnd={isEnd}\n                  />\n                );\n              })}\n            </div>\n          </Transition>\n        );\n      }\n      return (\n        <TreeNode\n          v-slots={slots}\n          class={attrs.class}\n          style={attrs.style}\n          {...otherProps}\n          active={active}\n          eventKey={eventKey}\n        />\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","treeNodeProps","active","Boolean","motion","Object","motionNodes","type","Array","onMotionStart","Function","onMotionEnd","motionType","String","setup","attrs","slots","visible","shallowRef","context","useInjectTreeContext","motionedRef","transitionProps","computed","collapseMotion","node","value","onAfterEnter","onAfterLeave","watch","nextTick","immediate","flush","onMounted","onBeforeUnmount","eventKey","otherProps","_createVNode","Transition","default","_withDirectives","prefixCls","map","treeNode","data","restProps","title","key","isStart","isEnd","children","TreeNode","_vShow","class","style"],"mappings":"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"}