@atlaskit/adf-utils 18.0.1 → 18.0.3

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.
Files changed (143) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/builders/marks/alignment.js +0 -3
  3. package/dist/cjs/builders/marks/annotation.js +0 -3
  4. package/dist/cjs/builders/marks/breakout.js +0 -3
  5. package/dist/cjs/builders/marks/code.js +0 -3
  6. package/dist/cjs/builders/marks/data-consumer.js +0 -3
  7. package/dist/cjs/builders/marks/em.js +0 -3
  8. package/dist/cjs/builders/marks/fragment.js +0 -3
  9. package/dist/cjs/builders/marks/indentation.js +0 -3
  10. package/dist/cjs/builders/marks/link.js +0 -3
  11. package/dist/cjs/builders/marks/strike.js +0 -3
  12. package/dist/cjs/builders/marks/strong.js +0 -3
  13. package/dist/cjs/builders/marks/subsup.js +0 -3
  14. package/dist/cjs/builders/marks/text-color.js +0 -3
  15. package/dist/cjs/builders/marks/underline.js +0 -3
  16. package/dist/cjs/builders/nodes/block-card.js +0 -2
  17. package/dist/cjs/builders/nodes/blockquote.js +0 -3
  18. package/dist/cjs/builders/nodes/bodied-extension.js +0 -3
  19. package/dist/cjs/builders/nodes/bullet-list.js +0 -3
  20. package/dist/cjs/builders/nodes/caption.js +0 -3
  21. package/dist/cjs/builders/nodes/code-block.js +0 -3
  22. package/dist/cjs/builders/nodes/date.js +0 -2
  23. package/dist/cjs/builders/nodes/decision-item.js +0 -3
  24. package/dist/cjs/builders/nodes/decision-list.js +0 -3
  25. package/dist/cjs/builders/nodes/doc.js +0 -3
  26. package/dist/cjs/builders/nodes/embed-card.js +0 -2
  27. package/dist/cjs/builders/nodes/emoji.js +0 -2
  28. package/dist/cjs/builders/nodes/expand.js +0 -3
  29. package/dist/cjs/builders/nodes/extension.js +0 -2
  30. package/dist/cjs/builders/nodes/hard-break.js +0 -2
  31. package/dist/cjs/builders/nodes/heading.js +0 -3
  32. package/dist/cjs/builders/nodes/inline-card.js +0 -2
  33. package/dist/cjs/builders/nodes/inline-extension.js +0 -2
  34. package/dist/cjs/builders/nodes/layout-column.js +0 -2
  35. package/dist/cjs/builders/nodes/layout-section.js +0 -2
  36. package/dist/cjs/builders/nodes/list-item.js +0 -2
  37. package/dist/cjs/builders/nodes/media-group.js +0 -3
  38. package/dist/cjs/builders/nodes/media-inline.js +0 -2
  39. package/dist/cjs/builders/nodes/media-single.js +0 -2
  40. package/dist/cjs/builders/nodes/media.js +0 -2
  41. package/dist/cjs/builders/nodes/mention.js +0 -6
  42. package/dist/cjs/builders/nodes/nested-expand.js +0 -3
  43. package/dist/cjs/builders/nodes/ordered-list.js +0 -3
  44. package/dist/cjs/builders/nodes/panel.js +0 -3
  45. package/dist/cjs/builders/nodes/paragraph.js +0 -4
  46. package/dist/cjs/builders/nodes/placeholder.js +0 -2
  47. package/dist/cjs/builders/nodes/rule.js +0 -2
  48. package/dist/cjs/builders/nodes/status.js +0 -2
  49. package/dist/cjs/builders/nodes/table-cell.js +0 -3
  50. package/dist/cjs/builders/nodes/table-header.js +0 -3
  51. package/dist/cjs/builders/nodes/table-row.js +0 -2
  52. package/dist/cjs/builders/nodes/table.js +0 -3
  53. package/dist/cjs/builders/nodes/task-item.js +0 -3
  54. package/dist/cjs/builders/nodes/task-list.js +0 -3
  55. package/dist/cjs/builders/nodes/text.js +0 -2
  56. package/dist/cjs/builders/utils/apply-mark.js +0 -5
  57. package/dist/cjs/builders/utils/create-text-nodes.js +0 -3
  58. package/dist/cjs/builders/utils/is-duplicate-mark.js +0 -3
  59. package/dist/cjs/builders.js +0 -51
  60. package/dist/cjs/empty-adf.js +0 -2
  61. package/dist/cjs/scrub/default-node-replacements.js +0 -11
  62. package/dist/cjs/scrub/default-value-replacements.js +0 -2
  63. package/dist/cjs/scrub/hash.js +0 -4
  64. package/dist/cjs/scrub/scrub-adf.js +2 -25
  65. package/dist/cjs/scrub/scrub-content.js +7 -37
  66. package/dist/cjs/scrub.js +0 -2
  67. package/dist/cjs/transforms/dedupe-marks-transform.js +6 -24
  68. package/dist/cjs/transforms/helpers.js +0 -3
  69. package/dist/cjs/transforms/indentation-marks-transform.js +6 -14
  70. package/dist/cjs/transforms/invalid-media-content-transform.js +3 -22
  71. package/dist/cjs/transforms/media-link-transform.js +2 -12
  72. package/dist/cjs/transforms/nodes-missing-content-transform.js +0 -44
  73. package/dist/cjs/transforms/text-link-code-transform.js +3 -13
  74. package/dist/cjs/transforms.js +0 -6
  75. package/dist/cjs/traverse/filter.js +0 -2
  76. package/dist/cjs/traverse/map.js +0 -2
  77. package/dist/cjs/traverse/reduce.js +0 -2
  78. package/dist/cjs/traverse/traverse.js +1 -18
  79. package/dist/cjs/traverse.js +0 -4
  80. package/dist/cjs/validator/rules.js +0 -2
  81. package/dist/cjs/validator/specs/index.js +0 -83
  82. package/dist/cjs/validator/utils.js +4 -20
  83. package/dist/cjs/validator/validator.js +67 -218
  84. package/dist/cjs/validator.js +0 -1
  85. package/dist/cjs/version.json +1 -1
  86. package/dist/es2019/builders/utils/apply-mark.js +0 -2
  87. package/dist/es2019/builders/utils/is-duplicate-mark.js +0 -1
  88. package/dist/es2019/builders.js +4 -1
  89. package/dist/es2019/scrub/default-node-replacements.js +2 -7
  90. package/dist/es2019/scrub/hash.js +0 -2
  91. package/dist/es2019/scrub/scrub-adf.js +4 -10
  92. package/dist/es2019/scrub/scrub-content.js +7 -20
  93. package/dist/es2019/transforms/dedupe-marks-transform.js +7 -18
  94. package/dist/es2019/transforms/helpers.js +0 -1
  95. package/dist/es2019/transforms/indentation-marks-transform.js +10 -10
  96. package/dist/es2019/transforms/invalid-media-content-transform.js +5 -15
  97. package/dist/es2019/transforms/media-link-transform.js +2 -9
  98. package/dist/es2019/transforms/nodes-missing-content-transform.js +6 -38
  99. package/dist/es2019/transforms/text-link-code-transform.js +5 -8
  100. package/dist/es2019/traverse/traverse.js +5 -13
  101. package/dist/es2019/validator/utils.js +4 -2
  102. package/dist/es2019/validator/validator.js +60 -174
  103. package/dist/es2019/version.json +1 -1
  104. package/dist/esm/builders/nodes/blockquote.js +0 -1
  105. package/dist/esm/builders/nodes/bodied-extension.js +0 -1
  106. package/dist/esm/builders/nodes/bullet-list.js +0 -1
  107. package/dist/esm/builders/nodes/caption.js +0 -1
  108. package/dist/esm/builders/nodes/code-block.js +0 -1
  109. package/dist/esm/builders/nodes/decision-item.js +0 -1
  110. package/dist/esm/builders/nodes/decision-list.js +0 -1
  111. package/dist/esm/builders/nodes/doc.js +0 -1
  112. package/dist/esm/builders/nodes/expand.js +0 -1
  113. package/dist/esm/builders/nodes/heading.js +0 -1
  114. package/dist/esm/builders/nodes/media-group.js +0 -1
  115. package/dist/esm/builders/nodes/mention.js +0 -3
  116. package/dist/esm/builders/nodes/nested-expand.js +0 -1
  117. package/dist/esm/builders/nodes/ordered-list.js +0 -1
  118. package/dist/esm/builders/nodes/panel.js +0 -1
  119. package/dist/esm/builders/nodes/paragraph.js +0 -1
  120. package/dist/esm/builders/nodes/table-cell.js +0 -1
  121. package/dist/esm/builders/nodes/table-header.js +0 -1
  122. package/dist/esm/builders/nodes/table.js +0 -1
  123. package/dist/esm/builders/nodes/task-item.js +0 -1
  124. package/dist/esm/builders/nodes/task-list.js +0 -1
  125. package/dist/esm/builders/utils/apply-mark.js +0 -2
  126. package/dist/esm/builders/utils/is-duplicate-mark.js +0 -1
  127. package/dist/esm/builders.js +4 -1
  128. package/dist/esm/scrub/default-node-replacements.js +0 -9
  129. package/dist/esm/scrub/hash.js +0 -2
  130. package/dist/esm/scrub/scrub-adf.js +2 -17
  131. package/dist/esm/scrub/scrub-content.js +7 -28
  132. package/dist/esm/transforms/dedupe-marks-transform.js +6 -20
  133. package/dist/esm/transforms/helpers.js +0 -1
  134. package/dist/esm/transforms/indentation-marks-transform.js +6 -11
  135. package/dist/esm/transforms/invalid-media-content-transform.js +3 -18
  136. package/dist/esm/transforms/media-link-transform.js +2 -9
  137. package/dist/esm/transforms/nodes-missing-content-transform.js +0 -38
  138. package/dist/esm/transforms/text-link-code-transform.js +3 -10
  139. package/dist/esm/traverse/traverse.js +1 -15
  140. package/dist/esm/validator/utils.js +4 -2
  141. package/dist/esm/validator/validator.js +67 -209
  142. package/dist/esm/version.json +1 -1
  143. package/package.json +2 -2
