@atlaskit/editor-common 102.2.1 → 102.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/analytics/types/enums.js +1 -0
  3. package/dist/cjs/extensibility/Extension/Extension/index.js +26 -0
  4. package/dist/cjs/extensions/module-helpers.js +31 -14
  5. package/dist/cjs/keymaps/index.js +3 -2
  6. package/dist/cjs/monitoring/error.js +1 -1
  7. package/dist/cjs/ui/DropList/index.js +1 -1
  8. package/dist/cjs/ui/Mention/index.js +13 -1
  9. package/dist/cjs/ui/Mention/mention-with-providers.js +105 -2
  10. package/dist/es2019/analytics/types/enums.js +1 -0
  11. package/dist/es2019/extensibility/Extension/Extension/index.js +27 -1
  12. package/dist/es2019/extensions/module-helpers.js +24 -5
  13. package/dist/es2019/keymaps/index.js +1 -0
  14. package/dist/es2019/monitoring/error.js +1 -1
  15. package/dist/es2019/ui/DropList/index.js +1 -1
  16. package/dist/es2019/ui/Mention/index.js +14 -2
  17. package/dist/es2019/ui/Mention/mention-with-providers.js +83 -2
  18. package/dist/esm/analytics/types/enums.js +1 -0
  19. package/dist/esm/extensibility/Extension/Extension/index.js +27 -1
  20. package/dist/esm/extensions/module-helpers.js +31 -14
  21. package/dist/esm/keymaps/index.js +1 -0
  22. package/dist/esm/monitoring/error.js +1 -1
  23. package/dist/esm/ui/DropList/index.js +1 -1
  24. package/dist/esm/ui/Mention/index.js +14 -2
  25. package/dist/esm/ui/Mention/mention-with-providers.js +105 -2
  26. package/dist/types/analytics/types/enums.d.ts +1 -0
  27. package/dist/types/analytics/types/selection-events.d.ts +5 -1
  28. package/dist/types/extensions/module-helpers.d.ts +2 -2
  29. package/dist/types/extensions/types/extension-manifest-toolbar-item.d.ts +3 -1
  30. package/dist/types/extensions/types/extension-manifest.d.ts +1 -1
  31. package/dist/types/keymaps/index.d.ts +1 -0
  32. package/dist/types/types/floating-toolbar.d.ts +2 -1
  33. package/dist/types/types/index.d.ts +1 -1
  34. package/dist/types/ui/Mention/mention-with-providers.d.ts +8 -1
  35. package/dist/types/ui-menu/ColorPickerButton/index.d.ts +1 -1
  36. package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
  37. package/dist/types-ts4.5/analytics/types/selection-events.d.ts +5 -1
  38. package/dist/types-ts4.5/extensions/module-helpers.d.ts +2 -2
  39. package/dist/types-ts4.5/extensions/types/extension-manifest-toolbar-item.d.ts +3 -1
  40. package/dist/types-ts4.5/extensions/types/extension-manifest.d.ts +1 -1
  41. package/dist/types-ts4.5/keymaps/index.d.ts +1 -0
  42. package/dist/types-ts4.5/types/floating-toolbar.d.ts +2 -1
  43. package/dist/types-ts4.5/types/index.d.ts +1 -1
  44. package/dist/types-ts4.5/ui/Mention/mention-with-providers.d.ts +8 -1
  45. package/dist/types-ts4.5/ui-menu/ColorPickerButton/index.d.ts +1 -1
  46. package/package.json +9 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 102.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#125193](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/125193)
