@jupyterlab/shortcuts-extension 4.2.0-alpha.2 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/lib/components/ShortcutInput.d.ts +25 -49
  2. package/lib/components/ShortcutInput.js +97 -164
  3. package/lib/components/ShortcutInput.js.map +1 -1
  4. package/lib/components/ShortcutItem.d.ts +26 -37
  5. package/lib/components/ShortcutItem.js +107 -184
  6. package/lib/components/ShortcutItem.js.map +1 -1
  7. package/lib/components/ShortcutList.d.ts +8 -13
  8. package/lib/components/ShortcutList.js +1 -1
  9. package/lib/components/ShortcutList.js.map +1 -1
  10. package/lib/components/ShortcutTitleItem.d.ts +3 -1
  11. package/lib/components/ShortcutTitleItem.js +1 -1
  12. package/lib/components/ShortcutTitleItem.js.map +1 -1
  13. package/lib/components/ShortcutUI.d.ts +44 -38
  14. package/lib/components/ShortcutUI.js +167 -191
  15. package/lib/components/ShortcutUI.js.map +1 -1
  16. package/lib/components/TopNav.d.ts +9 -29
  17. package/lib/components/TopNav.js +9 -39
  18. package/lib/components/TopNav.js.map +1 -1
  19. package/lib/components/index.d.ts +0 -1
  20. package/lib/index.js +77 -11
  21. package/lib/index.js.map +1 -1
  22. package/lib/registry.d.ts +33 -0
  23. package/lib/registry.js +102 -0
  24. package/lib/registry.js.map +1 -0
  25. package/lib/renderer.d.ts +2 -2
  26. package/lib/renderer.js.map +1 -1
  27. package/lib/types.d.ts +188 -0
  28. package/lib/types.js +16 -0
  29. package/lib/types.js.map +1 -0
  30. package/package.json +8 -8
  31. package/schema/shortcuts.json +29 -0
  32. package/src/components/ShortcutInput.tsx +140 -231
  33. package/src/components/ShortcutItem.tsx +194 -298
  34. package/src/components/ShortcutList.tsx +15 -20
  35. package/src/components/ShortcutTitleItem.tsx +4 -2
  36. package/src/components/ShortcutUI.tsx +221 -263
  37. package/src/components/TopNav.tsx +19 -69
  38. package/src/components/index.ts +0 -1
  39. package/src/index.ts +96 -16
  40. package/src/registry.ts +158 -0
  41. package/src/renderer.tsx +3 -2
  42. package/src/types.ts +224 -0
  43. package/style/base.css +17 -16
  44. package/style/index.css +0 -1
  45. package/style/index.js +0 -1
@@ -1,19 +1,22 @@
1
1
  import * as React from 'react';
2
2
  import { ITranslator } from '@jupyterlab/translation';
3
+ import { IKeybinding, IShortcutRegistry, IShortcutTarget, IShortcutUI } from '../types';
4
+ export interface IConflicts {
5
+ keys: string[];
6
+ conflictsWith: IShortcutTarget[];
7
+ overwrite: () => void;
8
+ }
3
9
  export interface IShortcutInputProps {
4
- handleUpdate: Function;
5
- deleteShortcut: Function;
6
- toggleInput: Function;
7
- shortcut: ShortcutObject;
8
- shortcutId: string;
9
- toSymbols: Function;
10
- keyBindingsUsed: {
11
- [index: string]: TakenByObject;
12
- };
13
- sortConflict: Function;
14
- clearConflicts: Function;
10
+ addKeybinding: IShortcutUI['addKeybinding'];
11
+ replaceKeybinding: IShortcutUI['replaceKeybinding'];
12
+ deleteKeybinding: IShortcutUI['deleteKeybinding'];
13
+ findConflictsFor: IShortcutRegistry['findConflictsFor'];
14
+ displayConflicts: (conflicts: IConflicts) => void;
15
+ toggleInput: () => void;
16
+ shortcut: IShortcutTarget;
17
+ keybinding?: IKeybinding;
18
+ toSymbols: (value: string) => string;
15
19
  displayInput: boolean;
16
- newOrReplace: string;
17
20
  placeholder: string;
18
21
  translator: ITranslator;
19
22
  }
