{"version":3,"file":"use-data.mjs","sources":["../../../../../../../packages/components/table-v2/src/composables/use-data.ts"],"sourcesContent":["import { computed, ref, unref, watch } from 'vue'\n\nimport type { TableV2Props } from '../table'\nimport type { KeyType } from '../types'\nimport type { UseRowReturn } from './use-row'\n\ntype UseDataProps = {\n  expandedRowKeys: UseRowReturn['expandedRowKeys']\n  lastRenderedRowIndex: UseRowReturn['lastRenderedRowIndex']\n  resetAfterIndex: UseRowReturn['resetAfterIndex']\n}\n\nexport const useData = (\n  props: TableV2Props,\n  { expandedRowKeys, lastRenderedRowIndex, resetAfterIndex }: UseDataProps\n) => {\n  const depthMap = ref<Record<KeyType, number>>({})\n\n  const flattenedData = computed(() => {\n    const depths: Record<KeyType, number> = {}\n    const { data, rowKey } = props\n\n    const _expandedRowKeys = unref(expandedRowKeys)\n\n    if (!_expandedRowKeys || !_expandedRowKeys.length) return data\n\n    const array: any[] = []\n    const keysSet = new Set()\n    _expandedRowKeys.forEach((x) => keysSet.add(x))\n\n    let copy: any[] = data.slice()\n    copy.forEach((x) => (depths[x[rowKey]] = 0))\n    while (copy.length > 0) {\n      const item = copy.shift()!\n\n      array.push(item)\n      if (\n        keysSet.has(item[rowKey]) &&\n        Array.isArray(item.children) &&\n        item.children.length > 0\n      ) {\n        copy = [...item.children, ...copy]\n        item.children.forEach(\n          (child: any) => (depths[child[rowKey]] = depths[item[rowKey]] + 1)\n        )\n      }\n    }\n\n    depthMap.value = depths\n    return array\n  })\n\n  const data = computed(() => {\n    const { data, expandColumnKey } = props\n    return expandColumnKey ? unref(flattenedData) : data\n  })\n\n  watch(data, (val, prev) => {\n    if (val !== prev) {\n      lastRenderedRowIndex.value = -1\n      resetAfterIndex(0, true)\n    }\n  })\n\n  return {\n    data,\n    depthMap,\n  }\n}\n\nexport type UseDataReturn = ReturnType<typeof useData>\n"],"names":["data"],"mappings":";;AAYO,MAAM,UAAU,CACrB,KAAA,EACA,EAAE,eAAiB,EAAA,oBAAA,EAAsB,iBACtC,KAAA;AACH,EAAM,MAAA,QAAA,GAAW,GAA6B,CAAA,EAAE,CAAA,CAAA;AAEhD,EAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,IAAA,MAAM,SAAkC,EAAC,CAAA;AACzC,IAAA,MAAM,EAAE,IAAA,EAAAA,KAAM,EAAA,MAAA,EAAW,GAAA,KAAA,CAAA;AAEzB,IAAM,MAAA,gBAAA,GAAmB,MAAM,eAAe,CAAA,CAAA;AAE9C,IAAI,IAAA,CAAC,gBAAoB,IAAA,CAAC,gBAAiB,CAAA,MAAA;AAAQ,MAAOA,OAAAA,KAAAA,CAAAA;AAE1D,IAAA,MAAM,QAAe,EAAC,CAAA;AACtB,IAAM,MAAA,OAAA,uBAAc,GAAI,EAAA,CAAA;AACxB,IAAA,gBAAA,CAAiB,QAAQ,CAAC,CAAA,KAAM,OAAQ,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA,CAAA;AAE9C,IAAI,IAAA,IAAA,GAAcA,MAAK,KAAM,EAAA,CAAA;AAC7B,IAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,KAAO,MAAO,CAAA,CAAA,CAAE,WAAW,CAAE,CAAA,CAAA;AAC3C,IAAO,OAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACtB,MAAM,MAAA,IAAA,GAAO,KAAK,KAAM,EAAA,CAAA;AAExB,MAAA,KAAA,CAAM,KAAK,IAAI,CAAA,CAAA;AACf,MAAA,IACE,OAAQ,CAAA,GAAA,CAAI,IAAK,CAAA,MAAA,CAAO,CACxB,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA,IAC3B,IAAK,CAAA,QAAA,CAAS,SAAS,CACvB,EAAA;AACA,QAAA,IAAA,GAAO,CAAC,GAAG,IAAK,CAAA,QAAA,EAAU,GAAG,IAAI,CAAA,CAAA;AACjC,QAAA,IAAA,CAAK,QAAS,CAAA,OAAA;AAAA,UACZ,CAAC,KAAgB,KAAA,MAAA,CAAO,MAAM,MAAW,CAAA,CAAA,GAAA,MAAA,CAAO,KAAK,MAAW,CAAA,CAAA,GAAA,CAAA;AAAA,SAClE,CAAA;AAAA,OACF;AAAA,KACF;AAEA,IAAA,QAAA,CAAS,KAAQ,GAAA,MAAA,CAAA;AACjB,IAAO,OAAA,KAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,IAAA,MAAM,EAAE,IAAA,EAAAA,KAAM,EAAA,eAAA,EAAoB,GAAA,KAAA,CAAA;AAClC,IAAO,OAAA,eAAA,GAAkB,KAAM,CAAA,aAAa,CAAIA,GAAAA,KAAAA,CAAAA;AAAA,GACjD,CAAA,CAAA;AAED,EAAM,KAAA,CAAA,IAAA,EAAM,CAAC,GAAA,EAAK,IAAS,KAAA;AACzB,IAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,MAAA,oBAAA,CAAqB,KAAQ,GAAA,CAAA,CAAA,CAAA;AAC7B,MAAA,eAAA,CAAgB,GAAG,IAAI,CAAA,CAAA;AAAA,KACzB;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,QAAA;AAAA,GACF,CAAA;AACF;;;;"}