import { BlockService } from '@blockeditor/block-std'; import type { Page } from '@blockeditor/store'; import { SurfaceRefRenderer } from './surface-ref-renderer.js'; export class SurfaceRefBlockService extends BlockService { private _rendererMap = new Map(); getRenderer(id: string, page: Page = this.page, stackingCanvas = false) { if (this._rendererMap.has(id)) { return this._rendererMap.get(id)!; } const renderer = new SurfaceRefRenderer(id, page, this.std, { enableStackingCanvas: stackingCanvas, }); this._rendererMap.set(id, renderer); return renderer; } removeRenderer(id: string) { const renderer = this._rendererMap.get(id); if (renderer) { renderer.unmount(); this._rendererMap.delete(id); } } }