@atlaskit/editor-json-transformer 9.2.0 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/JSONTransformer-2.js +82 -0
- package/dist/cjs/SchemaStage.js +11 -0
- package/dist/cjs/index.js +7 -5
- package/dist/cjs/jsonTransformer.js +18 -260
- package/dist/cjs/sanitize/remove-marks.js +15 -10
- package/dist/cjs/sanitize/remove-non-annotation-marks.js +19 -0
- package/dist/cjs/sanitize/sanitize-node.js +6 -5
- package/dist/cjs/toJSON.js +189 -0
- package/dist/es2019/JSONTransformer-2.js +59 -0
- package/dist/es2019/SchemaStage.js +5 -0
- package/dist/es2019/index.js +4 -2
- package/dist/es2019/jsonTransformer.js +13 -236
- package/dist/es2019/sanitize/remove-marks.js +9 -9
- package/dist/es2019/sanitize/remove-non-annotation-marks.js +9 -0
- package/dist/es2019/sanitize/sanitize-node.js +2 -1
- package/dist/es2019/sanitize.js +7 -0
- package/dist/es2019/toJSON.js +176 -0
- package/dist/esm/JSONTransformer-2.js +75 -0
- package/dist/esm/SchemaStage.js +5 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/jsonTransformer.js +13 -258
- package/dist/esm/sanitize/remove-marks.js +9 -9
- package/dist/esm/sanitize/remove-non-annotation-marks.js +12 -0
- package/dist/esm/sanitize/sanitize-node.js +2 -1
- package/dist/esm/sanitize.js +7 -0
- package/dist/esm/toJSON.js +182 -0
- package/dist/types/JSONTransformer-2.d.ts +27 -0
- package/dist/types/SchemaStage.d.ts +4 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/jsonTransformer.d.ts +10 -37
- package/dist/types/sanitize/remove-marks.d.ts +4 -7
- package/dist/types/sanitize/remove-non-annotation-marks.d.ts +8 -0
- package/dist/types/sanitize.d.ts +6 -0
- package/dist/types/toJSON.d.ts +11 -0
- package/main/package.json +4 -4
- package/markOverrideRules/package.json +4 -4
- package/package.json +4 -4
- package/sanitize/remove-marks/package.json +4 -4
- package/sanitize/sanitize-node/package.json +4 -4
- package/tsconfig.json +5 -15
- package/types/package.json +4 -4
- package/dist/cjs/entry-points/main.js +0 -12
- package/dist/cjs/entry-points/markOverrideRules.js +0 -12
- package/dist/cjs/entry-points/sanitize-remove-marks.js +0 -12
- package/dist/cjs/entry-points/sanitize-sanitize-node.js +0 -12
- package/dist/cjs/entry-points/types.js +0 -1
- package/dist/es2019/entry-points/main.js +0 -2
- package/dist/es2019/entry-points/markOverrideRules.js +0 -2
- package/dist/es2019/entry-points/sanitize-remove-marks.js +0 -2
- package/dist/es2019/entry-points/sanitize-sanitize-node.js +0 -2
- package/dist/es2019/entry-points/types.js +0 -0
- package/dist/esm/entry-points/main.js +0 -2
- package/dist/esm/entry-points/markOverrideRules.js +0 -2
- package/dist/esm/entry-points/sanitize-remove-marks.js +0 -2
- package/dist/esm/entry-points/sanitize-sanitize-node.js +0 -2
- package/dist/esm/entry-points/types.js +0 -0
- package/dist/types/entry-points/main.d.ts +0 -1
- package/dist/types/entry-points/markOverrideRules.d.ts +0 -1
- package/dist/types/entry-points/sanitize-remove-marks.d.ts +0 -1
- package/dist/types/entry-points/sanitize-sanitize-node.d.ts +0 -1
- package/dist/types/entry-points/types.d.ts +0 -1
- package/editor-json-transformer.docs.tsx +0 -43
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/editor-json-transformer
|
|
2
2
|
|
|
3
|
+
## 9.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`0f11ee2d1f0a4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f11ee2d1f0a4) -
|
|
8
|
+
Apply Stage 1 Volt standards (one export per file) to `@atlaskit/editor-json-transformer`.
|
|
9
|
+
|
|
10
|
+
The `exports` map now points directly at the implementation modules instead of routing through
|
|
11
|
+
`src/entry-points/*` shims, and multi-export source files have been split so each module has a
|
|
12
|
+
single export. No entry point is removed and no public binding is dropped — every subpath exposes
|
|
13
|
+
exactly the same bindings as before, with `@deprecated` re-export shims left in place for the
|
|
14
|
+
Stage 2 consumer migration.
|
|
15
|
+
|
|
3
16
|
## 9.2.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.JSONTransformer = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
11
|
+
var _schemaDefault = require("@atlaskit/adf-schema/schema-default");
|
|
12
|
+
var _sanitizeNode = require("./sanitize/sanitize-node");
|
|
13
|
+
var _toJSON = require("./toJSON");
|
|
14
|
+
var createDocFromContent = function createDocFromContent(content) {
|
|
15
|
+
return {
|
|
16
|
+
version: 1,
|
|
17
|
+
type: 'doc',
|
|
18
|
+
content: content || []
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
var emptyDoc = createDocFromContent([{
|
|
22
|
+
type: 'paragraph',
|
|
23
|
+
content: []
|
|
24
|
+
}]);
|
|
25
|
+
var JSONTransformer = exports.JSONTransformer = /*#__PURE__*/function () {
|
|
26
|
+
/**
|
|
27
|
+
* Creates a new JSONTransformer instance.
|
|
28
|
+
* @param schema The current editor schema
|
|
29
|
+
* @param mentionMap An optional mapping of user IDs to mention names. This is used by the encoder to substitute empty
|
|
30
|
+
* mention node.attr.text values with mapped names.
|
|
31
|
+
*/
|
|
32
|
+
function JSONTransformer() {
|
|
33
|
+
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _schemaDefault.defaultSchema;
|
|
34
|
+
var mentionMap = arguments.length > 1 ? arguments[1] : undefined;
|
|
35
|
+
(0, _classCallCheck2.default)(this, JSONTransformer);
|
|
36
|
+
this.schema = schema;
|
|
37
|
+
this.mentionMap = mentionMap;
|
|
38
|
+
}
|
|
39
|
+
return (0, _createClass2.default)(JSONTransformer, [{
|
|
40
|
+
key: "encode",
|
|
41
|
+
value: function encode(node) {
|
|
42
|
+
var _this = this;
|
|
43
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
44
|
+
var content = [];
|
|
45
|
+
node.content.forEach(function (child) {
|
|
46
|
+
content.push((0, _sanitizeNode.sanitizeNode)((0, _toJSON.toJSON)(child, _this.mentionMap), options));
|
|
47
|
+
});
|
|
48
|
+
if (!content || (0, _isEqual.default)(content, emptyDoc.content)) {
|
|
49
|
+
return createDocFromContent([]);
|
|
50
|
+
}
|
|
51
|
+
return createDocFromContent(content);
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
key: "internalParse",
|
|
55
|
+
value: function internalParse(content, schema) {
|
|
56
|
+
var doc = schema.nodeFromJSON(content);
|
|
57
|
+
doc.check();
|
|
58
|
+
return doc;
|
|
59
|
+
}
|
|
60
|
+
}, {
|
|
61
|
+
key: "parse",
|
|
62
|
+
value: function parse(content, stage) {
|
|
63
|
+
if (content.type !== 'doc') {
|
|
64
|
+
throw new Error('Expected content format to be ADF');
|
|
65
|
+
}
|
|
66
|
+
var schema = !!stage ? (0, _schemaDefault.getSchemaBasedOnStage)(stage) : this.schema;
|
|
67
|
+
if (!content.content || content.content.length === 0) {
|
|
68
|
+
return this.internalParse(emptyDoc, schema);
|
|
69
|
+
}
|
|
70
|
+
return this.internalParse(content, schema);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* This method is used to encode a single node
|
|
75
|
+
*/
|
|
76
|
+
}, {
|
|
77
|
+
key: "encodeNode",
|
|
78
|
+
value: function encodeNode(node) {
|
|
79
|
+
return (0, _sanitizeNode.sanitizeNode)((0, _toJSON.toJSON)(node, this.mentionMap));
|
|
80
|
+
}
|
|
81
|
+
}]);
|
|
82
|
+
}();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SchemaStage = void 0;
|
|
7
|
+
var SchemaStage = exports.SchemaStage = /*#__PURE__*/function (SchemaStage) {
|
|
8
|
+
SchemaStage["FINAL"] = "final";
|
|
9
|
+
SchemaStage["STAGE_0"] = "stage0";
|
|
10
|
+
return SchemaStage;
|
|
11
|
+
}({});
|
package/dist/cjs/index.js
CHANGED
|
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
Object.defineProperty(exports, "JSONTransformer", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function get() {
|
|
9
|
-
return
|
|
9
|
+
return _JSONTransformer.JSONTransformer;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "SchemaStage", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function get() {
|
|
15
|
-
return
|
|
15
|
+
return _SchemaStage.SchemaStage;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "isJSONDocNode", {
|
|
@@ -24,8 +24,10 @@ Object.defineProperty(exports, "isJSONDocNode", {
|
|
|
24
24
|
Object.defineProperty(exports, "nodeToJSON", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function get() {
|
|
27
|
-
return
|
|
27
|
+
return _toJSON.toJSON;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
var
|
|
31
|
-
var
|
|
30
|
+
var _JSONTransformer = require("./JSONTransformer-2");
|
|
31
|
+
var _SchemaStage = require("./SchemaStage");
|
|
32
|
+
var _toJSON = require("./toJSON");
|
|
33
|
+
var _main = require("./main");
|
|
@@ -1,268 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
15
|
-
var _adfSchema = require("@atlaskit/adf-schema");
|
|
16
|
-
var _schemaDefault = require("@atlaskit/adf-schema/schema-default");
|
|
17
|
-
var _markOverrideRules = require("./markOverrideRules");
|
|
18
|
-
var _sanitizeNode = require("./sanitize/sanitize-node");
|
|
19
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof3(i) ? i : i + ""; }
|
|
20
|
-
function _toPrimitive(t, r) { if ("object" != _typeof3(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof3(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
21
|
-
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; }
|
|
22
|
-
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; }
|
|
23
|
-
var SchemaStage = exports.SchemaStage = /*#__PURE__*/function (SchemaStage) {
|
|
24
|
-
SchemaStage["FINAL"] = "final";
|
|
25
|
-
SchemaStage["STAGE_0"] = "stage0";
|
|
26
|
-
return SchemaStage;
|
|
27
|
-
}({});
|
|
28
|
-
var isType = function isType(type) {
|
|
29
|
-
return function (node) {
|
|
30
|
-
return node.type.name === type;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// Create a Set of node types that should have empty attrs removed
|
|
35
|
-
var NODES_WITH_EMPTY_ATTRS_REMOVAL = new Set(['paragraph', 'layoutSection', 'blockquote', 'nestedExpand', 'bulletList', 'listItem', 'orderedList', 'rule', 'caption', 'tableRow', 'media', 'mediaSingle', 'mediaInline']);
|
|
36
|
-
var isCodeBlock = isType('codeBlock');
|
|
37
|
-
var isMediaNode = isType('media');
|
|
38
|
-
var isMediaInline = isType('mediaInline');
|
|
39
|
-
var isMediaSingleNode = isType('mediaSingle');
|
|
40
|
-
var isMentionNode = isType('mention');
|
|
41
|
-
var isParagraph = isType('paragraph');
|
|
42
|
-
var isHeading = isType('heading');
|
|
43
|
-
var isTable = isType('table');
|
|
44
|
-
var isTableCell = isType('tableCell');
|
|
45
|
-
var isTableHeader = isType('tableHeader');
|
|
46
|
-
var isLinkMark = isType('link');
|
|
47
|
-
var isUnsupportedMark = isType('unsupportedMark');
|
|
48
|
-
var isUnsupportedNodeAttributeMark = isType('unsupportedNodeAttribute');
|
|
49
|
-
var isExpand = isType('expand');
|
|
50
|
-
var isNestedExpand = isType('nestedExpand');
|
|
51
|
-
var isUnsupportedNode = function isUnsupportedNode(node) {
|
|
52
|
-
return isType('unsupportedBlock')(node) || isType('unsupportedInline')(node);
|
|
53
|
-
};
|
|
54
|
-
var isDataConsumer = isType('dataConsumer');
|
|
55
|
-
var isFragmentMark = isType('fragment');
|
|
56
|
-
var isHardBreak = isType('hardBreak');
|
|
57
|
-
var createDocFromContent = function createDocFromContent(content) {
|
|
58
|
-
return {
|
|
59
|
-
version: 1,
|
|
60
|
-
type: 'doc',
|
|
61
|
-
content: content || []
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
var emptyDoc = createDocFromContent([{
|
|
65
|
-
type: 'paragraph',
|
|
66
|
-
content: []
|
|
67
|
-
}]);
|
|
68
|
-
|
|
69
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
-
var _filterNull = function filterNull(subject) {
|
|
71
|
-
var output = _objectSpread({}, subject);
|
|
72
|
-
// eslint-disable-next-line guard-for-in
|
|
73
|
-
for (var key in output) {
|
|
74
|
-
var current = output[key];
|
|
75
|
-
if (current === null) {
|
|
76
|
-
var _output = output,
|
|
77
|
-
unusedKey = _output[key],
|
|
78
|
-
filteredObj = (0, _objectWithoutProperties2.default)(_output, [key].map(_toPropertyKey));
|
|
79
|
-
output = filteredObj;
|
|
80
|
-
} else if ((0, _typeof2.default)(current) === 'object' && !Array.isArray(current)) {
|
|
81
|
-
output[key] = _filterNull(current);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return output;
|
|
85
|
-
};
|
|
86
|
-
var canOverrideMark = function canOverrideMark(mark, existingMarks) {
|
|
87
|
-
if (existingMarks.some(function (e) {
|
|
88
|
-
return mark.attrs.originalValue.type === e.type.name;
|
|
89
|
-
})) {
|
|
90
|
-
return (0, _markOverrideRules.markOverrideRuleFor)(mark.attrs.originalValue.type).canOverrideUnsupportedMark();
|
|
91
|
-
}
|
|
92
|
-
return false;
|
|
93
|
-
};
|
|
94
|
-
var getUnwrappedNodeAttributes = function getUnwrappedNodeAttributes(node, mark, obj) {
|
|
95
|
-
var nodeAttributes = node.type.spec.attrs;
|
|
96
|
-
var attributes = _objectSpread(_objectSpread({}, mark.attrs.unsupported), obj.attrs);
|
|
97
|
-
// Ignored via go/ees005
|
|
98
|
-
// eslint-disable-next-line no-var
|
|
99
|
-
for (var key in obj.attrs) {
|
|
100
|
-
if (obj.attrs.hasOwnProperty(key)) {
|
|
101
|
-
var attribute = nodeAttributes ? nodeAttributes[key] : null;
|
|
102
|
-
if (attribute) {
|
|
103
|
-
if (attribute.default === node.attrs[key] && mark.attrs.unsupported[key]) {
|
|
104
|
-
return _objectSpread(_objectSpread({}, attributes), {}, (0, _defineProperty2.default)({}, key, mark.attrs.unsupported[key]));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return attributes;
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Transforms a Prosemirror node into a JSON representation. Compared with
|
|
114
|
-
* native Prosemirror JSON, this representation ensures we have valid ADF attrs.
|
|
115
|
-
*
|
|
116
|
-
* @param node The Prosemirror node to transform.
|
|
117
|
-
* @param mentionMap A map of mention IDs to their display names.
|
|
118
|
-
* @returns The JSON representation of the node.
|
|
119
|
-
*/
|
|
120
|
-
var _toJSON = exports.toJSON = function toJSON(node, mentionMap) {
|
|
121
|
-
var obj = {
|
|
122
|
-
type: node.type.name
|
|
123
|
-
};
|
|
124
|
-
if (isUnsupportedNode(node)) {
|
|
125
|
-
return node.attrs.originalValue;
|
|
126
|
-
} else if (isMediaNode(node)) {
|
|
127
|
-
obj.attrs = (0, _adfSchema.mediaToJSON)(node).attrs;
|
|
128
|
-
} else if (isMediaSingleNode(node)) {
|
|
129
|
-
obj.attrs = (0, _adfSchema.mediaSingleToJSON)(node).attrs;
|
|
130
|
-
} else if (isMediaInline(node)) {
|
|
131
|
-
obj.attrs = (0, _adfSchema.mediaToJSON)(node).attrs;
|
|
132
|
-
} else if (isMentionNode(node)) {
|
|
133
|
-
obj.attrs = (0, _adfSchema.mentionToJSON)(node).attrs;
|
|
134
|
-
} else if (isCodeBlock(node)) {
|
|
135
|
-
obj.attrs = (0, _adfSchema.codeBlockToJSON)(node).attrs;
|
|
136
|
-
} else if (isTable(node)) {
|
|
137
|
-
obj.attrs = (0, _adfSchema.tableToJSON)(node).attrs;
|
|
138
|
-
} else if (isTableCell(node)) {
|
|
139
|
-
obj.attrs = (0, _adfSchema.toJSONTableCell)(node).attrs;
|
|
140
|
-
} else if (isTableHeader(node)) {
|
|
141
|
-
obj.attrs = (0, _adfSchema.toJSONTableHeader)(node).attrs;
|
|
142
|
-
} else if (isExpand(node) || isNestedExpand(node)) {
|
|
143
|
-
obj.attrs = (0, _adfSchema.expandToJSON)(node).attrs;
|
|
144
|
-
} else if (node.attrs && Object.keys(node.attrs).length) {
|
|
145
|
-
obj.attrs = node.attrs;
|
|
146
|
-
}
|
|
147
|
-
if (obj.attrs) {
|
|
148
|
-
obj.attrs = _filterNull(obj.attrs);
|
|
149
|
-
}
|
|
150
|
-
if (isMentionNode(node) && mentionMap) {
|
|
151
|
-
var _text, _obj$attrs;
|
|
152
|
-
// If the mentionMap exists and has a name defined then we should use it and prepend @ to the begining of it.
|
|
153
|
-
var name = !!(mentionMap !== null && mentionMap !== void 0 && mentionMap[node.attrs.id]) ? "@".concat(mentionMap[node.attrs.id]) : '';
|
|
154
|
-
// Ignored via go/ees005
|
|
155
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
156
|
-
var text = (_text = (_obj$attrs = obj.attrs) === null || _obj$attrs === void 0 ? void 0 : _obj$attrs.text) !== null && _text !== void 0 ? _text : '';
|
|
157
|
-
obj.attrs = _objectSpread(_objectSpread({}, obj.attrs), {}, {
|
|
158
|
-
// If an explicit text value is set on the mention then that should take priority over the mentionMap value.
|
|
159
|
-
text: !!text ? text : name
|
|
160
|
-
});
|
|
6
|
+
Object.defineProperty(exports, "JSONTransformer", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _JSONTransformer.JSONTransformer;
|
|
161
10
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
} else {
|
|
168
|
-
node.content.forEach(function (child) {
|
|
169
|
-
obj.content = obj.content || [];
|
|
170
|
-
obj.content.push(_toJSON(child, mentionMap));
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
if (isParagraph(node) || isHeading(node)) {
|
|
174
|
-
obj.content = obj.content || [];
|
|
175
|
-
}
|
|
176
|
-
if (node.marks.length) {
|
|
177
|
-
// Run any custom mark serialisers
|
|
178
|
-
var parsedMarks = node.marks.map(function (mark) {
|
|
179
|
-
if (isUnsupportedMark(mark)) {
|
|
180
|
-
return canOverrideMark(mark, node.marks) ? null : mark.attrs.originalValue;
|
|
181
|
-
} else if (isUnsupportedNodeAttributeMark(mark)) {
|
|
182
|
-
return null;
|
|
183
|
-
} else if (isLinkMark(mark)) {
|
|
184
|
-
return (0, _adfSchema.linkToJSON)(mark);
|
|
185
|
-
} else if (isDataConsumer(mark)) {
|
|
186
|
-
var _serialised$attrs$sou;
|
|
187
|
-
var serialised = (0, _adfSchema.dataConsumerToJSON)(mark);
|
|
188
|
-
return !serialised.attrs.sources || ((_serialised$attrs$sou = serialised.attrs.sources) === null || _serialised$attrs$sou === void 0 ? void 0 : _serialised$attrs$sou.length) === 0 ? null : serialised;
|
|
189
|
-
} else if (isFragmentMark(mark)) {
|
|
190
|
-
var fragmentMark = (0, _adfSchema.fragmentToJSON)(mark);
|
|
191
|
-
if (!fragmentMark.attrs.localId) {
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
return fragmentMark;
|
|
195
|
-
} else {
|
|
196
|
-
return mark.toJSON();
|
|
197
|
-
}
|
|
198
|
-
}).filter(function (maybeMark) {
|
|
199
|
-
return maybeMark !== null;
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
// Only set if we have a non-empty array, otherwise explicitly undefine it (as we only run this path if `node.marks.length`)
|
|
203
|
-
obj.marks = (parsedMarks === null || parsedMarks === void 0 ? void 0 : parsedMarks.length) > 0 ? parsedMarks : undefined;
|
|
204
|
-
var nodeAttributeMark = node.marks.find(isUnsupportedNodeAttributeMark);
|
|
205
|
-
if (nodeAttributeMark && nodeAttributeMark.attrs.type.nodeType === obj.type) {
|
|
206
|
-
obj.attrs = _objectSpread({}, getUnwrappedNodeAttributes(node, nodeAttributeMark, obj));
|
|
207
|
-
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "SchemaStage", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _SchemaStage.SchemaStage;
|
|
208
16
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
* @param schema The current editor schema
|
|
215
|
-
* @param mentionMap An optional mapping of user IDs to mention names. This is used by the encoder to substitute empty
|
|
216
|
-
* mention node.attr.text values with mapped names.
|
|
217
|
-
*/
|
|
218
|
-
function JSONTransformer() {
|
|
219
|
-
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _schemaDefault.defaultSchema;
|
|
220
|
-
var mentionMap = arguments.length > 1 ? arguments[1] : undefined;
|
|
221
|
-
(0, _classCallCheck2.default)(this, JSONTransformer);
|
|
222
|
-
this.schema = schema;
|
|
223
|
-
this.mentionMap = mentionMap;
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "toJSON", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _toJSON.toJSON;
|
|
224
22
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
230
|
-
var content = [];
|
|
231
|
-
node.content.forEach(function (child) {
|
|
232
|
-
content.push((0, _sanitizeNode.sanitizeNode)(_toJSON(child, _this.mentionMap), options));
|
|
233
|
-
});
|
|
234
|
-
if (!content || (0, _isEqual.default)(content, emptyDoc.content)) {
|
|
235
|
-
return createDocFromContent([]);
|
|
236
|
-
}
|
|
237
|
-
return createDocFromContent(content);
|
|
238
|
-
}
|
|
239
|
-
}, {
|
|
240
|
-
key: "internalParse",
|
|
241
|
-
value: function internalParse(content, schema) {
|
|
242
|
-
var doc = schema.nodeFromJSON(content);
|
|
243
|
-
doc.check();
|
|
244
|
-
return doc;
|
|
245
|
-
}
|
|
246
|
-
}, {
|
|
247
|
-
key: "parse",
|
|
248
|
-
value: function parse(content, stage) {
|
|
249
|
-
if (content.type !== 'doc') {
|
|
250
|
-
throw new Error('Expected content format to be ADF');
|
|
251
|
-
}
|
|
252
|
-
var schema = !!stage ? (0, _schemaDefault.getSchemaBasedOnStage)(stage) : this.schema;
|
|
253
|
-
if (!content.content || content.content.length === 0) {
|
|
254
|
-
return this.internalParse(emptyDoc, schema);
|
|
255
|
-
}
|
|
256
|
-
return this.internalParse(content, schema);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* This method is used to encode a single node
|
|
261
|
-
*/
|
|
262
|
-
}, {
|
|
263
|
-
key: "encodeNode",
|
|
264
|
-
value: function encodeNode(node) {
|
|
265
|
-
return (0, _sanitizeNode.sanitizeNode)(_toJSON(node, this.mentionMap));
|
|
266
|
-
}
|
|
267
|
-
}]);
|
|
268
|
-
}();
|
|
23
|
+
});
|
|
24
|
+
var _SchemaStage = require("./SchemaStage");
|
|
25
|
+
var _toJSON = require("./toJSON");
|
|
26
|
+
var _JSONTransformer = require("./JSONTransformer-2");
|
|
@@ -5,21 +5,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.removeMarks = removeMarks;
|
|
8
|
-
exports
|
|
8
|
+
Object.defineProperty(exports, "removeNonAnnotationMarks", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _removeNonAnnotationMarks.removeNonAnnotationMarks;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
9
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _removeNonAnnotationMarks = require("./remove-non-annotation-marks");
|
|
10
16
|
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; }
|
|
11
17
|
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; }
|
|
18
|
+
/* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
|
|
19
|
+
// Disable no-re-export rule for entry point files
|
|
20
|
+
/* eslint-disable @atlaskit/editor/no-re-export */
|
|
21
|
+
|
|
12
22
|
function removeMarks(node) {
|
|
13
23
|
var newNode = _objectSpread({}, node);
|
|
14
24
|
delete newNode.marks;
|
|
15
25
|
return newNode;
|
|
16
26
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return mark.type === 'annotation';
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return newNode;
|
|
25
|
-
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Use `import { removeNonAnnotationMarks } from '@atlaskit/editor-json-transformer/sanitize/remove-marks'` instead.
|
|
30
|
+
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.removeNonAnnotationMarks = removeNonAnnotationMarks;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
function removeNonAnnotationMarks(node) {
|
|
12
|
+
var newNode = _objectSpread({}, node);
|
|
13
|
+
if (node.marks) {
|
|
14
|
+
newNode.marks = node.marks.filter(function (mark) {
|
|
15
|
+
return mark.type === 'annotation';
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return newNode;
|
|
19
|
+
}
|
|
@@ -9,6 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
9
9
|
var _transforms = require("@atlaskit/adf-utils/transforms");
|
|
10
10
|
var _traverse = require("@atlaskit/adf-utils/traverse");
|
|
11
11
|
var _removeMarks = require("./remove-marks");
|
|
12
|
+
var _removeNonAnnotationMarks = require("./remove-non-annotation-marks");
|
|
12
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
14
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
15
|
var hasNestedTable = function hasNestedTable(tableCellNode) {
|
|
@@ -34,7 +35,7 @@ function sanitizeNode(json) {
|
|
|
34
35
|
},
|
|
35
36
|
status: function status(node) {
|
|
36
37
|
if (node.attrs && !!node.attrs.text) {
|
|
37
|
-
return (0,
|
|
38
|
+
return (0, _removeNonAnnotationMarks.removeNonAnnotationMarks)(node);
|
|
38
39
|
}
|
|
39
40
|
return false; // empty status
|
|
40
41
|
},
|
|
@@ -61,11 +62,11 @@ function sanitizeNode(json) {
|
|
|
61
62
|
type: 'panel'
|
|
62
63
|
});
|
|
63
64
|
},
|
|
64
|
-
emoji:
|
|
65
|
-
mention:
|
|
66
|
-
date:
|
|
65
|
+
emoji: _removeNonAnnotationMarks.removeNonAnnotationMarks,
|
|
66
|
+
mention: _removeNonAnnotationMarks.removeNonAnnotationMarks,
|
|
67
|
+
date: _removeNonAnnotationMarks.removeNonAnnotationMarks,
|
|
67
68
|
hardBreak: _removeMarks.removeMarks,
|
|
68
|
-
inlineCard:
|
|
69
|
+
inlineCard: _removeNonAnnotationMarks.removeNonAnnotationMarks
|
|
69
70
|
});
|
|
70
71
|
return sanitizedJSON;
|
|
71
72
|
}
|