@@ -22,55 +25,28 @@ export interface IShortcutInputState {
22
25
  userInput: string;
23
26
  isAvailable: boolean;
24
27
  isFunctional: boolean;
25
- takenByObject: TakenByObject;
26
- keys: Array<string>;
28
+ conflicts: IShortcutTarget[];
29
+ keys: string[];
27
30
  currentChain: string;
28
31
  selected: boolean;
29
32
  }
30
- /** Object for shortcut items */
31
- export declare class ShortcutObject {
32
- commandName: string;
33
- label: string;
34
- keys: {
35
- [index: string]: Array<string>;
36
- };
37
- source: string;
38
- selector: string;
39
- category: string;
40
- id: string;
41
- hasConflict: boolean;
42
- numberOfShortcuts: number;
43
- constructor();
44
- get(sortCriteria: string): string;
45
- }
46
- /** Object for conflicting shortcut error messages */
47
- export declare class ErrorObject extends ShortcutObject {
48
- takenBy: TakenByObject;
49
- constructor();
50
- }
51
- /** Object for showing which shortcut conflicts with the new one */
52
- export declare class TakenByObject {
53
- takenBy: ShortcutObject;
54
- takenByKey: string;
55
- takenByLabel: string;
56
- id: string;
57
- constructor(shortcut?: ShortcutObject);
58
- }
59
33
  export declare class ShortcutInput extends React.Component<IShortcutInputProps, IShortcutInputState> {
60
34
  constructor(props: IShortcutInputProps);
61
- handleUpdate: () => void;
35
+ /** Whether this input replaces existing keybinding or creates a new one */
36
+ private get _isReplacingExistingKeybinding();
37
+ private _updateConflictDisplay;
38
+ handleSubmit: () => Promise<void>;
39
+ private _updateShortcut;
62
40
  handleOverwrite: () => Promise<void>;
63
- handleReplace: () => Promise<void>;
64
41
  /** Parse user input for chained shortcuts */
65
42
  parseChaining: (event: React.KeyboardEvent, value: string, userInput: string, keys: Array<string>, currentChain: string) => Array<any>;
66
43
  /**
67
- * Check if shorcut being typed will work
44
+ * Check if shortcut being typed will work
68
45
  * (does not end with ctrl, alt, command, or shift)
69
46
  * */
70
- checkNonFunctional: (shortcut: string) => boolean;
47
+ checkNonFunctional: () => boolean;
71
48
  /** Check if shortcut being typed is already taken */
72
- checkShortcutAvailability: (userInput: string, keys: string[], currentChain: string) => TakenByObject;
73
- checkConflict(takenByObject: TakenByObject, keys: string): void;
49
+ checkShortcutAvailability: (userInput: string, keys: string[], currentChain: string) => IShortcutTarget[];
74
50
  /** Parse and normalize user input */
75
51
  handleInput: (event: React.KeyboardEvent) => void;
76
52
  handleBlur: (event: React.FocusEvent<HTMLDivElement>) => void;
@@ -3,83 +3,61 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import * as React from 'react';
6
+ import { JSONExt } from '@lumino/coreutils';
6
7
  import { EN_US } from '@lumino/keyboard';
7
8
  import { checkIcon, errorIcon } from '@jupyterlab/ui-components';
8
- /** Object for shortcut items */
9
- export class ShortcutObject {
10
- constructor() {
11
- this.commandName = '';
12
- this.label = '';
13
- this.keys = {};
14
- this.source = '';
15
- this.selector = '';
16
- this.category = '';
17
- this.id = '';
18
- this.numberOfShortcuts = 0;
19
- this.hasConflict = false;
20
- }
21
- get(sortCriteria) {
22
- if (sortCriteria === 'label') {
23
- return this.label;
24
- }
25
- else if (sortCriteria === 'selector') {
26
- return this.selector;
27
- }
28
- else if (sortCriteria === 'category') {
29
- return this.category;
30
- }
31
- else if (sortCriteria === 'source') {
32
- return this.source;
33
- }
34
- else {
35
- return '';
36
- }
37
- }
38
- }
39
- /** Object for conflicting shortcut error messages */
40
- export class ErrorObject extends ShortcutObject {
41
- constructor() {
42
- super();
43
- this.takenBy = new TakenByObject();
44
- }
45
- }
46
- /** Object for showing which shortcut conflicts with the new one */
47
- export class TakenByObject {
48
- constructor(shortcut) {
49
- if (shortcut) {
50
- this.takenBy = shortcut;
51
- this.takenByKey = '';
52
- this.takenByLabel = shortcut.category + ': ' + shortcut.label;
53
- this.id = shortcut.commandName + '_' + shortcut.selector;
54
- }
55
- else {
56
- this.takenBy = new ShortcutObject();
57
- this.takenByKey = '';
58
- this.takenByLabel = '';
59
- this.id = '';
60
- }
61
- }
62
- }
63
9
  export class ShortcutInput extends React.Component {
64
10
  constructor(props) {
65
11
  super(props);
66
- this.handleUpdate = () => {
67
- let keys = this.state.keys;
68
- keys.push(this.state.currentChain);
69
- this.setState({ keys: keys });
70
- this.props.handleUpdate(this.props.shortcut, this.state.keys);
12
+ this.handleSubmit = async () => {
13
+ if (!this._isReplacingExistingKeybinding) {
14
+ await this._updateShortcut();
15
+ this.setState({
16
+ value: '',
17
+ keys: [],
18
+ currentChain: ''
19
+ });
20
+ this.props.toggleInput();
21
+ }
22
+ else {
23
+ /** don't replace if field has not been edited */
24
+ if (this.state.selected) {
25
+ this.props.toggleInput();
26
+ this.setState({
27
+ value: '',
28
+ userInput: ''
29
+ });
30
+ }
31
+ else {
32
+ await this._updateShortcut();
33
+ }
34
+ }
35
+ this._updateConflictDisplay();
71
36
  };
72
- this.handleOverwrite = async () => {
73
- this.props
74
- .deleteShortcut(this.state.takenByObject.takenBy, this.state.takenByObject.takenByKey)
75
- .then(this.handleUpdate());
37
+ this._updateShortcut = async () => {
38
+ const keys = [...this.state.keys, this.state.currentChain];
39
+ this.setState({ keys });
40
+ if (this.props.keybinding) {
41
+ await this.props.replaceKeybinding(this.props.shortcut, this.props.keybinding, keys);
42
+ }
43
+ else {
44
+ await this.props.addKeybinding(this.props.shortcut, keys);
45
+ }
76
46
  };
77
- this.handleReplace = async () => {
78
- let keys = this.state.keys;
79
- keys.push(this.state.currentChain);
80
- this.props.toggleInput();
81
- await this.props.deleteShortcut(this.props.shortcut, this.props.shortcutId);
82
- this.props.handleUpdate(this.props.shortcut, keys);
47
+ this.handleOverwrite = async () => {
48
+ const keys = [...this.state.keys, this.state.currentChain];
49
+ for (const conflict of this.state.conflicts) {
50
+ const conflictingBinding = conflict.keybindings.filter(binding => JSONExt.deepEqual(binding.keys, keys) ||
51
+ keys.some(key => JSONExt.deepEqual(binding.keys, [key])))[0];
52
+ if (!conflictingBinding) {
53
+ console.error(`Conflicting binding could not be found for ${conflict} using keys ${keys}`);
54
+ continue;
55
+ }
56
+ await this.props.deleteKeybinding(conflict, conflictingBinding);
57
+ }
58
+ this.setState({ conflicts: [] });
59
+ await this._updateShortcut();
60
+ this._updateConflictDisplay();
83
61
  };
84
62
  /** Parse user input for chained shortcuts */
85
63
  this.parseChaining = (event, value, userInput, keys, currentChain) => {
@@ -101,12 +79,12 @@ export class ShortcutInput extends React.Component {
101
79
  const lastKey = userInput
102
80
  .substr(userInput.lastIndexOf(' ') + 1, userInput.length)
103
81
  .trim();
104
- /** if last key was not a modefier then there is a chain */
82
+ /** if last key was not a modifier then there is a chain */
105
83
  if (modKeys.lastIndexOf(lastKey) === -1 && lastKey != '') {
106
84
  userInput = userInput + ',';
107
85
  keys.push(currentChain);
108
86
  currentChain = '';
109
- /** check if a modefier key was held down through chain */
87
+ /** check if a modifier key was held down through chain */
110
88
  if (event.ctrlKey && event.key != 'Control') {
111
89
  userInput = (userInput + ' Ctrl').trim();
112
90
  currentChain = (currentChain + ' Ctrl').trim();
@@ -123,11 +101,11 @@ export class ShortcutInput extends React.Component {
123
101
  userInput = (userInput + ' Shift').trim();
124
102
  currentChain = (currentChain + ' Shift').trim();
125
103
  }
126
- /** if not a modefier key, add to user input and current chain */
104
+ /** if not a modifier key, add to user input and current chain */
127
105
  if (modKeys.lastIndexOf(event.key) === -1) {
128
106
  userInput = (userInput + ' ' + key).trim();
129
107
  currentChain = (currentChain + ' ' + key).trim();
130
- /** if a modefier key, add to user input and current chain */
108
+ /** if a modifier key, add to user input and current chain */
131
109
  }
132
110
  else {
133
111
  if (event.key === 'Meta') {
@@ -154,7 +132,7 @@ export class ShortcutInput extends React.Component {
154
132
  /** if not a chain, add the key to user input and current chain */
155
133
  }
156
134
  else {
157
- /** if modefier key, rename */
135
+ /** if modifier key, rename */
158
136
  if (event.key === 'Control') {
159
137
  userInput = (userInput + ' Ctrl').trim();
160
138
  currentChain = (currentChain + ' Ctrl').trim();
@@ -170,7 +148,7 @@ export class ShortcutInput extends React.Component {
170
148
  else if (event.key === 'Alt') {
171
149
  userInput = (userInput + ' Alt').trim();
172
150
  currentChain = (currentChain + ' Alt').trim();
173
- /** if not a modefier key, add it regularly */
151
+ /** if not a modifier key, add it regularly */
174
152
  }
175
153
  else {
176
154
  userInput = (userInput + ' ' + key).trim();
@@ -186,10 +164,10 @@ export class ShortcutInput extends React.Component {
186
164
  return [userInput, keys, currentChain];
187
165
  };
188
166
  /**
189
- * Check if shorcut being typed will work
167
+ * Check if shortcut being typed will work
190
168
  * (does not end with ctrl, alt, command, or shift)
191
169
  * */
192
- this.checkNonFunctional = (shortcut) => {
170
+ this.checkNonFunctional = () => {
193
171
  const dontEnd = ['Ctrl', 'Alt', 'Accel', 'Shift'];
194
172
  const shortcutKeys = this.state.currentChain.split(' ');
195
173
  const last = shortcutKeys[shortcutKeys.length - 1];
@@ -200,44 +178,22 @@ export class ShortcutInput extends React.Component {
200
178
  };
201
179
  /** Check if shortcut being typed is already taken */
202
180
  this.checkShortcutAvailability = (userInput, keys, currentChain) => {
203
- /** First, check whole shortcut */
204
- let isAvailable = Object.keys(this.props.keyBindingsUsed).indexOf(keys.join(' ') + currentChain + '_' + this.props.shortcut.selector) === -1 || userInput === '';
205
- let takenByObject = new TakenByObject();
206
- if (isAvailable) {
207
- /** Next, check each piece of a chain */
208
- for (let binding of keys) {
209
- if (Object.keys(this.props.keyBindingsUsed).indexOf(binding + '_' + this.props.shortcut.selector) !== -1 &&
210
- binding !== '') {
211
- isAvailable = false;
212
- takenByObject =
213
- this.props.keyBindingsUsed[binding + '_' + this.props.shortcut.selector];
214
- break;
215
- }
216
- }
217
- /** Check current chain */
218
- if (isAvailable &&
219
- Object.keys(this.props.keyBindingsUsed).indexOf(currentChain + '_' + this.props.shortcut.selector) !== -1 &&
220
- currentChain !== '') {
221
- isAvailable = false;
222
- takenByObject =
223
- this.props.keyBindingsUsed[currentChain + '_' + this.props.shortcut.selector];
224
- }
225
- /** If unavailable set takenByObject */
226
- }
227
- else {
228
- takenByObject =
229
- this.props.keyBindingsUsed[keys.join(' ') + currentChain + '_' + this.props.shortcut.selector];
230
- }
231
- /** allow to set shortcut to what it initially was if replacing */
181
+ const conflicts = this.props.findConflictsFor([...keys, currentChain], this.props.shortcut.selector);
182
+ const isAvailable = userInput === '' || conflicts.length === 0;
183
+ // Allow to set shortcut to what it initially was if replacing.
232
184
  if (!isAvailable) {
233
- if (takenByObject.takenBy.id === this.props.shortcut.id &&
234
- this.props.newOrReplace === 'replace') {
235
- isAvailable = true;
236
- takenByObject = new TakenByObject();
185
+ // TODO: should we keep this logic? It masks what may be a genuine
186
+ // conflict in the defaults or between extensions; ideally we would
187
+ // allow saving, but still warn the user.
188
+ if (conflicts.length === 1 &&
189
+ conflicts[0].id === this.props.shortcut.id &&
190
+ this._isReplacingExistingKeybinding) {
191
+ this.setState({ isAvailable: true });
192
+ return [];
237
193
  }
238
194
  }
239
195
  this.setState({ isAvailable: isAvailable });
240
- return takenByObject;
196
+ return conflicts;
241
197
  };
242
198
  /** Parse and normalize user input */
243
199
  this.handleInput = (event) => {
@@ -248,47 +204,53 @@ export class ShortcutInput extends React.Component {
248
204
  const keys = parsed[1];
249
205
  const currentChain = parsed[2];
250
206
  const value = this.props.toSymbols(userInput);
251
- let takenByObject = this.checkShortcutAvailability(userInput, keys, currentChain);
252
- this.checkConflict(takenByObject, keys);
207
+ let conflicts = this.checkShortcutAvailability(userInput, keys, currentChain);
253
208
  this.setState({
254
209
  value: value,
255
210
  userInput: userInput,
256
- takenByObject: takenByObject,
211
+ conflicts: conflicts,
257
212
  keys: keys,
258
213
  currentChain: currentChain
259
- }, () => this.checkNonFunctional(this.state.userInput));
214
+ }, () => {
215
+ this.checkNonFunctional();
216
+ this._updateConflictDisplay();
217
+ });
260
218
  };
261
219
  this.handleBlur = (event) => {
262
220
  if (event.relatedTarget === null ||
263
- (event.relatedTarget.id !== 'no-blur' &&
264
- event.relatedTarget.id !== 'overwrite')) {
221
+ // TODO: get rid of IDs here
222
+ event.relatedTarget.id !== 'no-blur') {
265
223
  this.props.toggleInput();
266
224
  this.setState({
267
225
  value: '',
268
- userInput: ''
226
+ userInput: '',
227
+ conflicts: []
228
+ }, () => {
229
+ this._updateConflictDisplay();
269
230
  });
270
- this.props.clearConflicts();
271
231
  }
272
232
  };
273
233
  this.state = {
274
234
  value: this.props.placeholder,
275
235
  userInput: '',
276
236
  isAvailable: true,
277
- isFunctional: this.props.newOrReplace === 'replace',
278
- takenByObject: new TakenByObject(),
279
- keys: new Array(),
237
+ isFunctional: this._isReplacingExistingKeybinding,
238
+ conflicts: [],
239
+ keys: [],
280
240
  currentChain: '',
281
241
  selected: true
282
242
  };
283
243
  }
284
- checkConflict(takenByObject, keys) {
285
- if (takenByObject.id !== '' &&
286
- takenByObject.takenBy.id !== this.props.shortcut.id) {
287
- this.props.sortConflict(this.props.shortcut, takenByObject, takenByObject.takenByLabel, '');
288
- }
289
- else {
290
- this.props.clearConflicts();
291
- }
244
+ /** Whether this input replaces existing keybinding or creates a new one */
245
+ get _isReplacingExistingKeybinding() {
246
+ return !!this.props.keybinding;
247
+ }
248
+ _updateConflictDisplay() {
249
+ this.props.displayConflicts({
250
+ conflictsWith: this.state.conflicts,
251
+ keys: this.state.keys,
252
+ overwrite: this.handleOverwrite
253
+ });
292
254
  }
293
255
  render() {
294
256
  const trans = this.props.translator.load('jupyterlab');
@@ -297,12 +259,12 @@ export class ShortcutInput extends React.Component {
297
259
  inputClassName += ' jp-mod-unavailable-Input';
298
260
  }
299
261
  return (React.createElement("div", { className: this.props.displayInput
300
- ? this.props.newOrReplace === 'new'
262
+ ? !this._isReplacingExistingKeybinding
301
263
  ? 'jp-Shortcuts-InputBox jp-Shortcuts-InputBoxNew'
302
264
  : 'jp-Shortcuts-InputBox'
303
265
  : 'jp-mod-hidden', onBlur: event => this.handleBlur(event) },
304
- React.createElement("div", { tabIndex: 0, id: "no-blur", className: inputClassName, onKeyDown: this.handleInput, ref: input => input && input.focus() },
305
- React.createElement("p", { className: this.state.selected && this.props.newOrReplace === 'replace'
266
+ React.createElement("div", { tabIndex: 0, id: "no-blur", className: inputClassName, onKeyDown: this.handleInput, ref: input => input && input.focus(), "data-lm-suppress-shortcuts": "true" },
267
+ React.createElement("p", { className: this.state.selected && this._isReplacingExistingKeybinding
306
268
  ? 'jp-Shortcuts-InputText jp-mod-selected-InputText'
307
269
  : this.state.value === ''
308
270
  ? 'jp-Shortcuts-InputText jp-mod-waiting-InputText'
@@ -313,36 +275,7 @@ export class ShortcutInput extends React.Component {
313
275
  ? 'jp-Shortcuts-Submit jp-mod-defunc-Submit'
314
276
  : !this.state.isAvailable
315
277
  ? 'jp-Shortcuts-Submit jp-mod-conflict-Submit'
316
- : 'jp-Shortcuts-Submit', id: 'no-blur', disabled: !this.state.isAvailable || !this.state.isFunctional, onClick: () => {
317
- if (this.props.newOrReplace === 'new') {
318
- this.handleUpdate();
319
- this.setState({
320
- value: '',
321
- keys: [],
322
- currentChain: ''
323
- });
324
- this.props.toggleInput();
325
- }
326
- else {
327
- /** don't replace if field has not been edited */
328
- if (this.state.selected) {
329
- this.props.toggleInput();
330
- this.setState({
331
- value: '',
332
- userInput: ''
333
- });
334
- this.props.clearConflicts();
335
- }
336
- else {
337
- void this.handleReplace();
338
- }
339
- }
340
- } }, this.state.isAvailable ? React.createElement(checkIcon.react, null) : React.createElement(errorIcon.react, null)),
341
- !this.state.isAvailable && (React.createElement("button", { hidden: true, id: "overwrite", onClick: () => {
342
- void this.handleOverwrite();
343
- this.props.clearConflicts();
344
- this.props.toggleInput();
345
- } }, trans.__('Overwrite')))));
278
+ : 'jp-Shortcuts-Submit', id: 'no-blur', disabled: !this.state.isAvailable || !this.state.isFunctional, onClick: this.handleSubmit }, this.state.isAvailable ? React.createElement(checkIcon.react, null) : React.createElement(errorIcon.react, null))));
346
279
  }
347
280
  }
348
281
  //# sourceMappingURL=ShortcutInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShortcutInput.js","sourceRoot":"","sources":["../../src/components/ShortcutInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShortcutInput.js","sourceRoot":"","sources":["../../src/components/ShortcutInput.tsx"],"names":[],"mappings":"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"}
@@ -1,62 +1,51 @@
1
1
  import * as React from 'react';
2
- import { ErrorObject, ShortcutObject, TakenByObject } from './ShortcutInput';
3
- import { IShortcutUIexternal } from './TopNav';
2
+ import { IConflicts } from './ShortcutInput';
3
+ import { IKeybinding, IShortcutRegistry, IShortcutTarget, IShortcutUI } from '../types';
4
4
  /** Props for ShortcutItem component */
5
5
  export interface IShortcutItemProps {
6
- shortcut: ShortcutObject | ErrorObject;
7
- handleUpdate: Function;
8
- resetShortcut: Function;
9
- deleteShortcut: Function;
6
+ shortcut: IShortcutTarget;
7
+ addKeybinding: IShortcutUI['addKeybinding'];
8
+ replaceKeybinding: IShortcutUI['replaceKeybinding'];
9
+ resetKeybindings: IShortcutUI['resetKeybindings'];
10
+ deleteKeybinding: IShortcutUI['deleteKeybinding'];
11
+ findConflictsFor: IShortcutRegistry['findConflictsFor'];
10
12
  showSelectors: boolean;
11
- keyBindingsUsed: {
12
- [index: string]: TakenByObject;
13
- };
14
- sortConflict: Function;
15
- clearConflicts: Function;
16
- contextMenu: Function;
17
- external: IShortcutUIexternal;
13
+ external: IShortcutUI.IExternalBundle;
18
14
  }
19
15
  /** State for ShortcutItem component */
20
16
  export interface IShortcutItemState {
21
17
  displayNewInput: boolean;
22
- displayReplaceInputLeft: boolean;
23
- displayReplaceInputRight: boolean;
24
- numShortcuts: number;
25
- }
26
- declare enum ShortCutLocation {
27
- Left = 0,
28
- Right = 1
18
+ displayReplaceInput: Readonly<Record<number, boolean>>;
19
+ conflicts: ReadonlyMap<IKeybinding | null, IConflicts>;
29
20
  }
30
21
  /** React component for each command shortcut item */
31
22
  export declare class ShortcutItem extends React.Component<IShortcutItemProps, IShortcutItemState> {
32
23
  constructor(props: IShortcutItemProps);
24
+ componentDidMount(): void;
25
+ componentWillUnmount(): void;
26
+ private _onActionRequested;
33
27
  /** Toggle display state of input box */
34
28
  private toggleInputNew;
35
- private toggleInputReplaceLeft;
36
- private toggleInputReplaceRight;
37
- private addCommandIfNeeded;
38
- private handleRightClick;
39
29
  /** Transform special key names into unicode characters */
40
30
  toSymbols: (value: string) => string;
41
- getErrorRow(): JSX.Element;
42
31
  getCategoryCell(): JSX.Element;
43
32
  getLabelCell(): JSX.Element;
44
33
  getResetShortCutLink(): JSX.Element;
45
34
  getSourceCell(): JSX.Element;
46
35
  getOptionalSelectorCell(): JSX.Element | null;
47
- getClassNameForShortCuts(nonEmptyKeys: string[]): string;
48
- getToggleInputReplaceMethod(location: ShortCutLocation): () => void;
49
- getDisplayReplaceInput(location: ShortCutLocation): boolean;
50
- getOrDiplayIfNeeded(nonEmptyKeys: string[]): JSX.Element;
51
- getShortCutAsInput(key: string, location: ShortCutLocation): JSX.Element;
52
- getShortCutForDisplayOnly(key: string): JSX.Element[];
53
- isLocationBeingEdited(location: ShortCutLocation): boolean;
54
- getLocationFromIndex(index: number): ShortCutLocation;
55
- getDivForKey(index: number, key: string, nonEmptyKeys: string[]): JSX.Element;
36
+ getClassNameForShortCuts(nonEmptyBindings: IKeybinding[]): string;
37
+ toggleInputReplaceMethod(location: number): void;
38
+ getDisplayReplaceInput(location: number): boolean;
39
+ getOrDiplayIfNeeded(force: boolean): JSX.Element;
40
+ getShortCutAsInput(binding: IKeybinding, location: number): JSX.Element;
41
+ getShortCutForDisplayOnly(binding: IKeybinding): JSX.Element[];
42
+ isLocationBeingEdited(location: number): boolean;
43
+ getDivForKey(index: number, binding: IKeybinding, nonEmptyBindings: IKeybinding[]): JSX.Element;
56
44
  getAddLink(): JSX.Element;
57
45
  getInputBoxWhenToggled(): JSX.Element;
58
- getShortCutsCell(nonEmptyKeys: string[]): JSX.Element;
46
+ getShortCutsCell(nonEmptyBindings: IKeybinding[]): JSX.Element;
47
+ getConflicts(): JSX.Element;
48
+ private get _nonEmptyBindings();
59
49
  render(): JSX.Element;
60
- private _commands;
50
+ private _trans;
61
51
  }
62
- export {};