@@ -12,6 +12,7 @@ import {
1212} from 'roosterjs-content-model-dom' ;
1313import type { DragAndDropHandler } from '../../../pluginUtils/DragAndDrop/DragAndDropHandler' ;
1414import type { IEditor , ReadonlyContentModelTable } from 'roosterjs-content-model-types' ;
15+ import type { OnTableEditorCreatedCallback } from '../../OnTableEditorCreatedCallback' ;
1516
1617const CELL_RESIZER_WIDTH = 4 ;
1718/**
@@ -34,7 +35,8 @@ export function createCellResizer(
3435 isHorizontal : boolean ,
3536 onStart : ( ) => void ,
3637 onEnd : ( ) => false ,
37- anchorContainer ?: HTMLElement
38+ anchorContainer ?: HTMLElement ,
39+ onTableEditorCreated ?: OnTableEditorCreatedCallback
3840) : TableEditFeature | null {
3941 const document = td . ownerDocument ;
4042 const createElementData = {
@@ -66,18 +68,42 @@ export function createCellResizer(
6668 onDragEnd : onEnd ,
6769 } ;
6870
69- const featureHandler = new DragAndDropHelper < CellResizerContext , CellResizerInitValue > (
71+ const featureHandler = new CellResizer (
7072 div ,
7173 context ,
7274 setPosition ,
7375 handler ,
7476 zoomScale ,
75- editor . getEnvironment ( ) . isMobileOrTablet
77+ editor . getEnvironment ( ) . isMobileOrTablet ,
78+ onTableEditorCreated
7679 ) ;
7780
7881 return { node : td , div, featureHandler } ;
7982}
8083
84+ class CellResizer extends DragAndDropHelper < CellResizerContext , CellResizerInitValue > {
85+ private disposer : undefined | ( ( ) => void ) ;
86+
87+ constructor (
88+ trigger : HTMLElement ,
89+ context : CellResizerContext ,
90+ onSubmit : ( context : CellResizerContext , trigger : HTMLElement ) => void ,
91+ handler : DragAndDropHandler < CellResizerContext , CellResizerInitValue > ,
92+ zoomScale : number ,
93+ forceMobile ?: boolean ,
94+ onTableEditorCreated ?: OnTableEditorCreatedCallback
95+ ) {
96+ super ( trigger , context , onSubmit , handler , zoomScale , forceMobile ) ;
97+ this . disposer = onTableEditorCreated ?.( 'CellResizer' , trigger ) ;
98+ }
99+
100+ dispose ( ) : void {
101+ this . disposer ?.( ) ;
102+ this . disposer = undefined ;
103+ super . dispose ( ) ;
104+ }
105+ }
106+
81107/**
82108 * @internal
83109 * Exported for testing
0 commit comments