@studysync/draft-js-modifiers 0.3.1 → 0.3.5

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 (68) hide show
  1. package/README.md +30 -0
  2. package/addBlock.js +3 -2
  3. package/adjustBlockDepth.js +4 -4
  4. package/es/addBlock.js +30 -19
  5. package/es/adjustBlockDepth.js +16 -5
  6. package/es/getAllEntities.js +29 -0
  7. package/es/getEntitiesForBlock.js +44 -0
  8. package/es/getEntitiesForSelection.js +31 -0
  9. package/es/getSelectedText.js +19 -0
  10. package/es/index.js +259 -17
  11. package/es/insertAtomicBlock.js +11 -3
  12. package/es/insertBlockAfter.js +70 -0
  13. package/es/insertEmptyBlock.js +13 -3
  14. package/es/insertEntity.js +37 -0
  15. package/es/insertNewBlock.js +25 -11
  16. package/es/insertText.js +14 -4
  17. package/es/mergeBlockData.js +16 -5
  18. package/es/mergeBlockDataByKey.js +12 -4
  19. package/es/mergeEntityData.js +11 -3
  20. package/es/modifyBlock.js +16 -5
  21. package/es/modifyBlockByKey.js +11 -3
  22. package/es/moveCaretAfterBlock.js +31 -0
  23. package/es/moveCaretToEnd.js +25 -0
  24. package/es/removeBlock.js +41 -0
  25. package/es/removeBlockStyle.js +12 -4
  26. package/es/removeEntity.js +34 -0
  27. package/es/removeInlineStyles.js +19 -8
  28. package/es/resetBlock.js +19 -7
  29. package/es/selectAll.js +22 -0
  30. package/es/selectBlockByKey.js +25 -0
  31. package/es/toggleBlockStyle.js +35 -0
  32. package/es/toggleBlockType.js +11 -3
  33. package/es/toggleEntity.js +11 -3
  34. package/es/toggleInlineStyle.js +11 -3
  35. package/es/utils/getCurrentBlock.js +9 -1
  36. package/es/utils/numbers.js +18 -0
  37. package/getAllEntities.js +29 -0
  38. package/getEntitiesForBlock.js +44 -0
  39. package/getEntitiesForSelection.js +31 -0
  40. package/getSelectedText.js +19 -0
  41. package/index.js +134 -18
  42. package/insertAtomicBlock.js +2 -2
  43. package/insertBlockAfter.js +70 -0
  44. package/insertEmptyBlock.js +4 -4
  45. package/insertEntity.js +37 -0
  46. package/insertNewBlock.js +4 -4
  47. package/insertText.js +2 -2
  48. package/mergeBlockData.js +2 -2
  49. package/mergeBlockDataByKey.js +2 -2
  50. package/mergeEntityData.js +2 -2
  51. package/modifyBlock.js +4 -4
  52. package/modifyBlockByKey.js +2 -2
  53. package/moveCaretAfterBlock.js +31 -0
  54. package/moveCaretToEnd.js +25 -0
  55. package/package.json +8 -10
  56. package/removeBlock.js +41 -0
  57. package/removeBlockStyle.js +2 -2
  58. package/removeEntity.js +34 -0
  59. package/removeInlineStyles.js +4 -4
  60. package/resetBlock.js +2 -2
  61. package/selectAll.js +22 -0
  62. package/selectBlockByKey.js +25 -0
  63. package/toggleBlockStyle.js +35 -0
  64. package/toggleBlockType.js +2 -2
  65. package/toggleEntity.js +2 -2
  66. package/toggleInlineStyle.js +2 -2
  67. package/utils/getCurrentBlock.js +2 -2
  68. package/utils/numbers.js +18 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _draftJs = require("draft-js");
