@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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/json-schema/index.js +0 -3
- package/dist/cjs/schema/bitbucket-schema.js +0 -2
- package/dist/cjs/schema/confluence-schema.js +1 -4
- package/dist/cjs/schema/create-schema.js +12 -38
- package/dist/cjs/schema/default-schema.js +3 -16
- package/dist/cjs/schema/groups.js +13 -6
- package/dist/cjs/schema/index.js +0 -5
- package/dist/cjs/schema/inline-nodes.js +0 -5
- package/dist/cjs/schema/jira-schema.js +0 -36
- package/dist/cjs/schema/marks/alignment.js +0 -2
- package/dist/cjs/schema/marks/annotation.js +2 -14
- package/dist/cjs/schema/marks/code.js +0 -5
- package/dist/cjs/schema/marks/confluence-inline-comment.js +1 -1
- package/dist/cjs/schema/marks/data-consumer.js +2 -7
- package/dist/cjs/schema/marks/em.js +0 -2
- package/dist/cjs/schema/marks/fragment.js +0 -13
- package/dist/cjs/schema/marks/indentation.js +0 -2
- package/dist/cjs/schema/marks/index.js +0 -18
- package/dist/cjs/schema/marks/link.js +0 -17
- package/dist/cjs/schema/marks/strike.js +0 -2
- package/dist/cjs/schema/marks/strong.js +2 -3
- package/dist/cjs/schema/marks/subsup.js +0 -5
- package/dist/cjs/schema/marks/text-color.js +46 -37
- package/dist/cjs/schema/marks/type-ahead-query.js +0 -3
- package/dist/cjs/schema/marks/underline.js +0 -2
- package/dist/cjs/schema/nodes/block-card.js +1 -2
- package/dist/cjs/schema/nodes/blockquote.js +1 -1
- package/dist/cjs/schema/nodes/bodied-extension.js +0 -3
- package/dist/cjs/schema/nodes/caption.js +1 -1
- package/dist/cjs/schema/nodes/code-block.js +11 -29
- package/dist/cjs/schema/nodes/date.js +1 -1
- package/dist/cjs/schema/nodes/decision-item.js +2 -4
- package/dist/cjs/schema/nodes/decision-list.js +0 -2
- package/dist/cjs/schema/nodes/doc.js +1 -1
- package/dist/cjs/schema/nodes/embed-card.js +6 -6
- package/dist/cjs/schema/nodes/emoji.js +11 -9
- package/dist/cjs/schema/nodes/expand.js +1 -4
- package/dist/cjs/schema/nodes/extension.js +0 -3
- package/dist/cjs/schema/nodes/hard-break.js +1 -1
- package/dist/cjs/schema/nodes/heading.js +2 -2
- package/dist/cjs/schema/nodes/index.js +0 -45
- package/dist/cjs/schema/nodes/inline-card.js +4 -4
- package/dist/cjs/schema/nodes/inline-extension.js +0 -3
- package/dist/cjs/schema/nodes/layout-column.js +4 -5
- package/dist/cjs/schema/nodes/layout-section.js +1 -1
- package/dist/cjs/schema/nodes/media-group.js +1 -1
- package/dist/cjs/schema/nodes/media-inline.js +0 -2
- package/dist/cjs/schema/nodes/media-single.js +3 -14
- package/dist/cjs/schema/nodes/media.js +10 -28
- package/dist/cjs/schema/nodes/mention.js +4 -14
- package/dist/cjs/schema/nodes/nested-expand.js +1 -1
- package/dist/cjs/schema/nodes/ordered-list.js +3 -17
- package/dist/cjs/schema/nodes/panel.js +1 -13
- package/dist/cjs/schema/nodes/paragraph.js +1 -6
- package/dist/cjs/schema/nodes/placeholder.js +1 -1
- package/dist/cjs/schema/nodes/rule.js +1 -1
- package/dist/cjs/schema/nodes/status.js +4 -6
- package/dist/cjs/schema/nodes/tableNodes.js +12 -39
- package/dist/cjs/schema/nodes/task-item.js +2 -4
- package/dist/cjs/schema/nodes/task-list.js +0 -2
- package/dist/cjs/schema/nodes/text.js +1 -1
- package/dist/cjs/steps/analytics.js +4 -38
- package/dist/cjs/steps/set-attrs.js +0 -26
- package/dist/cjs/steps/table/add-column.js +33 -105
- package/dist/cjs/steps/table/constants.js +0 -1
- package/dist/cjs/steps/table/sort-column.js +0 -19
- package/dist/cjs/steps/table/utils/cell-step.js +18 -49
- package/dist/cjs/steps/table/utils/cells-at-column.js +2 -21
- package/dist/cjs/steps/table/utils/find-column.js +13 -17
- package/dist/cjs/steps/table/utils/get-table-rect-from-doc.js +6 -8
- package/dist/cjs/steps/table/utils/side-effects/rows.js +23 -78
- package/dist/cjs/steps/table/utils/side-effects/side-effects.js +0 -23
- package/dist/cjs/steps/table/utils/side-effects/table.js +2 -18
- package/dist/cjs/steps/table/utils/table-map.js +0 -6
- package/dist/cjs/steps/type-ahead.js +5 -25
- package/dist/cjs/steps.js +0 -6
- package/dist/cjs/utils/colors.js +13 -36
- package/dist/cjs/utils/confluence/emoji.js +6 -13
- package/dist/cjs/utils/extensions.js +0 -8
- package/dist/cjs/utils/index.js +0 -4
- package/dist/cjs/utils/parseDOM.js +0 -2
- package/dist/cjs/utils/url.js +3 -20
- package/dist/cjs/utils/uuid.js +0 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/index.js +1 -2
- package/dist/es2019/schema/bitbucket-schema.js +1 -1
- package/dist/es2019/schema/confluence-schema.js +1 -2
- package/dist/es2019/schema/create-schema.js +12 -25
- package/dist/es2019/schema/default-schema.js +3 -11
- package/dist/es2019/schema/groups.js +13 -6
- package/dist/es2019/schema/index.js +1 -2
- package/dist/es2019/schema/jira-schema.js +0 -24
- package/dist/es2019/schema/marks/alignment.js +1 -3
- package/dist/es2019/schema/marks/annotation.js +3 -9
- package/dist/es2019/schema/marks/breakout.js +0 -4
- package/dist/es2019/schema/marks/code.js +1 -5
- package/dist/es2019/schema/marks/confluence-inline-comment.js +1 -2
- package/dist/es2019/schema/marks/data-consumer.js +3 -5
- package/dist/es2019/schema/marks/em.js +1 -2
- package/dist/es2019/schema/marks/fragment.js +0 -8
- package/dist/es2019/schema/marks/indentation.js +0 -4
- package/dist/es2019/schema/marks/link.js +2 -11
- package/dist/es2019/schema/marks/strike.js +1 -2
- package/dist/es2019/schema/marks/strong.js +3 -7
- package/dist/es2019/schema/marks/subsup.js +0 -6
- package/dist/es2019/schema/marks/text-color.js +44 -29
- package/dist/es2019/schema/marks/type-ahead-query.js +0 -2
- package/dist/es2019/schema/marks/underline.js +1 -2
- package/dist/es2019/schema/marks/unsupported-mark.js +0 -1
- package/dist/es2019/schema/marks/unsupported-node-attributes.js +0 -1
- package/dist/es2019/schema/nodes/block-card.js +1 -3
- package/dist/es2019/schema/nodes/blockquote.js +1 -2
- package/dist/es2019/schema/nodes/bodied-extension.js +0 -4
- package/dist/es2019/schema/nodes/bullet-list.js +0 -2
- package/dist/es2019/schema/nodes/caption.js +1 -2
- package/dist/es2019/schema/nodes/code-block.js +11 -28
- package/dist/es2019/schema/nodes/confluence-jira-issue.js +0 -2
- package/dist/es2019/schema/nodes/confluence-unsupported-block.js +0 -4
- package/dist/es2019/schema/nodes/confluence-unsupported-inline.js +0 -4
- package/dist/es2019/schema/nodes/date.js +1 -2
- package/dist/es2019/schema/nodes/decision-item.js +0 -2
- package/dist/es2019/schema/nodes/decision-list.js +1 -2
- package/dist/es2019/schema/nodes/doc.js +1 -0
- package/dist/es2019/schema/nodes/embed-card.js +1 -2
- package/dist/es2019/schema/nodes/emoji.js +9 -6
- package/dist/es2019/schema/nodes/expand.js +1 -3
- package/dist/es2019/schema/nodes/extension.js +0 -4
- package/dist/es2019/schema/nodes/hard-break.js +1 -2
- package/dist/es2019/schema/nodes/heading.js +2 -3
- package/dist/es2019/schema/nodes/image.js +0 -4
- package/dist/es2019/schema/nodes/inline-card.js +4 -5
- package/dist/es2019/schema/nodes/inline-extension.js +0 -4
- package/dist/es2019/schema/nodes/layout-column.js +4 -6
- package/dist/es2019/schema/nodes/layout-section.js +1 -4
- package/dist/es2019/schema/nodes/list-item.js +0 -2
- package/dist/es2019/schema/nodes/media-group.js +1 -2
- package/dist/es2019/schema/nodes/media-single.js +3 -6
- package/dist/es2019/schema/nodes/media.js +10 -20
- package/dist/es2019/schema/nodes/mention.js +0 -11
- package/dist/es2019/schema/nodes/nested-expand.js +1 -2
- package/dist/es2019/schema/nodes/ordered-list.js +4 -14
- package/dist/es2019/schema/nodes/panel.js +3 -10
- package/dist/es2019/schema/nodes/paragraph.js +1 -7
- package/dist/es2019/schema/nodes/placeholder.js +1 -2
- package/dist/es2019/schema/nodes/rule.js +1 -2
- package/dist/es2019/schema/nodes/status.js +1 -2
- package/dist/es2019/schema/nodes/tableNodes.js +10 -26
- package/dist/es2019/schema/nodes/task-item.js +0 -2
- package/dist/es2019/schema/nodes/task-list.js +0 -2
- package/dist/es2019/schema/nodes/text.js +1 -0
- package/dist/es2019/schema/nodes/unknown-block.js +0 -2
- package/dist/es2019/schema/nodes/unsupported-block.js +0 -2
- package/dist/es2019/schema/nodes/unsupported-inline.js +0 -2
- package/dist/es2019/steps/analytics.js +13 -30
- package/dist/es2019/steps/set-attrs.js +3 -12
- package/dist/es2019/steps/table/add-column.js +33 -76
- package/dist/es2019/steps/table/constants.js +0 -1
- package/dist/es2019/steps/table/sort-column.js +1 -8
- package/dist/es2019/steps/table/utils/cell-step.js +15 -32
- package/dist/es2019/steps/table/utils/cells-at-column.js +6 -11
- package/dist/es2019/steps/table/utils/find-column.js +12 -15
- package/dist/es2019/steps/table/utils/get-table-rect-from-doc.js +7 -6
- package/dist/es2019/steps/table/utils/side-effects/rows.js +19 -59
- package/dist/es2019/steps/table/utils/side-effects/side-effects.js +0 -21
- package/dist/es2019/steps/table/utils/side-effects/table.js +0 -17
- package/dist/es2019/steps/type-ahead.js +3 -15
- package/dist/es2019/utils/colors.js +8 -18
- package/dist/es2019/utils/confluence/emoji.js +5 -8
- package/dist/es2019/utils/extensions.js +0 -4
- package/dist/es2019/utils/url.js +2 -12
- package/dist/es2019/utils/uuid.js +0 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/schema/bitbucket-schema.js +1 -1
- package/dist/esm/schema/confluence-schema.js +1 -2
- package/dist/esm/schema/create-schema.js +12 -31
- package/dist/esm/schema/default-schema.js +3 -11
- package/dist/esm/schema/groups.js +13 -6
- package/dist/esm/schema/index.js +1 -2
- package/dist/esm/schema/jira-schema.js +0 -24
- package/dist/esm/schema/marks/alignment.js +1 -1
- package/dist/esm/schema/marks/annotation.js +3 -11
- package/dist/esm/schema/marks/code.js +1 -3
- package/dist/esm/schema/marks/confluence-inline-comment.js +1 -0
- package/dist/esm/schema/marks/data-consumer.js +3 -3
- package/dist/esm/schema/marks/em.js +1 -0
- package/dist/esm/schema/marks/fragment.js +0 -9
- package/dist/esm/schema/marks/link.js +0 -12
- package/dist/esm/schema/marks/strike.js +1 -0
- package/dist/esm/schema/marks/strong.js +3 -1
- package/dist/esm/schema/marks/subsup.js +0 -4
- package/dist/esm/schema/marks/text-color.js +46 -30
- package/dist/esm/schema/marks/underline.js +1 -0
- package/dist/esm/schema/nodes/block-card.js +1 -1
- package/dist/esm/schema/nodes/blockquote.js +1 -0
- package/dist/esm/schema/nodes/bodied-extension.js +0 -2
- package/dist/esm/schema/nodes/caption.js +1 -0
- package/dist/esm/schema/nodes/code-block.js +11 -26
- package/dist/esm/schema/nodes/date.js +1 -0
- package/dist/esm/schema/nodes/decision-item.js +2 -2
- package/dist/esm/schema/nodes/decision-list.js +1 -0
- package/dist/esm/schema/nodes/doc.js +1 -0
- package/dist/esm/schema/nodes/embed-card.js +6 -5
- package/dist/esm/schema/nodes/emoji.js +12 -7
- package/dist/esm/schema/nodes/expand.js +1 -1
- package/dist/esm/schema/nodes/extension.js +0 -2
- package/dist/esm/schema/nodes/hard-break.js +1 -0
- package/dist/esm/schema/nodes/heading.js +2 -1
- package/dist/esm/schema/nodes/inline-card.js +4 -3
- package/dist/esm/schema/nodes/inline-extension.js +0 -2
- package/dist/esm/schema/nodes/layout-column.js +4 -4
- package/dist/esm/schema/nodes/layout-section.js +1 -0
- package/dist/esm/schema/nodes/media-group.js +1 -0
- package/dist/esm/schema/nodes/media-single.js +3 -8
- package/dist/esm/schema/nodes/media.js +10 -18
- package/dist/esm/schema/nodes/mention.js +4 -13
- package/dist/esm/schema/nodes/nested-expand.js +1 -0
- package/dist/esm/schema/nodes/ordered-list.js +3 -13
- package/dist/esm/schema/nodes/panel.js +1 -10
- package/dist/esm/schema/nodes/paragraph.js +1 -5
- package/dist/esm/schema/nodes/placeholder.js +1 -0
- package/dist/esm/schema/nodes/rule.js +1 -0
- package/dist/esm/schema/nodes/status.js +5 -4
- package/dist/esm/schema/nodes/tableNodes.js +12 -25
- package/dist/esm/schema/nodes/task-item.js +2 -2
- package/dist/esm/schema/nodes/text.js +1 -0
- package/dist/esm/steps/analytics.js +5 -31
- package/dist/esm/steps/set-attrs.js +1 -17
- package/dist/esm/steps/table/add-column.js +33 -91
- package/dist/esm/steps/table/constants.js +0 -1
- package/dist/esm/steps/table/sort-column.js +1 -10
- package/dist/esm/steps/table/utils/cell-step.js +18 -42
- package/dist/esm/steps/table/utils/cells-at-column.js +2 -18
- package/dist/esm/steps/table/utils/find-column.js +13 -16
- package/dist/esm/steps/table/utils/get-table-rect-from-doc.js +7 -6
- package/dist/esm/steps/table/utils/side-effects/rows.js +23 -76
- package/dist/esm/steps/table/utils/side-effects/side-effects.js +0 -18
- package/dist/esm/steps/table/utils/side-effects/table.js +2 -13
- package/dist/esm/steps/type-ahead.js +6 -18
- package/dist/esm/utils/colors.js +12 -23
- package/dist/esm/utils/confluence/emoji.js +6 -10
- package/dist/esm/utils/extensions.js +0 -4
- package/dist/esm/utils/url.js +2 -12
- package/dist/esm/version.json +1 -1
- package/dist/types/schema/default-schema.d.ts +1 -1
- package/dist/types/utils/colors.d.ts +1 -1
- 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
|
-
}
|
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
|
-
|
35
|
+
end = rect.map.width - 1;
|
35
36
|
var iter = columnInfo.values();
|
36
|
-
var next = iter.next();
|
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
|
-
}
|
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;
|
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
|
-
}
|
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
|
-
}
|
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);
|
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
|
-
}
|
14
|
-
|
14
|
+
}
|
15
15
|
|
16
|
+
// Create transform base on the doc
|
16
17
|
var map = TableMap.get(table);
|
17
|
-
var $table = doc.resolve(tablePos);
|
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
|
-
|
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
|
-
|
66
|
-
|
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;
|
108
|
-
// We store original row position before modifications
|
84
|
+
var to = from + rowNode.nodeSize;
|
109
85
|
|
110
|
-
|
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
|
-
|
148
|
-
|
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
|
-
}
|
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
|
-
}
|
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
|
-
|
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
|
-
|
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
|
-
}
|
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
|
-
|
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 {
|
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
|
-
|
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
|
-
|
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
|
-
|
53
|
-
|
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
|
}();
|