@atlaskit/editor-common 71.0.3 → 72.0.1

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 (148) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/dist/cjs/analytics/types/enums.js +20 -1
  3. package/dist/cjs/i18n/index.js +13 -5
  4. package/dist/cjs/i18n/languages.js +42 -0
  5. package/dist/cjs/keymaps/index.js +56 -6
  6. package/dist/cjs/styles/index.js +8 -2
  7. package/dist/cjs/styles/shared/annotation.js +9 -14
  8. package/dist/cjs/styles/shared/block-marks.js +1 -1
  9. package/dist/cjs/styles/shared/blockquote.js +1 -3
  10. package/dist/cjs/styles/shared/code-block.js +13 -16
  11. package/dist/cjs/styles/shared/code-mark.js +2 -4
  12. package/dist/cjs/styles/shared/lists.js +55 -4
  13. package/dist/cjs/styles/shared/panel.js +29 -39
  14. package/dist/cjs/styles/shared/rule.js +2 -4
  15. package/dist/cjs/styles/shared/shadow.js +1 -1
  16. package/dist/cjs/styles/shared/table.js +24 -26
  17. package/dist/cjs/types/next-editor-plugin.js +5 -0
  18. package/dist/cjs/ui/Caption/index.js +2 -4
  19. package/dist/cjs/ui/DropList/index.js +5 -7
  20. package/dist/cjs/ui/Emoji/index.js +11 -2
  21. package/dist/cjs/ui/Expand/index.js +17 -19
  22. package/dist/cjs/ui/Messages/index.js +3 -5
  23. package/dist/cjs/ui/Popup/index.js +72 -2
  24. package/dist/cjs/ui/Popup/utils.js +13 -6
  25. package/dist/cjs/ui/UnsupportedBlock/index.js +3 -5
  26. package/dist/cjs/ui/UnsupportedInline/index.js +3 -5
  27. package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +138 -0
  28. package/dist/cjs/ui-color/ColorPalette/index.js +20 -2
  29. package/dist/cjs/ui-menu/DropdownMenu/index.js +12 -12
  30. package/dist/cjs/ui-menu/ToolbarButton/index.js +3 -1
  31. package/dist/cjs/utils/analytics.js +1 -38
  32. package/dist/cjs/utils/builder.js +44 -0
  33. package/dist/cjs/utils/compareNodes.js +86 -33
  34. package/dist/cjs/utils/index.js +47 -1
  35. package/dist/cjs/utils/list.js +47 -0
  36. package/dist/cjs/utils/plugin-state-factory.js +9 -9
  37. package/dist/cjs/utils/referentiality.js +281 -2
  38. package/dist/cjs/utils/track-unsupported-content.js +19 -20
  39. package/dist/cjs/utils/validate-using-spec.js +8 -2
  40. package/dist/cjs/version.json +1 -1
  41. package/dist/es2019/analytics/types/enums.js +20 -1
  42. package/dist/es2019/i18n/index.js +4 -3
  43. package/dist/es2019/i18n/languages.js +34 -0
  44. package/dist/es2019/keymaps/index.js +48 -2
  45. package/dist/es2019/styles/index.js +1 -1
  46. package/dist/es2019/styles/shared/annotation.js +9 -13
  47. package/dist/es2019/styles/shared/block-marks.js +8 -1
  48. package/dist/es2019/styles/shared/blockquote.js +1 -2
  49. package/dist/es2019/styles/shared/code-block.js +18 -18
  50. package/dist/es2019/styles/shared/code-mark.js +2 -3
  51. package/dist/es2019/styles/shared/lists.js +44 -2
  52. package/dist/es2019/styles/shared/panel.js +29 -37
  53. package/dist/es2019/styles/shared/rule.js +2 -3
  54. package/dist/es2019/styles/shared/shadow.js +20 -6
  55. package/dist/es2019/styles/shared/table.js +24 -26
  56. package/dist/es2019/types/next-editor-plugin.js +1 -0
  57. package/dist/es2019/ui/Caption/index.js +2 -3
  58. package/dist/es2019/ui/DropList/index.js +5 -6
  59. package/dist/es2019/ui/Emoji/index.js +11 -2
  60. package/dist/es2019/ui/Expand/index.js +17 -18
  61. package/dist/es2019/ui/Messages/index.js +3 -4
  62. package/dist/es2019/ui/Popup/index.js +68 -2
  63. package/dist/es2019/ui/Popup/utils.js +13 -6
  64. package/dist/es2019/ui/UnsupportedBlock/index.js +3 -4
  65. package/dist/es2019/ui/UnsupportedInline/index.js +3 -4
  66. package/dist/es2019/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +120 -0
  67. package/dist/es2019/ui-color/ColorPalette/index.js +29 -13
  68. package/dist/es2019/ui-menu/DropdownMenu/index.js +13 -12
  69. package/dist/es2019/ui-menu/ToolbarButton/index.js +3 -1
  70. package/dist/es2019/utils/analytics.js +0 -33
  71. package/dist/es2019/utils/builder.js +16 -0
  72. package/dist/es2019/utils/compareNodes.js +79 -28
  73. package/dist/es2019/utils/index.js +4 -2
  74. package/dist/es2019/utils/list.js +31 -0
  75. package/dist/es2019/utils/plugin-state-factory.js +9 -9
  76. package/dist/es2019/utils/referentiality.js +240 -0
  77. package/dist/es2019/utils/track-unsupported-content.js +20 -16
  78. package/dist/es2019/utils/validate-using-spec.js +8 -2
  79. package/dist/es2019/version.json +1 -1
  80. package/dist/esm/analytics/types/enums.js +20 -1
  81. package/dist/esm/i18n/index.js +4 -3
  82. package/dist/esm/i18n/languages.js +34 -0
  83. package/dist/esm/keymaps/index.js +49 -2
  84. package/dist/esm/styles/index.js +1 -1
  85. package/dist/esm/styles/shared/annotation.js +9 -13
  86. package/dist/esm/styles/shared/block-marks.js +1 -1
  87. package/dist/esm/styles/shared/blockquote.js +1 -2
  88. package/dist/esm/styles/shared/code-block.js +13 -15
  89. package/dist/esm/styles/shared/code-mark.js +2 -3
  90. package/dist/esm/styles/shared/lists.js +49 -2
  91. package/dist/esm/styles/shared/panel.js +29 -37
  92. package/dist/esm/styles/shared/rule.js +2 -3
  93. package/dist/esm/styles/shared/shadow.js +1 -2
  94. package/dist/esm/styles/shared/table.js +24 -26
  95. package/dist/esm/types/next-editor-plugin.js +1 -0
  96. package/dist/esm/ui/Caption/index.js +2 -3
  97. package/dist/esm/ui/DropList/index.js +5 -6
  98. package/dist/esm/ui/Emoji/index.js +11 -2
  99. package/dist/esm/ui/Expand/index.js +17 -18
  100. package/dist/esm/ui/Messages/index.js +3 -4
  101. package/dist/esm/ui/Popup/index.js +73 -2
  102. package/dist/esm/ui/Popup/utils.js +13 -6
  103. package/dist/esm/ui/UnsupportedBlock/index.js +2 -3
  104. package/dist/esm/ui/UnsupportedInline/index.js +2 -3
  105. package/dist/esm/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +124 -0
  106. package/dist/esm/ui-color/ColorPalette/index.js +19 -3
  107. package/dist/esm/ui-menu/DropdownMenu/index.js +12 -11
  108. package/dist/esm/ui-menu/ToolbarButton/index.js +3 -1
  109. package/dist/esm/utils/analytics.js +0 -33
  110. package/dist/esm/utils/builder.js +30 -0
  111. package/dist/esm/utils/compareNodes.js +83 -32
  112. package/dist/esm/utils/index.js +4 -2
  113. package/dist/esm/utils/list.js +31 -0
  114. package/dist/esm/utils/plugin-state-factory.js +9 -9
  115. package/dist/esm/utils/referentiality.js +269 -0
  116. package/dist/esm/utils/track-unsupported-content.js +19 -20
  117. package/dist/esm/utils/validate-using-spec.js +8 -2
  118. package/dist/esm/version.json +1 -1
  119. package/dist/types/analytics/types/enums.d.ts +23 -4
  120. package/dist/types/collab/types.d.ts +1 -1
  121. package/dist/types/i18n/index.d.ts +4 -3
  122. package/dist/types/i18n/languages.d.ts +35 -0
  123. package/dist/types/keymaps/index.d.ts +1 -0
  124. package/dist/types/styles/index.d.ts +1 -1
  125. package/dist/types/styles/shared/lists.d.ts +3 -1
  126. package/dist/types/types/collab.d.ts +1 -1
  127. package/dist/types/types/copy-button.d.ts +4 -0
  128. package/dist/types/types/feature-flags.d.ts +30 -25
  129. package/dist/types/types/floating-toolbar.d.ts +26 -1
  130. package/dist/types/types/index.d.ts +2 -1
  131. package/dist/types/types/next-editor-plugin.d.ts +61 -0
  132. package/dist/types/ui/Emoji/index.d.ts +2 -0
  133. package/dist/types/ui/Popup/index.d.ts +19 -0
  134. package/dist/types/ui/Popup/utils.d.ts +3 -3
  135. package/dist/types/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.d.ts +214 -0
  136. package/dist/types/ui-color/ColorPalette/index.d.ts +7 -0
  137. package/dist/types/ui-menu/DropdownMenu/types.d.ts +1 -0
  138. package/dist/types/ui-menu/ToolbarButton/index.d.ts +3 -1
  139. package/dist/types/utils/analytics.d.ts +1 -21
  140. package/dist/types/utils/builder.d.ts +8 -0
  141. package/dist/types/utils/compareNodes.d.ts +16 -0
  142. package/dist/types/utils/index.d.ts +3 -1
  143. package/dist/types/utils/list.d.ts +10 -0
  144. package/dist/types/utils/plugin-state-factory.d.ts +1 -1
  145. package/dist/types/utils/referentiality.d.ts +4 -0
  146. package/dist/types/utils/track-unsupported-content.d.ts +14 -2
  147. package/package.json +15 -12
  148. package/report.api.md +1 -1
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { SortOrder } from '../types';
3
- var ContentType;
3
+ export var ContentType;
4
4
 
