23 lines
758 B
JavaScript
23 lines
758 B
JavaScript
import { fromFloatingUIPlacement } from './fromFloatingUIPlacement';
|
|
/**
|
|
* Shim to transform offset values from this library to Floating UI
|
|
* @param rawOffset Offset from this library
|
|
* @returns An offset value compatible with Floating UI
|
|
*/ export function getFloatingUIOffset(rawOffset) {
|
|
if (!rawOffset) {
|
|
return rawOffset;
|
|
}
|
|
if (typeof rawOffset === 'number' || typeof rawOffset === 'object') {
|
|
return rawOffset;
|
|
}
|
|
return ({ rects: { floating, reference }, placement })=>{
|
|
const { position, alignment } = fromFloatingUIPlacement(placement);
|
|
return rawOffset({
|
|
positionedRect: floating,
|
|
targetRect: reference,
|
|
position,
|
|
alignment
|
|
});
|
|
};
|
|
}
|