|
|
@ -744,10 +744,11 @@ export function getComboPosition(combo, popup, extraWidth, extraHeight, needAdap |
|
|
|
if (needAdaptHeight === true && popup.resetHeight) { |
|
|
|
if (needAdaptHeight === true && popup.resetHeight) { |
|
|
|
const comboRect = combo.element[0].getBoundingClientRect(); |
|
|
|
const comboRect = combo.element[0].getBoundingClientRect(); |
|
|
|
const relativeOffset = positionRelativeElement ? positionRelativeElement.getBoundingClientRect().top : 0; |
|
|
|
const relativeOffset = positionRelativeElement ? positionRelativeElement.getBoundingClientRect().top : 0; |
|
|
|
if (position.top < comboRect.top) { |
|
|
|
const positionTop = position.top + relativeOffset; |
|
|
|
popup.resetHeight(Math.min(viewportBounds.height - position.top - relativeOffset, comboRect.top, maxHeight)); |
|
|
|
if (positionTop < comboRect.top) { |
|
|
|
} else if (position.top >= comboRect.bottom) { |
|
|
|
popup.resetHeight(Math.min(viewportBounds.height - positionTop, comboRect.top, maxHeight)); |
|
|
|
popup.resetHeight(Math.min(viewportBounds.height - position.top - relativeOffset, viewportBounds.height - comboRect.bottom, maxHeight)); |
|
|
|
} else if (positionTop >= comboRect.bottom) { |
|
|
|
|
|
|
|
popup.resetHeight(Math.min(viewportBounds.height - positionTop, viewportBounds.height - comboRect.bottom, maxHeight)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|