/*! elementor-pro - v3.30.0 - 01-07-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["progress-tracker"],{ /***/ "../modules/progress-tracker/assets/js/frontend/handlers/circular-progress.js": /*!************************************************************************************!*\ !*** ../modules/progress-tracker/assets/js/frontend/handlers/circular-progress.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class CircularProgress { constructor(element, settings) { this.settings = settings; this.lastKnownProgress = null; this.circularProgressTracker = element.find('.elementor-scrolling-tracker-circular')[0]; this.circularCurrentProgress = this.circularProgressTracker.getElementsByClassName('current-progress')[0]; this.circularCurrentProgressPercentage = this.circularProgressTracker.getElementsByClassName('current-progress-percentage')[0]; const radius = this.circularCurrentProgress.r.baseVal.value; const circumference = radius * 2 * Math.PI; this.circularCurrentProgress.style.strokeDasharray = `${circumference} ${circumference}`; this.circularCurrentProgress.style.strokeDashoffset = circumference; this.elements = this.cacheElements(); this.resizeObserver = new ResizeObserver(() => { if (this.lastKnownProgress) { this.updateProgress(this.lastKnownProgress); } }); this.resizeObserver.observe(this.circularProgressTracker); } cacheElements() { return { circularProgressTracker: this.circularProgressTracker, circularCurrentProgress: this.circularCurrentProgress, circularCurrentProgressPercentage: this.circularCurrentProgressPercentage }; } updateProgress(progress) { // On page load, there is no progress and some of the elements might be not fully rendered - so we hide the progress. if (progress <= 0) { this.elements.circularCurrentProgress.style.display = 'none'; this.elements.circularCurrentProgressPercentage.style.display = 'none'; return; } this.elements.circularCurrentProgress.style.display = 'block'; this.elements.circularCurrentProgressPercentage.style.display = 'block'; const radius = this.elements.circularCurrentProgress.r.baseVal.value, circumference = radius * 2 * Math.PI, offset = circumference - progress / 100 * circumference; this.lastKnownProgress = progress; this.elements.circularCurrentProgress.style.strokeDasharray = `${circumference} ${circumference}`; this.elements.circularCurrentProgress.style.strokeDashoffset = 'ltr' === this.settings.direction ? -offset : offset; if ('yes' === this.settings.percentage) { this.elements.circularCurrentProgressPercentage.innerHTML = Math.round(progress) + '%'; } } onDestroy() { this.resizeObserver.unobserve(this.circularProgressTracker); } } var _default = exports["default"] = CircularProgress; /***/ }), /***/ "../modules/progress-tracker/assets/js/frontend/handlers/linear-progress.js": /*!**********************************************************************************!*\ !*** ../modules/progress-tracker/assets/js/frontend/handlers/linear-progress.js ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class LinearProgress { constructor(element, settings) { this.settings = settings; this.linearProgressTracker = element.find('.elementor-scrolling-tracker-horizontal')[0]; this.linearCurrentProgress = this.linearProgressTracker.getElementsByClassName('current-progress')[0]; this.linearCurrentProgressPercentage = this.linearProgressTracker.getElementsByClassName('current-progress-percentage')[0]; this.elements = this.cacheElements(); } cacheElements() { return { linearProgressTracker: this.linearProgressTracker, linearCurrentProgress: this.linearCurrentProgress, linearCurrentProgressPercentage: this.linearCurrentProgressPercentage }; } updateProgress(progress) { // On page load, there is no progress and some of the elements might be not fully rendered - so we hide the progress. if (progress < 1) { this.elements.linearCurrentProgress.style.display = 'none'; return; } this.elements.linearCurrentProgress.style.display = 'flex'; this.elements.linearCurrentProgress.style.width = progress + '%'; if ('yes' === this.settings.percentage && // Multiplying the progress percentage width by 1.5 to make sure it has enough space to be shown correctly. this.elements.linearCurrentProgress.getBoundingClientRect().width > this.elements.linearCurrentProgressPercentage.getBoundingClientRect().width * 1.5) { this.elements.linearCurrentProgressPercentage.innerHTML = Math.round(progress) + '%'; this.elements.linearCurrentProgressPercentage.style.color = getComputedStyle(this.linearCurrentProgress).getPropertyValue('--percentage-color'); } else { this.elements.linearCurrentProgressPercentage.style.color = 'transparent'; } } } var _default = exports["default"] = LinearProgress; /***/ }), /***/ "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js": /*!***********************************************************************************!*\ !*** ../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.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; var _circularProgress = _interopRequireDefault(__webpack_require__(/*! ./circular-progress */ "../modules/progress-tracker/assets/js/frontend/handlers/circular-progress.js")); var _linearProgress = _interopRequireDefault(__webpack_require__(/*! ./linear-progress */ "../modules/progress-tracker/assets/js/frontend/handlers/linear-progress.js")); class ProgressTracker extends elementorModules.frontend.handlers.Base { onInit() { elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); this.circular = 'circular' === this.getElementSettings().type; const Handler = this.circular ? _circularProgress.default : _linearProgress.default; this.progressBar = new Handler(this.$element, this.getElementSettings()); this.progressPercentage = 0; this.scrollHandler(); this.handler = this.scrollHandler.bind(this); this.initListeners(); } getTrackingElementSelector() { const trackingElementSetting = this.getElementSettings().relative_to; let selector; switch (trackingElementSetting) { case 'selector': selector = jQuery(this.getElementSettings().selector); break; case 'post_content': selector = jQuery('.elementor-widget-theme-post-content'); break; default: selector = this.isScrollSnap() ? jQuery('#e-scroll-snap-container') : elementorFrontend.elements.$body; break; } return selector; } // TODO: On Elementor-Pro-3.6.0 delete this function and instead // use the function isScrollSnapActivated() from \elementor\assets\dev\js\frontend\utils\utils.js isScrollSnap() { const scrollSnapStatus = this.isEdit ? elementor.settings.page.model.attributes.scroll_snap : elementorFrontend.config.settings.page.scroll_snap; return 'yes' === scrollSnapStatus ? true : false; } addScrollSnapContainer() { if (this.isScrollSnap() && !jQuery('#e-scroll-snap-container').length) { jQuery('body').wrapInner('
'); } } scrollHandler() { // Temporary solution to integrate Scroll-Snap with Progress-Tracker. // Add Scroll-Snap container to all content in order to calculate the viewport percentage. this.addScrollSnapContainer(); const $trackingElementSelector = this.getTrackingElementSelector(), scrollStartPercentage = $trackingElementSelector.is(elementorFrontend.elements.$body) || $trackingElementSelector.is(jQuery('#e-scroll-snap-container')) ? -100 : 0; this.progressPercentage = elementorModules.utils.Scroll.getElementViewportPercentage(this.getTrackingElementSelector(), { start: scrollStartPercentage, end: -100 }); this.progressBar.updateProgress(this.progressPercentage); } initListeners() { window.addEventListener('scroll', this.handler); elementorFrontend.elements.$body[0].addEventListener('scroll', this.handler); } onDestroy() { if (this.progressBar.onDestroy) { this.progressBar.onDestroy(); } window.removeEventListener('scroll', this.handler); elementorFrontend.elements.$body[0].removeEventListener('scroll', this.handler); } } var _default = exports["default"] = ProgressTracker; /***/ }) }]); //# sourceMappingURL=progress-tracker.fd1d31a26340ed74e10a.bundle.js.map

