@seafile/sdoc-editor 1.0.200 → 1.0.202
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/dist/basic-sdk/extension/plugins/seatable-tables/helpers.js +2 -2
- package/dist/basic-sdk/extension/plugins/seatable-tables/op-menu/index.js +34 -12
- package/dist/basic-sdk/extension/plugins/seatable-tables/render-element/seatable-table.js +48 -5
- package/dist/basic-sdk/extension/plugins/table/helpers.js +28 -2
- package/package.json +1 -1
|
@@ -80,9 +80,9 @@ const insertSeaTableTable = function (editor, item) {
|
|
|
80
80
|
_slate.Transforms.setNodes(editor, node);
|
|
81
81
|
};
|
|
82
82
|
exports.insertSeaTableTable = insertSeaTableTable;
|
|
83
|
-
const updateSeaTableTable = (editor, props) => {
|
|
83
|
+
const updateSeaTableTable = (editor, props, options) => {
|
|
84
84
|
_slate.Transforms.setNodes(editor, {
|
|
85
85
|
...props
|
|
86
|
-
});
|
|
86
|
+
}, options);
|
|
87
87
|
};
|
|
88
88
|
exports.updateSeaTableTable = updateSeaTableTable;
|
|
@@ -107,14 +107,32 @@ function OpMenu(_ref3) {
|
|
|
107
107
|
const [isShowHideColumn, setIsShowHideColumn] = (0, _react.useState)(false);
|
|
108
108
|
const [isShowSeaTableSetting, setIsShowSeaTableSetting] = (0, _react.useState)(false);
|
|
109
109
|
const onCloseOther = (0, _react.useCallback)(closeList => {
|
|
110
|
+
const {
|
|
111
|
+
filterData,
|
|
112
|
+
sortsData
|
|
113
|
+
} = seaTableRef.current;
|
|
110
114
|
closeList.forEach(item => {
|
|
111
115
|
item === 'tableList' && setIsShowTablesList(false);
|
|
112
|
-
item === 'tableFilter'
|
|
113
|
-
|
|
116
|
+
if (item === 'tableFilter') {
|
|
117
|
+
if (filterData && Object.keys(filterData).length > 0) {
|
|
118
|
+
(0, _helpers.updateSeaTableTable)(editor, filterData);
|
|
119
|
+
seaTableRef.current['filterData'] = {};
|
|
120
|
+
}
|
|
121
|
+
setTimeout(() => {
|
|
122
|
+
setIsShowFilter(false);
|
|
123
|
+
}, 1000);
|
|
124
|
+
}
|
|
125
|
+
if (item === 'tableSort') {
|
|
126
|
+
if (sortsData && Object.keys(sortsData).length > 0) {
|
|
127
|
+
(0, _helpers.updateSeaTableTable)(editor, sortsData);
|
|
128
|
+
seaTableRef.current['sortsData'] = {};
|
|
129
|
+
}
|
|
130
|
+
setIsShowSort(false);
|
|
131
|
+
}
|
|
114
132
|
item === 'tableColumnHidden' && setIsShowHideColumn(false);
|
|
115
133
|
item === 'tableSetting' && setIsShowSeaTableSetting(false);
|
|
116
134
|
});
|
|
117
|
-
}, []);
|
|
135
|
+
}, [editor, seaTableRef]);
|
|
118
136
|
const onClickOutside = (0, _react.useCallback)(e => {
|
|
119
137
|
if (seaTableRef !== null && seaTableRef !== void 0 && seaTableRef.current.contains(e.target)) {
|
|
120
138
|
onCloseOther(['tableList', 'tableFilter', 'tableSort', 'tableColumnHidden', 'tableSetting']);
|
|
@@ -190,21 +208,25 @@ function OpMenu(_ref3) {
|
|
|
190
208
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
191
209
|
}, [isShowFilter]);
|
|
192
210
|
const onFiltersChange = (0, _react.useCallback)((filters, filter_conjunction) => {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
211
|
+
if (seaTableRef.current) {
|
|
212
|
+
seaTableRef.current['filterData'] = {
|
|
213
|
+
filters,
|
|
214
|
+
filter_conjunction
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}, [seaTableRef]);
|
|
198
218
|
const onSort = (0, _react.useCallback)(() => {
|
|
199
219
|
setIsShowSort(!isShowSort);
|
|
200
220
|
onCloseOther(['tableList', 'tableFilter', 'tableColumnHidden', 'tableSetting']);
|
|
201
221
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
202
222
|
}, [isShowSort]);
|
|
203
223
|
const onSortsChange = (0, _react.useCallback)(sorts => {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
224
|
+
if (seaTableRef.current) {
|
|
225
|
+
seaTableRef.current['sortsData'] = {
|
|
226
|
+
sorts
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}, [seaTableRef]);
|
|
208
230
|
const onHiddenColumn = (0, _react.useCallback)(() => {
|
|
209
231
|
setIsShowHideColumn(!isShowHideColumn);
|
|
210
232
|
onCloseOther(['tableList', 'tableSort', 'tableFilter', 'tableSetting']);
|
|
@@ -18,6 +18,7 @@ var _recordList = _interopRequireDefault(require("./record-list"));
|
|
|
18
18
|
var _opMenu = _interopRequireDefault(require("../op-menu"));
|
|
19
19
|
var _useScrollContext = require("../../../../hooks/use-scroll-context");
|
|
20
20
|
var _helpers = require("../../seatable-column/helpers");
|
|
21
|
+
var _helpers2 = require("../helpers");
|
|
21
22
|
require("./index.css");
|
|
22
23
|
function SeaTableTable(_ref) {
|
|
23
24
|
var _tableInfoRef$current, _tableInfoRef$current2;
|
|
@@ -218,13 +219,54 @@ function SeaTableTable(_ref) {
|
|
|
218
219
|
observerRefValue.removeEventListener('scroll', handleScroll);
|
|
219
220
|
};
|
|
220
221
|
}, [handleScroll, readOnly, scrollRef]);
|
|
222
|
+
const handleSaveData = (0, _react.useCallback)(() => {
|
|
223
|
+
const {
|
|
224
|
+
filterData,
|
|
225
|
+
sortsData
|
|
226
|
+
} = seaTableRef.current;
|
|
227
|
+
if (filterData && Object.keys(filterData).length > 0) {
|
|
228
|
+
const path = _slateReact.ReactEditor.findPath(editor, element);
|
|
229
|
+
(0, _helpers2.updateSeaTableTable)(editor, filterData, {
|
|
230
|
+
at: {
|
|
231
|
+
anchor: {
|
|
232
|
+
offset: 0,
|
|
233
|
+
path
|
|
234
|
+
},
|
|
235
|
+
focus: {
|
|
236
|
+
offset: 0,
|
|
237
|
+
path
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
seaTableRef.current['filterData'] = {};
|
|
242
|
+
}
|
|
243
|
+
if (sortsData && Object.keys(sortsData).length > 0) {
|
|
244
|
+
const path = _slateReact.ReactEditor.findPath(editor, element);
|
|
245
|
+
(0, _helpers2.updateSeaTableTable)(editor, sortsData, {
|
|
246
|
+
at: {
|
|
247
|
+
anchor: {
|
|
248
|
+
offset: 0,
|
|
249
|
+
path
|
|
250
|
+
},
|
|
251
|
+
focus: {
|
|
252
|
+
offset: 0,
|
|
253
|
+
path
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
seaTableRef.current['sortsData'] = {};
|
|
258
|
+
}
|
|
259
|
+
}, [editor, element]);
|
|
221
260
|
(0, _react.useEffect)(() => {
|
|
222
261
|
if (!isSelected) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
262
|
+
handleSaveData();
|
|
263
|
+
queueMicrotask(() => {
|
|
264
|
+
setIsShowMenu(false);
|
|
265
|
+
setIsShowColumnWidth(false);
|
|
266
|
+
setIsCanModifyColumnWidth(false);
|
|
267
|
+
});
|
|
226
268
|
}
|
|
227
|
-
}, [isSelected]);
|
|
269
|
+
}, [editor, element, handleSaveData, isSelected]);
|
|
228
270
|
const onTableClick = (0, _react.useCallback)(event => {
|
|
229
271
|
if (readOnly) return;
|
|
230
272
|
const {
|
|
@@ -254,7 +296,8 @@ function SeaTableTable(_ref) {
|
|
|
254
296
|
});
|
|
255
297
|
return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, attributes, {
|
|
256
298
|
className: "seatable-table-wrapper",
|
|
257
|
-
contentEditable: true
|
|
299
|
+
contentEditable: true,
|
|
300
|
+
suppressContentEditableWarning: true
|
|
258
301
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
259
302
|
ref: seaTableRef,
|
|
260
303
|
className: containerClass,
|
|
@@ -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.isInTableSameCell = 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;
|
|
7
|
+
exports.updateTableRowHeight = exports.updateColumnWidth = exports.syncRemoveTable = 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.isInTableSameCell = 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");
|
|
@@ -580,7 +580,7 @@ const splitCell = (editor, rowNumber, columnNumber) => {
|
|
|
580
580
|
});
|
|
581
581
|
};
|
|
582
582
|
exports.splitCell = splitCell;
|
|
583
|
-
const
|
|
583
|
+
const syncRemoveTable = (editor, path) => {
|
|
584
584
|
let validPath = path;
|
|
585
585
|
if (!validPath) {
|
|
586
586
|
const {
|
|
@@ -593,6 +593,32 @@ const removeTable = (editor, path) => {
|
|
|
593
593
|
at: validPath
|
|
594
594
|
});
|
|
595
595
|
};
|
|
596
|
+
exports.syncRemoveTable = syncRemoveTable;
|
|
597
|
+
const removeTable = (editor, path) => {
|
|
598
|
+
let validPath = path;
|
|
599
|
+
if (!validPath) {
|
|
600
|
+
const {
|
|
601
|
+
tablePath
|
|
602
|
+
} = getSelectedInfo(editor);
|
|
603
|
+
validPath = tablePath;
|
|
604
|
+
}
|
|
605
|
+
editor.reSetTableSelectedRange();
|
|
606
|
+
|
|
607
|
+
// Clicking the menu causes the table to be re-rendered, and the deletion operation is performed synchronously. When rendering, it is found that the data is lost and an error is reported.
|
|
608
|
+
setTimeout(() => {
|
|
609
|
+
_slate.Transforms.removeNodes(editor, {
|
|
610
|
+
at: validPath
|
|
611
|
+
});
|
|
612
|
+
if (_slate.Editor.hasPath(editor, validPath)) {
|
|
613
|
+
const endOfLastNodePoint = _slate.Editor.end(editor, validPath);
|
|
614
|
+
const range = {
|
|
615
|
+
anchor: endOfLastNodePoint,
|
|
616
|
+
focus: endOfLastNodePoint
|
|
617
|
+
};
|
|
618
|
+
(0, _core.focusEditor)(editor, range);
|
|
619
|
+
}
|
|
620
|
+
}, 0);
|
|
621
|
+
};
|
|
596
622
|
exports.removeTable = removeTable;
|
|
597
623
|
const removeTableElement = (editor, type) => {
|
|
598
624
|
const {
|