@atlaskit/editor-plugin-table 7.12.5 → 7.13.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @atlaskit/editor-plugin-table
2
2
 
3
+ ## 7.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#98696](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/98696)
8
+ [`08cf50e592b6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/08cf50e592b6) -
9
+ Added Table Alignment Feature Flag
10
+
11
+ ### Patch Changes
12
+
13
+ - [#97599](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97599)
14
+ [`32c3130b08fe`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/32c3130b08fe) -
15
+ [ED-22282] Bump adf-schema to 36.1.0
16
+
17
+ ## 7.12.6
18
+
19
+ ### Patch Changes
20
+
21
+ - [#98646](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/98646)
22
+ [`b96ae2cfbd99`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b96ae2cfbd99) -
23
+ [ux] Fixes an issue where when the table is in overflow and is scaled due to a narrow screen
24
+ size and a column is inserted or deleted the oveflow is lost.
25
+ - Updated dependencies
26
+
3
27
  ## 7.12.5
4
28
 
5
29
  ### Patch Changes
@@ -475,7 +475,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
475
475
  var isTableWidthChanged = tableNodeWidth !== this.tableNodeWidth;
476
476
  var isTableSquashed = tableRenderWidth < tableNodeWidth;
477
477
  var isNumberColumnChanged = tableNode.attrs.isNumberColumnEnabled !== this.node.attrs.isNumberColumnEnabled;
478
- var maybeScale = isTableSquashed || isTableWidthChanged || isTableResizedFullWidth || isNumberColumnChanged;
478
+ var isNumberOfColumnsChanged = (0, _utils5.tablesHaveDifferentNoOfColumns)(tableNode, this.node);
479
+ var maybeScale = isTableSquashed || isTableWidthChanged || isTableResizedFullWidth || isNumberColumnChanged || isNumberOfColumnsChanged;
479
480
  if (force || maybeScale) {
480
481
  var _this$containerWidth;
481
482
  var containerWidthValue = containerWidth.width;
@@ -484,7 +485,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
484
485
  var isTableResized = (0, _colgroup.hasTableBeenResized)(tableNode);
485
486
  var isColumnsDistributed = wasTableResized && !isTableResized;
486
487
  var isTableDisplayModeChanged = this.node.attrs.displayMode !== tableNode.attrs.displayMode;
487
- var shouldUpdateColgroup = isWidthChanged || isColumnsDistributed || isTableResizedFullWidth || isTableWidthChanged || isTableDisplayModeChanged || isNumberColumnChanged;
488
+ var shouldUpdateColgroup = isWidthChanged || isColumnsDistributed || isTableResizedFullWidth || isTableWidthChanged || isTableDisplayModeChanged || isNumberColumnChanged || isNumberOfColumnsChanged;
488
489
  if (force || !isResizing && shouldUpdateColgroup) {
489
490
  var _this$props$options, _this$props$options2;
490
491
  var resizeState = (0, _utils4.getResizeState)({
@@ -493,7 +494,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
493
494
  table: tableNode,
494
495
  tableRef: this.table,
495
496
  start: start,
496
- domAtPos: view.domAtPos,
497
+ domAtPos: view.domAtPos.bind(view),
497
498
  isTableScalingEnabled: true
498
499
  });
499
500
  var shouldScaleOnColgroupUpdate = false;
@@ -151,8 +151,9 @@ var tablesPlugin = function tablesPlugin(_ref) {
151
151
  tableOptions = _ref3.tableOptions,
152
152
  getEditorFeatureFlags = _ref3.getEditorFeatureFlags,
153
153
  dragAndDropEnabled = _ref3.dragAndDropEnabled,
154
- isTableScalingEnabled = _ref3.isTableScalingEnabled;
155
- return (0, _main.createPlugin)(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, (0, _createPluginConfig.pluginConfig)(tableOptions), defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthEnabled, wasFullWidthEnabled, dragAndDropEnabled, editorAnalyticsAPI, api, isTableScalingEnabled);
154
+ isTableScalingEnabled = _ref3.isTableScalingEnabled,
155
+ isTableAlignmentEnabled = _ref3.isTableAlignmentEnabled;
156
+ return (0, _main.createPlugin)(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, (0, _createPluginConfig.pluginConfig)(tableOptions), defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthEnabled, wasFullWidthEnabled, dragAndDropEnabled, editorAnalyticsAPI, api, isTableScalingEnabled, isTableAlignmentEnabled);
156
157
  }
157
158
  }, {
158
159
  name: 'tablePMColResizing',
@@ -32,7 +32,7 @@ var _pluginFactory = require("./plugin-factory");
32
32
  var _pluginKey = require("./plugin-key");
33
33
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
34
34
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35
- var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled) {
35
+ var createPlugin = exports.createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled, isTableAlignmentEnabled) {
36
36
  var _accessibilityUtils;
37
37
  var state = (0, _pluginFactory.createPluginState)(dispatch, _objectSpread(_objectSpread(_objectSpread({
38
38
  pluginConfig: pluginConfig,
@@ -458,7 +458,8 @@ class TableComponent extends React.Component {
458
458
  const isTableWidthChanged = tableNodeWidth !== this.tableNodeWidth;
459
459
  const isTableSquashed = tableRenderWidth < tableNodeWidth;
460
460
  const isNumberColumnChanged = tableNode.attrs.isNumberColumnEnabled !== this.node.attrs.isNumberColumnEnabled;
461
- const maybeScale = isTableSquashed || isTableWidthChanged || isTableResizedFullWidth || isNumberColumnChanged;
461
+ const isNumberOfColumnsChanged = tablesHaveDifferentNoOfColumns(tableNode, this.node);
462
+ const maybeScale = isTableSquashed || isTableWidthChanged || isTableResizedFullWidth || isNumberColumnChanged || isNumberOfColumnsChanged;
462
463
  if (force || maybeScale) {
463
464
  var _this$containerWidth;
464
465
  const {
@@ -469,7 +470,7 @@ class TableComponent extends React.Component {
469
470
  const isTableResized = hasTableBeenResized(tableNode);
470
471
  const isColumnsDistributed = wasTableResized && !isTableResized;
471
472
  const isTableDisplayModeChanged = this.node.attrs.displayMode !== tableNode.attrs.displayMode;
472
- const shouldUpdateColgroup = isWidthChanged || isColumnsDistributed || isTableResizedFullWidth || isTableWidthChanged || isTableDisplayModeChanged || isNumberColumnChanged;
473
+ const shouldUpdateColgroup = isWidthChanged || isColumnsDistributed || isTableResizedFullWidth || isTableWidthChanged || isTableDisplayModeChanged || isNumberColumnChanged || isNumberOfColumnsChanged;
473
474
  if (force || !isResizing && shouldUpdateColgroup) {
474
475
  var _this$props$options, _this$props$options2;
475
476
  const resizeState = getResizeState({
@@ -478,7 +479,7 @@ class TableComponent extends React.Component {
478
479
  table: tableNode,
479
480
  tableRef: this.table,
480
481
  start,
481
- domAtPos: view.domAtPos,
482
+ domAtPos: view.domAtPos.bind(view),
482
483
  isTableScalingEnabled: true
483
484
  });
484
485
  let shouldScaleOnColgroupUpdate = false;
@@ -142,9 +142,10 @@ const tablesPlugin = ({
142
142
  tableOptions,
143
143
  getEditorFeatureFlags,
144
144
  dragAndDropEnabled,
145
- isTableScalingEnabled
145
+ isTableScalingEnabled,
146
+ isTableAlignmentEnabled
146
147
  } = options || {};
147
- return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthEnabled, wasFullWidthEnabled, dragAndDropEnabled, editorAnalyticsAPI, api, isTableScalingEnabled);
148
+ return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthEnabled, wasFullWidthEnabled, dragAndDropEnabled, editorAnalyticsAPI, api, isTableScalingEnabled, isTableAlignmentEnabled);
148
149
  }
149
150
  }, {
150
151
  name: 'tablePMColResizing',
@@ -22,7 +22,7 @@ import { isHeaderRowRequired } from '../utils/paste';
22
22
  import { defaultHoveredCell, defaultTableSelection } from './default-table-selection';
23
23
  import { createPluginState, getPluginState } from './plugin-factory';
24
24
  import { pluginKey } from './plugin-key';
25
- export const createPlugin = (dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled) => {
25
+ export const createPlugin = (dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled, isTableAlignmentEnabled) => {
26
26
  var _accessibilityUtils;
27
27
  const state = createPluginState(dispatch, {
28
28
  pluginConfig,
@@ -468,7 +468,8 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
468
468
  var isTableWidthChanged = tableNodeWidth !== this.tableNodeWidth;
469
469
  var isTableSquashed = tableRenderWidth < tableNodeWidth;
470
470
  var isNumberColumnChanged = tableNode.attrs.isNumberColumnEnabled !== this.node.attrs.isNumberColumnEnabled;
471
- var maybeScale = isTableSquashed || isTableWidthChanged || isTableResizedFullWidth || isNumberColumnChanged;
471
+ var isNumberOfColumnsChanged = tablesHaveDifferentNoOfColumns(tableNode, this.node);
472
+ var maybeScale = isTableSquashed || isTableWidthChanged || isTableResizedFullWidth || isNumberColumnChanged || isNumberOfColumnsChanged;
472
473
  if (force || maybeScale) {
473
474
  var _this$containerWidth;
474
475
  var containerWidthValue = containerWidth.width;
@@ -477,7 +478,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
477
478
  var isTableResized = hasTableBeenResized(tableNode);
478
479
  var isColumnsDistributed = wasTableResized && !isTableResized;
479
480
  var isTableDisplayModeChanged = this.node.attrs.displayMode !== tableNode.attrs.displayMode;
480
- var shouldUpdateColgroup = isWidthChanged || isColumnsDistributed || isTableResizedFullWidth || isTableWidthChanged || isTableDisplayModeChanged || isNumberColumnChanged;
481
+ var shouldUpdateColgroup = isWidthChanged || isColumnsDistributed || isTableResizedFullWidth || isTableWidthChanged || isTableDisplayModeChanged || isNumberColumnChanged || isNumberOfColumnsChanged;
481
482
  if (force || !isResizing && shouldUpdateColgroup) {
482
483
  var _this$props$options, _this$props$options2;
483
484
  var resizeState = getResizeState({
@@ -486,7 +487,7 @@ var TableComponent = /*#__PURE__*/function (_React$Component) {
486
487
  table: tableNode,
487
488
  tableRef: this.table,
488
489
  start: start,
489
- domAtPos: view.domAtPos,
490
+ domAtPos: view.domAtPos.bind(view),
490
491
  isTableScalingEnabled: true
491
492
  });
492
493
  var shouldScaleOnColgroupUpdate = false;
@@ -144,8 +144,9 @@ var tablesPlugin = function tablesPlugin(_ref) {
144
144
  tableOptions = _ref3.tableOptions,
145
145
  getEditorFeatureFlags = _ref3.getEditorFeatureFlags,
146
146
  dragAndDropEnabled = _ref3.dragAndDropEnabled,
147
- isTableScalingEnabled = _ref3.isTableScalingEnabled;
148
- return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthEnabled, wasFullWidthEnabled, dragAndDropEnabled, editorAnalyticsAPI, api, isTableScalingEnabled);
147
+ isTableScalingEnabled = _ref3.isTableScalingEnabled,
148
+ isTableAlignmentEnabled = _ref3.isTableAlignmentEnabled;
149
+ return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), defaultGetEditorContainerWidth, getEditorFeatureFlags || defaultGetEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthEnabled, wasFullWidthEnabled, dragAndDropEnabled, editorAnalyticsAPI, api, isTableScalingEnabled, isTableAlignmentEnabled);
149
150
  }
150
151
  }, {
151
152
  name: 'tablePMColResizing',
@@ -25,7 +25,7 @@ import { isHeaderRowRequired } from '../utils/paste';
25
25
  import { defaultHoveredCell, defaultTableSelection } from './default-table-selection';
26
26
  import { createPluginState, getPluginState } from './plugin-factory';
27
27
  import { pluginKey } from './plugin-key';
28
- export var createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled) {
28
+ export var createPlugin = function createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, getEditorContainerWidth, getEditorFeatureFlags, getIntl, tableResizingEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled, dragAndDropEnabled, editorAnalyticsAPI, pluginInjectionApi, isTableScalingEnabled, isTableAlignmentEnabled) {
29
29
  var _accessibilityUtils;
30
30
  var state = createPluginState(dispatch, _objectSpread(_objectSpread(_objectSpread({
31
31
  pluginConfig: pluginConfig,
@@ -18,6 +18,7 @@ export interface TablePluginOptions {
18
18
  wasFullWidthEnabled?: boolean;
19
19
  getEditorFeatureFlags?: GetEditorFeatureFlags;
20
20
  isTableScalingEnabled?: boolean;
21
+ isTableAlignmentEnabled?: boolean;
21
22
  }
22
23
  type InsertTableAction = (analyticsPayload: AnalyticsEventPayload) => Command;
23
24
  type MediaPlugin = NextEditorPlugin<'media', {
@@ -6,4 +6,4 @@ import type { LegacyPortalProviderAPI } from '@atlaskit/editor-common/portal-pro
6
6
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
7
7
  import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
8
8
  import type { PluginConfig, PluginInjectionAPI } from '../types';
9
- export declare const createPlugin: (dispatchAnalyticsEvent: DispatchAnalyticsEvent, dispatch: Dispatch, portalProviderAPI: LegacyPortalProviderAPI | PortalProviderAPI, eventDispatcher: EventDispatcher, pluginConfig: PluginConfig, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, getIntl: () => IntlShape, tableResizingEnabled?: boolean, fullWidthModeEnabled?: boolean, previousFullWidthModeEnabled?: boolean, dragAndDropEnabled?: boolean, editorAnalyticsAPI?: EditorAnalyticsAPI, pluginInjectionApi?: PluginInjectionAPI, isTableScalingEnabled?: boolean) => SafePlugin<import("../types").TablePluginState>;
9
+ export declare const createPlugin: (dispatchAnalyticsEvent: DispatchAnalyticsEvent, dispatch: Dispatch, portalProviderAPI: LegacyPortalProviderAPI | PortalProviderAPI, eventDispatcher: EventDispatcher, pluginConfig: PluginConfig, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, getIntl: () => IntlShape, tableResizingEnabled?: boolean, fullWidthModeEnabled?: boolean, previousFullWidthModeEnabled?: boolean, dragAndDropEnabled?: boolean, editorAnalyticsAPI?: EditorAnalyticsAPI, pluginInjectionApi?: PluginInjectionAPI, isTableScalingEnabled?: boolean, isTableAlignmentEnabled?: boolean) => SafePlugin<import("../types").TablePluginState>;
@@ -18,6 +18,7 @@ export interface TablePluginOptions {
18
18
  wasFullWidthEnabled?: boolean;
19
19
  getEditorFeatureFlags?: GetEditorFeatureFlags;
20
20
  isTableScalingEnabled?: boolean;
21
+ isTableAlignmentEnabled?: boolean;
21
22
  }
22
23
  type InsertTableAction = (analyticsPayload: AnalyticsEventPayload) => Command;
23
24
  type MediaPlugin = NextEditorPlugin<'media', {
@@ -6,4 +6,4 @@ import type { LegacyPortalProviderAPI } from '@atlaskit/editor-common/portal-pro
6
6
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
7
7
  import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
8
8
  import type { PluginConfig, PluginInjectionAPI } from '../types';
9
- export declare const createPlugin: (dispatchAnalyticsEvent: DispatchAnalyticsEvent, dispatch: Dispatch, portalProviderAPI: LegacyPortalProviderAPI | PortalProviderAPI, eventDispatcher: EventDispatcher, pluginConfig: PluginConfig, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, getIntl: () => IntlShape, tableResizingEnabled?: boolean, fullWidthModeEnabled?: boolean, previousFullWidthModeEnabled?: boolean, dragAndDropEnabled?: boolean, editorAnalyticsAPI?: EditorAnalyticsAPI, pluginInjectionApi?: PluginInjectionAPI, isTableScalingEnabled?: boolean) => SafePlugin<import("../types").TablePluginState>;
9
+ export declare const createPlugin: (dispatchAnalyticsEvent: DispatchAnalyticsEvent, dispatch: Dispatch, portalProviderAPI: LegacyPortalProviderAPI | PortalProviderAPI, eventDispatcher: EventDispatcher, pluginConfig: PluginConfig, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, getIntl: () => IntlShape, tableResizingEnabled?: boolean, fullWidthModeEnabled?: boolean, previousFullWidthModeEnabled?: boolean, dragAndDropEnabled?: boolean, editorAnalyticsAPI?: EditorAnalyticsAPI, pluginInjectionApi?: PluginInjectionAPI, isTableScalingEnabled?: boolean, isTableAlignmentEnabled?: boolean) => SafePlugin<import("../types").TablePluginState>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-table",
3
- "version": "7.12.5",
3
+ "version": "7.13.0",
4
4
  "description": "Table plugin for the @atlaskit/editor",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -28,7 +28,7 @@
28
28
  "runReact18": false
29
29
  },
30
30
  "dependencies": {
31
- "@atlaskit/adf-schema": "^35.12.2",
31
+ "@atlaskit/adf-schema": "^36.1.0",
32
32
  "@atlaskit/custom-steps": "^0.1.0",
33
33
  "@atlaskit/editor-common": "^79.2.0",
34
34
  "@atlaskit/editor-palette": "1.6.0",
@@ -49,9 +49,9 @@
49
49
  "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^1.3.0",
50
50
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.0",
51
51
  "@atlaskit/primitives": "^6.1.0",
52
- "@atlaskit/theme": "^12.7.0",
52
+ "@atlaskit/theme": "^12.8.0",
53
53
  "@atlaskit/toggle": "^13.1.0",
54
- "@atlaskit/tokens": "^1.45.0",
54
+ "@atlaskit/tokens": "^1.46.0",
55
55
  "@atlaskit/tooltip": "^18.3.0",
56
56
  "@babel/runtime": "^7.0.0",
57
57
  "@emotion/react": "^11.7.1",
@@ -387,12 +387,17 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
387
387
  const isNumberColumnChanged =
388
388
  tableNode.attrs.isNumberColumnEnabled !==
389
389
  this.node.attrs.isNumberColumnEnabled;
390
+ const isNumberOfColumnsChanged = tablesHaveDifferentNoOfColumns(
391
+ tableNode,
392
+ this.node,
393
+ );
390
394
 
391
395
  const maybeScale =
392
396
  isTableSquashed ||
393
397
  isTableWidthChanged ||
394
398
  isTableResizedFullWidth ||
395
- isNumberColumnChanged;
399
+ isNumberColumnChanged ||
400
+ isNumberOfColumnsChanged;
396
401
 
397
402
  if (force || maybeScale) {
398
403
  const { width: containerWidthValue } = containerWidth;
@@ -409,7 +414,8 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
409
414
  isTableResizedFullWidth ||
410
415
  isTableWidthChanged ||
411
416
  isTableDisplayModeChanged ||
412
- isNumberColumnChanged;
417
+ isNumberColumnChanged ||
418
+ isNumberOfColumnsChanged;
413
419
 
414
420
  if (force || (!isResizing && shouldUpdateColgroup)) {
415
421
  const resizeState = getResizeState({
@@ -418,7 +424,7 @@ class TableComponent extends React.Component<ComponentProps, TableState> {
418
424
  table: tableNode,
419
425
  tableRef: this.table,
420
426
  start,
421
- domAtPos: view.domAtPos,
427
+ domAtPos: view.domAtPos.bind(view),
422
428
  isTableScalingEnabled: true,
423
429
  });
424
430
 
package/src/plugin.tsx CHANGED
@@ -102,6 +102,7 @@ export interface TablePluginOptions {
102
102
  wasFullWidthEnabled?: boolean;
103
103
  getEditorFeatureFlags?: GetEditorFeatureFlags;
104
104
  isTableScalingEnabled?: boolean;
105
+ isTableAlignmentEnabled?: boolean;
105
106
  }
106
107
 
107
108
  type InsertTableAction = (analyticsPayload: AnalyticsEventPayload) => Command;
@@ -267,7 +268,9 @@ const tablesPlugin: TablePlugin = ({ config: options, api }) => {
267
268
  getEditorFeatureFlags,
268
269
  dragAndDropEnabled,
269
270
  isTableScalingEnabled,
271
+ isTableAlignmentEnabled,
270
272
  } = options || ({} as TablePluginOptions);
273
+
271
274
  return createPlugin(
272
275
  dispatchAnalyticsEvent,
273
276
  dispatch,
@@ -284,6 +287,7 @@ const tablesPlugin: TablePlugin = ({ config: options, api }) => {
284
287
  editorAnalyticsAPI,
285
288
  api,
286
289
  isTableScalingEnabled,
290
+ isTableAlignmentEnabled,
287
291
  );
288
292
  },
289
293
  },
@@ -115,6 +115,7 @@ export const createPlugin = (
115
115
  editorAnalyticsAPI?: EditorAnalyticsAPI,
116
116
  pluginInjectionApi?: PluginInjectionAPI,
117
117
  isTableScalingEnabled?: boolean,
118
+ isTableAlignmentEnabled?: boolean,
118
119
  ) => {
119
120
  const state = createPluginState(dispatch, {
120
121
  pluginConfig,