5
5
  (function (ContentType) {
6
6
  ContentType[ContentType["NUMBER"] = 0] = "NUMBER";
@@ -19,6 +19,83 @@ function getLinkMark(node) {
19
19
  linkMark = _node$marks$filter2[0];
20
20
 
21
21
  return linkMark || null;
22
+ } // Source: https://stackoverflow.com/questions/12004808/does-javascript-take-local-decimal-separators-into-account
23
+
24
+
25
+ function parseLocaleNumber(stringNumber) {
26
+ if (stringNumber.trim() === '') {
27
+ return null;
28
+ }
29
+
30
+ var locale = window.navigator.language;
31
+ var thousandSeparator = Intl.NumberFormat(locale).format(11111).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
32
+ var decimalSeparator = Intl.NumberFormat(locale).format(1.1).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
33
+ var maybeANumber = Number(stringNumber.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
34
+ var isANumber = !Number.isNaN(maybeANumber);
35
+
36
+ if (!isANumber) {
37
+ return null;
38
+ }
39
+
40
+ return maybeANumber;
41
+ }
42
+
43
+ function extractFirstWordFromString(text) {
44
+ // Firefox is the only browser that doesn't support it
45
+ if (!Intl || !Intl.Segmenter) {
46
+ // If the Segment API is not available
47
+ // let's fallback to a dumb way to extract the first word.
48
+ // However, this method doesn't cover some languages like Japanase
49
+ var firstEmptySpace = text.indexOf(' ');
50
+ var firstWord = firstEmptySpace !== -1 ? text.substring(0, firstEmptySpace) : text;
51
+ return firstWord;
52
+ }
53
+
54
+ var languageSegment = new Intl.Segmenter(window.navigator.language, {
55
+ granularity: 'word'
56
+ });
57
+ var segmentsIterator = languageSegment.segment(text);
58
+
59
+ if (!segmentsIterator) {
60
+ return text;
61
+ }
62
+
63
+ var segmentsArray = Array.from(segmentsIterator);
64
+
65
+ if (segmentsArray.length === 0) {
66
+ return text;
67
+ }
68
+
69
+ return segmentsArray[0].segment;
70
+ }
71
+
72
+ export function extractMetaFromTextNode(textNode) {
73
+ // treat as a link if contain a link
74
+ var linkMark = getLinkMark(textNode);
75
+
76
+ if (linkMark) {
77
+ var value = textNode.text || '';
78
+ return {
79
+ type: ContentType.LINK,
80
+ value: value
81
+ };
82
+ }
83
+
84
+ var text = textNode.text || '';
85
+ var firstWord = extractFirstWordFromString(text);
86
+ var maybeANumber = parseLocaleNumber(firstWord);
87
+
88
+ if (maybeANumber !== null) {
89
+ return {
90
+ type: ContentType.NUMBER,
91
+ value: maybeANumber
92
+ };
93
+ }
94
+
95
+ return {
96
+ type: ContentType.TEXT,
97
+ value: firstWord
98
+ };
22
99
  }
23
100
 
24
101
  function getMetaFromNode(node, options) {
@@ -67,41 +144,15 @@ function getMetaFromNode(node, options) {
67
144
 
68
145
  case 'text':
69
146
  {
70
- // treat as a link if contain a link
71
- var linkMark = getLinkMark(firstChild);
72
-
73
- if (linkMark) {
74
- var value = firstChild.text || '';
75
- return {
76
- type: ContentType.LINK,
77
- value: value
78
- };
79
- }
80
-
81
- var text = firstChild.text || '';
82
- var firstEmptySpace = text.indexOf(' ');
83
- var firstWord = firstEmptySpace !== -1 ? text.substring(0, firstEmptySpace) : text;
84
- var maybeANumber = Number.parseFloat(firstWord);
85
-
86
- if (!Number.isNaN(maybeANumber)) {
87
- return {
88
- type: ContentType.NUMBER,
89
- value: maybeANumber
90
- };
91
- }
92
-
93
- return {
94
- type: ContentType.TEXT,
95
- value: firstWord
96
- };
147
+ return extractMetaFromTextNode(firstChild);
97
148
  }
98
149
 
99
150
  case 'status':
100
151
  {
101
- var _text = firstChild.attrs.text;
152
+ var text = firstChild.attrs.text;
102
153
  return {
103
154
  type: ContentType.STATUS,
104
- value: _text
155
+ value: text
105
156
  };
106
157
  }
107
158
 
@@ -117,11 +168,11 @@ function getMetaFromNode(node, options) {
117
168
  case 'mention':
118
169
  {
119
170
  // TODO: Check what should be the fallback when mention does not have a text
120
- var _text2 = firstChild.attrs.text || '';
171
+ var _text = firstChild.attrs.text || '';
121
172
 
122
173
  return {
123
174
  type: ContentType.MENTION,
124
- value: _text2.toLowerCase()
175
+ value: _text.toLowerCase()
125
176
  };
126
177
  }
127
178
 
@@ -33,5 +33,7 @@ export { validateADFEntity, validationErrorHandler } from './validate-using-spec
33
33
  export { getShallowPropsDifference, getPropsDifference } from './compare-props';
34
34
  export { useComponentRenderTracking } from './performance/hooks/use-component-render-tracking';
35
35
  export { isOutdatedBrowser } from './outdated-browsers';
36
- export { isReferencedSource } from './referentiality';
37
- export { sendLogs } from './sendLogs';
36
+ export { isReferencedSource, removeConnectedNodes, getChildrenInfo, getNodeName } from './referentiality';
37
+ export { sendLogs } from './sendLogs';
38
+ export { Builder } from './builder';
39
+ export { getItemCounterDigitsSize, getOrderFromOrderedListNode, resolveOrder } from './list';
@@ -0,0 +1,31 @@
1
+ export var DEFAULT_ORDER = 1; // resolve "order" to a safe, 0+ integer, otherwise return undefined
2
+ // Note: Any changes to this function should also be made to "resolveStart"
3
+ // in packages/editor/adf-schema/src/schema/nodes/ordered-list.ts
4
+
5
+ export var resolveOrder = function resolveOrder(order) {
6
+ var num = Number(order);
7
+
8
+ if (Number.isNaN(num)) {
9
+ return;
10
+ }
11
+
12
+ if (num < 0) {
13
+ return;
14
+ }
15
+
16
+ return Math.floor(Math.max(num, 0));
17
+ };
18
+ export var getOrderFromOrderedListNode = function getOrderFromOrderedListNode(orderedListNode) {
19
+ var _orderedListNode$attr, _resolveOrder;
20
+
21
+ var order = orderedListNode === null || orderedListNode === void 0 ? void 0 : (_orderedListNode$attr = orderedListNode.attrs) === null || _orderedListNode$attr === void 0 ? void 0 : _orderedListNode$attr.order;
22
+ return (_resolveOrder = resolveOrder(order)) !== null && _resolveOrder !== void 0 ? _resolveOrder : DEFAULT_ORDER;
23
+ };
24
+ export var getItemCounterDigitsSize = function getItemCounterDigitsSize(options) {
25
+ var _resolveOrder2, _String, _String$split, _String$split$;
26
+
27
+ var order = (_resolveOrder2 = resolveOrder(options.order)) !== null && _resolveOrder2 !== void 0 ? _resolveOrder2 : DEFAULT_ORDER;
28
+ var itemsCount = typeof options.itemsCount === 'number' ? options.itemsCount : 0;
29
+ var largestCounter = order + (itemsCount - 1);
30
+ return (_String = String(largestCounter)) === null || _String === void 0 ? void 0 : (_String$split = _String.split('.')) === null || _String$split === void 0 ? void 0 : (_String$split$ = _String$split[0]) === null || _String$split$ === void 0 ? void 0 : _String$split$.length;
31
+ };
@@ -59,26 +59,26 @@ export function pluginFactory(pluginKey, reducer) {
59
59
  init: function init(_, state) {
60
60
  return isFunction(initialState) ? initialState(state) : initialState;
61
61
  },
62
- apply: function apply(tr, _pluginState) {
63
- var oldState = mapping ? mapping(tr, _pluginState) : _pluginState;
64
- var newState = oldState;
62
+ apply: function apply(tr, _pluginState, _oldEditorState, newEditorState) {
63
+ var oldPluginState = mapping ? mapping(tr, _pluginState, newEditorState) : _pluginState;
64
+ var newPluginState = oldPluginState;
65
65
  var meta = tr.getMeta(pluginKey);
66
66
 
67
67
  if (meta) {
68
- newState = reducer(oldState, meta);
68
+ newPluginState = reducer(oldPluginState, meta);
69
69
  }
70
70
 
71
71
  if (onDocChanged && tr.docChanged) {
72
- newState = onDocChanged(tr, newState);
72
+ newPluginState = onDocChanged(tr, newPluginState, newEditorState);
73
73
  } else if (onSelectionChanged && tr.selectionSet) {
74
- newState = onSelectionChanged(tr, newState);
74
+ newPluginState = onSelectionChanged(tr, newPluginState, newEditorState);
75
75
  }
76
76
 
77
- if (newState !== oldState) {
78
- dispatch(pluginKey, newState);
77
+ if (newPluginState !== oldPluginState) {
78
+ dispatch(pluginKey, newPluginState);
79
79
  }
80
80
 
81
- return newState;
81
+ return newPluginState;
82
82
  }
83
83
  };
84
84
  },
@@ -1,3 +1,13 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+
5
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
6
+
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
+
1
11
  export var isReferencedSource = function isReferencedSource(state, node) {
2
12
  var _node$attrs, _node$marks, _node$marks$find, _node$marks$find$attr;
3
13
 
@@ -37,4 +47,263 @@ export var isReferencedSource = function isReferencedSource(state, node) {
37
47
  return !found;
38
48
  });
39
49
  return found;
50
+ };
51
+
52
+ var getConnections = function getConnections(state) {
53
+ var result = {};
54
+ var doc = state.doc,
55
+ schema = state.schema; // Keeps a map of all raw ids -> to their preferred normalised varient. A node with both fragmentMark & localId will
56
+ // have both ids mapped here to the same normalized version.
57
+
58
+ var normalizedIds = new Map();
59
+ var dataConsumerSources = new Map(); // Perform a prelim scan creating the initial id to connection link mappings.
60
+ // This will also save a list of data sources consumed per node.
61
+
62
+ doc.descendants(function (node, pos) {
63
+ var _node$attrs2, _fragmentMark$attrs$l, _fragmentMark, _fragmentMark$attrs, _node$attrs3, _fragmentMark2, _fragmentMark2$attrs, _node$attrs4, _fragmentMark$attrs$n, _fragmentMark3, _fragmentMark3$attrs;
64
+
65
+ var dataConsumer;
66
+ var fragmentMark;
67
+ node.marks.some(function (mark) {
68
+ if (mark.type === schema.marks.dataConsumer) {
69
+ dataConsumer = mark;
70
+ } else if (mark.type === schema.marks.fragment) {
71
+ fragmentMark = mark;
72
+ } // Stop searching marks if we've found both consumer and fragment.
73
+
74
+
75
+ return !!dataConsumer && !!fragmentMark;
76
+ }); // If node cannot be referenced by any means then abort.
77
+
78
+ if (!fragmentMark && !((_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.localId)) {
79
+ return true;
80
+ }
81
+
82
+ var normalizedId = (_fragmentMark$attrs$l = (_fragmentMark = fragmentMark) === null || _fragmentMark === void 0 ? void 0 : (_fragmentMark$attrs = _fragmentMark.attrs) === null || _fragmentMark$attrs === void 0 ? void 0 : _fragmentMark$attrs.localId) !== null && _fragmentMark$attrs$l !== void 0 ? _fragmentMark$attrs$l : (_node$attrs3 = node.attrs) === null || _node$attrs3 === void 0 ? void 0 : _node$attrs3.localId;
83
+
84
+ if (!normalizedId) {
85
+ return true;
86
+ }
87
+
88
+ if (!!((_fragmentMark2 = fragmentMark) !== null && _fragmentMark2 !== void 0 && (_fragmentMark2$attrs = _fragmentMark2.attrs) !== null && _fragmentMark2$attrs !== void 0 && _fragmentMark2$attrs.localId)) {
89
+ normalizedIds.set(fragmentMark.attrs.localId, normalizedId);
90
+ }
91
+
92
+ if (!!((_node$attrs4 = node.attrs) !== null && _node$attrs4 !== void 0 && _node$attrs4.localId)) {
93
+ normalizedIds.set(node.attrs.localId, normalizedId);
94
+ }
95
+
96
+ if (!!result[normalizedId]) {
97
+ // Duplicate ID has been found, we'll care about the first one for now.
98
+ return true;
99
+ }
100
+
101
+ result[normalizedId] = {
102
+ localId: normalizedId,
103
+ name: (_fragmentMark$attrs$n = (_fragmentMark3 = fragmentMark) === null || _fragmentMark3 === void 0 ? void 0 : (_fragmentMark3$attrs = _fragmentMark3.attrs) === null || _fragmentMark3$attrs === void 0 ? void 0 : _fragmentMark3$attrs.name) !== null && _fragmentMark$attrs$n !== void 0 ? _fragmentMark$attrs$n : normalizedId,
104
+ node: node,
105
+ pos: pos,
106
+ targets: []
107
+ };
108
+
109
+ if (!!dataConsumer && dataConsumer.attrs.sources.length) {
110
+ dataConsumerSources.set(normalizedId, dataConsumer.attrs.sources);
111
+ } // Do not descend into children of a node which has a dataConsumer attached. This assumes all children of the node cannot
112
+ // be referenced by another node.
113
+
114
+
115
+ return !dataConsumer;
116
+ }); // This 2nd-pass only looks at the consumer sources and updates all connections with the correct id refs.
117
+
118
+ var _iterator = _createForOfIteratorHelper(dataConsumerSources),
119
+ _step;
120
+
121
+ try {
122
+ var _loop = function _loop() {
123
+ var _step$value = _slicedToArray(_step.value, 2),
124
+ localId = _step$value[0],
125
+ sources = _step$value[1];
126
+
127
+ // This is a ref to the node (connection link) which contains the consumer.
128
+ sources.forEach(function (src) {
129
+ var _normalizedIds$get;
130
+
131
+ var normalizedId = (_normalizedIds$get = normalizedIds.get(src)) !== null && _normalizedIds$get !== void 0 ? _normalizedIds$get : src;
132
+ var srcLink = result[normalizedId];
133
+
134
+ if (srcLink && normalizedId !== localId) {
135
+ srcLink.targets.push(localId);
136
+ }
137
+ });
138
+ };
139
+
140
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
141
+ _loop();
142
+ }
143
+ } catch (err) {
144
+ _iterator.e(err);
145
+ } finally {
146
+ _iterator.f();
147
+ }
148
+
149
+ return result;
150
+ };
151
+
152
+ export var removeConnectedNodes = function removeConnectedNodes(state, node) {
153
+ if (!node) {
154
+ return state.tr;
155
+ }
156
+
157
+ var selectedLocalIds = getSelectedLocalIds(state, node);
158
+ var allNodes = getConnections(state);
159
+ var idsToBeDeleted = getIdsToBeDeleted(selectedLocalIds, allNodes);
160
+
161
+ if (!(idsToBeDeleted !== null && idsToBeDeleted !== void 0 && idsToBeDeleted.length)) {
162
+ return state.tr;
163
+ }
164
+
165
+ var tr = state.tr;
166
+ var newTr = tr;
167
+ idsToBeDeleted.forEach(function (id) {
168
+ if (!allNodes[id]) {
169
+ return;
170
+ }
171
+
172
+ var _allNodes$id = allNodes[id],
173
+ node = _allNodes$id.node,
174
+ pos = _allNodes$id.pos;
175
+ newTr = newTr.delete(newTr.mapping.map(pos), newTr.mapping.map(node.nodeSize + pos));
176
+ });
177
+ return newTr;
178
+ }; // find all ids need to be remove connected to selected extension
179
+
180
+ var getIdsToBeDeleted = function getIdsToBeDeleted(selectedIds, allNodes) {
181
+ if (!selectedIds.size) {
182
+ return [];
183
+ }
184
+
185
+ var searchSet = _toConsumableArray(selectedIds);
186
+
187
+ var deletedIds = new Set();
188
+
189
+ while (searchSet.length) {
190
+ var id = searchSet.pop();
191
+
192
+ if (allNodes[id]) {
193
+ var _allNodes$id$targets$, _allNodes$id2;
194
+
195
+ deletedIds.add(allNodes[id].localId);
196
+ searchSet = searchSet.concat((_allNodes$id$targets$ = (_allNodes$id2 = allNodes[id]) === null || _allNodes$id2 === void 0 ? void 0 : _allNodes$id2.targets.filter(function (targetId) {
197
+ var _allNodes$targetId;
198
+
199
+ return !deletedIds.has((_allNodes$targetId = allNodes[targetId]) === null || _allNodes$targetId === void 0 ? void 0 : _allNodes$targetId.localId);
200
+ })) !== null && _allNodes$id$targets$ !== void 0 ? _allNodes$id$targets$ : []);
201
+ }
202
+ }
203
+
204
+ return Array.from(deletedIds);
205
+ }; // for get children info for confirmation dialog
206
+
207
+
208
+ export var getChildrenInfo = function getChildrenInfo(state, node) {
209
+ if (!node) {
210
+ return [];
211
+ }
212
+
213
+ var childrenIdSet = new Set();
214
+ var childrenInfoArray = [];
215
+ var allNodes = getConnections(state);
216
+ var selectedNodeIds = getSelectedLocalIds(state, node);
217
+ selectedNodeIds.forEach(function (id) {
218
+ if (allNodes[id]) {
219
+ allNodes[id].targets.forEach(childrenIdSet.add, childrenIdSet);
220
+ }
221
+ });
222
+ childrenIdSet.forEach(function (id) {
223
+ childrenInfoArray.push({
224
+ id: id,
225
+ name: getNodeNameById(id, allNodes),
226
+ amount: getChildrenNodeAmount(id, allNodes)
227
+ });
228
+ });
229
+ return childrenInfoArray;
230
+ };
231
+
232
+ var getChildrenNodeAmount = function getChildrenNodeAmount(id, allNodes) {
233
+ var searchTerms = new Set([id]);
234
+ var traverseHistory = new Map();
235
+ var childrenIds = new Set();
236
+ traverseHistory.set(id, false);
237
+
238
+ while (searchTerms.size > 0) {
239
+ var _searchTerms = _slicedToArray(searchTerms, 1),
240
+ currTerm = _searchTerms[0];
241
+
242
+ var targets = getNodeTargetsById(currTerm, allNodes);
243
+ targets.forEach(function (target) {
244
+ var isTargetCounted = traverseHistory.get(target);
245
+
246
+ if (!isTargetCounted) {
247
+ searchTerms.add(target);
248
+ childrenIds.add(target);
249
+ }
250
+
251
+ target !== id && childrenIds.add(target);
252
+ });
253
+ traverseHistory.set(currTerm, true);
254
+ searchTerms.delete(currTerm);
255
+ }
256
+
257
+ return childrenIds.size;
258
+ };
259
+
260
+ var getNodeTargetsById = function getNodeTargetsById(id, allNodes) {
261
+ if (!id || !allNodes[id]) {
262
+ return [];
263
+ }
264
+
265
+ return allNodes[id].targets;
266
+ };
267
+
268
+ var DEFAULT_EXTENSION_NAME = 'Default extension';
269
+
270
+ var getNodeNameById = function getNodeNameById(id, allNodes) {
271
+ if (_typeof(id) === 'object') {
272
+ var _name2;
273
+
274
+ var name;
275
+ id.forEach(function (localId) {
276
+ var _name, _allNodes$localId;
277
+
278
+ name = (_name = name) !== null && _name !== void 0 ? _name : (_allNodes$localId = allNodes[localId]) === null || _allNodes$localId === void 0 ? void 0 : _allNodes$localId.name;
279
+ });
280
+ return (_name2 = name) !== null && _name2 !== void 0 ? _name2 : DEFAULT_EXTENSION_NAME;
281
+ }
282
+
283
+ if (!id || !allNodes[id]) {
284
+ return DEFAULT_EXTENSION_NAME;
285
+ }
286
+
287
+ return allNodes[id].name;
288
+ };
289
+
290
+ var getSelectedLocalIds = function getSelectedLocalIds(state, node) {
291
+ var _node$attrs5, _node$marks2, _node$marks2$find, _node$marks2$find$att;
292
+
293
+ if (!node) {
294
+ return new Set([]);
295
+ }
296
+
297
+ var localIds = new Set([(_node$attrs5 = node.attrs) === null || _node$attrs5 === void 0 ? void 0 : _node$attrs5.localId, (_node$marks2 = node.marks) === null || _node$marks2 === void 0 ? void 0 : (_node$marks2$find = _node$marks2.find(function (mark) {
298
+ return mark.type === state.schema.marks.fragment;
299
+ })) === null || _node$marks2$find === void 0 ? void 0 : (_node$marks2$find$att = _node$marks2$find.attrs) === null || _node$marks2$find$att === void 0 ? void 0 : _node$marks2$find$att.localId].filter(Boolean));
300
+ return localIds;
301
+ };
302
+
303
+ export var getNodeName = function getNodeName(state, node) {
304
+ var _node$marks$find$attr2, _node$marks3, _node$marks3$find, _node$marks3$find$att;
305
+
306
+ return (_node$marks$find$attr2 = node === null || node === void 0 ? void 0 : (_node$marks3 = node.marks) === null || _node$marks3 === void 0 ? void 0 : (_node$marks3$find = _node$marks3.find(function (mark) {
307
+ return mark.type === state.schema.marks.fragment;
308
+ })) === null || _node$marks3$find === void 0 ? void 0 : (_node$marks3$find$att = _node$marks3$find.attrs) === null || _node$marks3$find$att === void 0 ? void 0 : _node$marks3$find$att.name) !== null && _node$marks$find$attr2 !== void 0 ? _node$marks$find$attr2 : '';
40
309
  };
@@ -4,7 +4,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
4
4
 
5
5
  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
6
 
7
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from './analytics';
7
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../analytics';
8
8
  var whitelistedAttributes = ['align', 'annotationType', 'extensionKey', 'extensionType', 'layout', 'type', 'localId', 'mode', 'language', 'timestamp', 'state', 'originalWidth', 'originalHeight', 'height', 'width', 'shortName', 'level', 'userType', 'order', 'panelType', 'color', 'style', 'isNumberColumnEnabled', 'colspan', 'rowspan', 'colwidth', 'background'];
9
9
 
10
10
  function concatAncestorHierarchy(node, ancestoryHierarchy) {
@@ -70,8 +70,6 @@ export var findAndTrackUnsupportedContentNodes = function findAndTrackUnsupporte
70
70
  var _ref = mark.attrs || {},
71
71
  originalValue = _ref.originalValue;
72
72
 
73
- var sanitizedAttrs = sanitizeAttributes(originalValue.attrs) || {};
74
-
75
73
  var _ref2 = originalValue || {},
76
74
  type = _ref2.type;
77
75
 
@@ -80,21 +78,19 @@ export var findAndTrackUnsupportedContentNodes = function findAndTrackUnsupporte
80
78
  ancestry: ancestorHierarchy,
81
79
  parentType: parentType,
82
80
  marks: [],
83
- attrs: sanitizedAttrs || {}
81
+ attrs: originalValue.attrs || {}
84
82
  };
85
83
  fireUnsupportedEvent(dispatchAnalyticsEvent, ACTION_SUBJECT_ID.UNSUPPORTED_MARK, unsupportedNode);
86
84
  } else if (mark.type === unsupportedNodeAttribute) {
87
85
  var _ref3 = mark.attrs || {},
88
86
  unsupported = _ref3.unsupported;
89
87
 
90
- var _sanitizedAttrs = sanitizeAttributes(unsupported) || {};
91
-
92
88
  var _unsupportedNodeAttribute = {
93
89
  type: nodeType.name || '',
94
90
  ancestry: ancestorHierarchy,
95
91
  parentType: parentType,
96
92
  marks: [],
97
- attrs: _sanitizedAttrs || {}
93
+ attrs: unsupported || {}
98
94
  };
99
95
  fireUnsupportedEvent(dispatchAnalyticsEvent, ACTION_SUBJECT_ID.UNSUPPORTED_NODE_ATTRIBUTE, _unsupportedNodeAttribute);
100
96
  }
@@ -118,8 +114,8 @@ export var findAndTrackUnsupportedContentNodes = function findAndTrackUnsupporte
118
114
  type: type || '',
119
115
  ancestry: ancestorHierarchy,
120
116
  parentType: parentType,
121
- marks: sanitizeMarks(marks) || [],
122
- attrs: sanitizeAttributes(attrs) || {}
117
+ marks: marks || [],
118
+ attrs: attrs || {}
123
119
  };
124
120
  var actionSubjectId = nodeType === unsupportedInline ? ACTION_SUBJECT_ID.UNSUPPORTED_INLINE : ACTION_SUBJECT_ID.UNSUPPORTED_BLOCK;
125
121
  fireUnsupportedEvent(dispatchAnalyticsEvent, actionSubjectId, unsupportedNode);
@@ -130,22 +126,25 @@ export var findAndTrackUnsupportedContentNodes = function findAndTrackUnsupporte
130
126
  });
131
127
  }
132
128
  };
