@atlaskit/editor-plugin-table 19.0.1 → 21.0.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 (131) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/cjs/nodeviews/TableComponent.js +2 -2
  3. package/dist/cjs/nodeviews/TableResizer.js +2 -2
  4. package/dist/cjs/nodeviews/table.js +18 -2
  5. package/dist/cjs/nodeviews/toDOM.js +18 -4
  6. package/dist/cjs/pm-plugins/main.js +38 -4
  7. package/dist/cjs/pm-plugins/table-width.js +10 -0
  8. package/dist/cjs/pm-plugins/transforms/content-mode.js +48 -0
  9. package/dist/cjs/pm-plugins/transforms/fix-tables.js +4 -35
  10. package/dist/cjs/pm-plugins/transforms/table-transform-utils.js +62 -0
  11. package/dist/cjs/pm-plugins/utils/decoration.js +2 -2
  12. package/dist/cjs/pm-plugins/utils/tableMode.js +149 -0
  13. package/dist/cjs/pm-plugins/view-mode-sort/index.js +2 -2
  14. package/dist/cjs/ui/ColumnResizeWidget/index.js +2 -2
  15. package/dist/cjs/ui/DragHandle/index.js +2 -2
  16. package/dist/cjs/ui/FloatingContextualButton/index.js +2 -2
  17. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +2 -2
  18. package/dist/cjs/ui/FloatingDeleteButton/DeleteButton.js +2 -2
  19. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +2 -2
  20. package/dist/cjs/ui/FloatingInsertButton/InsertButton.js +3 -3
  21. package/dist/cjs/ui/FloatingInsertButton/index.js +2 -2
  22. package/dist/cjs/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +2 -2
  23. package/dist/cjs/ui/TableFloatingControls/CornerControls/DragCornerControls.js +3 -3
  24. package/dist/cjs/ui/TableFloatingControls/RowControls/ClassicControls.js +2 -2
  25. package/dist/cjs/ui/TableFullWidthLabel/index.js +2 -2
  26. package/dist/cjs/ui/event-handlers.js +3 -2
  27. package/dist/cjs/ui/toolbar.js +25 -2
  28. package/dist/es2019/nodeviews/TableComponent.js +1 -1
  29. package/dist/es2019/nodeviews/TableResizer.js +1 -1
  30. package/dist/es2019/nodeviews/table.js +18 -2
  31. package/dist/es2019/nodeviews/toDOM.js +18 -4
  32. package/dist/es2019/pm-plugins/main.js +38 -4
  33. package/dist/es2019/pm-plugins/table-width.js +10 -0
  34. package/dist/es2019/pm-plugins/transforms/content-mode.js +39 -0
  35. package/dist/es2019/pm-plugins/transforms/fix-tables.js +2 -33
  36. package/dist/es2019/pm-plugins/transforms/table-transform-utils.js +56 -0
  37. package/dist/es2019/pm-plugins/utils/decoration.js +1 -1
  38. package/dist/es2019/pm-plugins/utils/tableMode.js +148 -0
  39. package/dist/es2019/pm-plugins/view-mode-sort/index.js +1 -1
  40. package/dist/es2019/ui/ColumnResizeWidget/index.js +1 -1
  41. package/dist/es2019/ui/DragHandle/index.js +1 -1
  42. package/dist/es2019/ui/FloatingContextualButton/index.js +1 -1
  43. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +1 -1
  44. package/dist/es2019/ui/FloatingDeleteButton/DeleteButton.js +1 -1
  45. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +1 -1
  46. package/dist/es2019/ui/FloatingInsertButton/InsertButton.js +1 -1
  47. package/dist/es2019/ui/FloatingInsertButton/index.js +1 -1
  48. package/dist/es2019/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +1 -1
  49. package/dist/es2019/ui/TableFloatingControls/CornerControls/DragCornerControls.js +1 -1
  50. package/dist/es2019/ui/TableFloatingControls/RowControls/ClassicControls.js +1 -1
  51. package/dist/es2019/ui/TableFullWidthLabel/index.js +1 -1
  52. package/dist/es2019/ui/event-handlers.js +4 -3
  53. package/dist/es2019/ui/toolbar.js +23 -2
  54. package/dist/esm/nodeviews/TableComponent.js +1 -1
  55. package/dist/esm/nodeviews/TableResizer.js +1 -1
  56. package/dist/esm/nodeviews/table.js +18 -2
  57. package/dist/esm/nodeviews/toDOM.js +18 -4
  58. package/dist/esm/pm-plugins/main.js +38 -4
  59. package/dist/esm/pm-plugins/table-width.js +10 -0
  60. package/dist/esm/pm-plugins/transforms/content-mode.js +41 -0
  61. package/dist/esm/pm-plugins/transforms/fix-tables.js +2 -33
  62. package/dist/esm/pm-plugins/transforms/table-transform-utils.js +56 -0
  63. package/dist/esm/pm-plugins/utils/decoration.js +1 -1
  64. package/dist/esm/pm-plugins/utils/tableMode.js +143 -0
  65. package/dist/esm/pm-plugins/view-mode-sort/index.js +1 -1
  66. package/dist/esm/ui/ColumnResizeWidget/index.js +1 -1
  67. package/dist/esm/ui/DragHandle/index.js +1 -1
  68. package/dist/esm/ui/FloatingContextualButton/index.js +1 -1
  69. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +1 -1
  70. package/dist/esm/ui/FloatingDeleteButton/DeleteButton.js +1 -1
  71. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +1 -1
  72. package/dist/esm/ui/FloatingInsertButton/InsertButton.js +1 -1
  73. package/dist/esm/ui/FloatingInsertButton/index.js +1 -1
  74. package/dist/esm/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +1 -1
  75. package/dist/esm/ui/TableFloatingControls/CornerControls/DragCornerControls.js +1 -1
  76. package/dist/esm/ui/TableFloatingControls/RowControls/ClassicControls.js +1 -1
  77. package/dist/esm/ui/TableFullWidthLabel/index.js +1 -1
  78. package/dist/esm/ui/event-handlers.js +4 -3
  79. package/dist/esm/ui/toolbar.js +25 -2
  80. package/dist/types/nodeviews/TableComponent.d.ts +2 -2
  81. package/dist/types/pm-plugins/commands/column-resize.d.ts +1 -1
  82. package/dist/types/pm-plugins/commands/commands-with-analytics.d.ts +1 -1
  83. package/dist/types/pm-plugins/commands/go-to-next-cell.d.ts +1 -1
  84. package/dist/types/pm-plugins/commands/selection.d.ts +1 -1
  85. package/dist/types/pm-plugins/decorations/utils/column-resizing.d.ts +1 -1
  86. package/dist/types/pm-plugins/drag-and-drop/commands-with-analytics.d.ts +1 -1
  87. package/dist/types/pm-plugins/keymap.d.ts +1 -1
  88. package/dist/types/pm-plugins/main.d.ts +1 -1
  89. package/dist/types/pm-plugins/table-selection-keymap.d.ts +1 -1
  90. package/dist/types/pm-plugins/transforms/content-mode.d.ts +8 -0
  91. package/dist/types/pm-plugins/transforms/table-transform-utils.d.ts +11 -0
  92. package/dist/types/pm-plugins/utils/decoration.d.ts +1 -1
  93. package/dist/types/pm-plugins/utils/table.d.ts +1 -1
  94. package/dist/types/pm-plugins/utils/tableMode.d.ts +22 -0
  95. package/dist/types/types/index.d.ts +4 -1
  96. package/dist/types/ui/DragHandle/index.d.ts +2 -2
  97. package/dist/types/ui/FloatingContextualMenu/ContextualMenu.d.ts +2 -2
  98. package/dist/types/ui/FloatingDeleteButton/DeleteButton.d.ts +2 -2
  99. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
  100. package/dist/types/ui/FloatingInsertButton/InsertButton.d.ts +3 -3
  101. package/dist/types/ui/FloatingInsertButton/index.d.ts +2 -2
  102. package/dist/types/ui/TableFloatingControls/CornerControls/ClassicCornerControls.d.ts +2 -2
  103. package/dist/types/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +3 -3
  104. package/dist/types/ui/TableFloatingControls/RowControls/ClassicControls.d.ts +2 -2
  105. package/dist/types-ts4.5/nodeviews/TableComponent.d.ts +2 -2
  106. package/dist/types-ts4.5/pm-plugins/commands/column-resize.d.ts +1 -1
  107. package/dist/types-ts4.5/pm-plugins/commands/commands-with-analytics.d.ts +1 -1
  108. package/dist/types-ts4.5/pm-plugins/commands/go-to-next-cell.d.ts +1 -1
  109. package/dist/types-ts4.5/pm-plugins/commands/selection.d.ts +1 -1
  110. package/dist/types-ts4.5/pm-plugins/decorations/utils/column-resizing.d.ts +1 -1
  111. package/dist/types-ts4.5/pm-plugins/drag-and-drop/commands-with-analytics.d.ts +1 -1
  112. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +1 -1
  113. package/dist/types-ts4.5/pm-plugins/main.d.ts +1 -1
  114. package/dist/types-ts4.5/pm-plugins/table-selection-keymap.d.ts +1 -1
  115. package/dist/types-ts4.5/pm-plugins/transforms/content-mode.d.ts +8 -0
  116. package/dist/types-ts4.5/pm-plugins/transforms/table-transform-utils.d.ts +11 -0
  117. package/dist/types-ts4.5/pm-plugins/utils/decoration.d.ts +1 -1
  118. package/dist/types-ts4.5/pm-plugins/utils/table.d.ts +1 -1
  119. package/dist/types-ts4.5/pm-plugins/utils/tableMode.d.ts +22 -0
  120. package/dist/types-ts4.5/types/index.d.ts +4 -1
  121. package/dist/types-ts4.5/ui/DragHandle/index.d.ts +2 -2
  122. package/dist/types-ts4.5/ui/FloatingContextualMenu/ContextualMenu.d.ts +2 -2
  123. package/dist/types-ts4.5/ui/FloatingDeleteButton/DeleteButton.d.ts +2 -2
  124. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -2
  125. package/dist/types-ts4.5/ui/FloatingInsertButton/InsertButton.d.ts +3 -3
  126. package/dist/types-ts4.5/ui/FloatingInsertButton/index.d.ts +2 -2
  127. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/ClassicCornerControls.d.ts +2 -2
  128. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +3 -3
  129. package/dist/types-ts4.5/ui/TableFloatingControls/RowControls/ClassicControls.d.ts +2 -2
  130. package/package.json +25 -21
  131. package/report.api.md +1 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isTableInContentMode = exports.isContentModeSupported = exports.hasTableBeenResized = exports.applyMeasuredWidthToSelectedTable = exports.applyMeasuredWidthToAllTables = void 0;
