@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
@@ -1,10 +1,7 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/regenerator";
2
-
3
2
  var _marked = /*#__PURE__*/_regeneratorRuntime.mark(cellsAtColumn);
4
-
5
3
  import { columnIsHeader, tableNodeTypes } from '@atlaskit/editor-tables/utils';
6
4
  import { getCellIndex, hasMergedColumns, isRootRow } from './table-map';
7
-
8
5
  /**
9
6
  * Helper to have a consistent way to iterate for all the cells in a column.
10
7
  * You can skip rows by passing the rows to skipped in the next arguments.
@@ -20,30 +17,22 @@ export function cellsAtColumn(rect, col) {
20
17
  case 0:
21
18
  map = rect.map, tableStart = rect.tableStart, table = rect.table;
22
19
  refColumn = col > 0 ? -1 : 0;
23
-
24
20
  if (columnIsHeader(map, table, col + refColumn)) {
25
21
  refColumn = col === 0 || col === map.width ? null : 0;
26
22
  }
27
-
28
23
  row = 0;
29
-
30
24
  case 4:
31
25
  if (!(row < map.height)) {
32
26
  _context.next = 20;
33
27
  break;
34
28
  }
35
-
36
29
  index = getCellIndex(rect.map, row, col);
37
30
  pos = map.map[index]; // We only consider to has merged cell to the first cell in a rowspan.
38
-
39
31
  hasMergedCells = hasMergedColumns(rect.map, row, col) && isRootRow(rect.map, row, col); // If this position falls inside a col-spanning cell
40
-
41
32
  type = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map.map[index + refColumn]).type;
42
-
43
33
  if (!hasMergedCells) {
44
34
  pos = map.positionAt(row, col, table);
45
35
  }
46
-
47
36
  cell = table.nodeAt(pos);
48
37
  cellInfo = {
49
38
  from: tableStart + pos,
@@ -53,28 +42,23 @@ export function cellsAtColumn(rect, col) {
53
42
  type: type,
54
43
  hasMergedCells: hasMergedCells
55
44
  };
56
-
57
45
  if (cell) {
58
46
  cellInfo.attrs = cell.attrs;
59
47
  cellInfo.to = tableStart + pos + cell.nodeSize;
60
- } // We let the consumer to pass the rows that we want to skip
61
-
48
+ }
62
49
 
50
+ // We let the consumer to pass the rows that we want to skip
63
51
  _context.next = 15;
64
52
  return cellInfo;
65
-
66
53
  case 15:
67
54
  skippedRows = _context.sent;
68
-
69
55
  if (skippedRows && skippedRows > 0) {
70
56
  row += skippedRows;
71
57
  }
72
-
73
58
  case 17:
74
59
  row++;
75
60
  _context.next = 4;
76
61
  break;
77
-
78
62
  case 20:
79
63
  case "end":
80
64
  return _context.stop();
@@ -29,35 +29,35 @@ export function findColumn(columnInfo, rect) {
29
29
  * end = 1
30
30
  * * Start === end return 1
31
31
  */
32
+
32
33
  // Initial range (start and end column) to search for each row
33
34
  var start = 0,
34
- end = rect.map.width - 1;
35
+ end = rect.map.width - 1;
35
36
  var iter = columnInfo.values();
36
- var next = iter.next(); // Iterate for each row
37
+ var next = iter.next();
37
38
 