8
+ [`246f1e93ab0d1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/246f1e93ab0d1) -
9
+ ED-26834 Fire exposure for experiment `platform_editor_nested_non_bodied_macros` when rendering a
10
+ non bodied macro rendered in a nested expand, blockquote, panel or listItem in editor
11
+
12
+ ## 102.3.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#122181](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/122181)
17
+ [`cf759849b38dc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cf759849b38dc) -
18
+ [ux] Added dropdown menu in floating toolbar for autoconverted extensions
19
+ - [#124688](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/124688)
20
+ [`9b1137bda6f87`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9b1137bda6f87) -
21
+ [ux] ED-25486 Updates cmd+a behaviour to progressively select nodes behind
22
+ platform_editor_cmd_a_progressively_select_nodes experiment.
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies
27
+
3
28
  ## 102.2.1
4
29
 
5
30
  ### Patch Changes
@@ -100,6 +100,7 @@ var ACTION = exports.ACTION = /*#__PURE__*/function (ACTION) {
100
100
  ACTION["RESOLVED"] = "resolved";
101
101
  ACTION["REQUEST_TO_EDIT"] = "requestToEdit";
102
102
  ACTION["SELECTED"] = "selected";
103
+ ACTION["SELECT_ALL"] = "selectAll";
103
104
  ACTION["SHOWN"] = "shown";
104
105
  ACTION["SLOW_INPUT"] = "slowInput";
105
106
  ACTION["STARTED"] = "started";
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _react2 = require("@emotion/react");
14
14
  var _classnames2 = _interopRequireDefault(require("classnames"));
15
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
16
17
  var _hooks = require("../../../hooks");
17
18
  var _ui = require("../../../ui");
18
19
  var _utils = require("../../../utils");
@@ -125,6 +126,30 @@ function ExtensionWithPluginState(props) {
125
126
  setIsNodeHovered(didHover);
126
127
  }
127
128
  };
129
+ var shouldFireNbmExperimentExposure = _react.default.useMemo(function () {
130
+ if (node.type.name === 'extension' && typeof getPos === 'function') {
131
+ var pos = getPos();
132
+ if (!isNaN(pos)) {
133
+ var _view$state$doc$resol;
134
+ var parentNameType = (_view$state$doc$resol = view.state.doc.resolve(pos).parent) === null || _view$state$doc$resol === void 0 || (_view$state$doc$resol = _view$state$doc$resol.type) === null || _view$state$doc$resol === void 0 ? void 0 : _view$state$doc$resol.name;
135
+ if (['listItem', 'nestedExpand', 'blockquote', 'panel'].includes(parentNameType)) {
136
+ return true;
137
+ }
138
+ }
139
+ }
140
+ return false;
141
+ }, [node, getPos, view]);
142
+ (0, _react.useEffect)(function () {
143
+ if (shouldFireNbmExperimentExposure) {
144
+ // No-op editorExperiment evaluation to track usage of nested non-bodied macros
145
+ // these can't be tracked at the point of diversion of the experience because that is a toggle of the
146
+ // ProseMirror schema nodes for listItems, nestedExpand, blockquote, and panel. At that point the customer
147
+ // has not yet been exposed
148
+ (0, _experiments.editorExperiment)('platform_editor_nested_non_bodied_macros', 'test', {
149
+ exposure: true
150
+ });
151
+ }
152
+ }, [shouldFireNbmExperimentExposure]);
128
153
  return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && (0, _react2.jsx)(_Lozenge.default, {
129
154
  isNodeSelected: isNodeSelected,
130
155
  isNodeHovered: isNodeHovered,
@@ -207,6 +232,7 @@ var Extension = function Extension(props) {
207
232
  var pluginInjectionApi = props.pluginInjectionApi;
208
233
  var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
209
234
  widthState = _useSharedPluginState.widthState;
235
+
210
236
  // Ignored via go/ees005
211
237
  // eslint-disable-next-line react/jsx-props-no-spreading
212
238
  return (0, _react2.jsx)(ExtensionWithPluginState, (0, _extends2.default)({
@@ -14,6 +14,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
16
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
18
  var _manifestHelpers = require("./manifest-helpers");
18
19
  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; }
19
20
  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; }
@@ -164,21 +165,21 @@ var logError = function logError(msg) {
164
165
  // eslint-disable-next-line no-console
165
166
  (_console = console).error.apply(_console, [msg].concat(args));
166
167
  };
167
- var toolbarItemToButtonConfig = function toolbarItemToButtonConfig(toolbarItem, parentKey) {
168
- var tooltip = toolbarItem.tooltip,
169
- tooltipStyle = toolbarItem.tooltipStyle,
170
- key = toolbarItem.key,
171
- label = toolbarItem.label,
172
- ariaLabel = toolbarItem.ariaLabel,
173
- icon = toolbarItem.icon,
174
- action = toolbarItem.action,
175
- disabled = toolbarItem.disabled;
168
+ var toolbarItemToButtonConfig = function toolbarItemToButtonConfig(toolbarButton, parentKey) {
169
+ var tooltip = toolbarButton.tooltip,
170
+ tooltipStyle = toolbarButton.tooltipStyle,
171
+ key = toolbarButton.key,
172
+ label = toolbarButton.label,
173
+ ariaLabel = toolbarButton.ariaLabel,
174
+ icon = toolbarButton.icon,
175
+ action = toolbarButton.action,
176
+ disabled = toolbarButton.disabled;
176
177
  var itemKey = [parentKey, key].join(':');
177
178
  if (typeof action !== 'function') {
178
179
  logError("Provided action is not a function for extension toolbar button: ".concat(label, " (").concat(itemKey, ")"));
179
180
  }
180
181
  var labelAndIcon = {};
181
- switch (toolbarItem.display) {
182
+ switch (toolbarButton.display) {
182
183
  case 'icon':
183
184
  if (!icon) {
184
185
  logError("icon should be provided for extension toolbar button (".concat(itemKey, "), when display is set to 'icon'"));
@@ -254,9 +255,16 @@ var getContextualToolbarItemsFromModule = exports.getContextualToolbarItemsFromM
254
255
  return toolbarItems;
255
256
  }
256
257
  return [];
257
- }).flatMap(function (toolbarButtons) {
258
- return toolbarButtons.map(function (toolbarButton) {
259
- return toolbarItemToButtonConfig(toolbarButton, extension.key);
258
+ }).flatMap(function (toolbarItems) {
259
+ return toolbarItems.map(function (toolbarItem) {
260
+ if ((0, _platformFeatureFlags.fg)('forge_macro_autoconvert')) {
261
+ if (isToolbarButton(toolbarItem)) {
262
+ return toolbarItemToButtonConfig(toolbarItem, extension.key);
263
+ }
264
+ return toolbarItem;
265
+ } else {
266
+ return toolbarItemToButtonConfig(toolbarItem, extension.key);
267
+ }
260
268
  });
261
269
  });
262
270
  }
@@ -265,6 +273,12 @@ var getContextualToolbarItemsFromModule = exports.getContextualToolbarItemsFromM
265
273
  return extensionToolbarButtons;
266
274
  });
267
275
  };
276
+ var isToolbarButton = function isToolbarButton(toolbarItem) {
277
+ if ('type' in toolbarItem) {
278
+ return false;
279
+ }
280
+ return true;
281
+ };
268
282
 
269
283
  // defines whether to add toolbar item for the given node
270
284
  function shouldAddExtensionItemForNode(item, node) {
@@ -280,11 +294,14 @@ function shouldAddExtensionItemForNode(item, node) {
280
294
 
281
295
  // in cases where we need custom exclusion depending on the node
282
296
  if (item.context.shouldExclude) {
283
- return item.context.shouldExclude(node);
297
+ if (item.context.shouldExclude(node)) {
298
+ return false;
299
+ }
284
300
  }
285
301
  var _item$context = item.context,
286
302
  extensionType = _item$context.extensionType,
287
303
  extensionKey = _item$context.extensionKey;
304
+
288
305
  // if extension type is given - should match extension type
289
306
  if (extensionType && extensionType !== ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.extensionType)) {
290
307
  return false;
@@ -102,8 +102,8 @@ Object.defineProperty(exports, "keymap", {
102
102
  exports.makeKeyMapArrayWithCommon = makeKeyMapArrayWithCommon;
103
103
  exports.makeKeyMapWithCommon = makeKeyMapWithCommon;
104
104
  exports.makeKeymap = makeKeymap;
105
- exports.startColumnResizing = exports.splitListItem = exports.splitCodeBlock = exports.space = exports.showElementDragHandle = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.shiftArrowUp = exports.setNormalText = exports.selectTable = exports.selectRow = exports.selectColumn = exports.redo = exports.previousCell = exports.pastePlainText = exports.paste = exports.outdentList = exports.outdent = exports.openHelp = exports.nextCell = exports.navToFloatingToolbar = exports.navToEditorToolbar = exports.moveUp = exports.moveRowUp = exports.moveRowDown = exports.moveRight = exports.moveLeft = exports.moveDown = exports.moveColumnRight = exports.moveColumnLeft = void 0;
106
- exports.toggleUnderline = exports.toggleTaskItemCheckbox = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHighlightPalette = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = void 0;
105
+ exports.splitListItem = exports.splitCodeBlock = exports.space = exports.showElementDragHandle = exports.shiftTab = exports.shiftEnter = exports.shiftBackspace = exports.shiftArrowUp = exports.setNormalText = exports.selectTable = exports.selectRow = exports.selectNode = exports.selectColumn = exports.redo = exports.previousCell = exports.pastePlainText = exports.paste = exports.outdentList = exports.outdent = exports.openHelp = exports.nextCell = exports.navToFloatingToolbar = exports.navToEditorToolbar = exports.moveUp = exports.moveRowUp = exports.moveRowDown = exports.moveRight = exports.moveLeft = exports.moveDown = exports.moveColumnRight = exports.moveColumnLeft = void 0;
106
+ exports.toggleUnderline = exports.toggleTaskItemCheckbox = exports.toggleTable = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleOrderedList = exports.toggleItalic = exports.toggleHighlightPalette = exports.toggleHeading6 = exports.toggleHeading5 = exports.toggleHeading4 = exports.toggleHeading3 = exports.toggleHeading2 = exports.toggleHeading1 = exports.toggleCode = exports.toggleBulletList = exports.toggleBold = exports.toggleBlockQuote = exports.tab = exports.submit = exports.startColumnResizing = void 0;
107
107
  exports.tooltip = tooltip;
108
108
  exports.undo = void 0;
109
109
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
@@ -207,6 +207,7 @@ var toggleTaskItemCheckbox = exports.toggleTaskItemCheckbox = makeKeyMapWithComm
207
207
  var selectRow = exports.selectRow = makeKeyMapArrayWithCommon('Select row', ['Mod-Alt-Shift-ArrowLeft', 'Mod-Alt-Shift-ArrowRight']);
208
208
  var selectColumn = exports.selectColumn = makeKeyMapArrayWithCommon('Select column', ['Mod-Alt-Shift-ArrowDown', 'Mod-Alt-Shift-ArrowUp']);
209
209
  var selectTable = exports.selectTable = makeKeyMapWithCommon('Select table', 'Mod-a');
210
+ var selectNode = exports.selectNode = makeKeyMapWithCommon('Select node', 'Mod-a');
210
211
  var increaseMediaSize = exports.increaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-]');
211
212
  var decreaseMediaSize = exports.decreaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-[');
212
213
  var activateVideoControls = exports.activateVideoControls = makeKeyMapWithCommon('Activate controls panel on video', 'Shift-F10');
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "102.2.1";
20
+ var packageVersion = "102.3.1";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // Ignored via go/ees007
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
23
23
  * @jsx jsx
24
24
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
25
25
  var packageName = "@atlaskit/editor-common";
26
- var packageVersion = "102.2.1";
26
+ var packageVersion = "102.3.1";
27
27
  var halfFocusRing = 1;
28
28
  var dropOffset = '0, 8';
29
29
  // Ignored via go/ees005
@@ -13,6 +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 _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
17
  var _providerFactory = require("../../provider-factory");
17
18
  var _mentionWithProviders = require("./mention-with-providers");
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -33,7 +34,18 @@ var Mention = exports.default = /*#__PURE__*/function (_PureComponent) {
33
34
  localId = _this$props.localId;
34
35
  var mentionProvider = providers.mentionProvider,
35
36
  profilecardProvider = providers.profilecardProvider;
36
- return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProviders, {
37
+ if ((0, _platformFeatureFlags.fg)('platform_editor_react18_mention_with_provider_fix')) {
38
+ return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProviders, {
39
+ id: id,
40
+ text: text,
41
+ accessLevel: accessLevel,
42
+ localId: localId,
43
+ eventHandlers: eventHandlers,
44
+ mentionProvider: mentionProvider,
45
+ profilecardProvider: profilecardProvider
46
+ });
47
+ }
48
+ return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProvidersOld, {
37
49
  id: id,
38
50
  text: text,
39
51
  accessLevel: accessLevel,
@@ -5,14 +5,24 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.MentionWithProviders = void 0;
8
+ exports.MentionWithProvidersOld = exports.MentionWithProviders = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
17
  var _react = _interopRequireWildcard(require("react"));
11
18
  var _element = require("@atlaskit/mention/element");
12
19
  var _mentionWithProfilecard = _interopRequireDefault(require("./mention-with-profilecard"));
13
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
15
24
  var GENERIC_USER_IDS = ['HipChat', 'all', 'here'];
25
+ var noop = function noop() {};
16
26
  var MentionWithProviders = exports.MentionWithProviders = function MentionWithProviders(_ref) {
17
27
  var accessLevel = _ref.accessLevel,
18
28
  eventHandlers = _ref.eventHandlers,
@@ -62,4 +72,97 @@ var MentionWithProviders = exports.MentionWithProviders = function MentionWithPr
62
72
  onMouseEnter: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseEnter,
63
73
  onMouseLeave: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseLeave
64
74
  });
65
- };
75
+ };
76
+
77
+ // eslint-disable-next-line @repo/internal/react/no-class-components
78
+ var MentionWithProvidersOld = exports.MentionWithProvidersOld = /*#__PURE__*/function (_PureComponent) {
79
+ function MentionWithProvidersOld() {
80
+ var _this;
81
+ (0, _classCallCheck2.default)(this, MentionWithProvidersOld);
82
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
83
+ args[_key] = arguments[_key];
84
+ }
85
+ _this = _callSuper(this, MentionWithProvidersOld, [].concat(args));
86
+ (0, _defineProperty2.default)(_this, "state", {
87
+ profilecardProvider: null
88
+ });
89
+ return _this;
90
+ }
91
+ (0, _inherits2.default)(MentionWithProvidersOld, _PureComponent);
92
+ return (0, _createClass2.default)(MentionWithProvidersOld, [{
93
+ key: "UNSAFE_componentWillMount",
94
+ value:
95
+ // Ignored via go/ees005
96
+ // eslint-disable-next-line react/no-unsafe
97
+ function UNSAFE_componentWillMount() {
98
+ this.updateProfilecardProvider(this.props);
99
+ }
100
+
101
+ // Ignored via go/ees005
102
+ // eslint-disable-next-line react/no-unsafe
103
+ }, {
104
+ key: "UNSAFE_componentWillReceiveProps",
105
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
106
+ if (nextProps.profilecardProvider !== this.props.profilecardProvider) {
107
+ this.updateProfilecardProvider(nextProps);
108
+ }
109
+ }
110
+ }, {
111
+ key: "updateProfilecardProvider",
112
+ value: function updateProfilecardProvider(props) {
113
+ var _this2 = this;
114
+ // We are not using async/await here to avoid having an intermediate Promise
115
+ // introduced by the transpiler.
116
+ // This will allow consumer to use a SynchronousPromise.resolve and avoid useless
117
+ // rerendering
118
+ if (props.profilecardProvider) {
119
+ props.profilecardProvider.then(function (profilecardProvider) {
120
+ _this2.setState({
121
+ profilecardProvider: profilecardProvider
122
+ });
123
+ }).catch(function () {
124
+ _this2.setState({
125
+ profilecardProvider: null
126
+ });
127
+ });
128
+ } else {
129
+ this.setState({
130
+ profilecardProvider: null
131
+ });
132
+ }
133
+ }
134
+ }, {
135
+ key: "render",
136
+ value: function render() {
137
+ var _this$props = this.props,
138
+ accessLevel = _this$props.accessLevel,
139
+ eventHandlers = _this$props.eventHandlers,
140
+ id = _this$props.id,
141
+ mentionProvider = _this$props.mentionProvider,
142
+ text = _this$props.text,
143
+ localId = _this$props.localId;
144
+ var profilecardProvider = this.state.profilecardProvider;
145
+
146
+ // Ignored via go/ees005
147
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
148
+ var actionHandlers = {};
149
+ ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
150
+ actionHandlers[handler] = eventHandlers && eventHandlers[handler] || noop;
151
+ });
152
+ var MentionComponent = profilecardProvider && GENERIC_USER_IDS.indexOf(id) === -1 ? _mentionWithProfilecard.default : _element.ResourcedMention;
153
+ return /*#__PURE__*/_react.default.createElement(MentionComponent, (0, _extends2.default)({
154
+ id: id,
155
+ text: text,
156
+ accessLevel: accessLevel,
157
+ localId: localId,
158
+ mentionProvider: mentionProvider
159
+ // Ignored via go/ees005
160
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
161
+ ,
162
+ profilecardProvider: profilecardProvider
163
+ // Ignored via go/ees005
164
+ // eslint-disable-next-line react/jsx-props-no-spreading
165
+ }, actionHandlers));
166
+ }
167
+ }]);
168
+ }(_react.PureComponent);
@@ -94,6 +94,7 @@ export let ACTION = /*#__PURE__*/function (ACTION) {
94
94
  ACTION["RESOLVED"] = "resolved";
95
95
  ACTION["REQUEST_TO_EDIT"] = "requestToEdit";
96
96
  ACTION["SELECTED"] = "selected";
97
+ ACTION["SELECT_ALL"] = "selectAll";
97
98
  ACTION["SHOWN"] = "shown";
98
99
  ACTION["SLOW_INPUT"] = "slowInput";
99
100
  ACTION["STARTED"] = "started";
@@ -4,12 +4,13 @@ import _extends from "@babel/runtime/helpers/extends";
4
4
  * @jsx jsx
5
5
  */
6
6
 
7
- import React, { Fragment } from 'react';
7
+ import React, { Fragment, useEffect } from 'react';
8
8
 
9
9
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
10
10
  import { jsx } from '@emotion/react';
11
11
  import classnames from 'classnames';
12
12
  import { fg } from '@atlaskit/platform-feature-flags';
13
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
13
14
  import { useSharedPluginState } from '../../../hooks';
14
15
  import { overflowShadow } from '../../../ui';
15
16
  import { calculateBreakoutStyles } from '../../../utils';
@@ -123,6 +124,30 @@ function ExtensionWithPluginState(props) {
123
124
  setIsNodeHovered(didHover);
124
125
  }
125
126
  };
127
+ const shouldFireNbmExperimentExposure = React.useMemo(() => {
128
+ if (node.type.name === 'extension' && typeof getPos === 'function') {
129
+ const pos = getPos();
130
+ if (!isNaN(pos)) {
131
+ var _view$state$doc$resol, _view$state$doc$resol2;
132
+ const parentNameType = (_view$state$doc$resol = view.state.doc.resolve(pos).parent) === null || _view$state$doc$resol === void 0 ? void 0 : (_view$state$doc$resol2 = _view$state$doc$resol.type) === null || _view$state$doc$resol2 === void 0 ? void 0 : _view$state$doc$resol2.name;
133
+ if (['listItem', 'nestedExpand', 'blockquote', 'panel'].includes(parentNameType)) {
134
+ return true;
135
+ }
136
+ }
137
+ }
138
+ return false;
139
+ }, [node, getPos, view]);
140
+ useEffect(() => {
141
+ if (shouldFireNbmExperimentExposure) {
142
+ // No-op editorExperiment evaluation to track usage of nested non-bodied macros
143
+ // these can't be tracked at the point of diversion of the experience because that is a toggle of the
144
+ // ProseMirror schema nodes for listItems, nestedExpand, blockquote, and panel. At that point the customer
145
+ // has not yet been exposed
146
+ editorExperiment('platform_editor_nested_non_bodied_macros', 'test', {
147
+ exposure: true
148
+ });
149
+ }
150
+ }, [shouldFireNbmExperimentExposure]);
126
151
  return jsx(Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && jsx(ExtensionLozenge, {
127
152
  isNodeSelected: isNodeSelected,
128
153
  isNodeHovered: isNodeHovered,
@@ -204,6 +229,7 @@ const Extension = props => {
204
229
  const {
205
230
  widthState
206
231
  } = useSharedPluginState(pluginInjectionApi, ['width']);
232
+
207
233
  // Ignored via go/ees005
208
234
  // eslint-disable-next-line react/jsx-props-no-spreading
209
235
  return jsx(ExtensionWithPluginState, _extends({
@@ -1,3 +1,4 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
1
2
  import { buildAction } from './manifest-helpers';
2
3
  export const groupBy = (arr, attr, keyRenamer) =>
3
4
  // Ignored via go/ees005
@@ -68,7 +69,7 @@ const logError = (msg, ...args) => {
68
69
  // eslint-disable-next-line no-console
69
70
  console.error(msg, ...args);
70
71
  };
71
- const toolbarItemToButtonConfig = (toolbarItem, parentKey) => {
72
+ const toolbarItemToButtonConfig = (toolbarButton, parentKey) => {
72
73
  const {
73
74
  tooltip,
74
75
  tooltipStyle,
@@ -78,13 +79,13 @@ const toolbarItemToButtonConfig = (toolbarItem, parentKey) => {
78
79
  icon,
79
80
  action,
80
81
  disabled
81
- } = toolbarItem;
82
+ } = toolbarButton;
82
83
  const itemKey = [parentKey, key].join(':');
83
84
  if (typeof action !== 'function') {
84
85
  logError(`Provided action is not a function for extension toolbar button: ${label} (${itemKey})`);
85
86
  }
86
87
  let labelAndIcon = {};
87
- switch (toolbarItem.display) {
88
+ switch (toolbarButton.display) {
88
89
  case 'icon':
89
90
  if (!icon) {
90
91
  logError(`icon should be provided for extension toolbar button (${itemKey}), when display is set to 'icon'`);
@@ -157,11 +158,26 @@ export const getContextualToolbarItemsFromModule = (extensions, node, api) => {
157
158
  return toolbarItems;
158
159
  }
159
160
  return [];
160
- }).flatMap(toolbarButtons => toolbarButtons.map(toolbarButton => toolbarItemToButtonConfig(toolbarButton, extension.key)));
161
+ }).flatMap(toolbarItems => toolbarItems.map(toolbarItem => {
162
+ if (fg('forge_macro_autoconvert')) {
163
+ if (isToolbarButton(toolbarItem)) {
164
+ return toolbarItemToButtonConfig(toolbarItem, extension.key);
165
+ }
166
+ return toolbarItem;
167
+ } else {
168
+ return toolbarItemToButtonConfig(toolbarItem, extension.key);
169
+ }
170
+ }));
161
171
  }
162
172
  return [];
163
173
  }).flatMap(extensionToolbarButtons => extensionToolbarButtons);
164
174
  };
175
+ const isToolbarButton = toolbarItem => {
176
+ if ('type' in toolbarItem) {
177
+ return false;
178
+ }
179
+ return true;
180
+ };
165
181
 
166
182
  // defines whether to add toolbar item for the given node
167
183
  function shouldAddExtensionItemForNode(item, node) {
@@ -177,12 +193,15 @@ function shouldAddExtensionItemForNode(item, node) {
177
193
 
178
194
  // in cases where we need custom exclusion depending on the node
179
195
  if (item.context.shouldExclude) {
180
- return item.context.shouldExclude(node);
196
+ if (item.context.shouldExclude(node)) {
197
+ return false;
198
+ }
181
199
  }
182
200
  const {
183
201
  extensionType,
184
202
  extensionKey
185
203
  } = item.context;
204
+
186
205
  // if extension type is given - should match extension type
187
206
  if (extensionType && extensionType !== ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.extensionType)) {
188
207
  return false;
@@ -93,6 +93,7 @@ export const toggleTaskItemCheckbox = makeKeyMapWithCommon('Toggles task item',
93
93
  export const selectRow = makeKeyMapArrayWithCommon('Select row', ['Mod-Alt-Shift-ArrowLeft', 'Mod-Alt-Shift-ArrowRight']);
94
94
  export const selectColumn = makeKeyMapArrayWithCommon('Select column', ['Mod-Alt-Shift-ArrowDown', 'Mod-Alt-Shift-ArrowUp']);
95
95
  export const selectTable = makeKeyMapWithCommon('Select table', 'Mod-a');
96
+ export const selectNode = makeKeyMapWithCommon('Select node', 'Mod-a');
96
97
  export const increaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-]');
97
98
  export const decreaseMediaSize = makeKeyMapWithCommon('increase image size', 'Mod-Alt-[');
98
99
  export const activateVideoControls = makeKeyMapWithCommon('Activate controls panel on video', 'Shift-F10');
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "102.2.1";
4
+ const packageVersion = "102.3.1";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // Ignored via go/ees007
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
13
13
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import Layer from '../Layer';
15
15
  const packageName = "@atlaskit/editor-common";
16
- const packageVersion = "102.2.1";
16
+ const packageVersion = "102.3.1";
17
17
  const halfFocusRing = 1;
18
18
  const dropOffset = '0, 8';
19
19
  // Ignored via go/ees005
@@ -1,8 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  /* eslint-disable @repo/internal/react/no-class-components */
3
3
  import React, { PureComponent } from 'react';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
4
5
  import { ProviderFactory, WithProviders } from '../../provider-factory';
5
- import { MentionWithProviders } from './mention-with-providers';
6
+ import { MentionWithProviders, MentionWithProvidersOld } from './mention-with-providers';
6
7
  export default class Mention extends PureComponent {
7
8
  constructor(props) {
8
9
  super(props);
@@ -18,7 +19,18 @@ export default class Mention extends PureComponent {
18
19
  mentionProvider,
19
20
  profilecardProvider
20
21
  } = providers;
21
- return /*#__PURE__*/React.createElement(MentionWithProviders, {
22
+ if (fg('platform_editor_react18_mention_with_provider_fix')) {
23
+ return /*#__PURE__*/React.createElement(MentionWithProviders, {
24
+ id: id,
25
+ text: text,
26
+ accessLevel: accessLevel,
27
+ localId: localId,
28
+ eventHandlers: eventHandlers,
29
+ mentionProvider: mentionProvider,
30
+ profilecardProvider: profilecardProvider
31
+ });
32
+ }
33
+ return /*#__PURE__*/React.createElement(MentionWithProvidersOld, {
22
34
  id: id,
23
35
  text: text,
24
36
  accessLevel: accessLevel,