@pie-element/ebsr 6.6.3-next.411 → 6.6.3-next.412
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/configure/node_modules/immutable/LICENSE +21 -0
- package/configure/node_modules/immutable/README.md +657 -0
- package/configure/node_modules/immutable/dist/immutable-nonambient.d.ts +5607 -0
- package/configure/node_modules/immutable/dist/immutable.d.ts +5611 -0
- package/configure/node_modules/immutable/dist/immutable.es.js +5893 -0
- package/configure/node_modules/immutable/dist/immutable.js +5948 -0
- package/configure/node_modules/immutable/dist/immutable.js.flow +2340 -0
- package/configure/node_modules/immutable/dist/immutable.min.js +55 -0
- package/configure/node_modules/immutable/package.json +41 -0
- package/configure/node_modules/slate-edit-list/CHANGELOG.md +124 -0
- package/configure/node_modules/slate-edit-list/LICENSE +201 -0
- package/configure/node_modules/slate-edit-list/README.md +159 -0
- package/configure/node_modules/slate-edit-list/dist/changes/decreaseItemDepth.js +73 -0
- package/configure/node_modules/slate-edit-list/dist/changes/decreaseItemDepth.js.flow +88 -0
- package/configure/node_modules/slate-edit-list/dist/changes/increaseItemDepth.js +70 -0
- package/configure/node_modules/slate-edit-list/dist/changes/increaseItemDepth.js.flow +77 -0
- package/configure/node_modules/slate-edit-list/dist/changes/index.js +34 -0
- package/configure/node_modules/slate-edit-list/dist/changes/index.js.flow +13 -0
- package/configure/node_modules/slate-edit-list/dist/changes/splitListItem.js +27 -0
- package/configure/node_modules/slate-edit-list/dist/changes/splitListItem.js.flow +26 -0
- package/configure/node_modules/slate-edit-list/dist/changes/unwrapList.js +52 -0
- package/configure/node_modules/slate-edit-list/dist/changes/unwrapList.js.flow +46 -0
- package/configure/node_modules/slate-edit-list/dist/changes/wrapInList.js +67 -0
- package/configure/node_modules/slate-edit-list/dist/changes/wrapInList.js.flow +67 -0
- package/configure/node_modules/slate-edit-list/dist/core.js +80 -0
- package/configure/node_modules/slate-edit-list/dist/core.js.flow +76 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/index.js +24 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/index.js.flow +5 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/onBackspace.js +45 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/onBackspace.js.flow +44 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/onEnter.js +54 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/onEnter.js.flow +54 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/onTab.js +39 -0
- package/configure/node_modules/slate-edit-list/dist/handlers/onTab.js.flow +34 -0
- package/configure/node_modules/slate-edit-list/dist/index.js +58 -0
- package/configure/node_modules/slate-edit-list/dist/index.js.flow +45 -0
- package/configure/node_modules/slate-edit-list/dist/options.js +34 -0
- package/configure/node_modules/slate-edit-list/dist/options.js.flow +26 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getCurrentItem.js +24 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getCurrentItem.js.flow +20 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getCurrentList.js +31 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getCurrentList.js.flow +21 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getItemDepth.js +34 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getItemDepth.js.flow +24 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getItemsAtRange.js +60 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getItemsAtRange.js.flow +51 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getListForItem.js +25 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getListForItem.js.flow +16 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getPreviousItem.js +39 -0
- package/configure/node_modules/slate-edit-list/dist/utils/getPreviousItem.js.flow +29 -0
- package/configure/node_modules/slate-edit-list/dist/utils/index.js +49 -0
- package/configure/node_modules/slate-edit-list/dist/utils/index.js.flow +19 -0
- package/configure/node_modules/slate-edit-list/dist/utils/isList.js +15 -0
- package/configure/node_modules/slate-edit-list/dist/utils/isList.js.flow +13 -0
- package/configure/node_modules/slate-edit-list/dist/utils/isSelectionInList.js +22 -0
- package/configure/node_modules/slate-edit-list/dist/utils/isSelectionInList.js.flow +14 -0
- package/configure/node_modules/slate-edit-list/dist/validation/index.js +19 -0
- package/configure/node_modules/slate-edit-list/dist/validation/index.js.flow +4 -0
- package/configure/node_modules/slate-edit-list/dist/validation/schema.js +83 -0
- package/configure/node_modules/slate-edit-list/dist/validation/schema.js.flow +81 -0
- package/configure/node_modules/slate-edit-list/dist/validation/validateNode.js +61 -0
- package/configure/node_modules/slate-edit-list/dist/validation/validateNode.js.flow +61 -0
- package/configure/node_modules/slate-edit-list/package.json +67 -0
- package/configure/node_modules/slate-edit-table/CHANGELOG.md +192 -0
- package/configure/node_modules/slate-edit-table/LICENSE +201 -0
- package/configure/node_modules/slate-edit-table/README.md +269 -0
- package/configure/node_modules/slate-edit-table/dist/changes/clearCell.js +29 -0
- package/configure/node_modules/slate-edit-table/dist/changes/clearCell.js.flow +26 -0
- package/configure/node_modules/slate-edit-table/dist/changes/index.js +69 -0
- package/configure/node_modules/slate-edit-table/dist/changes/index.js.flow +27 -0
- package/configure/node_modules/slate-edit-table/dist/changes/insertColumn.js +43 -0
- package/configure/node_modules/slate-edit-table/dist/changes/insertColumn.js.flow +46 -0
- package/configure/node_modules/slate-edit-table/dist/changes/insertRow.js +36 -0
- package/configure/node_modules/slate-edit-table/dist/changes/insertRow.js.flow +35 -0
- package/configure/node_modules/slate-edit-table/dist/changes/insertTable.js +29 -0
- package/configure/node_modules/slate-edit-table/dist/changes/insertTable.js.flow +27 -0
- package/configure/node_modules/slate-edit-table/dist/changes/moveSelection.js +32 -0
- package/configure/node_modules/slate-edit-table/dist/changes/moveSelection.js.flow +31 -0
- package/configure/node_modules/slate-edit-table/dist/changes/moveSelectionBy.js +84 -0
- package/configure/node_modules/slate-edit-table/dist/changes/moveSelectionBy.js.flow +80 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeColumn.js +36 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeColumn.js.flow +28 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeColumnByKey.js +52 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeColumnByKey.js.flow +40 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeRow.js +36 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeRow.js.flow +27 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeRowByKey.js +41 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeRowByKey.js.flow +30 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeTable.js +26 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeTable.js.flow +17 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeTableByKey.js +56 -0
- package/configure/node_modules/slate-edit-table/dist/changes/removeTableByKey.js.flow +54 -0
- package/configure/node_modules/slate-edit-table/dist/core.js +88 -0
- package/configure/node_modules/slate-edit-table/dist/core.js.flow +94 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/index.js +39 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/index.js.flow +8 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onBackspace.js +82 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onBackspace.js.flow +87 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onEnter.js +34 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onEnter.js.flow +37 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onKeyDown.js +71 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onKeyDown.js.flow +56 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onModEnter.js +35 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onModEnter.js.flow +38 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onTab.js +56 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onTab.js.flow +51 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onUpDown.js +38 -0
- package/configure/node_modules/slate-edit-table/dist/handlers/onUpDown.js.flow +41 -0
- package/configure/node_modules/slate-edit-table/dist/index.js +36 -0
- package/configure/node_modules/slate-edit-table/dist/index.js.flow +27 -0
- package/configure/node_modules/slate-edit-table/dist/options.js +61 -0
- package/configure/node_modules/slate-edit-table/dist/options.js.flow +42 -0
- package/configure/node_modules/slate-edit-table/dist/utils/TablePosition.js +306 -0
- package/configure/node_modules/slate-edit-table/dist/utils/TablePosition.js.flow +211 -0
- package/configure/node_modules/slate-edit-table/dist/utils/createCell.js +30 -0
- package/configure/node_modules/slate-edit-table/dist/utils/createCell.js.flow +26 -0
- package/configure/node_modules/slate-edit-table/dist/utils/createRow.js +30 -0
- package/configure/node_modules/slate-edit-table/dist/utils/createRow.js.flow +28 -0
- package/configure/node_modules/slate-edit-table/dist/utils/createTable.js +30 -0
- package/configure/node_modules/slate-edit-table/dist/utils/createTable.js.flow +33 -0
- package/configure/node_modules/slate-edit-table/dist/utils/forEachCells.js +21 -0
- package/configure/node_modules/slate-edit-table/dist/utils/forEachCells.js.flow +22 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getCellsAtColumn.js +22 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getCellsAtColumn.js.flow +19 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getCellsAtRow.js +20 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getCellsAtRow.js.flow +19 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getPosition.js +24 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getPosition.js.flow +19 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getPositionByKey.js +26 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getPositionByKey.js.flow +21 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getRow.js +24 -0
- package/configure/node_modules/slate-edit-table/dist/utils/getRow.js.flow +19 -0
- package/configure/node_modules/slate-edit-table/dist/utils/index.js +64 -0
- package/configure/node_modules/slate-edit-table/dist/utils/index.js.flow +25 -0
- package/configure/node_modules/slate-edit-table/dist/utils/isSelectionInTable.js +34 -0
- package/configure/node_modules/slate-edit-table/dist/utils/isSelectionInTable.js.flow +27 -0
- package/configure/node_modules/slate-edit-table/dist/utils/isSelectionOutOfTable.js +30 -0
- package/configure/node_modules/slate-edit-table/dist/utils/isSelectionOutOfTable.js.flow +23 -0
- package/configure/node_modules/slate-edit-table/dist/validation/index.js +19 -0
- package/configure/node_modules/slate-edit-table/dist/validation/index.js.flow +4 -0
- package/configure/node_modules/slate-edit-table/dist/validation/schema.js +101 -0
- package/configure/node_modules/slate-edit-table/dist/validation/schema.js.flow +98 -0
- package/configure/node_modules/slate-edit-table/dist/validation/validateNode.js +56 -0
- package/configure/node_modules/slate-edit-table/dist/validation/validateNode.js.flow +49 -0
- package/configure/node_modules/slate-edit-table/package.json +69 -0
- package/package.json +2 -2
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
8
|
+
|
|
9
|
+
var _immutable = require('immutable');
|
|
10
|
+
|
|
11
|
+
var _slate = require('slate');
|
|
12
|
+
|
|
13
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
14
|
+
|
|
15
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
16
|
+
|
|
17
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
18
|
+
|
|
19
|
+
var TablePosition = function (_Record) {
|
|
20
|
+
_inherits(TablePosition, _Record);
|
|
21
|
+
|
|
22
|
+
function TablePosition() {
|
|
23
|
+
_classCallCheck(this, TablePosition);
|
|
24
|
+
|
|
25
|
+
return _possibleConstructorReturn(this, (TablePosition.__proto__ || Object.getPrototypeOf(TablePosition)).apply(this, arguments));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
_createClass(TablePosition, [{
|
|
29
|
+
key: 'isInCell',
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Check to see if this position is within a cell
|
|
34
|
+
*/
|
|
35
|
+
value: function isInCell() {
|
|
36
|
+
return Boolean(this.cellBlock);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Check to see if this position is within a row
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
}, {
|
|
44
|
+
key: 'isInRow',
|
|
45
|
+
value: function isInRow() {
|
|
46
|
+
return Boolean(this.rowBlock);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Check to see if this position is within a table
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
}, {
|
|
54
|
+
key: 'isInTable',
|
|
55
|
+
value: function isInTable() {
|
|
56
|
+
return Boolean(this.tableBlock);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Check to see if this position is at the top of the cell.
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
}, {
|
|
64
|
+
key: 'isTopOfCell',
|
|
65
|
+
value: function isTopOfCell() {
|
|
66
|
+
var contentBlock = this.contentBlock,
|
|
67
|
+
cellBlock = this.cellBlock;
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
if (!contentBlock || !cellBlock) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var nodes = cellBlock.nodes;
|
|
75
|
+
|
|
76
|
+
var index = nodes.findIndex(function (block) {
|
|
77
|
+
return block.key == contentBlock.key;
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
return index == 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Check to see if this position is at the bottom of the cell.
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
}, {
|
|
88
|
+
key: 'isBottomOfCell',
|
|
89
|
+
value: function isBottomOfCell() {
|
|
90
|
+
var contentBlock = this.contentBlock,
|
|
91
|
+
cellBlock = this.cellBlock;
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
if (!contentBlock || !cellBlock) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
var nodes = cellBlock.nodes;
|
|
99
|
+
|
|
100
|
+
var index = nodes.findIndex(function (block) {
|
|
101
|
+
return block.key == contentBlock.key;
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
return index == nodes.size - 1;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Get count of columns
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
}, {
|
|
112
|
+
key: 'getWidth',
|
|
113
|
+
value: function getWidth() {
|
|
114
|
+
var table = this.table;
|
|
115
|
+
|
|
116
|
+
var rows = table.nodes;
|
|
117
|
+
var cells = rows.get(0).nodes;
|
|
118
|
+
|
|
119
|
+
return cells.size;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Get count of rows
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
}, {
|
|
127
|
+
key: 'getHeight',
|
|
128
|
+
value: function getHeight() {
|
|
129
|
+
var table = this.table;
|
|
130
|
+
|
|
131
|
+
var rows = table.nodes;
|
|
132
|
+
|
|
133
|
+
return rows.size;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Get index of current row in the table.
|
|
138
|
+
*/
|
|
139
|
+
|
|
140
|
+
}, {
|
|
141
|
+
key: 'getRowIndex',
|
|
142
|
+
value: function getRowIndex() {
|
|
143
|
+
var table = this.table,
|
|
144
|
+
row = this.row;
|
|
145
|
+
|
|
146
|
+
var rows = table.nodes;
|
|
147
|
+
|
|
148
|
+
return rows.findIndex(function (x) {
|
|
149
|
+
return x === row;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Get index of current column in the row.
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
}, {
|
|
158
|
+
key: 'getColumnIndex',
|
|
159
|
+
value: function getColumnIndex() {
|
|
160
|
+
var row = this.row,
|
|
161
|
+
cell = this.cell;
|
|
162
|
+
|
|
163
|
+
var cells = row.nodes;
|
|
164
|
+
|
|
165
|
+
return cells.findIndex(function (x) {
|
|
166
|
+
return x === cell;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* True if on first cell of the table
|
|
172
|
+
*/
|
|
173
|
+
|
|
174
|
+
}, {
|
|
175
|
+
key: 'isFirstCell',
|
|
176
|
+
value: function isFirstCell() {
|
|
177
|
+
return this.isFirstRow() && this.isFirstColumn();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* True if on last cell of the table
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
}, {
|
|
185
|
+
key: 'isLastCell',
|
|
186
|
+
value: function isLastCell() {
|
|
187
|
+
return this.isLastRow() && this.isLastColumn();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* True if on first row
|
|
192
|
+
*/
|
|
193
|
+
|
|
194
|
+
}, {
|
|
195
|
+
key: 'isFirstRow',
|
|
196
|
+
value: function isFirstRow() {
|
|
197
|
+
return this.getRowIndex() === 0;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* True if on last row
|
|
202
|
+
*/
|
|
203
|
+
|
|
204
|
+
}, {
|
|
205
|
+
key: 'isLastRow',
|
|
206
|
+
value: function isLastRow() {
|
|
207
|
+
return this.getRowIndex() === this.getHeight() - 1;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* True if on first column
|
|
212
|
+
*/
|
|
213
|
+
|
|
214
|
+
}, {
|
|
215
|
+
key: 'isFirstColumn',
|
|
216
|
+
value: function isFirstColumn() {
|
|
217
|
+
return this.getColumnIndex() === 0;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* True if on last column
|
|
222
|
+
*/
|
|
223
|
+
|
|
224
|
+
}, {
|
|
225
|
+
key: 'isLastColumn',
|
|
226
|
+
value: function isLastColumn() {
|
|
227
|
+
return this.getColumnIndex() === this.getWidth() - 1;
|
|
228
|
+
}
|
|
229
|
+
}, {
|
|
230
|
+
key: 'table',
|
|
231
|
+
get: function get() {
|
|
232
|
+
if (!this.tableBlock) {
|
|
233
|
+
throw new Error('Not in a table');
|
|
234
|
+
}
|
|
235
|
+
return this.tableBlock;
|
|
236
|
+
}
|
|
237
|
+
}, {
|
|
238
|
+
key: 'row',
|
|
239
|
+
get: function get() {
|
|
240
|
+
if (!this.rowBlock) {
|
|
241
|
+
throw new Error('Not in a row');
|
|
242
|
+
}
|
|
243
|
+
return this.rowBlock;
|
|
244
|
+
}
|
|
245
|
+
}, {
|
|
246
|
+
key: 'cell',
|
|
247
|
+
get: function get() {
|
|
248
|
+
if (!this.cellBlock) {
|
|
249
|
+
throw new Error('Not in a cell');
|
|
250
|
+
}
|
|
251
|
+
return this.cellBlock;
|
|
252
|
+
}
|
|
253
|
+
}], [{
|
|
254
|
+
key: 'create',
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Create a new instance of a TablePosition from a Slate document
|
|
259
|
+
* and a node key.
|
|
260
|
+
*/
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
// Block for current cell
|
|
264
|
+
|
|
265
|
+
// Block container for the table
|
|
266
|
+
value: function create(opts, containerNode, key) {
|
|
267
|
+
var node = containerNode.getDescendant(key);
|
|
268
|
+
var ancestors = containerNode.getAncestors(key).push(node);
|
|
269
|
+
var tableBlock = ancestors.findLast(function (p) {
|
|
270
|
+
return p.type === opts.typeTable;
|
|
271
|
+
});
|
|
272
|
+
var rowBlock = ancestors.findLast(function (p) {
|
|
273
|
+
return p.type === opts.typeRow;
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
var cellBlock = ancestors.findLast(function (p) {
|
|
277
|
+
return p.type === opts.typeCell;
|
|
278
|
+
});
|
|
279
|
+
var contentBlock = ancestors.skipUntil(function (ancestor) {
|
|
280
|
+
return ancestor === cellBlock;
|
|
281
|
+
}).skip(1).first();
|
|
282
|
+
|
|
283
|
+
return new TablePosition({
|
|
284
|
+
tableBlock: tableBlock,
|
|
285
|
+
rowBlock: rowBlock,
|
|
286
|
+
cellBlock: cellBlock,
|
|
287
|
+
contentBlock: contentBlock
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Current content block in the cell
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
// Block for current row
|
|
295
|
+
|
|
296
|
+
}]);
|
|
297
|
+
|
|
298
|
+
return TablePosition;
|
|
299
|
+
}((0, _immutable.Record)({
|
|
300
|
+
tableBlock: null,
|
|
301
|
+
rowBlock: null,
|
|
302
|
+
cellBlock: null,
|
|
303
|
+
contentBlock: null
|
|
304
|
+
}));
|
|
305
|
+
|
|
306
|
+
exports.default = TablePosition;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
import { Record } from 'immutable';
|
|
3
|
+
import { Block, type Node } from 'slate';
|
|
4
|
+
|
|
5
|
+
import type Options from '../options';
|
|
6
|
+
|
|
7
|
+
class TablePosition extends Record({
|
|
8
|
+
tableBlock: null,
|
|
9
|
+
rowBlock: null,
|
|
10
|
+
cellBlock: null,
|
|
11
|
+
contentBlock: null
|
|
12
|
+
}) {
|
|
13
|
+
// Block container for the table
|
|
14
|
+
tableBlock: ?Block;
|
|
15
|
+
|
|
16
|
+
// Block for current row
|
|
17
|
+
rowBlock: ?Block;
|
|
18
|
+
|
|
19
|
+
// Block for current cell
|
|
20
|
+
cellBlock: ?Block;
|
|
21
|
+
|
|
22
|
+
// Current content block in the cell
|
|
23
|
+
contentBlock: ?Block;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Create a new instance of a TablePosition from a Slate document
|
|
27
|
+
* and a node key.
|
|
28
|
+
*/
|
|
29
|
+
static create(
|
|
30
|
+
opts: Options,
|
|
31
|
+
containerNode: Node,
|
|
32
|
+
key: string
|
|
33
|
+
): TablePosition {
|
|
34
|
+
const node = containerNode.getDescendant(key);
|
|
35
|
+
const ancestors = containerNode.getAncestors(key).push(node);
|
|
36
|
+
const tableBlock = ancestors.findLast(p => p.type === opts.typeTable);
|
|
37
|
+
const rowBlock = ancestors.findLast(p => p.type === opts.typeRow);
|
|
38
|
+
|
|
39
|
+
const cellBlock = ancestors.findLast(p => p.type === opts.typeCell);
|
|
40
|
+
const contentBlock = ancestors
|
|
41
|
+
.skipUntil(ancestor => ancestor === cellBlock)
|
|
42
|
+
.skip(1)
|
|
43
|
+
.first();
|
|
44
|
+
|
|
45
|
+
return new TablePosition({
|
|
46
|
+
tableBlock,
|
|
47
|
+
rowBlock,
|
|
48
|
+
cellBlock,
|
|
49
|
+
contentBlock
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
get table(): Block {
|
|
54
|
+
if (!this.tableBlock) {
|
|
55
|
+
throw new Error('Not in a table');
|
|
56
|
+
}
|
|
57
|
+
return this.tableBlock;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
get row(): Block {
|
|
61
|
+
if (!this.rowBlock) {
|
|
62
|
+
throw new Error('Not in a row');
|
|
63
|
+
}
|
|
64
|
+
return this.rowBlock;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
get cell(): Block {
|
|
68
|
+
if (!this.cellBlock) {
|
|
69
|
+
throw new Error('Not in a cell');
|
|
70
|
+
}
|
|
71
|
+
return this.cellBlock;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Check to see if this position is within a cell
|
|
76
|
+
*/
|
|
77
|
+
isInCell(): boolean {
|
|
78
|
+
return Boolean(this.cellBlock);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Check to see if this position is within a row
|
|
83
|
+
*/
|
|
84
|
+
isInRow(): boolean {
|
|
85
|
+
return Boolean(this.rowBlock);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Check to see if this position is within a table
|
|
90
|
+
*/
|
|
91
|
+
isInTable(): boolean {
|
|
92
|
+
return Boolean(this.tableBlock);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Check to see if this position is at the top of the cell.
|
|
97
|
+
*/
|
|
98
|
+
isTopOfCell(): boolean {
|
|
99
|
+
const { contentBlock, cellBlock } = this;
|
|
100
|
+
|
|
101
|
+
if (!contentBlock || !cellBlock) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const { nodes } = cellBlock;
|
|
106
|
+
const index = nodes.findIndex(block => block.key == contentBlock.key);
|
|
107
|
+
|
|
108
|
+
return index == 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Check to see if this position is at the bottom of the cell.
|
|
113
|
+
*/
|
|
114
|
+
isBottomOfCell(): boolean {
|
|
115
|
+
const { contentBlock, cellBlock } = this;
|
|
116
|
+
|
|
117
|
+
if (!contentBlock || !cellBlock) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const { nodes } = cellBlock;
|
|
122
|
+
const index = nodes.findIndex(block => block.key == contentBlock.key);
|
|
123
|
+
|
|
124
|
+
return index == nodes.size - 1;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Get count of columns
|
|
129
|
+
*/
|
|
130
|
+
getWidth(): number {
|
|
131
|
+
const { table } = this;
|
|
132
|
+
const rows = table.nodes;
|
|
133
|
+
const cells = rows.get(0).nodes;
|
|
134
|
+
|
|
135
|
+
return cells.size;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Get count of rows
|
|
140
|
+
*/
|
|
141
|
+
getHeight(): number {
|
|
142
|
+
const { table } = this;
|
|
143
|
+
const rows = table.nodes;
|
|
144
|
+
|
|
145
|
+
return rows.size;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Get index of current row in the table.
|
|
150
|
+
*/
|
|
151
|
+
getRowIndex(): number {
|
|
152
|
+
const { table, row } = this;
|
|
153
|
+
const rows = table.nodes;
|
|
154
|
+
|
|
155
|
+
return rows.findIndex(x => x === row);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Get index of current column in the row.
|
|
160
|
+
*/
|
|
161
|
+
getColumnIndex(): number {
|
|
162
|
+
const { row, cell } = this;
|
|
163
|
+
const cells = row.nodes;
|
|
164
|
+
|
|
165
|
+
return cells.findIndex(x => x === cell);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* True if on first cell of the table
|
|
170
|
+
*/
|
|
171
|
+
isFirstCell(): boolean {
|
|
172
|
+
return this.isFirstRow() && this.isFirstColumn();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* True if on last cell of the table
|
|
177
|
+
*/
|
|
178
|
+
isLastCell(): boolean {
|
|
179
|
+
return this.isLastRow() && this.isLastColumn();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* True if on first row
|
|
184
|
+
*/
|
|
185
|
+
isFirstRow(): boolean {
|
|
186
|
+
return this.getRowIndex() === 0;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* True if on last row
|
|
191
|
+
*/
|
|
192
|
+
isLastRow(): boolean {
|
|
193
|
+
return this.getRowIndex() === this.getHeight() - 1;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* True if on first column
|
|
198
|
+
*/
|
|
199
|
+
isFirstColumn(): boolean {
|
|
200
|
+
return this.getColumnIndex() === 0;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* True if on last column
|
|
205
|
+
*/
|
|
206
|
+
isLastColumn(): boolean {
|
|
207
|
+
return this.getColumnIndex() === this.getWidth() - 1;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export default TablePosition;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _slate = require('slate');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Create a new cell
|
|
11
|
+
*/
|
|
12
|
+
function createCell(opts, nodes) {
|
|
13
|
+
return _slate.Block.create({
|
|
14
|
+
type: opts.typeCell,
|
|
15
|
+
nodes: nodes || [createEmptyContent(opts)]
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Create a new default content block
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
function createEmptyContent(opts) {
|
|
24
|
+
return _slate.Block.create({
|
|
25
|
+
type: opts.typeContent,
|
|
26
|
+
nodes: [_slate.Text.create()]
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
exports.default = createCell;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
import { Block, Text, type Node } from 'slate';
|
|
3
|
+
|
|
4
|
+
import type Options from '../options';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Create a new cell
|
|
8
|
+
*/
|
|
9
|
+
function createCell(opts: Options, nodes?: Node[]): Block {
|
|
10
|
+
return Block.create({
|
|
11
|
+
type: opts.typeCell,
|
|
12
|
+
nodes: nodes || [createEmptyContent(opts)]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Create a new default content block
|
|
18
|
+
*/
|
|
19
|
+
function createEmptyContent(opts: Options): Block {
|
|
20
|
+
return Block.create({
|
|
21
|
+
type: opts.typeContent,
|
|
22
|
+
nodes: [Text.create()]
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default createCell;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _immutable = require('immutable');
|
|
8
|
+
|
|
9
|
+
var _slate = require('slate');
|
|
10
|
+
|
|
11
|
+
var _createCell = require('./createCell');
|
|
12
|
+
|
|
13
|
+
var _createCell2 = _interopRequireDefault(_createCell);
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create a new row block
|
|
19
|
+
*/
|
|
20
|
+
function createRow(opts, columns, getCellContent) {
|
|
21
|
+
var cellNodes = (0, _immutable.Range)(0, columns).map(function (i) {
|
|
22
|
+
return (0, _createCell2.default)(opts, getCellContent ? getCellContent(i) : undefined);
|
|
23
|
+
}).toList();
|
|
24
|
+
|
|
25
|
+
return _slate.Block.create({
|
|
26
|
+
type: opts.typeRow,
|
|
27
|
+
nodes: cellNodes
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.default = createRow;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
import { Range } from 'immutable';
|
|
3
|
+
import { Block, type Node } from 'slate';
|
|
4
|
+
|
|
5
|
+
import type Options from '../options';
|
|
6
|
+
import createCell from './createCell';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a new row block
|
|
10
|
+
*/
|
|
11
|
+
function createRow(
|
|
12
|
+
opts: Options,
|
|
13
|
+
columns: number,
|
|
14
|
+
getCellContent?: (column: number) => Node[]
|
|
15
|
+
): Block {
|
|
16
|
+
const cellNodes = Range(0, columns)
|
|
17
|
+
.map(i =>
|
|
18
|
+
createCell(opts, getCellContent ? getCellContent(i) : undefined)
|
|
19
|
+
)
|
|
20
|
+
.toList();
|
|
21
|
+
|
|
22
|
+
return Block.create({
|
|
23
|
+
type: opts.typeRow,
|
|
24
|
+
nodes: cellNodes
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default createRow;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _immutable = require('immutable');
|
|
8
|
+
|
|
9
|
+
var _slate = require('slate');
|
|
10
|
+
|
|
11
|
+
var _createRow = require('./createRow');
|
|
12
|
+
|
|
13
|
+
var _createRow2 = _interopRequireDefault(_createRow);
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create a table
|
|
19
|
+
*/
|
|
20
|
+
function createTable(opts, columns, rows, getCellContent) {
|
|
21
|
+
var rowNodes = (0, _immutable.Range)(0, rows).map(function (i) {
|
|
22
|
+
return (0, _createRow2.default)(opts, columns, getCellContent ? getCellContent.bind(null, i) : undefined);
|
|
23
|
+
}).toList();
|
|
24
|
+
|
|
25
|
+
return _slate.Block.create({
|
|
26
|
+
type: opts.typeTable,
|
|
27
|
+
nodes: rowNodes
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.default = createTable;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
import { Range } from 'immutable';
|
|
3
|
+
import { Block, type Node } from 'slate';
|
|
4
|
+
|
|
5
|
+
import type Options from '../options';
|
|
6
|
+
import createRow from './createRow';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a table
|
|
10
|
+
*/
|
|
11
|
+
function createTable(
|
|
12
|
+
opts: Options,
|
|
13
|
+
columns: number,
|
|
14
|
+
rows: number,
|
|
15
|
+
getCellContent?: (row: number, column: number) => Node[]
|
|
16
|
+
): Block {
|
|
17
|
+
const rowNodes = Range(0, rows)
|
|
18
|
+
.map(i =>
|
|
19
|
+
createRow(
|
|
20
|
+
opts,
|
|
21
|
+
columns,
|
|
22
|
+
getCellContent ? getCellContent.bind(null, i) : undefined
|
|
23
|
+
)
|
|
24
|
+
)
|
|
25
|
+
.toList();
|
|
26
|
+
|
|
27
|
+
return Block.create({
|
|
28
|
+
type: opts.typeTable,
|
|
29
|
+
nodes: rowNodes
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default createTable;
|