9
+
10
+ var _immutable = require("immutable");
11
+
12
+ var toggleBlockStyle = function toggleBlockStyle(editorState, _ref) {
13
+ var blockStyle = _ref.type,
14
+ data = _ref.data;
15
+
16
+ /* istanbul ignore else */
17
+ if (data) {
18
+ var selection = editorState.getSelection();
19
+
20
+ var newContentState = _draftJs.Modifier.mergeBlockData(editorState.getCurrentContent(), selection, (0, _immutable.Map)(data));
21
+
22
+ var newEditorState = _draftJs.EditorState.push(editorState, newContentState, 'change-block-data');
23
+
24
+ return _draftJs.RichUtils.toggleBlockType(newEditorState, blockStyle);
25
+ } // We currently always have data, but just in case we add new types in the
26
+ // future, the default action is to just blindly toggle it.
27
+
28
+ /* istanbul ignore next */
29
+
30
+
31
+ return _draftJs.RichUtils.toggleBlockType(editorState, blockStyle);
32
+ };
33
+
34
+ var _default = toggleBlockStyle;
35
+ exports["default"] = _default;
@@ -1,7 +1,15 @@
1
- import { RichUtils } from 'draft-js';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _draftJs = require("draft-js");
2
9
 
3
10
  var toggleBlockType = function toggleBlockType(editorState, blockType) {
4
- return RichUtils.toggleBlockType(editorState, blockType);
11
+ return _draftJs.RichUtils.toggleBlockType(editorState, blockType);
5
12
  };
6
13
 
7
- export default toggleBlockType;
14
+ var _default = toggleBlockType;
15
+ exports["default"] = _default;
@@ -1,7 +1,15 @@
1
- import { RichUtils } from 'draft-js';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _draftJs = require("draft-js");
2
9
 
3
10
  var toggleEntity = function toggleEntity(editorState, entityKey) {
4
- return RichUtils.toggleLink(editorState, editorState.getSelection(), entityKey);
11
+ return _draftJs.RichUtils.toggleLink(editorState, editorState.getSelection(), entityKey);
5
12
  };
6
13
 
7
- export default toggleEntity;
14
+ var _default = toggleEntity;
15
+ exports["default"] = _default;
@@ -1,7 +1,15 @@
1
- import { RichUtils } from 'draft-js';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _draftJs = require("draft-js");
2
9
 
3
10
  var toggleInlineStyle = function toggleInlineStyle(editorState, inlineStyle) {
4
- return RichUtils.toggleInlineStyle(editorState, inlineStyle);
11
+ return _draftJs.RichUtils.toggleInlineStyle(editorState, inlineStyle);
5
12
  };
6
13
 
7
- export default toggleInlineStyle;
14
+ var _default = toggleInlineStyle;
15
+ exports["default"] = _default;
@@ -1,6 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
1
8
  var getCurrentBlock = function getCurrentBlock(editorState) {
2
9
  var selection = editorState.getSelection();
3
10
  return editorState.getCurrentContent().getBlockForKey(selection.getStartKey());
4
11
  };
5
12
 
