diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-13 18:11:28 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-13 18:11:28 +0300 |
commit | 02b6116825341c309c1ceef951f4ec3566728397 (patch) | |
tree | ab5d3625431db2f3076c3dded6f79b37af8cacf3 /popperjs/package/dist/esm/utils/computeOffsets.js | |
parent | 7c4d83e324c73bb3dc1209ddefef733c5144424e (diff) |
Add popperjspopperjs/v2.21100.20000
Diffstat (limited to 'popperjs/package/dist/esm/utils/computeOffsets.js')
-rw-r--r-- | popperjs/package/dist/esm/utils/computeOffsets.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/popperjs/package/dist/esm/utils/computeOffsets.js b/popperjs/package/dist/esm/utils/computeOffsets.js new file mode 100644 index 0000000..7a81690 --- /dev/null +++ b/popperjs/package/dist/esm/utils/computeOffsets.js @@ -0,0 +1,70 @@ +import getBasePlacement from "./getBasePlacement.js"; +import getVariation from "./getVariation.js"; +import getMainAxisFromPlacement from "./getMainAxisFromPlacement.js"; +import { top, right, bottom, left, start, end } from "../enums.js"; +export default function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + + default: + } + } + + return offsets; +}
\ No newline at end of file |