@atlaskit/editor-plugin-show-diff 20.0.1 → 20.0.2
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 +17 -0
- package/dist/cjs/pm-plugins/calculateDiff/calculateDiffDecorations.js +9 -10
- package/dist/cjs/pm-plugins/calculateDiff/groupDeletedColumnChanges.js +92 -26
- package/dist/cjs/pm-plugins/calculateDiff/simplifyChangesWithAttribution.js +46 -22
- package/dist/cjs/pm-plugins/decorations/colorSchemes/attributions.js +4 -5
- package/dist/cjs/pm-plugins/decorations/createChangedRowDecorationWidgets.js +4 -1
- package/dist/cjs/pm-plugins/decorations/createNodeChangedDecorationWidget.js +1 -1
- package/dist/cjs/pm-plugins/decorations/extractContributorTags.js +3 -1
- package/dist/cjs/pm-plugins/getScrollableDecorations.js +1 -8
- package/dist/cjs/pm-plugins/main.js +5 -2
- package/dist/es2019/pm-plugins/calculateDiff/calculateDiffDecorations.js +9 -10
- package/dist/es2019/pm-plugins/calculateDiff/groupDeletedColumnChanges.js +85 -14
- package/dist/es2019/pm-plugins/calculateDiff/simplifyChangesWithAttribution.js +42 -22
- package/dist/es2019/pm-plugins/decorations/colorSchemes/attributions.js +4 -5
- package/dist/es2019/pm-plugins/decorations/createChangedRowDecorationWidgets.js +4 -1
- package/dist/es2019/pm-plugins/decorations/createNodeChangedDecorationWidget.js +1 -1
- package/dist/es2019/pm-plugins/decorations/extractContributorTags.js +1 -1
- package/dist/es2019/pm-plugins/getScrollableDecorations.js +1 -6
- package/dist/es2019/pm-plugins/main.js +5 -1
- package/dist/esm/pm-plugins/calculateDiff/calculateDiffDecorations.js +9 -10
- package/dist/esm/pm-plugins/calculateDiff/groupDeletedColumnChanges.js +92 -26
- package/dist/esm/pm-plugins/calculateDiff/simplifyChangesWithAttribution.js +46 -22
- package/dist/esm/pm-plugins/decorations/colorSchemes/attributions.js +4 -5
- package/dist/esm/pm-plugins/decorations/createChangedRowDecorationWidgets.js +4 -1
- package/dist/esm/pm-plugins/decorations/createNodeChangedDecorationWidget.js +1 -1
- package/dist/esm/pm-plugins/decorations/extractContributorTags.js +3 -1
- package/dist/esm/pm-plugins/getScrollableDecorations.js +1 -8
- package/dist/esm/pm-plugins/main.js +5 -2
- package/dist/types/pm-plugins/calculateDiff/calculateDiffDecorations.d.ts +6 -4
- package/dist/types/pm-plugins/calculateDiff/simplifyChangesWithAttribution.d.ts +2 -2
- package/dist/types/pm-plugins/decorations/colorSchemes/attributions.d.ts +2 -3
- package/dist/types/pm-plugins/decorations/createNodeChangedDecorationWidget.d.ts +1 -0
- package/dist/types/pm-plugins/decorations/extractContributorTags.d.ts +1 -0
- package/dist/types/pm-plugins/main.d.ts +1 -0
- package/package.json +2 -2
|
@@ -32,6 +32,11 @@ var getAttributionIdentity = function getAttributionIdentity(change) {
|
|
|
32
32
|
mergeable: true
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
|
+
var hasContributor = function hasContributor(change) {
|
|
36
|
+
return [].concat(_toConsumableArray(change.deleted), _toConsumableArray(change.inserted)).some(function (span) {
|
|
37
|
+
return getAttributionKey(span.data) !== undefined;
|
|
38
|
+
});
|
|
39
|
+
};
|
|
35
40
|
var byNewDocRange = function byNewDocRange(left, right) {
|
|
36
41
|
return left.fromB - right.fromB || left.toB - right.toB;
|
|
37
42
|
};
|
|
@@ -89,12 +94,28 @@ var blockNodeRanges = function blockNodeRanges(doc, change, ownsPosition) {
|
|
|
89
94
|
*/
|
|
90
95
|
var splitMixedIdentityChanges = function splitMixedIdentityChanges(changes, doc) {
|
|
91
96
|
return changes.flatMap(function (change) {
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
var _change$inserted$;
|
|
98
|
+
// A replacement can carry an anonymous deletion and an authored insertion. The deleted side
|
|
99
|
+
// needs its own zero-width change or the insertion's actor claims the deletion too.
|
|
100
|
+
var deletedKeys = new Set(change.deleted.map(function (span) {
|
|
101
|
+
return getAttributionKey(span.data);
|
|
102
|
+
}));
|
|
103
|
+
var firstInsertedKey = getAttributionKey((_change$inserted$ = change.inserted[0]) === null || _change$inserted$ === void 0 ? void 0 : _change$inserted$.data);
|
|
104
|
+
var detachDeleted = change.deleted.length > 0 && change.inserted.length > 0 && deletedKeys.size === 1 && !deletedKeys.has(firstInsertedKey) && (deletedKeys.has(undefined) || firstInsertedKey === undefined);
|
|
105
|
+
var deletedChange = detachDeleted ? [_objectSpread(_objectSpread({}, change), {}, {
|
|
106
|
+
toB: change.fromB,
|
|
107
|
+
inserted: []
|
|
108
|
+
})] : [];
|
|
109
|
+
var contentChange = detachDeleted ? _objectSpread(_objectSpread({}, change), {}, {
|
|
110
|
+
fromA: change.toA,
|
|
111
|
+
deleted: []
|
|
112
|
+
}) : change;
|
|
113
|
+
if (getAttributionIdentity(contentChange).mergeable) {
|
|
114
|
+
return [].concat(deletedChange, [contentChange]);
|
|
94
115
|
}
|
|
95
116
|
var runs = [];
|
|
96
|
-
var offset =
|
|
97
|
-
var _iterator = _createForOfIteratorHelper(
|
|
117
|
+
var offset = contentChange.fromB;
|
|
118
|
+
var _iterator = _createForOfIteratorHelper(contentChange.inserted),
|
|
98
119
|
_step;
|
|
99
120
|
try {
|
|
100
121
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -121,32 +142,32 @@ var splitMixedIdentityChanges = function splitMixedIdentityChanges(changes, doc)
|
|
|
121
142
|
} finally {
|
|
122
143
|
_iterator.f();
|
|
123
144
|
}
|
|
124
|
-
if (runs.length < 2 || offset !==
|
|
125
|
-
return [
|
|
145
|
+
if (runs.length < 2 || offset !== contentChange.toB) {
|
|
146
|
+
return [].concat(deletedChange, [contentChange]);
|
|
126
147
|
}
|
|
127
|
-
return runs.map(function (run, index) {
|
|
148
|
+
return [].concat(deletedChange, _toConsumableArray(runs.map(function (run, index) {
|
|
128
149
|
var owned = blockNodeRanges(doc, {
|
|
129
|
-
from:
|
|
130
|
-
to:
|
|
150
|
+
from: contentChange.fromB,
|
|
151
|
+
to: contentChange.toB
|
|
131
152
|
}, function (pos) {
|
|
132
153
|
return pos >= run.from && pos < run.to;
|
|
133
154
|
});
|
|
134
|
-
return _objectSpread(_objectSpread({},
|
|
135
|
-
fromA: index === 0 ?
|
|
155
|
+
return _objectSpread(_objectSpread({}, contentChange), {}, {
|
|
156
|
+
fromA: index === 0 ? contentChange.fromA : contentChange.toA,
|
|
136
157
|
fromB: run.from,
|
|
137
158
|
toB: run.to,
|
|
138
|
-
deleted: index === 0 ?
|
|
159
|
+
deleted: index === 0 ? contentChange.deleted : [],
|
|
139
160
|
inserted: run.spans
|
|
140
161
|
}, owned ? {
|
|
141
162
|
blockNodeRangesB: owned
|
|
142
163
|
} : {});
|
|
143
|
-
});
|
|
164
|
+
})));
|
|
144
165
|
});
|
|
145
166
|
};
|
|
146
167
|
|
|
147
168
|
/**
|
|
148
|
-
* Subtracts every
|
|
149
|
-
*
|
|
169
|
+
* Subtracts every differently attributed contained change from a change's range, including when
|
|
170
|
+
* one has no contributor. Applies when the changes arrive separately rather than as spans of one —
|
|
150
171
|
* the `step` diff type. A contained change by the same author, and one that only partially
|
|
151
172
|
* overlaps, are left for the collapse below.
|
|
152
173
|
*
|
|
@@ -155,10 +176,11 @@ var splitMixedIdentityChanges = function splitMixedIdentityChanges(changes, doc)
|
|
|
155
176
|
var splitContainedChanges = function splitContainedChanges(changes, doc) {
|
|
156
177
|
return changes.flatMap(function (change) {
|
|
157
178
|
var _getAttributionIdenti = getAttributionIdentity(change),
|
|
158
|
-
key = _getAttributionIdenti.key
|
|
179
|
+
key = _getAttributionIdenti.key,
|
|
180
|
+
mergeable = _getAttributionIdenti.mergeable;
|
|
159
181
|
var inner = mergeRanges(changes.filter(function (other) {
|
|
160
|
-
var
|
|
161
|
-
return other !== change &&
|
|
182
|
+
var otherIdentity = getAttributionIdentity(other);
|
|
183
|
+
return other !== change && mergeable && otherIdentity.mergeable && otherIdentity.key !== key && isContained(change, other);
|
|
162
184
|
}).map(function (_ref) {
|
|
163
185
|
var fromB = _ref.fromB,
|
|
164
186
|
toB = _ref.toB;
|
|
@@ -236,7 +258,7 @@ var mergeBlockNodeRanges = function mergeBlockNodeRanges(left, right) {
|
|
|
236
258
|
return left.blockNodeRangesB && right.blockNodeRangesB ? [].concat(_toConsumableArray(left.blockNodeRangesB), _toConsumableArray(right.blockNodeRangesB)) : undefined;
|
|
237
259
|
};
|
|
238
260
|
|
|
239
|
-
/** Unions
|
|
261
|
+
/** Unions overlapping changes, except when only one side names a contributor. */
|
|
240
262
|
var collapse = function collapse(changes) {
|
|
241
263
|
// A zero-length new-document range paints no inline decoration, so it is kept aside rather than
|
|
242
264
|
// folded into a neighbouring insertion.
|
|
@@ -252,7 +274,9 @@ var collapse = function collapse(changes) {
|
|
|
252
274
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
253
275
|
var change = _step3.value;
|
|
254
276
|
var current = collapsed[collapsed.length - 1];
|
|
255
|
-
|
|
277
|
+
var currentHasContributor = current && hasContributor(current);
|
|
278
|
+
var changeHasContributor = hasContributor(change);
|
|
279
|
+
if (current && change.fromB < current.toB && currentHasContributor === changeHasContributor) {
|
|
256
280
|
var blockNodeRangesB = mergeBlockNodeRanges(current, change);
|
|
257
281
|
collapsed[collapsed.length - 1] = _objectSpread({
|
|
258
282
|
fromA: Math.min(current.fromA, change.fromA),
|
|
@@ -282,8 +306,8 @@ var collapse = function collapse(changes) {
|
|
|
282
306
|
* characters — which stacks two inline decorations and renders one contributor tag per copy.
|
|
283
307
|
*
|
|
284
308
|
* Merging keeps every span from both sides, so the latest-writer rule still decides whose tag is
|
|
285
|
-
* shown
|
|
286
|
-
*
|
|
309
|
+
* shown among attributed edits. An unattributed change never merges with an attributed one.
|
|
310
|
+
* Ranges that merely touch are left alone.
|
|
287
311
|
*
|
|
288
312
|
* Contributors are separated first, by `splitMixedIdentityChanges` and `splitContainedChanges`.
|
|
289
313
|
* Both leave ranges that only touch, so they survive the collapse.
|
|
@@ -238,13 +238,12 @@ var getAttributionKeyForChanges = function getAttributionKeyForChanges(changes)
|
|
|
238
238
|
};
|
|
239
239
|
|
|
240
240
|
/**
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
* back to the latest overlapping attributed step.
|
|
241
|
+
* Preserve overlap attribution outside Confluence version history. Within version history, a
|
|
242
|
+
* recovery step's keyless spans must not inherit an overlapping NCS step's actor.
|
|
244
243
|
*/
|
|
245
244
|
export var getAttributionKeyForChange = function getAttributionKeyForChange(change, attributedChanges) {
|
|
246
|
-
var
|
|
247
|
-
return
|
|
245
|
+
var directKey = getAttributionKeyForChanges([change]);
|
|
246
|
+
return directKey !== null && directKey !== void 0 ? directKey : fg('confluence_ncs_step_diffing_version_history') ? undefined : getAttributionKeyForChanges(attributedChanges.filter(function (attributedChange) {
|
|
248
247
|
return changesOverlap(change, attributedChange);
|
|
249
248
|
}));
|
|
250
249
|
};
|
|
@@ -215,7 +215,7 @@ var createChangedRowDOM = function createChangedRowDOM(_ref3) {
|
|
|
215
215
|
return tr;
|
|
216
216
|
};
|
|
217
217
|
var supportsAnchorPositioning = function supportsAnchorPositioning() {
|
|
218
|
-
return typeof CSS !== 'undefined' && typeof CSS.supports === 'function' && CSS.supports('top', 'anchor(--a top)');
|
|
218
|
+
return typeof CSS !== 'undefined' && typeof CSS.supports === 'function' && CSS.supports('top', 'anchor(--a top)') && CSS.supports('position-anchor', '--a');
|
|
219
219
|
};
|
|
220
220
|
var createAnchoredRemovedLozengeWidget = function createAnchoredRemovedLozengeWidget(_ref4) {
|
|
221
221
|
var anchorName = _ref4.anchorName,
|
|
@@ -226,6 +226,9 @@ var createAnchoredRemovedLozengeWidget = function createAnchoredRemovedLozengeWi
|
|
|
226
226
|
var lozenge = createRemovedLozenge(intl, isActive, colorScheme, true);
|
|
227
227
|
var inset = lozenge.style.top;
|
|
228
228
|
lozenge.style.setProperty('position', 'fixed');
|
|
229
|
+
// Fixed labels only follow their default anchor on scroll, and escape scroll-container clipping.
|
|
230
|
+
lozenge.style.setProperty('position-anchor', "--".concat(anchorName));
|
|
231
|
+
lozenge.style.setProperty('position-visibility', 'anchors-visible');
|
|
229
232
|
lozenge.style.setProperty('top', "calc(anchor(--".concat(anchorName, " top) + ").concat(inset, ")"));
|
|
230
233
|
lozenge.style.setProperty('left', "calc(anchor(--".concat(anchorName, " right) - ").concat(inset, ")"));
|
|
231
234
|
lozenge.style.setProperty('right', 'auto');
|
|
@@ -141,7 +141,7 @@ export var createNodeChangedDecorationWidget = function createNodeChangedDecorat
|
|
|
141
141
|
// node renders beneath its replacement; otherwise anchor at the start (change.fromB).
|
|
142
142
|
var anchorPos = placeBelow ? change.toB : change.fromB;
|
|
143
143
|
var safeInsertPos = findSafeInsertPos(newDoc, anchorPos, slice);
|
|
144
|
-
var isActive = activeIndexPos && (fg('confluence_ncs_step_diffing_version_history') ? safeInsertPos >= activeIndexPos.from && safeInsertPos <= activeIndexPos.to : safeInsertPos === activeIndexPos.from && safeInsertPos === activeIndexPos.to);
|
|
144
|
+
var isActive = activeIndexPos && (fg('confluence_ncs_step_diffing_version_history') ? safeInsertPos >= activeIndexPos.from && safeInsertPos <= activeIndexPos.to && (!('attributionKey' in activeIndexPos) || activeIndexPos.attributionKey === attributionKey) : safeInsertPos === activeIndexPos.from && safeInsertPos === activeIndexPos.to);
|
|
145
145
|
if (deletedBlankLineCount > 0) {
|
|
146
146
|
// The blocks have no content to serialize, so the deletion is shown as one struck-through
|
|
147
147
|
// return glyph per line the author removed. A single widget, not one per line: the lines are
|
|
@@ -98,7 +98,9 @@ var owningStop = function owningStop(target, stops) {
|
|
|
98
98
|
* containment, and the leading change of what it covers.
|
|
99
99
|
*/
|
|
100
100
|
var resolveActiveTarget = function resolveActiveTarget(surviving, activeIndexPos) {
|
|
101
|
-
return containedBy(surviving, activeIndexPos)
|
|
101
|
+
return containedBy(surviving, activeIndexPos).find(function (target) {
|
|
102
|
+
return !fg('confluence_ncs_step_diffing_version_history') || !('attributionKey' in activeIndexPos) || target.decoration.spec.attributionKey === activeIndexPos.attributionKey;
|
|
103
|
+
});
|
|
102
104
|
};
|
|
103
105
|
|
|
104
106
|
/**
|
|
@@ -83,18 +83,13 @@ function groupTouchingDecorations(decorations, isInlineDecoration) {
|
|
|
83
83
|
return a.from === b.from ? a.to - b.to : a.from - b.from;
|
|
84
84
|
});
|
|
85
85
|
sortedDecorations.forEach(function (decoration) {
|
|
86
|
-
var _openGroups$find;
|
|
87
86
|
// A gap ends the run: nothing before it can be joined.
|
|
88
87
|
if (decoration.from > clusterTo) {
|
|
89
88
|
openGroups = [];
|
|
90
89
|
}
|
|
91
90
|
var contributor = contributorOf(decoration);
|
|
92
|
-
|
|
93
|
-
// decision item's own highlight must not split the stop from the tag on its list.
|
|
94
|
-
var openGroup = (_openGroups$find = openGroups.find(function (group) {
|
|
91
|
+
var openGroup = openGroups.find(function (group) {
|
|
95
92
|
return group.contributor === contributor;
|
|
96
|
-
})) !== null && _openGroups$find !== void 0 ? _openGroups$find : contributor === '' ? openGroups[0] : openGroups.find(function (group) {
|
|
97
|
-
return group.contributor === '';
|
|
98
93
|
});
|
|
99
94
|
if (openGroup === undefined) {
|
|
100
95
|
var group = {
|
|
@@ -106,8 +101,6 @@ function groupTouchingDecorations(decorations, isInlineDecoration) {
|
|
|
106
101
|
groups.push(group);
|
|
107
102
|
openGroups = [].concat(_toConsumableArray(openGroups), [group]);
|
|
108
103
|
} else {
|
|
109
|
-
// The first contributor to join claims the group, so the next one still starts its own.
|
|
110
|
-
openGroup.contributor = openGroup.contributor || contributor;
|
|
111
104
|
openGroup.decorations.push(decoration);
|
|
112
105
|
openGroup.to = Math.max(openGroup.to, decoration.to);
|
|
113
106
|
}
|
|
@@ -7,6 +7,7 @@ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
|
7
7
|
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
8
8
|
import { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform-override';
|
|
9
9
|
import { DecorationSet } from '@atlaskit/editor-prosemirror/view';
|
|
10
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
10
11
|
import { getActiveDiffAnnouncement } from '../ui/DiffNavigation/announceActiveDiff';
|
|
11
12
|
import { calculateDiffDecorations } from './calculateDiff/calculateDiffDecorations';
|
|
12
13
|
import { isDiffDecoration, isDiffDecorationSpec } from './decorations/decorationKeys';
|
|
@@ -170,10 +171,12 @@ export var createPlugin = function createPlugin(config, getIntl, api, onEditorVi
|
|
|
170
171
|
var activeDecoration = _decorations[nextIndex];
|
|
171
172
|
newPluginState = _objectSpread(_objectSpread({}, currentPluginState), {}, {
|
|
172
173
|
activeIndex: nextIndex,
|
|
173
|
-
activeIndexPos: activeDecoration ? {
|
|
174
|
+
activeIndexPos: activeDecoration ? _objectSpread({
|
|
174
175
|
from: activeDecoration.from,
|
|
175
176
|
to: activeDecoration.to
|
|
176
|
-
}
|
|
177
|
+
}, fg('confluence_ncs_step_diffing_version_history') ? {
|
|
178
|
+
attributionKey: isDiffDecoration(activeDecoration) ? activeDecoration.spec.attributionKey : undefined
|
|
179
|
+
} : {}) : undefined
|
|
177
180
|
});
|
|
178
181
|
// Recalculate decorations with the new active index
|
|
179
182
|
var _calculateDiffDecorat2 = calculateDiffDecorations({
|
|
@@ -14,6 +14,11 @@ type CalculatedDiffs = {
|
|
|
14
14
|
decorations: DecorationSet;
|
|
15
15
|
diffDescriptors: DiffDescriptor[];
|
|
16
16
|
};
|
|
17
|
+
type ActiveIndexPos = {
|
|
18
|
+
attributionKey?: string;
|
|
19
|
+
from: number;
|
|
20
|
+
to: number;
|
|
21
|
+
};
|
|
17
22
|
/**
|
|
18
23
|
* Whether deleted content for `change` renders after the new content instead of before it.
|
|
19
24
|
*
|
|
@@ -31,10 +36,7 @@ export declare const isDeletedContentPlacedBelow: ({ change, deletedDiffPlacemen
|
|
|
31
36
|
inlineDeletedDiffPlacement?: InlineDeletedDiffPlacement;
|
|
32
37
|
}) => boolean;
|
|
33
38
|
export declare const calculateDiffDecorations: MemoizedFn<({ state, pluginState, nodeViewSerializer, colorScheme, intl, activeIndexPos, api, hideDeletedDiffs, hideAddedDiffsUnderline, showIndicators, }: {
|
|
34
|
-
activeIndexPos?:
|
|
35
|
-
from: number;
|
|
36
|
-
to: number;
|
|
37
|
-
};
|
|
39
|
+
activeIndexPos?: ActiveIndexPos;
|
|
38
40
|
api: ExtractInjectionAPI<ShowDiffPlugin> | undefined;
|
|
39
41
|
colorScheme?: ColorScheme;
|
|
40
42
|
deletedDiffPlacement?: DeletedDiffPlacement;
|
|
@@ -18,8 +18,8 @@ export type AttributedChange = Change & {
|
|
|
18
18
|
* characters — which stacks two inline decorations and renders one contributor tag per copy.
|
|
19
19
|
*
|
|
20
20
|
* Merging keeps every span from both sides, so the latest-writer rule still decides whose tag is
|
|
21
|
-
* shown
|
|
22
|
-
*
|
|
21
|
+
* shown among attributed edits. An unattributed change never merges with an attributed one.
|
|
22
|
+
* Ranges that merely touch are left alone.
|
|
23
23
|
*
|
|
24
24
|
* Contributors are separated first, by `splitMixedIdentityChanges` and `splitContainedChanges`.
|
|
25
25
|
* Both leave ranges that only touch, so they survive the collapse.
|
|
@@ -26,9 +26,8 @@ export declare const isAttributionColoringEnabled: (stepAttributions: Array<Diff
|
|
|
26
26
|
export declare const isContributorTagsEnabled: (stepAttributions: Array<DiffStepAttribution | undefined> | undefined, contributors: ResolvedDiffContributors | undefined) => boolean;
|
|
27
27
|
export declare const createAttributionColorMap: (stepAttributions: Array<DiffStepAttribution | undefined>, contributors?: ResolvedDiffContributors) => Map<string, AdsAccentColor>;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* back to the latest overlapping attributed step.
|
|
29
|
+
* Preserve overlap attribution outside Confluence version history. Within version history, a
|
|
30
|
+
* recovery step's keyless spans must not inherit an overlapping NCS step's actor.
|
|
32
31
|
*/
|
|
33
32
|
export declare const getAttributionKeyForChange: (change: Change, attributedChanges: Change[]) => string | undefined;
|
|
34
33
|
export declare const getColorSchemeForChange: (change: Change, attributedChanges: Change[], attributionColors: Map<string, AdsAccentColor>, fallback: ColorScheme | undefined) => ColorScheme | undefined;
|
|
@@ -12,6 +12,7 @@ import { type ContributorTagMountContext } from './createContributorTagWidget';
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const createNodeChangedDecorationWidget: ({ attributionKey, change, doc, nodeViewSerializer, colorScheme, newDoc, intl, activeIndexPos, isInserted, leftAnchorId, showContributorTags, showIndicators, placeBelow, hideAddedDiffsUnderline, reveal, tagMountContext, deletedColumns, }: {
|
|
14
14
|
activeIndexPos?: {
|
|
15
|
+
attributionKey?: string;
|
|
15
16
|
from: number;
|
|
16
17
|
to: number;
|
|
17
18
|
};
|
|
@@ -14,6 +14,7 @@ import type { ResolvedDiffContributors } from './colorSchemes/attributions';
|
|
|
14
14
|
* leading one would ever be reachable. Absent, every decoration keeps its own tag.
|
|
15
15
|
*/
|
|
16
16
|
export declare const extractContributorTags: (decorations: DecorationSet, contributors: ResolvedDiffContributors | undefined, activeIndexPos?: {
|
|
17
|
+
attributionKey?: string;
|
|
17
18
|
from: number;
|
|
18
19
|
to: number;
|
|
19
20
|
}, stops?: ReadonlyArray<{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-show-diff",
|
|
3
|
-
"version": "20.0.
|
|
3
|
+
"version": "20.0.2",
|
|
4
4
|
"description": "ShowDiff plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@atlaskit/platform-feature-experiments": "^0.3.0",
|
|
40
40
|
"@atlaskit/platform-feature-flags": "^2.2.0",
|
|
41
41
|
"@atlaskit/primitives": "^22.5.0",
|
|
42
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
42
|
+
"@atlaskit/tmp-editor-statsig": "^211.0.0",
|
|
43
43
|
"@atlaskit/tokens": "^20.1.0",
|
|
44
44
|
"@babel/runtime": "^7.0.0",
|
|
45
45
|
"@compiled/react": "^1.0.2",
|