@atlaskit/editor-plugin-metrics 3.3.1 → 3.4.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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/metricsPlugin.js +20 -11
- package/dist/cjs/pm-plugins/main.js +22 -99
- package/dist/cjs/pm-plugins/utils/analytics.js +21 -27
- package/dist/cjs/pm-plugins/utils/check-tr-actions/check-tr-action-type.js +90 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-content-moved.js +26 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-deleting-content.js +20 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-empty-line-added-or-deleted.js +29 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-list-type-node-changed.js +37 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-mark-changed.js +16 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-node-attribute-changed.js +103 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-status-changed.js +22 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-table-column-resized.js +60 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-text-input.js +23 -0
- package/dist/cjs/pm-plugins/utils/check-tr-actions/types.js +23 -0
- package/dist/cjs/pm-plugins/utils/get-new-plugin-state.js +103 -0
- package/dist/cjs/pm-plugins/utils/is-safe-insert.js +37 -0
- package/dist/cjs/pm-plugins/utils/should-skip-tr.js +52 -0
- package/dist/es2019/metricsPlugin.js +9 -1
- package/dist/es2019/pm-plugins/main.js +22 -109
- package/dist/es2019/pm-plugins/utils/analytics.js +10 -18
- package/dist/es2019/pm-plugins/utils/check-tr-actions/check-tr-action-type.js +81 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-content-moved.js +20 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-deleting-content.js +17 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-empty-line-added-or-deleted.js +26 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-list-type-node-changed.js +23 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-mark-changed.js +10 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-node-attribute-changed.js +71 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-status-changed.js +18 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-table-column-resized.js +53 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/tr-checks/check-text-input.js +20 -0
- package/dist/es2019/pm-plugins/utils/check-tr-actions/types.js +17 -0
- package/dist/es2019/pm-plugins/utils/get-new-plugin-state.js +101 -0
- package/dist/es2019/pm-plugins/utils/is-safe-insert.js +28 -0
- package/dist/es2019/pm-plugins/utils/should-skip-tr.js +38 -0
- package/dist/esm/metricsPlugin.js +20 -11
- package/dist/esm/pm-plugins/main.js +21 -98
- package/dist/esm/pm-plugins/utils/analytics.js +20 -26
- package/dist/esm/pm-plugins/utils/check-tr-actions/check-tr-action-type.js +83 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-content-moved.js +20 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-deleting-content.js +14 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-empty-line-added-or-deleted.js +23 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-list-type-node-changed.js +31 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-mark-changed.js +10 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-node-attribute-changed.js +96 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-status-changed.js +16 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-table-column-resized.js +54 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/tr-checks/check-text-input.js +17 -0
- package/dist/esm/pm-plugins/utils/check-tr-actions/types.js +17 -0
- package/dist/esm/pm-plugins/utils/get-new-plugin-state.js +96 -0
- package/dist/esm/pm-plugins/utils/is-safe-insert.js +30 -0
- package/dist/esm/pm-plugins/utils/should-skip-tr.js +46 -0
- package/dist/types/metricsPluginType.d.ts +2 -2
- package/dist/types/pm-plugins/main.d.ts +4 -1
- package/dist/types/pm-plugins/utils/analytics.d.ts +1 -7
- package/dist/types/pm-plugins/utils/check-tr-actions/check-tr-action-type.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-content-moved.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-deleting-content.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-empty-line-added-or-deleted.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-list-type-node-changed.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-mark-changed.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-node-attribute-changed.d.ts +4 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-status-changed.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-table-column-resized.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/tr-checks/check-text-input.d.ts +3 -0
- package/dist/types/pm-plugins/utils/check-tr-actions/types.d.ts +44 -0
- package/dist/types/pm-plugins/utils/get-new-plugin-state.d.ts +56 -0
- package/dist/types/pm-plugins/utils/is-safe-insert.d.ts +3 -0
- package/dist/types/pm-plugins/utils/should-skip-tr.d.ts +2 -0
- package/dist/types-ts4.5/metricsPluginType.d.ts +2 -3
- package/dist/types-ts4.5/pm-plugins/main.d.ts +4 -1
- package/dist/types-ts4.5/pm-plugins/utils/analytics.d.ts +1 -7
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/check-tr-action-type.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-content-moved.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-deleting-content.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-empty-line-added-or-deleted.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-list-type-node-changed.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-mark-changed.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-node-attribute-changed.d.ts +4 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-status-changed.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-table-column-resized.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/tr-checks/check-text-input.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-actions/types.d.ts +44 -0
- package/dist/types-ts4.5/pm-plugins/utils/get-new-plugin-state.d.ts +56 -0
- package/dist/types-ts4.5/pm-plugins/utils/is-safe-insert.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils/should-skip-tr.d.ts +2 -0
- package/package.json +12 -6
- package/dist/cjs/pm-plugins/utils/check-tr-action-type.js +0 -312
- package/dist/es2019/pm-plugins/utils/check-tr-action-type.js +0 -271
- package/dist/esm/pm-plugins/utils/check-tr-action-type.js +0 -305
- package/dist/types/pm-plugins/utils/check-tr-action-type.d.ts +0 -38
- package/dist/types-ts4.5/pm-plugins/utils/check-tr-action-type.d.ts +0 -38
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-metrics
|
|
2
2
|
|
|
3
|
+
## 3.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#120928](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/120928)
|
|
8
|
+
[`01cb5ca9596cf`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/01cb5ca9596cf) -
|
|
9
|
+
[ED-26316] Refactor checkTrActionType functions to be in it's own file to help with readability,
|
|
10
|
+
add check for safe insert count and update it in analytics event fired
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 3.3.1
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -24,9 +24,17 @@ var metricsPlugin = exports.metricsPlugin = function metricsPlugin(_ref) {
|
|
|
24
24
|
}];
|
|
25
25
|
},
|
|
26
26
|
commands: {
|
|
27
|
-
|
|
27
|
+
setContentMoved: function setContentMoved() {
|
|
28
28
|
return function (_ref2) {
|
|
29
29
|
var tr = _ref2.tr;
|
|
30
|
+
return tr.setMeta(_main.metricsKey, {
|
|
31
|
+
contentMoved: true
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
startActiveSessionTimer: function startActiveSessionTimer() {
|
|
36
|
+
return function (_ref3) {
|
|
37
|
+
var tr = _ref3.tr;
|
|
30
38
|
var pluginState = api === null || api === void 0 ? void 0 : api.metrics.sharedState.currentState();
|
|
31
39
|
if (!(pluginState !== null && pluginState !== void 0 && pluginState.intentToStartEditTime)) {
|
|
32
40
|
return tr;
|
|
@@ -38,8 +46,8 @@ var metricsPlugin = exports.metricsPlugin = function metricsPlugin(_ref) {
|
|
|
38
46
|
};
|
|
39
47
|
},
|
|
40
48
|
stopActiveSession: function stopActiveSession() {
|
|
41
|
-
return function (
|
|
42
|
-
var tr =
|
|
49
|
+
return function (_ref4) {
|
|
50
|
+
var tr = _ref4.tr;
|
|
43
51
|
if (!api) {
|
|
44
52
|
return tr;
|
|
45
53
|
}
|
|
@@ -48,11 +56,12 @@ var metricsPlugin = exports.metricsPlugin = function metricsPlugin(_ref) {
|
|
|
48
56
|
return tr;
|
|
49
57
|
}
|
|
50
58
|
if (pluginState && pluginState.totalActionCount > 0 && pluginState.activeSessionTime > 0) {
|
|
59
|
+
var _api$analytics;
|
|
51
60
|
var payloadToSend = (0, _analytics.getAnalyticsPayload)({
|
|
52
61
|
currentContent: tr.doc.content,
|
|
53
62
|
pluginState: pluginState
|
|
54
63
|
});
|
|
55
|
-
api === null || api === void 0 || api.analytics.actions.attachAnalyticsEvent(payloadToSend)(tr);
|
|
64
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.attachAnalyticsEvent(payloadToSend)(tr);
|
|
56
65
|
}
|
|
57
66
|
tr.setMeta(_main.metricsKey, {
|
|
58
67
|
stopActiveSession: true
|
|
@@ -60,13 +69,13 @@ var metricsPlugin = exports.metricsPlugin = function metricsPlugin(_ref) {
|
|
|
60
69
|
return tr;
|
|
61
70
|
};
|
|
62
71
|
},
|
|
63
|
-
handleIntentToStartEdit: function handleIntentToStartEdit(
|
|
64
|
-
var newSelection =
|
|
65
|
-
|
|
66
|
-
shouldStartTimer =
|
|
67
|
-
shouldPersistActiveSession =
|
|
68
|
-
return function (
|
|
69
|
-
var tr =
|
|
72
|
+
handleIntentToStartEdit: function handleIntentToStartEdit(_ref5) {
|
|
73
|
+
var newSelection = _ref5.newSelection,
|
|
74
|
+
_ref5$shouldStartTime = _ref5.shouldStartTimer,
|
|
75
|
+
shouldStartTimer = _ref5$shouldStartTime === void 0 ? true : _ref5$shouldStartTime,
|
|
76
|
+
shouldPersistActiveSession = _ref5.shouldPersistActiveSession;
|
|
77
|
+
return function (_ref6) {
|
|
78
|
+
var tr = _ref6.tr;
|
|
70
79
|
if (!api) {
|
|
71
80
|
return tr;
|
|
72
81
|
}
|
|
@@ -11,9 +11,9 @@ var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
|
|
|
11
11
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
12
12
|
var _activeSessionTimer = require("./utils/active-session-timer");
|
|
13
13
|
var _analytics = require("./utils/analytics");
|
|
14
|
-
var
|
|
15
|
-
var _isNonTextUndo = require("./utils/is-non-text-undo");
|
|
14
|
+
var _getNewPluginState = require("./utils/get-new-plugin-state");
|
|
16
15
|
var _isTrWithDocChanges = require("./utils/is-tr-with-doc-changes");
|
|
16
|
+
var _shouldSkipTr = require("./utils/should-skip-tr");
|
|
17
17
|
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; }
|
|
18
18
|
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; }
|
|
19
19
|
var metricsKey = exports.metricsKey = new _state.PluginKey('metricsPlugin');
|
|
@@ -31,9 +31,12 @@ var initialPluginState = exports.initialPluginState = {
|
|
|
31
31
|
nodeAttributeChangeCount: 0,
|
|
32
32
|
contentMovedCount: 0,
|
|
33
33
|
nodeDeletionCount: 0,
|
|
34
|
-
undoCount: 0
|
|
34
|
+
undoCount: 0,
|
|
35
|
+
markChangeCount: 0,
|
|
36
|
+
contentDeletedCount: 0
|
|
35
37
|
},
|
|
36
|
-
repeatedActionCount: 0
|
|
38
|
+
repeatedActionCount: 0,
|
|
39
|
+
safeInsertCount: 0
|
|
37
40
|
};
|
|
38
41
|
var createPlugin = exports.createPlugin = function createPlugin(api) {
|
|
39
42
|
var timer = new _activeSessionTimer.ActiveSessionTimer(api);
|
|
@@ -48,6 +51,7 @@ var createPlugin = exports.createPlugin = function createPlugin(api) {
|
|
|
48
51
|
// eslint-disable-next-line @typescript-eslint/max-params
|
|
49
52
|
apply: function apply(tr, pluginState, oldState, newState) {
|
|
50
53
|
var _meta$shouldPersistAc;
|
|
54
|
+
// Return if transaction is remote or replaceDocument is set
|
|
51
55
|
if (tr.getMeta('isRemote') || tr.getMeta('replaceDocument')) {
|
|
52
56
|
return pluginState;
|
|
53
57
|
}
|
|
@@ -63,127 +67,46 @@ var createPlugin = exports.createPlugin = function createPlugin(api) {
|
|
|
63
67
|
var hasDocChanges = (0, _isTrWithDocChanges.isTrWithDocChanges)(tr);
|
|
64
68
|
var intentToStartEditTime = (meta === null || meta === void 0 ? void 0 : meta.intentToStartEditTime) || pluginState.intentToStartEditTime;
|
|
65
69
|
var now = performance.now();
|
|
70
|
+
// If there is no intentToStartEditTime and there are no doc changes, return the plugin state
|
|
66
71
|
if (!intentToStartEditTime && !hasDocChanges && !tr.storedMarksSet) {
|
|
67
72
|
return pluginState;
|
|
68
73
|
}
|
|
74
|
+
|
|
75
|
+
// Set intentToStartEditTime if it is not set and there are doc changes or marks are set
|
|
69
76
|
if (!intentToStartEditTime && (hasDocChanges || tr.storedMarksSet)) {
|
|
70
77
|
intentToStartEditTime = now;
|
|
71
78
|
}
|
|
72
79
|
|
|
73
|
-
// Start active session timer if intentToStartEditTime is
|
|
74
|
-
// shouldPersistActiveSession is
|
|
80
|
+
// Start active session timer if intentToStartEditTime is defined, shouldStartTimer is true and shouldPersistActiveSession is false
|
|
81
|
+
// shouldPersistActiveSession is true when dragging block controls and when insert menu is open as user is interacting with the editor without making doc changes
|
|
75
82
|
// Timer should start when menu closes or dragging stops
|
|
76
83
|
if (intentToStartEditTime && meta !== null && meta !== void 0 && meta.shouldStartTimer && !pluginState.shouldPersistActiveSession) {
|
|
77
84
|
timer.startTimer();
|
|
78
85
|
}
|
|
79
|
-
var undoCount = (0, _isNonTextUndo.isNonTextUndo)(tr) ? 1 : 0;
|
|
80
|
-
var newActionTypeCount = pluginState.actionTypeCount ? _objectSpread(_objectSpread({}, pluginState.actionTypeCount), {}, {
|
|
81
|
-
undoCount: pluginState.actionTypeCount.undoCount + undoCount
|
|
82
|
-
}) : _objectSpread(_objectSpread({}, initialPluginState.actionTypeCount), {}, {
|
|
83
|
-
undoCount: undoCount
|
|
84
|
-
});
|
|
85
86
|
if (hasDocChanges) {
|
|
86
87
|
timer.startTimer();
|
|
87
|
-
|
|
88
|
-
timeOfLastTextInput = pluginState.timeOfLastTextInput,
|
|
89
|
-
totalActionCount = pluginState.totalActionCount,
|
|
90
|
-
previousTrType = pluginState.previousTrType;
|
|
91
|
-
if ((0, _checkTrActionType.shouldSkipTr)(tr)) {
|
|
88
|
+
if ((0, _shouldSkipTr.shouldSkipTr)(tr)) {
|
|
92
89
|
return pluginState;
|
|
93
90
|
}
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
-
var shouldSetTimeOfLastTextInput = false;
|
|
97
|
-
var isTextInput = false;
|
|
98
|
-
if (trType) {
|
|
99
|
-
var _trType$extraData, _previousTrType$extra;
|
|
100
|
-
var isNotNewStatus = trType.type === _checkTrActionType.ActionType.UPDATING_STATUS && (previousTrType === null || previousTrType === void 0 ? void 0 : previousTrType.type) === _checkTrActionType.ActionType.UPDATING_STATUS && (trType === null || trType === void 0 || (_trType$extraData = trType.extraData) === null || _trType$extraData === void 0 ? void 0 : _trType$extraData.statusId) === (previousTrType === null || previousTrType === void 0 || (_previousTrType$extra = previousTrType.extraData) === null || _previousTrType$extra === void 0 ? void 0 : _previousTrType$extra.statusId);
|
|
101
|
-
var isAddingTextToListNode = trType.type === _checkTrActionType.ActionType.TEXT_INPUT && !!previousTrType && [_checkTrActionType.ActionType.UPDATING_NEW_LIST_TYPE_ITEM, _checkTrActionType.ActionType.INSERTING_NEW_LIST_TYPE_NODE].includes(previousTrType.type);
|
|
102
|
-
var isAddingNewListItemAfterTextInput = !!previousTrType && previousTrType.type === _checkTrActionType.ActionType.TEXT_INPUT && [_checkTrActionType.ActionType.UPDATING_NEW_LIST_TYPE_ITEM].includes(trType.type);
|
|
103
|
-
|
|
104
|
-
// Check if tr is textInput and only increment textInputCount if previous action was not textInput
|
|
105
|
-
isTextInput = [_checkTrActionType.ActionType.TEXT_INPUT, _checkTrActionType.ActionType.EMPTY_LINE_ADDED_OR_DELETED].includes(trType.type);
|
|
106
|
-
|
|
107
|
-
// timeOfLastTextInput should be set if tr includes continuous text input on the same node
|
|
108
|
-
shouldSetTimeOfLastTextInput = [_checkTrActionType.ActionType.TEXT_INPUT, _checkTrActionType.ActionType.EMPTY_LINE_ADDED_OR_DELETED, _checkTrActionType.ActionType.UPDATING_NEW_LIST_TYPE_ITEM, _checkTrActionType.ActionType.INSERTING_NEW_LIST_TYPE_NODE, _checkTrActionType.ActionType.UPDATING_STATUS].includes(trType.type) || isNotNewStatus;
|
|
109
|
-
|
|
110
|
-
// Should not increase action count if tr is text input,
|
|
111
|
-
// empty line added or deleted, updating new list item or is updating same status node
|
|
112
|
-
|
|
113
|
-
shouldNotIncrementActionCount = isTextInput || isNotNewStatus || isAddingTextToListNode || isAddingNewListItemAfterTextInput;
|
|
114
|
-
}
|
|
115
|
-
var newTextInputCount = isTextInput ? actionTypeCount.textInputCount + 1 : actionTypeCount.textInputCount;
|
|
116
|
-
var newTotalActionCount = totalActionCount + 1;
|
|
117
|
-
if (timeOfLastTextInput && shouldNotIncrementActionCount) {
|
|
118
|
-
newTotalActionCount = totalActionCount;
|
|
119
|
-
}
|
|
120
|
-
if (timeOfLastTextInput && isTextInput && previousTrType && [_checkTrActionType.ActionType.TEXT_INPUT, _checkTrActionType.ActionType.EMPTY_LINE_ADDED_OR_DELETED, _checkTrActionType.ActionType.UPDATING_NEW_LIST_TYPE_ITEM, _checkTrActionType.ActionType.INSERTING_NEW_LIST_TYPE_NODE].includes(previousTrType.type)) {
|
|
121
|
-
newTextInputCount = actionTypeCount.textInputCount;
|
|
122
|
-
}
|
|
123
|
-
var newNodeAttrCount = actionTypeCount.nodeAttributeChangeCount;
|
|
124
|
-
var newRepeatedActionCount = pluginState.repeatedActionCount;
|
|
125
|
-
if ((trType === null || trType === void 0 ? void 0 : trType.type) === _checkTrActionType.ActionType.CHANGING_ATTRS) {
|
|
126
|
-
newNodeAttrCount = newNodeAttrCount + 1;
|
|
127
|
-
if ((previousTrType === null || previousTrType === void 0 ? void 0 : previousTrType.type) === _checkTrActionType.ActionType.CHANGING_ATTRS) {
|
|
128
|
-
var _trType$extraData2 = trType.extraData,
|
|
129
|
-
newAttr = _trType$extraData2.attr,
|
|
130
|
-
newFrom = _trType$extraData2.from,
|
|
131
|
-
newTo = _trType$extraData2.to;
|
|
132
|
-
var _previousTrType$extra2 = previousTrType.extraData,
|
|
133
|
-
prevAttr = _previousTrType$extra2.attr,
|
|
134
|
-
prevFrom = _previousTrType$extra2.from,
|
|
135
|
-
prevTo = _previousTrType$extra2.to;
|
|
136
|
-
newRepeatedActionCount = newAttr === prevAttr && newFrom === prevFrom && newTo === prevTo ? newRepeatedActionCount + 1 : newRepeatedActionCount;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
var newPluginState = _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
140
|
-
activeSessionTime: now - intentToStartEditTime,
|
|
141
|
-
totalActionCount: newTotalActionCount,
|
|
142
|
-
timeOfLastTextInput: shouldSetTimeOfLastTextInput ? now : undefined,
|
|
143
|
-
contentSizeChanged: pluginState.contentSizeChanged + (newState.doc.content.size - oldState.doc.content.size),
|
|
144
|
-
actionTypeCount: _objectSpread(_objectSpread({}, newActionTypeCount), {}, {
|
|
145
|
-
textInputCount: newTextInputCount,
|
|
146
|
-
nodeAttributeChangeCount: newNodeAttrCount
|
|
147
|
-
}),
|
|
91
|
+
var newPluginState = (0, _getNewPluginState.getNewPluginState)({
|
|
92
|
+
now: now,
|
|
148
93
|
intentToStartEditTime: intentToStartEditTime,
|
|
149
94
|
shouldPersistActiveSession: shouldPersistActiveSession,
|
|
150
|
-
|
|
151
|
-
|
|
95
|
+
tr: tr,
|
|
96
|
+
pluginState: pluginState,
|
|
97
|
+
oldState: oldState,
|
|
98
|
+
newState: newState
|
|
152
99
|
});
|
|
153
100
|
return newPluginState;
|
|
154
101
|
}
|
|
155
102
|
return _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
156
103
|
lastSelection: (meta === null || meta === void 0 ? void 0 : meta.newSelection) || pluginState.lastSelection,
|
|
157
104
|
intentToStartEditTime: intentToStartEditTime,
|
|
158
|
-
actionTypeCount: newActionTypeCount,
|
|
159
105
|
shouldPersistActiveSession: shouldPersistActiveSession
|
|
160
106
|
});
|
|
161
107
|
}
|
|
162
108
|
},
|
|
163
109
|
view: function view(_view) {
|
|
164
|
-
var _api$blockControls;
|
|
165
|
-
var handleIsDraggingChanged = api === null || api === void 0 || (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 ? void 0 : _api$blockControls.sharedState.onChange(function (_ref) {
|
|
166
|
-
var nextSharedState = _ref.nextSharedState,
|
|
167
|
-
prevSharedState = _ref.prevSharedState;
|
|
168
|
-
if (nextSharedState) {
|
|
169
|
-
api === null || api === void 0 || api.core.actions.execute(function (_ref2) {
|
|
170
|
-
var tr = _ref2.tr;
|
|
171
|
-
if (!(prevSharedState !== null && prevSharedState !== void 0 && prevSharedState.isDragging) && nextSharedState.isDragging) {
|
|
172
|
-
api === null || api === void 0 || api.metrics.commands.handleIntentToStartEdit({
|
|
173
|
-
shouldStartTimer: false,
|
|
174
|
-
shouldPersistActiveSession: true
|
|
175
|
-
})({
|
|
176
|
-
tr: tr
|
|
177
|
-
});
|
|
178
|
-
} else if (prevSharedState !== null && prevSharedState !== void 0 && prevSharedState.isDragging && !nextSharedState.isDragging) {
|
|
179
|
-
api === null || api === void 0 || api.metrics.commands.startActiveSessionTimer()({
|
|
180
|
-
tr: tr
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
return tr;
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
110
|
var fireAnalyticsEvent = function fireAnalyticsEvent() {
|
|
188
111
|
var pluginState = metricsKey.getState(_view.state);
|
|
189
112
|
if (!pluginState) {
|
|
@@ -194,7 +117,8 @@ var createPlugin = exports.createPlugin = function createPlugin(api) {
|
|
|
194
117
|
pluginState: pluginState
|
|
195
118
|
});
|
|
196
119
|
if (pluginState && pluginState.totalActionCount > 0 && pluginState.activeSessionTime > 0) {
|
|
197
|
-
|
|
120
|
+
var _api$analytics;
|
|
121
|
+
api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.fireAnalyticsEvent(payloadToSend, undefined, {
|
|
198
122
|
immediate: true
|
|
199
123
|
});
|
|
200
124
|
}
|
|
@@ -210,7 +134,6 @@ var createPlugin = exports.createPlugin = function createPlugin(api) {
|
|
|
210
134
|
fireAnalyticsEvent();
|
|
211
135
|
timer.cleanupTimer();
|
|
212
136
|
unbindBeforeUnload();
|
|
213
|
-
handleIsDraggingChanged === null || handleIsDraggingChanged === void 0 || handleIsDraggingChanged();
|
|
214
137
|
}
|
|
215
138
|
};
|
|
216
139
|
},
|
|
@@ -4,44 +4,37 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.getAnalyticsPayload = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
11
11
|
var _getNodeChanges = require("./get-node-changes");
|
|
12
12
|
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; }
|
|
13
13
|
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; }
|
|
14
|
-
var
|
|
15
|
-
var pluginState = _ref.pluginState,
|
|
16
|
-
contentSizeChanged = _ref.contentSizeChanged;
|
|
17
|
-
return {
|
|
18
|
-
efficiency: {
|
|
19
|
-
totalActiveTime: pluginState.activeSessionTime,
|
|
20
|
-
totalActionCount: pluginState.totalActionCount,
|
|
21
|
-
actionByTypeCount: pluginState.actionTypeCount
|
|
22
|
-
},
|
|
23
|
-
effectiveness: {
|
|
24
|
-
undoCount: pluginState.actionTypeCount.undoCount,
|
|
25
|
-
repeatedActionCount: pluginState.repeatedActionCount,
|
|
26
|
-
safeInsertCount: 0
|
|
27
|
-
},
|
|
28
|
-
contentSizeChanged: contentSizeChanged
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
var getAnalyticsPayload = exports.getAnalyticsPayload = function getAnalyticsPayload(_ref2) {
|
|
14
|
+
var getAnalyticsPayload = exports.getAnalyticsPayload = function getAnalyticsPayload(_ref) {
|
|
32
15
|
var _pluginState$actionTy;
|
|
33
|
-
var currentContent =
|
|
34
|
-
pluginState =
|
|
16
|
+
var currentContent = _ref.currentContent,
|
|
17
|
+
pluginState = _ref.pluginState;
|
|
35
18
|
var nodeChanges = (0, _getNodeChanges.getNodeChanges)({
|
|
36
19
|
currentContent: currentContent,
|
|
37
20
|
pluginState: pluginState
|
|
38
21
|
});
|
|
22
|
+
var getActionCountByTypeSum = function getActionCountByTypeSum() {
|
|
23
|
+
var actionCountByTypeSum = 0;
|
|
24
|
+
Object.entries(pluginState.actionTypeCount).forEach(function (_ref2) {
|
|
25
|
+
var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
26
|
+
_actionType = _ref3[0],
|
|
27
|
+
count = _ref3[1];
|
|
28
|
+
actionCountByTypeSum += count;
|
|
29
|
+
});
|
|
30
|
+
return pluginState.totalActionCount - actionCountByTypeSum;
|
|
31
|
+
};
|
|
39
32
|
var nodeInsertionCount = 0;
|
|
40
33
|
var nodeDeletionCount = 0;
|
|
41
|
-
Object.entries(nodeChanges).forEach(function (
|
|
42
|
-
var
|
|
43
|
-
_ =
|
|
44
|
-
change =
|
|
34
|
+
Object.entries(nodeChanges).forEach(function (_ref4) {
|
|
35
|
+
var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
|
|
36
|
+
_ = _ref5[0],
|
|
37
|
+
change = _ref5[1];
|
|
45
38
|
if (change > 0) {
|
|
46
39
|
nodeInsertionCount += change;
|
|
47
40
|
} else if (change < 0) {
|
|
@@ -58,13 +51,14 @@ var getAnalyticsPayload = exports.getAnalyticsPayload = function getAnalyticsPay
|
|
|
58
51
|
totalActionCount: pluginState.totalActionCount,
|
|
59
52
|
actionByTypeCount: _objectSpread(_objectSpread({}, (_pluginState$actionTy = pluginState.actionTypeCount) !== null && _pluginState$actionTy !== void 0 ? _pluginState$actionTy : {}), {}, {
|
|
60
53
|
nodeDeletionCount: nodeDeletionCount,
|
|
61
|
-
nodeInsertionCount: nodeInsertionCount
|
|
54
|
+
nodeInsertionCount: nodeInsertionCount,
|
|
55
|
+
other: getActionCountByTypeSum()
|
|
62
56
|
})
|
|
63
57
|
},
|
|
64
58
|
effectiveness: {
|
|
65
59
|
undoCount: pluginState.actionTypeCount.undoCount,
|
|
66
60
|
repeatedActionCount: pluginState.repeatedActionCount,
|
|
67
|
-
safeInsertCount:
|
|
61
|
+
safeInsertCount: pluginState.safeInsertCount
|
|
68
62
|
},
|
|
69
63
|
contentSizeChanged: pluginState.contentSizeChanged
|
|
70
64
|
},
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.checkTrActionType = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
10
|
+
var _checkContentMoved = require("./tr-checks/check-content-moved");
|
|
11
|
+
var _checkDeletingContent = require("./tr-checks/check-deleting-content");
|
|
12
|
+
var _checkEmptyLineAddedOrDeleted = require("./tr-checks/check-empty-line-added-or-deleted");
|
|
13
|
+
var _checkListTypeNodeChanged = require("./tr-checks/check-list-type-node-changed");
|
|
14
|
+
var _checkMarkChanged = require("./tr-checks/check-mark-changed");
|
|
15
|
+
var _checkNodeAttributeChanged = require("./tr-checks/check-node-attribute-changed");
|
|
16
|
+
var _checkStatusChanged = require("./tr-checks/check-status-changed");
|
|
17
|
+
var _checkTableColumnResized = require("./tr-checks/check-table-column-resized");
|
|
18
|
+
var _checkTextInput = require("./tr-checks/check-text-input");
|
|
19
|
+
var checkTrActionType = exports.checkTrActionType = function checkTrActionType(tr) {
|
|
20
|
+
var stepsLength = tr.steps.length;
|
|
21
|
+
if (stepsLength <= 0) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
var contentPastedOrMoved = (0, _checkContentMoved.checkContentPastedOrMoved)(tr);
|
|
25
|
+
if (contentPastedOrMoved) {
|
|
26
|
+
return contentPastedOrMoved;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Resized column data is either AttrStep or BatchAttrsStep, so we want to check it first
|
|
30
|
+
var resizedColumnData = (0, _checkTableColumnResized.checkTableColumnResized)(tr);
|
|
31
|
+
if (resizedColumnData) {
|
|
32
|
+
return resizedColumnData;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Since we are looking at editor actions, we want to look at the first step only
|
|
36
|
+
var _tr$steps = (0, _slicedToArray2.default)(tr.steps, 1),
|
|
37
|
+
firstStep = _tr$steps[0];
|
|
38
|
+
var isReplaceStep = firstStep instanceof _transform.ReplaceStep;
|
|
39
|
+
var isReplaceAroundStep = firstStep instanceof _transform.ReplaceAroundStep;
|
|
40
|
+
|
|
41
|
+
// Check if mark is added or removed, this is for text formatting changes
|
|
42
|
+
var marksChanged = (0, _checkMarkChanged.checkMarkChanged)(firstStep);
|
|
43
|
+
if (marksChanged) {
|
|
44
|
+
return marksChanged;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Return early if it's not a replace step or replace around step as following checks are for these steps only
|
|
48
|
+
if (!(isReplaceStep || isReplaceAroundStep)) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
if (isReplaceStep) {
|
|
52
|
+
// Check if tr is text input as we want to ignore continuous typing actions
|
|
53
|
+
var textInput = (0, _checkTextInput.checkTextInput)(firstStep);
|
|
54
|
+
if (textInput) {
|
|
55
|
+
return textInput;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Check if tr is adding/ removing empty lines as we want to ignore continuous typing actions
|
|
59
|
+
var emptyLineAddedOrDeleted = (0, _checkEmptyLineAddedOrDeleted.checkEmptyLineAddedOrDeleted)(firstStep);
|
|
60
|
+
if (emptyLineAddedOrDeleted) {
|
|
61
|
+
return emptyLineAddedOrDeleted;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//Check if tr is removing content
|
|
65
|
+
var isDeletingContent = (0, _checkDeletingContent.checkDeletingContent)(firstStep);
|
|
66
|
+
if (isDeletingContent) {
|
|
67
|
+
return isDeletingContent;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Status nodes save status content in attributes and a new transaction is fired each keypress
|
|
71
|
+
// Check if tr is updating status so we can handle actionCount correctly
|
|
72
|
+
var status = (0, _checkStatusChanged.checkStatusChanged)(firstStep);
|
|
73
|
+
if (status) {
|
|
74
|
+
return status;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Check if tr is updating list type node because we want to ignore continuous typing actions and adding new list items
|
|
79
|
+
var updatingListTypeNode = (0, _checkListTypeNodeChanged.checkListTypeNodeChanged)(firstStep);
|
|
80
|
+
if (updatingListTypeNode) {
|
|
81
|
+
return updatingListTypeNode;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Check if tr is updating node attributes so we can track nodeAttributeChangeCount
|
|
85
|
+
var nodeAttributeChange = (0, _checkNodeAttributeChanged.checkNodeAttributeChanged)(tr, firstStep);
|
|
86
|
+
if (nodeAttributeChange) {
|
|
87
|
+
return nodeAttributeChange;
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkContentPastedOrMoved = void 0;
|
|
7
|
+
var _main = require("../../../main");
|
|
8
|
+
var _types = require("../types");
|
|
9
|
+
var UI_EVENT = 'uiEvent';
|
|
10
|
+
var PASTE_EVENT = 'paste';
|
|
11
|
+
var checkContentPastedOrMoved = exports.checkContentPastedOrMoved = function checkContentPastedOrMoved(tr) {
|
|
12
|
+
var _tr$getMeta;
|
|
13
|
+
var isContentMoved = (_tr$getMeta = tr.getMeta(_main.metricsKey)) === null || _tr$getMeta === void 0 ? void 0 : _tr$getMeta.contentMoved;
|
|
14
|
+
var isContentPasted = tr.getMeta(UI_EVENT) === PASTE_EVENT;
|
|
15
|
+
if (isContentMoved) {
|
|
16
|
+
return {
|
|
17
|
+
type: _types.ActionType.MOVING_CONTENT
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (isContentPasted) {
|
|
21
|
+
return {
|
|
22
|
+
type: _types.ActionType.PASTING_CONTENT
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkDeletingContent = void 0;
|
|
7
|
+
var _types = require("../types");
|
|
8
|
+
var checkDeletingContent = exports.checkDeletingContent = function checkDeletingContent(step) {
|
|
9
|
+
var _ref = step,
|
|
10
|
+
content = _ref.slice.content,
|
|
11
|
+
from = _ref.from,
|
|
12
|
+
to = _ref.to;
|
|
13
|
+
var isDeletingContent = to !== from && content.childCount === 0;
|
|
14
|
+
if (!isDeletingContent) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
type: _types.ActionType.DELETING_CONTENT
|
|
19
|
+
};
|
|
20
|
+
};
|
package/dist/cjs/pm-plugins/utils/check-tr-actions/tr-checks/check-empty-line-added-or-deleted.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkEmptyLineAddedOrDeleted = void 0;
|
|
7
|
+
var _types = require("../types");
|
|
8
|
+
var checkEmptyLineAddedOrDeleted = exports.checkEmptyLineAddedOrDeleted = function checkEmptyLineAddedOrDeleted(step) {
|
|
9
|
+
var _ref = step,
|
|
10
|
+
content = _ref.slice.content,
|
|
11
|
+
from = _ref.from,
|
|
12
|
+
to = _ref.to;
|
|
13
|
+
var isEmptyLineDeleted = to - from === 2 && content.size === 0;
|
|
14
|
+
if (isEmptyLineDeleted) {
|
|
15
|
+
return {
|
|
16
|
+
type: _types.ActionType.EMPTY_LINE_ADDED_OR_DELETED
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
var isEmptyLineAdded = false;
|
|
20
|
+
content.forEach(function (node) {
|
|
21
|
+
isEmptyLineAdded = node.type.name === 'paragraph' && node.content.size === 0;
|
|
22
|
+
});
|
|
23
|
+
if (!isEmptyLineAdded) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
type: _types.ActionType.EMPTY_LINE_ADDED_OR_DELETED
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkListTypeNodeChanged = void 0;
|
|
7
|
+
var _types = require("../types");
|
|
8
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
9
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
10
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
11
|
+
var checkListTypeNodeChanged = exports.checkListTypeNodeChanged = function checkListTypeNodeChanged(step) {
|
|
12
|
+
var content = step.slice.content;
|
|
13
|
+
var childCount = content.childCount;
|
|
14
|
+
if (childCount < 1) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
var _iterator = _createForOfIteratorHelper(content.content),
|
|
18
|
+
_step;
|
|
19
|
+
try {
|
|
20
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
21
|
+
var node = _step.value;
|
|
22
|
+
var isListTypeNode = ['decisionList', 'decisionItem', 'bulletList', 'listItem', 'orderedList', 'taskList', 'taskItem'].includes(node.type.name);
|
|
23
|
+
if (isListTypeNode) {
|
|
24
|
+
return childCount === 1 ? {
|
|
25
|
+
type: _types.ActionType.INSERTING_NEW_LIST_TYPE_NODE
|
|
26
|
+
} : {
|
|
27
|
+
type: _types.ActionType.UPDATING_NEW_LIST_TYPE_ITEM
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
} catch (err) {
|
|
32
|
+
_iterator.e(err);
|
|
33
|
+
} finally {
|
|
34
|
+
_iterator.f();
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkMarkChanged = void 0;
|
|
7
|
+
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
8
|
+
var _types = require("../types");
|
|
9
|
+
var checkMarkChanged = exports.checkMarkChanged = function checkMarkChanged(step) {
|
|
10
|
+
if (!(step instanceof _transform.AddMarkStep || step instanceof _transform.RemoveMarkStep)) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
type: _types.ActionType.CHANGING_MARK
|
|
15
|
+
};
|
|
16
|
+
};
|