@atlaskit/editor-core 187.7.1 → 187.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/plugins/list/commands/indent-list.js +48 -45
  3. package/dist/cjs/plugins/list/commands/index.js +120 -109
  4. package/dist/cjs/plugins/list/commands/join-list-item-forward.js +47 -45
  5. package/dist/cjs/plugins/list/commands/listBackspace.js +33 -31
  6. package/dist/cjs/plugins/list/commands/outdent-list.js +51 -49
  7. package/dist/cjs/plugins/list/index.js +10 -5
  8. package/dist/cjs/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +3 -4
  9. package/dist/cjs/plugins/list/pm-plugins/keymap.js +10 -11
  10. package/dist/cjs/plugins/toolbar-lists-indentation/index.js +4 -1
  11. package/dist/cjs/plugins/toolbar-lists-indentation/ui/index.js +4 -3
  12. package/dist/cjs/plugins/toolbar-lists-indentation/ui/onItemActivated.js +44 -41
  13. package/dist/cjs/version-wrapper.js +1 -1
  14. package/dist/cjs/version.json +1 -1
  15. package/dist/es2019/plugins/list/commands/indent-list.js +5 -5
  16. package/dist/es2019/plugins/list/commands/index.js +22 -22
  17. package/dist/es2019/plugins/list/commands/join-list-item-forward.js +4 -4
  18. package/dist/es2019/plugins/list/commands/listBackspace.js +4 -4
  19. package/dist/es2019/plugins/list/commands/outdent-list.js +5 -6
  20. package/dist/es2019/plugins/list/index.js +13 -6
  21. package/dist/es2019/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +1 -1
  22. package/dist/es2019/plugins/list/pm-plugins/keymap.js +11 -11
  23. package/dist/es2019/plugins/toolbar-lists-indentation/index.js +4 -1
  24. package/dist/es2019/plugins/toolbar-lists-indentation/ui/index.js +4 -3
  25. package/dist/es2019/plugins/toolbar-lists-indentation/ui/onItemActivated.js +7 -7
  26. package/dist/es2019/version-wrapper.js +1 -1
  27. package/dist/es2019/version.json +1 -1
  28. package/dist/esm/plugins/list/commands/indent-list.js +46 -44
  29. package/dist/esm/plugins/list/commands/index.js +115 -103
  30. package/dist/esm/plugins/list/commands/join-list-item-forward.js +47 -45
  31. package/dist/esm/plugins/list/commands/listBackspace.js +33 -31
  32. package/dist/esm/plugins/list/commands/outdent-list.js +49 -48
  33. package/dist/esm/plugins/list/index.js +11 -6
  34. package/dist/esm/plugins/list/pm-plugins/input-rules/create-list-input-rule.js +1 -1
  35. package/dist/esm/plugins/list/pm-plugins/keymap.js +11 -11
  36. package/dist/esm/plugins/toolbar-lists-indentation/index.js +4 -1
  37. package/dist/esm/plugins/toolbar-lists-indentation/ui/index.js +4 -3
  38. package/dist/esm/plugins/toolbar-lists-indentation/ui/onItemActivated.js +42 -40
  39. package/dist/esm/version-wrapper.js +1 -1
  40. package/dist/esm/version.json +1 -1
  41. package/dist/types/plugins/list/commands/indent-list.d.ts +2 -2
  42. package/dist/types/plugins/list/commands/index.d.ts +7 -7
  43. package/dist/types/plugins/list/commands/join-list-item-forward.d.ts +2 -1
  44. package/dist/types/plugins/list/commands/listBackspace.d.ts +7 -6
  45. package/dist/types/plugins/list/commands/outdent-list.d.ts +2 -2
  46. package/dist/types/plugins/list/index.d.ts +7 -2
  47. package/dist/types/plugins/list/pm-plugins/keymap.d.ts +2 -1
  48. package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +7 -2
  49. package/dist/types/plugins/toolbar-lists-indentation/types.d.ts +1 -1
  50. package/dist/types/plugins/toolbar-lists-indentation/ui/index.d.ts +3 -1
  51. package/dist/types/plugins/toolbar-lists-indentation/ui/onItemActivated.d.ts +5 -4
  52. package/dist/types/utils/list-commands.d.ts +5 -5
  53. package/dist/types-ts4.5/plugins/list/commands/indent-list.d.ts +2 -2
  54. package/dist/types-ts4.5/plugins/list/commands/index.d.ts +7 -7
  55. package/dist/types-ts4.5/plugins/list/commands/join-list-item-forward.d.ts +2 -1
  56. package/dist/types-ts4.5/plugins/list/commands/listBackspace.d.ts +7 -6
  57. package/dist/types-ts4.5/plugins/list/commands/outdent-list.d.ts +2 -2
  58. package/dist/types-ts4.5/plugins/list/index.d.ts +5 -2
  59. package/dist/types-ts4.5/plugins/list/pm-plugins/keymap.d.ts +2 -1
  60. package/dist/types-ts4.5/plugins/toolbar-lists-indentation/index.d.ts +5 -2
  61. package/dist/types-ts4.5/plugins/toolbar-lists-indentation/types.d.ts +1 -1
  62. package/dist/types-ts4.5/plugins/toolbar-lists-indentation/ui/index.d.ts +3 -1
  63. package/dist/types-ts4.5/plugins/toolbar-lists-indentation/ui/onItemActivated.d.ts +5 -4
  64. package/dist/types-ts4.5/utils/list-commands.d.ts +5 -5
  65. package/package.json +5 -2
  66. package/report.api.md +15 -31
  67. package/tmp/api-report-tmp.d.ts +4 -22
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 187.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`9bc531568ad`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9bc531568ad) - [ED-19216] Remove current analytics in list plugin
8
+
9
+ ## 187.7.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
3
15
  ## 187.7.1
