{"version":3,"file":"tree.mjs","sources":["../../../../../../packages/components/tree/src/tree.tsx"],"sourcesContent":["import { defineComponent, onUnmounted, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { isArray } from '../../../utils/is'\nimport { treeProps } from './props'\nimport TreeNodeComp from './layout/node.vue'\nimport { transDataToNodes } from './utils'\nimport type { TreeData, TreeNode } from './type'\nimport { treeInjectKey } from './context'\n\nimport { useRenderFlattenNodes } from './hooks/use-render-flatten-nodes'\nimport { useSelected } from './hooks/use-selected'\nimport { useChecked } from './hooks/use-checked'\n\nexport default defineComponent({\n  name: getComponentNamespace('Tree'),\n  props: treeProps,\n  emits: [\n    'update:selected',\n    'change-selected',\n    'update:checked',\n    'change-checked',\n    'click-node',\n    'unfold-node',\n    'fold-node'\n  ],\n  setup(props, { slots, expose, emit }) {\n    const {\n      selected,\n      checked,\n      checkStrictly,\n      showLine,\n      defaultUnfoldAll,\n      defaultUnfoldValues,\n      multiple,\n      showCheckbox,\n      data,\n      accordion,\n      unfoldOnClickNode,\n      checkedOnClickNode\n    } = toRefs(props)\n    const ns = getNamespace('tree')\n\n    const nodes = ref<TreeNode[]>([])\n    // 以value作为key的map\n    const nodeValueMap = reactive(new Map<string, TreeNode>())\n    const nodeKeyMap = reactive(new Map<string, TreeNode>())\n\n    expose({})\n\n    const { renderFlattenNodes, toggleNodeUnfoldOrFold } = useRenderFlattenNodes({\n      nodes,\n      nodeValueMap,\n      originData: data,\n      defaultUnfoldAll,\n      defaultUnfoldValues,\n      accordion,\n      filterNodeMethod: props.filterNodeMethod\n    })\n\n    const { handleNodeSelected, selectedValues, focusNodeValues } = useSelected({\n      selected,\n      multiple,\n      nodeValueMap\n    })\n\n    const { toggleNodeCheckStatus, checkedNodeKeys } = useChecked({\n      checked,\n      nodeValueMap,\n      nodeKeyMap,\n      checkStrictly\n    })\n\n    const clickNode = (node: TreeNode) => {\n      emit('click-node', node)\n    }\n\n    provide(\n      treeInjectKey,\n      reactive({\n        showLine,\n        showCheckbox,\n        checkStrictly,\n        unfoldOnClickNode,\n        checkedOnClickNode,\n        selectedValues,\n        focusNodeValues,\n        checkedNodeKeys,\n        nodeKeyMap,\n        rootSlots: slots,\n        toggleNodeUnfoldOrFold,\n        handleNodeSelected,\n        toggleNodeCheckStatus,\n        clickNode\n      })\n    )\n\n    const updateNodes = () => {\n      if (isArray(props.data)) {\n        nodes.value = transDataToNodes(props.data, {\n          nodeValueMap,\n          nodeKeyMap,\n          checkStrictly: props.checkStrictly\n        })\n      }\n    }\n\n    watch(\n      () => props.data,\n      () => {\n        updateNodes()\n      },\n      { immediate: true, deep: true }\n    )\n\n    watch(\n      () => props.checkStrictly,\n      () => {\n        updateNodes()\n      }\n    )\n\n    onUnmounted(() => {\n      nodeValueMap.clear()\n      nodeKeyMap.clear()\n      nodes.value = []\n    })\n\n    return () => {\n      return (\n        <div class={ns}>\n          {renderFlattenNodes.value?.map((node) => (\n            <TreeNodeComp node={node} key={node.key} />\n          ))}\n        </div>\n      )\n    }\n  },\n  methods: {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getNodesByValues(values: (string | number)[]): TreeNode[] {\n      return []\n    },\n    getSelectedNodes(): TreeNode[] {\n      return []\n    },\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    unfoldNodes(values?: (number | string)[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    foldNodes(values?: (number | string)[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    insertNodes(parentValue: number | string, data: TreeData[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    removeNodes(values: (number | string)[]) {},\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    filter(query: string) {}\n  }\n})\n"],"names":["name","getComponentNamespace","props","treeProps","emits","setup","slots","expose","emit","selected","checked","checkStrictly","showLine","defaultUnfoldAll","defaultUnfoldValues","multiple","showCheckbox","data","accordion","unfoldOnClickNode","checkedOnClickNode","toRefs","ns","getNamespace","nodes","ref","nodeValueMap","reactive","Map","nodeKeyMap","renderFlattenNodes","toggleNodeUnfoldOrFold","useRenderFlattenNodes","originData","filterNodeMethod","handleNodeSelected","selectedValues","focusNodeValues","useSelected","toggleNodeCheckStatus","checkedNodeKeys","useChecked","clickNode","node","provide","treeInjectKey","rootSlots","updateNodes","isArray","value","transDataToNodes","watch","immediate","deep","onUnmounted","clear","_createVNode","map","TreeNodeComp","key","methods","getNodesByValues","values","getSelectedNodes","unfoldNodes","foldNodes","insertNodes","parentValue","removeNodes","filter","query"],"mappings":"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"}