133
- export var fireUnsupportedEvent = function fireUnsupportedEvent(dispatchAnalyticsEvent, actionSubjectId) {
134
- var unsupportedNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
135
- var errorCode = arguments.length > 3 ? arguments[3] : undefined;
136
- var attrs = {
137
- unsupportedNode: unsupportedNode
129
+ export var fireUnsupportedEvent = function fireUnsupportedEvent(dispatchAnalyticsEvent, actionSubjectId, unsupportedNode, errorCode) {
130
+ var sanitizedAttrs = sanitizeAttributes(unsupportedNode.attrs);
131
+ var sanitizedMarks = sanitizeMarks(unsupportedNode.marks);
132
+ var sanitizedUnsupportedNode = {
133
+ type: unsupportedNode.type,
134
+ ancestry: unsupportedNode.ancestry,
135
+ parentType: unsupportedNode.parentType,
136
+ attrs: sanitizedAttrs,
137
+ marks: sanitizedMarks
138
138
  };
139
-
140
- if (errorCode) {
141
- attrs.errorCode = errorCode;
142
- }
143
-
144
139
  var payload = {
145
140
  action: ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED,
146
141
  actionSubject: ACTION_SUBJECT.DOCUMENT,
147
142
  actionSubjectId: actionSubjectId,
148
- attributes: attrs,
143
+ attributes: _objectSpread({
144
+ unsupportedNode: sanitizedUnsupportedNode
145
+ }, !!errorCode && {
146
+ errorCode: errorCode
147
+ }),
149
148
  eventType: EVENT_TYPE.TRACK
150
149
  };
151
150
  dispatchAnalyticsEvent(payload);
@@ -1,6 +1,6 @@
1
1
  import { validator } from '@atlaskit/adf-utils/validator';
2
+ import { ACTION_SUBJECT_ID } from '../analytics';
2
3
  export var UNSUPPORTED_NODE_ATTRIBUTE = 'unsupportedNodeAttribute';
3
- import { ACTION_SUBJECT_ID } from './analytics';
4
4
  import { fireUnsupportedEvent } from './track-unsupported-content';
5
5
 
6
6
  var errorCallbackFor = function errorCallbackFor(marks, validate, dispatchAnalyticsEvent) {
@@ -106,7 +106,13 @@ function trackValidationError(dispatchAnalyticsEvent, error, entity) {
106
106
  return;
107
107
  }
108
108
 
109
- fireUnsupportedEvent(dispatchAnalyticsEvent, ACTION_SUBJECT_ID.UNSUPPORTED_ERROR, entity, error.code);
109
+ fireUnsupportedEvent(dispatchAnalyticsEvent, ACTION_SUBJECT_ID.UNSUPPORTED_ERROR, {
110
+ type: entity.type || '',
111
+ ancestry: entity.ancestorHierarchy || '',
112
+ parentType: entity.parentType || '',
113
+ marks: entity.marks || [],
114
+ attrs: entity.attrs || {}
115
+ }, error.code);
110
116
  }
111
117
 
112
118
  export var validateADFEntity = function validateADFEntity(schema, node, dispatchAnalyticsEvent) {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "71.0.3",
3
+ "version": "72.0.1",
4
4
  "sideEffects": false
5
5
  }