@atlaskit/editor-plugin-show-diff 20.0.10 → 20.0.11
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 +9 -0
- package/dist/cjs/pm-plugins/calculateDiff/attrAwareTokenEncoder.js +9 -7
- package/dist/cjs/pm-plugins/decorations/utils/excerptIncludeAttrs.js +27 -0
- package/dist/cjs/pm-plugins/decorations/utils/getAttrChangeRanges.js +7 -0
- package/dist/es2019/pm-plugins/calculateDiff/attrAwareTokenEncoder.js +9 -7
- package/dist/es2019/pm-plugins/decorations/utils/excerptIncludeAttrs.js +13 -0
- package/dist/es2019/pm-plugins/decorations/utils/getAttrChangeRanges.js +10 -1
- package/dist/esm/pm-plugins/calculateDiff/attrAwareTokenEncoder.js +9 -7
- package/dist/esm/pm-plugins/decorations/utils/excerptIncludeAttrs.js +20 -0
- package/dist/esm/pm-plugins/decorations/utils/getAttrChangeRanges.js +7 -0
- package/dist/types/pm-plugins/decorations/utils/excerptIncludeAttrs.d.ts +6 -0
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-show-diff
|
|
2
2
|
|
|
3
|
+
## 20.0.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`d9cd5128c24dc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d9cd5128c24dc) -
|
|
8
|
+
Add gated Include excerpt attribute comparison for platform_editor_normalize_excerpt_diff without
|
|
9
|
+
changing source documents
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
3
12
|
## 20.0.10
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.attrAwareTokenEncoder = void 0;
|
|
7
7
|
var _nodeTypeUtils = require("@atlaskit/editor-common/utils/node-type-utils");
|
|
8
|
+
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
8
9
|
var _diffableAttrs = require("../decorations/utils/diffableAttrs");
|
|
10
|
+
var _excerptIncludeAttrs = require("../decorations/utils/excerptIncludeAttrs");
|
|
9
11
|
var _encodeCharacterWithMarks = require("./encodeCharacterWithMarks");
|
|
10
12
|
/**
|
|
11
13
|
* Attribute-aware token encoder for `prosemirror-changeset`. The default encoder
|
|
@@ -16,14 +18,12 @@ var _encodeCharacterWithMarks = require("./encodeCharacterWithMarks");
|
|
|
16
18
|
*/
|
|
17
19
|
|
|
18
20
|
// Stable composite token; attr names are pre-ordered by the caller.
|
|
19
|
-
var encodeNodeWithAttrs = function encodeNodeWithAttrs(
|
|
20
|
-
var _node$attrs;
|
|
21
|
-
var attrs = (_node$attrs = node.attrs) !== null && _node$attrs !== void 0 ? _node$attrs : {};
|
|
21
|
+
var encodeNodeWithAttrs = function encodeNodeWithAttrs(nodeTypeName, attrs, attrNames) {
|
|
22
22
|
var parts = attrNames.map(function (name) {
|
|
23
23
|
var _attrs$name;
|
|
24
24
|
return "".concat(name, "=").concat(JSON.stringify((_attrs$name = attrs[name]) !== null && _attrs$name !== void 0 ? _attrs$name : null));
|
|
25
25
|
});
|
|
26
|
-
return "".concat(
|
|
26
|
+
return "".concat(nodeTypeName, "|").concat(parts.join('|'));
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
// Like the library default, but node types with a `diffableAttrs` rule fold their
|
|
@@ -34,11 +34,13 @@ var attrAwareTokenEncoder = exports.attrAwareTokenEncoder = {
|
|
|
34
34
|
return (0, _encodeCharacterWithMarks.encodeCharacterWithMarks)(char, marks);
|
|
35
35
|
},
|
|
36
36
|
encodeNodeStart: function encodeNodeStart(node) {
|
|
37
|
-
|
|
37
|
+
// A one-sided reference is not comparable from an isolated token. Attribute-step comparison
|
|
38
|
+
// checks the reference when both versions have one.
|
|
39
|
+
var attrs = (0, _fg.fg)('platform_editor_normalize_excerpt_diff') && node.type.name === 'extension' && (0, _excerptIncludeAttrs.isExcerptInclude)(node.attrs) ? (0, _excerptIncludeAttrs.getComparableExcerptIncludeAttrs)(node.attrs) : node.attrs;
|
|
38
40
|
// Normalise variants (e.g. `panel_c1` → `panel`) so `diffableAttrs` needs one entry.
|
|
39
|
-
var attrNames = (0, _diffableAttrs.getDiffableAttrNames)((0, _nodeTypeUtils.getBaseNodeTypeName)(node.type),
|
|
41
|
+
var attrNames = (0, _diffableAttrs.getDiffableAttrNames)((0, _nodeTypeUtils.getBaseNodeTypeName)(node.type), attrs !== null && attrs !== void 0 ? attrs : {});
|
|
40
42
|
if (attrNames && attrNames.length > 0) {
|
|
41
|
-
return encodeNodeWithAttrs(node, attrNames);
|
|
43
|
+
return encodeNodeWithAttrs(node.type.name, attrs, attrNames);
|
|
42
44
|
}
|
|
43
45
|
return node.type.name;
|
|
44
46
|
},
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.isExcerptInclude = exports.getReferencedContentId = exports.getComparableExcerptIncludeAttrs = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
10
|
+
var asRecord = function asRecord(value) {
|
|
11
|
+
return value !== null && (0, _typeof2.default)(value) === 'object' && !Array.isArray(value) ? value : undefined;
|
|
12
|
+
};
|
|
13
|
+
var isExcerptInclude = exports.isExcerptInclude = function isExcerptInclude(attrs) {
|
|
14
|
+
return attrs.extensionKey === 'excerpt-include';
|
|
15
|
+
};
|
|
16
|
+
var getReferencedContentId = exports.getReferencedContentId = function getReferencedContentId(attrs) {
|
|
17
|
+
var _asRecord;
|
|
18
|
+
var parameters = asRecord(attrs.parameters);
|
|
19
|
+
var macroParams = asRecord(parameters === null || parameters === void 0 ? void 0 : parameters.macroParams);
|
|
20
|
+
var value = (_asRecord = asRecord(macroParams === null || macroParams === void 0 ? void 0 : macroParams._referencedContentId)) === null || _asRecord === void 0 ? void 0 : _asRecord.value;
|
|
21
|
+
return typeof value === 'string' ? value : undefined;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/** Compare macro identity and authored options, excluding publish-time rendering metadata. */
|
|
25
|
+
var getComparableExcerptIncludeAttrs = exports.getComparableExcerptIncludeAttrs = function getComparableExcerptIncludeAttrs(attrs) {
|
|
26
|
+
return (0, _pick.default)(attrs, ['extensionType', 'layout', 'parameters.macroMetadata.macroId.value', 'parameters.macroParams[""].value', 'parameters.macroParams.name.value', 'parameters.macroParams.nopanel.value', 'parameters.macroParams.inline.value']);
|
|
27
|
+
};
|
|
@@ -11,7 +11,9 @@ var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
|
11
11
|
var _setAttrs = require("@atlaskit/adf-schema/steps/set-attrs");
|
|
12
12
|
var _nodeTypeUtils = require("@atlaskit/editor-common/utils/node-type-utils");
|
|
13
13
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
14
|
+
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
14
15
|
var _diffableAttrs = require("./diffableAttrs");
|
|
16
|
+
var _excerptIncludeAttrs = require("./excerptIncludeAttrs");
|
|
15
17
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
18
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
19
|
var filterUndefined = function filterUndefined(x) {
|
|
@@ -51,6 +53,11 @@ var getComparableExtensionAttrs = function getComparableExtensionAttrs(node) {
|
|
|
51
53
|
return (0, _omit.default)(node.attrs, transientExtensionAttrPaths);
|
|
52
54
|
};
|
|
53
55
|
var haveSameRelevantExtensionAttrs = function haveSameRelevantExtensionAttrs(beforeNode, afterNode) {
|
|
56
|
+
if ((0, _fg.fg)('platform_editor_normalize_excerpt_diff') && (0, _excerptIncludeAttrs.isExcerptInclude)(beforeNode.attrs) && (0, _excerptIncludeAttrs.isExcerptInclude)(afterNode.attrs)) {
|
|
57
|
+
var beforeReference = (0, _excerptIncludeAttrs.getReferencedContentId)(beforeNode.attrs);
|
|
58
|
+
var afterReference = (0, _excerptIncludeAttrs.getReferencedContentId)(afterNode.attrs);
|
|
59
|
+
return (0, _isEqual.default)((0, _excerptIncludeAttrs.getComparableExcerptIncludeAttrs)(beforeNode.attrs), (0, _excerptIncludeAttrs.getComparableExcerptIncludeAttrs)(afterNode.attrs)) && (beforeReference === undefined || afterReference === undefined || beforeReference === afterReference);
|
|
60
|
+
}
|
|
54
61
|
return (0, _isEqual.default)(getComparableExtensionAttrs(beforeNode), getComparableExtensionAttrs(afterNode));
|
|
55
62
|
};
|
|
56
63
|
var getStepAttrs = function getStepAttrs(step) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { getBaseNodeTypeName } from '@atlaskit/editor-common/utils/node-type-utils';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
2
3
|
import { getDiffableAttrNames } from '../decorations/utils/diffableAttrs';
|
|
4
|
+
import { getComparableExcerptIncludeAttrs, isExcerptInclude } from '../decorations/utils/excerptIncludeAttrs';
|
|
3
5
|
import { encodeCharacterWithMarks } from './encodeCharacterWithMarks';
|
|
4
6
|
|
|
5
7
|
/**
|
|
@@ -11,14 +13,12 @@ import { encodeCharacterWithMarks } from './encodeCharacterWithMarks';
|
|
|
11
13
|
*/
|
|
12
14
|
|
|
13
15
|
// Stable composite token; attr names are pre-ordered by the caller.
|
|
14
|
-
const encodeNodeWithAttrs = (
|
|
15
|
-
var _node$attrs;
|
|
16
|
-
const attrs = (_node$attrs = node.attrs) !== null && _node$attrs !== void 0 ? _node$attrs : {};
|
|
16
|
+
const encodeNodeWithAttrs = (nodeTypeName, attrs, attrNames) => {
|
|
17
17
|
const parts = attrNames.map(name => {
|
|
18
18
|
var _attrs$name;
|
|
19
19
|
return `${name}=${JSON.stringify((_attrs$name = attrs[name]) !== null && _attrs$name !== void 0 ? _attrs$name : null)}`;
|
|
20
20
|
});
|
|
21
|
-
return `${
|
|
21
|
+
return `${nodeTypeName}|${parts.join('|')}`;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// Like the library default, but node types with a `diffableAttrs` rule fold their
|
|
@@ -27,11 +27,13 @@ const encodeNodeWithAttrs = (node, attrNames) => {
|
|
|
27
27
|
export const attrAwareTokenEncoder = {
|
|
28
28
|
encodeCharacter: (char, marks) => encodeCharacterWithMarks(char, marks),
|
|
29
29
|
encodeNodeStart: node => {
|
|
30
|
-
|
|
30
|
+
// A one-sided reference is not comparable from an isolated token. Attribute-step comparison
|
|
31
|
+
// checks the reference when both versions have one.
|
|
32
|
+
const attrs = fg('platform_editor_normalize_excerpt_diff') && node.type.name === 'extension' && isExcerptInclude(node.attrs) ? getComparableExcerptIncludeAttrs(node.attrs) : node.attrs;
|
|
31
33
|
// Normalise variants (e.g. `panel_c1` → `panel`) so `diffableAttrs` needs one entry.
|
|
32
|
-
const attrNames = getDiffableAttrNames(getBaseNodeTypeName(node.type),
|
|
34
|
+
const attrNames = getDiffableAttrNames(getBaseNodeTypeName(node.type), attrs !== null && attrs !== void 0 ? attrs : {});
|
|
33
35
|
if (attrNames && attrNames.length > 0) {
|
|
34
|
-
return encodeNodeWithAttrs(node, attrNames);
|
|
36
|
+
return encodeNodeWithAttrs(node.type.name, attrs, attrNames);
|
|
35
37
|
}
|
|
36
38
|
return node.type.name;
|
|
37
39
|
},
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import pick from 'lodash/pick';
|
|
2
|
+
const asRecord = value => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
|
|
3
|
+
export const isExcerptInclude = attrs => attrs.extensionKey === 'excerpt-include';
|
|
4
|
+
export const getReferencedContentId = attrs => {
|
|
5
|
+
var _asRecord;
|
|
6
|
+
const parameters = asRecord(attrs.parameters);
|
|
7
|
+
const macroParams = asRecord(parameters === null || parameters === void 0 ? void 0 : parameters.macroParams);
|
|
8
|
+
const value = (_asRecord = asRecord(macroParams === null || macroParams === void 0 ? void 0 : macroParams._referencedContentId)) === null || _asRecord === void 0 ? void 0 : _asRecord.value;
|
|
9
|
+
return typeof value === 'string' ? value : undefined;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/** Compare macro identity and authored options, excluding publish-time rendering metadata. */
|
|
13
|
+
export const getComparableExcerptIncludeAttrs = attrs => pick(attrs, ['extensionType', 'layout', 'parameters.macroMetadata.macroId.value', 'parameters.macroParams[""].value', 'parameters.macroParams.name.value', 'parameters.macroParams.nopanel.value', 'parameters.macroParams.inline.value']);
|
|
@@ -3,7 +3,9 @@ import omit from 'lodash/omit';
|
|
|
3
3
|
import { SetAttrsStep } from '@atlaskit/adf-schema/steps/set-attrs';
|
|
4
4
|
import { getBaseNodeTypeName } from '@atlaskit/editor-common/utils/node-type-utils';
|
|
5
5
|
import { AttrStep } from '@atlaskit/editor-prosemirror/transform';
|
|
6
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
6
7
|
import { getRequiredIncludedDiffableAttrs, isDiffableAttr } from './diffableAttrs';
|
|
8
|
+
import { getComparableExcerptIncludeAttrs, getReferencedContentId, isExcerptInclude } from './excerptIncludeAttrs';
|
|
7
9
|
const filterUndefined = x => !!x;
|
|
8
10
|
|
|
9
11
|
// Attr lists sourced from the shared `diffableAttrs` map (shared with the encoder).
|
|
@@ -34,7 +36,14 @@ const transientExtensionAttrPaths = ['localId', 'parameters.macroParams._parentI
|
|
|
34
36
|
* extension's user-visible configuration.
|
|
35
37
|
*/
|
|
36
38
|
const getComparableExtensionAttrs = node => omit(node.attrs, transientExtensionAttrPaths);
|
|
37
|
-
const haveSameRelevantExtensionAttrs = (beforeNode, afterNode) =>
|
|
39
|
+
const haveSameRelevantExtensionAttrs = (beforeNode, afterNode) => {
|
|
40
|
+
if (fg('platform_editor_normalize_excerpt_diff') && isExcerptInclude(beforeNode.attrs) && isExcerptInclude(afterNode.attrs)) {
|
|
41
|
+
const beforeReference = getReferencedContentId(beforeNode.attrs);
|
|
42
|
+
const afterReference = getReferencedContentId(afterNode.attrs);
|
|
43
|
+
return isEqual(getComparableExcerptIncludeAttrs(beforeNode.attrs), getComparableExcerptIncludeAttrs(afterNode.attrs)) && (beforeReference === undefined || afterReference === undefined || beforeReference === afterReference);
|
|
44
|
+
}
|
|
45
|
+
return isEqual(getComparableExtensionAttrs(beforeNode), getComparableExtensionAttrs(afterNode));
|
|
46
|
+
};
|
|
38
47
|
const getStepAttrs = step => {
|
|
39
48
|
if (step instanceof AttrStep) {
|
|
40
49
|
return [step.attr];
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { getBaseNodeTypeName } from '@atlaskit/editor-common/utils/node-type-utils';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
2
3
|
import { getDiffableAttrNames } from '../decorations/utils/diffableAttrs';
|
|
4
|
+
import { getComparableExcerptIncludeAttrs, isExcerptInclude } from '../decorations/utils/excerptIncludeAttrs';
|
|
3
5
|
import { encodeCharacterWithMarks } from './encodeCharacterWithMarks';
|
|
4
6
|
|
|
5
7
|
/**
|
|
@@ -11,14 +13,12 @@ import { encodeCharacterWithMarks } from './encodeCharacterWithMarks';
|
|
|
11
13
|
*/
|
|
12
14
|
|
|
13
15
|
// Stable composite token; attr names are pre-ordered by the caller.
|
|
14
|
-
var encodeNodeWithAttrs = function encodeNodeWithAttrs(
|
|
15
|
-
var _node$attrs;
|
|
16
|
-
var attrs = (_node$attrs = node.attrs) !== null && _node$attrs !== void 0 ? _node$attrs : {};
|
|
16
|
+
var encodeNodeWithAttrs = function encodeNodeWithAttrs(nodeTypeName, attrs, attrNames) {
|
|
17
17
|
var parts = attrNames.map(function (name) {
|
|
18
18
|
var _attrs$name;
|
|
19
19
|
return "".concat(name, "=").concat(JSON.stringify((_attrs$name = attrs[name]) !== null && _attrs$name !== void 0 ? _attrs$name : null));
|
|
20
20
|
});
|
|
21
|
-
return "".concat(
|
|
21
|
+
return "".concat(nodeTypeName, "|").concat(parts.join('|'));
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// Like the library default, but node types with a `diffableAttrs` rule fold their
|
|
@@ -29,11 +29,13 @@ export var attrAwareTokenEncoder = {
|
|
|
29
29
|
return encodeCharacterWithMarks(char, marks);
|
|
30
30
|
},
|
|
31
31
|
encodeNodeStart: function encodeNodeStart(node) {
|
|
32
|
-
|
|
32
|
+
// A one-sided reference is not comparable from an isolated token. Attribute-step comparison
|
|
33
|
+
// checks the reference when both versions have one.
|
|
34
|
+
var attrs = fg('platform_editor_normalize_excerpt_diff') && node.type.name === 'extension' && isExcerptInclude(node.attrs) ? getComparableExcerptIncludeAttrs(node.attrs) : node.attrs;
|
|
33
35
|
// Normalise variants (e.g. `panel_c1` → `panel`) so `diffableAttrs` needs one entry.
|
|
34
|
-
var attrNames = getDiffableAttrNames(getBaseNodeTypeName(node.type),
|
|
36
|
+
var attrNames = getDiffableAttrNames(getBaseNodeTypeName(node.type), attrs !== null && attrs !== void 0 ? attrs : {});
|
|
35
37
|
if (attrNames && attrNames.length > 0) {
|
|
36
|
-
return encodeNodeWithAttrs(node, attrNames);
|
|
38
|
+
return encodeNodeWithAttrs(node.type.name, attrs, attrNames);
|
|
37
39
|
}
|
|
38
40
|
return node.type.name;
|
|
39
41
|
},
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
import pick from 'lodash/pick';
|
|
3
|
+
var asRecord = function asRecord(value) {
|
|
4
|
+
return value !== null && _typeof(value) === 'object' && !Array.isArray(value) ? value : undefined;
|
|
5
|
+
};
|
|
6
|
+
export var isExcerptInclude = function isExcerptInclude(attrs) {
|
|
7
|
+
return attrs.extensionKey === 'excerpt-include';
|
|
8
|
+
};
|
|
9
|
+
export var getReferencedContentId = function getReferencedContentId(attrs) {
|
|
10
|
+
var _asRecord;
|
|
11
|
+
var parameters = asRecord(attrs.parameters);
|
|
12
|
+
var macroParams = asRecord(parameters === null || parameters === void 0 ? void 0 : parameters.macroParams);
|
|
13
|
+
var value = (_asRecord = asRecord(macroParams === null || macroParams === void 0 ? void 0 : macroParams._referencedContentId)) === null || _asRecord === void 0 ? void 0 : _asRecord.value;
|
|
14
|
+
return typeof value === 'string' ? value : undefined;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/** Compare macro identity and authored options, excluding publish-time rendering metadata. */
|
|
18
|
+
export var getComparableExcerptIncludeAttrs = function getComparableExcerptIncludeAttrs(attrs) {
|
|
19
|
+
return pick(attrs, ['extensionType', 'layout', 'parameters.macroMetadata.macroId.value', 'parameters.macroParams[""].value', 'parameters.macroParams.name.value', 'parameters.macroParams.nopanel.value', 'parameters.macroParams.inline.value']);
|
|
20
|
+
};
|
|
@@ -6,7 +6,9 @@ import omit from 'lodash/omit';
|
|
|
6
6
|
import { SetAttrsStep } from '@atlaskit/adf-schema/steps/set-attrs';
|
|
7
7
|
import { getBaseNodeTypeName } from '@atlaskit/editor-common/utils/node-type-utils';
|
|
8
8
|
import { AttrStep } from '@atlaskit/editor-prosemirror/transform';
|
|
9
|
+
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
9
10
|
import { getRequiredIncludedDiffableAttrs, isDiffableAttr } from './diffableAttrs';
|
|
11
|
+
import { getComparableExcerptIncludeAttrs, getReferencedContentId, isExcerptInclude } from './excerptIncludeAttrs';
|
|
10
12
|
var filterUndefined = function filterUndefined(x) {
|
|
11
13
|
return !!x;
|
|
12
14
|
};
|
|
@@ -44,6 +46,11 @@ var getComparableExtensionAttrs = function getComparableExtensionAttrs(node) {
|
|
|
44
46
|
return omit(node.attrs, transientExtensionAttrPaths);
|
|
45
47
|
};
|
|
46
48
|
var haveSameRelevantExtensionAttrs = function haveSameRelevantExtensionAttrs(beforeNode, afterNode) {
|
|
49
|
+
if (fg('platform_editor_normalize_excerpt_diff') && isExcerptInclude(beforeNode.attrs) && isExcerptInclude(afterNode.attrs)) {
|
|
50
|
+
var beforeReference = getReferencedContentId(beforeNode.attrs);
|
|
51
|
+
var afterReference = getReferencedContentId(afterNode.attrs);
|
|
52
|
+
return isEqual(getComparableExcerptIncludeAttrs(beforeNode.attrs), getComparableExcerptIncludeAttrs(afterNode.attrs)) && (beforeReference === undefined || afterReference === undefined || beforeReference === afterReference);
|
|
53
|
+
}
|
|
47
54
|
return isEqual(getComparableExtensionAttrs(beforeNode), getComparableExtensionAttrs(afterNode));
|
|
48
55
|
};
|
|
49
56
|
var getStepAttrs = function getStepAttrs(step) {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type ExtensionAttrs = Record<string, unknown>;
|
|
2
|
+
export declare const isExcerptInclude: (attrs: ExtensionAttrs) => boolean;
|
|
3
|
+
export declare const getReferencedContentId: (attrs: ExtensionAttrs) => string | undefined;
|
|
4
|
+
/** Compare macro identity and authored options, excluding publish-time rendering metadata. */
|
|
5
|
+
export declare const getComparableExcerptIncludeAttrs: (attrs: ExtensionAttrs) => ExtensionAttrs;
|
|
6
|
+
export {};
|
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.11",
|
|
4
4
|
"description": "ShowDiff plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -99,6 +99,9 @@
|
|
|
99
99
|
"confluence_ncs_step_diffing_version_history": {
|
|
100
100
|
"type": "boolean"
|
|
101
101
|
},
|
|
102
|
+
"platform_editor_normalize_excerpt_diff": {
|
|
103
|
+
"type": "boolean"
|
|
104
|
+
},
|
|
102
105
|
"platform_editor_diff_inline_mark_changes": {
|
|
103
106
|
"type": "boolean"
|
|
104
107
|
}
|