@atlaskit/editor-plugin-table 7.16.13 → 7.16.15

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 (158) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/commands/column-resize.js +6 -3
  3. package/dist/cjs/commands/delete.js +2 -1
  4. package/dist/cjs/commands/insert.js +8 -5
  5. package/dist/cjs/commands/misc.js +17 -1
  6. package/dist/cjs/commands-with-analytics.js +6 -4
  7. package/dist/cjs/event-handlers.js +2 -1
  8. package/dist/cjs/nodeviews/TableComponent.js +21 -10
  9. package/dist/cjs/nodeviews/TableContainer.js +7 -3
  10. package/dist/cjs/nodeviews/TableResizer.js +3 -2
  11. package/dist/cjs/plugin.js +4 -3
  12. package/dist/cjs/pm-plugins/drag-and-drop/plugin.js +4 -2
  13. package/dist/cjs/pm-plugins/keymap.js +5 -4
  14. package/dist/cjs/pm-plugins/main.js +2 -2
  15. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +12 -7
  16. package/dist/cjs/pm-plugins/table-resizing/utils/colgroup.js +6 -5
  17. package/dist/cjs/pm-plugins/table-resizing/utils/consts.js +2 -1
  18. package/dist/cjs/pm-plugins/table-resizing/utils/index.js +6 -0
  19. package/dist/cjs/pm-plugins/table-resizing/utils/misc.js +6 -4
  20. package/dist/cjs/pm-plugins/table-resizing/utils/resize-column.js +5 -3
  21. package/dist/cjs/pm-plugins/table-resizing/utils/resize-state.js +13 -8
  22. package/dist/cjs/pm-plugins/table-resizing/utils/scale-table.js +17 -9
  23. package/dist/cjs/toolbar.js +10 -5
  24. package/dist/cjs/transforms/column-width.js +3 -1
  25. package/dist/cjs/transforms/delete-columns.js +2 -1
  26. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +4 -2
  27. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +3 -2
  28. package/dist/cjs/ui/FloatingDragMenu/index.js +4 -1
  29. package/dist/cjs/ui/FloatingInsertButton/index.js +3 -1
  30. package/dist/cjs/utils/drag-menu.js +2 -1
  31. package/dist/es2019/commands/column-resize.js +6 -3
  32. package/dist/es2019/commands/delete.js +2 -2
  33. package/dist/es2019/commands/insert.js +8 -8
  34. package/dist/es2019/commands/misc.js +17 -1
  35. package/dist/es2019/commands-with-analytics.js +6 -6
  36. package/dist/es2019/event-handlers.js +2 -2
  37. package/dist/es2019/nodeviews/TableComponent.js +21 -10
  38. package/dist/es2019/nodeviews/TableContainer.js +7 -3
  39. package/dist/es2019/nodeviews/TableResizer.js +3 -2
  40. package/dist/es2019/plugin.js +4 -3
  41. package/dist/es2019/pm-plugins/drag-and-drop/plugin.js +4 -2
  42. package/dist/es2019/pm-plugins/keymap.js +5 -5
  43. package/dist/es2019/pm-plugins/main.js +2 -2
  44. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +12 -7
  45. package/dist/es2019/pm-plugins/table-resizing/utils/colgroup.js +6 -6
  46. package/dist/es2019/pm-plugins/table-resizing/utils/consts.js +1 -0
  47. package/dist/es2019/pm-plugins/table-resizing/utils/index.js +1 -1
  48. package/dist/es2019/pm-plugins/table-resizing/utils/misc.js +7 -5
  49. package/dist/es2019/pm-plugins/table-resizing/utils/resize-column.js +5 -5
  50. package/dist/es2019/pm-plugins/table-resizing/utils/resize-state.js +12 -8
  51. package/dist/es2019/pm-plugins/table-resizing/utils/scale-table.js +17 -12
  52. package/dist/es2019/toolbar.js +10 -8
  53. package/dist/es2019/transforms/column-width.js +3 -2
  54. package/dist/es2019/transforms/delete-columns.js +2 -2
  55. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +4 -2
  56. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +3 -2
  57. package/dist/es2019/ui/FloatingDragMenu/index.js +4 -1
  58. package/dist/es2019/ui/FloatingInsertButton/index.js +3 -1
  59. package/dist/es2019/utils/drag-menu.js +2 -2
  60. package/dist/esm/commands/column-resize.js +6 -3
  61. package/dist/esm/commands/delete.js +2 -1
  62. package/dist/esm/commands/insert.js +8 -5
  63. package/dist/esm/commands/misc.js +17 -1
  64. package/dist/esm/commands-with-analytics.js +6 -4
  65. package/dist/esm/event-handlers.js +2 -1
  66. package/dist/esm/nodeviews/TableComponent.js +21 -10
  67. package/dist/esm/nodeviews/TableContainer.js +7 -3
  68. package/dist/esm/nodeviews/TableResizer.js +3 -2
  69. package/dist/esm/plugin.js +4 -3
  70. package/dist/esm/pm-plugins/drag-and-drop/plugin.js +4 -2
  71. package/dist/esm/pm-plugins/keymap.js +5 -4
  72. package/dist/esm/pm-plugins/main.js +2 -2
  73. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +12 -7
  74. package/dist/esm/pm-plugins/table-resizing/utils/colgroup.js +6 -5
  75. package/dist/esm/pm-plugins/table-resizing/utils/consts.js +1 -0
  76. package/dist/esm/pm-plugins/table-resizing/utils/index.js +1 -1
  77. package/dist/esm/pm-plugins/table-resizing/utils/misc.js +7 -5
  78. package/dist/esm/pm-plugins/table-resizing/utils/resize-column.js +5 -3
  79. package/dist/esm/pm-plugins/table-resizing/utils/resize-state.js +13 -8
  80. package/dist/esm/pm-plugins/table-resizing/utils/scale-table.js +17 -9
  81. package/dist/esm/toolbar.js +10 -5
  82. package/dist/esm/transforms/column-width.js +3 -1
  83. package/dist/esm/transforms/delete-columns.js +2 -1
  84. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +4 -2
  85. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +3 -2
  86. package/dist/esm/ui/FloatingDragMenu/index.js +4 -1
  87. package/dist/esm/ui/FloatingInsertButton/index.js +3 -1
  88. package/dist/esm/utils/drag-menu.js +2 -1
  89. package/dist/types/commands/delete.d.ts +1 -1
  90. package/dist/types/commands/insert.d.ts +4 -4
  91. package/dist/types/commands-with-analytics.d.ts +3 -3
  92. package/dist/types/event-handlers.d.ts +1 -1
  93. package/dist/types/nodeviews/TableContainer.d.ts +4 -2
  94. package/dist/types/nodeviews/TableResizer.d.ts +2 -1
  95. package/dist/types/pm-plugins/keymap.d.ts +1 -1
  96. package/dist/types/pm-plugins/main.d.ts +1 -1
  97. package/dist/types/pm-plugins/table-resizing/utils/colgroup.d.ts +2 -2
  98. package/dist/types/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
  99. package/dist/types/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  100. package/dist/types/pm-plugins/table-resizing/utils/misc.d.ts +2 -2
  101. package/dist/types/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -2
  102. package/dist/types/pm-plugins/table-resizing/utils/resize-state.d.ts +3 -2
  103. package/dist/types/pm-plugins/table-resizing/utils/scale-table.d.ts +3 -3
  104. package/dist/types/toolbar.d.ts +2 -2
  105. package/dist/types/transforms/column-width.d.ts +1 -1
  106. package/dist/types/transforms/delete-columns.d.ts +1 -1
  107. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  108. package/dist/types/utils/drag-menu.d.ts +1 -1
  109. package/dist/types-ts4.5/commands/delete.d.ts +1 -1
  110. package/dist/types-ts4.5/commands/insert.d.ts +4 -4
  111. package/dist/types-ts4.5/commands-with-analytics.d.ts +3 -3
  112. package/dist/types-ts4.5/event-handlers.d.ts +1 -1
  113. package/dist/types-ts4.5/nodeviews/TableContainer.d.ts +4 -2
  114. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +2 -1
  115. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +1 -1
  116. package/dist/types-ts4.5/pm-plugins/main.d.ts +1 -1
  117. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/colgroup.d.ts +2 -2
  118. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/consts.d.ts +1 -0
  119. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/index.d.ts +1 -1
  120. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/misc.d.ts +2 -2
  121. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -2
  122. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/resize-state.d.ts +3 -2
  123. package/dist/types-ts4.5/pm-plugins/table-resizing/utils/scale-table.d.ts +3 -3
  124. package/dist/types-ts4.5/toolbar.d.ts +2 -2
  125. package/dist/types-ts4.5/transforms/column-width.d.ts +1 -1
  126. package/dist/types-ts4.5/transforms/delete-columns.d.ts +1 -1
  127. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  128. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  129. package/package.json +4 -1
  130. package/src/commands/column-resize.ts +9 -3
  131. package/src/commands/delete.ts +2 -1
  132. package/src/commands/insert.ts +31 -12
  133. package/src/commands/misc.ts +20 -4
  134. package/src/commands-with-analytics.ts +24 -8
  135. package/src/event-handlers.ts +2 -0
  136. package/src/nodeviews/TableComponent.tsx +41 -12
  137. package/src/nodeviews/TableContainer.tsx +6 -0
  138. package/src/nodeviews/TableResizer.tsx +4 -0
  139. package/src/plugin.tsx +9 -0
  140. package/src/pm-plugins/drag-and-drop/plugin.ts +13 -4
  141. package/src/pm-plugins/keymap.ts +17 -4
  142. package/src/pm-plugins/main.ts +2 -0
  143. package/src/pm-plugins/table-resizing/event-handlers.ts +21 -10
  144. package/src/pm-plugins/table-resizing/utils/colgroup.ts +14 -4
  145. package/src/pm-plugins/table-resizing/utils/consts.ts +1 -0
  146. package/src/pm-plugins/table-resizing/utils/index.ts +1 -0
  147. package/src/pm-plugins/table-resizing/utils/misc.ts +24 -5
  148. package/src/pm-plugins/table-resizing/utils/resize-column.ts +11 -4
  149. package/src/pm-plugins/table-resizing/utils/resize-state.ts +17 -6
  150. package/src/pm-plugins/table-resizing/utils/scale-table.ts +32 -9
  151. package/src/toolbar.tsx +18 -10
  152. package/src/transforms/column-width.ts +2 -1
  153. package/src/transforms/delete-columns.ts +11 -2
  154. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +12 -5
  155. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -0
  156. package/src/ui/FloatingDragMenu/index.tsx +7 -0
  157. package/src/ui/FloatingInsertButton/index.tsx +7 -0
  158. package/src/utils/drag-menu.ts +2 -0
