@20minutes/draft-convert 3.0.0 → 3.0.1

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.
Files changed (42) hide show
  1. package/README.md +29 -0
  2. package/dist/draft-convert.js +440 -0
  3. package/dist/draft-convert.min.js +1 -0
  4. package/esm/blockEntities.js +67 -0
  5. package/esm/blockInlineStyles.js +98 -0
  6. package/esm/convertFromHTML.js +537 -0
  7. package/esm/convertToHTML.js +107 -0
  8. package/esm/default/defaultBlockHTML.js +31 -0
  9. package/esm/default/defaultInlineHTML.js +18 -0
  10. package/esm/encodeBlock.js +44 -0
  11. package/esm/index.js +4 -0
  12. package/esm/util/accumulateFunction.js +9 -0
  13. package/esm/util/blockTypeObjectFunction.js +9 -0
  14. package/esm/util/getBlockTags.js +27 -0
  15. package/esm/util/getElementHTML.js +36 -0
  16. package/esm/util/getElementTagLength.js +20 -0
  17. package/esm/util/getNestedBlockTags.js +29 -0
  18. package/esm/util/parseHTML.js +18 -0
  19. package/esm/util/rangeSort.js +6 -0
  20. package/esm/util/splitReactElement.js +18 -0
  21. package/esm/util/styleObjectFunction.js +8 -0
  22. package/esm/util/updateMutation.js +48 -0
  23. package/lib/blockEntities.js +74 -0
  24. package/lib/blockInlineStyles.js +105 -0
  25. package/lib/convertFromHTML.js +544 -0
  26. package/lib/convertToHTML.js +114 -0
  27. package/lib/default/defaultBlockHTML.js +37 -0
  28. package/lib/default/defaultInlineHTML.js +25 -0
  29. package/lib/encodeBlock.js +51 -0
  30. package/lib/index.js +27 -0
  31. package/lib/util/accumulateFunction.js +15 -0
  32. package/lib/util/blockTypeObjectFunction.js +15 -0
  33. package/lib/util/getBlockTags.js +34 -0
  34. package/lib/util/getElementHTML.js +43 -0
  35. package/lib/util/getElementTagLength.js +27 -0
  36. package/lib/util/getNestedBlockTags.js +36 -0
  37. package/lib/util/parseHTML.js +24 -0
  38. package/lib/util/rangeSort.js +12 -0
  39. package/lib/util/splitReactElement.js +24 -0
  40. package/lib/util/styleObjectFunction.js +14 -0
  41. package/lib/util/updateMutation.js +55 -0
  42. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = defaultInlineHTML;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function defaultInlineHTML(style) {
10
+ switch (style) {
11
+ case 'BOLD':
12
+ return /*#__PURE__*/_react["default"].createElement("strong", null);
13
+ case 'ITALIC':
14
+ return /*#__PURE__*/_react["default"].createElement("em", null);
15
+ case 'UNDERLINE':
16
+ return /*#__PURE__*/_react["default"].createElement("u", null);
17
+ case 'CODE':
18
+ return /*#__PURE__*/_react["default"].createElement("code", null);
19
+ default:
20
+ return {
21
+ start: '',
22
+ end: ''
23
+ };
24
+ }
25
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _updateMutation = _interopRequireDefault(require("./util/updateMutation"));
11
+ var _rangeSort = _interopRequireDefault(require("./util/rangeSort"));
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ var ENTITY_MAP = {
15
+ '&': '&amp;',
16
+ '<': '&lt;',
17
+ '>': '&gt;',
18
+ '"': '&quot;',
19
+ "'": '&#x27;',
20
+ '`': '&#x60;',
21
+ '\n': '<br/>'
22
+ };
23
+ var _default = exports["default"] = function _default(block) {
24
+ var blockText = (0, _toConsumableArray2["default"])(block.text);
25
+ var entities = block.entityRanges.sort(_rangeSort["default"]);
26
+ var styles = block.inlineStyleRanges.sort(_rangeSort["default"]);
27
+ var resultText = '';
28
+ var _loop = function _loop() {
29
+ var _char = blockText[index];
30
+ if (ENTITY_MAP[_char] !== undefined) {
31
+ var encoded = ENTITY_MAP[_char];
32
+ var resultIndex = (0, _toConsumableArray2["default"])(resultText).length;
33
+ resultText += encoded;
34
+ var updateForChar = function updateForChar(mutation) {
35
+ return (0, _updateMutation["default"])(mutation, resultIndex, _char.length, encoded.length, 0, 0);
36
+ };
37
+ entities = entities.map(updateForChar);
38
+ styles = styles.map(updateForChar);
39
+ } else {
40
+ resultText += _char;
41
+ }
42
+ };
43
+ for (var index = 0; index < blockText.length; index += 1) {
44
+ _loop();
45
+ }
46
+ return _objectSpread(_objectSpread({}, block), {}, {
47
+ text: resultText,
48
+ inlineStyleRanges: styles,
49
+ entityRanges: entities
50
+ });
51
+ };
package/lib/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "convertFromHTML", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _convertFromHTML["default"];
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "convertToHTML", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _convertToHTML["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "parseHTML", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _parseHTML["default"];
23
+ }
24
+ });
25
+ var _convertToHTML = _interopRequireDefault(require("./convertToHTML"));
26
+ var _convertFromHTML = _interopRequireDefault(require("./convertFromHTML"));
27
+ var _parseHTML = _interopRequireDefault(require("./util/parseHTML"));
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = exports["default"] = function _default(newFn, rest) {
8
+ return function () {
9
+ var newResult = newFn.apply(void 0, arguments);
10
+ if (newResult !== undefined && newResult !== null) {
11
+ return newResult;
12
+ }
13
+ return rest.apply(void 0, arguments);
14
+ };
15
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = exports["default"] = function _default(typeObject) {
8
+ return function (block) {
9
+ if (typeof typeObject === 'function') {
10
+ // handle case where typeObject is already a function
11
+ return typeObject(block);
12
+ }
13
+ return typeObject[block.type];
14
+ };
15
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getBlockTags;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _invariant = _interopRequireDefault(require("invariant"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _server = _interopRequireDefault(require("react-dom/server"));
12
+ var _splitReactElement = _interopRequireDefault(require("./splitReactElement"));
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function hasChildren(element) {
16
+ return /*#__PURE__*/_react["default"].isValidElement(element) && _react["default"].Children.count(element.props.children) > 0;
17
+ }
18
+ function getBlockTags(blockHTML) {
19
+ (0, _invariant["default"])(blockHTML !== null && blockHTML !== undefined, 'Expected block HTML value to be non-null');
20
+ if (typeof blockHTML === 'string') {
21
+ return blockHTML;
22
+ }
23
+ if ( /*#__PURE__*/_react["default"].isValidElement(blockHTML)) {
24
+ if (hasChildren(blockHTML)) {
25
+ return _server["default"].renderToStaticMarkup(blockHTML);
26
+ }
27
+ return (0, _splitReactElement["default"])(blockHTML);
28
+ }
29
+ if (Object.prototype.hasOwnProperty.call(blockHTML, 'element') && /*#__PURE__*/_react["default"].isValidElement(blockHTML.element)) {
30
+ return _objectSpread(_objectSpread({}, blockHTML), (0, _splitReactElement["default"])(blockHTML.element));
31
+ }
32
+ (0, _invariant["default"])(Object.prototype.hasOwnProperty.call(blockHTML, 'start') && Object.prototype.hasOwnProperty.call(blockHTML, 'end'), 'convertToHTML: received block information without either a ReactElement or an object with start/end tags');
33
+ return blockHTML;
34
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getElementHTML;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _invariant = _interopRequireDefault(require("invariant"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _server = _interopRequireDefault(require("react-dom/server"));
12
+ var _splitReactElement = _interopRequireDefault(require("./splitReactElement"));
13
+ function hasChildren(element) {
14
+ return /*#__PURE__*/_react["default"].isValidElement(element) && _react["default"].Children.count(element.props.children) > 0;
15
+ }
16
+ function getElementHTML(element) {
17
+ var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
18
+ if (element === undefined || element === null) {
19
+ return element;
20
+ }
21
+ if (typeof element === 'string') {
22
+ return element;
23
+ }
24
+ if ( /*#__PURE__*/_react["default"].isValidElement(element)) {
25
+ if (hasChildren(element)) {
26
+ return _server["default"].renderToStaticMarkup(element);
27
+ }
28
+ var tags = (0, _splitReactElement["default"])(element);
29
+ if (text !== null && (0, _typeof2["default"])(tags) === 'object') {
30
+ var start = tags.start,
31
+ end = tags.end;
32
+ return start + text + end;
33
+ }
34
+ return tags;
35
+ }
36
+ (0, _invariant["default"])(Object.prototype.hasOwnProperty.call(element, 'start') && Object.prototype.hasOwnProperty.call(element, 'end'), 'convertToHTML: received conversion data without either an HTML string, ReactElement or an object with start/end tags');
37
+ if (text !== null) {
38
+ var _start = element.start,
39
+ _end = element.end;
40
+ return _start + text + _end;
41
+ }
42
+ return element;
43
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _splitReactElement = _interopRequireDefault(require("./splitReactElement"));
11
+ var getElementTagLength = function getElementTagLength(element) {
12
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'start';
13
+ if ( /*#__PURE__*/_react["default"].isValidElement(element)) {
14
+ var splitElement = (0, _splitReactElement["default"])(element);
15
+ if (typeof splitElement === 'string') {
16
+ return 0;
17
+ }
18
+ var length = splitElement[type].length;
19
+ var child = _react["default"].Children.toArray(element.props.children)[0];
20
+ return length + (child && /*#__PURE__*/_react["default"].isValidElement(child) ? getElementTagLength(child, type) : 0);
21
+ }
22
+ if ((0, _typeof2["default"])(element) === 'object') {
23
+ return element[type] ? element[type].length : 0;
24
+ }
25
+ return 0;
26
+ };
27
+ var _default = exports["default"] = getElementTagLength;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = getNestedBlockTags;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _invariant = _interopRequireDefault(require("invariant"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _splitReactElement3 = _interopRequireDefault(require("./splitReactElement"));
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function getNestedBlockTags(blockHTML, depth) {
15
+ (0, _invariant["default"])(blockHTML !== null && blockHTML !== undefined, 'Expected block HTML value to be non-null');
16
+ if (typeof blockHTML.nest === 'function') {
17
+ var _splitReactElement = (0, _splitReactElement3["default"])(blockHTML.nest(depth)),
18
+ start = _splitReactElement.start,
19
+ end = _splitReactElement.end;
20
+ return _objectSpread(_objectSpread({}, blockHTML), {}, {
21
+ nestStart: start,
22
+ nestEnd: end
23
+ });
24
+ }
25
+ if ( /*#__PURE__*/_react["default"].isValidElement(blockHTML.nest)) {
26
+ var _splitReactElement2 = (0, _splitReactElement3["default"])(blockHTML.nest),
27
+ _start = _splitReactElement2.start,
28
+ _end = _splitReactElement2.end;
29
+ return _objectSpread(_objectSpread({}, blockHTML), {}, {
30
+ nestStart: _start,
31
+ nestEnd: _end
32
+ });
33
+ }
34
+ (0, _invariant["default"])(Object.prototype.hasOwnProperty.call(blockHTML, 'nestStart') && Object.prototype.hasOwnProperty.call(blockHTML, 'nestEnd'), 'convertToHTML: received block information without either a ReactElement or an object with start/end tags');
35
+ return blockHTML;
36
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = parseHTML;
7
+ var fallback = function fallback(html) {
8
+ var doc = document.implementation.createHTMLDocument('');
9
+ doc.documentElement.innerHTML = html;
10
+ return doc;
11
+ };
12
+ function parseHTML(html) {
13
+ var doc;
14
+ if (typeof DOMParser !== 'undefined') {
15
+ var parser = new DOMParser();
16
+ doc = parser.parseFromString(html, 'text/html');
17
+ if (doc === null || doc.body === null) {
18
+ doc = fallback(html);
19
+ }
20
+ } else {
21
+ doc = fallback(html);
22
+ }
23
+ return doc.body;
24
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = exports["default"] = function _default(r1, r2) {
8
+ if (r1.offset === r2.offset) {
9
+ return r2.length - r1.length;
10
+ }
11
+ return r1.offset - r2.offset;
12
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = splitReactElement;
8
+ var _invariant = _interopRequireDefault(require("invariant"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _server = _interopRequireDefault(require("react-dom/server"));
11
+ // see http://w3c.github.io/html/syntax.html#writing-html-documents-elements
12
+ var VOID_TAGS = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
13
+ function splitReactElement(element) {
14
+ if (VOID_TAGS.indexOf(element.type) !== -1) {
15
+ return _server["default"].renderToStaticMarkup(element);
16
+ }
17
+ var tags = _server["default"].renderToStaticMarkup( /*#__PURE__*/_react["default"].cloneElement(element, {}, '\r')).split('\r');
18
+ (0, _invariant["default"])(tags.length > 1, "convertToHTML: Element of type ".concat(element.type, " must render children"));
19
+ (0, _invariant["default"])(tags.length < 3, "convertToHTML: Element of type ".concat(element.type, " cannot use carriage return character"));
20
+ return {
21
+ start: tags[0],
22
+ end: tags[1]
23
+ };
24
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = exports["default"] = function _default(object) {
8
+ return function (style) {
9
+ if (typeof object === 'function') {
10
+ return object(style);
11
+ }
12
+ return object[style];
13
+ };
14
+ };
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = updateMutation;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function updateMutation(mutation, originalOffset, originalLength, newLength, prefixLength, suffixLength) {
12
+ // three cases we can reasonably adjust - disjoint mutations that
13
+ // happen later on where the offset will need to be changed,
14
+ // mutations that completely contain the new one where we can adjust
15
+ // the length, and mutations that occur partially within the new one.
16
+ var lengthDiff = newLength - originalLength;
17
+ var mutationAfterChange = originalOffset + originalLength <= mutation.offset;
18
+ if (mutationAfterChange) {
19
+ return _objectSpread(_objectSpread({}, mutation), {}, {
20
+ offset: mutation.offset + lengthDiff
21
+ });
22
+ }
23
+ var mutationContainsChange = originalOffset >= mutation.offset && originalOffset + originalLength <= mutation.offset + mutation.length;
24
+ if (mutationContainsChange) {
25
+ return _objectSpread(_objectSpread({}, mutation), {}, {
26
+ length: mutation.length + lengthDiff
27
+ });
28
+ }
29
+ var mutationWithinPrefixChange = mutation.offset >= originalOffset && mutation.offset + mutation.length <= originalOffset + originalLength && prefixLength > 0;
30
+ if (mutationWithinPrefixChange) {
31
+ return _objectSpread(_objectSpread({}, mutation), {}, {
32
+ offset: mutation.offset + prefixLength
33
+ });
34
+ }
35
+ var mutationContainsPrefix = mutation.offset < originalOffset && mutation.offset + mutation.length <= originalOffset + originalLength && mutation.offset + mutation.length > originalOffset && prefixLength > 0;
36
+ if (mutationContainsPrefix) {
37
+ return [_objectSpread(_objectSpread({}, mutation), {}, {
38
+ length: originalOffset - mutation.offset
39
+ }), _objectSpread(_objectSpread({}, mutation), {}, {
40
+ offset: originalOffset + prefixLength,
41
+ length: mutation.offset - originalOffset + mutation.length
42
+ })];
43
+ }
44
+ var mutationContainsSuffix = mutation.offset >= originalOffset && mutation.offset + mutation.length > originalOffset + originalLength && originalOffset + originalLength > mutation.offset && suffixLength > 0;
45
+ if (mutationContainsSuffix) {
46
+ return [_objectSpread(_objectSpread({}, mutation), {}, {
47
+ offset: mutation.offset + prefixLength,
48
+ length: originalOffset + originalLength - mutation.offset
49
+ }), _objectSpread(_objectSpread({}, mutation), {}, {
50
+ offset: originalOffset + originalLength + prefixLength + suffixLength,
51
+ length: mutation.offset + mutation.length - (originalOffset + originalLength)
52
+ })];
53
+ }
54
+ return mutation;
55
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@20minutes/draft-convert",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Extensibly serialize & deserialize Draft.js ContentState",
5
5
  "main": "lib/index.js",
6
6
  "types": "types/index.d.ts",