{"version":3,"file":"expand.mjs","sources":["../../../../../../../packages/components/table/src/store/expand.ts"],"sourcesContent":["// @ts-nocheck\nimport { getCurrentInstance, ref } from 'vue'\nimport { getKeysMap, getRowIdentity, toggleRowStatus } from '../util'\n\nimport type { Ref } from 'vue'\nimport type { WatcherPropsData } from '.'\nimport type { Table } from '../table/defaults'\n\nfunction useExpand<T>(watcherData: WatcherPropsData<T>) {\n  const instance = getCurrentInstance() as Table<T>\n  const defaultExpandAll = ref(false)\n  const expandRows: Ref<T[]> = ref([])\n  const updateExpandRows = () => {\n    const data = watcherData.data.value || []\n    const rowKey = watcherData.rowKey.value\n    if (defaultExpandAll.value) {\n      expandRows.value = data.slice()\n    } else if (rowKey) {\n      const expandRowsMap = getKeysMap(expandRows.value, rowKey)\n      expandRows.value = data.reduce((prev: T[], row: T) => {\n        const rowId = getRowIdentity(row, rowKey)\n        const rowInfo = expandRowsMap[rowId]\n        if (rowInfo) {\n          prev.push(row)\n        }\n        return prev\n      }, [])\n    } else {\n      expandRows.value = []\n    }\n  }\n\n  const toggleRowExpansion = (row: T, expanded?: boolean) => {\n    const changed = toggleRowStatus(expandRows.value, row, expanded)\n    if (changed) {\n      instance.emit('expand-change', row, expandRows.value.slice())\n    }\n  }\n\n  const setExpandRowKeys = (rowKeys: string[]) => {\n    instance.store.assertRowKey()\n    const data = watcherData.data.value || []\n    const rowKey = watcherData.rowKey.value\n    const keysMap = getKeysMap(data, rowKey)\n    expandRows.value = rowKeys.reduce((prev: T[], cur: string) => {\n      const info = keysMap[cur]\n      if (info) {\n        prev.push(info.row)\n      }\n      return prev\n    }, [])\n  }\n\n  const isRowExpanded = (row: T): boolean => {\n    const rowKey = watcherData.rowKey.value\n    if (rowKey) {\n      const expandMap = getKeysMap(expandRows.value, rowKey)\n      return !!expandMap[getRowIdentity(row, rowKey)]\n    }\n    return expandRows.value.includes(row)\n  }\n  return {\n    updateExpandRows,\n    toggleRowExpansion,\n    setExpandRowKeys,\n    isRowExpanded,\n    states: {\n      expandRows,\n      defaultExpandAll,\n    },\n  }\n}\n\nexport default useExpand\n"],"names":[],"mappings":"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"}