Skip to content

Commit 867e3ad

Browse files
authored
Merge branch 'master' into u/nguyenvi/touch-selection-handle-entire-flow
2 parents 9e1b240 + cb4e7c9 commit 867e3ad

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

packages/roosterjs-content-model-plugins/lib/tableEdit/editors/TableEditor.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,8 @@ export class TableEditor {
256256
true /*isHorizontal*/,
257257
this.onStartCellResize,
258258
this.onFinishEditing,
259-
this.anchorContainer
259+
this.anchorContainer,
260+
this.onTableEditorCreated
260261
);
261262
this.verticalResizer = createCellResizer(
262263
this.editor,
@@ -266,7 +267,8 @@ export class TableEditor {
266267
false /*isHorizontal*/,
267268
this.onStartCellResize,
268269
this.onFinishEditing,
269-
this.anchorContainer
270+
this.anchorContainer,
271+
this.onTableEditorCreated
270272
);
271273
}
272274
}

packages/roosterjs-content-model-plugins/lib/tableEdit/editors/features/CellResizer.ts

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
} from 'roosterjs-content-model-dom';
1313
import type { DragAndDropHandler } from '../../../pluginUtils/DragAndDrop/DragAndDropHandler';
1414
import type { IEditor, ReadonlyContentModelTable } from 'roosterjs-content-model-types';
15+
import type { OnTableEditorCreatedCallback } from '../../OnTableEditorCreatedCallback';
1516

1617
const 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

Comments
 (0)