@atlaskit/adf-schema 25.1.0 → 25.2.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.
Files changed (249) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/index.js +0 -2
  3. package/dist/cjs/json-schema/index.js +0 -3
  4. package/dist/cjs/schema/bitbucket-schema.js +0 -2
  5. package/dist/cjs/schema/confluence-schema.js +1 -4
  6. package/dist/cjs/schema/create-schema.js +12 -38
  7. package/dist/cjs/schema/default-schema.js +3 -16
  8. package/dist/cjs/schema/groups.js +13 -6
  9. package/dist/cjs/schema/index.js +0 -5
  10. package/dist/cjs/schema/inline-nodes.js +0 -5
  11. package/dist/cjs/schema/jira-schema.js +0 -36
  12. package/dist/cjs/schema/marks/alignment.js +0 -2
  13. package/dist/cjs/schema/marks/annotation.js +2 -14
  14. package/dist/cjs/schema/marks/code.js +0 -5
  15. package/dist/cjs/schema/marks/confluence-inline-comment.js +1 -1
  16. package/dist/cjs/schema/marks/data-consumer.js +2 -7
  17. package/dist/cjs/schema/marks/em.js +0 -2
  18. package/dist/cjs/schema/marks/fragment.js +0 -13
  19. package/dist/cjs/schema/marks/indentation.js +0 -2
  20. package/dist/cjs/schema/marks/index.js +0 -18
  21. package/dist/cjs/schema/marks/link.js +0 -17
  22. package/dist/cjs/schema/marks/strike.js +0 -2
  23. package/dist/cjs/schema/marks/strong.js +2 -3
  24. package/dist/cjs/schema/marks/subsup.js +0 -5
  25. package/dist/cjs/schema/marks/text-color.js +46 -37
  26. package/dist/cjs/schema/marks/type-ahead-query.js +0 -3
  27. package/dist/cjs/schema/marks/underline.js +0 -2
  28. package/dist/cjs/schema/nodes/block-card.js +1 -2
  29. package/dist/cjs/schema/nodes/blockquote.js +1 -1
  30. package/dist/cjs/schema/nodes/bodied-extension.js +0 -3
  31. package/dist/cjs/schema/nodes/caption.js +1 -1
  32. package/dist/cjs/schema/nodes/code-block.js +11 -29
  33. package/dist/cjs/schema/nodes/date.js +1 -1
  34. package/dist/cjs/schema/nodes/decision-item.js +2 -4
  35. package/dist/cjs/schema/nodes/decision-list.js +0 -2
  36. package/dist/cjs/schema/nodes/doc.js +1 -1
  37. package/dist/cjs/schema/nodes/embed-card.js +6 -6
  38. package/dist/cjs/schema/nodes/emoji.js +11 -9
  39. package/dist/cjs/schema/nodes/expand.js +1 -4
  40. package/dist/cjs/schema/nodes/extension.js +0 -3
  41. package/dist/cjs/schema/nodes/hard-break.js +1 -1
  42. package/dist/cjs/schema/nodes/heading.js +2 -2
  43. package/dist/cjs/schema/nodes/index.js +0 -45
  44. package/dist/cjs/schema/nodes/inline-card.js +4 -4
  45. package/dist/cjs/schema/nodes/inline-extension.js +0 -3
  46. package/dist/cjs/schema/nodes/layout-column.js +4 -5
  47. package/dist/cjs/schema/nodes/layout-section.js +1 -1
  48. package/dist/cjs/schema/nodes/media-group.js +1 -1
  49. package/dist/cjs/schema/nodes/media-inline.js +0 -2
  50. package/dist/cjs/schema/nodes/media-single.js +3 -14
  51. package/dist/cjs/schema/nodes/media.js +10 -28
  52. package/dist/cjs/schema/nodes/mention.js +4 -14
  53. package/dist/cjs/schema/nodes/nested-expand.js +1 -1
  54. package/dist/cjs/schema/nodes/ordered-list.js +3 -17
  55. package/dist/cjs/schema/nodes/panel.js +1 -13
  56. package/dist/cjs/schema/nodes/paragraph.js +1 -6
  57. package/dist/cjs/schema/nodes/placeholder.js +1 -1
  58. package/dist/cjs/schema/nodes/rule.js +1 -1
  59. package/dist/cjs/schema/nodes/status.js +4 -6
  60. package/dist/cjs/schema/nodes/tableNodes.js +12 -39
  61. package/dist/cjs/schema/nodes/task-item.js +2 -4
  62. package/dist/cjs/schema/nodes/task-list.js +0 -2
  63. package/dist/cjs/schema/nodes/text.js +1 -1
  64. package/dist/cjs/steps/analytics.js +4 -38
  65. package/dist/cjs/steps/set-attrs.js +0 -26
  66. package/dist/cjs/steps/table/add-column.js +33 -105
  67. package/dist/cjs/steps/table/constants.js +0 -1
  68. package/dist/cjs/steps/table/sort-column.js +0 -19
  69. package/dist/cjs/steps/table/utils/cell-step.js +18 -49
  70. package/dist/cjs/steps/table/utils/cells-at-column.js +2 -21
  71. package/dist/cjs/steps/table/utils/find-column.js +13 -17
  72. package/dist/cjs/steps/table/utils/get-table-rect-from-doc.js +6 -8
  73. package/dist/cjs/steps/table/utils/side-effects/rows.js +23 -78
  74. package/dist/cjs/steps/table/utils/side-effects/side-effects.js +0 -23
  75. package/dist/cjs/steps/table/utils/side-effects/table.js +2 -18
  76. package/dist/cjs/steps/table/utils/table-map.js +0 -6
  77. package/dist/cjs/steps/type-ahead.js +5 -25
  78. package/dist/cjs/steps.js +0 -6
  79. package/dist/cjs/utils/colors.js +13 -36
  80. package/dist/cjs/utils/confluence/emoji.js +6 -13
  81. package/dist/cjs/utils/extensions.js +0 -8
  82. package/dist/cjs/utils/index.js +0 -4
  83. package/dist/cjs/utils/parseDOM.js +0 -2
  84. package/dist/cjs/utils/url.js +3 -20
  85. package/dist/cjs/utils/uuid.js +0 -3
  86. package/dist/cjs/version.json +1 -1
  87. package/dist/es2019/index.js +1 -2
  88. package/dist/es2019/schema/bitbucket-schema.js +1 -1
  89. package/dist/es2019/schema/confluence-schema.js +1 -2
  90. package/dist/es2019/schema/create-schema.js +12 -25
  91. package/dist/es2019/schema/default-schema.js +3 -11
  92. package/dist/es2019/schema/groups.js +13 -6
  93. package/dist/es2019/schema/index.js +1 -2
  94. package/dist/es2019/schema/jira-schema.js +0 -24
  95. package/dist/es2019/schema/marks/alignment.js +1 -3
  96. package/dist/es2019/schema/marks/annotation.js +3 -9
  97. package/dist/es2019/schema/marks/breakout.js +0 -4
  98. package/dist/es2019/schema/marks/code.js +1 -5
  99. package/dist/es2019/schema/marks/confluence-inline-comment.js +1 -2
  100. package/dist/es2019/schema/marks/data-consumer.js +3 -5
  101. package/dist/es2019/schema/marks/em.js +1 -2
  102. package/dist/es2019/schema/marks/fragment.js +0 -8
  103. package/dist/es2019/schema/marks/indentation.js +0 -4
  104. package/dist/es2019/schema/marks/link.js +2 -11
  105. package/dist/es2019/schema/marks/strike.js +1 -2
  106. package/dist/es2019/schema/marks/strong.js +3 -7
  107. package/dist/es2019/schema/marks/subsup.js +0 -6
  108. package/dist/es2019/schema/marks/text-color.js +44 -29
  109. package/dist/es2019/schema/marks/type-ahead-query.js +0 -2
  110. package/dist/es2019/schema/marks/underline.js +1 -2
  111. package/dist/es2019/schema/marks/unsupported-mark.js +0 -1
  112. package/dist/es2019/schema/marks/unsupported-node-attributes.js +0 -1
  113. package/dist/es2019/schema/nodes/block-card.js +1 -3
  114. package/dist/es2019/schema/nodes/blockquote.js +1 -2
  115. package/dist/es2019/schema/nodes/bodied-extension.js +0 -4
  116. package/dist/es2019/schema/nodes/bullet-list.js +0 -2
  117. package/dist/es2019/schema/nodes/caption.js +1 -2
  118. package/dist/es2019/schema/nodes/code-block.js +11 -28
  119. package/dist/es2019/schema/nodes/confluence-jira-issue.js +0 -2
  120. package/dist/es2019/schema/nodes/confluence-unsupported-block.js +0 -4
  121. package/dist/es2019/schema/nodes/confluence-unsupported-inline.js +0 -4
  122. package/dist/es2019/schema/nodes/date.js +1 -2
  123. package/dist/es2019/schema/nodes/decision-item.js +0 -2
  124. package/dist/es2019/schema/nodes/decision-list.js +1 -2
  125. package/dist/es2019/schema/nodes/doc.js +1 -0
  126. package/dist/es2019/schema/nodes/embed-card.js +1 -2
  127. package/dist/es2019/schema/nodes/emoji.js +9 -6
  128. package/dist/es2019/schema/nodes/expand.js +1 -3
  129. package/dist/es2019/schema/nodes/extension.js +0 -4
  130. package/dist/es2019/schema/nodes/hard-break.js +1 -2
  131. package/dist/es2019/schema/nodes/heading.js +2 -3
  132. package/dist/es2019/schema/nodes/image.js +0 -4
  133. package/dist/es2019/schema/nodes/inline-card.js +4 -5
  134. package/dist/es2019/schema/nodes/inline-extension.js +0 -4
  135. package/dist/es2019/schema/nodes/layout-column.js +4 -6
  136. package/dist/es2019/schema/nodes/layout-section.js +1 -4
  137. package/dist/es2019/schema/nodes/list-item.js +0 -2
  138. package/dist/es2019/schema/nodes/media-group.js +1 -2
  139. package/dist/es2019/schema/nodes/media-single.js +3 -6
  140. package/dist/es2019/schema/nodes/media.js +10 -20
  141. package/dist/es2019/schema/nodes/mention.js +0 -11
  142. package/dist/es2019/schema/nodes/nested-expand.js +1 -2
  143. package/dist/es2019/schema/nodes/ordered-list.js +4 -14
  144. package/dist/es2019/schema/nodes/panel.js +3 -10
  145. package/dist/es2019/schema/nodes/paragraph.js +1 -7
  146. package/dist/es2019/schema/nodes/placeholder.js +1 -2
  147. package/dist/es2019/schema/nodes/rule.js +1 -2
  148. package/dist/es2019/schema/nodes/status.js +1 -2
  149. package/dist/es2019/schema/nodes/tableNodes.js +10 -26
  150. package/dist/es2019/schema/nodes/task-item.js +0 -2
  151. package/dist/es2019/schema/nodes/task-list.js +0 -2
  152. package/dist/es2019/schema/nodes/text.js +1 -0
  153. package/dist/es2019/schema/nodes/unknown-block.js +0 -2
  154. package/dist/es2019/schema/nodes/unsupported-block.js +0 -2
  155. package/dist/es2019/schema/nodes/unsupported-inline.js +0 -2
  156. package/dist/es2019/steps/analytics.js +13 -30
  157. package/dist/es2019/steps/set-attrs.js +3 -12
  158. package/dist/es2019/steps/table/add-column.js +33 -76
  159. package/dist/es2019/steps/table/constants.js +0 -1
  160. package/dist/es2019/steps/table/sort-column.js +1 -8
  161. package/dist/es2019/steps/table/utils/cell-step.js +15 -32
  162. package/dist/es2019/steps/table/utils/cells-at-column.js +6 -11
  163. package/dist/es2019/steps/table/utils/find-column.js +12 -15
  164. package/dist/es2019/steps/table/utils/get-table-rect-from-doc.js +7 -6
  165. package/dist/es2019/steps/table/utils/side-effects/rows.js +19 -59
  166. package/dist/es2019/steps/table/utils/side-effects/side-effects.js +0 -21
  167. package/dist/es2019/steps/table/utils/side-effects/table.js +0 -17
  168. package/dist/es2019/steps/type-ahead.js +3 -15
  169. package/dist/es2019/utils/colors.js +8 -18
  170. package/dist/es2019/utils/confluence/emoji.js +5 -8
  171. package/dist/es2019/utils/extensions.js +0 -4
  172. package/dist/es2019/utils/url.js +2 -12
  173. package/dist/es2019/utils/uuid.js +0 -2
  174. package/dist/es2019/version.json +1 -1
  175. package/dist/esm/index.js +1 -2
  176. package/dist/esm/schema/bitbucket-schema.js +1 -1
  177. package/dist/esm/schema/confluence-schema.js +1 -2
  178. package/dist/esm/schema/create-schema.js +12 -31
  179. package/dist/esm/schema/default-schema.js +3 -11
  180. package/dist/esm/schema/groups.js +13 -6
  181. package/dist/esm/schema/index.js +1 -2
  182. package/dist/esm/schema/jira-schema.js +0 -24
  183. package/dist/esm/schema/marks/alignment.js +1 -1
  184. package/dist/esm/schema/marks/annotation.js +3 -11
  185. package/dist/esm/schema/marks/code.js +1 -3
  186. package/dist/esm/schema/marks/confluence-inline-comment.js +1 -0
  187. package/dist/esm/schema/marks/data-consumer.js +3 -3
  188. package/dist/esm/schema/marks/em.js +1 -0
  189. package/dist/esm/schema/marks/fragment.js +0 -9
  190. package/dist/esm/schema/marks/link.js +0 -12
  191. package/dist/esm/schema/marks/strike.js +1 -0
  192. package/dist/esm/schema/marks/strong.js +3 -1
  193. package/dist/esm/schema/marks/subsup.js +0 -4
  194. package/dist/esm/schema/marks/text-color.js +46 -30
  195. package/dist/esm/schema/marks/underline.js +1 -0
  196. package/dist/esm/schema/nodes/block-card.js +1 -1
  197. package/dist/esm/schema/nodes/blockquote.js +1 -0
  198. package/dist/esm/schema/nodes/bodied-extension.js +0 -2
  199. package/dist/esm/schema/nodes/caption.js +1 -0
  200. package/dist/esm/schema/nodes/code-block.js +11 -26
  201. package/dist/esm/schema/nodes/date.js +1 -0
  202. package/dist/esm/schema/nodes/decision-item.js +2 -2
  203. package/dist/esm/schema/nodes/decision-list.js +1 -0
  204. package/dist/esm/schema/nodes/doc.js +1 -0
  205. package/dist/esm/schema/nodes/embed-card.js +6 -5
  206. package/dist/esm/schema/nodes/emoji.js +12 -7
  207. package/dist/esm/schema/nodes/expand.js +1 -1
  208. package/dist/esm/schema/nodes/extension.js +0 -2
  209. package/dist/esm/schema/nodes/hard-break.js +1 -0
  210. package/dist/esm/schema/nodes/heading.js +2 -1
  211. package/dist/esm/schema/nodes/inline-card.js +4 -3
  212. package/dist/esm/schema/nodes/inline-extension.js +0 -2
  213. package/dist/esm/schema/nodes/layout-column.js +4 -4
  214. package/dist/esm/schema/nodes/layout-section.js +1 -0
  215. package/dist/esm/schema/nodes/media-group.js +1 -0
  216. package/dist/esm/schema/nodes/media-single.js +3 -8
  217. package/dist/esm/schema/nodes/media.js +10 -18
  218. package/dist/esm/schema/nodes/mention.js +4 -13
  219. package/dist/esm/schema/nodes/nested-expand.js +1 -0
  220. package/dist/esm/schema/nodes/ordered-list.js +3 -13
  221. package/dist/esm/schema/nodes/panel.js +1 -10
  222. package/dist/esm/schema/nodes/paragraph.js +1 -5
  223. package/dist/esm/schema/nodes/placeholder.js +1 -0
  224. package/dist/esm/schema/nodes/rule.js +1 -0
  225. package/dist/esm/schema/nodes/status.js +5 -4
  226. package/dist/esm/schema/nodes/tableNodes.js +12 -25
  227. package/dist/esm/schema/nodes/task-item.js +2 -2
  228. package/dist/esm/schema/nodes/text.js +1 -0
  229. package/dist/esm/steps/analytics.js +5 -31
  230. package/dist/esm/steps/set-attrs.js +1 -17
  231. package/dist/esm/steps/table/add-column.js +33 -91
  232. package/dist/esm/steps/table/constants.js +0 -1
  233. package/dist/esm/steps/table/sort-column.js +1 -10
  234. package/dist/esm/steps/table/utils/cell-step.js +18 -42
  235. package/dist/esm/steps/table/utils/cells-at-column.js +2 -18
  236. package/dist/esm/steps/table/utils/find-column.js +13 -16
  237. package/dist/esm/steps/table/utils/get-table-rect-from-doc.js +7 -6
  238. package/dist/esm/steps/table/utils/side-effects/rows.js +23 -76
  239. package/dist/esm/steps/table/utils/side-effects/side-effects.js +0 -18
  240. package/dist/esm/steps/table/utils/side-effects/table.js +2 -13
  241. package/dist/esm/steps/type-ahead.js +6 -18
  242. package/dist/esm/utils/colors.js +12 -23
  243. package/dist/esm/utils/confluence/emoji.js +6 -10
  244. package/dist/esm/utils/extensions.js +0 -4
  245. package/dist/esm/utils/url.js +2 -12
  246. package/dist/esm/version.json +1 -1
  247. package/dist/types/schema/default-schema.d.ts +1 -1
  248. package/dist/types/utils/colors.d.ts +1 -1
  249. package/package.json +2 -2
