@atlaskit/editor-core 188.13.2 → 188.13.5

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 (55) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/create-editor/feature-flags-from-props.js +6 -7
  3. package/dist/cjs/plugins/code-block/actions.js +27 -25
  4. package/dist/cjs/plugins/code-block/ide-ux/commands.js +64 -60
  5. package/dist/cjs/plugins/code-block/index.js +1 -1
  6. package/dist/cjs/plugins/code-block/pm-plugins/ide-ux.js +6 -4
  7. package/dist/cjs/plugins/code-block/toolbar.js +8 -5
  8. package/dist/cjs/plugins/layout/actions.js +53 -50
  9. package/dist/cjs/plugins/layout/index.js +1 -2
  10. package/dist/cjs/plugins/layout/toolbar.js +10 -6
  11. package/dist/cjs/plugins/panel/actions.js +59 -56
  12. package/dist/cjs/plugins/panel/index.js +18 -10
  13. package/dist/cjs/plugins/panel/toolbar.js +11 -11
  14. package/dist/cjs/version-wrapper.js +1 -1
  15. package/dist/es2019/create-editor/feature-flags-from-props.js +6 -7
  16. package/dist/es2019/plugins/code-block/actions.js +4 -4
  17. package/dist/es2019/plugins/code-block/ide-ux/commands.js +9 -9
  18. package/dist/es2019/plugins/code-block/index.js +1 -1
  19. package/dist/es2019/plugins/code-block/pm-plugins/ide-ux.js +6 -4
  20. package/dist/es2019/plugins/code-block/toolbar.js +7 -3
  21. package/dist/es2019/plugins/layout/actions.js +6 -7
  22. package/dist/es2019/plugins/layout/index.js +1 -2
  23. package/dist/es2019/plugins/layout/toolbar.js +10 -5
  24. package/dist/es2019/plugins/panel/actions.js +8 -7
  25. package/dist/es2019/plugins/panel/index.js +18 -10
  26. package/dist/es2019/plugins/panel/toolbar.js +11 -11
  27. package/dist/es2019/version-wrapper.js +1 -1
  28. package/dist/esm/create-editor/feature-flags-from-props.js +6 -7
  29. package/dist/esm/plugins/code-block/actions.js +27 -25
  30. package/dist/esm/plugins/code-block/ide-ux/commands.js +62 -58
  31. package/dist/esm/plugins/code-block/index.js +1 -1
  32. package/dist/esm/plugins/code-block/pm-plugins/ide-ux.js +6 -4
  33. package/dist/esm/plugins/code-block/toolbar.js +8 -5
  34. package/dist/esm/plugins/layout/actions.js +53 -50
  35. package/dist/esm/plugins/layout/index.js +1 -2
  36. package/dist/esm/plugins/layout/toolbar.js +10 -6
  37. package/dist/esm/plugins/panel/actions.js +59 -56
  38. package/dist/esm/plugins/panel/index.js +18 -10
  39. package/dist/esm/plugins/panel/toolbar.js +11 -11
  40. package/dist/esm/version-wrapper.js +1 -1
  41. package/dist/types/plugins/code-block/actions.d.ts +1 -1
  42. package/dist/types/plugins/code-block/ide-ux/commands.d.ts +4 -3
  43. package/dist/types/plugins/code-block/toolbar.d.ts +3 -3
  44. package/dist/types/plugins/layout/actions.d.ts +2 -2
  45. package/dist/types/plugins/layout/toolbar.d.ts +3 -3
  46. package/dist/types/plugins/panel/actions.d.ts +4 -4
  47. package/dist/types/plugins/panel/index.d.ts +1 -1
  48. package/dist/types-ts4.5/plugins/code-block/actions.d.ts +1 -1
  49. package/dist/types-ts4.5/plugins/code-block/ide-ux/commands.d.ts +4 -3
  50. package/dist/types-ts4.5/plugins/code-block/toolbar.d.ts +3 -3
  51. package/dist/types-ts4.5/plugins/layout/actions.d.ts +2 -2
  52. package/dist/types-ts4.5/plugins/layout/toolbar.d.ts +3 -3
  53. package/dist/types-ts4.5/plugins/panel/actions.d.ts +4 -4
  54. package/dist/types-ts4.5/plugins/panel/index.d.ts +1 -1
  55. package/package.json +1 -1
@@ -11,14 +11,14 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
  var _utils = require("@atlaskit/editor-prosemirror/utils");
12
12
  var _state = require("@atlaskit/editor-prosemirror/state");
13
13
  var _adfSchema = require("@atlaskit/adf-schema");
14
- var _analytics = require("../analytics");
14
+ var _analytics = require("@atlaskit/editor-common/analytics");
15
15
  var _utils2 = require("./utils");
16
16
  var _panel = require("@atlaskit/editor-common/panel");
17
17
  var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
18
18
  var _utils3 = require("@atlaskit/editor-common/utils");
