rme 0.3.0-beta.2 → 0.3.0-beta.4
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 +95 -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,13 @@ var ClipboardExtension = class extends PlainExtension2 {
|
|
|
3833
3833
|
createPlugin() {
|
|
3834
3834
|
return {
|
|
3835
3835
|
props: {
|
|
3836
|
-
handlePaste: (view,
|
|
3836
|
+
handlePaste: (view, event) => {
|
|
3837
|
+
console.log("handlePaste", event);
|
|
3837
3838
|
const transformer = getTransformerByView(view);
|
|
3838
3839
|
const parser = transformer.stringToDoc;
|
|
3839
3840
|
const schema = view.state.schema;
|
|
3840
3841
|
const editable = view.props.editable?.(view.state);
|
|
3841
|
-
const { clipboardData } =
|
|
3842
|
+
const { clipboardData } = event;
|
|
3842
3843
|
if (!editable || !clipboardData) return false;
|
|
3843
3844
|
const currentNode = view.state.selection.$from.node();
|
|
3844
3845
|
if (currentNode.type.spec.code) return false;
|
|
@@ -3921,83 +3922,13 @@ var ClipboardExtension = class extends PlainExtension2 {
|
|
|
3921
3922
|
},
|
|
3922
3923
|
paste: () => {
|
|
3923
3924
|
return (params) => {
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
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
|
-
});
|
|
3925
|
+
if (params.tr.selection.empty) {
|
|
3926
|
+
return false;
|
|
3927
|
+
}
|
|
3928
|
+
if (params.dispatch) {
|
|
3929
|
+
console.log("execCommand paste");
|
|
3930
|
+
document.execCommand("paste");
|
|
3931
|
+
}
|
|
4001
3932
|
return true;
|
|
4002
3933
|
};
|
|
4003
3934
|
},
|
|
@@ -5130,8 +5061,8 @@ var HTMLInlineView = class {
|
|
|
5130
5061
|
this.closeEditor();
|
|
5131
5062
|
}
|
|
5132
5063
|
}
|
|
5133
|
-
stopEvent(
|
|
5134
|
-
return this._innerView !== void 0 &&
|
|
5064
|
+
stopEvent(event) {
|
|
5065
|
+
return this._innerView !== void 0 && event.target !== void 0 && this._innerView.dom.contains(event.target);
|
|
5135
5066
|
}
|
|
5136
5067
|
ignoreMutation() {
|
|
5137
5068
|
return true;
|
|
@@ -5579,10 +5510,10 @@ var Resizable = memo2((props) => {
|
|
|
5579
5510
|
currentWidthRef.current = startWidth;
|
|
5580
5511
|
currentHeightRef.current = startHeight;
|
|
5581
5512
|
isResizingRef.current = true;
|
|
5582
|
-
const onMouseMove = throttle(100, false, (
|
|
5513
|
+
const onMouseMove = throttle(100, false, (event) => {
|
|
5583
5514
|
if (!isResizingRef.current) return;
|
|
5584
|
-
const currentX =
|
|
5585
|
-
const currentY =
|
|
5515
|
+
const currentX = event.pageX;
|
|
5516
|
+
const currentY = event.pageY;
|
|
5586
5517
|
const diffX = currentX - startX;
|
|
5587
5518
|
const diffY = currentY - startY;
|
|
5588
5519
|
let newWidth = null;
|
|
@@ -5653,9 +5584,9 @@ var Resizable = memo2((props) => {
|
|
|
5653
5584
|
setSize((prev) => ({ ...prev, height: currentHeightRef.current }));
|
|
5654
5585
|
}
|
|
5655
5586
|
});
|
|
5656
|
-
const onMouseUp = (
|
|
5657
|
-
|
|
5658
|
-
|
|
5587
|
+
const onMouseUp = (event) => {
|
|
5588
|
+
event.preventDefault();
|
|
5589
|
+
event.stopPropagation();
|
|
5659
5590
|
isResizingRef.current = false;
|
|
5660
5591
|
document.removeEventListener("mousemove", onMouseMove);
|
|
5661
5592
|
document.removeEventListener("mouseup", onMouseUp);
|
|
@@ -5669,7 +5600,7 @@ var Resizable = memo2((props) => {
|
|
|
5669
5600
|
width: finalWidth,
|
|
5670
5601
|
height: finalHeight
|
|
5671
5602
|
});
|
|
5672
|
-
onResize?.(
|
|
5603
|
+
onResize?.(event);
|
|
5673
5604
|
};
|
|
5674
5605
|
document.addEventListener("mousemove", onMouseMove);
|
|
5675
5606
|
document.addEventListener("mouseup", onMouseUp);
|
|
@@ -5933,8 +5864,8 @@ import { Input, Space } from "zens";
|
|
|
5933
5864
|
|
|
5934
5865
|
// src/editor/extensions/SlashMenu/utils.ts
|
|
5935
5866
|
var dispatchWithMeta = (view, key2, meta) => view.dispatch(view.state.tr.setMeta(key2, meta));
|
|
5936
|
-
var isSlashKey = (
|
|
5937
|
-
return
|
|
5867
|
+
var isSlashKey = (event) => {
|
|
5868
|
+
return event.key === "/";
|
|
5938
5869
|
};
|
|
5939
5870
|
var defaultIgnoredKeys = [
|
|
5940
5871
|
"Unidentified",
|
|
@@ -6344,17 +6275,17 @@ var SlashMenuRoot = memo4(
|
|
|
6344
6275
|
setSearchText(e.target.value);
|
|
6345
6276
|
}, []);
|
|
6346
6277
|
useEffect5(() => {
|
|
6347
|
-
const keydownHandler = (
|
|
6348
|
-
if (
|
|
6278
|
+
const keydownHandler = (event) => {
|
|
6279
|
+
if (event.key === "Escape") {
|
|
6349
6280
|
return closeMenu();
|
|
6350
6281
|
}
|
|
6351
|
-
if (searchText &&
|
|
6282
|
+
if (searchText && event[getModEventKey()] === false) {
|
|
6352
6283
|
return;
|
|
6353
6284
|
}
|
|
6354
6285
|
if (activeItemId) {
|
|
6355
6286
|
const componentRef = componentRefMap.current[activeItemId];
|
|
6356
6287
|
if (componentRef?.handleKeyDown) {
|
|
6357
|
-
const next = componentRef.handleKeyDown(
|
|
6288
|
+
const next = componentRef.handleKeyDown(event);
|
|
6358
6289
|
if (next === 2 /* Close */) {
|
|
6359
6290
|
closeMenu();
|
|
6360
6291
|
return;
|
|
@@ -6363,17 +6294,17 @@ var SlashMenuRoot = memo4(
|
|
|
6363
6294
|
}
|
|
6364
6295
|
}
|
|
6365
6296
|
}
|
|
6366
|
-
if (
|
|
6297
|
+
if (event.key === "ArrowDown") {
|
|
6367
6298
|
handleDown();
|
|
6368
|
-
} else if (
|
|
6299
|
+
} else if (event.key === "ArrowUp") {
|
|
6369
6300
|
handleUp();
|
|
6370
|
-
} else if (
|
|
6301
|
+
} else if (event.key === "ArrowRight") {
|
|
6371
6302
|
handleRight();
|
|
6372
|
-
} else if (
|
|
6303
|
+
} else if (event.key === "ArrowLeft") {
|
|
6373
6304
|
handleLeft();
|
|
6374
|
-
} else if (
|
|
6375
|
-
|
|
6376
|
-
|
|
6305
|
+
} else if (event.key === "Enter") {
|
|
6306
|
+
event.preventDefault();
|
|
6307
|
+
event.stopPropagation();
|
|
6377
6308
|
if (activeItemId) {
|
|
6378
6309
|
const item = currentMenuItem?.children?.find((child) => child.id === activeItemId);
|
|
6379
6310
|
if (item?.handler) {
|
|
@@ -6847,8 +6778,8 @@ function ImageNodeView(props) {
|
|
|
6847
6778
|
popoverStore.current = store;
|
|
6848
6779
|
};
|
|
6849
6780
|
useEffect6(() => {
|
|
6850
|
-
const handleOutsideClick = (
|
|
6851
|
-
if (popoverRef.current && popoverStore.current && (!
|
|
6781
|
+
const handleOutsideClick = (event) => {
|
|
6782
|
+
if (popoverRef.current && popoverStore.current && (!event.target || !(event.target instanceof Node) || !popoverRef.current.contains(event.target))) {
|
|
6852
6783
|
popoverStore.current.setOpen(false);
|
|
6853
6784
|
}
|
|
6854
6785
|
};
|
|
@@ -7035,9 +6966,9 @@ var HtmlImageExtension = class extends NodeExtension6 {
|
|
|
7035
6966
|
}, "unshift").generateCommand()(props);
|
|
7036
6967
|
};
|
|
7037
6968
|
}
|
|
7038
|
-
fileUploadFileHandler(files,
|
|
6969
|
+
fileUploadFileHandler(files, event, pos) {
|
|
7039
6970
|
const { preferPastedTextContent, uploadHandler: uploadHandler3 } = this.options;
|
|
7040
|
-
if (preferPastedTextContent && isClipboardEvent(
|
|
6971
|
+
if (preferPastedTextContent && isClipboardEvent(event) && event.clipboardData?.getData("text/plain")) {
|
|
7041
6972
|
return false;
|
|
7042
6973
|
}
|
|
7043
6974
|
const { commands, chain } = this.store;
|
|
@@ -7172,8 +7103,8 @@ function uploadHandler(files) {
|
|
|
7172
7103
|
}
|
|
7173
7104
|
return promises;
|
|
7174
7105
|
}
|
|
7175
|
-
function isClipboardEvent(
|
|
7176
|
-
return
|
|
7106
|
+
function isClipboardEvent(event) {
|
|
7107
|
+
return event.clipboardData !== void 0;
|
|
7177
7108
|
}
|
|
7178
7109
|
|
|
7179
7110
|
// src/editor/extensions/Image/md-image-extension.tsx
|
|
@@ -8998,8 +8929,8 @@ var MathInlineView = class {
|
|
|
8998
8929
|
deselectNode() {
|
|
8999
8930
|
if (this._isEditing) this.closeEditor();
|
|
9000
8931
|
}
|
|
9001
|
-
stopEvent(
|
|
9002
|
-
return this._innerView !== void 0 &&
|
|
8932
|
+
stopEvent(event) {
|
|
8933
|
+
return this._innerView !== void 0 && event.target !== void 0 && this._innerView.dom.contains(event.target);
|
|
9003
8934
|
}
|
|
9004
8935
|
ignoreMutation() {
|
|
9005
8936
|
return true;
|
|
@@ -9641,7 +9572,7 @@ function buildGetTarget(view, onDrag) {
|
|
|
9641
9572
|
prevTargets = getTargetsByView(view);
|
|
9642
9573
|
return prevTargets;
|
|
9643
9574
|
};
|
|
9644
|
-
const getTargetImpl = (point,
|
|
9575
|
+
const getTargetImpl = (point, event) => {
|
|
9645
9576
|
if (!view.editable || view.isDestroyed) {
|
|
9646
9577
|
return;
|
|
9647
9578
|
}
|
|
@@ -9655,7 +9586,7 @@ function buildGetTarget(view, onDrag) {
|
|
|
9655
9586
|
let targets = getTargets();
|
|
9656
9587
|
targets.sort(compare);
|
|
9657
9588
|
targets = targets.slice(0, 8);
|
|
9658
|
-
const target = targets.find((target2) => onDrag?.({ view, pos: target2[0], event
|
|
9589
|
+
const target = targets.find((target2) => onDrag?.({ view, pos: target2[0], event }) !== false);
|
|
9659
9590
|
if (target && isDraggingToItself(view, target[0])) {
|
|
9660
9591
|
return void 0;
|
|
9661
9592
|
}
|
|
@@ -9663,12 +9594,12 @@ function buildGetTarget(view, onDrag) {
|
|
|
9663
9594
|
};
|
|
9664
9595
|
let prevPoint;
|
|
9665
9596
|
let prevTarget;
|
|
9666
|
-
const getTargetCached = (point,
|
|
9597
|
+
const getTargetCached = (point, event) => {
|
|
9667
9598
|
if (prevPoint && pointEqual(prevPoint, point)) {
|
|
9668
9599
|
return prevTarget;
|
|
9669
9600
|
}
|
|
9670
9601
|
prevPoint = point;
|
|
9671
|
-
prevTarget = getTargetImpl(point,
|
|
9602
|
+
prevTarget = getTargetImpl(point, event);
|
|
9672
9603
|
return prevTarget;
|
|
9673
9604
|
};
|
|
9674
9605
|
return getTargetCached;
|
|
@@ -9889,15 +9820,15 @@ var NodeIndicatorExtension = class extends PlainExtension7 {
|
|
|
9889
9820
|
return {};
|
|
9890
9821
|
},
|
|
9891
9822
|
props: {
|
|
9892
|
-
handleDrop: (view,
|
|
9823
|
+
handleDrop: (view, event, slice, move) => {
|
|
9893
9824
|
if (!getTarget) {
|
|
9894
9825
|
return false;
|
|
9895
9826
|
}
|
|
9896
|
-
const target = getTarget([
|
|
9827
|
+
const target = getTarget([event.clientX, event.clientY], event);
|
|
9897
9828
|
if (!target) {
|
|
9898
9829
|
return false;
|
|
9899
9830
|
}
|
|
9900
|
-
|
|
9831
|
+
event.preventDefault();
|
|
9901
9832
|
let insertPos = target[0];
|
|
9902
9833
|
let tr = view.state.tr;
|
|
9903
9834
|
if (move) {
|
|
@@ -9928,8 +9859,8 @@ var NodeIndicatorExtension = class extends PlainExtension7 {
|
|
|
9928
9859
|
return true;
|
|
9929
9860
|
},
|
|
9930
9861
|
handleDOMEvents: {
|
|
9931
|
-
pointermove: (view,
|
|
9932
|
-
const { x, y } =
|
|
9862
|
+
pointermove: (view, event) => {
|
|
9863
|
+
const { x, y } = event;
|
|
9933
9864
|
const block = findBlockByCoords(view, x, y);
|
|
9934
9865
|
if (!block) {
|
|
9935
9866
|
view.dispatch(view.state.tr.setMeta(pluginKey, { node: null, pos: null }));
|
|
@@ -10048,8 +9979,8 @@ import { extension as extension15, PlainExtension as PlainExtension9 } from "@rm
|
|
|
10048
9979
|
// src/editor/extensions/SlashMenu/case.ts
|
|
10049
9980
|
var defaultConditions = (openInSelection = false) => {
|
|
10050
9981
|
return {
|
|
10051
|
-
shouldOpen: (state,
|
|
10052
|
-
if (
|
|
9982
|
+
shouldOpen: (state, event, view) => {
|
|
9983
|
+
if (event.isComposing) {
|
|
10053
9984
|
return false;
|
|
10054
9985
|
}
|
|
10055
9986
|
const editorState = view.state;
|
|
@@ -10063,48 +9994,48 @@ var defaultConditions = (openInSelection = false) => {
|
|
|
10063
9994
|
);
|
|
10064
9995
|
const inEmptyPar = inParagraph && parentNode?.textContent === prevCharacter;
|
|
10065
9996
|
const spaceBeforePos = prevCharacter === "\u200A" || prevCharacter === "" || prevCharacter === " ";
|
|
10066
|
-
return !state.open && isSlashKey(
|
|
9997
|
+
return !state.open && isSlashKey(event) && inParagraph && (inEmptyPar || spaceBeforePos || editorState.selection.from !== editorState.selection.to && openInSelection);
|
|
10067
9998
|
},
|
|
10068
|
-
shouldClose: (state,
|
|
9999
|
+
shouldClose: (state, event) => state.open && (isSlashKey(event) || event.key === "Escape" || event.key === "Backspace") && state.filter.length === 0
|
|
10069
10000
|
};
|
|
10070
10001
|
};
|
|
10071
|
-
var getCase = (state,
|
|
10072
|
-
if (
|
|
10073
|
-
if (
|
|
10002
|
+
var getCase = (state, event, view, ignoredKeys, customConditions, shouldOpenInSelection) => {
|
|
10003
|
+
if (event.isComposing) {
|
|
10004
|
+
if (event.key === "Escape") {
|
|
10074
10005
|
return "closeMenu" /* CloseMenu */;
|
|
10075
10006
|
}
|
|
10076
|
-
if (
|
|
10007
|
+
if (event.key === "Backspace" && state.filter.length === 0) {
|
|
10077
10008
|
return "closeMenu" /* CloseMenu */;
|
|
10078
10009
|
}
|
|
10079
10010
|
return "Ignore" /* Ignore */;
|
|
10080
10011
|
}
|
|
10081
10012
|
const condition = customConditions || defaultConditions(shouldOpenInSelection);
|
|
10082
|
-
if (condition.shouldOpen(state,
|
|
10013
|
+
if (condition.shouldOpen(state, event, view)) {
|
|
10083
10014
|
return "openMenu" /* OpenMenu */;
|
|
10084
10015
|
}
|
|
10085
|
-
if (condition.shouldClose(state,
|
|
10016
|
+
if (condition.shouldClose(state, event, view)) {
|
|
10086
10017
|
return "closeMenu" /* CloseMenu */;
|
|
10087
10018
|
}
|
|
10088
10019
|
if (state.open) {
|
|
10089
|
-
if (
|
|
10020
|
+
if (event.key === "ArrowDown") {
|
|
10090
10021
|
return "NextItem" /* NextItem */;
|
|
10091
10022
|
}
|
|
10092
|
-
if (
|
|
10023
|
+
if (event.key === "ArrowUp") {
|
|
10093
10024
|
return "PrevItem" /* PrevItem */;
|
|
10094
10025
|
}
|
|
10095
|
-
if (
|
|
10026
|
+
if (event.key === "Enter" || event.key === "Tab") {
|
|
10096
10027
|
return "Execute" /* Execute */;
|
|
10097
10028
|
}
|
|
10098
|
-
if (
|
|
10029
|
+
if (event.key === "Escape" || event.key === "Backspace" && state.filter.length === 0) {
|
|
10099
10030
|
return "closeMenu" /* CloseMenu */;
|
|
10100
10031
|
}
|
|
10101
|
-
if (state.filter.length > 0 &&
|
|
10032
|
+
if (state.filter.length > 0 && event.key === "Backspace") {
|
|
10102
10033
|
return "removeChar" /* removeChar */;
|
|
10103
10034
|
}
|
|
10104
|
-
if (!ignoredKeys.includes(
|
|
10035
|
+
if (!ignoredKeys.includes(event.key)) {
|
|
10105
10036
|
return "addChar" /* addChar */;
|
|
10106
10037
|
}
|
|
10107
|
-
if (
|
|
10038
|
+
if (event.key === "ArrowLeft" || event.key === "ArrowRight") {
|
|
10108
10039
|
return "Catch" /* Catch */;
|
|
10109
10040
|
}
|
|
10110
10041
|
}
|
|
@@ -10124,12 +10055,12 @@ var SlashMenuExtension = class extends PlainExtension9 {
|
|
|
10124
10055
|
};
|
|
10125
10056
|
return {
|
|
10126
10057
|
props: {
|
|
10127
|
-
handleKeyDown(view,
|
|
10058
|
+
handleKeyDown(view, event) {
|
|
10128
10059
|
const editorState = view.state;
|
|
10129
10060
|
if (!editorState) return false;
|
|
10130
10061
|
const state = this.getState(editorState);
|
|
10131
10062
|
if (!state) return false;
|
|
10132
|
-
const slashCase = getCase(state,
|
|
10063
|
+
const slashCase = getCase(state, event, view, initialState.ignoredKeys);
|
|
10133
10064
|
switch (slashCase) {
|
|
10134
10065
|
case "openMenu" /* OpenMenu */:
|
|
10135
10066
|
const resolvedPos = editorState.selection.from < 0 || editorState.selection.from > editorState.doc.content.size ? null : editorState.doc.resolve(editorState.selection.from);
|
|
@@ -10143,11 +10074,11 @@ var SlashMenuExtension = class extends PlainExtension9 {
|
|
|
10143
10074
|
dispatchWithMeta(view, this.spec.key, { type: "open" /* open */ });
|
|
10144
10075
|
return true;
|
|
10145
10076
|
case "closeMenu" /* CloseMenu */: {
|
|
10146
|
-
if (
|
|
10077
|
+
if (event.isComposing) {
|
|
10147
10078
|
dispatchWithMeta(view, this.spec.key, {
|
|
10148
10079
|
type: "close" /* close */
|
|
10149
10080
|
});
|
|
10150
|
-
} else if (isSlashKey(
|
|
10081
|
+
} else if (isSlashKey(event)) {
|
|
10151
10082
|
view.dispatch(
|
|
10152
10083
|
editorState.tr.insertText("/").setMeta(this.spec.key, {
|
|
10153
10084
|
type: "close" /* close */
|
|
@@ -11057,13 +10988,13 @@ function getBoxElement(element) {
|
|
|
11057
10988
|
}
|
|
11058
10989
|
|
|
11059
10990
|
// src/editor/extensions/NodeIndicator/set-drag-preview.ts
|
|
11060
|
-
function setDragPreview(
|
|
10991
|
+
function setDragPreview(event, element) {
|
|
11061
10992
|
const { top, bottom, left, right } = getClientRect(element);
|
|
11062
10993
|
const width = right - left;
|
|
11063
10994
|
const height = bottom - top;
|
|
11064
10995
|
const elementX = left;
|
|
11065
10996
|
const elementY = top;
|
|
11066
|
-
const { clientX, clientY } =
|
|
10997
|
+
const { clientX, clientY } = event;
|
|
11067
10998
|
const document2 = element.ownerDocument;
|
|
11068
10999
|
const container = document2.createElement("div");
|
|
11069
11000
|
const outsideX = Math.round(elementX - clientX);
|
|
@@ -11103,15 +11034,15 @@ function setDragPreview(event2, element) {
|
|
|
11103
11034
|
document2.body.appendChild(container);
|
|
11104
11035
|
container.appendChild(clonedElement);
|
|
11105
11036
|
injectStyle(container, styleText);
|
|
11106
|
-
|
|
11037
|
+
event.dataTransfer?.setDragImage(container, Math.max(-outsideX, 0), Math.max(-outsideY, 0));
|
|
11107
11038
|
requestAnimationFrame(() => {
|
|
11108
11039
|
container.remove();
|
|
11109
11040
|
});
|
|
11110
11041
|
}
|
|
11111
11042
|
|
|
11112
11043
|
// src/editor/extensions/NodeIndicator/drag-preview.ts
|
|
11113
|
-
function createDraggingPreview(view, hoverState,
|
|
11114
|
-
if (!
|
|
11044
|
+
function createDraggingPreview(view, hoverState, event) {
|
|
11045
|
+
if (!event.dataTransfer) {
|
|
11115
11046
|
return;
|
|
11116
11047
|
}
|
|
11117
11048
|
const { pos } = hoverState;
|
|
@@ -11126,10 +11057,10 @@ function createDraggingPreview(view, hoverState, event2) {
|
|
|
11126
11057
|
if (!boxElement || !isHTMLElement4(boxElement)) {
|
|
11127
11058
|
return;
|
|
11128
11059
|
}
|
|
11129
|
-
|
|
11130
|
-
|
|
11131
|
-
|
|
11132
|
-
setDragPreview(
|
|
11060
|
+
event.dataTransfer.clearData();
|
|
11061
|
+
event.dataTransfer.setData("text/html", boxElement.outerHTML);
|
|
11062
|
+
event.dataTransfer.effectAllowed = "copyMove";
|
|
11063
|
+
setDragPreview(event, boxElement);
|
|
11133
11064
|
return;
|
|
11134
11065
|
}
|
|
11135
11066
|
function setViewDragging(view, hoverState) {
|
|
@@ -11174,7 +11105,7 @@ var BlockHandler = memo6(() => {
|
|
|
11174
11105
|
}
|
|
11175
11106
|
}
|
|
11176
11107
|
};
|
|
11177
|
-
const handleDragStart = (
|
|
11108
|
+
const handleDragStart = (event) => {
|
|
11178
11109
|
if (editorView && nodeIndicatorExtension) {
|
|
11179
11110
|
const state2 = nodeIndicatorExtension.getPluginState();
|
|
11180
11111
|
if (state2 && state2.pos !== null && state2.node && state2.node.isBlock) {
|
|
@@ -11184,10 +11115,10 @@ var BlockHandler = memo6(() => {
|
|
|
11184
11115
|
editorView.dom.classList.add("rme-dragging");
|
|
11185
11116
|
const dom = editorView.nodeDOM(state2.pos);
|
|
11186
11117
|
if (dom && isHTMLElement5(dom)) {
|
|
11187
|
-
if (
|
|
11188
|
-
|
|
11118
|
+
if (event.dataTransfer) {
|
|
11119
|
+
event.dataTransfer.effectAllowed = "move";
|
|
11189
11120
|
}
|
|
11190
|
-
createDraggingPreview(editorView, state2,
|
|
11121
|
+
createDraggingPreview(editorView, state2, event);
|
|
11191
11122
|
setViewDragging(editorView, state2);
|
|
11192
11123
|
}
|
|
11193
11124
|
}
|
|
@@ -11276,8 +11207,8 @@ var SlashMenu = () => {
|
|
|
11276
11207
|
const rootRef = useRef8(null);
|
|
11277
11208
|
useEffect8(() => {
|
|
11278
11209
|
if (!rootRef) return;
|
|
11279
|
-
const outsideClickHandler = (
|
|
11280
|
-
if (rootRef.current && (!
|
|
11210
|
+
const outsideClickHandler = (event) => {
|
|
11211
|
+
if (rootRef.current && (!event.target || !(event.target instanceof Node) || !rootRef.current.contains(event?.target))) {
|
|
11281
11212
|
dispatchWithMeta(editorView, slashMenuExtension.pluginKey, {
|
|
11282
11213
|
type: "close" /* close */
|
|
11283
11214
|
});
|
|
@@ -11426,8 +11357,8 @@ var ActiveCellMenu = (props) => {
|
|
|
11426
11357
|
handler: commands.deleteTableRow
|
|
11427
11358
|
}
|
|
11428
11359
|
];
|
|
11429
|
-
const handleClose = (
|
|
11430
|
-
if (anchorRef.current && anchorRef.current.contains(
|
|
11360
|
+
const handleClose = (event) => {
|
|
11361
|
+
if (anchorRef.current && anchorRef.current.contains(event.target)) {
|
|
11431
11362
|
return;
|
|
11432
11363
|
}
|
|
11433
11364
|
setOpen(false);
|