{"version":3,"file":"use-filter.mjs","sources":["../../../../../packages/components/tree-select/src/use-filter.ts"],"sourcesContent":["import { shallowReactive, type ShallowRef } from 'vue'\nimport type { TreeSelectProps } from './tree-select'\nimport type { ElTree, TreeNodeData } from '@element-ultra/components/tree'\nimport { getChainValue } from '@element-ultra/utils'\n\nexport default function useFilter(\n  props: TreeSelectProps,\n  tree: ShallowRef<InstanceType<typeof ElTree> | undefined>\n) {\n  const filterer = shallowReactive({\n    /** 查询条件 */\n    query: ''\n  })\n\n  const filterMethod = (query: string, node: TreeNodeData) => {\n    const { labelKey } = props\n    if (!query) return true\n    return getChainValue(node, labelKey)?.includes(query)\n  }\n\n  /** 过滤 */\n  const handleFilter = (v: string) => {\n    tree.value?.filter(v)\n  }\n\n  return {\n    filterer,\n    filterMethod,\n    handleFilter\n  }\n}\n"],"names":[],"mappings":";;;;AAKwB,SAAA,SAAA,CACtB,OACA,IACA,EAAA;AACA,EAAA,MAAM,WAAW,eAAgB,CAAA;AAAA;AAAA,IAE/B,KAAO,EAAA,EAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,YAAA,GAAe,CAAC,KAAA,EAAe,IAAuB,KAAA;AAd9D,IAAA,IAAA,EAAA,CAAA;AAeI,IAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;AACrB,IAAA,IAAI,CAAC,KAAA;AAAO,MAAO,OAAA,IAAA,CAAA;AACnB,IAAA,OAAA,CAAO,EAAc,GAAA,aAAA,CAAA,IAAA,EAAM,QAAQ,CAAA,KAA5B,mBAA+B,QAAS,CAAA,KAAA,CAAA,CAAA;AAAA,GACjD,CAAA;AAGA,EAAM,MAAA,YAAA,GAAe,CAAC,CAAc,KAAA;AArBtC,IAAA,IAAA,EAAA,CAAA;AAsBI,IAAK,CAAA,EAAA,GAAA,IAAA,CAAA,KAAA,KAAL,mBAAY,MAAO,CAAA,CAAA,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}