@dxos/react-ui-editor 0.6.12-main.7907542 → 0.6.12-main.ac23639
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/dist/lib/browser/{chunk-AZWYO7TE.mjs → chunk-CIQSMP7K.mjs} +3 -3
- package/dist/lib/browser/{chunk-AZWYO7TE.mjs.map → chunk-CIQSMP7K.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +80 -81
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/state/index.mjs +1 -1
- package/dist/lib/node/{chunk-5RSKGJRI.cjs → chunk-GZWIENFM.cjs} +6 -6
- package/dist/lib/node/{chunk-5RSKGJRI.cjs.map → chunk-GZWIENFM.cjs.map} +2 -2
- package/dist/lib/node/index.cjs +108 -108
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/state/index.cjs +7 -7
- package/dist/lib/node/state/index.cjs.map +1 -1
- package/dist/lib/node-esm/{chunk-RCIWLRIY.mjs → chunk-GP5RCZ3X.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-RCIWLRIY.mjs.map → chunk-GP5RCZ3X.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +80 -81
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/state/index.mjs +1 -1
- package/dist/types/src/extensions/comments.d.ts.map +1 -1
- package/dist/types/src/extensions/listener.d.ts +1 -0
- package/dist/types/src/extensions/listener.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/state/state.d.ts +2 -2
- package/dist/types/src/state/state.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +6 -0
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +23 -23
- package/src/extensions/command/hint.ts +1 -1
- package/src/extensions/comments.ts +7 -2
- package/src/extensions/listener.ts +1 -0
- package/src/hooks/useTextEditor.ts +28 -30
- package/src/state/state.ts +6 -3
- package/src/util.ts +10 -0
package/dist/lib/node/index.cjs
CHANGED
@@ -28,7 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
29
29
|
var node_exports = {};
|
30
30
|
__export(node_exports, {
|
31
|
-
Cursor: () =>
|
31
|
+
Cursor: () => import_chunk_GZWIENFM.Cursor,
|
32
32
|
EditorInputModes: () => EditorInputModes,
|
33
33
|
EditorViewModes: () => EditorViewModes,
|
34
34
|
Inline: () => Inline,
|
@@ -57,15 +57,16 @@ __export(node_exports, {
|
|
57
57
|
createBasicExtensions: () => createBasicExtensions,
|
58
58
|
createComment: () => createComment,
|
59
59
|
createDataExtensions: () => createDataExtensions,
|
60
|
-
createEditorStateTransaction: () =>
|
60
|
+
createEditorStateTransaction: () => import_chunk_GZWIENFM.createEditorStateTransaction,
|
61
61
|
createExternalCommentSync: () => createExternalCommentSync,
|
62
62
|
createMarkdownExtensions: () => createMarkdownExtensions,
|
63
63
|
createThemeExtensions: () => createThemeExtensions,
|
64
|
+
debugDispatcher: () => debugDispatcher,
|
64
65
|
debugNodeLogger: () => debugNodeLogger,
|
65
66
|
debugTree: () => debugTree,
|
66
67
|
decorateMarkdown: () => decorateMarkdown,
|
67
68
|
defaultOptions: () => defaultOptions,
|
68
|
-
documentId: () =>
|
69
|
+
documentId: () => import_chunk_GZWIENFM.documentId,
|
69
70
|
dropFile: () => dropFile,
|
70
71
|
editorContent: () => editorContent,
|
71
72
|
editorFullWidth: () => editorFullWidth,
|
@@ -84,7 +85,7 @@ __export(node_exports, {
|
|
84
85
|
keymap: () => import_view.keymap,
|
85
86
|
linkTooltip: () => linkTooltip,
|
86
87
|
listener: () => listener,
|
87
|
-
localStorageStateStoreAdapter: () =>
|
88
|
+
localStorageStateStoreAdapter: () => import_chunk_GZWIENFM.localStorageStateStoreAdapter,
|
88
89
|
logChanges: () => logChanges,
|
89
90
|
markdownHighlightStyle: () => markdownHighlightStyle,
|
90
91
|
markdownTags: () => markdownTags,
|
@@ -104,8 +105,8 @@ __export(node_exports, {
|
|
104
105
|
setHeading: () => setHeading,
|
105
106
|
setSelection: () => setSelection,
|
106
107
|
setStyle: () => setStyle,
|
107
|
-
singleValueFacet: () =>
|
108
|
-
state: () =>
|
108
|
+
singleValueFacet: () => import_chunk_GZWIENFM.singleValueFacet,
|
109
|
+
state: () => import_chunk_GZWIENFM.state,
|
109
110
|
table: () => table,
|
110
111
|
tags: () => import_highlight.tags,
|
111
112
|
toggleBlockquote: () => toggleBlockquote,
|
@@ -127,7 +128,7 @@ __export(node_exports, {
|
|
127
128
|
useToolbarContext: () => useToolbarContext
|
128
129
|
});
|
129
130
|
module.exports = __toCommonJS(node_exports);
|
130
|
-
var
|
131
|
+
var import_chunk_GZWIENFM = require("./chunk-GZWIENFM.cjs");
|
131
132
|
var import_view = require("@codemirror/view");
|
132
133
|
var import_highlight = require("@lezer/highlight");
|
133
134
|
var import_text = require("@dxos/protocols/proto/dxos/echo/model/text");
|
@@ -168,19 +169,19 @@ var import_state6 = require("@codemirror/state");
|
|
168
169
|
var import_view8 = require("@codemirror/view");
|
169
170
|
var import_state7 = require("@codemirror/state");
|
170
171
|
var import_view9 = require("@codemirror/view");
|
172
|
+
var import_log3 = require("@dxos/log");
|
173
|
+
var import_react3 = __toESM(require("react"));
|
174
|
+
var import_client = require("react-dom/client");
|
175
|
+
var import_react_ui2 = require("@dxos/react-ui");
|
176
|
+
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
171
177
|
var import_commands = require("@codemirror/commands");
|
172
178
|
var import_state8 = require("@codemirror/state");
|
173
179
|
var import_view10 = require("@codemirror/view");
|
174
180
|
var import_lodash2 = __toESM(require("lodash.sortby"));
|
175
|
-
var
|
181
|
+
var import_react4 = require("react");
|
176
182
|
var import_async3 = require("@dxos/async");
|
177
|
-
var import_log3 = require("@dxos/log");
|
178
|
-
var import_util2 = require("@dxos/util");
|
179
183
|
var import_log4 = require("@dxos/log");
|
180
|
-
var
|
181
|
-
var import_client = require("react-dom/client");
|
182
|
-
var import_react_ui2 = require("@dxos/react-ui");
|
183
|
-
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
184
|
+
var import_util2 = require("@dxos/util");
|
184
185
|
var import_log5 = require("@dxos/log");
|
185
186
|
var import_language = require("@codemirror/language");
|
186
187
|
var import_state9 = require("@codemirror/state");
|
@@ -302,7 +303,7 @@ var annotations = (options = {}) => {
|
|
302
303
|
for (const match2 of matches) {
|
303
304
|
const from = match2.index;
|
304
305
|
const to = from + match2[0].length;
|
305
|
-
const cursor =
|
306
|
+
const cursor = import_chunk_GZWIENFM.Cursor.getCursorFromRange(state2, {
|
306
307
|
from,
|
307
308
|
to
|
308
309
|
});
|
@@ -331,7 +332,7 @@ var annotations = (options = {}) => {
|
|
331
332
|
], (state2) => {
|
332
333
|
const annotations2 = state2.field(annotationsState);
|
333
334
|
const decorations = annotations2.map((annotation) => {
|
334
|
-
const range =
|
335
|
+
const range = import_chunk_GZWIENFM.Cursor.getRangeFromCursor(state2, annotation.cursor);
|
335
336
|
return range && annotationMark.range(range.from, range.to);
|
336
337
|
}).filter(import_util.isNotFalsy);
|
337
338
|
return import_view2.Decoration.set(decorations);
|
@@ -627,7 +628,7 @@ var automerge = (accessor) => {
|
|
627
628
|
});
|
628
629
|
const syncer = new Syncer(accessor.handle, syncState);
|
629
630
|
return [
|
630
|
-
|
631
|
+
import_chunk_GZWIENFM.Cursor.converter.of(cursorConverter(accessor)),
|
631
632
|
// Track heads.
|
632
633
|
syncState,
|
633
634
|
// Reconcile external updates.
|
@@ -662,7 +663,7 @@ var dummyProvider = {
|
|
662
663
|
update: () => {
|
663
664
|
}
|
664
665
|
};
|
665
|
-
var awarenessProvider = (0,
|
666
|
+
var awarenessProvider = (0, import_chunk_GZWIENFM.singleValueFacet)(dummyProvider);
|
666
667
|
var RemoteSelectionChangedAnnotation = import_state5.Annotation.define();
|
667
668
|
var awareness = (provider = dummyProvider) => {
|
668
669
|
return [
|
@@ -680,7 +681,7 @@ var RemoteSelectionsDecorator = class {
|
|
680
681
|
L: 80
|
681
682
|
});
|
682
683
|
this.decorations = import_state5.RangeSet.of([]);
|
683
|
-
this._cursorConverter = view.state.facet(
|
684
|
+
this._cursorConverter = view.state.facet(import_chunk_GZWIENFM.Cursor.converter);
|
684
685
|
this._provider = view.state.facet(awarenessProvider);
|
685
686
|
this._provider.open();
|
686
687
|
this._provider.remoteStateChange.on(this._ctx, () => {
|
@@ -1285,7 +1286,7 @@ var random = (min, max) => {
|
|
1285
1286
|
}
|
1286
1287
|
return min + ~~(Math.random() * (max - min + 1));
|
1287
1288
|
};
|
1288
|
-
var commandConfig = (0,
|
1289
|
+
var commandConfig = (0, import_chunk_GZWIENFM.singleValueFacet)();
|
1289
1290
|
var commandState = import_state7.StateField.define({
|
1290
1291
|
create: () => ({}),
|
1291
1292
|
update: (state2, tr) => {
|
@@ -1407,6 +1408,40 @@ var clientRectsFor = (dom) => {
|
|
1407
1408
|
return [];
|
1408
1409
|
}
|
1409
1410
|
};
|
1411
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/util/error.ts";
|
1412
|
+
var wrapWithCatch = (fn) => {
|
1413
|
+
return (...args) => {
|
1414
|
+
try {
|
1415
|
+
return fn(...args);
|
1416
|
+
} catch (err) {
|
1417
|
+
import_log3.log.catch(err, void 0, {
|
1418
|
+
F: __dxlog_file5,
|
1419
|
+
L: 12,
|
1420
|
+
S: void 0,
|
1421
|
+
C: (f, a) => f(...a)
|
1422
|
+
});
|
1423
|
+
}
|
1424
|
+
};
|
1425
|
+
};
|
1426
|
+
var overlap = (a, b) => a.from <= b.to && a.to >= b.from;
|
1427
|
+
var createElement = (tag, options, children) => {
|
1428
|
+
const el = document.createElement(tag);
|
1429
|
+
if (options?.className) {
|
1430
|
+
el.className = options.className;
|
1431
|
+
}
|
1432
|
+
if (children) {
|
1433
|
+
el.append(...Array.isArray(children) ? children : [
|
1434
|
+
children
|
1435
|
+
]);
|
1436
|
+
}
|
1437
|
+
return el;
|
1438
|
+
};
|
1439
|
+
var renderRoot = (root, node) => {
|
1440
|
+
(0, import_client.createRoot)(root).render(/* @__PURE__ */ import_react3.default.createElement(import_react_ui2.ThemeProvider, {
|
1441
|
+
tx: import_react_ui_theme2.defaultTx
|
1442
|
+
}, node));
|
1443
|
+
return root;
|
1444
|
+
};
|
1410
1445
|
var CommandHint = class extends import_view8.WidgetType {
|
1411
1446
|
constructor(content) {
|
1412
1447
|
super();
|
@@ -1483,40 +1518,6 @@ var command = (options) => {
|
|
1483
1518
|
})
|
1484
1519
|
];
|
1485
1520
|
};
|
1486
|
-
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/util/error.ts";
|
1487
|
-
var wrapWithCatch = (fn) => {
|
1488
|
-
return (...args) => {
|
1489
|
-
try {
|
1490
|
-
return fn(...args);
|
1491
|
-
} catch (err) {
|
1492
|
-
import_log4.log.catch(err, void 0, {
|
1493
|
-
F: __dxlog_file5,
|
1494
|
-
L: 12,
|
1495
|
-
S: void 0,
|
1496
|
-
C: (f, a) => f(...a)
|
1497
|
-
});
|
1498
|
-
}
|
1499
|
-
};
|
1500
|
-
};
|
1501
|
-
var overlap = (a, b) => a.from <= b.to && a.to >= b.from;
|
1502
|
-
var createElement = (tag, options, children) => {
|
1503
|
-
const el = document.createElement(tag);
|
1504
|
-
if (options?.className) {
|
1505
|
-
el.className = options.className;
|
1506
|
-
}
|
1507
|
-
if (children) {
|
1508
|
-
el.append(...Array.isArray(children) ? children : [
|
1509
|
-
children
|
1510
|
-
]);
|
1511
|
-
}
|
1512
|
-
return el;
|
1513
|
-
};
|
1514
|
-
var renderRoot = (root, node) => {
|
1515
|
-
(0, import_client.createRoot)(root).render(/* @__PURE__ */ import_react4.default.createElement(import_react_ui2.ThemeProvider, {
|
1516
|
-
tx: import_react_ui_theme2.defaultTx
|
1517
|
-
}, node));
|
1518
|
-
return root;
|
1519
|
-
};
|
1520
1521
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/util.ts";
|
1521
1522
|
var callbackWrapper = (fn) => (...args) => {
|
1522
1523
|
try {
|
@@ -1524,12 +1525,16 @@ var callbackWrapper = (fn) => (...args) => {
|
|
1524
1525
|
} catch (err) {
|
1525
1526
|
import_log5.log.catch(err, void 0, {
|
1526
1527
|
F: __dxlog_file6,
|
1527
|
-
L:
|
1528
|
+
L: 19,
|
1528
1529
|
S: void 0,
|
1529
1530
|
C: (f, a) => f(...a)
|
1530
1531
|
});
|
1531
1532
|
}
|
1532
1533
|
};
|
1534
|
+
var debugDispatcher = (trs, view) => {
|
1535
|
+
logChanges(trs);
|
1536
|
+
view.update(trs);
|
1537
|
+
};
|
1533
1538
|
var logChanges = (trs) => {
|
1534
1539
|
const changes = trs.flatMap((tr) => {
|
1535
1540
|
if (tr.changes.empty) {
|
@@ -1550,7 +1555,7 @@ var logChanges = (trs) => {
|
|
1550
1555
|
changes
|
1551
1556
|
}, {
|
1552
1557
|
F: __dxlog_file6,
|
1553
|
-
L:
|
1558
|
+
L: 49,
|
1554
1559
|
S: void 0,
|
1555
1560
|
C: (f, a) => f(...a)
|
1556
1561
|
});
|
@@ -1562,7 +1567,7 @@ var setSelection = import_state8.StateEffect.define();
|
|
1562
1567
|
var setCommentState = import_state8.StateEffect.define();
|
1563
1568
|
var commentsState = import_state8.StateField.define({
|
1564
1569
|
create: (state2) => ({
|
1565
|
-
id: state2.facet(
|
1570
|
+
id: state2.facet(import_chunk_GZWIENFM.documentId),
|
1566
1571
|
comments: [],
|
1567
1572
|
selection: {}
|
1568
1573
|
}),
|
@@ -1580,7 +1585,7 @@ var commentsState = import_state8.StateField.define({
|
|
1580
1585
|
if (!comment.cursor) {
|
1581
1586
|
return void 0;
|
1582
1587
|
}
|
1583
|
-
const range =
|
1588
|
+
const range = import_chunk_GZWIENFM.Cursor.getRangeFromCursor(tr.state, comment.cursor);
|
1584
1589
|
return range && {
|
1585
1590
|
comment,
|
1586
1591
|
range
|
@@ -1625,7 +1630,7 @@ var commentsDecorations = import_view10.EditorView.decorations.compute([
|
|
1625
1630
|
const decorations = (0, import_lodash2.default)(comments2 ?? [], (range) => range.range.from)?.flatMap((comment) => {
|
1626
1631
|
const range = comment.range;
|
1627
1632
|
if (!range) {
|
1628
|
-
|
1633
|
+
import_log4.log.warn("Invalid range:", range, {
|
1629
1634
|
F: __dxlog_file7,
|
1630
1635
|
L: 143,
|
1631
1636
|
S: void 0,
|
@@ -1743,7 +1748,7 @@ var trackPastedComments = (onUpdate) => {
|
|
1743
1748
|
const { comments: comments2 } = update2.startState.field(commentsState);
|
1744
1749
|
const exists = comments2.some((c) => c.comment.id === comment.id && c.range.from < c.range.to);
|
1745
1750
|
if (!exists) {
|
1746
|
-
const cursor =
|
1751
|
+
const cursor = import_chunk_GZWIENFM.Cursor.getCursorFromRange(update2.state, comment);
|
1747
1752
|
onUpdate({
|
1748
1753
|
id: comment.id,
|
1749
1754
|
cursor
|
@@ -1775,7 +1780,7 @@ var createComment = (view) => {
|
|
1775
1780
|
}
|
1776
1781
|
});
|
1777
1782
|
}
|
1778
|
-
const cursor =
|
1783
|
+
const cursor = import_chunk_GZWIENFM.Cursor.getCursorFromRange(view.state, {
|
1779
1784
|
from,
|
1780
1785
|
to
|
1781
1786
|
});
|
@@ -1789,13 +1794,13 @@ var createComment = (view) => {
|
|
1789
1794
|
}
|
1790
1795
|
return false;
|
1791
1796
|
};
|
1792
|
-
var optionsFacet = (0,
|
1797
|
+
var optionsFacet = (0, import_chunk_GZWIENFM.singleValueFacet)();
|
1793
1798
|
var comments = (options = {}) => {
|
1794
1799
|
const { key: shortcut = "meta-'" } = options;
|
1795
1800
|
const handleSelect = (0, import_async3.debounce)((state2) => options.onSelect?.(state2), 200);
|
1796
1801
|
return [
|
1797
1802
|
optionsFacet.of(options),
|
1798
|
-
options.id ?
|
1803
|
+
options.id ? import_chunk_GZWIENFM.documentId.of(options.id) : void 0,
|
1799
1804
|
commentsState,
|
1800
1805
|
commentsDecorations,
|
1801
1806
|
handleCommentClick,
|
@@ -1848,7 +1853,7 @@ var comments = (options = {}) => {
|
|
1848
1853
|
changes.iterChanges((from, to, from2, to2) => {
|
1849
1854
|
comments2.forEach(({ comment, range }) => {
|
1850
1855
|
if (from2 === to2) {
|
1851
|
-
const newRange =
|
1856
|
+
const newRange = import_chunk_GZWIENFM.Cursor.getRangeFromCursor(view.state, comment.cursor);
|
1852
1857
|
if (!newRange || newRange.to - newRange.from === 0) {
|
1853
1858
|
options.onDelete?.({
|
1854
1859
|
id: comment.id
|
@@ -1856,7 +1861,7 @@ var comments = (options = {}) => {
|
|
1856
1861
|
}
|
1857
1862
|
}
|
1858
1863
|
if (from <= range.to) {
|
1859
|
-
const newRange =
|
1864
|
+
const newRange = import_chunk_GZWIENFM.Cursor.getRangeFromCursor(view.state, comment.cursor);
|
1860
1865
|
Object.assign(range, newRange);
|
1861
1866
|
mod = true;
|
1862
1867
|
}
|
@@ -1898,7 +1903,7 @@ var comments = (options = {}) => {
|
|
1898
1903
|
});
|
1899
1904
|
handleSelect({
|
1900
1905
|
selection,
|
1901
|
-
id: state2.facet(
|
1906
|
+
id: state2.facet(import_chunk_GZWIENFM.documentId),
|
1902
1907
|
comments: comments2.map(({ comment, range }) => ({
|
1903
1908
|
comment,
|
1904
1909
|
range,
|
@@ -1915,7 +1920,7 @@ var scrollThreadIntoView = (view, id, center = true) => {
|
|
1915
1920
|
if (!comment?.comment.cursor) {
|
1916
1921
|
return;
|
1917
1922
|
}
|
1918
|
-
const range =
|
1923
|
+
const range = import_chunk_GZWIENFM.Cursor.getRangeFromCursor(view.state, comment.comment.cursor);
|
1919
1924
|
if (range) {
|
1920
1925
|
const currentSelection = view.state.selection.main;
|
1921
1926
|
const currentScrollPosition = view.scrollDOM.scrollTop;
|
@@ -1940,8 +1945,11 @@ var scrollThreadIntoView = (view, id, center = true) => {
|
|
1940
1945
|
}
|
1941
1946
|
};
|
1942
1947
|
var selectionOverlapsComment = (state2) => {
|
1948
|
+
const commentState = state2.field(commentsState, false);
|
1949
|
+
if (commentState === void 0) {
|
1950
|
+
return false;
|
1951
|
+
}
|
1943
1952
|
const { selection } = state2;
|
1944
|
-
const commentState = state2.field(commentsState);
|
1945
1953
|
for (const range of selection.ranges) {
|
1946
1954
|
if (commentState.comments.some(({ range: commentRange }) => overlap(commentRange, range))) {
|
1947
1955
|
return true;
|
@@ -1959,7 +1967,7 @@ var ExternalCommentSync = class {
|
|
1959
1967
|
};
|
1960
1968
|
const updateComments = () => {
|
1961
1969
|
const comments2 = getComments();
|
1962
|
-
if (id === view.state.facet(
|
1970
|
+
if (id === view.state.facet(import_chunk_GZWIENFM.documentId)) {
|
1963
1971
|
queueMicrotask(() => view.dispatch({
|
1964
1972
|
effects: setComments.of({
|
1965
1973
|
id,
|
@@ -1977,11 +1985,11 @@ var createExternalCommentSync = (id, subscribe, getComments) => import_view10.Vi
|
|
1977
1985
|
}
|
1978
1986
|
});
|
1979
1987
|
var useCommentState = () => {
|
1980
|
-
const [state2, setState] = (0,
|
1988
|
+
const [state2, setState] = (0, import_react4.useState)({
|
1981
1989
|
comment: false,
|
1982
1990
|
selection: false
|
1983
1991
|
});
|
1984
|
-
const observer = (0,
|
1992
|
+
const observer = (0, import_react4.useMemo)(() => import_view10.EditorView.updateListener.of((update2) => {
|
1985
1993
|
if (update2.docChanged || update2.selectionSet) {
|
1986
1994
|
setState({
|
1987
1995
|
comment: selectionOverlapsComment(update2.state),
|
@@ -1995,9 +2003,9 @@ var useCommentState = () => {
|
|
1995
2003
|
];
|
1996
2004
|
};
|
1997
2005
|
var useComments = (view, id, comments2) => {
|
1998
|
-
(0,
|
2006
|
+
(0, import_react4.useEffect)(() => {
|
1999
2007
|
if (view) {
|
2000
|
-
if (id === view.state.facet(
|
2008
|
+
if (id === view.state.facet(import_chunk_GZWIENFM.documentId)) {
|
2001
2009
|
view.dispatch({
|
2002
2010
|
effects: setComments.of({
|
2003
2011
|
id,
|
@@ -2009,7 +2017,7 @@ var useComments = (view, id, comments2) => {
|
|
2009
2017
|
});
|
2010
2018
|
};
|
2011
2019
|
var useCommentClickListener = (onCommentClick) => {
|
2012
|
-
return (0,
|
2020
|
+
return (0, import_react4.useMemo)(() => import_view10.EditorView.updateListener.of((update2) => {
|
2013
2021
|
update2.transactions.forEach((transaction) => {
|
2014
2022
|
transaction.effects.forEach((effect) => {
|
2015
2023
|
if (effect.is(commentClickedEffect)) {
|
@@ -4750,7 +4758,7 @@ var EditorInputModes = [
|
|
4750
4758
|
"vim",
|
4751
4759
|
"vscode"
|
4752
4760
|
];
|
4753
|
-
var editorInputMode = (0,
|
4761
|
+
var editorInputMode = (0, import_chunk_GZWIENFM.singleValueFacet)({});
|
4754
4762
|
var InputModeExtensions = {
|
4755
4763
|
default: [],
|
4756
4764
|
vscode: [
|
@@ -5240,7 +5248,6 @@ var instanceCount = 0;
|
|
5240
5248
|
var useTextEditor = (props = {}, deps = []) => {
|
5241
5249
|
const { id, initialValue, extensions, autoFocus, scrollTo, selection, moveToEndOfLine, debug } = (0, import_react7.useMemo)(() => (0, import_util4.getProviderValue)(props), deps ?? []);
|
5242
5250
|
const [instanceId] = (0, import_react7.useState)(() => `text-editor-${++instanceCount}`);
|
5243
|
-
const onUpdate = (0, import_react7.useRef)();
|
5244
5251
|
const [view, setView] = (0, import_react7.useState)();
|
5245
5252
|
const parentRef = (0, import_react7.useRef)(null);
|
5246
5253
|
(0, import_react7.useEffect)(() => {
|
@@ -5252,7 +5259,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5252
5259
|
doc: initialValue?.length ?? 0
|
5253
5260
|
}, {
|
5254
5261
|
F: __dxlog_file11,
|
5255
|
-
L:
|
5262
|
+
L: 76,
|
5256
5263
|
S: void 0,
|
5257
5264
|
C: (f, a) => f(...a)
|
5258
5265
|
});
|
@@ -5272,43 +5279,36 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5272
5279
|
doc: initialValue,
|
5273
5280
|
selection: initialSelection,
|
5274
5281
|
extensions: [
|
5275
|
-
id &&
|
5276
|
-
|
5282
|
+
id && import_chunk_GZWIENFM.documentId.of(id),
|
5283
|
+
extensions,
|
5284
|
+
// NOTE: This doesn't catch errors in keymap functions.
|
5277
5285
|
import_view26.EditorView.exceptionSink.of((err) => {
|
5278
5286
|
import_log8.log.catch(err, void 0, {
|
5279
5287
|
F: __dxlog_file11,
|
5280
|
-
L:
|
5288
|
+
L: 98,
|
5281
5289
|
S: void 0,
|
5282
5290
|
C: (f, a) => f(...a)
|
5283
5291
|
});
|
5284
|
-
}),
|
5285
|
-
extensions,
|
5286
|
-
import_view26.EditorView.updateListener.of(() => {
|
5287
|
-
setTimeout(() => {
|
5288
|
-
onUpdate.current?.();
|
5289
|
-
});
|
5290
5292
|
})
|
5291
5293
|
].filter(import_util4.isNotFalsy)
|
5292
5294
|
});
|
5293
5295
|
view2 = new import_view26.EditorView({
|
5294
5296
|
parent: parentRef.current,
|
5295
5297
|
state: state2,
|
5296
|
-
|
5297
|
-
|
5298
|
-
|
5299
|
-
|
5300
|
-
logChanges(trs);
|
5301
|
-
}
|
5302
|
-
view3.update(trs);
|
5303
|
-
}
|
5298
|
+
scrollTo: scrollTo ? import_view26.EditorView.scrollIntoView(scrollTo, {
|
5299
|
+
yMargin: 96
|
5300
|
+
}) : void 0,
|
5301
|
+
dispatchTransactions: debug ? debugDispatcher : void 0
|
5304
5302
|
});
|
5305
|
-
if (
|
5303
|
+
if (moveToEndOfLine && !initialSelection) {
|
5306
5304
|
const { to } = view2.state.doc.lineAt(0);
|
5307
|
-
|
5308
|
-
|
5309
|
-
|
5310
|
-
|
5311
|
-
|
5305
|
+
if (to) {
|
5306
|
+
view2.dispatch({
|
5307
|
+
selection: {
|
5308
|
+
anchor: to
|
5309
|
+
}
|
5310
|
+
});
|
5311
|
+
}
|
5312
5312
|
}
|
5313
5313
|
setView(view2);
|
5314
5314
|
}
|
@@ -5326,21 +5326,20 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5326
5326
|
}, deps);
|
5327
5327
|
(0, import_react7.useEffect)(() => {
|
5328
5328
|
if (view) {
|
5329
|
-
|
5330
|
-
|
5331
|
-
|
5329
|
+
if (view.state.facet(editorInputMode).noTabster) {
|
5330
|
+
parentRef.current?.removeAttribute("data-tabster");
|
5331
|
+
}
|
5332
|
+
if (scrollTo || selection) {
|
5333
|
+
view.dispatch((0, import_chunk_GZWIENFM.createEditorStateTransaction)(view.state, {
|
5332
5334
|
scrollTo,
|
5333
5335
|
selection
|
5334
5336
|
}));
|
5335
|
-
};
|
5336
|
-
if (view.state.facet(editorInputMode).noTabster) {
|
5337
|
-
parentRef.current?.removeAttribute("data-tabster");
|
5338
5337
|
}
|
5339
5338
|
}
|
5340
5339
|
}, [
|
5341
5340
|
view,
|
5342
|
-
|
5343
|
-
|
5341
|
+
scrollTo,
|
5342
|
+
selection
|
5344
5343
|
]);
|
5345
5344
|
(0, import_react7.useEffect)(() => {
|
5346
5345
|
if (view && autoFocus) {
|
@@ -5412,6 +5411,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
5412
5411
|
createExternalCommentSync,
|
5413
5412
|
createMarkdownExtensions,
|
5414
5413
|
createThemeExtensions,
|
5414
|
+
debugDispatcher,
|
5415
5415
|
debugNodeLogger,
|
5416
5416
|
debugTree,
|
5417
5417
|
decorateMarkdown,
|