@@ -6,7 +6,6 @@ export const typeAheadQuery = {
6
6
  parseDOM: [{
7
7
  tag: 'span[data-type-ahead-query]'
8
8
  }],
9
-
10
9
  toDOM(node) {
11
10
  return ['span', {
12
11
  'data-type-ahead-query': 'true',
@@ -14,7 +13,6 @@ export const typeAheadQuery = {
14
13
  style: `color: ${B400}`
15
14
  }];
16
15
  },
17
-
18
16
  attrs: {
19
17
  trigger: {
20
18
  default: ''
@@ -1,4 +1,5 @@
1
1
  import { FONT_STYLE } from '../groups';
2
+
2
3
  /**
3
4
  * @name underline_mark
4
5
  */
@@ -12,9 +13,7 @@ export const underline = {
12
13
  style: 'text-decoration',
13
14
  getAttrs: value => value === 'underline' && null
14
15
  }],
15
-
16
16
  toDOM() {
17
17
  return ['u'];
18
18
  }
19
-
20
19
  };
@@ -2,7 +2,6 @@ export const unsupportedMark = {
2
2
  toDOM() {
3
3
  return ['span'];
4
4
  },
5
-
6
5
  excludes: '',
7
6
  attrs: {
8
7
  originalValue: {}
@@ -2,7 +2,6 @@ export const unsupportedNodeAttribute = {
2
2
  toDOM() {
3
3
  return ['span'];
4
4
  },
5
-
6
5
  attrs: {
7
6
  type: {},
8
7
  unsupported: {}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name blockCard_node
3
3
  */
4
+
4
5
  export const blockCard = {
5
6
  inline: false,
6
7
  group: 'block',
@@ -37,10 +38,8 @@ export const blockCard = {
37
38
  };
38
39
  }
39
40
  }],
40
-
41
41
  toDOM(node) {
42
42
  var _node$attrs;
43
-
44
43
  const attrs = {
45
44
  'data-block-card': '',
46
45
  href: node.attrs.url || '',
@@ -48,5 +47,4 @@ export const blockCard = {
48
47
  };
49
48
  return ['a', attrs, (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url) || ' '];
50
49
  }
51
-
52
50
  };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name blockquote_node
3
3
  */
4
+
4
5
  export const blockquote = {
5
6
  content: '(paragraph | unsupportedBlock)+',
6
7
  group: 'block',
@@ -9,9 +10,7 @@ export const blockquote = {
9
10
  parseDOM: [{
10
11
  tag: 'blockquote'
11
12
  }],
12
-
13
13
  toDOM() {
14
14
  return ['blockquote', 0];
15
15
  }
16
-
17
16
  };
@@ -1,5 +1,4 @@
1
1
  import { getExtensionAttrs } from '../../utils/extensions';
2
-
3
2
  const createBodiedExtensionNodeSpec = () => {
4
3
  const nodeSpec = {
5
4
  inline: false,
@@ -37,7 +36,6 @@ const createBodiedExtensionNodeSpec = () => {
37
36
  tag: '[data-node-type="bodied-extension"]',
38
37
  getAttrs: domNode => getExtensionAttrs(domNode)
39
38
  }],
40
-
41
39
  toDOM(node) {
42
40
  const attrs = {
43
41
  'data-node-type': 'bodied-extension',
@@ -50,9 +48,7 @@ const createBodiedExtensionNodeSpec = () => {
50
48
  };
51
49
  return ['div', attrs, 0];
52
50
  }
53
-
54
51
  };
55
52
  return nodeSpec;
56
53
  };
57
-
58
54
  export const bodiedExtension = createBodiedExtensionNodeSpec();
@@ -7,12 +7,10 @@ export const bulletList = {
7
7
  tag: 'ul'
8
8
  }],
9
9
  marks: 'unsupportedMark unsupportedNodeAttribute',
10
-
11
10
  toDOM() {
12
11
  const attrs = {
13
12
  class: bulletListSelector.substr(1)
14
13
  };
15
14
  return ['ul', attrs, 0];
16
15
  }
17
-
18
16
  };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name caption_node
3
3
  */
4
+
4
5
  export const caption = {
5
6
  content: '(text|hardBreak|mention|emoji|date|placeholder|inlineCard|status)*',
6
7
  isolating: true,
@@ -9,12 +10,10 @@ export const caption = {
9
10
  parseDOM: [{
10
11
  tag: 'figcaption[data-caption]'
11
12
  }],
12
-
13
13
  toDOM(node) {
14
14
  const attrs = {
15
15
  'data-caption': 'true'
16
16
  };
17
17
  return ['figcaption', attrs, 0];
18
18
  }
19
-
20
19
  };
@@ -1,50 +1,40 @@
1
1
  import { Fragment } from 'prosemirror-model';
2
-
3
2
  const getLanguageFromEditorStyle = dom => {
4
3
  return dom.getAttribute('data-language') || undefined;
5
- }; // example of BB style:
6
- // <div class="codehilite language-javascript"><pre><span>hello world</span><span>\n</span></pre></div>
7
-
4
+ };
8
5
 
6
+ // example of BB style:
7
+ // <div class="codehilite language-javascript"><pre><span>hello world</span><span>\n</span></pre></div>
9
8
  const getLanguageFromBitbucketStyle = dom => {
10
9
  if (dom && dom.classList.contains('codehilite')) {
11
10
  // code block html from Bitbucket always contains an extra new line
12
11
  return extractLanguageFromClass(dom.className);
13
12
  }
14
-
15
13
  return;
16
- }; // If there is a child code element, check that for data-language
17
-
14
+ };
18
15
 
16
+ // If there is a child code element, check that for data-language
19
17
  const getLanguageFromCode = dom => {
20
18
  const firstChild = dom.firstElementChild;
21
-
22
19
  if (firstChild && firstChild.nodeName === 'CODE') {
23
20
  return firstChild.getAttribute('data-language') || undefined;
24
21
  }
25
22
  };
26
-
27
23
  const extractLanguageFromClass = className => {
28
24
  const languageRegex = /(?:^|\s)language-([^\s]+)/;
29
25
  const result = languageRegex.exec(className);
30
-
31
26
  if (result && result[1]) {
32
27
  return result[1];
33
28
  }
34
-
35
29
  return;
36
30
  };
37
-
38
31
  const removeLastNewLine = dom => {
39
32
  const parent = dom && dom.parentElement;
40
-
41
33
  if (parent && parent.classList.contains('codehilite')) {
42
34
  dom.textContent = dom.textContent.replace(/\n$/, '');
43
35
  }
44
-
45
36
  return dom;
46
37
  };
47
-
48
38
  export const codeBlock = {
49
39
  attrs: {
50
40
  language: {
@@ -70,18 +60,17 @@ export const codeBlock = {
70
60
  language
71
61
  };
72
62
  }
73
- }, // Handle VSCode paste
63
+ },
64
+ // Handle VSCode paste
74
65
  // Checking `white-space: pre-wrap` is too aggressive @see ED-2627
75
66
  {
76
67
  tag: 'div[style]',
77
68
  preserveWhitespace: 'full',
78
69
  getAttrs: domNode => {
79
70
  const dom = domNode;
80
-
81
71
  if (dom.style.whiteSpace === 'pre' || dom.style.fontFamily && dom.style.fontFamily.toLowerCase().indexOf('monospace') > -1) {
82
72
  return {};
83
73
  }
84
-
85
74
  return false;
86
75
  },
87
76
  // @see ED-5682
@@ -90,7 +79,8 @@ export const codeBlock = {
90
79
  const code = Array.from(dom.children).map(child => child.textContent).filter(x => x !== undefined).join('\n');
91
80
  return code ? Fragment.from(schema.text(code)) : Fragment.empty;
92
81
  }
93
- }, // Handle GitHub/Gist paste
82
+ },
83
+ // Handle GitHub/Gist paste
94
84
  {
95
85
  tag: 'table[style]',
96
86
  preserveWhitespace: 'full',
@@ -98,45 +88,38 @@ export const codeBlock = {
98
88
  if (dom.querySelector('td[class*="blob-code"]')) {
99
89
  return {};
100
90
  }
101
-
102
91
  return false;
103
92
  }
104
93
  }, {
105
94
  tag: 'div.code-block',
106
95
  preserveWhitespace: 'full',
107
96
  getAttrs: domNode => {
108
- const dom = domNode; // TODO: ED-5604 Fix it inside `react-syntax-highlighter`
97
+ const dom = domNode;
98
+ // TODO: ED-5604 Fix it inside `react-syntax-highlighter`
109
99
  // Remove line numbers
110
-
111
100
  const lineNumber = dom.querySelectorAll('.react-syntax-highlighter-line-number');
112
-
113
101
  if (lineNumber.length > 0) {
114
102
  // It's possible to copy without the line numbers too hence this
115
103
  // `react-syntax-highlighter-line-number` check, so that we don't remove real code
116
104
  lineNumber.forEach(line => line.remove());
117
105
  }
118
-
119
106
  return {};
120
107
  }
121
108
  }],