6
- export default getCurrentBlock;
13
+ var _default = getCurrentBlock;
14
+ exports["default"] = _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rangesOverlap = exports.fallsWithin = void 0;
7
+
8
+ var fallsWithin = function fallsWithin(value, start, end) {
9
+ return start <= value && value <= end;
10
+ };
11
+
12
+ exports.fallsWithin = fallsWithin;
13
+
14
+ var rangesOverlap = function rangesOverlap(s1, e1, s2, e2) {
15
+ return fallsWithin(s2, s1, e1) || fallsWithin(s1, s2, e2);
16
+ };
17
+
18
+ exports.rangesOverlap = rangesOverlap;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.flatten = exports["default"] = void 0;
7
+
8
+ var _ = require(".");
9
+
10
+ var flatten = function flatten(arr) {
11
+ return arr.reduce(function (a, b) {
12
+ return a.concat(b);
13
+ }, []);
14
+ };
15
+
16
+ exports.flatten = flatten;
17
+
18
+ var getAllEntities = function getAllEntities(editorState) {
19
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
20
+ var content = editorState.getCurrentContent();
21
+ var entities = [];
22
+ content.getBlocksAsArray().forEach(function (contentBlock) {
23
+ entities.push((0, _.getEntitiesForBlock)(editorState, contentBlock, type));
24
+ });
25
+ return flatten(entities);
26
+ };
27
+
28
+ var _default = getAllEntities;
29
+ exports["default"] = _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ var getEntitiesForBlock = function getEntitiesForBlock(editorState, contentBlock) {
15
+ var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
16
+ var content = editorState.getCurrentContent();
17
+ var entities = [];
18
+ var selectedEntity = null;
19
+ contentBlock.findEntityRanges(function (character) {
20
+ if (character.getEntity() !== null) {
21
+ var entity = content.getEntity(character.getEntity());
22
+
23
+ if (!type || type && entity.getType() === type) {
24
+ selectedEntity = {
25
+ entityKey: character.getEntity(),
26
+ blockKey: contentBlock.getKey(),
27
+ entity: content.getEntity(character.getEntity())
28
+ };
29
+ return true;
30
+ }
31
+ }
32
+
33
+ return false;
34
+ }, function (start, end) {
35
+ entities.push(_objectSpread(_objectSpread({}, selectedEntity), {}, {
36
+ start: start,
37
+ end: end
38
+ }));
39
+ });
40
+ return entities;
41
+ };
42
+
43
+ var _default = getEntitiesForBlock;
44
+ exports["default"] = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _ = require(".");
9
+
10
+ var _numbers = require("./utils/numbers");
11
+
12
+ var getEntitiesForCurrentBlock = function getEntitiesForCurrentBlock(editorState) {
13
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
14
+ return (0, _.getEntitiesForBlock)(editorState, (0, _.getCurrentBlock)(editorState), type);
15
+ };
16
+
17
+ var getEntitiesForSelection = function getEntitiesForSelection(editorState) {
18
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
19
+ var entities = getEntitiesForCurrentBlock(editorState, type);
20
+ var selection = editorState.getSelection();
21
+ var selectionStart = selection.isCollapsed() ? selection.getStartOffset() - 1 : selection.getStartOffset();
22
+ var selectionEnd = selection.getEndOffset();
23
+ return entities.filter(function (_ref) {
24
+ var start = _ref.start,
25
+ end = _ref.end;
26
+ return (0, _numbers.rangesOverlap)(selectionStart, selectionEnd, start, end);
27
+ });
28
+ };
29
+
30
+ var _default = getEntitiesForSelection;
31
+ exports["default"] = _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var getSelectedText = function getSelectedText(editorState) {
9
+ var selectionState = editorState.getSelection();
10
+ var anchorKey = selectionState.getAnchorKey();
11
+ var currentContent = editorState.getCurrentContent();
12
+ var currentContentBlock = currentContent.getBlockForKey(anchorKey);
13
+ var start = selectionState.getStartOffset();
14
+ var end = selectionState.getEndOffset();
15
+ return currentContentBlock.getText().slice(start, end);
16
+ };
17
+
18
+ var _default = getSelectedText;
19
+ exports["default"] = _default;
package/index.js CHANGED
@@ -3,106 +3,191 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.DRAFTJS_BLOCK_KEY = void 0;
6
7
  Object.defineProperty(exports, "addBlock", {
7
8
  enumerable: true,
8
9
  get: function get() {
9
- return _addBlock.default;
10
+ return _addBlock["default"];
10
11
  }
11
12
  });
12
13
  Object.defineProperty(exports, "adjustBlockDepth", {
13
14
  enumerable: true,
14
15
  get: function get() {
15
- return _adjustBlockDepth.default;
16
+ return _adjustBlockDepth["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "getAllEntities", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _getAllEntities["default"];
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "getCurrentBlock", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _getCurrentBlock["default"];
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "getEntitiesForBlock", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _getEntitiesForBlock["default"];
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "getEntitiesForSelection", {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _getEntitiesForSelection["default"];
41
+ }
42
+ });
43
+ Object.defineProperty(exports, "getSelectedText", {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _getSelectedText["default"];
16
47
  }
17
48
  });
18
49
  Object.defineProperty(exports, "insertAtomicBlock", {
19
50
  enumerable: true,
20
51
  get: function get() {
21
- return _insertAtomicBlock.default;
52
+ return _insertAtomicBlock["default"];
53
+ }
54
+ });
55
+ Object.defineProperty(exports, "insertBlockAfter", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _insertBlockAfter["default"];
22
59
  }
23
60
  });