7
+ var _analytics = require("@atlaskit/editor-common/analytics");
8
+ var _styles = require("@atlaskit/editor-common/styles");
9
+ var _utils = require("@atlaskit/editor-tables/utils");
10
+ var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
11
+ var _colgroup = require("../table-resizing/utils/colgroup");
12
+ var _contentMode = require("../transforms/content-mode");
13
+ var _alignment = require("./alignment");
14
+ var isTableInContentMode = exports.isTableInContentMode = function isTableInContentMode(_ref) {
15
+ var allowColumnResizing = _ref.allowColumnResizing,
16
+ allowTableResizing = _ref.allowTableResizing,
17
+ isFullPageEditor = _ref.isFullPageEditor,
18
+ isTableNested = _ref.isTableNested,
19
+ node = _ref.node;
20
+ if (!(0, _expValEqualsNoExposure.expValEqualsNoExposure)('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true)) {
21
+ return false;
22
+ }
23
+ if (!node || isTableNested) {
24
+ return false;
25
+ }
26
+ return isContentModeSupported({
27
+ allowColumnResizing: allowColumnResizing,
28
+ allowTableResizing: allowTableResizing,
29
+ isFullPageEditor: isFullPageEditor
30
+ }) && !hasTableBeenResized(node) && node.attrs.layout === _alignment.ALIGN_START;
31
+ };
32
+ var isContentModeSupported = exports.isContentModeSupported = function isContentModeSupported(_ref2) {
33
+ var allowColumnResizing = _ref2.allowColumnResizing,
34
+ allowTableResizing = _ref2.allowTableResizing,
35
+ isFullPageEditor = _ref2.isFullPageEditor;
36
+ return allowColumnResizing && allowTableResizing && isFullPageEditor;
37
+ };
38
+ var hasTableBeenResized = exports.hasTableBeenResized = function hasTableBeenResized(node) {
39
+ return node.attrs.width !== null || (0, _colgroup.hasTableColumnBeenResized)(node);
40
+ };
41
+
42
+ /**
43
+ * Iterates all top-level tables in the document, and for those in content mode,
44
+ * measures rendered column widths and sets colwidth + table width attributes
45
+ * in a single batched transaction.
46
+ */
47
+ var applyMeasuredWidthToAllTables = exports.applyMeasuredWidthToAllTables = function applyMeasuredWidthToAllTables(view, pluginInjectionApi) {
48
+ var _view$state = view.state,
49
+ doc = _view$state.doc,
50
+ schema = _view$state.schema;
51
+ var tr = view.state.tr;
52
+ var table = schema.nodes.table;
53
+ var modified = false;
54
+ var measuredTables = [];
55
+
56
+ // modify only top-level tables
57
+ doc.forEach(function (node, offset) {
58
+ if (node.type !== table || hasTableBeenResized(node) && node.attrs.layout !== _alignment.ALIGN_START) {
59
+ return;
60
+ }
61
+ var domNode = view.domAtPos(offset + 1).node;
62
+ var tableWrapper = domNode instanceof HTMLElement ? domNode.closest(".".concat(_styles.TableSharedCssClassName.TABLE_VIEW_CONTENT_WRAP)) : null;
63
+ var tableRef = tableWrapper === null || tableWrapper === void 0 ? void 0 : tableWrapper.querySelector('table');
64
+ if (!tableRef) {
65
+ return;
66
+ }
67
+ measuredTables.push({
68
+ node: node,
69
+ offset: offset,
70
+ measurement: (0, _contentMode.getTableMeasurement)(tableRef)
71
+ });
72
+ });
73
+ measuredTables.forEach(function (_ref3) {
74
+ var node = _ref3.node,
75
+ offset = _ref3.offset,
76
+ measurement = _ref3.measurement;
77
+ tr = (0, _contentMode.applyTableMeasurement)(tr, node, measurement, offset);
78
+ modified = true;
79
+ });
80
+ if (modified) {
81
+ var _pluginInjectionApi$a, _pluginInjectionApi$w, _pluginInjectionApi$w2;
82
+ pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 || (_pluginInjectionApi$a = _pluginInjectionApi$a.actions) === null || _pluginInjectionApi$a === void 0 || _pluginInjectionApi$a.attachAnalyticsEvent({
83
+ action: _analytics.TABLE_ACTION.FIT_TO_CONTENT_AUTO_CONVERTED,
84
+ actionSubject: _analytics.ACTION_SUBJECT.TABLE,
85
+ actionSubjectId: null,
86
+ eventType: _analytics.EVENT_TYPE.TRACK,
87
+ attributes: {
88
+ editorContainerWidth: (_pluginInjectionApi$w = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$w2 = pluginInjectionApi.width) === null || _pluginInjectionApi$w2 === void 0 || (_pluginInjectionApi$w2 = _pluginInjectionApi$w2.sharedState.currentState()) === null || _pluginInjectionApi$w2 === void 0 ? void 0 : _pluginInjectionApi$w2.width) !== null && _pluginInjectionApi$w !== void 0 ? _pluginInjectionApi$w : 0,
89
+ totalTablesResized: measuredTables.length,
90
+ measurements: measuredTables.map(function (_ref4) {
91
+ var measurement = _ref4.measurement;
92
+ return {
93
+ tableWidth: measurement.tableWidth,
94
+ totalColumnCount: measurement.colWidths.length
95
+ };
96
+ })
97
+ }
98
+ })(tr);
99
+ view.dispatch(tr.setMeta('addToHistory', false));
100
+ }
101
+ };
102
+ var applyMeasuredWidthToSelectedTable = exports.applyMeasuredWidthToSelectedTable = function applyMeasuredWidthToSelectedTable(view, api) {
103
+ var _api$analytics, _api$width$sharedStat, _api$width;
104
+ var tableObject = (0, _utils.findTable)(view.state.selection);
105
+ if (!tableObject) {
106
+ return;
107
+ }
108
+ var node = tableObject.node,
109
+ pos = tableObject.pos;
110
+ var tableState = api === null || api === void 0 ? void 0 : api.table.sharedState.currentState();
111
+ if (!(tableState !== null && tableState !== void 0 && tableState.tableRef)) {
112
+ return;
113
+ }
114
+ var tableRef = tableState.tableRef;
115
+
116
+ // Instead of dispatching a transaction to "strip widths" and then waiting
117
+ // for a rAF to measure natural column widths, instea directly update the DOM elements and
118
+ // take a measurement.
119
+ var cols = Array.from(tableRef.querySelectorAll(':scope > colgroup > col'));
120
+ var contentWrap = tableRef.closest(".".concat(_styles.TableSharedCssClassName.TABLE_VIEW_CONTENT_WRAP));
121
+ var resizerContainer = contentWrap === null || contentWrap === void 0 ? void 0 : contentWrap.querySelector(".".concat(_styles.TableSharedCssClassName.TABLE_RESIZER_CONTAINER));
122
+ var resizerItem = resizerContainer === null || resizerContainer === void 0 ? void 0 : resizerContainer.querySelector('.resizer-item.display-handle');
123
+ tableRef.style.width = '';
124
+ tableRef.style.tableLayout = 'auto';
125
+ cols.forEach(function (col) {
126
+ return col.style.width = '';
127
+ });
128
+ if (resizerContainer) {
129
+ resizerContainer.style.width = 'max-content';
130
+ resizerContainer.style.setProperty('--ak-editor-table-width', 'max-content');
131
+ }
132
+ if (resizerItem) {
133
+ resizerItem.style.width = 'max-content';
134
+ }
135
+ var measurement = (0, _contentMode.getTableMeasurement)(tableRef);
136
+ var tr = (0, _contentMode.applyTableMeasurement)(view.state.tr, node, measurement, pos);
137
+ api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || (_api$analytics = _api$analytics.actions) === null || _api$analytics === void 0 || _api$analytics.attachAnalyticsEvent({
138
+ action: _analytics.TABLE_ACTION.FIT_TO_CONTENT_ON_DEMAND,
139
+ actionSubject: _analytics.ACTION_SUBJECT.TABLE,
140
+ actionSubjectId: null,
141
+ eventType: _analytics.EVENT_TYPE.TRACK,
142
+ attributes: {
143
+ editorContainerWidth: (_api$width$sharedStat = api === null || api === void 0 || (_api$width = api.width) === null || _api$width === void 0 || (_api$width = _api$width.sharedState.currentState()) === null || _api$width === void 0 ? void 0 : _api$width.width) !== null && _api$width$sharedStat !== void 0 ? _api$width$sharedStat : 0,
144
+ tableWidth: measurement.tableWidth,
145
+ totalColumnCount: measurement.colWidths.length
146
+ }
147
+ })(tr);
148
+ view.dispatch(tr);
149
+ };
@@ -9,7 +9,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _react = require("react");
12
- var _reactIntlNext = require("react-intl-next");
12
+ var _reactIntl = require("react-intl");
13
13
  var _v = _interopRequireDefault(require("uuid/v4"));
