🎨 pdf 标注改进
This commit is contained in:
parent
c35a9fde6b
commit
152665335e
1 changed files with 21 additions and 24 deletions
|
@ -531,7 +531,7 @@ export class Toolbar {
|
|||
return;
|
||||
}
|
||||
const id = nodeElement.getAttribute("data-node-id");
|
||||
let html = nodeElement.outerHTML;
|
||||
const html = nodeElement.outerHTML;
|
||||
this.subElement.style.width = isMobile() ? "80vw" : Math.min(480, window.innerWidth) + "px";
|
||||
this.subElement.style.padding = "";
|
||||
this.subElement.innerHTML = `<div class="b3-form__space--small">
|
||||
|
@ -552,28 +552,14 @@ export class Toolbar {
|
|||
<button class="b3-button b3-button--cancel">${window.siyuan.languages.remove}</button>
|
||||
</div></div>`;
|
||||
this.subElement.querySelector(".b3-button--cancel").addEventListener(getEventName(), () => {
|
||||
refElement.insertAdjacentHTML("afterend", "<wbr>");
|
||||
const oldHTML = nodeElement.outerHTML;
|
||||
refElement.outerHTML = refElement.textContent;
|
||||
nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"));
|
||||
updateTransaction(protyle, id, nodeElement.outerHTML, oldHTML);
|
||||
this.subElement.classList.add("fn__none");
|
||||
focusByWbr(nodeElement, this.range);
|
||||
refElement.outerHTML = refElement.textContent + "<wbr>";
|
||||
hideElements(["util"], protyle)
|
||||
});
|
||||
const anchorElement = this.subElement.querySelector('[data-type="anchor"]') as HTMLInputElement;
|
||||
anchorElement.value = refElement.textContent;
|
||||
anchorElement.addEventListener("change", (event) => {
|
||||
refElement.after(document.createElement("wbr"));
|
||||
nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"));
|
||||
updateTransaction(protyle, id, nodeElement.outerHTML, html);
|
||||
html = nodeElement.outerHTML;
|
||||
nodeElement.querySelector("wbr").remove();
|
||||
event.stopPropagation();
|
||||
});
|
||||
anchorElement.addEventListener("input", (event) => {
|
||||
const target = event.target as HTMLInputElement;
|
||||
if (target.value) {
|
||||
refElement.innerHTML = Lute.EscapeHTMLStr(target.value);
|
||||
if (anchorElement.value) {
|
||||
refElement.innerHTML = Lute.EscapeHTMLStr(anchorElement.value);
|
||||
} else {
|
||||
refElement.innerHTML = "*";
|
||||
}
|
||||
|
@ -585,16 +571,27 @@ export class Toolbar {
|
|||
return;
|
||||
}
|
||||
if (event.key === "Enter" || event.key === "Escape") {
|
||||
this.subElement.classList.add("fn__none");
|
||||
this.range.setStart(refElement.firstChild, 0);
|
||||
this.range.setEnd(refElement.lastChild, refElement.lastChild.textContent.length);
|
||||
focusByRange(this.range);
|
||||
hideElements(["util"], protyle)
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
});
|
||||
this.subElement.classList.remove("fn__none");
|
||||
this.subElementCloseCB = undefined;
|
||||
this.subElementCloseCB = () => {
|
||||
if (refElement.parentElement) {
|
||||
if (anchorElement.value) {
|
||||
refElement.innerHTML = Lute.EscapeHTMLStr(anchorElement.value);
|
||||
} else {
|
||||
refElement.innerHTML = "*";
|
||||
}
|
||||
this.range.setStartAfter(refElement)
|
||||
focusByRange(this.range);
|
||||
} else {
|
||||
focusByWbr(nodeElement, this.range);
|
||||
}
|
||||
nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"));
|
||||
updateTransaction(protyle, id, nodeElement.outerHTML, html);
|
||||
};
|
||||
const nodeRect = refElement.getBoundingClientRect();
|
||||
setPosition(this.subElement, nodeRect.left, nodeRect.bottom, nodeRect.height + 4);
|
||||
this.element.classList.add("fn__none");
|
||||
|
|
Loading…
Add table
Reference in a new issue