@seafile/sdoc-editor 3.0.245 → 3.0.246
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.
|
@@ -329,6 +329,11 @@ var SIDE_INSERT_MENUS_CONFIG = exports.SIDE_INSERT_MENUS_CONFIG = (_SIDE_INSERT_
|
|
|
329
329
|
id: '',
|
|
330
330
|
iconClass: 'sdocfont sdoc-callout',
|
|
331
331
|
text: 'Callout'
|
|
332
|
+
}), _elementType.DIVIDER, {
|
|
333
|
+
id: 'sdoc-side-menu-item-divider',
|
|
334
|
+
iconClass: 'sdocfont sdoc-divider',
|
|
335
|
+
type: _elementType.DIVIDER,
|
|
336
|
+
text: 'Divider'
|
|
332
337
|
}), _elementType.ORDERED_LIST, {
|
|
333
338
|
id: '',
|
|
334
339
|
iconClass: 'sdocfont sdoc-list-ol',
|
|
@@ -339,12 +344,12 @@ var SIDE_INSERT_MENUS_CONFIG = exports.SIDE_INSERT_MENUS_CONFIG = (_SIDE_INSERT_
|
|
|
339
344
|
iconClass: 'sdocfont sdoc-list-ul',
|
|
340
345
|
type: _elementType.UNORDERED_LIST,
|
|
341
346
|
text: 'Unordered_list'
|
|
342
|
-
}), _elementType.CHECK_LIST_ITEM, {
|
|
347
|
+
}), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_CO, _elementType.CHECK_LIST_ITEM, {
|
|
343
348
|
id: '',
|
|
344
349
|
iconClass: 'sdocfont sdoc-check-square',
|
|
345
350
|
type: _elementType.CHECK_LIST_ITEM,
|
|
346
351
|
text: 'Check_list'
|
|
347
|
-
}),
|
|
352
|
+
}), _elementType.PARAGRAPH, {
|
|
348
353
|
id: _elementType.PARAGRAPH,
|
|
349
354
|
iconClass: 'sdocfont sdoc-text',
|
|
350
355
|
type: _elementType.PARAGRAPH,
|
|
@@ -405,8 +410,8 @@ var SIDE_INSERT_MENUS_CONFIG = exports.SIDE_INSERT_MENUS_CONFIG = (_SIDE_INSERT_
|
|
|
405
410
|
type: _elementType.FORMULA,
|
|
406
411
|
text: 'Formula'
|
|
407
412
|
}));
|
|
408
|
-
var SIDE_INSERT_MENUS_SEARCH_MAP = exports.SIDE_INSERT_MENUS_SEARCH_MAP = (_SIDE_INSERT_MENUS_SE = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_SE, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_SE, _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.TOGGLE_HEADER1, 'Toggle_header_one'),
|
|
409
|
-
var SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = exports.SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = (_SIDE_QUICK_INSERT_ME = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_QUICK_INSERT_ME, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_QUICK_INSERT_ME, _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.FORMULA, 'Formula'),
|
|
413
|
+
var SIDE_INSERT_MENUS_SEARCH_MAP = exports.SIDE_INSERT_MENUS_SEARCH_MAP = (_SIDE_INSERT_MENUS_SE = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_SE, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_SE, _elementType.DIVIDER, 'Divider'), _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.TOGGLE_HEADER1, 'Toggle_header_one'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_INSERT_MENUS_SE, _elementType.TOGGLE_HEADER2, 'Toggle_header_two'), _elementType.TOGGLE_HEADER3, 'Toggle_header_three'));
|
|
414
|
+
var SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = exports.SIDE_QUICK_INSERT_MENUS_SEARCH_MAP = (_SIDE_QUICK_INSERT_ME = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_QUICK_INSERT_ME, _elementType.IMAGE, 'Image'), _elementType.VIDEO, 'Video'), _elementType.TABLE, 'Table'), _elementType.COLUMN, 'Column'), _elementType.TWO_COLUMN, 'Two_column'), _elementType.THREE_COLUMN, 'Three_column'), _elementType.FOUR_COLUMN, 'Four_column'), _elementType.LINK, 'Link'), _elementType.CODE_BLOCK, 'Code_block'), _elementType.CALL_OUT, 'Callout'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_QUICK_INSERT_ME, _elementType.DIVIDER, 'Divider'), _elementType.UNORDERED_LIST, 'Unordered_list'), _elementType.ORDERED_LIST, 'Ordered_list'), _elementType.CHECK_LIST_ITEM, 'Check_list'), _elementType.PARAGRAPH, 'Paragraph'), _elementType.HEADER1, 'Header_one'), _elementType.HEADER2, 'Header_two'), _elementType.HEADER3, 'Header_three'), _elementType.HEADER4, 'Header_four'), _elementType.FORMULA, 'Formula'), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_SIDE_QUICK_INSERT_ME, _elementType.TOGGLE_HEADER1, 'Toggle_header_one'), _elementType.TOGGLE_HEADER2, 'Toggle_header_two'), _elementType.TOGGLE_HEADER3, 'Toggle_header_three'), _elementType.EMBED_LINK, 'Embed_link'));
|
|
410
415
|
|
|
411
416
|
// Other operations menu config
|
|
412
417
|
var SIDE_OTHER_OPERATIONS_MENUS_SEARCH_MAP = exports.SIDE_OTHER_OPERATIONS_MENUS_SEARCH_MAP = {
|
|
@@ -323,7 +323,7 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
323
323
|
}, t('Add_video_link')), editor.editorType !== _constants.WIKI_EDITOR && /*#__PURE__*/_react["default"].createElement("div", {
|
|
324
324
|
className: "sdoc-dropdown-menu-item",
|
|
325
325
|
onClick: openSelectVideoFileDialog
|
|
326
|
-
}, t('Link_video_file'))))))), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.TABLE,
|
|
326
|
+
}, t('Link_video_file'))))))), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants2.TABLE,
|
|
327
327
|
/*#__PURE__*/
|
|
328
328
|
// eslint-disable-next-line react/jsx-indent
|
|
329
329
|
_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
@@ -369,6 +369,13 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
|
|
|
369
369
|
onClick: function onClick() {
|
|
370
370
|
return onInsertCallout(_constants2.PARAGRAPH);
|
|
371
371
|
}
|
|
372
|
+
})), _constants2.ELEMENT_TYPE.DIVIDER, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
373
|
+
isHidden: !quickInsertMenuSearchMap[_constants2.ELEMENT_TYPE.DIVIDER],
|
|
374
|
+
key: "sdoc-insert-menu-divider",
|
|
375
|
+
menuConfig: (0, _objectSpread5["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.DIVIDER]),
|
|
376
|
+
onClick: function onClick() {
|
|
377
|
+
return onInsert(_constants2.ELEMENT_TYPE.DIVIDER);
|
|
378
|
+
}
|
|
372
379
|
})), _constants2.FORMULA, /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
373
380
|
isHidden: !quickInsertMenuSearchMap[_constants2.FORMULA],
|
|
374
381
|
disabled: isDisableFormula,
|
|
@@ -26,6 +26,7 @@ var _event = require("./event");
|
|
|
26
26
|
var _helpers2 = require("./helpers");
|
|
27
27
|
var _sideMenu = _interopRequireDefault(require("./side-menu"));
|
|
28
28
|
require("./index.css");
|
|
29
|
+
var HORIZONTAL_DROP_ZONE_WIDTH = 48;
|
|
29
30
|
var sourceElement = null;
|
|
30
31
|
var targetElement = null;
|
|
31
32
|
var SideToolbar = function SideToolbar() {
|
|
@@ -606,7 +607,7 @@ var SideToolbar = function SideToolbar() {
|
|
|
606
607
|
setIsEnterMoreVertical(false);
|
|
607
608
|
}, []);
|
|
608
609
|
var handleDragover = (0, _react.useCallback)(function (event) {
|
|
609
|
-
var _target, _target2, _target3
|
|
610
|
+
var _target, _target2, _target3;
|
|
610
611
|
event.preventDefault();
|
|
611
612
|
var _getNodeEntry7 = (0, _helpers2.getNodeEntry)(editor, sourceElement),
|
|
612
613
|
_getNodeEntry8 = (0, _slicedToArray2["default"])(_getNodeEntry7, 2),
|
|
@@ -671,48 +672,59 @@ var SideToolbar = function SideToolbar() {
|
|
|
671
672
|
// Stop if target node is multi column node with four columns
|
|
672
673
|
if (targetNode.type === _constants2.MULTI_COLUMN && targetNode.children.length === 4) return;
|
|
673
674
|
|
|
674
|
-
// Add hover style for target node multi column children
|
|
675
|
+
// Add hover style for target node multi column children.
|
|
676
|
+
// Only use a fixed-width zone around each column boundary so the drop
|
|
677
|
+
// direction is predictable instead of depending on an arbitrary x value.
|
|
675
678
|
if (targetNode.type === _constants2.MULTI_COLUMN) {
|
|
676
679
|
var multiColumnEl = target.el;
|
|
677
|
-
var columnEls = multiColumnEl.querySelectorAll('.sdoc-column-container');
|
|
680
|
+
var columnEls = Array.from(multiColumnEl.querySelectorAll('.sdoc-column-container'));
|
|
678
681
|
if (!columnEls.length) return;
|
|
679
682
|
columnEls.forEach(function (col) {
|
|
680
683
|
return col.classList.remove('sdoc-dragging-left', 'sdoc-dragging', 'sdoc-dragging-right');
|
|
681
684
|
});
|
|
682
|
-
var
|
|
685
|
+
var activeColumn = null;
|
|
686
|
+
var activeDirection = null;
|
|
687
|
+
var previousRect = null;
|
|
683
688
|
columnEls.forEach(function (colEl, index) {
|
|
684
689
|
var rect = colEl.getBoundingClientRect();
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
690
|
+
var leftZoneStart = index === 0 ? rect.left - HORIZONTAL_DROP_ZONE_WIDTH : Math.max(previousRect.right, rect.left - HORIZONTAL_DROP_ZONE_WIDTH);
|
|
691
|
+
if (x >= leftZoneStart && x < rect.left) {
|
|
692
|
+
activeColumn = colEl;
|
|
693
|
+
activeDirection = 'left';
|
|
688
694
|
}
|
|
689
|
-
if (
|
|
690
|
-
colEl
|
|
691
|
-
|
|
695
|
+
if (index === columnEls.length - 1 && x > rect.right && x <= rect.right + HORIZONTAL_DROP_ZONE_WIDTH) {
|
|
696
|
+
activeColumn = colEl;
|
|
697
|
+
activeDirection = 'right';
|
|
692
698
|
}
|
|
693
|
-
|
|
694
|
-
colEl.classList.add('sdoc-dragging-right');
|
|
695
|
-
activeDragElRef.current = colEl;
|
|
696
|
-
}
|
|
697
|
-
preColRect = rect;
|
|
699
|
+
previousRect = rect;
|
|
698
700
|
});
|
|
701
|
+
if (activeColumn) {
|
|
702
|
+
activeColumn.classList.add("sdoc-dragging-".concat(activeDirection));
|
|
703
|
+
activeDragElRef.current = activeColumn;
|
|
704
|
+
} else {
|
|
705
|
+
activeDragElRef.current = null;
|
|
706
|
+
}
|
|
699
707
|
return;
|
|
700
708
|
}
|
|
701
709
|
|
|
702
|
-
// Add hover style for target node as non-multi column children
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
710
|
+
// Add hover style for target node as non-multi column children.
|
|
711
|
+
// The drop zones are placed immediately outside the left and right edges
|
|
712
|
+
// of the target block, keeping the center area available for normal drag.
|
|
713
|
+
var isLeftDropZone = x >= target.rect.left - HORIZONTAL_DROP_ZONE_WIDTH && x < target.rect.left;
|
|
714
|
+
var isRightDropZone = x > target.rect.right && x <= target.rect.right + HORIZONTAL_DROP_ZONE_WIDTH;
|
|
715
|
+
if (isLeftDropZone) {
|
|
706
716
|
target.el.classList.add('sdoc-dragging-left');
|
|
707
717
|
target.el.classList.remove('sdoc-dragging-right');
|
|
708
718
|
target.el.classList.remove('sdoc-dragging');
|
|
709
|
-
|
|
710
|
-
|
|
719
|
+
activeDragElRef.current = target.el;
|
|
720
|
+
} else if (isRightDropZone) {
|
|
711
721
|
target.el.classList.add('sdoc-dragging-right');
|
|
712
722
|
target.el.classList.remove('sdoc-dragging-left');
|
|
713
723
|
target.el.classList.remove('sdoc-dragging');
|
|
724
|
+
activeDragElRef.current = target.el;
|
|
725
|
+
} else {
|
|
726
|
+
activeDragElRef.current = null;
|
|
714
727
|
}
|
|
715
|
-
activeDragElRef.current = target.el;
|
|
716
728
|
}, [editor]);
|
|
717
729
|
var clearAllDragStyles = (0, _react.useCallback)(function () {
|
|
718
730
|
var el = activeDragElRef.current;
|
|
@@ -236,6 +236,12 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
|
|
|
236
236
|
onClick: function onClick() {
|
|
237
237
|
return onInsertCallout(_constants2.PARAGRAPH);
|
|
238
238
|
}
|
|
239
|
+
}), /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
240
|
+
isHidden: !insertMenuSearchMap[_constants2.ELEMENT_TYPE.DIVIDER],
|
|
241
|
+
menuConfig: (0, _objectSpread2["default"])({}, _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.DIVIDER]),
|
|
242
|
+
onClick: function onClick() {
|
|
243
|
+
return onInsert(_constants2.ELEMENT_TYPE.DIVIDER);
|
|
244
|
+
}
|
|
239
245
|
}), _constants2.SIDE_INSERT_MENUS_CONFIG[_constants2.ELEMENT_TYPE.MULTI_COLUMN].map(function (item) {
|
|
240
246
|
return /*#__PURE__*/_react["default"].createElement(_dropdownMenuItem["default"], {
|
|
241
247
|
isHidden: !insertMenuSearchMap[item.type],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.246",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "97f53b824e9f6a38da872969d632dcd238c4b947"
|
|
75
75
|
}
|