2024-05-12 23:37:31 +08:00
|
|
|
import {Menu} from "../plugin/Menu";
|
|
|
|
|
|
|
|
|
|
export const textMenu = (target: Element) => {
|
|
|
|
|
const menu = new Menu();
|
|
|
|
|
if (menu.isOpen) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
menu.addItem({
|
2025-02-25 18:02:35 +08:00
|
|
|
id: "copy",
|
2024-05-12 23:37:31 +08:00
|
|
|
label: window.siyuan.languages.copy,
|
|
|
|
|
icon: "iconCopy",
|
|
|
|
|
click() {
|
2024-05-20 17:56:14 +08:00
|
|
|
if (getSelection().rangeCount === 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const range = getSelection().getRangeAt(0);
|
|
|
|
|
if (!range.toString()) {
|
|
|
|
|
getSelection().getRangeAt(0).selectNode(target);
|
|
|
|
|
}
|
2024-05-12 23:37:31 +08:00
|
|
|
document.execCommand("copy");
|
|
|
|
|
}
|
2024-05-13 17:06:28 +08:00
|
|
|
});
|
2024-05-12 23:37:31 +08:00
|
|
|
menu.addItem({
|
2025-02-25 18:02:35 +08:00
|
|
|
id: "selectAll",
|
2024-05-12 23:37:31 +08:00
|
|
|
label: window.siyuan.languages.selectAll,
|
|
|
|
|
icon: "iconSelect",
|
|
|
|
|
click() {
|
|
|
|
|
if (getSelection().rangeCount === 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-05-13 17:06:28 +08:00
|
|
|
getSelection().getRangeAt(0).selectNode(target);
|
2024-05-12 23:37:31 +08:00
|
|
|
}
|
2024-05-13 17:06:28 +08:00
|
|
|
});
|
|
|
|
|
return menu;
|
|
|
|
|
};
|