4
16
 
5
17
  ### Patch Changes
@@ -4,9 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.indentList = indentList;
7
+ exports.indentList = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _analytics = require("../../analytics");
9
+ var _analytics = require("@atlaskit/editor-common/analytics");
10
10
  var _indentation = require("../utils/indentation");
11
11
  var _indentListItemsSelected = require("../actions/indent-list-items-selected");
12
12
  var _node = require("../utils/node");
@@ -17,53 +17,56 @@ var _analytics2 = require("../utils/analytics");
17
17
  var _prosemirrorHistory = require("prosemirror-history");
18
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
- function indentList() {
21
- var inputMethod = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _analytics.INPUT_METHOD.KEYBOARD;
22
- return function (state, dispatch) {
23
- var tr = state.tr,
24
- $from = state.selection.$from;
20
+ var indentList = function indentList(editorAnalyticsAPI) {
21
+ return function () {
22
+ var inputMethod = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _analytics.INPUT_METHOD.KEYBOARD;
23
+ return function (state, dispatch) {
24
+ var tr = state.tr,
25
+ $from = state.selection.$from;
25
26
 
26
- // don't indent if selection is not inside a list
27
- if (!(0, _selection.isInsideListItem)(state)) {
28
- return false;
29
- }
30
-
31
- // Save the history, so it could undo/revert to the same state before the indent, see https://product-fabric.atlassian.net/browse/ED-14753
32
- (0, _prosemirrorHistory.closeHistory)(tr);
33
- var firstListItemSelectedAttributes = (0, _selection.getListItemAttributes)($from);
34
- var parentListNode = (0, _find.findFirstParentListNode)($from);
35
- if (!parentListNode || firstListItemSelectedAttributes && firstListItemSelectedAttributes.indentLevel === 0 && firstListItemSelectedAttributes.itemIndex === 0) {
36
- if ((0, _selection.isInsideTableCell)(state)) {
37
- // dont consume tab, as table-keymap should move cursor to next cell
27
+ // don't indent if selection is not inside a list
28
+ if (!(0, _selection.isInsideListItem)(state)) {
38
29
  return false;
39
- } else {
30
+ }
31
+
32
+ // Save the history, so it could undo/revert to the same state before the indent, see https://product-fabric.atlassian.net/browse/ED-14753
33
+ (0, _prosemirrorHistory.closeHistory)(tr);
34
+ var firstListItemSelectedAttributes = (0, _selection.getListItemAttributes)($from);
35
+ var parentListNode = (0, _find.findFirstParentListNode)($from);
36
+ if (!parentListNode || firstListItemSelectedAttributes && firstListItemSelectedAttributes.indentLevel === 0 && firstListItemSelectedAttributes.itemIndex === 0) {
37
+ if ((0, _selection.isInsideTableCell)(state)) {
38
+ // dont consume tab, as table-keymap should move cursor to next cell
39
+ return false;
40
+ } else {
41
+ // Even though this is a non-operation, we don't want to send this event to the browser. Because if we return false, the browser will move the focus to another place
42
+ return true;
43
+ }
44
+ }
45
+ var currentListNode = parentListNode.node;
46
+ var actionSubjectId = (0, _node.isBulletList)(currentListNode) ? _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
47
+ (0, _indentListItemsSelected.indentListItemsSelected)(tr);
48
+ var maximimunNestedLevelReached = !(0, _indentation.hasValidListIndentationLevel)({
49
+ tr: tr,
50
+ maxIndentation: _types.MAX_NESTED_LIST_INDENTATION
51
+ });
52
+ if (maximimunNestedLevelReached || !tr.docChanged) {
40
53
  // Even though this is a non-operation, we don't want to send this event to the browser. Because if we return false, the browser will move the focus to another place
41
54
  return true;
42
55
  }
43
- }
44
- var currentListNode = parentListNode.node;
45
- var actionSubjectId = (0, _node.isBulletList)(currentListNode) ? _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
46
- (0, _indentListItemsSelected.indentListItemsSelected)(tr);
47
- var maximimunNestedLevelReached = !(0, _indentation.hasValidListIndentationLevel)({
48
- tr: tr,
49
- maxIndentation: _types.MAX_NESTED_LIST_INDENTATION
50
- });
51
- if (maximimunNestedLevelReached || !tr.docChanged) {
52
- // Even though this is a non-operation, we don't want to send this event to the browser. Because if we return false, the browser will move the focus to another place
56
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
57
+ action: _analytics.ACTION.INDENTED,
58
+ actionSubject: _analytics.ACTION_SUBJECT.LIST,
59
+ actionSubjectId: actionSubjectId,
60
+ eventType: _analytics.EVENT_TYPE.TRACK,
61
+ attributes: _objectSpread(_objectSpread({}, (0, _analytics2.getCommonListAnalyticsAttributes)(state)), {}, {
62
+ inputMethod: inputMethod
63
+ })
64
+ })(tr);
65
+ if (dispatch) {
66
+ dispatch(tr);
67
+ }
53
68
  return true;
54
- }
55
- (0, _analytics.addAnalytics)(state, tr, {
56
- action: _analytics.ACTION.INDENTED,
57
- actionSubject: _analytics.ACTION_SUBJECT.LIST,
58
- actionSubjectId: actionSubjectId,
59
- eventType: _analytics.EVENT_TYPE.TRACK,
60
- attributes: _objectSpread(_objectSpread({}, (0, _analytics2.getCommonListAnalyticsAttributes)(state)), {}, {
61
- inputMethod: inputMethod
62
- })
63
- });
64
- if (dispatch) {
65
- dispatch(tr);
66
- }
67
- return true;
69
+ };
68
70
  };
69
- }
71
+ };
72
+ exports.indentList = indentList;
@@ -18,22 +18,18 @@ Object.defineProperty(exports, "outdentList", {
18
18
  return _outdentList.outdentList;
19
19
  }
20
20
  });
