rme 0.3.0-beta.2 → 0.3.0-beta.3
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/index.mjs +93 -164
- package/dist/index.mjs.map +3 -3
- package/package.json +9 -9
package/dist/index.mjs
CHANGED
|
@@ -2974,8 +2974,8 @@ function getCellSelectionRect(selection) {
|
|
|
2974
2974
|
|
|
2975
2975
|
// src/editor/extensions/Table/table-selector.ts
|
|
2976
2976
|
var DATA_TABLE_SELECTOR_TYPE = "data-table-selector-type";
|
|
2977
|
-
var preventDefaultMouseEventHandler = (
|
|
2978
|
-
|
|
2977
|
+
var preventDefaultMouseEventHandler = (event) => {
|
|
2978
|
+
event.preventDefault();
|
|
2979
2979
|
};
|
|
2980
2980
|
function createBodySelector(view, getPos, highlight) {
|
|
2981
2981
|
return createElement("div", {
|
|
@@ -2987,8 +2987,8 @@ function createBodySelector(view, getPos, highlight) {
|
|
|
2987
2987
|
[DATA_TABLE_SELECTOR_TYPE]: "body",
|
|
2988
2988
|
onmousedown: preventDefaultMouseEventHandler,
|
|
2989
2989
|
onmouseup: preventDefaultMouseEventHandler,
|
|
2990
|
-
onclick: (
|
|
2991
|
-
|
|
2990
|
+
onclick: (event) => {
|
|
2991
|
+
event.preventDefault();
|
|
2992
2992
|
const pos = getPos();
|
|
2993
2993
|
if (!pos) return;
|
|
2994
2994
|
const tr = view.state.tr;
|
|
@@ -3008,8 +3008,8 @@ function createRowSelector(view, getPos, highlight) {
|
|
|
3008
3008
|
[DATA_TABLE_SELECTOR_TYPE]: "row",
|
|
3009
3009
|
onmousedown: preventDefaultMouseEventHandler,
|
|
3010
3010
|
onmouseup: preventDefaultMouseEventHandler,
|
|
3011
|
-
onclick: (
|
|
3012
|
-
|
|
3011
|
+
onclick: (event) => {
|
|
3012
|
+
event.preventDefault();
|
|
3013
3013
|
const pos = getPos();
|
|
3014
3014
|
if (!pos) return;
|
|
3015
3015
|
const tr = view.state.tr;
|
|
@@ -3029,8 +3029,8 @@ function createColumnSelector(view, getPos, highlight) {
|
|
|
3029
3029
|
[DATA_TABLE_SELECTOR_TYPE]: "column",
|
|
3030
3030
|
onmousedown: preventDefaultMouseEventHandler,
|
|
3031
3031
|
onmouseup: preventDefaultMouseEventHandler,
|
|
3032
|
-
onclick: (
|
|
3033
|
-
|
|
3032
|
+
onclick: (event) => {
|
|
3033
|
+
event.preventDefault();
|
|
3034
3034
|
const pos = getPos();
|
|
3035
3035
|
if (!pos) return;
|
|
3036
3036
|
const tr = view.state.tr;
|
|
@@ -3833,12 +3833,12 @@ var ClipboardExtension = class extends PlainExtension2 {
|
|
|
3833
3833
|
createPlugin() {
|
|
3834
3834
|
return {
|
|
3835
3835
|
props: {
|
|
3836
|
-
handlePaste: (view,
|
|
3836
|
+
handlePaste: (view, event) => {
|
|
3837
3837
|
const transformer = getTransformerByView(view);
|
|
3838
3838
|
const parser = transformer.stringToDoc;
|
|
3839
3839
|
const schema = view.state.schema;
|
|
3840
3840
|
const editable = view.props.editable?.(view.state);
|
|
3841
|
-
const { clipboardData } =
|
|
3841
|
+
const { clipboardData } = event;
|
|
3842
3842
|
if (!editable || !clipboardData) return false;
|
|
3843
3843
|
const currentNode = view.state.selection.$from.node();
|
|
3844
3844
|
if (currentNode.type.spec.code) return false;
|
|
@@ -3921,83 +3921,12 @@ var ClipboardExtension = class extends PlainExtension2 {
|
|
|
3921
3921
|
},
|
|
3922
3922
|
paste: () => {
|
|
3923
3923
|
return (params) => {
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
const editable = view.props.editable?.(view.state);
|
|
3931
|
-
navigator.clipboard.read().then(async (data) => {
|
|
3932
|
-
let html2 = "";
|
|
3933
|
-
let text = "";
|
|
3934
|
-
const htmlData = data.find((item) => item.types.includes("text/html"));
|
|
3935
|
-
const textData = data.find((item) => item.types.includes("text/plain"));
|
|
3936
|
-
const getHtml = async () => {
|
|
3937
|
-
if (htmlData) {
|
|
3938
|
-
const blob = await htmlData.getType("text/html");
|
|
3939
|
-
html2 = await blob.text();
|
|
3940
|
-
}
|
|
3941
|
-
};
|
|
3942
|
-
const getText = async () => {
|
|
3943
|
-
if (textData) {
|
|
3944
|
-
const blob = await textData.getType("text/plain");
|
|
3945
|
-
text = await blob.text();
|
|
3946
|
-
}
|
|
3947
|
-
};
|
|
3948
|
-
await Promise.all([getHtml(), getText()]);
|
|
3949
|
-
if (!editable || !html2 || !text) return false;
|
|
3950
|
-
const currentNode = view.state.selection.$from.node();
|
|
3951
|
-
if (currentNode.type.spec.code) return false;
|
|
3952
|
-
if (html2.length === 0 && text.length === 0) return false;
|
|
3953
|
-
console.log("html", html2);
|
|
3954
|
-
console.log("text", text);
|
|
3955
|
-
const domParser = DOMParser2.fromSchema(schema);
|
|
3956
|
-
let dom;
|
|
3957
|
-
if (html2.length === 0) {
|
|
3958
|
-
const slice2 = parser?.(text);
|
|
3959
|
-
if (!slice2 || typeof slice2 === "string") return false;
|
|
3960
|
-
const res = [];
|
|
3961
|
-
slice2.content.forEach((node2, index) => {
|
|
3962
|
-
if (node2.type.name === "paragraph" && index === 0) {
|
|
3963
|
-
node2.content.forEach((child) => {
|
|
3964
|
-
res.push(child);
|
|
3965
|
-
});
|
|
3966
|
-
} else {
|
|
3967
|
-
res.push(node2);
|
|
3968
|
-
}
|
|
3969
|
-
});
|
|
3970
|
-
this.processImagesInNodesAsync(res, view);
|
|
3971
|
-
if (res.length === 1) {
|
|
3972
|
-
view.dispatch(view.state.tr.replaceSelectionWith(res[0], false));
|
|
3973
|
-
} else {
|
|
3974
|
-
const fragment = Fragment3.from(res);
|
|
3975
|
-
view.dispatch(view.state.tr.replaceSelection(new Slice(fragment, 0, 0)));
|
|
3976
|
-
}
|
|
3977
|
-
return true;
|
|
3978
|
-
} else {
|
|
3979
|
-
const template = document.createElement("template");
|
|
3980
|
-
template.innerHTML = html2;
|
|
3981
|
-
dom = template.content.cloneNode(true);
|
|
3982
|
-
template.remove();
|
|
3983
|
-
}
|
|
3984
|
-
const slice = domParser.parseSlice(dom);
|
|
3985
|
-
const node = isTextOnlySlice(slice);
|
|
3986
|
-
console.log("slice", slice, node);
|
|
3987
|
-
if (node) {
|
|
3988
|
-
if ((node.type.name === "html_image" || node.type.name === "md_image") && node.attrs.src) {
|
|
3989
|
-
this.processImageNode(node, view);
|
|
3990
|
-
view.dispatch(view.state.tr.replaceSelectionWith(node, true));
|
|
3991
|
-
} else {
|
|
3992
|
-
this.processMarkdownImageSyntax(node, view).then(() => {
|
|
3993
|
-
view.dispatch(view.state.tr.replaceSelectionWith(node, true));
|
|
3994
|
-
});
|
|
3995
|
-
}
|
|
3996
|
-
return true;
|
|
3997
|
-
}
|
|
3998
|
-
this.processImagesInSliceAsync(slice, view);
|
|
3999
|
-
view.dispatch(view.state.tr.replaceSelection(slice));
|
|
4000
|
-
});
|
|
3924
|
+
if (params.tr.selection.empty) {
|
|
3925
|
+
return false;
|
|
3926
|
+
}
|
|
3927
|
+
if (params.dispatch) {
|
|
3928
|
+
document.execCommand("copy");
|
|
3929
|
+
}
|
|
4001
3930
|
return true;
|
|
4002
3931
|
};
|
|
4003
3932
|
},
|
|
@@ -5130,8 +5059,8 @@ var HTMLInlineView = class {
|
|
|
5130
5059
|
this.closeEditor();
|
|
5131
5060
|
}
|
|
5132
5061
|
}
|
|
5133
|
-
stopEvent(
|
|
5134
|
-
return this._innerView !== void 0 &&
|
|
5062
|
+
stopEvent(event) {
|
|
5063
|
+
return this._innerView !== void 0 && event.target !== void 0 && this._innerView.dom.contains(event.target);
|
|
5135
5064
|
}
|
|
5136
5065
|
ignoreMutation() {
|
|
5137
5066
|
return true;
|
|
@@ -5579,10 +5508,10 @@ var Resizable = memo2((props) => {
|
|
|
5579
5508
|
currentWidthRef.current = startWidth;
|
|
5580
5509
|
currentHeightRef.current = startHeight;
|
|
5581
5510
|
isResizingRef.current = true;
|
|
5582
|
-
const onMouseMove = throttle(100, false, (
|
|
5511
|
+
const onMouseMove = throttle(100, false, (event) => {
|
|
5583
5512
|
if (!isResizingRef.current) return;
|
|
5584
|
-
const currentX =
|
|
5585
|
-
const currentY =
|
|
5513
|
+
const currentX = event.pageX;
|
|
5514
|
+
const currentY = event.pageY;
|
|
5586
5515
|
const diffX = currentX - startX;
|
|
5587
5516
|
const diffY = currentY - startY;
|
|
5588
5517
|
let newWidth = null;
|
|
@@ -5653,9 +5582,9 @@ var Resizable = memo2((props) => {
|
|
|
5653
5582
|
setSize((prev) => ({ ...prev, height: currentHeightRef.current }));
|
|
5654
5583
|
}
|
|
5655
5584
|
});
|
|
5656
|
-
const onMouseUp = (
|
|
5657
|
-
|
|
5658
|
-
|
|
5585
|
+
const onMouseUp = (event) => {
|
|
5586
|
+
event.preventDefault();
|
|
5587
|
+
event.stopPropagation();
|
|
5659
5588
|
isResizingRef.current = false;
|
|
5660
5589
|
document.removeEventListener("mousemove", onMouseMove);
|
|
5661
5590
|
document.removeEventListener("mouseup", onMouseUp);
|
|
@@ -5669,7 +5598,7 @@ var Resizable = memo2((props) => {
|
|
|
5669
5598
|
width: finalWidth,
|
|
5670
5599
|
height: finalHeight
|
|
5671
5600
|
});
|
|
5672
|
-
onResize?.(
|
|
5601
|
+
onResize?.(event);
|
|
5673
5602
|
};
|
|
5674
5603
|
document.addEventListener("mousemove", onMouseMove);
|
|
5675
5604
|
document.addEventListener("mouseup", onMouseUp);
|
|
@@ -5933,8 +5862,8 @@ import { Input, Space } from "zens";
|
|
|
5933
5862
|
|
|
5934
5863
|
// src/editor/extensions/SlashMenu/utils.ts
|
|
5935
5864
|
var dispatchWithMeta = (view, key2, meta) => view.dispatch(view.state.tr.setMeta(key2, meta));
|
|
5936
|
-
var isSlashKey = (
|
|
5937
|
-
return
|
|
5865
|
+
var isSlashKey = (event) => {
|
|
5866
|
+
return event.key === "/";
|
|
5938
5867
|
};
|
|
5939
5868
|
var defaultIgnoredKeys = [
|
|
5940
5869
|
"Unidentified",
|
|
@@ -6344,17 +6273,17 @@ var SlashMenuRoot = memo4(
|
|
|
6344
6273
|
setSearchText(e.target.value);
|
|
6345
6274
|
}, []);
|
|
6346
6275
|
useEffect5(() => {
|
|
6347
|
-
const keydownHandler = (
|
|
6348
|
-
if (
|
|
6276
|
+
const keydownHandler = (event) => {
|
|
6277
|
+
if (event.key === "Escape") {
|
|
6349
6278
|
return closeMenu();
|
|
6350
6279
|
}
|
|
6351
|
-
if (searchText &&
|
|
6280
|
+
if (searchText && event[getModEventKey()] === false) {
|
|
6352
6281
|
return;
|
|
6353
6282
|
}
|
|
6354
6283
|
if (activeItemId) {
|
|
6355
6284
|
const componentRef = componentRefMap.current[activeItemId];
|
|
6356
6285
|
if (componentRef?.handleKeyDown) {
|
|
6357
|
-
const next = componentRef.handleKeyDown(
|
|
6286
|
+
const next = componentRef.handleKeyDown(event);
|
|
6358
6287
|
if (next === 2 /* Close */) {
|
|
6359
6288
|
closeMenu();
|
|
6360
6289
|
return;
|
|
@@ -6363,17 +6292,17 @@ var SlashMenuRoot = memo4(
|
|
|
6363
6292
|
}
|
|
6364
6293
|
}
|
|
6365
6294
|
}
|
|
6366
|
-
if (
|
|
6295
|
+
if (event.key === "ArrowDown") {
|
|
6367
6296
|
handleDown();
|
|
6368
|
-
} else if (
|
|
6297
|
+
} else if (event.key === "ArrowUp") {
|
|
6369
6298
|
handleUp();
|
|
6370
|
-
} else if (
|
|
6299
|
+
} else if (event.key === "ArrowRight") {
|
|
6371
6300
|
handleRight();
|
|
6372
|
-
} else if (
|
|
6301
|
+
} else if (event.key === "ArrowLeft") {
|
|
6373
6302
|
handleLeft();
|
|
6374
|
-
} else if (
|
|
6375
|
-
|
|
6376
|
-
|
|
6303
|
+
} else if (event.key === "Enter") {
|
|
6304
|
+
event.preventDefault();
|
|
6305
|
+
event.stopPropagation();
|
|
6377
6306
|
if (activeItemId) {
|
|
6378
6307
|
const item = currentMenuItem?.children?.find((child) => child.id === activeItemId);
|
|
6379
6308
|
if (item?.handler) {
|
|
@@ -6847,8 +6776,8 @@ function ImageNodeView(props) {
|
|
|
6847
6776
|
popoverStore.current = store;
|
|
6848
6777
|
};
|
|
6849
6778
|
useEffect6(() => {
|
|
6850
|
-
const handleOutsideClick = (
|
|
6851
|
-
if (popoverRef.current && popoverStore.current && (!
|
|
6779
|
+
const handleOutsideClick = (event) => {
|
|
6780
|
+
if (popoverRef.current && popoverStore.current && (!event.target || !(event.target instanceof Node) || !popoverRef.current.contains(event.target))) {
|
|
6852
6781
|
popoverStore.current.setOpen(false);
|
|
6853
6782
|
}
|
|
6854
6783
|
};
|
|
@@ -7035,9 +6964,9 @@ var HtmlImageExtension = class extends NodeExtension6 {
|
|
|
7035
6964
|
}, "unshift").generateCommand()(props);
|
|
7036
6965
|
};
|
|
7037
6966
|
}
|
|
7038
|
-
fileUploadFileHandler(files,
|
|
6967
|
+
fileUploadFileHandler(files, event, pos) {
|
|
7039
6968
|
const { preferPastedTextContent, uploadHandler: uploadHandler3 } = this.options;
|
|
7040
|
-
if (preferPastedTextContent && isClipboardEvent(
|
|
6969
|
+
if (preferPastedTextContent && isClipboardEvent(event) && event.clipboardData?.getData("text/plain")) {
|
|
7041
6970
|
return false;
|
|
7042
6971
|
}
|
|
7043
6972
|
const { commands, chain } = this.store;
|
|
@@ -7172,8 +7101,8 @@ function uploadHandler(files) {
|
|
|
7172
7101
|
}
|
|
7173
7102
|
return promises;
|
|
7174
7103
|
}
|
|
7175
|
-
function isClipboardEvent(
|
|
7176
|
-
return
|
|
7104
|
+
function isClipboardEvent(event) {
|
|
7105
|
+
return event.clipboardData !== void 0;
|
|
7177
7106
|
}
|
|
7178
7107
|
|
|
7179
7108
|
// src/editor/extensions/Image/md-image-extension.tsx
|
|
@@ -8998,8 +8927,8 @@ var MathInlineView = class {
|
|
|
8998
8927
|
deselectNode() {
|
|
8999
8928
|
if (this._isEditing) this.closeEditor();
|
|
9000
8929
|
}
|
|
9001
|
-
stopEvent(
|
|
9002
|
-
return this._innerView !== void 0 &&
|
|
8930
|
+
stopEvent(event) {
|
|
8931
|
+
return this._innerView !== void 0 && event.target !== void 0 && this._innerView.dom.contains(event.target);
|
|
9003
8932
|
}
|
|
9004
8933
|
ignoreMutation() {
|
|
9005
8934
|
return true;
|
|
@@ -9641,7 +9570,7 @@ function buildGetTarget(view, onDrag) {
|
|
|
9641
9570
|
prevTargets = getTargetsByView(view);
|
|
9642
9571
|
return prevTargets;
|
|
9643
9572
|
};
|
|
9644
|
-
const getTargetImpl = (point,
|
|
9573
|
+
const getTargetImpl = (point, event) => {
|
|
9645
9574
|
if (!view.editable || view.isDestroyed) {
|
|
9646
9575
|
return;
|
|
9647
9576
|
}
|
|
@@ -9655,7 +9584,7 @@ function buildGetTarget(view, onDrag) {
|
|
|
9655
9584
|
let targets = getTargets();
|
|
9656
9585
|
targets.sort(compare);
|
|
9657
9586
|
targets = targets.slice(0, 8);
|
|
9658
|
-
const target = targets.find((target2) => onDrag?.({ view, pos: target2[0], event
|
|
9587
|
+
const target = targets.find((target2) => onDrag?.({ view, pos: target2[0], event }) !== false);
|
|
9659
9588
|
if (target && isDraggingToItself(view, target[0])) {
|
|
9660
9589
|
return void 0;
|
|
9661
9590
|
}
|
|
@@ -9663,12 +9592,12 @@ function buildGetTarget(view, onDrag) {
|
|
|
9663
9592
|
};
|
|
9664
9593
|
let prevPoint;
|
|
9665
9594
|
let prevTarget;
|
|
9666
|
-
const getTargetCached = (point,
|
|
9595
|
+
const getTargetCached = (point, event) => {
|
|
9667
9596
|
if (prevPoint && pointEqual(prevPoint, point)) {
|
|
9668
9597
|
return prevTarget;
|
|
9669
9598
|
}
|
|
9670
9599
|
prevPoint = point;
|
|
9671
|
-
prevTarget = getTargetImpl(point,
|
|
9600
|
+
prevTarget = getTargetImpl(point, event);
|
|
9672
9601
|
return prevTarget;
|
|
9673
9602
|
};
|
|
9674
9603
|
return getTargetCached;
|
|
@@ -9889,15 +9818,15 @@ var NodeIndicatorExtension = class extends PlainExtension7 {
|
|
|
9889
9818
|
return {};
|
|
9890
9819
|
},
|
|
9891
9820
|
props: {
|
|
9892
|
-
handleDrop: (view,
|
|
9821
|
+
handleDrop: (view, event, slice, move) => {
|
|
9893
9822
|
if (!getTarget) {
|
|
9894
9823
|
return false;
|
|
9895
9824
|
}
|
|
9896
|
-
const target = getTarget([
|
|
9825
|
+
const target = getTarget([event.clientX, event.clientY], event);
|
|
9897
9826
|
if (!target) {
|
|
9898
9827
|
return false;
|
|
9899
9828
|
}
|
|
9900
|
-
|
|
9829
|
+
event.preventDefault();
|
|
9901
9830
|
let insertPos = target[0];
|
|
9902
9831
|
let tr = view.state.tr;
|
|
9903
9832
|
if (move) {
|
|
@@ -9928,8 +9857,8 @@ var NodeIndicatorExtension = class extends PlainExtension7 {
|
|
|
9928
9857
|
return true;
|
|
9929
9858
|
},
|
|
9930
9859
|
handleDOMEvents: {
|
|
9931
|
-
pointermove: (view,
|
|
9932
|
-
const { x, y } =
|
|
9860
|
+
pointermove: (view, event) => {
|
|
9861
|
+
const { x, y } = event;
|
|
9933
9862
|
const block = findBlockByCoords(view, x, y);
|
|
9934
9863
|
if (!block) {
|
|
9935
9864
|
view.dispatch(view.state.tr.setMeta(pluginKey, { node: null, pos: null }));
|
|
@@ -10048,8 +9977,8 @@ import { extension as extension15, PlainExtension as PlainExtension9 } from "@rm
|
|
|
10048
9977
|
// src/editor/extensions/SlashMenu/case.ts
|
|
10049
9978
|
var defaultConditions = (openInSelection = false) => {
|
|
10050
9979
|
return {
|
|
10051
|
-
shouldOpen: (state,
|
|
10052
|
-
if (
|
|
9980
|
+
shouldOpen: (state, event, view) => {
|
|
9981
|
+
if (event.isComposing) {
|
|
10053
9982
|
return false;
|
|
10054
9983
|
}
|
|
10055
9984
|
const editorState = view.state;
|
|
@@ -10063,48 +9992,48 @@ var defaultConditions = (openInSelection = false) => {
|
|
|
10063
9992
|
);
|
|
10064
9993
|
const inEmptyPar = inParagraph && parentNode?.textContent === prevCharacter;
|
|
10065
9994
|
const spaceBeforePos = prevCharacter === "\u200A" || prevCharacter === "" || prevCharacter === " ";
|
|
10066
|
-
return !state.open && isSlashKey(
|
|
9995
|
+
return !state.open && isSlashKey(event) && inParagraph && (inEmptyPar || spaceBeforePos || editorState.selection.from !== editorState.selection.to && openInSelection);
|
|
10067
9996
|
},
|
|
10068
|
-
shouldClose: (state,
|
|
9997
|
+
shouldClose: (state, event) => state.open && (isSlashKey(event) || event.key === "Escape" || event.key === "Backspace") && state.filter.length === 0
|
|
10069
9998
|
};
|
|
10070
9999
|
};
|
|
10071
|
-
var getCase = (state,
|
|
10072
|
-
if (
|
|
10073
|
-
if (
|
|
10000
|
+
var getCase = (state, event, view, ignoredKeys, customConditions, shouldOpenInSelection) => {
|
|
10001
|
+
if (event.isComposing) {
|
|
10002
|
+
if (event.key === "Escape") {
|
|
10074
10003
|
return "closeMenu" /* CloseMenu */;
|
|
10075
10004
|
}
|
|
10076
|
-
if (
|
|
10005
|
+
if (event.key === "Backspace" && state.filter.length === 0) {
|
|
10077
10006
|
return "closeMenu" /* CloseMenu */;
|
|
10078
10007
|
}
|
|
10079
10008
|
return "Ignore" /* Ignore */;
|
|
10080
10009
|
}
|
|
10081
10010
|
const condition = customConditions || defaultConditions(shouldOpenInSelection);
|
|
10082
|
-
if (condition.shouldOpen(state,
|
|
10011
|
+
if (condition.shouldOpen(state, event, view)) {
|
|
10083
10012
|
return "openMenu" /* OpenMenu */;
|
|
10084
10013
|
}
|
|
10085
|
-
if (condition.shouldClose(state,
|
|
10014
|
+
if (condition.shouldClose(state, event, view)) {
|
|
10086
10015
|
return "closeMenu" /* CloseMenu */;
|
|
10087
10016
|
}
|
|
10088
10017
|
if (state.open) {
|
|
10089
|
-
if (
|
|
10018
|
+
if (event.key === "ArrowDown") {
|
|
10090
10019
|
return "NextItem" /* NextItem */;
|
|
10091
10020
|
}
|
|
10092
|
-
if (
|
|
10021
|
+
if (event.key === "ArrowUp") {
|
|
10093
10022
|
return "PrevItem" /* PrevItem */;
|
|
10094
10023
|
}
|
|
10095
|
-
if (
|
|
10024
|
+
if (event.key === "Enter" || event.key === "Tab") {
|
|
10096
10025
|
return "Execute" /* Execute */;
|
|
10097
10026
|
}
|
|
10098
|
-
if (
|
|
10027
|
+
if (event.key === "Escape" || event.key === "Backspace" && state.filter.length === 0) {
|
|
10099
10028
|
return "closeMenu" /* CloseMenu */;
|
|
10100
10029
|
}
|
|
10101
|
-
if (state.filter.length > 0 &&
|
|
10030
|
+
if (state.filter.length > 0 && event.key === "Backspace") {
|
|
10102
10031
|
return "removeChar" /* removeChar */;
|
|
10103
10032
|
}
|
|
10104
|
-
if (!ignoredKeys.includes(
|
|
10033
|
+
if (!ignoredKeys.includes(event.key)) {
|
|
10105
10034
|
return "addChar" /* addChar */;
|
|
10106
10035
|
}
|
|
10107
|
-
if (
|
|
10036
|
+
if (event.key === "ArrowLeft" || event.key === "ArrowRight") {
|
|
10108
10037
|
return "Catch" /* Catch */;
|
|
10109
10038
|
}
|
|
10110
10039
|
}
|
|
@@ -10124,12 +10053,12 @@ var SlashMenuExtension = class extends PlainExtension9 {
|
|
|
10124
10053
|
};
|
|
10125
10054
|
return {
|
|
10126
10055
|
props: {
|
|
10127
|
-
handleKeyDown(view,
|
|
10056
|
+
handleKeyDown(view, event) {
|
|
10128
10057
|
const editorState = view.state;
|
|
10129
10058
|
if (!editorState) return false;
|
|
10130
10059
|
const state = this.getState(editorState);
|
|
10131
10060
|
if (!state) return false;
|
|
10132
|
-
const slashCase = getCase(state,
|
|
10061
|
+
const slashCase = getCase(state, event, view, initialState.ignoredKeys);
|
|
10133
10062
|
switch (slashCase) {
|
|
10134
10063
|
case "openMenu" /* OpenMenu */:
|
|
10135
10064
|
const resolvedPos = editorState.selection.from < 0 || editorState.selection.from > editorState.doc.content.size ? null : editorState.doc.resolve(editorState.selection.from);
|
|
@@ -10143,11 +10072,11 @@ var SlashMenuExtension = class extends PlainExtension9 {
|
|
|
10143
10072
|
dispatchWithMeta(view, this.spec.key, { type: "open" /* open */ });
|
|
10144
10073
|
return true;
|
|
10145
10074
|
case "closeMenu" /* CloseMenu */: {
|
|
10146
|
-
if (
|
|
10075
|
+
if (event.isComposing) {
|
|
10147
10076
|
dispatchWithMeta(view, this.spec.key, {
|
|
10148
10077
|
type: "close" /* close */
|
|
10149
10078
|
});
|
|
10150
|
-
} else if (isSlashKey(
|
|
10079
|
+
} else if (isSlashKey(event)) {
|
|
10151
10080
|
view.dispatch(
|
|
10152
10081
|
editorState.tr.insertText("/").setMeta(this.spec.key, {
|
|
10153
10082
|
type: "close" /* close */
|
|
@@ -11057,13 +10986,13 @@ function getBoxElement(element) {
|
|
|
11057
10986
|
}
|
|
11058
10987
|
|
|
11059
10988
|
// src/editor/extensions/NodeIndicator/set-drag-preview.ts
|
|
11060
|
-
function setDragPreview(
|
|
10989
|
+
function setDragPreview(event, element) {
|
|
11061
10990
|
const { top, bottom, left, right } = getClientRect(element);
|
|
11062
10991
|
const width = right - left;
|
|
11063
10992
|
const height = bottom - top;
|
|
11064
10993
|
const elementX = left;
|
|
11065
10994
|
const elementY = top;
|
|
11066
|
-
const { clientX, clientY } =
|
|
10995
|
+
const { clientX, clientY } = event;
|
|
11067
10996
|
const document2 = element.ownerDocument;
|
|
11068
10997
|
const container = document2.createElement("div");
|
|
11069
10998
|
const outsideX = Math.round(elementX - clientX);
|
|
@@ -11103,15 +11032,15 @@ function setDragPreview(event2, element) {
|
|
|
11103
11032
|
document2.body.appendChild(container);
|
|
11104
11033
|
container.appendChild(clonedElement);
|
|
11105
11034
|
injectStyle(container, styleText);
|
|
11106
|
-
|
|
11035
|
+
event.dataTransfer?.setDragImage(container, Math.max(-outsideX, 0), Math.max(-outsideY, 0));
|
|
11107
11036
|
requestAnimationFrame(() => {
|
|
11108
11037
|
container.remove();
|
|
11109
11038
|
});
|
|
11110
11039
|
}
|
|
11111
11040
|
|
|
11112
11041
|
// src/editor/extensions/NodeIndicator/drag-preview.ts
|
|
11113
|
-
function createDraggingPreview(view, hoverState,
|
|
11114
|
-
if (!
|
|
11042
|
+
function createDraggingPreview(view, hoverState, event) {
|
|
11043
|
+
if (!event.dataTransfer) {
|
|
11115
11044
|
return;
|
|
11116
11045
|
}
|
|
11117
11046
|
const { pos } = hoverState;
|
|
@@ -11126,10 +11055,10 @@ function createDraggingPreview(view, hoverState, event2) {
|
|
|
11126
11055
|
if (!boxElement || !isHTMLElement4(boxElement)) {
|
|
11127
11056
|
return;
|
|
11128
11057
|
}
|
|
11129
|
-
|
|
11130
|
-
|
|
11131
|
-
|
|
11132
|
-
setDragPreview(
|
|
11058
|
+
event.dataTransfer.clearData();
|
|
11059
|
+
event.dataTransfer.setData("text/html", boxElement.outerHTML);
|
|
11060
|
+
event.dataTransfer.effectAllowed = "copyMove";
|
|
11061
|
+
setDragPreview(event, boxElement);
|
|
11133
11062
|
return;
|
|
11134
11063
|
}
|
|
11135
11064
|
function setViewDragging(view, hoverState) {
|
|
@@ -11174,7 +11103,7 @@ var BlockHandler = memo6(() => {
|
|
|
11174
11103
|
}
|
|
11175
11104
|
}
|
|
11176
11105
|
};
|
|
11177
|
-
const handleDragStart = (
|
|
11106
|
+
const handleDragStart = (event) => {
|
|
11178
11107
|
if (editorView && nodeIndicatorExtension) {
|
|
11179
11108
|
const state2 = nodeIndicatorExtension.getPluginState();
|
|
11180
11109
|
if (state2 && state2.pos !== null && state2.node && state2.node.isBlock) {
|
|
@@ -11184,10 +11113,10 @@ var BlockHandler = memo6(() => {
|
|
|
11184
11113
|
editorView.dom.classList.add("rme-dragging");
|
|
11185
11114
|
const dom = editorView.nodeDOM(state2.pos);
|
|
11186
11115
|
if (dom && isHTMLElement5(dom)) {
|
|
11187
|
-
if (
|
|
11188
|
-
|
|
11116
|
+
if (event.dataTransfer) {
|
|
11117
|
+
event.dataTransfer.effectAllowed = "move";
|
|
11189
11118
|
}
|
|
11190
|
-
createDraggingPreview(editorView, state2,
|
|
11119
|
+
createDraggingPreview(editorView, state2, event);
|
|
11191
11120
|
setViewDragging(editorView, state2);
|
|
11192
11121
|
}
|
|
11193
11122
|
}
|
|
@@ -11276,8 +11205,8 @@ var SlashMenu = () => {
|
|
|
11276
11205
|
const rootRef = useRef8(null);
|
|
11277
11206
|
useEffect8(() => {
|
|
11278
11207
|
if (!rootRef) return;
|
|
11279
|
-
const outsideClickHandler = (
|
|
11280
|
-
if (rootRef.current && (!
|
|
11208
|
+
const outsideClickHandler = (event) => {
|
|
11209
|
+
if (rootRef.current && (!event.target || !(event.target instanceof Node) || !rootRef.current.contains(event?.target))) {
|
|
11281
11210
|
dispatchWithMeta(editorView, slashMenuExtension.pluginKey, {
|
|
11282
11211
|
type: "close" /* close */
|
|
11283
11212
|
});
|
|
@@ -11426,8 +11355,8 @@ var ActiveCellMenu = (props) => {
|
|
|
11426
11355
|
handler: commands.deleteTableRow
|
|
11427
11356
|
}
|
|
11428
11357
|
];
|
|
11429
|
-
const handleClose = (
|
|
11430
|
-
if (anchorRef.current && anchorRef.current.contains(
|
|
11358
|
+
const handleClose = (event) => {
|
|
11359
|
+
if (anchorRef.current && anchorRef.current.contains(event.target)) {
|
|
11431
11360
|
return;
|
|
11432
11361
|
}
|
|
11433
11362
|
setOpen(false);
|