UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.89 kB
{"version":3,"file":"expand.mjs","sources":["../../../../../../../packages/components/table/src/store/expand.ts"],"sourcesContent":["import { getCurrentInstance, ref } from 'vue'\nimport { getKeysMap, getRowIdentity, toggleRowStatus } from '../util'\n\nimport type { Ref } from 'vue'\nimport type { WatcherPropsData } from '.'\nimport type { DefaultRow, Table } from '../table/defaults'\n\nfunction useExpand<T extends DefaultRow>(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 // TODO:这里的代码可以优化\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(\n expandRows.value,\n row,\n expanded,\n undefined,\n undefined,\n undefined,\n watcherData.rowKey.value\n )\n if (changed) {\n instance.emit('expand-change', row, expandRows.value.slice())\n }\n }\n\n const setExpandRowKeys = (rowKeys: (string | number)[]) => {\n instance.store.assertRowKey()\n // TODO:这里的代码可以优化\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) => {\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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"}