21
- exports.rootListDepth = void 0;
22
- exports.toggleBulletList = toggleBulletList;
23
- exports.toggleList = toggleList;
24
- exports.toggleOrderedList = toggleOrderedList;
21
+ exports.toggleOrderedList = exports.toggleList = exports.toggleBulletList = exports.rootListDepth = void 0;
25
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
26
23
  var _prosemirrorModel = require("prosemirror-model");
27
24
  var _prosemirrorState = require("prosemirror-state");
28
25
  var baseCommand = _interopRequireWildcard(require("prosemirror-commands"));
29
26
  var _prosemirrorUtils = require("prosemirror-utils");
30
- var _document = require("../../../utils/document");
27
+ var _utils = require("../../../utils");
31
28
  var _commands = require("../../../utils/commands");
32
- var _utils = require("@atlaskit/editor-common/utils");
33
- var _utils2 = require("../../../utils");
29
+ var _utils2 = require("@atlaskit/editor-common/utils");
34
30
  var _transforms = require("../transforms");
35
31
  var _gapCursorSelection = require("../../selection/gap-cursor-selection");
36
- var _analytics = require("../../analytics");
32
+ var _analytics = require("@atlaskit/editor-common/analytics");
37
33
  var _selection = require("../utils/selection");
38
34
  var _analytics2 = require("../utils/analytics");
39
35
  var _listBackspace = require("./listBackspace");
