@seafile/sdoc-editor 2.0.165 → 2.0.167

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.setHeaderType = exports.isSelectionInHeader = exports.isMenuDisabled = exports.getHeaderType = void 0;
7
+ exports.setHeaderType = exports.isSelectionInHeader = exports.isMenuDisabled = exports.isHasImage = exports.getHeaderType = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
9
  var _slate = require("@seafile/slate");
10
10
  var _constants = require("../../constants");
@@ -71,4 +71,10 @@ var setHeaderType = exports.setHeaderType = function setHeaderType(editor, type)
71
71
  _slate.Transforms.setNodes(editor, {
72
72
  type: type
73
73
  });
74
+ };
75
+ var isHasImage = exports.isHasImage = function isHasImage(node) {
76
+ return node.children.some(function (item) {
77
+ if (item.type === 'image') return true;
78
+ return false;
79
+ });
74
80
  };
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
8
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
10
  var _slate = require("@seafile/slate");
10
11
  var _isHotkey = _interopRequireDefault(require("is-hotkey"));
@@ -24,7 +25,8 @@ var withHeader = function withHeader(editor) {
24
25
  var insertBreak = editor.insertBreak,
25
26
  insertFragment = editor.insertFragment,
26
27
  insertText = editor.insertText,
27
- deleteBackward = editor.deleteBackward;
28
+ deleteBackward = editor.deleteBackward,
29
+ normalizeNode = editor.normalizeNode;
28
30
  var newEditor = editor;
29
31
 
30
32
  // Utility function to check if selection is inside multi-column node
@@ -138,6 +140,40 @@ var withHeader = function withHeader(editor) {
138
140
  (0, _helpers2.setHeaderType)(newEditor, headerType);
139
141
  return true;
140
142
  };
143
+ newEditor.normalizeNode = function (_ref) {
144
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
145
+ node = _ref2[0],
146
+ path = _ref2[1];
147
+ var type = (0, _core.getNodeType)(node);
148
+ if (_constants.HEADERS.includes(type) && (0, _helpers2.isHasImage)(node)) {
149
+ var imagePaths = [];
150
+ var imageNodes = [];
151
+ node.children.forEach(function (item, index) {
152
+ if (item.type === 'image') {
153
+ var imgPath = [].concat((0, _toConsumableArray2["default"])(path), [index]);
154
+ imagePaths.push(imgPath);
155
+ imageNodes.push(item);
156
+ }
157
+ });
158
+ if (imagePaths.length > 0) {
159
+ _slate.Editor.withoutNormalizing(editor, function () {
160
+ imagePaths.reverse().forEach(function (path) {
161
+ _slate.Transforms.removeNodes(editor, {
162
+ at: path
163
+ });
164
+ });
165
+ var p = (0, _core.generateDefaultParagraph)();
166
+ p.children = imageNodes;
167
+ var newPath = _slate.Path.next(path);
168
+ _slate.Transforms.insertNodes(editor, p, {
169
+ at: newPath
170
+ });
171
+ });
172
+ return;
173
+ }
174
+ }
175
+ return normalizeNode([node, path]);
176
+ };
141
177
  return newEditor;
142
178
  };
143
179
  var _default = exports["default"] = withHeader;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.165",
3
+ "version": "2.0.167",
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": "b4ab6e0d30e5ba7de70ab91fe42003c8087d524a"
74
+ "gitHead": "3aeaf24f2dc672bc32a6dc6d962542adb53a6f73"
75
75
  }