14
14
  var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
15
15
  var _types = require("@atlaskit/editor-common/types");
@@ -131,7 +131,7 @@ var createPlugin = exports.createPlugin = function createPlugin(api, nodeViewPor
131
131
  var _getPluginState = (0, _pluginFactory.getPluginState)(oldState),
132
132
  getIntl = _getPluginState.getIntl;
133
133
  nodeViewPortalProviderAPI.render(function () {
134
- return /*#__PURE__*/(0, _react.createElement)(_reactIntlNext.RawIntlProvider, {
134
+ return /*#__PURE__*/(0, _react.createElement)(_reactIntl.RawIntlProvider, {
135
135
  value: getIntl()
136
136
  }, /*#__PURE__*/(0, _react.createElement)(_SortingIconWrapper.SortingIconWrapper, {
137
137
  isSortingAllowed: !hasMergedCells,
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ColumnResizeWidget = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _react = require("@emotion/react");
10
- var _reactIntlNext = require("react-intl-next");
10
+ var _reactIntl = require("react-intl");
11
11
  var _keymaps = require("@atlaskit/editor-common/keymaps");
12
12
  var _messages = require("@atlaskit/editor-common/messages");
13
13
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
@@ -22,7 +22,7 @@ var ColumnResizeWidget = exports.ColumnResizeWidget = function ColumnResizeWidge
22
22
  var startIndex = _ref.startIndex,
23
23
  endIndex = _ref.endIndex,
24
24
  includeTooltip = _ref.includeTooltip;
25
- var _useIntl = (0, _reactIntlNext.useIntl)(),
25
+ var _useIntl = (0, _reactIntl.useIntl)(),
26
26
  formatMessage = _useIntl.formatMessage;
27
27
  if (!includeTooltip) {
28
28
  return (0, _react.jsx)("div", {
@@ -11,7 +11,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _classnames2 = _interopRequireDefault(require("classnames"));
13
13
  var _reactDom = _interopRequireDefault(require("react-dom"));
14
- var _reactIntlNext = require("react-intl-next");
14
+ var _reactIntl = require("react-intl");
15
15
  var _browser = require("@atlaskit/editor-common/browser");
16
16
  var _messages = require("@atlaskit/editor-common/messages");
17
17
  var _state = require("@atlaskit/editor-prosemirror/state");
@@ -254,4 +254,4 @@ var DragHandleComponent = function DragHandleComponent(_ref) {
254
254
  height: previewHeight
255
255
  }), previewContainer));
256
256
  };
257
- var DragHandle = exports.DragHandle = (0, _reactIntlNext.injectIntl)(DragHandleComponent);
257
+ var DragHandle = exports.DragHandle = (0, _reactIntl.injectIntl)(DragHandleComponent);
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = _default;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _react2 = require("@emotion/react");
11
- var _reactIntlNext = require("react-intl-next");
11
+ var _reactIntl = require("react-intl");
12
12
  var _analytics = require("@atlaskit/editor-common/analytics");
13
13
  var _errorBoundary = require("@atlaskit/editor-common/error-boundary");
14
14
  var _keymaps = require("@atlaskit/editor-common/keymaps");
@@ -174,7 +174,7 @@ var FloatingContextualButtonInner = /*#__PURE__*/_react.default.memo(function (p
174
174
  zIndex: _editorSharedStyles.akEditorSmallZIndex
175
175
  }, button);
176
176
  });
177
- var FloatingContextualButton = (0, _reactIntlNext.injectIntl)(FloatingContextualButtonInner);
177
+ var FloatingContextualButton = (0, _reactIntl.injectIntl)(FloatingContextualButtonInner);
178
178
  function _default(props) {
179
179
  return (0, _react2.jsx)(_errorBoundary.ErrorBoundary, {
180
180
  component: _analytics.ACTION_SUBJECT.FLOATING_CONTEXTUAL_BUTTON,
@@ -15,7 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
  var _react2 = require("@emotion/react");
18
- var _reactIntlNext = require("react-intl-next");
18
+ var _reactIntl = require("react-intl");
19
19
  var _customSteps = require("@atlaskit/custom-steps");
20
20
  var _analytics = require("@atlaskit/editor-common/analytics");
21
21
  var _keymaps = require("@atlaskit/editor-common/keymaps");
@@ -823,4 +823,4 @@ var ContextualMenu = exports.ContextualMenu = /*#__PURE__*/function (_Component)
823
823
  (0, _defineProperty2.default)(ContextualMenu, "defaultProps", {
824
824
  boundariesElement: typeof document !== 'undefined' ? document.body : undefined
825
825
  });
826
- var _default = exports.default = (0, _reactIntlNext.injectIntl)(ContextualMenu);
826
+ var _default = exports.default = (0, _reactIntl.injectIntl)(ContextualMenu);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _reactIntlNext = require("react-intl-next");
9
+ var _reactIntl = require("react-intl");
10
10
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
11
11
  var _types = require("../../types");
12
12
  var DeleteButton = function DeleteButton(_ref) {
@@ -46,4 +46,4 @@ var DeleteButton = function DeleteButton(_ref) {
46
46
  fillRule: "evenodd"
47
47
  }))));
48
48
  };
49
- var _default = exports.default = (0, _reactIntlNext.injectIntl)(DeleteButton);
49
+ var _default = exports.default = (0, _reactIntl.injectIntl)(DeleteButton);
@@ -10,7 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _react2 = require("@emotion/react");
13
- var _reactIntlNext = require("react-intl-next");
13
+ var _reactIntl = require("react-intl");
14
14
  var _analytics = require("@atlaskit/editor-common/analytics");
15
15
  var _messages = require("@atlaskit/editor-common/messages");
16
16
  var _styles = require("@atlaskit/editor-common/styles");
@@ -592,4 +592,4 @@ var DragMenu = /*#__PURE__*/_react.default.memo(function (_ref) {
592
592
  scrollableElement: scrollableElement
593
593
  }));
594
594
  });
595
- var _default = exports.default = (0, _reactIntlNext.injectIntl)(DragMenu);
595
+ var _default = exports.default = (0, _reactIntl.injectIntl)(DragMenu);
@@ -8,7 +8,7 @@ exports.default = exports.DragAndDropInsertButton = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _classnames2 = _interopRequireDefault(require("classnames"));
11
- var _reactIntlNext = require("react-intl-next");
11
+ var _reactIntl = require("react-intl");
12
12
  var _keymaps = require("@atlaskit/editor-common/keymaps");
13
13
  var _messages = require("@atlaskit/editor-common/messages");
14
14
  var _styles = require("@atlaskit/editor-common/styles");
@@ -124,7 +124,7 @@ var InsertButtonForDragAndDrop = function InsertButtonForDragAndDrop(_ref2) {
124
124
  }, content))
