@atlaskit/editor-plugin-table 2.9.1 → 2.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/plugins/table/event-handlers.js +52 -56
  3. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +19 -69
  4. package/dist/cjs/plugins/table/nodeviews/TableResizer.js +5 -1
  5. package/dist/cjs/plugins/table/nodeviews/table.js +23 -30
  6. package/dist/cjs/plugins/table/nodeviews/tableCell.js +3 -6
  7. package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +2 -40
  8. package/dist/cjs/plugins/table/pm-plugins/main.js +3 -3
  9. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +2 -73
  10. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +1 -1
  11. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +1 -1
  12. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +1 -5
  13. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +3 -7
  14. package/dist/cjs/plugins/table/ui/common-styles.js +2 -2
  15. package/dist/cjs/plugins/table/utils/dom.js +5 -12
  16. package/dist/es2019/plugins/table/event-handlers.js +3 -6
  17. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +18 -69
  18. package/dist/es2019/plugins/table/nodeviews/TableResizer.js +6 -1
  19. package/dist/es2019/plugins/table/nodeviews/table.js +24 -32
  20. package/dist/es2019/plugins/table/nodeviews/tableCell.js +3 -7
  21. package/dist/es2019/plugins/table/nodeviews/update-overflow-shadows.js +0 -35
  22. package/dist/es2019/plugins/table/pm-plugins/main.js +3 -4
  23. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +2 -77
  24. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin.js +1 -1
  25. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +1 -1
  26. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +1 -5
  27. package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +3 -9
  28. package/dist/es2019/plugins/table/ui/common-styles.js +3 -3
  29. package/dist/es2019/plugins/table/utils/dom.js +5 -12
  30. package/dist/esm/plugins/table/event-handlers.js +52 -56
  31. package/dist/esm/plugins/table/nodeviews/TableComponent.js +19 -69
  32. package/dist/esm/plugins/table/nodeviews/TableResizer.js +5 -1
  33. package/dist/esm/plugins/table/nodeviews/table.js +23 -30
  34. package/dist/esm/plugins/table/nodeviews/tableCell.js +3 -6
  35. package/dist/esm/plugins/table/nodeviews/update-overflow-shadows.js +0 -37
  36. package/dist/esm/plugins/table/pm-plugins/main.js +3 -3
  37. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +2 -73
  38. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin.js +1 -1
  39. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +1 -1
  40. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +1 -5
  41. package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +3 -7
  42. package/dist/esm/plugins/table/ui/common-styles.js +2 -2
  43. package/dist/esm/plugins/table/utils/dom.js +5 -12
  44. package/dist/types/plugins/table/event-handlers.d.ts +1 -2
  45. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +0 -2
  46. package/dist/types/plugins/table/nodeviews/table.d.ts +0 -1
  47. package/dist/types/plugins/table/nodeviews/tableCell.d.ts +2 -3
  48. package/dist/types/plugins/table/nodeviews/types.d.ts +0 -1
  49. package/dist/types/plugins/table/nodeviews/update-overflow-shadows.d.ts +0 -6
  50. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +1 -6
  51. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +1 -2
  52. package/dist/types/plugins/table/types.d.ts +2 -2
  53. package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +0 -1
  54. package/dist/types/plugins/table/utils/dom.d.ts +1 -1
  55. package/dist/types-ts4.5/plugins/table/event-handlers.d.ts +1 -2
  56. package/dist/types-ts4.5/plugins/table/nodeviews/TableComponent.d.ts +0 -2
  57. package/dist/types-ts4.5/plugins/table/nodeviews/table.d.ts +0 -1
  58. package/dist/types-ts4.5/plugins/table/nodeviews/tableCell.d.ts +2 -3
  59. package/dist/types-ts4.5/plugins/table/nodeviews/types.d.ts +0 -1
  60. package/dist/types-ts4.5/plugins/table/nodeviews/update-overflow-shadows.d.ts +0 -6
  61. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +1 -6
  62. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +1 -2
  63. package/dist/types-ts4.5/plugins/table/types.d.ts +2 -2
  64. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/index.d.ts +0 -1
  65. package/dist/types-ts4.5/plugins/table/utils/dom.d.ts +1 -1
  66. package/package.json +2 -2
  67. package/report.api.md +2 -0
  68. package/src/__tests__/integration/horizontal-scroll-shadows.ts +6 -9
  69. package/src/__tests__/integration/resize.ts +6 -16
  70. package/src/__tests__/unit/event-handlers.ts +1 -4
  71. package/src/__tests__/unit/nodeviews/TableComponent.tsx +48 -92
  72. package/src/__tests__/unit/nodeviews/cell.ts +1 -3
  73. package/src/__tests__/unit/nodeviews/table.ts +71 -83
  74. package/src/__tests__/unit/pm-plugins/sticky-headers/tableRow.tsx +5 -9
  75. package/src/__tests__/unit/ui/RowControls.tsx +1 -0
  76. package/src/__tests__/unit/utils/dom.ts +6 -112
  77. package/src/plugins/table/event-handlers.ts +72 -79
  78. package/src/plugins/table/nodeviews/TableComponent.tsx +37 -114
  79. package/src/plugins/table/nodeviews/TableResizer.tsx +3 -0
  80. package/src/plugins/table/nodeviews/table.tsx +22 -30
  81. package/src/plugins/table/nodeviews/tableCell.tsx +3 -11
  82. package/src/plugins/table/nodeviews/types.ts +0 -1
  83. package/src/plugins/table/nodeviews/update-overflow-shadows.ts +0 -54
  84. package/src/plugins/table/pm-plugins/main.ts +4 -22
  85. package/src/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.ts +1 -83
  86. package/src/plugins/table/pm-plugins/sticky-headers/plugin.ts +1 -7
  87. package/src/plugins/table/pm-plugins/table-resizing/event-handlers.ts +1 -1
  88. package/src/plugins/table/pm-plugins/table-resizing/utils/dom.ts +30 -48
  89. package/src/plugins/table/types.ts +3 -2
  90. package/src/plugins/table/ui/TableFloatingControls/index.tsx +3 -15
  91. package/src/plugins/table/ui/common-styles.ts +1 -1
  92. package/src/plugins/table/utils/dom.ts +3 -11
  93. package/tmp/api-report-tmp.d.ts +2 -0