Welcome to WooCommerce – You‘re almost ready to start selling :)

Run the Setup Wizard

.wcf-loader-bg.show{display:block}.wcf-loader-bg{display:none;position:fixed;width:100%;height:100%;right:0;top:0;overflow:hidden;background:rgba(0,0,0,.5);z-index:99999;animation:popup .7s}.wcf-loader-wrap{width:100%;max-width:500px;height:auto;min-height:140px;top:50%;right:50%;position:relative;transform:translate(50%,-50%);overflow:hidden;background:#fff;border-radius:3px;padding:50px}.wcf-order-msg{text-align:center}.wcf-order-msg .wcf-payment-success{color:#28a745}.wcf-order-msg .wcf-payment-failed{color:#dc3545}.wcf-order-msg p{margin:0 0 .7em}.wcf-order-msg .wcf-note{font-size:13px}.wcf-order-msg .wcf-note-no{display:none}p.wcf-process-msg{font-size:1.2em}.wcf-loader,.wcf-loader::after{border-radius:50%;width:8em;height:8em}.wcf-loader{margin:25px auto;font-size:10px;position:relative;text-indent:-9999em;border-top:5px solid #d4d4d4;border-left:5px solid #d4d4d4;border-bottom:5px solid #d4d4d4;border-right:5px solid #f16334;transform:translateZ(0);animation:load8 550ms infinite linear}.wcf-offer-child-order ul.order_details{padding:0}.woocommerce-product-gallery .slides{position:relative;white-space:nowrap;overflow:hidden}.woocommerce-product-gallery .woocommerce-product-gallery__image{width:100%;display:inline-block}.woocommerce-product-gallery .flex-direction-nav a{height:60px}.woocommerce-product-gallery .flex-direction-nav .flex-next,.woocommerce-product-gallery .flex-direction-nav .flex-prev{display:inline-block;font-family:dashicons;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.woocommerce-product-gallery .flex-direction-nav .flex-prev::before{content:"\f341"}.woocommerce-product-gallery .flex-direction-nav .flex-next::before{content:"\f345"}.woocommerce-product-gallery .flex-direction-nav .flex-prev{right:-50px}.woocommerce-product-gallery .flex-direction-nav .flex-next{left:-50px;text-align:left}.woocommerce-product-gallery:hover .flex-direction-nav .flex-prev{opacity:.7;right:10px}.woocommerce-product-gallery:hover .flex-direction-nav .flex-next{opacity:.7;left:10px}.wcf-offer-price{font-size:22px}.wcf-offer-price .del{padding-left:6px;text-decoration:line-through;opacity:.5}.wcf-offer-shipping-fee{display:block;font-size:15px}.wcf-embeded-product-variation-wrap .variations_form .variations{margin:0}.wcf-embeded-product-quantity-wrap .quantity label.screen-reader-text,.wcf-embeded-product-variation-wrap .variations_form .variations td.label{font-weight:600;font-family:inherit;margin-top:10px}.wcf-embeded-product-variation-wrap .variations_form .variations td.label,.wcf-embeded-product-variation-wrap .variations_form .variations td.value{padding:0 0 5px 0;vertical-align:middle}.wcf-embeded-product-quantity-wrap .quantity input[type=number],.wcf-embeded-product-variation-wrap .variations_form .variations select{background-color:#fff;background-image:none;border:1px solid;border-color:#d4d4d4;border-radius:0;box-shadow:inset 0 -1em .7em 0 rgba(0,0,0,.01);color:#a5a5a5;display:inline-block;font-family:inherit;font-weight:inherit;font-size:14px;height:auto;line-height:1.42857143!important;min-height:34px;outline:0;padding:10px 15px;max-width:100%;width:100%;margin-left:0;-webkit-appearance:none}.wcf-embeded-product-quantity-wrap .quantity input[type=number]:focus,.wcf-embeded-product-variation-wrap .variations_form .variations select:focus{background:#fff;transition:.2s}.wcf-embeded-product-variation-wrap .variations_form .single_variation_wrap{float:right;margin-left:40px;vertical-align:middle}.wcf-embeded-product-variation-wrap .variations_form .single_variation_wrap .single_variation{overflow:hidden}.wcf-embeded-product-variation-wrap .single_variation_wrap .single_variation .woocommerce-variation-description{display:none}.wcf-embeded-product-variation-wrap .variations_form .variations .reset_variations{text-decoration:none;font-family:inherit;font-weight:500;font-size:10px;float:left;margin-top:10px;color:#a00a00;text-transform:uppercase;letter-spacing:.5px;display:none}.wcf-embeded-product-variation-wrap .variations_form .variations .reset_variations::before{content:"\274C";font-size:8px;margin-left:5px}.wcf-embeded-product-variation-wrap .variations_form .price,.wcf-embeded-product-variation-wrap .variations_form .single_variation_wrap .woocommerce-variation-price{margin:0;font-family:inherit;font-weight:400;overflow:hidden;min-height:35px;vertical-align:middle;line-height:2.12}.wcf-embeded-product-variation-wrap .variations .var_not_selected{border:1px solid #e2401c!important}.cartflows-container .single_variation_wrap .woocommerce-variation{display:none!important}.wcf-embeded-product-quantity-wrap .quantity input[type=number],.wcf-embeded-product-variation-wrap table{max-width:250px;max-width:200px}.wcf-embeded-product-variation-wrap table,.wcf-embeded-product-variation-wrap table tbody,.wcf-embeded-product-variation-wrap table tbody tr,.wcf-embeded-product-variation-wrap table tbody tr td,.wcf-embeded-product-variation-wrap table tfoot,.wcf-embeded-product-variation-wrap table tfoot tr,.wcf-embeded-product-variation-wrap table tfoot tr td{width:100%;display:block!important}.wcf-embeded-product-quantity-wrap .quantity{display:block}.wcf-embeded-product-quantity-wrap .quantity .screen-reader-text{clip-path:none;display:inline-block;visibility:visible;opacity:1;position:relative!important;top:0;color:#404040;font-size:15px;min-height:34px;min-height:22px;width:100%;padding-top:0}.wcf-embeded-product-quantity-wrap .quantity label{padding:5px 0;width:100%}@media (min-width:769px){.wcf-embeded-product-quantity-wrap .quantity input[type=number],.wcf-embeded-product-variation-wrap table{max-width:80%}}@media (max-width:768px){.wcf-embeded-product-quantity-wrap .quantity input[type=number],.wcf-embeded-product-variation-wrap table{max-width:100%}}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}@keyframes popup{0%{transform:scale(1.2)}}body[class*=" astra-addon-"] .wcf-offer-product-quantity a#minus_qty,body[class*=" astra-addon-"] .wcf-offer-product-quantity a#plus_qty,body[class*=" astra-addon-"] .wcf-offer-product-quantity label[for^=minus_qty],body[class*=" astra-addon-"] .wcf-offer-product-quantity label[for^=plus_qty]{display:none!important}