@atlaskit/editor-core 188.13.1 → 188.13.3

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 (57) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/plugins/code-block/actions.js +27 -25
  3. package/dist/cjs/plugins/code-block/ide-ux/commands.js +64 -60
  4. package/dist/cjs/plugins/code-block/index.js +1 -1
  5. package/dist/cjs/plugins/code-block/pm-plugins/ide-ux.js +6 -4
  6. package/dist/cjs/plugins/code-block/toolbar.js +8 -5
  7. package/dist/cjs/plugins/layout/actions.js +53 -50
  8. package/dist/cjs/plugins/layout/index.js +1 -2
  9. package/dist/cjs/plugins/layout/toolbar.js +10 -6
  10. package/dist/cjs/plugins/panel/actions.js +59 -56
  11. package/dist/cjs/plugins/panel/index.js +18 -10
  12. package/dist/cjs/plugins/panel/toolbar.js +11 -11
  13. package/dist/cjs/plugins/undo-redo/pm-plugins/keymaps.js +10 -1
  14. package/dist/cjs/version-wrapper.js +1 -1
  15. package/dist/es2019/plugins/code-block/actions.js +4 -4
  16. package/dist/es2019/plugins/code-block/ide-ux/commands.js +9 -9
  17. package/dist/es2019/plugins/code-block/index.js +1 -1
  18. package/dist/es2019/plugins/code-block/pm-plugins/ide-ux.js +6 -4
  19. package/dist/es2019/plugins/code-block/toolbar.js +7 -3
  20. package/dist/es2019/plugins/layout/actions.js +6 -7
  21. package/dist/es2019/plugins/layout/index.js +1 -2
  22. package/dist/es2019/plugins/layout/toolbar.js +10 -5
  23. package/dist/es2019/plugins/panel/actions.js +8 -7
  24. package/dist/es2019/plugins/panel/index.js +18 -10
  25. package/dist/es2019/plugins/panel/toolbar.js +11 -11
  26. package/dist/es2019/plugins/undo-redo/pm-plugins/keymaps.js +11 -2
  27. package/dist/es2019/version-wrapper.js +1 -1
  28. package/dist/esm/plugins/code-block/actions.js +27 -25
  29. package/dist/esm/plugins/code-block/ide-ux/commands.js +62 -58
  30. package/dist/esm/plugins/code-block/index.js +1 -1
  31. package/dist/esm/plugins/code-block/pm-plugins/ide-ux.js +6 -4
  32. package/dist/esm/plugins/code-block/toolbar.js +8 -5
  33. package/dist/esm/plugins/layout/actions.js +53 -50
  34. package/dist/esm/plugins/layout/index.js +1 -2
  35. package/dist/esm/plugins/layout/toolbar.js +10 -6
  36. package/dist/esm/plugins/panel/actions.js +59 -56
  37. package/dist/esm/plugins/panel/index.js +18 -10
  38. package/dist/esm/plugins/panel/toolbar.js +11 -11
  39. package/dist/esm/plugins/undo-redo/pm-plugins/keymaps.js +11 -2
  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/plugins/undo-redo/pm-plugins/keymaps.d.ts +1 -1
  49. package/dist/types-ts4.5/plugins/code-block/actions.d.ts +1 -1
  50. package/dist/types-ts4.5/plugins/code-block/ide-ux/commands.d.ts +4 -3
  51. package/dist/types-ts4.5/plugins/code-block/toolbar.d.ts +3 -3
  52. package/dist/types-ts4.5/plugins/layout/actions.d.ts +2 -2
  53. package/dist/types-ts4.5/plugins/layout/toolbar.d.ts +3 -3
  54. package/dist/types-ts4.5/plugins/panel/actions.d.ts +4 -4
  55. package/dist/types-ts4.5/plugins/panel/index.d.ts +1 -1
  56. package/dist/types-ts4.5/plugins/undo-redo/pm-plugins/keymaps.d.ts +1 -1
  57. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 188.13.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#41937](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41937) [`d510a8e569a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d510a8e569a) - Migrate code-block, panel, and layout to new editor analytics API.
