import { BlockService } from '@blockeditor/block-std'; import { InlineManager } from '../_common/inline/inline-manager.js'; import { type AffineTextAttributes, getAffineInlineSpecsWithReference, } from '../_common/inline/presets/affine-inline-specs.js'; import { affineInlineMarkdownMatches } from '../_common/inline/presets/markdown.js'; import { ReferenceNodeConfig } from '../_common/inline/presets/nodes/reference-node/reference-config.js'; import type { ParagraphBlockModel } from './paragraph-model.js'; export class ParagraphService< TextAttributes extends AffineTextAttributes = AffineTextAttributes, > extends BlockService { readonly inlineManager = new InlineManager(); readonly referenceNodeConfig = new ReferenceNodeConfig(); override mounted(): void { super.mounted(); this.referenceNodeConfig.setPage(this.page); const inlineSpecs = getAffineInlineSpecsWithReference( this.referenceNodeConfig ); this.inlineManager.registerSpecs(inlineSpecs); this.inlineManager.registerMarkdownMatches(affineInlineMarkdownMatches); } }