39
+ // Iterate for each row
38
40
  for (var row = 0; row < rect.map.height; row++) {
39
41
  if (next.done) {
40
42
  break;
41
- } // Iterate for the column. Starting with the current start range
42
-
43
-
43
+ }
44
+ // Iterate for the column. Starting with the current start range
44
45
  for (var col = start; col <= end; col++) {
45
46
  var i = row * rect.map.width + col;
46
47
  var cell = rect.map.map[i];
47
- var cellInfo = next.value.from - rect.tableStart; // When cell is found update range with the new values
48
+ var cellInfo = next.value.from - rect.tableStart;
48
49
 
50
+ // When cell is found update range with the new values
49
51
  if (cell === cellInfo) {
50
52
  start = col; // Start column will be the current column
51
53
  // Try to find the end column. End column will be different that start when has merged cells.
52
-
53
54
  var endIndex = end - start + i;
54
-
55
55
  for (var j = i; j <= endIndex; j++) {
56
56
  if (rect.map.map[j] !== cell) {
57
57
  break;
58
- } // merged columns
59
-
58
+ }
60
59
 
60
+ // merged columns
61
61
  end = start + j - i; // Update the end column with the new position
62
62
  }
63
63
 
@@ -65,23 +65,20 @@ export function findColumn(columnInfo, rect) {
65
65
  // We found the right column only when start and end columns are the same.
66
66
  return start;
67
67
  }
68
-
69
68
  next = iter.next();
70
69
  break;
71
- } // Sometimes I want to find a column at the end of the table (It doesn't exist, but we can add a new cell there).
70
+ }
71
+
72
+ // Sometimes I want to find a column at the end of the table (It doesn't exist, but we can add a new cell there).
72
73
  // This is represented by the end position of the last cell in the column.
73
74
  // In this case return, table width
74
-
75
-
76
75
  if (col === rect.map.width - 1) {
77
76
  var cellNode = rect.table.nodeAt(cell);
78
-
79
77
  if (cell + cellNode.nodeSize === cellInfo) {
80
78
  return rect.map.width;
81
79
  }
82
80
  }
83
81
  }
84
82
  }
85
-
86
83
  return null;
87
84
  }
@@ -1,21 +1,22 @@
1
1
  import { TableMap } from '@atlaskit/editor-tables/table-map';
2
+
2
3
  /**
3
4
  * Util to get the table rect from the docs
4
5
  * @param doc
5
6
  * @param tablePos
6
7
  */
7
-
8
8
  export function getTableRectFromDoc(doc, tablePos) {
9
- var table = doc.nodeAt(tablePos); // Check for table existence
9
+ var table = doc.nodeAt(tablePos);
10
10
 
11
+ // Check for table existence
11
12
  if (!table || table.type.name !== 'table') {
12
13
  throw new Error("No table at position \"".concat(tablePos, "\"."));
13
- } // Create transform base on the doc
14
-
14
+ }
15
15
 
16
+ // Create transform base on the doc
16
17
  var map = TableMap.get(table);
17
- var $table = doc.resolve(tablePos); // Nested tables start position might differ from the original position
18
-
18
+ var $table = doc.resolve(tablePos);
19
+ // Nested tables start position might differ from the original position
19
20
  var start = $table.start($table.depth + 1);
20
21
  return {
21
22
  map: map,
@@ -2,26 +2,18 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
5
-
6
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; } } }; }
7
-
8
6
  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); }
9
-
10
7
  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; }
11
-
12
8
  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; }
13
-
14
9
  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; }
15
-
16
10
  import { hasMergedColumns } from '../table-map';
