/
bubblingeventinfo.js
71 lines (63 loc) · 1.66 KB
/
bubblingeventinfo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/**
* @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
/**
* @module engine/view/observer/bubblingeventinfo
*/
import EventInfo from '@ckeditor/ckeditor5-utils/src/eventinfo';
/**
* The event object passed to bubbling event callbacks. It is used to provide information about the event as well as a tool to
* manipulate it.
*
* @extends module:utils/eventinfo~EventInfo
*/
export default class BubblingEventInfo extends EventInfo {
/**
* @param {Object} source The emitter.
* @param {String} name The event name.
* @param {module:engine/view/range~Range} startRange The view range that the bubbling should start from.
*/
constructor( source, name, startRange ) {
super( source, name );
/**
* The view range that the bubbling should start from.
*
* @readonly
* @member {module:engine/view/range~Range}
*/
this.startRange = startRange;
/**
* The current event phase.
*
* @protected
* @member {'none'|'capturing'|'atTarget'|'bubbling'}
*/
this._eventPhase = 'none';
/**
* The current bubbling target.
*
* @protected
* @member {module:engine/view/document~Document|module:engine/view/node~Node|null}
*/
this._currentTarget = null;
}
/**
* The current event phase.
*
* @readonly
* @member {'none'|'capturing'|'atTarget'|'bubbling'}
*/
get eventPhase() {
return this._eventPhase;
}
/**
* The current bubbling target.
*
* @readonly
* @member {module:engine/view/document~Document|module:engine/view/node~Node|null}
*/
get currentTarget() {
return this._currentTarget;
}
}