UNPKG

2.41 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _isHotkey = require('is-hotkey');
8
9require('slate');
10
11var _utils = require('../utils');
12
13var _onTab = require('./onTab');
14
15var _onTab2 = _interopRequireDefault(_onTab);
16
17var _onShiftTab = require('./onShiftTab');
18
19var _onShiftTab2 = _interopRequireDefault(_onShiftTab);
20
21var _onEnter = require('./onEnter');
22
23var _onEnter2 = _interopRequireDefault(_onEnter);
24
25var _onModEnter = require('./onModEnter');
26
27var _onModEnter2 = _interopRequireDefault(_onModEnter);
28
29var _onBackspace = require('./onBackspace');
30
31var _onBackspace2 = _interopRequireDefault(_onBackspace);
32
33var _onSelectAll = require('./onSelectAll');
34
35var _onSelectAll2 = _interopRequireDefault(_onSelectAll);
36
37function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
39var isModA = (0, _isHotkey.isKeyHotkey)('mod+a');
40
41var isShiftTab = (0, _isHotkey.isKeyHotkey)('shift+tab');
42var isTab = (0, _isHotkey.isKeyHotkey)('tab');
43var isModEnter = (0, _isHotkey.isKeyHotkey)('mod+enter');
44var isEnter = (0, _isHotkey.isKeyHotkey)('enter');
45var isBackspace = (0, _isHotkey.isKeyHotkey)('backspace');
46
47/**
48 * User is pressing a key in the editor
49 */
50function onKeyDown(opts, event, change, editor) {
51 var value = change.value;
52
53 var currentCode = (0, _utils.getCurrentCode)(opts, value);
54
55 // Inside code ?
56 if (!currentCode) {
57 return undefined;
58 }
59
60 // Add opts in the argument list
61 var args = [opts, event, change, editor];
62
63 // Select all the code in the block (Mod+a)
64 if (opts.selectAll && isModA(event)) {
65 return _onSelectAll2.default.apply(undefined, args);
66 } else if (isShiftTab(event)) {
67 // User is pressing Shift+Tab
68 return _onShiftTab2.default.apply(undefined, args);
69 } else if (isTab(event)) {
70 // User is pressing Tab
71 return _onTab2.default.apply(undefined, args);
72 } else if (opts.exitBlockType && isModEnter(event)) {
73 // User is pressing Mod+Enter
74 return _onModEnter2.default.apply(undefined, args);
75 } else if (isEnter(event)) {
76 // User is pressing Enter
77 return _onEnter2.default.apply(undefined, args);
78 } else if (isBackspace(event)) {
79 // User is pressing Backspace
80 return _onBackspace2.default.apply(undefined, args);
81 }
82 return undefined;
83}
84
85exports.default = onKeyDown;
\No newline at end of file