24
61
  Object.defineProperty(exports, "insertEmptyBlock", {
25
62
  enumerable: true,
26
63
  get: function get() {
27
- return _insertEmptyBlock.default;
64
+ return _insertEmptyBlock["default"];
65
+ }
66
+ });
67
+ Object.defineProperty(exports, "insertEntity", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _insertEntity["default"];
28
71
  }
29
72
  });
30
73
  Object.defineProperty(exports, "insertNewBlock", {
31
74
  enumerable: true,
32
75
  get: function get() {
33
- return _insertNewBlock.default;
76
+ return _insertNewBlock["default"];
34
77
  }
35
78
  });
36
79
  Object.defineProperty(exports, "insertText", {
37
80
  enumerable: true,
38
81
  get: function get() {
39
- return _insertText.default;
82
+ return _insertText["default"];
40
83
  }
41
84
  });
42
85
  Object.defineProperty(exports, "mergeBlockData", {
43
86
  enumerable: true,
44
87
  get: function get() {
45
- return _mergeBlockData.default;
88
+ return _mergeBlockData["default"];
46
89
  }
47
90
  });
48
91
  Object.defineProperty(exports, "mergeBlockDataByKey", {
49
92
  enumerable: true,
50
93
  get: function get() {
51
- return _mergeBlockDataByKey.default;
94
+ return _mergeBlockDataByKey["default"];
52
95
  }
53
96
  });
54
97
  Object.defineProperty(exports, "mergeEntityData", {
55
98
  enumerable: true,
56
99
  get: function get() {
57
- return _mergeEntityData.default;
100
+ return _mergeEntityData["default"];
58
101
  }
59
102
  });
60
103
  Object.defineProperty(exports, "modifyBlock", {
61
104
  enumerable: true,
62
105
  get: function get() {
63
- return _modifyBlock.default;
106
+ return _modifyBlock["default"];
64
107
  }
65
108
  });
66
109
  Object.defineProperty(exports, "modifyBlockByKey", {
67
110
  enumerable: true,
68
111
  get: function get() {
69
- return _modifyBlockByKey.default;
112
+ return _modifyBlockByKey["default"];
113
+ }
114
+ });
115
+ Object.defineProperty(exports, "moveCaretAfterBlock", {
116
+ enumerable: true,
117
+ get: function get() {
118
+ return _moveCaretAfterBlock["default"];
119
+ }
120
+ });
121
+ Object.defineProperty(exports, "moveCaretToEnd", {
122
+ enumerable: true,
123
+ get: function get() {
124
+ return _moveCaretToEnd["default"];
125
+ }
126
+ });
127
+ Object.defineProperty(exports, "removeBlock", {
128
+ enumerable: true,
129
+ get: function get() {
130
+ return _removeBlock["default"];
70
131
  }
71
132
  });
72
133
  Object.defineProperty(exports, "removeBlockStyle", {
73
134
  enumerable: true,
74
135
  get: function get() {
75
- return _removeBlockStyle.default;
136
+ return _removeBlockStyle["default"];
137
+ }
138
+ });
139
+ Object.defineProperty(exports, "removeEntity", {
140
+ enumerable: true,
141
+ get: function get() {
142
+ return _removeEntity["default"];
76
143
  }
77
144
  });
78
145
  Object.defineProperty(exports, "removeInlineStyles", {
79
146
  enumerable: true,
80
147
  get: function get() {
81
- return _removeInlineStyles.default;
148
+ return _removeInlineStyles["default"];
82
149
  }
83
150
  });
84
151
  Object.defineProperty(exports, "resetBlock", {
85
152
  enumerable: true,
86
153
  get: function get() {
87
- return _resetBlock.default;
154
+ return _resetBlock["default"];
155
+ }
156
+ });
157
+ Object.defineProperty(exports, "selectAll", {
158
+ enumerable: true,
159
+ get: function get() {
160
+ return _selectAll["default"];
161
+ }
162
+ });
163
+ Object.defineProperty(exports, "selectBlockByKey", {
164
+ enumerable: true,
165
+ get: function get() {
166
+ return _selectBlockByKey["default"];
167
+ }
168
+ });
169
+ Object.defineProperty(exports, "toggleBlockStyle", {
170
+ enumerable: true,
171
+ get: function get() {
172
+ return _toggleBlockStyle["default"];
88
173
  }
89
174
  });