17
-
18
11
  function mergedRanges(first, second) {
19
12
  var newRanges = [];
20
13
  var firstLength = first.length;
21
14
  var secondLength = second.length;
22
15
  var i = 0;
23
16
  var j = 0;
24
-
25
17
  while (i < firstLength && j < secondLength) {
26
18
  if (first[i] < second[j]) {
27
19
  newRanges.push(first[i], first[i + 1], first[i + 2]);
@@ -31,22 +23,17 @@ function mergedRanges(first, second) {
31
23
  j += 3;
32
24
  }
33
25
  }
34
-
35
26
  if (i < firstLength) {
36
27
  newRanges.push.apply(newRanges, _toConsumableArray(first.slice(i)));
37
28
  }
38
-
39
29
  if (j < secondLength) {
40
30
  newRanges.push.apply(newRanges, _toConsumableArray(second.slice(i)));
41
31
  }
42
-
43
32
  return newRanges;
44
33
  }
45
-
46
34
  function increaseRowSpan(tr, rect, row) {
47
35
  var map = rect.map,
48
- tableStart = rect.tableStart;
49
-
36
+ tableStart = rect.tableStart;
50
37
  for (var _col2 = 0; _col2 < map.width; _col2++) {
51
38
  var index = row * map.width + _col2;
52
39
  var pos = map.map[index];
@@ -58,17 +45,14 @@ function increaseRowSpan(tr, rect, row) {
58
45
  _col2 += attrs.colspan - 1;
59
46
  }
60
47
  }
61
-
62
48
  function decreaseRowspan(tr, rect, row, colToRemove) {
63
49
  var skipRows = 0;
64
50
  var map = rect.map,
65
- table = rect.table,
66
- tableStart = rect.tableStart;
67
-
51
+ table = rect.table,
52
+ tableStart = rect.tableStart;
68
53
  for (var _col3 = 0; _col3 < map.width; _col3++) {
69
54
  var index = row * map.width + _col3;
70
55
  var pos = map.map[index];
71
-
72
56
  if (row > 0 && pos === map.map[index - map.width]) {
73
57
  // If this cell starts in the row above, simply reduce its rowspan
74
58
  var mappedPos = tr.mapping.map(pos + tableStart);
@@ -81,34 +65,29 @@ function decreaseRowspan(tr, rect, row, colToRemove) {
81
65
  skipRows = table.nodeAt(pos).attrs.rowspan - 1;
82
66
  }
83
67
  }
84
-
85
68
  return skipRows;
86
69
  }
87
-
88
70
  function isLastCellInRow(rect, row, col) {
89
71
  var rowNode = rect.table.child(row);
90
-
91
72
  if (!rowNode) {
92
73
  return false;
93
74
  }
94
-
95
75
  return rowNode.childCount === 1 && !hasMergedColumns(rect.map, row, col);
96
76
  }
97
-
98
77
  function removeRowWithLastCell(tr, rect, row, _col) {
99
78
  // Get row pos
100
79
  var from = rect.tableStart;
101
-
102
80
  for (var i = 0; i < row; i++) {
103
81
  from += rect.table.child(i).nodeSize;
104
82
  }
105
-
106
83
  var rowNode = rect.table.child(row);
107
- var to = from + rowNode.nodeSize; // Create sideEffect and delete the row
108
- // We store original row position before modifications
84
+ var to = from + rowNode.nodeSize;
109
85
 
110
- tr.delete(tr.mapping.map(from), tr.mapping.map(to)); // Change rowspan of all cells except current col and get the rows to skip
86
+ // Create sideEffect and delete the row
87
+ // We store original row position before modifications
88
+ tr.delete(tr.mapping.map(from), tr.mapping.map(to));
111
89
 
90
+ // Change rowspan of all cells except current col and get the rows to skip
112
91
  var skipRows = decreaseRowspan(tr, rect, row, _col);
113
92
  return {
114
93
  skipRows: skipRows,
@@ -119,20 +98,16 @@ function removeRowWithLastCell(tr, rect, row, _col) {
119
98
  }
120
99
  };
121
100
  }
122
-
123
101
  function addRow(tr, rect, prevRow, rowSideEffect) {
124
102
  var cellNode = rowSideEffect.rowNode.child(0);
125
103
  tr.insert(tr.mapping.map(rowSideEffect.from), rowSideEffect.rowNode);
126
104
  increaseRowSpan(tr, rect, prevRow);
127
105
  return cellNode.attrs.rowspan - 1;
128
106
  }
129
-
130
107
  export var RowsSideEffectHandler = /*#__PURE__*/function () {
131
108
  function RowsSideEffectHandler(rowsSideEffect) {
132
109
  var _this = this;
133
-
134
110
  _classCallCheck(this, RowsSideEffectHandler);
135
-
136
111
  _defineProperty(this, "deleteHandler", function () {
137
112
  var newRows = [];
138
113
  return {
@@ -142,11 +117,9 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
142
117
  handled: false
143
118
  };
144
119
  }
145
-
146
120
  var _removeRowWithLastCel = removeRowWithLastCell(tr, rect, row, col),
147
- rowSideEffect = _removeRowWithLastCel.row,
148
- skipRows = _removeRowWithLastCel.skipRows;
149
-
121
+ rowSideEffect = _removeRowWithLastCel.row,
122
+ skipRows = _removeRowWithLastCel.skipRows;
150
123
  newRows.push(rowSideEffect);
151
124
  return {
152
125
  handled: true,
@@ -162,7 +135,6 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
162
135
  }
163
136
  };
164
137
  });
165
-
166
138
  _defineProperty(this, "addHandler", function () {
167
139
  var lastCellFrom = 0;
168
140
  var i = 0;
@@ -173,26 +145,22 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
173
145
  return {
174
146
  handled: false
175
147
  };
176
- } // Next row to add;
177
-
148
+ }
178
149
 
150
+ // Next row to add;
179
151
  var skipRows;
180
152
  var nextRow;
181
-
182
153
  while ((nextRow = _this.rows[i]) && nextRow.from > lastCellFrom && nextRow.from < cell.from) {
183
154
  // I am in between of the previous and next row in the table;
184
155
  skipRows = addRow(tr, rect, row - 1, nextRow);
185
156
  i++;
186
157
  }
187
-
188
158
  lastCellFrom = cell.from;
189
-
190
159
  if (!skipRows || skipRows === 0) {
191
160
  return {
192
161
  handled: false
193
162
  };
194
163
  }
195
-
196
164
  return {
197
165
  handled: true,
198
166
  skipRows: skipRows - 1
@@ -201,11 +169,10 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
201
169
  end: function end(tr, rect, col) {
202
170
  if (!_this.rows || i >= _this.rows.length) {
203
171
  return;
204
- } // Add rows at the end of the table
205
-
172
+ }
206
173
 
174
+ // Add rows at the end of the table
207
175
  var nextRow;
208
-
209
176
  while (nextRow = _this.rows[i]) {
210
177
  addRow(tr, rect, rect.map.height - 1, nextRow);
211
178
  i++;
@@ -213,17 +180,14 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
213
180
  }
214
181
  };
215
182
  });
216
-
217
183
  this.rows = rowsSideEffect;
218
184
  }
