{"version":3,"file":"index.mjs","sources":["../../../../components/cascader/hooks/index.ts"],"sourcesContent":["import { Ref, reactive, computed, toRefs, watch, nextTick } from 'vue';\nimport { isEqual, isString, isFunction } from 'lodash-es';\n\nimport TreeStore from '@tdesign/common-js/tree/tree-store';\nimport { useVModel, useDisabled, useDefaultValue } from '@tdesign/shared-hooks';\n\nimport {\n  getTreeValue,\n  getCascaderValue,\n  isEmptyValues,\n  isValueInvalid,\n  treeNodesEffect,\n  treeStoreExpendEffect,\n} from '../utils';\n\nimport {\n  TreeNode,\n  TreeNodeValue,\n  TdCascaderProps,\n  TreeNodeModel,\n  CascaderChangeSource,\n  CascaderValue,\n  TreeOptionData,\n} from '../types';\n\n// 全局状态\nexport const useContext = (\n  props: TdCascaderProps,\n  setInnerValue: TdCascaderProps['onChange'],\n  innerPopupVisible: Ref<TdCascaderProps['popupVisible']>,\n  setPopupVisible: TdCascaderProps['onPopupVisibleChange'],\n) => {\n  const statusContext = reactive({\n    treeStore: null,\n    inputVal: null,\n    scopeVal: undefined,\n    treeNodes: [],\n    expend: [],\n  });\n\n  // 部分模式下需要允许父节点被搜索选择 valueMode = 'parentFirst' 和 checkStrictly\n  const isParentFilterable = computed(\n    () => (props.valueMode === 'parentFirst' || props.checkStrictly) && statusContext.inputVal,\n  );\n\n  return {\n    statusContext,\n    cascaderContext: computed(() => {\n      const {\n        size,\n        checkStrictly,\n        lazy,\n        multiple,\n        filterable,\n        clearable,\n        checkProps,\n        max,\n        disabled,\n        showAllLevels,\n        minCollapsedNum,\n        valueType,\n        modelValue,\n        valueMode,\n        reserveKeyword,\n      } = props;\n      return {\n        value: statusContext.scopeVal,\n        size,\n        checkStrictly,\n        lazy,\n        multiple,\n        filterable,\n        clearable,\n        checkProps,\n        max,\n        disabled,\n        showAllLevels,\n        minCollapsedNum,\n        valueType,\n        valueMode,\n        reserveKeyword,\n        visible: innerPopupVisible.value,\n        isParentFilterable: isParentFilterable.value,\n        ...statusContext,\n        setTreeNodes: (nodes: TreeNode[]) => {\n          statusContext.treeNodes = nodes;\n        },\n        setValue: (val: CascaderValue, source: CascaderChangeSource, node?: TreeNodeModel) => {\n          if (isEqual(val, modelValue)) return;\n          setInnerValue(val, { source, node });\n        },\n        setVisible: setPopupVisible,\n        setInputVal: (val: string) => {\n          statusContext.inputVal = val;\n        },\n        setExpand: (val: TreeNodeValue[]) => {\n          statusContext.expend = val;\n        },\n      };\n    }),\n  };\n};\n\n// 内聚组件核心的副作用与状态处理\nexport const useCascaderContext = (props: TdCascaderProps) => {\n  const isDisabled = useDisabled();\n  const { value, modelValue, popupVisible } = toRefs(props);\n  const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n  const [innerPopupVisible, setPopupVisible] = useDefaultValue(\n    popupVisible,\n    false,\n    props.onPopupVisibleChange,\n    'popupVisible',\n  );\n  const { cascaderContext, statusContext } = useContext(props, setInnerValue, innerPopupVisible, setPopupVisible);\n\n  const isFilterable = computed(() => {\n    return Boolean(props.filterable || isFunction(props.filter));\n  });\n\n  // 更新treeNodes\n  const updatedTreeNodes = () => {\n    const { inputVal, treeStore, setTreeNodes, isParentFilterable } = cascaderContext.value;\n    treeNodesEffect(inputVal, treeStore, setTreeNodes, props.filter, isParentFilterable);\n  };\n\n  // 更新节点展开状态\n  const updateExpand = () => {\n    const { value, treeStore } = cascaderContext.value;\n    const { expend } = statusContext;\n    treeStoreExpendEffect(treeStore, value, expend);\n    treeStore.replaceChecked(getTreeValue(value));\n  };\n\n  watch(\n    () => props.options,\n    () => {\n      const { options, keys = {}, checkStrictly, lazy, load, valueMode } = props;\n      const { treeStore } = statusContext;\n\n      if (!options.length && !treeStore) return;\n\n      if (!treeStore) {\n        const store = new TreeStore({\n          keys: {\n            ...keys,\n            children: isString(keys.children) ? keys.children : 'children',\n          },\n          checkable: true,\n          expandMutex: true,\n          expandParent: true,\n          lazy,\n          load,\n          valueMode,\n          checkStrictly,\n          onLoad: () => {\n            nextTick(() => {\n              store.refreshNodes();\n              updatedTreeNodes();\n            });\n          },\n        });\n        store.append(options);\n        statusContext.treeStore = store;\n      } else {\n        treeStore.reload(options);\n        treeStore.refreshNodes();\n      }\n      updateExpand();\n      updatedTreeNodes();\n    },\n    { immediate: true, deep: true },\n  );\n\n  // tree插件配置变化\n  watch(\n    () => {\n      const { checkStrictly, lazy, load, valueMode } = props;\n      return JSON.stringify({\n        valueMode,\n        checkStrictly,\n        lazy,\n        load,\n      });\n    },\n    () => {\n      const { treeStore } = statusContext;\n      if (!treeStore) return;\n      const { checkStrictly, lazy, load, valueMode } = props;\n      const treeProps = {\n        checkStrictly,\n        disable: isDisabled.value,\n        load,\n        lazy,\n        valueMode,\n      };\n      treeStore.setConfig(treeProps);\n    },\n    { immediate: true },\n  );\n\n  watch(\n    innerValue,\n    () => {\n      // 初始化判断 value 逻辑\n      const { setValue, multiple, valueType } = cascaderContext.value;\n\n      if (isValueInvalid(innerValue.value, cascaderContext.value)) {\n        setValue(multiple ? [] : '', 'invalid-value');\n      }\n\n      if (!isEmptyValues(innerValue.value)) {\n        statusContext.scopeVal = getCascaderValue(innerValue.value, valueType, multiple);\n      } else {\n        statusContext.scopeVal = multiple ? [] : '';\n      }\n\n      if (!statusContext.treeStore) return;\n      updateExpand();\n      updatedTreeNodes();\n    },\n    { immediate: true },\n  );\n\n  watch(\n    () => innerPopupVisible.value && isFilterable.value,\n    (visible) => {\n      const { setInputVal } = cascaderContext.value;\n      if (visible) {\n        setInputVal('');\n      }\n    },\n  );\n\n  watch(\n    () => statusContext.inputVal,\n    () => {\n      updatedTreeNodes();\n    },\n  );\n\n  const getCascaderItems = (arrValue: CascaderValue[]) => {\n    const options: TreeOptionData[] = [];\n    arrValue.forEach((value) => {\n      const nodes = statusContext.treeStore?.getNodes(value);\n      nodes && nodes[0] && options.push(nodes[0].data);\n    });\n    return options;\n  };\n\n  return {\n    cascaderContext,\n    isFilterable,\n    innerValue,\n    getCascaderItems,\n  };\n};\n"],"names":["useContext","props","setInnerValue","innerPopupVisible","setPopupVisible","statusContext","reactive","treeStore","inputVal","scopeVal","treeNodes","expend","isParentFilterable","computed","valueMode","checkStrictly","cascaderContext","size","lazy","multiple","filterable","clearable","checkProps","max","disabled","showAllLevels","minCollapsedNum","valueType","modelValue","reserveKeyword","_objectSpread","value","visible","setTreeNodes","nodes","setValue","val","source","node","isEqual","setVisible","setInputVal","setExpand","useCascaderContext","isDisabled","useDisabled","_toRefs","toRefs","popupVisible","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","_useDefaultValue","useDefaultValue","onPopupVisibleChange","_useDefaultValue2","_useContext","isFilterable","Boolean","isFunction","filter","updatedTreeNodes","_cascaderContext$valu","treeNodesEffect","updateExpand","_cascaderContext$valu2","treeStoreExpendEffect","replaceChecked","getTreeValue","watch","options","keys","_props$keys","load","length","store","TreeStore","children","isString","checkable","expandMutex","expandParent","onLoad","nextTick","refreshNodes","append","reload","immediate","deep","JSON","stringify","treeProps","disable","setConfig","_cascaderContext$valu3","isValueInvalid","isEmptyValues","getCascaderValue","getCascaderItems","arrValue","forEach","_statusContext$treeSt","getNodes","push","data"],"mappings":"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"}