/*! elementor-pro - v4.2.0 - 31-08-2026 */ "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.22412652feef2ac71ac5.bundle.js.map Baja Concrete – North Carolina’s premier concrete finishing company

Welcome to the Concrete Leader in the Carolinas!OLYMPUS DIGITAL CAMERA

Welcome to Baja Concrete!

We are a team of experienced and dedicated professionals, serving the Charlotte NC Metro area. We are committed to providing top-quality concrete driveway installation and repair services to our clients in the Charlotte region.

At Baja Concrete, we understand that home improvement projects can be costly, which is why we offer financing options and accept just about any payment method to make it easier for our clients.

With over 20 years of experience in the industry, we have the knowledge and expertise to handle any concrete driveway project, big or small. We use only the highest quality materials and state-of-the-art equipment to ensure that our work is durable and long-lasting.

Our team is fully licensed and insured, and we take pride in our attention to detail and excellent customer service. We are always happy to provide references and answer any questions you may have about your project.

If you are in need of a new concrete driveway or repair work in the Charlotte NC Metro area, look no further than Baja Concrete. Contact us today at 704-591-9317 to schedule a free consultation and get a quote for your project. We look forward to working with you!

Some of the services we offer are:
Driveways, slabs, patios, sidewalks, porches, walk ways, curbs, pool walks, decks, and steps; all available in regular concrete, stamped, colored, or gravel/ABC stone finishes.


Baja Concrete information:

Phone: (704)591-9317

Based out of Mt. Holly, NC
Serving NC counties: Gaston, Mecklenburg, Catawba, Cabarrus, Iredell, Cleveland, York, and surrounding….