@@ -47,44 +43,50 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
47
43
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
48
44
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
45
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
50
- var enterKeyCommand = function enterKeyCommand(featureFlags) {
51
- return function (state, dispatch) {
52
- var selection = state.selection;
53
- if (selection.empty) {
54
- var $from = selection.$from;
55
- var _state$schema$nodes = state.schema.nodes,
56
- listItem = _state$schema$nodes.listItem,
57
- codeBlock = _state$schema$nodes.codeBlock;
58
- var wrapper = $from.node($from.depth - 1);
59
- if (wrapper && wrapper.type === listItem) {
60
- /** Check if the wrapper has any visible content */
61
- var wrapperHasContent = (0, _document.hasVisibleContent)(wrapper);
62
- if (!wrapperHasContent) {
63
- return (0, _outdentList.outdentList)(_analytics.INPUT_METHOD.KEYBOARD, featureFlags)(state, dispatch);
64
- } else if (!(0, _prosemirrorUtils.hasParentNodeOfType)(codeBlock)(selection)) {
65
- return splitListItem(listItem)(state, dispatch);
46
+ var enterKeyCommand = function enterKeyCommand(editorAnalyticsAPI) {
47
+ return function (featureFlags) {
48
+ return function (state, dispatch) {
49
+ var selection = state.selection;
50
+ if (selection.empty) {
51
+ var $from = selection.$from;
52
+ var _state$schema$nodes = state.schema.nodes,
53
+ listItem = _state$schema$nodes.listItem,
54
+ codeBlock = _state$schema$nodes.codeBlock;
55
+ var wrapper = $from.node($from.depth - 1);
56
+ if (wrapper && wrapper.type === listItem) {
57
+ /** Check if the wrapper has any visible content */
58
+ var wrapperHasContent = (0, _utils.hasVisibleContent)(wrapper);
59
+ if (!wrapperHasContent) {
60
+ return (0, _outdentList.outdentList)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.KEYBOARD, featureFlags)(state, dispatch);
61
+ } else if (!(0, _prosemirrorUtils.hasParentNodeOfType)(codeBlock)(selection)) {
62
+ return splitListItem(listItem)(state, dispatch);
63
+ }
66
64
  }
67
65
  }
68
- }
69
- return false;
66
+ return false;
67
+ };
70
68
  };
71
69
  };
72
70
  exports.enterKeyCommand = enterKeyCommand;
73
- var backspaceKeyCommand = function backspaceKeyCommand(featureFlags) {
74
- return function (state, dispatch) {
75
- return baseCommand.chainCommands(_listBackspace.listBackspace,
76
- // if we're at the start of a list item, we need to either backspace
77
- // directly to an empty list item above, or outdent this node
78
- (0, _utils.filterCommands)([_commands.isEmptySelectionAtStart,
79
- // list items might have multiple paragraphs; only do this at the first one
80
- _commands.isFirstChildOfParent, _selection.isInsideListItem], baseCommand.chainCommands(deletePreviousEmptyListItem, (0, _outdentList.outdentList)(_analytics.INPUT_METHOD.KEYBOARD, featureFlags))),
81
- // if we're just inside a paragraph node (or gapcursor is shown) and backspace, then try to join
82
- // the text to the previous list item, if one exists
83
- (0, _utils.filterCommands)([_commands.isEmptySelectionAtStart, _selection.canJoinToPreviousListItem], joinToPreviousListItem))(state, dispatch);
71
+ var backspaceKeyCommand = function backspaceKeyCommand(editorAnalyticsAPI) {
72
+ return function (featureFlags) {
73
+ return function (state, dispatch) {
74
+ return baseCommand.chainCommands((0, _listBackspace.listBackspace)(editorAnalyticsAPI),
75
+ // if we're at the start of a list item, we need to either backspace
76
+ // directly to an empty list item above, or outdent this node
77
+ (0, _utils2.filterCommands)([_commands.isEmptySelectionAtStart,
78
+ // list items might have multiple paragraphs; only do this at the first one
79
+ _commands.isFirstChildOfParent, _selection.isInsideListItem], baseCommand.chainCommands(deletePreviousEmptyListItem, (0, _outdentList.outdentList)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.KEYBOARD, featureFlags))),
80
+ // if we're just inside a paragraph node (or gapcursor is shown) and backspace, then try to join
81
+ // the text to the previous list item, if one exists
82
+ (0, _utils2.filterCommands)([_commands.isEmptySelectionAtStart, _selection.canJoinToPreviousListItem], joinToPreviousListItem))(state, dispatch);
83
+ };
84
84
  };
85
85
  };
86
86
  exports.backspaceKeyCommand = backspaceKeyCommand;
87
- var deleteKeyCommand = _joinListItemForward.joinListItemForward;
87
+ var deleteKeyCommand = function deleteKeyCommand(editorAnalyticsAPI) {
88
+ return (0, _joinListItemForward.joinListItemForward)(editorAnalyticsAPI);
89
+ };
88
90
 
89
91
  // Get the depth of the nearest ancestor list
90
92
  exports.deleteKeyCommand = deleteKeyCommand;
@@ -115,94 +117,103 @@ function untoggleSelectedList(tr) {
115
117
  }
116
118
  return (0, _transforms.liftTextSelectionList)(selection, tr);
117
119
  }
118
- function toggleList(inputMethod, listType) {
119
- return function (state, dispatch) {
120
- var tr = state.tr;
121
- var listInsideSelection = (0, _selection.selectionContainsList)(tr);
122
- var listNodeType = state.schema.nodes[listType];
123
- var actionSubjectId = listType === 'bulletList' ? _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
124
- if (listInsideSelection) {
125
- var selection = state.selection;
120
+ var toggleList = function toggleList(editorAnalyticsAPI) {
121
+ return function (inputMethod, listType) {
122
+ return function (state, dispatch) {
123
+ var tr = state.tr;
124
+ var listInsideSelection = (0, _selection.selectionContainsList)(tr);
125
+ var listNodeType = state.schema.nodes[listType];
126
+ var actionSubjectId = listType === 'bulletList' ? _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
127
+ if (listInsideSelection) {
128
+ var selection = state.selection;
126
129
 
127
- // for gap cursor or node selection - list is expected 1 level up (listItem -> list)
128
- // for text selection - list is expected 2 levels up (paragraph -> listItem -> list)
129
- var positionDiff = selection instanceof _gapCursorSelection.GapCursorSelection || selection instanceof _prosemirrorState.NodeSelection ? 1 : 2;
130
- var fromNode = selection.$from.node(selection.$from.depth - positionDiff);
131
- var toNode = selection.$to.node(selection.$to.depth - positionDiff);
132
- var transformedFrom = listInsideSelection.type.name === 'bulletList' ? _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
133
- if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type.name) === listType && (toNode === null || toNode === void 0 ? void 0 : toNode.type.name) === listType) {
134
- var _tr2 = state.tr;
135
- untoggleSelectedList(_tr2);
136
- (0, _analytics.addAnalytics)(state, _tr2, {
130
+ // for gap cursor or node selection - list is expected 1 level up (listItem -> list)
131
+ // for text selection - list is expected 2 levels up (paragraph -> listItem -> list)
132
+ var positionDiff = selection instanceof _gapCursorSelection.GapCursorSelection || selection instanceof _prosemirrorState.NodeSelection ? 1 : 2;
133
+ var fromNode = selection.$from.node(selection.$from.depth - positionDiff);
134
+ var toNode = selection.$to.node(selection.$to.depth - positionDiff);
135
+ var transformedFrom = listInsideSelection.type.name === 'bulletList' ? _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET : _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
136
+ if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type.name) === listType && (toNode === null || toNode === void 0 ? void 0 : toNode.type.name) === listType) {
137
+ var _tr2 = state.tr;
138
+ untoggleSelectedList(_tr2);
139
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
140
+ action: _analytics.ACTION.CONVERTED,
141
+ actionSubject: _analytics.ACTION_SUBJECT.LIST,
142
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.TEXT,
143
+ eventType: _analytics.EVENT_TYPE.TRACK,
144
+ attributes: _objectSpread(_objectSpread({}, (0, _analytics2.getCommonListAnalyticsAttributes)(state)), {}, {
145
+ transformedFrom: transformedFrom,
146
+ inputMethod: inputMethod
147
+ })
148
+ })(_tr2);
149
+ if (dispatch) {
150
+ dispatch(_tr2);
151
+ }
152
+ return true;
153
+ }
154
+ (0, _conversions.convertListType)({
155
+ tr: tr,
156
+ nextListNodeType: listNodeType
157
+ });
158
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
137
159
  action: _analytics.ACTION.CONVERTED,
138
160
  actionSubject: _analytics.ACTION_SUBJECT.LIST,
139
- actionSubjectId: _analytics.ACTION_SUBJECT_ID.TEXT,
161
+ actionSubjectId: actionSubjectId,
140
162
  eventType: _analytics.EVENT_TYPE.TRACK,
141
163
  attributes: _objectSpread(_objectSpread({}, (0, _analytics2.getCommonListAnalyticsAttributes)(state)), {}, {
142
164
  transformedFrom: transformedFrom,
143
165
  inputMethod: inputMethod
144
166
  })
145
- });
146
- if (dispatch) {
147
- dispatch(_tr2);
148
- }
149
- return true;
167
+ })(tr);
168
+ } else {
169
+ // Need to have this before wrapInList so the wrapping is done with valid content
170
+ // For example, if trying to convert centre or right aligned paragraphs to lists
171
+ (0, _utils.sanitiseMarksInSelection)(tr, listNodeType);
172
+ (0, _wrapAndJoinLists.wrapInListAndJoin)(listNodeType, tr);
173
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
174
+ action: _analytics.ACTION.INSERTED,
175
+ actionSubject: _analytics.ACTION_SUBJECT.LIST,
176
+ actionSubjectId: actionSubjectId,
177
+ eventType: _analytics.EVENT_TYPE.TRACK,
178
+ attributes: {
179
+ inputMethod: inputMethod
180
+ }
181
+ })(tr);
150
182
  }
