tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 9.09 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../components/tree/utils/index.ts"],"sourcesContent":["import { camelCase } from 'lodash-es';\nimport { TypeVNode, TypeSetupContext, isVueNext } from './adapt';\nimport {\n TreeProps,\n TypeTreeStore,\n TypeTreeNode,\n TypeMark,\n TypeLineModel,\n TypeTNodeProp,\n TypeGetTNodeOption,\n TypeTargetNode,\n} from '../types';\n\nexport function emitEvent<T extends any[]>(\n props: TreeProps & Record<string, any>,\n context: TypeSetupContext,\n evtName: string,\n ...args: T\n) {\n const apiName = camelCase(`on-${evtName}`);\n evtName.replace(/^on/, '').toLowerCase();\n if (typeof props[apiName] === 'function') {\n props[apiName](...args);\n }\n if (!isVueNext) {\n // vue3 调用 props.onClick 时就已经派发了事件了\n context.emit(evtName, ...args);\n }\n}\n\nexport function getParentsToRoot(element?: HTMLElement, root?: HTMLElement): HTMLElement[] {\n const list = [];\n let el: HTMLElement = element;\n while (el && el.parentNode) {\n list.push(el);\n if (el === root) {\n break;\n }\n el = el.parentNode as HTMLElement;\n }\n return list;\n}\n\nexport function getParentMarks(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark[] {\n const list = getParentsToRoot(element, root);\n return list\n .map((el) => {\n const mark: TypeMark = {\n name,\n value: el?.getAttribute(name) || '',\n el,\n };\n return mark;\n })\n .filter((mark) => mark.value);\n}\n\nexport function getMark(name: string, element?: HTMLElement, root?: HTMLElement): TypeMark {\n const list = getParentMarks(name, element, root);\n const info = list.pop() || null;\n return info;\n}\n\nexport function pathMatchClass(name: string, element?: HTMLElement, root?: HTMLElement): boolean {\n const list = getParentsToRoot(element, root);\n const rs = list.some((el) => el.classList.contains(name));\n return rs;\n}\n\nexport function getTNode(prop: TypeTNodeProp, options: TypeGetTNodeOption): string | TypeVNode {\n let tnode = null;\n let item = null;\n const conf = {\n ...options,\n };\n if (typeof prop === 'function') {\n item = prop(conf.createElement, conf.node?.getModel());\n } else if (typeof prop === 'string') {\n item = prop;\n }\n if (typeof item === 'string') {\n tnode = item;\n } else if (item) {\n tnode = item as TypeVNode;\n }\n return tnode;\n}\n\n// 获取一个节点层级位置的连线模型\nexport function getLineModel(nodes: TypeTreeNode[], node: TypeTreeNode, index: number): TypeLineModel {\n // 标记 [上,右,下,左] 是否有连线\n const lineModel: TypeLineModel = {\n top: false,\n right: false,\n bottom: false,\n left: false,\n };\n\n let nodeChildren = [];\n if (Array.isArray(node.children)) {\n nodeChildren = node.children;\n }\n const childNode = nodes[index - 1] || null;\n const nodeItemIndex = childNode ? childNode.getIndex() : 0;\n\n if (index === 0) {\n lineModel.left = !!node.parent;\n lineModel.bottom = node.children && node.expanded;\n lineModel.right = node.parent && !node.children;\n } else if (index === 1) {\n lineModel.top = true;\n lineModel.right = true;\n lineModel.bottom = nodeItemIndex < nodeChildren.length - 1;\n } else if (nodeItemIndex < nodeChildren.length - 1) {\n lineModel.top = true;\n lineModel.bottom = true;\n }\n\n return lineModel;\n}\n\nexport function isTreeNodeValue(item: unknown): boolean {\n return typeof item === 'string' || typeof item === 'number';\n}\n\nexport function getNode(store: TypeTreeStore, item: TypeTargetNode): TypeTreeNode {\n let node = null;\n let val = null;\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item && isTreeNodeValue(item.value)) {\n val = item.value;\n }\n node = store.getNode(val);\n return node;\n}\n"],"names":["emitEvent","props","context","evtName","apiName","camelCase","concat","replace","toLowerCase","_len","arguments","length","args","Array","_key","apply","isVueNext","emit","getParentsToRoot","element","root","list","el","parentNode","push","getParentMarks","name","map","mark","value","getAttribute","filter","getMark","info","pop","pathMatchClass","rs","some","classList","contains","getTNode","prop","options","tnode","item","conf","_objectSpread","_conf$node","createElement","node","getModel","getLineModel","nodes","index","lineModel","top","right","bottom","left","nodeChildren","isArray","children","childNode","nodeItemIndex","getIndex","parent","expanded","isTreeNodeValue","getNode","store","val"],"mappings":"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"}