@@ -240,7 +240,13 @@ function fixRowSpans(table: PMNode): PMNode | null {
240
240
  }
241
241
 
242
242
  export const deleteColumns =
243
- (rect: Rect, allowCustomStep: boolean, view?: EditorView, isTableScalingEnabled = false) =>
243
+ (
244
+ rect: Rect,
245
+ allowCustomStep: boolean,
246
+ view?: EditorView,
247
+ isTableScalingEnabled = false,
248
+ shouldUseIncreasedScalingPercent = false,
249
+ ) =>
244
250
  (tr: Transaction) => {
245
251
  let updatedTr = tr;
246
252
  updatedTr.setMeta(META_KEYS.OVERFLOW_TRIGGER, {
@@ -255,7 +261,10 @@ export const deleteColumns =
255
261
  const table = findTable(updatedTr.selection);
256
262
 
257
263
  if (table) {
258
- updatedTr = rescaleColumns(isTableScalingEnabled)(table, view)(updatedTr);
264
+ updatedTr = rescaleColumns(isTableScalingEnabled, shouldUseIncreasedScalingPercent)(
265
+ table,
266
+ view,
267
+ )(updatedTr);
259
268
  }
260
269
  return updatedTr;
261
270
  };
@@ -35,6 +35,7 @@ import { splitCell } from '@atlaskit/editor-tables/utils';
35
35
  import CrossCircleIcon from '@atlaskit/icon/glyph/cross-circle';
36
36
  import EditorBackgroundColorIcon from '@atlaskit/icon/glyph/editor/background-color';
37
37
  import RemoveIcon from '@atlaskit/icon/glyph/editor/remove';
38
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
38
39
 
39
40
  import {
40
41
  clearHoverSelection,
@@ -510,6 +511,11 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
510
511
  ? getEditorFeatureFlags()
511
512
  : {};
512
513
 
514
+ const shouldUseIncreasedScalingPercent =
515
+ isTableScalingEnabled &&
516
+ getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') &&
517
+ getBooleanFF('platform.editor.table.use-increased-scaling-percent');
518
+
513
519
  switch (item.value.name) {
514
520
  case 'sort_column_desc':
515
521
  sortColumnWithAnalytics(editorAnalyticsAPI)(
@@ -564,6 +570,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
564
570
  editorAnalyticsAPI,
565
571
  isTableScalingEnabled,
566
572
  tableDuplicateCellColouring,
573
+ shouldUseIncreasedScalingPercent,
567
574
  )(INPUT_METHOD.CONTEXT_MENU, selectionRect.right)(state, dispatch, editorView);
568
575
  this.toggleOpen();
569
576
  break;
@@ -578,11 +585,11 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
578
585
  this.toggleOpen();
579
586
  break;
580
587
  case 'delete_column':
581
- deleteColumnsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU, selectionRect)(
582
- state,
583
- dispatch,
584
- editorView,
585
- );
588
+ deleteColumnsWithAnalytics(
589
+ editorAnalyticsAPI,
590
+ isTableScalingEnabled,
591
+ shouldUseIncreasedScalingPercent,
592
+ )(INPUT_METHOD.CONTEXT_MENU, selectionRect)(state, dispatch, editorView);
586
593
  this.toggleOpen();
587
594
  break;
588
595
  case 'delete_row':
@@ -93,6 +93,7 @@ type DragMenuProps = {
93
93
  scrollableElement?: HTMLElement;
94
94
  isTableScalingEnabled?: boolean;
95
95
  tableDuplicateCellColouring?: boolean;
96
+ shouldUseIncreasedScalingPercent?: boolean;
96
97
  };
97
98
 
98
99
  type PluralOptionType = 'noOfCols' | 'noOfRows' | 'noOfCells' | null;
@@ -261,6 +262,7 @@ export const DragMenu = React.memo(
261
262
  boundariesElement,
262
263
  isTableScalingEnabled,
263
264
  tableDuplicateCellColouring,
265
+ shouldUseIncreasedScalingPercent,
264
266
  }: DragMenuProps & WrappedComponentProps) => {
265
267
  const { state, dispatch } = editorView;
266
268
  const { selection } = state;
@@ -301,6 +303,7 @@ export const DragMenu = React.memo(
301
303
  pluginConfig?.isHeaderRowRequired,
302
304
  isTableScalingEnabled,
303
305
  tableDuplicateCellColouring,
306
+ shouldUseIncreasedScalingPercent,
304
307
  );
305
308
 
306
309
  const { menuItems, menuCallback } = convertToDropdownItems(
@@ -10,6 +10,7 @@ import {
10
10
  akEditorFloatingOverlapPanelZIndex,
11
11
  } from '@atlaskit/editor-shared-styles';
12
12
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
13
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
13
14
 
14
15
  import type { RowStickyState } from '../../pm-plugins/sticky-headers';
15
16
  import type { PluginConfig, TableDirection } from '../../types';
@@ -73,6 +74,11 @@ const FloatingDragMenu = ({
73
74
  ? getEditorFeatureFlags()
74
75
  : {};
75
76
 
77
+ const shouldUseIncreasedScalingPercent =
78
+ isTableScalingEnabled &&
79
+ getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') &&
80
+ getBooleanFF('platform.editor.table.use-increased-scaling-percent');
81
+
76
82
  return (
77
83
  <Popup
78
84
  alignX={direction === 'row' ? 'right' : undefined}
@@ -109,6 +115,7 @@ const FloatingDragMenu = ({
109
115
  scrollableElement={scrollableElement}
110
116
  isTableScalingEnabled={isTableScalingEnabled}
111
117
  tableDuplicateCellColouring={tableDuplicateCellColouring}
118
+ shouldUseIncreasedScalingPercent={shouldUseIncreasedScalingPercent}
112
119
  />
113
120
  </Popup>
114
121
  );
@@ -25,6 +25,7 @@ import { akEditorTableCellOnStickyHeaderZIndex } from '@atlaskit/editor-shared-s
25
25
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
26
26
  import { TableMap } from '@atlaskit/editor-tables/table-map';
27
27
  import { findTable } from '@atlaskit/editor-tables/utils';
28
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
28
29
 
29
30
  import { insertColumnWithAnalytics, insertRowWithAnalytics } from '../../commands-with-analytics';
30
31
  import { getPluginState } from '../../pm-plugins/plugin-factory';
@@ -263,6 +264,11 @@ export class FloatingInsertButton extends React.Component<Props & WrappedCompone
263
264
 
264
265
  const { isTableScalingEnabled = false } = getPluginState(editorView.state);
265
266
 
267
+ const shouldUseIncreasedScalingPercent =
268
+ isTableScalingEnabled &&
269
+ getBooleanFF('platform.editor.table.preserve-widths-with-lock-button') &&
270
+ getBooleanFF('platform.editor.table.use-increased-scaling-percent');
271
+
266
272
  const { tableDuplicateCellColouring = false } = getEditorFeatureFlags
267
273
  ? getEditorFeatureFlags()
268
274
  : {};
@@ -272,6 +278,7 @@ export class FloatingInsertButton extends React.Component<Props & WrappedCompone
272
278
  editorAnalyticsAPI,
273
279
  isTableScalingEnabled,
274
280
  tableDuplicateCellColouring,
281
+ shouldUseIncreasedScalingPercent,
275
282
  )(INPUT_METHOD.BUTTON, insertColumnButtonIndex)(state, dispatch, editorView);
276
283
  }
277
284
  }
@@ -160,6 +160,7 @@ export const getDragMenuConfig = (
160
160
  isHeaderRowRequired?: boolean,
161
161
  isTableScalingEnabled = false,
162
162
  tableDuplicateCellColouring = false,
163
+ shouldUseIncreasedScalingPercent = false,
163
164
  ): DragMenuConfig[] => {
164
165
  const addOptions =
165
166
  direction === 'row'
@@ -271,6 +272,7 @@ export const getDragMenuConfig = (
271
272
  editorAnalyticsAPI,
272
273
  isTableScalingEnabled,
273
274
  tableDuplicateCellColouring,
275
+ shouldUseIncreasedScalingPercent,
274
276
  )(INPUT_METHOD.TABLE_CONTEXT_MENU, (index ?? 0) + offset)(state, dispatch, editorView);
275
277
  }
276
278
  return true;