19
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; }
20
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; }
21
- var removePanel = exports.removePanel = function removePanel() {
21
+ var removePanel = exports.removePanel = function removePanel(editorAnalyticsAPI) {
22
22
  return function (state, dispatch) {
23
23
  var nodes = state.schema.nodes,
24
24
  tr = state.tr;
@@ -40,65 +40,68 @@ var removePanel = exports.removePanel = function removePanel() {
40
40
  return false;
41
41
  }
42
42
  if (dispatch) {
43
- dispatch((0, _analytics.addAnalytics)(state, deleteTr, payload));
43
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(payload)(deleteTr);
44
+ dispatch(deleteTr);
44
45
  }
45
46
  return true;
46
47
  };
47
48
  };
48
- var changePanelType = exports.changePanelType = function changePanelType(panelType) {
49
- var panelOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
50
- var allowCustomPanel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
51
- return function (state, dispatch) {
52
- var nodes = state.schema.nodes,
53
- tr = state.tr;
54
- var panelNode = (0, _utils2.findPanel)(state);
55
- if (panelNode === undefined) {
56
- return false;
57
- }
58
- var newType = panelType;
59
- var previousType = panelNode.node.attrs.panelType;
60
- var newTr;
61
- if (allowCustomPanel) {
62
- var previousColor = panelNode.node.attrs.panelType === 'custom' ? panelNode.node.attrs.panelColor || 'none' : (0, _panel.getPanelTypeBackgroundNoTokens)(previousType);
63
- var previousIcon = panelNode.node.attrs.panelIcon;
64
- var previousIconId = panelNode.node.attrs.panelIconId;
65
- var previousIconText = panelNode.node.attrs.panelIconText;
66
- var newPanelOptions = _objectSpread({
67
- color: previousColor,
68
- emoji: previousIcon,
69
- emojiId: previousIconId,
70
- emojiText: previousIconText
71
- }, panelOptions);
72
- newTr = tr.setNodeMarkup(panelNode.pos, nodes.panel, {
73
- panelIcon: newPanelOptions.emoji,
74
- panelIconId: newPanelOptions.emojiId,
75
- panelIconText: newPanelOptions.emojiText,
76
- panelColor: newPanelOptions.color,
77
- panelType: panelType
78
- });
79
- } else {
80
- newTr = tr.setNodeMarkup(panelNode.pos, nodes.panel, {
81
- panelType: panelType
82
- });
83
- }
84
- var payload = {
85
- action: _analytics.ACTION.CHANGED_TYPE,
86
- actionSubject: _analytics.ACTION_SUBJECT.PANEL,
87
- attributes: {
88
- newType: newType,
89
- previousType: previousType
90
- },
91
- eventType: _analytics.EVENT_TYPE.TRACK
92
- };
49
+ var changePanelType = exports.changePanelType = function changePanelType(editorAnalyticsAPI) {
50
+ return function (panelType) {
51
+ var panelOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
52
+ var allowCustomPanel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
53
+ return function (state, dispatch) {
54
+ var nodes = state.schema.nodes,
55
+ tr = state.tr;
56
+ var panelNode = (0, _utils2.findPanel)(state);
57
+ if (panelNode === undefined) {
58
+ return false;
59
+ }
60
+ var newType = panelType;
61
+ var previousType = panelNode.node.attrs.panelType;
62
+ var newTr;
63
+ if (allowCustomPanel) {
64
+ var previousColor = panelNode.node.attrs.panelType === 'custom' ? panelNode.node.attrs.panelColor || 'none' : (0, _panel.getPanelTypeBackgroundNoTokens)(previousType);
65
+ var previousIcon = panelNode.node.attrs.panelIcon;
66
+ var previousIconId = panelNode.node.attrs.panelIconId;
67
+ var previousIconText = panelNode.node.attrs.panelIconText;
68
+ var newPanelOptions = _objectSpread({
69
+ color: previousColor,
70
+ emoji: previousIcon,
71
+ emojiId: previousIconId,
72
+ emojiText: previousIconText
73
+ }, panelOptions);
74
+ newTr = tr.setNodeMarkup(panelNode.pos, nodes.panel, {
75
+ panelIcon: newPanelOptions.emoji,
76
+ panelIconId: newPanelOptions.emojiId,
77
+ panelIconText: newPanelOptions.emojiText,
78
+ panelColor: newPanelOptions.color,
79
+ panelType: panelType
80
+ });
81
+ } else {
82
+ newTr = tr.setNodeMarkup(panelNode.pos, nodes.panel, {
83
+ panelType: panelType
84
+ });
85
+ }
86
+ var payload = {
87
+ action: _analytics.ACTION.CHANGED_TYPE,
88
+ actionSubject: _analytics.ACTION_SUBJECT.PANEL,
89
+ attributes: {
90
+ newType: newType,
91
+ previousType: previousType
92
+ },
93
+ eventType: _analytics.EVENT_TYPE.TRACK
94
+ };
93
95
 
94
- // Select the panel if it was previously selected
95
- var newTrWithSelection = state.selection instanceof _state.NodeSelection && state.selection.node.type.name === 'panel' ? newTr.setSelection(new _state.NodeSelection(tr.doc.resolve(panelNode.pos))) : newTr;
96
- var changePanelTypeTr = (0, _analytics.addAnalytics)(state, newTrWithSelection, payload);
97
- changePanelTypeTr.setMeta('scrollIntoView', false);
98
- if (dispatch) {
99
- dispatch(changePanelTypeTr);
100
- }
101
- return true;
96
+ // Select the panel if it was previously selected
97
+ var newTrWithSelection = state.selection instanceof _state.NodeSelection && state.selection.node.type.name === 'panel' ? newTr.setSelection(new _state.NodeSelection(tr.doc.resolve(panelNode.pos))) : newTr;
98
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(payload)(newTrWithSelection);
99
+ newTrWithSelection.setMeta('scrollIntoView', false);
100
+ if (dispatch) {
101
+ dispatch(newTrWithSelection);
102
+ }
103
+ return true;
104
+ };
102
105
  };
103
106
  };
104
107
  function insertPanelWithAnalytics(inputMethod, analyticsAPI) {
@@ -10,7 +10,7 @@ var _adfSchema = require("@atlaskit/adf-schema");
10
10
  var _main = require("./pm-plugins/main");
11
11
  var _toolbar = require("./toolbar");
12
12
  var _keymaps = _interopRequireDefault(require("./pm-plugins/keymaps"));
13
- var _analytics = require("../analytics");
13
+ var _analytics = require("@atlaskit/editor-common/analytics");
14
14
  var _quickInsert = require("@atlaskit/editor-common/quick-insert");
15
15
  var _utils = require("@atlaskit/editor-common/utils");
16
16
  var _messages = require("@atlaskit/editor-common/messages");
@@ -67,7 +67,8 @@ var panelPlugin = function panelPlugin(_ref) {
67
67
  state: state,
68
68
  attributes: {
69
69
  panelType: _adfSchema.PanelType.INFO
70
- }
70
+ },
71
+ api: api
71
72
  });
72
73
  }
73
74
  }, {
@@ -83,7 +84,8 @@ var panelPlugin = function panelPlugin(_ref) {
83
84
  state: state,
84
85
  attributes: {
85
86
  panelType: _adfSchema.PanelType.NOTE
86
- }
87
+ },
88
+ api: api
87
89
  });
