@seafile/sdoc-editor 3.0.68 → 3.0.69

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.
@@ -96,7 +96,7 @@
96
96
  .sdoc-editor__article .sdoc-image-wrapper {
97
97
  position: relative;
98
98
  display: inline-block;
99
- margin: 5px 0.15em;
99
+ margin: 5px 0;
100
100
  caret-color: transparent;
101
101
  max-width: 99%;
102
102
  }
@@ -136,7 +136,7 @@
136
136
  .sdoc-editor__article .sdoc-image-inner {
137
137
  position: relative;
138
138
  display: inline-block;
139
- margin: 0 3px;
139
+ margin: 0;
140
140
  }
141
141
 
142
142
  .sdoc-editor__article .sdoc-image-content {
@@ -90,7 +90,9 @@ var insertImage = exports.insertImage = function insertImage(editor, imgInfos, s
90
90
  });
91
91
  var validSelection = selection || editor.selection;
92
92
  var path = _slate.Editor.path(editor, validSelection);
93
- if (position === _constants2.INSERT_POSITION.AFTER) {
93
+ // Insert image inside into multi-column node
94
+ var topNodeEntry = (0, _core.getTopLevelBlockNode)(editor);
95
+ if (position === _constants2.INSERT_POSITION.AFTER && topNodeEntry[0].type !== _constants2.MULTI_COLUMN) {
94
96
  var p = (0, _core.generateEmptyElement)(_constants2.ELEMENT_TYPE.PARAGRAPH);
95
97
  imageNodes.forEach(function (item, index) {
96
98
  p.children[index] = item;
@@ -24,8 +24,7 @@ var withList = function withList(editor) {
24
24
  var insertBreak = editor.insertBreak,
25
25
  handleTab = editor.handleTab,
26
26
  insertText = editor.insertText,
27
- deleteBackward = editor.deleteBackward,
28
- onHotKeyDown = editor.onHotKeyDown;
27
+ deleteBackward = editor.deleteBackward;
29
28
  var newEditor = editor;
30
29
  newEditor.insertBreak = function () {
31
30
  if ((0, _insertBreakList.insertBreakList)(editor)) return;
@@ -3,5 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.COLUMN_MIN_WIDTH = void 0;
7
- var COLUMN_MIN_WIDTH = exports.COLUMN_MIN_WIDTH = 80;
6
+ exports.LAST_COLUMN_MARGIN_RIGHT_WIDTH = exports.COLUMN_MIN_WIDTH = void 0;
7
+ var COLUMN_MIN_WIDTH = exports.COLUMN_MIN_WIDTH = 80;
8
+
9
+ // Distance between the last column and handler
10
+ var LAST_COLUMN_MARGIN_RIGHT_WIDTH = exports.LAST_COLUMN_MARGIN_RIGHT_WIDTH = 50;
@@ -45,7 +45,7 @@ var generateEmptyMultiColumn = exports.generateEmptyMultiColumn = function gener
45
45
  default:
46
46
  break;
47
47
  }
48
- var currentPageWidth = getCurrentPageWidth(editor);
48
+ var currentPageWidth = getCurrentPageWidth(editor) + _constants3.LAST_COLUMN_MARGIN_RIGHT_WIDTH;
49
49
  var initialColumnWidth = Math.max(_constants3.COLUMN_MIN_WIDTH, parseInt(currentPageWidth / multiColumnNumber));
50
50
  var _loop = function _loop() {
51
51
  var columnWidthKey = _slugid["default"].nice();
@@ -14,7 +14,8 @@ var _helper = require("./helper");
14
14
  var withMultiColumn = function withMultiColumn(editor) {
15
15
  var normalizeNode = editor.normalizeNode,
16
16
  deleteBackward = editor.deleteBackward,
17
- deleteForward = editor.deleteForward;
17
+ deleteForward = editor.deleteForward,
18
+ insertFragment = editor.insertFragment;
18
19
  var newEditor = editor;
19
20
  newEditor.normalizeNode = function (_ref) {
20
21
  var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
@@ -144,6 +145,20 @@ var withMultiColumn = function withMultiColumn(editor) {
144
145
  }
145
146
  deleteForward(unit);
146
147
  };
148
+ newEditor.insertFragment = function (data) {
149
+ var selection = editor.selection;
150
+ if (!selection) return insertFragment(data);
151
+ // If inserting multi-column node, extract all children nodes from every column and insert them one by one
152
+ if (data[0].type === _constants.MULTI_COLUMN) {
153
+ var childrenNodes = [];
154
+ data[0].children.forEach(function (col) {
155
+ childrenNodes = childrenNodes.concat(col.children);
156
+ });
157
+ insertFragment(childrenNodes);
158
+ return;
159
+ }
160
+ insertFragment(data);
161
+ };
147
162
  return newEditor;
148
163
  };
149
164
  var _default = exports["default"] = withMultiColumn;
@@ -11,6 +11,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _slateReact = require("@seafile/slate-react");
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _constants = require("../constants");
14
15
  var _helper = require("../helper");
15
16
  var _resizeHandlers = _interopRequireDefault(require("../resize-handlers"));
16
17
  var _multiColumnRoot = _interopRequireDefault(require("./multi-column-root"));
@@ -48,10 +49,10 @@ var MultiColumn = function MultiColumn(_ref) {
48
49
  var newPageWidth = (_entries$ = entries[0]) === null || _entries$ === void 0 ? void 0 : _entries$.contentRect.width;
49
50
  // Check if sdocPageWidth changes
50
51
  if (pageWidth && newPageWidth !== pageWidth) {
51
- var scaleFactor = newPageWidth / pageWidth;
52
+ var scaleFactor = (newPageWidth + _constants.LAST_COLUMN_MARGIN_RIGHT_WIDTH) / (pageWidth + _constants.LAST_COLUMN_MARGIN_RIGHT_WIDTH);
52
53
  var updatedColumns = element.column.map(function (item) {
53
54
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, item), {}, {
54
- width: Math.round(item.width * scaleFactor)
55
+ width: item.width * scaleFactor
55
56
  });
56
57
  });
57
58
  var columnWidthList = updatedColumns.map(function (item) {
@@ -38,7 +38,7 @@ var ResizeHandlers = function ResizeHandlers(_ref) {
38
38
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
39
39
  resizeInfo = _useState8[0],
40
40
  setResizeInfo = _useState8[1];
41
- var _useState9 = (0, _react.useState)(column.map(function () {
41
+ var _useState9 = (0, _react.useState)((element.column || []).map(function () {
42
42
  return false;
43
43
  })),
44
44
  _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
@@ -73,7 +73,7 @@ var ResizeHandlers = function ResizeHandlers(_ref) {
73
73
  var onMouseMove = function onMouseMove(event) {
74
74
  event.preventDefault();
75
75
  // Let resize handler show when mouse is close to right edge of column at range of 20 px
76
- var nearBorder = column.map(function (col, colIndex) {
76
+ var nearBorder = (column || []).map(function (col, colIndex) {
77
77
  var child = childNodes[colIndex];
78
78
  if (!child) return false;
79
79
  var childRect = child.getBoundingClientRect();
@@ -137,10 +137,11 @@ var ResizeHandlers = function ResizeHandlers(_ref) {
137
137
  // eslint-disable-next-line react-hooks/exhaustive-deps
138
138
  }, [handleResizeColumn, column, isDraggingResizeHandler, isMouseNearBorder]);
139
139
  var leftAccumulator = 0;
140
+ var columns = Array.isArray(column) ? column : [];
140
141
  return /*#__PURE__*/_react["default"].createElement("div", {
141
142
  className: "column-resize-handler",
142
143
  contentEditable: false
143
- }, column.map(function (column, index) {
144
+ }, columns.map(function (column, index) {
144
145
  leftAccumulator += column.width;
145
146
  var left = leftAccumulator;
146
147
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "3.0.68",
3
+ "version": "3.0.69",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "881cbedba9666bf8f81433bcf7df07011a1690c6"
75
+ "gitHead": "cb6d75dd7ae425cf1c4b2dcc7db63f62f809488c"
76
76
  }