mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-09-22 08:30:42 +02:00
✨ https://github.com/siyuan-note/siyuan/issues/3565 gutter hover
This commit is contained in:
parent
f16d5bd15f
commit
df5dccf90c
1 changed files with 23 additions and 24 deletions
|
@ -65,6 +65,7 @@ export class Gutter {
|
||||||
window.siyuan.dragElement = undefined;
|
window.siyuan.dragElement = undefined;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// TODO:fold
|
||||||
this.element.addEventListener("click", (event: MouseEvent & { target: HTMLInputElement }) => {
|
this.element.addEventListener("click", (event: MouseEvent & { target: HTMLInputElement }) => {
|
||||||
const buttonElement = hasClosestByTag(event.target, "BUTTON");
|
const buttonElement = hasClosestByTag(event.target, "BUTTON");
|
||||||
if (!buttonElement) {
|
if (!buttonElement) {
|
||||||
|
@ -197,38 +198,35 @@ export class Gutter {
|
||||||
});
|
});
|
||||||
this.element.addEventListener("mouseover", (event: MouseEvent & { target: HTMLInputElement }) => {
|
this.element.addEventListener("mouseover", (event: MouseEvent & { target: HTMLInputElement }) => {
|
||||||
const buttonElement = hasClosestByTag(event.target, "BUTTON");
|
const buttonElement = hasClosestByTag(event.target, "BUTTON");
|
||||||
if (!buttonElement || buttonElement?.getAttribute("data-type") === "fold") {
|
if (!buttonElement) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (buttonElement.getAttribute("data-type") === "fold") {
|
||||||
|
Array.from(protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--hl")).forEach(hlItem => {
|
||||||
|
hlItem.classList.remove("protyle-wysiwyg--hl");
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let nodeElement: Element;
|
|
||||||
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${buttonElement.getAttribute("data-node-id")}"]`)).find(item => {
|
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${buttonElement.getAttribute("data-node-id")}"]`)).find(item => {
|
||||||
if (!hasClosestByAttribute(item.parentElement, "data-type", "NodeBlockQueryEmbed")) {
|
if (!hasClosestByAttribute(item.parentElement, "data-type", "NodeBlockQueryEmbed")) {
|
||||||
nodeElement = item;
|
if (item.getBoundingClientRect().top === this.element.getBoundingClientRect().top) {
|
||||||
return true;
|
Array.from(protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--hl")).forEach(hlItem => {
|
||||||
|
if (!item.isSameNode(hlItem)) {
|
||||||
|
hlItem.classList.remove("protyle-wysiwyg--hl");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
item.classList.add("protyle-wysiwyg--hl");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (!nodeElement) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
nodeElement.classList.add("protyle-wysiwyg--hl");
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
});
|
});
|
||||||
this.element.addEventListener("mouseout", (event: MouseEvent & { target: HTMLInputElement }) => {
|
this.element.addEventListener("mouseleave", (event: MouseEvent & { target: HTMLInputElement }) => {
|
||||||
const buttonElement = hasClosestByTag(event.target, "BUTTON");
|
Array.from(protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--hl")).forEach(item => {
|
||||||
if (!buttonElement || buttonElement?.getAttribute("data-type") === "fold") {
|
item.classList.remove("protyle-wysiwyg--hl");
|
||||||
return;
|
|
||||||
}
|
|
||||||
let nodeElement: Element;
|
|
||||||
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${buttonElement.getAttribute("data-node-id")}"]`)).find(item => {
|
|
||||||
if (!hasClosestByAttribute(item.parentElement, "data-type", "NodeBlockQueryEmbed")) {
|
|
||||||
nodeElement = item;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
if (!nodeElement) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
nodeElement.classList.remove("protyle-wysiwyg--hl");
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
});
|
});
|
||||||
|
@ -645,7 +643,8 @@ export class Gutter {
|
||||||
let nodeElement: Element;
|
let nodeElement: Element;
|
||||||
if (buttonElement.tagName === "BUTTON") {
|
if (buttonElement.tagName === "BUTTON") {
|
||||||
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${id}"]`)).find(item => {
|
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${id}"]`)).find(item => {
|
||||||
if (!hasClosestByAttribute(item.parentElement, "data-type", "NodeBlockQueryEmbed")) {
|
if (!hasClosestByAttribute(item.parentElement, "data-type", "NodeBlockQueryEmbed") &&
|
||||||
|
buttonElement.parentElement.getBoundingClientRect().top === item.getBoundingClientRect().top) {
|
||||||
nodeElement = item;
|
nodeElement = item;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue