@atlaskit/editor-core 188.12.0 → 188.12.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 (71) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/labs/next/presets/universal.js +12 -1
  3. package/dist/cjs/plugins/annotation/index.js +12 -1
  4. package/dist/cjs/plugins/annotation/pm-plugins/inline-comment.js +2 -1
  5. package/dist/cjs/plugins/annotation/pm-plugins/plugin-factory.js +5 -0
  6. package/dist/cjs/plugins/annotation/pm-plugins/reducer.js +2 -1
  7. package/dist/cjs/plugins/annotation/toolbar.js +2 -156
  8. package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +33 -31
  9. package/dist/cjs/plugins/layout/actions.js +20 -17
  10. package/dist/cjs/plugins/layout/index.js +6 -2
  11. package/dist/cjs/plugins/panel/index.js +1 -1
  12. package/dist/cjs/plugins/panel/toolbar.js +9 -7
  13. package/dist/cjs/plugins/paste/pm-plugins/analytics.js +0 -6
  14. package/dist/cjs/plugins/rank.js +1 -1
  15. package/dist/cjs/plugins/tasks-and-decisions/index.js +1 -1
  16. package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/keymaps.js +104 -90
  17. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +4 -2
  18. package/dist/cjs/version-wrapper.js +1 -1
  19. package/dist/es2019/labs/next/presets/universal.js +12 -1
  20. package/dist/es2019/plugins/annotation/index.js +14 -1
  21. package/dist/es2019/plugins/annotation/pm-plugins/inline-comment.js +2 -1
  22. package/dist/es2019/plugins/annotation/pm-plugins/plugin-factory.js +6 -0
  23. package/dist/es2019/plugins/annotation/pm-plugins/reducer.js +2 -1
  24. package/dist/es2019/plugins/annotation/toolbar.js +1 -156
  25. package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +4 -3
  26. package/dist/es2019/plugins/layout/actions.js +4 -3
  27. package/dist/es2019/plugins/layout/index.js +63 -57
  28. package/dist/es2019/plugins/panel/index.js +1 -1
  29. package/dist/es2019/plugins/panel/toolbar.js +9 -7
  30. package/dist/es2019/plugins/paste/pm-plugins/analytics.js +1 -4
  31. package/dist/es2019/plugins/rank.js +1 -1
  32. package/dist/es2019/plugins/tasks-and-decisions/index.js +1 -1
  33. package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/keymaps.js +22 -14
  34. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +4 -2
  35. package/dist/es2019/version-wrapper.js +1 -1
  36. package/dist/esm/labs/next/presets/universal.js +12 -1
  37. package/dist/esm/plugins/annotation/index.js +12 -1
  38. package/dist/esm/plugins/annotation/pm-plugins/inline-comment.js +2 -1
  39. package/dist/esm/plugins/annotation/pm-plugins/plugin-factory.js +5 -0
  40. package/dist/esm/plugins/annotation/pm-plugins/reducer.js +2 -1
  41. package/dist/esm/plugins/annotation/toolbar.js +1 -156
  42. package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +33 -31
  43. package/dist/esm/plugins/layout/actions.js +15 -12
  44. package/dist/esm/plugins/layout/index.js +7 -3
  45. package/dist/esm/plugins/panel/index.js +1 -1
  46. package/dist/esm/plugins/panel/toolbar.js +9 -7
  47. package/dist/esm/plugins/paste/pm-plugins/analytics.js +1 -6
  48. package/dist/esm/plugins/rank.js +1 -1
  49. package/dist/esm/plugins/tasks-and-decisions/index.js +1 -1
  50. package/dist/esm/plugins/tasks-and-decisions/pm-plugins/keymaps.js +104 -90
  51. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +4 -2
  52. package/dist/esm/version-wrapper.js +1 -1
  53. package/dist/types/plugins/annotation/pm-plugins/types.d.ts +1 -0
  54. package/dist/types/plugins/insert-block/types.d.ts +3 -1
  55. package/dist/types/plugins/layout/actions.d.ts +2 -1
  56. package/dist/types/plugins/layout/index.d.ts +4 -0
  57. package/dist/types/plugins/panel/index.d.ts +2 -2
  58. package/dist/types/plugins/panel/toolbar.d.ts +5 -3
  59. package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +0 -1
  60. package/dist/types/plugins/tasks-and-decisions/pm-plugins/keymaps.d.ts +7 -4
  61. package/dist/types/plugins/tasks-and-decisions/types.d.ts +5 -1
  62. package/dist/types-ts4.5/plugins/annotation/pm-plugins/types.d.ts +1 -0
  63. package/dist/types-ts4.5/plugins/insert-block/types.d.ts +3 -1
  64. package/dist/types-ts4.5/plugins/layout/actions.d.ts +2 -1
  65. package/dist/types-ts4.5/plugins/layout/index.d.ts +4 -0
  66. package/dist/types-ts4.5/plugins/panel/index.d.ts +2 -2
  67. package/dist/types-ts4.5/plugins/panel/toolbar.d.ts +5 -3
  68. package/dist/types-ts4.5/plugins/paste/pm-plugins/analytics.d.ts +0 -1
  69. package/dist/types-ts4.5/plugins/tasks-and-decisions/pm-plugins/keymaps.d.ts +7 -4
  70. package/dist/types-ts4.5/plugins/tasks-and-decisions/types.d.ts +3 -1
  71. package/package.json +6 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 188.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#41835](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41835) [`94e9da119e9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/94e9da119e9) - Decouple plugins from internal deprecated analytics plugin action "withAnalytics".