88
90
  }
89
91
  }, {
@@ -100,7 +102,8 @@ var panelPlugin = function panelPlugin(_ref) {
100
102
  state: state,
101
103
  attributes: {
102
104
  panelType: _adfSchema.PanelType.SUCCESS
103
- }
105
+ },
106
+ api: api
104
107
  });
105
108
  }
106
109
  }, {
@@ -116,7 +119,8 @@ var panelPlugin = function panelPlugin(_ref) {
116
119
  state: state,
117
120
  attributes: {
118
121
  panelType: _adfSchema.PanelType.WARNING
119
- }
122
+ },
123
+ api: api
120
124
  });
121
125
  }
122
126
  }, {
@@ -132,7 +136,8 @@ var panelPlugin = function panelPlugin(_ref) {
132
136
  state: state,
133
137
  attributes: {
134
138
  panelType: _adfSchema.PanelType.ERROR
135
- }
139
+ },
140
+ api: api
136
141
  });
137
142
  }
138
143
  }];
@@ -156,7 +161,8 @@ var panelPlugin = function panelPlugin(_ref) {
156
161
  // TODO: https://product-fabric.atlassian.net/browse/DSP-7268
157
162
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
158
163
  panelColor: _colors.T50
159
- }
164
+ },
165
+ api: api
160
166
  });
161
167
  }
162
168
  });
@@ -184,14 +190,16 @@ var panelPlugin = function panelPlugin(_ref) {
184
190
  */
185
191
  function createPanelAction(_ref4) {
186
192
  var state = _ref4.state,
187
- attributes = _ref4.attributes;
193
+ attributes = _ref4.attributes,
194
+ api = _ref4.api;
188
195
  var tr = (0, _utils.createWrapSelectionTransaction)({
189
196
  state: state,
190
197
  type: state.schema.nodes.panel,
191
198
  nodeAttributes: attributes
192
199
  });
193
200
  if (tr) {
194
- (0, _analytics.addAnalytics)(state, tr, {
201
+ var _api$analytics2;
202
+ api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 || _api$analytics2.actions.attachAnalyticsEvent({
195
203
  action: _analytics.ACTION.INSERTED,
196
204
  actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
197
205
  actionSubjectId: _analytics.ACTION_SUBJECT_ID.PANEL,
@@ -200,7 +208,7 @@ function createPanelAction(_ref4) {
200
208
  panelType: attributes.panelType
201
209
  },
202
210
  eventType: _analytics.EVENT_TYPE.TRACK
203
- });
211
+ })(tr);
204
212
  }
205
213
  return tr;
206
214
  }
@@ -52,7 +52,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
52
52
  id: 'editor.panel.info',
53
53
  type: 'button',
54
54
  icon: _info.default,
55
- onClick: (0, _actions.changePanelType)(_adfSchema.PanelType.INFO),
55
+ onClick: (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.INFO),
56
56
  selected: activePanelType === _adfSchema.PanelType.INFO,
57
57
  title: formatMessage(_message.messages.info),
58
58
  tabIndex: null
@@ -60,7 +60,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
60
60
  id: 'editor.panel.note',
61
61
  type: 'button',
62
62
  icon: _note.default,
63
- onClick: (0, _actions.changePanelType)(_adfSchema.PanelType.NOTE),
63
+ onClick: (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.NOTE),
64
64
  selected: activePanelType === _adfSchema.PanelType.NOTE,
65
65
  title: formatMessage(_message.messages.note),
66
66
  tabIndex: null
@@ -68,7 +68,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
68
68
  id: 'editor.panel.success',
69
69
  type: 'button',
70
70
  icon: _success.default,
71
- onClick: (0, _actions.changePanelType)(_adfSchema.PanelType.SUCCESS),
71
+ onClick: (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.SUCCESS),
72
72
  selected: activePanelType === _adfSchema.PanelType.SUCCESS,
73
73
  title: formatMessage(_message.messages.success),
74
74
  tabIndex: null
@@ -76,7 +76,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
76
76
  id: 'editor.panel.warning',
77
77
  type: 'button',
78
78
  icon: _warning.default,
79
- onClick: (0, _actions.changePanelType)(_adfSchema.PanelType.WARNING),
79
+ onClick: (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.WARNING),
80
80
  selected: activePanelType === _adfSchema.PanelType.WARNING,
81
81
  title: formatMessage(_message.messages.warning),
82
82
  tabIndex: null
@@ -84,7 +84,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
84
84
  id: 'editor.panel.error',
85
85
  type: 'button',
86
86
  icon: _error.default,
87
- onClick: (0, _actions.changePanelType)(_adfSchema.PanelType.ERROR),
87
+ onClick: (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.ERROR),
88
88
  selected: activePanelType === _adfSchema.PanelType.ERROR,
89
89
  title: formatMessage(_message.messages.error),
90
90
  tabIndex: null
@@ -104,7 +104,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
104
104
  emojiId: panelEmoji.id
105
105
  } : {};
