{"version":3,"file":"use-function.mjs","sources":["../../../../../../packages/components/tree/src/use-function.ts"],"sourcesContent":["import { map } from 'lodash'\r\n\r\nexport const useFunctionProxy = (nodeKey) => {\r\n  let treeObj: any\r\n\r\n  const setTreeInstance = (object) => {\r\n    treeObj = object\r\n  }\r\n\r\n  /**\r\n   * 获取勾选的节点集合\r\n   * @param {Boolean} onlyLeaf 只返回选中的叶子节点\r\n   */\r\n  const getCheckedNodes = (onlyLeaf = false) => {\r\n    if (onlyLeaf) {\r\n      return treeObj.getCheckedNodes(true).filter(node => !node.isParent && !node.getCheckStatus().half)\r\n    } else {\r\n      return treeObj.getCheckedNodes(true).filter(node => !node.getCheckStatus().half)\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 获取勾选的节点集合\r\n   * @param {Boolean} onlyLeaf 只返回选中的叶子节点\r\n   */\r\n  const getCheckedKeys = (onlyLeaf = false) => {\r\n    if (nodeKey) {\r\n      const checkedNodes = getCheckedNodes(onlyLeaf)\r\n      return map(checkedNodes, nodeKey)\r\n    } else {\r\n      return []\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 获取半勾选的节点集合\r\n   */\r\n  const getHalfCheckedNodes = () => {\r\n    return treeObj.getCheckedNodes(true).filter(node => node.getCheckStatus().half)\r\n  }\r\n\r\n  /**\r\n   * 获取半勾选的节点集合\r\n   */\r\n  const getHalfCheckedKeys = () => {\r\n    const checkedNodes = getHalfCheckedNodes()\r\n    return map(checkedNodes, nodeKey)\r\n  }\r\n\r\n  /**\r\n   * 获取当前被选中节点的\r\n   */\r\n  const getSelectedNodes = () => {\r\n    return treeObj.getSelectedNodes()\r\n  }\r\n\r\n  /**\r\n   * 获取当前被选中节点的 key，若没有节点被选中则返回 `undefined`\r\n   */\r\n  const getSelectedKeys = () => {\r\n    const selectNodes = getSelectedNodes()\r\n    if (nodeKey) {\r\n      return selectNodes\r\n    } else {\r\n      return []\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 通过 key 获取节点\r\n   * @param key\r\n   */\r\n  const getNode = (key) => {\r\n    if (nodeKey) {\r\n      const nodes = getNodes([key])\r\n      return nodes.length > 0 ? nodes[0] : {}\r\n    } else {\r\n      return {}\r\n    }\r\n  }\r\n\r\n  const getNodes = (keys) => {\r\n    return treeObj.getNodesByFilter((node) => keys.includes(node[nodeKey]))\r\n  }\r\n\r\n  /**\r\n   * 更新某节点数据\r\n   * @param key\r\n   * @param data\r\n   */\r\n  const updateNode = (key, data) => {\r\n    const node = getNode(key)\r\n    Object.assign(node, data)\r\n    treeObj.updateNode(node)\r\n  }\r\n\r\n  /**\r\n   * 展开指定节点\r\n   * @param keys\r\n   */\r\n  const expandNode = (keys) => {\r\n    const expandNodes = getNodes(keys)\r\n    expandNodes.forEach(node => {\r\n      treeObj.expandNode(node, true, false, false)\r\n    })\r\n  }\r\n\r\n  /**\r\n   * 添加到指定节点\r\n   * @param data 节点\r\n   * @param parentkey 父节点Key\r\n   */\r\n  const appendNode = (data, parentkey) => {\r\n    const node = getNode(parentkey)\r\n    treeObj.addNodes(node, data)\r\n  }\r\n\r\n  /**\r\n   * 删除指定节点\r\n   * @param key\r\n   */\r\n  const removeNode = (key) => {\r\n    const node = getNode(key)\r\n    treeObj.removeNode(node)\r\n  }\r\n\r\n  /**\r\n   * 设置勾选节点\r\n   * @param keys\r\n   */\r\n  const setCheckedNodes = (keys: any[], status = true) => {\r\n    const checkNodes = getNodes(keys)\r\n    checkNodes.forEach(node => {\r\n      treeObj.checkNode(node, status, true)\r\n      // @ts-ignore\r\n      treeObj.expandNode(node.isParent ? node : node.getParentNode(), node.isParent ? status : true, false, false)\r\n    })\r\n  }\r\n\r\n  /**\r\n   * 通过 key 设置某个节点的勾选状态\r\n   * @param key\r\n   */\r\n  const setChecked = (key: string, status = true) => {\r\n    setCheckedNodes([key], status)\r\n  }\r\n\r\n  /**\r\n   * 设置选中节点\r\n   * @param keys\r\n   */\r\n  const setSelectedNodes = (keys: any[]) => {\r\n    const selectNodes = getNodes(keys)\r\n    selectNodes.forEach(node => {\r\n      treeObj.selectNode(node, false, true)\r\n    })\r\n  }\r\n\r\n  /**\r\n   * 通过 key 设置某个节点的当前选中状态\r\n   * @param key\r\n   */\r\n  const setSelected = (key: string) => {\r\n    setSelectedNodes([key])\r\n  }\r\n\r\n  /**\r\n   * 勾选所有节点\r\n   */\r\n  const checkAll = () => {\r\n    treeObj.checkAllNodes(true)\r\n  }\r\n\r\n  /**\r\n   * 清除所有节点的选中状态\r\n   */\r\n  const clearAllChecked = () => {\r\n    treeObj.checkAllNodes(false)\r\n  }\r\n\r\n  return {\r\n    setTreeInstance,\r\n    getCheckedNodes,\r\n    getCheckedKeys,\r\n    getHalfCheckedNodes,\r\n    getHalfCheckedKeys,\r\n    setCheckedNodes,\r\n    setChecked,\r\n    getSelectedNodes,\r\n    getSelectedKeys,\r\n    setSelectedNodes,\r\n    setSelected,\r\n    getNode,\r\n    updateNode,\r\n    expandNode,\r\n    appendNode,\r\n    removeNode,\r\n    checkAll,\r\n    clearAllChecked\r\n  }\r\n}\r\n\r\n"],"names":[],"mappings":"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"}