in src/content_script.js [608:660]
function positionFacebookBadge(target, badgeClassUId, targetWidth, smallSwitch) {
// Check for Badge element and select it
if (!badgeClassUId) {
badgeClassUId = "js-" + target;
}
const htmlBadgeDiv = document.querySelector("." + badgeClassUId);
// Confirm target element is defined
if (!target || !(typeof target === "object")) {
target = document.querySelector("." + target);
}
if (!checkVisibilityAndApplyClass(target, htmlBadgeDiv)) {
return;
}
if (typeof smallSwitch === "undefined") {
if (htmlBadgeDiv.classList.contains("fbc-badge-small")) {
smallSwitch = true;
}
}
// Set offset size based on large/small badge
const [elementSizeOffsetX, elementSizeOffsetY] = elementSizeOffsetXY(smallSwitch);
// Define target element width
if (!targetWidth) {
targetWidth = parseInt(target.offsetWidth, 10);
}
// Get position coordinates
const bodyRect = determineContainerClientRect();
// const bodyRect = determineContainerClientRect();
const elemRect = target.getBoundingClientRect();
// Determine if target element is fixed, will resets or applies class and set appor offset.
const { offsetPosX, offsetPosY } = getOffsetsAndApplyClass(elemRect, bodyRect, target, htmlBadgeDiv);
const htmlBadgeDivPosX = (offsetPosX + targetWidth) - elementSizeOffsetX;
const htmlBadgeDivPosY = offsetPosY - elementSizeOffsetY;
// TODO: Add Zindex Targeting
const targetZindex = calcZindex(target);
// Set badge position based on target coordinates/size
htmlBadgeDiv.style.zIndex = targetZindex;
htmlBadgeDiv.style.left = htmlBadgeDivPosX + "px";
htmlBadgeDiv.style.top = htmlBadgeDivPosY + "px";
}