PATH:
home
/
lab2454c
/
bullionmils.com
/
wp-content
/
plugins
/
elementor-pro
/
assets
/
js
/*! elementor-pro - v3.4.2 - 12-10-2021 */ (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["load-more"],{ /***/ "../modules/posts/assets/js/frontend/handlers/load-more.js": /*!*****************************************************************!*\ !*** ../modules/posts/assets/js/frontend/handlers/load-more.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.default = void 0; class LoadMore extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { postsContainer: '.elementor-posts-container', loadMoreButton: '.elementor-button', loadMoreSpinnerWrapper: '.e-load-more-spinner', loadMoreSpinner: '.e-load-more-spinner i, .e-load-more-spinner svg', loadMoreAnchor: '.e-load-more-anchor' }, classes: { loadMoreSpin: 'eicon-animation-spin', loadMoreIsLoading: 'e-load-more-pagination-loading', loadMorePaginationEnd: 'e-load-more-pagination-end', loadMoreNoSpinner: 'e-load-more-no-spinner' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { postsWidgetWrapper: this.$element[0], postsContainer: this.$element[0].querySelector(selectors.postsContainer), loadMoreButton: this.$element[0].querySelector(selectors.loadMoreButton), loadMoreSpinnerWrapper: this.$element[0].querySelector(selectors.loadMoreSpinnerWrapper), loadMoreSpinner: this.$element[0].querySelector(selectors.loadMoreSpinner), loadMoreAnchor: this.$element[0].querySelector(selectors.loadMoreAnchor) }; } bindEvents() { super.bindEvents(); // Handle load more functionality for on-click type. if (!this.elements.loadMoreButton) { return; } this.elements.loadMoreButton.addEventListener('click', event => { if (this.isLoading) { return; } event.preventDefault(); this.handlePostsQuery(); }); } onInit() { super.onInit(); this.classes = this.getSettings('classes'); this.isLoading = false; const paginationType = this.getElementSettings('pagination_type'); if ('load_more_on_click' !== paginationType && 'load_more_infinite_scroll' !== paginationType) { return; } this.isInfinteScroll = 'load_more_infinite_scroll' === paginationType; // When spinner is not available, the button's text should not be hidden. this.isSpinnerAvailable = this.getElementSettings('load_more_spinner').value; if (!this.isSpinnerAvailable) { this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner); } if (this.isInfinteScroll) { this.handleInfiniteScroll(); } else if (this.elements.loadMoreSpinnerWrapper) { // Instead of creating 2 spinners for on-click and infinity-scroll, one spinner will be used so it should be appended to the button in on-click mode. this.elements.loadMoreButton.insertAdjacentElement('beforeEnd', this.elements.loadMoreSpinnerWrapper); } // Set the post id and element id for the ajax request. this.elementId = this.getID(); this.postId = elementorFrontendConfig.post.id; // Set the current page and last page for handling the load more post and when no more posts to show. this.currentPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-page')); this.maxPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-max-page')); if (this.currentPage === this.maxPage) { this.handleUiWhenNoPosts(); } } // Handle load more functionality for infinity-scroll type. handleInfiniteScroll() { if (this.isEdit) { return; } this.observer = elementorModules.utils.Scroll.scrollObserver({ callback: event => { if (!event.isInViewport || this.isLoading) { return; } // When the observer is triggered it won't be triggered without scrolling, but sometimes there will be no scrollbar to trigger it again. this.observer.unobserve(this.elements.loadMoreAnchor); this.handlePostsQuery().then(() => { if (this.currentPage !== this.maxPage) { this.observer.observe(this.elements.loadMoreAnchor); } }); } }); this.observer.observe(this.elements.loadMoreAnchor); } handleUiBeforeLoading() { this.isLoading = true; if (this.elements.loadMoreSpinner) { this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin); } this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading); } handleUiAfterLoading() { this.isLoading = false; if (this.elements.loadMoreSpinner) { this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin); } if (this.isInfinteScroll && this.elements.loadMoreSpinnerWrapper) { // Since the spinner has to be shown after the new content (posts), it should be appended after the anchor element. this.elements.loadMoreAnchor.insertAdjacentElement('afterend', this.elements.loadMoreSpinnerWrapper); } this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading); } handleUiWhenNoPosts() { this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd); } handleSuccessFetch(result) { this.handleUiAfterLoading(); const html = document.createElement('div'); html.innerHTML = result.content; const posts = html.querySelectorAll('.elementor-posts-container > article'); // Converting HTMLCollection to an Array and iterate it. const postsHTML = [...posts].reduce((accumulator, post) => { return accumulator + post.outerHTML; }, ''); this.elements.postsContainer.insertAdjacentHTML('beforeend', postsHTML); this.elements.loadMoreAnchor.setAttribute('data-page', this.currentPage); if (this.currentPage === this.maxPage) { this.handleUiWhenNoPosts(); } } handlePostsQuery() { this.handleUiBeforeLoading(); this.currentPage++; const restUrl = `${ElementorProFrontendConfig.urls.rest}elementor-pro/v1/posts-widget?post_id=${this.postId}&element_id=${this.elementId}&page=${this.currentPage}`; return fetch(restUrl).then(response => response.json()).then(result => { this.handleSuccessFetch(result); }); } } exports.default = LoadMore; /***/ }) }]); //# sourceMappingURL=load-more.ed8a8caa6411cba8ed86.bundle.js.map
[-] carousel.6a71b6c6e34400c456a5.bundle.min.js
[edit]
[-] frontend.min.js
[edit]
[-] archive-posts.1d5bae5aa38b8a799cbd.bundle.js
[edit]
[-] elements-handlers.js
[edit]
[-] countdown.6b48da864045c1ea0edd.bundle.js
[edit]
[-] editor.js
[edit]
[-] screenshot.min.js
[edit]
[-] qunit-tests.min.js
[edit]
[-] elements-handlers.min.js
[edit]
[-] form-submission-admin.js
[edit]
[-] frontend.js
[edit]
[-] table-of-contents.f5cd05278297a9d229e1.bundle.min.js
[edit]
[-] paypal-button.21471ef12592606560a0.bundle.min.js
[edit]
[-] form-submission-admin.min.js
[edit]
[-] lottie.dccf7257e6cc366bc6bd.bundle.js
[edit]
[-] portfolio.71a9b9fb42566ae496bd.bundle.js
[edit]
[-] slides.39da68ee3c8123589b2e.bundle.min.js
[edit]
[+]
..
[-] admin.js
[edit]
[-] preview.min.js
[edit]
[-] gallery.e5ba72e3c57da531df85.bundle.js
[edit]
[-] nav-menu.fd64b77e7258ee4c6205.bundle.min.js
[edit]
[-] webpack-pro.runtime.min.js
[edit]
[-] app.min.js
[edit]
[-] share-buttons.d147b71ef798e333e678.bundle.js
[edit]
[-] app.js
[edit]
[-] search-form.e36b4b7c26157bb965fe.bundle.min.js
[edit]
[-] jszip.vendor.8911033537a0c9d6e5f8.bundle.js
[edit]
[-] hotspot.ba3b762edc3da9c7a076.bundle.min.js
[edit]
[-] gallery.6af8f19f91f1b16c3ab6.bundle.min.js
[edit]
[-] table-of-contents.0744140055afdd9bf411.bundle.js
[edit]
[-] archive-posts.c3694683a03701a4b510.bundle.min.js
[edit]
[-] social.b17f5f1767e41333a1dc.bundle.js
[edit]
[-] jszip.vendor.9ec53381c344ee903f3e.bundle.min.js.LICENSE.txt
[edit]
[-] social.787445e9f143597c5be5.bundle.min.js
[edit]
[-] form.23168c11e0d20fa0282b.bundle.js
[edit]
[-] media-carousel.15b78f70034df8ffebad.bundle.min.js
[edit]
[-] editor.min.js
[edit]
[-] animated-headline.37960d9fb9ab8b6e43cd.bundle.min.js
[edit]
[-] custom-code.js
[edit]
[-] posts.2a35b76ad8ea8f612cd7.bundle.min.js
[edit]
[-] paypal-button.a8f3d929735cca75a572.bundle.js
[edit]
[-] carousel.364bbaf018e09f58c819.bundle.js
[edit]
[-] animated-headline.0ccd23763059df7affcc.bundle.js
[edit]
[-] load-more.5f24d086730c704d2314.bundle.min.js
[edit]
[-] preloaded-elements-handlers.js
[edit]
[-] countdown.71f117e09cc4a2aa3dba.bundle.min.js
[edit]
[-] hotspot.66952182f9ae91b6896c.bundle.js
[edit]
[-] webpack-pro.runtime.js
[edit]
[-] popup.7b71aedb401104b93788.bundle.min.js
[edit]
[-] woocommerce-menu-cart.4c85f15cfbc02b4718c9.bundle.min.js
[edit]
[-] screenshot.js
[edit]
[-] search-form.fda69e244861c6890e79.bundle.js
[edit]
[-] slides.6d3f738223ac9b3c9b7a.bundle.js
[edit]
[-] posts.c23c8d29f44afbd62da6.bundle.js
[edit]
[-] code-highlight.dc74fd78a051eda07b3a.bundle.min.js
[edit]
[-] media-carousel.b5cf350f530535d64364.bundle.js
[edit]
[-] preview.js
[edit]
[-] share-buttons.42abb737a0de191a4ee9.bundle.min.js
[edit]
[-] code-highlight.cc6c8eb49e0aff6d419e.bundle.js
[edit]
[-] jszip.vendor.9ec53381c344ee903f3e.bundle.min.js
[edit]
[-] video-playlist.b442680ac5bf7b46b7c3.bundle.min.js
[edit]
[-] popup.5ddbdd46f21fc221d760.bundle.js
[edit]
[-] nav-menu.e248eec66bc3d5587cf6.bundle.js
[edit]
[-] form.0fc25ba6639255b98660.bundle.min.js
[edit]
[-] load-more.ed8a8caa6411cba8ed86.bundle.js
[edit]
[-] admin.min.js
[edit]
[-] preloaded-elements-handlers.min.js
[edit]
[-] woocommerce-menu-cart.cf8829a628c66ec7c688.bundle.js
[edit]
[-] qunit-tests.js
[edit]
[-] custom-code.min.js
[edit]
[-] portfolio.c214590e93207960ce64.bundle.min.js
[edit]
[-] video-playlist.f55c7066f7ec3a866539.bundle.js
[edit]
[-] lottie.b83968ecec2e4fd1b62c.bundle.min.js
[edit]