@atlaskit/editor-plugin-card 0.3.4 → 0.3.6
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/analytics/create-events-queue.js +55 -0
- package/dist/cjs/{pm-plugins/analytics → analytics}/events-from-tr.js +90 -81
- package/dist/cjs/{pm-plugins/analytics → analytics}/index.js +3 -3
- package/dist/cjs/analytics/types.js +24 -0
- package/dist/cjs/analytics/utils.js +134 -0
- package/dist/cjs/nodeviews/datasource.js +1 -8
- package/dist/cjs/plugin.js +7 -4
- package/dist/cjs/pm-plugins/actions.js +1 -10
- package/dist/cjs/pm-plugins/doc.js +3 -0
- package/dist/cjs/pm-plugins/main.js +15 -13
- package/dist/cjs/pm-plugins/reducers.js +0 -7
- package/dist/cjs/ui/EditorLinkingPlatformAnalytics/DatasourceEvents.js +52 -0
- package/dist/cjs/ui/EditorLinkingPlatformAnalytics/LinkEvents.js +132 -0
- package/dist/cjs/ui/EditorLinkingPlatformAnalytics/common.js +65 -0
- package/dist/cjs/ui/EditorLinkingPlatformAnalytics/index.js +54 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics/create-events-queue.js +43 -0
- package/dist/es2019/{pm-plugins/analytics → analytics}/events-from-tr.js +82 -72
- package/dist/es2019/analytics/index.js +2 -0
- package/dist/es2019/analytics/types.js +17 -0
- package/dist/es2019/analytics/utils.js +118 -0
- package/dist/es2019/nodeviews/datasource.js +2 -9
- package/dist/es2019/plugin.js +7 -6
- package/dist/es2019/pm-plugins/actions.js +0 -4
- package/dist/es2019/pm-plugins/doc.js +3 -0
- package/dist/es2019/pm-plugins/main.js +15 -15
- package/dist/es2019/pm-plugins/reducers.js +0 -8
- package/dist/es2019/ui/EditorLinkingPlatformAnalytics/DatasourceEvents.js +46 -0
- package/dist/es2019/ui/EditorLinkingPlatformAnalytics/LinkEvents.js +127 -0
- package/dist/es2019/ui/EditorLinkingPlatformAnalytics/common.js +60 -0
- package/dist/es2019/ui/EditorLinkingPlatformAnalytics/index.js +30 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics/create-events-queue.js +48 -0
- package/dist/esm/{pm-plugins/analytics → analytics}/events-from-tr.js +90 -80
- package/dist/esm/analytics/index.js +2 -0
- package/dist/esm/analytics/types.js +17 -0
- package/dist/esm/analytics/utils.js +118 -0
- package/dist/esm/nodeviews/datasource.js +2 -9
- package/dist/esm/plugin.js +7 -4
- package/dist/esm/pm-plugins/actions.js +0 -8
- package/dist/esm/pm-plugins/doc.js +3 -0
- package/dist/esm/pm-plugins/main.js +15 -13
- package/dist/esm/pm-plugins/reducers.js +0 -7
- package/dist/esm/ui/EditorLinkingPlatformAnalytics/DatasourceEvents.js +44 -0
- package/dist/esm/ui/EditorLinkingPlatformAnalytics/LinkEvents.js +125 -0
- package/dist/esm/ui/EditorLinkingPlatformAnalytics/common.js +55 -0
- package/dist/esm/ui/EditorLinkingPlatformAnalytics/index.js +47 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/analytics/create-events-queue.d.ts +21 -0
- package/dist/types/analytics/events-from-tr.d.ts +19 -0
- package/dist/types/analytics/index.d.ts +2 -0
- package/dist/types/analytics/types.d.ts +66 -0
- package/dist/types/analytics/utils.d.ts +22 -0
- package/dist/types/nodeviews/datasource.d.ts +0 -2
- package/dist/types/pm-plugins/actions.d.ts +1 -2
- package/dist/types/pm-plugins/util/state.d.ts +0 -1
- package/dist/types/types.d.ts +4 -34
- package/dist/types/ui/EditorLinkingPlatformAnalytics/DatasourceEvents.d.ts +6 -0
- package/dist/types/ui/EditorLinkingPlatformAnalytics/LinkEvents.d.ts +6 -0
- package/dist/types/ui/EditorLinkingPlatformAnalytics/common.d.ts +20 -0
- package/dist/types/ui/EditorLinkingPlatformAnalytics/index.d.ts +9 -0
- package/dist/types-ts4.5/analytics/create-events-queue.d.ts +21 -0
- package/dist/types-ts4.5/analytics/events-from-tr.d.ts +19 -0
- package/dist/types-ts4.5/analytics/index.d.ts +2 -0
- package/dist/types-ts4.5/analytics/types.d.ts +66 -0
- package/dist/types-ts4.5/analytics/utils.d.ts +22 -0
- package/dist/types-ts4.5/nodeviews/datasource.d.ts +0 -2
- package/dist/types-ts4.5/pm-plugins/actions.d.ts +1 -2
- package/dist/types-ts4.5/pm-plugins/util/state.d.ts +0 -1
- package/dist/types-ts4.5/types.d.ts +4 -34
- package/dist/types-ts4.5/ui/EditorLinkingPlatformAnalytics/DatasourceEvents.d.ts +6 -0
- package/dist/types-ts4.5/ui/EditorLinkingPlatformAnalytics/LinkEvents.d.ts +6 -0
- package/dist/types-ts4.5/ui/EditorLinkingPlatformAnalytics/common.d.ts +20 -0
- package/dist/types-ts4.5/ui/EditorLinkingPlatformAnalytics/index.d.ts +9 -0
- package/package.json +3 -3
- package/report.api.md +84 -8
- package/tmp/api-report-tmp.d.ts +81 -8
- package/dist/cjs/pm-plugins/analytics/create-analytics-queue.js +0 -48
- package/dist/cjs/pm-plugins/analytics/types.js +0 -5
- package/dist/cjs/pm-plugins/analytics/utils.js +0 -178
- package/dist/cjs/ui/EditorSmartCardEventsNext.js +0 -204
- package/dist/es2019/pm-plugins/analytics/create-analytics-queue.js +0 -38
- package/dist/es2019/pm-plugins/analytics/index.js +0 -2
- package/dist/es2019/pm-plugins/analytics/types.js +0 -1
- package/dist/es2019/pm-plugins/analytics/utils.js +0 -160
- package/dist/es2019/ui/EditorSmartCardEventsNext.js +0 -188
- package/dist/esm/pm-plugins/analytics/create-analytics-queue.js +0 -41
- package/dist/esm/pm-plugins/analytics/index.js +0 -2
- package/dist/esm/pm-plugins/analytics/types.js +0 -1
- package/dist/esm/pm-plugins/analytics/utils.js +0 -160
- package/dist/esm/ui/EditorSmartCardEventsNext.js +0 -192
- package/dist/types/pm-plugins/analytics/create-analytics-queue.d.ts +0 -10
- package/dist/types/pm-plugins/analytics/events-from-tr.d.ts +0 -17
- package/dist/types/pm-plugins/analytics/index.d.ts +0 -2
- package/dist/types/pm-plugins/analytics/types.d.ts +0 -12
- package/dist/types/pm-plugins/analytics/utils.d.ts +0 -32
- package/dist/types/ui/EditorSmartCardEventsNext.d.ts +0 -18
- package/dist/types-ts4.5/pm-plugins/analytics/create-analytics-queue.d.ts +0 -10
- package/dist/types-ts4.5/pm-plugins/analytics/events-from-tr.d.ts +0 -17
- package/dist/types-ts4.5/pm-plugins/analytics/index.d.ts +0 -2
- package/dist/types-ts4.5/pm-plugins/analytics/types.d.ts +0 -12
- package/dist/types-ts4.5/pm-plugins/analytics/utils.d.ts +0 -32
- package/dist/types-ts4.5/ui/EditorSmartCardEventsNext.d.ts +0 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-card
|
|
2
2
|
|
|
3
|
+
## 0.3.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`fd24b65bb62`](https://bitbucket.org/atlassian/atlassian-frontend/commits/fd24b65bb62) - Fix table width bug when layout is undefined for datasource.
|
|
8
|
+
|
|
9
|
+
## 0.3.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`f9cdc991f20`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f9cdc991f20) - Updates analytics to better support datasources
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 0.3.4
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createEventsQueue = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Simple mechanism to defer event related callbacks
|
|
9
|
+
*
|
|
10
|
+
* Probably think twice whether your event should use this instead of
|
|
11
|
+
* editor's built-in `editor-plugin-analytics`
|
|
12
|
+
*
|
|
13
|
+
* Editor-Plugin-Analytics provides methods methods to dispatch events, and attach events into prosemiror transactions
|
|
14
|
+
* However we do not have access to the smart card context in prosemirror
|
|
15
|
+
*
|
|
16
|
+
* We are using this queue to relay events occurring in prosemirror (which does not have access to the react context)
|
|
17
|
+
* to be subscribed to elsewhere where the react context is available (contentComponent or otherwise) (smart card context)
|
|
18
|
+
* in order to be able to annotate events with additional attributes to events
|
|
19
|
+
*/
|
|
20
|
+
var createEventsQueue = function createEventsQueue() {
|
|
21
|
+
var queue = [];
|
|
22
|
+
var subscribers = new Set();
|
|
23
|
+
var subscribe = function subscribe(subscriber) {
|
|
24
|
+
subscribers.add(subscriber);
|
|
25
|
+
return function () {
|
|
26
|
+
subscribers.delete(subscriber);
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
var push = function push() {
|
|
30
|
+
queue.push.apply(queue, arguments);
|
|
31
|
+
};
|
|
32
|
+
var flush = function flush() {
|
|
33
|
+
var _loop = function _loop() {
|
|
34
|
+
var event = queue.shift();
|
|
35
|
+
if (event) {
|
|
36
|
+
subscribers.forEach(function (subscriber) {
|
|
37
|
+
subscriber(event);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
while (queue.length) {
|
|
42
|
+
_loop();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var getSize = function getSize() {
|
|
46
|
+
return queue.length;
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
push: push,
|
|
50
|
+
flush: flush,
|
|
51
|
+
subscribe: subscribe,
|
|
52
|
+
getSize: getSize
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
exports.createEventsQueue = createEventsQueue;
|
|
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.eventsFromTransaction = eventsFromTransaction;
|
|
8
|
-
exports.
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
exports.findChanged = void 0;
|
|
10
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
11
|
var _steps = require("@atlaskit/adf-schema/steps");
|
|
@@ -14,30 +13,23 @@ var _analytics = require("@atlaskit/editor-common/analytics");
|
|
|
14
13
|
var _card = require("@atlaskit/editor-common/card");
|
|
15
14
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
16
15
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
17
|
-
var _pluginKey = require("../plugin-key");
|
|
18
|
-
var _state = require("../util/state");
|
|
16
|
+
var _pluginKey = require("../pm-plugins/plugin-key");
|
|
17
|
+
var _state = require("../pm-plugins/util/state");
|
|
18
|
+
var _types = require("./types");
|
|
19
19
|
var _utils2 = require("./utils");
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
doc.nodesBetween(from, to, function (node, pos) {
|
|
25
|
-
if ((0, _utils2.isLink)(schema, node)) {
|
|
26
|
-
var entireLinkInRange = pos >= from && pos + node.nodeSize <= to;
|
|
27
|
-
if (entireLinkInRange) {
|
|
28
|
-
var link = (0, _utils2.linkObjectFromNode)(doc, schema, node, pos);
|
|
29
|
-
if (link) {
|
|
30
|
-
links.push(link);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
return links;
|
|
36
|
-
};
|
|
37
|
-
var findChangedLinks = function findChangedLinks(tr, state) {
|
|
20
|
+
/**
|
|
21
|
+
* Find the links, smartLinks, datasources that were changed in a transaction
|
|
22
|
+
*/
|
|
23
|
+
var findChanged = function findChanged(tr, state) {
|
|
38
24
|
var schema = tr.doc.type.schema;
|
|
39
25
|
var removed = [];
|
|
40
26
|
var inserted = [];
|
|
27
|
+
/**
|
|
28
|
+
* Ideally we have the "before" and "after" states of the "entity"
|
|
29
|
+
* being updated, but if the update is via a "queue for upgrade"
|
|
30
|
+
* then we no longer have access to the "before" state, because the "before"
|
|
31
|
+
* state was replaced with a blue link to be upgraded
|
|
32
|
+
*/
|
|
41
33
|
var updated = [];
|
|
42
34
|
var queuedForUpgrade = isTransactionQueuedForUpgrade(tr);
|
|
43
35
|
var isResolveReplace = isTransactionResolveReplace(tr);
|
|
@@ -64,26 +56,30 @@ var findChangedLinks = function findChangedLinks(tr, state) {
|
|
|
64
56
|
if (step instanceof _transform.AddMarkStep) {
|
|
65
57
|
var addMarkStep = step;
|
|
66
58
|
if ((0, _utils.isLinkMark)(addMarkStep.mark, schema)) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
59
|
+
var node = after.nodeAt(addMarkStep.from);
|
|
60
|
+
if (node) {
|
|
61
|
+
/**
|
|
62
|
+
* For url text pasted on plain text
|
|
63
|
+
*/
|
|
64
|
+
insertedInStep.push({
|
|
65
|
+
pos: addMarkStep.from,
|
|
66
|
+
node: node,
|
|
67
|
+
nodeContext: (0, _utils2.getNodeContext)(after, addMarkStep.from)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
76
70
|
}
|
|
77
71
|
}
|
|
78
72
|
if (step instanceof _transform.RemoveMarkStep) {
|
|
79
73
|
var removeMarkStep = step;
|
|
80
74
|
if ((0, _utils.isLinkMark)(removeMarkStep.mark, schema)) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
75
|
+
var _node = before.nodeAt(removeMarkStep.from);
|
|
76
|
+
if (_node) {
|
|
77
|
+
removedInStep.push({
|
|
78
|
+
pos: removeMarkStep.from,
|
|
79
|
+
node: _node,
|
|
80
|
+
nodeContext: (0, _utils2.getNodeContext)(before, removeMarkStep.from)
|
|
81
|
+
});
|
|
82
|
+
}
|
|
87
83
|
}
|
|
88
84
|
}
|
|
89
85
|
stepMap.forEach(function (oldStart, oldEnd, newStart, newEnd) {
|
|
@@ -94,13 +90,17 @@ var findChangedLinks = function findChangedLinks(tr, state) {
|
|
|
94
90
|
var insertedInRange = [];
|
|
95
91
|
|
|
96
92
|
// Removed
|
|
97
|
-
removedInRange.push.apply(removedInRange, (0, _toConsumableArray2.default)(
|
|
93
|
+
removedInRange.push.apply(removedInRange, (0, _toConsumableArray2.default)((0, _utils2.findInNodeRange)(before, oldStart, oldEnd, function (node) {
|
|
94
|
+
return !!(0, _utils2.getNodeSubject)(node);
|
|
95
|
+
})));
|
|
98
96
|
// Inserted
|
|
99
|
-
insertedInRange.push.apply(insertedInRange, (0, _toConsumableArray2.default)(
|
|
97
|
+
insertedInRange.push.apply(insertedInRange, (0, _toConsumableArray2.default)((0, _utils2.findInNodeRange)(after, newStart, newEnd, function (node) {
|
|
98
|
+
return !!(0, _utils2.getNodeSubject)(node);
|
|
99
|
+
})));
|
|
100
100
|
removedInStep.push.apply(removedInStep, removedInRange);
|
|
101
101
|
insertedInStep.push.apply(insertedInStep, insertedInRange);
|
|
102
102
|
});
|
|
103
|
-
var
|
|
103
|
+
var omitRequestsForUpgrade = function omitRequestsForUpgrade(links) {
|
|
104
104
|
if (!queuedForUpgrade) {
|
|
105
105
|
return links;
|
|
106
106
|
}
|
|
@@ -122,7 +122,7 @@ var findChangedLinks = function findChangedLinks(tr, state) {
|
|
|
122
122
|
if (!isResolveReplace) {
|
|
123
123
|
removed.push.apply(removed, removedInStep);
|
|
124
124
|
}
|
|
125
|
-
inserted.push.apply(inserted, (0, _toConsumableArray2.default)(
|
|
125
|
+
inserted.push.apply(inserted, (0, _toConsumableArray2.default)(omitRequestsForUpgrade(insertedInStep)));
|
|
126
126
|
};
|
|
127
127
|
for (var i = 0; i < tr.steps.length; i++) {
|
|
128
128
|
_loop(i);
|
|
@@ -135,7 +135,7 @@ var findChangedLinks = function findChangedLinks(tr, state) {
|
|
|
135
135
|
*/
|
|
136
136
|
if (inserted.length === 0 && isResolveReplace) {
|
|
137
137
|
var positions = getResolvePositions(tr, state);
|
|
138
|
-
inserted.push.apply(inserted, (0, _toConsumableArray2.default)((0, _utils2.
|
|
138
|
+
inserted.push.apply(inserted, (0, _toConsumableArray2.default)((0, _utils2.findAtPositions)(tr, positions)));
|
|
139
139
|
}
|
|
140
140
|
if (!isUpdate) {
|
|
141
141
|
var _getLinkMetadataFromT = (0, _card.getLinkMetadataFromTransaction)(tr),
|
|
@@ -144,7 +144,7 @@ var findChangedLinks = function findChangedLinks(tr, state) {
|
|
|
144
144
|
* If there is no identifiable input method, and the links inserted and removed appear to be the same,
|
|
145
145
|
* then this transaction likely is not intended to be consided to be the insertion and removal of links
|
|
146
146
|
*/
|
|
147
|
-
if (!inputMethod && (0, _utils2.
|
|
147
|
+
if (!inputMethod && (0, _utils2.areSameNodes)(removed, inserted)) {
|
|
148
148
|
return {
|
|
149
149
|
removed: [],
|
|
150
150
|
inserted: [],
|
|
@@ -189,7 +189,7 @@ var findChangedLinks = function findChangedLinks(tr, state) {
|
|
|
189
189
|
/**
|
|
190
190
|
* List of actions to be considered link "updates"
|
|
191
191
|
*/
|
|
192
|
-
exports.
|
|
192
|
+
exports.findChanged = findChanged;
|
|
193
193
|
var UPDATE_ACTIONS = [_analytics.ACTION.CHANGED_TYPE, _analytics.ACTION.UPDATED];
|
|
194
194
|
|
|
195
195
|
/**
|
|
@@ -300,17 +300,10 @@ function eventsFromTransaction(tr, state) {
|
|
|
300
300
|
action = _getLinkMetadataFromT2.action,
|
|
301
301
|
inputMethod = _getLinkMetadataFromT2.inputMethod,
|
|
302
302
|
sourceEvent = _getLinkMetadataFromT2.sourceEvent;
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
isUndo: isUndo,
|
|
308
|
-
isRedo: isRedo
|
|
309
|
-
};
|
|
310
|
-
var _findChangedLinks = findChangedLinks(tr, state),
|
|
311
|
-
removed = _findChangedLinks.removed,
|
|
312
|
-
inserted = _findChangedLinks.inserted,
|
|
313
|
-
updated = _findChangedLinks.updated;
|
|
303
|
+
var _findChanged = findChanged(tr, state),
|
|
304
|
+
removed = _findChanged.removed,
|
|
305
|
+
inserted = _findChanged.inserted,
|
|
306
|
+
updated = _findChanged.updated;
|
|
314
307
|
var MAX_LINK_EVENTS = 50;
|
|
315
308
|
if ([removed, inserted, updated].some(function (arr) {
|
|
316
309
|
return arr.length > MAX_LINK_EVENTS;
|
|
@@ -320,41 +313,57 @@ function eventsFromTransaction(tr, state) {
|
|
|
320
313
|
for (var i = 0; i < updated.length; i++) {
|
|
321
314
|
var _update$previous$disp;
|
|
322
315
|
var update = updated[i];
|
|
323
|
-
var
|
|
324
|
-
var
|
|
325
|
-
|
|
326
|
-
var
|
|
327
|
-
|
|
316
|
+
var _inserted = update.inserted;
|
|
317
|
+
var node = _inserted.node,
|
|
318
|
+
nodeContext = _inserted.nodeContext;
|
|
319
|
+
var subject = (0, _utils2.getNodeSubject)(node);
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Not great, wish we had the previous node but we never stored it
|
|
323
|
+
*/
|
|
324
|
+
var previousDisplay = 'removed' in update ? (0, _utils2.appearanceForLink)(update.removed.node) : (_update$previous$disp = update.previous.display) !== null && _update$previous$disp !== void 0 ? _update$previous$disp : 'unknown';
|
|
325
|
+
if (subject) {
|
|
328
326
|
events.push({
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
327
|
+
event: _types.EVENT.UPDATED,
|
|
328
|
+
subject: subject,
|
|
329
|
+
data: {
|
|
330
|
+
node: node,
|
|
331
|
+
nodeContext: nodeContext,
|
|
332
|
+
action: action,
|
|
333
|
+
inputMethod: inputMethod,
|
|
334
|
+
sourceEvent: sourceEvent,
|
|
335
|
+
isUndo: isUndo,
|
|
336
|
+
isRedo: isRedo,
|
|
337
|
+
previousDisplay: previousDisplay
|
|
338
|
+
}
|
|
336
339
|
});
|
|
337
340
|
}
|
|
338
341
|
}
|
|
339
|
-
var pushEvents = function pushEvents(
|
|
340
|
-
for (var _i2 = 0; _i2 <
|
|
341
|
-
var
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
342
|
+
var pushEvents = function pushEvents(entities, event) {
|
|
343
|
+
for (var _i2 = 0; _i2 < entities.length; _i2++) {
|
|
344
|
+
var _entities$_i = entities[_i2],
|
|
345
|
+
_node2 = _entities$_i.node,
|
|
346
|
+
_nodeContext = _entities$_i.nodeContext;
|
|
347
|
+
var _subject = (0, _utils2.getNodeSubject)(_node2);
|
|
348
|
+
if (_subject) {
|
|
345
349
|
events.push({
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
nodeContext:
|
|
351
|
-
|
|
350
|
+
event: event,
|
|
351
|
+
subject: _subject,
|
|
352
|
+
data: {
|
|
353
|
+
node: _node2,
|
|
354
|
+
nodeContext: _nodeContext,
|
|
355
|
+
action: action,
|
|
356
|
+
inputMethod: inputMethod,
|
|
357
|
+
sourceEvent: sourceEvent,
|
|
358
|
+
isUndo: isUndo,
|
|
359
|
+
isRedo: isRedo
|
|
360
|
+
}
|
|
352
361
|
});
|
|
353
362
|
}
|
|
354
363
|
}
|
|
355
364
|
};
|
|
356
|
-
pushEvents(removed,
|
|
357
|
-
pushEvents(inserted,
|
|
365
|
+
pushEvents(removed, _types.EVENT.DELETED);
|
|
366
|
+
pushEvents(inserted, _types.EVENT.CREATED);
|
|
358
367
|
return events;
|
|
359
368
|
} catch (err) {
|
|
360
369
|
return events;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "createEventsQueue", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function get() {
|
|
9
|
-
return
|
|
9
|
+
return _createEventsQueue.createEventsQueue;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "eventsFromTransaction", {
|
|
@@ -15,5 +15,5 @@ Object.defineProperty(exports, "eventsFromTransaction", {
|
|
|
15
15
|
return _eventsFromTr.eventsFromTransaction;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
var
|
|
18
|
+
var _createEventsQueue = require("./create-events-queue");
|
|
19
19
|
var _eventsFromTr = require("./events-from-tr");
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EVENT_SUBJECT = exports.EVENT = void 0;
|
|
7
|
+
var EVENT = /*#__PURE__*/function (EVENT) {
|
|
8
|
+
EVENT["CREATED"] = "created";
|
|
9
|
+
EVENT["UPDATED"] = "updated";
|
|
10
|
+
EVENT["DELETED"] = "deleted";
|
|
11
|
+
return EVENT;
|
|
12
|
+
}({});
|
|
13
|
+
exports.EVENT = EVENT;
|
|
14
|
+
var EVENT_SUBJECT = /*#__PURE__*/function (EVENT_SUBJECT) {
|
|
15
|
+
EVENT_SUBJECT["LINK"] = "link";
|
|
16
|
+
EVENT_SUBJECT["DATASOURCE"] = "datasource";
|
|
17
|
+
return EVENT_SUBJECT;
|
|
18
|
+
}({});
|
|
19
|
+
/**
|
|
20
|
+
* These are not GASv3 events
|
|
21
|
+
* But they share a similar in shape so that GASv3
|
|
22
|
+
* events can be derived from them / think of them in the same way
|
|
23
|
+
*/
|
|
24
|
+
exports.EVENT_SUBJECT = EVENT_SUBJECT;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.appearanceForLink = appearanceForLink;
|
|
7
|
+
exports.getNodeContext = exports.findInNodeRange = exports.findAtPositions = exports.areSameNodes = void 0;
|
|
8
|
+
exports.getNodeSubject = getNodeSubject;
|
|
9
|
+
exports.getUrl = getUrl;
|
|
10
|
+
exports.isDatasourceNode = isDatasourceNode;
|
|
11
|
+
exports.isLinkNode = void 0;
|
|
12
|
+
var _utils = require("../utils");
|
|
13
|
+
var _types = require("./types");
|
|
14
|
+
function isDatasourceNode(node) {
|
|
15
|
+
return 'datasource' in node.attrs && !!node.attrs.datasource;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Determine if a node is considered to be a link
|
|
20
|
+
*/
|
|
21
|
+
var isLinkNode = function isLinkNode(node) {
|
|
22
|
+
if (isDatasourceNode(node)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (!!(0, _utils.appearanceForNodeType)(node.type)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return hasLinkMark(node);
|
|
29
|
+
};
|
|
30
|
+
exports.isLinkNode = isLinkNode;
|
|
31
|
+
function getNodeSubject(node) {
|
|
32
|
+
if (isDatasourceNode(node)) {
|
|
33
|
+
return _types.EVENT_SUBJECT.DATASOURCE;
|
|
34
|
+
}
|
|
35
|
+
if (isLinkNode(node)) {
|
|
36
|
+
return _types.EVENT_SUBJECT.LINK;
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Analytics appearance for link object
|
|
43
|
+
*/
|
|
44
|
+
function appearanceForLink(node) {
|
|
45
|
+
var appearance = (0, _utils.appearanceForNodeType)(node.type);
|
|
46
|
+
if (appearance) {
|
|
47
|
+
return appearance;
|
|
48
|
+
}
|
|
49
|
+
return 'url';
|
|
50
|
+
}
|
|
51
|
+
var getLinkMark = function getLinkMark(node) {
|
|
52
|
+
if (node.marks) {
|
|
53
|
+
for (var i = 0; i < node.marks.length; i++) {
|
|
54
|
+
var mark = node.marks[i];
|
|
55
|
+
if (mark.type.name === 'link') {
|
|
56
|
+
return mark;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
var hasLinkMark = function hasLinkMark(node) {
|
|
62
|
+
return !!getLinkMark(node);
|
|
63
|
+
};
|
|
64
|
+
function getUrl(node) {
|
|
65
|
+
var _node$attrs$url, _node$attrs, _getLinkMark, _getLinkMark$attrs;
|
|
66
|
+
return (_node$attrs$url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url) !== null && _node$attrs$url !== void 0 ? _node$attrs$url : (_getLinkMark = getLinkMark(node)) === null || _getLinkMark === void 0 ? void 0 : (_getLinkMark$attrs = _getLinkMark.attrs) === null || _getLinkMark$attrs === void 0 ? void 0 : _getLinkMark$attrs.href;
|
|
67
|
+
}
|
|
68
|
+
var getNodeContext = function getNodeContext(doc, pos) {
|
|
69
|
+
var $pos = doc.resolve(pos);
|
|
70
|
+
var maxDepth = 3;
|
|
71
|
+
for (var i = 0; i <= maxDepth; i++) {
|
|
72
|
+
var _node = $pos.node($pos.depth - i);
|
|
73
|
+
if (_node && _node.type.name !== 'paragraph') {
|
|
74
|
+
return _node.type.name;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return 'unknown';
|
|
78
|
+
};
|
|
79
|
+
exports.getNodeContext = getNodeContext;
|
|
80
|
+
var findAtPositions = function findAtPositions(tr, positions) {
|
|
81
|
+
var entities = [];
|
|
82
|
+
for (var i = 0; i < positions.length; i++) {
|
|
83
|
+
var pos = positions[i];
|
|
84
|
+
var _node2 = tr.doc.nodeAt(pos);
|
|
85
|
+
if (!_node2) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
var nodeContext = getNodeContext(tr.doc, pos);
|
|
89
|
+
entities.push({
|
|
90
|
+
pos: pos,
|
|
91
|
+
node: _node2,
|
|
92
|
+
nodeContext: nodeContext
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return entities;
|
|
96
|
+
};
|
|
97
|
+
exports.findAtPositions = findAtPositions;
|
|
98
|
+
var findInNodeRange = function findInNodeRange(doc, from, to, predicate) {
|
|
99
|
+
var entities = [];
|
|
100
|
+
doc.nodesBetween(from, to, function (node, pos) {
|
|
101
|
+
if (predicate(node)) {
|
|
102
|
+
var entirelyInRange = pos >= from && pos + node.nodeSize <= to;
|
|
103
|
+
if (entirelyInRange) {
|
|
104
|
+
var nodeContext = getNodeContext(doc, pos);
|
|
105
|
+
entities.push({
|
|
106
|
+
pos: pos,
|
|
107
|
+
node: node,
|
|
108
|
+
nodeContext: nodeContext
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return entities;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Returns whether or not two sets of links appear to likely be the same set of links
|
|
118
|
+
* That they are in the same order and that both their hrefs and appearances match
|
|
119
|
+
*/
|
|
120
|
+
exports.findInNodeRange = findInNodeRange;
|
|
121
|
+
var areSameNodes = function areSameNodes(setA, setB) {
|
|
122
|
+
if (setA.length !== setB.length) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
for (var i = 0; i < setA.length; i++) {
|
|
126
|
+
var a = setA[i];
|
|
127
|
+
var b = setB[i];
|
|
128
|
+
if (getUrl(a.node) !== getUrl(b.node) || appearanceForLink(a.node) !== appearanceForLink(b.node)) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
};
|
|
134
|
+
exports.areSameNodes = areSameNodes;
|
|
@@ -122,12 +122,6 @@ var Datasource = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
122
122
|
var _this2;
|
|
123
123
|
(0, _classCallCheck2.default)(this, Datasource);
|
|
124
124
|
_this2 = _super2.call(this, props.node, props.view, props.getPos, props.portalProviderAPI, props.eventDispatcher, props, undefined, true, undefined, props.hasIntlContext);
|
|
125
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "calcTableWidth", function (layout, containerWidth) {
|
|
126
|
-
if (layout === 'center') {
|
|
127
|
-
return 'inherit';
|
|
128
|
-
}
|
|
129
|
-
return (0, _utils.calcBreakoutWidthPx)(layout, containerWidth);
|
|
130
|
-
});
|
|
131
125
|
var sharedState = props === null || props === void 0 ? void 0 : (_props$pluginInjectio = props.pluginInjectionApi) === null || _props$pluginInjectio === void 0 ? void 0 : (_props$pluginInjectio2 = _props$pluginInjectio.dependencies) === null || _props$pluginInjectio2 === void 0 ? void 0 : (_props$pluginInjectio3 = _props$pluginInjectio2.width) === null || _props$pluginInjectio3 === void 0 ? void 0 : _props$pluginInjectio3.sharedState;
|
|
132
126
|
_this2.tableWidth = sharedState === null || sharedState === void 0 ? void 0 : (_sharedState$currentS = sharedState.currentState()) === null || _sharedState$currentS === void 0 ? void 0 : _sharedState$currentS.width;
|
|
133
127
|
sharedState === null || sharedState === void 0 ? void 0 : sharedState.onChange(function (_ref2) {
|
|
@@ -150,11 +144,10 @@ var Datasource = /*#__PURE__*/function (_ReactNodeView) {
|
|
|
150
144
|
key: "render",
|
|
151
145
|
value: function render() {
|
|
152
146
|
var attrs = this.node.attrs;
|
|
153
|
-
var calculatedWidth = this.calcTableWidth(attrs.layout, this.tableWidth);
|
|
154
147
|
return (0, _react2.jsx)("div", {
|
|
155
148
|
className: _styles.DATASOURCE_INNER_CONTAINER_CLASSNAME,
|
|
156
149
|
style: {
|
|
157
|
-
minWidth:
|
|
150
|
+
minWidth: (0, _utils.calcBreakoutWidth)(attrs.layout, this.tableWidth)
|
|
158
151
|
}
|
|
159
152
|
}, (0, _react2.jsx)(DatasourceComponent, {
|
|
160
153
|
node: this.node,
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -11,6 +11,7 @@ var _adfSchema = require("@atlaskit/adf-schema");
|
|
|
11
11
|
var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
12
12
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
13
13
|
var _linkDatasource = require("@atlaskit/link-datasource");
|
|
14
|
+
var _createEventsQueue = require("./analytics/create-events-queue");
|
|
14
15
|
var _messages = require("./messages");
|
|
15
16
|
var _actions = require("./pm-plugins/actions");
|
|
16
17
|
var _doc = require("./pm-plugins/doc");
|
|
@@ -20,14 +21,15 @@ var _mountHyperlink = require("./pm-plugins/mountHyperlink");
|
|
|
20
21
|
var _pluginKey = require("./pm-plugins/plugin-key");
|
|
21
22
|
var _toolbar = require("./toolbar");
|
|
22
23
|
var _ModalWithState = _interopRequireDefault(require("./ui/DatasourceModal/ModalWithState"));
|
|
24
|
+
var _EditorLinkingPlatformAnalytics = require("./ui/EditorLinkingPlatformAnalytics");
|
|
23
25
|
var _EditorSmartCardEvents = require("./ui/EditorSmartCardEvents");
|
|
24
|
-
var _EditorSmartCardEventsNext = require("./ui/EditorSmartCardEventsNext");
|
|
25
26
|
var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
|
|
26
27
|
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; }
|
|
27
28
|
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; }
|
|
28
29
|
var cardPlugin = function cardPlugin(options, api) {
|
|
29
30
|
var _api$dependencies, _api$dependencies$fea;
|
|
30
31
|
var featureFlags = (api === null || api === void 0 ? void 0 : (_api$dependencies = api.dependencies) === null || _api$dependencies === void 0 ? void 0 : (_api$dependencies$fea = _api$dependencies.featureFlags) === null || _api$dependencies$fea === void 0 ? void 0 : _api$dependencies$fea.sharedState.currentState()) || {};
|
|
32
|
+
var cardPluginEvents = featureFlags !== null && featureFlags !== void 0 && featureFlags.lpAnalyticsEventsNext ? (0, _createEventsQueue.createEventsQueue)() : undefined;
|
|
31
33
|
return {
|
|
32
34
|
name: 'card',
|
|
33
35
|
getSharedState: function getSharedState(editorState) {
|
|
@@ -68,7 +70,8 @@ var cardPlugin = function cardPlugin(options, api) {
|
|
|
68
70
|
useAlternativePreloader: useAlternativePreloader,
|
|
69
71
|
allowWrapping: allowWrapping,
|
|
70
72
|
allowAlignment: allowAlignment,
|
|
71
|
-
allowDatasource: allowDatasource
|
|
73
|
+
allowDatasource: allowDatasource,
|
|
74
|
+
cardPluginEvents: cardPluginEvents
|
|
72
75
|
}), api)
|
|
73
76
|
}, {
|
|
74
77
|
name: 'cardHyperlink',
|
|
@@ -90,10 +93,10 @@ var cardPlugin = function cardPlugin(options, api) {
|
|
|
90
93
|
popupsMountPoint = _ref2.popupsMountPoint,
|
|
91
94
|
popupsScrollableElement = _ref2.popupsScrollableElement,
|
|
92
95
|
popupsBoundariesElement = _ref2.popupsBoundariesElement;
|
|
93
|
-
var lpAnalyticsEventsNext = featureFlags.lpAnalyticsEventsNext;
|
|
94
96
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EditorSmartCardEvents.EditorSmartCardEvents, {
|
|
95
97
|
editorView: editorView
|
|
96
|
-
}),
|
|
98
|
+
}), cardPluginEvents && /*#__PURE__*/_react.default.createElement(_EditorLinkingPlatformAnalytics.EditorLinkingPlatformAnalytics, {
|
|
99
|
+
cardPluginEvents: cardPluginEvents,
|
|
97
100
|
editorView: editorView
|
|
98
101
|
}), /*#__PURE__*/_react.default.createElement(_LayoutButton.default, {
|
|
99
102
|
api: api,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.showLinkToolbar = exports.showDatasourceModal = exports.setProvider = exports.setDatasourceTableRef = exports.setCardLayoutAndDatasourceTableRef = exports.setCardLayout = exports.resolveCard = exports.
|
|
6
|
+
exports.showLinkToolbar = exports.showDatasourceModal = exports.setProvider = exports.setDatasourceTableRef = exports.setCardLayoutAndDatasourceTableRef = exports.setCardLayout = exports.resolveCard = exports.registerSmartCardEvents = exports.registerCard = exports.queueCards = exports.hideLinkToolbar = exports.hideDatasourceModal = exports.cardAction = void 0;
|
|
7
7
|
var _pluginKey = require("./plugin-key");
|
|
8
8
|
var cardAction = function cardAction(tr, action) {
|
|
9
9
|
return tr.setMeta(_pluginKey.pluginKey, action);
|
|
@@ -45,15 +45,6 @@ var registerSmartCardEvents = function registerSmartCardEvents(smartLinkEvents)
|
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
exports.registerSmartCardEvents = registerSmartCardEvents;
|
|
48
|
-
var registerSmartCardEventsNext = function registerSmartCardEventsNext(smartLinkEvents) {
|
|
49
|
-
return function (tr) {
|
|
50
|
-
return cardAction(tr, {
|
|
51
|
-
type: 'REGISTER_EVENTS_NEXT',
|
|
52
|
-
smartLinkEvents: smartLinkEvents
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
exports.registerSmartCardEventsNext = registerSmartCardEventsNext;
|
|
57
48
|
var setProvider = function setProvider(cardProvider) {
|
|
58
49
|
return function (tr) {
|
|
59
50
|
return cardAction(tr, {
|
|
@@ -453,6 +453,9 @@ var updateExistingDatasource = function updateExistingDatasource(state, node, ne
|
|
|
453
453
|
var isUrlChange = ((_newAdf$attrs = newAdf.attrs) === null || _newAdf$attrs === void 0 ? void 0 : _newAdf$attrs.url) !== ((_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url);
|
|
454
454
|
if (isColumnChange || isUrlChange) {
|
|
455
455
|
tr.setNodeMarkup(from, schemaNodes.blockCard, _objectSpread(_objectSpread({}, node.attrs), newAdf.attrs));
|
|
456
|
+
(0, _card.addLinkMetadata)(state.selection, tr, {
|
|
457
|
+
action: _analytics.ACTION.UPDATED
|
|
458
|
+
});
|
|
456
459
|
}
|
|
457
460
|
} else if (newAdf.type === 'inlineCard') {
|
|
458
461
|
// datasource to inline
|