@@ -6,6 +6,7 @@ import { replaceRaf } from 'raf-stub';
6
6
  import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
7
7
  import { Command } from '@atlaskit/editor-common/types';
8
8
  import { TextSelection } from '@atlaskit/editor-prosemirror/state';
9
+ import { EditorView } from '@atlaskit/editor-prosemirror/view';
9
10
  import { selectTableClosestToPos } from '@atlaskit/editor-tables/src/utils/select-nodes';
10
11
  import {
11
12
  findTable,
@@ -73,6 +74,33 @@ describe('table -> nodeviews -> TableComponent.tsx', () => {
73
74
  pluginKey,
74
75
  });
75
76
  };
77
+ const getTableComponent = (editorView: EditorView, props: any = {}) => {
78
+ const tableF = findTable(editorView.state.selection);
79
+ const getNode = () => tableF!.node;
80
+ return (
81
+ <TableComponent
82
+ view={editorView}
83
+ eventDispatcher={
84
+ { on: () => {}, off: () => {} } as any as EventDispatcher
85
+ }
86
+ // @ts-ignore
87
+ containerWidth={{}}
88
+ // @ts-ignore
89
+ getNode={getNode}
90
+ getEditorFeatureFlags={getEditorFeatureFlags}
91
+ allowControls
92
+ contentDOM={(wrapper: HTMLElement | null) => {
93
+ const node = editorView.dom.getElementsByTagName('table')[0];
94
+ if (!wrapper?.firstChild) {
95
+ wrapper?.appendChild(node);
96
+ }
97
+ }}
98
+ getPos={jest.fn()}
99
+ {...props}
100
+ />
101
+ );
102
+ };
103
+
76
104
  afterEach(() => {
77
105
  jest.clearAllMocks();
78
106
  });
