UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 5.64 kB
{"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;;;;"}