{"version":3,"file":"useExposeFunc.mjs","sources":["../../../src/tree/hooks/useExposeFunc.ts"],"sourcesContent":["import { Ref } from 'vue';\nimport upperFirst from 'lodash/upperFirst';\nimport TreeStore from '../../_common/js/tree/tree-store';\nimport TreeNode from '../../_common/js/tree/tree-node';\nimport { TreeOptionData } from '../../common';\nimport { getNode } from '../util';\nimport isArray from 'lodash/isArray';\n\nimport { TreeNodeValue, TreeNodeState, TypeTreeNodeModel } from '../interface';\n\nexport default function useExposeFunc(treeStore: Ref<TreeStore>, expose: (exposed: Record<string, any>) => void) {\n  const setItem = (value: TreeNodeValue, options: TreeNodeState) => {\n    const node: TreeNode = treeStore.value.getNode(value);\n    const spec = options;\n    const keys = Object.keys(spec);\n    if (node && spec) {\n      ['expanded', 'actived', 'checked'].forEach((name) => {\n        if (keys.includes(name)) {\n          node[`set${upperFirst(name)}`](spec[name], { directly: true });\n        }\n      });\n    }\n  };\n\n  const getItem = (value: TreeNodeValue): TypeTreeNodeModel => {\n    const node: TreeNode = treeStore.value.getNode(value);\n    return node?.getModel();\n  };\n\n  const getItems = (value?: TreeNodeValue): TypeTreeNodeModel[] => {\n    const nodes = treeStore.value.getNodes(value);\n    return nodes.map((node: TreeNode) => node.getModel());\n  };\n\n  const appendTo = (para?: TreeNodeValue, item?: TreeOptionData | TreeOptionData[]) => {\n    let list = [];\n    if (isArray(item)) {\n      list = item;\n    } else {\n      list = [item];\n    }\n    list.forEach((item) => {\n      const val = item?.value || '';\n      const node = getNode(treeStore.value, val);\n      if (node) {\n        treeStore.value.appendNodes(para, node);\n      } else {\n        treeStore.value.appendNodes(para, item);\n      }\n    });\n  };\n\n  const insertBefore = (value: TreeNodeValue, item: TreeOptionData) => {\n    const val = item?.value || '';\n    const node = getNode(treeStore.value, val);\n    if (node) {\n      // TODO type fix\n      treeStore.value.insertBefore(value, node as any);\n    } else {\n      treeStore.value.insertBefore(value, item);\n    }\n  };\n\n  const insertAfter = (value: TreeNodeValue, item: TreeOptionData) => {\n    const val = item?.value || '';\n    const node = getNode(treeStore.value, val);\n    if (node) {\n      // TODO type fix\n      treeStore.value.insertAfter(value, node as any);\n    } else {\n      treeStore.value.insertAfter(value, item);\n    }\n  };\n\n  const remove = (value?: TreeNodeValue) => {\n    return treeStore.value.remove(value);\n  };\n\n  const getIndex = (value: TreeNodeValue) => {\n    return treeStore.value.getNodeIndex(value);\n  };\n\n  const getParent = (value: TreeNodeValue) => {\n    const node = treeStore.value.getParent(value);\n    return node?.getModel();\n  };\n\n  const getParents = (value: TreeNodeValue) => {\n    const nodes = treeStore.value.getParents(value);\n    return nodes.map((node: TreeNode) => node.getModel());\n  };\n\n  const getPath = (value: TreeNodeValue) => {\n    const node = treeStore.value.getNode(value);\n    let pathNodes: any[] = [];\n    if (node) {\n      pathNodes = node.getPath().map((node: TreeNode) => node.getModel());\n    }\n    return pathNodes;\n  };\n\n  expose({\n    setItem,\n    getItem,\n    getItems,\n    appendTo,\n    insertBefore,\n    insertAfter,\n    remove,\n    getIndex,\n    getParent,\n    getParents,\n    getPath,\n  });\n}\n"],"names":["node","directly","isArray","list","expose","setItem","getItem","getItems","appendTo","insertBefore","insertAfter","remove","getIndex","getParent","getParents","getPath"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,SAAA,aAAA,CAAA,SAAA,EAAA,MAAA,EAAA;;;;AAIU,IAAA,IAAA,IAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;;;AAGE,QAAA,IAAA,IAAA,CAAA,QAAA,CAAA,IAAA,CAAA,EAAA;AACGA,UAAAA,IAAAA,CAAAA,KAAAA,CAAAA,MAAAA,CAAAA,YAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,EAAAA;AAAwCC,YAAAA,QAAAA,EAAAA,IAAAA;AAAe,WAAA,CAAA,CAAA;AAC9D,SAAA;AACF,OAAA,CAAA,CAAA;AACF,KAAA;;AAGI,EAAA,IAAA,OAAA,GAAA,SAAA,OAAA,CAAA,KAAA,EAAA;;;;AAKA,EAAA,IAAA,QAAA,GAAA,SAAA,QAAA,CAAA,KAAA,EAAA;;AAEJ,IAAA,OAAA,KAAA,CAAA,GAAA,CAAA,UAAA,IAAA,EAAA;AAAqC,MAAA,OAAA,IAAA,CAAA,QAAA,EAAA,CAAA;;;;;AAKjC,IAAA,IAAAC,SAAA,CAAA,IAAA,CAAA,EAAA;AACKC,MAAAA,IAAAA,GAAAA,IAAAA,CAAAA;AACT,KAAA,MAAA;;AAEA,KAAA;AACKA,IAAAA,IAAAA,CAAAA,OAAAA,CAAAA,UAAAA,KAAAA,EAAAA;;;AAGH,MAAA,IAAA,IAAA,EAAA;;AAEA,OAAA,MAAA;;AAEA,OAAA;AACF,KAAA,CAAA,CAAA;;;;;AAMA,IAAA,IAAA,IAAA,EAAA;;AAGA,KAAA,MAAA;;AAEA,KAAA;;;;;AAMA,IAAA,IAAA,IAAA,EAAA;;AAGA,KAAA,MAAA;;AAEA,KAAA;;AAGI,EAAA,IAAA,MAAA,GAAA,SAAA,MAAA,CAAA,KAAA,EAAA;AACG,IAAA,OAAA,SAAA,CAAA,KAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;AAGH,EAAA,IAAA,QAAA,GAAA,SAAA,QAAA,CAAA,KAAA,EAAA;AACG,IAAA,OAAA,SAAA,CAAA,KAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;AAGH,EAAA,IAAA,SAAA,GAAA,SAAA,SAAA,CAAA,KAAA,EAAA;;;;AAKA,EAAA,IAAA,UAAA,GAAA,SAAA,UAAA,CAAA,KAAA,EAAA;;AAEJ,IAAA,OAAA,KAAA,CAAA,GAAA,CAAA,UAAA,IAAA,EAAA;AAAqC,MAAA,OAAA,IAAA,CAAA,QAAA,EAAA,CAAA;;;AAGjC,EAAA,IAAA,OAAA,GAAA,SAAA,OAAA,CAAA,KAAA,EAAA;;;AAGJ,IAAA,IAAA,IAAA,EAAA;;AACqDH,QAAAA,OAAAA,KAAAA,CAAAA,QAAAA,EAAAA,CAAAA;;AACrD,KAAA;AACO,IAAA,OAAA,SAAA,CAAA;;AAGFI,EAAAA,MAAAA,CAAAA;AACLC,IAAAA,OAAAA,EAAAA,OAAAA;AACAC,IAAAA,OAAAA,EAAAA,OAAAA;AACAC,IAAAA,QAAAA,EAAAA,QAAAA;AACAC,IAAAA,QAAAA,EAAAA,QAAAA;AACAC,IAAAA,YAAAA,EAAAA,YAAAA;AACAC,IAAAA,WAAAA,EAAAA,WAAAA;AACAC,IAAAA,MAAAA,EAAAA,MAAAA;AACAC,IAAAA,QAAAA,EAAAA,QAAAA;AACAC,IAAAA,SAAAA,EAAAA,SAAAA;AACAC,IAAAA,UAAAA,EAAAA,UAAAA;AACAC,IAAAA,OAAAA,EAAAA,OAAAA;AACF,GAAA,CAAA,CAAA;AACF;;;;"}