@seafile/sdoc-editor 0.1.55 → 0.1.57-test0
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/editor.js +3 -12
- package/dist/basic-sdk/extension/constants/element-type.js +5 -1
- package/dist/basic-sdk/extension/constants/index.js +14 -2
- package/dist/basic-sdk/extension/core/queries/index.js +8 -0
- package/dist/basic-sdk/extension/plugins/blockquote/render-elem.js +6 -1
- package/dist/basic-sdk/extension/plugins/check-list/render-elem.js +8 -4
- package/dist/basic-sdk/extension/plugins/header/render-elem.js +6 -2
- package/dist/basic-sdk/extension/plugins/html/plugin.js +8 -6
- package/dist/basic-sdk/extension/plugins/index.js +3 -2
- package/dist/basic-sdk/extension/plugins/list/render-elem.js +16 -2
- package/dist/basic-sdk/extension/plugins/table/constants/index.js +5 -1
- package/dist/basic-sdk/extension/plugins/table/helpers.js +159 -22
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.js +3 -3
- package/dist/basic-sdk/extension/plugins/table/plugin.js +2 -2
- package/dist/basic-sdk/extension/plugins/table/render/hooks.js +17 -0
- package/dist/basic-sdk/extension/plugins/table/render/index.css +137 -0
- package/dist/basic-sdk/extension/plugins/table/render/index.js +161 -0
- package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +48 -14
- package/dist/basic-sdk/extension/plugins/table/render/render-row.js +122 -7
- package/dist/basic-sdk/extension/plugins/table/render/resize-handler.js +109 -0
- package/dist/basic-sdk/extension/plugins/table/render/resize-handlers.js +27 -0
- package/dist/basic-sdk/extension/plugins/table/render/table-root.js +38 -0
- package/dist/basic-sdk/extension/plugins/table/render-elem.js +1 -1
- package/dist/basic-sdk/extension/plugins/text-align/helpers.js +43 -0
- package/dist/basic-sdk/extension/plugins/text-align/index.js +2 -0
- package/dist/basic-sdk/extension/plugins/text-align/menu/index.js +105 -0
- package/dist/basic-sdk/extension/plugins/text-align/menu/style.css +61 -0
- package/dist/basic-sdk/extension/render/render-element.js +9 -3
- package/dist/basic-sdk/extension/toolbar/index.js +19 -1
- package/dist/basic-sdk/socket/with-socket-io.js +5 -0
- package/dist/basic-sdk/utils/mouse-event.js +59 -0
- package/dist/basic-sdk/utils/object-utils.js +1 -0
- package/dist/components/doc-info/index.js +19 -4
- package/dist/config.js +16 -0
- package/dist/constants/index.js +1 -0
- package/dist/pages/simple-editor.js +3 -1
- package/package.json +1 -1
- package/public/locales/en/sdoc-editor.json +5 -1
- package/public/media/sdoc-editor-font.css +2 -2
- package/dist/basic-sdk/extension/plugins/table/render/context.js +0 -5
- package/dist/basic-sdk/extension/plugins/table/render/render-table/index.css +0 -72
- package/dist/basic-sdk/extension/plugins/table/render/render-table/index.js +0 -94
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import React, { useRef, useState, useEffect } from 'react';
|
|
3
|
-
import classnames from 'classnames';
|
|
4
|
-
import throttle from 'lodash.throttle';
|
|
5
|
-
import { useSelected } from '@seafile/slate-react';
|
|
6
|
-
import { EMPTY_SELECTED_RANGE } from '../../constants';
|
|
7
|
-
import { TableContext } from '../context';
|
|
8
|
-
import EventBus from '../../../../../utils/event-bus';
|
|
9
|
-
import { EXTERNAL_EVENT } from '../../../../../../constants';
|
|
10
|
-
import { setTableSelectedRange } from '../../helpers';
|
|
11
|
-
import ObjectUtils from '../../../../../utils/object-utils';
|
|
12
|
-
import './index.css';
|
|
13
|
-
var Table = function Table(_ref) {
|
|
14
|
-
var className = _ref.className,
|
|
15
|
-
attributes = _ref.attributes,
|
|
16
|
-
children = _ref.children,
|
|
17
|
-
isSelected = _ref.isSelected,
|
|
18
|
-
editor = _ref.editor;
|
|
19
|
-
var table = useRef(null);
|
|
20
|
-
var startRowIndex = 0;
|
|
21
|
-
var startColIndex = 0;
|
|
22
|
-
var _selectedRange = EMPTY_SELECTED_RANGE;
|
|
23
|
-
var _useState = useState(EMPTY_SELECTED_RANGE),
|
|
24
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
-
selectedRange = _useState2[0],
|
|
26
|
-
setSelectedRange = _useState2[1];
|
|
27
|
-
var eventBus = EventBus.getInstance();
|
|
28
|
-
useEffect(function () {
|
|
29
|
-
var cancelTableSelectRangeSubscribe = eventBus.subscribe(EXTERNAL_EVENT.CANCEL_TABLE_SELECT_RANGE, clearRange);
|
|
30
|
-
return function () {
|
|
31
|
-
cancelTableSelectRangeSubscribe();
|
|
32
|
-
};
|
|
33
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
|
-
}, []);
|
|
35
|
-
var clearRange = function clearRange() {
|
|
36
|
-
_selectedRange = EMPTY_SELECTED_RANGE;
|
|
37
|
-
setSelectedRange(EMPTY_SELECTED_RANGE);
|
|
38
|
-
};
|
|
39
|
-
var onMouseMove = throttle(function (event) {
|
|
40
|
-
// if event.target not in the table, clear the mouseMove event
|
|
41
|
-
if (event.target.nodeName === 'TBODY' || !table.current.contains(event.target)) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
var endRowIndex = Number(event.target.getAttribute('row-index'));
|
|
45
|
-
var endColIndex = Number(event.target.getAttribute('cell-index'));
|
|
46
|
-
var newSelectedRange = {
|
|
47
|
-
minRowIndex: Math.min(startRowIndex, endRowIndex),
|
|
48
|
-
maxRowIndex: Math.max(startRowIndex, endRowIndex),
|
|
49
|
-
minColIndex: Math.min(startColIndex, endColIndex),
|
|
50
|
-
maxColIndex: Math.max(startColIndex, endColIndex)
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// same cell
|
|
54
|
-
if (newSelectedRange.minRowIndex === newSelectedRange.maxRowIndex && newSelectedRange.minColIndex === newSelectedRange.maxColIndex) return;
|
|
55
|
-
_selectedRange = newSelectedRange;
|
|
56
|
-
setSelectedRange(newSelectedRange);
|
|
57
|
-
setTableSelectedRange(editor, newSelectedRange);
|
|
58
|
-
}, 200);
|
|
59
|
-
var onMouseUp = function onMouseUp(event) {
|
|
60
|
-
if (!ObjectUtils.isSameObject(_selectedRange, EMPTY_SELECTED_RANGE)) {
|
|
61
|
-
window.getSelection().collapseToEnd();
|
|
62
|
-
}
|
|
63
|
-
window.document.removeEventListener('mousemove', onMouseMove);
|
|
64
|
-
window.document.removeEventListener('mouseup', onMouseUp);
|
|
65
|
-
};
|
|
66
|
-
var onMouseDown = function onMouseDown(event) {
|
|
67
|
-
if (event.button !== 0) return; // right click not deal
|
|
68
|
-
startRowIndex = Number(event.target.getAttribute('row-index'));
|
|
69
|
-
startColIndex = Number(event.target.getAttribute('cell-index'));
|
|
70
|
-
setSelectedRange(EMPTY_SELECTED_RANGE);
|
|
71
|
-
setTableSelectedRange(editor, EMPTY_SELECTED_RANGE);
|
|
72
|
-
window.document.addEventListener('mousemove', onMouseMove);
|
|
73
|
-
window.document.addEventListener('mouseup', onMouseUp);
|
|
74
|
-
};
|
|
75
|
-
return /*#__PURE__*/React.createElement(TableContext.Provider, {
|
|
76
|
-
value: selectedRange
|
|
77
|
-
}, /*#__PURE__*/React.createElement("div", Object.assign({}, attributes, {
|
|
78
|
-
className: classnames('sdoc-table-wrapper', attributes.className, className, {
|
|
79
|
-
'sdoc-table-selected': isSelected
|
|
80
|
-
})
|
|
81
|
-
}), /*#__PURE__*/React.createElement("table", {
|
|
82
|
-
onMouseDown: onMouseDown,
|
|
83
|
-
ref: table
|
|
84
|
-
}, /*#__PURE__*/React.createElement("tbody", null, children))));
|
|
85
|
-
};
|
|
86
|
-
function renderTable(props, editor) {
|
|
87
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
88
|
-
var isSelected = useSelected();
|
|
89
|
-
return /*#__PURE__*/React.createElement(Table, Object.assign({}, props, {
|
|
90
|
-
editor: editor,
|
|
91
|
-
isSelected: isSelected
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
export default renderTable;
|