tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 15.5 kB
Source Map (JSON)
{"version":3,"file":"tree-node-model.mjs","sources":["../../../../src/_common/js/tree/tree-node-model.ts"],"sourcesContent":["import isUndefined from 'lodash/isUndefined';\nimport isBoolean from 'lodash/isBoolean';\nimport omit from 'lodash/omit';\nimport get from 'lodash/get';\nimport { TreeNode } from './tree-node';\nimport { OptionData } from '../common';\nimport {\n TreeNodeValue,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeItem,\n} from './types';\nimport log from '../log/log';\n\nexport const nodeKey = '__tdesign_tree-node__';\n\nexport class TreeNodeModel {\n private [nodeKey]: TreeNode;\n\n constructor(node: TreeNode) {\n this[nodeKey] = node;\n }\n\n public get value() {\n const node = this[nodeKey];\n return node.value;\n }\n\n public get label() {\n const node = this[nodeKey];\n return node.label;\n }\n\n public get data() {\n const node = this[nodeKey];\n return node.data;\n }\n\n public get actived() {\n const node = this[nodeKey];\n return node.actived;\n }\n\n public get expanded() {\n const node = this[nodeKey];\n return node.expanded;\n }\n\n public get checked() {\n const node = this[nodeKey];\n return node.checked;\n }\n\n public get indeterminate() {\n const node = this[nodeKey];\n return node.indeterminate;\n }\n\n public get loading() {\n const node = this[nodeKey];\n return node.loading;\n }\n\n public get disabled() {\n const node = this[nodeKey];\n return node.isDisabled();\n }\n\n /**\n * 获取节点所处层级\n * @return number 节点层级序号\n */\n public getLevel() {\n const node = this[nodeKey];\n return node.getLevel();\n }\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n public getIndex() {\n const node = this[nodeKey];\n return node.getIndex();\n }\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n public isFirst() {\n const node = this[nodeKey];\n return node.isFirst();\n }\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n public isLast() {\n const node = this[nodeKey];\n return node.isLast();\n }\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n public isLeaf() {\n const node = this[nodeKey];\n return node.isLeaf();\n }\n\n /**\n * 在当前节点之前插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertBefore(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertBefore(newData);\n }\n\n /**\n * 在当前节点之后插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n public insertAfter(newData: TypeTreeItem) {\n const node = this[nodeKey];\n return node.insertAfter(newData);\n }\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n public appendData(data: TypeTreeNodeData | TypeTreeNodeData[]) {\n const node = this[nodeKey];\n return node.append(data);\n }\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNodeModel[] 路径节点数组\n */\n public getPath(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getPath();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的父节点\n * @return TreeNodeModel 父节点\n */\n public getParent(): TypeTreeNodeModel {\n const node = this[nodeKey];\n return node.parent?.getModel();\n }\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNodeModel[] 父级节点数组\n */\n public getParents(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getParents();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取本节点的根节点\n * @return TreeNodeModel 根节点\n */\n public getRoot(): TypeTreeNodeModel {\n const node = this[nodeKey];\n const root = node.getRoot();\n return root?.getModel();\n }\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNodeModel[] 兄弟节点数组\n */\n public getSiblings(): TypeTreeNodeModel[] {\n const node = this[nodeKey];\n const nodes = node.getSiblings();\n return nodes.map((item: TreeNode) => item.getModel());\n }\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n public getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n const node = this[nodeKey];\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = node;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = node.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n }\n\n /**\n * 移除节点\n * - 提供 value 参数,移除本节点子节点中的节点\n * - 不提供 value 参数,移除自己\n * @param {string} value 目标节点值\n * @return void\n */\n public remove(value?: TreeNodeValue) {\n const node = this[nodeKey];\n if (!value) {\n node.remove();\n return;\n }\n\n const { tree } = node;\n const targetNode = tree.getNode(value);\n if (!targetNode) {\n log.warnOnce('Tree', `\\`${value}\\` is not exist`);\n return;\n }\n\n const parents = targetNode.getParents();\n const parentValues = parents.map((pnode) => (pnode.value));\n if (parentValues.indexOf(node.value) < 0) {\n log.warnOnce('Tree', `\\`${value}\\` is not a childNode of current node`);\n return;\n }\n targetNode.remove();\n }\n\n /**\n * 设置本节点携带的元数据\n * @param {object} data 节点数据\n * @return void\n */\n public setData(data: OptionData) {\n const node = this[nodeKey];\n // syncAttrs 列举的属性,key 名称可被 tree.config.keys 定义\n // 因此同步状态时需要读取被定义的 key 名称\n // 详细细节可见 https://github.com/Tencent/tdesign-common/issues/655\n const syncAttrs = [\n 'value',\n 'label',\n 'disabled',\n ];\n const cleanData = omit(data, ['children', ...syncAttrs]);\n const { keys } = node.tree.config;\n syncAttrs.forEach((attr: string) => {\n const dataAttrValue = get(data, keys?.[attr] || attr);\n if (!isUndefined(dataAttrValue)) cleanData[attr] = dataAttrValue;\n });\n Object.assign(node.data, cleanData);\n Object.assign(node, cleanData);\n node.update();\n }\n}\n\n// 封装对外暴露的对象\nexport function createNodeModel(node: TreeNode): TypeTreeNodeModel {\n const model = new TreeNodeModel(node);\n return model as TypeTreeNodeModel;\n}\n"],"names":["nodeKey","TreeNodeModel","node","_classCallCheck","_defineProperty","_createClass","key","get","value","label","data","actived","expanded","checked","indeterminate","loading","isDisabled","getLevel","getIndex","isFirst","isLast","isLeaf","insertBefore","newData","insertAfter","appendData","append","getPath","nodes","map","item","getModel","getParent","_node$parent","parent","getParents","getRoot","root","getSiblings","getChildren","deep","childrenModel","children","Array","isArray","length","walk","shift","isBoolean","remove","tree","targetNode","getNode","log","warnOnce","concat","parents","parentValues","pnode","indexOf","setData","syncAttrs","cleanData","omit","keys","config","forEach","attr","dataAttrValue","isUndefined","Object","assign","update","createNodeModel","model"],"mappings":"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"}