122
-
123
109
  toDOM(node) {
124
110
  return ['pre', ['code', {
125
111
  'data-language': node.attrs.language
126
112
  }, 0]];
127
113
  }
128
-
129
114
  };
130
115
  export const toJSON = node => ({
131
116
  attrs: Object.keys(node.attrs).reduce((memo, key) => {
132
117
  if (key === 'uniqueId') {
133
118
  return memo;
134
119
  }
135
-
136
120
  if (key === 'language' && node.attrs.language === null) {
137
121
  return memo;
138
122
  }
139
-
140
123
  memo[key] = node.attrs[key];
141
124
  return memo;
142
125
  }, {})
@@ -33,7 +33,6 @@ export const confluenceJiraIssue = {
33
33
  };
34
34
  }
35
35
  }],
36
-
37
36
  toDOM(node) {
38
37
  const attrs = {
39
38
  'data-node-type': name,
@@ -45,5 +44,4 @@ export const confluenceJiraIssue = {
45
44
  };
46
45
  return ['span', attrs, node.attrs.issueKey];
47
46
  }
48
-
49
47
  };
@@ -6,7 +6,6 @@ export const confluenceUnsupportedBlock = {
6
6
  default: null
7
7
  }
8
8
  },
9
-
10
9
  toDOM(node) {
11
10
  // NOTE: This node cannot be "contenteditable: false". If it's the only node in a document, PM throws an error because there's nowhere to put the cursor.
12
11
  const attrs = {
@@ -16,15 +15,12 @@ export const confluenceUnsupportedBlock = {
16
15
  };
17
16
  return ['div', attrs, 'Unsupported content'];
18
17
  },
19
-
20
18
  parseDOM: [{
21
19
  tag: `div[data-node-type="${name}"]`,
22
-
23
20
  getAttrs(dom) {
24
21
  return {
25
22
  cxhtml: dom.getAttribute('data-confluence-unsupported-block-cxhtml')
26
23
  };
27
24
  }
28
-
29
25
  }]
30
26
  };
