UNPKG

2.45 kBTypeScriptView Raw
1/**
2 * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4 */
5/**
6 * @module table/tablemouse/mouseeventsobserver
7 */
8import { DomEventObserver, type DomEventData } from 'ckeditor5/src/engine';
9/**
10 * The mouse selection event observer.
11 *
12 * It registers listeners for the following DOM events:
13 *
14 * - `'mousemove'`
15 * - `'mouseleave'`
16 *
17 * Note that this observer is disabled by default. To enable this observer, it needs to be added to
18 * {@link module:engine/view/view~View} using the {@link module:engine/view/view~View#addObserver} method.
19 *
20 * The observer is registered by the {@link module:table/tableselection~TableSelection} plugin.
21 */
22export default class MouseEventsObserver extends DomEventObserver<'mousemove' | 'mouseleave'> {
23 readonly domEventType: readonly ["mousemove", "mouseleave"];
24 /**
25 * @inheritDoc
26 */
27 onDomEvent(domEvent: MouseEvent): void;
28}
29/**
30 * Fired when the mouse is moved over one of the editables.
31 *
32 * Introduced by {@link module:table/tablemouse/mouseeventsobserver~MouseEventsObserver}.
33 *
34 * Note that this event is not available by default. To make it available,
35 * {@link module:table/tablemouse/mouseeventsobserver~MouseEventsObserver} needs to be added
36 * to {@link module:engine/view/view~View} using the {@link module:engine/view/view~View#addObserver} method.
37 *
38 * @see module:table/tablemouse/mouseeventsobserver~MouseEventsObserver
39 * @eventName module:engine/view/document~Document#mousemove
40 * @param data Event data.
41 */
42export type ViewDocumentMouseMoveEvent = {
43 name: 'mousemove';
44 args: [data: DomEventData<MouseEvent>];
45};
46/**
47 * Fired when the mouse is moved out of one of the editables.
48 *
49 * Introduced by {@link module:table/tablemouse/mouseeventsobserver~MouseEventsObserver}.
50 *
51 * Note that this event is not available by default. To make it available,
52 * {@link module:table/tablemouse/mouseeventsobserver~MouseEventsObserver} needs to be added
53 * to {@link module:engine/view/view~View} using the {@link module:engine/view/view~View#addObserver} method.
54 *
55 * @see module:table/tablemouse/mouseeventsobserver~MouseEventsObserver
56 * @eventName module:engine/view/document~Document#mouseleave
57 * @param data Event data.
58 */
59export type ViewDocumentMouseLeaveEvent = {
60 name: 'mouseleave';
61 args: [data: DomEventData<MouseEvent>];
62};