\nYou can be the difference in a child making a decision to follow Jesus at camp this summer. Will you help a kid get to Eagle Lake Camps of The Navigators this summer? Give here »\n
',position:"append"});})("body")}}, R_722072_157_1_2_1:{ fn:function(log,nonce=''){return (function(x) {
if(!vwo_$.fn.vwoRevertHtml){
return;
};
var el,ctx=vwo_$(x);
/*vwo_debug log("Revert","addElement","body"); vwo_debug*/(el=vwo_$('[vwo-element-id="1744048814304"]')).remove();})("body")}}, C_722072_160_1_2_1:{ fn:function(log,nonce=''){return (function(x) {
try{
var _vwo_sel = vwo_$("`);
!vwo_$("head").find('#1743792965156').length && vwo_$('head').append(_vwo_sel);}catch(e) {VWO._.vAEH(e);}
try{}catch(e) {VWO._.vAEH(e);}
try{const CALLOUT_ON_BUTTON_WITH_AMOUNT = 150;
const CALLOUT_BUBBLE_TEXT = "$150 provides 1 camp scholarship";
//
//
//
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//
//
//
//
window.HTMLElement.prototype.getSlot = window.HTMLElement.prototype.getSlot || function () { return this.querySelector('slot') || this.shadowRoot.querySelector('slot'); };
window.HTMLElement.prototype.getSlotNodes = window.HTMLElement.prototype.getSlotNodes || function (n) { return (parseInt(n) !== 'NaN' && n >= 0) ? Array.from(this.getSlot().assignedNodes({ flatten: true }))[n] : Array.from(this.getSlot().assignedNodes({ flatten: true })); };
window.HTMLElement.prototype.shadowChildren = window.HTMLElement.prototype.shadowChildren || function (n) { return (parseInt(n) !== 'NaN' && n >= 0) ? Array.from(this.shadowRoot.children)[n] : Array.from(this.shadowRoot.children); };
function shadowQuerySelectorAll (selector) {
let matches = [];
const isSlot = (element) => element.tagName.toLowerCase() === 'slot';
function traverse(element) { // Helper function to recursively traverse elements
if (element instanceof HTMLElement && element.matches(selector) /*&& element !== this*/) // Check if element matches the selector
matches.push(element);
if (customElements.get(element.tagName.toLowerCase())) { // Traverse through shadow DOM children if element is a custom element with shadow DOM
const children = element.shadowRoot ? Array.from(element.shadowRoot.children) : [];
children.forEach((child) => traverse(child));
} else {
Array.from(element.children).forEach((child) => traverse(child)); // traverse through regular element children
}
if (isSlot(element)) { // handle traversing slot nodes
const slotNodes = element.assignedNodes({ flatten: true });
slotNodes.forEach((slotNode) => {
if (slotNode.nodeType === Node.ELEMENT_NODE)
traverse(slotNode);
});
}
}
this instanceof Document ? traverse(this.documentElement) : traverse(this); // Start traversal from the root element as long as it's not the Document
return matches.length > 0 ? matches : undefined;
}
function shadowQuerySelector (selector) {
let matches = this.shadowQuerySelectorAll(selector) || [];
return matches.length > 0 ? matches[0] : undefined;
}
if (!HTMLElement.prototype.shadowQuerySelectorAll) {
Object.defineProperties(HTMLElement.prototype, {
shadowQuerySelectorAll: {
value: shadowQuerySelectorAll,
writable: false,
configurable: false,
enumerable: true,
},
shadowQuerySelector: {
value: shadowQuerySelector,
writable: false,
configurable: false,
enumerable: true,
}
});
Object.defineProperties(Document.prototype, {
shadowQuerySelectorAll: {
value: shadowQuerySelectorAll,
writable: false,
configurable: false,
enumerable: true,
},
shadowQuerySelector: {
value: shadowQuerySelector,
writable: false,
configurable: false,
enumerable: true,
}
});
Object.defineProperties(Document, {
shadowQuerySelectorAll: {
value: shadowQuerySelectorAll,
writable: false,
configurable: false,
enumerable: true,
},
shadowQuerySelector: {
value: shadowQuerySelector,
writable: false,
configurable: false,
enumerable: true,
}
});
}
async function asyncWaitForCustomElements (customElementsArray, onCustomElementsDefined = () => {}) { customElementsArray.length === 0 ? onCustomElementsDefined() : customElements.whenDefined(customElementsArray.shift()).then(() => asyncWaitForCustomElements(customElementsArray, onCustomElementsDefined)); }
function addCircle (buttons, onWhichAmountButton = CALLOUT_ON_BUTTON_WITH_AMOUNT) {
let buttonWithCircle;
buttons.forEach((giftArrayButton) => {
let text = giftArrayButton.textContent.trim().replace(/[^\d\.]/, '');
text = !Number.isNaN(parseInt(text)) ? parseInt(text) : text;
if (text == onWhichAmountButton || text == 150) {
giftArrayButton.insertAdjacentHTML('afterend', ``);
buttonWithCircle = giftArrayButton;
}
});
return buttonWithCircle;
}
function addCallout (text, button, buttons = window.NA.DonationForm.elements.GiftArrayButtons) {
const TAIL_SVG = ``;
const calloutElement = (function(){
const calloutContainer = document.createElement('div');
calloutContainer.classList.add("callout-container");
calloutContainer.innerHTML = (`
${text}
${TAIL_SVG}
`);
return calloutContainer;
})();
const tabsContainer = buttons[0].parentElement;
tabsContainer.before(calloutElement);
const callout = tabsContainer.previousElementSibling || tabsContainer.parentElement.querySelector('.callout') || document.querySelector('.callout'),
calloutBubble = callout.querySelector('.callout-bubble'),
calloutTail = callout.querySelector('.callout-tail'),
calloutContainer = callout.parentElement || tabsContainer.parentElement.querySelector('.callout-container');
const buttonIndex = buttons.indexOf(button);
calloutBubble.classList.add(buttonIndex + 1 <= buttons.length / 2 ? "pull-left" : "pull-right");
let lastScreenWidth = window.innerWidth;
const updateTailPosition = function (calloutTarget) {
console.log('resize');
const tail = this;
const targetRect = calloutTarget.getBoundingClientRect(),
tailRect = tail.getBoundingClientRect();
let targetPosition = {
width: targetRect.width,
height: targetRect.height,
x: targetRect.x,
y: targetRect.y,
xCenter: targetRect.x + (targetRect.width / 2),
yCenter: targetRect.y + (targetRect.height / 2),
};
let tailPosition = {
width: tailRect.width,
height: tailRect.height,
x: tailRect.x,
y: tailRect.y,
};
// console.log('target:', calloutTarget, targetPosition);
// console.log('tail:', tail, tailPosition);
let calloutBubbleOffsetX = calloutBubble.getBoundingClientRect().x - callout.getBoundingClientRect().x;
let deltaX = targetPosition.xCenter -
tailPosition.x -
(tailPosition.width / 2),
deltaY = targetPosition.y -
tailPosition.y;
// if (deltaX <= 2)
// return;
deltaX = (tailPosition.x - callout.getBoundingClientRect().x) + deltaX;
let calloutBubbleStartX = calloutBubble.getBoundingClientRect().x - callout.getBoundingClientRect().x,
calloutBubbleEndX = calloutBubbleStartX + calloutBubble.getBoundingClientRect().width;
/*if (window.innerWidth <= 480 && (deltaX < calloutBubbleStartX + 16 || deltaX > calloutBubbleEndX - 16))
return;*/
//console.log(`delta: (${deltaX}, ${deltaY})`);
this.style.setProperty('--x', `${deltaX}px`);
this.style.setProperty('height', `${deltaY}px`);
setTimeout(() => {
if (lastScreenWidth > 480 && window.innerWidth <= 480) { // desktop to mobile
calloutTarget.parentElement.before(callout); // move callout in between buttons before the target button
document.dispatchEvent(new Event('resize'));
} else if (lastScreenWidth <= 480 && window.innerWidth > 480) { // mobile to desktop
tabsContainer.before(callout); // move callout before all gift array buttons in full row
document.dispatchEvent(new Event('resize'));
}
if (!lastScreenWidth && window.innerWidth > 480) {
if (!buttons[0].parentElement.previousElementSibling) {
tabsContainer.before(callout); // move callout before all gift array buttons in full row
document.dispatchEvent(new Event('resize'));
}
}
lastScreenWidth = window.innerWidth;
}, 50);
};
setTimeout(() => {
document.addEventListener('resize', updateTailPosition.bind(calloutTail, button)),
(new ResizeObserver(updateTailPosition.bind(calloutTail, button))).observe(document.body);
}, 250);
updateTailPosition.call(calloutTail, button);
}
function main () {
const c_donate_community_staff_information = document.shadowQuerySelector('c-donate-community-staff-information');
const c_donate_community_donate_buttons = document.shadowQuerySelector('c-donate-community-donate-buttons');
const donationPage = c_donate_community_staff_information.parentElement;
const donationPageContent = donationPage.shadowQuerySelectorAll('c-donate-community-staff-information > div > .slds-col')[1];
const donationFormWidget = c_donate_community_donate_buttons.parentElement || ([...donationPageContent.children].find((child) => child.shadowQuerySelector('button[value]')) || donationPageContent.children[2]) || null;
if (!donationFormWidget || !donationFormWidget.shadowQuerySelector('button'))
return setTimeout(main, 50);
const donationFormGiftArrayButtons = donationFormWidget.shadowQuerySelectorAll('button[value]') ?? null;
if (donationFormWidget.querySelector('.callout') || donationFormWidget.shadowQuerySelector('.callout'))
return console.warn("Callout already added.");
const btn = addCircle(donationFormGiftArrayButtons, CALLOUT_ON_BUTTON_WITH_AMOUNT);
donationFormGiftArrayButtons[0].parentElement && addCallout(CALLOUT_BUBBLE_TEXT, btn, donationFormGiftArrayButtons);
}
(async function(){
try {
console.group("Callout: Init");
asyncWaitForCustomElements(['c-donate-community-staff-information', 'c-donate-community-donate-buttons'/*, 'lightning-formatted-rich-text'*/], () => {
setTimeout(main, 100);
});
} catch (error) {
console.error(error);
} finally {
console.groupEnd();
}
})();
}catch(e) {VWO._.vAEH(e);}
return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("head")}}, R_722072_160_1_2_1:{ fn:function(log,nonce=''){return (function(x) {
try{
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1743792965156"]');
el.revertContentOp().remove();
} catch(e) {VWO._.vAEH(e);}
try{
var el,ctx=vwo_$(x);
/*vwo_debug log("Revert","addElement","body"); vwo_debug*/(el=vwo_$('[vwo-element-id="1743792965157"]')).remove();
} catch(e) {VWO._.vAEH(e);}
return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("head")}}, C_722072_157_1_2_3:{ fn:function(log,nonce=''){return (function(x) {})(".na-pushdown-wrapper,.mw-w-button,input.mw-w-button,#page,.pushdownbar,.div-block-16,.pushdownheadline,.pushdown,.div-block-7,.div-block-8,.paragraph-2,.div-block-15,.mw-btn,.mw-btn:visited,.mw-white,.mw-btn.mw-white,.mw-btn.mw-whitemw-btn:link,.na-pushdown-wrapper .close span,.na-pushdown-wrapper .close,.fa-angle-down:before,/*#donate-menu,.close-wrapper,.btn-dismiss,#masthead .close-menu,.pushdown .pushdown__row,.pushdown .pushdown__col,.pushdown .pushdown__content,.pushdown .pushdown-copy > *:last-child,.pushdown .grid-area,.pushdown .grid-card,.pushdown .grid-card div > p,.pushdown .grid-card div > p > span,.pushdown .grid-card .flex-col,.pushdown .grid-card div > p > b,.pushdown .grid-card button,.pushdown div div.centered,.pushdown div a.other-link,.pushdown .pushdown__close,.pushdown .grid-card p:nth-of-type(3),.pushdown .grid-card p > b")}}, R_722072_157_1_2_3:{ fn:function(log,nonce=''){return (function(x) {
if(!vwo_$.fn.vwoRevertHtml){
return;
};
})(".na-pushdown-wrapper,.mw-w-button,input.mw-w-button,#page,.pushdownbar,.div-block-16,.pushdownheadline,.pushdown,.div-block-7,.div-block-8,.paragraph-2,.div-block-15,.mw-btn,.mw-btn:visited,.mw-white,.mw-btn.mw-white,.mw-btn.mw-whitemw-btn:link,.na-pushdown-wrapper .close span,.na-pushdown-wrapper .close,.fa-angle-down:before,/*#donate-menu,.close-wrapper,.btn-dismiss,#masthead .close-menu,.pushdown .pushdown__row,.pushdown .pushdown__col,.pushdown .pushdown__content,.pushdown .pushdown-copy > *:last-child,.pushdown .grid-area,.pushdown .grid-card,.pushdown .grid-card div > p,.pushdown .grid-card div > p > span,.pushdown .grid-card .flex-col,.pushdown .grid-card div > p > b,.pushdown .grid-card button,.pushdown div div.centered,.pushdown div a.other-link,.pushdown .pushdown__close,.pushdown .grid-card p:nth-of-type(3),.pushdown .grid-card p > b")}}, C_722072_157_1_3_0:{ fn:function(log,nonce=''){return (function(x) {;var _vwo_sel=vwo_$("");vwo_$('head').append(_vwo_sel);return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("HEAD")}}, R_722072_157_1_3_0:{ fn:function(log,nonce=''){return (function(x) {
if(!vwo_$.fn.vwoRevertHtml){
return;
};
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1744062807520"]');
el.revertContentOp().remove();})("HEAD")}}, C_722072_157_1_3_1:{ fn:function(log,nonce=''){return (function(x) {var el,ctx=vwo_$(x);
/*vwo_debug log("addElement","body"); vwo_debug*/!(el=vwo_$("body")).find('[vwo-op-1744062806872=""]').length&&el.vwoElement({html:'
\n \x3c!--
\n
\n \n
\n
--\x3e\n
\n
\n \n
\n
\n
\n
\n \n \x3c!--
\n If you have a moment...\n
--\x3e\n
\n You can be the difference in a child making a decision to follow Jesus at camp this summer. Will you help a kid get to Eagle Lake Camps of The Navigators this summer? Give here »\n