feishin/src/renderer/components/virtual-table/utils.ts

37 lines
880 B
TypeScript
Raw Normal View History

2023-05-20 19:21:23 -07:00
import { GridApi, RowNode } from '@ag-grid-community/core';
export const getNodesByDiscNumber = (args: { api: GridApi; discNumber: number }) => {
2023-07-01 19:10:05 -07:00
const { api, discNumber } = args;
2023-05-20 19:21:23 -07:00
2023-07-01 19:10:05 -07:00
const nodes: RowNode<any>[] = [];
api.forEachNode((node) => {
if (node.data.discNumber === discNumber) nodes.push(node);
});
2023-05-20 19:21:23 -07:00
2023-07-01 19:10:05 -07:00
return nodes;
2023-05-20 19:21:23 -07:00
};
export const setNodeSelection = (args: {
2023-07-01 19:10:05 -07:00
deselectAll?: boolean;
isSelected: boolean;
nodes: RowNode<any>[];
2023-05-20 19:21:23 -07:00
}) => {
2023-07-01 19:10:05 -07:00
const { nodes, isSelected } = args;
2023-05-20 19:21:23 -07:00
2023-07-01 19:10:05 -07:00
nodes.forEach((node) => {
node.setSelected(isSelected);
});
2023-05-20 19:21:23 -07:00
};
export const toggleNodeSelection = (args: { nodes: RowNode<any>[] }) => {
2023-07-01 19:10:05 -07:00
const { nodes } = args;
2023-05-20 19:21:23 -07:00
2023-07-01 19:10:05 -07:00
nodes.forEach((node) => {
if (node.isSelected()) {
node.setSelected(false);
} else {
node.setSelected(true);
}
});
2023-05-20 19:21:23 -07:00
};