@@ -81,17 +109,11 @@ describe('table -> nodeviews -> TableComponent.tsx', () => {
81
109
  it('should add table selected css class to the selected table', () => {
82
110
  const { editorView } = editor(
83
111
  doc(p('text'), table()(tr(tdEmpty, tdEmpty, tdCursor))),
84
- {
85
- tableCellOptimization: true,
86
- tableRenderOptimization: true,
87
- stickyHeadersOptimization: true,
88
- initialRenderOptimization: true,
89
- },
90
112
  );
91
113
  const { state, dispatch } = editorView;
92
114
  dispatch(selectTable(state.tr));
93
- requestAnimationFrame.step();
94
- const tableContainer = document.querySelector(
115
+ const { container } = render(getTableComponent(editorView));
116
+ const tableContainer = container.querySelector(
95
117
  `.${ClassName.TABLE_CONTAINER}`,
96
118
  );
97
119
  expect(
@@ -135,45 +157,12 @@ describe('table -> nodeviews -> TableComponent.tsx', () => {
135
157
 
136
158
  render(
137
159
  <div>
138
- <TableComponent
139
- view={editorView}
140
- eventDispatcher={
141
- { on: () => {}, off: () => {} } as any as EventDispatcher
142
- }
143
- // @ts-ignore
144
- containerWidth={{}}
145
- // @ts-ignore
146
- getNode={getTableNode(1)}
147
- getEditorFeatureFlags={getEditorFeatureFlags}
148
- allowControls
149
- contentDOM={(wrapper: HTMLElement | null) => {
150
- const node = editorView.dom.getElementsByTagName('table')[0];
151
- if (!wrapper?.firstChild) {
152
- wrapper?.appendChild(node);
153
- }
154
- }}
155
- getPos={jest.fn()}
156
- />
157
- <TableComponent
158
- view={editorView}
159
- eventDispatcher={
160
- { on: () => {}, off: () => {} } as any as EventDispatcher
161
- }
162
- // @ts-ignore
163
- containerWidth={{}}
164
- // @ts-ignore
165
- getNode={getTableNode(2)}
166
- getEditorFeatureFlags={getEditorFeatureFlags}
167
- allowControls
168
- contentDOM={(wrapper: HTMLElement | null) => {
169
- const node = editorView.dom.getElementsByTagName('table')[0];
170
- if (!wrapper?.firstChild) {
171
- wrapper?.appendChild(node);
172
- }
173
- }}
174
- getPos={jest.fn()}
175
- />
176
- ,
160
+ {getTableComponent(editorView, {
161
+ getNode: getTableNode(1),
162
+ })}
163
+ {getTableComponent(editorView, {
164
+ getNode: getTableNode(2),
165
+ })}
177
166
  </div>,
178
167
  );
179
168
  expect(clearHoverSelectionSpy).not.toBeCalled();
@@ -189,8 +178,8 @@ describe('table -> nodeviews -> TableComponent.tsx', () => {
189
178
  const { editorView } = editor(
190
179
  doc(p('text'), table()(tr(thEmpty, thEmpty, thEmpty))),
191
180
  );
192
- const { state, dispatch } = editorView;
193
181
 
182
+ const { state, dispatch } = editorView;
194
183
  const isInDanger = true;
195
184
  hoverTable(isInDanger)(state, dispatch);
196
185
  dispatch(selectTable(state.tr));
@@ -198,29 +187,19 @@ describe('table -> nodeviews -> TableComponent.tsx', () => {
198
187
  const tableF = findTable(state.selection);
199
188
  const getNode = () => tableF!.node;
200
189
 
190
+ const { rerender } = render(
191
+ getTableComponent(editorView, {
192
+ getNode,
193
+ }),
194
+ );
195
+
201
196
  const newTr = state.tr.setSelection(TextSelection.create(state.doc, 0));
202
197
  dispatch(newTr);
203
198
 
204
- render(
205
- <TableComponent
206
- view={editorView}
207
- eventDispatcher={
208
- { on: () => {}, off: () => {} } as any as EventDispatcher
209
- }
210
- // @ts-ignore
211
- containerWidth={{}}
212
- // @ts-ignore
213
- getNode={getNode}
214
- getEditorFeatureFlags={getEditorFeatureFlags}
215
- allowControls
216
- contentDOM={(wrapper: HTMLElement | null) => {
217
- const node = editorView.dom.getElementsByTagName('table')[0];
218
- if (!wrapper?.firstChild) {
219
- wrapper?.appendChild(node);
220
- }
221
- }}
222
- getPos={jest.fn()}
223
- />,
199
+ rerender(
200
+ getTableComponent(editorView, {
201
+ getNode,
202
+ }),
224
203
  );
225
204
  expect(clearHoverSelectionSpy).toBeCalledTimes(1);
226
205
  });
@@ -295,30 +274,7 @@ describe('table -> nodeviews -> TableComponent.tsx', () => {
295
274
  const { editorView: view } = editor(
296
275
  doc(p('text'), table()(tr(td()(p('{<>}text')), tdEmpty, tdEmpty))),
297
276
  );
298
-
299
- const tableF = findTable(view.state.selection);
300
- const getNode = () => tableF!.node;
301
- const { container } = render(
302
- <TableComponent
303
- view={view}
304
- eventDispatcher={
305
- { on: jest.fn(), off: jest.fn() } as unknown as EventDispatcher
306
- }
307
- // @ts-ignore
308
- containerWidth={{}}
309
- getNode={getNode}
310
- contentDOM={(contentElement: HTMLElement | null) => {
311
- const node = view.dom.getElementsByTagName('table')[0];
312
-
313
- if (!contentElement?.firstChild) {
314
- contentElement?.appendChild(node);
315
- }
316
- }}
317
- getEditorFeatureFlags={getEditorFeatureFlags}
318
- getPos={jest.fn()}
319
- {...props}
320
- />,
321
- );
277
+ const { container } = render(getTableComponent(view, props));
322
278
  const controlsContainer = container.querySelector(
323
279
  `.${ClassName.WITH_CONTROLS}`,
324
280
  );
@@ -111,9 +111,7 @@ describe('table -> nodeviews -> tableCell.tsx', () => {
111
111
  refs: { pos },
112
112
  } = editor(
113
113
  doc(p('text'), table()(tr(td()(p('{pos}text')), tdEmpty, tdEmpty))),
114
- {
115
- tableCellOptimization: true,
116
- },
114
+ {},
117
115
  );
118
116
  const { state, dispatch } = editorView;
119
117
  const cell = findCellClosestToPos(state.doc.resolve(pos))!;
@@ -36,97 +36,85 @@ describe('table -> nodeviews -> table.tsx', () => {
36
36
  table(attrs)(...args)(defaultSchema);
37
37
 
38
38
  describe('TableView', () => {
39
- describe('with tableRenderOptimization', () => {
40
- const editor = (doc: DocBuilder) =>
41
- createEditor({
42
- doc,
43
- preset: new Preset<LightEditorPlugin>()
44
- .add([featureFlagsPlugin, {}])
45
- .add([analyticsPlugin, {}])
46
- .add(contentInsertionPlugin)
47
- .add(widthPlugin)
48
- .add(guidelinePlugin)
49
- .add([
50
- tablePlugin,
51
- {
52
- tableOptions: {},
53
- getEditorFeatureFlags: () => ({
54
- tableRenderOptimization: true,
55
- }),
56
- },
57
- ]),
58
- pluginKey,
59
- });
39
+ const editor = (doc: DocBuilder) =>
40
+ createEditor({
41
+ doc,
42
+ preset: new Preset<LightEditorPlugin>()
43
+ .add([featureFlagsPlugin, {}])
44
+ .add([analyticsPlugin, {}])
45
+ .add(contentInsertionPlugin)
46
+ .add(widthPlugin)
47
+ .add(guidelinePlugin)
48
+ .add([
49
+ tablePlugin,
50
+ {
51
+ tableOptions: {},
52
+ },
53
+ ]),
54
+ pluginKey,
55
+ });
60
56
 
61
- describe('on view update', () => {
62
- let tableNode: PMNode,
63
- tableNodeView: TableView,
64
- renderSpy: jest.SpyInstance,
65
- view: EditorView;
66
- beforeEach(() => {
67
- tableNode = createTableNode({
68
- isNumberColumnEnabled: true,
69
- })(tr(td()(p('{<>}text')), tdEmpty, tdEmpty));
70
- const { editorView, portalProviderAPI, eventDispatcher } = editor(
71
- doc(
72
- p('text'),
73
- table()(tr(tdCursor, tdEmpty), tr(tdEmpty, tdEmpty)),
74
- ),
75
- );
76
- view = editorView;
77
- tableNodeView = new TableView({
78
- node: tableNode,
79
- allowColumnResizing: false,
80
- view: editorView,
81
- portalProviderAPI,
82
- eventDispatcher,
83
- getPos: () => 1,
84
- tableRenderOptimization: true,
85
- getEditorContainerWidth: () => ({ width: 500 }),
86
- getEditorFeatureFlags: () => ({}),
87
- hasIntlContext: true,
88
- }).init();
57
+ describe('on view update', () => {
58
+ let tableNode: PMNode,
59
+ tableNodeView: TableView,
60
+ renderSpy: jest.SpyInstance,
61
+ view: EditorView;
62
+ beforeEach(() => {
63
+ tableNode = createTableNode({
64
+ isNumberColumnEnabled: true,
65
+ })(tr(td()(p('{<>}text')), tdEmpty, tdEmpty));
66
+ const { editorView, portalProviderAPI, eventDispatcher } = editor(
67
+ doc(p('text'), table()(tr(tdCursor, tdEmpty), tr(tdEmpty, tdEmpty))),
68
+ );
69
+ view = editorView;
70
+ tableNodeView = new TableView({
71
+ node: tableNode,
72
+ allowColumnResizing: false,
73
+ view: editorView,
74
+ portalProviderAPI,
75
+ eventDispatcher,
76
+ getPos: () => 1,
77
+ getEditorContainerWidth: () => ({ width: 500 }),
78
+ getEditorFeatureFlags: () => ({}),
79
+ hasIntlContext: true,
80
+ }).init();
89
81
 
90
- renderSpy = jest.spyOn(tableNodeView, 'render');
91
- });
82
+ renderSpy = jest.spyOn(tableNodeView, 'render');
83
+ });
92
84
 
93
- it('does not rerender if attributes or table width did not change', () => {
94
- const newNodeWithUnchangedAttributesOrWidth = createTableNode({
95
- isNumberColumnEnabled: true,
96
- })(tr(td()(p('{<>}text1')), tdEmpty, tdEmpty));
97
- tableNodeView.update(newNodeWithUnchangedAttributesOrWidth, []);
98
- expect(renderSpy).not.toHaveBeenCalled();
99
- });
85
+ it('does not rerender if attributes or table width did not change', () => {
86
+ const newNodeWithUnchangedAttributesOrWidth = createTableNode({
87
+ isNumberColumnEnabled: true,
88
+ })(tr(td()(p('{<>}text1')), tdEmpty, tdEmpty));
89
+ tableNodeView.update(newNodeWithUnchangedAttributesOrWidth, []);
90
+ expect(renderSpy).not.toHaveBeenCalled();
91
+ });
100
92
 
101
- it('rerenders when table width changes', () => {
102
- const newNodeWithUnchangedAttributesAndExtraColumn = createTableNode({
103
- isNumberColumnEnabled: true,
104
- })(tr(td()(p('{<>}text1')), tdEmpty, tdEmpty, tdEmpty));
105
- tableNodeView.update(
106
- newNodeWithUnchangedAttributesAndExtraColumn,
107
- [],
108
- );
109
- expect(renderSpy).toHaveBeenCalled();
110
- });
93
+ it('rerenders when table width changes', () => {
94
+ const newNodeWithUnchangedAttributesAndExtraColumn = createTableNode({
95
+ isNumberColumnEnabled: true,
96
+ })(tr(td()(p('{<>}text1')), tdEmpty, tdEmpty, tdEmpty));
97
+ tableNodeView.update(newNodeWithUnchangedAttributesAndExtraColumn, []);
98
+ expect(renderSpy).toHaveBeenCalled();
99
+ });
111
100
 
112
- it('rerenders when attributes change', () => {
113
- const newNodeWithChangedAttributes = createTableNode({
114
- isNumberColumnEnabled: false,
115
- })(tr(td()(p('{<>}text1')), tdEmpty));
101
+ it('rerenders when attributes change', () => {
102
+ const newNodeWithChangedAttributes = createTableNode({
103
+ isNumberColumnEnabled: false,
104
+ })(tr(td()(p('{<>}text1')), tdEmpty));
116
105
 
117
- tableNodeView.update(newNodeWithChangedAttributes, []);
118
- expect(renderSpy).toHaveBeenCalled();
119
- });
106
+ tableNodeView.update(newNodeWithChangedAttributes, []);
107
+ expect(renderSpy).toHaveBeenCalled();
108
+ });
120
109
 
121
- it('rerenders when hovered rows change but attributes dont change', () => {
122
- const newNodeWithUnchangedAttributes = createTableNode({
123
- isNumberColumnEnabled: true,
124
- })(tr(td()(p('{<>}text1')), tdEmpty));
110
+ it('rerenders when hovered rows change but attributes dont change', () => {
111
+ const newNodeWithUnchangedAttributes = createTableNode({
112
+ isNumberColumnEnabled: true,
113
+ })(tr(td()(p('{<>}text1')), tdEmpty));
125
114
 
126
- hoverRows([1])(view.state, view.dispatch);
127
- tableNodeView.update(newNodeWithUnchangedAttributes, []);
128
- expect(renderSpy).toHaveBeenCalled();
129
- });
115
+ hoverRows([1])(view.state, view.dispatch);
116
+ tableNodeView.update(newNodeWithUnchangedAttributes, []);
117
+ expect(renderSpy).toHaveBeenCalled();
130
118
  });
131
119
  });
132
120
  });
@@ -55,8 +55,8 @@ describe('TableRowNodeView', () => {
55
55
  let tableRowNodeView: TableRowNodeView;
56
56
  const fakeGetEditorFeatureFlags = jest.fn(() => ({}));
57
57
  const createEditor = createProsemirrorEditorFactory();
58
- const editor = (doc: DocBuilder, stickyHeadersOptimization?: boolean) => {
59
- const featureFlags = { stickyHeadersOptimization };
58
+ const editor = (doc: DocBuilder) => {
59
+ const featureFlags = {};
60
60
  fakeGetEditorFeatureFlags.mockReturnValue(featureFlags);
61
61
  return createEditor({
62
62
  doc,
@@ -114,7 +114,6 @@ describe('TableRowNodeView', () => {
114
114
  editorView,
115
115
  jest.fn(),
116
116
  eventDispatcher,
117
- fakeGetEditorFeatureFlags,
118
117
  );
119
118
  });
120
119
  afterEach(() => {
@@ -216,7 +215,6 @@ describe('TableRowNodeView', () => {
216
215
  editorView,
217
216
  jest.fn(),
218
217
  eventDispatcher,
219
- fakeGetEditorFeatureFlags,
220
218
  );
221
219
  tableRowDom = editorView.dom.getElementsByTagName('tr')[0];
222
220
  });
@@ -258,7 +256,7 @@ describe('TableRowNodeView', () => {
258
256
  });
259
257
  });
260
258
 
261
- describe('with stickyHeadersOptimization', () => {
259
+ describe('sticky headers', () => {
262
260
  let rafStub: Stub;
263
261
  let originalIntersectionObserver: object;
264
262
  let originalResizeObserver: object;
@@ -323,6 +321,7 @@ describe('TableRowNodeView', () => {
323
321
  ) {
324
322
  this.disconnect = jest.fn();
325
323
  this.observe = jest.fn();
324
+ this.unobserve = jest.fn();
326
325
  intersectCallback = callback;
327
326
  };
328
327
 
@@ -332,6 +331,7 @@ describe('TableRowNodeView', () => {
332
331
  ) {
333
332
  this.disconnect = jest.fn();
334
333
  this.observe = jest.fn();
334
+ this.unobserve = jest.fn();
335
335
  resizeCallback = callback;
336
336
  };
337
337
  });
@@ -349,7 +349,6 @@ describe('TableRowNodeView', () => {
349
349
 
350
350
  const editorData = editor(
351
351
  doc(table()(tr(thEmpty, thEmpty), tr(tdEmpty, tdEmpty))),
352
- true, // toggle to enable optimization
353
352
  );
354
353
  editorView = editorData.editorView;
355
354
  eventDispatcher = editorData.eventDispatcher;
@@ -362,7 +361,6 @@ describe('TableRowNodeView', () => {
362
361
  editorView,
363
362
  jest.fn(),
364
363
  eventDispatcher,
365
- fakeGetEditorFeatureFlags,
366
364
  );
367
365
  tableRowNodeView.dom = tableRowDom;
368
366
  });
@@ -604,7 +602,6 @@ describe('TableRowNodeView', () => {
604
602
  beforeEach(() => {
605
603
  const editorData = editor(
606
604
  doc(table()(tr(thEmpty, thEmpty), tr(tdEmpty, tdEmpty))),
607
- true, // toggle to enable optimization
608
605
  );
609
606
  editorView = editorData.editorView;
610
607
  eventDispatcher = editorData.eventDispatcher;
@@ -616,7 +613,6 @@ describe('TableRowNodeView', () => {
616
613
  editorView,
617
614
  jest.fn(),
618
615
  eventDispatcher,
619
- fakeGetEditorFeatureFlags,
620
616
  );
621
617
  tableRowNodeView.dom = tableRowDom;
622
618
 
@@ -46,6 +46,7 @@ describe('RowControls', () => {
46
46
  ) {
47
47
  this.disconnect = jest.fn();
48
48
  this.observe = jest.fn();
49
+ this.unobserve = jest.fn();
49
50
  };
50
51
  });
51
52