@atlaskit/editor-plugin-table 7.16.18 → 7.17.0

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 (147) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/commands/column-resize.js +4 -3
  3. package/dist/cjs/commands/delete.js +3 -2
  4. package/dist/cjs/commands/insert.js +12 -8
  5. package/dist/cjs/commands-with-analytics.js +10 -7
  6. package/dist/cjs/event-handlers.js +3 -2
  7. package/dist/cjs/nodeviews/TableComponent.js +32 -19
  8. package/dist/cjs/nodeviews/TableContainer.js +4 -0
  9. package/dist/cjs/nodeviews/TableResizer.js +3 -2
  10. package/dist/cjs/nodeviews/table.js +6 -4
  11. package/dist/cjs/plugin.js +9 -6
  12. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +12 -13
  13. package/dist/cjs/pm-plugins/keymap.js +11 -9
  14. package/dist/cjs/pm-plugins/main.js +4 -1
  15. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +10 -9
  16. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +4 -3
  17. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +4 -3
  18. package/dist/cjs/toolbar.js +29 -20
  19. package/dist/cjs/transforms/column-width.js +3 -3
  20. package/dist/cjs/transforms/delete-columns.js +3 -2
  21. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +21 -15
  22. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +3 -2
  23. package/dist/cjs/ui/FloatingDragMenu/index.js +6 -3
  24. package/dist/cjs/ui/FloatingInsertButton/index.js +7 -8
  25. package/dist/cjs/ui/TableFloatingControls/index.js +4 -1
  26. package/dist/cjs/utils/drag-menu.js +5 -4
  27. package/dist/es2019/commands/column-resize.js +4 -3
  28. package/dist/es2019/commands/delete.js +2 -2
  29. package/dist/es2019/commands/insert.js +8 -8
  30. package/dist/es2019/commands-with-analytics.js +9 -8
  31. package/dist/es2019/event-handlers.js +2 -2
  32. package/dist/es2019/nodeviews/TableComponent.js +28 -17
  33. package/dist/es2019/nodeviews/TableContainer.js +4 -0
  34. package/dist/es2019/nodeviews/TableResizer.js +3 -2
  35. package/dist/es2019/nodeviews/table.js +5 -4
  36. package/dist/es2019/plugin.js +9 -6
  37. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +7 -10
  38. package/dist/es2019/pm-plugins/keymap.js +9 -9
  39. package/dist/es2019/pm-plugins/main.js +4 -1
  40. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +10 -9
  41. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +4 -4
  42. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +4 -4
  43. package/dist/es2019/toolbar.js +25 -22
  44. package/dist/es2019/transforms/column-width.js +2 -3
  45. package/dist/es2019/transforms/delete-columns.js +2 -2
  46. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +12 -7
  47. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +3 -2
  48. package/dist/es2019/ui/FloatingDragMenu/index.js +5 -3
  49. package/dist/es2019/ui/FloatingInsertButton/index.js +6 -8
  50. package/dist/es2019/ui/TableFloatingControls/index.js +5 -1
  51. package/dist/es2019/utils/drag-menu.js +4 -4
  52. package/dist/esm/commands/column-resize.js +4 -3
  53. package/dist/esm/commands/delete.js +3 -2
  54. package/dist/esm/commands/insert.js +12 -8
  55. package/dist/esm/commands-with-analytics.js +10 -7
  56. package/dist/esm/event-handlers.js +3 -2
  57. package/dist/esm/nodeviews/TableComponent.js +32 -19
  58. package/dist/esm/nodeviews/TableContainer.js +4 -0
  59. package/dist/esm/nodeviews/TableResizer.js +3 -2
  60. package/dist/esm/nodeviews/table.js +6 -4
  61. package/dist/esm/plugin.js +9 -6
  62. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +12 -13
  63. package/dist/esm/pm-plugins/keymap.js +11 -9
  64. package/dist/esm/pm-plugins/main.js +4 -1
  65. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +10 -9
  66. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +4 -3
  67. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +4 -3
  68. package/dist/esm/toolbar.js +29 -20
  69. package/dist/esm/transforms/column-width.js +3 -3
  70. package/dist/esm/transforms/delete-columns.js +3 -2
  71. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +21 -15
  72. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +3 -2
  73. package/dist/esm/ui/FloatingDragMenu/index.js +6 -3
  74. package/dist/esm/ui/FloatingInsertButton/index.js +7 -8
  75. package/dist/esm/ui/TableFloatingControls/index.js +4 -1
  76. package/dist/esm/utils/drag-menu.js +5 -4
  77. package/dist/types/commands/column-resize.d.ts +2 -1
  78. package/dist/types/commands/delete.d.ts +1 -1
  79. package/dist/types/commands/insert.d.ts +4 -4
  80. package/dist/types/commands-with-analytics.d.ts +4 -4
  81. package/dist/types/event-handlers.d.ts +1 -1
  82. package/dist/types/nodeviews/TableContainer.d.ts +4 -2
  83. package/dist/types/nodeviews/TableResizer.d.ts +2 -1
  84. package/dist/types/nodeviews/table.d.ts +1 -0
  85. package/dist/types/plugin.d.ts +3 -1
  86. package/dist/types/pm-plugins/drag-and-drop/plugin.d.ts +1 -1
  87. package/dist/types/pm-plugins/keymap.d.ts +1 -1
  88. package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
  89. package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +1 -1
  90. package/dist/types/toolbar.d.ts +5 -5
  91. package/dist/types/transforms/column-width.d.ts +1 -1
  92. package/dist/types/transforms/delete-columns.d.ts +1 -1
  93. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  94. package/dist/types/ui/FloatingInsertButton/index.d.ts +1 -0
  95. package/dist/types/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +8 -2
  96. package/dist/types/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +16 -4
  97. package/dist/types/ui/TableFloatingControls/index.d.ts +8 -2
  98. package/dist/types/utils/drag-menu.d.ts +1 -1
  99. package/dist/types-ts4.5/commands/column-resize.d.ts +2 -1
  100. package/dist/types-ts4.5/commands/delete.d.ts +1 -1
  101. package/dist/types-ts4.5/commands/insert.d.ts +4 -4
  102. package/dist/types-ts4.5/commands-with-analytics.d.ts +4 -4
  103. package/dist/types-ts4.5/event-handlers.d.ts +1 -1
  104. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +4 -2
  105. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -1
  106. package/dist/types-ts4.5/nodeviews/table.d.ts +1 -0
  107. package/dist/types-ts4.5/plugin.d.ts +3 -1
  108. package/dist/types-ts4.5/pm-plugins/drag-and-drop/plugin.d.ts +1 -1
  109. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +1 -1
  110. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
  111. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +1 -1
  112. package/dist/types-ts4.5/toolbar.d.ts +5 -5
  113. package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
  114. package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
  115. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  116. package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +1 -0
  117. package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +10 -2
  118. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +20 -4
  119. package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +10 -2
  120. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  121. package/package.json +3 -9
  122. package/src/commands/column-resize.ts +6 -6
  123. package/src/commands/delete.ts +7 -1
  124. package/src/commands/insert.ts +33 -5
  125. package/src/commands-with-analytics.ts +14 -2
  126. package/src/event-handlers.ts +2 -0
  127. package/src/nodeviews/TableComponent.tsx +28 -28
  128. package/src/nodeviews/TableContainer.tsx +6 -0
  129. package/src/nodeviews/TableResizer.tsx +4 -0
  130. package/src/nodeviews/table.tsx +4 -2
  131. package/src/plugin.tsx +19 -7
  132. package/src/pm-plugins/drag-and-drop/plugin.ts +26 -13
  133. package/src/pm-plugins/keymap.ts +30 -4
  134. package/src/pm-plugins/main.ts +2 -0
  135. package/src/pm-plugins/table-resizing/event-handlers.ts +12 -14
  136. package/src/pm-plugins/table-resizing/utils/resize-state.ts +5 -5
  137. package/src/pm-plugins/table-resizing/utils/scale-table.ts +6 -4
  138. package/src/toolbar.tsx +46 -12
  139. package/src/transforms/column-width.ts +7 -3
  140. package/src/transforms/delete-columns.ts +6 -2
  141. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +12 -4
  142. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -0
  143. package/src/ui/FloatingDragMenu/index.tsx +4 -4
  144. package/src/ui/FloatingInsertButton/index.tsx +12 -9
  145. package/src/ui/TableFloatingControls/index.tsx +4 -1
  146. package/src/utils/drag-menu.ts +13 -4
  147. package/tsconfig.app.json +3 -0
