Browse Source

Add callbacks types to keymaps

type-event-callbacks
Artur Arseniev 1 month ago
parent
commit
27b913fce4
  1. 5
      packages/core/src/editor/types.ts
  2. 3
      packages/core/src/keymaps/index.ts
  3. 15
      packages/core/src/keymaps/types.ts

5
packages/core/src/editor/types.ts

@ -7,7 +7,7 @@ import { DataSourceEvent, DataSourcesEventCallback } from '../data_sources/types
import { DeviceEvent, DevicesEventCallback } from '../device_manager/types';
import { ComponentEvent } from '../dom_components';
import { I18nEvent, I18nEventCallback } from '../i18n/types';
import { KeymapEvent } from '../keymaps';
import { KeymapEvent, KeymapsEventCallback } from '../keymaps/types';
import { ModalEvent } from '../modal_dialog';
import { RichTextEditorEvent } from '../rich_text_editor';
import { SelectorEvent } from '../selector_manager';
@ -47,7 +47,8 @@ export interface EditorEventCallbacks
CommandsEventCallback,
DataSourcesEventCallback,
DevicesEventCallback,
I18nEventCallback
I18nEventCallback,
KeymapsEventCallback
{
[key: string]: any[];
}

3
packages/core/src/keymaps/index.ts

@ -41,8 +41,7 @@ import keymaster from '../utils/keymaster';
import { hasWin } from '../utils/mixins';
import defConfig, { Keymap, KeymapOptions, KeymapsConfig } from './config';
import { KeymapsEvents } from './types';
export type KeymapEvent = `${KeymapsEvents}`;
export type { KeymapEvent } from './types';
hasWin() && keymaster.init(window);

15
packages/core/src/keymaps/types.ts

@ -1,3 +1,5 @@
import { Keymap } from './config';
/**{START_EVENTS}*/
export enum KeymapsEvents {
/**
@ -24,5 +26,18 @@ export enum KeymapsEvents {
}
/**{END_EVENTS}*/
export type KeymapEvent =
| `${KeymapsEvents.add}`
| `${KeymapsEvents.remove}`
| `${KeymapsEvents.emit}`
| `${KeymapsEvents.emitId}${string}`;
export interface KeymapsEventCallback {
[KeymapsEvents.add]: [Keymap];
[KeymapsEvents.remove]: [Keymap];
[KeymapsEvents.emit]: [Keymap['id'], string, Event];
[key: `${KeymapsEvents.emitId}${string}`]: [Keymap['id'], string, Event];
}
// need this to avoid the TS documentation generator to break
export default KeymapsEvents;

Loading…
Cancel
Save