Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo-mod-jslibs-dist.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'popperjs/package/dist/esm/utils/computeOffsets.js')
-rw-r--r--popperjs/package/dist/esm/utils/computeOffsets.js70
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