219
-
220
185
  _createClass(RowsSideEffectHandler, [{
221
186
  key: "start",
222
187
  value: function start(isDelete) {
223
188
  if (isDelete) {
224
189
  return this.deleteHandler();
225
190
  }
226
-
227
191
  return this.addHandler();
228
192
  }
229
193
  }, {
@@ -232,31 +196,27 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
232
196
  if (!this.rows) {
233
197
  return ranges;
234
198
  }
235
-
236
199
  var rowRanges = [];
237
-
238
200
  var _iterator = _createForOfIteratorHelper(this.rows),
239
- _step;
240
-
201
+ _step;
241
202
  try {
242
203
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
243
204
  var _row = _step.value;
244
205
  var from = _row.from,
245
- to = _row.to;
246
-
206
+ to = _row.to;
247
207
  if (isDelete) {
248
208
  rowRanges.push(from, to - from, 0);
249
209
  } else {
250
210
  rowRanges.push(from, 0, to - from);
251
211
  }
252
- } // Merged ranges
212
+ }
253
213
 
214
+ // Merged ranges
254
215
  } catch (err) {
255
216
  _iterator.e(err);
256
217
  } finally {
257
218
  _iterator.f();
258
219
  }
259
-
260
220
  return mergedRanges(ranges, rowRanges);
261
221
  }
