tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 5.15 kB
Source Map (JSON)
{"version":3,"file":"useTreeEvents.mjs","sources":["../../../../components/tree/hooks/useTreeEvents.ts"],"sourcesContent":["import { TreeProps, TypeTreeState, TypeEventState } from '../types';\nimport { getMark, emitEvent } from '../utils';\nimport useTreeAction from './useTreeAction';\n\n// tree 组件一般事件处理\nexport default function useTreeEvents(state: TypeTreeState) {\n const treeState = state;\n const { props, context } = treeState;\n const { toggleExpanded, toggleActived, toggleChecked } = useTreeAction(state);\n\n const handleClick = (evtState: TypeEventState) => {\n const { mouseEvent, event, node } = evtState;\n if (!node || !mouseEvent) return;\n\n // 用于向内部方法传递事件对象\n treeState.mouseEvent = mouseEvent;\n\n let shouldExpand = props.expandOnClickNode;\n let shouldActive = !props.disabled && !node.disabled && node.isActivable();\n let isRightClick = false;\n // 给节点添加属性 trigger=\"expand,active\", ignore=\"expand,active\"\n // 来确认或者屏蔽动作\n ['trigger', 'ignore'].forEach((markName) => {\n const mark = getMark(markName, event.target as HTMLElement, event.currentTarget as HTMLElement);\n const markValue = mark?.value || '';\n if (markValue.indexOf('expand') >= 0) {\n // 路径节点包含了 trigger=\"expand\" ignore=\"expand\"\n if (markName === 'trigger') {\n shouldExpand = true;\n isRightClick = true;\n } else if (markName === 'ignore') {\n shouldExpand = false;\n }\n }\n if (markValue.indexOf('active') >= 0) {\n // 路径节点包含了 trigger=\"active\" ignore=\"active\"\n if (markName === 'ignore') {\n shouldActive = false;\n }\n }\n });\n\n if (shouldExpand) {\n toggleExpanded(node);\n if (isRightClick) return;\n }\n\n if (shouldActive) {\n toggleActived(node);\n }\n\n const evtCtx = {\n node: node.getModel(),\n e: mouseEvent,\n };\n emitEvent<Parameters<TreeProps['onClick']>>(props, context, 'click', evtCtx);\n\n treeState.mouseEvent = null;\n };\n\n const handleChange = (evtState: TypeEventState, ctx: { e: Event }) => {\n const { disabled } = props;\n const { node } = evtState;\n if (!node || disabled || node.disabled || !node.isCheckable()) {\n return;\n }\n toggleChecked(node, ctx);\n };\n\n return {\n handleChange,\n handleClick,\n };\n}\n"],"names":["useTreeEvents","state","treeState","props","context","_useTreeAction","useTreeAction","toggleExpanded","toggleActived","toggleChecked","handleClick","evtState","mouseEvent","event","node","shouldExpand","expandOnClickNode","shouldActive","disabled","isActivable","isRightClick","forEach","markName","mark","getMark","target","currentTarget","markValue","value","indexOf","evtCtx","getModel","e","emitEvent","handleChange","ctx","isCheckable"],"mappings":"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"}