@@ -1,59 +1,48 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
-
4
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
-
6
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
-
8
5
  import { traverse } from '../traverse/traverse';
9
6
  import { isEmpty } from './helpers';
10
-
11
7
  var getChildrenTypeCounts = function getChildrenTypeCounts(nodeContent, allowedTypes) {
12
8
  var childrenTypes = {};
13
9
  nodeContent.forEach(function (childNode, index) {
14
10
  if (!(childNode !== null && childNode !== void 0 && childNode.type) || !allowedTypes.includes(childNode.type)) {
15
11
  return;
16
12
  }
17
-
18
13
  if (!childrenTypes[childNode.type]) {
19
14
  childrenTypes[childNode.type] = 1;
20
15
  return;
21
16
  }
22
-
23
17
  childrenTypes[childNode.type]++;
24
18
  });
25
19
  return childrenTypes;
26
20
  };
27
-
28
21
  var removeDuplicatedNodes = function removeDuplicatedNodes(type, content, predicate) {
29
22
  var maxIterations = 10;
30
23
  var childrenTypeCounts = getChildrenTypeCounts(content, [type])[type];
31
24
  var firstPredicateNodeIndex = content.findIndex(predicate);
32
-
33
25
  while (childrenTypeCounts > 1 && firstPredicateNodeIndex > -1 && maxIterations-- > 0) {
34
26
  content.splice(firstPredicateNodeIndex, 1);
35
27
  firstPredicateNodeIndex = content.findIndex(predicate);
36
28
  childrenTypeCounts = getChildrenTypeCounts(content, [type])[type];
37
29
  }
38
30
  };
