- protected positionForReference() {
- if (!this.commentContentRef) {
- return;
- }
-
- const [refId, refHash, refRange] = this.commentContentRef.split(':');
- const refEl = document.getElementById(refId);
- if (!refEl) {
- // TODO - Show outdated marker for comment
- return;
- }
-
- const actualHash = hashElement(refEl);
- if (actualHash !== refHash) {
- // TODO - Show outdated marker for comment
- return;
- }
-
- const refElBounds = refEl.getBoundingClientRect();
- let bounds = refElBounds;
- const [rangeStart, rangeEnd] = refRange.split('-');
- if (rangeStart && rangeEnd) {
- const range = new Range();
- const relStart = findTargetNodeAndOffset(refEl, Number(rangeStart));
- const relEnd = findTargetNodeAndOffset(refEl, Number(rangeEnd));
- if (relStart && relEnd) {
- range.setStart(relStart.node, relStart.offset);
- range.setEnd(relEnd.node, relEnd.offset);
- bounds = range.getBoundingClientRect();
+ const branch = this.container.closest('.comment-branch');
+ if (branch instanceof HTMLElement) {
+ const refs = window.$components.allWithinElement<PageCommentReference>(branch, 'page-comment-reference');
+ for (const ref of refs) {
+ ref.hideMarker();