in src/query-assist/query-assist.tsx [750:785]
getPopupOffset(suggestions: readonly QueryAssistSuggestion[]) {
const ICON_SPACING = 12;
const minOffset = this.isRenderingGlassOrLoader() ? ICON_SPACING : 0;
if (!this.input) {
return minOffset;
}
// First suggestion should be enough?
const suggestion = suggestions && suggestions[0];
// Check if suggestion begins not from the end
const completionStart =
suggestion && suggestion.completionStart !== suggestion.completionEnd && suggestion.completionStart;
const inputChildren = this.input.firstChild instanceof Element && this.input.firstChild.children;
const completionStartNode =
inputChildren &&
typeof completionStart === 'number' &&
inputChildren[Math.min(completionStart, inputChildren.length - 1)];
let offset = completionStartNode && getRect(completionStartNode).right - getRect(this.input).left;
if (!offset) {
const caret = this.caret?.getOffset() ?? 0;
// Do not compensate caret in the beginning of field
if (caret === 0) {
return minOffset;
}
offset = caret;
}
const result = offset - POPUP_COMPENSATION;
return result < minOffset ? minOffset : result;
}