"use strict";
(self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["floating-bars"],{
/***/ "../modules/floating-buttons/assets/js/floating-bars/frontend/classes/floatin-bar-dom.js":
/*!***********************************************************************************************!*\
!*** ../modules/floating-buttons/assets/js/floating-bars/frontend/classes/floatin-bar-dom.js ***!
\***********************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
class FloatingBarDomHelper {
constructor($element) {
this.$element = $element;
}
maybeMoveToTop() {
const el = this.$element[0];
const widget = el.querySelector('.e-floating-bars');
if (elementorFrontend.isEditMode()) {
widget.classList.add('is-sticky');
return;
}
if (el.dataset.widget_type.startsWith('floating-bars') && widget.classList.contains('has-vertical-position-top') && !widget.classList.contains('is-sticky')) {
const wpAdminBar = document.getElementById('wpadminbar');
const elementToInsert = el.closest('.elementor');
if (wpAdminBar) {
wpAdminBar.after(elementToInsert);
} else {
document.body.prepend(elementToInsert);
}
}
}
}
exports["default"] = FloatingBarDomHelper;
/***/ }),
/***/ "../modules/floating-buttons/assets/js/floating-bars/frontend/handlers/floating-bars.js":
/*!**********************************************************************************************!*\
!*** ../modules/floating-buttons/assets/js/floating-bars/frontend/handlers/floating-bars.js ***!
\**********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
var _base = _interopRequireDefault(__webpack_require__(/*! elementor-frontend/handlers/base */ "../assets/dev/js/frontend/handlers/base.js"));
var _floatinBarDom = _interopRequireDefault(__webpack_require__(/*! ../classes/floatin-bar-dom */ "../modules/floating-buttons/assets/js/floating-bars/frontend/classes/floatin-bar-dom.js"));
var _clickTracking = _interopRequireDefault(__webpack_require__(/*! ../../../shared/frontend/handlers/click-tracking */ "../modules/floating-buttons/assets/js/shared/frontend/handlers/click-tracking.js"));
class FloatingBarsHandler extends _base.default {
getDefaultSettings() {
return {
selectors: {
main: '.e-floating-bars',
closeButton: '.e-floating-bars__close-button',
ctaButton: '.e-floating-bars__cta-button'
},
constants: {
ctaEntranceAnimation: 'style_cta_button_animation',
ctaEntranceAnimationDelay: 'style_cta_button_animation_delay',
hasEntranceAnimation: 'has-entrance-animation',
visible: 'visible',
isSticky: 'is-sticky',
hasVerticalPositionTop: 'has-vertical-position-top',
hasVerticalPositionBottom: 'has-vertical-position-bottom',
isHidden: 'is-hidden',
animated: 'animated'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
main: this.$element[0].querySelector(selectors.main),
mainAll: this.$element[0].querySelectorAll(selectors.main),
closeButton: this.$element[0].querySelector(selectors.closeButton),
ctaButton: this.$element[0].querySelector(selectors.ctaButton)
};
}
onElementChange(property) {
const changedProperties = ['advanced_vertical_position'];
if (changedProperties.includes(property)) {
this.initDefaultState();
}
}
getResponsiveSetting(controlName) {
const currentDevice = elementorFrontend.getCurrentDeviceMode();
return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), controlName, '', currentDevice);
}
bindEvents() {
if (this.elements.closeButton) {
this.elements.closeButton.addEventListener('click', this.closeFloatingBar.bind(this));
}
if (this.elements.ctaButton) {
this.elements.ctaButton.addEventListener('animationend', this.handleAnimationEnd.bind(this));
}
if (this.elements.main) {
window.addEventListener('keyup', this.onDocumentKeyup.bind(this));
}
if (this.hasStickyElements()) {
window.addEventListener('resize', this.handleStickyElements.bind(this));
}
}
isStickyTop() {
const {
isSticky,
hasVerticalPositionTop
} = this.getSettings('constants');
return this.elements.main.classList.contains(isSticky) && this.elements.main.classList.contains(hasVerticalPositionTop);
}
isStickyBottom() {
const {
isSticky,
hasVerticalPositionBottom
} = this.getSettings('constants');
return this.elements.main.classList.contains(isSticky) && this.elements.main.classList.contains(hasVerticalPositionBottom);
}
hasStickyElements() {
const stickyElements = document.querySelectorAll('.elementor-sticky');
return stickyElements.length > 0;
}
focusOnLoad() {
this.elements.main.setAttribute('tabindex', '0');
this.elements.main.focus({
focusVisible: true
});
}
applyBodyPadding() {
const mainHeight = this.elements.main.offsetHeight;
document.body.style.paddingTop = `${mainHeight}px`;
}
removeBodyPadding() {
document.body.style.paddingTop = '0';
}
handleWPAdminBar() {
const wpAdminBar = elementorFrontend.elements.$wpAdminBar;
if (wpAdminBar.length) {
this.elements.main.style.top = `${wpAdminBar.height()}px`;
}
}
handleStickyElements() {
const mainHeight = this.elements.main.offsetHeight;
const wpAdminBar = elementorFrontend.elements.$wpAdminBar;
const stickyElements = document.querySelectorAll('.elementor-sticky:not(.elementor-sticky__spacer)');
if (0 === stickyElements.length) {
return;
}
stickyElements.forEach(stickyElement => {
const dataSettings = stickyElement.getAttribute('data-settings');
const stickyPosition = JSON.parse(dataSettings)?.sticky;
const isTop = '0px' === stickyElement.style.top || 'top' === stickyPosition;
const isBottom = '0px' === stickyElement.style.bottom || 'bottom' === stickyPosition;
if (this.isStickyTop() && isTop) {
if (wpAdminBar.length) {
stickyElement.style.top = `${mainHeight + wpAdminBar.height()}px`;
} else {
stickyElement.style.top = `${mainHeight}px`;
}
} else if (this.isStickyBottom() && isBottom) {
stickyElement.style.bottom = `${mainHeight}px`;
}
if (elementorFrontend.isEditMode()) {
if (isTop) {
stickyElement.style.top = this.isStickyTop() ? `${mainHeight}px` : '0px';
} else if (isBottom) {
stickyElement.style.bottom = this.isStickyBottom() ? `${mainHeight}px` : '0px';
}
}
});
document.querySelectorAll('.elementor-sticky__spacer').forEach(stickySpacer => {
const dataSettings = stickySpacer.getAttribute('data-settings');
const stickyPosition = JSON.parse(dataSettings)?.sticky;
const isTop = '0px' === stickySpacer.style.top || 'top' === stickyPosition;
if (this.isStickyTop() && isTop) {
stickySpacer.style.marginBottom = `${mainHeight}px`;
}
});
}
closeFloatingBar() {
const {
isHidden
} = this.getSettings('constants');
if (!elementorFrontend.isEditMode()) {
this.elements.main.classList.add(isHidden);
if (this.hasStickyElements()) {
this.handleStickyElements();
} else if (this.isStickyTop()) {
this.removeBodyPadding();
}
}
}
initEntranceAnimation() {
const {
animated,
ctaEntranceAnimation,
ctaEntranceAnimationDelay,
hasEntranceAnimation
} = this.getSettings('constants');
const entranceAnimationClass = this.getResponsiveSetting(ctaEntranceAnimation);
const entranceAnimationDelay = this.getResponsiveSetting(ctaEntranceAnimationDelay) || 0;
const setTimeoutDelay = entranceAnimationDelay + 500;
this.elements.ctaButton.classList.add(animated);
this.elements.ctaButton.classList.add(entranceAnimationClass);
setTimeout(() => {
this.elements.ctaButton.classList.remove(hasEntranceAnimation);
}, setTimeoutDelay);
}
handleAnimationEnd() {
this.removeEntranceAnimationClasses();
this.focusOnLoad();
}
removeEntranceAnimationClasses() {
if (!this.elements.ctaButton) {
return;
}
const {
animated,
ctaEntranceAnimation,
visible
} = this.getSettings('constants');
const entranceAnimationClass = this.getResponsiveSetting(ctaEntranceAnimation);
this.elements.ctaButton.classList.remove(animated);
this.elements.ctaButton.classList.remove(entranceAnimationClass);
this.elements.ctaButton.classList.add(visible);
}
onDocumentKeyup(event) {
// Bail if not ESC key
if (event.keyCode !== 27 || !this.elements.main) {
return;
}
/* eslint-disable @wordpress/no-global-active-element */
if (this.elements.main.contains(document.activeElement)) {
this.closeFloatingBar();
}
/* eslint-enable @wordpress/no-global-active-element */
}
initDefaultState() {
const {
hasEntranceAnimation
} = this.getSettings('constants');
if (this.isStickyTop()) {
this.handleWPAdminBar();
}
if (this.hasStickyElements()) {
this.handleStickyElements();
} else if (this.isStickyTop()) {
this.applyBodyPadding();
}
if (this.elements.main && !this.elements.ctaButton.classList.contains(hasEntranceAnimation) && !elementorFrontend.isEditMode()) {
this.focusOnLoad();
}
}
setupInnerContainer() {
this.elements.main.closest('.e-con-inner').classList.add('e-con-inner--floating-bars');
this.elements.main.closest('.e-con').classList.add('e-con--floating-bars');
}
onInit(...args) {
const {
hasEntranceAnimation
} = this.getSettings('constants');
super.onInit(...args);
this.clickTrackingHandler = new _clickTracking.default({
$element: this.$element
});
const domHelper = new _floatinBarDom.default(this.$element);
domHelper.maybeMoveToTop();
if (this.elements.ctaButton && this.elements.ctaButton.classList.contains(hasEntranceAnimation)) {
this.initEntranceAnimation();
}
this.initDefaultState();
this.setupInnerContainer();
}
}
exports["default"] = FloatingBarsHandler;
/***/ }),
/***/ "../modules/floating-buttons/assets/js/shared/frontend/handlers/click-tracking.js":
/*!****************************************************************************************!*\
!*** ../modules/floating-buttons/assets/js/shared/frontend/handlers/click-tracking.js ***!
\****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
__webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js");
__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
var _base = _interopRequireDefault(__webpack_require__(/*! elementor-frontend/handlers/base */ "../assets/dev/js/frontend/handlers/base.js"));
class ClickTrackingHandler extends _base.default {
clicks = [];
getDefaultSettings() {
return {
selectors: {
contentWrapper: '.e-contact-buttons__content-wrapper',
contactButtonCore: '.e-contact-buttons__send-button',
contentWrapperFloatingBars: '.e-floating-bars',
floatingBarCTAButton: '.e-floating-bars__cta-button',
elementorWrapper: '[data-elementor-type="floating-buttons"]'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
contentWrapper: this.$element[0].querySelector(selectors.contentWrapper),
contentWrapperFloatingBars: this.$element[0].querySelector(selectors.contentWrapperFloatingBars)
};
}
bindEvents() {
if (this.elements.contentWrapper) {
this.elements.contentWrapper.addEventListener('click', this.onChatButtonTrackClick.bind(this));
}
if (this.elements.contentWrapperFloatingBars) {
this.elements.contentWrapperFloatingBars.addEventListener('click', this.onChatButtonTrackClick.bind(this));
}
window.addEventListener('beforeunload', () => {
if (this.clicks.length > 0) {
this.sendClicks();
}
});
}
onChatButtonTrackClick(event) {
const targetElement = event.target || event.srcElement;
const selectors = this.getSettings('selectors');
if (targetElement.matches(selectors.contactButtonCore) || targetElement.closest(selectors.contactButtonCore) || targetElement.matches(selectors.floatingBarCTAButton) || targetElement.closest(selectors.floatingBarCTAButton)) {
this.getDocumentIdAndTrack(targetElement, selectors);
}
}
getDocumentIdAndTrack(targetElement, selectors) {
const documentId = targetElement.closest(selectors.elementorWrapper).dataset.elementorId;
this.trackClick(documentId);
}
trackClick(documentId) {
if (!documentId) {
return;
}
this.clicks.push(documentId);
if (this.clicks.length >= 10) {
this.sendClicks();
}
}
sendClicks() {
const formData = new FormData();
formData.append('action', 'elementor_send_clicks');
formData.append('_nonce', elementorFrontendConfig?.nonces?.floatingButtonsClickTracking);
this.clicks.forEach(documentId => formData.append('clicks[]', documentId));
fetch(elementorFrontendConfig?.urls?.ajaxurl, {
method: 'POST',
body: formData
}).then(() => {
this.clicks = [];
});
}
}
exports["default"] = ClickTrackingHandler;
/***/ })
}]);
//# sourceMappingURL=floating-bars.a6e6a043444b62f64f82.bundle.js.map Eager! Those were the three words beating in my chest this morning. Today was the day. And there it was. I called it “The Heritage”—a dish passed down through generations, perfected with patience, love, and fire. I was sure they would love it. I needed them to love it. They did. As the waiters served families, dressed in elegance and expectation, I caught their smiles after the first bite—the kind that tells you your hard work wasn’t in vain. For a moment, I stood still, almost in disbelief. This was happening. Then I heard it. “Did you eat?” A soft whisper. Easy to ignore. Who has time for food on a day like this? I hadn’t even stocked my fridge, yet I had poured everything into this place. I watched each plate leave the kitchen. I watched faces light up after the first bite. Satisfaction. Approval. Success. “That was great,” I whispered to myself, smiling. When the doors finally closed, I sat alone in the quiet. “Maybe you should eat now.” “Oh no, no,” I said aloud. Today was record-breaking. Tomorrow had to be even better. And so the cycle began. Each day, I pushed harder. Each night, I planned more. Each time the whisper came, I silenced it with the same excuse: Just one more day. Until my body made the decision for me. One afternoon, during the lunch rush, as I moved from table to table—checking plates, asking questions, making sure everyone was satisfied—my vision began to spin. I tried to shake it off. We were closing soon… or so I thought. The next thing I remember, I was waking up to white walls, beeping machines, and an IV in my arm.
Anxious!!
Excited!!!
The day I had prepared for, labored for, lost sleep over. The grand opening of D’ Vine Restaurant. Guests streamed in—one after another—laughter filling the room, heels clicking on polished floors, children tugging at their parents’ hands.
My masterpiece.
my thoughts. I turned back to look at the demons, they glared at me with their reddish-purplish eyes,
staring me down from head to toe. Every hair on my body stood up. How could I chase
these things away?
You looked at me again and said, “I have given you the authority to.”
I looked back at you and whispered, “I can’t. They’re too powerful.”
“All power in heaven and on earth has been given to Me,” you said.
I didn’t fully understand what you meant but I didn’t probe further.
As I continued walking with you, I realized the basic truths; you were Jesus, the Son of
God, in you I live and have my being, and that you have overcome the world. Some of
the words about you were easier to believe, while I struggled still with others. I reflected
on these words you had been telling me, the ones I could believe and my confidence
began to grow.
I decided to take a leap of faith to get rid of these demons once and for all. I took a bold
step forward from where Jesus and I were sitting. I could feel the demons getting closer.
My body began trembling and the hair on my body tingled. I was going to back down
but I kept remembering your words I had been meditating on and suddenly, my hands
felt heavy.
I looked at my right hand and saw a sword. My eyes widened. When did you give me this? I asked. Jesus smiled “You’ve always had it but couldn’t see it, but now that the veil is off you can”.
What veil? who put it there?” I asked while looking around for it.
“You put it there by your lack of faith. But by constantly hearing my word and meditating
on it, you were able to pull it off.
“Oh nice”, I said while weighing the sword on my hands.
Fear launched at me, choking me and making it hard to breathe.
I began trembling more. Fear hissed. Despair circled and kicked me on my knees till I fell. ‘You are worthless, you think you can wield that sword at us, pathetic.
I tried to raise my hand, but fear slapped me really hard. Despair jumped at me, kicking me multiple times. Depression circled around my head and whispered “give up”.
As if like an obedient child, I gave up and the sword fell off my hands. The demons
hissed and left. I began to cry, first, small sobs, then full tears. I scratched myself, pulled my hair, hit the wall hard till my fists started hurting. I couldn’t see Jesus. Where was He when I needed Him the most.
I wept bitterly till I had no more life in me. Then I decided I was done.
I would not take another day of this. The demon did torment me, but He has not
delivered my life to them. I was pressed but not crushed, struck down but not destroyed
because he has not delivered my life to death. I raised my head up with a determination
like never before. Then I heard Jesus say “When you become restless you will break
the yoke from off your neck” I didn’t want to ask where he was but I understood it may
have been a veil again. This was a fight he wanted me to do through the authority or
resources he had provided.
So I picked the sword and I said teach me how to fight. Jesus smiled and suddenly, I felt like someone was holding my hand. And I felt like I was being moved, gently swaying on how to use the sword and where to attack.
Bible verses kept coming to my head. “You have given me the necks of my enemies such
that I destroy those who hate me”. “I have given you authority to trample on snakes and scorpions and to overcome all the power of the enemy; nothing will harm you.
“And having disarmed the powers and authorities, he made a public spectacle of them, triumphing over them by the cross.
I kept repeating the verses, kicking, jumping high, piercing the air with my sword.
The showdown was coming. I could feel it.
I saw the demons peeking in—quiet, calculated. The whispers came softly, almost convincingly:
Did God really say that?
Those promises are for more mature Christians, not you.
You think that’s enough to stand against us?
For a moment, the doubt lingered—but only for a moment.
I knew this was a defining hour. I wasn’t running this time. I was facing it head-on.
And then I asked myself—what really is the worst that could happen? I couldn’t see anything different from what had already happened.
I would stand.
I would believe.
And I would trust that what God spoke was still true—even here.
The light shone so intensely as it came through my open windows that I shut my eyes tight, believing I was about to cross over, weather heaven or hell, I wasn’t sure.
Then I heard a whisper “Hi”. I opened my eyes, I saw you—reaching down to me.
Your entire being radiated light, like the sun, though now softer and more tolerable than before. Your feet burned like fire—and so did your eyes. Yet in the depths of your eyes, I felt peace. It drew me in. I somehow knew that if I took your hand, I would be forever saved.
Who are you? I thought, too shaken to speak. Can I trust you? Why have you come?
No one had sensed my anguish or helped me. So why you? Why now?
You looked like a perfect work of art—pure, flawless, carved to perfection. But I? I looked unkempt, abandoned, dirty in my sins. Can I trust you? I wondered again. Would you leave when things get hard, like everyone else?
As if reading my thoughts, you smiled. The smile reached your eyes, and the fire burned brighter. You looked as though you knew exactly what I meant—and that you were in this with me.
You sat beside me, gently touched my cheek as brushing a tear, then drew me into an embrace. You didn’t have to say anything—your presence was enough. Time seemed to stand still as we stayed like that. It felt like we had forever.
When I finally raised my head, you looked at me with those fiery eyes and said,
“No, I will not leave you nor forsake you.”
That was when I realized how filthy I was. I could stain your perfect brightness with my darkness—but you didn’t care. You stood and helped me to my feet.
Immediately, fear, despair, shame, and negative thoughts began creeping in. They spoke over one another:
He’s no different.”
“You’re broken.”
“You’re not worthy.”
“We’re all you have.”
I looked into your eyes again. It felt as though I was the only one in the world you loved—that you couldn’t bear to be apart from me. It felt shameless, yet deeply reassuring. Tears rolled down my face. I didn’t understand why you cared so much. I hadn’t done anything to deserve such devotion.
You stood up and reached for me. This was my escape, finally. I had no choice but to trust you. So I reached out and took your hands, gripping them as if my life depended on it.
As we walked together, I noticed the demons emerging from their hiding places, following us at a distance. They didn’t come close, but they kept talking. Some stretched out their hands as if to grab me, but something held them back.
Why don’t you just wave your hand and make them disappear? I thought. The brightness you radiate could keep them away forever, yet you do nothing.
]]>You looked at me and said, “because I have given you the authority to do it.”
Again, you answered my thoughts without me ever saying a word. I looked at you, puzzled. These beasts are giants—and I? Just a tiny grasshopper. I was sure they saw me that way too. They torment and harass me constantly. But you’re here—You should do something, not me.