@@ -379,6 +379,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
379
379
  intl: { formatMessage },
380
380
  editorView,
381
381
  getEditorContainerWidth,
382
+ getEditorFeatureFlags,
382
383
  } = this.props;
383
384
  const {
384
385
  isDragAndDropEnabled,
@@ -386,12 +387,17 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
386
387
  } = getPluginState(editorView.state);
387
388
  if (allowDistributeColumns && !isDragAndDropEnabled) {
388
389
  const { isTableScalingEnabled = false } = getPluginState(editorView.state);
390
+ const { tableWithFixedColumnWidthsOption = false } = getEditorFeatureFlags
391
+ ? getEditorFeatureFlags()
392
+ : {};
393
+
389
394
  const newResizeState = getNewResizeStateFromSelectedColumns(
390
395
  selectionRect,
391
396
  editorView.state,
392
397
  editorView.domAtPos.bind(editorView),
393
398
  getEditorContainerWidth,
394
399
  isTableScalingEnabled,
400
+ tableWithFixedColumnWidthsOption,
395
401
  );
396
402
 
397
403
  const wouldChange = newResizeState?.changed ?? false;
@@ -507,13 +513,12 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
507
513
  const { state, dispatch } = editorView;
508
514
  const { targetCellPosition, isTableScalingEnabled = false } = getPluginState(state);
509
515
 
510
- const { tableDuplicateCellColouring = false } = getEditorFeatureFlags
511
- ? getEditorFeatureFlags()
512
- : {};
516
+ const { tableDuplicateCellColouring = false, tableWithFixedColumnWidthsOption = false } =
517
+ getEditorFeatureFlags ? getEditorFeatureFlags() : {};
513
518
 
514
519
  const shouldUseIncreasedScalingPercent =
515
520
  isTableScalingEnabled &&
516
- getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') &&
521
+ tableWithFixedColumnWidthsOption &&
517
522
  getBooleanFF('platform.editor.table.use-increased-scaling-percent');
518
523
 
519
524
  switch (item.value.name) {
@@ -548,6 +553,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
548
553
  editorView.domAtPos.bind(editorView),
549
554
  getEditorContainerWidth,
550
555
  isTableScalingEnabled,
556
+ tableWithFixedColumnWidthsOption,
551
557
  );
552
558
 
553
559
  if (newResizeStateWithAnalytics) {
@@ -570,6 +576,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
570
576
  editorAnalyticsAPI,
571
577
  isTableScalingEnabled,
572
578
  tableDuplicateCellColouring,
579
+ tableWithFixedColumnWidthsOption,
573
580
  shouldUseIncreasedScalingPercent,
574
581
  )(INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
575
582
  this.toggleOpen();
@@ -588,6 +595,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
588
595
  deleteColumnsWithAnalytics(
589
596
  editorAnalyticsAPI,
590
597
  isTableScalingEnabled,
598
+ tableWithFixedColumnWidthsOption,
591
599
  shouldUseIncreasedScalingPercent,
592
600
  )(INPUT_METHOD.CONTEXT_MENU, selectionRect)(state, dispatch, editorView);
593
601
  this.toggleOpen();
@@ -94,6 +94,7 @@ type DragMenuProps = {
94
94
  isTableScalingEnabled?: boolean;
95
95
  tableDuplicateCellColouring?: boolean;
96
96
  shouldUseIncreasedScalingPercent?: boolean;
97
+ isTableFixedColumnWidthsOptionEnabled?: boolean;
97
98
  };
98
99
 
99
100
  type PluralOptionType = 'noOfCols' | 'noOfRows' | 'noOfCells' | null;
@@ -263,6 +264,7 @@ export const DragMenu = React.memo(
263
264
  isTableScalingEnabled,
264
265
  tableDuplicateCellColouring,
265
266
  shouldUseIncreasedScalingPercent,
267
+ isTableFixedColumnWidthsOptionEnabled,
266
268
  }: DragMenuProps & WrappedComponentProps) => {
267
269
  const { state, dispatch } = editorView;
268
270
  const { selection } = state;
@@ -303,6 +305,7 @@ export const DragMenu = React.memo(
303
305
  pluginConfig?.isHeaderRowRequired,
304
306
  isTableScalingEnabled,
305
307
  tableDuplicateCellColouring,
308
+ isTableFixedColumnWidthsOptionEnabled,
306
309
  shouldUseIncreasedScalingPercent,
307
310
  );
308
311
 
@@ -70,13 +70,12 @@ const FloatingDragMenu = ({
70
70
  return null;
71
71
  }
72
72
 
73
- const { tableDuplicateCellColouring = false } = getEditorFeatureFlags
74
- ? getEditorFeatureFlags()
75
- : {};
73
+ const { tableDuplicateCellColouring = false, tableWithFixedColumnWidthsOption = false } =
74
+ getEditorFeatureFlags ? getEditorFeatureFlags() : {};
76
75
 
77
76
  const shouldUseIncreasedScalingPercent =
78
77
  isTableScalingEnabled &&
79
- getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') &&
78
+ tableWithFixedColumnWidthsOption &&
80
79
  getBooleanFF('platform.editor.table.use-increased-scaling-percent');
81
80
 
82
81
  return (
@@ -116,6 +115,7 @@ const FloatingDragMenu = ({
116
115
  isTableScalingEnabled={isTableScalingEnabled}
117
116
  tableDuplicateCellColouring={tableDuplicateCellColouring}
118
117
  shouldUseIncreasedScalingPercent={shouldUseIncreasedScalingPercent}
118
+ isTableFixedColumnWidthsOptionEnabled={tableWithFixedColumnWidthsOption}
119
119
  />
120
120
  </Popup>
121
121
  );
@@ -28,7 +28,6 @@ import { findTable } from '@atlaskit/editor-tables/utils';
28
28
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
29
29
 
30
30
  import { insertColumnWithAnalytics, insertRowWithAnalytics } from '../../commands-with-analytics';
31
- import { getPluginState } from '../../pm-plugins/plugin-factory';
32
31
  import { TableCssClassName as ClassName } from '../../types';
33
32
  import { checkIfNumberColumnEnabled } from '../../utils';
34
33
 
@@ -45,6 +44,7 @@ export interface Props {
45
44
  isHeaderColumnEnabled?: boolean;
46
45
  isHeaderRowEnabled?: boolean;
47
46
  isDragAndDropEnabled?: boolean;
47
+ isTableScalingEnabled?: boolean;
48
48
  mountPoint?: HTMLElement;
49
49
  boundariesElement?: HTMLElement;
50
50
  scrollableElement?: HTMLElement;
@@ -256,28 +256,31 @@ export class FloatingInsertButton extends React.Component<Props & WrappedCompone
256
256
  }
257
257
 
258
258
  private insertColumn(event: React.SyntheticEvent) {
259
- const { editorView, insertColumnButtonIndex, editorAnalyticsAPI, getEditorFeatureFlags } =
260
- this.props;
259
+ const {
260
+ editorView,
261
+ insertColumnButtonIndex,
262
+ editorAnalyticsAPI,
263
+ getEditorFeatureFlags,
264
+ isTableScalingEnabled,
265
+ } = this.props;
261
266
 
262
267
  if (typeof insertColumnButtonIndex !== 'undefined') {
263
268
  event.preventDefault();
264
269
 
265
- const { isTableScalingEnabled = false } = getPluginState(editorView.state);
270
+ const { tableDuplicateCellColouring = false, tableWithFixedColumnWidthsOption = false } =
271
+ getEditorFeatureFlags ? getEditorFeatureFlags() : {};
266
272
 
267
273
  const shouldUseIncreasedScalingPercent =
268
274
  isTableScalingEnabled &&
269
- getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') &&
275
+ tableWithFixedColumnWidthsOption &&
270
276
  getBooleanFF('platform.editor.table.use-increased-scaling-percent');
271
277
 
272
- const { tableDuplicateCellColouring = false } = getEditorFeatureFlags
273
- ? getEditorFeatureFlags()
274
- : {};
275
-
276
278
  const { state, dispatch } = editorView;
277
279
  insertColumnWithAnalytics(
278
280
  editorAnalyticsAPI,
279
281
  isTableScalingEnabled,
280
282
  tableDuplicateCellColouring,
283
+ tableWithFixedColumnWidthsOption,
281
284
  shouldUseIncreasedScalingPercent,
282
285
  )(INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
283
286
  }
@@ -1,6 +1,7 @@
1
1
  import React, { useCallback } from 'react';
2
2
 
3
3
  import type { TableColumnOrdering } from '@atlaskit/custom-steps';
4
+ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
4
5
  import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
5
6
  import { browser } from '@atlaskit/editor-common/utils';
6
7
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
@@ -113,6 +114,8 @@ export const TableFloatingControls = ({
113
114
  [editorView, tableActive],
114
115
  );
115
116
 
117
+ const { featureFlagsState } = useSharedPluginState(api, ['featureFlags']);
118
+
116
119
  if (!tableRef) {
117
120
  return null;
118
121
  }
@@ -149,7 +152,7 @@ export const TableFloatingControls = ({
149
152
  <>
150
153
  {isDragAndDropEnabled ? (
151
154
  <>
152
- {!getBooleanFF('platform.editor.drag-and-drop_wmv9t') &&
155
+ {!featureFlagsState?.elementDragAndDrop &&
153
156
  (getBooleanFF('platform.editor.table.use-shared-state-hook') ? (
154
157
  <DragCornerControlsWithSelection
155
158
  editorView={editorView}
@@ -160,6 +160,7 @@ export const getDragMenuConfig = (
160
160
  isHeaderRowRequired?: boolean,
161
161
  isTableScalingEnabled = false,
162
162
  tableDuplicateCellColouring = false,
163
+ isTableFixedColumnWidthsOptionEnabled = false,
163
164
  shouldUseIncreasedScalingPercent = false,
164
165
  ): DragMenuConfig[] => {
165
166
  const addOptions =
@@ -272,6 +273,7 @@ export const getDragMenuConfig = (
272
273
  editorAnalyticsAPI,
273
274
  isTableScalingEnabled,
274
275
  tableDuplicateCellColouring,
276
+ isTableFixedColumnWidthsOptionEnabled,
275
277
  shouldUseIncreasedScalingPercent,
276
278
  )(INPUT_METHOD.TABLE_CONTEXT_MENU, (index ?? 0) + offset)(state, dispatch, editorView);
277
279
  }
@@ -293,6 +295,7 @@ export const getDragMenuConfig = (
293
295
  editorView.domAtPos.bind(editorView),
294
296
  getEditorContainerWidth,
295
297
  isTableScalingEnabled,
298
+ isTableFixedColumnWidthsOptionEnabled,
296
299
  );
297
300
 
298
301
  if (newResizeState) {
@@ -333,10 +336,16 @@ export const getDragMenuConfig = (
333
336
  !!isHeaderRowRequired,
334
337
  )(state, dispatch);
335
338
  } else {
336
- deleteColumnsWithAnalytics(editorAnalyticsAPI, isTableScalingEnabled)(
337
- INPUT_METHOD.TABLE_CONTEXT_MENU,
338
- selectionRect ?? defaultSelectionRect,
339
- )(state, dispatch, editorView);
339
+ deleteColumnsWithAnalytics(
340
+ editorAnalyticsAPI,
341
+ isTableScalingEnabled,
342
+ isTableFixedColumnWidthsOptionEnabled,
343
+ shouldUseIncreasedScalingPercent,
344
+ )(INPUT_METHOD.TABLE_CONTEXT_MENU, selectionRect ?? defaultSelectionRect)(
345
+ state,
346
+ dispatch,
347
+ editorView,
348
+ );
340
349
  }
341
350
  return true;
342
351
  },
package/tsconfig.app.json CHANGED
@@ -57,6 +57,9 @@
57
57
  {
58
58
  "path": "../editor-plugin-editor-viewmode/tsconfig.app.json"
59
59
  },
60
+ {
61
+ "path": "../editor-plugin-feature-flags/tsconfig.app.json"
62
+ },
60
63
  {
61
64
  "path": "../editor-plugin-guideline/tsconfig.app.json"
62
65
  },