262
222
  }, {
@@ -270,25 +230,21 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
270
230
  if (!this.rows) {
271
231
  return;
272
232
  }
273
-
274
233
  var invertedRows = [];
275
-
276
234
  var _iterator2 = _createForOfIteratorHelper(this.rows),
277
- _step2;
278
-
235
+ _step2;
279
236
  try {
280
237
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
281
238
  var _row2 = _step2.value;
282
-
283
239
  if (isDelete) {
284
240
  // Moving from delete to add keep the inverted rows + offset
285
241
  var offset = map.map(_row2.from) - _row2.from;
286
-
287
242
  invertedRows.push(_objectSpread(_objectSpread({}, _row2), {}, {
288
243
  from: _row2.from + offset,
289
244
  to: _row2.from + offset
290
245
  }));
291
- } else {// Moving from add to delete keep
246
+ } else {
247
+ // Moving from add to delete keep
292
248
  // TODO: I think we need to add the respective cell into the cellSteps...... not sure....
293
249
  }
294
250
  }
@@ -297,7 +253,6 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
297
253
  } finally {
298
254
  _iterator2.f();
299
255
  }
300
-
301
256
  return invertedRows;
302
257
  }
303
258
  }, {
@@ -306,12 +261,9 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
306
261
  if (!this.rows) {
307
262
  return;
308
263
  }
309
-
310
264
  var rowsInJson = [];
311
-
312
265
  var _iterator3 = _createForOfIteratorHelper(this.rows),
313
- _step3;
314
-
266
+ _step3;
315
267
  try {
316
268
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
317
269
  var _row3 = _step3.value;
@@ -326,17 +278,14 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
326
278
  } finally {
327
279
  _iterator3.f();
328
280
  }
329
-
330
281
  return rowsInJson;
331
282
  }
332
283
  }], [{
333
284
  key: "fromJSON",
334
285
  value: function fromJSON(schema, json) {
335
286
  var rowSideEffects = [];
336
-
337
287
  var _iterator4 = _createForOfIteratorHelper(json),
338
- _step4;
339
-
288
+ _step4;
340
289
  try {
341
290
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
342
291
  var _row4 = _step4.value;
@@ -351,10 +300,8 @@ export var RowsSideEffectHandler = /*#__PURE__*/function () {
351
300
  } finally {
352
301
  _iterator4.f();
353
302
  }
354
-
355
303
  return rowSideEffects;
356
304
  }
357
305
  }]);
358
-
359
306
  return RowsSideEffectHandler;
360
307
  }();
