@seafile/sdoc-editor 1.0.80 → 1.0.81
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.
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.isTopLevelListItem = exports.isTextNode = exports.isStartPoint = exports.isSelectionAtBlockStart = exports.isSelectionAtBlockEnd = exports.isRangeAcrossBlocks = exports.isMultiLevelList = exports.isLastNode = exports.isLastChild = exports.isHasImg = exports.isEndPoint = exports.isCurrentLineHasText = exports.isCurrentLineEmpty = exports.isBlockTextEmptyAfterSelection = exports.isBlockAboveEmpty = exports.isAncestorEmpty = exports.getTopLevelBlockNode = exports.getSelectedNodeEntryByType = exports.getSelectedNodeByTypes = exports.getSelectedNodeByType = exports.getSelectedElems = exports.getQueryOptions = exports.getPreviousPath = exports.getPrevNode = exports.getParentNode = exports.getNodes = exports.getNodeType = exports.getNodeEntries = exports.getNodeById = exports.getNode = exports.getNextSiblingNodes = exports.getNextNode = exports.getLastChildPath = exports.getLastChild = exports.getEditorString = exports.getDeepInlineChildren = exports.getCurrentNode = exports.getCommonNode = exports.getChildren = exports.getAboveNode = exports.getAboveBlockNode = exports.findPath = exports.findNode = exports.findDescendant = void 0;
|
|
7
|
+
exports.isTopLevelListItem = exports.isTextNode = exports.isStartPoint = exports.isSelectionAtBlockStart = exports.isSelectionAtBlockEnd = exports.isRangeInSameBlock = exports.isRangeAcrossBlocks = exports.isMultiLevelList = exports.isLastNode = exports.isLastChild = exports.isHasImg = exports.isEndPoint = exports.isCurrentLineHasText = exports.isCurrentLineEmpty = exports.isBlockTextEmptyAfterSelection = exports.isBlockAboveEmpty = exports.isAncestorEmpty = exports.getTopLevelBlockNode = exports.getStartPoint = exports.getSelectedNodeEntryByType = exports.getSelectedNodeByTypes = exports.getSelectedNodeByType = exports.getSelectedElems = exports.getQueryOptions = exports.getPreviousPath = exports.getPrevNode = exports.getPointBefore = exports.getParentNode = exports.getNodes = exports.getNodeType = exports.getNodeEntries = exports.getNodeById = exports.getNode = exports.getNextSiblingNodes = exports.getNextNode = exports.getLastChildPath = exports.getLastChild = exports.getEndPoint = exports.getEditorString = exports.getDeepInlineChildren = exports.getCurrentNode = exports.getCommonNode = exports.getChildren = exports.getAboveNode = exports.getAboveBlockNode = exports.findPath = exports.findNode = exports.findDescendant = void 0;
|
|
8
8
|
var _slate = require("@seafile/slate");
|
|
9
9
|
var _slateReact = require("@seafile/slate-react");
|
|
10
10
|
var _utils = require("../utils");
|
|
@@ -521,4 +521,36 @@ const isTopLevelListItem = editor => {
|
|
|
521
521
|
}
|
|
522
522
|
return false;
|
|
523
523
|
};
|
|
524
|
-
exports.isTopLevelListItem = isTopLevelListItem;
|
|
524
|
+
exports.isTopLevelListItem = isTopLevelListItem;
|
|
525
|
+
const isRangeInSameBlock = function (editor) {
|
|
526
|
+
let {
|
|
527
|
+
at,
|
|
528
|
+
...options
|
|
529
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
530
|
+
if (!at) at = editor.selection;
|
|
531
|
+
if (!at) return;
|
|
532
|
+
const [start, end] = _slate.Range.edges(at);
|
|
533
|
+
const startBlock = getAboveNode(editor, {
|
|
534
|
+
at: start,
|
|
535
|
+
...options
|
|
536
|
+
});
|
|
537
|
+
const endBlock = getAboveNode(editor, {
|
|
538
|
+
at: end,
|
|
539
|
+
...options
|
|
540
|
+
});
|
|
541
|
+
if (!startBlock || !endBlock) return;
|
|
542
|
+
return _slate.Path.equals(startBlock[1], endBlock[1]);
|
|
543
|
+
};
|
|
544
|
+
exports.isRangeInSameBlock = isRangeInSameBlock;
|
|
545
|
+
const getStartPoint = (editor, at) => {
|
|
546
|
+
return _slate.Editor.start(editor, at);
|
|
547
|
+
};
|
|
548
|
+
exports.getStartPoint = getStartPoint;
|
|
549
|
+
const getEndPoint = (editor, at) => {
|
|
550
|
+
return _slate.Editor.end(editor, at);
|
|
551
|
+
};
|
|
552
|
+
exports.getEndPoint = getEndPoint;
|
|
553
|
+
const getPointBefore = (editor, at) => {
|
|
554
|
+
return _slate.Editor.before(editor, at);
|
|
555
|
+
};
|
|
556
|
+
exports.getPointBefore = getPointBefore;
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.updateTableRowHeight = exports.updateColumnWidth = exports.splitCell = exports.setTableSelectedRange = exports.setTableFragmentData = exports.setCellStyle = exports.removeTableElement = exports.removeTable = exports.normalizeTableELement = exports.moveRows = exports.moveColumns = exports.isTableWidthFitScreen = exports.isTableMenuDisabled = exports.isTableLocation = exports.isSelectedAllCell = exports.isPreventResetTableSelectedRange = exports.isLastTableCell = exports.isInTable = exports.isHideDragHandlerLine = exports.isCursorAtCellStart = exports.isCursorAtCellEnd = exports.isCombineCellsDisabled = exports.isAllInTable = exports.insertTableRow = exports.insertTableElement = exports.insertTableColumn = exports.insertTableByTemplate = exports.insertTable = exports.insertMultipleRowsAndColumns = exports.handleInsertTable = exports.handleCombinedCellsBeforeDeleteTableRow = exports.handleCombinedCellsBeforeDeleteTableColumn = exports.handleCombinedCellsAfterInsertTableRow = exports.handleCombinedCellsAfterInsertTableColumn = exports.getTableSelectedRangeAfterDrag = exports.getTableRowSelectedRange = exports.getTableDragType = exports.getTableColumnsWidth = exports.getTableColumnsAfterInsertColumn = exports.getTableColumns = exports.getTableColumnSelectedRange = exports.getSelectedInfo = exports.getRowHeight = exports.getRowDomHeight = exports.getResizeMaskCellInfo = exports.getInsertPosition = exports.getHighlightClass = exports.getFirstTableCell = exports.getCellInheritStyles = exports.getCellHighlightClassName = exports.getCellColumn = exports.generateTableRow = exports.generateTableCell = exports.generateInheritStyle = exports.generateEmptyTable = exports.generateDragMoveElement = exports.focusClosestCellWhenJustifyCellSize = exports.focusCell = exports.fitTableColumnToScreen = exports.elementHasImage = exports.deleteTableRangeData = exports.deleteHandler = exports.combineCells = exports.colorBlend = exports.adjustCombinedCellRange = void 0;
|
|
7
|
+
exports.updateTableRowHeight = exports.updateColumnWidth = exports.splitCell = exports.setTableSelectedRange = exports.setTableFragmentData = exports.setCellStyle = exports.removeTableElement = exports.removeTable = exports.normalizeTableELement = exports.moveRows = exports.moveColumns = exports.isTableWidthFitScreen = exports.isTableMenuDisabled = exports.isTableLocation = exports.isSelectedAllCell = exports.isPreventResetTableSelectedRange = exports.isLastTableCell = exports.isInTable = exports.isHideDragHandlerLine = exports.isCursorAtCellStart = exports.isCursorAtCellEnd = exports.isCombineCellsDisabled = exports.isAllInTable = exports.insertTableRow = exports.insertTableElement = exports.insertTableColumn = exports.insertTableByTemplate = exports.insertTable = exports.insertMultipleRowsAndColumns = exports.handleInsertTable = exports.handleCombinedCellsBeforeDeleteTableRow = exports.handleCombinedCellsBeforeDeleteTableColumn = exports.handleCombinedCellsAfterInsertTableRow = exports.handleCombinedCellsAfterInsertTableColumn = exports.getTableSelectedRangeAfterDrag = exports.getTableRowSelectedRange = exports.getTableDragType = exports.getTableColumnsWidth = exports.getTableColumnsAfterInsertColumn = exports.getTableColumns = exports.getTableColumnSelectedRange = exports.getSelectedInfo = exports.getRowHeight = exports.getRowDomHeight = exports.getResizeMaskCellInfo = exports.getInsertPosition = exports.getHighlightClass = exports.getFirstTableCell = exports.getCellInheritStyles = exports.getCellHighlightClassName = exports.getCellColumn = exports.generateTableRow = exports.generateTableCell = exports.generateInheritStyle = exports.generateEmptyTable = exports.generateDragMoveElement = exports.focusClosestCellWhenJustifyCellSize = exports.focusCell = exports.fitTableColumnToScreen = exports.elementHasImage = exports.deleteTableSelectCells = exports.deleteTableRangeData = exports.deleteHandler = exports.combineCells = exports.colorBlend = exports.adjustCombinedCellRange = void 0;
|
|
8
8
|
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
9
|
var _slate = require("@seafile/slate");
|
|
10
10
|
var _slateReact = require("@seafile/slate-react");
|
|
@@ -2018,4 +2018,62 @@ const fitTableColumnToScreen = editor => {
|
|
|
2018
2018
|
at: tablePath
|
|
2019
2019
|
});
|
|
2020
2020
|
};
|
|
2021
|
-
exports.fitTableColumnToScreen = fitTableColumnToScreen;
|
|
2021
|
+
exports.fitTableColumnToScreen = fitTableColumnToScreen;
|
|
2022
|
+
const deleteTableSelectCells = (editor, deleteRange) => {
|
|
2023
|
+
// eslint-disable-next-line no-unused-vars
|
|
2024
|
+
const {
|
|
2025
|
+
start,
|
|
2026
|
+
end,
|
|
2027
|
+
rowsLength,
|
|
2028
|
+
columnLength
|
|
2029
|
+
} = deleteRange;
|
|
2030
|
+
// table path [tableIdx, rowIdx, colIdx, ...];
|
|
2031
|
+
if (start.length <= 3) return;
|
|
2032
|
+
const tableIndex = start[0];
|
|
2033
|
+
const minRowIndex = start[1];
|
|
2034
|
+
let deletePaths = [];
|
|
2035
|
+
if (start[1] === end[1]) {
|
|
2036
|
+
const minColIndex = start[2];
|
|
2037
|
+
const maxColIndex = end[2];
|
|
2038
|
+
for (let colIndex = minColIndex; colIndex <= maxColIndex; colIndex++) {
|
|
2039
|
+
deletePaths.push([tableIndex, minRowIndex, colIndex]);
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2042
|
+
if (start[1] !== end[1]) {
|
|
2043
|
+
const isAfter = end[1] - start[1] === 1;
|
|
2044
|
+
// push first row
|
|
2045
|
+
const minColIndex = start[2];
|
|
2046
|
+
for (let colIndex = minColIndex; colIndex <= columnLength - 1; colIndex++) {
|
|
2047
|
+
deletePaths.push([tableIndex, minRowIndex, colIndex]);
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
// push center row
|
|
2051
|
+
if (!isAfter) {
|
|
2052
|
+
for (let i = start[1] + 1; i <= end[1] - 1; i++) {
|
|
2053
|
+
for (let j = 0; j <= columnLength - 1; j++) {
|
|
2054
|
+
deletePaths.push([tableIndex, i, j]);
|
|
2055
|
+
}
|
|
2056
|
+
}
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
// push last row
|
|
2060
|
+
const maxColIndex = end[2];
|
|
2061
|
+
const maxRowIndex = end[1];
|
|
2062
|
+
for (let colIndex = 0; colIndex <= maxColIndex; colIndex++) {
|
|
2063
|
+
deletePaths.push([tableIndex, maxRowIndex, colIndex]);
|
|
2064
|
+
}
|
|
2065
|
+
}
|
|
2066
|
+
for (let i = 0; i < deletePaths.length; i++) {
|
|
2067
|
+
const path = deletePaths[i];
|
|
2068
|
+
const node = (0, _core.getNode)(editor, path);
|
|
2069
|
+
const firstNode = node.children[0];
|
|
2070
|
+
(0, _core.replaceNodeChildren)(editor, {
|
|
2071
|
+
at: path,
|
|
2072
|
+
nodes: {
|
|
2073
|
+
...firstNode,
|
|
2074
|
+
text: ''
|
|
2075
|
+
}
|
|
2076
|
+
});
|
|
2077
|
+
}
|
|
2078
|
+
};
|
|
2079
|
+
exports.deleteTableSelectCells = deleteTableSelectCells;
|
|
@@ -27,7 +27,8 @@ const withTable = editor => {
|
|
|
27
27
|
getFragment,
|
|
28
28
|
setFragmentData,
|
|
29
29
|
insertFragment,
|
|
30
|
-
cut
|
|
30
|
+
cut,
|
|
31
|
+
deleteFragment
|
|
31
32
|
} = editor;
|
|
32
33
|
const newEditor = editor;
|
|
33
34
|
newEditor.tableSelectedRange = _constants2.EMPTY_SELECTED_RANGE;
|
|
@@ -158,6 +159,128 @@ const withTable = editor => {
|
|
|
158
159
|
}
|
|
159
160
|
deleteBackward(unit);
|
|
160
161
|
};
|
|
162
|
+
newEditor.deleteFragment = unit => {
|
|
163
|
+
const {
|
|
164
|
+
selection
|
|
165
|
+
} = editor;
|
|
166
|
+
if (!selection) {
|
|
167
|
+
return deleteFragment(unit);
|
|
168
|
+
}
|
|
169
|
+
const match = n => n.type === _constants.TABLE;
|
|
170
|
+
if (_slate.Range.isRange(selection) && (0, _core.isRangeAcrossBlocks)(editor, {
|
|
171
|
+
at: selection,
|
|
172
|
+
match
|
|
173
|
+
})) {
|
|
174
|
+
const anchorEntry = (0, _core.getAboveBlockNode)(editor, {
|
|
175
|
+
at: selection.anchor,
|
|
176
|
+
match
|
|
177
|
+
});
|
|
178
|
+
if (anchorEntry) {
|
|
179
|
+
const columnLength = anchorEntry[0].columns.length;
|
|
180
|
+
const {
|
|
181
|
+
anchor
|
|
182
|
+
} = selection;
|
|
183
|
+
const isForward = _slate.Range.isForward(selection);
|
|
184
|
+
if (isForward) {
|
|
185
|
+
if (!(0, _core.isStartPoint)(editor, anchor, anchorEntry[1])) {
|
|
186
|
+
// delete table cells
|
|
187
|
+
const endPoint = (0, _core.getEndPoint)(editor, anchorEntry[1]);
|
|
188
|
+
(0, _helpers.deleteTableSelectCells)(editor, {
|
|
189
|
+
start: anchor.path,
|
|
190
|
+
end: endPoint.path,
|
|
191
|
+
columnLength
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// delete other module
|
|
195
|
+
const newAnchor = (0, _core.getStartPoint)(editor, _slate.Path.next(anchorEntry[1]));
|
|
196
|
+
_slate.Transforms.delete(editor, {
|
|
197
|
+
at: {
|
|
198
|
+
...selection,
|
|
199
|
+
anchor: newAnchor
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
(0, _core.focusEditor)(editor, newAnchor.path);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
} else {
|
|
206
|
+
if (!(0, _core.isEndPoint)(editor, anchor, anchorEntry[1])) {
|
|
207
|
+
// delete table cells
|
|
208
|
+
const startPoint = (0, _core.getStartPoint)(editor, anchorEntry[1]);
|
|
209
|
+
(0, _helpers.deleteTableSelectCells)(editor, {
|
|
210
|
+
start: startPoint.path,
|
|
211
|
+
end: anchor.path,
|
|
212
|
+
columnLength
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
// delete other module
|
|
216
|
+
const newAnchor = (0, _core.getEndPoint)(editor, _slate.Path.previous(anchorEntry[1]));
|
|
217
|
+
_slate.Transforms.delete(editor, {
|
|
218
|
+
at: {
|
|
219
|
+
...selection,
|
|
220
|
+
anchor: newAnchor
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
(0, _core.focusEditor)(editor, newAnchor.path);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
} else {
|
|
228
|
+
const focusEntry = (0, _core.getAboveBlockNode)(editor, {
|
|
229
|
+
at: selection.focus,
|
|
230
|
+
match
|
|
231
|
+
});
|
|
232
|
+
const columnLength = focusEntry[0].columns.length;
|
|
233
|
+
if (focusEntry) {
|
|
234
|
+
const {
|
|
235
|
+
focus
|
|
236
|
+
} = selection;
|
|
237
|
+
const isForward = _slate.Range.isForward(selection);
|
|
238
|
+
if (isForward) {
|
|
239
|
+
if (!(0, _core.isEndPoint)(editor, focus, focusEntry[1])) {
|
|
240
|
+
const startPoint = (0, _core.getStartPoint)(editor, focusEntry[1]);
|
|
241
|
+
(0, _helpers.deleteTableSelectCells)(editor, {
|
|
242
|
+
start: startPoint.path,
|
|
243
|
+
end: focus.path,
|
|
244
|
+
columnLength
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
// delete other module
|
|
248
|
+
const newFocus = (0, _core.getEndPoint)(editor, _slate.Path.previous(focusEntry[1]));
|
|
249
|
+
_slate.Transforms.delete(editor, {
|
|
250
|
+
at: {
|
|
251
|
+
...selection,
|
|
252
|
+
focus: newFocus
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
(0, _core.focusEditor)(editor, focus.path);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
} else {
|
|
259
|
+
if (!(0, _core.isEndPoint)(editor, focus, focusEntry[1])) {
|
|
260
|
+
const endPoint = (0, _core.getEndPoint)(editor, focusEntry[1]);
|
|
261
|
+
(0, _helpers.deleteTableSelectCells)(editor, {
|
|
262
|
+
start: focus.path,
|
|
263
|
+
end: endPoint.path,
|
|
264
|
+
columnLength
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
// delete other module
|
|
268
|
+
const newFocus = (0, _core.getStartPoint)(editor, _slate.Path.next(focusEntry[1]));
|
|
269
|
+
_slate.Transforms.delete(editor, {
|
|
270
|
+
at: {
|
|
271
|
+
...selection,
|
|
272
|
+
focus: newFocus
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
(0, _core.focusEditor)(editor, focus.path);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
deleteFragment(unit);
|
|
283
|
+
};
|
|
161
284
|
newEditor.deleteForward = unit => {
|
|
162
285
|
const nextNode = _slate.Editor.next(newEditor);
|
|
163
286
|
const newNodeParent = (0, _core.getParentNode)(newEditor.children, nextNode[0].id);
|