@@ -8,7 +8,6 @@ export const confluenceUnsupportedInline = {
8
8
  default: null
9
9
  }
10
10
  },
11
-
12
11
  toDOM(node) {
13
12
  const attrs = {
14
13
  'data-node-type': name,
@@ -17,15 +16,12 @@ export const confluenceUnsupportedInline = {
17
16
  };
18
17
  return ['div', attrs, 'Unsupported content'];
19
18
  },
20
-
21
19
  parseDOM: [{
22
20
  tag: `div[data-node-type="${name}"]`,
23
-
24
21
  getAttrs(dom) {
25
22
  return {
26
23
  cxhtml: dom.getAttribute('data-confluence-unsupported-inline-cxhtml')
27
24
  };
28
25
  }
29
-
30
26
  }]
31
27
  };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name date_node
3
3
  */
4
+
4
5
  export const date = {
5
6
  inline: true,
6
7
  group: 'inline',
@@ -16,7 +17,6 @@ export const date = {
16
17
  timestamp: dom.getAttribute('data-timestamp')
17
18
  })
18
19
  }],
19
-
20
20
  toDOM(node) {
21
21
  const attrs = {
22
22
  'data-node-type': 'date',
@@ -24,5 +24,4 @@ export const date = {
24
24
  };
25
25
  return ['span', attrs];
26
26
  }
27
-
28
27
  };
