| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- /**
- * @module engine/view/observer/compositionobserver
- */
- import DomEventObserver from './domeventobserver';
- /**
- * {@link module:engine/view/document~Document#event:compositionstart Compositionstart},
- * {@link module:engine/view/document~Document#event:compositionupdate compositionupdate} and
- * {@link module:engine/view/document~Document#event:compositionend compositionend} events observer.
- *
- * 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 CompositionObserver extends DomEventObserver {
- constructor( view ) {
- super( view );
- this.domEventType = [ 'compositionstart', 'compositionupdate', 'compositionend' ];
- const document = this.document;
- document.on( 'compositionstart', () => {
- document.isComposing = true;
- } );
- document.on( 'compositionend', () => {
- document.isComposing = false;
- } );
- }
- onDomEvent( domEvent ) {
- this.fire( domEvent.type, domEvent );
- }
- }
- /**
- * Fired when composition starts inside one of the editables.
- *
- * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.
- *
- * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the
- * {@link module:engine/view/view~View} this event is available by default.
- *
- * @see module:engine/view/observer/compositionobserver~CompositionObserver
- * @event module:engine/view/document~Document#event:compositionstart
- * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.
- */
- /**
- * Fired when composition is updated inside one of the editables.
- *
- * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.
- *
- * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the
- * {@link module:engine/view/view~View} this event is available by default.
- *
- * @see module:engine/view/observer/compositionobserver~CompositionObserver
- * @event module:engine/view/document~Document#event:compositionupdate
- * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.
- */
- /**
- * Fired when composition ends inside one of the editables.
- *
- * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.
- *
- * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the
- * {@link module:engine/view/view~View} this event is available by default.
- *
- * @see module:engine/view/observer/compositionobserver~CompositionObserver
- * @event module:engine/view/document~Document#event:compositionend
- * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.
- */
|