125
125
  );
126
126
  };
127
- var DragAndDropInsertButton = exports.DragAndDropInsertButton = (0, _reactIntlNext.injectIntl)(InsertButtonForDragAndDrop);
127
+ var DragAndDropInsertButton = exports.DragAndDropInsertButton = (0, _reactIntl.injectIntl)(InsertButtonForDragAndDrop);
128
128
  var InsertButton = function InsertButton(_ref3) {
129
129
  var onMouseDown = _ref3.onMouseDown,
130
130
  tableRef = _ref3.tableRef,
@@ -175,4 +175,4 @@ var InsertButton = function InsertButton(_ref3) {
175
175
  }, content))
176
176
  );
177
177
  };
178
- var _default = exports.default = (0, _reactIntlNext.injectIntl)(InsertButton);
178
+ var _default = exports.default = (0, _reactIntl.injectIntl)(InsertButton);
@@ -14,7 +14,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
14
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _react = _interopRequireDefault(require("react"));
17
- var _reactIntlNext = require("react-intl-next");
17
+ var _reactIntl = require("react-intl");
18
18
  var _analytics = require("@atlaskit/editor-common/analytics");
19
19
  var _ui = require("@atlaskit/editor-common/ui");
20
20
  var _utils = require("@atlaskit/editor-common/utils");
