quoin-editor 1.0.0 → 1.0.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 +58 -0
- package/dist/ai.cjs +135 -94
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.d.cts +1 -1
- package/dist/ai.d.ts +1 -1
- package/dist/ai.js +62 -21
- package/dist/ai.js.map +1 -1
- package/dist/catalogue.cjs +25 -25
- package/dist/catalogue.d.cts +6 -6
- package/dist/catalogue.d.ts +6 -6
- package/dist/catalogue.js +17 -17
- package/dist/{chunk-ND5XJVK2.cjs → chunk-4SLJNZSM.cjs} +27 -23
- package/dist/chunk-4SLJNZSM.cjs.map +1 -0
- package/dist/{chunk-LCQSG4M6.js → chunk-4XFXB37X.js} +22 -18
- package/dist/chunk-4XFXB37X.js.map +1 -0
- package/dist/{chunk-AEJXZBVR.cjs → chunk-5MAYUGTE.cjs} +110 -103
- package/dist/chunk-5MAYUGTE.cjs.map +1 -0
- package/dist/{chunk-JDPTZUBW.js → chunk-623AOJM2.js} +4 -4
- package/dist/chunk-6NULZPVC.js +374 -0
- package/dist/chunk-6NULZPVC.js.map +1 -0
- package/dist/{chunk-2QCRZ7OL.cjs → chunk-6V6GGBDK.cjs} +12 -11
- package/dist/{chunk-2QCRZ7OL.cjs.map → chunk-6V6GGBDK.cjs.map} +1 -1
- package/dist/{chunk-WXMYDXPN.cjs → chunk-73653CJ4.cjs} +4 -3
- package/dist/chunk-73653CJ4.cjs.map +1 -0
- package/dist/{chunk-47MLKSI2.js → chunk-ADSJ42DO.js} +6 -6
- package/dist/{chunk-PWUEPDA3.cjs → chunk-AUOEM3SF.cjs} +44 -44
- package/dist/{chunk-PWUEPDA3.cjs.map → chunk-AUOEM3SF.cjs.map} +1 -1
- package/dist/{chunk-WQHV3MRE.cjs → chunk-BQANU5BH.cjs} +12 -12
- package/dist/{chunk-WQHV3MRE.cjs.map → chunk-BQANU5BH.cjs.map} +1 -1
- package/dist/{chunk-KXOBZGQO.js → chunk-C23RQVRK.js} +21 -14
- package/dist/chunk-C23RQVRK.js.map +1 -0
- package/dist/{chunk-2VDK27IF.cjs → chunk-CW3AFJBR.cjs} +312 -342
- package/dist/chunk-CW3AFJBR.cjs.map +1 -0
- package/dist/{chunk-MQ2XQ4MX.js → chunk-DUE3HCZD.js} +6 -6
- package/dist/chunk-DUE3HCZD.js.map +1 -0
- package/dist/{chunk-OMOBMXD5.cjs → chunk-EH5KXQXY.cjs} +7 -2
- package/dist/chunk-EH5KXQXY.cjs.map +1 -0
- package/dist/{chunk-ZS2WA357.js → chunk-EPARJI4V.js} +147 -129
- package/dist/chunk-EPARJI4V.js.map +1 -0
- package/dist/{chunk-HZSSEYJS.cjs → chunk-FDRUAL3Z.cjs} +30 -30
- package/dist/{chunk-HZSSEYJS.cjs.map → chunk-FDRUAL3Z.cjs.map} +1 -1
- package/dist/{chunk-T7SW6OWV.js → chunk-IQBMAE3F.js} +5 -5
- package/dist/{chunk-RUDWMKYX.js → chunk-JHQUHFLX.js} +8 -8
- package/dist/{chunk-HELJTLNC.cjs → chunk-KUYZMSMF.cjs} +12 -12
- package/dist/chunk-KUYZMSMF.cjs.map +1 -0
- package/dist/chunk-LE5XMIFJ.cjs +14 -0
- package/dist/chunk-LE5XMIFJ.cjs.map +1 -0
- package/dist/{chunk-EL2OEJQC.cjs → chunk-LLTEGXWZ.cjs} +56 -56
- package/dist/{chunk-EL2OEJQC.cjs.map → chunk-LLTEGXWZ.cjs.map} +1 -1
- package/dist/chunk-MQUCCSWG.js +14 -0
- package/dist/chunk-MQUCCSWG.js.map +1 -0
- package/dist/{chunk-NNDYYEW5.js → chunk-N4FGA3H4.js} +5 -5
- package/dist/{chunk-ZHOSSWUM.js → chunk-NEZJ7ZP5.js} +4 -3
- package/dist/chunk-NEZJ7ZP5.js.map +1 -0
- package/dist/{chunk-XEBWC7ZL.js → chunk-O4Z2WMFF.js} +7 -2
- package/dist/chunk-O4Z2WMFF.js.map +1 -0
- package/dist/{chunk-HJIQT3S5.js → chunk-OBMBSU2S.js} +100 -84
- package/dist/chunk-OBMBSU2S.js.map +1 -0
- package/dist/{chunk-KAVU6T6J.js → chunk-OSHZQR3W.js} +5 -5
- package/dist/{chunk-GTTPVJSD.cjs → chunk-P6KYXFZC.cjs} +265 -247
- package/dist/chunk-P6KYXFZC.cjs.map +1 -0
- package/dist/{chunk-CDELOHDY.cjs → chunk-R2BLBV43.cjs} +23 -23
- package/dist/{chunk-CDELOHDY.cjs.map → chunk-R2BLBV43.cjs.map} +1 -1
- package/dist/{chunk-NOKWNK2O.js → chunk-RJRX34BZ.js} +3 -2
- package/dist/{chunk-ZGZEJCRV.js → chunk-T43RZTUT.js} +166 -196
- package/dist/chunk-T43RZTUT.js.map +1 -0
- package/dist/chunk-TLGX43P6.cjs +374 -0
- package/dist/chunk-TLGX43P6.cjs.map +1 -0
- package/dist/{chunk-POBM7MGR.js → chunk-U3LOLYAU.js} +2 -2
- package/dist/{chunk-RDG4VI6E.cjs → chunk-UEKXVCKC.cjs} +103 -93
- package/dist/chunk-UEKXVCKC.cjs.map +1 -0
- package/dist/{chunk-PMWCQSQX.js → chunk-VCLL5C7J.js} +5 -5
- package/dist/{chunk-SG37UBDO.js → chunk-VRS6WCEK.js} +20 -10
- package/dist/chunk-VRS6WCEK.js.map +1 -0
- package/dist/{chunk-ZC24WB7Y.cjs → chunk-WEYDDIBQ.cjs} +14 -14
- package/dist/{chunk-ZC24WB7Y.cjs.map → chunk-WEYDDIBQ.cjs.map} +1 -1
- package/dist/{chunk-5DNCCN6X.cjs → chunk-X4HDKFW5.cjs} +27 -27
- package/dist/{chunk-5DNCCN6X.cjs.map → chunk-X4HDKFW5.cjs.map} +1 -1
- package/dist/{chunk-SLVDAHHK.cjs → chunk-X4P4TQXH.cjs} +5 -5
- package/dist/{chunk-SLVDAHHK.cjs.map → chunk-X4P4TQXH.cjs.map} +1 -1
- package/dist/{chunk-GLLXHMH2.cjs → chunk-XA3UEJIW.cjs} +3 -3
- package/dist/{chunk-GLLXHMH2.cjs.map → chunk-XA3UEJIW.cjs.map} +1 -1
- package/dist/{chunk-K574XHMM.js → chunk-YBMUEEM5.js} +2 -2
- package/dist/{chunk-PZ4GT5JO.cjs → chunk-ZKVOS57Q.cjs} +316 -300
- package/dist/chunk-ZKVOS57Q.cjs.map +1 -0
- package/dist/comments.cjs +113 -98
- package/dist/comments.cjs.map +1 -1
- package/dist/comments.d.cts +6 -1
- package/dist/comments.d.ts +6 -1
- package/dist/comments.js +32 -17
- package/dist/comments.js.map +1 -1
- package/dist/diff.cjs +44 -40
- package/dist/diff.cjs.map +1 -1
- package/dist/diff.js +17 -13
- package/dist/diff.js.map +1 -1
- package/dist/docx.cjs +60 -40
- package/dist/docx.cjs.map +1 -1
- package/dist/docx.d.cts +6 -0
- package/dist/docx.d.ts +6 -0
- package/dist/docx.js +32 -12
- package/dist/docx.js.map +1 -1
- package/dist/embed.cjs +9 -9
- package/dist/embed.d.cts +1 -1
- package/dist/embed.d.ts +1 -1
- package/dist/embed.js +8 -8
- package/dist/{emoji-extension-DpQ43HjE.d.ts → emoji-extension-CmPlRssm.d.ts} +1 -1
- package/dist/{emoji-extension-C12gDPm6.d.cts → emoji-extension-zJ6F7hW8.d.cts} +1 -1
- package/dist/emoji.cjs +8 -8
- package/dist/emoji.d.cts +3 -3
- package/dist/emoji.d.ts +3 -3
- package/dist/emoji.js +7 -7
- package/dist/engine.cjs +4 -4
- package/dist/engine.d.cts +2 -2
- package/dist/engine.d.ts +2 -2
- package/dist/engine.js +3 -3
- package/dist/{find-extension-_sbZEt3R.d.cts → find-extension-BcRyE9K4.d.cts} +1 -1
- package/dist/{find-extension-DKqLLSuP.d.ts → find-extension-CmFehyul.d.ts} +1 -1
- package/dist/find.cjs +8 -8
- package/dist/find.d.cts +2 -2
- package/dist/find.d.ts +2 -2
- package/dist/find.js +7 -7
- package/dist/headless.cjs +5 -5
- package/dist/headless.d.cts +4 -4
- package/dist/headless.d.ts +4 -4
- package/dist/headless.js +4 -4
- package/dist/{index-CgD72kHB.d.cts → index-CFPmCee4.d.cts} +5 -2
- package/dist/{index-DNYbTK3w.d.ts → index-DiCGV60d.d.ts} +5 -2
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -6
- package/dist/math.cjs +10 -10
- package/dist/math.d.cts +1 -1
- package/dist/math.d.ts +1 -1
- package/dist/math.js +9 -9
- package/dist/mention.cjs +10 -10
- package/dist/mention.d.cts +1 -1
- package/dist/mention.d.ts +1 -1
- package/dist/mention.js +9 -9
- package/dist/presence.cjs +98 -104
- package/dist/presence.cjs.map +1 -1
- package/dist/presence.d.cts +2 -2
- package/dist/presence.d.ts +2 -2
- package/dist/presence.js +66 -72
- package/dist/presence.js.map +1 -1
- package/dist/{stats-extension-Bly88uio.d.ts → stats-extension-DisOEbbI.d.ts} +1 -1
- package/dist/{stats-extension-CJPijvUb.d.cts → stats-extension-Dt1lgP3m.d.cts} +1 -1
- package/dist/stats.cjs +9 -9
- package/dist/stats.d.cts +3 -3
- package/dist/stats.d.ts +3 -3
- package/dist/stats.js +8 -8
- package/dist/styles.css +1 -1
- package/dist/{table-extension-Dzf4k6hI.d.ts → table-extension-BTMJnT7J.d.ts} +1 -1
- package/dist/{table-extension-BTLxFy2S.d.cts → table-extension-DxZz3jqp.d.cts} +1 -1
- package/dist/table.cjs +8 -8
- package/dist/table.d.cts +2 -2
- package/dist/table.d.ts +2 -2
- package/dist/table.js +7 -7
- package/dist/{toc-extension-DWm5alVj.d.ts → toc-extension-CR9U-l6j.d.ts} +1 -1
- package/dist/{toc-extension-B3-s6h2x.d.cts → toc-extension-DGHywOBv.d.cts} +1 -1
- package/dist/toc.cjs +8 -8
- package/dist/toc.d.cts +2 -2
- package/dist/toc.d.ts +2 -2
- package/dist/toc.js +7 -7
- package/dist/{types-a1CRBlEh.d.ts → types-C6_QkXzy.d.ts} +1 -9
- package/dist/{types-Cz7XJLaK.d.cts → types-CJ7Gq3GX.d.cts} +1 -9
- package/dist/{view-controller-DSHw0ltQ.d.cts → view-controller-BD1KwYfE.d.cts} +6 -19
- package/dist/{view-controller-UbpzblGl.d.ts → view-controller-y4cb60ue.d.ts} +6 -19
- package/dist/view.cjs +6 -6
- package/dist/view.js +3 -3
- package/dist/yjs.cjs +302 -412
- package/dist/yjs.cjs.map +1 -1
- package/dist/yjs.d.cts +3 -3
- package/dist/yjs.d.ts +3 -3
- package/dist/yjs.js +211 -321
- package/dist/yjs.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2VDK27IF.cjs.map +0 -1
- package/dist/chunk-AEJXZBVR.cjs.map +0 -1
- package/dist/chunk-E75EHRPA.cjs +0 -175
- package/dist/chunk-E75EHRPA.cjs.map +0 -1
- package/dist/chunk-GTTPVJSD.cjs.map +0 -1
- package/dist/chunk-HELJTLNC.cjs.map +0 -1
- package/dist/chunk-HJIQT3S5.js.map +0 -1
- package/dist/chunk-JEIFJHEI.js +0 -14
- package/dist/chunk-JEIFJHEI.js.map +0 -1
- package/dist/chunk-KXOBZGQO.js.map +0 -1
- package/dist/chunk-LCQSG4M6.js.map +0 -1
- package/dist/chunk-MQ2XQ4MX.js.map +0 -1
- package/dist/chunk-ND5XJVK2.cjs.map +0 -1
- package/dist/chunk-OMOBMXD5.cjs.map +0 -1
- package/dist/chunk-PZ4GT5JO.cjs.map +0 -1
- package/dist/chunk-QAW5NH6S.cjs +0 -14
- package/dist/chunk-QAW5NH6S.cjs.map +0 -1
- package/dist/chunk-RDG4VI6E.cjs.map +0 -1
- package/dist/chunk-SG37UBDO.js.map +0 -1
- package/dist/chunk-TC4DARU2.js +0 -175
- package/dist/chunk-TC4DARU2.js.map +0 -1
- package/dist/chunk-WXMYDXPN.cjs.map +0 -1
- package/dist/chunk-XEBWC7ZL.js.map +0 -1
- package/dist/chunk-ZGZEJCRV.js.map +0 -1
- package/dist/chunk-ZHOSSWUM.js.map +0 -1
- package/dist/chunk-ZS2WA357.js.map +0 -1
- /package/dist/{chunk-JDPTZUBW.js.map → chunk-623AOJM2.js.map} +0 -0
- /package/dist/{chunk-47MLKSI2.js.map → chunk-ADSJ42DO.js.map} +0 -0
- /package/dist/{chunk-T7SW6OWV.js.map → chunk-IQBMAE3F.js.map} +0 -0
- /package/dist/{chunk-RUDWMKYX.js.map → chunk-JHQUHFLX.js.map} +0 -0
- /package/dist/{chunk-NNDYYEW5.js.map → chunk-N4FGA3H4.js.map} +0 -0
- /package/dist/{chunk-KAVU6T6J.js.map → chunk-OSHZQR3W.js.map} +0 -0
- /package/dist/{chunk-NOKWNK2O.js.map → chunk-RJRX34BZ.js.map} +0 -0
- /package/dist/{chunk-POBM7MGR.js.map → chunk-U3LOLYAU.js.map} +0 -0
- /package/dist/{chunk-PMWCQSQX.js.map → chunk-VCLL5C7J.js.map} +0 -0
- /package/dist/{chunk-K574XHMM.js.map → chunk-YBMUEEM5.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var _chunk2QCRZ7OLcjs = require('./chunk-2QCRZ7OL.cjs');
|
|
4
3
|
|
|
4
|
+
var _chunk6V6GGBDKcjs = require('./chunk-6V6GGBDK.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -55,7 +55,8 @@ var _chunk2QCRZ7OLcjs = require('./chunk-2QCRZ7OL.cjs');
|
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
|
|
59
|
+
var _chunk4SLJNZSMcjs = require('./chunk-4SLJNZSM.cjs');
|
|
59
60
|
|
|
60
61
|
// src/engine/transform/step.ts
|
|
61
62
|
var StepError = class extends Error {
|
|
@@ -64,7 +65,7 @@ var identityMap = (pos) => pos;
|
|
|
64
65
|
|
|
65
66
|
// src/engine/transform/step-access.ts
|
|
66
67
|
function requireBlock(doc, id) {
|
|
67
|
-
const block =
|
|
68
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, id);
|
|
68
69
|
if (block === void 0) throw new StepError(`no block "${id}"`);
|
|
69
70
|
return block;
|
|
70
71
|
}
|
|
@@ -74,7 +75,7 @@ function requireRegion(block, region) {
|
|
|
74
75
|
}
|
|
75
76
|
function requireRange(block, region, from, to) {
|
|
76
77
|
const inline = requireRegion(block, region);
|
|
77
|
-
const length =
|
|
78
|
+
const length = _chunk4SLJNZSMcjs.inlineLength.call(void 0, inline);
|
|
78
79
|
if (!(Number.isInteger(from) && Number.isInteger(to) && from >= 0 && from <= to && to <= length)) {
|
|
79
80
|
throw new StepError(`range ${from} to ${to} is outside 0 to ${length} in "${block.id}" ${region}`);
|
|
80
81
|
}
|
|
@@ -98,7 +99,7 @@ function patchAttrs(attrs, patch) {
|
|
|
98
99
|
}
|
|
99
100
|
function patchChangesAttrs(attrs, patch) {
|
|
100
101
|
return Object.keys(patch).some(
|
|
101
|
-
(key) => patch[key] === void 0 ? Object.hasOwn(attrs, key) : !
|
|
102
|
+
(key) => patch[key] === void 0 ? Object.hasOwn(attrs, key) : !_chunk6V6GGBDKcjs.sameValue.call(void 0, attrs[key], patch[key])
|
|
102
103
|
);
|
|
103
104
|
}
|
|
104
105
|
function previousValues(attrs, patch) {
|
|
@@ -120,7 +121,7 @@ function setAttrsStep(block, patch) {
|
|
|
120
121
|
stepType: "setAttrs",
|
|
121
122
|
apply(doc) {
|
|
122
123
|
requireBlock(doc, block);
|
|
123
|
-
return { doc:
|
|
124
|
+
return { doc: _chunk4SLJNZSMcjs.updateBlock.call(void 0, doc, block, (b) => ({ ...b, attrs: patchAttrs(b.attrs, patch) })), map: identityMap };
|
|
124
125
|
},
|
|
125
126
|
invert: (before) => setAttrsStep(block, previousValues(requireBlock(before, block).attrs, patch)),
|
|
126
127
|
toJSON: () => ({ stepType: "setAttrs", block, patch: patchToJSON(patch) })
|
|
@@ -134,7 +135,7 @@ function setIndentStep(block, indent2) {
|
|
|
134
135
|
if (!Number.isInteger(indent2) || indent2 < 0) {
|
|
135
136
|
throw new StepError(`indent ${indent2} is not a non-negative integer`);
|
|
136
137
|
}
|
|
137
|
-
return { doc:
|
|
138
|
+
return { doc: _chunk4SLJNZSMcjs.updateBlock.call(void 0, doc, block, (b) => ({ ...b, indent: indent2 })), map: identityMap };
|
|
138
139
|
},
|
|
139
140
|
invert: (before) => setIndentStep(block, requireBlock(before, block).indent),
|
|
140
141
|
toJSON: () => ({ stepType: "setIndent", block, indent: indent2 })
|
|
@@ -143,7 +144,7 @@ function setIndentStep(block, indent2) {
|
|
|
143
144
|
|
|
144
145
|
// src/engine/transform/block-edges.ts
|
|
145
146
|
function orderedRegions(block) {
|
|
146
|
-
return Object.keys(block.regions).sort(
|
|
147
|
+
return Object.keys(block.regions).sort(_chunk4SLJNZSMcjs.compareRegionNames);
|
|
147
148
|
}
|
|
148
149
|
function firstRegion(block) {
|
|
149
150
|
return _nullishCoalesce(orderedRegions(block)[0], () => ( null));
|
|
@@ -156,12 +157,12 @@ function blockEnd(block) {
|
|
|
156
157
|
return {
|
|
157
158
|
block: block.id,
|
|
158
159
|
region: _nullishCoalesce(region, () => ( "")),
|
|
159
|
-
offset: region === void 0 ? 0 :
|
|
160
|
+
offset: region === void 0 ? 0 : _chunk4SLJNZSMcjs.inlineLength.call(void 0, block.regions[region])
|
|
160
161
|
};
|
|
161
162
|
}
|
|
162
163
|
function clampPos(block, pos) {
|
|
163
164
|
if (!Object.hasOwn(block.regions, pos.region)) return blockStart(block);
|
|
164
|
-
const length =
|
|
165
|
+
const length = _chunk4SLJNZSMcjs.inlineLength.call(void 0, block.regions[pos.region]);
|
|
165
166
|
return pos.offset > length ? { ...pos, offset: length } : pos;
|
|
166
167
|
}
|
|
167
168
|
|
|
@@ -176,7 +177,7 @@ function insertBlocksStep(index, blocks) {
|
|
|
176
177
|
if (doc.index.has(id) || ids.has(id)) throw new StepError(`block "${id}" is already in the document`);
|
|
177
178
|
ids.add(id);
|
|
178
179
|
}
|
|
179
|
-
return { doc:
|
|
180
|
+
return { doc: _chunk4SLJNZSMcjs.replaceBlocks.call(void 0, doc, index, 0, blocks), map: identityMap };
|
|
180
181
|
},
|
|
181
182
|
invert: () => removeBlocksStep(index, blocks.length),
|
|
182
183
|
toJSON: () => ({ stepType: "insertBlocks", index, blocks })
|
|
@@ -196,7 +197,7 @@ function removeBlocksStep(index, count2) {
|
|
|
196
197
|
const after = following && blockStart(following);
|
|
197
198
|
return _nullishCoalesce((assoc === -1 ? _nullishCoalesce(before, () => ( after)) : _nullishCoalesce(after, () => ( before))), () => ( pos));
|
|
198
199
|
};
|
|
199
|
-
return { doc:
|
|
200
|
+
return { doc: _chunk4SLJNZSMcjs.replaceBlocks.call(void 0, doc, index, count2, []), map };
|
|
200
201
|
},
|
|
201
202
|
invert: (before) => insertBlocksStep(index, before.blocks.slice(index, index + count2)),
|
|
202
203
|
toJSON: () => ({ stepType: "removeBlocks", index, count: count2 })
|
|
@@ -210,14 +211,14 @@ function moveBlocksStep(from, count2, to) {
|
|
|
210
211
|
requireSpan(to, count2, doc.blocks.length);
|
|
211
212
|
const moved2 = doc.blocks.slice(from, from + count2);
|
|
212
213
|
const rest = [...doc.blocks.slice(0, from), ...doc.blocks.slice(from + count2)];
|
|
213
|
-
return { doc:
|
|
214
|
+
return { doc: _chunk4SLJNZSMcjs.createDoc.call(void 0, [...rest.slice(0, to), ...moved2, ...rest.slice(to)]), map: identityMap };
|
|
214
215
|
},
|
|
215
216
|
invert: () => moveBlocksStep(to, count2, from),
|
|
216
217
|
toJSON: () => ({ stepType: "moveBlocks", from, count: count2, to })
|
|
217
218
|
});
|
|
218
219
|
}
|
|
219
220
|
var keepsRegions = (before, after) => Object.entries(before.regions).every(
|
|
220
|
-
([name, inline]) => Object.hasOwn(after.regions, name) &&
|
|
221
|
+
([name, inline]) => Object.hasOwn(after.regions, name) && _chunk4SLJNZSMcjs.equalInline.call(void 0, inline, after.regions[name])
|
|
221
222
|
);
|
|
222
223
|
function replaceBlockStep(block) {
|
|
223
224
|
const clamp = (pos) => pos.block === block.id ? clampPos(block, pos) : pos;
|
|
@@ -225,7 +226,7 @@ function replaceBlockStep(block) {
|
|
|
225
226
|
stepType: "replaceBlock",
|
|
226
227
|
apply(doc) {
|
|
227
228
|
const map = keepsRegions(requireBlock(doc, block.id), block) ? identityMap : clamp;
|
|
228
|
-
return { doc:
|
|
229
|
+
return { doc: _chunk4SLJNZSMcjs.updateBlock.call(void 0, doc, block.id, () => block), map };
|
|
229
230
|
},
|
|
230
231
|
invert: (before) => replaceBlockStep(requireBlock(before, block.id)),
|
|
231
232
|
toJSON: () => ({ stepType: "replaceBlock", block })
|
|
@@ -234,7 +235,7 @@ function replaceBlockStep(block) {
|
|
|
234
235
|
|
|
235
236
|
// src/engine/transform/replace-inline-step.ts
|
|
236
237
|
function replaceInlineStep(block, region, from, to, slice) {
|
|
237
|
-
const inserted =
|
|
238
|
+
const inserted = _chunk4SLJNZSMcjs.inlineLength.call(void 0, slice);
|
|
238
239
|
const map = (pos, assoc = 1) => {
|
|
239
240
|
if (pos.block !== block || pos.region !== region || pos.offset < from) return pos;
|
|
240
241
|
if (pos.offset > to) return { ...pos, offset: pos.offset + inserted - (to - from) };
|
|
@@ -244,12 +245,12 @@ function replaceInlineStep(block, region, from, to, slice) {
|
|
|
244
245
|
stepType: "replaceInline",
|
|
245
246
|
apply(doc) {
|
|
246
247
|
const inline = requireRange(requireBlock(doc, block), region, from, to);
|
|
247
|
-
const next =
|
|
248
|
+
const next = _chunk4SLJNZSMcjs.updateBlock.call(void 0, doc, block, (b) => withRegion(b, region, _chunk4SLJNZSMcjs.replaceInline.call(void 0, inline, from, to, slice)));
|
|
248
249
|
return { doc: next, map };
|
|
249
250
|
},
|
|
250
251
|
invert(before) {
|
|
251
252
|
const inline = requireRange(requireBlock(before, block), region, from, to);
|
|
252
|
-
return replaceInlineStep(block, region, from, from + inserted,
|
|
253
|
+
return replaceInlineStep(block, region, from, from + inserted, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, from, to));
|
|
253
254
|
},
|
|
254
255
|
toJSON: () => ({ stepType: "replaceInline", block, region, from, to, slice })
|
|
255
256
|
});
|
|
@@ -262,24 +263,24 @@ function markStep(stepType, target, mark, change) {
|
|
|
262
263
|
stepType,
|
|
263
264
|
apply(doc) {
|
|
264
265
|
const inline = requireRange(requireBlock(doc, block), region, from, to);
|
|
265
|
-
return { doc:
|
|
266
|
+
return { doc: _chunk4SLJNZSMcjs.updateBlock.call(void 0, doc, block, (b) => withRegion(b, region, change(inline))), map: identityMap };
|
|
266
267
|
},
|
|
267
268
|
invert(before) {
|
|
268
269
|
const inline = requireRange(requireBlock(before, block), region, from, to);
|
|
269
|
-
return replaceInlineStep(block, region, from, to,
|
|
270
|
+
return replaceInlineStep(block, region, from, to, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, from, to));
|
|
270
271
|
},
|
|
271
272
|
toJSON: () => ({ stepType, ...target, mark })
|
|
272
273
|
});
|
|
273
274
|
}
|
|
274
275
|
function addMarkStep(block, region, from, to, mark) {
|
|
275
|
-
return markStep("addMark", { block, region, from, to }, mark, (inline) =>
|
|
276
|
+
return markStep("addMark", { block, region, from, to }, mark, (inline) => _chunk4SLJNZSMcjs.addMarkRange.call(void 0, inline, from, to, mark));
|
|
276
277
|
}
|
|
277
278
|
function removeMarkStep(block, region, from, to, mark) {
|
|
278
279
|
return markStep(
|
|
279
280
|
"removeMark",
|
|
280
281
|
{ block, region, from, to },
|
|
281
282
|
mark,
|
|
282
|
-
(inline) =>
|
|
283
|
+
(inline) => _chunk4SLJNZSMcjs.removeMarkRange.call(void 0, inline, from, to, mark)
|
|
283
284
|
);
|
|
284
285
|
}
|
|
285
286
|
|
|
@@ -300,10 +301,31 @@ function commonSuffix(a, b) {
|
|
|
300
301
|
}
|
|
301
302
|
|
|
302
303
|
// src/engine/transform/map-text-change.ts
|
|
304
|
+
var DIFF_LIMIT = 1e3;
|
|
303
305
|
function mapTextChange(before, after) {
|
|
304
306
|
const from = commonPrefix(before, after);
|
|
305
|
-
const
|
|
306
|
-
|
|
307
|
+
const to = Math.min(commonSuffix(before, after), before.length - from, after.length - from);
|
|
308
|
+
const removed = before.slice(from, before.length - to);
|
|
309
|
+
const added = after.slice(from, after.length - to);
|
|
310
|
+
const ops = removed.length + added.length > DIFF_LIMIT ? [
|
|
311
|
+
{ op: "delete", items: removed },
|
|
312
|
+
{ op: "insert", items: added }
|
|
313
|
+
] : _chunk6V6GGBDKcjs.diffSequences.call(void 0, removed.split(""), added.split(""));
|
|
314
|
+
return (offset, assoc) => {
|
|
315
|
+
let b = from;
|
|
316
|
+
let a = from;
|
|
317
|
+
let replaced = false;
|
|
318
|
+
if (offset < b) return offset;
|
|
319
|
+
for (const { op, items } of ops) {
|
|
320
|
+
const n = items.length;
|
|
321
|
+
if (op !== "insert" && offset < b + n) return op === "equal" ? a + offset - b : a;
|
|
322
|
+
if (op === "insert" && offset === b && !replaced && assoc < 0) return a;
|
|
323
|
+
replaced = op === "delete" && n > 0;
|
|
324
|
+
if (op !== "insert") b += n;
|
|
325
|
+
if (op !== "delete") a += n;
|
|
326
|
+
}
|
|
327
|
+
return a + offset - b;
|
|
328
|
+
};
|
|
307
329
|
}
|
|
308
330
|
|
|
309
331
|
// src/engine/transform/replace-doc-step.ts
|
|
@@ -314,13 +336,13 @@ function replaceDocStep(next) {
|
|
|
314
336
|
const regionMaps = /* @__PURE__ */ new Map();
|
|
315
337
|
const map = (pos, assoc = 1) => {
|
|
316
338
|
const { block, region } = pos;
|
|
317
|
-
const survivor =
|
|
339
|
+
const survivor = _chunk4SLJNZSMcjs.blockById.call(void 0, next, block);
|
|
318
340
|
if (survivor !== void 0) {
|
|
319
341
|
const key = JSON.stringify([block, region]);
|
|
320
342
|
let regionMap = regionMaps.get(key);
|
|
321
343
|
if (regionMap === void 0) {
|
|
322
|
-
const before =
|
|
323
|
-
regionMap = mapTextChange(before,
|
|
344
|
+
const before = _chunk4SLJNZSMcjs.inlineText.call(void 0, _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, doc, block), 'optionalAccess', _2 => _2.regions, 'access', _3 => _3[region]]), () => ( [])));
|
|
345
|
+
regionMap = mapTextChange(before, _chunk4SLJNZSMcjs.inlineText.call(void 0, _nullishCoalesce(survivor.regions[region], () => ( []))));
|
|
324
346
|
regionMaps.set(key, regionMap);
|
|
325
347
|
}
|
|
326
348
|
const offset = regionMap(pos.offset, assoc);
|
|
@@ -354,10 +376,10 @@ function splitBlockStep(block, region, offset, created) {
|
|
|
354
376
|
type: created.type,
|
|
355
377
|
indent: created.indent,
|
|
356
378
|
attrs: created.attrs,
|
|
357
|
-
regions: { ...created.regions, [created.region]:
|
|
379
|
+
regions: { ...created.regions, [created.region]: _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, offset, _chunk4SLJNZSMcjs.inlineLength.call(void 0, inline)) }
|
|
358
380
|
};
|
|
359
|
-
const head = withRegion(target, region,
|
|
360
|
-
return { doc:
|
|
381
|
+
const head = withRegion(target, region, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, 0, offset));
|
|
382
|
+
return { doc: _chunk4SLJNZSMcjs.replaceBlocks.call(void 0, doc, _chunk4SLJNZSMcjs.indexOfBlock.call(void 0, doc, block), 1, [head, tail]), map };
|
|
361
383
|
},
|
|
362
384
|
invert: () => joinBlocksStep(block, region, created.id, created.region),
|
|
363
385
|
toJSON: () => ({ stepType: "splitBlock", block, region, offset, created })
|
|
@@ -369,17 +391,17 @@ function joinBlocksStep(target, targetRegion, source, sourceRegion) {
|
|
|
369
391
|
apply(doc) {
|
|
370
392
|
const first = requireBlock(doc, target);
|
|
371
393
|
const second = requireBlock(doc, source);
|
|
372
|
-
const index =
|
|
373
|
-
if (
|
|
394
|
+
const index = _chunk4SLJNZSMcjs.indexOfBlock.call(void 0, doc, target);
|
|
395
|
+
if (_chunk4SLJNZSMcjs.indexOfBlock.call(void 0, doc, source) !== index + 1) throw new StepError(`block "${source}" does not follow "${target}"`);
|
|
374
396
|
const head = requireRegion(first, targetRegion);
|
|
375
|
-
const length =
|
|
376
|
-
const merged =
|
|
397
|
+
const length = _chunk4SLJNZSMcjs.inlineLength.call(void 0, head);
|
|
398
|
+
const merged = _chunk4SLJNZSMcjs.replaceInline.call(void 0, head, length, length, requireRegion(second, sourceRegion));
|
|
377
399
|
const map = (pos) => pos.block === source ? { block: target, region: targetRegion, offset: length + (pos.region === sourceRegion ? pos.offset : 0) } : pos;
|
|
378
|
-
return { doc:
|
|
400
|
+
return { doc: _chunk4SLJNZSMcjs.replaceBlocks.call(void 0, doc, index, 2, [withRegion(first, targetRegion, merged)]), map };
|
|
379
401
|
},
|
|
380
402
|
invert(before) {
|
|
381
403
|
const { id, type, attrs, indent: indent2, regions } = requireBlock(before, source);
|
|
382
|
-
const length =
|
|
404
|
+
const length = _chunk4SLJNZSMcjs.inlineLength.call(void 0, requireRegion(requireBlock(before, target), targetRegion));
|
|
383
405
|
const created = { id, type, attrs, indent: indent2, region: sourceRegion, regions };
|
|
384
406
|
return splitBlockStep(target, targetRegion, length, created);
|
|
385
407
|
},
|
|
@@ -388,9 +410,9 @@ function joinBlocksStep(target, targetRegion, source, sourceRegion) {
|
|
|
388
410
|
}
|
|
389
411
|
|
|
390
412
|
// src/engine/transform/step-json.ts
|
|
391
|
-
var isRegions = (value) =>
|
|
392
|
-
var isMark = (value) =>
|
|
393
|
-
var isBlockShape = (value) =>
|
|
413
|
+
var isRegions = (value) => _chunk4SLJNZSMcjs.isRecord.call(void 0, value) && Object.values(value).every(Array.isArray);
|
|
414
|
+
var isMark = (value) => _chunk4SLJNZSMcjs.isRecord.call(void 0, value) && typeof value.type === "string" && (value.attrs === void 0 || _chunk4SLJNZSMcjs.isRecord.call(void 0, value.attrs));
|
|
415
|
+
var isBlockShape = (value) => _chunk4SLJNZSMcjs.isRecord.call(void 0, value) && typeof value.id === "string" && typeof value.type === "string" && Number.isInteger(value.indent) && _chunk4SLJNZSMcjs.isRecord.call(void 0, value.attrs);
|
|
394
416
|
var isBlock = (value) => isBlockShape(value) && isRegions(value.regions);
|
|
395
417
|
var isCreated = (value) => isBlockShape(value) && typeof value.region === "string" && (value.regions === void 0 || isRegions(value.regions));
|
|
396
418
|
var isString = (value) => typeof value === "string";
|
|
@@ -402,75 +424,69 @@ function docOf(blocks) {
|
|
|
402
424
|
if (new Set(blocks.map((block) => block.id)).size !== blocks.length) {
|
|
403
425
|
throw new StepError("a replaceDoc step repeats a block id");
|
|
404
426
|
}
|
|
405
|
-
return
|
|
427
|
+
return _chunk4SLJNZSMcjs.createDoc.call(void 0, blocks);
|
|
406
428
|
}
|
|
407
429
|
function reader(json) {
|
|
408
|
-
|
|
430
|
+
return (key, accept) => {
|
|
409
431
|
const value = json[key];
|
|
410
432
|
if (!accept(value)) throw new StepError(`invalid "${key}" in a ${json.stepType} step`);
|
|
411
433
|
return value;
|
|
412
434
|
};
|
|
413
|
-
return {
|
|
414
|
-
string: (key) => read(key, isString),
|
|
415
|
-
integer: (key) => read(key, isInteger),
|
|
416
|
-
inline: (key) => read(key, isInline),
|
|
417
|
-
record: (key) => read(key, _chunkND5XJVK2cjs.isRecord),
|
|
418
|
-
mark: (key) => read(key, isMark),
|
|
419
|
-
markOrType: (key) => read(key, isMarkOrType),
|
|
420
|
-
block: (key) => read(key, isBlock),
|
|
421
|
-
blocks: (key) => read(key, areBlocks),
|
|
422
|
-
created: (key) => read(key, isCreated)
|
|
423
|
-
};
|
|
424
435
|
}
|
|
425
436
|
function stepFromJSON(json) {
|
|
426
|
-
const
|
|
437
|
+
const read = reader(json);
|
|
427
438
|
switch (json.stepType) {
|
|
428
439
|
case "replaceInline":
|
|
429
440
|
return replaceInlineStep(
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
441
|
+
read("block", isString),
|
|
442
|
+
read("region", isString),
|
|
443
|
+
read("from", isInteger),
|
|
444
|
+
read("to", isInteger),
|
|
445
|
+
read("slice", isInline)
|
|
435
446
|
);
|
|
436
447
|
case "addMark":
|
|
437
448
|
return addMarkStep(
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
449
|
+
read("block", isString),
|
|
450
|
+
read("region", isString),
|
|
451
|
+
read("from", isInteger),
|
|
452
|
+
read("to", isInteger),
|
|
453
|
+
read("mark", isMark)
|
|
443
454
|
);
|
|
444
455
|
case "removeMark":
|
|
445
456
|
return removeMarkStep(
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
457
|
+
read("block", isString),
|
|
458
|
+
read("region", isString),
|
|
459
|
+
read("from", isInteger),
|
|
460
|
+
read("to", isInteger),
|
|
461
|
+
read("mark", isMarkOrType)
|
|
451
462
|
);
|
|
452
463
|
case "setAttrs":
|
|
453
|
-
return setAttrsStep(
|
|
464
|
+
return setAttrsStep(read("block", isString), patchFromJSON(read("patch", _chunk4SLJNZSMcjs.isRecord)));
|
|
454
465
|
case "setIndent":
|
|
455
|
-
return setIndentStep(
|
|
466
|
+
return setIndentStep(read("block", isString), read("indent", isInteger));
|
|
456
467
|
case "insertBlocks":
|
|
457
|
-
return insertBlocksStep(
|
|
468
|
+
return insertBlocksStep(read("index", isInteger), read("blocks", areBlocks));
|
|
458
469
|
case "removeBlocks":
|
|
459
|
-
return removeBlocksStep(
|
|
470
|
+
return removeBlocksStep(read("index", isInteger), read("count", isInteger));
|
|
460
471
|
case "moveBlocks":
|
|
461
|
-
return moveBlocksStep(
|
|
472
|
+
return moveBlocksStep(read("from", isInteger), read("count", isInteger), read("to", isInteger));
|
|
462
473
|
case "replaceBlock":
|
|
463
|
-
return replaceBlockStep(
|
|
474
|
+
return replaceBlockStep(read("block", isBlock));
|
|
464
475
|
case "replaceDoc":
|
|
465
|
-
return replaceDocStep(docOf(
|
|
476
|
+
return replaceDocStep(docOf(read("blocks", areBlocks)));
|
|
466
477
|
case "splitBlock":
|
|
467
|
-
return splitBlockStep(
|
|
478
|
+
return splitBlockStep(
|
|
479
|
+
read("block", isString),
|
|
480
|
+
read("region", isString),
|
|
481
|
+
read("offset", isInteger),
|
|
482
|
+
read("created", isCreated)
|
|
483
|
+
);
|
|
468
484
|
case "joinBlocks":
|
|
469
485
|
return joinBlocksStep(
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
486
|
+
read("target", isString),
|
|
487
|
+
read("targetRegion", isString),
|
|
488
|
+
read("source", isString),
|
|
489
|
+
read("sourceRegion", isString)
|
|
474
490
|
);
|
|
475
491
|
default:
|
|
476
492
|
throw new StepError(`unknown step type "${json.stepType}"`);
|
|
@@ -479,7 +495,7 @@ function stepFromJSON(json) {
|
|
|
479
495
|
|
|
480
496
|
// src/engine/model/position.ts
|
|
481
497
|
function comparePos(doc, a, b) {
|
|
482
|
-
return
|
|
498
|
+
return _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, a.block) - _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, b.block) || _chunk4SLJNZSMcjs.compareRegionNames.call(void 0, a.region, b.region) || a.offset - b.offset;
|
|
483
499
|
}
|
|
484
500
|
function orderedRange(doc, anchor, head) {
|
|
485
501
|
return comparePos(doc, anchor, head) <= 0 ? { from: anchor, to: head } : { from: head, to: anchor };
|
|
@@ -518,7 +534,7 @@ function selectedBlockIds(doc, selection) {
|
|
|
518
534
|
if (selection === null) return [];
|
|
519
535
|
if (selection.kind === "node") return [selection.block];
|
|
520
536
|
const ends = selection.kind === "text" ? [selection.anchor.block, selection.head.block] : [selection.anchor, selection.head];
|
|
521
|
-
const [first, second] = ends.map((id) =>
|
|
537
|
+
const [first, second] = ends.map((id) => _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, id));
|
|
522
538
|
return doc.blocks.slice(Math.min(first, second), Math.max(first, second) + 1).map((block) => block.id);
|
|
523
539
|
}
|
|
524
540
|
function isBackward(doc, selection) {
|
|
@@ -526,7 +542,7 @@ function isBackward(doc, selection) {
|
|
|
526
542
|
const { anchor, head } = selection;
|
|
527
543
|
return doc.index.has(anchor.block) && doc.index.has(head.block) && comparePos(doc, anchor, head) > 0;
|
|
528
544
|
}
|
|
529
|
-
return doc.index.has(selection.anchor) && doc.index.has(selection.head) &&
|
|
545
|
+
return doc.index.has(selection.anchor) && doc.index.has(selection.head) && _chunk4SLJNZSMcjs.indexOfBlock.call(void 0, doc, selection.anchor) > _chunk4SLJNZSMcjs.indexOfBlock.call(void 0, doc, selection.head);
|
|
530
546
|
}
|
|
531
547
|
var blockProbe = (block) => ({ block, region: "", offset: 0 });
|
|
532
548
|
function mapSelection(selection, map, doc) {
|
|
@@ -545,18 +561,18 @@ function mapSelection(selection, map, doc) {
|
|
|
545
561
|
return anchor === selection.anchor && head === selection.head ? selection : textSelection(anchor, head);
|
|
546
562
|
}
|
|
547
563
|
function primaryRegion(schema, block) {
|
|
548
|
-
const spec =
|
|
564
|
+
const spec = _chunk4SLJNZSMcjs.specFor.call(void 0, schema, block.type);
|
|
549
565
|
if (spec.flow === "text" && spec.primaryRegion !== void 0 && Object.hasOwn(block.regions, spec.primaryRegion)) {
|
|
550
566
|
return spec.primaryRegion;
|
|
551
567
|
}
|
|
552
568
|
return firstRegion(block);
|
|
553
569
|
}
|
|
554
570
|
function flowEdge(schema, block, atEnd) {
|
|
555
|
-
const region =
|
|
556
|
-
return region === null ? null : { block: block.id, region, offset: atEnd ?
|
|
571
|
+
const region = _chunk4SLJNZSMcjs.specFor.call(void 0, schema, block.type).flow === "text" ? primaryRegion(schema, block) : null;
|
|
572
|
+
return region === null ? null : { block: block.id, region, offset: atEnd ? _chunk4SLJNZSMcjs.inlineLength.call(void 0, block.regions[region]) : 0 };
|
|
557
573
|
}
|
|
558
574
|
function edge(doc, schema, blockId, atEnd) {
|
|
559
|
-
const block = doc.blocks[
|
|
575
|
+
const block = doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, blockId)];
|
|
560
576
|
const flow = flowEdge(schema, block, atEnd);
|
|
561
577
|
if (flow !== null) return textSelection(flow);
|
|
562
578
|
if (Object.keys(block.regions).length === 0) return nodeSelection(blockId);
|
|
@@ -572,13 +588,13 @@ function defaultSelection(doc, schema) {
|
|
|
572
588
|
return doc.blocks.length === 0 ? null : startOf(doc, schema, doc.blocks[0].id);
|
|
573
589
|
}
|
|
574
590
|
function validatePos(doc, schema, pos) {
|
|
575
|
-
const block =
|
|
591
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, pos.block);
|
|
576
592
|
if (block === void 0) return null;
|
|
577
593
|
if (!Object.hasOwn(block.regions, pos.region)) {
|
|
578
594
|
const region = primaryRegion(schema, block);
|
|
579
595
|
return region === null ? nodeSelection(block.id) : { block: block.id, region, offset: 0 };
|
|
580
596
|
}
|
|
581
|
-
const length =
|
|
597
|
+
const length = _chunk4SLJNZSMcjs.inlineLength.call(void 0, block.regions[pos.region]);
|
|
582
598
|
return pos.offset >= 0 && pos.offset <= length ? pos : { ...pos, offset: Math.min(Math.max(pos.offset, 0), length) };
|
|
583
599
|
}
|
|
584
600
|
function nearestFlow(doc, schema, from, to, atEnd) {
|
|
@@ -589,14 +605,14 @@ function nearestFlow(doc, schema, from, to, atEnd) {
|
|
|
589
605
|
}
|
|
590
606
|
return null;
|
|
591
607
|
}
|
|
592
|
-
var inFlow = (doc, schema, pos) => _optionalChain([flowEdge, 'call', _6 => _6(schema, doc.blocks[
|
|
608
|
+
var inFlow = (doc, schema, pos) => _optionalChain([flowEdge, 'call', _6 => _6(schema, doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, pos.block)], false), 'optionalAccess', _7 => _7.region]) === pos.region;
|
|
593
609
|
function clampToFlow(doc, schema, selection) {
|
|
594
610
|
const { anchor, head } = selection;
|
|
595
611
|
if (anchor.block === head.block) return selection;
|
|
596
612
|
const backward = comparePos(doc, anchor, head) > 0;
|
|
597
613
|
const [from, to] = backward ? [head, anchor] : [anchor, head];
|
|
598
|
-
const first =
|
|
599
|
-
const last =
|
|
614
|
+
const first = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, from.block);
|
|
615
|
+
const last = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, to.block);
|
|
600
616
|
const start = inFlow(doc, schema, from) ? from : nearestFlow(doc, schema, first + 1, last, false);
|
|
601
617
|
const end = inFlow(doc, schema, to) ? to : nearestFlow(doc, schema, last - 1, first, true);
|
|
602
618
|
if (start === from && end === to) return selection;
|
|
@@ -615,9 +631,9 @@ function validateText(doc, schema, selection) {
|
|
|
615
631
|
return clampToFlow(doc, schema, valid);
|
|
616
632
|
}
|
|
617
633
|
function validateNode(doc, schema, selection) {
|
|
618
|
-
const block =
|
|
634
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, selection.block);
|
|
619
635
|
if (block === void 0) return defaultSelection(doc, schema);
|
|
620
|
-
return
|
|
636
|
+
return _chunk4SLJNZSMcjs.specFor.call(void 0, schema, block.type).flow === "text" ? startOf(doc, schema, block.id) : selection;
|
|
621
637
|
}
|
|
622
638
|
function validateSelection(doc, schema, selection) {
|
|
623
639
|
if (doc.blocks.length === 0) return null;
|
|
@@ -648,7 +664,7 @@ function hidingToggle(doc, index, isClosed = isClosedToggle) {
|
|
|
648
664
|
}
|
|
649
665
|
|
|
650
666
|
// src/engine/state/visible-selection.ts
|
|
651
|
-
var hiderOf = (doc, id) => hidingToggle(doc,
|
|
667
|
+
var hiderOf = (doc, id) => hidingToggle(doc, _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, id) + 1);
|
|
652
668
|
function toggleEnd(doc, schema, toggle) {
|
|
653
669
|
const end = endOf(doc, schema, doc.blocks[toggle].id);
|
|
654
670
|
return end.kind === "text" ? end.head : blockEnd(doc.blocks[toggle]);
|
|
@@ -662,7 +678,7 @@ function visibleText(doc, schema, selection) {
|
|
|
662
678
|
}
|
|
663
679
|
function visibleBlocks(doc, schema, selection) {
|
|
664
680
|
const ids = [selection.anchor, selection.head];
|
|
665
|
-
const indexes = ids.map((id) =>
|
|
681
|
+
const indexes = ids.map((id) => _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, id));
|
|
666
682
|
const from = Math.min(...indexes);
|
|
667
683
|
const to = Math.max(...indexes);
|
|
668
684
|
const hiders = indexes.map((index) => hidingToggle(doc, index + 1));
|
|
@@ -738,54 +754,54 @@ function createPluginKey(name) {
|
|
|
738
754
|
// src/engine/state/transaction.ts
|
|
739
755
|
var foreignOrigins = ["remote", "reconcile", "history"];
|
|
740
756
|
var UNFILTERED = "unfiltered";
|
|
741
|
-
var Transaction =
|
|
742
|
-
|
|
743
|
-
|
|
757
|
+
var Transaction = class {
|
|
744
758
|
|
|
745
759
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
760
|
+
#currentDoc;
|
|
761
|
+
#currentSelection;
|
|
762
|
+
#currentStoredMarks;
|
|
763
|
+
#selectionWasSet = false;
|
|
764
|
+
#storedMarksWereSet = false;
|
|
765
|
+
#stepList = [];
|
|
766
|
+
#docList = [];
|
|
767
|
+
#mapList = [];
|
|
768
|
+
#metaValues = /* @__PURE__ */ new Map();
|
|
769
|
+
constructor(state, time = state.clock()) {
|
|
754
770
|
this.before = state;
|
|
755
771
|
this.time = time;
|
|
756
|
-
this
|
|
757
|
-
this
|
|
758
|
-
this
|
|
772
|
+
this.#currentDoc = state.doc;
|
|
773
|
+
this.#currentSelection = state.selection;
|
|
774
|
+
this.#currentStoredMarks = state.storedMarks;
|
|
759
775
|
}
|
|
760
776
|
get doc() {
|
|
761
|
-
return this
|
|
777
|
+
return this.#currentDoc;
|
|
762
778
|
}
|
|
763
779
|
get docs() {
|
|
764
|
-
return this
|
|
780
|
+
return this.#docList;
|
|
765
781
|
}
|
|
766
782
|
get steps() {
|
|
767
|
-
return this
|
|
783
|
+
return this.#stepList;
|
|
768
784
|
}
|
|
769
785
|
get maps() {
|
|
770
|
-
return this
|
|
786
|
+
return this.#mapList;
|
|
771
787
|
}
|
|
772
788
|
get docChanged() {
|
|
773
|
-
return this
|
|
789
|
+
return this.#stepList.length > 0;
|
|
774
790
|
}
|
|
775
791
|
get selection() {
|
|
776
|
-
return this
|
|
792
|
+
return this.#currentSelection;
|
|
777
793
|
}
|
|
778
794
|
get selectionSet() {
|
|
779
|
-
return this
|
|
795
|
+
return this.#selectionWasSet;
|
|
780
796
|
}
|
|
781
797
|
get storedMarks() {
|
|
782
|
-
return this
|
|
798
|
+
return this.#currentStoredMarks;
|
|
783
799
|
}
|
|
784
800
|
get storedMarksSet() {
|
|
785
|
-
return this
|
|
801
|
+
return this.#storedMarksWereSet;
|
|
786
802
|
}
|
|
787
803
|
get meta() {
|
|
788
|
-
return this
|
|
804
|
+
return this.#metaValues;
|
|
789
805
|
}
|
|
790
806
|
get origin() {
|
|
791
807
|
return _nullishCoalesce(this.getMeta("origin"), () => ( "command"));
|
|
@@ -794,14 +810,14 @@ var Transaction = (_class = class {
|
|
|
794
810
|
return this.getMeta("addToHistory") !== false;
|
|
795
811
|
}
|
|
796
812
|
step(step) {
|
|
797
|
-
const { doc, map } = step.apply(this
|
|
798
|
-
if (this
|
|
799
|
-
this
|
|
813
|
+
const { doc, map } = step.apply(this.#currentDoc);
|
|
814
|
+
if (this.#currentSelection !== null) {
|
|
815
|
+
this.#currentSelection = mapSelection(this.#currentSelection, map, this.#currentDoc);
|
|
800
816
|
}
|
|
801
|
-
this
|
|
802
|
-
this
|
|
803
|
-
this
|
|
804
|
-
this
|
|
817
|
+
this.#docList.push(this.#currentDoc);
|
|
818
|
+
this.#stepList.push(step);
|
|
819
|
+
this.#mapList.push(map);
|
|
820
|
+
this.#currentDoc = doc;
|
|
805
821
|
return this;
|
|
806
822
|
}
|
|
807
823
|
maybeStep(step) {
|
|
@@ -814,37 +830,37 @@ var Transaction = (_class = class {
|
|
|
814
830
|
}
|
|
815
831
|
}
|
|
816
832
|
setSelection(selection) {
|
|
817
|
-
this
|
|
818
|
-
this
|
|
833
|
+
this.#currentSelection = selection;
|
|
834
|
+
this.#selectionWasSet = true;
|
|
819
835
|
return this;
|
|
820
836
|
}
|
|
821
837
|
setStoredMarks(marks) {
|
|
822
|
-
this
|
|
823
|
-
this
|
|
838
|
+
this.#currentStoredMarks = marks;
|
|
839
|
+
this.#storedMarksWereSet = true;
|
|
824
840
|
return this;
|
|
825
841
|
}
|
|
826
842
|
setOrigin(origin) {
|
|
827
843
|
return this.setMeta("origin", origin);
|
|
828
844
|
}
|
|
829
845
|
setMeta(key, value) {
|
|
830
|
-
this
|
|
846
|
+
this.#metaValues.set(key, value);
|
|
831
847
|
return this;
|
|
832
848
|
}
|
|
833
849
|
getMeta(key) {
|
|
834
|
-
return this
|
|
850
|
+
return this.#metaValues.get(key);
|
|
835
851
|
}
|
|
836
852
|
mapPos(pos, assoc = 1, fromStep = 0) {
|
|
837
853
|
let mapped = pos;
|
|
838
|
-
for (let i = fromStep; i < this
|
|
854
|
+
for (let i = fromStep; i < this.#mapList.length; i++) mapped = this.#mapList[i](mapped, assoc);
|
|
839
855
|
return mapped;
|
|
840
856
|
}
|
|
841
|
-
}
|
|
857
|
+
};
|
|
842
858
|
|
|
843
859
|
// src/engine/commands/caret-marks.ts
|
|
844
860
|
function caretMarks(doc, schema, storedMarks, pos) {
|
|
845
861
|
if (storedMarks !== null) return storedMarks;
|
|
846
|
-
const inline = _nullishCoalesce(_optionalChain([
|
|
847
|
-
return
|
|
862
|
+
const inline = _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, doc, pos.block), 'optionalAccess', _8 => _8.regions, 'access', _9 => _9[pos.region]]), () => ( []));
|
|
863
|
+
return _chunk4SLJNZSMcjs.marksAt.call(void 0, inline, pos.offset, (mark) => _nullishCoalesce(_optionalChain([schema, 'access', _10 => _10.marks, 'access', _11 => _11.get, 'call', _12 => _12(mark.type), 'optionalAccess', _13 => _13.inclusive]), () => ( true)));
|
|
848
864
|
}
|
|
849
865
|
|
|
850
866
|
// src/engine/commands/run-commands.ts
|
|
@@ -880,7 +896,7 @@ function runCommands(state, commands) {
|
|
|
880
896
|
parts.push(tr);
|
|
881
897
|
current = applyTransaction(current, tr);
|
|
882
898
|
};
|
|
883
|
-
chainDispatches.add(collect);
|
|
899
|
+
if (commands.length > 1) chainDispatches.add(collect);
|
|
884
900
|
for (const command of commands) {
|
|
885
901
|
if (!command(current, collect)) return { ok: false, tr: null };
|
|
886
902
|
}
|
|
@@ -988,7 +1004,7 @@ var undoInputRule = (state, dispatch) => {
|
|
|
988
1004
|
const { steps, undoText, at, marks } = record;
|
|
989
1005
|
const tr = new Transaction(state).setMeta(UNFILTERED, true);
|
|
990
1006
|
steps.forEach((step) => tr.step(step));
|
|
991
|
-
tr.step(replaceInlineStep(at.block, at.region, at.offset, at.offset, [
|
|
1007
|
+
tr.step(replaceInlineStep(at.block, at.region, at.offset, at.offset, [_chunk4SLJNZSMcjs.text.call(void 0, undoText, marks)]));
|
|
992
1008
|
dispatch(tr.setSelection(textSelection({ ...at, offset: at.offset + undoText.length })));
|
|
993
1009
|
}
|
|
994
1010
|
return true;
|
|
@@ -997,7 +1013,7 @@ var undoInputRule = (state, dispatch) => {
|
|
|
997
1013
|
// src/engine/commands/block-helpers.ts
|
|
998
1014
|
var ITEM_KINDS = /* @__PURE__ */ new Set(["bullet", "ordered", "task", "quote"]);
|
|
999
1015
|
function specOf(schema, block) {
|
|
1000
|
-
return
|
|
1016
|
+
return _chunk4SLJNZSMcjs.specFor.call(void 0, schema, block.type);
|
|
1001
1017
|
}
|
|
1002
1018
|
function isTextFlow(schema, block) {
|
|
1003
1019
|
return specOf(schema, block).flow === "text";
|
|
@@ -1009,7 +1025,7 @@ function isItem(block) {
|
|
|
1009
1025
|
return block.type === "MARKDOWN" && typeof block.attrs.kind === "string" && ITEM_KINDS.has(block.attrs.kind);
|
|
1010
1026
|
}
|
|
1011
1027
|
function regionLength(block, region) {
|
|
1012
|
-
return Object.hasOwn(block.regions, region) ?
|
|
1028
|
+
return Object.hasOwn(block.regions, region) ? _chunk4SLJNZSMcjs.inlineLength.call(void 0, block.regions[region]) : 0;
|
|
1013
1029
|
}
|
|
1014
1030
|
function descendantsEnd(doc, index) {
|
|
1015
1031
|
const { indent: indent2 } = doc.blocks[index];
|
|
@@ -1017,8 +1033,8 @@ function descendantsEnd(doc, index) {
|
|
|
1017
1033
|
while (end < doc.blocks.length && doc.blocks[end].indent > indent2) end++;
|
|
1018
1034
|
return end;
|
|
1019
1035
|
}
|
|
1020
|
-
function createBlock(schema, type, attrs = {}, indent2 = 0, id =
|
|
1021
|
-
const initial =
|
|
1036
|
+
function createBlock(schema, type, attrs = {}, indent2 = 0, id = _chunk4SLJNZSMcjs.newId.call(void 0, )) {
|
|
1037
|
+
const initial = _chunk4SLJNZSMcjs.specFor.call(void 0, schema, type).initial();
|
|
1022
1038
|
return { id, type, indent: indent2, attrs: { ...initial.attrs, ...attrs }, regions: initial.regions };
|
|
1023
1039
|
}
|
|
1024
1040
|
function withContent(schema, block, content) {
|
|
@@ -1036,7 +1052,7 @@ function headBlockId(selection) {
|
|
|
1036
1052
|
function selectedBlockRange(doc, selection) {
|
|
1037
1053
|
const ids = selectedBlockIds(doc, selection);
|
|
1038
1054
|
if (ids.length === 0) return null;
|
|
1039
|
-
const start =
|
|
1055
|
+
const start = _chunk4SLJNZSMcjs.indexOfBlock.call(void 0, doc, ids[0]);
|
|
1040
1056
|
let end = start + ids.length;
|
|
1041
1057
|
for (let index = start; index < start + ids.length; index++) end = Math.max(end, descendantsEnd(doc, index));
|
|
1042
1058
|
return { start, end };
|
|
@@ -1080,7 +1096,7 @@ function shiftSubtree(tr, index, delta) {
|
|
|
1080
1096
|
// src/engine/commands/block-structure.ts
|
|
1081
1097
|
var toggleTask = (state, dispatch) => {
|
|
1082
1098
|
const { doc, selection } = state;
|
|
1083
|
-
const tasks = selectedBlockIds(doc, selection).map((id) => doc.blocks[
|
|
1099
|
+
const tasks = selectedBlockIds(doc, selection).map((id) => doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, id)]).filter((block) => block.type === "MARKDOWN" && block.attrs.kind === "task");
|
|
1084
1100
|
if (tasks.length === 0) return false;
|
|
1085
1101
|
const checked = !tasks.every((block) => block.attrs.checked === true);
|
|
1086
1102
|
const tr = new Transaction(state);
|
|
@@ -1145,7 +1161,7 @@ function copiedSelection(selection, copies) {
|
|
|
1145
1161
|
}
|
|
1146
1162
|
}
|
|
1147
1163
|
function duplicateBlocks(options = {}) {
|
|
1148
|
-
const makeId = _nullishCoalesce(options.newId, () => (
|
|
1164
|
+
const makeId = _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId));
|
|
1149
1165
|
return (state, dispatch) => {
|
|
1150
1166
|
const { doc, selection } = state;
|
|
1151
1167
|
const range = selectedBlockRange(doc, selection);
|
|
@@ -1167,12 +1183,12 @@ var deleteBlocks = (state, dispatch) => {
|
|
|
1167
1183
|
return true;
|
|
1168
1184
|
};
|
|
1169
1185
|
function insertBlockAfter(type, attrs, options = {}) {
|
|
1170
|
-
const makeId = _nullishCoalesce(options.newId, () => (
|
|
1186
|
+
const makeId = _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId));
|
|
1171
1187
|
return (state, dispatch) => {
|
|
1172
1188
|
const { doc, schema } = state;
|
|
1173
1189
|
const id = headBlockId(state.selection);
|
|
1174
1190
|
if (id === null) return false;
|
|
1175
|
-
const index =
|
|
1191
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, id);
|
|
1176
1192
|
const current = doc.blocks[index];
|
|
1177
1193
|
const fillsCurrent = isParagraph(current) && regionLength(current, _nullishCoalesce(primaryRegion(schema, current), () => ( ""))) === 0;
|
|
1178
1194
|
const block = createBlock(schema, type, attrs, current.indent, fillsCurrent ? current.id : makeId());
|
|
@@ -1192,10 +1208,10 @@ function deleteWithinBlock(tr, from, to) {
|
|
|
1192
1208
|
clear(tr, from, from.offset, to.offset);
|
|
1193
1209
|
return from;
|
|
1194
1210
|
}
|
|
1195
|
-
const block = tr.doc.blocks[
|
|
1211
|
+
const block = tr.doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, from.block)];
|
|
1196
1212
|
clear(tr, from, from.offset, regionLength(block, from.region));
|
|
1197
1213
|
for (const region of Object.keys(block.regions)) {
|
|
1198
|
-
const between =
|
|
1214
|
+
const between = _chunk4SLJNZSMcjs.compareRegionNames.call(void 0, from.region, region) < 0 && _chunk4SLJNZSMcjs.compareRegionNames.call(void 0, region, to.region) < 0;
|
|
1199
1215
|
if (between) clear(tr, { ...from, region }, 0, regionLength(block, region));
|
|
1200
1216
|
}
|
|
1201
1217
|
clear(tr, to, 0, to.offset);
|
|
@@ -1204,8 +1220,8 @@ function deleteWithinBlock(tr, from, to) {
|
|
|
1204
1220
|
function deleteRange(tr, schema, from, to, newId2) {
|
|
1205
1221
|
if (from.block === to.block) return deleteWithinBlock(tr, from, to);
|
|
1206
1222
|
const { doc } = tr;
|
|
1207
|
-
const start =
|
|
1208
|
-
const end =
|
|
1223
|
+
const start = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, from.block);
|
|
1224
|
+
const end = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, to.block);
|
|
1209
1225
|
const first = doc.blocks[start];
|
|
1210
1226
|
const last = doc.blocks[end];
|
|
1211
1227
|
const keepFirst = isTextFlow(schema, first);
|
|
@@ -1232,7 +1248,7 @@ function deleteRange(tr, schema, from, to, newId2) {
|
|
|
1232
1248
|
|
|
1233
1249
|
// src/engine/commands/insert-text-at.ts
|
|
1234
1250
|
function insertTextAt(tr, schema, pos, value) {
|
|
1235
|
-
const slice = [
|
|
1251
|
+
const slice = [_chunk4SLJNZSMcjs.text.call(void 0, value, caretMarks(tr.doc, schema, tr.storedMarks, pos))];
|
|
1236
1252
|
tr.step(replaceInlineStep(pos.block, pos.region, pos.offset, pos.offset, slice));
|
|
1237
1253
|
return { ...pos, offset: pos.offset + value.length };
|
|
1238
1254
|
}
|
|
@@ -1244,12 +1260,12 @@ function replaceBlocksWithText(tr, schema, range, value, makeId) {
|
|
|
1244
1260
|
const indent2 = range === null ? 0 : doc.blocks[index].indent;
|
|
1245
1261
|
if (range !== null) tr.step(removeBlocksStep(index, range.end - range.start));
|
|
1246
1262
|
const empty = createBlock(schema, schema.defaultTextBlock, {}, indent2, makeId());
|
|
1247
|
-
const paragraph = withContent(schema, empty, [
|
|
1263
|
+
const paragraph = withContent(schema, empty, [_chunk4SLJNZSMcjs.text.call(void 0, value)]);
|
|
1248
1264
|
tr.step(insertBlocksStep(index, [paragraph]));
|
|
1249
1265
|
tr.setSelection(endOf(tr.doc, schema, paragraph.id));
|
|
1250
1266
|
}
|
|
1251
1267
|
function insertText(value, options = {}) {
|
|
1252
|
-
const makeId = _nullishCoalesce(options.newId, () => (
|
|
1268
|
+
const makeId = _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId));
|
|
1253
1269
|
return (state, dispatch) => {
|
|
1254
1270
|
if (value === "") return false;
|
|
1255
1271
|
const { doc, schema, selection } = state;
|
|
@@ -1272,9 +1288,9 @@ function markExtent(inline, offset, type) {
|
|
|
1272
1288
|
let position = 0;
|
|
1273
1289
|
for (const node of inline) {
|
|
1274
1290
|
starts.push(position);
|
|
1275
|
-
position +=
|
|
1291
|
+
position += _chunk4SLJNZSMcjs.nodeLength.call(void 0, node);
|
|
1276
1292
|
}
|
|
1277
|
-
const containing = (at) => inline.findIndex((node, i) => starts[i] <= at && at < starts[i] +
|
|
1293
|
+
const containing = (at) => inline.findIndex((node, i) => starts[i] <= at && at < starts[i] + _chunk4SLJNZSMcjs.nodeLength.call(void 0, node));
|
|
1278
1294
|
const markOf = (index) => _optionalChain([inline, 'access', _33 => _33[index], 'optionalAccess', _34 => _34.marks, 'access', _35 => _35.find, 'call', _36 => _36((mark2) => mark2.type === type)]);
|
|
1279
1295
|
let seed = containing(offset);
|
|
1280
1296
|
let mark = markOf(seed);
|
|
@@ -1283,29 +1299,29 @@ function markExtent(inline, offset, type) {
|
|
|
1283
1299
|
mark = markOf(seed);
|
|
1284
1300
|
}
|
|
1285
1301
|
if (mark === void 0) return null;
|
|
1286
|
-
const shares = (index) => inline[index].marks.some((other) =>
|
|
1302
|
+
const shares = (index) => inline[index].marks.some((other) => _chunk4SLJNZSMcjs.sameMark.call(void 0, other, mark));
|
|
1287
1303
|
let first = seed;
|
|
1288
1304
|
while (first > 0 && shares(first - 1)) first--;
|
|
1289
1305
|
let last = seed;
|
|
1290
1306
|
while (last < inline.length - 1 && shares(last + 1)) last++;
|
|
1291
|
-
return { from: starts[first], to: starts[last] +
|
|
1307
|
+
return { from: starts[first], to: starts[last] + _chunk4SLJNZSMcjs.nodeLength.call(void 0, inline[last]) };
|
|
1292
1308
|
}
|
|
1293
1309
|
|
|
1294
1310
|
// src/engine/commands/storable-mark.ts
|
|
1295
1311
|
function readsBack(inline) {
|
|
1296
|
-
return
|
|
1312
|
+
return _chunk4SLJNZSMcjs.equalInline.call(void 0, _chunk4SLJNZSMcjs.parseInline.call(void 0, _chunk4SLJNZSMcjs.serializeInline.call(void 0, inline)), _chunk4SLJNZSMcjs.normalizeInline.call(void 0, inline));
|
|
1297
1313
|
}
|
|
1298
1314
|
function safeLink(mark) {
|
|
1299
1315
|
const href = _optionalChain([mark, 'access', _37 => _37.attrs, 'optionalAccess', _38 => _38.href]);
|
|
1300
|
-
const safe = typeof href === "string" ?
|
|
1316
|
+
const safe = typeof href === "string" ? _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, href) : null;
|
|
1301
1317
|
return safe ? { type: "link", attrs: { ...mark.attrs, href: safe } } : null;
|
|
1302
1318
|
}
|
|
1303
1319
|
function storableMark(mark) {
|
|
1304
1320
|
const candidate = mark.type === "link" ? safeLink(mark) : mark;
|
|
1305
|
-
return candidate !== null && readsBack([
|
|
1321
|
+
return candidate !== null && readsBack([_chunk4SLJNZSMcjs.text.call(void 0, "a", [candidate])]) ? candidate : null;
|
|
1306
1322
|
}
|
|
1307
1323
|
function storableAtom(type, attrs) {
|
|
1308
|
-
return readsBack([
|
|
1324
|
+
return readsBack([_chunk4SLJNZSMcjs.atom.call(void 0, type, attrs)]);
|
|
1309
1325
|
}
|
|
1310
1326
|
|
|
1311
1327
|
// src/engine/commands/selection-marks.ts
|
|
@@ -1324,8 +1340,8 @@ function textRanges(state, selection) {
|
|
|
1324
1340
|
if (from.region !== to.region) return [];
|
|
1325
1341
|
return [{ block: from.block, region: from.region, from: from.offset, to: to.offset }];
|
|
1326
1342
|
}
|
|
1327
|
-
const first =
|
|
1328
|
-
const last =
|
|
1343
|
+
const first = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, from.block);
|
|
1344
|
+
const last = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, to.block);
|
|
1329
1345
|
return doc.blocks.slice(first, last + 1).flatMap((block, i) => {
|
|
1330
1346
|
const whole = wholeRegion(schema, block);
|
|
1331
1347
|
if (whole === null) return [];
|
|
@@ -1337,7 +1353,7 @@ function textRanges(state, selection) {
|
|
|
1337
1353
|
function selectionRanges(state, selection) {
|
|
1338
1354
|
if (selection.kind === "text") return textRanges(state, selection);
|
|
1339
1355
|
return selectedBlockIds(state.doc, selection).flatMap((id) => {
|
|
1340
|
-
const whole = wholeRegion(state.schema, state.doc.blocks[
|
|
1356
|
+
const whole = wholeRegion(state.schema, state.doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, state.doc, id)]);
|
|
1341
1357
|
return whole === null ? [] : [whole];
|
|
1342
1358
|
});
|
|
1343
1359
|
}
|
|
@@ -1346,8 +1362,8 @@ function markRanges(state) {
|
|
|
1346
1362
|
return selection === null ? [] : selectionRanges(state, selection).filter((range) => range.from < range.to);
|
|
1347
1363
|
}
|
|
1348
1364
|
function rangeContent(state, range) {
|
|
1349
|
-
const inline = _nullishCoalesce(_optionalChain([
|
|
1350
|
-
return
|
|
1365
|
+
const inline = _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, range.block), 'optionalAccess', _41 => _41.regions, 'access', _42 => _42[range.region]]), () => ( []));
|
|
1366
|
+
return _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, range.from, range.to);
|
|
1351
1367
|
}
|
|
1352
1368
|
function markCoverage(content, type, attrs) {
|
|
1353
1369
|
const carries = (node) => node.marks.some((mark) => matchesMark(mark, type, attrs));
|
|
@@ -1390,8 +1406,8 @@ function applyMark(type, attrs, mode) {
|
|
|
1390
1406
|
const current = caretMarks(state.doc, state.schema, state.storedMarks, caret);
|
|
1391
1407
|
const active = current.some((existing) => matchesMark(existing, type, mark.attrs));
|
|
1392
1408
|
const remove2 = mode === "remove" || mode === "toggle" && active;
|
|
1393
|
-
const next = remove2 ?
|
|
1394
|
-
if (
|
|
1409
|
+
const next = remove2 ? _chunk4SLJNZSMcjs.removeMark.call(void 0, current, target) : _chunk4SLJNZSMcjs.addMark.call(void 0, current, mark);
|
|
1410
|
+
if (_chunk4SLJNZSMcjs.sameMarkSet.call(void 0, next, current)) return false;
|
|
1395
1411
|
_optionalChain([dispatch, 'optionalCall', _46 => _46(new Transaction(state).setStoredMarks(next))]);
|
|
1396
1412
|
return true;
|
|
1397
1413
|
}
|
|
@@ -1415,17 +1431,17 @@ function unsetMark(type) {
|
|
|
1415
1431
|
function linkRanges(state) {
|
|
1416
1432
|
const caret = collapsedCaret(state);
|
|
1417
1433
|
if (caret === null) return markRanges(state);
|
|
1418
|
-
const inline = _nullishCoalesce(_optionalChain([
|
|
1434
|
+
const inline = _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, caret.block), 'optionalAccess', _47 => _47.regions, 'access', _48 => _48[caret.region]]), () => ( []));
|
|
1419
1435
|
const extent = markExtent(inline, caret.offset, "link");
|
|
1420
1436
|
return extent === null ? [] : [{ block: caret.block, region: caret.region, ...extent }];
|
|
1421
1437
|
}
|
|
1422
1438
|
function setLink(href, title) {
|
|
1423
|
-
const safe =
|
|
1439
|
+
const safe = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, href);
|
|
1424
1440
|
return (state, dispatch) => {
|
|
1425
1441
|
if (safe === null || safe === "") return false;
|
|
1426
1442
|
const link = { type: "link", attrs: title ? { href: safe, title } : { href: safe } };
|
|
1427
1443
|
return editRanges(state, dispatch, linkRanges(state), (tr, { block, region, from, to }, content) => {
|
|
1428
|
-
const linked2 = content.every((node) => node.marks.some((mark) =>
|
|
1444
|
+
const linked2 = content.every((node) => node.marks.some((mark) => _chunk4SLJNZSMcjs.sameMark.call(void 0, mark, link)));
|
|
1429
1445
|
if (!linked2) tr.step(addMarkStep(block, region, from, to, link));
|
|
1430
1446
|
});
|
|
1431
1447
|
};
|
|
@@ -1455,7 +1471,7 @@ function insertAtom(type, attrs) {
|
|
|
1455
1471
|
const tr = new Transaction(state);
|
|
1456
1472
|
const { from, to } = orderedRange(doc, selection.anchor, selection.head);
|
|
1457
1473
|
const caret = deleteRange(tr, schema, from, to);
|
|
1458
|
-
const node =
|
|
1474
|
+
const node = _chunk4SLJNZSMcjs.atom.call(void 0, type, attrs, caretMarks(tr.doc, schema, tr.storedMarks, caret));
|
|
1459
1475
|
tr.step(replaceInlineStep(caret.block, caret.region, caret.offset, caret.offset, [node]));
|
|
1460
1476
|
tr.setSelection(textSelection({ ...caret, offset: caret.offset + 1 }));
|
|
1461
1477
|
_optionalChain([dispatch, 'optionalCall', _51 => _51(tr)]);
|
|
@@ -1473,19 +1489,19 @@ var TEXT_ATTRIBUTE = /* @__PURE__ */ new Map([
|
|
|
1473
1489
|
["MATH", "latex"]
|
|
1474
1490
|
]);
|
|
1475
1491
|
function holdsText(schema, type) {
|
|
1476
|
-
return TEXT_ATTRIBUTE.has(type) ||
|
|
1492
|
+
return TEXT_ATTRIBUTE.has(type) || _chunk4SLJNZSMcjs.specFor.call(void 0, schema, type).flow === "text";
|
|
1477
1493
|
}
|
|
1478
1494
|
function sourceContent(schema, block) {
|
|
1479
1495
|
const field = TEXT_ATTRIBUTE.get(block.type);
|
|
1480
1496
|
if (field !== void 0) {
|
|
1481
1497
|
const value = block.attrs[field];
|
|
1482
|
-
return typeof value === "string" && value !== "" ? [
|
|
1498
|
+
return typeof value === "string" && value !== "" ? [_chunk4SLJNZSMcjs.text.call(void 0, value)] : [];
|
|
1483
1499
|
}
|
|
1484
1500
|
const region = primaryRegion(schema, block);
|
|
1485
1501
|
return region === null ? [] : block.regions[region];
|
|
1486
1502
|
}
|
|
1487
1503
|
function plainText(schema, content) {
|
|
1488
|
-
return
|
|
1504
|
+
return _chunk4SLJNZSMcjs.inlineText.call(void 0, content, (node) => _nullishCoalesce(_optionalChain([schema, 'access', _52 => _52.atoms, 'access', _53 => _53.get, 'call', _54 => _54(node.type), 'optionalAccess', _55 => _55.plainText, 'call', _56 => _56(node.attrs)]), () => ( "")));
|
|
1489
1505
|
}
|
|
1490
1506
|
function convert(schema, block, type, attrs) {
|
|
1491
1507
|
const content = sourceContent(schema, block);
|
|
@@ -1504,7 +1520,7 @@ function setBlockType(type, attrs = {}) {
|
|
|
1504
1520
|
if (!holdsText(schema, type)) return false;
|
|
1505
1521
|
const ids = selectedBlockIds(doc, selection);
|
|
1506
1522
|
const convertible = (block) => isTextFlow(schema, block) || _optionalChain([selection, 'optionalAccess', _57 => _57.kind]) === "node" && TEXT_ATTRIBUTE.has(block.type);
|
|
1507
|
-
const blocks = ids.flatMap((id) => _nullishCoalesce(
|
|
1523
|
+
const blocks = ids.flatMap((id) => _nullishCoalesce(_chunk4SLJNZSMcjs.blockById.call(void 0, doc, id), () => ( []))).filter(convertible);
|
|
1508
1524
|
if (blocks.length === 0) return false;
|
|
1509
1525
|
const tr = new Transaction(state);
|
|
1510
1526
|
const moved2 = /* @__PURE__ */ new Map();
|
|
@@ -1518,7 +1534,7 @@ function setBlockType(type, attrs = {}) {
|
|
|
1518
1534
|
tr.step(replaceBlockStep(next));
|
|
1519
1535
|
const from = primaryRegion(schema, block);
|
|
1520
1536
|
const to = primaryRegion(schema, next);
|
|
1521
|
-
if (from !== null && to !== null) moved2.set(block.id, { from, to, length:
|
|
1537
|
+
if (from !== null && to !== null) moved2.set(block.id, { from, to, length: _chunk4SLJNZSMcjs.inlineLength.call(void 0, next.regions[to]) });
|
|
1522
1538
|
}
|
|
1523
1539
|
if (!tr.docChanged) return false;
|
|
1524
1540
|
if (_optionalChain([selection, 'optionalAccess', _58 => _58.kind]) === "text" && moved2.size > 0) {
|
|
@@ -1529,7 +1545,7 @@ function setBlockType(type, attrs = {}) {
|
|
|
1529
1545
|
};
|
|
1530
1546
|
tr.setSelection(textSelection(carry(selection.anchor), carry(selection.head)));
|
|
1531
1547
|
}
|
|
1532
|
-
const converted = _optionalChain([selection, 'optionalAccess', _59 => _59.kind]) === "node" ?
|
|
1548
|
+
const converted = _optionalChain([selection, 'optionalAccess', _59 => _59.kind]) === "node" ? _chunk4SLJNZSMcjs.blockById.call(void 0, tr.doc, selection.block) : void 0;
|
|
1533
1549
|
if (converted !== void 0 && isTextFlow(schema, converted)) tr.setSelection(endOf(tr.doc, schema, converted.id));
|
|
1534
1550
|
_optionalChain([dispatch, 'optionalCall', _60 => _60(tr)]);
|
|
1535
1551
|
return true;
|
|
@@ -1547,10 +1563,10 @@ function ruleTransaction(state, rules, context) {
|
|
|
1547
1563
|
const { selection, doc } = state;
|
|
1548
1564
|
if (_optionalChain([selection, 'optionalAccess', _61 => _61.kind]) !== "text") return null;
|
|
1549
1565
|
const { block: id, region, offset } = selection.head;
|
|
1550
|
-
const block = doc.blocks[
|
|
1566
|
+
const block = doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, id)];
|
|
1551
1567
|
const inline = block.regions[region];
|
|
1552
|
-
if (
|
|
1553
|
-
const before =
|
|
1568
|
+
if (_chunk4SLJNZSMcjs.hasMark.call(void 0, _chunk4SLJNZSMcjs.marksAt.call(void 0, inline, offset, () => true), "code")) return null;
|
|
1569
|
+
const before = _chunk4SLJNZSMcjs.inlineText.call(void 0, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, 0, offset));
|
|
1554
1570
|
for (const rule of rules) {
|
|
1555
1571
|
const match = appliesTo(rule, block) ? rule.match.exec(before) : null;
|
|
1556
1572
|
if (match === null) continue;
|
|
@@ -1560,7 +1576,7 @@ function ruleTransaction(state, rules, context) {
|
|
|
1560
1576
|
return null;
|
|
1561
1577
|
}
|
|
1562
1578
|
function insertTextWithRules(value, rules, options = {}) {
|
|
1563
|
-
const context = { newId: _nullishCoalesce(options.newId, () => (
|
|
1579
|
+
const context = { newId: _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId)) };
|
|
1564
1580
|
const insert = insertText(value, { origin: "input", newId: context.newId });
|
|
1565
1581
|
return (state, dispatch) => {
|
|
1566
1582
|
let fired = false;
|
|
@@ -1608,11 +1624,11 @@ var divider = {
|
|
|
1608
1624
|
kinds: PARAGRAPH,
|
|
1609
1625
|
handler(state, _match, range, context) {
|
|
1610
1626
|
const { doc, schema } = state;
|
|
1611
|
-
const index =
|
|
1627
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, range.block);
|
|
1612
1628
|
const block = doc.blocks[index];
|
|
1613
1629
|
const content = block.regions[range.region];
|
|
1614
|
-
const tail =
|
|
1615
|
-
const empty = createBlock(schema, schema.defaultTextBlock, {}, block.indent, (_nullishCoalesce(_optionalChain([context, 'optionalAccess', _65 => _65.newId]), () => ( (0,
|
|
1630
|
+
const tail = _chunk4SLJNZSMcjs.sliceInline.call(void 0, content, range.to, _chunk4SLJNZSMcjs.inlineLength.call(void 0, content));
|
|
1631
|
+
const empty = createBlock(schema, schema.defaultTextBlock, {}, block.indent, (_nullishCoalesce(_optionalChain([context, 'optionalAccess', _65 => _65.newId]), () => ( (0, _chunk4SLJNZSMcjs.newId))))());
|
|
1616
1632
|
const next = withContent(schema, empty, tail);
|
|
1617
1633
|
const tr = new Transaction(state);
|
|
1618
1634
|
tr.step(replaceBlockStep(createBlock(schema, "DIVIDER", {}, block.indent, block.id)));
|
|
@@ -1648,7 +1664,7 @@ var blockInputRules = [
|
|
|
1648
1664
|
|
|
1649
1665
|
// src/engine/markdown/autolink-href.ts
|
|
1650
1666
|
function autolinkHref(url) {
|
|
1651
|
-
return
|
|
1667
|
+
return _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, /^www\./i.test(url) ? `https://${url}` : url);
|
|
1652
1668
|
}
|
|
1653
1669
|
|
|
1654
1670
|
// src/engine/markdown/trim-url-end.ts
|
|
@@ -1670,12 +1686,12 @@ function trimUrlEnd(url) {
|
|
|
1670
1686
|
|
|
1671
1687
|
// src/engine/rules/region-inline.ts
|
|
1672
1688
|
function regionInline(state, range) {
|
|
1673
|
-
return state.doc.blocks[
|
|
1689
|
+
return state.doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, state.doc, range.block)].regions[range.region];
|
|
1674
1690
|
}
|
|
1675
1691
|
|
|
1676
1692
|
// src/engine/rules/touches-mark.ts
|
|
1677
1693
|
function touchesMark(inline, from, to, type) {
|
|
1678
|
-
return
|
|
1694
|
+
return _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, from, to).some((node) => _chunk4SLJNZSMcjs.hasMark.call(void 0, node.marks, type));
|
|
1679
1695
|
}
|
|
1680
1696
|
|
|
1681
1697
|
// src/engine/rules/autolink.ts
|
|
@@ -1709,7 +1725,7 @@ function markRule({ name, match, open, close, wordBounded = false, mark }) {
|
|
|
1709
1725
|
const contentTo = to - (_nullishCoalesce(_optionalChain([close, 'optionalCall', _66 => _66(found)]), () => ( open)));
|
|
1710
1726
|
const contentFrom = contentTo - found[1].length;
|
|
1711
1727
|
const from = contentFrom - open;
|
|
1712
|
-
if (wordBounded && WORD_CHARACTER.test(
|
|
1728
|
+
if (wordBounded && WORD_CHARACTER.test(_chunk4SLJNZSMcjs.inlineText.call(void 0, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, to, to + 1)))) return null;
|
|
1713
1729
|
if (touchesMark(inline, from, contentFrom, "code") || touchesMark(inline, contentTo, to, "code")) return null;
|
|
1714
1730
|
const tr = new Transaction(state);
|
|
1715
1731
|
tr.step(addMarkStep(block, region, contentFrom, contentTo, added));
|
|
@@ -1717,7 +1733,7 @@ function markRule({ name, match, open, close, wordBounded = false, mark }) {
|
|
|
1717
1733
|
tr.step(replaceInlineStep(block, region, from, contentFrom, []));
|
|
1718
1734
|
const caret = { block, region, offset: from + found[1].length };
|
|
1719
1735
|
const carried = caretMarks(tr.doc, state.schema, null, caret);
|
|
1720
|
-
return tr.setSelection(textSelection(caret)).setStoredMarks(
|
|
1736
|
+
return tr.setSelection(textSelection(caret)).setStoredMarks(_chunk4SLJNZSMcjs.removeMark.call(void 0, carried, added.type));
|
|
1721
1737
|
}
|
|
1722
1738
|
};
|
|
1723
1739
|
}
|
|
@@ -1738,7 +1754,7 @@ var markInputRules = [
|
|
|
1738
1754
|
open: 1,
|
|
1739
1755
|
close: (match) => match[2].length + 3,
|
|
1740
1756
|
mark(match) {
|
|
1741
|
-
const href =
|
|
1757
|
+
const href = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, match[2]);
|
|
1742
1758
|
return href === null ? null : { type: "link", attrs: { href } };
|
|
1743
1759
|
}
|
|
1744
1760
|
}),
|
|
@@ -1756,7 +1772,7 @@ function replacing(name, match, replacement) {
|
|
|
1756
1772
|
handler(state, found, range) {
|
|
1757
1773
|
const value = typeof replacement === "string" ? replacement : replacement(found);
|
|
1758
1774
|
const from = range.to - (_nullishCoalesce(found[1], () => ( found[0]))).length;
|
|
1759
|
-
const node =
|
|
1775
|
+
const node = _chunk4SLJNZSMcjs.text.call(void 0, value, _chunk4SLJNZSMcjs.marksAt.call(void 0, regionInline(state, range), range.to, () => true));
|
|
1760
1776
|
return new Transaction(state).step(replaceInlineStep(range.block, range.region, from, range.to, [node]));
|
|
1761
1777
|
}
|
|
1762
1778
|
};
|
|
@@ -1909,7 +1925,7 @@ function preText(node, depth = 0) {
|
|
|
1909
1925
|
return depth > 0 && isBlockTag(node) && !text2.endsWith("\n") ? `${text2}
|
|
1910
1926
|
` : text2;
|
|
1911
1927
|
}
|
|
1912
|
-
var languageOf = (element) => element
|
|
1928
|
+
var languageOf = (element) => element ? _optionalChain([LANGUAGE, 'access', _67 => _67.exec, 'call', _68 => _68(_nullishCoalesce(element.getAttribute("class"), () => ( ""))), 'optionalAccess', _69 => _69[1]]) : void 0;
|
|
1913
1929
|
function codeBlock(pre, ctx, sink) {
|
|
1914
1930
|
const code = preText(pre).replace(/\r\n?/g, "\n").replace(/\n$/, "");
|
|
1915
1931
|
const language = _nullishCoalesce(_nullishCoalesce(languageOf(pre), () => ( languageOf(pre.querySelector("code")))), () => ( ""));
|
|
@@ -2040,7 +2056,7 @@ function nearestPaletteColor(css, kind) {
|
|
|
2040
2056
|
const table = PALETTE_RGB[kind];
|
|
2041
2057
|
let best = "default";
|
|
2042
2058
|
let least = Infinity;
|
|
2043
|
-
for (const name of
|
|
2059
|
+
for (const name of _chunk4SLJNZSMcjs.PALETTE) {
|
|
2044
2060
|
for (const reference of table[name]) {
|
|
2045
2061
|
const gap = distance(rgb, reference);
|
|
2046
2062
|
if (gap < least) {
|
|
@@ -2054,31 +2070,31 @@ function nearestPaletteColor(css, kind) {
|
|
|
2054
2070
|
|
|
2055
2071
|
// src/engine/clipboard/html-marks.ts
|
|
2056
2072
|
function linkMark(element) {
|
|
2057
|
-
const href =
|
|
2073
|
+
const href = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, _nullishCoalesce(element.getAttribute("href"), () => ( "")));
|
|
2058
2074
|
if (href === null || href === "") return null;
|
|
2059
2075
|
const title = element.getAttribute("title");
|
|
2060
2076
|
return { type: "link", attrs: title ? { href, title } : { href } };
|
|
2061
2077
|
}
|
|
2062
2078
|
function highlightMark(element) {
|
|
2063
2079
|
const color = _nullishCoalesce(element.getAttribute("data-color"), () => ( ""));
|
|
2064
|
-
return
|
|
2080
|
+
return _chunk4SLJNZSMcjs.isPaletteColor.call(void 0, color) ? { type: "highlight", attrs: { color } } : { type: "highlight" };
|
|
2065
2081
|
}
|
|
2066
2082
|
function elementMarks(element, inherited) {
|
|
2067
2083
|
const tag = tagName(element);
|
|
2068
2084
|
const styles = parseStyle(element.getAttribute("style"));
|
|
2069
2085
|
let marks = inherited;
|
|
2070
2086
|
const add = (mark) => {
|
|
2071
|
-
marks =
|
|
2087
|
+
marks = _chunk4SLJNZSMcjs.addMark.call(void 0, marks, mark);
|
|
2072
2088
|
};
|
|
2073
2089
|
const link = tag === "a" ? linkMark(element) : null;
|
|
2074
2090
|
if (link !== null) add(link);
|
|
2075
|
-
const linked2 =
|
|
2091
|
+
const linked2 = _chunk4SLJNZSMcjs.hasMark.call(void 0, marks, "link");
|
|
2076
2092
|
const weight = fontWeight(styles);
|
|
2077
2093
|
if (weight !== null ? weight >= 600 : tag === "b" || tag === "strong") add({ type: "bold" });
|
|
2078
|
-
else if (weight !== null) marks =
|
|
2094
|
+
else if (weight !== null) marks = _chunk4SLJNZSMcjs.removeMark.call(void 0, marks, "bold");
|
|
2079
2095
|
const slanted = isItalicStyle(styles);
|
|
2080
2096
|
if (_nullishCoalesce(slanted, () => ( (tag === "i" || tag === "em")))) add({ type: "italic" });
|
|
2081
|
-
else if (slanted === false) marks =
|
|
2097
|
+
else if (slanted === false) marks = _chunk4SLJNZSMcjs.removeMark.call(void 0, marks, "italic");
|
|
2082
2098
|
if (tag === "u" || !linked2 && hasDecoration(styles, "underline")) add({ type: "underline" });
|
|
2083
2099
|
if (tag === "s" || tag === "del" || tag === "strike" || hasDecoration(styles, "line-through")) {
|
|
2084
2100
|
add({ type: "strike" });
|
|
@@ -2097,7 +2113,7 @@ function elementMarks(element, inherited) {
|
|
|
2097
2113
|
}
|
|
2098
2114
|
|
|
2099
2115
|
// src/engine/clipboard/hoist-spaces.ts
|
|
2100
|
-
var shared = (a, b) => a.filter((mark) => b.some((other) =>
|
|
2116
|
+
var shared = (a, b) => a.filter((mark) => b.some((other) => _chunk4SLJNZSMcjs.sameMark.call(void 0, mark, other)));
|
|
2101
2117
|
function hoistEdgeSpaces(pieces) {
|
|
2102
2118
|
const result = [];
|
|
2103
2119
|
pieces.forEach((piece, at) => {
|
|
@@ -2160,7 +2176,7 @@ function finish({ pieces }) {
|
|
|
2160
2176
|
break;
|
|
2161
2177
|
}
|
|
2162
2178
|
}
|
|
2163
|
-
const inline =
|
|
2179
|
+
const inline = _chunk4SLJNZSMcjs.normalizeInline.call(void 0, hoistEdgeSpaces(pieces).map((piece) => _chunk4SLJNZSMcjs.text.call(void 0, piece.text, piece.marks)));
|
|
2164
2180
|
return inline.every((node) => node.kind === "text" && node.text.trim() === "") ? [] : inline;
|
|
2165
2181
|
}
|
|
2166
2182
|
function visit(acc, node, style, depth) {
|
|
@@ -2257,7 +2273,7 @@ function wordListItem(paragraph, ctx, sink) {
|
|
|
2257
2273
|
|
|
2258
2274
|
// src/engine/clipboard/html-media.ts
|
|
2259
2275
|
function imageBlock(img, caption, ctx, sink) {
|
|
2260
|
-
const url =
|
|
2276
|
+
const url = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, _nullishCoalesce(img.getAttribute("src"), () => ( "")));
|
|
2261
2277
|
if (url === null || url === "") return;
|
|
2262
2278
|
emit(sink, "IMAGE", ctx.indent, { storageKey: "", alt: _nullishCoalesce(img.getAttribute("alt"), () => ( "")), url }, { caption });
|
|
2263
2279
|
}
|
|
@@ -2295,7 +2311,7 @@ function tableBlock(table, ctx, sink) {
|
|
|
2295
2311
|
rows.forEach((row, r) => {
|
|
2296
2312
|
for (let c = 0; c < cols; c++) {
|
|
2297
2313
|
const cell = row.cells[c];
|
|
2298
|
-
regions[
|
|
2314
|
+
regions[_chunk4SLJNZSMcjs.cellKey.call(void 0, r, c)] = cell === void 0 ? [] : inlineFromNodes(cell.childNodes, ctx);
|
|
2299
2315
|
}
|
|
2300
2316
|
});
|
|
2301
2317
|
const header = rows[0].head || rows[0].cells.some((cell) => tagName(cell) === "th");
|
|
@@ -2308,7 +2324,7 @@ var HEADING = /^h([1-6])$/;
|
|
|
2308
2324
|
function emitRun(run, ctx, sink) {
|
|
2309
2325
|
const inline = inlineFromNodes(run, ctx);
|
|
2310
2326
|
if (inline.length === 0) return;
|
|
2311
|
-
const plain = ctx.run.kind === "heading" ?
|
|
2327
|
+
const plain = ctx.run.kind === "heading" ? _chunk4SLJNZSMcjs.removeMarkRange.call(void 0, inline, 0, _chunk4SLJNZSMcjs.inlineLength.call(void 0, inline), "bold") : inline;
|
|
2312
2328
|
emitText(sink, ctx.indent, ctx.run, plain);
|
|
2313
2329
|
}
|
|
2314
2330
|
function details(element, ctx, sink) {
|
|
@@ -2393,8 +2409,8 @@ function availableParser(parser) {
|
|
|
2393
2409
|
function fromHTML(html, options = {}) {
|
|
2394
2410
|
const parser = availableParser(options.parser);
|
|
2395
2411
|
if (parser === null) throw new Error("fromHTML needs a DOMParser");
|
|
2396
|
-
const makeId = _nullishCoalesce(options.newId, () => (
|
|
2397
|
-
const codec =
|
|
2412
|
+
const makeId = _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId));
|
|
2413
|
+
const codec = _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, _chunk4SLJNZSMcjs.createSchema.call(void 0, ), { newId: makeId });
|
|
2398
2414
|
const { body } = parser.parseFromString(html, "text/html");
|
|
2399
2415
|
return blocksFromBody(body, makeId).map((block) => codec.toQuoin(block));
|
|
2400
2416
|
}
|
|
@@ -2415,7 +2431,7 @@ function quoteLines(text2) {
|
|
|
2415
2431
|
|
|
2416
2432
|
// src/engine/markdown/document/block-forms.ts
|
|
2417
2433
|
var ALERT_NAMES = new Map(
|
|
2418
|
-
Object.entries(
|
|
2434
|
+
Object.entries(_chunk4SLJNZSMcjs.ALERT_TONES).map(([name, tone]) => [tone, name])
|
|
2419
2435
|
);
|
|
2420
2436
|
var DELIMITERS = /* @__PURE__ */ new Map([
|
|
2421
2437
|
["left", ":--"],
|
|
@@ -2425,8 +2441,8 @@ var DELIMITERS = /* @__PURE__ */ new Map([
|
|
|
2425
2441
|
var MIN_FENCE = 3;
|
|
2426
2442
|
var FENCE_LIKE_MATH_LINE = /^ {0,3}\${2,}[ \t]*$/m;
|
|
2427
2443
|
function calloutMarkdown(data) {
|
|
2428
|
-
const name = _nullishCoalesce(ALERT_NAMES.get(
|
|
2429
|
-
const body =
|
|
2444
|
+
const name = _nullishCoalesce(ALERT_NAMES.get(_chunk4SLJNZSMcjs.str.call(void 0, data.tone)), () => ( "NOTE"));
|
|
2445
|
+
const body = _chunk4SLJNZSMcjs.str.call(void 0, data.body);
|
|
2430
2446
|
return quoteLines(body === "" ? `[!${name}]` : `[!${name}]
|
|
2431
2447
|
${body}`);
|
|
2432
2448
|
}
|
|
@@ -2440,18 +2456,18 @@ function longestRun(value, char) {
|
|
|
2440
2456
|
return longest;
|
|
2441
2457
|
}
|
|
2442
2458
|
function codeMarkdown(data) {
|
|
2443
|
-
const code =
|
|
2444
|
-
const info =
|
|
2459
|
+
const code = _chunk4SLJNZSMcjs.str.call(void 0, data.code);
|
|
2460
|
+
const info = _chunk4SLJNZSMcjs.str.call(void 0, data.language);
|
|
2445
2461
|
const char = info.includes("`") ? "~" : "`";
|
|
2446
2462
|
const fence = char.repeat(Math.max(MIN_FENCE, longestRun(code, char) + 1));
|
|
2447
2463
|
return [fence + info.replace(/[\\&]/g, "\\$&"), ...code === "" ? [] : code.split("\n"), fence].join("\n");
|
|
2448
2464
|
}
|
|
2449
2465
|
function mathMarkdown(data) {
|
|
2450
|
-
const latex =
|
|
2466
|
+
const latex = _chunk4SLJNZSMcjs.str.call(void 0, data.latex);
|
|
2451
2467
|
if (FENCE_LIKE_MATH_LINE.test(latex)) return null;
|
|
2452
2468
|
return ["$$", ...latex === "" ? [] : latex.split("\n"), "$$"].join("\n");
|
|
2453
2469
|
}
|
|
2454
|
-
var cellsOf = (row) => Array.isArray(row) ? row.map(
|
|
2470
|
+
var cellsOf = (row) => Array.isArray(row) ? row.map(_chunk4SLJNZSMcjs.str) : [];
|
|
2455
2471
|
var rowMarkdown = (cells) => `| ${cells.join(" | ")} |`;
|
|
2456
2472
|
function tableMarkdown(data) {
|
|
2457
2473
|
const rows = Array.isArray(data.rows) ? data.rows.map(cellsOf) : [];
|
|
@@ -2478,7 +2494,7 @@ function needsComment(block, residual, schema, ctx) {
|
|
|
2478
2494
|
const native = NATIVE_KEYS.get(block.type);
|
|
2479
2495
|
if (!native) return false;
|
|
2480
2496
|
if (residual > 0) return true;
|
|
2481
|
-
return Object.keys(
|
|
2497
|
+
return Object.keys(_chunk4SLJNZSMcjs.specFor.call(void 0, schema, block.type).toData(block, ctx)).some((key) => !native.includes(key));
|
|
2482
2498
|
}
|
|
2483
2499
|
|
|
2484
2500
|
// src/engine/markdown/document/comment-markdown.ts
|
|
@@ -2492,41 +2508,41 @@ function quoinComment(type, data, indent2) {
|
|
|
2492
2508
|
// src/engine/markdown/document/link-forms.ts
|
|
2493
2509
|
var oneLine = (value) => value.replace(/[\r\n]+/g, " ");
|
|
2494
2510
|
function linked(label, href, ctx) {
|
|
2495
|
-
return ctx.inline.serialize([
|
|
2511
|
+
return ctx.inline.serialize([_chunk4SLJNZSMcjs.text.call(void 0, label || href, [{ type: "link", attrs: { href } }])]);
|
|
2496
2512
|
}
|
|
2497
2513
|
var assetUrl = (storageKey, ctx) => storageKey === "" ? "" : ctx.resolveAssetUrl(storageKey);
|
|
2498
2514
|
function imageMarkdown(data, ctx) {
|
|
2499
|
-
const href =
|
|
2515
|
+
const href = _chunk4SLJNZSMcjs.str.call(void 0, data.url) || assetUrl(_chunk4SLJNZSMcjs.str.call(void 0, data.storageKey), ctx);
|
|
2500
2516
|
if (href === "") return null;
|
|
2501
|
-
const caption =
|
|
2502
|
-
const alt = ctx.inline.serialize([
|
|
2503
|
-
return `![${alt}${
|
|
2517
|
+
const caption = _chunk4SLJNZSMcjs.str.call(void 0, data.caption);
|
|
2518
|
+
const alt = ctx.inline.serialize([_chunk4SLJNZSMcjs.text.call(void 0, oneLine(_chunk4SLJNZSMcjs.str.call(void 0, data.alt)))]);
|
|
2519
|
+
return `![${alt}${_chunk4SLJNZSMcjs.linkClose.call(void 0, { type: "link", attrs: caption ? { href, title: caption } : { href } }, false)}`;
|
|
2504
2520
|
}
|
|
2505
2521
|
function fileMarkdown(data, ctx) {
|
|
2506
|
-
const href = assetUrl(
|
|
2507
|
-
return href === "" ? null : linked(oneLine(
|
|
2522
|
+
const href = assetUrl(_chunk4SLJNZSMcjs.str.call(void 0, data.storageKey), ctx);
|
|
2523
|
+
return href === "" ? null : linked(oneLine(_chunk4SLJNZSMcjs.str.call(void 0, data.filename)), href, ctx);
|
|
2508
2524
|
}
|
|
2509
2525
|
function embedMarkdown(data, ctx) {
|
|
2510
|
-
const url =
|
|
2526
|
+
const url = _chunk4SLJNZSMcjs.str.call(void 0, data.url);
|
|
2511
2527
|
return url === "" ? null : linked(url, url, ctx);
|
|
2512
2528
|
}
|
|
2513
2529
|
function bookmarkMarkdown(data, ctx) {
|
|
2514
|
-
const url =
|
|
2515
|
-
return url === "" ? null : linked(oneLine(
|
|
2530
|
+
const url = _chunk4SLJNZSMcjs.str.call(void 0, data.url);
|
|
2531
|
+
return url === "" ? null : linked(oneLine(_chunk4SLJNZSMcjs.str.call(void 0, data.title)), url, ctx);
|
|
2516
2532
|
}
|
|
2517
2533
|
|
|
2518
2534
|
// src/engine/markdown/document/block-markdown.ts
|
|
2519
2535
|
var QUOTE_PREFIX = "> ";
|
|
2520
2536
|
function markdownLine(block, data) {
|
|
2521
2537
|
const kind = _nullishCoalesce(block.attrs.kind, () => ( "paragraph"));
|
|
2522
|
-
const markdown =
|
|
2523
|
-
const empty =
|
|
2538
|
+
const markdown = _chunk4SLJNZSMcjs.str.call(void 0, data.markdown);
|
|
2539
|
+
const empty = _chunk4SLJNZSMcjs.inlineLength.call(void 0, _nullishCoalesce(block.regions.text, () => ( []))) === 0;
|
|
2524
2540
|
if (empty && (kind === "paragraph" || kind === "quote")) return null;
|
|
2525
2541
|
return kind === "quote" ? quoteLines(markdown.slice(QUOTE_PREFIX.length)) : markdown;
|
|
2526
2542
|
}
|
|
2527
2543
|
function toggleMarkdown(data) {
|
|
2528
2544
|
return `<details${data.open === true ? " open" : ""}>
|
|
2529
|
-
<summary>${
|
|
2545
|
+
<summary>${_chunk4SLJNZSMcjs.str.call(void 0, data.markdown)}</summary>`;
|
|
2530
2546
|
}
|
|
2531
2547
|
function coreMarkdown(block, data, env, residual) {
|
|
2532
2548
|
switch (block.type) {
|
|
@@ -2559,9 +2575,9 @@ function coreMarkdown(block, data, env, residual) {
|
|
|
2559
2575
|
}
|
|
2560
2576
|
}
|
|
2561
2577
|
function blockMarkdown(block, env, { residual, asComment }) {
|
|
2562
|
-
const spec =
|
|
2578
|
+
const spec = _chunk4SLJNZSMcjs.specFor.call(void 0, env.schema, block.type);
|
|
2563
2579
|
const data = spec.toData(block, env.ctx);
|
|
2564
|
-
const comment = () =>
|
|
2580
|
+
const comment = () => _chunk4SLJNZSMcjs.isQuoinType.call(void 0, block.type) ? quoinComment(block.type, data, residual) : null;
|
|
2565
2581
|
if (asComment || env.lossless && !hasNativeForm(block.type)) return comment();
|
|
2566
2582
|
const written = spec.toMarkdown ? spec.toMarkdown(block, env.ctx) : coreMarkdown(block, data, env, residual);
|
|
2567
2583
|
if (written !== null) return written;
|
|
@@ -2591,7 +2607,7 @@ function createListContext() {
|
|
|
2591
2607
|
let placed = block;
|
|
2592
2608
|
let number = 1;
|
|
2593
2609
|
if (line2 === "ordered") {
|
|
2594
|
-
number = Math.min(_nullishCoalesce(runs.get(block.indent), () => (
|
|
2610
|
+
number = Math.min(_nullishCoalesce(runs.get(block.indent), () => ( _chunk4SLJNZSMcjs.orderedStart.call(void 0, block.attrs.start))), _chunk4SLJNZSMcjs.MAX_MARKER_NUMBER);
|
|
2595
2611
|
runs.set(block.indent, number + 1);
|
|
2596
2612
|
if (number !== block.attrs.start) placed = { ...block, attrs: { ...block.attrs, start: number } };
|
|
2597
2613
|
} else {
|
|
@@ -2601,7 +2617,7 @@ function createListContext() {
|
|
|
2601
2617
|
const hang = isItem2 ? (line2 === "ordered" ? String(number).length : 0) + 2 : 0;
|
|
2602
2618
|
const container = comment ? void 0 : openedBy(block, prefix, hang);
|
|
2603
2619
|
if (container) stack.push(container);
|
|
2604
|
-
const bare = !comment && (line2 === "bullet" || line2 === "ordered") &&
|
|
2620
|
+
const bare = !comment && (line2 === "bullet" || line2 === "ordered") && _chunk4SLJNZSMcjs.inlineLength.call(void 0, _nullishCoalesce(block.regions.text, () => ( []))) === 0;
|
|
2605
2621
|
const fragile = isItem2 && (bare || line2 === "ordered" && number !== 1);
|
|
2606
2622
|
const shown = comment ? void 0 : line2;
|
|
2607
2623
|
return { block: placed, line: shown, prefix, hang, residual, parent, container, closed, bare, fragile, comment };
|
|
@@ -2619,7 +2635,7 @@ function stripComments(block) {
|
|
|
2619
2635
|
regions: Object.fromEntries(
|
|
2620
2636
|
regions.map(([name, inline]) => [
|
|
2621
2637
|
name,
|
|
2622
|
-
hasCommentMark(inline) ?
|
|
2638
|
+
hasCommentMark(inline) ? _chunk4SLJNZSMcjs.removeMarkRange.call(void 0, inline, 0, _chunk4SLJNZSMcjs.inlineLength.call(void 0, inline), "comment") : inline
|
|
2623
2639
|
])
|
|
2624
2640
|
)
|
|
2625
2641
|
};
|
|
@@ -2648,7 +2664,7 @@ function pieceOf(text2, placement) {
|
|
|
2648
2664
|
opened: placement.container,
|
|
2649
2665
|
bare: placement.bare,
|
|
2650
2666
|
fragile: placement.fragile,
|
|
2651
|
-
leadsHtml: hang > 0 &&
|
|
2667
|
+
leadsHtml: hang > 0 && _chunk4SLJNZSMcjs.startsHtmlBlock.call(void 0, text2.split("\n")[0].slice(hang))
|
|
2652
2668
|
};
|
|
2653
2669
|
}
|
|
2654
2670
|
function takenAsItemText(previous, { parent, line: line2 }) {
|
|
@@ -2673,8 +2689,8 @@ function join(pieces) {
|
|
|
2673
2689
|
`;
|
|
2674
2690
|
}
|
|
2675
2691
|
function toMarkdown(blocks, options = {}) {
|
|
2676
|
-
const schema = _nullishCoalesce(options.schema, () => (
|
|
2677
|
-
const codec =
|
|
2692
|
+
const schema = _nullishCoalesce(options.schema, () => ( _chunk4SLJNZSMcjs.createSchema.call(void 0, )));
|
|
2693
|
+
const codec = _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, schema);
|
|
2678
2694
|
const env = {
|
|
2679
2695
|
schema,
|
|
2680
2696
|
lossless: options.lossless === true,
|
|
@@ -2716,20 +2732,20 @@ function escapeAttr(value) {
|
|
|
2716
2732
|
|
|
2717
2733
|
// src/engine/render/serialize-html.ts
|
|
2718
2734
|
var VOID = /* @__PURE__ */ new Set(["br", "hr", "img", "input"]);
|
|
2719
|
-
var attrsHtml = (node) =>
|
|
2735
|
+
var attrsHtml = (node) => _chunk4SLJNZSMcjs.writtenAttrs.call(void 0, node.attrs).map(([name, value]) => value === true ? ` ${name}` : ` ${name}="${escapeAttr(value)}"`).join("");
|
|
2720
2736
|
var serializeHtml = (nodes) => nodes.map(
|
|
2721
2737
|
(node) => typeof node === "string" ? escapeHtml(node) : `<${node.tag}${attrsHtml(node)}>${VOID.has(node.tag) ? "" : `${_nullishCoalesce(node.html, () => ( serializeHtml(node.children)))}</${node.tag}>`}`
|
|
2722
2738
|
).join("");
|
|
2723
2739
|
|
|
2724
2740
|
// src/engine/render/to-html.ts
|
|
2725
|
-
var toHTML = (blocks, options = {}) => serializeHtml(
|
|
2741
|
+
var toHTML = (blocks, options = {}) => serializeHtml(_chunk4SLJNZSMcjs.documentNodes.call(void 0, blocks, options));
|
|
2726
2742
|
|
|
2727
2743
|
// src/engine/render/to-plain-text.ts
|
|
2728
2744
|
function plainTextBlocks(blocks, schema) {
|
|
2729
|
-
return
|
|
2745
|
+
return _chunk4SLJNZSMcjs.engineBlocksOf.call(void 0, blocks, schema).map((block) => _chunk4SLJNZSMcjs.blockPlainText.call(void 0, block, schema));
|
|
2730
2746
|
}
|
|
2731
2747
|
function toPlainText(blocks, options = {}) {
|
|
2732
|
-
return plainTextBlocks(blocks, _nullishCoalesce(options.schema, () => (
|
|
2748
|
+
return plainTextBlocks(blocks, _nullishCoalesce(options.schema, () => ( _chunk4SLJNZSMcjs.createSchema.call(void 0, )))).join("\n");
|
|
2733
2749
|
}
|
|
2734
2750
|
|
|
2735
2751
|
// src/engine/model/graphemes.ts
|
|
@@ -2781,7 +2797,7 @@ function countBlock(block, schema) {
|
|
|
2781
2797
|
if (!blocks) counted.set(schema, blocks = /* @__PURE__ */ new WeakMap());
|
|
2782
2798
|
const known = blocks.get(block);
|
|
2783
2799
|
if (known) return known;
|
|
2784
|
-
const text2 =
|
|
2800
|
+
const text2 = _chunk4SLJNZSMcjs.blockPlainText.call(void 0, block, schema);
|
|
2785
2801
|
const stats = { characters: graphemeCount(text2), words: wordCount(text2) };
|
|
2786
2802
|
blocks.set(block, stats);
|
|
2787
2803
|
return stats;
|
|
@@ -2800,17 +2816,17 @@ function sum(blocks, schema) {
|
|
|
2800
2816
|
return { characters, words: words2 };
|
|
2801
2817
|
}
|
|
2802
2818
|
function countText(blocks, options = {}) {
|
|
2803
|
-
const schema = _nullishCoalesce(options.schema, () => ( (defaultSchema ??=
|
|
2804
|
-
return sum(
|
|
2819
|
+
const schema = _nullishCoalesce(options.schema, () => ( (defaultSchema ??= _chunk4SLJNZSMcjs.createSchema.call(void 0, ))));
|
|
2820
|
+
return sum(_chunk4SLJNZSMcjs.engineBlocksOf.call(void 0, blocks, schema), schema);
|
|
2805
2821
|
}
|
|
2806
2822
|
function countDoc(doc, options = {}) {
|
|
2807
|
-
return sum(doc.blocks, _nullishCoalesce(options.schema, () => ( (defaultSchema ??=
|
|
2823
|
+
return sum(doc.blocks, _nullishCoalesce(options.schema, () => ( (defaultSchema ??= _chunk4SLJNZSMcjs.createSchema.call(void 0, )))));
|
|
2808
2824
|
}
|
|
2809
2825
|
|
|
2810
2826
|
// src/engine/commands/block-style.ts
|
|
2811
2827
|
function patchBlocks(state, patch, only) {
|
|
2812
2828
|
const changing = selectedBlockIds(state.doc, state.selection).filter((id) => {
|
|
2813
|
-
const block =
|
|
2829
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id);
|
|
2814
2830
|
return block !== void 0 && (only === void 0 || block.type === only) && patchChangesAttrs(block.attrs, patch);
|
|
2815
2831
|
});
|
|
2816
2832
|
if (changing.length === 0) return null;
|
|
@@ -2838,7 +2854,7 @@ function setBlockColor(colors) {
|
|
|
2838
2854
|
const value = colors[key];
|
|
2839
2855
|
if (value !== void 0) patch[key] = _nullishCoalesce(value, () => ( void 0));
|
|
2840
2856
|
}
|
|
2841
|
-
const valid = Object.values(patch).every((value) => value === void 0 ||
|
|
2857
|
+
const valid = Object.values(patch).every((value) => value === void 0 || _chunk4SLJNZSMcjs.isPaletteColor.call(void 0, value));
|
|
2842
2858
|
return valid ? patchCommand(patch, "MARKDOWN") : () => false;
|
|
2843
2859
|
}
|
|
2844
2860
|
|
|
@@ -2858,7 +2874,7 @@ function textCaret(state) {
|
|
|
2858
2874
|
const { doc, schema, selection } = state;
|
|
2859
2875
|
if (_optionalChain([selection, 'optionalAccess', _89 => _89.kind]) !== "text" || !isCollapsed(selection)) return null;
|
|
2860
2876
|
const pos = selection.head;
|
|
2861
|
-
const index =
|
|
2877
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, pos.block);
|
|
2862
2878
|
const block = doc.blocks[index];
|
|
2863
2879
|
const inFlow2 = isTextFlow(schema, block) && pos.region === primaryRegion(schema, block);
|
|
2864
2880
|
return inFlow2 ? { block, index, pos } : null;
|
|
@@ -2866,14 +2882,14 @@ function textCaret(state) {
|
|
|
2866
2882
|
function joinInto(tr, schema, target, source) {
|
|
2867
2883
|
const targetRegion = _nullishCoalesce(primaryRegion(schema, target), () => ( ""));
|
|
2868
2884
|
tr.step(joinBlocksStep(target.id, targetRegion, source.id, _nullishCoalesce(primaryRegion(schema, source), () => ( ""))));
|
|
2869
|
-
capIndents(tr,
|
|
2885
|
+
capIndents(tr, _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, target.id) + 1);
|
|
2870
2886
|
const offset = regionLength(target, targetRegion);
|
|
2871
2887
|
tr.setSelection(textSelection({ block: target.id, region: targetRegion, offset }));
|
|
2872
2888
|
}
|
|
2873
2889
|
function joinIntoSummary(tr, schema, summary, source) {
|
|
2874
2890
|
const region = _nullishCoalesce(primaryRegion(schema, summary), () => ( ""));
|
|
2875
2891
|
const offset = regionLength(summary, region);
|
|
2876
|
-
const index =
|
|
2892
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, source.id);
|
|
2877
2893
|
const content = source.regions[_nullishCoalesce(primaryRegion(schema, source), () => ( ""))];
|
|
2878
2894
|
if (content.length > 0) tr.step(replaceInlineStep(summary.id, region, offset, offset, content));
|
|
2879
2895
|
tr.step(removeBlocksStep(index, 1));
|
|
@@ -2945,7 +2961,7 @@ function deleteReaching(forward, reach) {
|
|
|
2945
2961
|
const { selection } = state;
|
|
2946
2962
|
if (_optionalChain([selection, 'optionalAccess', _94 => _94.kind]) !== "text" || !isCollapsed(selection)) return deleteSelection(state, dispatch);
|
|
2947
2963
|
const { head } = selection;
|
|
2948
|
-
const value =
|
|
2964
|
+
const value = _chunk4SLJNZSMcjs.inlineText.call(void 0, state.doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, state.doc, head.block)].regions[head.region]);
|
|
2949
2965
|
if (forward ? head.offset >= value.length : head.offset <= 0) {
|
|
2950
2966
|
return (forward ? deleteAtEnd : deleteAtStart)(state, dispatch);
|
|
2951
2967
|
}
|
|
@@ -2999,8 +3015,8 @@ function movedBlockIds(doc, ids) {
|
|
|
2999
3015
|
function gather(tr, runs, above) {
|
|
3000
3016
|
let anchor = above;
|
|
3001
3017
|
for (const run of runs) {
|
|
3002
|
-
const from =
|
|
3003
|
-
const at = anchor === null ? -1 :
|
|
3018
|
+
const from = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, run[0]);
|
|
3019
|
+
const at = anchor === null ? -1 : _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, anchor);
|
|
3004
3020
|
const to = at < from ? at + 1 : at + 1 - run.length;
|
|
3005
3021
|
if (to !== from) tr.step(moveBlocksStep(from, run.length, to));
|
|
3006
3022
|
anchor = run[run.length - 1];
|
|
@@ -3028,7 +3044,7 @@ function moveBlocksTo(ids, toIndex, indent2) {
|
|
|
3028
3044
|
const first = runs[0][0];
|
|
3029
3045
|
const last = runs[runs.length - 1];
|
|
3030
3046
|
const clamped = Math.min(Math.max(indent2, 0), above ? above.indent + 1 : 0);
|
|
3031
|
-
reindent(tr,
|
|
3047
|
+
reindent(tr, _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, first), moved2.size, clamped);
|
|
3032
3048
|
if (!tr.docChanged) return false;
|
|
3033
3049
|
_optionalChain([dispatch, 'optionalCall', _100 => _100(tr.setSelection(blockRangeSelection(first, last[last.length - 1])))]);
|
|
3034
3050
|
return true;
|
|
@@ -3042,7 +3058,7 @@ var selectAll = (state, dispatch) => {
|
|
|
3042
3058
|
let next = blockRangeSelection(doc.blocks[0].id, doc.blocks[doc.blocks.length - 1].id);
|
|
3043
3059
|
if (_optionalChain([selection, 'optionalAccess', _101 => _101.kind]) === "text") {
|
|
3044
3060
|
const { anchor, head } = selection;
|
|
3045
|
-
const length =
|
|
3061
|
+
const length = _chunk4SLJNZSMcjs.inlineLength.call(void 0, _nullishCoalesce(doc.blocks[_chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, head.block)].regions[head.region], () => ( [])));
|
|
3046
3062
|
const withinRegion = anchor.block === head.block && anchor.region === head.region;
|
|
3047
3063
|
const covers = Math.min(anchor.offset, head.offset) === 0 && Math.max(anchor.offset, head.offset) === length;
|
|
3048
3064
|
if (withinRegion && !covers) next = textSelection({ ...head, offset: 0 }, { ...head, offset: length });
|
|
@@ -3079,7 +3095,7 @@ function splitStep(schema, block, region, offset, id) {
|
|
|
3079
3095
|
// src/engine/commands/split-at.ts
|
|
3080
3096
|
function enterInHardBreakBlock({ tr, schema, block, index, pos, makeId }) {
|
|
3081
3097
|
const length = regionLength(block, pos.region);
|
|
3082
|
-
if (pos.offset === length &&
|
|
3098
|
+
if (pos.offset === length && _chunk4SLJNZSMcjs.inlineText.call(void 0, block.regions[pos.region]).endsWith("\n")) {
|
|
3083
3099
|
tr.step(replaceInlineStep(block.id, pos.region, length - 1, length, []));
|
|
3084
3100
|
const paragraph = createBlock(schema, schema.defaultTextBlock, {}, block.indent, makeId());
|
|
3085
3101
|
tr.step(insertBlocksStep(descendantsEnd(tr.doc, index), [paragraph]));
|
|
@@ -3102,7 +3118,7 @@ function insertEmptyBefore({ tr, schema, block, index, pos, makeId }) {
|
|
|
3102
3118
|
function splitToggle({ tr, schema, block, index, pos, makeId }) {
|
|
3103
3119
|
const length = regionLength(block, pos.region);
|
|
3104
3120
|
const open = block.attrs.open === true;
|
|
3105
|
-
const tail =
|
|
3121
|
+
const tail = _chunk4SLJNZSMcjs.sliceInline.call(void 0, block.regions[pos.region], pos.offset, length);
|
|
3106
3122
|
const empty = createBlock(schema, schema.defaultTextBlock, {}, open ? block.indent + 1 : block.indent, makeId());
|
|
3107
3123
|
if (pos.offset < length) tr.step(replaceInlineStep(block.id, pos.region, pos.offset, length, []));
|
|
3108
3124
|
tr.step(insertBlocksStep(open ? index + 1 : descendantsEnd(tr.doc, index), [withContent(schema, empty, tail)]));
|
|
@@ -3114,7 +3130,7 @@ function splitInTwo({ tr, schema, block, pos, makeId }) {
|
|
|
3114
3130
|
tr.setSelection(textSelection({ block: tail.id, region: tail.region, offset: 0 }));
|
|
3115
3131
|
}
|
|
3116
3132
|
function splitAt(tr, schema, pos, collapsed, makeId) {
|
|
3117
|
-
const index =
|
|
3133
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, pos.block);
|
|
3118
3134
|
const block = tr.doc.blocks[index];
|
|
3119
3135
|
if (!isTextFlow(schema, block) || pos.region !== primaryRegion(schema, block)) return false;
|
|
3120
3136
|
const target = { tr, schema, block, index, pos, makeId };
|
|
@@ -3129,13 +3145,13 @@ function splitAt(tr, schema, pos, collapsed, makeId) {
|
|
|
3129
3145
|
|
|
3130
3146
|
// src/engine/commands/split-block.ts
|
|
3131
3147
|
function splitBlock(options = {}) {
|
|
3132
|
-
const makeId = _nullishCoalesce(options.newId, () => (
|
|
3148
|
+
const makeId = _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId));
|
|
3133
3149
|
return (state, dispatch) => {
|
|
3134
3150
|
const { doc, schema, selection } = state;
|
|
3135
3151
|
if (selection === null || selection.kind === "blocks") return false;
|
|
3136
3152
|
const tr = new Transaction(state).setMeta(LINE_SPLIT, true);
|
|
3137
3153
|
if (selection.kind === "node") {
|
|
3138
|
-
const index =
|
|
3154
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, selection.block);
|
|
3139
3155
|
const paragraph = createBlock(schema, schema.defaultTextBlock, {}, doc.blocks[index].indent, makeId());
|
|
3140
3156
|
tr.step(insertBlocksStep(descendantsEnd(doc, index), [paragraph]));
|
|
3141
3157
|
tr.setSelection(startOf(tr.doc, schema, paragraph.id));
|
|
@@ -3245,7 +3261,7 @@ function replaceEmpty(tr, schema, index, blocks) {
|
|
|
3245
3261
|
tr.setSelection(endOf(tr.doc, schema, blocks[blocks.length - 1].id));
|
|
3246
3262
|
}
|
|
3247
3263
|
function pasteAtCaret(tr, schema, caret, ends, pieces, makeId) {
|
|
3248
|
-
const index =
|
|
3264
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, tr.doc, caret.block);
|
|
3249
3265
|
const current = tr.doc.blocks[index];
|
|
3250
3266
|
const { region } = caret;
|
|
3251
3267
|
const first = pieces[0];
|
|
@@ -3254,7 +3270,7 @@ function pasteAtCaret(tr, schema, caret, ends, pieces, makeId) {
|
|
|
3254
3270
|
if (pieces.length === 1 && ends.openStart && ends.openEnd && textual(first)) {
|
|
3255
3271
|
const content = contentOf(schema, first);
|
|
3256
3272
|
insertAt(tr, caret, content);
|
|
3257
|
-
tr.setSelection(textSelection({ ...caret, offset: caret.offset +
|
|
3273
|
+
tr.setSelection(textSelection({ ...caret, offset: caret.offset + _chunk4SLJNZSMcjs.inlineLength.call(void 0, content) }));
|
|
3258
3274
|
return;
|
|
3259
3275
|
}
|
|
3260
3276
|
const fresh = freshBlocks(pieces, current.indent, makeId);
|
|
@@ -3276,18 +3292,18 @@ function pasteAtCaret(tr, schema, caret, ends, pieces, makeId) {
|
|
|
3276
3292
|
if (atStart && !atEnd) {
|
|
3277
3293
|
if (middle.length > 0) insertCapped(tr, index, middle);
|
|
3278
3294
|
insertAt(tr, { ...caret, offset: 0 }, lastContent);
|
|
3279
|
-
tr.setSelection(textSelection({ ...caret, offset:
|
|
3295
|
+
tr.setSelection(textSelection({ ...caret, offset: _chunk4SLJNZSMcjs.inlineLength.call(void 0, lastContent) }));
|
|
3280
3296
|
return;
|
|
3281
3297
|
}
|
|
3282
3298
|
const firstContent = mergeFirst ? contentOf(schema, fresh[0]) : [];
|
|
3283
3299
|
insertAt(tr, caret, firstContent);
|
|
3284
|
-
const offset = caret.offset +
|
|
3300
|
+
const offset = caret.offset + _chunk4SLJNZSMcjs.inlineLength.call(void 0, firstContent);
|
|
3285
3301
|
const tail = !atEnd && (mergeLast || middle.length > 0) ? splitStep(schema, current, region, offset, makeId()) : null;
|
|
3286
3302
|
if (tail !== null) tr.step(tail.step);
|
|
3287
3303
|
if (middle.length > 0) insertCapped(tr, index + 1, middle);
|
|
3288
3304
|
if (tail !== null && mergeLast) {
|
|
3289
3305
|
insertAt(tr, { block: tail.tail.id, region: tail.tail.region, offset: 0 }, lastContent);
|
|
3290
|
-
tr.setSelection(textSelection({ block: tail.tail.id, region: tail.tail.region, offset:
|
|
3306
|
+
tr.setSelection(textSelection({ block: tail.tail.id, region: tail.tail.region, offset: _chunk4SLJNZSMcjs.inlineLength.call(void 0, lastContent) }));
|
|
3291
3307
|
} else if (middle.length > 0) {
|
|
3292
3308
|
tr.setSelection(endOf(tr.doc, schema, middle[middle.length - 1].id));
|
|
3293
3309
|
} else {
|
|
@@ -3313,10 +3329,10 @@ function appendAtEnd(tr, schema, pieces, makeId) {
|
|
|
3313
3329
|
tr.setSelection(endOf(tr.doc, schema, fresh[fresh.length - 1].id));
|
|
3314
3330
|
}
|
|
3315
3331
|
function insertSlice(slice, options = {}) {
|
|
3316
|
-
const makeId = _nullishCoalesce(options.newId, () => (
|
|
3332
|
+
const makeId = _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId));
|
|
3317
3333
|
return (state, dispatch) => {
|
|
3318
3334
|
const { doc, schema, selection } = state;
|
|
3319
|
-
const codec =
|
|
3335
|
+
const codec = _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, schema, { newId: makeId });
|
|
3320
3336
|
const pieces = slice.blocks.flatMap((block) => codec.toEngineBlocks(block));
|
|
3321
3337
|
if (pieces.length === 0) return false;
|
|
3322
3338
|
const tr = new Transaction(state).setOrigin("paste");
|
|
@@ -3365,9 +3381,9 @@ function fenceTransaction(state) {
|
|
|
3365
3381
|
const { selection, doc } = state;
|
|
3366
3382
|
if (_optionalChain([selection, 'optionalAccess', _118 => _118.kind]) !== "text" || !isCollapsed(selection)) return null;
|
|
3367
3383
|
const { block: id, region, offset } = selection.head;
|
|
3368
|
-
const block =
|
|
3384
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, id);
|
|
3369
3385
|
if (block === void 0 || !isParagraph(block) || offset !== regionLength(block, region)) return null;
|
|
3370
|
-
const fence = FENCE.exec(
|
|
3386
|
+
const fence = FENCE.exec(_chunk4SLJNZSMcjs.inlineText.call(void 0, block.regions[region]));
|
|
3371
3387
|
if (fence === null) return null;
|
|
3372
3388
|
return convertPrefix(state, { block: id, region, from: 0, to: offset }, setBlockType("CODE", { language: fence[1] }));
|
|
3373
3389
|
}
|
|
@@ -3434,9 +3450,9 @@ function coreExtensions(options = {}) {
|
|
|
3434
3450
|
return [
|
|
3435
3451
|
defineExtension({
|
|
3436
3452
|
name: "core",
|
|
3437
|
-
blocks:
|
|
3438
|
-
marks:
|
|
3439
|
-
atoms:
|
|
3453
|
+
blocks: _chunk4SLJNZSMcjs.coreBlockSpecs,
|
|
3454
|
+
marks: _chunk4SLJNZSMcjs.coreMarkSpecs,
|
|
3455
|
+
atoms: _chunk4SLJNZSMcjs.coreAtomSpecs,
|
|
3440
3456
|
commands: coreCommands,
|
|
3441
3457
|
pasteRules: [linkOverSelection]
|
|
3442
3458
|
}),
|
|
@@ -3453,12 +3469,12 @@ function coreExtensions(options = {}) {
|
|
|
3453
3469
|
|
|
3454
3470
|
// src/engine/clipboard/serialize-slice.ts
|
|
3455
3471
|
function sliceText(slice, options) {
|
|
3456
|
-
const schema = _nullishCoalesce(options.schema, () => (
|
|
3472
|
+
const schema = _nullishCoalesce(options.schema, () => ( _chunk4SLJNZSMcjs.createSchema.call(void 0, )));
|
|
3457
3473
|
if (slice.blocks.length === 1 && slice.openStart && slice.openEnd) {
|
|
3458
|
-
const pieces =
|
|
3474
|
+
const pieces = _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, schema).toEngineBlocks(slice.blocks[0]);
|
|
3459
3475
|
const block = pieces.length === 1 ? stripComments(pieces[0]) : null;
|
|
3460
3476
|
const region = block === null || !isTextFlow(schema, block) ? null : primaryRegion(schema, block);
|
|
3461
|
-
if (block !== null && region !== null) return
|
|
3477
|
+
if (block !== null && region !== null) return _chunk4SLJNZSMcjs.inlinePlainText.call(void 0, _nullishCoalesce(block.regions[region], () => ( [])), schema);
|
|
3462
3478
|
}
|
|
3463
3479
|
const markdown = toMarkdown(slice.blocks, { schema, resolveAssetUrl: options.resolveAssetUrl, comments: false });
|
|
3464
3480
|
return markdown.replace(/\n$/, "");
|
|
@@ -3476,17 +3492,17 @@ function isFlowRegion(schema, block, region) {
|
|
|
3476
3492
|
return isTextFlow(schema, block) && region === primaryRegion(schema, block);
|
|
3477
3493
|
}
|
|
3478
3494
|
function trimmed(block, region, from, to) {
|
|
3479
|
-
return { ...block, regions: { ...block.regions, [region]:
|
|
3495
|
+
return { ...block, regions: { ...block.regions, [region]: _chunk4SLJNZSMcjs.sliceInline.call(void 0, block.regions[region], from, to) } };
|
|
3480
3496
|
}
|
|
3481
3497
|
function insideOneRegion(schema, block, region, from, to) {
|
|
3482
3498
|
if (isFlowRegion(schema, block, region)) return trimmed(block, region, from, to);
|
|
3483
3499
|
const paragraph = createBlock(schema, schema.defaultTextBlock, {}, block.indent, block.id);
|
|
3484
|
-
return withContent(schema, paragraph,
|
|
3500
|
+
return withContent(schema, paragraph, _chunk4SLJNZSMcjs.sliceInline.call(void 0, block.regions[region], from, to));
|
|
3485
3501
|
}
|
|
3486
3502
|
function textBlocks({ doc, schema }, selection) {
|
|
3487
3503
|
const { from, to } = orderedRange(doc, selection.anchor, selection.head);
|
|
3488
|
-
const start =
|
|
3489
|
-
const end =
|
|
3504
|
+
const start = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, from.block);
|
|
3505
|
+
const end = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, to.block);
|
|
3490
3506
|
const first = doc.blocks[start];
|
|
3491
3507
|
if (start === end) {
|
|
3492
3508
|
if (from.region !== to.region) return [first];
|
|
@@ -3532,18 +3548,18 @@ var INLINE_SYNTAX = [/\*\*[^*\n]+\*\*/, /__[^_\n]+__/, /\[[^\]\n]+\]\([^)\s]+[^)
|
|
|
3532
3548
|
function looksLikeMarkdown(value) {
|
|
3533
3549
|
return value.split(/\r\n|\r|\n/).some((line2) => BLOCK_MARKERS.some((marker) => marker.test(line2))) || INLINE_SYNTAX.some((syntax) => syntax.test(value));
|
|
3534
3550
|
}
|
|
3535
|
-
function plainTextToBlocks(value, makeId =
|
|
3551
|
+
function plainTextToBlocks(value, makeId = _chunk4SLJNZSMcjs.newId) {
|
|
3536
3552
|
return value.split(/\r\n|\r|\n/).filter((line2) => line2.trim() !== "").map((line2) => ({
|
|
3537
3553
|
id: makeId(),
|
|
3538
3554
|
type: "MARKDOWN",
|
|
3539
|
-
data: { markdown:
|
|
3555
|
+
data: { markdown: _chunk4SLJNZSMcjs.serializeInline.call(void 0, [_chunk4SLJNZSMcjs.text.call(void 0, line2)], { escapeLineStart: true }) }
|
|
3540
3556
|
}));
|
|
3541
3557
|
}
|
|
3542
3558
|
|
|
3543
3559
|
// src/engine/clipboard/parse-slice-json.ts
|
|
3544
3560
|
function isBlock2(value) {
|
|
3545
|
-
if (!
|
|
3546
|
-
if (!
|
|
3561
|
+
if (!_chunk4SLJNZSMcjs.isRecord.call(void 0, value) || typeof value.id !== "string" || typeof value.type !== "string") return false;
|
|
3562
|
+
if (!_chunk4SLJNZSMcjs.isRecord.call(void 0, value.data)) return false;
|
|
3547
3563
|
return value.indent === void 0 || Number.isInteger(value.indent) && value.indent >= 0;
|
|
3548
3564
|
}
|
|
3549
3565
|
function parseSliceJSON(json) {
|
|
@@ -3553,7 +3569,7 @@ function parseSliceJSON(json) {
|
|
|
3553
3569
|
} catch (e) {
|
|
3554
3570
|
return null;
|
|
3555
3571
|
}
|
|
3556
|
-
if (!
|
|
3572
|
+
if (!_chunk4SLJNZSMcjs.isRecord.call(void 0, parsed) || parsed.quoin !== 1 || !_chunk4SLJNZSMcjs.isRecord.call(void 0, parsed.slice)) return null;
|
|
3557
3573
|
const { blocks, openStart, openEnd } = parsed.slice;
|
|
3558
3574
|
if (!Array.isArray(blocks) || blocks.length === 0 || !blocks.every(isBlock2)) return null;
|
|
3559
3575
|
if (typeof openStart !== "boolean" || typeof openEnd !== "boolean") return null;
|
|
@@ -3561,7 +3577,7 @@ function parseSliceJSON(json) {
|
|
|
3561
3577
|
}
|
|
3562
3578
|
|
|
3563
3579
|
// src/engine/clipboard/slice-from-clipboard.ts
|
|
3564
|
-
var isParagraph2 = (block) => block.type === "MARKDOWN" &&
|
|
3580
|
+
var isParagraph2 = (block) => block.type === "MARKDOWN" && _chunk4SLJNZSMcjs.parseLine.call(void 0, String(_nullishCoalesce(block.data.markdown, () => ( "")))).kind === "paragraph";
|
|
3565
3581
|
function openSlice(blocks, plainText2 = false) {
|
|
3566
3582
|
if (blocks.length === 0) return null;
|
|
3567
3583
|
const slice = { blocks, openStart: isParagraph2(blocks[0]), openEnd: isParagraph2(blocks[blocks.length - 1]) };
|
|
@@ -3571,14 +3587,14 @@ function linkBlocks(text2, makeId) {
|
|
|
3571
3587
|
const link = pastedLink(text2);
|
|
3572
3588
|
if (link === null) return null;
|
|
3573
3589
|
const { url, href, rest } = link;
|
|
3574
|
-
const linked2 =
|
|
3575
|
-
const markdown =
|
|
3590
|
+
const linked2 = _chunk4SLJNZSMcjs.text.call(void 0, url, [{ type: "link", attrs: { href } }]);
|
|
3591
|
+
const markdown = _chunk4SLJNZSMcjs.serializeInline.call(void 0, rest === "" ? [linked2] : [linked2, _chunk4SLJNZSMcjs.text.call(void 0, rest)]);
|
|
3576
3592
|
return [{ id: makeId(), type: "MARKDOWN", data: { markdown } }];
|
|
3577
3593
|
}
|
|
3578
3594
|
function textBlocks2(text2, makeId) {
|
|
3579
3595
|
const link = linkBlocks(text2, makeId);
|
|
3580
3596
|
if (link !== null) return link;
|
|
3581
|
-
return looksLikeMarkdown(text2) ?
|
|
3597
|
+
return looksLikeMarkdown(text2) ? _chunk4SLJNZSMcjs.fromMarkdown.call(void 0, text2, { newId: makeId }) : plainTextToBlocks(text2, makeId);
|
|
3582
3598
|
}
|
|
3583
3599
|
function htmlSlice(html, options) {
|
|
3584
3600
|
if (html === void 0) return null;
|
|
@@ -3590,7 +3606,7 @@ function sliceFromClipboard(data, options = {}) {
|
|
|
3590
3606
|
if (fromJson !== null) return fromJson;
|
|
3591
3607
|
const fromHtml = htmlSlice(data.html, options);
|
|
3592
3608
|
if (fromHtml !== null) return fromHtml;
|
|
3593
|
-
return data.text === void 0 ? null : openSlice(textBlocks2(data.text, _nullishCoalesce(options.newId, () => (
|
|
3609
|
+
return data.text === void 0 ? null : openSlice(textBlocks2(data.text, _nullishCoalesce(options.newId, () => ( _chunk4SLJNZSMcjs.newId))), true);
|
|
3594
3610
|
}
|
|
3595
3611
|
|
|
3596
3612
|
// src/engine/commands/is-active.ts
|
|
@@ -3599,7 +3615,7 @@ function hasAttrs(block, attrs) {
|
|
|
3599
3615
|
}
|
|
3600
3616
|
function isActive(state, name, attrs) {
|
|
3601
3617
|
if (state.schema.marks.has(name)) return selectionHasMark(state, name, attrs);
|
|
3602
|
-
const blocks = selectedBlockIds(state.doc, state.selection).flatMap((id) => _nullishCoalesce(
|
|
3618
|
+
const blocks = selectedBlockIds(state.doc, state.selection).flatMap((id) => _nullishCoalesce(_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id), () => ( [])));
|
|
3603
3619
|
const isBlockType = state.schema.blocks.has(name);
|
|
3604
3620
|
const matches = (block) => isBlockType ? block.type === name : block.type === "MARKDOWN" && block.attrs.kind === name;
|
|
3605
3621
|
return blocks.length > 0 && blocks.every((block) => matches(block) && hasAttrs(block, attrs));
|
|
@@ -3608,19 +3624,19 @@ function isActive(state, name, attrs) {
|
|
|
3608
3624
|
// src/engine/model/same-doc.ts
|
|
3609
3625
|
function sameDoc(a, b) {
|
|
3610
3626
|
if (a === b) return true;
|
|
3611
|
-
return a.blocks.length === b.blocks.length && a.blocks.every((block, i) =>
|
|
3627
|
+
return a.blocks.length === b.blocks.length && a.blocks.every((block, i) => _chunk6V6GGBDKcjs.sameValue.call(void 0, block, b.blocks[i]));
|
|
3612
3628
|
}
|
|
3613
3629
|
|
|
3614
3630
|
// src/engine/extension/same-blocks.ts
|
|
3615
3631
|
function sameBlock(a, b) {
|
|
3616
|
-
return a === b || a.id === b.id && a.type === b.type && (_nullishCoalesce(a.indent, () => ( 0))) === (_nullishCoalesce(b.indent, () => ( 0))) &&
|
|
3632
|
+
return a === b || a.id === b.id && a.type === b.type && (_nullishCoalesce(a.indent, () => ( 0))) === (_nullishCoalesce(b.indent, () => ( 0))) && _chunk6V6GGBDKcjs.sameValue.call(void 0, a.data, b.data);
|
|
3617
3633
|
}
|
|
3618
3634
|
function sameBlocks(a, b) {
|
|
3619
|
-
return a === b ||
|
|
3635
|
+
return a === b || _chunk4SLJNZSMcjs.sameItems.call(void 0, a, b, sameBlock);
|
|
3620
3636
|
}
|
|
3621
3637
|
|
|
3622
3638
|
// src/engine/extension/structural-echo.ts
|
|
3623
|
-
var sameIds = (a, b) =>
|
|
3639
|
+
var sameIds = (a, b) => _chunk4SLJNZSMcjs.sameItems.call(void 0, a, b, (x, y) => x.id === y.id);
|
|
3624
3640
|
function copiedSequence(emissions, incoming) {
|
|
3625
3641
|
const verdicts = /* @__PURE__ */ new Map();
|
|
3626
3642
|
const sameAt = (block, index) => {
|
|
@@ -3801,7 +3817,7 @@ function resolveExtensions(extensions, isMac) {
|
|
|
3801
3817
|
);
|
|
3802
3818
|
return {
|
|
3803
3819
|
extensions: sorted,
|
|
3804
|
-
schema:
|
|
3820
|
+
schema: _chunk4SLJNZSMcjs.createSchema.call(void 0, {
|
|
3805
3821
|
blocks: sorted.flatMap((extension) => _nullishCoalesce(extension.blocks, () => ( []))),
|
|
3806
3822
|
marks: sorted.flatMap((extension) => _nullishCoalesce(extension.marks, () => ( []))),
|
|
3807
3823
|
atoms: sorted.flatMap((extension) => _nullishCoalesce(extension.atoms, () => ( [])))
|
|
@@ -3825,7 +3841,7 @@ function createInternalEditor(options) {
|
|
|
3825
3841
|
const isMac = _nullishCoalesce(options.isMac, () => ( detectMac()));
|
|
3826
3842
|
const resolved = resolveExtensions(_nullishCoalesce(options.extensions, () => ( coreExtensions({ newId: newId2 }))), isMac);
|
|
3827
3843
|
const { schema, plugins } = resolved;
|
|
3828
|
-
const codec =
|
|
3844
|
+
const codec = _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, schema, { newId: newId2 });
|
|
3829
3845
|
const listeners = /* @__PURE__ */ new Set();
|
|
3830
3846
|
const mounts = /* @__PURE__ */ new Set();
|
|
3831
3847
|
let state = createState({ doc: codec.docFromBlocks(options.blocks), schema, plugins, clock: options.now });
|
|
@@ -4043,5 +4059,5 @@ function createInternalEditor(options) {
|
|
|
4043
4059
|
|
|
4044
4060
|
|
|
4045
4061
|
|
|
4046
|
-
exports.setAttrsStep = setAttrsStep; exports.setIndentStep = setIndentStep; exports.insertBlocksStep = insertBlocksStep; exports.removeBlocksStep = removeBlocksStep; exports.moveBlocksStep = moveBlocksStep; exports.replaceBlockStep = replaceBlockStep; exports.replaceInlineStep = replaceInlineStep; exports.addMarkStep = addMarkStep; exports.removeMarkStep = removeMarkStep; exports.commonPrefix = commonPrefix; exports.commonSuffix = commonSuffix; exports.replaceDocStep = replaceDocStep; exports.splitBlockStep = splitBlockStep; exports.joinBlocksStep = joinBlocksStep; exports.stepFromJSON = stepFromJSON; exports.comparePos = comparePos; exports.orderedRange = orderedRange; exports.textSelection = textSelection; exports.nodeSelection = nodeSelection; exports.blockRangeSelection = blockRangeSelection; exports.isCollapsed = isCollapsed; exports.sameSelection = sameSelection; exports.selectionRange = selectionRange; exports.selectedBlockIds = selectedBlockIds; exports.mapSelection = mapSelection; exports.primaryRegion = primaryRegion; exports.startOf = startOf; exports.endOf = endOf; exports.validateSelection = validateSelection; exports.isClosedToggle = isClosedToggle; exports.hidingToggle = hidingToggle; exports.createState = createState; exports.applyTransaction = applyTransaction; exports.getPluginState = getPluginState; exports.createPluginKey = createPluginKey; exports.
|
|
4047
|
-
//# sourceMappingURL=chunk-
|
|
4062
|
+
exports.setAttrsStep = setAttrsStep; exports.setIndentStep = setIndentStep; exports.insertBlocksStep = insertBlocksStep; exports.removeBlocksStep = removeBlocksStep; exports.moveBlocksStep = moveBlocksStep; exports.replaceBlockStep = replaceBlockStep; exports.replaceInlineStep = replaceInlineStep; exports.addMarkStep = addMarkStep; exports.removeMarkStep = removeMarkStep; exports.commonPrefix = commonPrefix; exports.commonSuffix = commonSuffix; exports.replaceDocStep = replaceDocStep; exports.splitBlockStep = splitBlockStep; exports.joinBlocksStep = joinBlocksStep; exports.stepFromJSON = stepFromJSON; exports.comparePos = comparePos; exports.orderedRange = orderedRange; exports.textSelection = textSelection; exports.nodeSelection = nodeSelection; exports.blockRangeSelection = blockRangeSelection; exports.isCollapsed = isCollapsed; exports.sameSelection = sameSelection; exports.selectionRange = selectionRange; exports.selectedBlockIds = selectedBlockIds; exports.mapSelection = mapSelection; exports.primaryRegion = primaryRegion; exports.startOf = startOf; exports.endOf = endOf; exports.validateSelection = validateSelection; exports.isClosedToggle = isClosedToggle; exports.hidingToggle = hidingToggle; exports.createState = createState; exports.applyTransaction = applyTransaction; exports.getPluginState = getPluginState; exports.createPluginKey = createPluginKey; exports.Transaction = Transaction; exports.caretMarks = caretMarks; exports.runCommands = runCommands; exports.HISTORY_PROVIDER = HISTORY_PROVIDER; exports.HISTORY_GROUP = HISTORY_GROUP; exports.groupOf = groupOf; exports.undo = undo; exports.redo = redo; exports.undoInputRule = undoInputRule; exports.isTextFlow = isTextFlow; exports.isParagraph = isParagraph; exports.regionLength = regionLength; exports.descendantsEnd = descendantsEnd; exports.createBlock = createBlock; exports.withContent = withContent; exports.headBlockId = headBlockId; exports.selectedBlockRange = selectedBlockRange; exports.capIndents = capIndents; exports.toggleTask = toggleTask; exports.indent = indent; exports.outdent = outdent; exports.moveBlocksUp = moveBlocksUp; exports.moveBlocksDown = moveBlocksDown; exports.duplicateBlocks = duplicateBlocks; exports.deleteBlocks = deleteBlocks; exports.insertBlockAfter = insertBlockAfter; exports.deleteRange = deleteRange; exports.insertTextAt = insertTextAt; exports.insertText = insertText; exports.markExtent = markExtent; exports.markRanges = markRanges; exports.rangeContent = rangeContent; exports.markCoverage = markCoverage; exports.toggleMark = toggleMark; exports.setMark = setMark; exports.unsetMark = unsetMark; exports.setLink = setLink; exports.unsetLink = unsetLink; exports.insertMention = insertMention; exports.setBlockType = setBlockType; exports.insertTextWithRules = insertTextWithRules; exports.blockInputRules = blockInputRules; exports.regionInline = regionInline; exports.markInputRules = markInputRules; exports.typographyRules = typographyRules; exports.fromHTML = fromHTML; exports.toMarkdown = toMarkdown; exports.toHTML = toHTML; exports.toPlainText = toPlainText; exports.graphemeCount = graphemeCount; exports.wordCount = wordCount; exports.nextGraphemeOffset = nextGraphemeOffset; exports.prevGraphemeOffset = prevGraphemeOffset; exports.countBlock = countBlock; exports.countText = countText; exports.countDoc = countDoc; exports.setAttrs = setAttrs; exports.setTextAlign = setTextAlign; exports.setBlockColor = setBlockColor; exports.LINE_JOIN = LINE_JOIN; exports.deleteSelection = deleteSelection; exports.deleteBackward = deleteBackward; exports.deleteForward = deleteForward; exports.deleteWordBackward = deleteWordBackward; exports.deleteWordForward = deleteWordForward; exports.deleteToLineStart = deleteToLineStart; exports.deleteToLineEnd = deleteToLineEnd; exports.insertHardBreak = insertHardBreak; exports.movedBlockIds = movedBlockIds; exports.moveBlocksTo = moveBlocksTo; exports.selectAll = selectAll; exports.setSelection = setSelection; exports.LINE_SPLIT = LINE_SPLIT; exports.freshBlocks = freshBlocks; exports.pasteAtCaret = pasteAtCaret; exports.insertSlice = insertSlice; exports.pastedLink = pastedLink; exports.defineExtension = defineExtension; exports.coreExtensions = coreExtensions; exports.sliceFromSelection = sliceFromSelection; exports.sliceFromClipboard = sliceFromClipboard; exports.isActive = isActive; exports.sameDoc = sameDoc; exports.detectMac = detectMac; exports.normalizeKey = normalizeKey; exports.keyName = keyName; exports.createEditor = createEditor;
|
|
4063
|
+
//# sourceMappingURL=chunk-ZKVOS57Q.cjs.map
|