11import { printTree , type Printable } from 'tree-dump' ;
2- import { InputController } from '../dom/InputController' ;
3- import { CursorController } from '../dom/CursorController' ;
4- import { RichTextController } from '../dom/RichTextController' ;
5- import { KeyController } from '../dom/KeyController' ;
6- import { CompositionController } from '../dom/CompositionController' ;
2+ import { InputController } from './InputController' ;
3+ import { CursorController } from './CursorController' ;
4+ import { RichTextController } from './RichTextController' ;
5+ import { KeyController } from './KeyController' ;
6+ import { CompositionController } from './CompositionController' ;
7+ import { AnnalsController } from './annals/AnnalsController' ;
78import type { PeritextEventDefaults } from '../events/defaults/PeritextEventDefaults' ;
89import type { PeritextEventTarget } from '../events/PeritextEventTarget' ;
910import type { PeritextRenderingSurfaceApi , UiLifeCycles } from '../dom/types' ;
11+ import type { Log } from '../../json-crdt/log/Log' ;
1012
1113export interface DomControllerOpts {
1214 source : HTMLElement ;
1315 events : PeritextEventDefaults ;
16+ log : Log ;
1417}
1518
1619export class DomController implements UiLifeCycles , Printable , PeritextRenderingSurfaceApi {
@@ -20,16 +23,18 @@ export class DomController implements UiLifeCycles, Printable, PeritextRendering
2023 public readonly input : InputController ;
2124 public readonly cursor : CursorController ;
2225 public readonly richText : RichTextController ;
26+ public readonly annals : AnnalsController ;
2327
2428 constructor ( public readonly opts : DomControllerOpts ) {
25- const { source, events} = opts ;
29+ const { source, events, log } = opts ;
2630 const { txt} = events ;
2731 const et = ( this . et = opts . events . et ) ;
2832 const keys = ( this . keys = new KeyController ( { source} ) ) ;
2933 const comp = ( this . comp = new CompositionController ( { et, source, txt} ) ) ;
3034 this . input = new InputController ( { et, source, txt, comp} ) ;
3135 this . cursor = new CursorController ( { et, source, txt, keys} ) ;
3236 this . richText = new RichTextController ( { et, source, txt} ) ;
37+ this . annals = new AnnalsController ( { et, txt, log} ) ;
3338 }
3439
3540 /** -------------------------------------------------- {@link UiLifeCycles} */
@@ -40,6 +45,7 @@ export class DomController implements UiLifeCycles, Printable, PeritextRendering
4045 this . input . start ( ) ;
4146 this . cursor . start ( ) ;
4247 this . richText . start ( ) ;
48+ this . annals . start ( ) ;
4349 }
4450
4551 public stop ( ) : void {
@@ -48,6 +54,7 @@ export class DomController implements UiLifeCycles, Printable, PeritextRendering
4854 this . input . stop ( ) ;
4955 this . cursor . stop ( ) ;
5056 this . richText . stop ( ) ;
57+ this . annals . stop ( ) ;
5158 }
5259
5360 /** ----------------------------------- {@link PeritextRenderingSurfaceApi} */
@@ -65,6 +72,7 @@ export class DomController implements UiLifeCycles, Printable, PeritextRendering
6572 ( tab ) => this . cursor . toString ( tab ) ,
6673 ( tab ) => this . keys . toString ( tab ) ,
6774 ( tab ) => this . comp . toString ( tab ) ,
75+ ( tab ) => this . annals . toString ( tab ) ,
6876 ] )
6977 ) ;
7078 }
0 commit comments