@@ -21,7 +21,6 @@ export const decisionItem = {
21
21
  state: dom.getAttribute('data-decision-state')
22
22
  })
23
23
  }],
24
-
25
24
  toDOM(node) {
26
25
  const {
27
26
  localId,
@@ -33,5 +32,4 @@ export const decisionItem = {
33
32
  };
34
33
  return ['li', attrs, 0];
35
34
  }
36
-
37
35
  };
@@ -1,4 +1,5 @@
1
1
  import { uuid } from '../../utils/uuid';
2
+
2
3
  /**
3
4
  * @name decisionList_node
4
5
  */
@@ -25,7 +26,6 @@ export const decisionList = {
25
26
  localId: uuid.generate()
26
27
  })
27
28
  }],
28
-
29
29
  toDOM(node) {
30
30
  const {
31
31
  localId
@@ -37,5 +37,4 @@ export const decisionList = {
37
37
  };
38
38
  return ['ol', attrs, 0];
39
39
  }
40
-
41
40
  };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name doc_node
3
3
  */
4
+
4
5
  export const doc = {
5
6
  content: '(block|layoutSection)+',
6
7
  marks: 'alignment breakout dataConsumer fragment indentation unsupportedMark unsupportedNodeAttribute'
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name embedCard_node
3
3
  */
4
+
4
5
  export const embedCard = {
5
6
  inline: false,
6
7
  group: 'block',
@@ -32,7 +33,6 @@ export const embedCard = {
32
33
  originalHeight: Number(dom.getAttribute('data-card-original-height')) || null
33
34
  })
34
35
  }],