90
175
  Object.defineProperty(exports, "toggleBlockType", {
91
176
  enumerable: true,
92
177
  get: function get() {
93
- return _toggleBlockType.default;
178
+ return _toggleBlockType["default"];
94
179
  }
95
180
  });
96
181
  Object.defineProperty(exports, "toggleEntity", {
97
182
  enumerable: true,
98
183
  get: function get() {
99
- return _toggleEntity.default;
184
+ return _toggleEntity["default"];
100
185
  }
101
186
  });
102
187
  Object.defineProperty(exports, "toggleInlineStyle", {
103
188
  enumerable: true,
104
189
  get: function get() {
105
- return _toggleInlineStyle.default;
190
+ return _toggleInlineStyle["default"];
106
191
  }
107
192
  });
108
193
 
@@ -110,10 +195,24 @@ var _addBlock = _interopRequireDefault(require("./addBlock"));
110
195
 
111
196
  var _adjustBlockDepth = _interopRequireDefault(require("./adjustBlockDepth"));
112
197
 
198
+ var _getAllEntities = _interopRequireDefault(require("./getAllEntities"));
199
+
200
+ var _getCurrentBlock = _interopRequireDefault(require("./utils/getCurrentBlock"));
201
+
202
+ var _getEntitiesForBlock = _interopRequireDefault(require("./getEntitiesForBlock"));
203
+
204
+ var _getEntitiesForSelection = _interopRequireDefault(require("./getEntitiesForSelection"));
205
+
206
+ var _getSelectedText = _interopRequireDefault(require("./getSelectedText"));
207
+
113
208
  var _insertAtomicBlock = _interopRequireDefault(require("./insertAtomicBlock"));
114
209
 
210
+ var _insertBlockAfter = _interopRequireDefault(require("./insertBlockAfter"));
211
+
115
212
  var _insertEmptyBlock = _interopRequireDefault(require("./insertEmptyBlock"));
116
213
 
214
+ var _insertEntity = _interopRequireDefault(require("./insertEntity"));
215
+
117
216
  var _insertNewBlock = _interopRequireDefault(require("./insertNewBlock"));
118
217
 
119
218
  var _insertText = _interopRequireDefault(require("./insertText"));
@@ -128,16 +227,33 @@ var _modifyBlock = _interopRequireDefault(require("./modifyBlock"));
128
227
 
129
228
  var _modifyBlockByKey = _interopRequireDefault(require("./modifyBlockByKey"));
130
229
 
230
+ var _moveCaretAfterBlock = _interopRequireDefault(require("./moveCaretAfterBlock"));
231
+
232
+ var _moveCaretToEnd = _interopRequireDefault(require("./moveCaretToEnd"));
233
+
234
+ var _removeBlock = _interopRequireDefault(require("./removeBlock"));
235
+
131
236
  var _removeBlockStyle = _interopRequireDefault(require("./removeBlockStyle"));
132
237
 
238
+ var _removeEntity = _interopRequireDefault(require("./removeEntity"));
239
+
133
240
  var _removeInlineStyles = _interopRequireDefault(require("./removeInlineStyles"));
134
241
 
135
242
  var _resetBlock = _interopRequireDefault(require("./resetBlock"));
136
243
 
244
+ var _selectAll = _interopRequireDefault(require("./selectAll"));
245
+
246
+ var _selectBlockByKey = _interopRequireDefault(require("./selectBlockByKey"));
247
+
248
+ var _toggleBlockStyle = _interopRequireDefault(require("./toggleBlockStyle"));
249
+
137
250
  var _toggleBlockType = _interopRequireDefault(require("./toggleBlockType"));
138
251
 
139
252
  var _toggleEntity = _interopRequireDefault(require("./toggleEntity"));
140
253
 
141
254
  var _toggleInlineStyle = _interopRequireDefault(require("./toggleInlineStyle"));
142
255
 
143
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
256
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
257
+
258
+ var DRAFTJS_BLOCK_KEY = 'DRAFTJS_BLOCK_KEY';
259
+ exports.DRAFTJS_BLOCK_KEY = DRAFTJS_BLOCK_KEY;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports["default"] = void 0;
7
7
 
8
8
  var _draftJs = require("draft-js");