8
+ - [#41731](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41731) [`8a9ec6c3e8d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8a9ec6c3e8d) - ED-20161 Added editor-plugin-selection-toolbar as a dependency behind platform.editor.enable-selection-toolbar_ucdwd feature flag. Also moves toolbar position logic from annotation plugin in to selection toolbar.
9
+ - [#41168](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41168) [`94faad53870`](https://bitbucket.org/atlassian/atlassian-frontend/commits/94faad53870) - [ux] Allows for navigating overlapping inline comments
10
+ - Updated dependencies
11
+
3
12
  ## 188.12.0
4
13
 
5
14
  ### Minor Changes
@@ -29,6 +29,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
29
29
  var _editorPluginSaveOnEnter = require("@atlaskit/editor-plugin-save-on-enter");
30
30
  var _editorPluginScrollIntoView = require("@atlaskit/editor-plugin-scroll-into-view");
31
31
  var _editorPluginMentions = require("@atlaskit/editor-plugin-mentions");
32
+ var _editorPluginSelectionToolbar = require("@atlaskit/editor-plugin-selection-toolbar");
32
33
  var _isFullPage = require("../../../utils/is-full-page");
33
34
  var _mediaCommon = require("@atlaskit/media-common");
34
35
  var _default = require("./default");
@@ -401,6 +402,16 @@ function createUniversalPreset(appearance, props, featureFlags, prevAppearance,
401
402
  return builder;
402
403
  }).add([_plugins.codeBidiWarningPlugin, {
403
404
  appearance: appearance
404
- }]);
405
+ }])
406
+ /**
407
+ * Do not use this plugin - it is for AI purposes only.
408
+ */.maybeAdd(_editorPluginSelectionToolbar.selectionToolbarPlugin, function (plugin, builder) {
409
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.enable-selection-toolbar_ucdwd')) {
410
+ return builder.add([plugin, {
411
+ preferenceToolbarAboveSelection: false
412
+ }]);
413
+ }
414
+ return builder;
415
+ });
405
416
  return finalPreset;
406
417
  }
@@ -20,6 +20,7 @@ var _utils = require("./utils");
20
20
  var _toolbar = require("./toolbar");
21
21
  var _InlineCommentView = require("./ui/InlineCommentView");
22
22
  var _hooks = require("@atlaskit/editor-common/hooks");
23
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
23
24
  var annotationPlugin = function annotationPlugin(_ref) {
24
25
  var annotationProviders = _ref.config,
25
26
  api = _ref.api;
@@ -66,7 +67,17 @@ var annotationPlugin = function annotationPlugin(_ref) {
66
67
  },
67
68
  pluginsOptions: {
68
69
  floatingToolbar: function floatingToolbar(state, intl) {
69
- if (!annotationProviders) {
70
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.enable-selection-toolbar_ucdwd') || !annotationProviders) {
71
+ return;
72
+ }
73
+ var pluginState = (0, _utils.getPluginState)(state);
74
+ if (pluginState && pluginState.isVisible && !pluginState.bookmark && !pluginState.mouseData.isSelecting) {
75
+ var isToolbarAbove = annotationProviders.inlineComment.isToolbarAbove;
76
+ return (0, _toolbar.buildToolbar)(state, intl, isToolbarAbove);
77
+ }
78
+ },
79
+ selectionToolbar: function selectionToolbar(state, intl) {
80
+ if (!(0, _platformFeatureFlags.getBooleanFF)('platform.editor.enable-selection-toolbar_ucdwd') || !annotationProviders) {
70
81
  return;
71
82
  }
72
83
  var pluginState = (0, _utils.getPluginState)(state);
@@ -84,7 +84,8 @@ var initialState = function initialState() {
84
84
  isSelecting: false
85
85
  },
86
86
  disallowOnWhitespace: disallowOnWhitespace,
87
- isVisible: true
87
+ isVisible: true,
88
+ skipSelectionHandling: false
88
89
  };
89
90
  };
90
91
  var hideToolbar = function hideToolbar(state, dispatch) {
@@ -20,6 +20,11 @@ var handleDocChanged = function handleDocChanged(tr, prevPluginState) {
20
20
  });
21
21
  };
