{"version":3,"file":"effect.mjs","sources":["../../../../components/cascader/utils/effect.ts"],"sourcesContent":["import { isArray, isNumber, cloneDeep, isFunction } from 'lodash-es';\n\nimport type { TreeNode, CascaderContextType, TdCascaderProps, TreeNodeValue, TreeNodeModel } from '../types';\nimport { getFullPathLabel, getTreeValue, isEmptyValues } from './helper';\n\n/**\n * 点击item的副作用\n * @param propsTrigger\n * @param trigger\n * @param node\n * @param cascaderContext\n */\nexport function expandClickEffect(\n  propsTrigger: TdCascaderProps['trigger'],\n  trigger: TdCascaderProps['trigger'],\n  node: TreeNode,\n  cascaderContext: CascaderContextType,\n) {\n  const { checkStrictly, multiple, treeStore, setVisible, setValue, setTreeNodes, setExpand, value, max, valueType } =\n    cascaderContext;\n\n  const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n  if (isDisabled) return;\n  // 点击展开节点，设置展开状态\n  if (propsTrigger === trigger) {\n    const expanded = node.setExpanded(true);\n\n    if (!cascaderContext.inputVal) {\n      treeStore.replaceExpanded(expanded);\n      const nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n      setTreeNodes(nodes);\n    } else {\n      treeStore.refreshNodes();\n    }\n\n    // 多选条件下手动维护expend\n    if (multiple && !cascaderContext.isParentFilterable) {\n      setExpand(expanded);\n    }\n  }\n\n  if (!multiple && (node.isLeaf() || checkStrictly) && trigger === 'click') {\n    treeStore.resetChecked();\n    const checked = node.setChecked(!node.checked);\n    const [value] = checked;\n\n    // 非受控状态下更新状态\n    setValue(valueType === 'single' ? value : node.getPath().map((item) => item.value), 'check', node.getModel());\n\n    // 当 trigger 为 hover 时 ，点击节点一定是关闭 panel 的操作\n    if (!checkStrictly || propsTrigger === 'hover' || cascaderContext.inputVal) {\n      setVisible(false, {});\n    }\n  }\n}\n\n/**\n * 多选状态下选中状态数据变化的副作用\n * @param node\n * @param cascaderContext\n * @returns\n */\nexport function valueChangeEffect(node: TreeNode, cascaderContext: CascaderContextType) {\n  const {\n    disabled,\n    max,\n    inputVal,\n    setVisible,\n    setValue,\n    treeNodes,\n    treeStore,\n    valueType,\n    setInputVal,\n    reserveKeyword,\n  } = cascaderContext;\n\n  if (!node || disabled || node.disabled) {\n    return;\n  }\n  const checked = node.setChecked(!node.isChecked());\n\n  if (isNumber(max) && max < 0) {\n    console.warn('TDesign Warn:', 'max should > 0');\n  }\n\n  if (checked.length > max && isNumber(max) && max > 0) {\n    return;\n  }\n\n  if (checked.length === 0) {\n    const expanded = treeStore.getExpanded();\n    setTimeout(() => {\n      treeStore.replaceExpanded(expanded);\n      treeStore.refreshNodes();\n    }, 0);\n  }\n\n  const isSelectAll = treeNodes.every((item) => checked.indexOf(item.value) > -1);\n\n  if (inputVal && isSelectAll) {\n    setVisible(false, {});\n  }\n\n  // 处理不同数据类型\n  const resValue =\n    valueType === 'single'\n      ? checked\n      : checked.map((val) =>\n          treeStore\n            .getNode(val)\n            .getPath()\n            .map((item) => item.value),\n        );\n\n  setValue(resValue, node.checked ? 'uncheck' : 'check', node.getModel());\n  if (!reserveKeyword) setInputVal('');\n}\n\n/**\n * closeIcon点击副作用\n * @param cascaderContext\n */\nexport function closeIconClickEffect(cascaderContext: CascaderContextType) {\n  const { setVisible, multiple, setValue } = cascaderContext;\n\n  setVisible(false, {});\n\n  setValue(multiple ? [] : '', 'clear');\n}\n\n/**\n * tag 关闭按钮点击副作用\n * @param cascaderContext\n */\nexport function handleRemoveTagEffect(\n  cascaderContext: CascaderContextType,\n  index: number,\n  onRemove: TdCascaderProps['onRemove'],\n) {\n  const { disabled, setValue, value, valueType, treeStore } = cascaderContext;\n  if (disabled) return;\n\n  // index equal to undefined means to click clear button\n  if (index !== undefined) {\n    const newValue = cloneDeep(value) as [];\n    const res = newValue.splice(index, 1);\n    const node = treeStore.getNodes(res[0])[0];\n\n    const checked = node.setChecked(!node.isChecked());\n    // 处理不同数据类型\n    const resValue =\n      valueType === 'single'\n        ? checked\n        : checked.map((val) =>\n            treeStore\n              .getNode(val)\n              .getPath()\n              .map((item) => item.value),\n          );\n    setValue(resValue, 'uncheck', node.getModel());\n    if (isFunction(onRemove)) {\n      onRemove({ value: checked, node: node as any });\n    }\n  } else {\n    if (isFunction(onRemove)) {\n      onRemove({ value, node: undefined });\n    }\n  }\n}\n\n/**\n * input 和 treeStore 变化的副作用\n * @param inputVal\n * @param treeStore\n * @param setTreeNodes\n * @returns\n */\nexport const treeNodesEffect = (\n  inputVal: CascaderContextType['inputVal'],\n  treeStore: CascaderContextType['treeStore'],\n  setTreeNodes: CascaderContextType['setTreeNodes'],\n  filter: CascaderContextType['filter'],\n  isParentFilterable: boolean,\n) => {\n  if (!treeStore) return;\n  let nodes = [];\n  // 通用的过滤方法\n  const filterMethods = (node: TreeNode) => {\n    if (!node.isLeaf() && !isParentFilterable) return false;\n    if (isFunction(filter)) {\n      return filter(`${inputVal}`, node as TreeNodeModel & TreeNode);\n    }\n    const fullPathLabel = getFullPathLabel(node, '');\n    return fullPathLabel.includes(`${inputVal}`);\n  };\n\n  if (inputVal) {\n    nodes = treeStore.nodes.filter(filterMethods);\n  } else {\n    nodes = treeStore.getNodes().filter((node: TreeNode) => node.visible);\n  }\n  setTreeNodes(nodes);\n};\n\n/**\n * 计算 expend 的值\n * @param treeStore\n * @param treeValue\n * @returns TreeNodeValue[]\n */\nexport const calculateExpand = (\n  treeStore: CascaderContextType['treeStore'],\n  treeValue: TreeNodeValue[],\n): TreeNodeValue[] => {\n  const expandedMap = new Map();\n  const [val] = treeValue;\n\n  if (!isEmptyValues(val)) {\n    expandedMap.set(val, true);\n    const node = treeStore.getNode(val);\n    if (!node) {\n      treeStore.refreshNodes();\n      return [];\n    }\n    node.getParents().forEach((tn: TreeNode) => {\n      expandedMap.set(tn.value, true);\n    });\n  }\n\n  return Array.from(expandedMap.keys());\n};\n\n/**\n * 初始化展开阶段与展开状态副作用\n * @param treeStore\n * @param treeValue\n * @param expend\n */\nexport const treeStoreExpendEffect = (\n  treeStore: CascaderContextType['treeStore'],\n  value: CascaderContextType['value'],\n  expend: TreeNodeValue[],\n) => {\n  const treeValue = getTreeValue(value);\n\n  if (!treeStore) return;\n\n  // init expanded, 无expend状态时设置\n  if (isArray(treeValue) && expend.length === 0) {\n    const expandedArr = calculateExpand(treeStore, treeValue);\n    if (expandedArr.length > 0) {\n      treeStore.replaceExpanded(expandedArr);\n    }\n  }\n\n  // 本地维护 expend，更加可控，不需要依赖于 tree 的状态\n  if (treeStore.getExpanded() && expend.length) {\n    treeStore.replaceExpanded(expend);\n  }\n\n  treeStore.refreshNodes();\n};\n"],"names":["expandClickEffect","propsTrigger","trigger","node","cascaderContext","checkStrictly","multiple","treeStore","setVisible","setValue","setTreeNodes","setExpand","value","max","valueType","isDisabled","disabled","length","expanded","setExpanded","inputVal","replaceExpanded","nodes","getNodes","filter","visible","refreshNodes","isParentFilterable","isLeaf","resetChecked","checked","setChecked","_checked","_slicedToArray","getPath","map","item","getModel","valueChangeEffect","treeNodes","setInputVal","reserveKeyword","isChecked","isNumber","console","warn","getExpanded","setTimeout","isSelectAll","every","indexOf","resValue","val","getNode","closeIconClickEffect","handleRemoveTagEffect","index","onRemove","newValue","cloneDeep","res","splice","isFunction","treeNodesEffect","filterMethods","concat","fullPathLabel","getFullPathLabel","includes","calculateExpand","treeValue","expandedMap","Map","_treeValue","isEmptyValues","set","getParents","forEach","tn","Array","from","keys","treeStoreExpendEffect","expend","getTreeValue","isArray","expandedArr"],"mappings":"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"}