{"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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"}