@@ -235,4 +235,4 @@ var FloatingInsertButton = exports.FloatingInsertButton = /*#__PURE__*/function
235
235
  }]);
236
236
  }(_react.default.Component);
237
237
  (0, _defineProperty2.default)(FloatingInsertButton, "displayName", 'FloatingInsertButton');
238
- var _default = exports.default = (0, _reactIntlNext.injectIntl)(FloatingInsertButton);
238
+ var _default = exports.default = (0, _reactIntl.injectIntl)(FloatingInsertButton);
@@ -14,7 +14,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
16
  var _classnames = _interopRequireDefault(require("classnames"));
17
- var _reactIntlNext = require("react-intl-next");
17
+ var _reactIntl = require("react-intl");
18
18
  var _messages = require("@atlaskit/editor-common/messages");
19
19
  var _tableMap = require("@atlaskit/editor-tables/table-map");
20
20
  var _utils = require("@atlaskit/editor-tables/utils");
@@ -122,4 +122,4 @@ var CornerControlComponent = /*#__PURE__*/function (_Component) {
122
122
  }
123
123
  }]);
124
124
  }(_react.Component);
125
- var CornerControls = exports.CornerControls = (0, _reactIntlNext.injectIntl)(CornerControlComponent);
125
+ var CornerControls = exports.CornerControls = (0, _reactIntl.injectIntl)(CornerControlComponent);
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.DragCornerControlsWithSelection = exports.DragCornerControls = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
- var _reactIntlNext = require("react-intl-next");
11
+ var _reactIntl = require("react-intl");
12
12
  var _hooks = require("@atlaskit/editor-common/hooks");
13
13
  var _messages = require("@atlaskit/editor-common/messages");
14
14
  var _utils = require("@atlaskit/editor-tables/utils");
@@ -110,5 +110,5 @@ var DragCornerControlsComponentWithSelection = function DragCornerControlsCompon
110
110
  className: _types.TableCssClassName.DRAG_CORNER_BUTTON_INNER
111
111
  }));
112
112
  };
113
- var DragCornerControlsWithSelection = exports.DragCornerControlsWithSelection = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponentWithSelection);
114
- var DragCornerControls = exports.DragCornerControls = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponent);
113
+ var DragCornerControlsWithSelection = exports.DragCornerControlsWithSelection = (0, _reactIntl.injectIntl)(DragCornerControlsComponentWithSelection);
114
+ var DragCornerControls = exports.DragCornerControls = (0, _reactIntl.injectIntl)(DragCornerControlsComponent);
@@ -13,7 +13,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
- var _reactIntlNext = require("react-intl-next");
16
+ var _reactIntl = require("react-intl");
17
17
  var _messages = require("@atlaskit/editor-common/messages");
18
18
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
19
19
  var _commands = require("../../../pm-plugins/commands");
@@ -121,4 +121,4 @@ var RowControlsComponent = /*#__PURE__*/function (_Component) {
121
121
  }
122
122
  }]);
123
123
  }(_react.Component);
124
- var RowControls = exports.RowControls = (0, _reactIntlNext.injectIntl)(RowControlsComponent);
124
+ var RowControls = exports.RowControls = (0, _reactIntl.injectIntl)(RowControlsComponent);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.FullWidthDisplay = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _reactIntlNext = require("react-intl-next");
9
+ var _reactIntl = require("react-intl");
10
10
  var _messages = require("@atlaskit/editor-common/messages");
11
11
  var _primitives = require("@atlaskit/primitives");
12
12
  // eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