@@ -5,11 +5,9 @@ import { RowsSideEffectHandler } from './rows';
5
5
  export var SideEffectsHandler = /*#__PURE__*/function () {
6
6
  function SideEffectsHandler(sideEffects) {
7
7
  _classCallCheck(this, SideEffectsHandler);
8
-
9
8
  this.table = new TableSideEffectHandler(sideEffects && sideEffects.table);
10
9
  this.rows = new RowsSideEffectHandler(sideEffects && sideEffects.rows);
11
10
  }
12
-
13
11
  _createClass(SideEffectsHandler, [{
14
12
  key: "getTableMap",
15
13
  value: function getTableMap(isDelete) {
@@ -21,15 +19,12 @@ export var SideEffectsHandler = /*#__PURE__*/function () {
21
19
  var sideEffects = {};
22
20
  var tableSideEffect = this.table.map(mapping);
23
21
  var rowsSideEffect = this.rows.map(mapping);
24
-
25
22
  if (tableSideEffect) {
26
23
  sideEffects.table = tableSideEffect;
27
24
  }
28
-
29
25
  if (rowsSideEffect) {
30
26
  sideEffects.rows = rowsSideEffect;
31
27
  }
32
-
33
28
  return sideEffects;
34
29
  }
35
30
  }, {
@@ -37,17 +32,13 @@ export var SideEffectsHandler = /*#__PURE__*/function () {
37
32
  value: function invert(originalDoc, isDelete, map) {
38
33
  var sideEffects = {};
39
34
  var tableSideEffect = this.table.invert(originalDoc);
40
-
41
35
  if (tableSideEffect) {
42
36
  sideEffects.table = tableSideEffect;
43
37
  }
44
-
45
38
  var rowsSideEffect = this.rows.invert(originalDoc, isDelete, map);
46
-
47
39
  if (rowsSideEffect) {
48
40
  sideEffects.rows = rowsSideEffect;
49
41
  }
50
-
51
42
  return sideEffects;
52
43
  }
53
44
  }, {
@@ -55,39 +46,30 @@ export var SideEffectsHandler = /*#__PURE__*/function () {
55
46
  value: function toJSON() {
56
47
  var tableSideEffectJson = this.table.toJSON();
57
48
  var rowsSideEffectJson = this.rows.toJSON();
58
-
59
49
  if (!tableSideEffectJson && !rowsSideEffectJson) {
60
50
  return;
61
51
  }
62
-
63
52
  var sideEffectsJSON = {};
64
-
65
53
  if (tableSideEffectJson) {
66
54
  sideEffectsJSON.table = tableSideEffectJson;
67
55
  }
68
-
69
56
  if (rowsSideEffectJson) {
70
57
  sideEffectsJSON.rows = rowsSideEffectJson;
71
58
  }
72
-
73
59
  return sideEffectsJSON;
74
60
  }
75
61
  }], [{
76
62
  key: "fromJSON",
77
63
  value: function fromJSON(schema, json) {
78
64
  var sideEffects = {};
79
-
80
65
  if (json.table) {
81
66
  sideEffects.table = TableSideEffectHandler.fromJSON(schema, json.table);
82
67
  }
83
-
84
68
  if (json.rows) {
85
69
  sideEffects.rows = RowsSideEffectHandler.fromJSON(schema, json.rows);
86
70
  }
87
-
88
71
  return sideEffects;
89
72
  }
90
73
  }]);
91
-
92
74
  return SideEffectsHandler;
93
75
  }();
@@ -4,12 +4,10 @@ import { StepMap } from 'prosemirror-transform';
4
4
  export var TableSideEffectHandler = /*#__PURE__*/function () {
5
5
  function TableSideEffectHandler(tableSideEffect) {
6
6
  _classCallCheck(this, TableSideEffectHandler);
7
-
8
7
  if (tableSideEffect) {
9
8
  this.table = tableSideEffect;
10
9
  }
11
10
  }
12
-
13
11
  _createClass(TableSideEffectHandler, [{
14
12
  key: "addTableSideEffect",
15
13
  value: function addTableSideEffect(from, to, node) {
@@ -25,7 +23,6 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
25
23
  if (isDelete || !this.table) {
26
24
  return false;
27
25
  }
28
-
29
26
  tr.insert(this.table.from, this.table.node);
30
27
  return true;
31
28
  }
@@ -38,7 +35,6 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
38
35
  tr.delete(tablePos, tablePos + tableRect.table.nodeSize);
39
36
  return true;
40
37
  }
41
-
42
38
  return false;
43
39
  }
44
40
  }, {
@@ -47,15 +43,12 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
47
43
  if (!this.table) {
48
44
  return;
49
45
  }
50
-
51
46
  var _this$table = this.table,
52
- from = _this$table.from,
53
- to = _this$table.to;
54
-
47
+ from = _this$table.from,
48
+ to = _this$table.to;
55
49
  if (isDelete) {
56
50
  return new StepMap([from, to - from, 0]);
57
51
  }
58
-
59
52
  return new StepMap([from, 0, to - from]);
60
53
  }
61
54
  }, {
@@ -64,7 +57,6 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
64
57
  if (!this.table) {
65
58
  return;
66
59
  }
67
-
68
60
  return {
69
61
  from: mapping.map(this.table.from),
70
62
  to: mapping.map(this.table.to),
@@ -77,7 +69,6 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
77
69
  if (!this.table) {
78
70
  return;
79
71
  }
80
-
81
72
  var tableNode = doc.nodeAt(this.table.from);
82
73
  return {
83
74
  from: this.table.from,
@@ -91,7 +82,6 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
91
82
  if (!this.table) {
92
83
  return;
93
84
  }
94
-
95
85
  return {
96
86
  from: this.table.from,
97
87
  to: this.table.to,
@@ -108,6 +98,5 @@ export var TableSideEffectHandler = /*#__PURE__*/function () {
108
98
  };
109
99
  }
110
100
  }]);
111
-
112
101
  return TableSideEffectHandler;
113
102
  }();