151
- (0, _conversions.convertListType)({
152
- tr: tr,
153
- nextListNodeType: listNodeType
154
- });
155
- (0, _analytics.addAnalytics)(state, tr, {
156
- action: _analytics.ACTION.CONVERTED,
157
- actionSubject: _analytics.ACTION_SUBJECT.LIST,
158
- actionSubjectId: actionSubjectId,
159
- eventType: _analytics.EVENT_TYPE.TRACK,
160
- attributes: _objectSpread(_objectSpread({}, (0, _analytics2.getCommonListAnalyticsAttributes)(state)), {}, {
161
- transformedFrom: transformedFrom,
162
- inputMethod: inputMethod
163
- })
164
- });
165
- } else {
166
- // Need to have this before wrapInList so the wrapping is done with valid content
167
- // For example, if trying to convert centre or right aligned paragraphs to lists
168
- (0, _utils2.sanitiseMarksInSelection)(tr, listNodeType);
169
- (0, _wrapAndJoinLists.wrapInListAndJoin)(listNodeType, tr);
170
- (0, _analytics.addAnalytics)(state, tr, {
171
- action: _analytics.ACTION.INSERTED,
172
- actionSubject: _analytics.ACTION_SUBJECT.LIST,
173
- actionSubjectId: actionSubjectId,
174
- eventType: _analytics.EVENT_TYPE.TRACK,
175
- attributes: {
176
- inputMethod: inputMethod
177
- }
178
- });
179
- }
180
183
 