31
+
39
32
  /**
40
33
  * @param {{[type:string]:number}} allowedTypes - array types allowed to deduplicate
41
34
  */
42
-
43
-
44
35
  var deduplicateMediaSingleChildren = function deduplicateMediaSingleChildren(node, allowedTypes) {
45
36
  if (!node.content) {
46
37
  return;
47
38
  }
48
-
49
39
  var content = _toConsumableArray(node.content);
50
-
51
40
  Object.keys(allowedTypes).forEach(function (type) {
52
41
  //prioritise removing empty nodes first
53
42
  removeDuplicatedNodes(type, content, function (node) {
54
43
  return (node === null || node === void 0 ? void 0 : node.type) === type && isEmpty(node);
55
- }); //remove other remaining dupicates
56
-
44
+ });
45
+ //remove other remaining dupicates
57
46
  removeDuplicatedNodes(type, content, function (node) {
58
47
  return (node === null || node === void 0 ? void 0 : node.type) === type;
59
48
  });
@@ -62,20 +51,16 @@ var deduplicateMediaSingleChildren = function deduplicateMediaSingleChildren(nod
62
51
  content: content
63
52
  });
64
53
  };
65
-
66
54
  export var transformInvalidMediaContent = function transformInvalidMediaContent(adf) {
67
55
  var isTransformed = false;
68
56
  var transformedAdf = traverse(adf, {
69
57
  mediaSingle: function mediaSingle(node) {
70
58
  var _node$content;
71
-
72
59
  if (!(node !== null && node !== void 0 && (_node$content = node.content) !== null && _node$content !== void 0 && _node$content.length)) {
73
60
  return;
74
61
  }
75
-
76
62
  var disallowedDuplicateTypes = ['media', 'caption'];
77
63
  var childrenTypes = getChildrenTypeCounts(node.content, disallowedDuplicateTypes);
78
-
79
64
  if (Object.values(childrenTypes).some(function (occurences) {
80
65
  return occurences > 1;
81
66
  })) {
@@ -6,31 +6,25 @@ export var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
6
6
  var transformedAdf = traverse(adf, {
7
7
  mediaSingle: function mediaSingle(node) {
8
8
  var _node$content$;
9
-
10
9
  if (!node.marks || !node.content || ((_node$content$ = node.content[0]) === null || _node$content$ === void 0 ? void 0 : _node$content$.type) !== 'media') {
11
10
  return node;
12
11
  }
13
-
14
12
  var linkMark = null;
15
13
  node.marks.forEach(function (mark, i) {
16
14
  if (mark.type === 'link') {
17
15
  var _node$marks;
18
-
19
16
  linkMark = mark;
20
17
  (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.splice(i, 1);
21
18
  isTransformed = true;
22
19
  }
23
20
  });
24
-
25
21
  if (node.marks.length === 0) {
26
22
  delete node.marks;
27
23
  }
28
-
29
24
  if (linkMark) {
30
25
  var _mediaNode$marks;
31
-
32
- var mediaNode = node.content[0]; // only add link mark if media node doesnt already have one
33
-
26
+ var mediaNode = node.content[0];
27
+ // only add link mark if media node doesnt already have one
34
28
  if ((_mediaNode$marks = mediaNode.marks) !== null && _mediaNode$marks !== void 0 && _mediaNode$marks.every(function (mark) {
35
29
  return mark.type !== 'link';
36
30
  })) {
@@ -39,7 +33,6 @@ export var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
39
33
  mediaNode.marks = [linkMark];
40
34
  }
41
35
  }
42
-
43
36
  return node;
44
37
  }
45
38
  });
@@ -1,38 +1,29 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
-
4
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
-
6
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
-
8
5
  import { traverse } from '../traverse/traverse';
9
6
  import { tableRow, tableCell, paragraph, listItem } from '../builders';
10
7
  import { isEmpty } from './helpers';
11
-
12
8
  var getMaxColumnsCountForTable = function getMaxColumnsCountForTable(tableNode) {
13
9
  var _tableNode$content;
14
-
15
10
  var colsInRow = 1;
16
11
  (_tableNode$content = tableNode.content) === null || _tableNode$content === void 0 ? void 0 : _tableNode$content.forEach(function (childNode) {
17
12
  var _childNode$content;
18
-
19
13
  if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'tableRow' && typeof ((_childNode$content = childNode.content) === null || _childNode$content === void 0 ? void 0 : _childNode$content.length) === 'number' && childNode.content.length > colsInRow) {
20
14
  colsInRow = childNode.content.length;
21
15
  }
22
16
  });
23
17
  return colsInRow;
24
18
  };
25
-
26
19
  var createValidEmptyContent = function createValidEmptyContent(node) {
27
20
  switch (node.type) {
28
21
  case 'tableCell':
29
22
  return [paragraph()];
30
-
31
23
  default:
32
24
  return [];
33
25
  }
34
26
  };
35
-
36
27
  var fixIfTableCellInvalidEmpty = function fixIfTableCellInvalidEmpty(reportTransform) {
37
28
  return function (node) {
38
29
  if (isEmpty(node)) {
@@ -43,28 +34,21 @@ var fixIfTableCellInvalidEmpty = function fixIfTableCellInvalidEmpty(reportTrans
43
34
  }
44
35
  };
45
36
  };
46
-
47
37
  var hasNonListItemChildren = function hasNonListItemChildren(node) {
48
38
  var _node$content;
49
-
50
39
  return (_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.some(function (node) {
51
40
  return (node === null || node === void 0 ? void 0 : node.type) !== 'listItem';
52
41
  });
53
42
  };
54
-
55
43
  var hasEmptyListItemChildren = function hasEmptyListItemChildren(node) {
56
44
  var _node$content2;
57
-
58
45
  return (_node$content2 = node.content) === null || _node$content2 === void 0 ? void 0 : _node$content2.some(function (childNode) {
59
46
  var _childNode$content2;
60
-
61
47
  return (childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'listItem' && !((_childNode$content2 = childNode.content) !== null && _childNode$content2 !== void 0 && _childNode$content2.length);
62
48
  });
63
49
  };
64
-
65
50
  var tryCreateValidListItemWrappedChildren = function tryCreateValidListItemWrappedChildren(parentListNode) {
66
51
  var _parentListNode$conte;
67
-
68
52
  return (_parentListNode$conte = parentListNode.content) === null || _parentListNode$conte === void 0 ? void 0 : _parentListNode$conte.map(function (childNode) {
69
53
  if (childNode) {
70
54
  switch (childNode.type) {
@@ -74,22 +58,17 @@ var tryCreateValidListItemWrappedChildren = function tryCreateValidListItemWrapp
74
58
  var result = listItem([paragraph()]);
75
59
  return result;
76
60
  }
77
-
78
61
  return childNode;
79
62
  }
80
-
81
63
  case 'text':
82
64
  return listItem([paragraph(childNode)]);
83
-
84
65
  default:
85
66
  return listItem([childNode]);
86
67
  }
87
68
  }
88
-
89
69
  return childNode;
90
70
  });
91
71
  };
92
-
93
72
  var fixIfListParentWithInvalidListItemChildren = function fixIfListParentWithInvalidListItemChildren(reportTransform) {
94
73
  return function (node) {
95
74
  if (hasNonListItemChildren(node) || hasEmptyListItemChildren(node)) {
@@ -100,18 +79,14 @@ var fixIfListParentWithInvalidListItemChildren = function fixIfListParentWithInv
100
79
  }
101
80
  };
102
81
  };
103
-
104
82
  var hasNonTableRowChildren = function hasNonTableRowChildren(node) {
105
83
  var _node$content3;
106
-
107
84
  return (_node$content3 = node.content) === null || _node$content3 === void 0 ? void 0 : _node$content3.some(function (node) {
108
85
  return (node === null || node === void 0 ? void 0 : node.type) !== 'tableRow';
109
86
  });
110
87
  };
111
-
112
88
  var tryCreateValidTableRowWrappedChildren = function tryCreateValidTableRowWrappedChildren(parentTableNode) {
113
89
  var _parentTableNode$cont;
114
-
115
90
  var maxColsCount = getMaxColumnsCountForTable(parentTableNode);
116
91
  return (_parentTableNode$cont = parentTableNode.content) === null || _parentTableNode$cont === void 0 ? void 0 : _parentTableNode$cont.map(function (childNode) {
117
92
  if (childNode) {
@@ -120,40 +95,31 @@ var tryCreateValidTableRowWrappedChildren = function tryCreateValidTableRowWrapp
120
95
  {
121
96
  return tableRow([tableCell({})(paragraph(childNode))].concat(_toConsumableArray(new Array(maxColsCount - 1).fill(tableCell({})(paragraph())))));
122
97
  }
123
-
124
98
  case 'tableCell':
125
99
  {
126
100
  return tableRow([childNode]);
127
101
  }
128
-
129
102
  case 'tableRow':
130
103
  {
131
104
  if (isEmpty(childNode)) {
132
105
  return tableRow(_toConsumableArray(new Array(maxColsCount).fill(tableCell({})(paragraph()))));
133
106
  }
134
-
135
107
  return childNode;
136
108
  }
137
-
138
109
  default:
139
110
  return childNode;
140
111
  }
141
112
  }
142
-
143
113
  return childNode;
144
114
  });
145
115
  };
146
-
147
116
  var hasEmptyTableRowChildren = function hasEmptyTableRowChildren(node) {
148
117
  var _node$content4;
149
-
150
118
  return node === null || node === void 0 ? void 0 : (_node$content4 = node.content) === null || _node$content4 === void 0 ? void 0 : _node$content4.some(function (node) {
151
119
  var _node$content5;
152
-
153
120
  return (node === null || node === void 0 ? void 0 : node.type) === 'tableRow' && (node === null || node === void 0 ? void 0 : (_node$content5 = node.content) === null || _node$content5 === void 0 ? void 0 : _node$content5.length) === 0;
154
121
  });
155
122
  };
156
-
157
123
  var fixIfTableParentWithInvalidTableRowChildren = function fixIfTableParentWithInvalidTableRowChildren(reportTransform) {
158
124
  return function (node) {
159
125
  if (hasEmptyTableRowChildren(node) || hasNonTableRowChildren(node)) {
@@ -164,7 +130,6 @@ var fixIfTableParentWithInvalidTableRowChildren = function fixIfTableParentWithI
164
130
  }
165
131
  };
166
132
  };
167
-
168
133
  var removeMediaSingleWithNoContent = function removeMediaSingleWithNoContent(reportTransform) {
169
134
  return function (node) {
170
135
  if (isEmpty(node)) {
@@ -173,14 +138,11 @@ var removeMediaSingleWithNoContent = function removeMediaSingleWithNoContent(rep
173
138
  }
174
139
  };
175
140
  };
176
-
177
141
  export var transformNodesMissingContent = function transformNodesMissingContent(adf) {
178
142
  var isTransformed = false;
179
-
180
143
  var reportTransform = function reportTransform() {
181
144
  isTransformed = true;
182
145
  };
183
-
184
146
  var transformedAdf = traverse(adf, {
185
147
  tableCell: fixIfTableCellInvalidEmpty(reportTransform)
186
148
  });
@@ -1,20 +1,14 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
-
5
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
-
7
4
  import { traverse } from '../traverse/traverse';
8
-
9
5
  var hasLinkAndCodeMarks = function hasLinkAndCodeMarks(node) {
10
6
  var _node$marks;
11
-
12
7
  var marks = (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : _node$marks.map(function (mark) {
13
8
  return mark.type;
14
9
  });
15
10
  return (marks === null || marks === void 0 ? void 0 : marks.includes('link')) && (marks === null || marks === void 0 ? void 0 : marks.includes('code'));
16
11
  };
17
-
18
12
  var removeCodeMarks = function removeCodeMarks(node) {
19
13
  if (node.marks) {
20
14
  return _objectSpread(_objectSpread({}, node), {}, {
@@ -23,13 +17,12 @@ var removeCodeMarks = function removeCodeMarks(node) {
23
17
  })
24
18
  });
25
19
  }
26
-
27
20
  return node;
28
- }; // See: HOT-97965 https://product-fabric.atlassian.net/browse/ED-14400
21
+ };
22
+
23
+ // See: HOT-97965 https://product-fabric.atlassian.net/browse/ED-14400
29
24
  // We declared in code mark spec that links and marks should not co-exist on
30
25
  // text nodes. This util strips code marks from bad text nodes and preserves links.
31
-
32
-
33
26
  export var transformTextLinkCodeMarks = function transformTextLinkCodeMarks(adf) {
34
27
  var isTransformed = false;
35
28
  var transformedAdf = traverse(adf, {
@@ -1,12 +1,10 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
-
5
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
-
7
4
  export function validateVisitors(_visitors) {
8
5
  return true;
9
6
  }
7
+
10
8
  /**
11
9
  * Provides recursive, depth-first search document traversal. Use visitors collection to define nodes of interest.
12
10
  * If no visitor for given node is defined, no-op happens.
@@ -16,50 +14,38 @@ export function validateVisitors(_visitors) {
16
14
  * @param adf Document to traverse.
17
15
  * @param visitors Collection of visitors.
18
16
  */
19
-
20
17
  export function traverse(adf, visitors) {
21
18
  if (!validateVisitors(visitors)) {
22
19
  throw new Error("Visitors are not valid: \"".concat(Object.keys(visitors).join(', '), "\""));
23
20
  }
24
-
25
21
  return traverseNode(adf, {
26
22
  node: undefined
27
23
  }, visitors, 0, 0);
28
24
  }
29
-
30
25
  function traverseNode(adfNode, parent, visitors, index, depth) {
31
26
  var visitor = visitors[adfNode.type] || visitors['any'];
32
-
33
27
  var newNode = _objectSpread({}, adfNode);
34
-
35
28
  if (visitor) {
36
29
  var processedNode = visitor(_objectSpread({}, newNode), parent, index, depth);
37
-
38
30
  if (processedNode === false) {
39
31
  return false;
40
32
  }
41
-
42
33
  newNode = processedNode || adfNode;
43
34
  }
44
-
45
35
  if (newNode.content) {
46
36
  newNode.content = newNode.content.reduce(function (acc, node, idx) {
47
37
  if (!node) {
48
38
  return acc;
49
39
  }
50
-
51
40
  var processedNode = traverseNode(node, {
52
41
  node: newNode,
53
42
  parent: parent
54
43
  }, visitors, idx, depth + 1);
55
-
56
44
  if (processedNode !== false) {
57
45
  acc.push(processedNode);
58
46
  }
59
-
60
47
  return acc;
61
48
  }, []);
62
49
  }
63
-
64
50
  return newNode;
65
51
  }
@@ -10,8 +10,9 @@ export var isInteger = function isInteger(x) {
10
10
  };
11
11
  export var isBoolean = function isBoolean(x) {
12
12
  return x === true || x === false || toString.call(x) === '[object Boolean]';
13
- }; // This is a kludge, might replace with something like _.isString in future
13
+ };
14
14
 
15
+ // This is a kludge, might replace with something like _.isString in future
15
16
  export var isString = function isString(s) {
16
17
  return typeof s === 'string' || s instanceof String;
17
18
  };
@@ -21,8 +22,9 @@ export var isPlainObject = function isPlainObject(x) {
21
22
  export var copy = function copy(source, dest, key) {
22
23
  dest[key] = source[key];
23
24
  return dest;
24
- }; // Helpers
25
+ };
25
26
 
27
+ // Helpers
26
28
  export var makeArray = function makeArray(maybeArray) {
27
29
  return Array.isArray(maybeArray) ? maybeArray : [maybeArray];
28
30
  };