{"version":3,"file":"useLazyKVMap.cjs","sources":["../../../../../../../packages/components/table/src/hooks/useLazyKVMap.ts"],"sourcesContent":["import type { Key } from '@antdv/types';\nimport type { Ref } from 'vue';\nimport type { GetRowKey } from '../interface';\nimport { isArray } from '@antdv/utils';\nimport { shallowRef, watch } from 'vue';\n\ninterface MapCache<RecordType> {\n  kvMap?: Map<Key, RecordType>\n}\n\nexport default function useLazyKVMap<RecordType>(\n  dataRef: Ref<readonly RecordType[]>,\n  childrenColumnNameRef: Ref<string>,\n  getRowKeyRef: Ref<GetRowKey<RecordType>>,\n) {\n  const mapCacheRef = shallowRef<MapCache<RecordType>>({});\n\n  watch(\n    [dataRef, childrenColumnNameRef, getRowKeyRef],\n    () => {\n      const kvMap = new Map<Key, RecordType>();\n      const getRowKey = getRowKeyRef.value;\n      const childrenColumnName = childrenColumnNameRef.value;\n\n      function dig(records: readonly RecordType[]) {\n        if (!isArray(records)) return;\n        records.forEach((record, index) => {\n          const rowKey = getRowKey(record, index);\n          kvMap.set(rowKey, record);\n\n          if (record && typeof record === 'object' && childrenColumnName in record)\n            dig((record as any)[childrenColumnName] || []);\n        });\n      }\n\n      dig(dataRef.value);\n\n      mapCacheRef.value = {\n        kvMap,\n      };\n    },\n    {\n      deep: true,\n      immediate: true,\n    },\n  );\n  function getRecordByKey(key: Key): RecordType {\n    return mapCacheRef.value.kvMap!.get(key)!;\n  }\n\n  return [getRecordByKey];\n}\n"],"names":["shallowRef","watch","isArray"],"mappings":";;;;;;;;AAUwB,SAAA,YAAA,CACtB,OACA,EAAA,qBAAA,EACA,YACA,EAAA;AACA,EAAM,MAAA,WAAA,GAAcA,cAAiC,CAAA,EAAE,CAAA,CAAA;AAEvD,EAAAC,SAAA;AAAA,IACE,CAAC,OAAS,EAAA,qBAAA,EAAuB,YAAY,CAAA;AAAA,IAC7C,MAAM;AACJ,MAAM,MAAA,KAAA,uBAAY,GAAqB,EAAA,CAAA;AACvC,MAAA,MAAM,YAAY,YAAa,CAAA,KAAA,CAAA;AAC/B,MAAA,MAAM,qBAAqB,qBAAsB,CAAA,KAAA,CAAA;AAEjD,MAAA,SAAS,IAAI,OAAgC,EAAA;AAC3C,QAAI,IAAA,CAACC,WAAQ,OAAO,CAAA;AAAG,UAAA,OAAA;AACvB,QAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAU,KAAA;AACjC,UAAM,MAAA,MAAA,GAAS,SAAU,CAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AACtC,UAAM,KAAA,CAAA,GAAA,CAAI,QAAQ,MAAM,CAAA,CAAA;AAExB,UAAA,IAAI,MAAU,IAAA,OAAO,MAAW,KAAA,QAAA,IAAY,kBAAsB,IAAA,MAAA;AAChE,YAAA,GAAA,CAAK,MAAe,CAAA,kBAAkB,CAAK,IAAA,EAAE,CAAA,CAAA;AAAA,SAChD,CAAA,CAAA;AAAA,OACH;AAEA,MAAA,GAAA,CAAI,QAAQ,KAAK,CAAA,CAAA;AAEjB,MAAA,WAAA,CAAY,KAAQ,GAAA;AAAA,QAClB,KAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA;AAAA,MACE,IAAM,EAAA,IAAA;AAAA,MACN,SAAW,EAAA,IAAA;AAAA,KACb;AAAA,GACF,CAAA;AACA,EAAA,SAAS,eAAe,GAAsB,EAAA;AAC5C,IAAA,OAAO,WAAY,CAAA,KAAA,CAAM,KAAO,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAAA,GACzC;AAEA,EAAA,OAAO,CAAC,cAAc,CAAA,CAAA;AACxB;;;;"}