/*! elementor - v3.27.0 - 18-02-2025 */ "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/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.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")); 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() { const { hasEntranceAnimation } = this.getSettings('constants'); super.onInit(...arguments); 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.7efeeb8b098e55999ff1.bundle.js.map:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-block-woocommerce-product-tag-field .woocommerce-experimental-select-tree-control__menu .experimental-woocommerce-tree-item{font-size:13px}.wp-block-woocommerce-product-tag-field .woocommerce-experimental-select-tree-control__menu .experimental-woocommerce-tree-item .components-checkbox-control__checked,.wp-block-woocommerce-product-tag-field .woocommerce-experimental-select-tree-control__menu .experimental-woocommerce-tree-item .components-checkbox-control__input-container,.wp-block-woocommerce-product-tag-field .woocommerce-experimental-select-tree-control__menu .experimental-woocommerce-tree-item input[type=checkbox]{width:20px;height:20px}/*! @elementor/editor-app-bar */ /*! @elementor/editor-documents */ /*! @elementor/editor-panels */ /*! @elementor/editor-v1-adapters */ /*! @elementor/env */ /*! @elementor/icons */ /*! @elementor/query */ /*! @elementor/ui */ /*! @wordpress/api-fetch */ /*! @wordpress/i18n */ /*! react */ /*!**************************!*\ !*** external ["React"] ***! \**************************/ /*!******************************!*\ !*** external ["wp","i18n"] ***! \******************************/ /*!**********************************!*\ !*** external ["wp","apiFetch"] ***! \**********************************/ /*!*************************************!*\ !*** external ["elementorV2","ui"] ***! \*************************************/ /*!**************************************!*\ !*** external ["elementorV2","env"] ***! \**************************************/ /*!****************************************!*\ !*** external ["elementorV2","icons"] ***! \****************************************/ /*!****************************************!*\ !*** external ["elementorV2","query"] ***! \****************************************/ /*!***********************************************!*\ !*** external ["elementorV2","editorAppBar"] ***! \***********************************************/ /*!***********************************************!*\ !*** external ["elementorV2","editorPanels"] ***! \***********************************************/ /*!**************************************************!*\ !*** external ["elementorV2","editorDocuments"] ***! \**************************************************/ /*!***************************************************!*\ !*** external ["elementorV2","editorV1Adapters"] ***! \***************************************************/ /*!***********************************************************************!*\ !*** ./node_modules/@elementor/editor-site-navigation/dist/index.mjs ***! \***********************************************************************/ snspackaging

Video Text

Our Vision

Lorem ipsum dolor sit amet, consectetur.Lorem ipsum dolor sit amet, consectetur.

Our Mission

Lorem ipsum dolor sit amet, consectetur.Lorem ipsum dolor sit amet, consectetur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Our Infrastructure

Our Products

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus.

Premium Quality

24/7 Support

Eco
Friendly

Premium Quality

24/7Support

Eco Friendly

0 +

Years of Experience

0 +

Projects Delivered

0 +

Clients Served

0 +

Numbers of Employees

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

LiteSpeed Cache View .htaccess Learn More

.htaccess Path

Frontend .htaccess Path /home/u527248664/domains/blokesarea.com/public_html/snspackaging/.htaccess
Default path is: /home/u527248664/domains/blokesarea.com/public_html/snspackaging/.htaccess
API: PHP Constant LITESPEED_CFG_HTACCESS is supported. You can use this code defined("LITESPEED_CFG_HTACCESS") || define("LITESPEED_CFG_HTACCESS", "your path on server"); in wp-config.php to specify the htaccess file path.
Backend .htaccess Path /home/u527248664/domains/blokesarea.com/public_html/snspackaging/.htaccess
Default path is: /home/u527248664/domains/blokesarea.com/public_html/snspackaging/.htaccess
API: PHP Constant LITESPEED_CFG_HTACCESS_BACKEND is supported. You can use this code defined("LITESPEED_CFG_HTACCESS_BACKEND") || define("LITESPEED_CFG_HTACCESS_BACKEND", "your path on server"); in wp-config.php to specify the htaccess file path.

Current .htaccess Contents

/home/u527248664/domains/blokesarea.com/public_html/snspackaging/.htaccess