actionSelectAll.ts 901 B

12345678910111213141516171819202122232425262728293031
  1. import { KEYS } from "../keys";
  2. import { register } from "./register";
  3. import { selectGroupsForSelectedElements } from "../groups";
  4. import { getNonDeletedElements } from "../element";
  5. export const actionSelectAll = register({
  6. name: "selectAll",
  7. perform: (elements, appState) => {
  8. if (appState.editingLinearElement) {
  9. return false;
  10. }
  11. return {
  12. appState: selectGroupsForSelectedElements(
  13. {
  14. ...appState,
  15. editingGroupId: null,
  16. selectedElementIds: elements.reduce((map, element) => {
  17. if (!element.isDeleted) {
  18. map[element.id] = true;
  19. }
  20. return map;
  21. }, {} as any),
  22. },
  23. getNonDeletedElements(elements),
  24. ),
  25. commitToHistory: true,
  26. };
  27. },
  28. contextItemLabel: "labels.selectAll",
  29. keyTest: (event) => event[KEYS.CTRL_OR_CMD] && event.key === KEYS.A,
  30. });