| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { getCurrentInstance, ref } from 'vue';
- import { getKeysMap, getRowIdentity, toggleRowStatus } from '../util.mjs';
- function useExpand(watcherData) {
- const instance = getCurrentInstance();
- const defaultExpandAll = ref(false);
- const expandRows = ref([]);
- const updateExpandRows = () => {
- const data = watcherData.data.value || [];
- const rowKey = watcherData.rowKey.value;
- if (defaultExpandAll.value) {
- expandRows.value = data.slice();
- } else if (rowKey) {
- const expandRowsMap = getKeysMap(expandRows.value, rowKey);
- expandRows.value = data.reduce((prev, row) => {
- const rowId = getRowIdentity(row, rowKey);
- const rowInfo = expandRowsMap[rowId];
- if (rowInfo) {
- prev.push(row);
- }
- return prev;
- }, []);
- } else {
- expandRows.value = [];
- }
- };
- const toggleRowExpansion = (row, expanded) => {
- const changed = toggleRowStatus(expandRows.value, row, expanded, void 0, void 0, void 0, watcherData.rowKey.value);
- if (changed) {
- instance.emit("expand-change", row, expandRows.value.slice());
- }
- };
- const setExpandRowKeys = (rowKeys) => {
- instance.store.assertRowKey();
- const data = watcherData.data.value || [];
- const rowKey = watcherData.rowKey.value;
- const keysMap = getKeysMap(data, rowKey);
- expandRows.value = rowKeys.reduce((prev, cur) => {
- const info = keysMap[cur];
- if (info) {
- prev.push(info.row);
- }
- return prev;
- }, []);
- };
- const isRowExpanded = (row) => {
- const rowKey = watcherData.rowKey.value;
- if (rowKey) {
- const expandMap = getKeysMap(expandRows.value, rowKey);
- return !!expandMap[getRowIdentity(row, rowKey)];
- }
- return expandRows.value.includes(row);
- };
- return {
- updateExpandRows,
- toggleRowExpansion,
- setExpandRowKeys,
- isRowExpanded,
- states: {
- expandRows,
- defaultExpandAll
- }
- };
- }
- export { useExpand as default };
- //# sourceMappingURL=expand.mjs.map
|