9
9
 
@@ -14,4 +14,4 @@ var insertAtomicBlock = function insertAtomicBlock(editorState, entityType, muta
14
14
  };
15
15
 
16
16
  var _default = insertAtomicBlock;
17
- exports.default = _default;
17
+ exports["default"] = _default;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _draftJs = require("draft-js");
9
+
10
+ var _immutable = _interopRequireDefault(require("immutable"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19
+
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+
22
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+
32
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
33
+
34
+ var insertBlockAfter = function insertBlockAfter(editorState, keyBefore, blockParams) {
35
+ var newBlock = new _draftJs.ContentBlock(_objectSpread({
36
+ key: (0, _draftJs.genKey)(),
37
+ type: 'unstyled',
38
+ text: ''
39
+ }, blockParams));
40
+ var contentState = editorState.getCurrentContent();
41
+ var oldBlockMap = contentState.getBlockMap();
42
+
43
+ var newBlockMap = _immutable["default"].OrderedMap().withMutations(function (map) {
44
+ var _iterator = _createForOfIteratorHelper(oldBlockMap.entries()),
45
+ _step;
46
+
47
+ try {
48
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
49
+ var _step$value = _slicedToArray(_step.value, 2),
50
+ k = _step$value[0],
51
+ v = _step$value[1];
52
+
53
+ map.set(k, v);
54
+
55
+ if (keyBefore === k) {
56
+ map.set(newBlock.key, newBlock);
57
+ }
58
+ }
59
+ } catch (err) {
60
+ _iterator.e(err);
61
+ } finally {
62
+ _iterator.f();
63
+ }
64
+ });
65
+
66
+ return _draftJs.EditorState.push(editorState, _draftJs.ContentState.createFromBlockArray(Array.from(newBlockMap.values())).set('selectionBefore', contentState.getSelectionBefore()).set('selectionAfter', contentState.getSelectionAfter()));
67
+ };
68
+
69
+ var _default = insertBlockAfter;
70
+ exports["default"] = _default;
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports["default"] = void 0;
7
7
 
8
8
  var _insertNewBlock = _interopRequireDefault(require("./insertNewBlock"));
9
9
 
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
12
  var insertEmptyBlock = function insertEmptyBlock(editorState) {
13
13
  var blockType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'unstyled';
14
- return (0, _insertNewBlock.default)(editorState, blockType);
14
+ return (0, _insertNewBlock["default"])(editorState, blockType);
15
15
  };
16
16
 
17
17
  var _default = insertEmptyBlock;
18
- exports.default = _default;
18
+ exports["default"] = _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _draftJs = require("draft-js");
9
+
10
+ var _ = require(".");
11
+
12
+ var insertEntity = function insertEntity(editorState, text, type, data) {
13
+ var mutability = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'MUTABLE';
14
+ var selectedText = (0, _.getSelectedText)(editorState);
15
+ var contentState = editorState.getCurrentContent();
16
+ var selection = editorState.getSelection();
17
+ var textWithSpace = text.concat(' ');
18
+ var newContent = selectedText ? _draftJs.Modifier.replaceText(contentState, selection, text) : _draftJs.Modifier.insertText(contentState, selection, textWithSpace);
19
+ var newContentWithEntity = newContent.createEntity(type, mutability, data, false);
20
+ var entityKey = newContentWithEntity.getLastCreatedEntityKey();
21
+ var anchorOffset = selection.getAnchorOffset();
22
+ var newSelection = new _draftJs.SelectionState({
23
+ anchorKey: selection.getAnchorKey(),
24
+ anchorOffset: anchorOffset,
25
+ focusKey: selection.getAnchorKey(),
26
+ focusOffset: anchorOffset + text.length
27
+ });
28
+
29
+ var newContentWithLink = _draftJs.Modifier.applyEntity(newContentWithEntity, newSelection, entityKey);
30
+
31
+ var withLinkText = _draftJs.EditorState.push(editorState, newContentWithLink, 'insert-characters');
32
+
33
+ return _draftJs.EditorState.forceSelection(withLinkText, newContent.getSelectionAfter());
34
+ };
35
+
36
+ var _default = insertEntity;
37
+ exports["default"] = _default;