/
home
/
vianto5
/
hidalgoresidences.mx
/
wp-content
/
plugins
/
elementor-pro
/
assets
/
js
/
/home/vianto5/hidalgoresidences.mx/wp-content/plugins/elementor-pro/assets/js
mkdir
upload
Name
Size
Mode
Actions
notes/
-
0755
rm
packages/
-
0755
rm
8b11be0d97d58e135d30.bundle.js
62863
0644
edit
dl
rm
0726b2d81686a5392236.bundle.min.js
23229
0644
edit
dl
rm
0726b2d81686a5392236.bundle.min.js.LICENSE.txt
188
0644
edit
dl
rm
1644e3d37816d939acca.bundle.js
6367
0644
edit
dl
rm
admin.js
58840
0644
edit
dl
rm
admin.min.js
29210
0644
edit
dl
rm
ajax-pagination.2090b5f4906bcda1dcc2.bundle.min.js
2814
0644
edit
dl
rm
ajax-pagination.2390838f542f1a8d5ed4.bundle.js
5178
0644
edit
dl
rm
animated-headline.32baaa2ad2ea939224d5.bundle.js
12206
0644
edit
dl
rm
animated-headline.c009d6fa482515df23f8.bundle.min.js
7765
0644
edit
dl
rm
app.js
415943
0644
edit
dl
rm
app.min.js
136796
0644
edit
dl
rm
archive-posts.6e398ddd4a81a78bcea3.bundle.js
15895
0644
edit
dl
rm
archive-posts.16a93245d08246e5e540.bundle.min.js
8106
0644
edit
dl
rm
carousel.298f1fc9c115422aad0e.bundle.js
10166
0644
edit
dl
rm
carousel.3620fca501cb18163600.bundle.min.js
5014
0644
edit
dl
rm
code-highlight.d4867c919d0858f748df.bundle.js
1022
0644
edit
dl
rm
code-highlight.d86022c8668c4b072592.bundle.min.js
472
0644
edit
dl
rm
contact-buttons-var-10.0dc9f4c9e85e7c4baa3a.bundle.min.js
7865
0644
edit
dl
rm
contact-buttons-var-10.49a45dadc9c2facb4972.bundle.js
14530
0644
edit
dl
rm
contact-buttons.6f0dc663eb685c187fea.bundle.js
23539
0644
edit
dl
rm
contact-buttons.33ec3b540b7caec4d0f5.bundle.min.js
13843
0644
edit
dl
rm
countdown.0e9e688751d29d07a8d3.bundle.min.js
2688
0644
edit
dl
rm
countdown.6e87ca40d36793d92aea.bundle.js
4941
0644
edit
dl
rm
custom-code.js
180453
0644
edit
dl
rm
custom-code.min.js
42786
0644
edit
dl
rm
display-conditions.js
251972
0644
edit
dl
rm
display-conditions.min.js
79359
0644
edit
dl
rm
e3f4acef69f217322320.bundle.min.js
3319
0644
edit
dl
rm
e8eba20060a4b0fa29dc.bundle.js
12405
0644
edit
dl
rm
editor.js
395457
0644
edit
dl
rm
editor.min.js
157270
0644
edit
dl
rm
elements-handlers.js
116233
0644
edit
dl
rm
elements-handlers.min.js
44670
0644
edit
dl
rm
floating-bars-var-2.1a487dc027431fb485cd.bundle.min.js
14546
0644
edit
dl
rm
floating-bars-var-2.c6f25c32db86d04f5e8b.bundle.js
13112
0644
edit
dl
rm
floating-bars-var-3.6cef001471f04cdb931e.bundle.js
13008
0644
edit
dl
rm
floating-bars-var-3.acd1ad79ebb515e353c9.bundle.min.js
14031
0644
edit
dl
rm
form-submission-admin.js
357252
0644
edit
dl
rm
form-submission-admin.min.js
104695
0644
edit
dl
rm
form.5fb35271b8ba3fb1e7d6.bundle.min.js
19784
0644
edit
dl
rm
form.a7e78a23dbf43d6f2639.bundle.js
34777
0644
edit
dl
rm
frontend.js
54678
0644
edit
dl
rm
frontend.min.js
24288
0644
edit
dl
rm
gallery.1628df47530ab42dafba.bundle.min.js
5977
0644
edit
dl
rm
gallery.b7d55bc976e04f751975.bundle.js
9718
0644
edit
dl
rm
hotspot.d513dd152bf605a2ffbf.bundle.js
5011
0644
edit
dl
rm
hotspot.fa04300164c35a866a51.bundle.min.js
2821
0644
edit
dl
rm
jszip.vendor.a3c65615c1de5560962d.bundle.js
97933
0644
edit
dl
rm
jszip.vendor.eba4ace24dcc63eadac0.bundle.min.js
98185
0644
edit
dl
rm
jszip.vendor.eba4ace24dcc63eadac0.bundle.min.js.LICENSE.txt
383
0644
edit
dl
rm
load-more.8b46f464e573feab5dd7.bundle.min.js
5346
0644
edit
dl
rm
load-more.f5ecc1c66872d0bd2d17.bundle.js
9668
0644
edit
dl
rm
loop-carousel.5108cb72ebb124297adb.bundle.js
2838
0644
edit
dl
rm
loop-carousel.f8067ec0c24b628c786e.bundle.min.js
1357
0644
edit
dl
rm
loop-filter-editor.46a4c013b80a381a50c9.bundle.js
7191
0644
edit
dl
rm
loop-filter-editor.be7377d717e2499f4676.bundle.min.js
3355
0644
edit
dl
rm
loop.4a16d82b8b5e3e00f25e.bundle.min.js
9365
0644
edit
dl
rm
loop.da94e53412e56933f721.bundle.js
17694
0644
edit
dl
rm
lottie.a02a01f29c0733918ac7.bundle.js
24991
0644
edit
dl
rm
lottie.e74a53bfa4c0bd939250.bundle.min.js
14409
0644
edit
dl
rm
media-carousel.04412cb9b4479aa37408.bundle.js
13358
0644
edit
dl
rm
media-carousel.afbaabb756a7c18ddb09.bundle.min.js
7003
0644
edit
dl
rm
mega-menu-editor.a6e92bb2ec3d58f8438a.bundle.min.js
8623
0644
edit
dl
rm
mega-menu-editor.e043cd3d7fd180995eb9.bundle.js
19842
0644
edit
dl
rm
mega-menu-stretch-content.0d76e4a3b7bf65ff6f9b.bundle.js
1868
0644
edit
dl
rm
mega-menu-stretch-content.480e081cebe071d683e8.bundle.min.js
1122
0644
edit
dl
rm
mega-menu.1344912ff0c40681bb13.bundle.js
51975
0644
edit
dl
rm
mega-menu.b9f434b612d371d24d50.bundle.min.js
28544
0644
edit
dl
rm
menu-title-keyboard-handler.54fb596274a9cc06267d.bundle.min.js
7699
0644
edit
dl
rm
menu-title-keyboard-handler.c3673f59d6c5e47d2431.bundle.js
12310
0644
edit
dl
rm
nav-menu.0edc0c22e9f3101552ed.bundle.min.js
5301
0644
edit
dl
rm
nav-menu.f1ec837bbdc0a90accc6.bundle.js
9317
0644
edit
dl
rm
nested-carousel-editor.0df35e0e1a284d4bd18b.bundle.js
1880
0644
edit
dl
rm
nested-carousel-editor.6d7500036d0766bbe2fc.bundle.min.js
623
0644
edit
dl
rm
nested-carousel.4d07ea83632034f2e72e.bundle.js
6804
0644
edit
dl
rm
nested-carousel.776ab95ca4daa003622e.bundle.min.js
3378
0644
edit
dl
rm
off-canvas-editor.3bc6e394bd20d4fd64dc.bundle.min.js
2698
0644
edit
dl
rm
off-canvas-editor.d20b8e528d36b21a024c.bundle.js
6583
0644
edit
dl
rm
off-canvas.02e30e192bc782084e8a.bundle.js
11019
0644
edit
dl
rm
off-canvas.41d355285c19e4440547.bundle.min.js
6947
0644
edit
dl
rm
page-transitions.js
117803
0644
edit
dl
rm
page-transitions.min.js
32707
0644
edit
dl
rm
paypal-button.55ffb013a3fe565f55a5.bundle.js
1577
0644
edit
dl
rm
paypal-button.f4f64e46173f50701949.bundle.min.js
871
0644
edit
dl
rm
popup.996738ad83c089bcc0b9.bundle.js
1543
0644
edit
dl
rm
popup.f7b15b2ca565b152bf98.bundle.min.js
752
0644
edit
dl
rm
portfolio.4cd5da34009c30cb5d70.bundle.min.js
7271
0644
edit
dl
rm
portfolio.5727b56368be256d0893.bundle.js
12994
0644
edit
dl
rm
posts.aec59265318492b89cb5.bundle.min.js
3317
0644
edit
dl
rm
posts.e99f84b83c36d4568ffe.bundle.js
5941
0644
edit
dl
rm
preview.js
93367
0644
edit
dl
rm
preview.min.js
19512
0644
edit
dl
rm
product-add-to-cart.51a22e1fbd8f914ab3d5.bundle.min.js
3506
0644
edit
dl
rm
product-add-to-cart.d5883897e035f9c53c5e.bundle.js
7339
0644
edit
dl
rm
progress-tracker.8cccdda9737c272489fc.bundle.min.js
5237
0644
edit
dl
rm
progress-tracker.fd1d31a26340ed74e10a.bundle.js
9433
0644
edit
dl
rm
screenshot.js
12009
0644
edit
dl
rm
screenshot.min.js
5902
0644
edit
dl
rm
search-form.8941aba5c12cdb05fb7c.bundle.js
4503
0644
edit
dl
rm
search-form.b7065999d77832a1b764.bundle.min.js
2124
0644
edit
dl
rm
search.3db30c59360e14bb4448.bundle.min.js
13526
0644
edit
dl
rm
search.5c7852be6fc67209b3a8.bundle.js
21093
0644
edit
dl
rm
share-buttons.63d984f8c96d1e053bc0.bundle.min.js
1577
0644
edit
dl
rm
share-buttons.fda49c1691f4a352c7ef.bundle.js
4372
0644
edit
dl
rm
slides.bcd16bbde90338846bd7.bundle.js
7567
0644
edit
dl
rm
slides.c0029640cbdb48199471.bundle.min.js
3926
0644
edit
dl
rm
social.ac16c075939dcb93f70c.bundle.js
1991
0644
edit
dl
rm
social.f215e8a3efafbdbeb7ef.bundle.min.js
1022
0644
edit
dl
rm
stripe-button.49130d6eecb5ebc8afbd.bundle.min.js
2015
0644
edit
dl
rm
stripe-button.cb4b1cf19f1c46430f76.bundle.js
4283
0644
edit
dl
rm
table-of-contents.339d2b8b27914b2a038a.bundle.min.js
8362
0644
edit
dl
rm
table-of-contents.430b97825da33e6685ed.bundle.js
16125
0644
edit
dl
rm
taxonomy-filter.ce05524d53c2d4c5aa24.bundle.js
16157
0644
edit
dl
rm
taxonomy-filter.e839f2be32b7ea832b34.bundle.min.js
7671
0644
edit
dl
rm
video-playlist.9e1bbc4fcb37864c89d6.bundle.js
50181
0644
edit
dl
rm
video-playlist.af20fd9fd8778929829e.bundle.min.js
22679
0644
edit
dl
rm
webpack-pro.runtime.js
16759
0644
edit
dl
rm
webpack-pro.runtime.min.js
6248
0644
edit
dl
rm
woocommerce-cart.79b5dc500681930471c6.bundle.js
10767
0644
edit
dl
rm
woocommerce-cart.d0d01530f5be6736b5d2.bundle.min.js
5199
0644
edit
dl
rm
woocommerce-checkout-page.943b06275712cd4b96a5.bundle.min.js
6633
0644
edit
dl
rm
woocommerce-checkout-page.470384546c61ebcaa89d.bundle.js
12159
0644
edit
dl
rm
woocommerce-menu-cart.81f5bafc26b94cc86238.bundle.js
8919
0644
edit
dl
rm
woocommerce-menu-cart.eb61fe086245485310a4.bundle.min.js
4731
0644
edit
dl
rm
woocommerce-my-account.4e940a8b4a52d1c98c5c.bundle.min.js
6227
0644
edit
dl
rm
woocommerce-my-account.7a9d36b2c12b970c6616.bundle.js
11634
0644
edit
dl
rm
woocommerce-notices.bcee9b5e1c8f65ac7927.bundle.min.js
1937
0644
edit
dl
rm
woocommerce-notices.ee407e8319d2ee060119.bundle.js
3113
0644
edit
dl
rm
woocommerce-purchase-summary.3676ccd8c29ef0924b84.bundle.min.js
3500
0644
edit
dl
rm
woocommerce-purchase-summary.c8767542fa302a7f351f.bundle.js
7506
0644
edit
dl
rm
Edit:
/home/vianto5/hidalgoresidences.mx/wp-content/plugins/elementor-pro/assets/js/elements-handlers.js
(116233B)
/*! elementor-pro - v3.32.0 - 29-09-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["elements-handlers"],{ /***/ "../assets/dev/js/frontend/elements-handlers.js": /*!******************************************************!*\ !*** ../assets/dev/js/frontend/elements-handlers.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _frontend = _interopRequireDefault(__webpack_require__(/*! modules/animated-headline/assets/js/frontend/frontend */ "../modules/animated-headline/assets/js/frontend/frontend.js")); var _frontend2 = _interopRequireDefault(__webpack_require__(/*! modules/carousel/assets/js/frontend/frontend */ "../modules/carousel/assets/js/frontend/frontend.js")); var _frontend3 = _interopRequireDefault(__webpack_require__(/*! modules/countdown/assets/js/frontend/frontend */ "../modules/countdown/assets/js/frontend/frontend.js")); var _frontend4 = _interopRequireDefault(__webpack_require__(/*! modules/dynamic-tags/assets/js/frontend/frontend */ "../modules/dynamic-tags/assets/js/frontend/frontend.js")); var _frontend5 = _interopRequireDefault(__webpack_require__(/*! modules/hotspot/assets/js/frontend/frontend */ "../modules/hotspot/assets/js/frontend/frontend.js")); var _frontend6 = _interopRequireDefault(__webpack_require__(/*! modules/forms/assets/js/frontend/frontend */ "../modules/forms/assets/js/frontend/frontend.js")); var _frontend7 = _interopRequireDefault(__webpack_require__(/*! modules/gallery/assets/js/frontend/frontend */ "../modules/gallery/assets/js/frontend/frontend.js")); var _frontend8 = _interopRequireDefault(__webpack_require__(/*! modules/lottie/assets/js/frontend/frontend */ "../modules/lottie/assets/js/frontend/frontend.js")); var _frontend9 = _interopRequireDefault(__webpack_require__(/*! modules/nav-menu/assets/js/frontend/frontend */ "../modules/nav-menu/assets/js/frontend/frontend.js")); var _frontend10 = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/frontend/frontend */ "../modules/popup/assets/js/frontend/frontend.js")); var _frontend11 = _interopRequireDefault(__webpack_require__(/*! modules/posts/assets/js/frontend/frontend */ "../modules/posts/assets/js/frontend/frontend.js")); var _frontend12 = _interopRequireDefault(__webpack_require__(/*! modules/share-buttons/assets/js/frontend/frontend */ "../modules/share-buttons/assets/js/frontend/frontend.js")); var _frontend13 = _interopRequireDefault(__webpack_require__(/*! modules/slides/assets/js/frontend/frontend */ "../modules/slides/assets/js/frontend/frontend.js")); var _frontend14 = _interopRequireDefault(__webpack_require__(/*! modules/social/assets/js/frontend/frontend */ "../modules/social/assets/js/frontend/frontend.js")); var _frontend15 = _interopRequireDefault(__webpack_require__(/*! modules/table-of-contents/assets/js/frontend/frontend */ "../modules/table-of-contents/assets/js/frontend/frontend.js")); var _frontend16 = _interopRequireDefault(__webpack_require__(/*! modules/theme-builder/assets/js/frontend/frontend */ "../modules/theme-builder/assets/js/frontend/frontend.js")); var _frontend17 = _interopRequireDefault(__webpack_require__(/*! modules/theme-elements/assets/js/frontend/frontend */ "../modules/theme-elements/assets/js/frontend/frontend.js")); var _frontend18 = _interopRequireDefault(__webpack_require__(/*! modules/woocommerce/assets/js/frontend/frontend */ "../modules/woocommerce/assets/js/frontend/frontend.js")); var _frontend19 = _interopRequireDefault(__webpack_require__(/*! modules/loop-builder/assets/js/frontend/frontend */ "../modules/loop-builder/assets/js/frontend/frontend.js")); var _frontend20 = _interopRequireDefault(__webpack_require__(/*! modules/mega-menu/assets/js/frontend/frontend */ "../modules/mega-menu/assets/js/frontend/frontend.js")); var _frontend21 = _interopRequireDefault(__webpack_require__(/*! modules/nested-carousel/assets/js/frontend/frontend */ "../modules/nested-carousel/assets/js/frontend/frontend.js")); var _frontend22 = _interopRequireDefault(__webpack_require__(/*! modules/loop-filter/assets/js/frontend/frontend */ "../modules/loop-filter/assets/js/frontend/frontend.js")); var _frontend23 = _interopRequireDefault(__webpack_require__(/*! modules/off-canvas/assets/js/frontend/frontend */ "../modules/off-canvas/assets/js/frontend/frontend.js")); var _frontend24 = _interopRequireDefault(__webpack_require__(/*! modules/floating-buttons/assets/js/frontend/frontend */ "../modules/floating-buttons/assets/js/frontend/frontend.js")); var _frontend25 = _interopRequireDefault(__webpack_require__(/*! modules/search/assets/js/frontend/frontend */ "../modules/search/assets/js/frontend/frontend.js")); const extendDefaultHandlers = defaultHandlers => { const handlers = { animatedText: _frontend.default, carousel: _frontend2.default, countdown: _frontend3.default, dynamicTags: _frontend4.default, hotspot: _frontend5.default, form: _frontend6.default, gallery: _frontend7.default, lottie: _frontend8.default, nav_menu: _frontend9.default, popup: _frontend10.default, posts: _frontend11.default, share_buttons: _frontend12.default, slides: _frontend13.default, social: _frontend14.default, themeBuilder: _frontend16.default, themeElements: _frontend17.default, woocommerce: _frontend18.default, tableOfContents: _frontend15.default, loopBuilder: _frontend19.default, megaMenu: _frontend20.default, nestedCarousel: _frontend21.default, taxonomyFilter: _frontend22.default, offCanvas: _frontend23.default, contactButtons: _frontend24.default, search: _frontend25.default }; return { ...defaultHandlers, ...handlers }; }; elementorProFrontend.on('elementor-pro/modules/init/before', () => { elementorFrontend.hooks.addFilter('elementor-pro/frontend/handlers', extendDefaultHandlers); }); /***/ }), /***/ "../assets/dev/js/frontend/utils/ajax-helper.js": /*!******************************************************!*\ !*** ../assets/dev/js/frontend/utils/ajax-helper.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class AjaxHelper { addLoadingAnimationOverlay(elementId) { const widget = document.querySelector(`.elementor-element-${elementId}`); if (!widget) { return; } widget.classList.add('e-loading-overlay'); } removeLoadingAnimationOverlay(elementId) { const widget = document.querySelector(`.elementor-element-${elementId}`); if (!widget) { return; } widget.classList.remove('e-loading-overlay'); } } exports["default"] = AjaxHelper; /***/ }), /***/ "../assets/dev/js/frontend/utils/focusable-element-selectors.js": /*!**********************************************************************!*\ !*** ../assets/dev/js/frontend/utils/focusable-element-selectors.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.focusableElementSelectors = focusableElementSelectors; function focusableElementSelectors() { return 'audio, button, canvas, details, iframe, input, select, summary, textarea, video, [accesskey], a[href], area[href], [tabindex]'; } /***/ }), /***/ "../assets/dev/js/frontend/utils/icons/e-icons.js": /*!********************************************************!*\ !*** ../assets/dev/js/frontend/utils/icons/e-icons.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.close = void 0; var _manager = _interopRequireDefault(__webpack_require__(/*! ./manager */ "../assets/dev/js/frontend/utils/icons/manager.js")); // This file is automatically generated, please don't change anything in this file. const iconsManager = new _manager.default('eicon'); const close = exports.close = { get element() { const svgData = { path: 'M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z', width: 1000, height: 1000 }; return iconsManager.createSvgElement('close', svgData); } }; /***/ }), /***/ "../assets/dev/js/frontend/utils/icons/manager.js": /*!********************************************************!*\ !*** ../assets/dev/js/frontend/utils/icons/manager.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class IconsManager { static symbolsContainer; static iconsUsageList = []; constructor(elementsPrefix) { this.prefix = `${elementsPrefix}-`; if (!IconsManager.symbolsContainer) { const symbolsContainerId = 'e-font-icon-svg-symbols'; IconsManager.symbolsContainer = document.getElementById(symbolsContainerId); if (!IconsManager.symbolsContainer) { IconsManager.symbolsContainer = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); IconsManager.symbolsContainer.setAttributeNS(null, 'style', 'display: none;'); IconsManager.symbolsContainer.setAttributeNS(null, 'class', symbolsContainerId); document.body.appendChild(IconsManager.symbolsContainer); } } } createSvgElement(name, _ref) { let { path, width, height } = _ref; const elementName = this.prefix + name, elementSelector = '#' + this.prefix + name; // Create symbol if not exist yet. if (!IconsManager.iconsUsageList.includes(elementName)) { if (!IconsManager.symbolsContainer.querySelector(elementSelector)) { const symbol = document.createElementNS('http://www.w3.org/2000/svg', 'symbol'); symbol.id = elementName; symbol.innerHTML = '<path d="' + path + '"></path>'; symbol.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height); IconsManager.symbolsContainer.appendChild(symbol); } IconsManager.iconsUsageList.push(elementName); } const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); svg.innerHTML = '<use xlink:href="' + elementSelector + '" />'; svg.setAttributeNS(null, 'class', 'e-font-icon-svg e-' + elementName); return svg; } } exports["default"] = IconsManager; /***/ }), /***/ "../assets/dev/js/frontend/utils/modal-keyboard-handler.js": /*!*****************************************************************!*\ !*** ../assets/dev/js/frontend/utils/modal-keyboard-handler.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _focusableElementSelectors = __webpack_require__(/*! ./focusable-element-selectors */ "../assets/dev/js/frontend/utils/focusable-element-selectors.js"); class ModalKeyboardHandler { lastFocusableElement = null; firstFocusableElement = null; modalTriggerElement = null; constructor(elementConfig) { this.config = elementConfig; this.changeFocusAfterAnimation = false; } onOpenModal() { this.initializeElements(); this.setTriggerElement(); this.changeFocusAfterAnimation = 'popup' === this.config.modalType && !!this.config.hasEntranceAnimation; if (!this.changeFocusAfterAnimation) { this.changeFocus(); } this.bindEvents(); } onCloseModal() { elementorFrontend.elements.$window.off('keydown', this.onKeyDownPressed.bind(this)); if (this.modalTriggerElement) { this.setFocusToElement(this.modalTriggerElement); } } bindEvents() { elementorFrontend.elements.$window.on('keydown', this.onKeyDownPressed.bind(this)); if (this.changeFocusAfterAnimation) { this.config.$modalElements.on('animationend animationcancel', this.changeFocus.bind(this)); } if ('popup' === this.config.modalType) { this.onPopupCloseEvent(); } } onPopupCloseEvent() { elementorFrontend.elements.$window.on('elementor/popup/hide', this.onCloseModal.bind(this)); } getFocusableElements() { const selectorFocusedElements = 'popup' === this.config.modalType ? ':focusable' : (0, _focusableElementSelectors.focusableElementSelectors)(); return this.config.$modalElements.find(selectorFocusedElements); } initializeElements() { const $focusableElements = this.getFocusableElements(); if (!$focusableElements.length) { return; } this.lastFocusableElement = $focusableElements[$focusableElements.length - 1]; this.firstFocusableElement = $focusableElements[0]; } setTriggerElement() { const activeElement = elementorFrontend.elements.window.document.activeElement; if (!!activeElement) { this.modalTriggerElement = elementorFrontend.elements.window.document.activeElement; } else { this.modalTriggerElement = null; } } changeFocus() { if (!!this.firstFocusableElement) { this.setFocusToElement(this.firstFocusableElement); } else { this.config.$elementWrapper.attr('tabindex', '0'); this.setFocusToElement(this.config.$elementWrapper[0]); } } onKeyDownPressed(keyDownEvent) { const TAB_KEY = 9; const isShiftPressed = keyDownEvent.shiftKey; const isTabPressed = 'Tab' === keyDownEvent.key || TAB_KEY === keyDownEvent.keyCode; const isContentWrapperFocused = '0' === this.config.$elementWrapper.attr('tabindex'); if (isTabPressed && isContentWrapperFocused) { keyDownEvent.preventDefault(); } else if (isTabPressed) { this.onTabKeyPressed(isTabPressed, isShiftPressed, keyDownEvent); } } onTabKeyPressed(isTabPressed, isShiftPressed, keyDownEvent) { if (elementorFrontend.isEditMode()) { this.initializeElements(); } const activeElement = elementorFrontend.elements.window.document.activeElement; if (isShiftPressed) { const isFocusOnFirstElement = activeElement === this.firstFocusableElement; if (isFocusOnFirstElement) { this.setFocusToElement(this.lastFocusableElement); keyDownEvent.preventDefault(); } } else { const isFocusOnLastElement = activeElement === this.lastFocusableElement; if (isFocusOnLastElement) { this.setFocusToElement(this.firstFocusableElement); keyDownEvent.preventDefault(); } } } setFocusToElement(element) { const focusDelayToEnsureThatAllAnimationsHaveFinished = 'popup' === this.config.modalType ? 250 : 100; setTimeout(() => { element?.focus(); }, focusDelayToEnsureThatAllAnimationsHaveFinished); } } exports["default"] = ModalKeyboardHandler; /***/ }), /***/ "../assets/dev/js/frontend/utils/run-element-handlers.js": /*!***************************************************************!*\ !*** ../assets/dev/js/frontend/utils/run-element-handlers.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = runElementHandlers; function runElementHandlers(elements) { [...elements].flatMap(el => [...el.querySelectorAll('.elementor-element')]).forEach(el => elementorFrontend.elementsHandler.runReadyTrigger(el)); } /***/ }), /***/ "../modules/animated-headline/assets/js/frontend/frontend.js": /*!*******************************************************************!*\ !*** ../modules/animated-headline/assets/js/frontend/frontend.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('animated-headline', () => __webpack_require__.e(/*! import() | animated-headline */ "animated-headline").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/animated-headlines */ "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/carousel/assets/js/frontend/frontend.js": /*!**********************************************************!*\ !*** ../modules/carousel/assets/js/frontend/frontend.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('media-carousel', () => __webpack_require__.e(/*! import() | media-carousel */ "media-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/media-carousel */ "../modules/carousel/assets/js/frontend/handlers/media-carousel.js"))); elementorFrontend.elementsHandler.attachHandler('testimonial-carousel', () => __webpack_require__.e(/*! import() | carousel */ "carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js"))); elementorFrontend.elementsHandler.attachHandler('reviews', () => __webpack_require__.e(/*! import() | carousel */ "carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/countdown/assets/js/frontend/frontend.js": /*!***********************************************************!*\ !*** ../modules/countdown/assets/js/frontend/frontend.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('countdown', () => __webpack_require__.e(/*! import() | countdown */ "countdown").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/countdown */ "../modules/countdown/assets/js/frontend/handlers/countdown.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/dynamic-tags/assets/js/frontend/frontend.js": /*!**************************************************************!*\ !*** ../modules/dynamic-tags/assets/js/frontend/frontend.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.on('components:init', () => this.onFrontendComponentsInit()); } onFrontendComponentsInit() { elementorFrontend.utils.urlActions.addAction('reload-page', () => document.location.reload()); } } exports["default"] = _default; /***/ }), /***/ "../modules/floating-buttons/assets/js/frontend/frontend.js": /*!******************************************************************!*\ !*** ../modules/floating-buttons/assets/js/frontend/frontend.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); if (elementorFrontend.config.experimentalFeatures.container) { ['contact-buttons-var-1', 'contact-buttons-var-3', 'contact-buttons-var-4', 'contact-buttons-var-5', 'contact-buttons-var-6', 'contact-buttons-var-7', 'contact-buttons-var-8', 'contact-buttons-var-9'].forEach(handler => { elementorFrontend.elementsHandler.attachHandler(handler, () => __webpack_require__.e(/*! import() | contact-buttons */ "contact-buttons").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/contact-buttons */ "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons.js"))); }); elementorFrontend.elementsHandler.attachHandler('contact-buttons-var-10', () => __webpack_require__.e(/*! import() | contact-buttons-var-10 */ "contact-buttons-var-10").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/contact-buttons-v10 */ "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons-v10.js"))); elementorFrontend.elementsHandler.attachHandler('floating-bars-var-2', () => Promise.all(/*! import() | floating-bars-var-2 */[__webpack_require__.e("modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90"), __webpack_require__.e("floating-bars-var-2")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/floating-bars-v2 */ "../modules/floating-buttons/assets/js/frontend/handlers/floating-bars-v2.js"))); elementorFrontend.elementsHandler.attachHandler('floating-bars-var-3', () => Promise.all(/*! import() | floating-bars-var-3 */[__webpack_require__.e("modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90"), __webpack_require__.e("floating-bars-var-3")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/floating-bars-v3 */ "../modules/floating-buttons/assets/js/frontend/handlers/floating-bars-v3.js"))); } } } exports["default"] = _default; /***/ }), /***/ "../modules/forms/assets/js/frontend/frontend.js": /*!*******************************************************!*\ !*** ../modules/forms/assets/js/frontend/frontend.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('form', [() => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/fields/date */ "../modules/forms/assets/js/frontend/handlers/fields/date.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/recaptcha */ "../modules/forms/assets/js/frontend/handlers/recaptcha.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/fields/time */ "../modules/forms/assets/js/frontend/handlers/fields/time.js"))]); elementorFrontend.elementsHandler.attachHandler('subscribe', [() => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js"))]); } } exports["default"] = _default; /***/ }), /***/ "../modules/gallery/assets/js/frontend/frontend.js": /*!*********************************************************!*\ !*** ../modules/gallery/assets/js/frontend/frontend.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('gallery', () => __webpack_require__.e(/*! import() | gallery */ "gallery").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/gallery/assets/js/frontend/handler.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/hotspot/assets/js/frontend/frontend.js": /*!*********************************************************!*\ !*** ../modules/hotspot/assets/js/frontend/frontend.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('hotspot', () => __webpack_require__.e(/*! import() | hotspot */ "hotspot").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/hotspot */ "../modules/hotspot/assets/js/frontend/handlers/hotspot.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/loop-builder/assets/js/frontend/frontend.js": /*!**************************************************************!*\ !*** ../modules/loop-builder/assets/js/frontend/frontend.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); ['post', 'product', 'post_taxonomy', 'product_taxonomy'].forEach(skinName => { elementorFrontend.elementsHandler.attachHandler('loop-grid', () => __webpack_require__.e(/*! import() | load-more */ "load-more").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/load-more */ "../modules/loop-builder/assets/js/frontend/handlers/load-more.js")), skinName); elementorFrontend.elementsHandler.attachHandler('loop-grid', () => __webpack_require__.e(/*! import() | loop */ "loop").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/loop */ "../modules/loop-builder/assets/js/frontend/handlers/loop.js")), skinName); elementorFrontend.elementsHandler.attachHandler('loop-carousel', () => __webpack_require__.e(/*! import() | loop */ "loop").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/loop */ "../modules/loop-builder/assets/js/frontend/handlers/loop.js")), skinName); elementorFrontend.elementsHandler.attachHandler('loop-carousel', () => __webpack_require__.e(/*! import() | loop-carousel */ "loop-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/loop-carousel */ "../modules/loop-builder/assets/js/frontend/handlers/loop-carousel.js")), skinName); elementorFrontend.elementsHandler.attachHandler('loop-grid', () => __webpack_require__.e(/*! import() | ajax-pagination */ "ajax-pagination").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/ajax-pagination */ "../modules/loop-builder/assets/js/frontend/handlers/ajax-pagination.js")), skinName); }); } } exports["default"] = _default; /***/ }), /***/ "../modules/loop-filter/assets/js/frontend/frontend-module-base.js": /*!*************************************************************************!*\ !*** ../modules/loop-filter/assets/js/frontend/frontend-module-base.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 _runElementHandlers = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/run-element-handlers */ "../assets/dev/js/frontend/utils/run-element-handlers.js")); var _ajaxHelper = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/ajax-helper */ "../assets/dev/js/frontend/utils/ajax-helper.js")); var _loopWidgetsStore = _interopRequireDefault(__webpack_require__(/*! ./loop-widgets-store */ "../modules/loop-filter/assets/js/frontend/loop-widgets-store.js")); var _queryConstants = __webpack_require__(/*! ../query-constants */ "../modules/loop-filter/assets/js/query-constants.js"); class BaseFilterFrontendModule extends elementorModules.Module { constructor() { super(); this.loopWidgetsStore = new _loopWidgetsStore.default(); } /** * Removes selected filter term from the filter array * * @param {string} widgetId * @param {string} filterId * @param {string} filterTerm * @param {string} defaultFilter */ removeFilterFromLoopWidget(widgetId, filterId) { let filterTerm = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; let defaultFilter = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; if (!this.loopWidgetsStore.getWidget(widgetId)) { this.loopWidgetsStore.addWidget(widgetId); this.refreshLoopWidget(widgetId, filterId); return; } if (filterTerm === defaultFilter) { this.loopWidgetsStore.unsetFilter(widgetId, filterId); } if (filterTerm !== defaultFilter) { const filters = this.loopWidgetsStore.getFilterTerms(widgetId, filterId), newTerms = filters.filter(function (e) { return e !== filterTerm; }); this.loopWidgetsStore.setFilterTerms(widgetId, filterId, newTerms); } this.refreshLoopWidget(widgetId, filterId); } /** * Sets the filter data for a loop widget. * * This function should trigger the following sequence: * 1. Update the filter data for the passed ID in the loopElements object by adding new filters to the loopWidgetsStore filters array. * 2. Trigger a rerender of the loop widget if refresh is true. * 3 Trigger a consolidation of all filters belonging to the passed loop widget ID if refresh is false. * - This should create an object with filter type keys, and for each type, an object of filter IDs, which contain the filter values. * - This should also remove duplicates. * * @param {string} widgetId * @param {string} filterId * @param {Object} filter new data for this filterId in loopWidgetsStore * @param {boolean} refresh * @param {string} multipleFiltersLogicalJoin AND / OR / 'DISABLED' for single filter (default) */ setFilterDataForLoopWidget(widgetId, filterId, filter) { let refresh = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; let multipleFiltersLogicalJoin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'DISABLED'; this.loopWidgetsStore.maybeInitializeWidget(widgetId); this.loopWidgetsStore.maybeInitializeFilter(widgetId, filterId); const logicalJoin = this.validateMultipleFilterOperator(multipleFiltersLogicalJoin); if ('DISABLED' !== logicalJoin) { const existingTerms = this.loopWidgetsStore.getFilterTerms(widgetId, filterId) ?? [], newTerms = filter.filterData.terms; filter.filterData.terms = [...new Set([...existingTerms, ...newTerms])]; filter.filterData.logicalJoin = logicalJoin; } this.loopWidgetsStore.setFilter(widgetId, filterId, filter); if (refresh) { this.refreshLoopWidget(widgetId, filterId); return; } this.loopWidgetsStore.consolidateFilters(widgetId); } /** * Validates the operator values for wp_query. * @param {string} operator * @return {*|string} 'AND' | 'OR' | 'DISABLED' */ validateMultipleFilterOperator(operator) { if (!operator || !['AND', 'OR'].includes(operator)) { return 'DISABLED'; } return operator; } /** * * @return {{}} Query string in object form. */ getQueryStringInObjectForm() { const queryString = {}; for (const widgetId in this.loopWidgetsStore.get()) { const loopWidget = this.loopWidgetsStore.getWidget(widgetId); for (const filterType in loopWidget.consolidatedFilters) { const filterData = loopWidget.consolidatedFilters[filterType]; for (const filterName in filterData) { const separator = _queryConstants.queryConstants[filterData[filterName].logicalJoin ?? 'AND'].separator.decoded; // Add an `e-` prefix to the key to avoid clashes with other query strings. // Filter values are arrays, to support multiple select. queryString[`e-filter-${widgetId}-${filterName}`] = Object.values(filterData[filterName].terms).join(separator); } } } return queryString; } /** * Updates the URL query string with the current filter values. * * @param {string} widgetId * @param {string} filterId */ updateURLQueryString(widgetId, filterId) { const currentUrl = new URL(window.location.href), existingQueryString = currentUrl.searchParams, queryStringObject = this.getQueryStringInObjectForm(), updatedParams = new URLSearchParams(); existingQueryString.forEach((value, key) => { if (!key.startsWith('e-filter')) { updatedParams.append(key, value); } if (key.startsWith('e-page-' + widgetId)) { updatedParams.delete(key); } }); for (const key in queryStringObject) { updatedParams.set(key, queryStringObject[key]); } let queryString = updatedParams.toString(); queryString = queryString.replace(new RegExp(`${_queryConstants.queryConstants.AND.separator.encoded}`, 'g'), _queryConstants.queryConstants.AND.separator.decoded); queryString = queryString.replace(new RegExp(`${_queryConstants.queryConstants.OR.separator.encoded}`, 'g'), _queryConstants.queryConstants.OR.separator.decoded); const helpers = this.getFilterHelperAttributes(filterId); if (helpers.pageNum > 1) { queryString = queryString ? this.formatQueryString(helpers.baseUrl, queryString) : helpers.baseUrl; } else { queryString = queryString ? `?${queryString}` : location.pathname; } history.pushState(null, null, queryString); } /** * Formats the query string to remove any duplicate parameters. * * @param {string} baseURL * @param {string} queryString * @return {*} deduplicated query string */ formatQueryString(baseURL, queryString) { const baseURLParams = baseURL.includes('?') ? new URLSearchParams(baseURL.split('?')[1]) : new URLSearchParams(), inputParams = new URLSearchParams(queryString); for (const param of baseURLParams.keys()) { if (inputParams.has(param)) { inputParams.delete(param); } } const excludedVariables = ['page', 'paged']; for (const excludedVar of excludedVariables) { baseURLParams.delete(excludedVar); inputParams.delete(excludedVar); } const mergedParams = new URLSearchParams(baseURLParams.toString()); for (const [param, value] of inputParams.entries()) { mergedParams.append(param, value); } const baseURLString = baseURL.split('?')[0], mergedParamsString = mergedParams.toString() ? `?${mergedParams.toString()}` : ''; return baseURLString + mergedParamsString; } /** * * @param {string} filterId * @return {{baseUrl: string, pageNum: number}|*|DOMStringMap} Base URL and page number for the loop widget. */ getFilterHelperAttributes(filterId) { const filterWidget = document.querySelector('[data-id="' + filterId + '"]'); if (!filterWidget) { return { baseUrl: location.href, pageNum: 1 }; } const filterBar = filterWidget.querySelector('.e-filter'); return filterBar.dataset; } /** * Prepares the data to be sent to the server for the loop widget update. * * @param {string} widgetId * @param {string} filterId * @return {{post_id: (*|number), widget_id, pagination_base_url: string, widget_filters: *}} data for loop update */ prepareLoopUpdateRequestData(widgetId, filterId) { const widgetFilters = this.loopWidgetsStore.getConsolidatedFilters(widgetId), helpers = this.getFilterHelperAttributes(filterId); const data = { post_id: this.getClosestDataElementorId(document.querySelector(`.elementor-element-${widgetId}`)) || elementorFrontend.config.post.id, widget_filters: widgetFilters, widget_id: widgetId, pagination_base_url: helpers.baseUrl }; if (elementorFrontend.isEditMode()) { // In the editor, we have to support loop widgets that have been created but not saved to the database yet. const widgetContainer = window.top.$e.components.get('document').utils.findContainerById(widgetId); data.widget_model = widgetContainer.model.toJSON({ remove: ['default', 'editSettings', 'defaultEditSettings'] }); data.is_edit_mode = true; } return data; } /** * Returns the closest data-elementor-id attribute value. * * @param {Object} element * @return {string} elementor id of parent */ getClosestDataElementorId(element) { const closestParent = element?.closest('[data-elementor-id]'); return closestParent ? closestParent.getAttribute('data-elementor-id') : null; } /** * * @param {string} widgetId * @param {string} filterId * @return {{headers: {"Content-Type": string}, method: string, body: string}} Fetch arguments for loop Widget update */ getFetchArgumentsForLoopUpdate(widgetId, filterId) { const data = this.prepareLoopUpdateRequestData(widgetId, filterId); const args = { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }; if (elementorFrontend.isEditMode() && !!elementorPro.config.loopFilter?.nonce) { args.headers['X-WP-Nonce'] = elementorPro.config.loopFilter?.nonce; } return args; } /** * Fetches the updated loop widget markup from the server. * * @param {string} widgetId * @param {string} filterId * @return {Promise<Response>} Promise for the fetch request. */ fetchUpdatedLoopWidgetMarkup(widgetId, filterId) { return fetch(`${elementorProFrontend.config.urls.rest}elementor-pro/v1/refresh-loop`, this.getFetchArgumentsForLoopUpdate(widgetId, filterId)); } createElementFromHTMLString(widgetContainerHTMLString) { const div = document.createElement('div'); if (!widgetContainerHTMLString) { div.classList.add('elementor-widget-container'); return div; } div.innerHTML = widgetContainerHTMLString.trim(); return div.firstElementChild; } refreshLoopWidget(widgetId, filterId) { this.loopWidgetsStore.consolidateFilters(widgetId); this.updateURLQueryString(widgetId, filterId); const widget = document.querySelector(`.elementor-element-${widgetId}`); if (!widget) { return; } if (!this.ajaxHelper) { this.ajaxHelper = new _ajaxHelper.default(); } this.ajaxHelper.addLoadingAnimationOverlay(widgetId); const fetchUpdatedLoopWidgetMarkup = this.fetchUpdatedLoopWidgetMarkup(widgetId, filterId).then(response => { if (!(response instanceof Response) || !response?.ok || 400 <= response?.status) { return {}; } return response.json(); }).catch(() => { return {}; }).then(response => { if (!response?.data && '' !== response?.data) { return; } const existingWidgetContainer = widget.querySelector('.elementor-widget-container'), newWidgetContainer = this.createElementFromHTMLString(response.data); widget.replaceChild(newWidgetContainer, existingWidgetContainer); this.handleElementHandlers(widget); if (ElementorProFrontendConfig.settings.lazy_load_background_images) { document.dispatchEvent(new Event('elementor/lazyload/observe')); } elementorFrontend.elementsHandler.runReadyTrigger(document.querySelector(`.elementor-element-${widgetId}`)); widget.classList.remove('e-loading'); }).finally(() => { this.ajaxHelper.removeLoadingAnimationOverlay(widgetId); }); return fetchUpdatedLoopWidgetMarkup; // TODO: Deal with pagination. Do we need to manually add the query string to the pagination links? } handleElementHandlers(newWidgetMarkup) { const loopItems = newWidgetMarkup.querySelectorAll('.e-loop-item'); (0, _runElementHandlers.default)(loopItems); } } exports["default"] = BaseFilterFrontendModule; /***/ }), /***/ "../modules/loop-filter/assets/js/frontend/frontend.js": /*!*************************************************************!*\ !*** ../modules/loop-filter/assets/js/frontend/frontend.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 _frontendModuleBase = _interopRequireDefault(__webpack_require__(/*! ./frontend-module-base */ "../modules/loop-filter/assets/js/frontend/frontend-module-base.js")); class LoopFilter extends _frontendModuleBase.default { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('taxonomy-filter', () => __webpack_require__.e(/*! import() | taxonomy-filter */ "taxonomy-filter").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/taxonomy-filter */ "../modules/loop-filter/assets/js/frontend/handlers/taxonomy-filter.js"))); } } exports["default"] = LoopFilter; /***/ }), /***/ "../modules/loop-filter/assets/js/frontend/loop-widgets-store.js": /*!***********************************************************************!*\ !*** ../modules/loop-filter/assets/js/frontend/loop-widgets-store.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class LoopWidgetsStore { constructor() { this.widgets = {}; } get() { return this.widgets; } getWidget(widgetId) { return this.widgets[widgetId]; } setWidget(widgetId, widget) { this.widgets[widgetId] = widget; } unsetWidget(widgetId) { delete this.widgets[widgetId]; } getFilters(widgetId) { return this.getWidget(widgetId).filters; } getFilter(widgetId, filterId) { return this.getWidget(widgetId).filters[filterId]; } setFilter(widgetId, filterId, filterData) { this.getWidget(widgetId).filters[filterId] = filterData; } unsetFilter(widgetId, filterId) { delete this.getWidget(widgetId).filters[filterId]; } getFilterTerms(widgetId, filterId) { return this.getFilter(widgetId, filterId).filterData.terms ?? []; } setFilterTerms(widgetId, filterId, termData) { this.getFilter(widgetId, filterId).filterData.terms = termData; } getConsolidatedFilters(widgetId) { return this.getWidget(widgetId).consolidatedFilters; } setConsolidatedFilters(widgetId, consolidatedFilters) { this.getWidget(widgetId).consolidatedFilters = consolidatedFilters; } /** * * @param {string} widgetId */ addWidget(widgetId) { const newWidget = { filters: {}, consolidatedFilters: {} }; this.setWidget(widgetId, newWidget); } maybeInitializeWidget(widgetId) { if (!!this.getWidget(widgetId)) { return; } this.addWidget(widgetId); } maybeInitializeFilter(widgetId, filterId) { if (!!this.getFilter(widgetId, filterId)) { return; } const newFilter = { filterData: { terms: [] } }; this.setFilter(widgetId, filterId, newFilter); } /** * Consolidates all filters for a loop widget. * * filters: { * filter1: { filterType: 'type1', filterData: { selectedTaxonomy: 'taxonomy1', terms: [ 'term1', 'term2' ] } }, * filter2: { filterType: 'type1', filterData: { selectedTaxonomy: 'taxonomy1', terms: [ 'term2' ] } }, * }, * consolidatedFilters: {}, * * @param {string} widgetId */ consolidateFilters(widgetId) { const loopWidgetFilters = this.getFilters(widgetId), consolidatedFilters = {}; for (const filterId in loopWidgetFilters) { const filter = loopWidgetFilters[filterId], filterType = filter.filterType, filterData = filter.filterData; if (0 === filterData.terms.length) { continue; } // This part is non-generic. To expand this functionality to other filter types, we'll need to refactor and // generalize this part. if (!consolidatedFilters[filterType]) { consolidatedFilters[filterType] = {}; } if (!consolidatedFilters[filterType][filterData.selectedTaxonomy]) { consolidatedFilters[filterType][filterData.selectedTaxonomy] = []; } if (filterData.terms && (!consolidatedFilters[filterType][filterData.selectedTaxonomy].terms || !consolidatedFilters[filterType][filterData.selectedTaxonomy].terms.includes(filterData.terms))) { consolidatedFilters[filterType][filterData.selectedTaxonomy] = { terms: filterData.terms === typeof 'string' ? [filterData.terms] : filterData.terms }; } if (filterData.logicalJoin && !consolidatedFilters[filterType][filterData.selectedTaxonomy].logicalJoin) { consolidatedFilters[filterType][filterData.selectedTaxonomy] = { ...(consolidatedFilters[filterType][filterData.selectedTaxonomy] || {}), // Check for undefined logicalJoin: filterData.logicalJoin ?? 'AND' }; } } this.setConsolidatedFilters(widgetId, consolidatedFilters); } } exports["default"] = LoopWidgetsStore; /***/ }), /***/ "../modules/loop-filter/assets/js/query-constants.js": /*!***********************************************************!*\ !*** ../modules/loop-filter/assets/js/query-constants.js ***! \***********************************************************/ /***/ ((module) => { const queryConstants = { AND: { separator: { decoded: '+', fromBrowser: ' ', encoded: '%2B' }, operator: 'AND' }, OR: { separator: { decoded: '~', fromBrowser: '~', encoded: '%7C' }, operator: 'IN' }, NOT: { separator: { decoded: '!', fromBrowser: '!', encoded: '%21' }, operator: 'NOT IN' }, DISABLED: { separator: { decoded: '', fromBrowser: '', encoded: '' }, operator: 'AND' } }; module.exports = { queryConstants }; /***/ }), /***/ "../modules/lottie/assets/js/frontend/frontend.js": /*!********************************************************!*\ !*** ../modules/lottie/assets/js/frontend/frontend.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('lottie', () => __webpack_require__.e(/*! import() | lottie */ "lottie").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/lottie/assets/js/frontend/handler.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/mega-menu/assets/js/frontend/frontend.js": /*!***********************************************************!*\ !*** ../modules/mega-menu/assets/js/frontend/frontend.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('mega-menu', [() => __webpack_require__.e(/*! import() | mega-menu */ "mega-menu").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/mega-menu */ "../modules/mega-menu/assets/js/frontend/handlers/mega-menu.js")), () => __webpack_require__.e(/*! import() | mega-menu-stretch-content */ "mega-menu-stretch-content").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/stretch-menu-item-content */ "../modules/mega-menu/assets/js/frontend/handlers/stretch-menu-item-content.js")), () => __webpack_require__.e(/*! import() | menu-title-keyboard-handler */ "menu-title-keyboard-handler").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/menu-title-keyboard-handler */ "../modules/mega-menu/assets/js/frontend/handlers/menu-title-keyboard-handler.js"))]); } } exports["default"] = _default; /***/ }), /***/ "../modules/nav-menu/assets/js/frontend/frontend.js": /*!**********************************************************!*\ !*** ../modules/nav-menu/assets/js/frontend/frontend.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); if (jQuery.fn.smartmenus) { // Override the default stupid detection jQuery.SmartMenus.prototype.isCSSOn = function () { return true; }; if (elementorFrontend.config.is_rtl) { jQuery.fn.smartmenus.defaults.rightToLeftSubMenus = true; } } elementorFrontend.elementsHandler.attachHandler('nav-menu', () => __webpack_require__.e(/*! import() | nav-menu */ "nav-menu").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/nav-menu */ "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/nested-carousel/assets/js/frontend/frontend.js": /*!*****************************************************************!*\ !*** ../modules/nested-carousel/assets/js/frontend/frontend.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('nested-carousel', () => __webpack_require__.e(/*! import() | nested-carousel */ "nested-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/nested-carousel */ "../modules/nested-carousel/assets/js/frontend/handlers/nested-carousel.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/off-canvas/assets/js/frontend/frontend.js": /*!************************************************************!*\ !*** ../modules/off-canvas/assets/js/frontend/frontend.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('off-canvas', () => __webpack_require__.e(/*! import() | off-canvas */ "off-canvas").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/off-canvas */ "../modules/off-canvas/assets/js/frontend/handlers/off-canvas.js"))); elementorFrontend.on('components:init', () => this.onFrontendComponentsInit()); } onFrontendComponentsInit() { this.addUrlActions(); } addUrlActions() { elementorFrontend.utils.urlActions.addAction('off_canvas:open', settings => { this.toggleOffCanvasDisplay(settings); }); elementorFrontend.utils.urlActions.addAction('off_canvas:close', settings => { this.toggleOffCanvasDisplay(settings); }); elementorFrontend.utils.urlActions.addAction('off_canvas:toggle', settings => { this.toggleOffCanvasDisplay(settings); }); } toggleOffCanvasDisplay(settings) { window.dispatchEvent(new CustomEvent('elementor-pro/off-canvas/toggle-display-mode', { detail: settings })); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/document.js": /*!*******************************************************!*\ !*** ../modules/popup/assets/js/frontend/document.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 _triggers = _interopRequireDefault(__webpack_require__(/*! ./triggers */ "../modules/popup/assets/js/frontend/triggers.js")); var _timing = _interopRequireDefault(__webpack_require__(/*! ./timing */ "../modules/popup/assets/js/frontend/timing.js")); var _eIcons = __webpack_require__(/*! @elementor-pro/e-icons */ "../assets/dev/js/frontend/utils/icons/e-icons.js"); var _modalKeyboardHandler = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/modal-keyboard-handler */ "../assets/dev/js/frontend/utils/modal-keyboard-handler.js")); // Temporary solution, when core 3.5.0 will be the minimum version, is should be replaced with @elementor/e-icons. class _default extends elementorModules.frontend.Document { keyboardHandler = null; bindEvents() { const openSelector = this.getDocumentSettings('open_selector'); if (openSelector) { elementorFrontend.elements.$body.on('click', openSelector, this.showModal.bind(this)); } } startTiming() { const timing = new _timing.default(this.getDocumentSettings('timing'), this); if (timing.check()) { this.initTriggers(); } } initTriggers() { this.triggers = new _triggers.default(this.getDocumentSettings('triggers'), this); } showModal(event) { let avoidMultiple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; // eslint-disable-next-line @wordpress/no-unused-vars-before-return const settings = this.getDocumentSettings(); if (!this.isEdit) { if (!elementorFrontend.isWPPreviewMode()) { if (this.getStorage('disable')) { return; } if (avoidMultiple && elementorProFrontend.modules.popup.popupPopped && settings.avoid_multiple_popups) { return; } } // A clean copy of the element without previous initializations and events this.$element = jQuery(this.elementHTML); this.elements.$elements = this.$element.find(this.getSettings('selectors.elements')); } const modal = this.getModal(), $closeButton = modal.getElements('closeButton'); modal.setMessage(this.$element).show(); if (!this.isEdit) { if (settings.close_button_delay) { $closeButton.hide(); clearTimeout(this.closeButtonTimeout); this.closeButtonTimeout = setTimeout(() => $closeButton.show(), settings.close_button_delay * 1000); } super.runElementsHandlers(); } this.setEntranceAnimation(); if (!settings.timing || !settings.timing.times_count) { this.countTimes(); } elementorProFrontend.modules.popup.popupPopped = true; if (!this.isEdit && settings.a11y_navigation) { this.handleKeyboardA11y(); } } setEntranceAnimation() { const $widgetContent = this.getModal().getElements('widgetContent'), settings = this.getDocumentSettings(), newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'entrance_animation'); if (this.currentAnimation) { $widgetContent.removeClass(this.currentAnimation); } this.currentAnimation = newAnimation; if (!newAnimation) { return; } const animationDuration = settings.entrance_animation_duration.size; $widgetContent.addClass(newAnimation); setTimeout(() => $widgetContent.removeClass(newAnimation), animationDuration * 1000); } handleKeyboardA11y() { if (!this.keyboardHandler) { this.keyboardHandler = new _modalKeyboardHandler.default(this.getKeyboardHandlingConfig()); } this.keyboardHandler.onOpenModal(); } setExitAnimation() { const modal = this.getModal(), settings = this.getDocumentSettings(), $widgetContent = modal.getElements('widgetContent'), newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'exit_animation'), animationDuration = newAnimation ? settings.entrance_animation_duration.size : 0; setTimeout(() => { if (newAnimation) { $widgetContent.removeClass(newAnimation + ' reverse'); } if (!this.isEdit) { this.$element.remove(); modal.getElements('widget').hide(); } }, animationDuration * 1000); if (newAnimation) { $widgetContent.addClass(newAnimation + ' reverse'); } } initModal() { let modal; this.getModal = () => { if (!modal) { const settings = this.getDocumentSettings(), id = this.getSettings('id'), triggerPopupEvent = eventType => { const event = 'elementor/popup/' + eventType; elementorFrontend.elements.$document.trigger(event, [id, this]); // TODO: Use `elementorFrontend.utils.events.dispatch` when it's in master. window.dispatchEvent(new CustomEvent(event, { detail: { id, instance: this } })); }; let classes = 'elementor-popup-modal'; if (settings.classes) { classes += ' ' + settings.classes; } const modalProperties = { id: 'elementor-popup-modal-' + id, className: classes, closeButton: true, preventScroll: settings.prevent_scroll, onShow: () => triggerPopupEvent('show'), onHide: () => triggerPopupEvent('hide'), effects: { hide: () => { if (settings.timing && settings.timing.times_count) { this.countTimes(); } this.setExitAnimation(); }, show: 'show' }, hide: { auto: !!settings.close_automatically, autoDelay: settings.close_automatically * 1000, onBackgroundClick: !settings.prevent_close_on_background_click, onOutsideClick: !settings.prevent_close_on_background_click, onEscKeyPress: !settings.prevent_close_on_esc_key, ignore: '.flatpickr-calendar' }, position: { enable: false } }; if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg) { modalProperties.closeButtonOptions = { iconElement: _eIcons.close.element }; } // This line should be moved to the condition above, as an 'else' case, once the core minimum version is 3.5.0. modalProperties.closeButtonClass = 'eicon-close'; modal = elementorFrontend.getDialogsManager().createWidget('lightbox', modalProperties); modal.getElements('widgetContent').addClass('animated'); const $closeButton = modal.getElements('closeButton'); if (this.isEdit) { $closeButton.off('click'); modal.hide = () => {}; } this.setCloseButtonPosition(); } return modal; }; } setCloseButtonPosition() { const modal = this.getModal(), closeButtonPosition = this.getDocumentSettings('close_button_position'), $closeButton = modal.getElements('closeButton'); $closeButton.prependTo(modal.getElements('outside' === closeButtonPosition ? 'widget' : 'widgetContent')); } disable() { this.setStorage('disable', true); } setStorage(key, value, options) { elementorFrontend.storage.set(`popup_${this.getSettings('id')}_${key}`, value, options); } getStorage(key, options) { return elementorFrontend.storage.get(`popup_${this.getSettings('id')}_${key}`, options); } countTimes() { const displayTimes = this.getStorage('times') || 0; this.setStorage('times', displayTimes + 1); } runElementsHandlers() {} async onInit() { super.onInit(); // In case that the library was not loaded, it indicates a Core version that enables dynamic loading. if (!window.DialogsManager) { await elementorFrontend.utils.assetsLoader.load('script', 'dialog'); } this.initModal(); if (this.isEdit) { this.showModal(); return; } this.$element.show().remove(); this.elementHTML = this.$element[0].outerHTML; if (elementorFrontend.isEditMode()) { return; } if (elementorFrontend.isWPPreviewMode() && elementorFrontend.config.post.id === this.getSettings('id')) { this.showModal(); return; } this.startTiming(); } onSettingsChange(model) { const changedKey = Object.keys(model.changed)[0]; if (-1 !== changedKey.indexOf('entrance_animation')) { this.setEntranceAnimation(); } if ('exit_animation' === changedKey) { this.setExitAnimation(); } if ('close_button_position' === changedKey) { this.setCloseButtonPosition(); } } getEntranceAnimationDuration() { const settings = this.getDocumentSettings(); const entranceAnimation = settings?.entrance_animation; if (!entranceAnimation || '' === entranceAnimation || 'none' === entranceAnimation) { return 0; } const entranceAnimationDuration = settings?.entrance_animation_duration?.size; return !!entranceAnimationDuration ? Number(entranceAnimationDuration) : 0; } getKeyboardHandlingConfig() { return { $modalElements: this.getModal().getElements('widgetContent'), $elementWrapper: this.$element, hasEntranceAnimation: 0 !== this.getEntranceAnimationDuration(), modalType: 'popup', modalId: this.$element.data('elementor-id') }; } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/frontend.js": /*!*******************************************************!*\ !*** ../modules/popup/assets/js/frontend/frontend.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 _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../modules/popup/assets/js/frontend/document.js")); class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.hooks.addAction('elementor/frontend/documents-manager/init-classes', this.addDocumentClass); elementorFrontend.elementsHandler.attachHandler('form', () => __webpack_require__.e(/*! import() | popup */ "popup").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/forms-action */ "../modules/popup/assets/js/frontend/handlers/forms-action.js"))); elementorFrontend.on('components:init', () => this.onFrontendComponentsInit()); if (this.shouldSetViewsAndSessions()) { this.setViewsAndSessions(); } } shouldSetViewsAndSessions() { return !elementorFrontend.isEditMode() && !elementorFrontend.isWPPreviewMode() && ElementorProFrontendConfig.popup.hasPopUps; } addDocumentClass(documentsManager) { documentsManager.addDocumentClass('popup', _document.default); } setViewsAndSessions() { const pageViews = elementorFrontend.storage.get('pageViews') || 0; elementorFrontend.storage.set('pageViews', pageViews + 1); const activeSession = elementorFrontend.storage.get('activeSession', { session: true }); if (!activeSession) { elementorFrontend.storage.set('activeSession', true, { session: true }); const sessions = elementorFrontend.storage.get('sessions') || 0; elementorFrontend.storage.set('sessions', sessions + 1); } } showPopup(settings, event) { const popup = elementorFrontend.documentsManager.documents[settings.id]; if (!popup) { return; } const modal = popup.getModal(); if (settings.toggle && modal.isVisible()) { modal.hide(); } else { popup.showModal(event); } } closePopup(settings, event) { const popupID = jQuery(event.target).parents('[data-elementor-type="popup"]').data('elementorId'); if (!popupID) { return; } const document = elementorFrontend.documentsManager.documents[popupID]; document.getModal().hide(); if (settings.do_not_show_again) { document.disable(); } } onFrontendComponentsInit() { elementorFrontend.utils.urlActions.addAction('popup:open', (settings, event) => this.showPopup(settings, event)); elementorFrontend.utils.urlActions.addAction('popup:close', (settings, event) => this.closePopup(settings, event)); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing.js": /*!*****************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing.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 _pageViews = _interopRequireDefault(__webpack_require__(/*! ./timing/page-views */ "../modules/popup/assets/js/frontend/timing/page-views.js")); var _sessions = _interopRequireDefault(__webpack_require__(/*! ./timing/sessions */ "../modules/popup/assets/js/frontend/timing/sessions.js")); var _url = _interopRequireDefault(__webpack_require__(/*! ./timing/url */ "../modules/popup/assets/js/frontend/timing/url.js")); var _sources = _interopRequireDefault(__webpack_require__(/*! ./timing/sources */ "../modules/popup/assets/js/frontend/timing/sources.js")); var _loggedIn = _interopRequireDefault(__webpack_require__(/*! ./timing/logged-in */ "../modules/popup/assets/js/frontend/timing/logged-in.js")); var _devices = _interopRequireDefault(__webpack_require__(/*! ./timing/devices */ "../modules/popup/assets/js/frontend/timing/devices.js")); var _times = _interopRequireDefault(__webpack_require__(/*! ./timing/times */ "../modules/popup/assets/js/frontend/timing/times.js")); var _browsers = _interopRequireDefault(__webpack_require__(/*! ./timing/browsers */ "../modules/popup/assets/js/frontend/timing/browsers.js")); var _schedule = _interopRequireDefault(__webpack_require__(/*! ./timing/schedule */ "../modules/popup/assets/js/frontend/timing/schedule.js")); class _default extends elementorModules.Module { constructor(settings, document) { super(settings); this.document = document; this.timingClasses = { page_views: _pageViews.default, sessions: _sessions.default, url: _url.default, sources: _sources.default, logged_in: _loggedIn.default, devices: _devices.default, times: _times.default, browsers: _browsers.default, schedule: _schedule.default }; } check() { const settings = this.getSettings(); let checkPassed = true; jQuery.each(this.timingClasses, (key, TimingClass) => { if (!settings[key]) { return; } const timing = new TimingClass(settings, this.document); if (!timing.check()) { checkPassed = false; } }); return checkPassed; } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/base.js": /*!**********************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/base.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor(settings, document) { super(settings); this.document = document; } getTimingSetting(settingKey) { return this.getSettings(this.getName() + '_' + settingKey); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/browsers.js": /*!**************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/browsers.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'browsers'; } check() { if ('all' === this.getTimingSetting('browsers')) { return true; } const targetedBrowsers = this.getTimingSetting('browsers_options'), browserDetectionFlags = elementorFrontend.utils.environment; return targetedBrowsers.some(browserName => browserDetectionFlags[browserName]); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/devices.js": /*!*************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/devices.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'devices'; } check() { return -1 !== this.getTimingSetting('devices').indexOf(elementorFrontend.getCurrentDeviceMode()); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/logged-in.js": /*!***************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/logged-in.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'logged_in'; } check() { const userConfig = elementorFrontend.config.user; if (!userConfig) { return true; } if ('all' === this.getTimingSetting('users')) { return false; } const userRolesInHideList = this.getTimingSetting('roles').filter(role => -1 !== userConfig.roles.indexOf(role)); return !userRolesInHideList.length; } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/page-views.js": /*!****************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/page-views.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'page_views'; } check() { const pageViews = elementorFrontend.storage.get('pageViews'), name = this.getName(); let initialPageViews = this.document.getStorage(name + '_initialPageViews'); if (!initialPageViews) { this.document.setStorage(name + '_initialPageViews', pageViews); initialPageViews = pageViews; } return pageViews - initialPageViews >= this.getTimingSetting('views'); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/schedule-utils.js": /*!********************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/schedule-utils.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class ScheduleUtils { constructor(args) { this.settings = args.settings; } getCurrentDateTime() { let now = new Date(); if ('site' === this.settings.timezone && this.settings.serverDatetime) { now = new Date(this.settings.serverDatetime); } return now; } shouldDisplay = () => { if (!this.settings.startDate && !this.settings.endDate) { return true; } const now = this.getCurrentDateTime(); if ((!this.settings.startDate || now >= this.settings.startDate) && (!this.settings.endDate || now <= this.settings.endDate)) { return true; } return false; }; } exports["default"] = ScheduleUtils; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/schedule.js": /*!**************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/schedule.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); var _scheduleUtils = _interopRequireDefault(__webpack_require__(/*! ./schedule-utils */ "../modules/popup/assets/js/frontend/timing/schedule-utils.js")); class _default extends _base.default { constructor() { super(...arguments); const { schedule_timezone: timezone, schedule_start_date: startDate, schedule_end_date: endDate, schedule_server_datetime: serverDatetime } = this.getSettings(); this.settings = { timezone, startDate: startDate ? new Date(startDate) : false, endDate: endDate ? new Date(endDate) : false, serverDatetime: serverDatetime ? new Date(serverDatetime) : false }; this.scheduleUtils = new _scheduleUtils.default({ settings: this.settings }); } getName() { return 'schedule'; } check() { return this.scheduleUtils.shouldDisplay(); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/sessions.js": /*!**************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/sessions.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'sessions'; } check() { const sessions = elementorFrontend.storage.get('sessions'), name = this.getName(); let initialSessions = this.document.getStorage(name + '_initialSessions'); if (!initialSessions) { this.document.setStorage(name + '_initialSessions', sessions); initialSessions = sessions; } return sessions - initialSessions >= this.getTimingSetting('sessions'); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/sources.js": /*!*************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/sources.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'sources'; } check() { const sources = this.getTimingSetting('sources'); if (3 === sources.length) { return true; } const referrer = document.referrer.replace(/https?:\/\/(?:www\.)?/, ''), isInternal = 0 === referrer.indexOf(location.host.replace('www.', '')); if (isInternal) { return -1 !== sources.indexOf('internal'); } if (-1 !== sources.indexOf('external')) { return true; } if (-1 !== sources.indexOf('search')) { return /^(google|yahoo|bing|yandex|baidu)\./.test(referrer); } return false; } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/times-utils.js": /*!*****************************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/times-utils.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class TimesUtils { constructor(args) { this.uniqueId = args.uniqueId; this.settings = args.settings; this.storage = args.storage; } getTimeFramesInSecounds(timeFrame) { const timeFrames = { day: 86400, // Day in seconds week: 604800, // Week in seconds month: 2628288 // Month in seconds }; return timeFrames[timeFrame]; } setExpiration(name, value, timeFrame) { const data = this.storage.get(name); if (!data) { const options = { lifetimeInSeconds: this.getTimeFramesInSecounds(timeFrame) }; this.storage.set(name, value, options); return; } this.storage.set(name, value); } getImpressionsCount() { const impressionCount = this.storage.get(this.uniqueId) ?? 0; return parseInt(impressionCount); } incrementImpressionsCount() { if (!this.settings.period) { this.storage.set('times', (this.storage.get('times') ?? 0) + 1); } else if ('session' !== this.settings.period) { const impressionCount = this.getImpressionsCount(); this.setExpiration(this.uniqueId, impressionCount + 1, this.settings.period); } else { sessionStorage.setItem(this.uniqueId, parseInt(sessionStorage.getItem(this.uniqueId) ?? 0) + 1); } } shouldCountOnOpen() { if (this.settings.countOnOpen) { this.incrementImpressionsCount(); } } shouldDisplayPerTimeFrame() { const impressionCount = this.getImpressionsCount(); if (impressionCount < this.settings.showsLimit) { this.shouldCountOnOpen(); return true; } return false; } shouldDisplayPerSession() { const impressionCount = sessionStorage.getItem(this.uniqueId) ?? 0; if (parseInt(impressionCount) < this.settings.showsLimit) { this.shouldCountOnOpen(); return true; } return false; } shouldDisplayBackwordCompatible() { let impressionCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; let showsLimit = arguments.length > 1 ? arguments[1] : undefined; const shouldDisplay = parseInt(impressionCount) < parseInt(showsLimit); this.shouldCountOnOpen(); return shouldDisplay; } } exports["default"] = TimesUtils; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/times.js": /*!***********************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/times.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); var _timesUtils = _interopRequireDefault(__webpack_require__(/*! ./times-utils.js */ "../modules/popup/assets/js/frontend/timing/times-utils.js")); class _default extends _base.default { constructor() { super(...arguments); this.uniqueId = `popup-${this.document.getSettings('id')}-impressions-count`; const { times_count: countOnOpen, times_period: period, times_times: showsLimit } = this.getSettings(); this.settings = { countOnOpen, period, showsLimit: parseInt(showsLimit) }; if ('' === this.settings.period) { this.settings.period = false; } if (['', 'close'].includes(this.settings.countOnOpen)) { this.settings.countOnOpen = false; this.onPopupHide(); } else { this.settings.countOnOpen = true; } this.utils = new _timesUtils.default({ uniqueId: this.uniqueId, settings: this.settings, storage: elementorFrontend.storage }); } getName() { return 'times'; } check() { if (!this.settings.period) { const impressionCount = this.document.getStorage('times') || 0; const showsLimit = this.getTimingSetting('times'); return this.utils.shouldDisplayBackwordCompatible(impressionCount, showsLimit); } if ('session' !== this.settings.period) { if (!this.utils.shouldDisplayPerTimeFrame()) { return false; } } else if (!this.utils.shouldDisplayPerSession()) { return false; } return true; } onPopupHide() { window.addEventListener('elementor/popup/hide', () => { this.utils.incrementImpressionsCount(); }); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/timing/url.js": /*!*********************************************************!*\ !*** ../modules/popup/assets/js/frontend/timing/url.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js")); class _default extends _base.default { getName() { return 'url'; } check() { const url = this.getTimingSetting('url'), action = this.getTimingSetting('action'), referrer = document.referrer; if ('regex' !== action) { return 'hide' === action ^ -1 !== referrer.indexOf(url); } let regexp; try { regexp = new RegExp(url); } catch (e) { return false; } return regexp.test(referrer); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers.js": /*!*******************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers.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 _pageLoad = _interopRequireDefault(__webpack_require__(/*! ./triggers/page-load */ "../modules/popup/assets/js/frontend/triggers/page-load.js")); var _scrolling = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling */ "../modules/popup/assets/js/frontend/triggers/scrolling.js")); var _scrollingTo = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling-to */ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js")); var _click = _interopRequireDefault(__webpack_require__(/*! ./triggers/click */ "../modules/popup/assets/js/frontend/triggers/click.js")); var _inactivity = _interopRequireDefault(__webpack_require__(/*! ./triggers/inactivity */ "../modules/popup/assets/js/frontend/triggers/inactivity.js")); var _exitIntent = _interopRequireDefault(__webpack_require__(/*! ./triggers/exit-intent */ "../modules/popup/assets/js/frontend/triggers/exit-intent.js")); var _adblockDetection = _interopRequireDefault(__webpack_require__(/*! ./triggers/adblock-detection */ "../modules/popup/assets/js/frontend/triggers/adblock-detection.js")); class _default extends elementorModules.Module { constructor(settings, document) { super(settings); this.document = document; this.triggers = []; this.triggerClasses = { page_load: _pageLoad.default, scrolling: _scrolling.default, scrolling_to: _scrollingTo.default, click: _click.default, inactivity: _inactivity.default, exit_intent: _exitIntent.default, adblock_detection: _adblockDetection.default }; this.runTriggers(); } runTriggers() { const settings = this.getSettings(); jQuery.each(this.triggerClasses, (key, TriggerClass) => { if (!settings[key]) { return; } const trigger = new TriggerClass(settings, () => this.onTriggerFired()); trigger.run(); this.triggers.push(trigger); }); } destroyTriggers() { this.triggers.forEach(trigger => trigger.destroy()); this.triggers = []; } onTriggerFired() { this.document.showModal(true); this.destroyTriggers(); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/adblock-detection.js": /*!*************************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/adblock-detection.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { getName() { return 'adblock_detection'; } generateRandomString() { const chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < 6; i++) { const randomIndex = Math.floor(Math.random() * chars.length); result += chars[randomIndex]; } return result; } hasAdblock() { const elementId = `elementor-adblock-detection-${this.generateRandomString()}`; this.createEmptyAdBlockElement(elementId); const tempAdBlockEle = document.querySelector(`#${elementId}`); if (!tempAdBlockEle) { return true; } const hasAdBlock = 'none' === window.getComputedStyle(tempAdBlockEle)?.display; this.removeEmptyAdBlockElement(tempAdBlockEle); return hasAdBlock; } createEmptyAdBlockElement(elementId) { const tempAdDiv = document.createElement('div'); tempAdDiv.id = elementId; tempAdDiv.className = 'ad-box'; tempAdDiv.style.position = 'fixed'; tempAdDiv.style.top = '0'; tempAdDiv.style.left = '0'; tempAdDiv.setAttribute('aria-hidden', 'true'); tempAdDiv.innerHTML = ' '; document.body.appendChild(tempAdDiv); } removeEmptyAdBlockElement(tempAdBlockEle) { tempAdBlockEle.remove(); } run() { this.timeout = setTimeout(() => { const hasAdBlock = this.hasAdblock(); if (hasAdBlock) { this.callback(); } }, this.getTriggerSetting('delay') * 1000); } destroy() { clearTimeout(this.timeout); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/base.js": /*!************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/base.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor(settings, callback) { super(settings); this.callback = callback; } getTriggerSetting(settingKey) { return this.getSettings(this.getName() + '_' + settingKey); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/click.js": /*!*************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/click.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { constructor() { super(...arguments); this.checkClick = this.checkClick.bind(this); this.clicksCount = 0; } getName() { return 'click'; } checkClick() { this.clicksCount++; if (this.clicksCount === this.getTriggerSetting('times')) { this.callback(); } } run() { elementorFrontend.elements.$body.on('click', this.checkClick); } destroy() { elementorFrontend.elements.$body.off('click', this.checkClick); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/exit-intent.js": /*!*******************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/exit-intent.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { constructor() { super(...arguments); this.detectExitIntent = this.detectExitIntent.bind(this); } getName() { return 'exit_intent'; } detectExitIntent(event) { if (event.clientY <= 0) { this.callback(); } } run() { elementorFrontend.elements.$window.on('mouseleave', this.detectExitIntent); } destroy() { elementorFrontend.elements.$window.off('mouseleave', this.detectExitIntent); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/inactivity.js": /*!******************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/inactivity.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { constructor() { super(...arguments); this.restartTimer = this.restartTimer.bind(this); } getName() { return 'inactivity'; } run() { this.startTimer(); elementorFrontend.elements.$document.on('keypress mousemove', this.restartTimer); } startTimer() { this.timeOut = setTimeout(this.callback, this.getTriggerSetting('time') * 1000); } clearTimer() { clearTimeout(this.timeOut); } restartTimer() { this.clearTimer(); this.startTimer(); } destroy() { this.clearTimer(); elementorFrontend.elements.$document.off('keypress mousemove', this.restartTimer); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/page-load.js": /*!*****************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/page-load.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { getName() { return 'page_load'; } run() { this.timeout = setTimeout(this.callback, this.getTriggerSetting('delay') * 1000); } destroy() { clearTimeout(this.timeout); } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js": /*!********************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/scrolling-to.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { getName() { return 'scrolling_to'; } run() { let $targetElement; try { $targetElement = jQuery(this.getTriggerSetting('selector')); } catch (e) { return; } if ($targetElement.length) { this.setUpIntersectionObserver(); this.observer.observe($targetElement[0]); } } setUpIntersectionObserver() { this.observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { this.callback(); } }); }); } destroy() { if (this.observer) { this.observer.disconnect(); } } } exports["default"] = _default; /***/ }), /***/ "../modules/popup/assets/js/frontend/triggers/scrolling.js": /*!*****************************************************************!*\ !*** ../modules/popup/assets/js/frontend/triggers/scrolling.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js")); class _default extends _base.default { constructor() { super(...arguments); this.checkScroll = this.checkScroll.bind(this); this.lastScrollOffset = 0; } getName() { return 'scrolling'; } checkScroll() { const scrollDirection = scrollY > this.lastScrollOffset ? 'down' : 'up', requestedDirection = this.getTriggerSetting('direction'); this.lastScrollOffset = scrollY; if (scrollDirection !== requestedDirection) { return; } if ('up' === scrollDirection) { this.callback(); return; } const fullScroll = elementorFrontend.elements.$document.height() - innerHeight, scrollPercent = scrollY / fullScroll * 100; if (scrollPercent >= this.getTriggerSetting('offset')) { this.callback(); } } run() { elementorFrontend.elements.$window.on('scroll', this.checkScroll); } destroy() { elementorFrontend.elements.$window.off('scroll', this.checkScroll); } } exports["default"] = _default; /***/ }), /***/ "../modules/posts/assets/js/frontend/frontend.js": /*!*******************************************************!*\ !*** ../modules/posts/assets/js/frontend/frontend.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); ['classic', 'full_content', 'cards'].forEach(skinName => { elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | load-more */ "load-more").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/load-more */ "../modules/posts/assets/js/frontend/handlers/load-more.js")), skinName); }); elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js")), 'classic'); elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js")), 'full_content'); elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/cards */ "../modules/posts/assets/js/frontend/handlers/cards.js")), 'cards'); elementorFrontend.elementsHandler.attachHandler('portfolio', () => __webpack_require__.e(/*! import() | portfolio */ "portfolio").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/portfolio */ "../modules/posts/assets/js/frontend/handlers/portfolio.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/search/assets/js/frontend/frontend.js": /*!********************************************************!*\ !*** ../modules/search/assets/js/frontend/frontend.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('search', [() => __webpack_require__.e(/*! import() | search */ "search").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search */ "../modules/search/assets/js/frontend/handlers/search.js")), () => __webpack_require__.e(/*! import() | search */ "search").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search-keyboard-handler */ "../modules/search/assets/js/frontend/handlers/search-keyboard-handler.js"))]); } } exports["default"] = _default; /***/ }), /***/ "../modules/share-buttons/assets/js/frontend/frontend.js": /*!***************************************************************!*\ !*** ../modules/share-buttons/assets/js/frontend/frontend.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('share-buttons', () => __webpack_require__.e(/*! import() | share-buttons */ "share-buttons").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/share-buttons */ "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/slides/assets/js/frontend/frontend.js": /*!********************************************************!*\ !*** ../modules/slides/assets/js/frontend/frontend.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('slides', () => __webpack_require__.e(/*! import() | slides */ "slides").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/slides */ "../modules/slides/assets/js/frontend/handlers/slides.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/social/assets/js/frontend/frontend.js": /*!********************************************************!*\ !*** ../modules/social/assets/js/frontend/frontend.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('facebook-button', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js"))); elementorFrontend.elementsHandler.attachHandler('facebook-comments', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js"))); elementorFrontend.elementsHandler.attachHandler('facebook-embed', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js"))); elementorFrontend.elementsHandler.attachHandler('facebook-page', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/table-of-contents/assets/js/frontend/frontend.js": /*!*******************************************************************!*\ !*** ../modules/table-of-contents/assets/js/frontend/frontend.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('table-of-contents', () => Promise.all(/*! import() | table-of-contents */[__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("table-of-contents")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/table-of-contents */ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/theme-builder/assets/js/frontend/frontend.js": /*!***************************************************************!*\ !*** ../modules/theme-builder/assets/js/frontend/frontend.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); ['archive_classic', 'archive_full_content', 'archive_cards'].forEach(skinName => { elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-load-more */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js")), skinName); }); elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_classic'); elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_full_content'); elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-cards */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js")), 'archive_cards'); jQuery(function () { // Go to elementor element - if the URL is something like http://domain.com/any-page?preview=true&theme_template_id=6479 var match = location.search.match(/theme_template_id=(\d*)/), $element = match ? jQuery('.elementor-' + match[1]) : []; if ($element.length) { jQuery('html, body').animate({ scrollTop: $element.offset().top - window.innerHeight / 2 }); } }); } } exports["default"] = _default; /***/ }), /***/ "../modules/theme-elements/assets/js/frontend/frontend.js": /*!****************************************************************!*\ !*** ../modules/theme-elements/assets/js/frontend/frontend.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('search-form', () => __webpack_require__.e(/*! import() | search-form */ "search-form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search-form */ "../modules/theme-elements/assets/js/frontend/handlers/search-form.js"))); } } exports["default"] = _default; /***/ }), /***/ "../modules/woocommerce/assets/js/frontend/frontend.js": /*!*************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/frontend.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('woocommerce-menu-cart', () => __webpack_require__.e(/*! import() | woocommerce-menu-cart */ "woocommerce-menu-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/menu-cart */ "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js"))); elementorFrontend.elementsHandler.attachHandler('woocommerce-purchase-summary', () => __webpack_require__.e(/*! import() | woocommerce-purchase-summary */ "woocommerce-purchase-summary").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/purchase-summary */ "../modules/woocommerce/assets/js/frontend/handlers/purchase-summary.js"))); elementorFrontend.elementsHandler.attachHandler('woocommerce-checkout-page', () => __webpack_require__.e(/*! import() | woocommerce-checkout-page */ "woocommerce-checkout-page").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/checkout-page */ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js"))); elementorFrontend.elementsHandler.attachHandler('woocommerce-cart', () => __webpack_require__.e(/*! import() | woocommerce-cart */ "woocommerce-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/cart */ "../modules/woocommerce/assets/js/frontend/handlers/cart.js"))); elementorFrontend.elementsHandler.attachHandler('woocommerce-my-account', () => __webpack_require__.e(/*! import() | woocommerce-my-account */ "woocommerce-my-account").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/my-account */ "../modules/woocommerce/assets/js/frontend/handlers/my-account.js"))); elementorFrontend.elementsHandler.attachHandler('woocommerce-notices', () => __webpack_require__.e(/*! import() | woocommerce-notices */ "woocommerce-notices").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/notices */ "../modules/woocommerce/assets/js/frontend/handlers/notices.js"))); elementorFrontend.elementsHandler.attachHandler('woocommerce-product-add-to-cart', () => __webpack_require__.e(/*! import() | product-add-to-cart */ "product-add-to-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/product-add-to-cart */ "../modules/woocommerce/assets/js/frontend/handlers/product-add-to-cart.js"))); /** * `wc-cart` script is enqueued in the Editor by the widget `get_script_depends()`. As a result WooCommerce * triggers its cart related event callbacks. One of the callbacks requires `.woocommerce-cart-form` to be in * the page and reloads the Preview if it's not there. To get around this we add our own empty * `.woocommerce-cart-form` to the page to stop the page reloading. */ if (elementorFrontend.isEditMode()) { elementorFrontend.on('components:init', () => { if (!elementorFrontend.elements.$body.find('.elementor-widget-woocommerce-cart').length) { elementorFrontend.elements.$body.append('<div class="woocommerce-cart-form">'); } }); } } } exports["default"] = _default; /***/ }), /***/ "@wordpress/i18n": /*!**************************!*\ !*** external "wp.i18n" ***! \**************************/ /***/ ((module) => { module.exports = wp.i18n; /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["frontend"], () => (__webpack_exec__("../assets/dev/js/frontend/elements-handlers.js"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ } ]); //# sourceMappingURL=elements-handlers.js.map
Save
cmd:
run