@ -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 ) ) ;
}
}
}
}