edytor 0.0.7 → 0.0.9
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.
- package/README.md +225 -5
- package/dist/block/block.svelte.d.ts +123 -0
- package/dist/block/block.svelte.js +430 -0
- package/dist/block/block.utils.d.ts +82 -0
- package/dist/block/block.utils.js +499 -0
- package/dist/block/content.svelte.d.ts +14 -0
- package/dist/block/content.svelte.js +40 -0
- package/dist/block/inlineBlock.svelte.d.ts +30 -0
- package/dist/block/inlineBlock.svelte.js +53 -0
- package/dist/components/Block.svelte +27 -0
- package/dist/components/Block.svelte.d.ts +7 -0
- package/dist/components/Content.svelte +44 -0
- package/dist/components/Content.svelte.d.ts +7 -0
- package/dist/components/Edytor.svelte +165 -0
- package/dist/components/Edytor.svelte.d.ts +33 -0
- package/dist/components/InlineBlock.svelte +17 -0
- package/dist/components/InlineBlock.svelte.d.ts +7 -0
- package/dist/components/Mark.svelte +38 -0
- package/dist/components/Mark.svelte.d.ts +11 -0
- package/dist/components/ReadonlyEditor.svelte +46 -0
- package/dist/components/ReadonlyEditor.svelte.d.ts +4 -0
- package/dist/components/Text.svelte +37 -0
- package/dist/components/Text.svelte.d.ts +7 -0
- package/dist/components/readonlyElements.svelte.d.ts +82 -0
- package/dist/components/readonlyElements.svelte.js +144 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +4 -0
- package/dist/dnd.svelte.d.ts +17 -0
- package/dist/dnd.svelte.js +125 -0
- package/dist/edytor.svelte.d.ts +94 -0
- package/dist/edytor.svelte.js +262 -0
- package/dist/edytor.utils.d.ts +3 -0
- package/dist/edytor.utils.js +78 -0
- package/dist/events/onBeforeInput.d.ts +2 -2
- package/dist/events/onBeforeInput.js +338 -0
- package/dist/events/onKeyDown.d.ts +2 -69
- package/dist/events/onKeyDown.js +18 -0
- package/dist/hotkeys.d.ts +27 -0
- package/dist/hotkeys.js +282 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +7 -8
- package/dist/localProvider.d.ts +82 -0
- package/dist/localProvider.js +267 -0
- package/dist/plugins/arrowMove/arrowMove.d.ts +2 -0
- package/dist/plugins/arrowMove/arrowMove.js +66 -0
- package/dist/plugins/code/CodePlugin.svelte +218 -0
- package/dist/plugins/code/CodePlugin.svelte.d.ts +23 -0
- package/dist/plugins/code/prism.css +141 -0
- package/dist/plugins/image/ImagePlugin.svelte +22 -0
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +20 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.js +3 -0
- package/dist/plugins/mention/MentionPlugin.svelte +40 -0
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +20 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +241 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +26 -0
- package/dist/plugins.d.ts +202 -0
- package/dist/plugins.js +19 -0
- package/dist/selection/selection.svelte.d.ts +68 -0
- package/dist/selection/selection.svelte.js +391 -0
- package/dist/selection/selection.utils.d.ts +14 -0
- package/dist/selection/selection.utils.js +153 -0
- package/dist/text/deltas.d.ts +11 -0
- package/dist/text/deltas.js +109 -0
- package/dist/text/text.svelte.d.ts +70 -0
- package/dist/text/text.svelte.js +119 -0
- package/dist/text/text.utils.d.ts +40 -0
- package/dist/text/text.utils.js +174 -0
- package/dist/utils/json.d.ts +32 -0
- package/dist/utils/json.js +2 -0
- package/dist/utils/jsx.d.ts +25 -0
- package/dist/utils/jsx.js +66 -0
- package/dist/utils/serialize.d.ts +1 -0
- package/dist/utils/serialize.js +1 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.js +19 -0
- package/package.json +81 -33
- package/dist/edytor.cjs.development.js +0 -1762
- package/dist/edytor.cjs.development.js.map +0 -1
- package/dist/edytor.cjs.production.min.js +0 -2
- package/dist/edytor.cjs.production.min.js.map +0 -1
- package/dist/edytor.esm.js +0 -1691
- package/dist/edytor.esm.js.map +0 -1
- package/dist/events/index.d.ts +0 -3
- package/dist/events/onDrop.d.ts +0 -3
- package/dist/operations/deleteText.d.ts +0 -7
- package/dist/operations/formatText.d.ts +0 -20
- package/dist/operations/index.d.ts +0 -9
- package/dist/operations/insertText.d.ts +0 -5
- package/dist/operations/merge.d.ts +0 -3
- package/dist/operations/moveNode.d.ts +0 -12
- package/dist/operations/nestNode.d.ts +0 -2
- package/dist/operations/removeEmptyText.d.ts +0 -2
- package/dist/operations/splitLeaf.d.ts +0 -2
- package/dist/operations/splitNode.d.ts +0 -9
- package/dist/types.d.ts +0 -140
- package/dist/utils/common.d.ts +0 -17
- package/dist/utils/dropper.d.ts +0 -26
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/leaves.d.ts +0 -34
- package/dist/utils/nodes.d.ts +0 -14
- package/dist/utils/selection.d.ts +0 -51
- package/dist/utils/yClasses/EdytorDoc.d.ts +0 -16
- package/dist/utils/yClasses/index.d.ts +0 -3
- package/dist/utils/yClasses/yLeaf.d.ts +0 -7
- package/dist/utils/yClasses/yNode.d.ts +0 -12
- package/dist/yjs/index.d.ts +0 -1
- package/dist/yjs/wsProvider.d.ts +0 -1
- package/index.ts +0 -1
|
@@ -1,1762 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
|
-
|
|
7
|
-
var yjs = require('yjs');
|
|
8
|
-
var nanoid$1 = require('nanoid');
|
|
9
|
-
var isHotkey = _interopDefault(require('is-hotkey'));
|
|
10
|
-
var yWebsocket = require('y-websocket');
|
|
11
|
-
|
|
12
|
-
function _extends() {
|
|
13
|
-
_extends = Object.assign || function (target) {
|
|
14
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
15
|
-
var source = arguments[i];
|
|
16
|
-
|
|
17
|
-
for (var key in source) {
|
|
18
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
19
|
-
target[key] = source[key];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return target;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
return _extends.apply(this, arguments);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function _inheritsLoose(subClass, superClass) {
|
|
31
|
-
subClass.prototype = Object.create(superClass.prototype);
|
|
32
|
-
subClass.prototype.constructor = subClass;
|
|
33
|
-
|
|
34
|
-
_setPrototypeOf(subClass, superClass);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function _setPrototypeOf(o, p) {
|
|
38
|
-
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
39
|
-
o.__proto__ = p;
|
|
40
|
-
return o;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
return _setPrototypeOf(o, p);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
47
|
-
if (source == null) return {};
|
|
48
|
-
var target = {};
|
|
49
|
-
var sourceKeys = Object.keys(source);
|
|
50
|
-
var key, i;
|
|
51
|
-
|
|
52
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
53
|
-
key = sourceKeys[i];
|
|
54
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
55
|
-
target[key] = source[key];
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return target;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var _excluded = ["id", "text", "data"];
|
|
62
|
-
var createLeaf = function createLeaf(props) {
|
|
63
|
-
var leaf = new yjs.Map();
|
|
64
|
-
leaf.set("id", (props == null ? void 0 : props.id) || nanoid());
|
|
65
|
-
leaf.set("text", new yjs.Text((props == null ? void 0 : props.text) || ""));
|
|
66
|
-
|
|
67
|
-
if (props) {
|
|
68
|
-
var text = props.text,
|
|
69
|
-
data = props.data,
|
|
70
|
-
marks = _objectWithoutPropertiesLoose(props, _excluded);
|
|
71
|
-
|
|
72
|
-
leaf.set("text", new yjs.Text(text || ""));
|
|
73
|
-
data && leaf.set("data", new yjs.Map(Object.entries(data)));
|
|
74
|
-
marks && Object.keys(marks).forEach(function (mark) {
|
|
75
|
-
leaf.set(mark, marks[mark]);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return leaf;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var createNode = function createNode(type, props) {
|
|
83
|
-
var node = new yjs.Map();
|
|
84
|
-
node.set("id", (props == null ? void 0 : props.id) || nanoid());
|
|
85
|
-
node.set("type", type);
|
|
86
|
-
|
|
87
|
-
if (props != null && props.data) {
|
|
88
|
-
node.set("data", new yjs.Map(Object.entries(props.data)));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
node.set("content", (props == null ? void 0 : props.content) instanceof yjs.Array ? props.content : yjs.Array.from((props == null ? void 0 : props.content) || [createLeaf()]));
|
|
92
|
-
node.set("children", (props == null ? void 0 : props.children) instanceof yjs.Array ? props.children : yjs.Array.from((props == null ? void 0 : props.children) || []));
|
|
93
|
-
return node;
|
|
94
|
-
};
|
|
95
|
-
var YNode = /*#__PURE__*/function (_Map) {
|
|
96
|
-
_inheritsLoose(YNode, _Map);
|
|
97
|
-
|
|
98
|
-
function YNode() {
|
|
99
|
-
return _Map.apply(this, arguments) || this;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return YNode;
|
|
103
|
-
}(yjs.Map);
|
|
104
|
-
|
|
105
|
-
var _excluded$1 = ["type", "content", "children"];
|
|
106
|
-
var getChildren = function getChildren(_ref) {
|
|
107
|
-
var type = _ref.type,
|
|
108
|
-
_ref$content = _ref.content,
|
|
109
|
-
content = _ref$content === void 0 ? [] : _ref$content,
|
|
110
|
-
_ref$children = _ref.children,
|
|
111
|
-
children = _ref$children === void 0 ? [] : _ref$children,
|
|
112
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
113
|
-
|
|
114
|
-
return createNode(type, _extends({}, props, {
|
|
115
|
-
children: children.map(getChildren),
|
|
116
|
-
content: content.map(createLeaf)
|
|
117
|
-
}));
|
|
118
|
-
};
|
|
119
|
-
var EdytorDoc = /*#__PURE__*/function (_Doc) {
|
|
120
|
-
_inheritsLoose(EdytorDoc, _Doc);
|
|
121
|
-
|
|
122
|
-
function EdytorDoc() {
|
|
123
|
-
return _Doc.apply(this, arguments) || this;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return EdytorDoc;
|
|
127
|
-
}(yjs.Doc);
|
|
128
|
-
var DocFromJson = function DocFromJson(value, initialDoc) {
|
|
129
|
-
var array = (initialDoc || new yjs.Doc()).getArray("children");
|
|
130
|
-
array.insert(0, value.map(getChildren));
|
|
131
|
-
return array.doc;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
var deleteText = function deleteText(editor, _ref) {
|
|
135
|
-
var mode = _ref.mode,
|
|
136
|
-
selection = _ref.selection;
|
|
137
|
-
|
|
138
|
-
var _ref2 = selection || editor.selection,
|
|
139
|
-
start = _ref2.start,
|
|
140
|
-
end = _ref2.end,
|
|
141
|
-
type = _ref2.type,
|
|
142
|
-
length = _ref2.length,
|
|
143
|
-
edges = _ref2.edges,
|
|
144
|
-
setPosition = _ref2.setPosition;
|
|
145
|
-
|
|
146
|
-
switch (type) {
|
|
147
|
-
case "collapsed":
|
|
148
|
-
{
|
|
149
|
-
if (mode === "backward" && edges.startNode) {
|
|
150
|
-
if (edges.startDocument) return;
|
|
151
|
-
|
|
152
|
-
if (start.nodeIndex === start.node.parent.length - 1 && start.path.length > 2 && (start.nodeIndex !== 0 || start.node.parent.length === 1)) {
|
|
153
|
-
// unnest node if its the last of its parent and if he is nested or it's the first its the only child of its parent
|
|
154
|
-
var node = copyNode(start.node);
|
|
155
|
-
var nodeGrandParent = start.node.parent.parent;
|
|
156
|
-
var index = getIndex(nodeGrandParent);
|
|
157
|
-
start.node.parent["delete"](start.nodeIndex);
|
|
158
|
-
nodeGrandParent.parent.insert(index + 1, [node]);
|
|
159
|
-
return setPosition(start.leafId, {
|
|
160
|
-
offset: 0
|
|
161
|
-
});
|
|
162
|
-
} else {
|
|
163
|
-
// merge with previous node if we are not nested
|
|
164
|
-
return editor.doc.transact(function () {
|
|
165
|
-
var _mergeContentWithPrev = mergeContentWithPrevLeaf(editor),
|
|
166
|
-
prevLeaf = _mergeContentWithPrev[0],
|
|
167
|
-
offset = _mergeContentWithPrev[1];
|
|
168
|
-
|
|
169
|
-
setTimeout(function () {
|
|
170
|
-
setPosition(prevLeaf.get("id"), {
|
|
171
|
-
offset: offset
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
if (mode === "backward" && edges.startLeaf) {
|
|
179
|
-
// delete content in the previous leaf because we are at its edge start
|
|
180
|
-
var prevLeaf = leafNodeContent(start.leaf).get(start.leafIndex - 1);
|
|
181
|
-
deleteLeafText(prevLeaf, leafLength(prevLeaf) - 1, length || 1);
|
|
182
|
-
return setPosition(prevLeaf.get("id"), {
|
|
183
|
-
offset: leafLength(prevLeaf)
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (mode === "forward" && edges.endNode) {
|
|
188
|
-
// merge node with the next node because we are at edge end of it
|
|
189
|
-
return editor.doc.transact(function () {
|
|
190
|
-
mergeContentWithNextLeaf(editor);
|
|
191
|
-
setTimeout(function () {
|
|
192
|
-
setPosition(start.leafId, {
|
|
193
|
-
offset: start.offset
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
if (mode === "forward" && edges.endLeaf) {
|
|
200
|
-
// delete content in the next leaf because we are at its edge end
|
|
201
|
-
var nextLeaf = leafNodeContent(start.leaf).get(start.leafIndex + 1);
|
|
202
|
-
return deleteLeafText(nextLeaf, 0, length || 1);
|
|
203
|
-
} // just delete text
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
deleteLeafText(start.leaf, start.offset + (mode === "backward" ? -length || -1 : length), length || 1);
|
|
207
|
-
setPosition(start.leaf.get("id"), {
|
|
208
|
-
offset: start.offset + (mode === "backward" ? -length || -1 : length)
|
|
209
|
-
});
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
case "singlenode":
|
|
214
|
-
{
|
|
215
|
-
deleteLeafText(start.leaf, start.offset, length, true);
|
|
216
|
-
|
|
217
|
-
if (isNodeContentEmpty(start.node)) {
|
|
218
|
-
leafNodeContent(start.leaf).insert(0, [createLeaf()]);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
setPosition(start.leafId, {
|
|
222
|
-
offset: start.offset
|
|
223
|
-
});
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
case "multileaves":
|
|
228
|
-
case "multinodes":
|
|
229
|
-
{
|
|
230
|
-
var startPathString = start.path.join(",");
|
|
231
|
-
var endPathString = end.path.join(",");
|
|
232
|
-
editor.doc.transact(function () {
|
|
233
|
-
var _LeavesHarvest = new LeavesHarvest(),
|
|
234
|
-
reap = _LeavesHarvest.reap,
|
|
235
|
-
burn = _LeavesHarvest.burn;
|
|
236
|
-
|
|
237
|
-
traverse(editor, function (leaf, isText) {
|
|
238
|
-
if (isText) {
|
|
239
|
-
var path = getPath(leaf);
|
|
240
|
-
var l = leafLength(leaf);
|
|
241
|
-
|
|
242
|
-
if (path.join(",") === startPathString) {
|
|
243
|
-
deleteLeafText(leaf, start.offset, l);
|
|
244
|
-
reap(leaf, false);
|
|
245
|
-
} else if (path > start.path && path < end.path) {
|
|
246
|
-
deleteLeafText(leaf, 0, l);
|
|
247
|
-
reap(leaf, true);
|
|
248
|
-
} else if (path.join(",") === endPathString) {
|
|
249
|
-
deleteLeafText(leaf, 0, end.offset);
|
|
250
|
-
reap(leaf, end.offset === l);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}, {
|
|
254
|
-
start: start.path[0],
|
|
255
|
-
end: end.path[0] + 1
|
|
256
|
-
});
|
|
257
|
-
return burn(editor);
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
setPosition(start.leaf.get("id"), {
|
|
261
|
-
offset: start.offset
|
|
262
|
-
});
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
var applyMarksFromParent = function applyMarksFromParent(parent, leafs) {
|
|
268
|
-
Array.from(parent.keys(), function (key) {
|
|
269
|
-
if (key !== "text" && key !== "id" && key !== "data") {
|
|
270
|
-
leafs.forEach(function (leaf) {
|
|
271
|
-
leaf.set(key, parent.get(key));
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
};
|
|
276
|
-
var formatAtEqualPath = function formatAtEqualPath(_ref) {
|
|
277
|
-
var format = _ref.format,
|
|
278
|
-
value = _ref.value,
|
|
279
|
-
start = _ref.start,
|
|
280
|
-
end = _ref.end;
|
|
281
|
-
var length = end.offset - start.offset;
|
|
282
|
-
var leaf = start.leaf;
|
|
283
|
-
var text = leafText(leaf);
|
|
284
|
-
var content = text.toString();
|
|
285
|
-
var index = getIndex(leaf);
|
|
286
|
-
var isMarkActive = leaf.has(format);
|
|
287
|
-
|
|
288
|
-
if (isMarkActive && leafLength(leaf) === length) {
|
|
289
|
-
leaf["delete"](format);
|
|
290
|
-
return leaf;
|
|
291
|
-
} else {
|
|
292
|
-
var remainingText = content.substring(end.offset, leafLength(leaf));
|
|
293
|
-
|
|
294
|
-
if (remainingText.length == 0 && leafLength(leaf) === end.offset - start.offset) {
|
|
295
|
-
leaf.set(format, value);
|
|
296
|
-
return leaf;
|
|
297
|
-
} else {
|
|
298
|
-
var _extends2;
|
|
299
|
-
|
|
300
|
-
deleteLeafText(leaf, start.offset, leafLength(leaf));
|
|
301
|
-
var formatedLeaf = createLeaf(_extends({}, leaf.toJSON(), (_extends2 = {
|
|
302
|
-
id: undefined
|
|
303
|
-
}, _extends2[format] = value, _extends2.text = content.substring(start.offset, end.offset), _extends2)));
|
|
304
|
-
var newLeaves = [formatedLeaf];
|
|
305
|
-
|
|
306
|
-
if (remainingText.length > 0) {
|
|
307
|
-
newLeaves.push(createLeaf(_extends({}, leaf.toJSON(), {
|
|
308
|
-
id: undefined,
|
|
309
|
-
text: remainingText
|
|
310
|
-
})));
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
if (isMarkActive) {
|
|
314
|
-
formatedLeaf["delete"](format);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
newLeaves.length && leafNodeContent(leaf).insert(index + 1, newLeaves);
|
|
318
|
-
return formatedLeaf;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
};
|
|
322
|
-
var formatText = function formatText(editor, mark) {
|
|
323
|
-
var _Object$entries = Object.entries(mark),
|
|
324
|
-
_Object$entries$ = _Object$entries[0],
|
|
325
|
-
format = _Object$entries$[0],
|
|
326
|
-
value = _Object$entries$[1];
|
|
327
|
-
|
|
328
|
-
console.log(format);
|
|
329
|
-
var newPath = 0;
|
|
330
|
-
var _editor$selection = editor.selection,
|
|
331
|
-
start = _editor$selection.start,
|
|
332
|
-
end = _editor$selection.end,
|
|
333
|
-
type = _editor$selection.type,
|
|
334
|
-
length = _editor$selection.length,
|
|
335
|
-
setPosition = _editor$selection.setPosition,
|
|
336
|
-
selectedText = _editor$selection.selectedText;
|
|
337
|
-
editor.doc.transact(function () {
|
|
338
|
-
switch (type) {
|
|
339
|
-
case "collapsed":
|
|
340
|
-
{
|
|
341
|
-
var isMarkActive = start.leaf.has(format) && start.leaf.get(format) === value;
|
|
342
|
-
|
|
343
|
-
if (isLeafEmpty(start.leaf)) {
|
|
344
|
-
// if the leaf is empty we only toggle the mark
|
|
345
|
-
isMarkActive ? start.leaf["delete"](format) : start.leaf.set(format, value);
|
|
346
|
-
} else {
|
|
347
|
-
var _createLeaf;
|
|
348
|
-
|
|
349
|
-
// if leaf is not empty we split the current leaf in half to insert an empty fragment with the desired mark
|
|
350
|
-
splitLeaf(editor);
|
|
351
|
-
var fragment = createLeaf((_createLeaf = {
|
|
352
|
-
text: ""
|
|
353
|
-
}, _createLeaf[format] = value, _createLeaf)); // we are applying the current marks on the fragment
|
|
354
|
-
|
|
355
|
-
applyMarksFromParent(start.leaf, [fragment]); // we remove the mark if its here
|
|
356
|
-
|
|
357
|
-
if (isMarkActive) fragment["delete"](format); // we insert the fragment after the spitted leaf
|
|
358
|
-
|
|
359
|
-
leafNodeContent(start.leaf).insert(start.leafIndex + 1, [fragment]); // we remove the spitted leaf if empty
|
|
360
|
-
|
|
361
|
-
if (isLeafEmpty(start.leaf)) {
|
|
362
|
-
leafNodeContent(start.leaf)["delete"](start.leafIndex);
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
setTimeout(function () {
|
|
366
|
-
setPosition(fragment.get("id"), {
|
|
367
|
-
offset: 0
|
|
368
|
-
});
|
|
369
|
-
console.log(leafNodeContent(start.leaf).toJSON());
|
|
370
|
-
});
|
|
371
|
-
} // we merge leaves to avoid two subsequent leaves with the same marks
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
mergeLeafs(leafNodeContent(start.leaf));
|
|
375
|
-
break;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
case "singlenode":
|
|
379
|
-
{
|
|
380
|
-
var formatedLeaf = formatAtEqualPath({
|
|
381
|
-
format: format,
|
|
382
|
-
value: value,
|
|
383
|
-
start: start,
|
|
384
|
-
end: end,
|
|
385
|
-
length: length
|
|
386
|
-
});
|
|
387
|
-
mergeLeafs(leafNodeContent(start.leaf));
|
|
388
|
-
var isRemoved = formatedLeaf._item.deleted;
|
|
389
|
-
|
|
390
|
-
if (!isRemoved) {
|
|
391
|
-
setPosition(start.leaf.get("id"), {
|
|
392
|
-
offset: start.offset
|
|
393
|
-
});
|
|
394
|
-
setTimeout(function () {
|
|
395
|
-
setPosition(formatedLeaf.get("id"), {
|
|
396
|
-
offset: 0,
|
|
397
|
-
end: leafLength(formatedLeaf)
|
|
398
|
-
});
|
|
399
|
-
});
|
|
400
|
-
} else {
|
|
401
|
-
var remainingLeaf = formatedLeaf.parent.get(start.leafIndex - 1);
|
|
402
|
-
var offset = leafText(remainingLeaf).toJSON().indexOf(selectedText);
|
|
403
|
-
setTimeout(function () {
|
|
404
|
-
setPosition(remainingLeaf.get("id"), {
|
|
405
|
-
offset: offset,
|
|
406
|
-
end: offset + selectedText.length
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
break;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
case "multileaves":
|
|
415
|
-
case "multinodes":
|
|
416
|
-
{
|
|
417
|
-
var startPathString = start.path.join(",");
|
|
418
|
-
var endPathString = end.path.join(",");
|
|
419
|
-
var started = false;
|
|
420
|
-
var ended = false;
|
|
421
|
-
traverse(editor, function (leaf, isText) {
|
|
422
|
-
if (isText) {
|
|
423
|
-
var path = getPath(leaf);
|
|
424
|
-
var isStart = path.join(",") === startPathString;
|
|
425
|
-
var isEnd = path.join(",") === getPath(end.leaf).join(",");
|
|
426
|
-
console.log({
|
|
427
|
-
isEnd: isEnd
|
|
428
|
-
}, endPathString, getPath(end.leaf).join(","), path.join(","));
|
|
429
|
-
|
|
430
|
-
if (isStart) {
|
|
431
|
-
started = true;
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
var startOffset = isStart ? start.offset : 0;
|
|
435
|
-
var endOffset = isEnd ? end.offset : leafLength(leaf);
|
|
436
|
-
started && !ended && formatAtEqualPath({
|
|
437
|
-
format: format,
|
|
438
|
-
start: {
|
|
439
|
-
leaf: leaf,
|
|
440
|
-
offset: startOffset
|
|
441
|
-
},
|
|
442
|
-
end: {
|
|
443
|
-
offset: endOffset
|
|
444
|
-
},
|
|
445
|
-
value: value
|
|
446
|
-
});
|
|
447
|
-
console.log({
|
|
448
|
-
ended: ended
|
|
449
|
-
});
|
|
450
|
-
|
|
451
|
-
if (isEnd) {
|
|
452
|
-
ended = true;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
mergeLeafs(leafNodeContent(leaf));
|
|
456
|
-
}
|
|
457
|
-
}, {
|
|
458
|
-
start: start.path[0],
|
|
459
|
-
end: end.path[0] + 1
|
|
460
|
-
});
|
|
461
|
-
break;
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
});
|
|
465
|
-
return newPath;
|
|
466
|
-
};
|
|
467
|
-
|
|
468
|
-
var insertText = function insertText(editor, _ref) {
|
|
469
|
-
var text = _ref.text;
|
|
470
|
-
if (!text || text === null || !text.length) return;
|
|
471
|
-
var _editor$selection = editor.selection,
|
|
472
|
-
start = _editor$selection.start,
|
|
473
|
-
end = _editor$selection.end,
|
|
474
|
-
type = _editor$selection.type,
|
|
475
|
-
length = _editor$selection.length,
|
|
476
|
-
setPosition = _editor$selection.setPosition;
|
|
477
|
-
if (type === "notInDoc") return console.error("Path is not in document space");
|
|
478
|
-
|
|
479
|
-
switch (type) {
|
|
480
|
-
case "collapsed":
|
|
481
|
-
{
|
|
482
|
-
insertTextInLeaf(start.leaf, start.offset, text);
|
|
483
|
-
setPosition(start.leaf.get("id"), {
|
|
484
|
-
offset: start.offset + text.length
|
|
485
|
-
});
|
|
486
|
-
break;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
case "singlenode":
|
|
490
|
-
{
|
|
491
|
-
replaceLeafText(start.leaf, start.offset, length, text);
|
|
492
|
-
setPosition(start.leaf.get("id"), {
|
|
493
|
-
offset: start.offset + text.length
|
|
494
|
-
});
|
|
495
|
-
break;
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
case "multileaves":
|
|
499
|
-
case "multinodes":
|
|
500
|
-
{
|
|
501
|
-
var startPathString = start.path.join(",");
|
|
502
|
-
var endPathString = end.path.join(",");
|
|
503
|
-
editor.doc.transact(function () {
|
|
504
|
-
var _LeavesHarvest = new LeavesHarvest(),
|
|
505
|
-
reap = _LeavesHarvest.reap,
|
|
506
|
-
burn = _LeavesHarvest.burn;
|
|
507
|
-
|
|
508
|
-
traverse(editor, function (leaf, isText) {
|
|
509
|
-
if (isText) {
|
|
510
|
-
var path = getPath(leaf);
|
|
511
|
-
|
|
512
|
-
if (path.join(",") === startPathString) {
|
|
513
|
-
replaceLeafText(leaf, start.offset, leafLength(leaf), text);
|
|
514
|
-
reap(leaf);
|
|
515
|
-
} else if (path > start.path && path < end.path) {
|
|
516
|
-
deleteLeafText(leaf, 0, leafLength(leaf));
|
|
517
|
-
reap(leaf);
|
|
518
|
-
} else if (path.join(",") === endPathString) {
|
|
519
|
-
deleteLeafText(leaf, 0, end.offset);
|
|
520
|
-
reap(leaf);
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}, {
|
|
524
|
-
start: start.path[0],
|
|
525
|
-
end: end.path[0] + 1
|
|
526
|
-
});
|
|
527
|
-
burn(editor);
|
|
528
|
-
});
|
|
529
|
-
setPosition(start.leaf.get("id"), {
|
|
530
|
-
offset: start.offset + text.length
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
};
|
|
535
|
-
|
|
536
|
-
var areLeafsMergeable = function areLeafsMergeable(nodes) {
|
|
537
|
-
var keys = nodes.map(function (node) {
|
|
538
|
-
return Array.from(node.keys());
|
|
539
|
-
}).flat();
|
|
540
|
-
return nodes.every(function (node) {
|
|
541
|
-
return keys.every(function (key) {
|
|
542
|
-
return node.has(key);
|
|
543
|
-
});
|
|
544
|
-
});
|
|
545
|
-
};
|
|
546
|
-
var mergeLeafs = function mergeLeafs(leafs) {
|
|
547
|
-
var currentLeaf = leafs.get(0);
|
|
548
|
-
var leafsToDelete = [];
|
|
549
|
-
leafs.forEach(function (_, i) {
|
|
550
|
-
var leaf = leafs.get(i + 1);
|
|
551
|
-
if (!leaf) return;
|
|
552
|
-
|
|
553
|
-
if (areLeafsMergeable([currentLeaf, leaf])) {
|
|
554
|
-
var firstText = currentLeaf.get("text");
|
|
555
|
-
currentLeaf.get("text").insert(firstText.length, leaf.get("text").toString());
|
|
556
|
-
leafsToDelete.push(leaf);
|
|
557
|
-
} else {
|
|
558
|
-
currentLeaf = leaf;
|
|
559
|
-
}
|
|
560
|
-
});
|
|
561
|
-
leafsToDelete.forEach(function (leaf) {
|
|
562
|
-
leafs["delete"](getIndex(leaf));
|
|
563
|
-
});
|
|
564
|
-
};
|
|
565
|
-
|
|
566
|
-
var removeEmptyText = function removeEmptyText(yText) {
|
|
567
|
-
var _yText$parent, _array;
|
|
568
|
-
|
|
569
|
-
var array = yText == null ? void 0 : (_yText$parent = yText.parent) == null ? void 0 : _yText$parent.parent;
|
|
570
|
-
|
|
571
|
-
var index = function index(array, node) {
|
|
572
|
-
return array == null ? void 0 : array.toArray().indexOf(node);
|
|
573
|
-
};
|
|
574
|
-
|
|
575
|
-
(_array = array) == null ? void 0 : _array["delete"](index(array, yText.parent));
|
|
576
|
-
|
|
577
|
-
while (array && array.length === 0) {
|
|
578
|
-
var pop = array.parent;
|
|
579
|
-
var pop_pop = pop.parent;
|
|
580
|
-
|
|
581
|
-
if (pop_pop) {
|
|
582
|
-
var i = index(pop_pop, pop);
|
|
583
|
-
i !== -1 && pop_pop["delete"](i);
|
|
584
|
-
array = pop_pop;
|
|
585
|
-
} else {
|
|
586
|
-
array = undefined;
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
};
|
|
590
|
-
|
|
591
|
-
var splitLeaf = function splitLeaf(editor) {
|
|
592
|
-
var _editor$selection$sta = editor.selection.start,
|
|
593
|
-
leaf = _editor$selection$sta.leaf,
|
|
594
|
-
leafIndex = _editor$selection$sta.leafIndex,
|
|
595
|
-
offset = _editor$selection$sta.offset;
|
|
596
|
-
var content = leafString(leaf);
|
|
597
|
-
var rightText = content.substring(offset, content.length);
|
|
598
|
-
if (offset === content.length) return;
|
|
599
|
-
deleteLeafText(leaf, offset, rightText.length);
|
|
600
|
-
leafNodeContent(leaf).insert(leafIndex + 1, [createLeaf(_extends({}, leaf.toJSON(), {
|
|
601
|
-
text: rightText,
|
|
602
|
-
id: undefined
|
|
603
|
-
}))]);
|
|
604
|
-
};
|
|
605
|
-
|
|
606
|
-
var splitNode = function splitNode(editor) {
|
|
607
|
-
var _editor$selection = editor.selection,
|
|
608
|
-
start = _editor$selection.start,
|
|
609
|
-
type = _editor$selection.type,
|
|
610
|
-
setPosition = _editor$selection.setPosition,
|
|
611
|
-
edges = _editor$selection.edges;
|
|
612
|
-
var leaf = start.leaf;
|
|
613
|
-
var leafContent = leafNodeContent(start.leaf);
|
|
614
|
-
var node = leafNode(start.leaf);
|
|
615
|
-
var indexOfLeaf = getIndex(start.leaf);
|
|
616
|
-
var indexOfNode = getIndex(node);
|
|
617
|
-
|
|
618
|
-
var split = function split() {
|
|
619
|
-
var nextLeaves = leafContent.toArray().filter(function (_, i) {
|
|
620
|
-
return i > indexOfLeaf;
|
|
621
|
-
});
|
|
622
|
-
var rightText = leafString(start.leaf).substring(start == null ? void 0 : start.offset, leafLength(start.leaf));
|
|
623
|
-
deleteLeafText(start.leaf, start == null ? void 0 : start.offset, rightText.length, false);
|
|
624
|
-
var newParent = hasChildren(node) ? getNodeChildren(node) : node.parent;
|
|
625
|
-
var newLeaf = createLeaf(_extends({}, leaf.toJSON(), {
|
|
626
|
-
id: undefined,
|
|
627
|
-
text: rightText
|
|
628
|
-
}));
|
|
629
|
-
newParent.insert(hasChildren(node) ? 0 : indexOfNode + 1, [createNode(editor.defaultBlock, {
|
|
630
|
-
children: [],
|
|
631
|
-
content: [newLeaf].concat(nextLeaves.map(function (leaf) {
|
|
632
|
-
return createLeaf(leaf.toJSON());
|
|
633
|
-
}))
|
|
634
|
-
})]);
|
|
635
|
-
setPosition(newLeaf.get("id"), {
|
|
636
|
-
offset: 0
|
|
637
|
-
});
|
|
638
|
-
leafContent["delete"](indexOfLeaf + 1, leafNodeContentLength(start.leaf) - indexOfLeaf - 1);
|
|
639
|
-
};
|
|
640
|
-
|
|
641
|
-
var doSplit = (!edges.startNode || !edges.endNode) && type !== "multinodes";
|
|
642
|
-
|
|
643
|
-
if ((edges.endNode || edges.startNode) && type === "collapsed") {
|
|
644
|
-
// if cursor is at edge node with insert a default block before of after the current node
|
|
645
|
-
var newNode = createNode(editor.defaultBlock);
|
|
646
|
-
node.parent.insert(indexOfNode + (edges.endNode ? 1 : 0), [newNode]);
|
|
647
|
-
return setTimeout(function () {
|
|
648
|
-
setPosition(newNode.get("content").get(0).get("id"), {
|
|
649
|
-
offset: 0
|
|
650
|
-
});
|
|
651
|
-
});
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
switch (type) {
|
|
655
|
-
case "collapsed":
|
|
656
|
-
{
|
|
657
|
-
doSplit && split();
|
|
658
|
-
break;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
case "singlenode":
|
|
662
|
-
{
|
|
663
|
-
deleteText(editor, {
|
|
664
|
-
mode: "backward"
|
|
665
|
-
});
|
|
666
|
-
doSplit && split();
|
|
667
|
-
!doSplit && setPosition(start.leaf.get("id"), {
|
|
668
|
-
offset: start.offset
|
|
669
|
-
});
|
|
670
|
-
break;
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
case "multileaves":
|
|
674
|
-
case "multinodes":
|
|
675
|
-
{
|
|
676
|
-
deleteText(editor, {
|
|
677
|
-
mode: "backward"
|
|
678
|
-
});
|
|
679
|
-
doSplit && split();
|
|
680
|
-
!doSplit && setPosition(start.leaf.get("id"), {
|
|
681
|
-
offset: start.offset
|
|
682
|
-
});
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
};
|
|
686
|
-
|
|
687
|
-
var nestNode = function nestNode(editor) {
|
|
688
|
-
var _editor$selection = editor.selection,
|
|
689
|
-
start = _editor$selection.start,
|
|
690
|
-
type = _editor$selection.type,
|
|
691
|
-
end = _editor$selection.end,
|
|
692
|
-
setPosition = _editor$selection.setPosition;
|
|
693
|
-
var startNode = getNode(start.leaf);
|
|
694
|
-
var nodeCopy = copyNode(startNode);
|
|
695
|
-
var startPath = getPath(startNode);
|
|
696
|
-
|
|
697
|
-
var _startPath$slice$reve = startPath.slice().reverse(),
|
|
698
|
-
index = _startPath$slice$reve[0],
|
|
699
|
-
newPath = _startPath$slice$reve.slice(1);
|
|
700
|
-
|
|
701
|
-
var prevNode = getNodeAtPath(editor, [].concat(newPath, [index - 1]));
|
|
702
|
-
var startContainer = getNodeContainer(startNode);
|
|
703
|
-
|
|
704
|
-
switch (type) {
|
|
705
|
-
case "singlenode":
|
|
706
|
-
case "collapsed":
|
|
707
|
-
{
|
|
708
|
-
if (!prevNode) return;
|
|
709
|
-
var id = start.leaf.get("id");
|
|
710
|
-
var prevChildren = prevNode.get("children");
|
|
711
|
-
startContainer["delete"](index);
|
|
712
|
-
prevChildren.insert(prevChildren.length, [nodeCopy]);
|
|
713
|
-
setPosition(id, {
|
|
714
|
-
offset: start.offset
|
|
715
|
-
});
|
|
716
|
-
break;
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
case "multileaves":
|
|
720
|
-
case "multinodes":
|
|
721
|
-
{
|
|
722
|
-
var length = 0;
|
|
723
|
-
var newNodes = [];
|
|
724
|
-
|
|
725
|
-
var _id = start.leaf.get("id");
|
|
726
|
-
|
|
727
|
-
var startPathString = start.path.slice(0, start.path.length - 1).join("");
|
|
728
|
-
var endPathString = end.path.slice(0, start.path.length - 1).join("");
|
|
729
|
-
traverse(editor, function (node, isText) {
|
|
730
|
-
if (!isText) {
|
|
731
|
-
var path = getPath(node).join("");
|
|
732
|
-
|
|
733
|
-
if (path.length === startPath.length) {
|
|
734
|
-
if (path <= endPathString && path >= startPathString) {
|
|
735
|
-
length++;
|
|
736
|
-
newNodes.push(copyNode(node));
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
}, {
|
|
741
|
-
start: start.path[0],
|
|
742
|
-
end: end.path[0] + 1
|
|
743
|
-
});
|
|
744
|
-
if (!prevNode) return;
|
|
745
|
-
|
|
746
|
-
var _prevChildren = prevNode.get("children");
|
|
747
|
-
|
|
748
|
-
startContainer["delete"](index, length);
|
|
749
|
-
|
|
750
|
-
_prevChildren.insert(_prevChildren.length, newNodes);
|
|
751
|
-
|
|
752
|
-
setPosition(_id, {
|
|
753
|
-
offset: start.offset
|
|
754
|
-
});
|
|
755
|
-
break;
|
|
756
|
-
}
|
|
757
|
-
}
|
|
758
|
-
};
|
|
759
|
-
|
|
760
|
-
var moveNode = function moveNode(_ref) {
|
|
761
|
-
var from = _ref.from,
|
|
762
|
-
to = _ref.to;
|
|
763
|
-
var indexes = Array.isArray(from.at) ? from.at : [from.at];
|
|
764
|
-
var firstIndex = indexes[0];
|
|
765
|
-
var firstNode = from.container.get(firstIndex);
|
|
766
|
-
var nodesCopies = indexes.map(function (index) {
|
|
767
|
-
return copyNode(from.container.get(index));
|
|
768
|
-
});
|
|
769
|
-
to.container.insert(to.at, nodesCopies);
|
|
770
|
-
from.container["delete"](getIndex(firstNode), indexes.length);
|
|
771
|
-
return nodesCopies[0].get("content").get(0).get("id");
|
|
772
|
-
};
|
|
773
|
-
|
|
774
|
-
var _excluded$2 = ["type"];
|
|
775
|
-
var mergeContentWithPrevLeaf = function mergeContentWithPrevLeaf(editor) {
|
|
776
|
-
var start = editor.selection.start;
|
|
777
|
-
var prevLeaf;
|
|
778
|
-
var stop = false;
|
|
779
|
-
traverse(editor, function (node, isText) {
|
|
780
|
-
if (isText) {
|
|
781
|
-
if (node === start.leaf) {
|
|
782
|
-
stop = true;
|
|
783
|
-
} else if (!stop) {
|
|
784
|
-
prevLeaf = node;
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
});
|
|
788
|
-
if (!prevLeaf) return;
|
|
789
|
-
var prevLeafLength = leafLength(prevLeaf);
|
|
790
|
-
leafNodeContent(prevLeaf).insert(leafNodeContentLength(prevLeaf), leafNodeContent(start.leaf).toArray().map(function (leaf) {
|
|
791
|
-
return createLeaf(leaf.toJSON());
|
|
792
|
-
}));
|
|
793
|
-
mergeLeafs(leafNodeContent(prevLeaf));
|
|
794
|
-
var children = start.node.get("children").toArray().map(copyNode);
|
|
795
|
-
|
|
796
|
-
if (children.length) {
|
|
797
|
-
start.node.parent.insert(start.nodeIndex, children);
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
start.node.parent["delete"](start.nodeIndex + children.length);
|
|
801
|
-
return [prevLeaf, prevLeafLength]; // (start.leaf.parent.parent as YArray<YNode>).delete(index);
|
|
802
|
-
};
|
|
803
|
-
var mergeContentWithNextLeaf = function mergeContentWithNextLeaf(editor) {
|
|
804
|
-
var start = editor.selection.start; // 1 .get the next leaf
|
|
805
|
-
|
|
806
|
-
var nextLeaf;
|
|
807
|
-
var stop = false;
|
|
808
|
-
traverse(editor, function (node, isText) {
|
|
809
|
-
if (isText) {
|
|
810
|
-
if (node === start.leaf) {
|
|
811
|
-
stop = true;
|
|
812
|
-
} else if (stop) {
|
|
813
|
-
nextLeaf = node;
|
|
814
|
-
stop = false;
|
|
815
|
-
}
|
|
816
|
-
}
|
|
817
|
-
}); // end of document do nothing
|
|
818
|
-
|
|
819
|
-
if (!nextLeaf) return; // 2 .merge the next leaf with the start leaf
|
|
820
|
-
|
|
821
|
-
leafNodeContent(start.leaf).insert(leafNodeContentLength(start.leaf), leafNodeContent(nextLeaf).toArray().map(function (leaf) {
|
|
822
|
-
return createLeaf(leaf.toJSON());
|
|
823
|
-
}));
|
|
824
|
-
mergeLeafs(leafNodeContent(start.leaf)); // 3 get the merged node children if any and place it where the merged node was
|
|
825
|
-
|
|
826
|
-
var node = getNode(nextLeaf);
|
|
827
|
-
var index = getIndex(node);
|
|
828
|
-
var parent = node.parent;
|
|
829
|
-
var children = node.get("children").toArray();
|
|
830
|
-
children.length > 0 && parent.insert(index, children.map(copyNode));
|
|
831
|
-
parent["delete"](index + children.length);
|
|
832
|
-
return nextLeaf;
|
|
833
|
-
};
|
|
834
|
-
var deleteNode = function deleteNode(node, defaultBlock) {
|
|
835
|
-
if (isNodeEmpty(node)) {
|
|
836
|
-
node.parent["delete"](getIndex(node));
|
|
837
|
-
} else if (isNodeContentEmpty(node)) {
|
|
838
|
-
var children = getNodeChildren(node).toJSON();
|
|
839
|
-
var index = getIndex(node);
|
|
840
|
-
node.parent["delete"](index);
|
|
841
|
-
node.parent.insert(index, children.map(function (_ref) {
|
|
842
|
-
var type = _ref.type,
|
|
843
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
844
|
-
|
|
845
|
-
return createNode(type, props);
|
|
846
|
-
}));
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
if (node.parent === (node.doc.getArray("children") && node.doc.getArray("children").length === 0)) {
|
|
850
|
-
node.parent.insert(0, [createNode(defaultBlock, {
|
|
851
|
-
content: [createLeaf()]
|
|
852
|
-
})]);
|
|
853
|
-
}
|
|
854
|
-
};
|
|
855
|
-
var getNodeContainer = function getNodeContainer(node) {
|
|
856
|
-
return node.parent;
|
|
857
|
-
};
|
|
858
|
-
var getNodeChildren = function getNodeChildren(node) {
|
|
859
|
-
return node.get("children");
|
|
860
|
-
};
|
|
861
|
-
var getNodeContent = function getNodeContent(node) {
|
|
862
|
-
return node.get("content");
|
|
863
|
-
};
|
|
864
|
-
var hasChildren = function hasChildren(node) {
|
|
865
|
-
return getNodeChildren(node).length > 0;
|
|
866
|
-
};
|
|
867
|
-
var isNodeEmpty = function isNodeEmpty(node) {
|
|
868
|
-
return isNodeContentEmpty(node) && !hasChildren(node);
|
|
869
|
-
};
|
|
870
|
-
var isNodeContentEmpty = function isNodeContentEmpty(node) {
|
|
871
|
-
return getNodeContent(node).length === 0 || getNodeContent(node).toArray().map(leafString).join("").length === 0;
|
|
872
|
-
};
|
|
873
|
-
var copyNode = function copyNode(node) {
|
|
874
|
-
var jsonNode = node.toJSON();
|
|
875
|
-
return createNode(jsonNode.type, _extends({}, jsonNode, {
|
|
876
|
-
children: jsonNode.children.map(getChildren),
|
|
877
|
-
content: jsonNode.content.map(createLeaf)
|
|
878
|
-
}));
|
|
879
|
-
};
|
|
880
|
-
var nodeString = function nodeString(node) {
|
|
881
|
-
var text = "";
|
|
882
|
-
getNodeContent(node).forEach(function (leaf) {
|
|
883
|
-
text += leafString(leaf);
|
|
884
|
-
});
|
|
885
|
-
getNodeChildren(node).forEach(function (node) {
|
|
886
|
-
text += nodeString(node);
|
|
887
|
-
});
|
|
888
|
-
return text;
|
|
889
|
-
};
|
|
890
|
-
|
|
891
|
-
var nanoid = function nanoid() {
|
|
892
|
-
return "y-" + nanoid$1.customAlphabet("346789ABCDEFGHJKLMNPQRTUV-WXYabcdefghijkmnpqrtwxyz", 20)();
|
|
893
|
-
};
|
|
894
|
-
var getNode = function getNode(node) {
|
|
895
|
-
var _node$parent;
|
|
896
|
-
|
|
897
|
-
return node == null ? void 0 : (_node$parent = node.parent) == null ? void 0 : _node$parent.parent;
|
|
898
|
-
};
|
|
899
|
-
var getIndex = function getIndex(node) {
|
|
900
|
-
var index = 0;
|
|
901
|
-
var stop = false;
|
|
902
|
-
var n = node.parent._start;
|
|
903
|
-
|
|
904
|
-
while (n !== null && !stop) {
|
|
905
|
-
if (n.countable && !n.deleted) {
|
|
906
|
-
var c = n.content.getContent();
|
|
907
|
-
|
|
908
|
-
for (var i = 0; i < c.length; i++) {
|
|
909
|
-
if (c[i] === node) {
|
|
910
|
-
stop = true;
|
|
911
|
-
break;
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
index++;
|
|
915
|
-
}
|
|
916
|
-
}
|
|
917
|
-
|
|
918
|
-
n = n.right;
|
|
919
|
-
}
|
|
920
|
-
|
|
921
|
-
return index;
|
|
922
|
-
};
|
|
923
|
-
var getPath = function getPath(node) {
|
|
924
|
-
var p = [];
|
|
925
|
-
var n = node;
|
|
926
|
-
|
|
927
|
-
while (!!n) {
|
|
928
|
-
p.push(getIndex(n));
|
|
929
|
-
n = getNode(n);
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
return p.reverse();
|
|
933
|
-
};
|
|
934
|
-
var getId = function getId(node) {
|
|
935
|
-
return node.get("id");
|
|
936
|
-
};
|
|
937
|
-
var getLeafAtPath = function getLeafAtPath(editor, _ref) {
|
|
938
|
-
var start = _ref[0],
|
|
939
|
-
path = _ref.slice(1);
|
|
940
|
-
|
|
941
|
-
var node = editor.children.get(start);
|
|
942
|
-
var i = 0;
|
|
943
|
-
|
|
944
|
-
while (i < path.length - 1) {
|
|
945
|
-
var index = path[i];
|
|
946
|
-
i++;
|
|
947
|
-
node = node.get("children").get(index);
|
|
948
|
-
}
|
|
949
|
-
|
|
950
|
-
return node && node.get("content").get(path.slice().reverse()[0]);
|
|
951
|
-
};
|
|
952
|
-
var getNodeAtPath = function getNodeAtPath(editor, _ref2) {
|
|
953
|
-
var start = _ref2[0],
|
|
954
|
-
path = _ref2.slice(1);
|
|
955
|
-
|
|
956
|
-
var node = editor.children.get(start);
|
|
957
|
-
|
|
958
|
-
for (var i = 0; i < path.length; i++) {
|
|
959
|
-
var index = path[i];
|
|
960
|
-
|
|
961
|
-
if (node.get) {
|
|
962
|
-
node = node.get("children").get(index);
|
|
963
|
-
} else {
|
|
964
|
-
node = undefined;
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
|
|
968
|
-
return node;
|
|
969
|
-
};
|
|
970
|
-
var getContainerAtPath = function getContainerAtPath(editor, path) {
|
|
971
|
-
if (path.length === 1) {
|
|
972
|
-
return editor.children;
|
|
973
|
-
} else {
|
|
974
|
-
return getNodeAtPath(editor, path.slice(1, path.length)).get("children");
|
|
975
|
-
}
|
|
976
|
-
};
|
|
977
|
-
var traverse = function traverse(editor, cb, opts) {
|
|
978
|
-
var t = function t(node, path) {
|
|
979
|
-
if (node.has("text")) {
|
|
980
|
-
cb(node, true, path);
|
|
981
|
-
} else {
|
|
982
|
-
var _array = getNodeContent(node).toArray() //@ts-ignore
|
|
983
|
-
.concat(getNodeChildren(node).toArray());
|
|
984
|
-
|
|
985
|
-
cb(node, false, path);
|
|
986
|
-
|
|
987
|
-
for (var i = 0; i < _array.length; i++) {
|
|
988
|
-
t(_array[i], [].concat(path.slice(0, path.length - 1), [0, i]));
|
|
989
|
-
}
|
|
990
|
-
}
|
|
991
|
-
};
|
|
992
|
-
|
|
993
|
-
var array = editor.children.toArray().slice((opts == null ? void 0 : opts.start) || 0, (opts == null ? void 0 : opts.end) || editor.children.length);
|
|
994
|
-
|
|
995
|
-
for (var i = 0; i < array.length; i++) {
|
|
996
|
-
t(array[i], [i + ((opts == null ? void 0 : opts.start) || 0)]);
|
|
997
|
-
}
|
|
998
|
-
};
|
|
999
|
-
var toString = function toString(editor) {
|
|
1000
|
-
var t = "";
|
|
1001
|
-
var array = editor.children.toArray();
|
|
1002
|
-
|
|
1003
|
-
for (var i = 0; i < array.length; i++) {
|
|
1004
|
-
t += nodeString(array[i]);
|
|
1005
|
-
}
|
|
1006
|
-
|
|
1007
|
-
return t;
|
|
1008
|
-
};
|
|
1009
|
-
|
|
1010
|
-
var LeavesHarvest = function LeavesHarvest() {
|
|
1011
|
-
var _this = this;
|
|
1012
|
-
|
|
1013
|
-
this.reap = function (leaf, shouldDeleteNode) {
|
|
1014
|
-
if (shouldDeleteNode === void 0) {
|
|
1015
|
-
shouldDeleteNode = false;
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
if (!isLeafEmpty(leaf)) return;
|
|
1019
|
-
var id = leafNodeId(leaf);
|
|
1020
|
-
|
|
1021
|
-
if (!_this.leaves[id]) {
|
|
1022
|
-
_this.leaves[id] = {
|
|
1023
|
-
shouldDeleteNode: shouldDeleteNode,
|
|
1024
|
-
content: leafNodeContent(leaf),
|
|
1025
|
-
node: leafNode(leaf),
|
|
1026
|
-
indexes: []
|
|
1027
|
-
};
|
|
1028
|
-
}
|
|
1029
|
-
|
|
1030
|
-
_this.leaves[id].indexes.push(getIndex(leaf));
|
|
1031
|
-
};
|
|
1032
|
-
|
|
1033
|
-
this.burn = function (editor) {
|
|
1034
|
-
Object.values(_this.leaves).forEach(function (_ref, i) {
|
|
1035
|
-
var shouldDeleteNode = _ref.shouldDeleteNode,
|
|
1036
|
-
content = _ref.content,
|
|
1037
|
-
node = _ref.node,
|
|
1038
|
-
indexes = _ref.indexes;
|
|
1039
|
-
content["delete"](indexes[0], indexes.length);
|
|
1040
|
-
|
|
1041
|
-
if (content.length === 0 && !shouldDeleteNode) {
|
|
1042
|
-
content.insert(0, [createLeaf()]);
|
|
1043
|
-
} else if (shouldDeleteNode) return deleteNode(node, editor == null ? void 0 : editor.defaultBlock);
|
|
1044
|
-
});
|
|
1045
|
-
};
|
|
1046
|
-
|
|
1047
|
-
this.leaves = {};
|
|
1048
|
-
};
|
|
1049
|
-
var leafData = function leafData(leaf) {
|
|
1050
|
-
return leaf.get("data");
|
|
1051
|
-
};
|
|
1052
|
-
var leafText = function leafText(leaf) {
|
|
1053
|
-
return leaf.get("text");
|
|
1054
|
-
};
|
|
1055
|
-
var leafLength = function leafLength(leaf) {
|
|
1056
|
-
return leafText(leaf).length;
|
|
1057
|
-
};
|
|
1058
|
-
var leafString = function leafString(leaf) {
|
|
1059
|
-
return leafText(leaf).toString();
|
|
1060
|
-
};
|
|
1061
|
-
var isLeafEmpty = function isLeafEmpty(leaf) {
|
|
1062
|
-
return leafText(leaf) === undefined || leafLength(leaf) === 0;
|
|
1063
|
-
};
|
|
1064
|
-
var deleteLeafText = function deleteLeafText(leaf, index, length, shouldRemoveIfEmpty) {
|
|
1065
|
-
leafText(leaf)["delete"](index, length);
|
|
1066
|
-
shouldRemoveIfEmpty && removeIfEmpty(leaf);
|
|
1067
|
-
};
|
|
1068
|
-
var insertTextInLeaf = function insertTextInLeaf(leaf, index, text) {
|
|
1069
|
-
leafText(leaf).insert(index, text);
|
|
1070
|
-
};
|
|
1071
|
-
var replaceLeafText = function replaceLeafText(leaf, start, length, text) {
|
|
1072
|
-
var currentText = leafString(leaf).split("");
|
|
1073
|
-
currentText.splice.apply(currentText, [start, length].concat(text.split("")));
|
|
1074
|
-
return setLeafText(leaf, currentText.join(""));
|
|
1075
|
-
};
|
|
1076
|
-
var setLeafText = function setLeafText(leaf, text) {
|
|
1077
|
-
var t = leafText(leaf);
|
|
1078
|
-
t["delete"](0, t.length);
|
|
1079
|
-
t.insert(0, text);
|
|
1080
|
-
};
|
|
1081
|
-
var setLeafData = function setLeafData(leaf, data) {
|
|
1082
|
-
if (leaf.has("data")) {
|
|
1083
|
-
Object.keys(data).forEach(function (key) {
|
|
1084
|
-
leafData(leaf).set(key, data[key]);
|
|
1085
|
-
});
|
|
1086
|
-
} else {
|
|
1087
|
-
leaf.set("data", new Map(Object.entries(data)));
|
|
1088
|
-
}
|
|
1089
|
-
};
|
|
1090
|
-
var removeIfEmpty = function removeIfEmpty(leaf) {
|
|
1091
|
-
if (isLeafEmpty(leaf)) {
|
|
1092
|
-
console.log("isEmpty", leafNodeContent(leaf).toJSON());
|
|
1093
|
-
leafNodeContent(leaf)["delete"](getIndex(leaf)); // if (leafNodeContentLength(leaf) === 0) {
|
|
1094
|
-
// deleteNode(leafNode(leaf));
|
|
1095
|
-
// }
|
|
1096
|
-
}
|
|
1097
|
-
};
|
|
1098
|
-
var leafNode = function leafNode(leaf) {
|
|
1099
|
-
return leaf.parent.parent;
|
|
1100
|
-
};
|
|
1101
|
-
var leafNodeId = function leafNodeId(leaf) {
|
|
1102
|
-
return leafNode(leaf).get("id");
|
|
1103
|
-
};
|
|
1104
|
-
var leafNodeContent = function leafNodeContent(leaf) {
|
|
1105
|
-
return leaf.parent;
|
|
1106
|
-
};
|
|
1107
|
-
var leafNodeContentLength = function leafNodeContentLength(leaf) {
|
|
1108
|
-
return leafNodeContent(leaf).length;
|
|
1109
|
-
};
|
|
1110
|
-
var leafNodeContentStringLength = function leafNodeContentStringLength(leaf) {
|
|
1111
|
-
return leafNodeContent(leaf).toArray().reduce(function (acc, leaf) {
|
|
1112
|
-
return acc + leafLength(leaf);
|
|
1113
|
-
}, 0);
|
|
1114
|
-
};
|
|
1115
|
-
var leafNodeChildren = function leafNodeChildren(leaf) {
|
|
1116
|
-
return leafNode(leaf).get("children");
|
|
1117
|
-
};
|
|
1118
|
-
var leafNodeChildrenLength = function leafNodeChildrenLength(leaf) {
|
|
1119
|
-
return leafNodeChildren(leaf).length;
|
|
1120
|
-
};
|
|
1121
|
-
|
|
1122
|
-
var Dropper = function Dropper() {
|
|
1123
|
-
var _this = this;
|
|
1124
|
-
|
|
1125
|
-
this.init = function (editor, container) {
|
|
1126
|
-
_this.editor = editor;
|
|
1127
|
-
_this.doc = editor.doc;
|
|
1128
|
-
_this.container = container;
|
|
1129
|
-
_this.editorId = editor.editorId;
|
|
1130
|
-
_this.selection = editor.selection;
|
|
1131
|
-
_this.ID_TO_NODE = editor.ID_TO_NODE;
|
|
1132
|
-
_this.allowNesting = editor.allowNesting;
|
|
1133
|
-
};
|
|
1134
|
-
|
|
1135
|
-
this.startDrag = function (node, e) {
|
|
1136
|
-
var _e$dataTransfer;
|
|
1137
|
-
|
|
1138
|
-
if (!_this.editor.dnd.active) return;
|
|
1139
|
-
_this.node = node;
|
|
1140
|
-
var dndIndicator = document.getElementById("dndIndicator");
|
|
1141
|
-
dndIndicator.style.opacity = "1";
|
|
1142
|
-
var element = document.getElementById(node.get("id"));
|
|
1143
|
-
element.style.opacity = "0.4";
|
|
1144
|
-
document.body.style.cursor = "grabbing";
|
|
1145
|
-
_this.from = {
|
|
1146
|
-
container: node.parent,
|
|
1147
|
-
at: getIndex(node)
|
|
1148
|
-
};
|
|
1149
|
-
_this.startPath = getPath(node);
|
|
1150
|
-
(_e$dataTransfer = e.dataTransfer) == null ? void 0 : _e$dataTransfer.setDragImage(element, e.offsetX, e.offsetY);
|
|
1151
|
-
document.addEventListener("mousemove", _this.onDrag);
|
|
1152
|
-
document.addEventListener("mouseup", _this.dragEnd);
|
|
1153
|
-
};
|
|
1154
|
-
|
|
1155
|
-
this.dragEnd = function () {
|
|
1156
|
-
var element = document.getElementById(_this.node.get("id"));
|
|
1157
|
-
if (element) element.style.opacity = "1";
|
|
1158
|
-
document.body.style.cursor = "auto";
|
|
1159
|
-
document.removeEventListener("mousemove", _this.onDrag);
|
|
1160
|
-
document.removeEventListener("mouseup", _this.dragEnd);
|
|
1161
|
-
var id = moveNode({
|
|
1162
|
-
from: _this.from,
|
|
1163
|
-
to: _this.to
|
|
1164
|
-
});
|
|
1165
|
-
var dndIndicator = document.getElementById("dndIndicator");
|
|
1166
|
-
dndIndicator.style.opacity = "0";
|
|
1167
|
-
setTimeout(function () {
|
|
1168
|
-
_this.selection.setPosition(id, {
|
|
1169
|
-
offset: 0
|
|
1170
|
-
});
|
|
1171
|
-
});
|
|
1172
|
-
};
|
|
1173
|
-
|
|
1174
|
-
this.getHoveredNode = function (target) {
|
|
1175
|
-
var hoveredNode;
|
|
1176
|
-
var element = target;
|
|
1177
|
-
var i = 0;
|
|
1178
|
-
|
|
1179
|
-
while (!hoveredNode && ((_element = element) == null ? void 0 : _element.id) !== _this.editorId && element && i < 100) {
|
|
1180
|
-
var _element;
|
|
1181
|
-
|
|
1182
|
-
if (element.hasAttribute("data-edytor-block")) {
|
|
1183
|
-
hoveredNode = _this.ID_TO_NODE.get(element.id);
|
|
1184
|
-
break;
|
|
1185
|
-
}
|
|
1186
|
-
|
|
1187
|
-
element = element.parentElement;
|
|
1188
|
-
i++;
|
|
1189
|
-
}
|
|
1190
|
-
|
|
1191
|
-
if (!hoveredNode) return {};
|
|
1192
|
-
return {
|
|
1193
|
-
hoveredElement: element,
|
|
1194
|
-
hoveredNode: hoveredNode
|
|
1195
|
-
};
|
|
1196
|
-
};
|
|
1197
|
-
|
|
1198
|
-
this.onDrag = function (e) {
|
|
1199
|
-
if (!_this.editor.dnd.active) return;
|
|
1200
|
-
|
|
1201
|
-
var _this$getHoveredNode = _this.getHoveredNode(e.target),
|
|
1202
|
-
hoveredElement = _this$getHoveredNode.hoveredElement,
|
|
1203
|
-
hoveredNode = _this$getHoveredNode.hoveredNode;
|
|
1204
|
-
|
|
1205
|
-
var dndIndicator = document.getElementById("dndIndicator");
|
|
1206
|
-
if (!hoveredNode || !hoveredElement || !dndIndicator || hoveredNode === _this.node) return;
|
|
1207
|
-
var rectHovered = hoveredElement.getBoundingClientRect();
|
|
1208
|
-
var isOnTop = e.y < rectHovered.top + rectHovered.height / 2;
|
|
1209
|
-
var rect = rectHovered;
|
|
1210
|
-
var isNested = _this.allowNesting && !isOnTop && e.x > rect.left + rect.width / 5;
|
|
1211
|
-
var top = isOnTop ? rect.top : rect.top + rect.height;
|
|
1212
|
-
var deltaX = isNested ? 30 : 0;
|
|
1213
|
-
var path = getPath(hoveredNode);
|
|
1214
|
-
|
|
1215
|
-
var _path$slice$reverse = path.slice().reverse(),
|
|
1216
|
-
index = _path$slice$reverse[0],
|
|
1217
|
-
startOfPath = _path$slice$reverse.slice(1);
|
|
1218
|
-
|
|
1219
|
-
if (_this.startPath.join("") === startOfPath.join("")) {
|
|
1220
|
-
return; // this.to= undefined
|
|
1221
|
-
}
|
|
1222
|
-
|
|
1223
|
-
dndIndicator.style.width = rect.width - deltaX + "px";
|
|
1224
|
-
dndIndicator.style.top = top + window.pageYOffset + "px";
|
|
1225
|
-
dndIndicator.style.left = rect.left + deltaX + "px";
|
|
1226
|
-
index = index + (isOnTop ? 0 : 1);
|
|
1227
|
-
if (index === -1) index = 0;
|
|
1228
|
-
_this.to = {
|
|
1229
|
-
container: isNested ? hoveredNode.get("children") : path.length === 1 ? _this.editor.children : hoveredNode.parent,
|
|
1230
|
-
at: isNested ? 0 : index
|
|
1231
|
-
};
|
|
1232
|
-
};
|
|
1233
|
-
};
|
|
1234
|
-
|
|
1235
|
-
var EdytorSelection = function EdytorSelection() {
|
|
1236
|
-
var _this = this;
|
|
1237
|
-
|
|
1238
|
-
this.init = function (editor, container) {
|
|
1239
|
-
_this.container = container;
|
|
1240
|
-
_this.editor = editor;
|
|
1241
|
-
document.addEventListener("selectionchange", _this.onSelection);
|
|
1242
|
-
|
|
1243
|
-
_this.container.addEventListener("focus", _this.onFocus);
|
|
1244
|
-
|
|
1245
|
-
_this.container.addEventListener("blur", _this.onBlur);
|
|
1246
|
-
};
|
|
1247
|
-
|
|
1248
|
-
this.onFocus = function () {
|
|
1249
|
-
_this.focused = true;
|
|
1250
|
-
|
|
1251
|
-
_this.onChange();
|
|
1252
|
-
};
|
|
1253
|
-
|
|
1254
|
-
this.onBlur = function () {
|
|
1255
|
-
_this.focused = false;
|
|
1256
|
-
|
|
1257
|
-
_this.onChange();
|
|
1258
|
-
};
|
|
1259
|
-
|
|
1260
|
-
this.destroy = function () {
|
|
1261
|
-
document.removeEventListener("selectionchange", _this.onSelection);
|
|
1262
|
-
};
|
|
1263
|
-
|
|
1264
|
-
this.onSelection = function (e) {
|
|
1265
|
-
var _e$target;
|
|
1266
|
-
|
|
1267
|
-
if (((_e$target = e.target) == null ? void 0 : _e$target.activeElement) === _this.container) _this.getRange();
|
|
1268
|
-
};
|
|
1269
|
-
|
|
1270
|
-
this.observe = function (observer) {
|
|
1271
|
-
_this.observers = _this.observers ? _this.observers.concat(observer) : [observer];
|
|
1272
|
-
};
|
|
1273
|
-
|
|
1274
|
-
this.unobserve = function (observer) {
|
|
1275
|
-
_this.observers = _this.observers ? _this.observers.filter(function (o) {
|
|
1276
|
-
return o !== observer;
|
|
1277
|
-
}) : [];
|
|
1278
|
-
};
|
|
1279
|
-
|
|
1280
|
-
this.getLeaf = function (anchorNode, current) {
|
|
1281
|
-
if (_this[current] && _this[current].node === anchorNode) {
|
|
1282
|
-
// serve cached result to avoid loops to getPath and node
|
|
1283
|
-
return _this[current].value;
|
|
1284
|
-
}
|
|
1285
|
-
|
|
1286
|
-
var leaf;
|
|
1287
|
-
var node = anchorNode;
|
|
1288
|
-
|
|
1289
|
-
while (!leaf && node !== _this.container && node) {
|
|
1290
|
-
leaf = _this.editor.ID_TO_NODE.get(node.id);
|
|
1291
|
-
|
|
1292
|
-
if (!leaf) {
|
|
1293
|
-
node = node.parentElement;
|
|
1294
|
-
}
|
|
1295
|
-
}
|
|
1296
|
-
|
|
1297
|
-
if (!leaf) return [undefined, undefined, undefined, undefined];
|
|
1298
|
-
var value = [leaf, leafNode(leaf), getPath(leaf), node];
|
|
1299
|
-
_this[current] = {
|
|
1300
|
-
value: value,
|
|
1301
|
-
node: anchorNode
|
|
1302
|
-
};
|
|
1303
|
-
return value;
|
|
1304
|
-
};
|
|
1305
|
-
|
|
1306
|
-
this.getNodeBoundingRect = function (node) {
|
|
1307
|
-
var nodeHtml = _this.container.querySelector("#" + node.get("id"));
|
|
1308
|
-
|
|
1309
|
-
return {
|
|
1310
|
-
nodeHtml: nodeHtml
|
|
1311
|
-
};
|
|
1312
|
-
};
|
|
1313
|
-
|
|
1314
|
-
this.getRange = function () {
|
|
1315
|
-
var selection = window.getSelection();
|
|
1316
|
-
var anchorNode = selection.anchorNode,
|
|
1317
|
-
focusNode = selection.focusNode,
|
|
1318
|
-
anchorOffset = selection.anchorOffset,
|
|
1319
|
-
focusOffset = selection.focusOffset,
|
|
1320
|
-
isCollapsed = selection.isCollapsed,
|
|
1321
|
-
rangeCount = selection.rangeCount;
|
|
1322
|
-
if (focusNode === null) return;
|
|
1323
|
-
|
|
1324
|
-
var _this$getLeaf = _this.getLeaf(anchorNode, "anchorNode"),
|
|
1325
|
-
leaf1 = _this$getLeaf[0],
|
|
1326
|
-
node1 = _this$getLeaf[1],
|
|
1327
|
-
path1 = _this$getLeaf[2],
|
|
1328
|
-
leafHtml1 = _this$getLeaf[3];
|
|
1329
|
-
|
|
1330
|
-
var _this$getLeaf2 = _this.getLeaf(focusNode, "focusNode"),
|
|
1331
|
-
leaf2 = _this$getLeaf2[0],
|
|
1332
|
-
node2 = _this$getLeaf2[1],
|
|
1333
|
-
path2 = _this$getLeaf2[2],
|
|
1334
|
-
leafHtml2 = _this$getLeaf2[3];
|
|
1335
|
-
|
|
1336
|
-
if (!leaf1) return;
|
|
1337
|
-
var equalPaths = path1.join("") === path2.join("");
|
|
1338
|
-
var isFollowing = equalPaths ? anchorOffset < focusOffset : path1.join() < path2.join();
|
|
1339
|
-
var range = rangeCount >= 1 ? selection == null ? void 0 : selection.getRangeAt(0) : undefined;
|
|
1340
|
-
_this.start = _extends({}, _this.getNodeBoundingRect(isFollowing ? node1 : node2), {
|
|
1341
|
-
node: isFollowing ? node1 : node2,
|
|
1342
|
-
leafId: (isFollowing ? leaf1 : leaf2).get("id"),
|
|
1343
|
-
leafIndex: isFollowing ? path1[path1.length - 1] : path2[path2.length - 1],
|
|
1344
|
-
nodeIndex: isFollowing ? path1[path1.length - 2] : path2[path2.length - 2],
|
|
1345
|
-
path: isFollowing ? path1 : path2,
|
|
1346
|
-
leafHtml: isFollowing ? leafHtml1 : leafHtml2,
|
|
1347
|
-
offset: isFollowing ? anchorOffset : focusOffset,
|
|
1348
|
-
leaf: isFollowing ? leaf1 : leaf2
|
|
1349
|
-
});
|
|
1350
|
-
_this.end = isCollapsed || node2 === null ? _this.start : _extends({}, _this.getNodeBoundingRect(!isFollowing ? node1 : node2), {
|
|
1351
|
-
node: !isFollowing ? node1 : node2,
|
|
1352
|
-
leafId: (!isFollowing ? leaf1 : leaf2).get("id"),
|
|
1353
|
-
leafIndex: !isFollowing ? path1[path1.length - 1] : path2[path2.length - 1],
|
|
1354
|
-
nodeIndex: !isFollowing ? path1[path1.length - 2] : path2[path2.length - 2],
|
|
1355
|
-
path: !isFollowing ? path1 : path2,
|
|
1356
|
-
leafHtml: !isFollowing ? leafHtml1 : leafHtml2,
|
|
1357
|
-
offset: !isFollowing ? anchorOffset : focusOffset,
|
|
1358
|
-
leaf: !isFollowing ? leaf1 : leaf2
|
|
1359
|
-
});
|
|
1360
|
-
_this.selectedText = range ? range.toString() : "";
|
|
1361
|
-
_this.arePathsEquals = equalPaths;
|
|
1362
|
-
_this.length = _this.selectedText.length;
|
|
1363
|
-
_this.range = range;
|
|
1364
|
-
_this.selection = selection;
|
|
1365
|
-
var startNode = _this.start.offset === 0 && getIndex(_this.start.leaf) === 0;
|
|
1366
|
-
var endNode = _this.end.offset === leafLength(_this.end.leaf) && getIndex(_this.start.leaf) === leafNodeContentLength(_this.end.leaf) - 1;
|
|
1367
|
-
_this.edges = {
|
|
1368
|
-
startLeaf: _this.start.offset === 0,
|
|
1369
|
-
endLeaf: _this.end.offset === leafLength(_this.end.leaf),
|
|
1370
|
-
startNode: startNode,
|
|
1371
|
-
endNode: endNode,
|
|
1372
|
-
startDocument: startNode && _this.start.path.join("") === "00",
|
|
1373
|
-
endDocument: false
|
|
1374
|
-
};
|
|
1375
|
-
_this.type = isCollapsed ? "collapsed" : equalPaths ? "singlenode" : _this.start.node === _this.end.node ? "multileaves" : "multinodes";
|
|
1376
|
-
|
|
1377
|
-
_this.onChange();
|
|
1378
|
-
};
|
|
1379
|
-
|
|
1380
|
-
this.onChange = function () {
|
|
1381
|
-
_this.observers.forEach(function (o) {
|
|
1382
|
-
return o(_this);
|
|
1383
|
-
}); // console.log(this.editor.awareness);
|
|
1384
|
-
// if (this.collaborationPosition?.node !== this.start.node.get("id")) {
|
|
1385
|
-
// this.collaborationPosition = {
|
|
1386
|
-
// node: this.start.node.get("id"),
|
|
1387
|
-
// leaf: this.start.leaf.get("id"),
|
|
1388
|
-
// offset: this.start.offset
|
|
1389
|
-
// };
|
|
1390
|
-
// this.editor.awareness.setLocalStateField("position", this.collaborationPosition);
|
|
1391
|
-
// }
|
|
1392
|
-
|
|
1393
|
-
};
|
|
1394
|
-
|
|
1395
|
-
this.setPosition = function (id, _ref) {
|
|
1396
|
-
var _this$start, _this$selection, _this$selection2, _this$start2;
|
|
1397
|
-
|
|
1398
|
-
var offset = _ref.offset,
|
|
1399
|
-
delta = _ref.delta,
|
|
1400
|
-
end = _ref.end;
|
|
1401
|
-
|
|
1402
|
-
var node = _this.container.querySelector("#" + id);
|
|
1403
|
-
|
|
1404
|
-
console.log({
|
|
1405
|
-
node: node
|
|
1406
|
-
});
|
|
1407
|
-
|
|
1408
|
-
while (node && node.nodeType !== 3 && (_node = node) != null && _node.firstChild) {
|
|
1409
|
-
var _node;
|
|
1410
|
-
|
|
1411
|
-
node = node.firstChild;
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
var pos = offset || ((_this$start = _this.start) == null ? void 0 : _this$start.offset) + delta;
|
|
1415
|
-
var hasRange = _this.range || _this.selection;
|
|
1416
|
-
|
|
1417
|
-
if (!hasRange) {
|
|
1418
|
-
_this.range = document.createRange();
|
|
1419
|
-
_this.selection = window.getSelection();
|
|
1420
|
-
}
|
|
1421
|
-
|
|
1422
|
-
_this.range.setStart(node, pos);
|
|
1423
|
-
|
|
1424
|
-
if (end) {
|
|
1425
|
-
_this.range.setEnd(node, end);
|
|
1426
|
-
} else {
|
|
1427
|
-
_this.range.collapse(true);
|
|
1428
|
-
}
|
|
1429
|
-
|
|
1430
|
-
(_this$selection = _this.selection) == null ? void 0 : _this$selection.removeAllRanges();
|
|
1431
|
-
(_this$selection2 = _this.selection) == null ? void 0 : _this$selection2.addRange(_this.range);
|
|
1432
|
-
_this.start = _extends({}, _this.start, {
|
|
1433
|
-
leafHtml: _this.container.querySelector("#" + id),
|
|
1434
|
-
offset: offset || ((_this$start2 = _this.start) == null ? void 0 : _this$start2.offset) + delta
|
|
1435
|
-
});
|
|
1436
|
-
};
|
|
1437
|
-
|
|
1438
|
-
this.observers = [];
|
|
1439
|
-
};
|
|
1440
|
-
|
|
1441
|
-
var prevent = function prevent(e) {
|
|
1442
|
-
e.preventDefault();
|
|
1443
|
-
e.stopPropagation();
|
|
1444
|
-
};
|
|
1445
|
-
|
|
1446
|
-
var getDataTransfer = function getDataTransfer(e) {
|
|
1447
|
-
return e.dataTransfer.getData("text/plain");
|
|
1448
|
-
};
|
|
1449
|
-
|
|
1450
|
-
var onBeforeInput = function onBeforeInput(_ref, e) {
|
|
1451
|
-
var _e$target;
|
|
1452
|
-
|
|
1453
|
-
var onChange = _ref[1],
|
|
1454
|
-
editor = _ref[2];
|
|
1455
|
-
// console.log(e);
|
|
1456
|
-
var _editor$selection = editor.selection,
|
|
1457
|
-
start = _editor$selection.start,
|
|
1458
|
-
length = _editor$selection.length,
|
|
1459
|
-
setPosition = _editor$selection.setPosition; // if (e.composedPath().some((el) => el.getAttribute && el.getAttribute("data-edytor-void") === "true")) {
|
|
1460
|
-
// return;
|
|
1461
|
-
// }
|
|
1462
|
-
|
|
1463
|
-
var tag = (_e$target = e.target) == null ? void 0 : _e$target.tagName;
|
|
1464
|
-
if (tag === "TEXTAREA" || tag === "INPUT") return;
|
|
1465
|
-
prevent(e);
|
|
1466
|
-
|
|
1467
|
-
switch (e.inputType) {
|
|
1468
|
-
case "insertFromPaste":
|
|
1469
|
-
case "insertLineBreak": // case "insertCompositionText":
|
|
1470
|
-
// case "insertFromDrop":
|
|
1471
|
-
|
|
1472
|
-
case "insertText":
|
|
1473
|
-
{
|
|
1474
|
-
var text = e.inputType === "insertLineBreak" ? "\n" : e.inputType === "insertFromPaste" ? getDataTransfer(e) : e.data;
|
|
1475
|
-
insertText(editor, {
|
|
1476
|
-
text: text
|
|
1477
|
-
});
|
|
1478
|
-
break;
|
|
1479
|
-
}
|
|
1480
|
-
|
|
1481
|
-
case "deleteContentBackward":
|
|
1482
|
-
{
|
|
1483
|
-
deleteText(editor, {
|
|
1484
|
-
mode: "backward"
|
|
1485
|
-
});
|
|
1486
|
-
break;
|
|
1487
|
-
}
|
|
1488
|
-
|
|
1489
|
-
case "deleteByDrag":
|
|
1490
|
-
case "deleteByCut":
|
|
1491
|
-
case "deleteContentForward":
|
|
1492
|
-
{
|
|
1493
|
-
deleteText(editor, {
|
|
1494
|
-
mode: "forward"
|
|
1495
|
-
});
|
|
1496
|
-
break;
|
|
1497
|
-
}
|
|
1498
|
-
|
|
1499
|
-
case "insertParagraph":
|
|
1500
|
-
{
|
|
1501
|
-
splitNode(editor);
|
|
1502
|
-
break;
|
|
1503
|
-
}
|
|
1504
|
-
|
|
1505
|
-
case "insertFromDrop":
|
|
1506
|
-
{
|
|
1507
|
-
setTimeout(function () {
|
|
1508
|
-
var text = getDataTransfer(e);
|
|
1509
|
-
|
|
1510
|
-
if (text) {
|
|
1511
|
-
insertText(editor, {
|
|
1512
|
-
text: text
|
|
1513
|
-
});
|
|
1514
|
-
}
|
|
1515
|
-
}, 50);
|
|
1516
|
-
break;
|
|
1517
|
-
}
|
|
1518
|
-
|
|
1519
|
-
case "deleteSoftLineBackward":
|
|
1520
|
-
{
|
|
1521
|
-
break;
|
|
1522
|
-
}
|
|
1523
|
-
|
|
1524
|
-
case "deleteWordForward":
|
|
1525
|
-
{
|
|
1526
|
-
break;
|
|
1527
|
-
}
|
|
1528
|
-
|
|
1529
|
-
case "insertFromYank":
|
|
1530
|
-
{
|
|
1531
|
-
break;
|
|
1532
|
-
}
|
|
1533
|
-
|
|
1534
|
-
case "formatSetBlockTextDirection":
|
|
1535
|
-
{
|
|
1536
|
-
break;
|
|
1537
|
-
}
|
|
1538
|
-
|
|
1539
|
-
case "formatSetInlineTextDirection":
|
|
1540
|
-
{
|
|
1541
|
-
break;
|
|
1542
|
-
}
|
|
1543
|
-
|
|
1544
|
-
case "deleteWordBackward":
|
|
1545
|
-
{
|
|
1546
|
-
break;
|
|
1547
|
-
}
|
|
1548
|
-
|
|
1549
|
-
case "insertCompositionText":
|
|
1550
|
-
{
|
|
1551
|
-
break;
|
|
1552
|
-
}
|
|
1553
|
-
|
|
1554
|
-
case "formatItalic":
|
|
1555
|
-
case "formatBold":
|
|
1556
|
-
{
|
|
1557
|
-
break;
|
|
1558
|
-
}
|
|
1559
|
-
|
|
1560
|
-
case "insertReplacementText":
|
|
1561
|
-
{
|
|
1562
|
-
replaceLeafText(start.leaf, start.offset, length, getDataTransfer(e));
|
|
1563
|
-
setPosition(start.leafId, {
|
|
1564
|
-
offset: start.offset
|
|
1565
|
-
});
|
|
1566
|
-
}
|
|
1567
|
-
}
|
|
1568
|
-
|
|
1569
|
-
onChange && onChange(editor);
|
|
1570
|
-
};
|
|
1571
|
-
|
|
1572
|
-
var onKeyDown = function onKeyDown(editor, e) {
|
|
1573
|
-
if (e.key === "Tab") {
|
|
1574
|
-
e.preventDefault();
|
|
1575
|
-
editor.allowNesting && nestNode(editor);
|
|
1576
|
-
}
|
|
1577
|
-
|
|
1578
|
-
if (e.metaKey) {
|
|
1579
|
-
if (e.key === "z" && e.metaKey) {
|
|
1580
|
-
e.preventDefault();
|
|
1581
|
-
return editor.undoManager.undo();
|
|
1582
|
-
}
|
|
1583
|
-
|
|
1584
|
-
if (e.key === "Z" && e.metaKey && e.shiftKey) {
|
|
1585
|
-
e.preventDefault();
|
|
1586
|
-
return editor.undoManager.redo();
|
|
1587
|
-
}
|
|
1588
|
-
|
|
1589
|
-
if (editor.hotkeys) {
|
|
1590
|
-
for (var i = 0; i < editor.hotkeys.length; i++) {
|
|
1591
|
-
var _editor$hotkeys$i = editor.hotkeys[i],
|
|
1592
|
-
keys = _editor$hotkeys$i.keys,
|
|
1593
|
-
operation = _editor$hotkeys$i.operation,
|
|
1594
|
-
mark = _editor$hotkeys$i.mark;
|
|
1595
|
-
|
|
1596
|
-
if (isHotkey(keys, e)) {
|
|
1597
|
-
e.preventDefault();
|
|
1598
|
-
e.stopPropagation();
|
|
1599
|
-
|
|
1600
|
-
if (typeof operation === "function") {
|
|
1601
|
-
return operation(editor);
|
|
1602
|
-
}
|
|
1603
|
-
|
|
1604
|
-
switch (operation) {
|
|
1605
|
-
case "formatText":
|
|
1606
|
-
{
|
|
1607
|
-
return formatText(editor, mark);
|
|
1608
|
-
}
|
|
1609
|
-
}
|
|
1610
|
-
|
|
1611
|
-
break;
|
|
1612
|
-
}
|
|
1613
|
-
}
|
|
1614
|
-
}
|
|
1615
|
-
}
|
|
1616
|
-
};
|
|
1617
|
-
var defaultHotkeys = [{
|
|
1618
|
-
operation: "formatText",
|
|
1619
|
-
keys: "mod+b",
|
|
1620
|
-
mark: {
|
|
1621
|
-
bold: true
|
|
1622
|
-
}
|
|
1623
|
-
}, {
|
|
1624
|
-
operation: "formatText",
|
|
1625
|
-
keys: "mod+i",
|
|
1626
|
-
mark: {
|
|
1627
|
-
italic: true
|
|
1628
|
-
}
|
|
1629
|
-
}, {
|
|
1630
|
-
operation: "formatText",
|
|
1631
|
-
keys: "mod+u",
|
|
1632
|
-
mark: {
|
|
1633
|
-
underline: true
|
|
1634
|
-
}
|
|
1635
|
-
}, {
|
|
1636
|
-
operation: "formatText",
|
|
1637
|
-
keys: "mod+shift+c",
|
|
1638
|
-
mark: {
|
|
1639
|
-
code: true
|
|
1640
|
-
}
|
|
1641
|
-
}, {
|
|
1642
|
-
operation: "formatText",
|
|
1643
|
-
keys: "mod+shift+x",
|
|
1644
|
-
mark: {
|
|
1645
|
-
strikethrough: true
|
|
1646
|
-
}
|
|
1647
|
-
}, {
|
|
1648
|
-
operation: "formatText",
|
|
1649
|
-
keys: "mod+shift+h",
|
|
1650
|
-
mark: {
|
|
1651
|
-
highlight: true
|
|
1652
|
-
}
|
|
1653
|
-
}];
|
|
1654
|
-
|
|
1655
|
-
var onDrop = function onDrop(editor, e) {
|
|
1656
|
-
var _e$dataTransfer;
|
|
1657
|
-
|
|
1658
|
-
if (((_e$dataTransfer = e.dataTransfer) == null ? void 0 : _e$dataTransfer.files.length) > 0) {
|
|
1659
|
-
var _e$dataTransfer2;
|
|
1660
|
-
|
|
1661
|
-
e.preventDefault();
|
|
1662
|
-
console.log((_e$dataTransfer2 = e.dataTransfer) == null ? void 0 : _e$dataTransfer2.files);
|
|
1663
|
-
}
|
|
1664
|
-
};
|
|
1665
|
-
var onDragOver = function onDragOver(editor, e) {
|
|
1666
|
-
var _e$dataTransfer3;
|
|
1667
|
-
|
|
1668
|
-
e.preventDefault();
|
|
1669
|
-
|
|
1670
|
-
if (((_e$dataTransfer3 = e.dataTransfer) == null ? void 0 : _e$dataTransfer3.files.length) > 0) {
|
|
1671
|
-
var _e$dataTransfer4;
|
|
1672
|
-
|
|
1673
|
-
e.preventDefault();
|
|
1674
|
-
console.log((_e$dataTransfer4 = e.dataTransfer) == null ? void 0 : _e$dataTransfer4.files);
|
|
1675
|
-
}
|
|
1676
|
-
};
|
|
1677
|
-
|
|
1678
|
-
var createWSProvider = function createWSProvider(room) {
|
|
1679
|
-
return new Promise(function (res) {
|
|
1680
|
-
var doc = new yjs.Doc();
|
|
1681
|
-
var prod = "wss://edytor-production.up.railway.app";
|
|
1682
|
-
console.log("development");
|
|
1683
|
-
var provider = new yWebsocket.WebsocketProvider( prod, room || "edytor", doc, {
|
|
1684
|
-
connect: true
|
|
1685
|
-
});
|
|
1686
|
-
provider.on("status", function (_ref) {
|
|
1687
|
-
var status = _ref.status;
|
|
1688
|
-
|
|
1689
|
-
if (status === "connected") {
|
|
1690
|
-
return res(provider);
|
|
1691
|
-
}
|
|
1692
|
-
});
|
|
1693
|
-
});
|
|
1694
|
-
};
|
|
1695
|
-
|
|
1696
|
-
exports.DocFromJson = DocFromJson;
|
|
1697
|
-
exports.Dropper = Dropper;
|
|
1698
|
-
exports.EdytorDoc = EdytorDoc;
|
|
1699
|
-
exports.EdytorSelection = EdytorSelection;
|
|
1700
|
-
exports.LeavesHarvest = LeavesHarvest;
|
|
1701
|
-
exports.YNode = YNode;
|
|
1702
|
-
exports.applyMarksFromParent = applyMarksFromParent;
|
|
1703
|
-
exports.areLeafsMergeable = areLeafsMergeable;
|
|
1704
|
-
exports.copyNode = copyNode;
|
|
1705
|
-
exports.createLeaf = createLeaf;
|
|
1706
|
-
exports.createNode = createNode;
|
|
1707
|
-
exports.createWSProvider = createWSProvider;
|
|
1708
|
-
exports.defaultHotkeys = defaultHotkeys;
|
|
1709
|
-
exports.deleteLeafText = deleteLeafText;
|
|
1710
|
-
exports.deleteNode = deleteNode;
|
|
1711
|
-
exports.deleteText = deleteText;
|
|
1712
|
-
exports.formatAtEqualPath = formatAtEqualPath;
|
|
1713
|
-
exports.formatText = formatText;
|
|
1714
|
-
exports.getChildren = getChildren;
|
|
1715
|
-
exports.getContainerAtPath = getContainerAtPath;
|
|
1716
|
-
exports.getId = getId;
|
|
1717
|
-
exports.getIndex = getIndex;
|
|
1718
|
-
exports.getLeafAtPath = getLeafAtPath;
|
|
1719
|
-
exports.getNode = getNode;
|
|
1720
|
-
exports.getNodeAtPath = getNodeAtPath;
|
|
1721
|
-
exports.getNodeChildren = getNodeChildren;
|
|
1722
|
-
exports.getNodeContainer = getNodeContainer;
|
|
1723
|
-
exports.getNodeContent = getNodeContent;
|
|
1724
|
-
exports.getPath = getPath;
|
|
1725
|
-
exports.hasChildren = hasChildren;
|
|
1726
|
-
exports.insertText = insertText;
|
|
1727
|
-
exports.insertTextInLeaf = insertTextInLeaf;
|
|
1728
|
-
exports.isLeafEmpty = isLeafEmpty;
|
|
1729
|
-
exports.isNodeContentEmpty = isNodeContentEmpty;
|
|
1730
|
-
exports.isNodeEmpty = isNodeEmpty;
|
|
1731
|
-
exports.leafData = leafData;
|
|
1732
|
-
exports.leafLength = leafLength;
|
|
1733
|
-
exports.leafNode = leafNode;
|
|
1734
|
-
exports.leafNodeChildren = leafNodeChildren;
|
|
1735
|
-
exports.leafNodeChildrenLength = leafNodeChildrenLength;
|
|
1736
|
-
exports.leafNodeContent = leafNodeContent;
|
|
1737
|
-
exports.leafNodeContentLength = leafNodeContentLength;
|
|
1738
|
-
exports.leafNodeContentStringLength = leafNodeContentStringLength;
|
|
1739
|
-
exports.leafNodeId = leafNodeId;
|
|
1740
|
-
exports.leafString = leafString;
|
|
1741
|
-
exports.leafText = leafText;
|
|
1742
|
-
exports.mergeContentWithNextLeaf = mergeContentWithNextLeaf;
|
|
1743
|
-
exports.mergeContentWithPrevLeaf = mergeContentWithPrevLeaf;
|
|
1744
|
-
exports.mergeLeafs = mergeLeafs;
|
|
1745
|
-
exports.moveNode = moveNode;
|
|
1746
|
-
exports.nanoid = nanoid;
|
|
1747
|
-
exports.nestNode = nestNode;
|
|
1748
|
-
exports.nodeString = nodeString;
|
|
1749
|
-
exports.onBeforeInput = onBeforeInput;
|
|
1750
|
-
exports.onDragOver = onDragOver;
|
|
1751
|
-
exports.onDrop = onDrop;
|
|
1752
|
-
exports.onKeyDown = onKeyDown;
|
|
1753
|
-
exports.removeEmptyText = removeEmptyText;
|
|
1754
|
-
exports.removeIfEmpty = removeIfEmpty;
|
|
1755
|
-
exports.replaceLeafText = replaceLeafText;
|
|
1756
|
-
exports.setLeafData = setLeafData;
|
|
1757
|
-
exports.setLeafText = setLeafText;
|
|
1758
|
-
exports.splitLeaf = splitLeaf;
|
|
1759
|
-
exports.splitNode = splitNode;
|
|
1760
|
-
exports.toString = toString;
|
|
1761
|
-
exports.traverse = traverse;
|
|
1762
|
-
//# sourceMappingURL=edytor.cjs.development.js.map
|