| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /**
- * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /**
- * @module engine/view/observer/keyobserver
- */
- import DomEventObserver from './domeventobserver';
- import { getCode } from '@ckeditor/ckeditor5-utils/src/keyboard';
- /**
- * Observer for events connected with pressing keyboard keys.
- *
- * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.
- *
- * @extends module:engine/view/observer/domeventobserver~DomEventObserver
- */
- export default class KeyObserver extends DomEventObserver {
- constructor( view ) {
- super( view );
- this.domEventType = [ 'keydown', 'keyup' ];
- }
- onDomEvent( domEvt ) {
- this.fire( domEvt.type, domEvt, {
- keyCode: domEvt.keyCode,
- altKey: domEvt.altKey,
- ctrlKey: domEvt.ctrlKey || domEvt.metaKey,
- shiftKey: domEvt.shiftKey,
- get keystroke() {
- return getCode( this );
- }
- } );
- }
- }
- /**
- * Fired when a key has been pressed.
- *
- * Introduced by {@link module:engine/view/observer/keyobserver~KeyObserver}.
- *
- * Note that because {@link module:engine/view/observer/keyobserver~KeyObserver} is attached by the
- * {@link module:engine/view/view~View} this event is available by default.
- *
- * @see module:engine/view/observer/keyobserver~KeyObserver
- * @event module:engine/view/document~Document#event:keydown
- * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEventData
- */
- /**
- * Fired when a key has been released.
- *
- * Introduced by {@link module:engine/view/observer/keyobserver~KeyObserver}.
- *
- * Note that because {@link module:engine/view/observer/keyobserver~KeyObserver} is attached by the
- * {@link module:engine/view/view~View} this event is available by default.
- *
- * @see module:engine/view/observer/keyobserver~KeyObserver
- * @event module:engine/view/document~Document#event:keyup
- * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEventData
- */
- /**
- * The value of both events - {@link module:engine/view/document~Document#event:keydown} and
- * {@link module:engine/view/document~Document#event:keyup}.
- *
- * @class module:engine/view/observer/keyobserver~KeyEventData
- * @extends module:engine/view/observer/domeventdata~DomEventData
- * @implements module:utils/keyboard~KeystrokeInfo
- */
- /**
- * Code of the whole keystroke. See {@link module:utils/keyboard~getCode}.
- *
- * @readonly
- * @member {Number} module:engine/view/observer/keyobserver~KeyEventData#keystroke
- */
|