22
22
  var handleSelectionChanged = function handleSelectionChanged(tr, pluginState) {
23
+ if (pluginState.skipSelectionHandling) {
24
+ return _objectSpread(_objectSpread({}, pluginState), {}, {
25
+ skipSelectionHandling: false
26
+ });
27
+ }
23
28
  var selectedAnnotations = (0, _utils.findAnnotationsInSelection)(tr.selection, tr.doc);
24
29
  var changed = selectedAnnotations.length !== pluginState.selectedAnnotations.length || selectedAnnotations.some(function (annotationInfo) {
25
30
  return !pluginState.selectedAnnotations.some(function (aInfo) {
@@ -50,7 +50,8 @@ var _default = exports.default = function _default(pluginState, action) {
50
50
  });
51
51
  case _types.ACTIONS.SET_SELECTED_ANNOTATION:
52
52
  return _objectSpread(_objectSpread({}, pluginState), {}, {
53
- selectedAnnotations: (0, _toConsumableArray2.default)(action.data.selectedAnnotations)
53
+ selectedAnnotations: (0, _toConsumableArray2.default)(action.data.selectedAnnotations),
54
+ skipSelectionHandling: true
54
55
  });
55
56
  default:
56
57
  return pluginState;
@@ -12,161 +12,7 @@ var _commands = require("./commands");
12
12
  var _types = require("./types");
13
13
  var _utils = require("./utils");
14
14
  var _messages = require("@atlaskit/editor-common/messages");
15
- // AFP-2532 TODO: Fix automatic suppressions below
16
- // eslint-disable-next-line @atlassian/tangerine/import/entry-points
17
- /**
18
- * Returns the coordintes at the bottom the selection.
19
- */
20
- var getCoordsBelowSelection = function getCoordsBelowSelection(bottomCoords, toolbarRect) {
21
- return {
22
- top: (bottomCoords.top || 0) + toolbarRect.height / 1.15,
23
- left: bottomCoords.right - toolbarRect.width / 2
24
- };
25
- };
26
-
27
- /*
28
- Calculates the position of the floating toolbar relative to the selection.
29
-
30
- This is a re-implementation which closely matches the behaviour on Confluence renderer.
31
- The main difference is the popup is always above the selection.
32
-
33
- Things to consider:
34
- - popup is always above the selection
35
- - coordinates of head X and getBoundingClientRect() are absolute in client viewport (not including scroll offsets)
36
- - popup may appear in '.fabric-editor-popup-scroll-parent' (or body)
37
- - we use the toolbarRect to center align toolbar
38
- - use wrapperBounds to clamp values
39
- - editorView.dom bounds differ to wrapperBounds, convert at the end
40
- */
41
- var calculateToolbarPositionAboveSelection = function calculateToolbarPositionAboveSelection(toolbarTitle) {
42
- return function (editorView, nextPos) {
43
- var toolbar = document.querySelector("div[aria-label=\"".concat(toolbarTitle, "\"]"));
44
- if (!toolbar) {
45
- return nextPos;
46
- }
47
-
48
- // scroll wrapper for full page, fall back to document body
49
- // TODO: look into using getScrollGutterOptions()
50
- var scrollWrapper = editorView.dom.closest('.fabric-editor-popup-scroll-parent') || document.body;
51
- var wrapperBounds = scrollWrapper.getBoundingClientRect();
52
- var selection = window && window.getSelection();
53
- var range = selection && !selection.isCollapsed && selection.getRangeAt(0);
54
- if (!range) {
55
- return nextPos;
56
- }
57
- var toolbarRect = toolbar.getBoundingClientRect();
58
- var _editorView$state$sel = editorView.state.selection,
59
- head = _editorView$state$sel.head,
60
- anchor = _editorView$state$sel.anchor;
61
- var topCoords = editorView.coordsAtPos(Math.min(head, anchor));
62
- var bottomCoords = editorView.coordsAtPos(Math.max(head, anchor) - Math.min(range.endOffset, 1));
63
- var top = (topCoords.top || 0) - toolbarRect.height * 1.5;
64
- var left = 0;
65
-
66
- // If not on the same line
67
- if (topCoords.top !== bottomCoords.top) {
68
- // selecting downwards
69
- if (head > anchor) {
70
- left = Math.max(topCoords.right, bottomCoords.right);
71
- } else {
72
- left = Math.min(topCoords.left, bottomCoords.left);
73
- }
74
-
75
- /*
76
- short selection above a long paragraph
77
- eg. short {<}heading
78
- The purpose of this text is to show the selection range{>}.
79
- The horizontal positioning should center around "heading",
80
- not where it ends at "range".
81
- Note: if it was "head<b>ing</b>" then it would only center
82
- around "head". Undesireable but matches the current renderer.
83
- */
84
- var cliffPosition = range.getClientRects()[0];
85
- if (cliffPosition.right < left) {
86
- left = cliffPosition.left + cliffPosition.width / 2;
87
- }
88
- } else {
89
- // Otherwise center on the single line selection
90
- left = topCoords.left + (bottomCoords.right - topCoords.left) / 2;
91
- }
92
- left -= toolbarRect.width / 2;
93
-
94
- // Place toolbar below selection if not sufficient space above
95
- if (top < wrapperBounds.top) {
96
- var _getCoordsBelowSelect = getCoordsBelowSelection(bottomCoords, toolbarRect);
97
- top = _getCoordsBelowSelect.top;
98
- left = _getCoordsBelowSelect.left;
99
- }
100
-
101
- // remap positions from browser document to wrapperBounds
102
- return {
103
- top: top - wrapperBounds.top + scrollWrapper.scrollTop,
104
- left: Math.max(0, left - wrapperBounds.left)
105
- };
106
- };
107
- };
108
-
109
- /*
110
- Calculates the position of the floating toolbar relative to the selection.
111
-
112
- This is a re-implementation which closely matches the behaviour on Confluence renderer.
113
- The main difference is the popup is always above the selection.
114
-
115
- Things to consider:
116
- - stick as close to the head X release coordinates as possible
117
- - coordinates of head X and getBoundingClientRect() are absolute in client viewport (not including scroll offsets)
118
- - popup may appear in '.fabric-editor-popup-scroll-parent' (or body)
119
- - we use the toolbarRect to center align toolbar
120
- - use wrapperBounds to clamp values
121
- - editorView.dom bounds differ to wrapperBounds, convert at the end
122
- */
123
- var calculateToolbarPositionTrackHead = function calculateToolbarPositionTrackHead(toolbarTitle) {
124
- return function (editorView, nextPos) {
125
- var toolbar = document.querySelector("div[aria-label=\"".concat(toolbarTitle, "\"]"));
126
- if (!toolbar) {
127
- return nextPos;
128
- }
129
-
130
- // scroll wrapper for full page, fall back to document body
131
- // TODO: look into using getScrollGutterOptions()
132
- var scrollWrapper = editorView.dom.closest('.fabric-editor-popup-scroll-parent') || document.body;
133
- var wrapperBounds = scrollWrapper.getBoundingClientRect();
134
- var selection = window && window.getSelection();
135
- var range = selection && !selection.isCollapsed && selection.getRangeAt(0);
136
- if (!range) {
137
- return nextPos;
138
- }
139
- var toolbarRect = toolbar.getBoundingClientRect();
140
- var _editorView$state$sel2 = editorView.state.selection,
141
- head = _editorView$state$sel2.head,
142
- anchor = _editorView$state$sel2.anchor;
143
- var topCoords = editorView.coordsAtPos(Math.min(head, anchor));
144
- var bottomCoords = editorView.coordsAtPos(Math.max(head, anchor) - Math.min(range.endOffset, 1));
145
- var top;
146
- // If not the same line, display toolbar below.
147
- if (head > anchor && topCoords.top !== bottomCoords.top) {
148
- // We are taking the previous pos to the maxium, so avoid end of line positions
149
- // returning the next line's rect.
150
- top = (bottomCoords.top || 0) + toolbarRect.height / 1.15;
151
- } else {
152
- top = (topCoords.top || 0) - toolbarRect.height * 1.5;
153
- }
154
- var left = (head > anchor ? bottomCoords.right : topCoords.left) - toolbarRect.width / 2;
155
-
156
- // Place toolbar below selection if not sufficient space above
157
- if (top < wrapperBounds.top) {
158
- var _getCoordsBelowSelect2 = getCoordsBelowSelection(bottomCoords, toolbarRect);
159
- top = _getCoordsBelowSelect2.top;
160
- left = _getCoordsBelowSelect2.left;
161
- }
162
-
163
- // remap positions from browser document to wrapperBounds
164
- return {
165
- top: top - wrapperBounds.top + scrollWrapper.scrollTop,
166
- left: Math.max(0, left - wrapperBounds.left)
167
- };
168
- };
169
- };
15
+ var _utils2 = require("@atlaskit/editor-common/utils");
170
16
  var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl) {
171
17
  var isToolbarAbove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
172
18
  var schema = state.schema;
@@ -200,7 +46,7 @@ var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl) {
200
46
  return acc;
201
47
  }, []);
202
48
  var toolbarTitle = intl.formatMessage(_messages.annotationMessages.toolbar);
203
- var calcToolbarPosition = isToolbarAbove ? calculateToolbarPositionAboveSelection : calculateToolbarPositionTrackHead;
49
+ var calcToolbarPosition = isToolbarAbove ? _utils2.calculateToolbarPositionAboveSelection : _utils2.calculateToolbarPositionTrackHead;
204
50
  var onPositionCalculated = calcToolbarPosition(toolbarTitle);
205
51
  return {
206
52
  title: toolbarTitle,
@@ -23,7 +23,6 @@ var _ToolbarButton = _interopRequireDefault(require("../../../../ui/ToolbarButto
23
23
  var _styles = require("@atlaskit/editor-common/styles");
24
24
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
25
25
  var _actions = require("../../../placeholder-text/actions");
26
- var _actions2 = require("../../../layout/actions");
27
26
  var _commands = require("../../../tasks-and-decisions/commands");
28
27
  var _commands2 = require("../../../expand/commands");
29
28
  var _analytics = require("@atlaskit/editor-common/analytics");
@@ -215,21 +214,24 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
215
214
  return true;
216
215
  });
217
216
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertLayoutColumns", function (inputMethod) {
218
- var editorView = _this.props.editorView;
219
- (0, _actions2.insertLayoutColumnsWithAnalytics)(inputMethod)(editorView.state, editorView.dispatch);
217
+ var _pluginInjectionApi$l;
218
+ var _this$props3 = _this.props,
219
+ editorView = _this$props3.editorView,
220
+ pluginInjectionApi = _this$props3.pluginInjectionApi;
221
+ pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$l = pluginInjectionApi.layout) === null || _pluginInjectionApi$l === void 0 || _pluginInjectionApi$l.actions.insertLayoutColumns(inputMethod)(editorView.state, editorView.dispatch);
220
222
  return true;
221
223
  });
