quoin-editor 1.1.0 → 1.1.2
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/CHANGELOG.md +20 -0
- package/dist/ai.cjs +80 -79
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +8 -7
- package/dist/ai.js.map +1 -1
- package/dist/catalogue.cjs +26 -25
- package/dist/catalogue.cjs.map +1 -1
- package/dist/catalogue.js +17 -16
- package/dist/catalogue.js.map +1 -1
- package/dist/{chunk-RHQPAW4W.js → chunk-36OSSZDK.js} +6 -6
- package/dist/{chunk-RHQPAW4W.js.map → chunk-36OSSZDK.js.map} +1 -1
- package/dist/{chunk-3BXUGX5F.js → chunk-3G4ZWUUY.js} +4 -16
- package/dist/chunk-3G4ZWUUY.js.map +1 -0
- package/dist/{chunk-DTQFYHDJ.cjs → chunk-5DEPLPDS.cjs} +28 -28
- package/dist/{chunk-DTQFYHDJ.cjs.map → chunk-5DEPLPDS.cjs.map} +1 -1
- package/dist/{chunk-2EQ6FKSK.js → chunk-5LWJDRWD.js} +3 -3
- package/dist/{chunk-2EQ6FKSK.js.map → chunk-5LWJDRWD.js.map} +1 -1
- package/dist/{chunk-ITXCE6KL.js → chunk-5QNNF5ZJ.js} +5 -5
- package/dist/{chunk-ITXCE6KL.js.map → chunk-5QNNF5ZJ.js.map} +1 -1
- package/dist/{chunk-AIS37SL2.cjs → chunk-6H76FAI3.cjs} +79 -7
- package/dist/chunk-6H76FAI3.cjs.map +1 -0
- package/dist/{chunk-SKZC4K5S.cjs → chunk-6QLA3JOU.cjs} +90 -90
- package/dist/{chunk-SKZC4K5S.cjs.map → chunk-6QLA3JOU.cjs.map} +1 -1
- package/dist/{chunk-QEMGOL5L.cjs → chunk-ABVSP2XR.cjs} +325 -295
- package/dist/chunk-ABVSP2XR.cjs.map +1 -0
- package/dist/{chunk-KSF2HILJ.js → chunk-AQNVYFEU.js} +6 -6
- package/dist/{chunk-KSF2HILJ.js.map → chunk-AQNVYFEU.js.map} +1 -1
- package/dist/{chunk-ZTLYHRZT.cjs → chunk-BMEEEI43.cjs} +13 -13
- package/dist/{chunk-ZTLYHRZT.cjs.map → chunk-BMEEEI43.cjs.map} +1 -1
- package/dist/{chunk-RIIXJWBR.cjs → chunk-E52VO5JT.cjs} +4 -4
- package/dist/{chunk-RIIXJWBR.cjs.map → chunk-E52VO5JT.cjs.map} +1 -1
- package/dist/{chunk-WDO6DBYU.cjs → chunk-EABO523V.cjs} +31 -31
- package/dist/{chunk-WDO6DBYU.cjs.map → chunk-EABO523V.cjs.map} +1 -1
- package/dist/{chunk-TBCHYHNU.js → chunk-EDKQQKQR.js} +6 -6
- package/dist/{chunk-TBCHYHNU.js.map → chunk-EDKQQKQR.js.map} +1 -1
- package/dist/{chunk-IXVGHH7F.cjs → chunk-ES2QYHXL.cjs} +45 -45
- package/dist/{chunk-IXVGHH7F.cjs.map → chunk-ES2QYHXL.cjs.map} +1 -1
- package/dist/{chunk-QC35D2AU.js → chunk-G7HK4OHE.js} +24 -14
- package/dist/chunk-G7HK4OHE.js.map +1 -0
- package/dist/{chunk-L4D23LM2.js → chunk-IVWFPFUG.js} +4 -4
- package/dist/{chunk-L4D23LM2.js.map → chunk-IVWFPFUG.js.map} +1 -1
- package/dist/{chunk-SAEQMDAU.js → chunk-J37ORWSG.js} +7 -7
- package/dist/{chunk-SAEQMDAU.js.map → chunk-J37ORWSG.js.map} +1 -1
- package/dist/{chunk-XJDPQFPU.js → chunk-JEFQNZO4.js} +40 -10
- package/dist/chunk-JEFQNZO4.js.map +1 -0
- package/dist/{chunk-TNN6Z52D.js → chunk-JHA23OOK.js} +6 -6
- package/dist/{chunk-TNN6Z52D.js.map → chunk-JHA23OOK.js.map} +1 -1
- package/dist/{chunk-7FAVFJAS.js → chunk-JYO2T4MC.js} +3 -3
- package/dist/{chunk-7FAVFJAS.js.map → chunk-JYO2T4MC.js.map} +1 -1
- package/dist/{chunk-HQ43EIYO.cjs → chunk-K5HWMBWH.cjs} +9 -9
- package/dist/{chunk-HQ43EIYO.cjs.map → chunk-K5HWMBWH.cjs.map} +1 -1
- package/dist/{chunk-OM7E43ZN.cjs → chunk-KFIE4OJE.cjs} +15 -15
- package/dist/{chunk-OM7E43ZN.cjs.map → chunk-KFIE4OJE.cjs.map} +1 -1
- package/dist/{chunk-ZWB7SZVI.cjs → chunk-KKRQDVBJ.cjs} +24 -24
- package/dist/{chunk-ZWB7SZVI.cjs.map → chunk-KKRQDVBJ.cjs.map} +1 -1
- package/dist/{chunk-VFSVN5IQ.cjs → chunk-M5FREXRQ.cjs} +218 -218
- package/dist/{chunk-VFSVN5IQ.cjs.map → chunk-M5FREXRQ.cjs.map} +1 -1
- package/dist/{chunk-7SVKLWDT.cjs → chunk-OAAYF2EI.cjs} +13 -26
- package/dist/chunk-OAAYF2EI.cjs.map +1 -0
- package/dist/{chunk-HTLWPSMU.js → chunk-OIQAO7QU.js} +4 -4
- package/dist/{chunk-HTLWPSMU.js.map → chunk-OIQAO7QU.js.map} +1 -1
- package/dist/{chunk-3QRVAI53.cjs → chunk-P3T5XBYW.cjs} +6 -6
- package/dist/{chunk-3QRVAI53.cjs.map → chunk-P3T5XBYW.cjs.map} +1 -1
- package/dist/{chunk-NO3KTZDY.cjs → chunk-PNMBRBAT.cjs} +4 -4
- package/dist/{chunk-NO3KTZDY.cjs.map → chunk-PNMBRBAT.cjs.map} +1 -1
- package/dist/{chunk-MGMA5PEL.js → chunk-PRXIYHSX.js} +6 -6
- package/dist/{chunk-MGMA5PEL.js.map → chunk-PRXIYHSX.js.map} +1 -1
- package/dist/{chunk-QWS7KH3K.cjs → chunk-QAI3CM7V.cjs} +55 -55
- package/dist/{chunk-QWS7KH3K.cjs.map → chunk-QAI3CM7V.cjs.map} +1 -1
- package/dist/{chunk-L6OW2FL3.js → chunk-QLDXQOHQ.js} +79 -8
- package/dist/chunk-QLDXQOHQ.js.map +1 -0
- package/dist/{chunk-TYZSB7JT.js → chunk-RUC5OZXO.js} +3 -3
- package/dist/{chunk-TYZSB7JT.js.map → chunk-RUC5OZXO.js.map} +1 -1
- package/dist/{chunk-WHV5ZSIO.cjs → chunk-UGAOEZ3O.cjs} +15 -15
- package/dist/{chunk-WHV5ZSIO.cjs.map → chunk-UGAOEZ3O.cjs.map} +1 -1
- package/dist/{chunk-PJCHSHM3.js → chunk-V2ZBA5VC.js} +8 -8
- package/dist/{chunk-PJCHSHM3.js.map → chunk-V2ZBA5VC.js.map} +1 -1
- package/dist/{chunk-ACSEYJJF.cjs → chunk-VSUGJZ7G.cjs} +135 -125
- package/dist/chunk-VSUGJZ7G.cjs.map +1 -0
- package/dist/{chunk-LY2D45F2.cjs → chunk-XJ32XESJ.cjs} +98 -98
- package/dist/{chunk-LY2D45F2.cjs.map → chunk-XJ32XESJ.cjs.map} +1 -1
- package/dist/{chunk-JZJIWRF3.js → chunk-ZEQXMRJW.js} +3 -3
- package/dist/{chunk-JZJIWRF3.js.map → chunk-ZEQXMRJW.js.map} +1 -1
- package/dist/{chunk-HWEK7EX5.js → chunk-ZPGA5UIY.js} +7 -7
- package/dist/{chunk-HWEK7EX5.js.map → chunk-ZPGA5UIY.js.map} +1 -1
- package/dist/comments.cjs +60 -59
- package/dist/comments.cjs.map +1 -1
- package/dist/comments.js +8 -7
- package/dist/comments.js.map +1 -1
- package/dist/diff.cjs +27 -27
- package/dist/diff.js +3 -3
- package/dist/docx.cjs +30 -30
- package/dist/docx.js +3 -3
- package/dist/embed.cjs +11 -10
- package/dist/embed.cjs.map +1 -1
- package/dist/embed.js +8 -7
- package/dist/embed.js.map +1 -1
- package/dist/emoji.cjs +11 -10
- package/dist/emoji.cjs.map +1 -1
- package/dist/emoji.js +7 -6
- package/dist/emoji.js.map +1 -1
- package/dist/engine.cjs +58 -58
- package/dist/engine.js +3 -3
- package/dist/find.cjs +12 -11
- package/dist/find.cjs.map +1 -1
- package/dist/find.js +7 -6
- package/dist/find.js.map +1 -1
- package/dist/headless.cjs +76 -75
- package/dist/headless.cjs.map +1 -1
- package/dist/headless.js +5 -4
- package/dist/headless.js.map +1 -1
- package/dist/index.cjs +88 -87
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/math.cjs +12 -11
- package/dist/math.cjs.map +1 -1
- package/dist/math.js +9 -8
- package/dist/math.js.map +1 -1
- package/dist/mention.cjs +12 -11
- package/dist/mention.cjs.map +1 -1
- package/dist/mention.js +9 -8
- package/dist/mention.js.map +1 -1
- package/dist/presence.cjs +40 -39
- package/dist/presence.cjs.map +1 -1
- package/dist/presence.js +9 -8
- package/dist/presence.js.map +1 -1
- package/dist/stats.cjs +12 -11
- package/dist/stats.cjs.map +1 -1
- package/dist/stats.js +8 -7
- package/dist/stats.js.map +1 -1
- package/dist/table.cjs +27 -26
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +7 -6
- package/dist/table.js.map +1 -1
- package/dist/toc.cjs +11 -10
- package/dist/toc.cjs.map +1 -1
- package/dist/toc.js +7 -6
- package/dist/toc.js.map +1 -1
- package/dist/view.cjs +4 -4
- package/dist/view.js +2 -2
- package/dist/yjs.cjs +119 -119
- package/dist/yjs.js +5 -5
- package/package.json +2 -1
- package/dist/chunk-3BXUGX5F.js.map +0 -1
- package/dist/chunk-7SVKLWDT.cjs.map +0 -1
- package/dist/chunk-ACSEYJJF.cjs.map +0 -1
- package/dist/chunk-AIS37SL2.cjs.map +0 -1
- package/dist/chunk-L6OW2FL3.js.map +0 -1
- package/dist/chunk-QC35D2AU.js.map +0 -1
- package/dist/chunk-QEMGOL5L.cjs.map +0 -1
- package/dist/chunk-XJDPQFPU.js.map +0 -1
package/dist/yjs.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
var
|
|
3
|
+
var chunkKFIE4OJE_cjs = require('./chunk-KFIE4OJE.cjs');
|
|
4
|
+
var chunkM5FREXRQ_cjs = require('./chunk-M5FREXRQ.cjs');
|
|
5
|
+
require('./chunk-OAAYF2EI.cjs');
|
|
6
|
+
var chunk6H76FAI3_cjs = require('./chunk-6H76FAI3.cjs');
|
|
7
7
|
var Y = require('yjs');
|
|
8
8
|
|
|
9
9
|
function _interopNamespace(e) {
|
|
@@ -43,7 +43,7 @@ function requiredRegions(schema) {
|
|
|
43
43
|
|
|
44
44
|
// src/yjs/read-shared.ts
|
|
45
45
|
function reader(required) {
|
|
46
|
-
const spans = [
|
|
46
|
+
const spans = [chunkKFIE4OJE_cjs.emptySpan()];
|
|
47
47
|
const entries = /* @__PURE__ */ new Map();
|
|
48
48
|
const markers = /* @__PURE__ */ new Map();
|
|
49
49
|
const order = [];
|
|
@@ -78,11 +78,11 @@ function reader(required) {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
function marker(map) {
|
|
81
|
-
span =
|
|
81
|
+
span = chunkKFIE4OJE_cjs.emptySpan();
|
|
82
82
|
span.index = spans.length;
|
|
83
83
|
spans.push(span);
|
|
84
84
|
[open, stray] = [null, null];
|
|
85
|
-
const fields =
|
|
85
|
+
const fields = chunkKFIE4OJE_cjs.readMarker(map);
|
|
86
86
|
const kept = fields !== null && !entries.has(fields.id);
|
|
87
87
|
entry = kept ? { id: fields.id, map, span, regions: [], copies: [] } : null;
|
|
88
88
|
if (entry !== null) {
|
|
@@ -95,7 +95,7 @@ function reader(required) {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
function embed(value) {
|
|
98
|
-
let name =
|
|
98
|
+
let name = chunkKFIE4OJE_cjs.regionNameOf(value);
|
|
99
99
|
stray = null;
|
|
100
100
|
const missing = (one) => !entry.regions.some((region2) => region2.name === one);
|
|
101
101
|
if (name !== null && entry !== null) {
|
|
@@ -114,7 +114,7 @@ function reader(required) {
|
|
|
114
114
|
return {
|
|
115
115
|
read(op) {
|
|
116
116
|
const { insert } = op;
|
|
117
|
-
if (typeof insert === "string" ||
|
|
117
|
+
if (typeof insert === "string" || chunkKFIE4OJE_cjs.isAtomEmbed(insert)) {
|
|
118
118
|
const length = typeof insert === "string" ? insert.length : 1;
|
|
119
119
|
content(op, length);
|
|
120
120
|
span.length += length;
|
|
@@ -144,12 +144,12 @@ function reader(required) {
|
|
|
144
144
|
for (const name of required(type)) {
|
|
145
145
|
if (!kept.regions.some((region2) => region2.name === name)) kept.regions.push({ name, entry: kept, segs: [] });
|
|
146
146
|
}
|
|
147
|
-
const inline = (segs) =>
|
|
147
|
+
const inline = (segs) => chunkKFIE4OJE_cjs.inlineOfOps(segs.flatMap((seg) => held2.get(seg)));
|
|
148
148
|
const regions = kept.regions.map(({ name, segs }) => [name, inline(segs)]);
|
|
149
149
|
return { id: kept.id, type, indent, attrs: attrs?.toJSON() ?? {}, regions: Object.fromEntries(regions) };
|
|
150
150
|
});
|
|
151
|
-
const layout =
|
|
152
|
-
return { doc:
|
|
151
|
+
const layout = chunkKFIE4OJE_cjs.createLayout(spans, entries, { read, leading: new Set(leading), unread });
|
|
152
|
+
return { doc: chunk6H76FAI3_cjs.createDoc(blocks), layout };
|
|
153
153
|
}
|
|
154
154
|
};
|
|
155
155
|
}
|
|
@@ -183,41 +183,41 @@ function reread(shared) {
|
|
|
183
183
|
function insertContent(shared, region2, offset, inline) {
|
|
184
184
|
if (inline.length === 0) return;
|
|
185
185
|
if (region2.segs.length === 0) return openRegion(shared, region2, inline);
|
|
186
|
-
const { seg, rel } =
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
const { seg, rel } = chunkKFIE4OJE_cjs.pointOf(region2, offset);
|
|
187
|
+
chunkKFIE4OJE_cjs.insertInline(shared.text, chunkKFIE4OJE_cjs.spanStart(shared.layout, seg.host) + rel, inline);
|
|
188
|
+
chunkKFIE4OJE_cjs.grow(shared.layout, seg, rel, chunk6H76FAI3_cjs.inlineLength(inline));
|
|
189
189
|
}
|
|
190
190
|
function deleteContent(shared, region2, from, to) {
|
|
191
|
-
for (const { seg, rel, length } of
|
|
192
|
-
|
|
193
|
-
|
|
191
|
+
for (const { seg, rel, length } of chunkKFIE4OJE_cjs.piecesOf(region2, from, to).reverse()) {
|
|
192
|
+
chunkKFIE4OJE_cjs.deleteText(shared.text, chunkKFIE4OJE_cjs.spanStart(shared.layout, seg.host) + rel, length);
|
|
193
|
+
chunkKFIE4OJE_cjs.grow(shared.layout, seg, rel, -length);
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
function formatContent(shared, region2, from, to, attributes) {
|
|
197
|
-
for (const { seg, rel, length } of
|
|
198
|
-
shared.text.format(
|
|
197
|
+
for (const { seg, rel, length } of chunkKFIE4OJE_cjs.piecesOf(region2, from, to)) {
|
|
198
|
+
shared.text.format(chunkKFIE4OJE_cjs.spanStart(shared.layout, seg.host) + rel, length, attributes);
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
function openRegion(shared, { name, entry }, inline) {
|
|
202
|
-
const at =
|
|
203
|
-
shared.text.insertEmbed(at,
|
|
204
|
-
|
|
202
|
+
const at = chunkKFIE4OJE_cjs.spanStart(shared.layout, entry.span) + entry.span.length;
|
|
203
|
+
shared.text.insertEmbed(at, chunkKFIE4OJE_cjs.regionStart(name), {});
|
|
204
|
+
chunkKFIE4OJE_cjs.insertInline(shared.text, at + 1, inline);
|
|
205
205
|
reread(shared);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
// src/yjs/inline-span.ts
|
|
209
209
|
var units = (inline) => inline.flatMap(
|
|
210
|
-
(node) => node.kind === "text" ? Array.from({ length: node.text.length }, (_, i) =>
|
|
210
|
+
(node) => node.kind === "text" ? Array.from({ length: node.text.length }, (_, i) => chunk6H76FAI3_cjs.text(node.text[i], node.marks)) : [node]
|
|
211
211
|
);
|
|
212
212
|
function changedSpan(before, after) {
|
|
213
213
|
const a = units(before);
|
|
214
214
|
const b = units(after);
|
|
215
215
|
let start = 0;
|
|
216
|
-
while (start < a.length && start < b.length &&
|
|
216
|
+
while (start < a.length && start < b.length && chunk6H76FAI3_cjs.equalNode(a[start], b[start])) start += 1;
|
|
217
217
|
let end = 0;
|
|
218
218
|
const shared = Math.min(a.length, b.length) - start;
|
|
219
|
-
while (end < shared &&
|
|
220
|
-
return { from: start, to:
|
|
219
|
+
while (end < shared && chunk6H76FAI3_cjs.equalNode(a[a.length - 1 - end], b[b.length - 1 - end])) end += 1;
|
|
220
|
+
return { from: start, to: chunk6H76FAI3_cjs.inlineLength(before) - end, slice: chunk6H76FAI3_cjs.sliceInline(after, start, chunk6H76FAI3_cjs.inlineLength(after) - end) };
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
// src/yjs/plain.ts
|
|
@@ -235,12 +235,12 @@ function adopted(entry, next) {
|
|
|
235
235
|
for (const copy of next.copies) copy.copyOf = next;
|
|
236
236
|
return next;
|
|
237
237
|
}
|
|
238
|
-
var rewritten = (entry, block, map = entry.map) => adopted(entry,
|
|
238
|
+
var rewritten = (entry, block, map = entry.map) => adopted(entry, chunkKFIE4OJE_cjs.cleanEntry(block, map));
|
|
239
239
|
function crossesStray(layout, index) {
|
|
240
240
|
const { read, leading, unread } = layout.strays;
|
|
241
241
|
return unread || read.some((seg) => {
|
|
242
|
-
const region2 =
|
|
243
|
-
return leading.has(seg) ? index <= region2 : region2 < index && index <=
|
|
242
|
+
const region2 = chunkKFIE4OJE_cjs.indexOf(layout, seg.region.entry.span);
|
|
243
|
+
return leading.has(seg) ? index <= region2 : region2 < index && index <= chunkKFIE4OJE_cjs.indexOf(layout, seg.host);
|
|
244
244
|
});
|
|
245
245
|
}
|
|
246
246
|
|
|
@@ -248,11 +248,11 @@ function crossesStray(layout, index) {
|
|
|
248
248
|
function insertBlocks(shared, next, blocks) {
|
|
249
249
|
const { layout, text: text2 } = shared;
|
|
250
250
|
const span = next === null ? null : layout.entries.get(next).span;
|
|
251
|
-
const index = span === null ? layout.spans.length :
|
|
251
|
+
const index = span === null ? layout.spans.length : chunkKFIE4OJE_cjs.indexOf(layout, span);
|
|
252
252
|
const crosses = blocks.some((block) => Object.keys(block.regions).length > 0) && crossesStray(layout, index);
|
|
253
|
-
const maps =
|
|
253
|
+
const maps = chunkKFIE4OJE_cjs.writeBlocks(text2, span === null ? chunkKFIE4OJE_cjs.textLength(layout) : chunkKFIE4OJE_cjs.spanStart(layout, span), blocks);
|
|
254
254
|
if (crosses) reread(shared);
|
|
255
|
-
else
|
|
255
|
+
else chunkKFIE4OJE_cjs.placeEntries(layout, index, 0, blocks.map((block, i) => chunkKFIE4OJE_cjs.cleanEntry(block, maps[i])));
|
|
256
256
|
}
|
|
257
257
|
function ownParts(entry, span) {
|
|
258
258
|
const parts = [];
|
|
@@ -267,15 +267,15 @@ function ownParts(entry, span) {
|
|
|
267
267
|
}
|
|
268
268
|
function dropSpans(shared, spans) {
|
|
269
269
|
const { layout, text: text2 } = shared;
|
|
270
|
-
for (const span of [...spans].sort((a, b) =>
|
|
271
|
-
const at =
|
|
272
|
-
|
|
273
|
-
|
|
270
|
+
for (const span of [...spans].sort((a, b) => chunkKFIE4OJE_cjs.indexOf(layout, b) - chunkKFIE4OJE_cjs.indexOf(layout, a))) {
|
|
271
|
+
const at = chunkKFIE4OJE_cjs.indexOf(layout, span);
|
|
272
|
+
chunkKFIE4OJE_cjs.deleteText(text2, chunkKFIE4OJE_cjs.spanStart(layout, span), span.length);
|
|
273
|
+
chunkKFIE4OJE_cjs.placeEntries(layout, at, 1, []);
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
function unreadBefore(layout, span) {
|
|
277
277
|
const before = [];
|
|
278
|
-
for (let at =
|
|
278
|
+
for (let at = chunkKFIE4OJE_cjs.indexOf(layout, span) - 1; at > 0 && layout.spans[at].entry === null; at--) {
|
|
279
279
|
before.push(layout.spans[at]);
|
|
280
280
|
}
|
|
281
281
|
return before;
|
|
@@ -287,22 +287,22 @@ function removeBlock(shared, id) {
|
|
|
287
287
|
if (isPlain(entry)) return dropSpans(shared, [.../* @__PURE__ */ new Set([entry.span, ...unread])]);
|
|
288
288
|
dropSpans(shared, [...new Set(unread)]);
|
|
289
289
|
const ranges = [];
|
|
290
|
-
const start =
|
|
290
|
+
const start = chunkKFIE4OJE_cjs.spanStart(layout, entry.span);
|
|
291
291
|
ranges.push(...ownParts(entry, entry.span).map(([at, length]) => [start + at, length]));
|
|
292
292
|
for (const seg of entry.regions.flatMap((region2) => region2.segs)) {
|
|
293
|
-
if (seg.host !== entry.span) ranges.push([
|
|
293
|
+
if (seg.host !== entry.span) ranges.push([chunkKFIE4OJE_cjs.spanStart(layout, seg.host) + seg.at, seg.length]);
|
|
294
294
|
}
|
|
295
|
-
for (const [at, length] of ranges.sort((a, b) => b[0] - a[0])) if (length > 0)
|
|
295
|
+
for (const [at, length] of ranges.sort((a, b) => b[0] - a[0])) if (length > 0) chunkKFIE4OJE_cjs.deleteText(text2, at, length);
|
|
296
296
|
reread(shared);
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
// src/yjs/sync-block.ts
|
|
300
300
|
function syncAttrs(map, before, after) {
|
|
301
|
-
const current =
|
|
301
|
+
const current = chunkKFIE4OJE_cjs.attrsMap(map, after);
|
|
302
302
|
if (current === null) return;
|
|
303
|
-
const kept = new Map(
|
|
303
|
+
const kept = new Map(chunkKFIE4OJE_cjs.definedEntries(after));
|
|
304
304
|
for (const key of [...current.keys()]) if (!kept.has(key)) current.delete(key);
|
|
305
|
-
for (const [key, value] of kept) if (!
|
|
305
|
+
for (const [key, value] of kept) if (!chunk6H76FAI3_cjs.sameValue(before[key], value)) current.set(key, value);
|
|
306
306
|
}
|
|
307
307
|
function keptNames(before, after) {
|
|
308
308
|
const kept = /* @__PURE__ */ new Set();
|
|
@@ -320,31 +320,31 @@ function syncRegions(shared, entry, before, after) {
|
|
|
320
320
|
const names = Object.keys(after.regions);
|
|
321
321
|
const queue = entry.regions.map(({ name }) => [name, before.regions[name]]);
|
|
322
322
|
const kept = keptNames(queue.map(([name]) => name), names);
|
|
323
|
-
let at =
|
|
323
|
+
let at = chunkKFIE4OJE_cjs.spanStart(layout, entry.span) + 1;
|
|
324
324
|
const dropGone = () => {
|
|
325
|
-
while (queue.length > 0 && !kept.has(queue[0][0]))
|
|
325
|
+
while (queue.length > 0 && !kept.has(queue[0][0])) chunkKFIE4OJE_cjs.deleteText(text2, at, 1 + chunk6H76FAI3_cjs.inlineLength(queue.shift()[1]));
|
|
326
326
|
};
|
|
327
327
|
for (const name of names) {
|
|
328
328
|
dropGone();
|
|
329
329
|
const inline = after.regions[name];
|
|
330
330
|
if (kept.has(name)) {
|
|
331
331
|
const { from, to, slice } = changedSpan(queue.shift()[1], inline);
|
|
332
|
-
if (to > from)
|
|
333
|
-
|
|
332
|
+
if (to > from) chunkKFIE4OJE_cjs.deleteText(text2, at + 1 + from, to - from);
|
|
333
|
+
chunkKFIE4OJE_cjs.insertInline(text2, at + 1 + from, slice);
|
|
334
334
|
} else {
|
|
335
|
-
text2.insertEmbed(at,
|
|
336
|
-
|
|
335
|
+
text2.insertEmbed(at, chunkKFIE4OJE_cjs.regionStart(name), {});
|
|
336
|
+
chunkKFIE4OJE_cjs.insertInline(text2, at + 1, inline);
|
|
337
337
|
}
|
|
338
|
-
at += 1 +
|
|
338
|
+
at += 1 + chunk6H76FAI3_cjs.inlineLength(inline);
|
|
339
339
|
}
|
|
340
340
|
dropGone();
|
|
341
|
-
|
|
341
|
+
chunkKFIE4OJE_cjs.placeEntries(layout, chunkKFIE4OJE_cjs.indexOf(layout, entry.span), 1, [rewritten(entry, after)]);
|
|
342
342
|
}
|
|
343
343
|
function syncBlock(shared, before, after, next) {
|
|
344
344
|
if (before === after) return;
|
|
345
345
|
const entry = shared.layout.entries.get(before.id);
|
|
346
346
|
const plain = isPlain(entry);
|
|
347
|
-
if (!plain && !
|
|
347
|
+
if (!plain && !chunk6H76FAI3_cjs.sameValue(Object.keys(before.regions), Object.keys(after.regions))) {
|
|
348
348
|
removeBlock(shared, before.id);
|
|
349
349
|
insertBlocks(shared, next, [after]);
|
|
350
350
|
return;
|
|
@@ -353,16 +353,16 @@ function syncBlock(shared, before, after, next) {
|
|
|
353
353
|
syncAttrs(entry.map, before.attrs, after.attrs);
|
|
354
354
|
if (plain) {
|
|
355
355
|
const gains = Object.keys(before.regions).length === 0 && Object.keys(after.regions).length > 0;
|
|
356
|
-
const crosses = gains && crossesStray(shared.layout,
|
|
356
|
+
const crosses = gains && crossesStray(shared.layout, chunkKFIE4OJE_cjs.indexOf(shared.layout, entry.span));
|
|
357
357
|
syncRegions(shared, entry, before, after);
|
|
358
358
|
if (crosses) reread(shared);
|
|
359
359
|
return;
|
|
360
360
|
}
|
|
361
361
|
for (const name of entry.regions.map((region2) => region2.name)) {
|
|
362
362
|
const [was, now] = [before.regions[name], after.regions[name]];
|
|
363
|
-
if (
|
|
363
|
+
if (chunk6H76FAI3_cjs.equalInline(was, now)) continue;
|
|
364
364
|
const { from, to, slice } = changedSpan(was, now);
|
|
365
|
-
const region2 =
|
|
365
|
+
const region2 = chunkKFIE4OJE_cjs.regionOf(shared.layout, before.id, name);
|
|
366
366
|
deleteContent(shared, region2, from, to);
|
|
367
367
|
insertContent(shared, region2, from, slice);
|
|
368
368
|
}
|
|
@@ -396,18 +396,18 @@ var held = (region2) => region2 !== void 0 && region2.segs.length > 0;
|
|
|
396
396
|
function writeSplit(shared, after, { block, region: region2, offset, created }) {
|
|
397
397
|
const { layout, text: text2 } = shared;
|
|
398
398
|
const entry = layout.entries.get(block);
|
|
399
|
-
const tail =
|
|
399
|
+
const tail = chunk6H76FAI3_cjs.blockById(after, created.id);
|
|
400
400
|
const last = entry.regions[entry.regions.length - 1];
|
|
401
401
|
if (!held(last) || last.name !== region2 || Object.keys(tail.regions).at(-1) !== created.region) return false;
|
|
402
|
-
const { seg, rel } =
|
|
403
|
-
const map =
|
|
404
|
-
|
|
402
|
+
const { seg, rel } = chunkKFIE4OJE_cjs.pointOf(last, offset);
|
|
403
|
+
const map = chunkKFIE4OJE_cjs.markerOf(tail);
|
|
404
|
+
chunkKFIE4OJE_cjs.writeBlock(text2, chunkKFIE4OJE_cjs.spanStart(layout, seg.host) + rel, tail, map, created.region);
|
|
405
405
|
if (!isPlain(entry)) {
|
|
406
406
|
reread(shared);
|
|
407
407
|
return true;
|
|
408
408
|
}
|
|
409
|
-
const head = rewritten(entry,
|
|
410
|
-
|
|
409
|
+
const head = rewritten(entry, chunk6H76FAI3_cjs.blockById(after, block));
|
|
410
|
+
chunkKFIE4OJE_cjs.placeEntries(layout, chunkKFIE4OJE_cjs.indexOf(layout, entry.span), 1, [head, chunkKFIE4OJE_cjs.cleanEntry(tail, map)]);
|
|
411
411
|
return true;
|
|
412
412
|
}
|
|
413
413
|
function writeJoin(shared, after, join2) {
|
|
@@ -416,27 +416,27 @@ function writeJoin(shared, after, join2) {
|
|
|
416
416
|
const [into, from] = [target, source].map((id) => layout.entries.get(id));
|
|
417
417
|
const [end, start] = [into.regions.at(-1), from.regions[0]];
|
|
418
418
|
if (!held(end) || !held(start) || end.name !== targetRegion || start.name !== sourceRegion) return false;
|
|
419
|
-
const between = layout.spans.slice(
|
|
419
|
+
const between = layout.spans.slice(chunkKFIE4OJE_cjs.indexOf(layout, into.span) + 1, chunkKFIE4OJE_cjs.indexOf(layout, from.span));
|
|
420
420
|
dropSpans(shared, [...from.copies, ...between]);
|
|
421
|
-
const at =
|
|
421
|
+
const at = chunkKFIE4OJE_cjs.spanStart(layout, from.span);
|
|
422
422
|
if (!isPlain(into) || !isPlain(from)) {
|
|
423
423
|
const own = start.segs.find((seg) => seg.host === from.span);
|
|
424
|
-
|
|
425
|
-
|
|
424
|
+
chunkKFIE4OJE_cjs.deleteText(text2, at + own.at - 1, 1);
|
|
425
|
+
chunkKFIE4OJE_cjs.deleteText(text2, at, 1);
|
|
426
426
|
reread(shared);
|
|
427
427
|
return true;
|
|
428
428
|
}
|
|
429
|
-
const index =
|
|
429
|
+
const index = chunkKFIE4OJE_cjs.indexOf(layout, into.span);
|
|
430
430
|
const moved = from.regions[0].segs[0].length;
|
|
431
431
|
const rest = from.span.length - 2 - moved;
|
|
432
|
-
if (rest > 0)
|
|
433
|
-
|
|
434
|
-
|
|
432
|
+
if (rest > 0) chunkKFIE4OJE_cjs.deleteText(text2, at + 2 + moved, rest);
|
|
433
|
+
chunkKFIE4OJE_cjs.deleteText(text2, at, 2);
|
|
434
|
+
chunkKFIE4OJE_cjs.placeEntries(layout, index, 2, [rewritten(into, chunk6H76FAI3_cjs.blockById(after, target))]);
|
|
435
435
|
return true;
|
|
436
436
|
}
|
|
437
437
|
|
|
438
438
|
// src/yjs/local-to-yjs.ts
|
|
439
|
-
var region = ({ shared, params }) =>
|
|
439
|
+
var region = ({ shared, params }) => chunkKFIE4OJE_cjs.regionOf(shared.layout, params.block, params.region);
|
|
440
440
|
var following = (doc, id) => doc.blocks[doc.index.get(id) + 1]?.id ?? null;
|
|
441
441
|
function replaceInline(context) {
|
|
442
442
|
const { from, to, slice } = context.params;
|
|
@@ -447,19 +447,19 @@ function replaceInline(context) {
|
|
|
447
447
|
function format(context, keys) {
|
|
448
448
|
const { block, region: name, from, to } = context.params;
|
|
449
449
|
if (to === from) return;
|
|
450
|
-
const inline =
|
|
451
|
-
formatContent(context.shared, region(context), from, to, keys(
|
|
450
|
+
const inline = chunk6H76FAI3_cjs.blockById(context.before, block).regions[name];
|
|
451
|
+
formatContent(context.shared, region(context), from, to, keys(chunk6H76FAI3_cjs.sliceInline(inline, from, to)));
|
|
452
452
|
}
|
|
453
453
|
function removedKeys(mark, inline) {
|
|
454
|
-
if (typeof mark !== "string") return { [
|
|
454
|
+
if (typeof mark !== "string") return { [chunkKFIE4OJE_cjs.markAttribute(mark)[0]]: null };
|
|
455
455
|
const marks = inline.flatMap((node) => node.marks.filter((candidate) => candidate.type === mark));
|
|
456
|
-
return Object.fromEntries(marks.map((found) => [
|
|
456
|
+
return Object.fromEntries(marks.map((found) => [chunkKFIE4OJE_cjs.markAttribute(found)[0], null]));
|
|
457
457
|
}
|
|
458
458
|
function setAttrs({ shared, after, params }) {
|
|
459
459
|
const id = params.block;
|
|
460
460
|
const { map } = shared.layout.entries.get(id);
|
|
461
|
-
const next =
|
|
462
|
-
const attrs =
|
|
461
|
+
const next = chunk6H76FAI3_cjs.blockById(after, id).attrs;
|
|
462
|
+
const attrs = chunkKFIE4OJE_cjs.attrsMap(map, next);
|
|
463
463
|
if (attrs === null) return;
|
|
464
464
|
for (const key of Object.keys(params.patch)) {
|
|
465
465
|
if (next[key] === void 0) attrs.delete(key);
|
|
@@ -475,7 +475,7 @@ function moveBlocks({ shared, before, after, params }) {
|
|
|
475
475
|
}
|
|
476
476
|
var WRITERS = {
|
|
477
477
|
replaceInline,
|
|
478
|
-
addMark: (context) => format(context, () => Object.fromEntries([
|
|
478
|
+
addMark: (context) => format(context, () => Object.fromEntries([chunkKFIE4OJE_cjs.markAttribute(context.params.mark)])),
|
|
479
479
|
removeMark: (context) => format(context, (inline) => removedKeys(context.params.mark, inline)),
|
|
480
480
|
setAttrs,
|
|
481
481
|
setIndent: ({ shared, params }) => shared.layout.entries.get(params.block).map.set("indent", params.indent),
|
|
@@ -497,7 +497,7 @@ var WRITERS = {
|
|
|
497
497
|
},
|
|
498
498
|
replaceBlock: ({ shared, before, params }) => {
|
|
499
499
|
const block = params.block;
|
|
500
|
-
syncBlock(shared,
|
|
500
|
+
syncBlock(shared, chunk6H76FAI3_cjs.blockById(before, block.id), block, following(before, block.id));
|
|
501
501
|
}
|
|
502
502
|
};
|
|
503
503
|
function writeLocalSteps(shared, steps, docs) {
|
|
@@ -514,13 +514,13 @@ function seedOrLoad(editor, text2, { origin, seed, required }) {
|
|
|
514
514
|
const { blocks } = editor.state.doc;
|
|
515
515
|
if (text2.length === 0 && seed === "if-empty") {
|
|
516
516
|
let maps = [];
|
|
517
|
-
text2.doc.transact(() => maps =
|
|
518
|
-
const layout2 =
|
|
519
|
-
|
|
517
|
+
text2.doc.transact(() => maps = chunkKFIE4OJE_cjs.writeBlocks(text2, 0, blocks), origin);
|
|
518
|
+
const layout2 = chunkKFIE4OJE_cjs.createLayout([chunkKFIE4OJE_cjs.emptySpan()], /* @__PURE__ */ new Map());
|
|
519
|
+
chunkKFIE4OJE_cjs.placeEntries(layout2, 1, 0, blocks.map((block, i) => chunkKFIE4OJE_cjs.cleanEntry(block, maps[i])));
|
|
520
520
|
return layout2;
|
|
521
521
|
}
|
|
522
522
|
const { doc, layout } = readShared(text2, required);
|
|
523
|
-
if (!
|
|
523
|
+
if (!chunkM5FREXRQ_cjs.sameDoc(doc, editor.state.doc)) chunkKFIE4OJE_cjs.applyRemote(editor, [chunkM5FREXRQ_cjs.replaceDocStep(doc)]);
|
|
524
524
|
return layout;
|
|
525
525
|
}
|
|
526
526
|
function touchedEntries(layout, delta) {
|
|
@@ -530,8 +530,8 @@ function touchedEntries(layout, delta) {
|
|
|
530
530
|
const length = op.retain ?? op.delete ?? 0;
|
|
531
531
|
if (op.insert instanceof Y__namespace.Map || op.retain && op.attributes) return null;
|
|
532
532
|
if (op.retain === void 0) {
|
|
533
|
-
const span =
|
|
534
|
-
const start =
|
|
533
|
+
const span = chunkKFIE4OJE_cjs.spanAt(layout, at, op.insert === void 0);
|
|
534
|
+
const start = chunkKFIE4OJE_cjs.spanStart(layout, span);
|
|
535
535
|
if (span.entry === null || start === at || at + length > start + span.length) return null;
|
|
536
536
|
touched.set(span.entry.map, span.entry);
|
|
537
537
|
}
|
|
@@ -551,10 +551,10 @@ function readBlocks(shared, entries, doc) {
|
|
|
551
551
|
for (const [map, entry] of entries) {
|
|
552
552
|
const { doc: one, layout: own } = readers.get(map).finish();
|
|
553
553
|
const next = own.spans[1].entry;
|
|
554
|
-
const at =
|
|
554
|
+
const at = chunkKFIE4OJE_cjs.indexOf(layout, entry.span);
|
|
555
555
|
if (crossesStray(own, 1) || crossesStray(layout, at)) return null;
|
|
556
|
-
|
|
557
|
-
if (!
|
|
556
|
+
chunkKFIE4OJE_cjs.placeEntries(layout, at, 1, [adopted(entry, next)]);
|
|
557
|
+
if (!chunk6H76FAI3_cjs.sameValue(chunk6H76FAI3_cjs.blockById(doc, entry.id), one.blocks[0])) steps.push(chunkM5FREXRQ_cjs.replaceBlockStep(one.blocks[0]));
|
|
558
558
|
}
|
|
559
559
|
return steps;
|
|
560
560
|
}
|
|
@@ -562,31 +562,31 @@ var bare = (op) => op === void 0 || op.attributes === void 0;
|
|
|
562
562
|
function split(layout, delta, required) {
|
|
563
563
|
const [at, ops] = delta[0]?.retain === void 0 ? [0, delta] : [delta[0].retain, delta.slice(1)];
|
|
564
564
|
const map = ops[0]?.insert;
|
|
565
|
-
const name =
|
|
565
|
+
const name = chunkKFIE4OJE_cjs.regionNameOf(ops[1]?.insert);
|
|
566
566
|
if (ops.length !== 2 || !(map instanceof Y__namespace.Map) || name === null || !bare(delta[0])) return null;
|
|
567
|
-
const marker =
|
|
568
|
-
const span =
|
|
567
|
+
const marker = chunkKFIE4OJE_cjs.readMarker(map);
|
|
568
|
+
const span = chunkKFIE4OJE_cjs.spanAt(layout, at);
|
|
569
569
|
if (span.entry === null || !isPlain(span.entry)) return null;
|
|
570
570
|
const region2 = span.entry.regions.at(-1);
|
|
571
571
|
const seg = region2?.segs[0];
|
|
572
|
-
const rel = at -
|
|
572
|
+
const rel = at - chunkKFIE4OJE_cjs.spanStart(layout, span);
|
|
573
573
|
if (marker === null || layout.entries.has(marker.id) || seg === void 0) return null;
|
|
574
574
|
if (rel < seg.at || rel > seg.at + seg.length) return null;
|
|
575
575
|
if (required(marker.type).some((needed) => needed !== name)) return null;
|
|
576
576
|
const { id, type, indent, attrs } = marker;
|
|
577
577
|
const created = { id, type, indent, attrs: attrs?.toJSON() ?? {}, region: name, regions: {} };
|
|
578
|
-
return { step:
|
|
578
|
+
return { step: chunkM5FREXRQ_cjs.splitBlockStep(span.entry.id, region2.name, chunkKFIE4OJE_cjs.offsetIn(seg, rel), created), map };
|
|
579
579
|
}
|
|
580
580
|
function join(layout, delta) {
|
|
581
581
|
const [at, ops] = delta[0]?.retain === void 0 ? [0, delta] : [delta[0].retain, delta.slice(1)];
|
|
582
582
|
if (ops.length !== 1 || ops[0].delete !== 2 || !bare(delta[0])) return null;
|
|
583
|
-
const span =
|
|
583
|
+
const span = chunkKFIE4OJE_cjs.spanAt(layout, at, true);
|
|
584
584
|
const source = span.entry;
|
|
585
585
|
const target = layout.spans[span.index - 1]?.entry ?? null;
|
|
586
|
-
if (
|
|
586
|
+
if (chunkKFIE4OJE_cjs.spanStart(layout, span) !== at || source === null || target === null) return null;
|
|
587
587
|
if (source.regions.length !== 1 || target.regions.length === 0 || source.copies.length > 0) return null;
|
|
588
588
|
if (!isPlain(source) || !isPlain(target)) return null;
|
|
589
|
-
return
|
|
589
|
+
return chunkM5FREXRQ_cjs.joinBlocksStep(target.id, target.regions.at(-1).name, source.id, source.regions[0].name);
|
|
590
590
|
}
|
|
591
591
|
function splitOrJoin(layout, delta, doc, required) {
|
|
592
592
|
const found = split(layout, delta, required);
|
|
@@ -595,9 +595,9 @@ function splitOrJoin(layout, delta, doc, required) {
|
|
|
595
595
|
const after = step.apply(doc).doc;
|
|
596
596
|
const { block, target, created } = step.toJSON();
|
|
597
597
|
const kept = layout.entries.get(block ?? target);
|
|
598
|
-
const entries = [rewritten(kept,
|
|
599
|
-
if (found !== null) entries.push(
|
|
600
|
-
|
|
598
|
+
const entries = [rewritten(kept, chunk6H76FAI3_cjs.blockById(after, kept.id))];
|
|
599
|
+
if (found !== null) entries.push(chunkKFIE4OJE_cjs.cleanEntry(chunk6H76FAI3_cjs.blockById(after, created.id), found.map));
|
|
600
|
+
chunkKFIE4OJE_cjs.placeEntries(layout, chunkKFIE4OJE_cjs.indexOf(layout, kept.span), found === null ? 2 : 1, entries);
|
|
601
601
|
return step;
|
|
602
602
|
}
|
|
603
603
|
|
|
@@ -608,28 +608,28 @@ function markerSteps(shared, event, doc, read) {
|
|
|
608
608
|
const marker = target.parent === shared.text ? target : target.parent;
|
|
609
609
|
const keys = [...event.keysChanged];
|
|
610
610
|
if (target === marker && keys.includes("id")) throw REREAD;
|
|
611
|
-
const fields =
|
|
612
|
-
const block = fields === null ? void 0 :
|
|
611
|
+
const fields = chunkKFIE4OJE_cjs.readMarker(marker);
|
|
612
|
+
const block = fields === null ? void 0 : chunk6H76FAI3_cjs.blockById(doc, fields.id);
|
|
613
613
|
const entry = block === void 0 ? void 0 : shared.layout.entries.get(block.id);
|
|
614
614
|
if (block === void 0 || entry?.map !== marker || read.has(marker)) return [];
|
|
615
615
|
if (target !== marker) {
|
|
616
616
|
if (fields.attrs !== target) return [];
|
|
617
|
-
return [
|
|
617
|
+
return [chunkM5FREXRQ_cjs.setAttrsStep(block.id, Object.fromEntries(keys.map((key) => [key, target.get(key)])))];
|
|
618
618
|
}
|
|
619
619
|
if (keys.includes("type")) {
|
|
620
620
|
read.set(marker, entry);
|
|
621
621
|
return [];
|
|
622
622
|
}
|
|
623
623
|
const { indent, attrs } = fields;
|
|
624
|
-
if (keys.every((key) => key === "indent")) return [
|
|
625
|
-
return [
|
|
624
|
+
if (keys.every((key) => key === "indent")) return [chunkM5FREXRQ_cjs.setIndentStep(block.id, indent)];
|
|
625
|
+
return [chunkM5FREXRQ_cjs.replaceBlockStep({ ...block, indent, attrs: attrs?.toJSON() ?? {} })];
|
|
626
626
|
}
|
|
627
627
|
function contentSteps(shared, events, doc) {
|
|
628
628
|
const textEvent = events.find((event) => event.target === shared.text);
|
|
629
629
|
const delta = textEvent?.delta ?? [];
|
|
630
630
|
const touched = touchedEntries(shared.layout, delta);
|
|
631
631
|
const structure = splitOrJoin(shared.layout, delta, doc, shared.required);
|
|
632
|
-
const steps = structure === null ?
|
|
632
|
+
const steps = structure === null ? chunkKFIE4OJE_cjs.textSteps(shared.layout, delta) : [structure];
|
|
633
633
|
if (steps === null && touched === null) throw REREAD;
|
|
634
634
|
const read = steps === null ? touched : /* @__PURE__ */ new Map();
|
|
635
635
|
const all = [];
|
|
@@ -653,12 +653,12 @@ function readRemote(shared, events, doc) {
|
|
|
653
653
|
const read = readShared(shared.text, shared.required);
|
|
654
654
|
shared.layout = read.layout;
|
|
655
655
|
const blocks = read.doc.blocks.map((block) => {
|
|
656
|
-
const held2 =
|
|
657
|
-
return held2 !== void 0 &&
|
|
656
|
+
const held2 = chunk6H76FAI3_cjs.blockById(doc, block.id);
|
|
657
|
+
return held2 !== void 0 && chunk6H76FAI3_cjs.sameValue(held2, block) ? held2 : block;
|
|
658
658
|
});
|
|
659
|
-
const next =
|
|
659
|
+
const next = chunk6H76FAI3_cjs.createDoc(blocks);
|
|
660
660
|
const failed = error === REREAD ? void 0 : error;
|
|
661
|
-
return { steps:
|
|
661
|
+
return { steps: chunkM5FREXRQ_cjs.sameDoc(next, doc) ? [] : [chunkM5FREXRQ_cjs.replaceDocStep(next)], structural: true, failed };
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
664
|
|
|
@@ -674,15 +674,15 @@ function bind(editor, text2, options) {
|
|
|
674
674
|
const held2 = /* @__PURE__ */ new WeakMap();
|
|
675
675
|
const written = /* @__PURE__ */ new WeakSet();
|
|
676
676
|
const hold = (transaction) => {
|
|
677
|
-
if (!ours(transaction.origin)) held2.set(transaction,
|
|
677
|
+
if (!ours(transaction.origin)) held2.set(transaction, chunkKFIE4OJE_cjs.holdSelection(text2, shared.layout, editor.state.selection));
|
|
678
678
|
};
|
|
679
679
|
const observer = (events, transaction) => {
|
|
680
680
|
if (ours(transaction.origin)) return;
|
|
681
681
|
const { steps, structural, failed } = readRemote(shared, events, editor.state.doc);
|
|
682
682
|
if (steps.length > 0 && transaction.origin !== history.manager) {
|
|
683
|
-
|
|
683
|
+
chunkKFIE4OJE_cjs.applyRemote(editor, steps, structural ? chunkKFIE4OJE_cjs.restoreSelection(text2, shared.layout, held2.get(transaction)) : null);
|
|
684
684
|
} else if (steps.length > 0) {
|
|
685
|
-
const tr =
|
|
685
|
+
const tr = chunkKFIE4OJE_cjs.sharedChange(editor, steps, history.hint(), "history");
|
|
686
686
|
written.add(tr);
|
|
687
687
|
editor.dispatch(tr);
|
|
688
688
|
}
|
|
@@ -729,7 +729,7 @@ function undoHistory(text2, origin) {
|
|
|
729
729
|
if (tr.getMeta("closeHistory") === true) group = null;
|
|
730
730
|
return;
|
|
731
731
|
}
|
|
732
|
-
const next =
|
|
732
|
+
const next = chunkM5FREXRQ_cjs.groupOf(tr);
|
|
733
733
|
if (next === null || next !== group || tr.time - time >= GROUP_DELAY) manager.stopCapturing();
|
|
734
734
|
group = next;
|
|
735
735
|
time = tr.time;
|
|
@@ -799,18 +799,18 @@ function yjsCollaboration(options) {
|
|
|
799
799
|
canRedo: () => binding !== null && history.manager.canRedo()
|
|
800
800
|
}
|
|
801
801
|
};
|
|
802
|
-
|
|
802
|
+
chunkKFIE4OJE_cjs.holdBinding(collaboration, () => binding);
|
|
803
803
|
return collaboration;
|
|
804
804
|
}
|
|
805
805
|
|
|
806
806
|
// src/engine/collab/collaboration-link.ts
|
|
807
|
-
var linkKey =
|
|
807
|
+
var linkKey = chunkM5FREXRQ_cjs.createPluginKey("collaborationLink");
|
|
808
808
|
var linkPlugin = {
|
|
809
809
|
key: linkKey,
|
|
810
810
|
init: () => ({ mounts: 0, disconnect: null, warned: false }),
|
|
811
811
|
apply: (_tr, link) => link
|
|
812
812
|
};
|
|
813
|
-
var linkOf = (state) =>
|
|
813
|
+
var linkOf = (state) => chunkM5FREXRQ_cjs.getPluginState(state, linkKey);
|
|
814
814
|
|
|
815
815
|
// src/engine/collab/warn-host-blocks.ts
|
|
816
816
|
function warnHostBlocks() {
|
|
@@ -821,7 +821,7 @@ function warnHostBlocks() {
|
|
|
821
821
|
}
|
|
822
822
|
|
|
823
823
|
// src/engine/collab/collaboration-extension.ts
|
|
824
|
-
var providerKey =
|
|
824
|
+
var providerKey = chunkM5FREXRQ_cjs.createPluginKey(chunkM5FREXRQ_cjs.HISTORY_PROVIDER);
|
|
825
825
|
function providing(history) {
|
|
826
826
|
const provider = {
|
|
827
827
|
undo: (dryRun) => dryRun ? history.canUndo() : history.undo(),
|
|
@@ -831,7 +831,7 @@ function providing(history) {
|
|
|
831
831
|
}
|
|
832
832
|
function collaborationExtension(adapter) {
|
|
833
833
|
const { history } = adapter;
|
|
834
|
-
return
|
|
834
|
+
return chunkM5FREXRQ_cjs.defineExtension({
|
|
835
835
|
name: "collaboration",
|
|
836
836
|
plugins: history === void 0 ? [linkPlugin] : [linkPlugin, providing(history)],
|
|
837
837
|
onMount(editor) {
|
|
@@ -866,7 +866,7 @@ function collaborationExtension(adapter) {
|
|
|
866
866
|
|
|
867
867
|
Object.defineProperty(exports, "applyRemote", {
|
|
868
868
|
enumerable: true,
|
|
869
|
-
get: function () { return
|
|
869
|
+
get: function () { return chunkKFIE4OJE_cjs.applyRemote; }
|
|
870
870
|
});
|
|
871
871
|
exports.collaborationExtension = collaborationExtension;
|
|
872
872
|
exports.yjsCollaboration = yjsCollaboration;
|
package/dist/yjs.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { holdBinding, writeBlocks, createLayout, emptySpan, placeEntries, cleanEntry, applyRemote, holdSelection, restoreSelection, sharedChange, attrsMap, isAtomEmbed, textSteps, indexOf, regionOf, spanStart, deleteText, pointOf, markerOf, writeBlock, textLength, piecesOf, grow, insertInline, inlineOfOps, readMarker, regionNameOf, spanAt, definedEntries, regionStart, offsetIn, markAttribute } from './chunk-
|
|
2
|
-
export { applyRemote } from './chunk-
|
|
3
|
-
import { createPluginKey, HISTORY_PROVIDER, defineExtension, getPluginState, sameDoc, replaceDocStep, groupOf, setAttrsStep, setIndentStep, replaceBlockStep, splitBlockStep, joinBlocksStep } from './chunk-
|
|
4
|
-
import
|
|
5
|
-
import { blockById, createDoc, equalInline, sliceInline, inlineLength, equalNode, text } from './chunk-
|
|
1
|
+
import { holdBinding, writeBlocks, createLayout, emptySpan, placeEntries, cleanEntry, applyRemote, holdSelection, restoreSelection, sharedChange, attrsMap, isAtomEmbed, textSteps, indexOf, regionOf, spanStart, deleteText, pointOf, markerOf, writeBlock, textLength, piecesOf, grow, insertInline, inlineOfOps, readMarker, regionNameOf, spanAt, definedEntries, regionStart, offsetIn, markAttribute } from './chunk-OIQAO7QU.js';
|
|
2
|
+
export { applyRemote } from './chunk-OIQAO7QU.js';
|
|
3
|
+
import { createPluginKey, HISTORY_PROVIDER, defineExtension, getPluginState, sameDoc, replaceDocStep, groupOf, setAttrsStep, setIndentStep, replaceBlockStep, splitBlockStep, joinBlocksStep } from './chunk-IVWFPFUG.js';
|
|
4
|
+
import './chunk-3G4ZWUUY.js';
|
|
5
|
+
import { blockById, sameValue, createDoc, equalInline, sliceInline, inlineLength, equalNode, text } from './chunk-QLDXQOHQ.js';
|
|
6
6
|
import * as Y from 'yjs';
|
|
7
7
|
|
|
8
8
|
// src/yjs/required-regions.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quoin-editor",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Markdown-native block editor for React: live formatting, Notion-style menus, drag and drop, collaboration hooks and your own React blocks. MIT.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -264,6 +264,7 @@
|
|
|
264
264
|
"test:watch": "vitest",
|
|
265
265
|
"test:coverage": "vitest run --coverage",
|
|
266
266
|
"test:e2e": "playwright test",
|
|
267
|
+
"test:e2e:dist": "playwright test -c playwright.dist.config.ts --project=smoke",
|
|
267
268
|
"prepublishOnly": "npm run build && npm run check:css && npm run check:directives",
|
|
268
269
|
"record:demo": "node scripts/record-demo.mjs",
|
|
269
270
|
"render:og": "node scripts/render-og.mjs"
|