'use strict';
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
var vue = require('vue');
|
var util = require('../util.js');
|
|
function useExpand(watcherData) {
|
const instance = vue.getCurrentInstance();
|
const defaultExpandAll = vue.ref(false);
|
const expandRows = vue.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 = util.getKeysMap(expandRows.value, rowKey);
|
expandRows.value = data.reduce((prev, row) => {
|
const rowId = util.getRowIdentity(row, rowKey);
|
const rowInfo = expandRowsMap[rowId];
|
if (rowInfo) {
|
prev.push(row);
|
}
|
return prev;
|
}, []);
|
} else {
|
expandRows.value = [];
|
}
|
};
|
const toggleRowExpansion = (row, expanded) => {
|
const changed = util.toggleRowStatus(expandRows.value, row, expanded);
|
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 = util.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 = util.getKeysMap(expandRows.value, rowKey);
|
return !!expandMap[util.getRowIdentity(row, rowKey)];
|
}
|
return expandRows.value.includes(row);
|
};
|
return {
|
updateExpandRows,
|
toggleRowExpansion,
|
setExpandRowKeys,
|
isRowExpanded,
|
states: {
|
expandRows,
|
defaultExpandAll
|
}
|
};
|
}
|
|
exports["default"] = useExpand;
|
//# sourceMappingURL=expand.js.map
|