222
224
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createStatus", function (inputMethod) {
223
225
  var _pluginInjectionApi$s, _pluginInjectionApi$s2;
224
- var _this$props3 = _this.props,
225
- pluginInjectionApi = _this$props3.pluginInjectionApi,
226
- editorView = _this$props3.editorView;
226
+ var _this$props4 = _this.props,
227
+ pluginInjectionApi = _this$props4.pluginInjectionApi,
228
+ editorView = _this$props4.editorView;
227
229
  return (_pluginInjectionApi$s = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$s2 = pluginInjectionApi.status) === null || _pluginInjectionApi$s2 === void 0 || (_pluginInjectionApi$s2 = _pluginInjectionApi$s2.actions) === null || _pluginInjectionApi$s2 === void 0 ? void 0 : _pluginInjectionApi$s2.updateStatus(inputMethod)(editorView.state, editorView.dispatch)) !== null && _pluginInjectionApi$s !== void 0 ? _pluginInjectionApi$s : false;
228
230
  });
229
231
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "openMediaPicker", function (inputMethod) {
230
- var _this$props4 = _this.props,
231
- onShowMediaPicker = _this$props4.onShowMediaPicker,
232
- dispatchAnalyticsEvent = _this$props4.dispatchAnalyticsEvent;
232
+ var _this$props5 = _this.props,
233
+ onShowMediaPicker = _this$props5.onShowMediaPicker,
234
+ dispatchAnalyticsEvent = _this$props5.dispatchAnalyticsEvent;
233
235
  if (onShowMediaPicker) {
234
236
  onShowMediaPicker();
235
237
  if (dispatchAnalyticsEvent) {
@@ -257,11 +259,11 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
257
259
  });
258
260
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertHorizontalRule", function (inputMethod) {
259
261
  var _pluginInjectionApi$r, _pluginInjectionApi$r2;
260
- var _this$props5 = _this.props,
261
- _this$props5$editorVi = _this$props5.editorView,
262
- state = _this$props5$editorVi.state,
263
- dispatch = _this$props5$editorVi.dispatch,
264
- pluginInjectionApi = _this$props5.pluginInjectionApi;
262
+ var _this$props6 = _this.props,
263
+ _this$props6$editorVi = _this$props6.editorView,
264
+ state = _this$props6$editorVi.state,
265
+ dispatch = _this$props6$editorVi.dispatch,
266
+ pluginInjectionApi = _this$props6.pluginInjectionApi;
265
267
  return (_pluginInjectionApi$r = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$r2 = pluginInjectionApi.rule) === null || _pluginInjectionApi$r2 === void 0 ? void 0 : _pluginInjectionApi$r2.actions.insertHorizontalRule(inputMethod)(state, dispatch)) !== null && _pluginInjectionApi$r !== void 0 ? _pluginInjectionApi$r : false;