35
-
36
36
  toDOM(node) {
37
37
  const {
38
38
  url,
@@ -51,5 +51,4 @@ export const embedCard = {
51
51
  };
52
52
  return ['div', attrs];
53
53
  }
54
-
55
54
  };
@@ -1,4 +1,5 @@
1
1
  import { acNameToEmoji, acShortcutToEmoji } from '../../utils/confluence/emoji';
2
+
2
3
  /**
3
4
  * @name emoji_node
4
5
  */
@@ -18,7 +19,8 @@ export const emoji = {
18
19
  default: ''
19
20
  }
20
21
  },
21
- parseDOM: [// Handle copy/paste beautiful panel from renderer />
22
+ parseDOM: [
23
+ // Handle copy/paste beautiful panel from renderer />
22
24
  {
23
25
  tag: 'div.ak-editor-panel__icon span',
24
26
  ignore: true
@@ -32,15 +34,18 @@ export const emoji = {
32
34
  text: dom.getAttribute('data-emoji-text') || emoji.attrs.text.default
33
35
  };
34
36
  }
35
- }, // Handle copy/paste from old <ac:emoticon />
37
+ },
38
+ // Handle copy/paste from old <ac:emoticon />
36
39
  {
37
40
  tag: 'img[data-emoticon-name]',
38
41
  getAttrs: dom => acNameToEmoji(dom.getAttribute('data-emoticon-name'))
39
- }, // Handle copy/paste from old <ac:hipchat-emoticons />
42
+ },
43
+ // Handle copy/paste from old <ac:hipchat-emoticons />
40
44
  {
41
45
  tag: 'img[data-hipchat-emoticon]',
42
46
  getAttrs: dom => acShortcutToEmoji(dom.getAttribute('data-hipchat-emoticon'))
43
- }, // Handle copy/paste from bitbucket's <img class="emoji" />
47
+ },
48
+ // Handle copy/paste from bitbucket's <img class="emoji" />
44
49
  {
45
50
  tag: 'img.emoji[data-emoji-short-name]',
46
51
  getAttrs: domNode => {
@@ -52,7 +57,6 @@ export const emoji = {
52
57
  };
53
58
  }
54
59
  }],