@@ -31,7 +31,7 @@ var tableFullWidthLabelStyles = (0, _primitives.xcss)({
31
31
  paddingBottom: 'space.050'
32
32
  });
33
33
  var FullWidthDisplay = exports.FullWidthDisplay = function FullWidthDisplay() {
34
- var _useIntl = (0, _reactIntlNext.useIntl)(),
34
+ var _useIntl = (0, _reactIntl.useIntl)(),
35
35
  formatMessage = _useIntl.formatMessage;
36
36
  return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
37
37
  xcss: tableFullWidthLabelWrapperStyles
@@ -10,6 +10,7 @@ exports.withCellTracking = exports.whenTableInFocus = exports.isTableInFocus = v
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _rafSchd = _interopRequireDefault(require("raf-schd"));
12
12
  var _analytics = require("@atlaskit/editor-common/analytics");
13
+ var _browser = require("@atlaskit/editor-common/browser");
13
14
  var _nesting = require("@atlaskit/editor-common/nesting");
14
15
  var _utils = require("@atlaskit/editor-common/utils");
15
16
  var _state5 = require("@atlaskit/editor-prosemirror/state");
@@ -48,7 +49,7 @@ var handleBlur = exports.handleBlur = function handleBlur(view, event) {
48
49
  dispatch = view.dispatch;
49
50
  // IE version check for ED-4665
50
51
  // Calendar focus check for ED-10466
51
- if (_utils.browser.ie_version !== 11 && !isFocusingCalendar(event) && !isFocusingModal(event) && !isFocusingFloatingToolbar(event) && !isFocusingDragHandles(event) && !isFocusingDragHandlesClickableZone(event)) {
52
+ if ((0, _browser.getBrowserInfo)().ie_version !== 11 && !isFocusingCalendar(event) && !isFocusingModal(event) && !isFocusingFloatingToolbar(event) && !isFocusingDragHandles(event) && !isFocusingDragHandlesClickableZone(event)) {
52
53
  (0, _commands.setEditorFocus)(false)(state, dispatch);
53
54
  }
54
55
  event.preventDefault();
@@ -358,7 +359,7 @@ var handleMouseMove = exports.handleMouseMove = function handleMouseMove(nodeVie
358
359
  // a reflow. So for now this will just grab the offsetX value immediately for gecko and chrome will calculate later
359
360
  // in the deferred callback handler.
360
361
  // Bug Tracking: https://bugzilla.mozilla.org/show_bug.cgi?id=1882903
361
- handleMouseMoveDebounce(nodeViewPortalProviderAPI)(view, event, _utils.browser.gecko ? event.offsetX : NaN);
362
+ handleMouseMoveDebounce(nodeViewPortalProviderAPI)(view, event, (0, _browser.getBrowserInfo)().gecko ? event.offsetX : NaN);
362
363
  return false;
363
364
  };
364
365
  };
@@ -33,6 +33,7 @@ var _alignImageLeft = _interopRequireDefault(require("@atlaskit/icon/core/align-
33
33
  var _copy = _interopRequireDefault(require("@atlaskit/icon/core/copy"));
34
34
  var _customize = _interopRequireDefault(require("@atlaskit/icon/core/customize"));
35
35
  var _delete = _interopRequireDefault(require("@atlaskit/icon/core/delete"));
36
+ var _shrinkHorizontal = _interopRequireDefault(require("@atlaskit/icon/core/shrink-horizontal"));
36
37
  var _tableColumnsDistribute = _interopRequireDefault(require("@atlaskit/icon/core/table-columns-distribute"));
37
38
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
38
39
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
@@ -49,6 +50,7 @@ var _alignment = require("../pm-plugins/utils/alignment");
49
50
  var _nodes = require("../pm-plugins/utils/nodes");
50
51
  var _selection = require("../pm-plugins/utils/selection");
51
52
  var _table = require("../pm-plugins/utils/table");
53
+ var _tableMode = require("../pm-plugins/utils/tableMode");
52
54
  var _types = require("../types");
53
55
  var _FloatingAlignmentButtons = require("./FloatingAlignmentButtons/FloatingAlignmentButtons");
54
56
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -448,7 +450,7 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
448
450
  // We don't want to show floating toolbar while resizing the table
449
451
  var isWidthResizing = tableWidthState === null || tableWidthState === void 0 ? void 0 : tableWidthState.resizing;
450
452
  if (tableObject && pluginState.editorHasFocus && !isWidthResizing) {
451
- var _api$limitedMode$shar, _api$limitedMode, _api$extension, _api$extension2;
453
+ var _api$limitedMode$shar, _api$limitedMode, _api$editorViewMode2, _api$extension, _api$extension2;
452
454
  var isNested = pluginState.tablePos && (0, _nodes.isTableNested)(state, pluginState.tablePos);
453
455
  var isTableScalingWithFixedColumnWidthsOptionShown = isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled && !isNested;
454
456
  var areTableColumWidthsFixed = tableObject.node.attrs.displayMode === 'fixed';
@@ -478,6 +480,27 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
478
480
  var cellItems = pluginState.isDragAndDropEnabled ? [] : getCellItems(state, editorView, intl, getEditorContainerWidth, api, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, shouldUseIncreasedScalingPercent, options === null || options === void 0 ? void 0 : options.isCommentEditor, isLimitedModeEnabled);
479
481
  var columnSettingsItems = pluginState.isDragAndDropEnabled ? getColumnSettingItems(state, editorView, intl, getEditorContainerWidth, api, editorAnalyticsAPI, isTableScalingEnabled, isTableFixedColumnWidthsOptionEnabled, options === null || options === void 0 ? void 0 : options.isCommentEditor, isLimitedModeEnabled) : [];
480
482
  var colorPicker = !areAnyNewToolbarFlagsEnabled ? getColorPicker(state, menu, intl, editorAnalyticsAPI, getEditorView) : [];
483
+ var fitToContentButton = (0, _tableMode.isContentModeSupported)({
484
+ allowColumnResizing: !!pluginState.pluginConfig.allowColumnResizing,
485
+ allowTableResizing: !!pluginState.pluginConfig.allowTableResizing,
486
+ isFullPageEditor: !pluginState.isChromelessEditor && !pluginState.isCommentEditor
487
+ }) && !isNested && (api === null || api === void 0 || (_api$editorViewMode2 = api.editorViewMode) === null || _api$editorViewMode2 === void 0 || (_api$editorViewMode2 = _api$editorViewMode2.sharedState.currentState()) === null || _api$editorViewMode2 === void 0 ? void 0 : _api$editorViewMode2.mode) !== 'view' && (0, _expValEquals.expValEquals)('platform_editor_table_fit_to_content_on_demand', 'isEnabled', true) ? [{
488
+ id: 'editor.table.fitToContent',
489
+ type: 'button',
490
+ title: intl.formatMessage(_messages.tableMessages.fitToContent),
491
+ icon: function icon() {
492
+ return (0, _react.jsx)(_shrinkHorizontal.default, {
493
+ spacing: 'spacious',
494
+ label: ''
495
+ });
496
+ },
497
+ onClick: function onClick(_state, _dispatch, view) {
498
+ if (view) {
499
+ (0, _tableMode.applyMeasuredWidthToSelectedTable)(view, api !== null && api !== void 0 ? api : undefined);
500
+ }
501
+ return true;
502
+ }
503
+ }] : [];
481
504
 
482
505
  // Check if we need to show confirm dialog for delete button
483
506
  var confirmDialog;
@@ -556,7 +579,7 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(getE
556
579
  },
557
580
  zIndex: _editorSharedStyles.akEditorFloatingPanelZIndex + 1,
558
581
  // Place the context menu slightly above the others
559
- items: [menu].concat((0, _toConsumableArray2.default)(!areAnyNewToolbarFlagsEnabled ? [separator(menu.hidden)] : []), (0, _toConsumableArray2.default)(alignmentMenu), (0, _toConsumableArray2.default)(!areAnyNewToolbarFlagsEnabled ? [separator(alignmentMenu.length === 0)] : []), (0, _toConsumableArray2.default)(cellItems), (0, _toConsumableArray2.default)(columnSettingsItems), (0, _toConsumableArray2.default)(colorPicker), (0, _toConsumableArray2.default)(!areAnyNewToolbarFlagsEnabled ? [{
582
+ items: [menu].concat((0, _toConsumableArray2.default)(!areAnyNewToolbarFlagsEnabled ? [separator(menu.hidden)] : []), (0, _toConsumableArray2.default)(alignmentMenu), (0, _toConsumableArray2.default)(!areAnyNewToolbarFlagsEnabled ? [separator(alignmentMenu.length === 0)] : []), (0, _toConsumableArray2.default)(cellItems), (0, _toConsumableArray2.default)(columnSettingsItems), fitToContentButton, (0, _toConsumableArray2.default)(colorPicker), (0, _toConsumableArray2.default)(!areAnyNewToolbarFlagsEnabled ? [{
560
583
  type: 'extensions-placeholder',
561
584
  separator: 'end'
562
585
  }, copyButton, {
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React from 'react';
3
3
  import classnames from 'classnames';
4
4
  import rafSchedule from 'raf-schd';
5
- import { injectIntl } from 'react-intl-next';
5
+ import { injectIntl } from 'react-intl';
6
6
  import { getBrowserInfo } from '@atlaskit/editor-common/browser';
7
7
  import { tintDirtyTransaction } from '@atlaskit/editor-common/collab';
8
8
  import { getParentOfTypeCount } from '@atlaskit/editor-common/nesting';
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
2
2
  import rafSchd from 'raf-schd';
3
- import { useIntl } from 'react-intl-next';
3
+ import { useIntl } from 'react-intl';
4
4
  import { CHANGE_ALIGNMENT_REASON, INPUT_METHOD, TABLE_OVERFLOW_CHANGE_TRIGGER } from '@atlaskit/editor-common/analytics';
5
5
  import { getBrowserInfo } from '@atlaskit/editor-common/browser';
6
6
  import { getGuidelinesWithHighlights } from '@atlaskit/editor-common/guideline';
@@ -8,10 +8,12 @@ import { akEditorTableNumberColumnWidth } from '@atlaskit/editor-shared-styles';
8
8
  import { TableMap } from '@atlaskit/editor-tables/table-map';
9
9
  import { fg } from '@atlaskit/platform-feature-flags';
10
10
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
11
+ import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
11
12
  import { pluginConfig as getPluginConfig } from '../pm-plugins/create-plugin-config';
12
13
  import { getPluginState } from '../pm-plugins/plugin-factory';
13
14
  import { pluginKey as tableWidthPluginKey } from '../pm-plugins/table-width';
14
15
  import { isTableNested, tablesHaveDifferentColumnWidths } from '../pm-plugins/utils/nodes';
16
+ import { isTableInContentMode } from '../pm-plugins/utils/tableMode';
15
17
  import { TableComponentWithSharedState } from './TableComponentWithSharedState';
16
18
  import { tableNodeSpecWithFixedToDOM } from './toDOM';
17
19
  const tableAttributes = node => {
@@ -176,17 +178,31 @@ export default class TableView extends ReactNodeView {
176
178
  }
177
179
  }
178
180
  setDomAttrs(node) {
179
- var _this$reactComponentP6, _this$getEditorFeatur2, _this$options3, _this$options4;
181
+ var _this$reactComponentP8, _this$getEditorFeatur2, _this$options3, _this$options4;
180
182
  if (!this.table) {
181
183
  return; // width / attribute application to actual table will happen later when table is set
182
184
  }
183
185
  const attrs = tableAttributes(node);
186
+ if (expValEqualsNoExposure('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true)) {
187
+ var _this$reactComponentP6, _this$reactComponentP7;
188
+ if (isTableInContentMode({
189
+ node,
190
+ allowColumnResizing: !!this.reactComponentProps.allowColumnResizing,
191
+ allowTableResizing: !!this.reactComponentProps.allowTableResizing,
192
+ isFullPageEditor: !((_this$reactComponentP6 = this.reactComponentProps.options) !== null && _this$reactComponentP6 !== void 0 && _this$reactComponentP6.isCommentEditor) && !((_this$reactComponentP7 = this.reactComponentProps.options) !== null && _this$reactComponentP7 !== void 0 && _this$reactComponentP7.isChromelessEditor),
193
+ isTableNested: isTableNested(this.view.state, this.getPos())
194
+ }) && expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true)) {
195
+ attrs['data-initial-width-mode'] = 'content';
196
+ } else {
197
+ this.table.removeAttribute('data-initial-width-mode');
198
+ }
199
+ }
184
200
  Object.keys(attrs).forEach(attr => {
185
201
  // Ignored via go/ees005
186
202
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
187
203
  this.table.setAttribute(attr, attrs[attr]);
188
204
  });
189
- const isTableFixedColumnWidthsOptionEnabled = (fg('platform_editor_table_fixed_column_width_prop') ? (_this$reactComponentP6 = this.reactComponentProps) === null || _this$reactComponentP6 === void 0 ? void 0 : _this$reactComponentP6.allowFixedColumnWidthOption : (_this$getEditorFeatur2 = this.getEditorFeatureFlags) === null || _this$getEditorFeatur2 === void 0 ? void 0 : _this$getEditorFeatur2.call(this).tableWithFixedColumnWidthsOption) || false;
205
+ const isTableFixedColumnWidthsOptionEnabled = (fg('platform_editor_table_fixed_column_width_prop') ? (_this$reactComponentP8 = this.reactComponentProps) === null || _this$reactComponentP8 === void 0 ? void 0 : _this$reactComponentP8.allowFixedColumnWidthOption : (_this$getEditorFeatur2 = this.getEditorFeatureFlags) === null || _this$getEditorFeatur2 === void 0 ? void 0 : _this$getEditorFeatur2.call(this).tableWithFixedColumnWidthsOption) || false;
190
206
  // Preserve Table Width cannot have inline width set on the table
191
207
  if (!((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.isTableScalingEnabled) || (_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.isTableScalingEnabled && isTableFixedColumnWidthsOptionEnabled && node.attrs.displayMode === 'fixed') {
192
208
  var _tableWidthPluginKey$;
@@ -1,3 +1,4 @@
1
+ import classNames from 'classnames';
1
2
  import kebabCase from 'lodash/kebabCase';
2
3
  import { table, tableWithNestedTable } from '@atlaskit/adf-schema';
3
4
  import { convertToInlineCss } from '@atlaskit/editor-common/lazy-node-view';
@@ -5,15 +6,23 @@ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
5
6
  import { generateColgroupFromNode, getResizerMinWidth } from '../pm-plugins/table-resizing/utils/colgroup';
6
7
  import { TABLE_MAX_WIDTH, TABLE_FULL_WIDTH } from '../pm-plugins/table-resizing/utils/consts';
7
8
  import { getTableResizerContainerMaxWidthInCSS, getTableResizerContainerForFullPageWidthInCSS, getTableResizerItemWidthInCSS } from '../pm-plugins/table-resizing/utils/misc';
9
+ import { isTableInContentMode } from '../pm-plugins/utils/tableMode';
8
10
  import { getAlignmentStyle } from './table-container-styles';
9
11
  export const tableNodeSpecWithFixedToDOM = config => {
10
12
  const tableNode = config.isNestingSupported ? tableWithNestedTable : table;
11
13
  return {
12
14
  ...tableNode,
13
15
  toDOM: node => {
16
+ const isFullPageEditor = !config.isChromelessEditor && !config.isCommentEditor;
17
+ const isInContentMode = isTableInContentMode({
18
+ node,
19
+ allowColumnResizing: config.allowColumnResizing,
20
+ allowTableResizing: config.tableResizingEnabled,
21
+ isFullPageEditor,
22
+ isTableNested: config.isNested
23
+ }) && expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true);
14
24
  const alignmentStyle = Object.entries(getAlignmentStyle(node.attrs.layout)).map(([k, v]) => `${kebabCase(k)}: ${kebabCase(v)}`).join(';');
15
25
  const tableMinWidth = getResizerMinWidth(node);
16
- const isFullPageEditor = !config.isChromelessEditor && !config.isCommentEditor;
17
26
  const attrs = {
18
27
  'data-number-column': node.attrs.isNumberColumnEnabled,
19
28
  'data-layout': node.attrs.layout,
@@ -23,6 +32,9 @@ export const tableNodeSpecWithFixedToDOM = config => {
23
32
  'data-ssr-placeholder': `table-${node.attrs.localId}`,
24
33
  'data-ssr-placeholder-replace': `table-${node.attrs.localId}`
25
34
  };
35
+ if (isInContentMode) {
36
+ attrs['data-initial-width-mode'] = 'content';
37
+ }
26
38
  if (expValEquals('platform_editor_table_display_mode_in_to_dom', 'isEnabled', true)) {
27
39
  attrs['data-table-display-mode'] = node.attrs.displayMode;
28
40
  }
@@ -75,11 +87,13 @@ export const tableNodeSpecWithFixedToDOM = config => {
75
87
  class: 'pm-table-resizer-container',
76
88
  style: convertToInlineCss({
77
89
  '--ak-editor-table-gutter-padding': config.isTableScalingEnabled ? 'calc(var(--ak-editor--large-gutter-padding) * 2)' : 'calc(var(--ak-editor--large-gutter-padding) * 2 - var(--ak-editor-resizer-handle-spacing))',
78
- '--ak-editor-table-width': resizableTableWidth,
90
+ '--ak-editor-table-width': isInContentMode ? 'max-content' : resizableTableWidth,
79
91
  width: `var(--ak-editor-table-width)`
80
92
  })
81
93
  }, ['div', {
82
- class: 'resizer-item display-handle',
94
+ class: expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) ? 'resizer-item display-handle' : classNames('resizer-item', {
95
+ 'display-handle': !isInContentMode
96
+ }),
83
97
  style: convertToInlineCss({
84
98
  position: 'relative',
85
99
  userSelect: 'auto',
@@ -88,7 +102,7 @@ export const tableNodeSpecWithFixedToDOM = config => {
88
102
  '--ak-editor-table-min-width': `${tableMinWidth}px`,
89
103
  minWidth: 'var(--ak-editor-table-min-width)',
90
104
  maxWidth: getTableResizerContainerMaxWidthInCSS(config.isCommentEditor, config.isChromelessEditor, config.isTableScalingEnabled),
91
- width: getTableResizerItemWidthInCSS(node, config.isCommentEditor, config.isChromelessEditor)
105
+ width: isInContentMode ? 'auto' : getTableResizerItemWidthInCSS(node, config.isCommentEditor, config.isChromelessEditor)
92
106
  })
93
107
  }, ['span', {
94
108
  class: 'resizer-hover-zone'