8
+
9
+ ## 188.13.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [#41634](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41634) [`e7cd20932b9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e7cd20932b9) - on windows, toggles mark when the capslock is on
14
+
3
15
  ## 188.13.1
4
16
 
5
17
  ### Patch Changes
@@ -14,7 +14,6 @@ var _pluginKey = require("./plugin-key");
14
14
  var _codeBlockCopySelectionPlugin = require("./pm-plugins/codeBlockCopySelectionPlugin");
15
15
  var _actions = require("./pm-plugins/actions");
16
16
  var _clipboard = require("../../utils/clipboard");
17
- var _utils2 = require("../analytics/utils");
18
17
  var _insert = require("@atlaskit/editor-common/insert");
19
18
  var _transformToCodeBlock = require("./transform-to-code-block");
20
19
  var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
@@ -33,30 +32,33 @@ var removeCodeBlock = exports.removeCodeBlock = function removeCodeBlock(state,
33
32
  }
34
33
  return true;
35
34
  };
36
- var changeLanguage = exports.changeLanguage = function changeLanguage(language) {
37
- return function (state, dispatch) {
38
- var _pluginKey$getState;
39
- var codeBlock = state.schema.nodes.codeBlock;
40
- var pos = (_pluginKey$getState = _pluginKey.pluginKey.getState(state)) === null || _pluginKey$getState === void 0 ? void 0 : _pluginKey$getState.pos;
41
- if (typeof pos !== 'number') {
42
- return false;
43
- }
44
- var tr = state.tr.setNodeMarkup(pos, codeBlock, {
45
- language: language
46
- }).setMeta('scrollIntoView', false);
47
- var selection = (0, _utils.isNodeSelection)(state.selection) ? _state.NodeSelection.create(tr.doc, pos) : tr.selection;
48
- var result = tr.setSelection(selection);
49
- if (dispatch) {
50
- dispatch((0, _utils2.addAnalytics)(state, result, {
51
- action: _analytics.ACTION.LANGUAGE_SELECTED,
52
- actionSubject: _analytics.ACTION_SUBJECT.CODE_BLOCK,
53
- attributes: {
54
- language: language
55
- },
56
- eventType: _analytics.EVENT_TYPE.TRACK
57
- }));
58
- }
59
- return true;
35
+ var changeLanguage = exports.changeLanguage = function changeLanguage(editorAnalyticsAPI) {
36
+ return function (language) {
37
+ return function (state, dispatch) {
38
+ var _pluginKey$getState;
39
+ var codeBlock = state.schema.nodes.codeBlock;
40
+ var pos = (_pluginKey$getState = _pluginKey.pluginKey.getState(state)) === null || _pluginKey$getState === void 0 ? void 0 : _pluginKey$getState.pos;
41
+ if (typeof pos !== 'number') {
42
+ return false;
43
+ }
44
+ var tr = state.tr.setNodeMarkup(pos, codeBlock, {
45
+ language: language
46
+ }).setMeta('scrollIntoView', false);
47
+ var selection = (0, _utils.isNodeSelection)(state.selection) ? _state.NodeSelection.create(tr.doc, pos) : tr.selection;
48
+ var result = tr.setSelection(selection);
49
+ if (dispatch) {
50
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
51
+ action: _analytics.ACTION.LANGUAGE_SELECTED,
52
+ actionSubject: _analytics.ACTION_SUBJECT.CODE_BLOCK,
53
+ attributes: {
54
+ language: language
55
+ },
56
+ eventType: _analytics.EVENT_TYPE.TRACK
57
+ })(result);
58
+ dispatch(result);
59
+ }
60
+ return true;
61
+ };
60
62
  };
61
63
  };
