quoin-editor 0.4.2 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +251 -0
- package/MIGRATION.md +233 -0
- package/README.md +78 -716
- package/dist/ai.cjs +1148 -0
- package/dist/ai.cjs.map +1 -0
- package/dist/ai.d.cts +68 -0
- package/dist/ai.d.ts +68 -0
- package/dist/ai.js +1148 -0
- package/dist/ai.js.map +1 -0
- package/dist/catalogue.cjs +59 -0
- package/dist/catalogue.cjs.map +1 -0
- package/dist/catalogue.d.cts +39 -0
- package/dist/catalogue.d.ts +39 -0
- package/dist/catalogue.js +59 -0
- package/dist/catalogue.js.map +1 -0
- package/dist/chunk-26Q4LSIU.js +100 -0
- package/dist/chunk-26Q4LSIU.js.map +1 -0
- package/dist/chunk-56C7GCKO.cjs +1385 -0
- package/dist/chunk-56C7GCKO.cjs.map +1 -0
- package/dist/chunk-5M4QG3ZC.cjs +3303 -0
- package/dist/chunk-5M4QG3ZC.cjs.map +1 -0
- package/dist/chunk-5R3ISX4A.cjs +6643 -0
- package/dist/chunk-5R3ISX4A.cjs.map +1 -0
- package/dist/chunk-62WKUAQY.js +3335 -0
- package/dist/chunk-62WKUAQY.js.map +1 -0
- package/dist/chunk-6LMS5J3Y.js +320 -0
- package/dist/chunk-6LMS5J3Y.js.map +1 -0
- package/dist/chunk-6PKVJZQV.cjs +100 -0
- package/dist/chunk-6PKVJZQV.cjs.map +1 -0
- package/dist/chunk-6YSGUAVW.js +376 -0
- package/dist/chunk-6YSGUAVW.js.map +1 -0
- package/dist/chunk-75C6PX2L.cjs +239 -0
- package/dist/chunk-75C6PX2L.cjs.map +1 -0
- package/dist/chunk-A4IJSJKL.js +598 -0
- package/dist/chunk-A4IJSJKL.js.map +1 -0
- package/dist/chunk-BTBHHBVR.cjs +3335 -0
- package/dist/chunk-BTBHHBVR.cjs.map +1 -0
- package/dist/chunk-CLTHD5GO.cjs +34 -0
- package/dist/chunk-CLTHD5GO.cjs.map +1 -0
- package/dist/chunk-EH5KXQXY.cjs +62 -0
- package/dist/chunk-EH5KXQXY.cjs.map +1 -0
- package/dist/chunk-ESMAW4NK.cjs +184 -0
- package/dist/chunk-ESMAW4NK.cjs.map +1 -0
- package/dist/chunk-EYFCOV3T.cjs +30 -0
- package/dist/chunk-EYFCOV3T.cjs.map +1 -0
- package/dist/chunk-F5V3IEEE.cjs +326 -0
- package/dist/chunk-F5V3IEEE.cjs.map +1 -0
- package/dist/chunk-GPIDU3GN.js +239 -0
- package/dist/chunk-GPIDU3GN.js.map +1 -0
- package/dist/chunk-HOIDJEVI.cjs +4063 -0
- package/dist/chunk-HOIDJEVI.cjs.map +1 -0
- package/dist/chunk-JJ3RASQS.cjs +706 -0
- package/dist/chunk-JJ3RASQS.cjs.map +1 -0
- package/dist/chunk-LE3F7WIP.js +6643 -0
- package/dist/chunk-LE3F7WIP.js.map +1 -0
- package/dist/chunk-LE5XMIFJ.cjs +14 -0
- package/dist/chunk-LE5XMIFJ.cjs.map +1 -0
- package/dist/chunk-LMAEPFTX.js +30 -0
- package/dist/chunk-LMAEPFTX.js.map +1 -0
- package/dist/chunk-LV6EYPJO.js +34 -0
- package/dist/chunk-LV6EYPJO.js.map +1 -0
- package/dist/chunk-MLRAVUFG.cjs +376 -0
- package/dist/chunk-MLRAVUFG.cjs.map +1 -0
- package/dist/chunk-MQUCCSWG.js +14 -0
- package/dist/chunk-MQUCCSWG.js.map +1 -0
- package/dist/chunk-O4Z2WMFF.js +62 -0
- package/dist/chunk-O4Z2WMFF.js.map +1 -0
- package/dist/chunk-OCCKQHCY.js +25 -0
- package/dist/chunk-OCCKQHCY.js.map +1 -0
- package/dist/chunk-PGSS4IOS.js +706 -0
- package/dist/chunk-PGSS4IOS.js.map +1 -0
- package/dist/chunk-PIWRSX7U.js +562 -0
- package/dist/chunk-PIWRSX7U.js.map +1 -0
- package/dist/chunk-PX6LZMH4.cjs +598 -0
- package/dist/chunk-PX6LZMH4.cjs.map +1 -0
- package/dist/chunk-QXG3HWDS.js +184 -0
- package/dist/chunk-QXG3HWDS.js.map +1 -0
- package/dist/chunk-RQW3P3GH.js +504 -0
- package/dist/chunk-RQW3P3GH.js.map +1 -0
- package/dist/chunk-SSIRYUCK.js +3303 -0
- package/dist/chunk-SSIRYUCK.js.map +1 -0
- package/dist/chunk-UBNG5YCG.js +326 -0
- package/dist/chunk-UBNG5YCG.js.map +1 -0
- package/dist/chunk-UCXLRRWY.js +1385 -0
- package/dist/chunk-UCXLRRWY.js.map +1 -0
- package/dist/chunk-UDAVVEFC.cjs +562 -0
- package/dist/chunk-UDAVVEFC.cjs.map +1 -0
- package/dist/chunk-UPSLDTLT.js +4063 -0
- package/dist/chunk-UPSLDTLT.js.map +1 -0
- package/dist/chunk-UWNZG2SD.cjs +25 -0
- package/dist/chunk-UWNZG2SD.cjs.map +1 -0
- package/dist/chunk-V3KLMSRO.cjs +504 -0
- package/dist/chunk-V3KLMSRO.cjs.map +1 -0
- package/dist/chunk-VACTAZWS.cjs +249 -0
- package/dist/chunk-VACTAZWS.cjs.map +1 -0
- package/dist/chunk-WMN6566P.js +249 -0
- package/dist/chunk-WMN6566P.js.map +1 -0
- package/dist/chunk-XX5FTPJR.cjs +320 -0
- package/dist/chunk-XX5FTPJR.cjs.map +1 -0
- package/dist/comments.cjs +1008 -0
- package/dist/comments.cjs.map +1 -0
- package/dist/comments.d.cts +93 -0
- package/dist/comments.d.ts +93 -0
- package/dist/comments.js +1008 -0
- package/dist/comments.js.map +1 -0
- package/dist/diff.cjs +346 -0
- package/dist/diff.cjs.map +1 -0
- package/dist/diff.d.cts +67 -0
- package/dist/diff.d.ts +67 -0
- package/dist/diff.js +346 -0
- package/dist/diff.js.map +1 -0
- package/dist/docx.cjs +874 -0
- package/dist/docx.cjs.map +1 -0
- package/dist/docx.d.cts +33 -0
- package/dist/docx.d.ts +33 -0
- package/dist/docx.js +874 -0
- package/dist/docx.js.map +1 -0
- package/dist/embed-provider-jXwlRmnp.d.cts +19 -0
- package/dist/embed-provider-jXwlRmnp.d.ts +19 -0
- package/dist/embed.cjs +17 -0
- package/dist/embed.cjs.map +1 -0
- package/dist/embed.d.cts +56 -0
- package/dist/embed.d.ts +56 -0
- package/dist/embed.js +17 -0
- package/dist/embed.js.map +1 -0
- package/dist/emoji-data.cjs +1968 -0
- package/dist/emoji-data.cjs.map +1 -0
- package/dist/emoji-data.js +1968 -0
- package/dist/emoji-data.js.map +1 -0
- package/dist/emoji-extension-CmPlRssm.d.ts +46 -0
- package/dist/emoji-extension-zJ6F7hW8.d.cts +46 -0
- package/dist/emoji.cjs +18 -0
- package/dist/emoji.cjs.map +1 -0
- package/dist/emoji.d.cts +31 -0
- package/dist/emoji.d.ts +31 -0
- package/dist/emoji.js +18 -0
- package/dist/emoji.js.map +1 -0
- package/dist/engine.cjs +119 -0
- package/dist/engine.cjs.map +1 -0
- package/dist/engine.d.cts +144 -0
- package/dist/engine.d.ts +144 -0
- package/dist/engine.js +119 -0
- package/dist/engine.js.map +1 -0
- package/dist/find-extension-BcRyE9K4.d.cts +41 -0
- package/dist/find-extension-CmFehyul.d.ts +41 -0
- package/dist/find.cjs +20 -0
- package/dist/find.cjs.map +1 -0
- package/dist/find.d.cts +44 -0
- package/dist/find.d.ts +44 -0
- package/dist/find.js +20 -0
- package/dist/find.js.map +1 -0
- package/dist/headless.cjs +151 -518
- package/dist/headless.cjs.map +1 -1
- package/dist/headless.d.cts +102 -69
- package/dist/headless.d.ts +102 -69
- package/dist/headless.js +149 -467
- package/dist/headless.js.map +1 -1
- package/dist/index-CFPmCee4.d.cts +68 -0
- package/dist/index-DiCGV60d.d.ts +68 -0
- package/dist/index.cjs +183 -2753
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +345 -253
- package/dist/index.d.ts +345 -253
- package/dist/index.js +168 -2696
- package/dist/index.js.map +1 -1
- package/dist/math.cjs +18 -0
- package/dist/math.cjs.map +1 -0
- package/dist/math.d.cts +49 -0
- package/dist/math.d.ts +49 -0
- package/dist/math.js +18 -0
- package/dist/math.js.map +1 -0
- package/dist/mention.cjs +18 -0
- package/dist/mention.cjs.map +1 -0
- package/dist/mention.d.cts +50 -0
- package/dist/mention.d.ts +50 -0
- package/dist/mention.js +18 -0
- package/dist/mention.js.map +1 -0
- package/dist/presence.cjs +562 -0
- package/dist/presence.cjs.map +1 -0
- package/dist/presence.d.cts +30 -0
- package/dist/presence.d.ts +30 -0
- package/dist/presence.js +562 -0
- package/dist/presence.js.map +1 -0
- package/dist/registry-CWBOSAHm.d.cts +121 -0
- package/dist/registry-CWBOSAHm.d.ts +121 -0
- package/dist/stats-extension-DisOEbbI.d.ts +40 -0
- package/dist/stats-extension-Dt1lgP3m.d.cts +40 -0
- package/dist/stats.cjs +19 -0
- package/dist/stats.cjs.map +1 -0
- package/dist/stats.d.cts +19 -0
- package/dist/stats.d.ts +19 -0
- package/dist/stats.js +19 -0
- package/dist/stats.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/table-extension-BTMJnT7J.d.ts +57 -0
- package/dist/table-extension-DxZz3jqp.d.cts +57 -0
- package/dist/table.cjs +50 -0
- package/dist/table.cjs.map +1 -0
- package/dist/table.d.cts +57 -0
- package/dist/table.d.ts +57 -0
- package/dist/table.js +50 -0
- package/dist/table.js.map +1 -0
- package/dist/to-html-C5t7xyaM.d.ts +21 -0
- package/dist/to-html-CNCITCln.d.cts +21 -0
- package/dist/toc-extension-CR9U-l6j.d.ts +25 -0
- package/dist/toc-extension-DGHywOBv.d.cts +25 -0
- package/dist/toc.cjs +18 -0
- package/dist/toc.cjs.map +1 -0
- package/dist/toc.d.cts +24 -0
- package/dist/toc.d.ts +24 -0
- package/dist/toc.js +18 -0
- package/dist/toc.js.map +1 -0
- package/dist/types-C6_QkXzy.d.ts +358 -0
- package/dist/types-CJ7Gq3GX.d.cts +358 -0
- package/dist/types-DULc8wwg.d.cts +120 -0
- package/dist/types-DULc8wwg.d.ts +120 -0
- package/dist/view-controller-BD1KwYfE.d.cts +105 -0
- package/dist/view-controller-y4cb60ue.d.ts +105 -0
- package/dist/view.cjs +23 -0
- package/dist/view.cjs.map +1 -0
- package/dist/view.d.cts +40 -0
- package/dist/view.d.ts +40 -0
- package/dist/view.js +23 -0
- package/dist/view.js.map +1 -0
- package/dist/yjs.cjs +864 -0
- package/dist/yjs.cjs.map +1 -0
- package/dist/yjs.d.cts +22 -0
- package/dist/yjs.d.ts +22 -0
- package/dist/yjs.js +864 -0
- package/dist/yjs.js.map +1 -0
- package/package.json +217 -18
|
@@ -0,0 +1,100 @@
|
|
|
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
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkEH5KXQXYcjs = require('./chunk-EH5KXQXY.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkBTBHHBVRcjs = require('./chunk-BTBHHBVR.cjs');
|
|
13
|
+
|
|
14
|
+
// src/view-static/html-to-react.ts
|
|
15
|
+
var _react = require('react');
|
|
16
|
+
|
|
17
|
+
// src/view-static/react-props.ts
|
|
18
|
+
var PROP_NAMES = {
|
|
19
|
+
class: "className",
|
|
20
|
+
checked: "defaultChecked",
|
|
21
|
+
referrerpolicy: "referrerPolicy"
|
|
22
|
+
};
|
|
23
|
+
var camelCase = (name) => name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
24
|
+
function styleObject(css) {
|
|
25
|
+
const style = {};
|
|
26
|
+
for (const declaration of css.split(";")) {
|
|
27
|
+
const colon = declaration.indexOf(":");
|
|
28
|
+
if (colon > 0) style[camelCase(declaration.slice(0, colon).trim())] = declaration.slice(colon + 1).trim();
|
|
29
|
+
}
|
|
30
|
+
return style;
|
|
31
|
+
}
|
|
32
|
+
function reactProps(attrs) {
|
|
33
|
+
const props = {};
|
|
34
|
+
for (const [name, value] of _chunkBTBHHBVRcjs.writtenAttrs.call(void 0, attrs)) {
|
|
35
|
+
props[_nullishCoalesce(PROP_NAMES[name], () => ( name))] = name === "style" && value !== true ? styleObject(value) : value;
|
|
36
|
+
}
|
|
37
|
+
return props;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/view-static/html-to-react.ts
|
|
41
|
+
var NO_SLOTS = /* @__PURE__ */ new Map();
|
|
42
|
+
function reactElement(node, slots) {
|
|
43
|
+
const props = reactProps(node.attrs);
|
|
44
|
+
if (node.html !== void 0) return _react.createElement.call(void 0, node.tag, { ...props, dangerouslySetInnerHTML: { __html: node.html } });
|
|
45
|
+
const children = slots.has(node) ? [slots.get(node)] : reactNodes(node.children, slots);
|
|
46
|
+
return _react.createElement.call(void 0, node.tag, props, ...children);
|
|
47
|
+
}
|
|
48
|
+
function reactNodes(nodes, slots = NO_SLOTS) {
|
|
49
|
+
const out = [];
|
|
50
|
+
let text = "";
|
|
51
|
+
for (const node of nodes) {
|
|
52
|
+
if (typeof node === "string") {
|
|
53
|
+
text += node;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (text !== "") out.push(text);
|
|
57
|
+
text = "";
|
|
58
|
+
out.push(reactElement(node, slots));
|
|
59
|
+
}
|
|
60
|
+
if (text !== "") out.push(text);
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// src/view-static/code-nodes.ts
|
|
65
|
+
var colourStyle = (color) => _chunkEH5KXQXYcjs.tokenColour.call(void 0, color) && `color:${color}`;
|
|
66
|
+
function highlightedCode(pre, block, highlight) {
|
|
67
|
+
const lines = _chunkEH5KXQXYcjs.highlightedLines.call(void 0, highlight, _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.code), _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.language));
|
|
68
|
+
const code = pre.children[0];
|
|
69
|
+
if (lines === null || typeof code === "string") return pre;
|
|
70
|
+
const tokens = lines.flatMap((line, index) => [
|
|
71
|
+
...index > 0 ? ["\n"] : [],
|
|
72
|
+
...line.map(
|
|
73
|
+
({ text, color, className }) => _chunkBTBHHBVRcjs.element.call(void 0, "span", [["style", colourStyle(color)], ["class", className]], [text])
|
|
74
|
+
)
|
|
75
|
+
]);
|
|
76
|
+
return _chunkBTBHHBVRcjs.element.call(void 0, pre.tag, pre.attrs, [_chunkBTBHHBVRcjs.element.call(void 0, code.tag, code.attrs, tokens)]);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// src/view-static/view-renderer.tsx
|
|
80
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
81
|
+
var QUOIN_TYPES = new Set(_chunkBTBHHBVRcjs.coreBlockSpecs.map((spec) => spec.type));
|
|
82
|
+
function viewRenderer({ blockTypes = [], highlight }, slots) {
|
|
83
|
+
return (block, view, env) => {
|
|
84
|
+
const node = _chunkBTBHHBVRcjs.blockNode.call(void 0, block, view, env);
|
|
85
|
+
if (typeof node === "string") return node;
|
|
86
|
+
if (block.type === "CODE") return highlightedCode(node, block, highlight);
|
|
87
|
+
const Preview = QUOIN_TYPES.has(block.type) ? void 0 : _optionalChain([_chunkEH5KXQXYcjs.blockByType.call(void 0, blockTypes, block.type), 'optionalAccess', _2 => _2.preview]);
|
|
88
|
+
if (Preview) {
|
|
89
|
+
const data = _nullishCoalesce(block.attrs.data, () => ( {}));
|
|
90
|
+
slots.set(node, /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Preview, { data, blockId: block.id }));
|
|
91
|
+
}
|
|
92
|
+
return node;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
exports.reactNodes = reactNodes; exports.viewRenderer = viewRenderer;
|
|
100
|
+
//# sourceMappingURL=chunk-6PKVJZQV.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["chunk-6PKVJZQV.cjs","../src/view-static/html-to-react.ts","../src/view-static/react-props.ts","../src/view-static/code-nodes.ts","../src/view-static/view-renderer.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/quoin-editor/quoin-editor/dist/chunk-6PKVJZQV.cjs"}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addMarkStep,
|
|
3
|
+
removeMarkStep,
|
|
4
|
+
replaceInlineStep,
|
|
5
|
+
sameSelection,
|
|
6
|
+
validateSelection
|
|
7
|
+
} from "./chunk-UPSLDTLT.js";
|
|
8
|
+
import {
|
|
9
|
+
atom,
|
|
10
|
+
inlineLength,
|
|
11
|
+
markKey,
|
|
12
|
+
nodeLength,
|
|
13
|
+
normalizeInline,
|
|
14
|
+
text
|
|
15
|
+
} from "./chunk-62WKUAQY.js";
|
|
16
|
+
|
|
17
|
+
// src/engine/collab/apply-remote.ts
|
|
18
|
+
function sharedChange(editor, steps, selectionHint, origin = "remote") {
|
|
19
|
+
const tr = editor.createTransaction().setOrigin(origin).setMeta("addToHistory", false);
|
|
20
|
+
for (const step of steps) tr.step(step);
|
|
21
|
+
if (selectionHint && sameSelection(validateSelection(tr.doc, editor.schema, selectionHint), selectionHint)) {
|
|
22
|
+
tr.setSelection(selectionHint);
|
|
23
|
+
}
|
|
24
|
+
return tr;
|
|
25
|
+
}
|
|
26
|
+
function applyRemote(editor, steps, selectionHint) {
|
|
27
|
+
editor.dispatch(sharedChange(editor, steps, selectionHint));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// src/yjs/bound.ts
|
|
31
|
+
var BOUND = /* @__PURE__ */ Symbol.for("quoin-editor.yjs.binding");
|
|
32
|
+
function holdBinding(collaboration, binding) {
|
|
33
|
+
collaboration[BOUND] = binding;
|
|
34
|
+
}
|
|
35
|
+
function sharedOf(collaboration, editor) {
|
|
36
|
+
const binding = collaboration[BOUND]?.();
|
|
37
|
+
return binding?.editor === editor ? binding.shared : null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/yjs/carets.ts
|
|
41
|
+
import * as Y2 from "yjs";
|
|
42
|
+
|
|
43
|
+
// src/yjs/layout.ts
|
|
44
|
+
var NO_STRAYS = { read: [], leading: /* @__PURE__ */ new Set(), unread: false };
|
|
45
|
+
var emptySpan = () => ({ length: 0, entry: null, segs: [], index: 0 });
|
|
46
|
+
var createLayout = (spans, entries, clean, strays = NO_STRAYS) => ({
|
|
47
|
+
spans,
|
|
48
|
+
entries,
|
|
49
|
+
clean,
|
|
50
|
+
strays,
|
|
51
|
+
starts: [],
|
|
52
|
+
valid: 0
|
|
53
|
+
});
|
|
54
|
+
function settle(layout) {
|
|
55
|
+
const { spans, starts } = layout;
|
|
56
|
+
let at = layout.valid === 0 ? 0 : starts[layout.valid - 1] + spans[layout.valid - 1].length;
|
|
57
|
+
for (let i = layout.valid; i < spans.length; i++) {
|
|
58
|
+
starts[i] = at;
|
|
59
|
+
spans[i].index = i;
|
|
60
|
+
at += spans[i].length;
|
|
61
|
+
}
|
|
62
|
+
layout.valid = spans.length;
|
|
63
|
+
}
|
|
64
|
+
var invalidate = (layout, from) => void (layout.valid = Math.min(layout.valid, from));
|
|
65
|
+
function spanStart(layout, span) {
|
|
66
|
+
if (span.index >= layout.valid || layout.spans[span.index] !== span) settle(layout);
|
|
67
|
+
return layout.starts[span.index];
|
|
68
|
+
}
|
|
69
|
+
function indexOf(layout, span) {
|
|
70
|
+
spanStart(layout, span);
|
|
71
|
+
return span.index;
|
|
72
|
+
}
|
|
73
|
+
function textLength(layout) {
|
|
74
|
+
const last = layout.spans[layout.spans.length - 1];
|
|
75
|
+
return spanStart(layout, last) + last.length;
|
|
76
|
+
}
|
|
77
|
+
function spanAt(layout, at, item = false) {
|
|
78
|
+
settle(layout);
|
|
79
|
+
let [low, high] = [0, layout.spans.length - 1];
|
|
80
|
+
while (low < high) {
|
|
81
|
+
const middle = Math.ceil((low + high) / 2);
|
|
82
|
+
if (layout.starts[middle] < at || item && layout.starts[middle] === at) low = middle;
|
|
83
|
+
else high = middle - 1;
|
|
84
|
+
}
|
|
85
|
+
return layout.spans[low];
|
|
86
|
+
}
|
|
87
|
+
function offsetIn(seg, rel) {
|
|
88
|
+
let offset = rel - seg.at;
|
|
89
|
+
for (const other of seg.region.segs) {
|
|
90
|
+
if (other === seg) return offset;
|
|
91
|
+
offset += other.length;
|
|
92
|
+
}
|
|
93
|
+
return offset;
|
|
94
|
+
}
|
|
95
|
+
function pointOf(region, offset) {
|
|
96
|
+
let before = 0;
|
|
97
|
+
for (const seg of region.segs) {
|
|
98
|
+
if (offset <= before + seg.length) return { seg, rel: seg.at + offset - before };
|
|
99
|
+
before += seg.length;
|
|
100
|
+
}
|
|
101
|
+
throw new RangeError(`offset ${offset} is past the end of region "${region.name}"`);
|
|
102
|
+
}
|
|
103
|
+
function piecesOf(region, from, to) {
|
|
104
|
+
const pieces = [];
|
|
105
|
+
let before = 0;
|
|
106
|
+
for (const seg of region.segs) {
|
|
107
|
+
const start = Math.max(from, before);
|
|
108
|
+
const end = Math.min(to, before + seg.length);
|
|
109
|
+
if (end > start) pieces.push({ seg, rel: seg.at + start - before, length: end - start });
|
|
110
|
+
before += seg.length;
|
|
111
|
+
}
|
|
112
|
+
return pieces;
|
|
113
|
+
}
|
|
114
|
+
function grow(layout, seg, rel, by) {
|
|
115
|
+
seg.length += by;
|
|
116
|
+
seg.host.length += by;
|
|
117
|
+
for (const other of seg.host.segs) {
|
|
118
|
+
if (other !== seg && (by > 0 ? other.at >= rel : other.at > rel)) other.at += by;
|
|
119
|
+
}
|
|
120
|
+
invalidate(layout, seg.host.index + 1);
|
|
121
|
+
}
|
|
122
|
+
function cleanEntry(block, map) {
|
|
123
|
+
const span = emptySpan();
|
|
124
|
+
const entry = { id: block.id, map, span, regions: [], copies: [] };
|
|
125
|
+
span.entry = entry;
|
|
126
|
+
span.length = 1;
|
|
127
|
+
for (const [name, inline] of Object.entries(block.regions)) {
|
|
128
|
+
const region = { name, entry, segs: [] };
|
|
129
|
+
const seg = { host: span, region, at: span.length + 1, length: inlineLength(inline) };
|
|
130
|
+
region.segs.push(seg);
|
|
131
|
+
span.segs.push(seg);
|
|
132
|
+
entry.regions.push(region);
|
|
133
|
+
span.length += 1 + seg.length;
|
|
134
|
+
}
|
|
135
|
+
return entry;
|
|
136
|
+
}
|
|
137
|
+
function placeEntries(layout, at, count, entries) {
|
|
138
|
+
for (const span of layout.spans.splice(at, count, ...entries.map((entry) => entry.span))) {
|
|
139
|
+
if (span.entry !== null && layout.entries.get(span.entry.id) === span.entry) layout.entries.delete(span.entry.id);
|
|
140
|
+
const copies = span.copyOf?.copies;
|
|
141
|
+
if (copies?.includes(span)) copies.splice(copies.indexOf(span), 1);
|
|
142
|
+
}
|
|
143
|
+
for (const entry of entries) layout.entries.set(entry.id, entry);
|
|
144
|
+
invalidate(layout, at);
|
|
145
|
+
}
|
|
146
|
+
function regionOf(layout, id, name) {
|
|
147
|
+
const region = layout.entries.get(id)?.regions.find((candidate) => candidate.name === name);
|
|
148
|
+
if (region === void 0) throw new RangeError(`no region "${name}" in block "${id}"`);
|
|
149
|
+
return region;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// src/yjs/doc-shape.ts
|
|
153
|
+
import * as Y from "yjs";
|
|
154
|
+
|
|
155
|
+
// src/yjs/marks-codec.ts
|
|
156
|
+
var ESCAPE = "$";
|
|
157
|
+
var escapeKey = (key) => key in Object.prototype || key.startsWith(ESCAPE) ? ESCAPE + key : key;
|
|
158
|
+
var unescapeKey = (key) => key.startsWith(ESCAPE) ? key.slice(1) : key;
|
|
159
|
+
var onlyString = (attrs, key) => Object.keys(attrs).length === 1 && Object.hasOwn(attrs, key) && typeof attrs[key] === "string";
|
|
160
|
+
function markAttribute(mark) {
|
|
161
|
+
const key = markKey(mark);
|
|
162
|
+
const { attrs } = mark;
|
|
163
|
+
const stacked = key !== mark.type;
|
|
164
|
+
if (attrs === void 0) return [escapeKey(key), !stacked];
|
|
165
|
+
if (stacked && onlyString(attrs, "id")) return [escapeKey(key), true];
|
|
166
|
+
if (onlyString(attrs, mark.type)) return [escapeKey(key), attrs[mark.type]];
|
|
167
|
+
return [escapeKey(key), attrs];
|
|
168
|
+
}
|
|
169
|
+
function stackedType(key) {
|
|
170
|
+
const colon = key.indexOf(":");
|
|
171
|
+
if (colon < 1) return null;
|
|
172
|
+
const type = key.slice(0, colon);
|
|
173
|
+
const id = key.slice(colon + 1);
|
|
174
|
+
return markKey({ type, attrs: { id } }) === key ? [type, id] : null;
|
|
175
|
+
}
|
|
176
|
+
function markFromAttribute(attribute, value) {
|
|
177
|
+
const key = unescapeKey(attribute);
|
|
178
|
+
const stacked = stackedType(key);
|
|
179
|
+
const type = stacked?.[0] ?? key;
|
|
180
|
+
if (value === true) return stacked === null ? { type } : { type, attrs: { id: stacked[1] } };
|
|
181
|
+
if (value === false) return { type };
|
|
182
|
+
if (typeof value === "string") return { type, attrs: { [type]: value } };
|
|
183
|
+
return { type, attrs: value };
|
|
184
|
+
}
|
|
185
|
+
var marksToAttributes = (marks) => Object.fromEntries(marks.map(markAttribute));
|
|
186
|
+
var attributesToMarks = (attributes = {}) => Object.entries(attributes).map(([key, value]) => markFromAttribute(key, value));
|
|
187
|
+
|
|
188
|
+
// src/yjs/inline-codec.ts
|
|
189
|
+
var inlineOps = (inline) => inline.map((node) => ({
|
|
190
|
+
insert: node.kind === "text" ? node.text : { atom: node.type, attrs: node.attrs },
|
|
191
|
+
attributes: marksToAttributes(node.marks)
|
|
192
|
+
}));
|
|
193
|
+
function insertInline(target, at, inline) {
|
|
194
|
+
let offset = at;
|
|
195
|
+
for (const node of inline) {
|
|
196
|
+
const attributes = marksToAttributes(node.marks);
|
|
197
|
+
if (node.kind === "text") target.insert(offset, node.text, attributes);
|
|
198
|
+
else target.insertEmbed(offset, { atom: node.type, attrs: node.attrs }, attributes);
|
|
199
|
+
offset += nodeLength(node);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function nodeOf({ insert, attributes }) {
|
|
203
|
+
const marks = attributesToMarks(attributes);
|
|
204
|
+
return typeof insert === "string" ? text(insert, marks) : atom(insert.atom, insert.attrs, marks);
|
|
205
|
+
}
|
|
206
|
+
var inlineOfOps = (ops) => normalizeInline(ops.map(nodeOf));
|
|
207
|
+
|
|
208
|
+
// src/yjs/doc-shape.ts
|
|
209
|
+
var deleteText = (text2, at, length) => text2.applyDelta(at > 0 ? [{ retain: at }, { delete: length }] : [{ delete: length }]);
|
|
210
|
+
var regionStart = (name) => ({ r: name });
|
|
211
|
+
var isPlainObject = (value) => typeof value === "object" && value !== null && !(value instanceof Y.AbstractType);
|
|
212
|
+
var regionNameOf = (embed) => isPlainObject(embed) && typeof embed.r === "string" && embed.atom === void 0 ? embed.r : null;
|
|
213
|
+
var isAtomEmbed = (embed) => isPlainObject(embed) && typeof embed.atom === "string" && isPlainObject(embed.attrs);
|
|
214
|
+
var definedEntries = (attrs) => Object.entries(attrs).filter(([, value]) => value !== void 0);
|
|
215
|
+
function attrsMap(marker, attrs) {
|
|
216
|
+
const current = marker.get("attrs");
|
|
217
|
+
if (current instanceof Y.Map) return current;
|
|
218
|
+
marker.set("attrs", new Y.Map(definedEntries(attrs)));
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
function markerOf(block) {
|
|
222
|
+
return new Y.Map([
|
|
223
|
+
["id", block.id],
|
|
224
|
+
["type", block.type],
|
|
225
|
+
["indent", block.indent],
|
|
226
|
+
["attrs", new Y.Map(definedEntries(block.attrs))]
|
|
227
|
+
]);
|
|
228
|
+
}
|
|
229
|
+
function readMarker(map) {
|
|
230
|
+
const [id, type, indent, attrs] = ["id", "type", "indent", "attrs"].map((key) => map.get(key));
|
|
231
|
+
if (typeof id !== "string") return null;
|
|
232
|
+
return {
|
|
233
|
+
id,
|
|
234
|
+
type: typeof type === "string" ? type : "",
|
|
235
|
+
indent: typeof indent === "number" ? indent : 0,
|
|
236
|
+
attrs: attrs instanceof Y.Map ? attrs : null
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
function blockOps(block, map, open) {
|
|
240
|
+
const ops = [{ insert: map, attributes: {} }];
|
|
241
|
+
for (const [name, inline] of Object.entries(block.regions)) {
|
|
242
|
+
ops.push({ insert: regionStart(name), attributes: {} });
|
|
243
|
+
if (name === open) break;
|
|
244
|
+
ops.push(...inlineOps(inline));
|
|
245
|
+
}
|
|
246
|
+
return ops;
|
|
247
|
+
}
|
|
248
|
+
var writeOps = (text2, at, ops) => text2.applyDelta(at > 0 ? [{ retain: at }, ...ops] : ops);
|
|
249
|
+
function writeBlock(text2, at, block, map, open) {
|
|
250
|
+
writeOps(text2, at, blockOps(block, map, open));
|
|
251
|
+
}
|
|
252
|
+
function writeBlocks(text2, at, blocks) {
|
|
253
|
+
const maps = blocks.map(markerOf);
|
|
254
|
+
writeOps(text2, at, blocks.flatMap((block, i) => blockOps(block, maps[i])));
|
|
255
|
+
return maps;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// src/yjs/text-steps.ts
|
|
259
|
+
function segAt(layout, at, item) {
|
|
260
|
+
const span = spanAt(layout, at, item);
|
|
261
|
+
const rel = at - spanStart(layout, span);
|
|
262
|
+
const seg = span.segs.find((candidate) => candidate.at <= rel && rel <= candidate.at + candidate.length);
|
|
263
|
+
return seg === void 0 ? null : { seg, rel };
|
|
264
|
+
}
|
|
265
|
+
function replaceAt(layout, { seg, rel }, removed, inline) {
|
|
266
|
+
const from = offsetIn(seg, rel);
|
|
267
|
+
grow(layout, seg, rel, inlineLength(inline) - removed);
|
|
268
|
+
return replaceInlineStep(seg.region.entry.id, seg.region.name, from, from + removed, inline);
|
|
269
|
+
}
|
|
270
|
+
function formatSteps(layout, at, length, attributes) {
|
|
271
|
+
const steps = [];
|
|
272
|
+
for (let span = spanAt(layout, at, true); ; span = layout.spans[span.index + 1]) {
|
|
273
|
+
const start = spanStart(layout, span);
|
|
274
|
+
if (start >= at + length) break;
|
|
275
|
+
for (const seg of span.segs) {
|
|
276
|
+
const from = Math.max(at - start, seg.at);
|
|
277
|
+
const to = Math.min(at + length - start, seg.at + seg.length);
|
|
278
|
+
if (to <= from) continue;
|
|
279
|
+
const { entry, name } = seg.region;
|
|
280
|
+
const [first, last] = [offsetIn(seg, from), offsetIn(seg, to)];
|
|
281
|
+
for (const [key, value] of Object.entries(attributes)) {
|
|
282
|
+
const mark = markFromAttribute(key, value ?? true);
|
|
283
|
+
steps.push((value === null ? removeMarkStep : addMarkStep)(entry.id, name, first, last, mark));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if (span.index + 1 >= layout.spans.length) break;
|
|
287
|
+
}
|
|
288
|
+
return steps;
|
|
289
|
+
}
|
|
290
|
+
function textSteps(layout, delta) {
|
|
291
|
+
const steps = [];
|
|
292
|
+
let at = 0;
|
|
293
|
+
for (const op of delta) {
|
|
294
|
+
if (op.retain !== void 0) {
|
|
295
|
+
if (op.attributes !== void 0) steps.push(...formatSteps(layout, at, op.retain, op.attributes));
|
|
296
|
+
at += op.retain;
|
|
297
|
+
} else if (op.delete !== void 0) {
|
|
298
|
+
const found = segAt(layout, at, true);
|
|
299
|
+
if (found === null || found.rel + op.delete > found.seg.at + found.seg.length) return null;
|
|
300
|
+
steps.push(replaceAt(layout, found, op.delete, []));
|
|
301
|
+
} else {
|
|
302
|
+
const found = typeof op.insert === "string" || isAtomEmbed(op.insert) ? segAt(layout, at, false) : null;
|
|
303
|
+
if (found === null) return null;
|
|
304
|
+
const inline = inlineOfOps([op]);
|
|
305
|
+
steps.push(replaceAt(layout, found, 0, inline));
|
|
306
|
+
at += inlineLength(inline);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return steps;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// src/yjs/carets.ts
|
|
313
|
+
function relative(text2, layout, pos) {
|
|
314
|
+
const { seg, rel } = pointOf(regionOf(layout, pos.block, pos.region), pos.offset);
|
|
315
|
+
return Y2.createRelativePositionFromTypeIndex(text2, spanStart(layout, seg.host) + rel, -1);
|
|
316
|
+
}
|
|
317
|
+
function absolute(text2, layout, held) {
|
|
318
|
+
const found = Y2.createAbsolutePositionFromRelativePosition(held, text2.doc);
|
|
319
|
+
if (found === null || found.type !== text2) return null;
|
|
320
|
+
const at = segAt(layout, found.index, false);
|
|
321
|
+
if (at === null) return null;
|
|
322
|
+
const { seg, rel } = at;
|
|
323
|
+
return { block: seg.region.entry.id, region: seg.region.name, offset: offsetIn(seg, rel) };
|
|
324
|
+
}
|
|
325
|
+
function holdSelection(text2, layout, selection) {
|
|
326
|
+
if (selection?.kind !== "text") return null;
|
|
327
|
+
try {
|
|
328
|
+
return { anchor: relative(text2, layout, selection.anchor), head: relative(text2, layout, selection.head) };
|
|
329
|
+
} catch {
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
function restoreSelection(text2, layout, held) {
|
|
334
|
+
if (held === null) return null;
|
|
335
|
+
const [anchor, head] = [absolute(text2, layout, held.anchor), absolute(text2, layout, held.head)];
|
|
336
|
+
return anchor === null || head === null ? null : { kind: "text", anchor, head };
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
export {
|
|
340
|
+
sharedChange,
|
|
341
|
+
applyRemote,
|
|
342
|
+
emptySpan,
|
|
343
|
+
createLayout,
|
|
344
|
+
spanStart,
|
|
345
|
+
indexOf,
|
|
346
|
+
textLength,
|
|
347
|
+
spanAt,
|
|
348
|
+
offsetIn,
|
|
349
|
+
pointOf,
|
|
350
|
+
piecesOf,
|
|
351
|
+
grow,
|
|
352
|
+
cleanEntry,
|
|
353
|
+
placeEntries,
|
|
354
|
+
regionOf,
|
|
355
|
+
markAttribute,
|
|
356
|
+
insertInline,
|
|
357
|
+
inlineOfOps,
|
|
358
|
+
deleteText,
|
|
359
|
+
regionStart,
|
|
360
|
+
regionNameOf,
|
|
361
|
+
isAtomEmbed,
|
|
362
|
+
definedEntries,
|
|
363
|
+
attrsMap,
|
|
364
|
+
markerOf,
|
|
365
|
+
readMarker,
|
|
366
|
+
writeBlock,
|
|
367
|
+
writeBlocks,
|
|
368
|
+
textSteps,
|
|
369
|
+
relative,
|
|
370
|
+
absolute,
|
|
371
|
+
holdSelection,
|
|
372
|
+
restoreSelection,
|
|
373
|
+
holdBinding,
|
|
374
|
+
sharedOf
|
|
375
|
+
};
|
|
376
|
+
//# sourceMappingURL=chunk-6YSGUAVW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/engine/collab/apply-remote.ts","../src/yjs/bound.ts","../src/yjs/carets.ts","../src/yjs/layout.ts","../src/yjs/doc-shape.ts","../src/yjs/marks-codec.ts","../src/yjs/inline-codec.ts","../src/yjs/text-steps.ts"],"mappings":"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","names":["Y","text","text"]}
|