1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-07 23:03:00 +03:00

Comments: Started logic for content references

Adds button for comments to pointer.
Adds logic to generate a content reference point.
This commit is contained in:
Dan Brown
2025-04-18 15:01:57 +01:00
parent fa566f156a
commit 8d159f77e4
5 changed files with 113 additions and 19 deletions

View File

@@ -178,3 +178,24 @@ export function htmlToDom(html: string): HTMLElement {
return firstChild;
}
export function normalizeNodeTextOffsetToParent(node: Node, offset: number, parentElement: HTMLElement): number {
if (!parentElement.contains(node)) {
throw new Error('ParentElement must be a prent of element');
}
let normalizedOffset = offset;
let currentNode: Node|null = node.nodeType === Node.TEXT_NODE ?
node : node.childNodes[offset];
while (currentNode !== parentElement && currentNode) {
if (currentNode.previousSibling) {
currentNode = currentNode.previousSibling;
normalizedOffset += (currentNode.textContent?.length || 0);
} else {
currentNode = currentNode.parentNode;
}
}
return normalizedOffset;
}