{"version":3,"file":"helper.mjs","sources":["../../../src/cascader/core/helper.ts"],"sourcesContent":["import isNumber from 'lodash/isNumber';\nimport isObject from 'lodash/isObject';\nimport isArray from 'lodash/isArray';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n  TreeNode,\n  CascaderContextType,\n  TdCascaderProps,\n  CascaderValue,\n  TreeNodeValue,\n  TreeOptionData,\n} from '../interface';\n\n/**\n * 单选状态下内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getSingleContent(cascaderContext: CascaderContextType): string {\n  const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n  if (multiple || (value !== 0 && !value)) return '';\n\n  if (isArray(value)) return '';\n  const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n  if (!(node && node.length)) {\n    return value as string;\n  }\n  const path = node && node[0].getPath();\n  if (path && path.length) {\n    return showAllLevels ? path.map((node: TreeNode) => node.label).join(' / ') : path[path.length - 1].label;\n  }\n  return value as string;\n}\n\n/**\n * 多选状态下选中内容\n * @param isHover\n * @param cascaderContext\n * @returns\n */\nexport function getMultipleContent(cascaderContext: CascaderContextType) {\n  const { value, multiple, treeStore, showAllLevels } = cascaderContext;\n\n  if (!multiple) return [];\n  if (multiple && !isArray(value)) return [];\n\n  const node = treeStore && treeStore.getNodes(value as TreeNodeValue | TreeNode);\n  if (!node) return [];\n\n  return (value as TreeNodeValue[])\n    .map((item: TreeNodeValue) => {\n      const node = treeStore.getNodes(item);\n      return showAllLevels ? getFullPathLabel(node[0]) : node[0].label;\n    })\n    .filter((item) => !!item);\n}\n\n/**\n * 面板数据计算方法\n * @param treeNodes\n * @returns\n */\nexport function getPanels(treeNodes: CascaderContextType['treeNodes']) {\n  const panels: TreeNode[][] = [];\n  treeNodes.forEach((node: TreeNode) => {\n    if (panels[node.level]) {\n      panels[node.level].push(node);\n    } else {\n      panels[node.level] = [node];\n    }\n  });\n  return panels;\n}\n\n/**\n * 获取node的全部路径\n * @param node\n * @returns\n */\nexport function getFullPathLabel(node: TreeNode, separator = '/') {\n  return node\n    ?.getPath()\n    .map((node: TreeNode) => node.label)\n    .join(separator);\n}\n\n/**\n * treeValue计算方法\n * @param value\n * @returns\n */\nexport const getTreeValue = (value: CascaderContextType['value']) => {\n  let treeValue: TreeNodeValue[] = [];\n  if (isArray(value)) {\n    if (value.length > 0 && isObject(value[0])) {\n      treeValue = (value as TreeOptionData[]).map((val) => val.value);\n    } else if (value.length) {\n      treeValue = value as TreeNodeValue[];\n    }\n  } else if (value) {\n    if (isObject(value)) {\n      treeValue = [(value as TreeOptionData).value];\n    } else {\n      treeValue = [value];\n    }\n  }\n  return treeValue;\n};\n\n/**\n * 按数据类型计算通用数值\n * @param value\n * @param showAllLevels\n * @param multiple\n * @returns\n */\nexport const getCascaderValue = (value: CascaderValue, valueType: TdCascaderProps['valueType'], multiple: boolean) => {\n  if (valueType === 'single') {\n    return value;\n  }\n  if (multiple) {\n    return (value as Array<CascaderValue>).map((item: TreeNodeValue[]) => item[item.length - 1]);\n  }\n  return value[(value as Array<CascaderValue>).length - 1];\n};\n\n/**\n * 空值校验\n * 补充value为Number时的空值校验逻辑，排除NaN\n * @param value\n * @returns\n */\nexport function isEmptyValues(value: unknown): boolean {\n  if (isNumber(value) && !isNaN(value)) return false;\n  return isEmpty(value);\n}\n\n/**\n * 初始化数据校验\n * @param value\n * @param cascaderContext\n * @returns boolean\n */\nexport function isValueInvalid(value: CascaderValue, cascaderContext: CascaderContextType) {\n  const { multiple, showAllLevels } = cascaderContext;\n  return (multiple && !isArray(value)) || (!multiple && isArray(value) && !showAllLevels);\n}\n"],"names":["isArray","node","treeNodes","isObject","treeValue","isNumber"],"mappings":"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"}