tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 8.99 kB
Source Map (JSON)
{"version":3,"file":"useTreeAction.mjs","sources":["../../../../components/tree/hooks/useTreeAction.ts"],"sourcesContent":["import { usePrefixClass } from '../utils/adapt';\nimport {\n TreeNodeValue,\n TypeTreeState,\n TypeTargetNode,\n TypeExpandEventContext,\n TypeActiveEventContext,\n TypeChangeEventContext,\n} from '../types';\nimport { getNode, pathMatchClass } from '../utils';\n\n// tree 组件节点状态设置\nexport default function useTreeAction(state: TypeTreeState) {\n const treeState = state;\n const { store } = treeState;\n const componentName = usePrefixClass('tree').value;\n\n const [tValue, setTValue] = state.vmValue;\n const [tActived, setTActived] = state.vmActived;\n const [tExpanded, setTExpanded] = state.vmExpanded;\n\n const setExpanded = (item: TypeTargetNode, isExpanded: boolean): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeExpandEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n const target = mouseEvent.target as HTMLElement;\n const currentTarget = mouseEvent.currentTarget as HTMLElement;\n if (pathMatchClass(`${componentName}__icon`, target, currentTarget)) {\n evtCtx.trigger = 'icon-click';\n }\n }\n const expanded = node.setExpanded(isExpanded, {\n directly: true,\n });\n setTExpanded(expanded, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceExpanded((tExpanded.value || []) as TreeNodeValue[]);\n }\n return expanded;\n };\n\n const toggleExpanded = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n\n if (!node.children) return;\n\n return setExpanded(node, !node.isExpanded());\n };\n\n const setActived = (item: TypeTargetNode, isActived: boolean) => {\n const node = getNode(store, item);\n const mouseEvent = treeState.mouseEvent as MouseEvent;\n const evtCtx: TypeActiveEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const actived = node.setActived(isActived, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTActived(actived, evtCtx);\n if (evtCtx.trigger !== 'setItem') {\n store.replaceActived((tActived.value || []) as TreeNodeValue[]);\n }\n return actived;\n };\n\n const toggleActived = (item: TypeTargetNode): TreeNodeValue[] => {\n const node = getNode(store, item);\n return setActived(node, !node.isActived());\n };\n\n const setChecked = (item: TypeTargetNode, isChecked: boolean, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n const mouseEvent = ctx?.e as MouseEvent;\n const evtCtx: TypeChangeEventContext = {\n node: node.getModel(),\n e: mouseEvent,\n trigger: 'setItem',\n };\n if (mouseEvent) {\n evtCtx.trigger = 'node-click';\n }\n const checked = node.setChecked(isChecked, {\n isAction: evtCtx.trigger === 'node-click',\n directly: true,\n });\n setTValue(checked, evtCtx);\n // 这是针对受控执行的操作,如果 props.value 未变更,则执行还原操作\n if (evtCtx.trigger !== 'setItem') {\n store.replaceChecked((tValue.value || []) as TreeNodeValue[]);\n }\n return checked;\n };\n\n const toggleChecked = (item: TypeTargetNode, ctx: { e: Event }): TreeNodeValue[] => {\n const node = getNode(store, item);\n if (node.isIndeterminate()) {\n const expectState = node.hasEnableUnCheckedChild();\n return setChecked(node, expectState, ctx);\n }\n return setChecked(node, !node.isChecked(), ctx);\n };\n\n return {\n setExpanded,\n toggleExpanded,\n setActived,\n toggleActived,\n setChecked,\n toggleChecked,\n };\n}\n"],"names":["useTreeAction","state","treeState","store","componentName","usePrefixClass","value","_state$vmValue","_slicedToArray","vmValue","tValue","setTValue","_state$vmActived","vmActived","tActived","setTActived","_state$vmExpanded","vmExpanded","tExpanded","setTExpanded","setExpanded","item","isExpanded","node","getNode","mouseEvent","evtCtx","getModel","e","trigger","target","currentTarget","pathMatchClass","concat","expanded","directly","replaceExpanded","toggleExpanded","children","setActived","isActived","actived","isAction","replaceActived","toggleActived","setChecked","isChecked","ctx","checked","replaceChecked","toggleChecked","isIndeterminate","expectState","hasEnableUnCheckedChild"],"mappings":"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"}