创高项目初始化
This commit is contained in:
44
client/node_modules/quill/core/composition.js
generated
vendored
Normal file
44
client/node_modules/quill/core/composition.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
import Embed from '../blots/embed.js';
|
||||
import Emitter from './emitter.js';
|
||||
class Composition {
|
||||
isComposing = false;
|
||||
constructor(scroll, emitter) {
|
||||
this.scroll = scroll;
|
||||
this.emitter = emitter;
|
||||
this.setupListeners();
|
||||
}
|
||||
setupListeners() {
|
||||
this.scroll.domNode.addEventListener('compositionstart', event => {
|
||||
if (!this.isComposing) {
|
||||
this.handleCompositionStart(event);
|
||||
}
|
||||
});
|
||||
this.scroll.domNode.addEventListener('compositionend', event => {
|
||||
if (this.isComposing) {
|
||||
// Webkit makes DOM changes after compositionend, so we use microtask to
|
||||
// ensure the order.
|
||||
// https://bugs.webkit.org/show_bug.cgi?id=31902
|
||||
queueMicrotask(() => {
|
||||
this.handleCompositionEnd(event);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
handleCompositionStart(event) {
|
||||
const blot = event.target instanceof Node ? this.scroll.find(event.target, true) : null;
|
||||
if (blot && !(blot instanceof Embed)) {
|
||||
this.emitter.emit(Emitter.events.COMPOSITION_BEFORE_START, event);
|
||||
this.scroll.batchStart();
|
||||
this.emitter.emit(Emitter.events.COMPOSITION_START, event);
|
||||
this.isComposing = true;
|
||||
}
|
||||
}
|
||||
handleCompositionEnd(event) {
|
||||
this.emitter.emit(Emitter.events.COMPOSITION_BEFORE_END, event);
|
||||
this.scroll.batchEnd();
|
||||
this.emitter.emit(Emitter.events.COMPOSITION_END, event);
|
||||
this.isComposing = false;
|
||||
}
|
||||
}
|
||||
export default Composition;
|
||||
//# sourceMappingURL=composition.js.map
|
||||
Reference in New Issue
Block a user