266
268
  });
267
269
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertExpand", function () {
@@ -272,9 +274,9 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
272
274
  });
273
275
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "insertBlockType", function (itemName) {
274
276
  return function () {
275
- var _this$props6 = _this.props,
276
- editorView = _this$props6.editorView,
277
- onInsertBlockType = _this$props6.onInsertBlockType;
277
+ var _this$props7 = _this.props,
278
+ editorView = _this$props7.editorView,
279
+ onInsertBlockType = _this$props7.onInsertBlockType;
278
280
  var state = editorView.state,
279
281
  dispatch = editorView.dispatch;
280
282
  onInsertBlockType(itemName)(state, dispatch);
@@ -297,11 +299,11 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
297
299
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onItemActivated", function (_ref2) {
298
300
  var item = _ref2.item,
299
301
  inputMethod = _ref2.inputMethod;
300
- var _this$props7 = _this.props,
301
- editorView = _this$props7.editorView,
302
- editorActions = _this$props7.editorActions,
303
- handleImageUpload = _this$props7.handleImageUpload,
304
- expandEnabled = _this$props7.expandEnabled;
302
+ var _this$props8 = _this.props,
303
+ editorView = _this$props8.editorView,
304
+ editorActions = _this$props8.editorActions,
305
+ handleImageUpload = _this$props8.handleImageUpload,
306
+ expandEnabled = _this$props8.expandEnabled;
305
307
 
306
308
  // need to do this before inserting nodes so scrollIntoView works properly
307
309
  if (!editorView.hasFocus()) {
@@ -417,12 +419,12 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
417
419
  key: "renderPopup",
418
420
  value: function renderPopup() {
419
421
  var emojiPickerOpen = this.state.emojiPickerOpen;
420
- var _this$props8 = this.props,
421
- popupsMountPoint = _this$props8.popupsMountPoint,
422
- popupsBoundariesElement = _this$props8.popupsBoundariesElement,
423
- popupsScrollableElement = _this$props8.popupsScrollableElement,
424
- emojiProvider = _this$props8.emojiProvider,
425
- replacePlusMenuWithElementBrowser = _this$props8.replacePlusMenuWithElementBrowser;
422
+ var _this$props9 = this.props,
423
+ popupsMountPoint = _this$props9.popupsMountPoint,
424
+ popupsBoundariesElement = _this$props9.popupsBoundariesElement,
425
+ popupsScrollableElement = _this$props9.popupsScrollableElement,
426
+ emojiProvider = _this$props9.emojiProvider,
427
+ replacePlusMenuWithElementBrowser = _this$props9.replacePlusMenuWithElementBrowser;
426
428
  var dropdownEmoji = this.state.dropdownItems.some(function (_ref4) {
427
429
  var name = _ref4.value.name;
428
430
  return name === 'emoji';
@@ -459,9 +461,9 @@ var ToolbarInsertBlock = exports.ToolbarInsertBlock = /*#__PURE__*/function (_Re
459
461
  buttons = _this$state.buttons,
460
462
  dropdownItems = _this$state.dropdownItems,
461
463
  emojiPickerOpen = _this$state.emojiPickerOpen;
462
- var _this$props9 = this.props,
463
- isDisabled = _this$props9.isDisabled,
464
- isReducedSpacing = _this$props9.isReducedSpacing;
464
+ var _this$props10 = this.props,
465
+ isDisabled = _this$props10.isDisabled,
466
+ isReducedSpacing = _this$props10.isReducedSpacing;
465
467
  if (buttons.length === 0 && dropdownItems.length === 0) {
466
468
  return null;
467
469
  }
@@ -13,8 +13,9 @@ var _model = require("@atlaskit/editor-prosemirror/model");
13
13
  var _state = require("@atlaskit/editor-prosemirror/state");
14
14
  var _slice = require("../../utils/slice");
15
15
  var _utils2 = require("@atlaskit/editor-common/utils");
16
- var _enums = require("../analytics/types/enums");
16
+ var _analytics = require("@atlaskit/editor-common/analytics");
17
17
  var _utils3 = require("../analytics/utils");
18
+ var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
18
19
  var _nodeEvents = require("../analytics/types/node-events");
19
20
  var _pluginKey = require("./pm-plugins/plugin-key");
20
21
  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; }
@@ -88,16 +89,18 @@ var insertLayoutColumns = exports.insertLayoutColumns = function insertLayoutCol
88
89
  }
89
90
  return true;
90
91
  };
91
- var insertLayoutColumnsWithAnalytics = exports.insertLayoutColumnsWithAnalytics = function insertLayoutColumnsWithAnalytics(inputMethod) {
92
- return (0, _utils3.withAnalytics)({
93
- action: _enums.ACTION.INSERTED,
94
- actionSubject: _enums.ACTION_SUBJECT.DOCUMENT,
95
- actionSubjectId: _enums.ACTION_SUBJECT_ID.LAYOUT,
96
- attributes: {
97
- inputMethod: inputMethod
98
- },
99
- eventType: _enums.EVENT_TYPE.TRACK
100
- })(insertLayoutColumns);
92
+ var insertLayoutColumnsWithAnalytics = exports.insertLayoutColumnsWithAnalytics = function insertLayoutColumnsWithAnalytics(editorAnalyticsAPI) {
93
+ return function (inputMethod) {
94
+ return (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, {
95
+ action: _analytics.ACTION.INSERTED,
96
+ actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
97
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.LAYOUT,
98
+ attributes: {
99
+ inputMethod: inputMethod
100
+ },
101
+ eventType: _analytics.EVENT_TYPE.TRACK
102
+ })(insertLayoutColumns);
103
+ };
101
104
  };
102
105
 
103
106
  /**
@@ -222,13 +225,13 @@ var setPresetLayout = exports.setPresetLayout = function setPresetLayout(layout)
222
225
  var tr = forceSectionToPresetLayout(state, node, pos, layout);
223
226
  if (tr) {
224
227
  tr = (0, _utils3.addAnalytics)(state, tr, {
225
- action: _enums.ACTION.CHANGED_LAYOUT,
226
- actionSubject: _enums.ACTION_SUBJECT.LAYOUT,
228
+ action: _analytics.ACTION.CHANGED_LAYOUT,
229
+ actionSubject: _analytics.ACTION_SUBJECT.LAYOUT,
227
230
  attributes: {
228
231
  previousLayout: formatLayoutName(selectedLayout),
229
232
  newLayout: formatLayoutName(layout)
230
233
  },
231
- eventType: _enums.EVENT_TYPE.TRACK
234
+ eventType: _analytics.EVENT_TYPE.TRACK
232
235
  });
233
236
  tr.setMeta('scrollIntoView', false);
234
237
  if (dispatch) {
@@ -310,12 +313,12 @@ var deleteActiveLayoutNode = exports.deleteActiveLayoutNode = function deleteAct
310
313
  if (dispatch) {
311
314
  var tr = state.tr.delete(pos, pos + node.nodeSize);
312
315
  tr = (0, _utils3.addAnalytics)(state, tr, {
313
- action: _enums.ACTION.DELETED,
314
- actionSubject: _enums.ACTION_SUBJECT.LAYOUT,
316
+ action: _analytics.ACTION.DELETED,
317
+ actionSubject: _analytics.ACTION_SUBJECT.LAYOUT,
315
318
  attributes: {
316
319
  layout: formatLayoutName(selectedLayout)
317
320
  },
318
- eventType: _enums.EVENT_TYPE.TRACK
321
+ eventType: _analytics.EVENT_TYPE.TRACK
319
322
  });
320
323
  dispatch(tr);
321
324
  }
@@ -21,6 +21,7 @@ var _analytics = require("@atlaskit/editor-common/analytics");
21
21
  var _messages = require("../insert-block/ui/ToolbarInsertBlock/messages");
22
22
  var _pluginKey = require("./pm-plugins/plugin-key");
23
23
  var layoutPlugin = function layoutPlugin(_ref) {
24
+ var _api$analytics;
24
25
  var _ref$config = _ref.config,
25
26
  options = _ref$config === void 0 ? {} : _ref$config,
26
27
  api = _ref.api;
@@ -43,6 +44,9 @@ var layoutPlugin = function layoutPlugin(_ref) {
43
44
  }
44
45
  }];
45
46
  },
47
+ actions: {
48
+ insertLayoutColumns: (0, _actions.insertLayoutColumnsWithAnalytics)(api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions)
49
+ },
46
50
  pluginsOptions: {
47
51
  floatingToolbar: function floatingToolbar(state, intl) {
48
52
  var _ref2 = _pluginKey.pluginKey.getState(state),
@@ -68,9 +72,9 @@ var layoutPlugin = function layoutPlugin(_ref) {
68
72
  return /*#__PURE__*/_react.default.createElement(_quickInsert.IconLayout, null);
69
73
  },
70
74
  action: function action(insert, state) {
71
- var _api$analytics;
75
+ var _api$analytics2;
72
76
  var tr = insert((0, _actions.createDefaultLayoutSection)(state));
73
- 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({
77
+ api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 || (_api$analytics2 = _api$analytics2.actions) === null || _api$analytics2 === void 0 || _api$analytics2.attachAnalyticsEvent({
74
78
  action: _analytics.ACTION.INSERTED,
75
79
  actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
76
80
  actionSubjectId: _analytics.ACTION_SUBJECT_ID.LAYOUT,
@@ -164,7 +164,7 @@ var panelPlugin = function panelPlugin(_ref) {
164
164
  return quickInsertOptions;
165
165
  },
166
166
  floatingToolbar: function floatingToolbar(state, intl, providerFactory) {
167
- return (0, _toolbar.getToolbarConfig)(state, intl, options, providerFactory, api === null || api === void 0 ? void 0 : api.decorations.actions.hoverDecoration);
167
+ return (0, _toolbar.getToolbarConfig)(state, intl, options, providerFactory, api);
168
168
  }
169
169
  }
170
170
  };
@@ -21,7 +21,8 @@ var _utils = require("./utils");
21
21
  var _utils2 = require("@atlaskit/editor-prosemirror/utils");
22
22
  var _uiColor = require("@atlaskit/editor-common/ui-color");
23
23
  var _adfSchema = require("@atlaskit/adf-schema");
24
- var _analytics = require("../analytics");
24
+ var _analytics = require("@atlaskit/editor-common/analytics");
25
+ var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
25
26
  var _message = require("./message");
26
27
  var _panelIconMap;
27
28
  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; }
@@ -45,7 +46,7 @@ var panelIconMap = exports.panelIconMap = (_panelIconMap = {}, (0, _defineProper
45
46
  shortName: ':tip:',
46
47
  id: 'atlassian-tip'
47
48
  }), _panelIconMap);
48
- var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatMessage, panelNodeType, isCustomPanelEnabled, isCustomPanelEditable, providerFactory, hoverDecoration, activePanelType, activePanelColor, activePanelIcon, state) {
49
+ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatMessage, panelNodeType, isCustomPanelEnabled, isCustomPanelEditable, providerFactory, hoverDecoration, editorAnalyticsAPI, activePanelType, activePanelColor, activePanelIcon, state) {
49
50
  // TODO: ED-14403 investigate why these titles are not getting translated for the tooltips
50
51
  var items = [{
51
52
  id: 'editor.panel.info',
@@ -118,7 +119,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
118
119
  },
119
120
  eventType: _analytics.EVENT_TYPE.TRACK
120
121
  };
121
- (0, _analytics.withAnalytics)(payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, _objectSpread({
122
+ (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, _objectSpread({
122
123
  color: color
123
124
  }, previousEmoji), isCustomPanelEnabled))(state, dispatch);
124
125
  return false;
@@ -149,7 +150,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
149
150
  },
150
151
  eventType: _analytics.EVENT_TYPE.TRACK
151
152
  };
152
- (0, _analytics.withAnalytics)(payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
153
+ (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
153
154
  emoji: emoji.shortName,
154
155
  emojiId: emoji.id,
155
156
  emojiText: emoji.fallback
@@ -175,7 +176,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
175
176
  },
176
177
  eventType: _analytics.EVENT_TYPE.TRACK
177
178
  };
178
- (0, _analytics.withAnalytics)(payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
179
+ (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
179
180
  emoji: undefined,
180
181
  emojiId: undefined,
181
182
  emojiText: undefined
@@ -260,10 +261,11 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
260
261
  var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(state, intl) {
261
262
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
262
263
  var providerFactory = arguments.length > 3 ? arguments[3] : undefined;
263
- var hoverDecoration = arguments.length > 4 ? arguments[4] : undefined;
264
+ var api = arguments.length > 4 ? arguments[4] : undefined;
264
265
  var formatMessage = intl.formatMessage;
265
266
  var panelObject = (0, _utils.findPanel)(state);
266
267
  if (panelObject) {
268
+ var _api$analytics;
267
269
  var nodeType = state.schema.nodes.panel;
268
270
  var _panelObject$node$att = panelObject.node.attrs,
269
271
  panelType = _panelObject$node$att.panelType,
@@ -274,7 +276,7 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(stat
274
276
  };
275
277
 
276
278
  // force toolbar to be turned on
277
- var items = getToolbarItems(formatMessage, nodeType, options.allowCustomPanel || false, options.allowCustomPanel && options.allowCustomPanelEdit || false, providerFactory, hoverDecoration, panelType, options.allowCustomPanel ? panelColor : undefined, options.allowCustomPanel ? panelIcon || isStandardPanel(panelType) : undefined, state);
279
+ var items = getToolbarItems(formatMessage, nodeType, options.allowCustomPanel || false, options.allowCustomPanel && options.allowCustomPanelEdit || false, providerFactory, api === null || api === void 0 ? void 0 : api.decorations.actions.hoverDecoration, api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions, panelType, options.allowCustomPanel ? panelColor : undefined, options.allowCustomPanel ? panelIcon || isStandardPanel(panelType) : undefined, state);
278
280
  var getDomRef = function getDomRef(editorView) {
279
281
  var domAtPos = editorView.domAtPos.bind(editorView);
280
282
  var element = (0, _utils2.findDomRefAtPos)(panelObject.pos, domAtPos);
@@ -10,7 +10,6 @@ exports.getContent = getContent;
10
10
  exports.getContentNodeTypes = void 0;
11
11
  exports.getMediaTraceId = getMediaTraceId;
12
12
  exports.handleSelectedTableWithAnalytics = exports.handleRichTextWithAnalytics = exports.handlePastePreservingMarksWithAnalytics = exports.handlePastePanelOrDecisionIntoListWithAnalytics = exports.handlePasteNonNestableBlockNodesIntoListWithAnalytics = exports.handlePasteLinkOnSelectedTextWithAnalytics = exports.handlePasteIntoTaskAndDecisionWithAnalytics = exports.handlePasteIntoCaptionWithAnalytics = exports.handlePasteAsPlainTextWithAnalytics = exports.handleMediaSingleWithAnalytics = exports.handleMarkdownWithAnalytics = exports.handleExpandWithAnalytics = exports.handleCodeBlockWithAnalytics = void 0;
13
- exports.pasteCommandWithAnalytics = pasteCommandWithAnalytics;
14
13
  exports.sendPasteAnalyticsEvent = sendPasteAnalyticsEvent;
15
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
16
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -226,11 +225,6 @@ function sendPasteAnalyticsEvent(view, event, slice, pasteContext) {
226
225
  var payload = createPasteAnalyticsPayload(view, event, slice, pasteContext);
227
226
  view.dispatch((0, _analytics.addAnalytics)(view.state, view.state.tr, payload));
228
227
  }
229
- function pasteCommandWithAnalytics(view, event, slice, pasteContext) {
230
- return (0, _analytics.withAnalytics)(function () {
231
- return createPasteAnalyticsPayload(view, event, slice, pasteContext);
232
- });
233
- }
234
228
  var handlePasteAsPlainTextWithAnalytics = exports.handlePasteAsPlainTextWithAnalytics = function handlePasteAsPlainTextWithAnalytics(view, event, slice) {
235
229
  return injectAnalyticsPayloadBeforeCommand(createPasteAnalyticsPayloadBySelection(event, slice, {
236
230
  type: _analytics.PasteTypes.plain,
@@ -19,7 +19,7 @@ var _default = exports.default = {
19
19
  'mediaKeymap',
20
20
  // selection keymap needs to be above gap cursor keymap so it can set node selections from
21
21
  // left/right arrows
22
- 'selectionKeymap', 'gapCursorKeymap', 'gapCursor', 'syncUrlText', 'fakeCursorToolbarPlugin', 'hyperLink', 'table', 'tableDecorations', 'hyperlinkInputRule', 'tablePMColResizing', 'hyperlinkKeymap', 'tableColResizing', 'undoRedoKeyMap', 'blockTypeKeyMap', 'tableEditing', 'filterStepsPlugin', 'pmCollab', 'collab', 'ruleInputRule', 'ruleKeymap', 'panel', 'media', 'mediaSingleKeymap', 'mediaEditor', 'unsupportedContent', 'jiraIssue', 'fakeTextCursor', 'helpDialog', 'helpDialogKeymap', 'macro', 'expand', 'extension', 'layout', 'contextPanel', 'floatingToolbar', 'clearMarksOnChange', 'reactNodeView', 'history', 'undoRedoPlugin', 'codeBlockIndent', 'placeholder', 'width', 'maxContentSize', 'multilineContent', 'grid', 'mobileDimensions', 'scrollGutterPlugin', 'analytics', 'findReplace', 'selection', 'avatarGroup', 'viewUpdateSubscription', 'beforePrimaryToolbar', 'inlineCode'],
22
+ 'selectionKeymap', 'gapCursorKeymap', 'gapCursor', 'syncUrlText', 'fakeCursorToolbarPlugin', 'hyperLink', 'table', 'tableDecorations', 'hyperlinkInputRule', 'tablePMColResizing', 'hyperlinkKeymap', 'tableColResizing', 'undoRedoKeyMap', 'blockTypeKeyMap', 'tableEditing', 'filterStepsPlugin', 'pmCollab', 'collab', 'ruleInputRule', 'ruleKeymap', 'panel', 'media', 'mediaSingleKeymap', 'mediaEditor', 'unsupportedContent', 'jiraIssue', 'fakeTextCursor', 'helpDialog', 'helpDialogKeymap', 'macro', 'expand', 'extension', 'layout', 'contextPanel', 'selectionToolbar', 'floatingToolbar', 'clearMarksOnChange', 'reactNodeView', 'history', 'undoRedoPlugin', 'codeBlockIndent', 'placeholder', 'width', 'maxContentSize', 'multilineContent', 'grid', 'mobileDimensions', 'scrollGutterPlugin', 'analytics', 'findReplace', 'selection', 'avatarGroup', 'viewUpdateSubscription', 'beforePrimaryToolbar', 'inlineCode'],
23
23
  nodes: ['doc', 'paragraph', 'text', 'bulletList', 'orderedList', 'listItem', 'heading', 'blockquote', 'codeBlock', 'rule', 'panel', 'mention', 'confluenceUnsupportedBlock', 'confluenceUnsupportedInline', 'unsupportedBlock', 'unsupportedInline', 'confluenceJiraIssue', 'hardBreak', 'emoji', 'placeholder', 'mediaSingle', 'mediaGroup', 'table', 'expand', 'nestedExpand', 'media', 'tableHeader', 'decisionList', 'tableRow', 'decisionItem', 'tableCell', 'taskList', 'taskItem', 'extension', 'bodiedExtension', 'inlineExtension', 'layoutSection', 'layoutColumn', 'inlineCard', 'blockCard', 'embedCard'],
24
24
  marks: [
25
25
  // Fragment mark is both for inline and block elements
@@ -79,7 +79,7 @@ var tasksAndDecisionsPlugin = function tasksAndDecisionsPlugin(_ref2) {
79
79
  name: 'tasksAndDecisionsKeyMap',
80
80
  plugin: function plugin(_ref5) {
81
81
  var schema = _ref5.schema;
82
- return (0, _keymaps.default)(schema, allowNestedTasks, consumeTabs);
82
+ return (0, _keymaps.default)(schema, api, allowNestedTasks, consumeTabs);
83
83
  }
84
84
  } // Needs to be after "save-on-enter"
85
85
  ];