| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- '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, 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 = 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
|