PATH:
home
/
lab2454c
/
crypthorize.net
/
wp-content
/
plugins
/
elementor-pro
/
assets
/
js
/*! elementor-pro - v3.6.4 - 15-03-2022 */ "use strict"; (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) => { 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 && this.elements.loadMoreButton) { // 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. if (this.elements.loadMoreAnchor) { 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.currentPage) { 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 && this.elements.loadMoreAnchor) { // 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(); // Grabbing only the new articles from the response without the existing once (prevent posts duplication). const posts = result.querySelectorAll(`[data-id="${this.elementId}"] .elementor-posts-container > article`); const nextPageUrl = result.querySelector('.e-load-more-anchor').getAttribute('data-next-page'); // 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); this.elements.loadMoreAnchor.setAttribute('data-next-page', nextPageUrl); if (this.currentPage === this.maxPage) { this.handleUiWhenNoPosts(); } } handlePostsQuery() { this.handleUiBeforeLoading(); this.currentPage++; const nextPageUrl = this.elements.loadMoreAnchor.getAttribute('data-next-page'); return fetch(nextPageUrl).then(response => response.text()).then(html => { // Convert the HTML string into a document object const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); this.handleSuccessFetch(doc); }).catch(err => { console.warn('Something went wrong.', err); }); } } exports["default"] = LoadMore; /***/ }) }]); //# sourceMappingURL=load-more.ac40b4a3f37f08bbeba2.bundle.js.map
[+]
..
[-] frontend.min.js
[edit]
[-] table-of-contents.4b2c027c1b14bc6856bb.bundle.min.js
[edit]
[-] elements-handlers.js
[edit]
[-] woocommerce-menu-cart.cedd0e5dff14e897d7f2.bundle.js
[edit]
[-] editor.js
[edit]
[-] popup.4567e25e40bd00bdcd10.bundle.js
[edit]
[-] screenshot.min.js
[edit]
[-] qunit-tests.min.js
[edit]
[-] elements-handlers.min.js
[edit]
[-] code-highlight.e520eaa79dbee1cfac29.bundle.js
[edit]
[-] form.358793a6bb3724ab5f99.bundle.min.js
[edit]
[-] archive-posts.a89b5dc0ebe0af8113c4.bundle.min.js
[edit]
[-] form-submission-admin.js
[edit]
[-] frontend.js
[edit]
[-] form-submission-admin.min.js
[edit]
[-] nav-menu.3de49ba5ef86f9a22ff5.bundle.min.js
[edit]
[-] carousel.8af41a7f7916e49faa64.bundle.js
[edit]
[-] carousel.fc5e450716cd11d05beb.bundle.min.js
[edit]
[-] admin.js
[edit]
[-] preview.min.js
[edit]
[-] woocommerce-notices.9d7a1628d10a597bd42e.bundle.js
[edit]
[-] share-buttons.0bdd88c45462dfb2b073.bundle.min.js
[edit]
[-] webpack-pro.runtime.min.js
[edit]
[-] app.min.js
[edit]
[-] app.js
[edit]
[-] lottie.6edefd55e83420c3e577.bundle.js
[edit]
[-] animated-headline.9d0deabe7a095aba599a.bundle.js
[edit]
[-] page-transitions.min.js
[edit]
[-] hotspot.6ab1751404c381bfe390.bundle.min.js
[edit]
[-] popup.483b906ddaa1af17ff14.bundle.min.js
[edit]
[-] woocommerce-menu-cart.1fdfc1bdbd743360a054.bundle.min.js
[edit]
[-] video-playlist.e85695d7b9171d89c565.bundle.min.js
[edit]
[-] media-carousel.24f26a220d051ebe9cf0.bundle.js
[edit]
[-] social.2d2e44e8608690943f29.bundle.min.js
[edit]
[-] progress-tracker.7a4e50d1be14525d8ffb.bundle.min.js
[edit]
[-] video-playlist.35b54e34a5cb0387ddc0.bundle.js
[edit]
[-] slides.b2be07a53adca10fb263.bundle.js
[edit]
[-] woocommerce-cart.de67cf3afe8ce5d8311a.bundle.js
[edit]
[-] jszip.vendor.5f2c698c31faa5dfdb7c.bundle.min.js.LICENSE.txt
[edit]
[-] editor.min.js
[edit]
[-] jszip.vendor.fca003f76cde32380bb2.bundle.js
[edit]
[-] custom-code.js
[edit]
[-] woocommerce-checkout-page.c51ad6b97bbcc4d7f461.bundle.js
[edit]
[-] social.a44d2048d9b1fcb6c560.bundle.js
[edit]
[-] woocommerce-purchase-summary.986abc6a2956fbf75429.bundle.min.js
[edit]
[-] search-form.a396372f407d3c16a0ef.bundle.min.js
[edit]
[-] archive-posts.543f7a304d84538a71f2.bundle.js
[edit]
[-] gallery.80bd2ebe264e5ec1e591.bundle.js
[edit]
[-] woocommerce-my-account.b271ccbc23c638cdf33a.bundle.js
[edit]
[-] media-carousel.3a1cfc78c5d3383e935d.bundle.min.js
[edit]
[-] slides.b3c3013aaf60282ce45b.bundle.min.js
[edit]
[-] page-transitions-editor.30a228b929697de976ce.bundle.min.js
[edit]
[-] woocommerce-checkout-page.de22c838bda146ca0a77.bundle.min.js
[edit]
[-] woocommerce-notices.da27b22c491f7cbe9158.bundle.min.js
[edit]
[-] preloaded-elements-handlers.js
[edit]
[-] page-transitions-editor.f316a6908f6ddd23835f.bundle.js
[edit]
[-] webpack-pro.runtime.js
[edit]
[-] load-more.80eb3caec79a44347d74.bundle.min.js
[edit]
[-] jszip.vendor.5f2c698c31faa5dfdb7c.bundle.min.js
[edit]
[-] woocommerce-cart.6d2d2476f49308596186.bundle.min.js
[edit]
[-] countdown.b0ef6392ec4ff09ca2f2.bundle.min.js
[edit]
[-] portfolio.2fe17780e07233672e3b.bundle.min.js
[edit]
[-] nav-menu.1dac4a83f83a7b3c7934.bundle.js
[edit]
[-] paypal-button.3d0d5af7df85963df32c.bundle.min.js
[edit]
[-] form.40d683f118e1e1f37822.bundle.js
[edit]
[-] search-form.b54087cb78208841e9e9.bundle.js
[edit]
[-] gallery.9c61bb9957e10e6d7bda.bundle.min.js
[edit]
[-] screenshot.js
[edit]
[-] preview.js
[edit]
[-] portfolio.472eaa4ac6ea33e02365.bundle.js
[edit]
[-] progress-tracker.93daadba13b5e1d2c129.bundle.js
[edit]
[-] woocommerce-my-account.6c5bcaba786bebe3123b.bundle.min.js
[edit]
[-] countdown.494333ff20e0a2ae981c.bundle.js
[edit]
[-] share-buttons.da3a2fe5589f4d6df8be.bundle.js
[edit]
[-] hotspot.6561fc82c7a4cd4ad252.bundle.js
[edit]
[-] code-highlight.28a979661569ddbbf60d.bundle.min.js
[edit]
[-] table-of-contents.4c67276d84a32454299a.bundle.js
[edit]
[-] posts.5e1be2ed6501aa917477.bundle.js
[edit]
[-] admin.min.js
[edit]
[-] woocommerce-purchase-summary.6f7dc47a408b6b1e11cc.bundle.js
[edit]
[-] posts.fb47ff5b9f7ecb0aba80.bundle.min.js
[edit]
[-] preloaded-elements-handlers.min.js
[edit]
[-] page-transitions.js
[edit]
[-] qunit-tests.js
[edit]
[-] custom-code.min.js
[edit]
[-] animated-headline.2084307f107ab81be69e.bundle.min.js
[edit]
[-] lottie.147bf20db94f86cc4295.bundle.min.js
[edit]
[-] paypal-button.00c5c212bbc3b1d155b0.bundle.js
[edit]
[-] load-more.ac40b4a3f37f08bbeba2.bundle.js
[edit]