diagram-js_lib_features_keyboard_KeyboardBindings.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import {
  2. isArray
  3. } from "./chunk-4AK4GF4H.js";
  4. import "./chunk-2LSFTFF7.js";
  5. // node_modules/.pnpm/diagram-js@11.9.1/node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js
  6. var KEYS_COPY = ["c", "C"];
  7. var KEYS_PASTE = ["v", "V"];
  8. var KEYS_REDO = ["y", "Y"];
  9. var KEYS_UNDO = ["z", "Z"];
  10. function isCmd(event) {
  11. if (event.altKey) {
  12. return false;
  13. }
  14. return event.ctrlKey || event.metaKey;
  15. }
  16. function isKey(keys, event) {
  17. keys = isArray(keys) ? keys : [keys];
  18. return keys.indexOf(event.key) !== -1 || keys.indexOf(event.code) !== -1;
  19. }
  20. function isShift(event) {
  21. return event.shiftKey;
  22. }
  23. function isCopy(event) {
  24. return isCmd(event) && isKey(KEYS_COPY, event);
  25. }
  26. function isPaste(event) {
  27. return isCmd(event) && isKey(KEYS_PASTE, event);
  28. }
  29. function isUndo(event) {
  30. return isCmd(event) && !isShift(event) && isKey(KEYS_UNDO, event);
  31. }
  32. function isRedo(event) {
  33. return isCmd(event) && (isKey(KEYS_REDO, event) || isKey(KEYS_UNDO, event) && isShift(event));
  34. }
  35. // node_modules/.pnpm/diagram-js@11.9.1/node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js
  36. var LOW_PRIORITY = 500;
  37. function KeyboardBindings(eventBus, keyboard) {
  38. var self = this;
  39. eventBus.on("editorActions.init", LOW_PRIORITY, function(event) {
  40. var editorActions = event.editorActions;
  41. self.registerBindings(keyboard, editorActions);
  42. });
  43. }
  44. KeyboardBindings.$inject = [
  45. "eventBus",
  46. "keyboard"
  47. ];
  48. KeyboardBindings.prototype.registerBindings = function(keyboard, editorActions) {
  49. function addListener(action, fn) {
  50. if (editorActions.isRegistered(action)) {
  51. keyboard.addListener(fn);
  52. }
  53. }
  54. addListener("undo", function(context) {
  55. var event = context.keyEvent;
  56. if (isUndo(event)) {
  57. editorActions.trigger("undo");
  58. return true;
  59. }
  60. });
  61. addListener("redo", function(context) {
  62. var event = context.keyEvent;
  63. if (isRedo(event)) {
  64. editorActions.trigger("redo");
  65. return true;
  66. }
  67. });
  68. addListener("copy", function(context) {
  69. var event = context.keyEvent;
  70. if (isCopy(event)) {
  71. editorActions.trigger("copy");
  72. return true;
  73. }
  74. });
  75. addListener("paste", function(context) {
  76. var event = context.keyEvent;
  77. if (isPaste(event)) {
  78. editorActions.trigger("paste");
  79. return true;
  80. }
  81. });
  82. addListener("stepZoom", function(context) {
  83. var event = context.keyEvent;
  84. if (isKey(["+", "Add", "="], event) && isCmd(event)) {
  85. editorActions.trigger("stepZoom", { value: 1 });
  86. return true;
  87. }
  88. });
  89. addListener("stepZoom", function(context) {
  90. var event = context.keyEvent;
  91. if (isKey(["-", "Subtract"], event) && isCmd(event)) {
  92. editorActions.trigger("stepZoom", { value: -1 });
  93. return true;
  94. }
  95. });
  96. addListener("zoom", function(context) {
  97. var event = context.keyEvent;
  98. if (isKey("0", event) && isCmd(event)) {
  99. editorActions.trigger("zoom", { value: 1 });
  100. return true;
  101. }
  102. });
  103. addListener("removeSelection", function(context) {
  104. var event = context.keyEvent;
  105. if (isKey(["Backspace", "Delete", "Del"], event)) {
  106. editorActions.trigger("removeSelection");
  107. return true;
  108. }
  109. });
  110. };
  111. export {
  112. KEYS_COPY,
  113. KEYS_PASTE,
  114. KEYS_REDO,
  115. KEYS_UNDO,
  116. KeyboardBindings as default
  117. };
  118. //# sourceMappingURL=diagram-js_lib_features_keyboard_KeyboardBindings.js.map