181
- // If document wasn't changed, return false from the command to indicate that the
182
- // editing action failed
183
- if (!tr.docChanged) {
184
- return false;
185
- }
186
- if (dispatch) {
187
- dispatch(tr);
188
- }
189
- return true;
184
+ // If document wasn't changed, return false from the command to indicate that the
185
+ // editing action failed
186
+ if (!tr.docChanged) {
187
+ return false;
188
+ }
189
+ if (dispatch) {
190
+ dispatch(tr);
191
+ }
192
+ return true;
193
+ };
190
194
  };
191
- }
192
- function toggleBulletList(view) {
193
- var inputMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _analytics.INPUT_METHOD.TOOLBAR;
194
- return toggleList(inputMethod, 'bulletList')(view.state, view.dispatch);
195
- }
196
- function toggleOrderedList(view) {
197
- var inputMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _analytics.INPUT_METHOD.TOOLBAR;
198
- return toggleList(inputMethod, 'orderedList')(view.state, view.dispatch);
199
- }
195
+ };
196
+ exports.toggleList = toggleList;
197
+ var toggleBulletList = function toggleBulletList(editorAnalyticsAPI) {
198
+ return function (view) {
199
+ var inputMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _analytics.INPUT_METHOD.TOOLBAR;
200
+ return toggleList(editorAnalyticsAPI)(inputMethod, 'bulletList')(view.state, view.dispatch);
201
+ };
202
+ };
203
+ exports.toggleBulletList = toggleBulletList;
204
+ var toggleOrderedList = function toggleOrderedList(editorAnalyticsAPI) {
205
+ return function (view) {
206
+ var inputMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _analytics.INPUT_METHOD.TOOLBAR;
207
+ return toggleList(editorAnalyticsAPI)(inputMethod, 'orderedList')(view.state, view.dispatch);
208
+ };
209
+ };
200
210
 
