diff --git a/package-lock.json b/package-lock.json index f9214007ac..b1e930f3b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19147,8 +19147,8 @@ }, "node_modules/parchment": { "version": "3.0.0-alpha.1", - "resolved": "git+ssh://git@github.com/quilljs/parchment.git#c4cd8723382972dc3c5b5911b4dfabc0047bb26e", - "integrity": "sha512-kOEbsQUbAUdExEButFufq4uPocfmUe9Yz/8U4hDpjXb0m+Z9TZUIjyS5kRJOa7FtlfQBPdemxUBa7Vx6hYjvFw==", + "resolved": "git+ssh://git@github.com/quilljs/parchment.git#9d148df41cc3d62ab07c25ebcead46a3d513d2c6", + "integrity": "sha512-kfi1efkh2AOqw7AnlwD9IBgw3tTHW8auDfVtz7jjgARuK/jg8RXN2gFTAuaNnjXHuXzNaWFmv9slTz96G90YNg==", "license": "BSD-3-Clause" }, "node_modules/parent-module": { @@ -26418,7 +26418,7 @@ "dependencies": { "eventemitter3": "^5.0.1", "lodash-es": "^4.17.21", - "parchment": "github:quilljs/parchment#c4cd8723382972dc3c5b5911b4dfabc0047bb26e", + "parchment": "github:quilljs/parchment#9d148df41cc3d62ab07c25ebcead46a3d513d2c6", "quill-delta": "^5.1.0" }, "devDependencies": { diff --git a/packages/quill/package.json b/packages/quill/package.json index f070aad6c3..99913ad803 100644 --- a/packages/quill/package.json +++ b/packages/quill/package.json @@ -8,7 +8,7 @@ "dependencies": { "eventemitter3": "^5.0.1", "lodash-es": "^4.17.21", - "parchment": "github:quilljs/parchment#c4cd8723382972dc3c5b5911b4dfabc0047bb26e", + "parchment": "github:quilljs/parchment#9d148df41cc3d62ab07c25ebcead46a3d513d2c6", "quill-delta": "^5.1.0" }, "devDependencies": { diff --git a/packages/quill/src/blots/scroll.ts b/packages/quill/src/blots/scroll.ts index a84dadd093..91968fb7e6 100644 --- a/packages/quill/src/blots/scroll.ts +++ b/packages/quill/src/blots/scroll.ts @@ -440,12 +440,4 @@ function insertInlineContents( }, index); } -export interface ScrollConstructor { - new ( - registry: Registry, - domNode: HTMLDivElement, - options: { emitter: Emitter }, - ): Scroll; -} - export default Scroll; diff --git a/packages/quill/src/core/quill.ts b/packages/quill/src/core/quill.ts index 18429d8fb2..a23a914c8f 100644 --- a/packages/quill/src/core/quill.ts +++ b/packages/quill/src/core/quill.ts @@ -5,7 +5,6 @@ import Delta from 'quill-delta'; import type { BlockEmbed } from '../blots/block'; import type Block from '../blots/block'; import type Scroll from '../blots/scroll'; -import type { ScrollConstructor } from '../blots/scroll'; import type Clipboard from '../modules/clipboard'; import type History from '../modules/history'; import type Keyboard from '../modules/keyboard'; @@ -169,13 +168,16 @@ class Quill { this.root = this.addContainer('ql-editor'); this.root.classList.add('ql-blank'); this.emitter = new Emitter(); - // @ts-expect-error TODO: fix BlotConstructor - const ScrollBlot = this.options.registry.query( - Parchment.ScrollBlot.blotName, - ) as ScrollConstructor; + const scrollBlotName = Parchment.ScrollBlot.blotName; + const ScrollBlot = this.options.registry.query(scrollBlotName); + if (!ScrollBlot || !('blotName' in ScrollBlot)) { + throw new Error( + `Cannot initialize Quill without "${scrollBlotName}" blot`, + ); + } this.scroll = new ScrollBlot(this.options.registry, this.root, { emitter: this.emitter, - }); + }) as Scroll; this.editor = new Editor(this.scroll); this.selection = new Selection(this.scroll, this.emitter); this.composition = new Composition(this.scroll, this.emitter); diff --git a/packages/quill/test/unit/__helpers__/factory.ts b/packages/quill/test/unit/__helpers__/factory.ts index b4f4359883..445fe94272 100644 --- a/packages/quill/test/unit/__helpers__/factory.ts +++ b/packages/quill/test/unit/__helpers__/factory.ts @@ -1,4 +1,5 @@ import { Registry } from 'parchment'; +import type { Attributor } from 'parchment'; import Block from '../../../src/blots/block'; import Break from '../../../src/blots/break'; @@ -14,7 +15,7 @@ export const createRegistry = (formats: unknown[] = []) => { const registry = new Registry(); formats.forEach((format) => { - registry.register(format); + registry.register(format as Attributor); }); registry.register(Block); registry.register(Break);