62
64
  var copyContentToClipboard = exports.copyContentToClipboard = function copyContentToClipboard(state, dispatch) {
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.indent = indent;
6
+ exports.indent = void 0;
7
7
  exports.insertIndent = insertIndent;
8
8
  exports.insertNewlineWithIndent = insertNewlineWithIndent;
9
- exports.outdent = outdent;
9
+ exports.outdent = void 0;
10
10
  var _state = require("@atlaskit/editor-prosemirror/state");
11
11
  var _lineHandling = require("./line-handling");
12
- var _analytics = require("../../analytics");
12
+ var _analytics = require("@atlaskit/editor-common/analytics");
13
13
  /**
14
14
  * Return the current indentation level
15
15
  * @param indentText - Text in the code block that represent an indentation
@@ -21,55 +21,21 @@ function getIndentLevel(indentText, indentSize) {
21
21
  }
22
22
  return indentText.length / indentSize;
23
23
  }
24
- function indent(state, dispatch) {
25
- var _getLinesFromSelectio = (0, _lineHandling.getLinesFromSelection)(state),
26
- text = _getLinesFromSelectio.text,
27
- start = _getLinesFromSelectio.start;
28
- var tr = state.tr,
29
- selection = state.selection;
30
- (0, _lineHandling.forEachLine)(text, function (line, offset) {
31
- var _getLineInfo = (0, _lineHandling.getLineInfo)(line),
32
- indentText = _getLineInfo.indentText,
33
- indentToken = _getLineInfo.indentToken;
34
- var indentLevel = getIndentLevel(indentText, indentToken.size);
35
- var indentToAdd = indentToken.token.repeat(indentToken.size - indentText.length % indentToken.size || indentToken.size);
36
- tr.insertText(indentToAdd, tr.mapping.map(start + offset, -1));
37
- (0, _analytics.addAnalytics)(state, tr, {
38
- action: _analytics.ACTION.FORMATTED,
39
- actionSubject: _analytics.ACTION_SUBJECT.TEXT,
40
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_INDENT,
41
- eventType: _analytics.EVENT_TYPE.TRACK,
42
- attributes: {
43
- inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
44
- previousIndentationLevel: indentLevel,
45
- newIndentLevel: indentLevel + 1,
46
- direction: _analytics.INDENT_DIRECTION.INDENT,
47
- indentType: _analytics.INDENT_TYPE.CODE_BLOCK
48
- }
49
- });
50
- if (!selection.empty) {
51
- tr.setSelection(_state.TextSelection.create(tr.doc, tr.mapping.map(selection.from, -1), tr.selection.to));
52
- }
53
- });
54
- if (dispatch) {
55
- dispatch(tr);
56
- }
57
- return true;
58
- }
59
- function outdent(state, dispatch) {
60
- var _getLinesFromSelectio2 = (0, _lineHandling.getLinesFromSelection)(state),
61
- text = _getLinesFromSelectio2.text,
62
- start = _getLinesFromSelectio2.start;
63
- var tr = state.tr;
64
- (0, _lineHandling.forEachLine)(text, function (line, offset) {
65
- var _getLineInfo2 = (0, _lineHandling.getLineInfo)(line),
66
- indentText = _getLineInfo2.indentText,
67
- indentToken = _getLineInfo2.indentToken;
68
- if (indentText) {
24
+ var indent = exports.indent = function indent(editorAnalyticsAPI) {
25
+ return function (state, dispatch) {
26
+ var _getLinesFromSelectio = (0, _lineHandling.getLinesFromSelection)(state),
27
+ text = _getLinesFromSelectio.text,
28
+ start = _getLinesFromSelectio.start;
29
+ var tr = state.tr,
30
+ selection = state.selection;
31
+ (0, _lineHandling.forEachLine)(text, function (line, offset) {
32
+ var _getLineInfo = (0, _lineHandling.getLineInfo)(line),
33
+ indentText = _getLineInfo.indentText,
34
+ indentToken = _getLineInfo.indentToken;
69
35
  var indentLevel = getIndentLevel(indentText, indentToken.size);
70
- var unindentLength = indentText.length % indentToken.size || indentToken.size;
71
- tr.delete(tr.mapping.map(start + offset), tr.mapping.map(start + offset + unindentLength));
72
- (0, _analytics.addAnalytics)(state, tr, {
36
+ var indentToAdd = indentToken.token.repeat(indentToken.size - indentText.length % indentToken.size || indentToken.size);
37
+ tr.insertText(indentToAdd, tr.mapping.map(start + offset, -1));
38
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
73
39
  action: _analytics.ACTION.FORMATTED,
74
40
  actionSubject: _analytics.ACTION_SUBJECT.TEXT,
75
41
  actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_INDENT,
@@ -77,18 +43,56 @@ function outdent(state, dispatch) {
77
43
  attributes: {
78
44
  inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
79
45
  previousIndentationLevel: indentLevel,
80
- newIndentLevel: indentLevel - 1,
81
- direction: _analytics.INDENT_DIRECTION.OUTDENT,
46
+ newIndentLevel: indentLevel + 1,
47
+ direction: _analytics.INDENT_DIRECTION.INDENT,
82
48
  indentType: _analytics.INDENT_TYPE.CODE_BLOCK
83
49
  }
84
- });
50
+ })(tr);
51
+ if (!selection.empty) {
52
+ tr.setSelection(_state.TextSelection.create(tr.doc, tr.mapping.map(selection.from, -1), tr.selection.to));
53
+ }
54
+ });
55
+ if (dispatch) {
56
+ dispatch(tr);
85
57
  }
86
- });
87
- if (dispatch) {
88
- dispatch(tr);
89
- }
90
- return true;
91
- }
58
+ return true;
59
+ };
60
+ };
61
+ var outdent = exports.outdent = function outdent(editorAnalyticsAPI) {
62
+ return function (state, dispatch) {
63
+ var _getLinesFromSelectio2 = (0, _lineHandling.getLinesFromSelection)(state),
64
+ text = _getLinesFromSelectio2.text,
65
+ start = _getLinesFromSelectio2.start;
66
+ var tr = state.tr;
67
+ (0, _lineHandling.forEachLine)(text, function (line, offset) {
68
+ var _getLineInfo2 = (0, _lineHandling.getLineInfo)(line),
69
+ indentText = _getLineInfo2.indentText,
70
+ indentToken = _getLineInfo2.indentToken;
71
+ if (indentText) {
72
+ var indentLevel = getIndentLevel(indentText, indentToken.size);
73
+ var unindentLength = indentText.length % indentToken.size || indentToken.size;
74
+ tr.delete(tr.mapping.map(start + offset), tr.mapping.map(start + offset + unindentLength));
75
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
76
+ action: _analytics.ACTION.FORMATTED,
77
+ actionSubject: _analytics.ACTION_SUBJECT.TEXT,
78
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.FORMAT_INDENT,
79
+ eventType: _analytics.EVENT_TYPE.TRACK,
80
+ attributes: {
81
+ inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
82
+ previousIndentationLevel: indentLevel,
83
+ newIndentLevel: indentLevel - 1,
84
+ direction: _analytics.INDENT_DIRECTION.OUTDENT,
85
+ indentType: _analytics.INDENT_TYPE.CODE_BLOCK
86
+ }
87
+ })(tr);
88
+ }
89
+ });
90
+ if (dispatch) {
91
+ dispatch(tr);
92
+ }
93
+ return true;
94
+ };
95
+ };
92
96
  function insertIndent(state, dispatch) {
93
97
  var _getStartOfCurrentLin = (0, _lineHandling.getStartOfCurrentLine)(state),
94
98
  textAtStartOfLine = _getStartOfCurrentLin.text;
@@ -113,7 +113,7 @@ var codeBlockPlugin = function codeBlockPlugin(_ref) {
113
113
  }
114
114
  }];
115
115
  },
116
- floatingToolbar: (0, _toolbar.getToolbarConfig)(options === null || options === void 0 ? void 0 : options.allowCopyToClipboard, api === null || api === void 0 ? void 0 : api.decorations.actions.hoverDecoration)
116
+ floatingToolbar: (0, _toolbar.getToolbarConfig)(options === null || options === void 0 ? void 0 : options.allowCopyToClipboard, api)
117
117
  }
118
118
  };
119
119
  };
@@ -16,6 +16,8 @@ var _quoteHandling = require("../ide-ux/quote-handling");
16
16
  var _lineHandling = require("../ide-ux/line-handling");
17
17
  var _commands = require("../ide-ux/commands");
18
18
  var ideUX = function ideUX(pluginInjectionApi) {
19
+ var _pluginInjectionApi$a;
20
+ var editorAnalyticsAPI = pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions;
19
21
  return new _safePlugin.SafePlugin({
20
22
  props: {
21
23
  handleTextInput: function handleTextInput(view, from, to, text) {
@@ -98,8 +100,8 @@ var ideUX = function ideUX(pluginInjectionApi) {
98
100
  return false;
99
101
  },
100
102
  Enter: (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, _commands.insertNewlineWithIndent),
101
- 'Mod-]': (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, _commands.indent),
102
- 'Mod-[': (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, _commands.outdent),
103
+ 'Mod-]': (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, (0, _commands.indent)(editorAnalyticsAPI)),
104
+ 'Mod-[': (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, (0, _commands.outdent)(editorAnalyticsAPI)),
103
105
  Tab: (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, function (state, dispatch) {
104
106
  if (!dispatch) {
105
107
  return false;
@@ -107,9 +109,9 @@ var ideUX = function ideUX(pluginInjectionApi) {
107
109
  if ((0, _lineHandling.isCursorInsideCodeBlock)(state)) {
108
110
  return (0, _commands.insertIndent)(state, dispatch);
109
111
  }
110
- return (0, _commands.indent)(state, dispatch);
112
+ return (0, _commands.indent)(editorAnalyticsAPI)(state, dispatch);
111
113
  }),
112
- 'Shift-Tab': (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, _commands.outdent),
114
+ 'Shift-Tab': (0, _utils3.filterCommand)(_lineHandling.isSelectionEntirelyInsideCodeBlock, (0, _commands.outdent)(editorAnalyticsAPI)),
113
115
  'Mod-a': function ModA(state, dispatch) {
114
116
  if ((0, _lineHandling.isSelectionEntirelyInsideCodeBlock)(state)) {
115
117
  var _state$selection = state.selection,
@@ -25,10 +25,13 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
25
25
  var languageList = (0, _languageList.createLanguageList)(_languageList.DEFAULT_LANGUAGES);
26
26
  var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig() {
27
27
  var allowCopyToClipboard = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
28
- var hoverDecoration = arguments.length > 1 ? arguments[1] : undefined;
28
+ var api = arguments.length > 1 ? arguments[1] : undefined;
29
29
  return function (state, _ref) {
30
- var _codeBlockState$pos, _node$attrs;
30
+ var _api$decorations$acti, _api$analytics, _codeBlockState$pos, _node$attrs;
31
31
  var formatMessage = _ref.formatMessage;
32
+ var _ref2 = (_api$decorations$acti = api === null || api === void 0 ? void 0 : api.decorations.actions) !== null && _api$decorations$acti !== void 0 ? _api$decorations$acti : {},
33
+ hoverDecoration = _ref2.hoverDecoration;
34
+ var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
32
35
  var codeBlockState = _pluginKey.pluginKey.getState(state);
33
36
  var pos = (_codeBlockState$pos = codeBlockState === null || codeBlockState === void 0 ? void 0 : codeBlockState.pos) !== null && _codeBlockState$pos !== void 0 ? _codeBlockState$pos : null;
34
37
  if (!codeBlockState || pos === null) {
@@ -59,7 +62,7 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig() {
59
62
  type: 'select',
60
63
  selectType: 'list',
61
64
  onChange: function onChange(option) {
62
- return (0, _actions.changeLanguage)(option.value);
65
+ return (0, _actions.changeLanguage)(editorAnalyticsAPI)(option.value);
63
66
  },
64
67
  defaultValue: defaultValue,
65
68
  placeholder: formatMessage(messages.selectLanguage),
@@ -117,8 +120,8 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig() {
117
120
  * Filters language list based on both name and alias properties.
118
121
  */
119
122
  var languageListFilter = exports.languageListFilter = function languageListFilter(option, rawInput) {
120
- var _ref2 = option,
121
- data = _ref2.data;
123
+ var _ref3 = option,
124
+ data = _ref3.data;
122
125
  var searchString = rawInput.toLowerCase();
123
126
  return data.label.toLowerCase().includes(searchString) || data.alias.some(function (alias) {
124
127
  return alias.toLowerCase() === searchString;
@@ -14,7 +14,6 @@ var _state = require("@atlaskit/editor-prosemirror/state");
14
14
  var _slice = require("../../utils/slice");
15
15
  var _utils2 = require("@atlaskit/editor-common/utils");
16
16
  var _analytics = require("@atlaskit/editor-common/analytics");
17
- var _utils3 = require("../analytics/utils");
18
17
  var _editorAnalytics = require("@atlaskit/editor-common/editor-analytics");
19
18
  var _nodeEvents = require("../analytics/types/node-events");
20
19
  var _pluginKey = require("./pm-plugins/plugin-key");
@@ -210,36 +209,38 @@ function forceSectionToPresetLayout(state, node, pos, presetLayout) {
210
209
  var selectionPos$ = tr.doc.resolve(selection.$from.pos);
211
210
  return tr.setSelection(state.selection instanceof _state.NodeSelection ? new _state.NodeSelection(selectionPos$) : new _state.TextSelection(selectionPos$));
212
211
  }
213
- var setPresetLayout = exports.setPresetLayout = function setPresetLayout(layout) {
214
- return function (state, dispatch) {
215
- var _ref = _pluginKey.pluginKey.getState(state),
216
- pos = _ref.pos,
217
- selectedLayout = _ref.selectedLayout;
218
- if (selectedLayout === layout || pos === null) {
219
- return false;
220
- }
221
- var node = state.doc.nodeAt(pos);
222
- if (!node) {
223
- return false;
224
- }
225
- var tr = forceSectionToPresetLayout(state, node, pos, layout);
226
- if (tr) {
227
- tr = (0, _utils3.addAnalytics)(state, tr, {
228
- action: _analytics.ACTION.CHANGED_LAYOUT,
229
- actionSubject: _analytics.ACTION_SUBJECT.LAYOUT,
230
- attributes: {
231
- previousLayout: formatLayoutName(selectedLayout),
232
- newLayout: formatLayoutName(layout)
233
- },
234
- eventType: _analytics.EVENT_TYPE.TRACK
235
- });
236
- tr.setMeta('scrollIntoView', false);
237
- if (dispatch) {
238
- dispatch(tr);
212
+ var setPresetLayout = exports.setPresetLayout = function setPresetLayout(editorAnalyticsAPI) {
213
+ return function (layout) {
214
+ return function (state, dispatch) {
215
+ var _ref = _pluginKey.pluginKey.getState(state),
216
+ pos = _ref.pos,
217
+ selectedLayout = _ref.selectedLayout;
218
+ if (selectedLayout === layout || pos === null) {
219
+ return false;
239
220
  }
240
- return true;
241
- }
242
- return false;
221
+ var node = state.doc.nodeAt(pos);
222
+ if (!node) {
223
+ return false;
224
+ }
225
+ var tr = forceSectionToPresetLayout(state, node, pos, layout);
226
+ if (tr) {
227
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
228
+ action: _analytics.ACTION.CHANGED_LAYOUT,
229
+ actionSubject: _analytics.ACTION_SUBJECT.LAYOUT,
230
+ attributes: {
231
+ previousLayout: formatLayoutName(selectedLayout),
232
+ newLayout: formatLayoutName(layout)
233
+ },
234
+ eventType: _analytics.EVENT_TYPE.TRACK
235
+ })(tr);
236
+ tr.setMeta('scrollIntoView', false);
237
+ if (dispatch) {
238
+ dispatch(tr);
239
+ }
240
+ return true;
241
+ }
242
+ return false;
243
+ };
243
244
  };
244
245
  };
245
246
  function layoutNeedChanges(node) {
@@ -304,27 +305,29 @@ var fixColumnStructure = exports.fixColumnStructure = function fixColumnStructur
304
305
  }
305
306
  return;
306
307
  };
307
- var deleteActiveLayoutNode = exports.deleteActiveLayoutNode = function deleteActiveLayoutNode(state, dispatch) {
308
- var _ref3 = _pluginKey.pluginKey.getState(state),
309
- pos = _ref3.pos,
310
- selectedLayout = _ref3.selectedLayout;
311
- if (pos !== null) {
312
- var node = state.doc.nodeAt(pos);
313
- if (dispatch) {
314
- var tr = state.tr.delete(pos, pos + node.nodeSize);
315
- tr = (0, _utils3.addAnalytics)(state, tr, {
316
- action: _analytics.ACTION.DELETED,
317
- actionSubject: _analytics.ACTION_SUBJECT.LAYOUT,
318
- attributes: {
319
- layout: formatLayoutName(selectedLayout)
320
- },
321
- eventType: _analytics.EVENT_TYPE.TRACK
322
- });
323
- dispatch(tr);
308
+ var deleteActiveLayoutNode = exports.deleteActiveLayoutNode = function deleteActiveLayoutNode(editorAnalyticsAPI) {
309
+ return function (state, dispatch) {
310
+ var _ref3 = _pluginKey.pluginKey.getState(state),
311
+ pos = _ref3.pos,
312
+ selectedLayout = _ref3.selectedLayout;
313
+ if (pos !== null) {
314
+ var node = state.doc.nodeAt(pos);
315
+ if (dispatch) {
316
+ var tr = state.tr.delete(pos, pos + node.nodeSize);
317
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent({
318
+ action: _analytics.ACTION.DELETED,
319
+ actionSubject: _analytics.ACTION_SUBJECT.LAYOUT,
320
+ attributes: {
321
+ layout: formatLayoutName(selectedLayout)
322
+ },
323
+ eventType: _analytics.EVENT_TYPE.TRACK
324
+ })(tr);
325
+ dispatch(tr);
326
+ }
327
+ return true;
324
328
  }
325
- return true;
326
- }
327
- return false;
329
+ return false;
330
+ };
328
331
  };
329
332
  var formatLayoutName = function formatLayoutName(layout) {
330
333
  switch (layout) {
@@ -55,8 +55,7 @@ var layoutPlugin = function layoutPlugin(_ref) {
55
55
  addSidebarLayouts = _ref2.addSidebarLayouts,
56
56
  allowSingleColumnLayout = _ref2.allowSingleColumnLayout;
57
57
  if (pos !== null) {
58
- var _api$decorations$acti;
59
- return (0, _toolbar.buildToolbar)(state, intl, pos, allowBreakout, addSidebarLayouts, allowSingleColumnLayout, api === null || api === void 0 || (_api$decorations$acti = api.decorations.actions) === null || _api$decorations$acti === void 0 ? void 0 : _api$decorations$acti.hoverDecoration);
58
+ return (0, _toolbar.buildToolbar)(state, intl, pos, allowBreakout, addSidebarLayouts, allowSingleColumnLayout, api);
60
59
  }
61
60
  return undefined;
62
61
  },
@@ -50,20 +50,24 @@ var SIDEBAR_LAYOUT_TYPES = [{
50
50
  title: _toolbarMessages.toolbarMessages.threeColumnsWithSidebars,
51
51
  icon: _layoutThreeWithSidebars.default
52
52
  }];
53
- var buildLayoutButton = function buildLayoutButton(intl, item, currentLayout) {
53
+ var buildLayoutButton = function buildLayoutButton(intl, item, currentLayout, editorAnalyticsAPI) {
54
54
  return {
55
55
  id: item.id,
56
56
  type: 'button',
57
57
  icon: item.icon,
58
58
  testId: item.title.id,
59
59
  title: intl.formatMessage(item.title),
60
- onClick: (0, _actions.setPresetLayout)(item.type),
60
+ onClick: (0, _actions.setPresetLayout)(editorAnalyticsAPI)(item.type),
61
61
  selected: !!currentLayout && currentLayout === item.type,
62
62
  tabIndex: null
63
63
  };
64
64
  };
65
65
  var layoutToolbarTitle = exports.layoutToolbarTitle = 'Layout floating controls';
66
- var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, pos, _allowBreakout, addSidebarLayouts, allowSingleColumnLayout, hoverDecoration) {
66
+ var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, pos, _allowBreakout, addSidebarLayouts, allowSingleColumnLayout, api) {
67
+ var _api$decorations$acti, _api$decorations, _api$analytics;
68
+ var _ref = (_api$decorations$acti = api === null || api === void 0 || (_api$decorations = api.decorations) === null || _api$decorations === void 0 ? void 0 : _api$decorations.actions) !== null && _api$decorations$acti !== void 0 ? _api$decorations$acti : {},
69
+ hoverDecoration = _ref.hoverDecoration;
70
+ var editorAnalyticsAPI = api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions;
67
71
  var node = state.doc.nodeAt(pos);
68
72
  if (node) {
69
73
  var currentLayout = (0, _actions.getPresetLayout)(node);
@@ -79,7 +83,7 @@ var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, pos
79
83
  icon: _remove.default,
80
84
  testId: _messages.default.remove.id,
81
85
  title: intl.formatMessage(_messages.default.remove),
82
- onClick: _actions.deleteActiveLayoutNode,
86
+ onClick: (0, _actions.deleteActiveLayoutNode)(editorAnalyticsAPI),
83
87
  onMouseEnter: hoverDecoration === null || hoverDecoration === void 0 ? void 0 : hoverDecoration(nodeType, true),
84
88
  onMouseLeave: hoverDecoration === null || hoverDecoration === void 0 ? void 0 : hoverDecoration(nodeType, false),
85
89
  onFocus: hoverDecoration === null || hoverDecoration === void 0 ? void 0 : hoverDecoration(nodeType, true),
@@ -94,9 +98,9 @@ var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, pos
94
98
  },
95
99
  nodeType: nodeType,
96
100
  items: [].concat((0, _toConsumableArray2.default)(layoutTypes.map(function (i) {
97
- return buildLayoutButton(intl, i, currentLayout);
101
+ return buildLayoutButton(intl, i, currentLayout, editorAnalyticsAPI);
98
102
  })), (0, _toConsumableArray2.default)(addSidebarLayouts ? SIDEBAR_LAYOUT_TYPES.map(function (i) {
99
- return buildLayoutButton(intl, i, currentLayout);
103
+ return buildLayoutButton(intl, i, currentLayout, editorAnalyticsAPI);
100
104
  }) : []), [{
101
105
  type: 'copy-button',
102
106
  items: [separator, {
@@ -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) {