shortcuts.service.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { Injectable } from '@angular/core';
  2. import { getEventKeyCode } from '../utils/js-utils';
  3. @Injectable({
  4. providedIn: 'root',
  5. })
  6. export class ShortcutsService {
  7. handleKeyboardEvent(e: KeyboardEvent) {
  8. const eKeyCode = getEventKeyCode(e);
  9. if (e.altKey) { // ALT pressed
  10. switch (eKeyCode) {
  11. // TODO: MODE VIEW
  12. case 49: // alt+1
  13. // First view mode
  14. break;
  15. case 50: // alt+2
  16. // Second view mode
  17. break;
  18. case 51: // alt+3
  19. // Third view mode
  20. break;
  21. case 52: // alt+1
  22. // Fourth view mode
  23. break;
  24. // other useful
  25. case 73: // alt+i
  26. // Open PROJECT INFO
  27. break;
  28. case 76: // alt+l
  29. // Open Lists
  30. break;
  31. case 69: // alt + e
  32. if (e.shiftKey) { // alt + shift + e
  33. // Open EVT Info
  34. }
  35. break;
  36. case 66:
  37. // Open bookmark
  38. break;
  39. case 83: { // alt + s
  40. if (e.shiftKey) { // alt + shift + s
  41. // Open shortcuts
  42. }
  43. break;
  44. }
  45. }
  46. } else {
  47. if ((e.ctrlKey) && (eKeyCode === 32)) { // GM: CTRL+space
  48. // TODO: toggle bottom navbar
  49. } else if ((eKeyCode === 102 || eKeyCode === 70) &&
  50. (e.ctrlKey || e.metaKey) && e.altKey && e.shiftKey) { // CTRL+ALT+SHIF+f - CMD+ALT+SHIF+f
  51. // TODO: go fullscreen
  52. } else if ((eKeyCode === 102 || eKeyCode === 70) &&
  53. (e.ctrlKey || e.metaKey) && e.altKey) { // CTRL+f - CMD+f
  54. // TODO: Toggle search
  55. } else {
  56. switch (eKeyCode) {
  57. case 37: // left arrow
  58. // TODO: Nav left
  59. break;
  60. case 39: // right arrow
  61. // TODO: Nav right
  62. break;
  63. case 38: // up
  64. // TODO: Nav to previous document
  65. break;
  66. case 40: // down
  67. // TODO: Nav to following document
  68. break;
  69. case 27: // escape
  70. break;
  71. case 13: // input
  72. break;
  73. }
  74. }
  75. }
  76. }
  77. }