@atlaskit/editor-plugin-show-diff 5.0.4 → 5.0.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 +17 -0
- package/dist/cjs/pm-plugins/calculateDiffDecorations.js +66 -39
- package/dist/cjs/pm-plugins/{colorSchemes → decorations/colorSchemes}/standard.js +32 -30
- package/dist/cjs/pm-plugins/decorations/colorSchemes/traditional.js +75 -0
- package/dist/cjs/pm-plugins/decorations/createBlockChangedDecoration.js +75 -0
- package/dist/cjs/pm-plugins/{deletedRowsHandler.js → decorations/createChangedRowDecorationWidgets.js} +34 -61
- package/dist/cjs/pm-plugins/decorations/createInlineChangedDecoration.js +33 -0
- package/dist/cjs/pm-plugins/{decorations.js → decorations/createNodeChangedDecorationWidget.js} +27 -71
- package/dist/cjs/pm-plugins/{attributeDecorations.js → decorations/utils/getAttrChangeRanges.js} +1 -1
- package/dist/cjs/pm-plugins/{deletedBlocksHandler.js → decorations/utils/wrapBlockNodeView.js} +90 -70
- package/dist/es2019/pm-plugins/calculateDiffDecorations.js +41 -13
- package/dist/es2019/pm-plugins/{colorSchemes → decorations/colorSchemes}/standard.js +31 -29
- package/dist/es2019/pm-plugins/{colorSchemes → decorations/colorSchemes}/traditional.js +28 -29
- package/dist/es2019/pm-plugins/decorations/createBlockChangedDecoration.js +70 -0
- package/dist/es2019/pm-plugins/{deletedRowsHandler.js → decorations/createChangedRowDecorationWidgets.js} +30 -57
- package/dist/es2019/pm-plugins/decorations/createInlineChangedDecoration.js +28 -0
- package/dist/es2019/pm-plugins/{decorations.js → decorations/createNodeChangedDecorationWidget.js} +27 -71
- package/dist/es2019/pm-plugins/{attributeDecorations.js → decorations/utils/getAttrChangeRanges.js} +1 -1
- package/dist/es2019/pm-plugins/{deletedBlocksHandler.js → decorations/utils/wrapBlockNodeView.js} +89 -64
- package/dist/esm/pm-plugins/calculateDiffDecorations.js +62 -35
- package/dist/esm/pm-plugins/{colorSchemes → decorations/colorSchemes}/standard.js +31 -29
- package/dist/esm/pm-plugins/{colorSchemes → decorations/colorSchemes}/traditional.js +28 -29
- package/dist/esm/pm-plugins/decorations/createBlockChangedDecoration.js +69 -0
- package/dist/esm/pm-plugins/{deletedRowsHandler.js → decorations/createChangedRowDecorationWidgets.js} +32 -59
- package/dist/esm/pm-plugins/decorations/createInlineChangedDecoration.js +28 -0
- package/dist/esm/pm-plugins/{decorations.js → decorations/createNodeChangedDecorationWidget.js} +27 -71
- package/dist/esm/pm-plugins/{attributeDecorations.js → decorations/utils/getAttrChangeRanges.js} +1 -1
- package/dist/esm/pm-plugins/{deletedBlocksHandler.js → decorations/utils/wrapBlockNodeView.js} +84 -64
- package/dist/types/pm-plugins/NodeViewSerializer.d.ts +1 -1
- package/dist/types/pm-plugins/calculateDiffDecorations.d.ts +2 -1
- package/dist/types/pm-plugins/decorations/colorSchemes/standard.d.ts +17 -0
- package/dist/types/pm-plugins/decorations/colorSchemes/traditional.d.ts +13 -0
- package/dist/types/pm-plugins/decorations/createBlockChangedDecoration.d.ts +16 -0
- package/dist/types/pm-plugins/decorations/createChangedRowDecorationWidgets.d.ts +17 -0
- package/dist/types/pm-plugins/decorations/createInlineChangedDecoration.d.ts +16 -0
- package/dist/types/pm-plugins/decorations/createNodeChangedDecorationWidget.d.ts +15 -0
- package/dist/types/pm-plugins/decorations/utils/wrapBlockNodeView.d.ts +15 -0
- package/dist/types-ts4.5/pm-plugins/NodeViewSerializer.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/calculateDiffDecorations.d.ts +2 -1
- package/dist/types-ts4.5/pm-plugins/decorations/colorSchemes/standard.d.ts +17 -0
- package/dist/types-ts4.5/pm-plugins/decorations/colorSchemes/traditional.d.ts +13 -0
- package/dist/types-ts4.5/pm-plugins/decorations/createBlockChangedDecoration.d.ts +16 -0
- package/dist/types-ts4.5/pm-plugins/decorations/createChangedRowDecorationWidgets.d.ts +17 -0
- package/dist/types-ts4.5/pm-plugins/decorations/createInlineChangedDecoration.d.ts +16 -0
- package/dist/types-ts4.5/pm-plugins/decorations/createNodeChangedDecorationWidget.d.ts +15 -0
- package/dist/types-ts4.5/pm-plugins/decorations/utils/wrapBlockNodeView.d.ts +15 -0
- package/package.json +3 -3
- package/dist/cjs/pm-plugins/colorSchemes/traditional.js +0 -76
- package/dist/types/pm-plugins/colorSchemes/standard.d.ts +0 -8
- package/dist/types/pm-plugins/colorSchemes/traditional.d.ts +0 -5
- package/dist/types/pm-plugins/decorations.d.ts +0 -39
- package/dist/types/pm-plugins/deletedBlocksHandler.d.ts +0 -59
- package/dist/types/pm-plugins/deletedRowsHandler.d.ts +0 -30
- package/dist/types-ts4.5/pm-plugins/colorSchemes/standard.d.ts +0 -8
- package/dist/types-ts4.5/pm-plugins/colorSchemes/traditional.d.ts +0 -5
- package/dist/types-ts4.5/pm-plugins/decorations.d.ts +0 -39
- package/dist/types-ts4.5/pm-plugins/deletedBlocksHandler.d.ts +0 -59
- package/dist/types-ts4.5/pm-plugins/deletedRowsHandler.d.ts +0 -30
- /package/dist/cjs/pm-plugins/{findSafeInsertPos.js → decorations/utils/findSafeInsertPos.js} +0 -0
- /package/dist/cjs/pm-plugins/{markDecorations.js → decorations/utils/getMarkChangeRanges.js} +0 -0
- /package/dist/es2019/pm-plugins/{findSafeInsertPos.js → decorations/utils/findSafeInsertPos.js} +0 -0
- /package/dist/es2019/pm-plugins/{markDecorations.js → decorations/utils/getMarkChangeRanges.js} +0 -0
- /package/dist/esm/pm-plugins/{findSafeInsertPos.js → decorations/utils/findSafeInsertPos.js} +0 -0
- /package/dist/esm/pm-plugins/{markDecorations.js → decorations/utils/getMarkChangeRanges.js} +0 -0
- /package/dist/types/pm-plugins/{findSafeInsertPos.d.ts → decorations/utils/findSafeInsertPos.d.ts} +0 -0
- /package/dist/types/pm-plugins/{attributeDecorations.d.ts → decorations/utils/getAttrChangeRanges.d.ts} +0 -0
- /package/dist/types/pm-plugins/{markDecorations.d.ts → decorations/utils/getMarkChangeRanges.d.ts} +0 -0
- /package/dist/types-ts4.5/pm-plugins/{findSafeInsertPos.d.ts → decorations/utils/findSafeInsertPos.d.ts} +0 -0
- /package/dist/types-ts4.5/pm-plugins/{attributeDecorations.d.ts → decorations/utils/getAttrChangeRanges.d.ts} +0 -0
- /package/dist/types-ts4.5/pm-plugins/{markDecorations.d.ts → decorations/utils/getMarkChangeRanges.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-show-diff
|
|
2
2
|
|
|
3
|
+
## 5.0.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`2e27b70a136ed`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2e27b70a136ed) -
|
|
8
|
+
EDITOR-5632: Further refactors to block / row handling - mainly renaming + param change to object
|
|
9
|
+
param to make it more extensible for future work.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 5.0.5
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [`8865b5e8a708a`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8865b5e8a708a) -
|
|
17
|
+
EDITOR-5632: Refactor diff plugin to make functions more generic.
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
|
|
3
20
|
## 5.0.4
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -13,25 +13,34 @@ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
|
13
13
|
var _prosemirrorChangeset = require("prosemirror-changeset");
|
|
14
14
|
var _document = require("@atlaskit/editor-common/utils/document");
|
|
15
15
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
16
|
+
var _createBlockChangedDecoration = require("./decorations/createBlockChangedDecoration");
|
|
17
|
+
var _createInlineChangedDecoration = require("./decorations/createInlineChangedDecoration");
|
|
18
|
+
var _createNodeChangedDecorationWidget = require("./decorations/createNodeChangedDecorationWidget");
|
|
19
|
+
var _getAttrChangeRanges = require("./decorations/utils/getAttrChangeRanges");
|
|
20
|
+
var _getMarkChangeRanges = require("./decorations/utils/getMarkChangeRanges");
|
|
19
21
|
var _simplifyChanges = require("./simplifyChanges");
|
|
20
22
|
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; } } }; }
|
|
21
23
|
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; } }
|
|
22
24
|
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; }
|
|
23
25
|
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; }
|
|
24
26
|
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; } // eslint-disable-next-line @atlassian/tangerine/import/entry-points
|
|
25
|
-
var calculateNodesForBlockDecoration = function calculateNodesForBlockDecoration(
|
|
27
|
+
var calculateNodesForBlockDecoration = function calculateNodesForBlockDecoration(_ref) {
|
|
28
|
+
var doc = _ref.doc,
|
|
29
|
+
from = _ref.from,
|
|
30
|
+
to = _ref.to,
|
|
31
|
+
colorScheme = _ref.colorScheme;
|
|
26
32
|
var decorations = [];
|
|
27
33
|
// Iterate over the document nodes within the range
|
|
28
34
|
doc.nodesBetween(from, to, function (node, pos) {
|
|
29
35
|
if (node.isBlock) {
|
|
30
|
-
var decoration = (0,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
var decoration = (0, _createBlockChangedDecoration.createBlockChangedDecoration)({
|
|
37
|
+
change: {
|
|
38
|
+
from: pos,
|
|
39
|
+
to: pos + node.nodeSize,
|
|
40
|
+
name: node.type.name
|
|
41
|
+
},
|
|
42
|
+
colorScheme: colorScheme
|
|
43
|
+
});
|
|
35
44
|
if (decoration) {
|
|
36
45
|
decorations.push(decoration);
|
|
37
46
|
}
|
|
@@ -72,13 +81,13 @@ function optimizeChanges(changes) {
|
|
|
72
81
|
optimized.push(current);
|
|
73
82
|
return optimized;
|
|
74
83
|
}
|
|
75
|
-
var calculateDiffDecorationsInner = function calculateDiffDecorationsInner(
|
|
76
|
-
var state =
|
|
77
|
-
pluginState =
|
|
78
|
-
nodeViewSerializer =
|
|
79
|
-
colorScheme =
|
|
80
|
-
intl =
|
|
81
|
-
activeIndexPos =
|
|
84
|
+
var calculateDiffDecorationsInner = function calculateDiffDecorationsInner(_ref2) {
|
|
85
|
+
var state = _ref2.state,
|
|
86
|
+
pluginState = _ref2.pluginState,
|
|
87
|
+
nodeViewSerializer = _ref2.nodeViewSerializer,
|
|
88
|
+
colorScheme = _ref2.colorScheme,
|
|
89
|
+
intl = _ref2.intl,
|
|
90
|
+
activeIndexPos = _ref2.activeIndexPos;
|
|
82
91
|
var originalDoc = pluginState.originalDoc,
|
|
83
92
|
steps = pluginState.steps;
|
|
84
93
|
if (!originalDoc || !pluginState.isDisplayingChanges) {
|
|
@@ -96,7 +105,7 @@ var calculateDiffDecorationsInner = function calculateDiffDecorationsInner(_ref)
|
|
|
96
105
|
var step = _step.value;
|
|
97
106
|
var result = step.apply(steppedDoc);
|
|
98
107
|
if (result.failed === null && result.doc) {
|
|
99
|
-
if ((0,
|
|
108
|
+
if ((0, _getAttrChangeRanges.stepIsValidAttrChange)(step, steppedDoc, result.doc)) {
|
|
100
109
|
attrSteps.push(step);
|
|
101
110
|
}
|
|
102
111
|
stepMaps.push(step.getMap());
|
|
@@ -121,12 +130,21 @@ var calculateDiffDecorationsInner = function calculateDiffDecorationsInner(_ref)
|
|
|
121
130
|
optimizedChanges.forEach(function (change) {
|
|
122
131
|
var isActive = activeIndexPos && change.fromB >= activeIndexPos.from && change.toB <= activeIndexPos.to;
|
|
123
132
|
if (change.inserted.length > 0) {
|
|
124
|
-
decorations.push((0,
|
|
125
|
-
|
|
133
|
+
decorations.push((0, _createInlineChangedDecoration.createInlineChangedDecoration)({
|
|
134
|
+
change: change,
|
|
135
|
+
colorScheme: colorScheme,
|
|
136
|
+
isActive: isActive
|
|
137
|
+
}));
|
|
138
|
+
decorations.push.apply(decorations, (0, _toConsumableArray2.default)(calculateNodesForBlockDecoration({
|
|
139
|
+
doc: tr.doc,
|
|
140
|
+
from: change.fromB,
|
|
141
|
+
to: change.toB,
|
|
142
|
+
colorScheme: colorScheme
|
|
143
|
+
})));
|
|
126
144
|
}
|
|
127
145
|
if (change.deleted.length > 0) {
|
|
128
146
|
var _isActive = activeIndexPos && change.fromB >= activeIndexPos.from && change.toB <= activeIndexPos.to;
|
|
129
|
-
var decoration = (0,
|
|
147
|
+
var decoration = (0, _createNodeChangedDecorationWidget.createNodeChangedDecorationWidget)({
|
|
130
148
|
change: change,
|
|
131
149
|
doc: originalDoc,
|
|
132
150
|
nodeViewSerializer: nodeViewSerializer,
|
|
@@ -140,33 +158,42 @@ var calculateDiffDecorationsInner = function calculateDiffDecorationsInner(_ref)
|
|
|
140
158
|
}
|
|
141
159
|
}
|
|
142
160
|
});
|
|
143
|
-
(0,
|
|
161
|
+
(0, _getMarkChangeRanges.getMarkChangeRanges)(steps).forEach(function (change) {
|
|
144
162
|
var isActive = activeIndexPos && change.fromB >= activeIndexPos.from && change.toB <= activeIndexPos.to;
|
|
145
|
-
decorations.push((0,
|
|
163
|
+
decorations.push((0, _createInlineChangedDecoration.createInlineChangedDecoration)({
|
|
164
|
+
change: change,
|
|
165
|
+
colorScheme: colorScheme,
|
|
166
|
+
isActive: isActive
|
|
167
|
+
}));
|
|
146
168
|
});
|
|
147
|
-
(0,
|
|
148
|
-
decorations.push.apply(decorations, (0, _toConsumableArray2.default)(calculateNodesForBlockDecoration(
|
|
169
|
+
(0, _getAttrChangeRanges.getAttrChangeRanges)(tr.doc, attrSteps).forEach(function (change) {
|
|
170
|
+
decorations.push.apply(decorations, (0, _toConsumableArray2.default)(calculateNodesForBlockDecoration({
|
|
171
|
+
doc: tr.doc,
|
|
172
|
+
from: change.fromB,
|
|
173
|
+
to: change.toB,
|
|
174
|
+
colorScheme: colorScheme
|
|
175
|
+
})));
|
|
149
176
|
});
|
|
150
177
|
return _view.DecorationSet.empty.add(tr.doc, decorations);
|
|
151
178
|
};
|
|
152
179
|
var calculateDiffDecorations = exports.calculateDiffDecorations = (0, _memoizeOne.default)(calculateDiffDecorationsInner,
|
|
153
180
|
// Cache results unless relevant inputs change
|
|
154
|
-
function (
|
|
155
|
-
var
|
|
156
|
-
var _ref4 = (0, _slicedToArray2.default)(_ref2, 1),
|
|
157
|
-
_ref4$ = _ref4[0],
|
|
158
|
-
pluginState = _ref4$.pluginState,
|
|
159
|
-
state = _ref4$.state,
|
|
160
|
-
colorScheme = _ref4$.colorScheme,
|
|
161
|
-
intl = _ref4$.intl,
|
|
162
|
-
activeIndexPos = _ref4$.activeIndexPos;
|
|
181
|
+
function (_ref3, _ref4) {
|
|
182
|
+
var _ref7;
|
|
163
183
|
var _ref5 = (0, _slicedToArray2.default)(_ref3, 1),
|
|
164
184
|
_ref5$ = _ref5[0],
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
185
|
+
pluginState = _ref5$.pluginState,
|
|
186
|
+
state = _ref5$.state,
|
|
187
|
+
colorScheme = _ref5$.colorScheme,
|
|
188
|
+
intl = _ref5$.intl,
|
|
189
|
+
activeIndexPos = _ref5$.activeIndexPos;
|
|
190
|
+
var _ref6 = (0, _slicedToArray2.default)(_ref4, 1),
|
|
191
|
+
_ref6$ = _ref6[0],
|
|
192
|
+
lastPluginState = _ref6$.pluginState,
|
|
193
|
+
lastState = _ref6$.state,
|
|
194
|
+
lastColorScheme = _ref6$.colorScheme,
|
|
195
|
+
lastIntl = _ref6$.intl,
|
|
196
|
+
lastActiveIndexPos = _ref6$.activeIndexPos;
|
|
170
197
|
var originalDocIsSame = lastPluginState.originalDoc && pluginState.originalDoc && pluginState.originalDoc.eq(lastPluginState.originalDoc);
|
|
171
|
-
return (
|
|
198
|
+
return (_ref7 = originalDocIsSame && (0, _isEqual.default)(pluginState.steps, lastPluginState.steps) && state.doc.eq(lastState.doc) && colorScheme === lastColorScheme && intl.locale === lastIntl.locale && (0, _isEqual.default)(activeIndexPos, lastActiveIndexPos)) !== null && _ref7 !== void 0 ? _ref7 : false;
|
|
172
199
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.standardDecorationMarkerVariable = exports.editingStyleRuleNode = exports.editingStyleQuoteNode = exports.editingStyleNode = exports.editingStyleCardBlockNode = exports.editingStyleActive = exports.editingStyle = exports.deletedStyleQuoteNodeWithLozenge = exports.deletedStyleQuoteNode = exports.deletedRowStyle = exports.deletedContentStyleUnbounded = exports.deletedContentStyleNewActive = exports.deletedContentStyleNew = exports.deletedContentStyleActive = exports.deletedContentStyle = exports.deletedBlockOutlineRounded = exports.deletedBlockOutline = void 0;
|
|
7
7
|
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
8
8
|
var editingStyle = exports.editingStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
9
9
|
background: "var(--ds-background-accent-purple-subtlest, #F8EEFE)",
|
|
@@ -54,43 +54,45 @@ var deletedContentStyleUnbounded = exports.deletedContentStyleUnbounded = (0, _l
|
|
|
54
54
|
pointerEvents: 'none',
|
|
55
55
|
zIndex: 1
|
|
56
56
|
});
|
|
57
|
-
var
|
|
57
|
+
var deletedStyleQuoteNode = exports.deletedStyleQuoteNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
58
|
+
borderLeft: "2px solid ".concat("var(--ds-border-accent-gray, #7D818A)")
|
|
59
|
+
});
|
|
60
|
+
var deletedStyleQuoteNodeWithLozenge = exports.deletedStyleQuoteNodeWithLozenge = (0, _lazyNodeView.convertToInlineCss)({
|
|
61
|
+
marginTop: "var(--ds-space-150, 12px)",
|
|
62
|
+
paddingTop: "var(--ds-space-025, 2px)",
|
|
63
|
+
paddingBottom: "var(--ds-space-025, 2px)",
|
|
64
|
+
paddingLeft: "var(--ds-space-025, 2px)",
|
|
65
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-gray, #7D818A)"),
|
|
66
|
+
borderRadius: "var(--ds-radius-small, 4px)"
|
|
67
|
+
});
|
|
68
|
+
var deletedBlockOutline = exports.deletedBlockOutline = (0, _lazyNodeView.convertToInlineCss)({
|
|
69
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-gray, #7D818A)"),
|
|
70
|
+
borderRadius: "var(--ds-radius-small, 4px)"
|
|
71
|
+
});
|
|
72
|
+
var deletedBlockOutlineRounded = exports.deletedBlockOutlineRounded = (0, _lazyNodeView.convertToInlineCss)({
|
|
73
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-gray, #7D818A)"),
|
|
74
|
+
borderRadius: "calc(".concat("var(--ds-radius-xsmall, 2px)", " + 1px)")
|
|
75
|
+
});
|
|
76
|
+
var deletedRowStyle = exports.deletedRowStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
77
|
+
color: "var(--ds-text-accent-gray, #505258)",
|
|
78
|
+
textDecoration: 'line-through',
|
|
79
|
+
opacity: 0.6,
|
|
80
|
+
display: 'table-row'
|
|
81
|
+
});
|
|
82
|
+
var editingStyleQuoteNode = exports.editingStyleQuoteNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
58
83
|
borderLeft: "2px solid ".concat("var(--ds-border-accent-purple, #AF59E1)")
|
|
59
84
|
});
|
|
60
|
-
var editingStyleRuleNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
85
|
+
var editingStyleRuleNode = exports.editingStyleRuleNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
61
86
|
backgroundColor: "var(--ds-border-accent-purple, #AF59E1)"
|
|
62
87
|
});
|
|
63
|
-
var editingStyleNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
88
|
+
var editingStyleNode = exports.editingStyleNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
64
89
|
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-purple, #AF59E1)"),
|
|
65
90
|
borderRadius: "var(--ds-radius-small, 4px)"
|
|
66
91
|
});
|
|
67
|
-
var editingStyleCardBlockNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
92
|
+
var editingStyleCardBlockNode = exports.editingStyleCardBlockNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
68
93
|
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-purple, #AF59E1)"),
|
|
69
94
|
borderRadius: "var(--ds-radius-medium, 6px)"
|
|
70
95
|
});
|
|
71
|
-
var
|
|
96
|
+
var standardDecorationMarkerVariable = exports.standardDecorationMarkerVariable = (0, _lazyNodeView.convertToInlineCss)({
|
|
72
97
|
'--diff-decoration-marker-color': "var(--ds-border-accent-purple, #AF59E1)"
|
|
73
|
-
});
|
|
74
|
-
var getStandardNodeStyle = exports.getStandardNodeStyle = function getStandardNodeStyle(nodeName) {
|
|
75
|
-
if (['mediaSingle', 'mediaGroup', 'table',
|
|
76
|
-
// Handle table separately to avoid border issues
|
|
77
|
-
'tableRow', 'tableCell', 'tableHeader', 'paragraph',
|
|
78
|
-
// Paragraph and heading nodes do not need special styling
|
|
79
|
-
'heading', 'hardBreak', 'decisionList', 'taskList', 'taskItem', 'bulletList', 'orderedList', 'layoutSection'].includes(nodeName)) {
|
|
80
|
-
// Layout nodes do not need special styling
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
83
|
-
if (['extension', 'embedCard', 'listItem'].includes(nodeName)) {
|
|
84
|
-
return standardDecorationMarkerVariableName;
|
|
85
|
-
}
|
|
86
|
-
if (nodeName === 'blockquote') {
|
|
87
|
-
return editingStyleQuoteNode;
|
|
88
|
-
}
|
|
89
|
-
if (nodeName === 'rule') {
|
|
90
|
-
return editingStyleRuleNode;
|
|
91
|
-
}
|
|
92
|
-
if (nodeName === 'blockCard') {
|
|
93
|
-
return editingStyleCardBlockNode;
|
|
94
|
-
}
|
|
95
|
-
return editingStyleNode;
|
|
96
|
-
};
|
|
98
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.traditionalStyleRuleNode = exports.traditionalStyleQuoteNode = exports.traditionalStyleNode = exports.traditionalStyleCardBlockNode = exports.traditionalInsertStyleActive = exports.traditionalInsertStyle = exports.traditionalDecorationMarkerVariable = exports.deletedTraditionalStyleQuoteNode = exports.deletedTraditionalRowStyle = exports.deletedTraditionalContentStyleUnbounded = exports.deletedTraditionalContentStyle = exports.deletedTraditionalBlockOutlineRounded = exports.deletedTraditionalBlockOutline = void 0;
|
|
7
|
+
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
8
|
+
var traditionalInsertStyle = exports.traditionalInsertStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
9
|
+
background: "var(--ds-background-accent-green-subtlest, #DCFFF1)",
|
|
10
|
+
textDecoration: 'underline',
|
|
11
|
+
textDecorationStyle: 'solid',
|
|
12
|
+
textDecorationThickness: "var(--ds-space-025, 2px)",
|
|
13
|
+
textDecorationColor: "var(--ds-border-accent-green, #22A06B)"
|
|
14
|
+
});
|
|
15
|
+
var traditionalInsertStyleActive = exports.traditionalInsertStyleActive = (0, _lazyNodeView.convertToInlineCss)({
|
|
16
|
+
background: "var(--ds-background-accent-green-subtler, #BAF3DB)",
|
|
17
|
+
textDecoration: 'underline',
|
|
18
|
+
textDecorationStyle: 'solid',
|
|
19
|
+
textDecorationThickness: "var(--ds-space-025, 2px)",
|
|
20
|
+
textDecorationColor: "var(--ds-text-accent-green, #216E4E)"
|
|
21
|
+
});
|
|
22
|
+
var deletedTraditionalContentStyle = exports.deletedTraditionalContentStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
23
|
+
textDecorationColor: "var(--ds-border-accent-red, #E2483D)",
|
|
24
|
+
textDecoration: 'line-through',
|
|
25
|
+
position: 'relative',
|
|
26
|
+
opacity: 1
|
|
27
|
+
});
|
|
28
|
+
var deletedTraditionalContentStyleUnbounded = exports.deletedTraditionalContentStyleUnbounded = (0, _lazyNodeView.convertToInlineCss)({
|
|
29
|
+
position: 'absolute',
|
|
30
|
+
top: '50%',
|
|
31
|
+
width: '100%',
|
|
32
|
+
display: 'inline-block',
|
|
33
|
+
borderTop: "1px solid ".concat("var(--ds-border-accent-red, #E2483D)"),
|
|
34
|
+
pointerEvents: 'none',
|
|
35
|
+
zIndex: 1
|
|
36
|
+
});
|
|
37
|
+
var deletedTraditionalStyleQuoteNode = exports.deletedTraditionalStyleQuoteNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
38
|
+
marginTop: "var(--ds-space-150, 12px)",
|
|
39
|
+
paddingTop: "var(--ds-space-025, 2px)",
|
|
40
|
+
paddingBottom: "var(--ds-space-025, 2px)",
|
|
41
|
+
paddingLeft: "var(--ds-space-025, 2px)",
|
|
42
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-red, #E2483D)"),
|
|
43
|
+
borderRadius: "var(--ds-radius-small, 4px)"
|
|
44
|
+
});
|
|
45
|
+
var deletedTraditionalBlockOutline = exports.deletedTraditionalBlockOutline = (0, _lazyNodeView.convertToInlineCss)({
|
|
46
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-red, #E2483D)"),
|
|
47
|
+
borderRadius: "var(--ds-radius-small, 4px)"
|
|
48
|
+
});
|
|
49
|
+
var deletedTraditionalBlockOutlineRounded = exports.deletedTraditionalBlockOutlineRounded = (0, _lazyNodeView.convertToInlineCss)({
|
|
50
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-red, #E2483D)"),
|
|
51
|
+
borderRadius: "calc(".concat("var(--ds-radius-xsmall, 2px)", " + 1px)")
|
|
52
|
+
});
|
|
53
|
+
var deletedTraditionalRowStyle = exports.deletedTraditionalRowStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
54
|
+
textDecorationColor: "var(--ds-border-accent-red, #E2483D)",
|
|
55
|
+
textDecoration: 'line-through',
|
|
56
|
+
opacity: 0.6,
|
|
57
|
+
display: 'table-row'
|
|
58
|
+
});
|
|
59
|
+
var traditionalStyleQuoteNode = exports.traditionalStyleQuoteNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
60
|
+
borderLeft: "2px solid ".concat("var(--ds-border-accent-green, #22A06B)")
|
|
61
|
+
});
|
|
62
|
+
var traditionalStyleRuleNode = exports.traditionalStyleRuleNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
63
|
+
backgroundColor: "var(--ds-border-accent-green, #22A06B)"
|
|
64
|
+
});
|
|
65
|
+
var traditionalStyleNode = exports.traditionalStyleNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
66
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-green, #22A06B)"),
|
|
67
|
+
borderRadius: "var(--ds-radius-small, 4px)"
|
|
68
|
+
});
|
|
69
|
+
var traditionalStyleCardBlockNode = exports.traditionalStyleCardBlockNode = (0, _lazyNodeView.convertToInlineCss)({
|
|
70
|
+
boxShadow: "0 0 0 1px ".concat("var(--ds-border-accent-green, #22A06B)"),
|
|
71
|
+
borderRadius: "var(--ds-radius-medium, 6px)"
|
|
72
|
+
});
|
|
73
|
+
var traditionalDecorationMarkerVariable = exports.traditionalDecorationMarkerVariable = (0, _lazyNodeView.convertToInlineCss)({
|
|
74
|
+
'--diff-decoration-marker-color': "var(--ds-border-accent-green, #22A06B)"
|
|
75
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createBlockChangedDecoration = void 0;
|
|
7
|
+
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
8
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
|
+
var _standard = require("./colorSchemes/standard");
|
|
10
|
+
var _traditional = require("./colorSchemes/traditional");
|
|
11
|
+
var getNodeClass = function getNodeClass(name) {
|
|
12
|
+
switch (name) {
|
|
13
|
+
case 'extension':
|
|
14
|
+
return 'show-diff-changed-decoration-node';
|
|
15
|
+
default:
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
var getBlockNodeStyle = function getBlockNodeStyle(nodeName, colorScheme) {
|
|
20
|
+
var isTraditional = colorScheme === 'traditional';
|
|
21
|
+
if (['mediaSingle', 'mediaGroup', 'table',
|
|
22
|
+
// Handle table separately to avoid border issues
|
|
23
|
+
'tableRow', 'tableCell', 'tableHeader', 'paragraph',
|
|
24
|
+
// Paragraph and heading nodes do not need special styling
|
|
25
|
+
'heading', 'hardBreak', 'decisionList', 'taskList', 'taskItem', 'bulletList', 'orderedList', 'layoutSection'].includes(nodeName)) {
|
|
26
|
+
// Layout nodes do not need special styling
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
if (['extension', 'embedCard', 'listItem'].includes(nodeName)) {
|
|
30
|
+
return isTraditional ? _traditional.traditionalDecorationMarkerVariable : _standard.standardDecorationMarkerVariable;
|
|
31
|
+
}
|
|
32
|
+
if (nodeName === 'blockquote') {
|
|
33
|
+
return isTraditional ? _traditional.traditionalStyleQuoteNode : _standard.editingStyleQuoteNode;
|
|
34
|
+
}
|
|
35
|
+
if (nodeName === 'rule') {
|
|
36
|
+
return isTraditional ? _traditional.traditionalStyleRuleNode : _standard.editingStyleRuleNode;
|
|
37
|
+
}
|
|
38
|
+
if (nodeName === 'blockCard') {
|
|
39
|
+
return isTraditional ? _traditional.traditionalStyleCardBlockNode : _standard.editingStyleCardBlockNode;
|
|
40
|
+
}
|
|
41
|
+
return isTraditional ? _traditional.traditionalStyleNode : _standard.editingStyleNode;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Inline decoration used for insertions as the content already exists in the document
|
|
46
|
+
*
|
|
47
|
+
* @param change Changeset "change" containing information about the change content + range
|
|
48
|
+
* @returns Prosemirror inline decoration
|
|
49
|
+
*/
|
|
50
|
+
var createBlockChangedDecoration = exports.createBlockChangedDecoration = function createBlockChangedDecoration(_ref) {
|
|
51
|
+
var change = _ref.change,
|
|
52
|
+
colorScheme = _ref.colorScheme;
|
|
53
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_show_diff_scroll_navigation')) {
|
|
54
|
+
var style = getBlockNodeStyle(change.name, colorScheme);
|
|
55
|
+
var className = getNodeClass(change.name);
|
|
56
|
+
if (style || className) {
|
|
57
|
+
return _view.Decoration.node(change.from, change.to, {
|
|
58
|
+
style: style,
|
|
59
|
+
'data-testid': 'show-diff-changed-decoration-node',
|
|
60
|
+
class: className
|
|
61
|
+
}, {
|
|
62
|
+
key: 'diff-block'
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
} else {
|
|
67
|
+
return _view.Decoration.node(change.from, change.to, {
|
|
68
|
+
style: getBlockNodeStyle(change.name, colorScheme),
|
|
69
|
+
'data-testid': 'show-diff-changed-decoration-node',
|
|
70
|
+
class: getNodeClass(change.name)
|
|
71
|
+
}, {
|
|
72
|
+
key: 'diff-block'
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
@@ -4,34 +4,23 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.createChangedRowDecorationWidgets = void 0;
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
-
var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
10
9
|
var _document = require("@atlaskit/editor-common/utils/document");
|
|
11
10
|
var _utils = require("@atlaskit/editor-prosemirror/utils");
|
|
12
11
|
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
13
12
|
var _tableMap = require("@atlaskit/editor-tables/table-map");
|
|
14
|
-
var
|
|
13
|
+
var _standard = require("./colorSchemes/standard");
|
|
14
|
+
var _traditional = require("./colorSchemes/traditional");
|
|
15
|
+
var _findSafeInsertPos = require("./utils/findSafeInsertPos");
|
|
15
16
|
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; } } }; }
|
|
16
17
|
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; } }
|
|
17
18
|
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; }
|
|
18
|
-
var deletedRowStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
19
|
-
color: "var(--ds-text-accent-gray, #505258)",
|
|
20
|
-
textDecoration: 'line-through',
|
|
21
|
-
opacity: 0.6,
|
|
22
|
-
display: 'table-row'
|
|
23
|
-
});
|
|
24
|
-
var deletedTraditionalRowStyle = (0, _lazyNodeView.convertToInlineCss)({
|
|
25
|
-
textDecorationColor: "var(--ds-border-accent-red, #E2483D)",
|
|
26
|
-
textDecoration: 'line-through',
|
|
27
|
-
opacity: 0.6,
|
|
28
|
-
display: 'table-row'
|
|
29
|
-
});
|
|
30
19
|
/**
|
|
31
20
|
* Extracts information about deleted table rows from a change
|
|
32
21
|
*/
|
|
33
|
-
var
|
|
34
|
-
var
|
|
22
|
+
var extractChangedRows = function extractChangedRows(change, originalDoc, newDoc) {
|
|
23
|
+
var changedRows = [];
|
|
35
24
|
|
|
36
25
|
// Find the table in the original document
|
|
37
26
|
var $fromPos = originalDoc.resolve(change.fromA);
|
|
@@ -39,7 +28,7 @@ var extractDeletedRows = function extractDeletedRows(change, originalDoc, newDoc
|
|
|
39
28
|
return node.type.name === 'table';
|
|
40
29
|
});
|
|
41
30
|
if (!tableOld) {
|
|
42
|
-
return
|
|
31
|
+
return changedRows;
|
|
43
32
|
}
|
|
44
33
|
var oldTableMap = _tableMap.TableMap.get(tableOld.node);
|
|
45
34
|
|
|
@@ -49,18 +38,18 @@ var extractDeletedRows = function extractDeletedRows(change, originalDoc, newDoc
|
|
|
49
38
|
return node.type.name === 'table';
|
|
50
39
|
});
|
|
51
40
|
if (!tableNew) {
|
|
52
|
-
return
|
|
41
|
+
return changedRows;
|
|
53
42
|
}
|
|
54
43
|
var newTableMap = _tableMap.TableMap.get(tableNew.node);
|
|
55
44
|
|
|
56
|
-
// If no rows were
|
|
45
|
+
// If no rows were changed, return empty
|
|
57
46
|
if (oldTableMap.height <= newTableMap.height ||
|
|
58
47
|
// For now ignore if there are column deletions as well
|
|
59
48
|
oldTableMap.width !== newTableMap.width) {
|
|
60
|
-
return
|
|
49
|
+
return changedRows;
|
|
61
50
|
}
|
|
62
51
|
|
|
63
|
-
// Find which rows were
|
|
52
|
+
// Find which rows were changed by analyzing the change range
|
|
64
53
|
var changeStartInTable = change.fromA - tableOld.pos - 1;
|
|
65
54
|
var changeEndInTable = change.toA - tableOld.pos - 1;
|
|
66
55
|
var currentOffset = 0;
|
|
@@ -75,7 +64,7 @@ var extractDeletedRows = function extractDeletedRows(change, originalDoc, newDoc
|
|
|
75
64
|
var startOfRow = newTableMap.mapByRow.slice().reverse().find(function (row) {
|
|
76
65
|
return row[0] + tableNew.pos < change.fromB && change.fromB < row[row.length - 1] + tableNew.pos;
|
|
77
66
|
});
|
|
78
|
-
|
|
67
|
+
changedRows.push({
|
|
79
68
|
rowIndex: rowIndex,
|
|
80
69
|
rowNode: rowNode,
|
|
81
70
|
fromA: tableOld.pos + 1 + rowStart,
|
|
@@ -90,9 +79,9 @@ var extractDeletedRows = function extractDeletedRows(change, originalDoc, newDoc
|
|
|
90
79
|
});
|
|
91
80
|
|
|
92
81
|
// Filter changes that never truly got deleted
|
|
93
|
-
return
|
|
82
|
+
return changedRows.filter(function (changedRow) {
|
|
94
83
|
return !tableNew.node.children.some(function (newRow) {
|
|
95
|
-
return (0, _document.areNodesEqualIgnoreAttrs)(newRow,
|
|
84
|
+
return (0, _document.areNodesEqualIgnoreAttrs)(newRow, changedRow.rowNode);
|
|
96
85
|
});
|
|
97
86
|
});
|
|
98
87
|
};
|
|
@@ -126,9 +115,9 @@ var isEmptyRow = function isEmptyRow(rowNode) {
|
|
|
126
115
|
/**
|
|
127
116
|
* Creates a DOM representation of a deleted table row
|
|
128
117
|
*/
|
|
129
|
-
var
|
|
118
|
+
var createChangedRowDOM = function createChangedRowDOM(rowNode, nodeViewSerializer, colorScheme) {
|
|
130
119
|
var tr = document.createElement('tr');
|
|
131
|
-
tr.setAttribute('style', colorScheme === 'traditional' ? deletedTraditionalRowStyle : deletedRowStyle);
|
|
120
|
+
tr.setAttribute('style', colorScheme === 'traditional' ? _traditional.deletedTraditionalRowStyle : _standard.deletedRowStyle);
|
|
132
121
|
tr.setAttribute('data-testid', 'show-diff-deleted-row');
|
|
133
122
|
|
|
134
123
|
// Serialize each cell in the row
|
|
@@ -150,19 +139,19 @@ var createDeletedRowDOM = function createDeletedRowDOM(rowNode, nodeViewSerializ
|
|
|
150
139
|
};
|
|
151
140
|
|
|
152
141
|
/**
|
|
153
|
-
* Expands a diff to include whole
|
|
142
|
+
* Expands a diff to include whole changed rows when table rows are affected
|
|
154
143
|
*/
|
|
155
|
-
var
|
|
156
|
-
var
|
|
144
|
+
var expandDiffForChangedRows = function expandDiffForChangedRows(changes, originalDoc, newDoc) {
|
|
145
|
+
var rowInfo = [];
|
|
157
146
|
var _iterator = _createForOfIteratorHelper(changes),
|
|
158
147
|
_step;
|
|
159
148
|
try {
|
|
160
149
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
161
150
|
var change = _step.value;
|
|
162
151
|
// Check if this change affects table content
|
|
163
|
-
var
|
|
164
|
-
if (
|
|
165
|
-
|
|
152
|
+
var changedRows = extractChangedRows(change, originalDoc, newDoc);
|
|
153
|
+
if (changedRows.length > 0) {
|
|
154
|
+
rowInfo.push.apply(rowInfo, (0, _toConsumableArray2.default)(changedRows));
|
|
166
155
|
}
|
|
167
156
|
}
|
|
168
157
|
} catch (err) {
|
|
@@ -170,45 +159,29 @@ var expandDiffForDeletedRows = function expandDiffForDeletedRows(changes, origin
|
|
|
170
159
|
} finally {
|
|
171
160
|
_iterator.f();
|
|
172
161
|
}
|
|
173
|
-
return
|
|
162
|
+
return rowInfo;
|
|
174
163
|
};
|
|
175
164
|
|
|
176
165
|
/**
|
|
177
|
-
*
|
|
166
|
+
* Main function to handle deleted rows - computes diff and creates decorations
|
|
178
167
|
*/
|
|
179
|
-
var
|
|
180
|
-
var
|
|
168
|
+
var createChangedRowDecorationWidgets = exports.createChangedRowDecorationWidgets = function createChangedRowDecorationWidgets(_ref) {
|
|
169
|
+
var changes = _ref.changes,
|
|
181
170
|
originalDoc = _ref.originalDoc,
|
|
182
171
|
newDoc = _ref.newDoc,
|
|
183
172
|
nodeViewSerializer = _ref.nodeViewSerializer,
|
|
184
173
|
colorScheme = _ref.colorScheme;
|
|
185
|
-
|
|
186
|
-
|
|
174
|
+
// First, expand the changes to include complete deleted rows
|
|
175
|
+
var changedRows = expandDiffForChangedRows(changes.filter(function (change) {
|
|
176
|
+
return change.deleted.length > 0;
|
|
177
|
+
}), originalDoc, newDoc);
|
|
178
|
+
return changedRows.map(function (changedRow) {
|
|
179
|
+
var rowDOM = createChangedRowDOM(changedRow.rowNode, nodeViewSerializer, colorScheme);
|
|
187
180
|
|
|
188
181
|
// Find safe insertion position for the deleted row
|
|
189
|
-
var safeInsertPos = (0, _findSafeInsertPos.findSafeInsertPos)(newDoc,
|
|
182
|
+
var safeInsertPos = (0, _findSafeInsertPos.findSafeInsertPos)(newDoc, changedRow.fromB - 1,
|
|
190
183
|
// -1 to find the first safe position from the table
|
|
191
|
-
originalDoc.slice(
|
|
184
|
+
originalDoc.slice(changedRow.fromA, changedRow.toA));
|
|
192
185
|
return _view.Decoration.widget(safeInsertPos, rowDOM, {});
|
|
193
186
|
});
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Main function to handle deleted rows - computes diff and creates decorations
|
|
198
|
-
*/
|
|
199
|
-
var handleDeletedRows = exports.handleDeletedRows = function handleDeletedRows(changes, originalDoc, newDoc, nodeViewSerializer, colorScheme) {
|
|
200
|
-
// First, expand the changes to include complete deleted rows
|
|
201
|
-
var deletedRows = expandDiffForDeletedRows(changes.filter(function (change) {
|
|
202
|
-
return change.deleted.length > 0;
|
|
203
|
-
}), originalDoc, newDoc);
|
|
204
|
-
var allDecorations = createDeletedRowsDecorations({
|
|
205
|
-
deletedRows: deletedRows,
|
|
206
|
-
originalDoc: originalDoc,
|
|
207
|
-
newDoc: newDoc,
|
|
208
|
-
nodeViewSerializer: nodeViewSerializer,
|
|
209
|
-
colorScheme: colorScheme
|
|
210
|
-
});
|
|
211
|
-
return {
|
|
212
|
-
decorations: allDecorations
|
|
213
|
-
};
|
|
214
187
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createInlineChangedDecoration = void 0;
|
|
7
|
+
var _view = require("@atlaskit/editor-prosemirror/view");
|
|
8
|
+
var _standard = require("./colorSchemes/standard");
|
|
9
|
+
var _traditional = require("./colorSchemes/traditional");
|
|
10
|
+
/**
|
|
11
|
+
* Inline decoration used for insertions as the content already exists in the document
|
|
12
|
+
*
|
|
13
|
+
* @param change Changeset "change" containing information about the change content + range
|
|
14
|
+
* @returns Prosemirror inline decoration
|
|
15
|
+
*/
|
|
16
|
+
var createInlineChangedDecoration = exports.createInlineChangedDecoration = function createInlineChangedDecoration(_ref) {
|
|
17
|
+
var change = _ref.change,
|
|
18
|
+
colorScheme = _ref.colorScheme,
|
|
19
|
+
_ref$isActive = _ref.isActive,
|
|
20
|
+
isActive = _ref$isActive === void 0 ? false : _ref$isActive;
|
|
21
|
+
var style;
|
|
22
|
+
if (colorScheme === 'traditional') {
|
|
23
|
+
style = isActive ? _traditional.traditionalInsertStyleActive : _traditional.traditionalInsertStyle;
|
|
24
|
+
} else {
|
|
25
|
+
style = isActive ? _standard.editingStyleActive : _standard.editingStyle;
|
|
26
|
+
}
|
|
27
|
+
return _view.Decoration.inline(change.fromB, change.toB, {
|
|
28
|
+
style: style,
|
|
29
|
+
'data-testid': 'show-diff-changed-decoration'
|
|
30
|
+
}, {
|
|
31
|
+
key: 'diff-inline'
|
|
32
|
+
});
|
|
33
|
+
};
|