/
home
/
vianto5
/
heredit.mx
/
wp-content
/
plugins
/
elementor-pro
/
assets
/
js
/
/home/vianto5/heredit.mx/wp-content/plugins/elementor-pro/assets/js
mkdir
upload
Name
Size
Mode
Actions
notes/
-
0755
rm
packages/
-
0755
rm
8db3c97b214b47f55e36.bundle.js
12368
0644
edit
dl
rm
9495d665fd4392e5c905.bundle.min.js
30054
0644
edit
dl
rm
9495d665fd4392e5c905.bundle.min.js.LICENSE.txt
190
0644
edit
dl
rm
a8863c3b34c28d6f5339.bundle.js
6226
0644
edit
dl
rm
admin.js
195953
0644
edit
dl
rm
admin.min.js
55327
0644
edit
dl
rm
ajax-pagination.0b38436b7e5be48d4545.bundle.js
5165
0644
edit
dl
rm
ajax-pagination.505018eb312c83998279.bundle.min.js
2798
0644
edit
dl
rm
animated-headline.590b4d6864a2232eac0b.bundle.js
12193
0644
edit
dl
rm
animated-headline.bc08854fb1e1a80434b2.bundle.min.js
7729
0644
edit
dl
rm
app.js
519460
0644
edit
dl
rm
app.min.js
163701
0644
edit
dl
rm
archive-posts.0b71f7023819e3872142.bundle.min.js
8073
0644
edit
dl
rm
archive-posts.6a4658421da9a5065572.bundle.js
15822
0644
edit
dl
rm
atomic-form-editor.js
141622
0644
edit
dl
rm
atomic-form-editor.min.js
28915
0644
edit
dl
rm
b24baa04ab276a4dc8a2.bundle.min.js
3197
0644
edit
dl
rm
bd4bfffe1b33dafb7c9d.bundle.js
108754
0644
edit
dl
rm
carousel.024c31ddab60df206a0b.bundle.js
10141
0644
edit
dl
rm
carousel.e2af910b095554625156.bundle.min.js
5001
0644
edit
dl
rm
code-highlight.8d25b9cd7f813610b689.bundle.js
1011
0644
edit
dl
rm
code-highlight.38ec4828db8d33cccbe9.bundle.min.js
464
0644
edit
dl
rm
collection-loop-pagination-handler.js
115661
0644
edit
dl
rm
collection-loop-pagination-handler.min.js
32909
0644
edit
dl
rm
collection-loop-pagination-handler.min.js.LICENSE.txt
190
0644
edit
dl
rm
contact-buttons-var-10.05287599dd1d90c7d862.bundle.js
14495
0644
edit
dl
rm
contact-buttons-var-10.11bf4233106e1245bd61.bundle.min.js
7827
0644
edit
dl
rm
contact-buttons.096d5501cf19d5f0c453.bundle.js
23504
0644
edit
dl
rm
contact-buttons.e1605c5cfaccbff3c14b.bundle.min.js
13809
0644
edit
dl
rm
countdown.05b148ca20af32fc8e9f.bundle.min.js
2678
0644
edit
dl
rm
countdown.3c58982e82605f419c3f.bundle.js
4928
0644
edit
dl
rm
custom-code.js
246832
0644
edit
dl
rm
custom-code.min.js
55000
0644
edit
dl
rm
display-conditions.js
323979
0644
edit
dl
rm
display-conditions.min.js
91654
0644
edit
dl
rm
editor-interactions-pro.js
160566
0644
edit
dl
rm
editor-interactions-pro.min.js
34956
0644
edit
dl
rm
editor.js
461579
0644
edit
dl
rm
editor.min.js
164960
0644
edit
dl
rm
elements-handlers.js
114978
0644
edit
dl
rm
elements-handlers.min.js
43922
0644
edit
dl
rm
floating-bars-var-2.08648abb872971ae0c98.bundle.js
13101
0644
edit
dl
rm
floating-bars-var-2.5287acd8570f1ce2dde3.bundle.min.js
14501
0644
edit
dl
rm
floating-bars-var-3.52285918448df18c5803.bundle.js
12985
0644
edit
dl
rm
floating-bars-var-3.e9e9c0ea3c6fb0e51c58.bundle.min.js
13987
0644
edit
dl
rm
form-submission-admin.js
413614
0644
edit
dl
rm
form-submission-admin.min.js
112798
0644
edit
dl
rm
form.6745bc3535708a0363a0.bundle.js
34696
0644
edit
dl
rm
form.cfd61a9174be80f835c6.bundle.min.js
19710
0644
edit
dl
rm
frontend.js
54018
0644
edit
dl
rm
frontend.min.js
23939
0644
edit
dl
rm
gallery.3952fd7b21d1ead60dcf.bundle.js
9629
0644
edit
dl
rm
gallery.cca2358f59857ce6f62f.bundle.min.js
5897
0644
edit
dl
rm
hotspot.94fe1b825b2f7c9bdb76.bundle.js
5000
0644
edit
dl
rm
hotspot.737497535441dc0bc037.bundle.min.js
2807
0644
edit
dl
rm
interactions-pro.js
163648
0644
edit
dl
rm
interactions-pro.min.js
35788
0644
edit
dl
rm
jszip.vendor.8861cf23945726daad67.bundle.js
97952
0644
edit
dl
rm
jszip.vendor.ee0ba61191fa34e6bbe2.bundle.min.js
98090
0644
edit
dl
rm
jszip.vendor.ee0ba61191fa34e6bbe2.bundle.min.js.LICENSE.txt
383
0644
edit
dl
rm
load-more.1d302b2fb6cf345312a5.bundle.js
9643
0644
edit
dl
rm
load-more.7c4417f8a727b79f546f.bundle.min.js
5329
0644
edit
dl
rm
loop-carousel.881847b13e8fe1f8bfc2.bundle.min.js
1347
0644
edit
dl
rm
loop-carousel.b2a96a7ecd0c8e958eb7.bundle.js
2827
0644
edit
dl
rm
loop-filter-editor.55beef3d38bc920a7daf.bundle.js
8361
0644
edit
dl
rm
loop-filter-editor.d67ddcb0dbbe55ada697.bundle.min.js
3873
0644
edit
dl
rm
loop.1594a1df76e87a11eda2.bundle.min.js
8803
0644
edit
dl
rm
loop.aa72a16332c424518e32.bundle.js
17034
0644
edit
dl
rm
lottie.5ea185196aba9f2de4f4.bundle.min.js
14906
0644
edit
dl
rm
lottie.df44c4eaff5e54753f39.bundle.js
25866
0644
edit
dl
rm
media-carousel.60a3055c4fa0c3b31fc6.bundle.js
13337
0644
edit
dl
rm
media-carousel.87c2cf115553a2c4f709.bundle.min.js
6980
0644
edit
dl
rm
mega-menu-editor.70a31389dcab21422117.bundle.min.js
8472
0644
edit
dl
rm
mega-menu-editor.fdd326ed89e1267edbc1.bundle.js
20120
0644
edit
dl
rm
mega-menu-stretch-content.7ed04741ba7d5a80c556.bundle.min.js
1118
0644
edit
dl
rm
mega-menu-stretch-content.52bdc31fbf4d95be25c8.bundle.js
1855
0644
edit
dl
rm
mega-menu.857df1cf3198ae47b617.bundle.min.js
28208
0644
edit
dl
rm
mega-menu.fcd18b3fe5e387358760.bundle.js
51517
0644
edit
dl
rm
menu-title-keyboard-handler.b3891112675eb0b0c4d5.bundle.min.js
7683
0644
edit
dl
rm
menu-title-keyboard-handler.f5a43f63151ed49687fc.bundle.js
12301
0644
edit
dl
rm
nav-menu.8c57b061da7c3f2f21a2.bundle.js
8676
0644
edit
dl
rm
nav-menu.dc8790fd04afa5b6c0a3.bundle.min.js
5038
0644
edit
dl
rm
nested-carousel-editor.30f07a4ca0162c2af3fb.bundle.min.js
619
0644
edit
dl
rm
nested-carousel-editor.cd49a5ef125577b84e2a.bundle.js
1855
0644
edit
dl
rm
nested-carousel.659b0373371215e60dab.bundle.min.js
3362
0644
edit
dl
rm
nested-carousel.dc5d8f837564cbc5b803.bundle.js
6793
0644
edit
dl
rm
off-canvas-editor.51813db99f88e5ea0c4f.bundle.js
6272
0644
edit
dl
rm
off-canvas-editor.ff99e117444b8e4b9d09.bundle.min.js
2578
0644
edit
dl
rm
off-canvas.82d118980fb5aa03c82b.bundle.min.js
6875
0644
edit
dl
rm
off-canvas.131ce85cfbdc3b72eac1.bundle.js
10928
0644
edit
dl
rm
page-transitions.js
149987
0644
edit
dl
rm
page-transitions.min.js
38404
0644
edit
dl
rm
paypal-button.5c63e4c8f36fb06aff31.bundle.min.js
865
0644
edit
dl
rm
paypal-button.d8e603d9905c2b3bde70.bundle.js
1564
0644
edit
dl
rm
popup.61d4fcab8891b2e07802.bundle.min.js
746
0644
edit
dl
rm
popup.bf01645ab8663696643a.bundle.js
1530
0644
edit
dl
rm
portfolio.3d0e387cc28c07bae511.bundle.min.js
7248
0644
edit
dl
rm
portfolio.e6a649d18eb7f3639324.bundle.js
12969
0644
edit
dl
rm
posts.55bb40a5248b351fb409.bundle.js
5916
0644
edit
dl
rm
posts.844727d8428792223d2f.bundle.min.js
3306
0644
edit
dl
rm
preview.js
122209
0644
edit
dl
rm
preview.min.js
24151
0644
edit
dl
rm
product-add-to-cart.a4f88a0c19e95b3912b6.bundle.min.js
3485
0644
edit
dl
rm
product-add-to-cart.b06dd68fce755ffc36e9.bundle.js
7316
0644
edit
dl
rm
progress-tracker.7b160888e308c5f64701.bundle.min.js
5225
0644
edit
dl
rm
progress-tracker.22412652feef2ac71ac5.bundle.js
9396
0644
edit
dl
rm
screenshot.js
133612
0644
edit
dl
rm
screenshot.min.js
27540
0644
edit
dl
rm
search-form.9abeafeecde90cf7e0f4.bundle.min.js
2106
0644
edit
dl
rm
search-form.71ab9fe5b72d445e5924.bundle.js
4490
0644
edit
dl
rm
search.3ec7310139d97dd4cece.bundle.min.js
13233
0644
edit
dl
rm
search.23190cfcf422699116da.bundle.js
20683
0644
edit
dl
rm
share-buttons.37f30f4a219e6c0e93e9.bundle.js
4347
0644
edit
dl
rm
share-buttons.b99b5ff11c944a3a8ea9.bundle.min.js
1568
0644
edit
dl
rm
slides.8e9b74f1b31471377df8.bundle.min.js
3918
0644
edit
dl
rm
slides.d3c0669e9bff9567d186.bundle.js
7554
0644
edit
dl
rm
social.9d068d79ff14a59f5142.bundle.js
1980
0644
edit
dl
rm
social.de5cec83bf689b2f1f01.bundle.min.js
1012
0644
edit
dl
rm
stripe-button.abf154ceb7693ec0bff5.bundle.js
4270
0644
edit
dl
rm
stripe-button.b7e32b5d713d60752c7e.bundle.min.js
2001
0644
edit
dl
rm
table-of-contents.bff952bd91349056fe78.bundle.min.js
8886
0644
edit
dl
rm
table-of-contents.eb03464c4c4ef53e85da.bundle.js
17828
0644
edit
dl
rm
taxonomy-filter.3c1b5f243e7641c19dd4.bundle.js
16027
0644
edit
dl
rm
taxonomy-filter.6526351a1205655def47.bundle.min.js
7593
0644
edit
dl
rm
video-playlist.5053c13417e7c57d9e7f.bundle.js
50021
0644
edit
dl
rm
video-playlist.d48e1a11007fe8c248f8.bundle.min.js
22499
0644
edit
dl
rm
webpack-pro.runtime.js
17000
0644
edit
dl
rm
webpack-pro.runtime.min.js
6242
0644
edit
dl
rm
woocommerce-cart.5e3541a8442d571ed4e4.bundle.js
10750
0644
edit
dl
rm
woocommerce-cart.9131ef5e40333f8066dd.bundle.min.js
5160
0644
edit
dl
rm
woocommerce-checkout-page.7a6f7394366d968d2770.bundle.js
12144
0644
edit
dl
rm
woocommerce-checkout-page.8391e03a51a57a42528a.bundle.min.js
6590
0644
edit
dl
rm
woocommerce-menu-cart.33fbf47b819947e7a2a7.bundle.min.js
4646
0644
edit
dl
rm
woocommerce-menu-cart.c08ada1e7125ce213ca5.bundle.js
8830
0644
edit
dl
rm
woocommerce-my-account.4d988600ae000b6ac48b.bundle.js
11611
0644
edit
dl
rm
woocommerce-my-account.ab469f426496c628ac6c.bundle.min.js
6204
0644
edit
dl
rm
woocommerce-notices.8efe1d90a849f5584212.bundle.js
3022
0644
edit
dl
rm
woocommerce-notices.181b8701c45ec5374829.bundle.min.js
1873
0644
edit
dl
rm
woocommerce-purchase-summary.118e54b95a68f0ad8c09.bundle.min.js
3483
0644
edit
dl
rm
woocommerce-purchase-summary.130d00959df94d14c914.bundle.js
7483
0644
edit
dl
rm
Edit:
/home/vianto5/heredit.mx/wp-content/plugins/elementor-pro/assets/js/frontend.js
(54018B)
/*! elementor-pro - v4.2.0 - 31-08-2026 */ (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["frontend"],{ /***/ "../../elementor/assets/dev/js/frontend/utils/utils.js" /*!*************************************************************!*\ !*** ../../elementor/assets/dev/js/frontend/utils/utils.js ***! \*************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isScrollSnapActive = exports.escapeHTML = void 0; // Escape HTML special chars to prevent XSS. const escapeHTML = str => { const specialChars = { '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' }; return str.replace(/[&<>'"]/g, tag => specialChars[tag] || tag); }; // Check if Scroll-Snap is active. exports.escapeHTML = escapeHTML; const isScrollSnapActive = () => { const scrollSnapStatus = elementorFrontend.isEditMode() ? elementor.settings.page.model.attributes?.scroll_snap : elementorFrontend.config.settings.page?.scroll_snap; return 'yes' === scrollSnapStatus ? true : false; }; exports.isScrollSnapActive = isScrollSnapActive; /***/ }, /***/ "../assets/dev/js/frontend/frontend.js" /*!*********************************************!*\ !*** ../assets/dev/js/frontend/frontend.js ***! \*********************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); __webpack_require__(/*! ../public-path */ "../assets/dev/js/public-path.js"); var _frontend = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/motion-fx/assets/js/frontend/frontend */ "../modules/motion-fx/assets/js/frontend/frontend.js")); var _frontend2 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/sticky/assets/js/frontend/frontend */ "../modules/sticky/assets/js/frontend/frontend.js")); var _frontend3 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/code-highlight/assets/js/frontend/frontend */ "../modules/code-highlight/assets/js/frontend/frontend.js")); var _frontend4 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/video-playlist/assets/js/frontend/frontend */ "../modules/video-playlist/assets/js/frontend/frontend.js")); var _frontend5 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/payments/assets/js/frontend/frontend */ "../modules/payments/assets/js/frontend/frontend.js")); var _frontend6 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/progress-tracker/assets/js/frontend/frontend */ "../modules/progress-tracker/assets/js/frontend/frontend.js")); var _controls = _interopRequireDefault(__webpack_require__(/*! ./utils/controls */ "../assets/dev/js/frontend/utils/controls.js")); var _dropdownMenuHeightController = _interopRequireDefault(__webpack_require__(/*! ./utils/dropdown-menu-height-controller */ "../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js")); class ElementorProFrontend extends elementorModules.ViewModule { onInit() { super.onInit(); this.config = ElementorProFrontendConfig; this.modules = {}; this.initOnReadyComponents(); } bindEvents() { jQuery(window).on('elementor/frontend/init', this.onElementorFrontendInit.bind(this)); } initModules() { // Handlers that should be available by default for sections usage. let handlers = { motionFX: _frontend.default, sticky: _frontend2.default, codeHighlight: _frontend3.default, videoPlaylist: _frontend4.default, payments: _frontend5.default, progressTracker: _frontend6.default }; // Keep this line before applying filter on the handlers. elementorProFrontend.trigger('elementor-pro/modules/init/before'); handlers = elementorFrontend.hooks.applyFilters('elementor-pro/frontend/handlers', handlers); jQuery.each(handlers, (moduleName, ModuleClass) => { this.modules[moduleName] = new ModuleClass(); }); // TODO: BC Since 2.9.0 this.modules.linkActions = { addAction: (...args) => { elementorFrontend.utils.urlActions.addAction(...args); } }; } onElementorFrontendInit() { this.initModules(); } initOnReadyComponents() { this.utils = { controls: new _controls.default(), DropdownMenuHeightController: _dropdownMenuHeightController.default }; } } window.elementorProFrontend = new ElementorProFrontend(); /***/ }, /***/ "../assets/dev/js/frontend/utils/controls.js" /*!***************************************************!*\ !*** ../assets/dev/js/frontend/utils/controls.js ***! \***************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class Controls { /** * Get Control Value * * Retrieves a control value. * This function has been copied from `elementor/assets/dev/js/editor/utils/conditions.js`. * * @since 3.11.0 * * @param {{}} controlSettings A settings object (e.g. element settings - keys and values) * @param {string} controlKey The control key name * @param {string} controlSubKey A specific property of the control object. * @return {*} Control Value */ getControlValue(controlSettings, controlKey, controlSubKey) { let value; if ('object' === typeof controlSettings[controlKey] && controlSubKey) { value = controlSettings[controlKey][controlSubKey]; } else { value = controlSettings[controlKey]; } return value; } /** * Get the value of a responsive control. * * Retrieves the value of a responsive control for the current device or for this first parent device which has a control value. * * @since 3.11.0 * * @param {{}} controlSettings A settings object (e.g. element settings - keys and values) * @param {string} controlKey The control key name * @param {string} controlSubKey A specific property of the control object. * @return {*} Control Value */ getResponsiveControlValue(controlSettings, controlKey, controlSubKey = '') { const currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), controlValueDesktop = this.getControlValue(controlSettings, controlKey, controlSubKey); // Set the control value for the current device mode. // First check the widescreen device mode. if ('widescreen' === currentDeviceMode) { const controlValueWidescreen = this.getControlValue(controlSettings, `${controlKey}_widescreen`, controlSubKey); return !!controlValueWidescreen || 0 === controlValueWidescreen ? controlValueWidescreen : controlValueDesktop; } // Loop through all responsive and desktop device modes. const activeBreakpoints = elementorFrontend.breakpoints.getActiveBreakpointsList({ withDesktop: true }); let parentDeviceMode = currentDeviceMode, deviceIndex = activeBreakpoints.indexOf(currentDeviceMode), controlValue = ''; while (deviceIndex <= activeBreakpoints.length) { if ('desktop' === parentDeviceMode) { controlValue = controlValueDesktop; break; } const responsiveControlKey = `${controlKey}_${parentDeviceMode}`, responsiveControlValue = this.getControlValue(controlSettings, responsiveControlKey, controlSubKey); if (!!responsiveControlValue || 0 === responsiveControlValue) { controlValue = responsiveControlValue; break; } // If no control value has been set for the current device mode, then check the parent device mode. deviceIndex++; parentDeviceMode = activeBreakpoints[deviceIndex]; } return controlValue; } } exports["default"] = Controls; /***/ }, /***/ "../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js" /*!**************************************************************************!*\ !*** ../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js ***! \**************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class DropdownMenuHeightController { constructor(widgetConfig) { this.widgetConfig = widgetConfig; } calculateStickyMenuNavHeight() { this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, ''); const menuToggleHeight = this.widgetConfig.elements.$dropdownMenuContainer.offset().top - jQuery(window).scrollTop(); return elementorFrontend.elements.$window.height() - menuToggleHeight; } calculateMenuTabContentHeight($tab) { return elementorFrontend.elements.$window.height() - $tab[0].getBoundingClientRect().top; } isElementSticky() { return this.widgetConfig.elements.$element.hasClass('elementor-sticky') || this.widgetConfig.elements.$element.parents('.elementor-sticky').length; } getMenuHeight() { return this.isElementSticky() ? this.calculateStickyMenuNavHeight() + 'px' : this.widgetConfig.settings.dropdownMenuContainerMaxHeight; } setMenuHeight(menuHeight) { this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, menuHeight); } reassignMobileMenuHeight() { const menuHeight = this.isToggleActive() ? this.getMenuHeight() : 0; return this.setMenuHeight(menuHeight); } reassignMenuHeight($activeTabContent) { if (!this.isElementSticky() || 0 === $activeTabContent.length) { return; } const offsetBottom = elementorFrontend.elements.$window.height() - $activeTabContent[0].getBoundingClientRect().top, isContentHeightBiggerThanWindow = $activeTabContent.height() > offsetBottom; if (!isContentHeightBiggerThanWindow) { return; } $activeTabContent.css('height', this.calculateMenuTabContentHeight($activeTabContent) + 'px'); $activeTabContent.css('overflow-y', 'scroll'); } resetMenuHeight($activeTabContent) { if (!this.isElementSticky()) { return; } $activeTabContent.css('height', 'initial'); $activeTabContent.css('overflow-y', 'visible'); } isToggleActive() { const $menuToggle = this.widgetConfig.elements.$menuToggle; // New approach. // Aria attributes instead of css classes. if (!!this.widgetConfig.attributes?.menuToggleState) { return 'true' === $menuToggle.attr(this.widgetConfig.attributes.menuToggleState); } // This can be removed once the new markup of the Mega Menu has been implemented. // Previously we used state classes to indicate the active state of the menu toggle. return $menuToggle.hasClass(this.widgetConfig.classes.menuToggleActiveClass); } } exports["default"] = DropdownMenuHeightController; /***/ }, /***/ "../assets/dev/js/public-path.js" /*!***************************************!*\ !*** ../assets/dev/js/public-path.js ***! \***************************************/ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; /* eslint-disable camelcase */ __webpack_require__.p = ElementorProFrontendConfig.urls.assets + 'js/'; /***/ }, /***/ "../modules/code-highlight/assets/js/frontend/frontend.js" /*!****************************************************************!*\ !*** ../modules/code-highlight/assets/js/frontend/frontend.js ***! \****************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('code-highlight', () => __webpack_require__.e(/*! import() | code-highlight */ "code-highlight").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/code-highlight/assets/js/frontend/handler.js"))); } } exports["default"] = _default; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/frontend.js" /*!***********************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/frontend.js ***! \***********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; 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 _handler = _interopRequireDefault(__webpack_require__(/*! ./handler */ "../modules/motion-fx/assets/js/frontend/handler.js")); class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('global', _handler.default, null); } } exports["default"] = _default; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/handler.js" /*!**********************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/handler.js ***! \**********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; 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 _motionFx = _interopRequireDefault(__webpack_require__(/*! ./motion-fx/motion-fx */ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js")); class _default extends elementorModules.frontend.handlers.Base { __construct(...args) { super.__construct(...args); this.toggle = elementorFrontend.debounce(this.toggle, 200); } getDefaultSettings() { return { selectors: { container: '.elementor-widget-container' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); let container = this.$element.find(selectors.container); if (0 === container.length) { container = this.$element; } return { $container: container }; } bindEvents() { elementorFrontend.elements.$window.on('resize', this.toggle); } unbindEvents() { elementorFrontend.elements.$window.off('resize', this.toggle); } addCSSTransformEvents() { // Remove CSS transition variable that assigned from scroll.js in order to allow the transition of the CSS-Transform. const motionFxScrolling = this.getElementSettings('motion_fx_motion_fx_scrolling'); if (motionFxScrolling && !this.isTransitionEventAdded) { this.isTransitionEventAdded = true; this.elements.$container.on('mouseenter', () => { this.elements.$container.css('--e-transform-transition-duration', ''); }); } } initEffects() { this.effects = { translateY: { interaction: 'scroll', actions: ['translateY'] }, translateX: { interaction: 'scroll', actions: ['translateX'] }, rotateZ: { interaction: 'scroll', actions: ['rotateZ'] }, scale: { interaction: 'scroll', actions: ['scale'] }, opacity: { interaction: 'scroll', actions: ['opacity'] }, blur: { interaction: 'scroll', actions: ['blur'] }, mouseTrack: { interaction: 'mouseMove', actions: ['translateXY'] }, tilt: { interaction: 'mouseMove', actions: ['tilt'] } }; } prepareOptions(name) { const elementSettings = this.getElementSettings(), type = 'motion_fx' === name ? 'element' : 'background', interactions = {}; jQuery.each(elementSettings, (key, value) => { const keyRegex = new RegExp('^' + name + '_(.+?)_effect'), keyMatches = key.match(keyRegex); if (!keyMatches || !value) { return; } const options = {}, effectName = keyMatches[1]; jQuery.each(elementSettings, (subKey, subValue) => { const subKeyRegex = new RegExp(name + '_' + effectName + '_(.+)'), subKeyMatches = subKey.match(subKeyRegex); if (!subKeyMatches) { return; } const subFieldName = subKeyMatches[1]; if ('effect' === subFieldName) { return; } if ('object' === typeof subValue) { subValue = Object.keys(subValue.sizes).length ? subValue.sizes : subValue.size; } options[subKeyMatches[1]] = subValue; }); const effect = this.effects[effectName], interactionName = effect.interaction; if (!interactions[interactionName]) { interactions[interactionName] = {}; } effect.actions.forEach(action => interactions[interactionName][action] = options); }); let $element = this.$element, $dimensionsElement, $childElement; const elementType = this.getElementType(); if ('element' === type && !['section', 'container'].includes(elementType)) { $dimensionsElement = $element; let childElementSelector; if ('column' === elementType) { childElementSelector = '.elementor-widget-wrap'; } else { childElementSelector = '.elementor-widget-container'; } $childElement = $element.find('> ' + childElementSelector); $element = 0 === $childElement.length ? this.$element : $childElement; } const options = { type, interactions, elementSettings, $element, $dimensionsElement, refreshDimensions: this.isEdit, range: elementSettings[name + '_range'], classes: { element: 'elementor-motion-effects-element', parent: 'elementor-motion-effects-parent', backgroundType: 'elementor-motion-effects-element-type-background', container: 'elementor-motion-effects-container', layer: 'elementor-motion-effects-layer', perspective: 'elementor-motion-effects-perspective' } }; if (!options.range && 'fixed' === this.getCurrentDeviceSetting('_position')) { options.range = 'page'; } if ('fixed' === this.getCurrentDeviceSetting('_position')) { options.isFixedPosition = true; } if ('background' === type && 'column' === this.getElementType()) { options.addBackgroundLayerTo = ' > .elementor-element-populated'; } return options; } activate(name) { const options = this.prepareOptions(name); if (jQuery.isEmptyObject(options.interactions)) { return; } this[name] = new _motionFx.default(options); } deactivate(name) { if (this[name]) { this[name].destroy(); delete this[name]; } } toggle() { const currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), elementSettings = this.getElementSettings(); ['motion_fx', 'background_motion_fx'].forEach(name => { const devices = elementSettings[name + '_devices'], isCurrentModeActive = !devices || -1 !== devices.indexOf(currentDeviceMode); if (isCurrentModeActive && (elementSettings[name + '_motion_fx_scrolling'] || elementSettings[name + '_motion_fx_mouse'])) { if (this[name]) { this.refreshInstance(name); } else { this.activate(name); } } else { this.deactivate(name); } }); } refreshInstance(instanceName) { const instance = this[instanceName]; if (!instance) { return; } const preparedOptions = this.prepareOptions(instanceName); instance.setSettings(preparedOptions); instance.refresh(); } onInit() { super.onInit(); const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)'); if (prefersReducedMotion && prefersReducedMotion.matches) { return; } this.initEffects(); this.addCSSTransformEvents(); this.toggle(); } onElementChange(propertyName) { if (/motion_fx_((scrolling)|(mouse)|(devices))$/.test(propertyName)) { if ('motion_fx_motion_fx_scrolling' === propertyName) { this.addCSSTransformEvents(); } this.toggle(); return; } const propertyMatches = propertyName.match('.*?(motion_fx|_transform)'); if (propertyMatches) { const instanceName = propertyMatches[0].match('(_transform)') ? 'motion_fx' : propertyMatches[0]; this.refreshInstance(instanceName); if (!this[instanceName]) { this.activate(instanceName); } } if (/^_position/.test(propertyName)) { ['motion_fx', 'background_motion_fx'].forEach(instanceName => { this.refreshInstance(instanceName); }); } } onDestroy() { super.onDestroy(); ['motion_fx', 'background_motion_fx'].forEach(name => { this.deactivate(name); }); } } exports["default"] = _default; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js" /*!********************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/actions.js ***! \********************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { getMovePointFromPassedPercents(movableRange, passedPercents) { const movePoint = passedPercents / movableRange * 100; return +movePoint.toFixed(2); } getEffectValueFromMovePoint(range, movePoint) { return range * movePoint / 100; } getStep(passedPercents, options) { if ('element' === this.getSettings('type')) { return this.getElementStep(passedPercents, options); } return this.getBackgroundStep(passedPercents, options); } getElementStep(passedPercents, options) { return -(passedPercents - 50) * options.speed; } getBackgroundStep(passedPercents, options) { const movableRange = this.getSettings('dimensions.movable' + options.axis.toUpperCase()); return -this.getEffectValueFromMovePoint(movableRange, passedPercents); } getDirectionMovePoint(passedPercents, direction, range) { let movePoint; if (passedPercents < range.start) { if ('out-in' === direction) { movePoint = 0; } else if ('in-out' === direction) { movePoint = 100; } else { movePoint = this.getMovePointFromPassedPercents(range.start, passedPercents); if ('in-out-in' === direction) { movePoint = 100 - movePoint; } } } else if (passedPercents < range.end) { if ('in-out-in' === direction) { movePoint = 0; } else if ('out-in-out' === direction) { movePoint = 100; } else { movePoint = this.getMovePointFromPassedPercents(range.end - range.start, passedPercents - range.start); if ('in-out' === direction) { movePoint = 100 - movePoint; } } } else if ('in-out' === direction) { movePoint = 0; } else if ('out-in' === direction) { movePoint = 100; } else { movePoint = this.getMovePointFromPassedPercents(100 - range.end, 100 - passedPercents); if ('in-out-in' === direction) { movePoint = 100 - movePoint; } } return movePoint; } translateX(actionData, passedPercents) { actionData.axis = 'x'; actionData.unit = 'px'; this.transform('translateX', passedPercents, actionData); } translateY(actionData, passedPercents) { actionData.axis = 'y'; actionData.unit = 'px'; this.transform('translateY', passedPercents, actionData); } translateXY(actionData, passedPercentsX, passedPercentsY) { this.translateX(actionData, passedPercentsX); this.translateY(actionData, passedPercentsY); } tilt(actionData, passedPercentsX, passedPercentsY) { const options = { speed: actionData.speed / 10, direction: actionData.direction }; this.rotateX(options, passedPercentsY); this.rotateY(options, 100 - passedPercentsX); } rotateX(actionData, passedPercents) { actionData.axis = 'x'; actionData.unit = 'deg'; this.transform('rotateX', passedPercents, actionData); } rotateY(actionData, passedPercents) { actionData.axis = 'y'; actionData.unit = 'deg'; this.transform('rotateY', passedPercents, actionData); } rotateZ(actionData, passedPercents) { actionData.unit = 'deg'; this.transform('rotateZ', passedPercents, actionData); } scale(actionData, passedPercents) { const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range); this.updateRulePart('transform', 'scale', 1 + actionData.speed * movePoint / 1000); } transform(action, passedPercents, actionData) { if (actionData.direction) { passedPercents = 100 - passedPercents; } this.updateRulePart('transform', action, this.getStep(passedPercents, actionData) + actionData.unit); } setCSSTransformVariables(elementSettings) { this.CSSTransformVariables = []; jQuery.each(elementSettings, (settingKey, settingValue) => { const transformKeyMatches = settingKey.match(/_transform_(.+?)_effect/m); if (transformKeyMatches && settingValue) { if ('perspective' === transformKeyMatches[1]) { this.CSSTransformVariables.unshift(transformKeyMatches[1]); return; } if (this.CSSTransformVariables.includes(transformKeyMatches[1])) { return; } this.CSSTransformVariables.push(transformKeyMatches[1]); } }); } opacity(actionData, passedPercents) { const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range), level = actionData.level / 10, opacity = 1 - level + this.getEffectValueFromMovePoint(level, movePoint); this.$element.css({ opacity, 'will-change': 'opacity' }); } blur(actionData, passedPercents) { const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range), blur = actionData.level - this.getEffectValueFromMovePoint(actionData.level, movePoint); this.updateRulePart('filter', 'blur', blur + 'px'); } updateRulePart(ruleName, key, value) { if (!this.rulesVariables[ruleName]) { this.rulesVariables[ruleName] = {}; } if (!this.rulesVariables[ruleName][key]) { this.rulesVariables[ruleName][key] = true; this.updateRule(ruleName); } const cssVarKey = `--${key}`; this.$element[0].style.setProperty(cssVarKey, value); } updateRule(ruleName) { let value = ''; value += this.concatTransformCSSProperties(ruleName); value += this.concatTransformMotionEffectCSSProperties(ruleName); this.$element.css(ruleName, value); } concatTransformCSSProperties(ruleName) { let value = ''; if ('transform' === ruleName) { jQuery.each(this.CSSTransformVariables, (index, variableKey) => { const variableName = variableKey; if (variableKey.startsWith('flip')) { variableKey = variableKey.replace('flip', 'scale'); } // Adding default value because of the hover state. if there is no default the transform will break. const defaultUnit = variableKey.startsWith('rotate') || variableKey.startsWith('skew') ? 'deg' : 'px', defaultValue = variableKey.startsWith('scale') ? 1 : 0 + defaultUnit; value += `${variableKey}(var(--e-transform-${variableName}, ${defaultValue}))`; }); } return value; } concatTransformMotionEffectCSSProperties(ruleName) { let value = ''; jQuery.each(this.rulesVariables[ruleName], variableKey => { value += `${variableKey}(var(--${variableKey}))`; }); return value; } runAction(actionName, actionData, passedPercents, ...args) { if (actionData.affectedRange) { if (actionData.affectedRange.start > passedPercents) { passedPercents = actionData.affectedRange.start; } if (actionData.affectedRange.end < passedPercents) { passedPercents = actionData.affectedRange.end; } } this[actionName](actionData, passedPercents, ...args); } refresh() { this.rulesVariables = {}; this.CSSTransformVariables = []; this.$element.css({ transform: '', filter: '', opacity: '', 'will-change': '' }); } onInit() { this.$element = this.getSettings('$targetElement'); this.refresh(); } } exports["default"] = _default; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js" /*!******************************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js ***! \******************************************************************************/ (__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.ViewModule { __construct(options) { this.motionFX = options.motionFX; if (!this.intersectionObservers) { this.setElementInViewportObserver(); } } setElementInViewportObserver() { this.intersectionObserver = elementorModules.utils.Scroll.scrollObserver({ callback: event => { if (event.isInViewport) { this.onInsideViewport(); } else { this.removeAnimationFrameRequest(); } } }); // Determine which element we should observe. const observedElement = 'page' === this.motionFX.getSettings('range') ? elementorFrontend.elements.$body[0] : this.motionFX.elements.$parent[0]; this.intersectionObserver.observe(observedElement); } onInsideViewport = () => { this.run(); this.animationFrameRequest = requestAnimationFrame(this.onInsideViewport); }; runCallback(...args) { const callback = this.getSettings('callback'); callback(...args); } removeIntersectionObserver() { if (this.intersectionObserver) { this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0]); } } removeAnimationFrameRequest() { if (this.animationFrameRequest) { cancelAnimationFrame(this.animationFrameRequest); } } destroy() { this.removeAnimationFrameRequest(); this.removeIntersectionObserver(); } onInit() { super.onInit(); } } exports["default"] = _default; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js" /*!************************************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js ***! \************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; 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/motion-fx/assets/js/frontend/motion-fx/interactions/base.js")); class MouseMoveInteraction extends _base.default { bindEvents() { if (!MouseMoveInteraction.mouseTracked) { elementorFrontend.elements.$window.on('mousemove', MouseMoveInteraction.updateMousePosition); MouseMoveInteraction.mouseTracked = true; } } run() { const mousePosition = MouseMoveInteraction.mousePosition, oldMousePosition = this.oldMousePosition; if (oldMousePosition.x === mousePosition.x && oldMousePosition.y === mousePosition.y) { return; } this.oldMousePosition = { x: mousePosition.x, y: mousePosition.y }; const passedPercentsX = 100 / innerWidth * mousePosition.x, passedPercentsY = 100 / innerHeight * mousePosition.y; this.runCallback(passedPercentsX, passedPercentsY); } onInit() { this.oldMousePosition = {}; super.onInit(); } } exports["default"] = MouseMoveInteraction; MouseMoveInteraction.mousePosition = {}; MouseMoveInteraction.updateMousePosition = event => { MouseMoveInteraction.mousePosition = { x: event.clientX, y: event.clientY }; }; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js" /*!********************************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js ***! \********************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; 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/motion-fx/assets/js/frontend/motion-fx/interactions/base.js")); class _default extends _base.default { run() { if (pageYOffset === this.windowScrollTop) { return false; } this.onScrollMovement(); this.windowScrollTop = pageYOffset; } onScrollMovement() { this.updateMotionFxDimensions(); this.updateAnimation(); this.resetTransitionVariable(); } resetTransitionVariable() { this.motionFX.$element.css('--e-transform-transition-duration', '100ms'); } updateMotionFxDimensions() { const motionFXSettings = this.motionFX.getSettings(); if (motionFXSettings.refreshDimensions) { this.motionFX.defineDimensions(); } } updateAnimation() { let passedRangePercents; if ('page' === this.motionFX.getSettings('range')) { passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage(); } else if (this.motionFX.getSettings('isFixedPosition')) { passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage({}, window.innerHeight); } else { passedRangePercents = elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent); } this.runCallback(passedRangePercents); } } exports["default"] = _default; /***/ }, /***/ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js" /*!**********************************************************************!*\ !*** ../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js ***! \**********************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; 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 _scroll = _interopRequireDefault(__webpack_require__(/*! ./interactions/scroll */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js")); var _mouseMove = _interopRequireDefault(__webpack_require__(/*! ./interactions/mouse-move */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js")); var _actions = _interopRequireDefault(__webpack_require__(/*! ./actions */ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js")); class _default extends elementorModules.ViewModule { getDefaultSettings() { return { type: 'element', $element: null, $dimensionsElement: null, addBackgroundLayerTo: null, interactions: {}, refreshDimensions: false, range: 'viewport', classes: { element: 'motion-fx-element', parent: 'motion-fx-parent', backgroundType: 'motion-fx-element-type-background', container: 'motion-fx-container', layer: 'motion-fx-layer', perspective: 'motion-fx-perspective' } }; } bindEvents() { this.defineDimensions = this.defineDimensions.bind(this); elementorFrontend.elements.$window.on('resize elementor-pro/motion-fx/recalc', this.defineDimensions); } unbindEvents() { elementorFrontend.elements.$window.off('resize elementor-pro/motion-fx/recalc', this.defineDimensions); } addBackgroundLayer() { const settings = this.getSettings(); this.elements.$motionFXContainer = jQuery('<div>', { class: settings.classes.container }); this.elements.$motionFXLayer = jQuery('<div>', { class: settings.classes.layer }); this.updateBackgroundLayerSize(); this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer); const $addBackgroundLayerTo = settings.addBackgroundLayerTo ? this.$element.find(settings.addBackgroundLayerTo) : this.$element; $addBackgroundLayerTo.prepend(this.elements.$motionFXContainer); } removeBackgroundLayer() { this.elements.$motionFXContainer.remove(); } updateBackgroundLayerSize() { const settings = this.getSettings(), speed = { x: 0, y: 0 }, mouseInteraction = settings.interactions.mouseMove, scrollInteraction = settings.interactions.scroll; if (mouseInteraction && mouseInteraction.translateXY) { speed.x = mouseInteraction.translateXY.speed * 10; speed.y = mouseInteraction.translateXY.speed * 10; } if (scrollInteraction) { if (scrollInteraction.translateX) { speed.x = scrollInteraction.translateX.speed * 10; } if (scrollInteraction.translateY) { speed.y = scrollInteraction.translateY.speed * 10; } } this.elements.$motionFXLayer.css({ width: 100 + speed.x + '%', height: 100 + speed.y + '%' }); } defineDimensions() { const $dimensionsElement = this.getSettings('$dimensionsElement') || this.$element, elementOffset = $dimensionsElement.offset(); const dimensions = { elementHeight: $dimensionsElement.outerHeight(), elementWidth: $dimensionsElement.outerWidth(), elementTop: elementOffset.top, elementLeft: elementOffset.left }; dimensions.elementRange = dimensions.elementHeight + innerHeight; this.setSettings('dimensions', dimensions); if ('background' === this.getSettings('type')) { this.defineBackgroundLayerDimensions(); } } defineBackgroundLayerDimensions() { const dimensions = this.getSettings('dimensions'); dimensions.layerHeight = this.elements.$motionFXLayer.height(); dimensions.layerWidth = this.elements.$motionFXLayer.width(); dimensions.movableX = dimensions.layerWidth - dimensions.elementWidth; dimensions.movableY = dimensions.layerHeight - dimensions.elementHeight; this.setSettings('dimensions', dimensions); } initInteractionsTypes() { this.interactionsTypes = { scroll: _scroll.default, mouseMove: _mouseMove.default }; } prepareSpecialActions() { const settings = this.getSettings(), hasTiltEffect = !!(settings.interactions.mouseMove && settings.interactions.mouseMove.tilt); this.elements.$parent.toggleClass(settings.classes.perspective, hasTiltEffect); } cleanSpecialActions() { const settings = this.getSettings(); this.elements.$parent.removeClass(settings.classes.perspective); } runInteractions() { const settings = this.getSettings(); this.actions.setCSSTransformVariables(settings.elementSettings); this.prepareSpecialActions(); jQuery.each(settings.interactions, (interactionName, actions) => { this.interactions[interactionName] = new this.interactionsTypes[interactionName]({ motionFX: this, callback: (...args) => { jQuery.each(actions, (actionName, actionData) => this.actions.runAction(actionName, actionData, ...args)); } }); this.interactions[interactionName].run(); }); } destroyInteractions() { this.cleanSpecialActions(); jQuery.each(this.interactions, (interactionName, interaction) => interaction.destroy()); this.interactions = {}; } refresh() { this.actions.setSettings(this.getSettings()); if ('background' === this.getSettings('type')) { this.updateBackgroundLayerSize(); this.defineBackgroundLayerDimensions(); } this.actions.refresh(); this.destroyInteractions(); this.runInteractions(); } destroy() { this.destroyInteractions(); this.actions.refresh(); const settings = this.getSettings(); this.$element.removeClass(settings.classes.element); this.elements.$parent.removeClass(settings.classes.parent); if ('background' === settings.type) { this.$element.removeClass(settings.classes.backgroundType); this.removeBackgroundLayer(); } } onInit() { super.onInit(); const settings = this.getSettings(); this.$element = settings.$element; this.elements.$parent = this.$element.parent(); this.$element.addClass(settings.classes.element); this.elements.$parent = this.$element.parent(); this.elements.$parent.addClass(settings.classes.parent); if ('background' === settings.type) { this.$element.addClass(settings.classes.backgroundType); this.addBackgroundLayer(); } this.defineDimensions(); settings.$targetElement = 'element' === settings.type ? this.$element : this.elements.$motionFXLayer; this.interactions = {}; this.actions = new _actions.default(settings); this.initInteractionsTypes(); this.runInteractions(); } } exports["default"] = _default; /***/ }, /***/ "../modules/payments/assets/js/frontend/frontend.js" /*!**********************************************************!*\ !*** ../modules/payments/assets/js/frontend/frontend.js ***! \**********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('paypal-button', () => __webpack_require__.e(/*! import() | paypal-button */ "paypal-button").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/paypal-button */ "../modules/payments/assets/js/frontend/handlers/paypal-button.js"))); elementorFrontend.elementsHandler.attachHandler('stripe-button', () => Promise.all(/*! import() | stripe-button */[__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("stripe-button")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/stripe-button */ "../modules/payments/assets/js/frontend/handlers/stripe-button.js"))); } } exports["default"] = _default; /***/ }, /***/ "../modules/progress-tracker/assets/js/frontend/frontend.js" /*!******************************************************************!*\ !*** ../modules/progress-tracker/assets/js/frontend/frontend.js ***! \******************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('progress-tracker', () => __webpack_require__.e(/*! import() | progress-tracker */ "progress-tracker").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/progress-tracker */ "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js"))); } } exports["default"] = _default; /***/ }, /***/ "../modules/sticky/assets/js/frontend/frontend.js" /*!********************************************************!*\ !*** ../modules/sticky/assets/js/frontend/frontend.js ***! \********************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; 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 _sticky = _interopRequireDefault(__webpack_require__(/*! ./handlers/sticky */ "../modules/sticky/assets/js/frontend/handlers/sticky.js")); class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.elementsHandler.attachHandler('section', _sticky.default, null); elementorFrontend.elementsHandler.attachHandler('container', _sticky.default, null); elementorFrontend.elementsHandler.attachHandler('widget', _sticky.default, null); } } exports["default"] = _default; /***/ }, /***/ "../modules/sticky/assets/js/frontend/handlers/sticky.js" /*!***************************************************************!*\ !*** ../modules/sticky/assets/js/frontend/handlers/sticky.js ***! \***************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _utils = __webpack_require__(/*! elementor-frontend/utils/utils */ "../../elementor/assets/dev/js/frontend/utils/utils.js"); var _default = exports["default"] = elementorModules.frontend.handlers.Base.extend({ currentConfig: {}, debouncedReactivate: null, bindEvents() { elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + 'sticky', 'resize', this.reactivateOnResize); }, unbindEvents() { elementorFrontend.removeListeners(this.getUniqueHandlerID() + 'sticky', 'resize', this.reactivateOnResize); }, isStickyInstanceActive() { return undefined !== this.$element.data('sticky'); }, /** * Get the current active setting value for a responsive control. * * @param {string} setting * @return {any} - Setting value. */ getResponsiveSetting(setting) { const elementSettings = this.getElementSettings(); return elementorFrontend.getCurrentDeviceSetting(elementSettings, setting); }, /** * Return an array of settings names for responsive control (e.g. `settings`, `setting_tablet`, `setting_mobile` ). * * @param {string} setting * @return {string[]} - List of settings. */ getResponsiveSettingList(setting) { const breakpoints = Object.keys(elementorFrontend.config.responsive.activeBreakpoints); return ['', ...breakpoints].map(suffix => { return suffix ? `${setting}_${suffix}` : setting; }); }, getConfig() { const elementSettings = this.getElementSettings(), stickyOptions = { to: elementSettings.sticky, offset: this.getResponsiveSetting('sticky_offset'), effectsOffset: this.getResponsiveSetting('sticky_effects_offset'), classes: { sticky: 'elementor-sticky', stickyActive: 'elementor-sticky--active elementor-section--handles-inside', stickyEffects: 'elementor-sticky--effects', spacer: 'elementor-sticky__spacer' }, isRTL: elementorFrontend.config.is_rtl, isScrollSnapActive: (0, _utils.isScrollSnapActive)(), // In edit mode, since the preview is an iframe, the scrollbar is on the left. The scrollbar width is // compensated for in this case. handleScrollbarWidth: elementorFrontend.isEditMode() }, $wpAdminBar = elementorFrontend.elements.$wpAdminBar, isParentContainer = this.isContainerElement(this.$element[0]) && !this.isContainerElement(this.$element[0].parentElement); if ($wpAdminBar.length && 'top' === elementSettings.sticky && 'fixed' === $wpAdminBar.css('position')) { stickyOptions.offset += $wpAdminBar.height(); } // The `stickyOptions.parent` value should only be applied to inner elements, and not to top level containers. if (elementSettings.sticky_parent && !isParentContainer) { stickyOptions.parent = '.e-con, .e-con-inner, .elementor-widget-wrap'; } return stickyOptions; }, activate() { this.currentConfig = this.getConfig(); this.$element.sticky(this.currentConfig); }, deactivate() { if (!this.isStickyInstanceActive()) { return; } this.$element.sticky('destroy'); }, run(refresh) { if (!this.getElementSettings('sticky')) { this.deactivate(); return; } var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), activeDevices = this.getElementSettings('sticky_on'); if (-1 !== activeDevices.indexOf(currentDeviceMode)) { if (true === refresh) { this.reactivate(); } else if (!this.isStickyInstanceActive()) { this.activate(); } } else { this.deactivate(); } }, /** * Reactivate the sticky instance on resize only if the new sticky config is different from the current active one, * in order to avoid re-initializing the sticky when not needed, and avoid layout shifts. * The config can be different between devices, so this need to be checked on each screen resize to make sure that * the current screen size uses the appropriate Sticky config. * * @return {void} */ reactivateOnResize() { clearTimeout(this.debouncedReactivate); this.debouncedReactivate = setTimeout(() => { const config = this.getConfig(), isDifferentConfig = JSON.stringify(config) !== JSON.stringify(this.currentConfig); if (isDifferentConfig) { this.run(true); } }, 300); }, reactivate() { this.deactivate(); this.activate(); }, onElementChange(settingKey) { if (-1 !== ['sticky', 'sticky_on'].indexOf(settingKey)) { this.run(true); } // Settings that trigger a re-activation when changed. const settings = [...this.getResponsiveSettingList('sticky_offset'), ...this.getResponsiveSettingList('sticky_effects_offset'), 'sticky_parent']; if (-1 !== settings.indexOf(settingKey)) { this.reactivate(); } }, /** * Listen to device mode changes and re-initialize the sticky. * * @return {void} */ onDeviceModeChange() { // Wait for the call stack to be empty. // The `run` function requests the current device mode from the CSS so it's not ready immediately. // (need to wait for the `deviceMode` event to change the CSS). // See `elementorFrontend.getCurrentDeviceMode()` for reference. setTimeout(() => this.run(true)); }, onInit() { elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); if (elementorFrontend.isEditMode()) { elementor.listenTo(elementor.channels.deviceMode, 'change', () => this.onDeviceModeChange()); } this.run(); }, onDestroy() { elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments); this.deactivate(); }, /** * * @param {HTMLElement|null|undefined} element * @return {boolean} Is the passed element a container. */ isContainerElement(element) { const containerClasses = ['e-con', 'e-con-inner']; return containerClasses.some(containerClass => { return element?.classList.contains(containerClass); }); } }); /***/ }, /***/ "../modules/video-playlist/assets/js/frontend/frontend.js" /*!****************************************************************!*\ !*** ../modules/video-playlist/assets/js/frontend/frontend.js ***! \****************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class _default extends elementorModules.Module { constructor() { super(); elementorFrontend.hooks.addAction('frontend/element_ready/video-playlist.default', $element => { __webpack_require__.e(/*! import() | video-playlist */ "video-playlist").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/video-playlist/assets/js/frontend/handler.js")).then(({ default: dynamicHandler }) => { elementorFrontend.elementsHandler.addHandler(dynamicHandler, { $element, toggleSelf: false }); }); }); } } exports["default"] = _default; /***/ }, /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js" /*!***********************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \***********************************************************************/ (module) { function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ } }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ var __webpack_exports__ = (__webpack_exec__("../assets/dev/js/frontend/frontend.js")); /******/ } ]); //# sourceMappingURL=frontend.js.map
Save
cmd:
run