{"version":3,"file":"use-selected-path.mjs","sources":["../../../../../../packages/components/cascader/src/use-selected-path.ts"],"sourcesContent":["import { computed, ref } from 'vue'\nimport type { Ref } from 'vue'\nimport type { CascaderNode } from './type'\n\nexport const useSelectedPath = (\n  dataTree: Ref<CascaderNode[]>,\n  {\n    nodesMap,\n    expandChild\n  }: {\n    nodesMap: Map<string, CascaderNode>\n    expandChild: Ref<boolean>\n  }\n) => {\n  // select node key\n  const selectedPath = ref<string[]>([])\n\n  // active node key\n  const activeKey = ref<string>()\n\n  // cascader panel 渲染二维数组\n  const renderColumns = computed(() => {\n    const columns: CascaderNode[][] = [dataTree.value]\n    for (const key of selectedPath.value) {\n      const option = nodesMap.get(key)\n      if (option?.hasChildren) {\n        columns.push(option.children!)\n      }\n    }\n    return columns\n  })\n\n  const getTargetNode = (nodeKey?: string) => {\n    let node = nodeKey ? nodesMap.get(nodeKey) : undefined\n    if (expandChild.value) {\n      while (node && node.children && node.children.length > 0) {\n        node = node.children[0]\n      }\n    }\n    return node\n  }\n\n  const setSelectedPath = (nodeKey?: string) => {\n    const node = getTargetNode(nodeKey)\n    selectedPath.value = node?.pathNodes.map((n) => n.key) ?? []\n  }\n\n  const setActiveKey = (nodeKey?: string) => {\n    activeKey.value = nodeKey\n  }\n\n  return {\n    renderColumns,\n    selectedPath,\n    setSelectedPath,\n    activeKey,\n    setActiveKey\n  }\n}\n"],"names":[],"mappings":";;AAIa,MAAA,eAAA,GAAkB,CAC7B,QACA,EAAA;AAAA,EACE,QAAA;AAAA,EACA,WAAA;AACF,CAIG,KAAA;AAEH,EAAM,MAAA,YAAA,GAAe,GAAc,CAAA,EAAE,CAAA,CAAA;AAGrC,EAAA,MAAM,YAAY,GAAY,EAAA,CAAA;AAG9B,EAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,IAAM,MAAA,OAAA,GAA4B,CAAC,QAAA,CAAS,KAAK,CAAA,CAAA;AACjD,IAAW,KAAA,MAAA,GAAA,IAAO,aAAa,KAAO,EAAA;AACpC,MAAM,MAAA,MAAA,GAAS,QAAS,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAC/B,MAAA,IAAI,iCAAQ,WAAa,EAAA;AACvB,QAAQ,OAAA,CAAA,IAAA,CAAK,OAAO,QAAS,CAAA,CAAA;AAAA,OAC/B;AAAA,KACF;AACA,IAAO,OAAA,OAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,aAAA,GAAgB,CAAC,OAAqB,KAAA;AAC1C,IAAA,IAAI,IAAO,GAAA,OAAA,GAAU,QAAS,CAAA,GAAA,CAAI,OAAO,CAAI,GAAA,KAAA,CAAA,CAAA;AAC7C,IAAA,IAAI,YAAY,KAAO,EAAA;AACrB,MAAA,OAAO,QAAQ,IAAK,CAAA,QAAA,IAAY,IAAK,CAAA,QAAA,CAAS,SAAS,CAAG,EAAA;AACxD,QAAO,IAAA,GAAA,IAAA,CAAK,SAAS,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KACF;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,OAAqB,KAAA;AA1ChD,IAAA,IAAA,EAAA,CAAA;AA2CI,IAAM,MAAA,IAAA,GAAO,cAAc,OAAO,CAAA,CAAA;AAClC,IAAa,YAAA,CAAA,KAAA,GAAA,CAAQ,kCAAM,SAAU,CAAA,GAAA,CAAI,CAAC,CAAM,KAAA,CAAA,CAAE,GAA7B,CAAA,KAAA,IAAA,GAAA,EAAA,GAAqC,EAAC,CAAA;AAAA,GAC7D,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,CAAC,OAAqB,KAAA;AACzC,IAAA,SAAA,CAAU,KAAQ,GAAA,OAAA,CAAA;AAAA,GACpB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,aAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}