55
-
56
60
  toDOM(node) {
57
61
  const {
58
62
  shortName,
@@ -67,5 +71,4 @@ export const emoji = {
67
71
  };
68
72
  return ['span', attrs, text];
69
73
  }
70
-
71
74
  };
@@ -9,6 +9,7 @@
9
9
  /**
10
10
  * @name expand_with_breakout_mark_node
11
11
  */
12
+
12
13
  function getExpandAttrs(domNode) {
13
14
  const dom = domNode;
14
15
  return {
@@ -16,7 +17,6 @@ function getExpandAttrs(domNode) {
16
17
  __expanded: true
17
18
  };
18
19
  }
19
-
20
20
  export const expand = {
21
21
  inline: false,
22
22
  group: 'block',
@@ -54,7 +54,6 @@ export const expand = {
54
54
  tag: 'div[data-node-type="expand"]',
55
55
  getAttrs: getExpandAttrs
56
56
  }],
57
-
58
57
  toDOM(node) {
59
58
  const attrs = {
60
59
  'data-node-type': 'expand',
@@ -63,7 +62,6 @@ export const expand = {
63
62
  };
64
63
  return ['div', attrs, 0];
65
64
  }
66
-
67
65
  };
68
66
  export const toJSON = node => ({
69
67
  attrs: Object.keys(node.attrs).filter(key => !key.startsWith('__')).reduce((obj, key) => {
@@ -1,5 +1,4 @@
1
1
  import { getExtensionAttrs } from '../../utils/extensions';
2
-
3
2
  const createExtensionNodeSpec = () => {
4
3
  const nodeSpec = {
5
4
  inline: false,
@@ -30,7 +29,6 @@ const createExtensionNodeSpec = () => {
30
29
  tag: '[data-node-type="extension"]',
31
30
  getAttrs: domNode => getExtensionAttrs(domNode)
32
31
  }],
33
-
34
32
  toDOM(node) {
35
33
  const attrs = {
36
34
  'data-node-type': 'extension',
@@ -43,9 +41,7 @@ const createExtensionNodeSpec = () => {
43
41
  };
44
42
  return ['div', attrs];
45
43
  }
46
-
47
44
  };
48
45
  return nodeSpec;
49
46
  };
50
-
51
47
  export const extension = createExtensionNodeSpec();
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name hardBreak_node
3
3
  */
4
+
4
5
  export const hardBreak = {
5
6
  inline: true,
6
7
  group: 'inline',
@@ -8,9 +9,7 @@ export const hardBreak = {
8
9
  parseDOM: [{
9
10
  tag: 'br'
10
11
  }],
11
-
12
12
  toDOM() {
13
13
  return ['br'];
14
14
  }
15
-
16
15
  };
@@ -5,8 +5,8 @@
5
5
  /**
6
6
  * @name heading_with_no_marks_node
7
7
  */
8
- // Check `paragraph` node for why we are doing things like this
9
8
 
9
+ // Check `paragraph` node for why we are doing things like this
10
10
  /**
11
11
  * @name heading_with_alignment_node
12
12
  */
@@ -14,6 +14,7 @@
14
14
  /**
15
15
  * @name heading_with_indentation_node
16
16
  */
17
+
17
18
  export const heading = {
18
19
  attrs: {
19
20
  level: {
@@ -55,9 +56,7 @@ export const heading = {
55
56
  level: 6
56
57
  }
57
58
  }],
58
-
59
59
  toDOM(node) {
60
60
  return ['h' + node.attrs['level'], 0];
61
61
  }
62
-
63
62
  };
@@ -18,7 +18,6 @@ export const image = {
18
18
  ignore: true
19
19
  }, {
20
20
  tag: 'img[src]',
21
-
22
21
  getAttrs(domNode) {
23
22
  const dom = domNode;
24
23
  return {
@@ -27,11 +26,8 @@ export const image = {
27
26
  title: dom.getAttribute('title')
28
27
  };
29
28
  }
30
-
31
29
  }],
32
-
33
30
  toDOM(node) {
34
31
  return ['img', node.attrs];
35
32
  }
36
-
37
33
  };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @name inlineCard_node
3
3
  */
4
+
4
5
  export const inlineCard = {
5
6
  inline: true,
6
7
  group: 'inline',
@@ -21,14 +22,15 @@ export const inlineCard = {
21
22
  getAttrs: dom => {
22
23
  const anchor = dom;
23
24
  const data = anchor.getAttribute('data-card-data');
24
- /* Support attrs from Editor and Renderer */
25
25
 
26
+ /* Support attrs from Editor and Renderer */
26
27
  return {
27
28
  url: anchor.getAttribute('href') || anchor.getAttribute('data-card-url') || null,
28
29
  data: data ? JSON.parse(data) : null
29
30
  };
30
31
  }
31
- }, // for renderer
32
+ },
33
+ // for renderer
32
34
  {
33
35
  tag: 'div[data-inline-card]',
34
36
  getAttrs: dom => {
@@ -40,19 +42,16 @@ export const inlineCard = {
40
42
  };
41
43
  }
42
44
  }],
43
-
44
45
  toDOM(node) {
45
46
  const attrs = {
46
47
  'data-inline-card': '',
47
48
  href: node.attrs.url || '',
48
49
  'data-card-data': node.attrs.data ? JSON.stringify(node.attrs.data) : ''
49
50
  };
50
-
51
51
  if (node.attrs.url) {
52
52
  return ['a', attrs, node.attrs.url];
53
53
  } else {
54
54
  return ['a', attrs];
55
55
  }
56
56
  }
57
-
58
57
  };
@@ -1,5 +1,4 @@
1
1
  import { getExtensionAttrs } from '../../utils/extensions';
2
-
3
2
  const createInlineExtensionNodeSpec = () => {
4
3
  const nodeSpec = {
5
4
  inline: true,
@@ -26,7 +25,6 @@ const createInlineExtensionNodeSpec = () => {
26
25
  tag: 'span[data-extension-type]',
27
26
  getAttrs: domNode => getExtensionAttrs(domNode, true)
28
27
  }],
29
-
30
28
  toDOM(node) {
31
29
  const attrs = {
32
30
  'data-extension-type': node.attrs.extensionType,
@@ -38,9 +36,7 @@ const createInlineExtensionNodeSpec = () => {
38
36
  };
39
37
  return ['span', attrs];
40
38
  }
41
-
42
39
  };
43
40
  return nodeSpec;
44
41
  };
45
-
46
42
  export const inlineExtension = createInlineExtensionNodeSpec();