201
211
  /**
202
212
  * Implementation taken and modified for our needs from PM
203
213
  * @param itemType Node
204
214
  * Splits the list items, specific implementation take from PM
205
215
  */
216
+ exports.toggleOrderedList = toggleOrderedList;
206
217
  function splitListItem(itemType) {
207
218
  return function (state, dispatch) {
208
219
  var ref = state.selection;
@@ -7,53 +7,55 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.joinListItemForward = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _commands = require("../../../utils/commands");
10
- var _analytics = require("../../analytics");
10
+ var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _prosemirrorUtils = require("prosemirror-utils");
12
12
  var _joinListItemsForward = require("../actions/join-list-items-forward");
13
- var joinListItemForward = function joinListItemForward(state, dispatch) {
14
- var tr = state.tr,
15
- $head = state.selection.$head;
16
- var walkNode = (0, _commands.walkNextNode)($head);
17
- if (!(0, _commands.isEmptySelectionAtEnd)(state)) {
18
- return false;
19
- }
20
- var scenarios = (0, _joinListItemsForward.calcJoinListScenario)(walkNode, $head);
21
- if (!scenarios) {
22
- return false;
23
- }
24
- var _scenarios = (0, _slicedToArray2.default)(scenarios, 2),
25
- scenario = _scenarios[0],
26
- action = _scenarios[1];
27
- var result = action({
28
- tr: tr,
29
- $next: walkNode.$pos,
30
- $head: $head
31
- });
32
- if (!result) {
33
- return false;
34
- }
35
- var _state$schema$nodes = state.schema.nodes,
36
- bulletList = _state$schema$nodes.bulletList,
37
- orderedList = _state$schema$nodes.orderedList;
38
- var listParent = (0, _prosemirrorUtils.findParentNodeOfType)([bulletList, orderedList])(tr.selection);
39
- var actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET;
40
- if (listParent && listParent.node.type === orderedList) {
41
- actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
42
- }
43
- (0, _analytics.addAnalytics)(state, tr, {
44
- action: _analytics.ACTION.LIST_ITEM_JOINED,
45
- actionSubject: _analytics.ACTION_SUBJECT.LIST,
46
- actionSubjectId: actionSubjectId,
47
- eventType: _analytics.EVENT_TYPE.TRACK,
48
- attributes: {
49
- inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
50
- direction: _analytics.DELETE_DIRECTION.FORWARD,
51
- scenario: scenario
13
+ var joinListItemForward = function joinListItemForward(editorAnalyticsAPI) {
14
+ return function (state, dispatch) {
15
+ var tr = state.tr,
16
+ $head = state.selection.$head;
17
+ var walkNode = (0, _commands.walkNextNode)($head);
18
+ if (!(0, _commands.isEmptySelectionAtEnd)(state)) {
19
+ return false;
52
20
  }
53
- });
54
- if (dispatch) {
55
- dispatch(tr);
56
- }
57
- return true;
21
+ var scenarios = (0, _joinListItemsForward.calcJoinListScenario)(walkNode, $head);
22
+ if (!scenarios) {
23
+ return false;
24
+ }
25
+ var _scenarios = (0, _slicedToArray2.default)(scenarios, 2),
26
+ scenario = _scenarios[0],
27
+ action = _scenarios[1];
28
+ var result = action({
29
+ tr: tr,
30
+ $next: walkNode.$pos,
31
+ $head: $head
32
+ });
33
+ if (!result) {
34
+ return false;
35
+ }
36
+ var _state$schema$nodes = state.schema.nodes,
37
+ bulletList = _state$schema$nodes.bulletList,
38
+ orderedList = _state$schema$nodes.orderedList;
39
+ var listParent = (0, _prosemirrorUtils.findParentNodeOfType)([bulletList, orderedList])(tr.selection);
40
+ var actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET;
41
+ if (listParent && listParent.node.type === orderedList) {
42
+ actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
43
+ }
44
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
45
+ action: _analytics.ACTION.LIST_ITEM_JOINED,
46
+ actionSubject: _analytics.ACTION_SUBJECT.LIST,
47
+ actionSubjectId: actionSubjectId,
48
+ eventType: _analytics.EVENT_TYPE.TRACK,
49
+ attributes: {
50
+ inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
51
+ direction: _analytics.DELETE_DIRECTION.FORWARD,
52
+ scenario: scenario
53
+ }
54
+ })(tr);
55
+ if (dispatch) {
56
+ dispatch(tr);
57
+ }
58
+ return true;
59
+ };
58
60
  };
59
61
  exports.joinListItemForward = joinListItemForward;
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.listBackspace = exports.calcJoinListScenario = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _commands = require("../../../utils/commands");
10
- var _analytics = require("../../analytics");
10
+ var _analytics = require("@atlaskit/editor-common/analytics");
11
11
  var _prosemirrorUtils = require("prosemirror-utils");
12
12
  var _utils = require("@atlaskit/editor-common/utils");
13
13
  var _selection = require("../utils/selection");
@@ -248,36 +248,38 @@ var calcJoinListScenario = function calcJoinListScenario(walkNode, $head, tr) {
248
248
  return false;
249
249
  };
250
250
  exports.calcJoinListScenario = calcJoinListScenario;
251
- var listBackspace = function listBackspace(state, dispatch) {
252
- var tr = state.tr,
253
- $head = state.selection.$head;
254
- var walkNode = (0, _commands.walkPrevNode)($head);
255
- if (!(0, _commands.isEmptySelectionAtStart)(state)) {
256
- return false;
257
- }
258
- var scenario = calcJoinListScenario(walkNode, $head, tr);
259
- if (!scenario) {
260
- return false;
261
- }
262
- var _state$schema$nodes = state.schema.nodes,
263
- bulletList = _state$schema$nodes.bulletList,
264
- orderedList = _state$schema$nodes.orderedList;
265
- var listParent = (0, _prosemirrorUtils.findParentNodeOfType)([bulletList, orderedList])(tr.selection);
266
- var actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET;
267
- if (listParent && listParent.node.type === orderedList) {
268
- actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
269
- }
270
- (0, _analytics.addAnalytics)(state, tr, {
271
- action: _analytics.ACTION.LIST_ITEM_JOINED,
272
- actionSubject: _analytics.ACTION_SUBJECT.LIST,
273
- actionSubjectId: actionSubjectId,
274
- eventType: _analytics.EVENT_TYPE.TRACK,
275
- attributes: {
276
- inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
277
- direction: _analytics.DELETE_DIRECTION.BACKWARD,
278
- scenario: scenario[0]
251
+ var listBackspace = function listBackspace(editorAnalyticsAPI) {
252
+ return function (state, dispatch) {
253
+ var tr = state.tr,
254
+ $head = state.selection.$head;
255
+ var walkNode = (0, _commands.walkPrevNode)($head);
256
+ if (!(0, _commands.isEmptySelectionAtStart)(state)) {
257
+ return false;
258
+ }
259
+ var scenario = calcJoinListScenario(walkNode, $head, tr);
260
+ if (!scenario) {
261
+ return false;
262
+ }
263
+ var _state$schema$nodes = state.schema.nodes,
264
+ bulletList = _state$schema$nodes.bulletList,
265
+ orderedList = _state$schema$nodes.orderedList;
266
+ var listParent = (0, _prosemirrorUtils.findParentNodeOfType)([bulletList, orderedList])(tr.selection);
267
+ var actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_BULLET;
268
+ if (listParent && listParent.node.type === orderedList) {
269
+ actionSubjectId = _analytics.ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
279
270
  }
280
- });
281
- return BACKSPACE_COMMANDS[scenario[0]](tr, dispatch, walkNode.$pos, $head, scenario[1]);
271
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
272
+ action: _analytics.ACTION.LIST_ITEM_JOINED,
273
+ actionSubject: _analytics.ACTION_SUBJECT.LIST,
274
+ actionSubjectId: actionSubjectId,
275
+ eventType: _analytics.EVENT_TYPE.TRACK,
276
+ attributes: {
277
+ inputMethod: _analytics.INPUT_METHOD.KEYBOARD,
278
+ direction: _analytics.DELETE_DIRECTION.BACKWARD,
279
+ scenario: scenario[0]
280
+ }
281
+ })(tr);
282
+ return BACKSPACE_COMMANDS[scenario[0]](tr, dispatch, walkNode.$pos, $head, scenario[1]);
283
+ };
282
284
  };
283
285
  exports.listBackspace = listBackspace;