106
106
  if (previousColor === color) {
107
- (0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, _objectSpread({
107
+ (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.CUSTOM, _objectSpread({
108
108
  color: color
109
109
  }, previousEmoji), isCustomPanelEnabled)(state, dispatch);
110
110
  return false;
@@ -119,7 +119,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
119
119
  },
120
120
  eventType: _analytics.EVENT_TYPE.TRACK
121
121
  };
122
- (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, _objectSpread({
122
+ (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.CUSTOM, _objectSpread({
123
123
  color: color
124
124
  }, previousEmoji), isCustomPanelEnabled))(state, dispatch);
125
125
  return false;
@@ -133,7 +133,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
133
133
  }
134
134
  var previousIcon = panelNode.node.attrs.panelIcon || '';
135
135
  if (previousIcon === emoji.shortName) {
136
- (0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
136
+ (0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.CUSTOM, {
137
137
  emoji: emoji.shortName,
138
138
  emojiId: emoji.id,
139
139
  emojiText: emoji.fallback
@@ -150,7 +150,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
150
150
  },
151
151
  eventType: _analytics.EVENT_TYPE.TRACK
152
152
  };
153
- (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
153
+ (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.CUSTOM, {
154
154
  emoji: emoji.shortName,
155
155
  emojiId: emoji.id,
156
156
  emojiText: emoji.fallback
@@ -176,7 +176,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
176
176
  },
177
177
  eventType: _analytics.EVENT_TYPE.TRACK
178
178
  };
179
- (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(_adfSchema.PanelType.CUSTOM, {
179
+ (0, _editorAnalytics.withAnalytics)(editorAnalyticsAPI, payload)((0, _actions.changePanelType)(editorAnalyticsAPI)(_adfSchema.PanelType.CUSTOM, {
180
180
  emoji: undefined,
181
181
  emojiId: undefined,
182
182
  emojiText: undefined
@@ -248,7 +248,7 @@ var getToolbarItems = exports.getToolbarItems = function getToolbarItems(formatM
248
248
  appearance: 'danger',
249
249
  focusEditoronEnter: true,
250
250
  icon: _remove.default,
251
- onClick: (0, _actions.removePanel)(),
251
+ onClick: (0, _actions.removePanel)(editorAnalyticsAPI),
252
252
  onMouseEnter: hoverDecoration === null || hoverDecoration === void 0 ? void 0 : hoverDecoration(panelNodeType, true),
253
253
  onMouseLeave: hoverDecoration === null || hoverDecoration === void 0 ? void 0 : hoverDecoration(panelNodeType, false),
254
254
  onFocus: hoverDecoration === null || hoverDecoration === void 0 ? void 0 : hoverDecoration(panelNodeType, true),
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = exports.nextMajorVersion = exports.name = void 0;
7
7
  var name = exports.name = "@atlaskit/editor-core";
8
- var version = exports.version = "188.13.2";
8
+ var version = exports.version = "188.13.5";
9
9
  var nextMajorVersion = exports.nextMajorVersion = function nextMajorVersion() {
10
10
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
11
11
  };
@@ -21,7 +21,7 @@ function getSpellCheck(featureFlags) {
21
21
  * which is used by both current and archv3 editors.
22
22
  */
23
23
  export function createFeatureFlagsFromProps(props) {
24
- var _props$allowLayouts, _props$performanceTra, _props$performanceTra2, _props$allowExtension, _props$featureFlags, _props$featureFlags2, _props$featureFlags3, _props$featureFlags4, _props$featureFlags5, _props$featureFlags6, _props$featureFlags7, _props$featureFlags8, _props$featureFlags9, _props$featureFlags10, _props$featureFlags11, _props$featureFlags12, _props$featureFlags13, _props$featureFlags14, _props$collabEdit, _props$collabEdit2, _props$featureFlags15, _props$featureFlags16, _props$featureFlags17, _props$featureFlags18, _props$featureFlags19, _props$featureFlags20, _props$featureFlags21, _props$featureFlags22, _props$featureFlags23;
24
+ var _props$allowLayouts, _props$performanceTra, _props$performanceTra2, _props$allowExtension, _props$featureFlags, _props$featureFlags2, _props$featureFlags3, _props$featureFlags4, _props$featureFlags5, _props$featureFlags6, _props$featureFlags7, _props$featureFlags8, _props$featureFlags9, _props$featureFlags10, _props$featureFlags11, _props$featureFlags12, _props$featureFlags13, _props$featureFlags14, _props$collabEdit, _props$collabEdit2, _props$featureFlags15, _props$featureFlags16, _props$featureFlags17, _props$featureFlags18, _props$featureFlags19, _props$featureFlags20, _props$featureFlags21, _props$featureFlags22;
25
25
  const normalizedFeatureFlags = normalizeFeatureFlags(props.featureFlags);
26
26
  return {
27
27
  ...normalizedFeatureFlags,
@@ -43,15 +43,14 @@ export function createFeatureFlagsFromProps(props) {
43
43
  ufo: Boolean(typeof ((_props$featureFlags11 = props.featureFlags) === null || _props$featureFlags11 === void 0 ? void 0 : _props$featureFlags11.ufo) === 'boolean' ? !!((_props$featureFlags12 = props.featureFlags) !== null && _props$featureFlags12 !== void 0 && _props$featureFlags12.ufo) : false),
44
44
  twoLineEditorToolbar: Boolean(typeof ((_props$featureFlags13 = props.featureFlags) === null || _props$featureFlags13 === void 0 ? void 0 : _props$featureFlags13.twoLineEditorToolbar) === 'boolean' ? !!((_props$featureFlags14 = props.featureFlags) !== null && _props$featureFlags14 !== void 0 && _props$featureFlags14.twoLineEditorToolbar) : false),
45
45
  useNativeCollabPlugin: Boolean(typeof ((_props$collabEdit = props.collabEdit) === null || _props$collabEdit === void 0 ? void 0 : _props$collabEdit.useNativePlugin) === 'boolean' ? !!((_props$collabEdit2 = props.collabEdit) !== null && _props$collabEdit2 !== void 0 && _props$collabEdit2.useNativePlugin) : false),
46
- chromeCursorHandlerFixedVersion: typeof ((_props$featureFlags15 = props.featureFlags) === null || _props$featureFlags15 === void 0 ? void 0 : _props$featureFlags15.chromeCursorHandlerFixedVersion) === 'string' ? Number(props.featureFlags.chromeCursorHandlerFixedVersion) || undefined : undefined,
47
- showHoverPreview: Boolean(typeof ((_props$featureFlags16 = props.featureFlags) === null || _props$featureFlags16 === void 0 ? void 0 : _props$featureFlags16.showHoverPreview) === 'boolean' ? !!((_props$featureFlags17 = props.featureFlags) !== null && _props$featureFlags17 !== void 0 && _props$featureFlags17.showHoverPreview) : false),
48
- indentationButtonsInTheToolbar: typeof props.showIndentationButtons === 'boolean' ? props.showIndentationButtons : Boolean(typeof normalizedFeatureFlags.indentationButtonsInTheToolbar === 'boolean' && !!normalizedFeatureFlags.indentationButtonsInTheToolbar || (typeof ((_props$featureFlags18 = props.featureFlags) === null || _props$featureFlags18 === void 0 ? void 0 : _props$featureFlags18.indentationButtonsInTheToolbar) === 'boolean' ? !!((_props$featureFlags19 = props.featureFlags) !== null && _props$featureFlags19 !== void 0 && _props$featureFlags19.indentationButtonsInTheToolbar) : false)),
49
- floatingToolbarLinkSettingsButton: typeof ((_props$featureFlags20 = props.featureFlags) === null || _props$featureFlags20 === void 0 ? void 0 : _props$featureFlags20['floating-toolbar-link-settings-button']) === 'string' ? props.featureFlags['floating-toolbar-link-settings-button'] || undefined : undefined,
46
+ showHoverPreview: Boolean(typeof ((_props$featureFlags15 = props.featureFlags) === null || _props$featureFlags15 === void 0 ? void 0 : _props$featureFlags15.showHoverPreview) === 'boolean' ? !!((_props$featureFlags16 = props.featureFlags) !== null && _props$featureFlags16 !== void 0 && _props$featureFlags16.showHoverPreview) : false),
47
+ indentationButtonsInTheToolbar: typeof props.showIndentationButtons === 'boolean' ? props.showIndentationButtons : Boolean(typeof normalizedFeatureFlags.indentationButtonsInTheToolbar === 'boolean' && !!normalizedFeatureFlags.indentationButtonsInTheToolbar || (typeof ((_props$featureFlags17 = props.featureFlags) === null || _props$featureFlags17 === void 0 ? void 0 : _props$featureFlags17.indentationButtonsInTheToolbar) === 'boolean' ? !!((_props$featureFlags18 = props.featureFlags) !== null && _props$featureFlags18 !== void 0 && _props$featureFlags18.indentationButtonsInTheToolbar) : false)),
48
+ floatingToolbarLinkSettingsButton: typeof ((_props$featureFlags19 = props.featureFlags) === null || _props$featureFlags19 === void 0 ? void 0 : _props$featureFlags19['floating-toolbar-link-settings-button']) === 'string' ? props.featureFlags['floating-toolbar-link-settings-button'] || undefined : undefined,
50
49
  disableSpellcheckByBrowser: getSpellCheck(props.featureFlags),
51
50
  // Including fallback to props.featureFlags so that mobile feature flags
52
51
  // are included (they are not kebab cased)
53
- restartNumberedLists: normalizedFeatureFlags.restartNumberedLists === true || ((_props$featureFlags21 = props.featureFlags) === null || _props$featureFlags21 === void 0 ? void 0 : _props$featureFlags21.restartNumberedLists) === true,
52
+ restartNumberedLists: normalizedFeatureFlags.restartNumberedLists === true || ((_props$featureFlags20 = props.featureFlags) === null || _props$featureFlags20 === void 0 ? void 0 : _props$featureFlags20.restartNumberedLists) === true,
54
53
  lpLinkPickerFocusTrap: Boolean(normalizedFeatureFlags.lpLinkPickerFocusTrap),
55
- preventPopupOverflow: Boolean(typeof ((_props$featureFlags22 = props.featureFlags) === null || _props$featureFlags22 === void 0 ? void 0 : _props$featureFlags22['prevent-popup-overflow']) === 'boolean' ? !!((_props$featureFlags23 = props.featureFlags) !== null && _props$featureFlags23 !== void 0 && _props$featureFlags23['prevent-popup-overflow']) : false)
54
+ preventPopupOverflow: Boolean(typeof ((_props$featureFlags21 = props.featureFlags) === null || _props$featureFlags21 === void 0 ? void 0 : _props$featureFlags21['prevent-popup-overflow']) === 'boolean' ? !!((_props$featureFlags22 = props.featureFlags) !== null && _props$featureFlags22 !== void 0 && _props$featureFlags22['prevent-popup-overflow']) : false)
56
55
  };
57
56
  }
@@ -4,7 +4,6 @@ import { pluginKey } from './plugin-key';
4
4
  import { copySelectionPluginKey } from './pm-plugins/codeBlockCopySelectionPlugin';
5
5
  import { ACTIONS } from './pm-plugins/actions';
6
6
  import { copyToClipboard } from '../../utils/clipboard';
7
- import { addAnalytics } from '../analytics/utils';
8
7
  import { shouldSplitSelectedNodeOnNodeInsertion } from '@atlaskit/editor-common/insert';
9
8
  import { transformToCodeBlockAction } from './transform-to-code-block';
10
9
  import { withAnalytics } from '@atlaskit/editor-common/editor-analytics';
@@ -27,7 +26,7 @@ export const removeCodeBlock = (state, dispatch) => {
27
26
  }
28
27
  return true;
29
28
  };
30
- export const changeLanguage = language => (state, dispatch) => {
29
+ export const changeLanguage = editorAnalyticsAPI => language => (state, dispatch) => {
31
30
  var _pluginKey$getState;
32
31
  const {
33
32
  codeBlock
@@ -42,14 +41,15 @@ export const changeLanguage = language => (state, dispatch) => {
42
41
  const selection = isNodeSelection(state.selection) ? NodeSelection.create(tr.doc, pos) : tr.selection;
43
42
  const result = tr.setSelection(selection);
44
43
  if (dispatch) {
45
- dispatch(addAnalytics(state, result, {
44
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
46
45
  action: ACTION.LANGUAGE_SELECTED,
47
46
  actionSubject: ACTION_SUBJECT.CODE_BLOCK,
48
47
  attributes: {
49
48
  language
50
49
  },
51
50
  eventType: EVENT_TYPE.TRACK
52
- }));
51
+ })(result);
52
+ dispatch(result);
53
53
  }
54
54
  return true;
55
55
  };
@@ -1,6 +1,6 @@
1
1
  import { TextSelection } from '@atlaskit/editor-prosemirror/state';
2
2
  import { getLinesFromSelection, getLineInfo, forEachLine, getStartOfCurrentLine } from './line-handling';
3
- import { addAnalytics, ACTION, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD, INDENT_DIRECTION, INDENT_TYPE, ACTION_SUBJECT } from '../../analytics';
3
+ import { ACTION, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD, INDENT_DIRECTION, INDENT_TYPE, ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
4
4
  /**
5
5
  * Return the current indentation level
6
6
  * @param indentText - Text in the code block that represent an indentation
@@ -12,7 +12,7 @@ function getIndentLevel(indentText, indentSize) {
12
12
  }
13
13
  return indentText.length / indentSize;
14
14
  }
15
- export function indent(state, dispatch) {
15
+ export const indent = editorAnalyticsAPI => (state, dispatch) => {
16
16
  const {
17
17
  text,
18
18
  start
@@ -29,7 +29,7 @@ export function indent(state, dispatch) {
29
29
  const indentLevel = getIndentLevel(indentText, indentToken.size);
30
30
  const indentToAdd = indentToken.token.repeat(indentToken.size - indentText.length % indentToken.size || indentToken.size);
31
31
  tr.insertText(indentToAdd, tr.mapping.map(start + offset, -1));
32
- addAnalytics(state, tr, {
32
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
33
33
  action: ACTION.FORMATTED,
34
34
  actionSubject: ACTION_SUBJECT.TEXT,
35
35
  actionSubjectId: ACTION_SUBJECT_ID.FORMAT_INDENT,
@@ -41,7 +41,7 @@ export function indent(state, dispatch) {
41
41
  direction: INDENT_DIRECTION.INDENT,
42
42
  indentType: INDENT_TYPE.CODE_BLOCK
43
43
  }
44
- });
44
+ })(tr);
45
45
  if (!selection.empty) {
46
46
  tr.setSelection(TextSelection.create(tr.doc, tr.mapping.map(selection.from, -1), tr.selection.to));
47
47
  }
@@ -50,8 +50,8 @@ export function indent(state, dispatch) {
50
50
  dispatch(tr);
51
51
  }
52
52
  return true;
53
- }
54
- export function outdent(state, dispatch) {
53
+ };
54
+ export const outdent = editorAnalyticsAPI => (state, dispatch) => {
55
55
  const {
56
56
  text,
57
57
  start
@@ -68,7 +68,7 @@ export function outdent(state, dispatch) {
68
68
  const indentLevel = getIndentLevel(indentText, indentToken.size);
69
69
  const unindentLength = indentText.length % indentToken.size || indentToken.size;
70
70
  tr.delete(tr.mapping.map(start + offset), tr.mapping.map(start + offset + unindentLength));
71
- addAnalytics(state, tr, {
71
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
72
72
  action: ACTION.FORMATTED,
73
73
  actionSubject: ACTION_SUBJECT.TEXT,
74
74
  actionSubjectId: ACTION_SUBJECT_ID.FORMAT_INDENT,
@@ -80,14 +80,14 @@ export function outdent(state, dispatch) {
80
80
  direction: INDENT_DIRECTION.OUTDENT,
81
81
  indentType: INDENT_TYPE.CODE_BLOCK
82
82
  }
83
- });
83
+ })(tr);
84
84
  }
85
85
  });
86
86
  if (dispatch) {
87
87
  dispatch(tr);
88
88
  }
89
89
  return true;
90
- }
90
+ };
91
91
  export function insertIndent(state, dispatch) {
92
92
  const {
93
93
  text: textAtStartOfLine
@@ -98,7 +98,7 @@ const codeBlockPlugin = ({
98
98
  return tr;
99
99
  }
100
100
  }],
101
- floatingToolbar: getToolbarConfig(options === null || options === void 0 ? void 0 : options.allowCopyToClipboard, api === null || api === void 0 ? void 0 : api.decorations.actions.hoverDecoration)
101
+ floatingToolbar: getToolbarConfig(options === null || options === void 0 ? void 0 : options.allowCopyToClipboard, api)
102
102
  }
103
103
  });
104
104
  export default codeBlockPlugin;
@@ -10,6 +10,8 @@ import { getAutoClosingQuoteInfo, shouldAutoCloseQuote } from '../ide-ux/quote-h
10
10
  import { getEndOfCurrentLine, getStartOfCurrentLine, isCursorInsideCodeBlock, isSelectionEntirelyInsideCodeBlock, getLineInfo } from '../ide-ux/line-handling';
11
11
  import { insertIndent, outdent, indent, insertNewlineWithIndent } from '../ide-ux/commands';
12
12
  const ideUX = pluginInjectionApi => {
13
+ var _pluginInjectionApi$a;
14
+ const editorAnalyticsAPI = pluginInjectionApi === null || pluginInjectionApi === void 0 ? void 0 : (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
13
15
  return new SafePlugin({
14
16
  props: {
15
17
  handleTextInput(view, from, to, text) {
@@ -100,8 +102,8 @@ const ideUX = pluginInjectionApi => {
100
102
  return false;
101
103
  },
102
104
  Enter: filter(isSelectionEntirelyInsideCodeBlock, insertNewlineWithIndent),
103
- 'Mod-]': filter(isSelectionEntirelyInsideCodeBlock, indent),
104
- 'Mod-[': filter(isSelectionEntirelyInsideCodeBlock, outdent),
105
+ 'Mod-]': filter(isSelectionEntirelyInsideCodeBlock, indent(editorAnalyticsAPI)),
106
+ 'Mod-[': filter(isSelectionEntirelyInsideCodeBlock, outdent(editorAnalyticsAPI)),
105
107
  Tab: filter(isSelectionEntirelyInsideCodeBlock, (state, dispatch) => {
106
108
  if (!dispatch) {
107
109
  return false;
@@ -109,9 +111,9 @@ const ideUX = pluginInjectionApi => {
109
111
  if (isCursorInsideCodeBlock(state)) {
110
112
  return insertIndent(state, dispatch);
111
113
  }
112
- return indent(state, dispatch);
114
+ return indent(editorAnalyticsAPI)(state, dispatch);
113
115
  }),
114
- 'Shift-Tab': filter(isSelectionEntirelyInsideCodeBlock, outdent),
116
+ 'Shift-Tab': filter(isSelectionEntirelyInsideCodeBlock, outdent(editorAnalyticsAPI)),
115
117
  'Mod-a': (state, dispatch) => {
116
118
  if (isSelectionEntirelyInsideCodeBlock(state)) {
117
119
  const {
@@ -16,10 +16,14 @@ export const messages = defineMessages({
16
16
  }
17
17
  });
18
18
  const languageList = createLanguageList(DEFAULT_LANGUAGES);
19
- export const getToolbarConfig = (allowCopyToClipboard = false, hoverDecoration) => (state, {
19
+ export const getToolbarConfig = (allowCopyToClipboard = false, api) => (state, {
20
20
  formatMessage
21
21
  }) => {
22
- var _codeBlockState$pos, _node$attrs;
22
+ var _api$decorations$acti, _api$analytics, _codeBlockState$pos, _node$attrs;
23
+ const {
24
+ hoverDecoration
25
+ } = (_api$decorations$acti = api === null || api === void 0 ? void 0 : api.decorations.actions) !== null && _api$decorations$acti !== void 0 ? _api$decorations$acti : {};
26
+ const editorAnalyticsAPI = api === null || api === void 0 ? void 0 : (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
23
27
  const codeBlockState = pluginKey.getState(state);
24
28
  const pos = (_codeBlockState$pos = codeBlockState === null || codeBlockState === void 0 ? void 0 : codeBlockState.pos) !== null && _codeBlockState$pos !== void 0 ? _codeBlockState$pos : null;
25
29
  if (!codeBlockState || pos === null) {
@@ -43,7 +47,7 @@ export const getToolbarConfig = (allowCopyToClipboard = false, hoverDecoration)
43
47
  id: 'editor.codeBlock.languageOptions',
44
48
  type: 'select',
45
49
  selectType: 'list',
46
- onChange: option => changeLanguage(option.value),
50
+ onChange: option => changeLanguage(editorAnalyticsAPI)(option.value),
47
51
  defaultValue,
48
52
  placeholder: formatMessage(messages.selectLanguage),
49
53
  options,
@@ -4,7 +4,6 @@ import { TextSelection, NodeSelection } from '@atlaskit/editor-prosemirror/state
4
4
  import { flatmap, mapChildren } from '../../utils/slice';
5
5
  import { getStepRange, isEmptyDocument } from '@atlaskit/editor-common/utils';
6
6
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
7
- import { addAnalytics } from '../analytics/utils';
8
7
  import { withAnalytics } from '@atlaskit/editor-common/editor-analytics';
9
8
  import { LAYOUT_TYPE } from '../analytics/types/node-events';
10
9
  import { pluginKey } from './pm-plugins/plugin-key';
@@ -194,7 +193,7 @@ export function forceSectionToPresetLayout(state, node, pos, presetLayout) {
194
193
  const selectionPos$ = tr.doc.resolve(selection.$from.pos);
195
194
  return tr.setSelection(state.selection instanceof NodeSelection ? new NodeSelection(selectionPos$) : new TextSelection(selectionPos$));
196
195
  }
197
- export const setPresetLayout = layout => (state, dispatch) => {
196
+ export const setPresetLayout = editorAnalyticsAPI => layout => (state, dispatch) => {
198
197
  const {
199
198
  pos,
200
199
  selectedLayout
@@ -208,7 +207,7 @@ export const setPresetLayout = layout => (state, dispatch) => {
208
207
  }
209
208
  let tr = forceSectionToPresetLayout(state, node, pos, layout);
210
209
  if (tr) {
211
- tr = addAnalytics(state, tr, {
210
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
212
211
  action: ACTION.CHANGED_LAYOUT,
213
212
  actionSubject: ACTION_SUBJECT.LAYOUT,
214
213
  attributes: {
@@ -216,7 +215,7 @@ export const setPresetLayout = layout => (state, dispatch) => {
216
215
  newLayout: formatLayoutName(layout)
217
216
  },
218
217
  eventType: EVENT_TYPE.TRACK
219
- });
218
+ })(tr);
220
219
  tr.setMeta('scrollIntoView', false);
221
220
  if (dispatch) {
222
221
  dispatch(tr);
@@ -290,7 +289,7 @@ export const fixColumnStructure = state => {
290
289
  }
291
290
  return;
292
291
  };
293
- export const deleteActiveLayoutNode = (state, dispatch) => {
292
+ export const deleteActiveLayoutNode = editorAnalyticsAPI => (state, dispatch) => {
294
293
  const {
295
294
  pos,
296
295
  selectedLayout
@@ -299,14 +298,14 @@ export const deleteActiveLayoutNode = (state, dispatch) => {
299
298
  const node = state.doc.nodeAt(pos);
300
299
  if (dispatch) {
301
300
  let tr = state.tr.delete(pos, pos + node.nodeSize);
302
- tr = addAnalytics(state, tr, {
301
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
303
302
  action: ACTION.DELETED,
304
303
  actionSubject: ACTION_SUBJECT.LAYOUT,
305
304
  attributes: {
306
305
  layout: formatLayoutName(selectedLayout)
307
306
  },
308
307
  eventType: EVENT_TYPE.TRACK
309
- });
308
+ })(tr);
310
309
  dispatch(tr);
311
310
  }
312
311
  return true;
@@ -42,8 +42,7 @@ const layoutPlugin = ({
42
42
  allowSingleColumnLayout
43
43
  } = pluginKey.getState(state);
44
44
  if (pos !== null) {
45
- var _api$decorations$acti;
46
- return buildToolbar(state, intl, pos, allowBreakout, addSidebarLayouts, allowSingleColumnLayout, api === null || api === void 0 ? void 0 : (_api$decorations$acti = api.decorations.actions) === null || _api$decorations$acti === void 0 ? void 0 : _api$decorations$acti.hoverDecoration);
45
+ return buildToolbar(state, intl, pos, allowBreakout, addSidebarLayouts, allowSingleColumnLayout, api);
47
46
  }
48
47
  return undefined;
49
48
  },