PageSourceSearch

https://www.subaru.es/blog/wp-content/plugins/elementor-pro/assets/js/frontend.js?ver=3.12.0

js subaru.es collected 2026-10-02 11:40:52 UTC 55,845 bytes, 1,479 lines download raw bytes

1/*! elementor-pro - v3.12.0 - 29-03-2023 */
2(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["frontend"],{
3
4/***/ "../assets/dev/js/frontend/frontend.js":
5/*!*********************************************!*\
6  !*** ../assets/dev/js/frontend/frontend.js ***!
7  \*********************************************/
8/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
9
10"use strict";
11
12
13var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
14__webpack_require__(/*! ../public-path */ "../assets/dev/js/public-path.js");
15var _frontend = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/motion-fx/assets/js/frontend/frontend */ "../modules/motion-fx/assets/js/frontend/frontend.js"));
16var _frontend2 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/sticky/assets/js/frontend/frontend */ "../modules/sticky/assets/js/frontend/frontend.js"));
17var _frontend3 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/code-highlight/assets/js/frontend/frontend */ "../modules/code-highlight/assets/js/frontend/frontend.js"));
18var _frontend4 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/video-playlist/assets/js/frontend/frontend */ "../modules/video-playlist/assets/js/frontend/frontend.js"));
19var _frontend5 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/payments/assets/js/frontend/frontend */ "../modules/payments/assets/js/frontend/frontend.js"));
20var _frontend6 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/progress-tracker/assets/js/frontend/frontend */ "../modules/progress-tracker/assets/js/frontend/frontend.js"));
21var _controls = _interopRequireDefault(__webpack_require__(/*! ./utils/controls */ "../assets/dev/js/frontend/utils/controls.js"));
22var _dropdownMenuHeightController = _interopRequireDefault(__webpack_require__(/*! ./utils/dropdown-menu-height-controller */ "../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js"));
23class ElementorProFrontend extends elementorModules.ViewModule {
24  onInit() {
25    super.onInit();
26    this.config = ElementorProFrontendConfig;
27    this.modules = {};
28    this.initOnReadyComponents();
29  }
30  bindEvents() {
31    jQuery(window).on('elementor/frontend/init', this.onElementorFrontendInit.bind(this));
32  }
33  initModules() {
34    // Handlers that should be available by default for sections usage.
35    let handlers = {
36      motionFX: _frontend.default,
37      sticky: _frontend2.default,
38      codeHighlight: _frontend3.default,
39      videoPlaylist: _frontend4.default,
40      payments: _frontend5.default,
41      progressTracker: _frontend6.default
42    };
43
44    // Keep this line before applying filter on the handlers.
45    // TODO: BC - Deprecated since 3.7.0
46    elementorProFrontend.trigger('elementor-pro/modules/init:before');
47
48    // TODO: Use this instead.
49    elementorProFrontend.trigger('elementor-pro/modules/init/before');
50    handlers = elementorFrontend.hooks.applyFilters('elementor-pro/frontend/handlers', handlers);
51    jQuery.each(handlers, (moduleName, ModuleClass) => {
52      this.modules[moduleName] = new ModuleClass();
53    });
54
55    // TODO: BC Since 2.9.0
56    this.modules.linkActions = {
57      addAction: function () {
58        elementorFrontend.utils.urlActions.addAction(...arguments);
59      }
60    };
61  }
62  onElementorFrontendInit() {
63    this.initModules();
64  }
65  initOnReadyComponents() {
66    this.utils = {
67      controls: new _controls.default(),
68      DropdownMenuHeightController: _dropdownMenuHeightController.default
69    };
70  }
71}
72window.elementorProFrontend = new ElementorProFrontend();
73
74/***/ }),
75
76/***/ "../assets/dev/js/frontend/utils/controls.js":
77/*!***************************************************!*\
78  !*** ../assets/dev/js/frontend/utils/controls.js ***!
79  \***************************************************/
80/***/ ((__unused_webpack_module, exports) => {
81
82"use strict";
83
84
85Object.defineProperty(exports, "__esModule", ({
86  value: true
87}));
88exports["default"] = void 0;
89class Controls {
90  /**
91   * Get Control Value
92   *
93   * Retrieves a control value.
94   * This function has been copied from `elementor/assets/dev/js/editor/utils/conditions.js`.
95   *
96   * @since 3.11.0
97   *
98   * @param {{}}     controlSettings A settings object (e.g. element settings - keys and values)
99   * @param {string} controlKey      The control key name
100   * @param {string} controlSubKey   A specific property of the control object.
101   * @return {*} Control Value
102   */
103  getControlValue(controlSettings, controlKey, controlSubKey) {
104    let value;
105    if ('object' === typeof controlSettings[controlKey] && controlSubKey) {
106      value = controlSettings[controlKey][controlSubKey];
107    } else {
108      value = controlSettings[controlKey];
109    }
110    return value;
111  }
112
113  /**
114   * Get the value of a responsive control.
115   *
116   * Retrieves the value of a responsive control for the current device or for this first parent device which has a control value.
117   *
118   * @since 3.11.0
119   *
120   * @param {{}}     controlSettings A settings object (e.g. element settings - keys and values)
121   * @param {string} controlKey      The control key name
122   * @param {string} controlSubKey   A specific property of the control object.
123   * @return {*} Control Value
124   */
125  getResponsiveControlValue(controlSettings, controlKey) {
126    let controlSubKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
127    const currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
128      controlValueDesktop = this.getControlValue(controlSettings, controlKey, controlSubKey);
129
130    // Set the control value for the current device mode.
131    // First check the widescreen device mode.
132    if ('widescreen' === currentDeviceMode) {
133      const controlValueWidescreen = this.getControlValue(controlSettings, `${controlKey}_widescreen`, controlSubKey);
134      return !!controlValueWidescreen || 0 === controlValueWidescreen ? controlValueWidescreen : controlValueDesktop;
135    }
136
137    // Loop through all responsive and desktop device modes.
138    const activeBreakpoints = elementorFrontend.breakpoints.getActiveBreakpointsList({
139      withDesktop: true
140    });
141    let parentDeviceMode = currentDeviceMode,
142      deviceIndex = activeBreakpoints.indexOf(currentDeviceMode),
143      controlValue = '';
144    while (deviceIndex <= activeBreakpoints.length) {
145      if ('desktop' === parentDeviceMode) {
146        controlValue = controlValueDesktop;
147        break;
148      }
149      const responsiveControlKey = `${controlKey}_${parentDeviceMode}`,
150        responsiveControlValue = this.getControlValue(controlSettings, responsiveControlKey, controlSubKey);
151      if (!!responsiveControlValue || 0 === responsiveControlValue) {
152        controlValue = responsiveControlValue;
153        break;
154      }
155
156      // If no control value has been set for the current device mode, then check the parent device mode.
157      deviceIndex++;
158      parentDeviceMode = activeBreakpoints[deviceIndex];
159    }
160    return controlValue;
161  }
162}
163exports["default"] = Controls;
164
165/***/ }),
166
167/***/ "../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js":
168/*!**************************************************************************!*\
169  !*** ../assets/dev/js/frontend/utils/dropdown-menu-height-controller.js ***!
170  \**************************************************************************/
171/***/ ((__unused_webpack_module, exports) => {
172
173"use strict";
174
175
176Object.defineProperty(exports, "__esModule", ({
177  value: true
178}));
179exports["default"] = void 0;
180class DropdownMenuHeightController {
181  constructor(widgetConfig) {
182    this.widgetConfig = widgetConfig;
183  }
184  calculateStickyMenuNavHeight() {
185    const menuToggleHeight = this.widgetConfig.elements.$dropdownMenuContainer.offset().top - jQuery(window).scrollTop();
186    return elementorFrontend.elements.$window.height() - menuToggleHeight;
187  }
188  isElementSticky() {
189    return this.widgetConfig.elements.$element.hasClass('elementor-sticky') || this.widgetConfig.elements.$element.parents('.elementor-sticky').length;
190  }
191  getMenuHeight() {
192    return this.isElementSticky() ? this.calculateStickyMenuNavHeight() + 'px' : this.widgetConfig.settings.dropdownMenuContainerMaxHeight;
193  }
194  setMenuHeight(menuHeight) {
195    this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, menuHeight);
196  }
197  reassignMobileMenuHeight() {
198    const menuHeight = this.widgetConfig.elements.$menuToggle.hasClass(this.widgetConfig.classes.menuToggleActiveClass) ? this.getMenuHeight() : 0;
199    return this.setMenuHeight(menuHeight);
200  }
201}
202exports["default"] = DropdownMenuHeightController;
203
204/***/ }),
205
206/***/ "../assets/dev/js/public-path.js":
207/*!***************************************!*\
208  !*** ../assets/dev/js/public-path.js ***!
209  \***************************************/
210/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
211
212"use strict";
213
214
215/* eslint-disable camelcase */
216__webpack_require__.p = ElementorProFrontendConfig.urls.assets + 'js/';
217
218/***/ }),
219
220/***/ "../modules/code-highlight/assets/js/frontend/frontend.js":
221/*!****************************************************************!*\
222  !*** ../modules/code-highlight/assets/js/frontend/frontend.js ***!
223  \****************************************************************/
224/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
225
226"use strict";
227
228
229Object.defineProperty(exports, "__esModule", ({
230  value: true
231}));
232exports["default"] = void 0;
233class _default extends elementorModules.Module {
234  constructor() {
235    super();
236    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")));
237  }
238}
239exports["default"] = _default;
240
241/***/ }),
242
243/***/ "../modules/motion-fx/assets/js/frontend/frontend.js":
244/*!***********************************************************!*\
245  !*** ../modules/motion-fx/assets/js/frontend/frontend.js ***!
246  \***********************************************************/
247/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
248
249"use strict";
250
251
252var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
253Object.defineProperty(exports, "__esModule", ({
254  value: true
255}));
256exports["default"] = void 0;
257var _handler = _interopRequireDefault(__webpack_require__(/*! ./handler */ "../modules/motion-fx/assets/js/frontend/handler.js"));
258class _default extends elementorModules.Module {
259  constructor() {
260    super();
261    elementorFrontend.elementsHandler.attachHandler('global', _handler.default, null);
262  }
263}
264exports["default"] = _default;
265
266/***/ }),
267
268/***/ "../modules/motion-fx/assets/js/frontend/handler.js":
269/*!**********************************************************!*\
270  !*** ../modules/motion-fx/assets/js/frontend/handler.js ***!
271  \**********************************************************/
272/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
273
274"use strict";
275
276
277var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
278Object.defineProperty(exports, "__esModule", ({
279  value: true
280}));
281exports["default"] = void 0;
282var _motionFx = _interopRequireDefault(__webpack_require__(/*! ./motion-fx/motion-fx */ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js"));
283class _default extends elementorModules.frontend.handlers.Base {
284  __construct() {
285    super.__construct(...arguments);
286    this.toggle = elementorFrontend.debounce(this.toggle, 200);
287  }
288  getDefaultSettings() {
289    return {
290      selectors: {
291        container: '.elementor-widget-container'
292      }
293    };
294  }
295  getDefaultElements() {
296    const selectors = this.getSettings('selectors');
297    return {
298      $container: this.$element.find(selectors.container)
299    };
300  }
301  bindEvents() {
302    elementorFrontend.elements.$window.on('resize', this.toggle);
303  }
304  unbindEvents() {
305    elementorFrontend.elements.$window.off('resize', this.toggle);
306  }
307  addCSSTransformEvents() {
308    // Remove CSS transition variable that assigned from scroll.js in order to allow the transition of the CSS-Transform.
309    const motionFxScrolling = this.getElementSettings('motion_fx_motion_fx_scrolling');
310    if (motionFxScrolling && !this.isTransitionEventAdded) {
311      this.isTransitionEventAdded = true;
312      this.elements.$container.on('mouseenter', () => {
313        this.elements.$container.css('--e-transform-transition-duration', '');
314      });
315    }
316  }
317  initEffects() {
318    this.effects = {
319      translateY: {
320        interaction: 'scroll',
321        actions: ['translateY']
322      },
323      translateX: {
324        interaction: 'scroll',
325        actions: ['translateX']
326      },
327      rotateZ: {
328        interaction: 'scroll',
329        actions: ['rotateZ']
330      },
331      scale: {
332        interaction: 'scroll',
333        actions: ['scale']
334      },
335      opacity: {
336        interaction: 'scroll',
337        actions: ['opacity']
338      },
339      blur: {
340        interaction: 'scroll',
341        actions: ['blur']
342      },
343      mouseTrack: {
344        interaction: 'mouseMove',
345        actions: ['translateXY']
346      },
347      tilt: {
348        interaction: 'mouseMove',
349        actions: ['tilt']
350      }
351    };
352  }
353  prepareOptions(name) {
354    const elementSettings = this.getElementSettings(),
355      type = 'motion_fx' === name ? 'element' : 'background',
356      interactions = {};
357    jQuery.each(elementSettings, (key, value) => {
358      const keyRegex = new RegExp('^' + name + '_(.+?)_effect'),
359        keyMatches = key.match(keyRegex);
360      if (!keyMatches || !value) {
361        return;
362      }
363      const options = {},
364        effectName = keyMatches[1];
365      jQuery.each(elementSettings, (subKey, subValue) => {
366        const subKeyRegex = new RegExp(name + '_' + effectName + '_(.+)'),
367          subKeyMatches = subKey.match(subKeyRegex);
368        if (!subKeyMatches) {
369          return;
370        }
371        const subFieldName = subKeyMatches[1];
372        if ('effect' === subFieldName) {
373          return;
374        }
375        if ('object' === typeof subValue) {
376          subValue = Object.keys(subValue.sizes).length ? subValue.sizes : subValue.size;
377        }
378        options[subKeyMatches[1]] = subValue;
379      });
380      const effect = this.effects[effectName],
381        interactionName = effect.interaction;
382      if (!interactions[interactionName]) {
383        interactions[interactionName] = {};
384      }
385      effect.actions.forEach(action => interactions[interactionName][action] = options);
386    });
387    let $element = this.$element,
388      $dimensionsElement;
389    const elementType = this.getElementType();
390    if ('element' === type && !['section', 'container'].includes(elementType)) {
391      $dimensionsElement = $element;
392      let childElementSelector;
393      if ('column' === elementType) {
394        childElementSelector = elementorFrontend.config.legacyMode.elementWrappers ? '.elementor-column-wrap' : '.elementor-widget-wrap';
395      } else {
396        childElementSelector = '.elementor-widget-container';
397      }
398      $element = $element.find('> ' + childElementSelector);
399    }
400    const options = {
401      type,
402      interactions,
403      elementSettings,
404      $element,
405      $dimensionsElement,
406      refreshDimensions: this.isEdit,
407      range: elementSettings[name + '_range'],
408      classes: {
409        element: 'elementor-motion-effects-element',
410        parent: 'elementor-motion-effects-parent',
411        backgroundType: 'elementor-motion-effects-element-type-background',
412        container: 'elementor-motion-effects-container',
413        layer: 'elementor-motion-effects-layer',
414        perspective: 'elementor-motion-effects-perspective'
415      }
416    };
417    if (!options.range && 'fixed' === this.getCurrentDeviceSetting('_position')) {
418      options.range = 'page';
419    }
420    if ('fixed' === this.getCurrentDeviceSetting('_position')) {
421      options.isFixedPosition = true;
422    }
423    if ('background' === type && 'column' === this.getElementType()) {
424      options.addBackgroundLayerTo = ' > .elementor-element-populated';
425    }
426    return options;
427  }
428  activate(name) {
429    const options = this.prepareOptions(name);
430    if (jQuery.isEmptyObject(options.interactions)) {
431      return;
432    }
433    this[name] = new _motionFx.default(options);
434  }
435  deactivate(name) {
436    if (this[name]) {
437      this[name].destroy();
438      delete this[name];
439    }
440  }
441  toggle() {
442    const currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
443      elementSettings = this.getElementSettings();
444    ['motion_fx', 'background_motion_fx'].forEach(name => {
445      const devices = elementSettings[name + '_devices'],
446        isCurrentModeActive = !devices || -1 !== devices.indexOf(currentDeviceMode);
447      if (isCurrentModeActive && (elementSettings[name + '_motion_fx_scrolling'] || elementSettings[name + '_motion_fx_mouse'])) {
448        if (this[name]) {
449          this.refreshInstance(name);
450        } else {
451          this.activate(name);
452        }
453      } else {
454        this.deactivate(name);
455      }
456    });
457  }
458  refreshInstance(instanceName) {
459    const instance = this[instanceName];
460    if (!instance) {
461      return;
462    }
463    const preparedOptions = this.prepareOptions(instanceName);
464    instance.setSettings(preparedOptions);
465    instance.refresh();
466  }
467  onInit() {
468    super.onInit();
469    this.initEffects();
470    this.addCSSTransformEvents();
471    this.toggle();
472  }
473  onElementChange(propertyName) {
474    if (/motion_fx_((scrolling)|(mouse)|(devices))$/.test(propertyName)) {
475      if ('motion_fx_motion_fx_scrolling' === propertyName) {
476        this.addCSSTransformEvents();
477      }
478      this.toggle();
479      return;
480    }
481    const propertyMatches = propertyName.match('.*?(motion_fx|_transform)');
482    if (propertyMatches) {
483      const instanceName = propertyMatches[0].match('(_transform)') ? 'motion_fx' : propertyMatches[0];
484      this.refreshInstance(instanceName);
485      if (!this[instanceName]) {
486        this.activate(instanceName);
487      }
488    }
489    if (/^_position/.test(propertyName)) {
490      ['motion_fx', 'background_motion_fx'].forEach(instanceName => {
491        this.refreshInstance(instanceName);
492      });
493    }
494  }
495  onDestroy() {
496    super.onDestroy();
497    ['motion_fx', 'background_motion_fx'].forEach(name => {
498      this.deactivate(name);
499    });
500  }
501}
502exports["default"] = _default;
503
504/***/ }),
505
506/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js":
507/*!********************************************************************!*\
508  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/actions.js ***!
509  \********************************************************************/
510/***/ ((__unused_webpack_module, exports) => {
511
512"use strict";
513
514
515Object.defineProperty(exports, "__esModule", ({
516  value: true
517}));
518exports["default"] = void 0;
519class _default extends elementorModules.Module {
520  getMovePointFromPassedPercents(movableRange, passedPercents) {
521    const movePoint = passedPercents / movableRange * 100;
522    return +movePoint.toFixed(2);
523  }
524  getEffectValueFromMovePoint(range, movePoint) {
525    return range * movePoint / 100;
526  }
527  getStep(passedPercents, options) {
528    if ('element' === this.getSettings('type')) {
529      return this.getElementStep(passedPercents, options);
530    }
531    return this.getBackgroundStep(passedPercents, options);
532  }
533  getElementStep(passedPercents, options) {
534    return -(passedPercents - 50) * options.speed;
535  }
536  getBackgroundStep(passedPercents, options) {
537    const movableRange = this.getSettings('dimensions.movable' + options.axis.toUpperCase());
538    return -this.getEffectValueFromMovePoint(movableRange, passedPercents);
539  }
540  getDirectionMovePoint(passedPercents, direction, range) {
541    let movePoint;
542    if (passedPercents < range.start) {
543      if ('out-in' === direction) {
544        movePoint = 0;
545      } else if ('in-out' === direction) {
546        movePoint = 100;
547      } else {
548        movePoint = this.getMovePointFromPassedPercents(range.start, passedPercents);
549        if ('in-out-in' === direction) {
550          movePoint = 100 - movePoint;
551        }
552      }
553    } else if (passedPercents < range.end) {
554      if ('in-out-in' === direction) {
555        movePoint = 0;
556      } else if ('out-in-out' === direction) {
557        movePoint = 100;
558      } else {
559        movePoint = this.getMovePointFromPassedPercents(range.end - range.start, passedPercents - range.start);
560        if ('in-out' === direction) {
561          movePoint = 100 - movePoint;
562        }
563      }
564    } else if ('in-out' === direction) {
565      movePoint = 0;
566    } else if ('out-in' === direction) {
567      movePoint = 100;
568    } else {
569      movePoint = this.getMovePointFromPassedPercents(100 - range.end, 100 - passedPercents);
570      if ('in-out-in' === direction) {
571        movePoint = 100 - movePoint;
572      }
573    }
574    return movePoint;
575  }
576  translateX(actionData, passedPercents) {
577    actionData.axis = 'x';
578    actionData.unit = 'px';
579    this.transform('translateX', passedPercents, actionData);
580  }
581  translateY(actionData, passedPercents) {
582    actionData.axis = 'y';
583    actionData.unit = 'px';
584    this.transform('translateY', passedPercents, actionData);
585  }
586  translateXY(actionData, passedPercentsX, passedPercentsY) {
587    this.translateX(actionData, passedPercentsX);
588    this.translateY(actionData, passedPercentsY);
589  }
590  tilt(actionData, passedPercentsX, passedPercentsY) {
591    const options = {
592      speed: actionData.speed / 10,
593      direction: actionData.direction
594    };
595    this.rotateX(options, passedPercentsY);
596    this.rotateY(options, 100 - passedPercentsX);
597  }
598  rotateX(actionData, passedPercents) {
599    actionData.axis = 'x';
600    actionData.unit = 'deg';
601    this.transform('rotateX', passedPercents, actionData);
602  }
603  rotateY(actionData, passedPercents) {
604    actionData.axis = 'y';
605    actionData.unit = 'deg';
606    this.transform('rotateY', passedPercents, actionData);
607  }
608  rotateZ(actionData, passedPercents) {
609    actionData.unit = 'deg';
610    this.transform('rotateZ', passedPercents, actionData);
611  }
612  scale(actionData, passedPercents) {
613    const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range);
614    this.updateRulePart('transform', 'scale', 1 + actionData.speed * movePoint / 1000);
615  }
616  transform(action, passedPercents, actionData) {
617    if (actionData.direction) {
618      passedPercents = 100 - passedPercents;
619    }
620    this.updateRulePart('transform', action, this.getStep(passedPercents, actionData) + actionData.unit);
621  }
622  setCSSTransformVariables(elementSettings) {
623    this.CSSTransformVariables = [];
624    jQuery.each(elementSettings, (settingKey, settingValue) => {
625      const transformKeyMatches = settingKey.match(/_transform_(.+?)_effect/m);
626      if (transformKeyMatches && settingValue) {
627        if ('perspective' === transformKeyMatches[1]) {
628          this.CSSTransformVariables.unshift(transformKeyMatches[1]);
629          return;
630        }
631        if (this.CSSTransformVariables.includes(transformKeyMatches[1])) {
632          return;
633        }
634        this.CSSTransformVariables.push(transformKeyMatches[1]);
635      }
636    });
637  }
638  opacity(actionData, passedPercents) {
639    const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
640      level = actionData.level / 10,
641      opacity = 1 - level + this.getEffectValueFromMovePoint(level, movePoint);
642    this.$element.css({
643      opacity,
644      'will-change': 'opacity'
645    });
646  }
647  blur(actionData, passedPercents) {
648    const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
649      blur = actionData.level - this.getEffectValueFromMovePoint(actionData.level, movePoint);
650    this.updateRulePart('filter', 'blur', blur + 'px');
651  }
652  updateRulePart(ruleName, key, value) {
653    if (!this.rulesVariables[ruleName]) {
654      this.rulesVariables[ruleName] = {};
655    }
656    if (!this.rulesVariables[ruleName][key]) {
657      this.rulesVariables[ruleName][key] = true;
658      this.updateRule(ruleName);
659    }
660    const cssVarKey = `--${key}`;
661    this.$element[0].style.setProperty(cssVarKey, value);
662  }
663  updateRule(ruleName) {
664    let value = '';
665    value += this.concatTransformCSSProperties(ruleName);
666    value += this.concatTransformMotionEffectCSSProperties(ruleName);
667    this.$element.css(ruleName, value);
668  }
669  concatTransformCSSProperties(ruleName) {
670    let value = '';
671    if ('transform' === ruleName) {
672      jQuery.each(this.CSSTransformVariables, (index, variableKey) => {
673        const variableName = variableKey;
674        if (variableKey.startsWith('flip')) {
675          variableKey = variableKey.replace('flip', 'scale');
676        }
677
678        // Adding default value because of the hover state. if there is no default the transform will break.
679        const defaultUnit = variableKey.startsWith('rotate') || variableKey.startsWith('skew') ? 'deg' : 'px',
680          defaultValue = variableKey.startsWith('scale') ? 1 : 0 + defaultUnit;
681        value += `${variableKey}(var(--e-transform-${variableName}, ${defaultValue}))`;
682      });
683    }
684    return value;
685  }
686  concatTransformMotionEffectCSSProperties(ruleName) {
687    let value = '';
688    jQuery.each(this.rulesVariables[ruleName], variableKey => {
689      value += `${variableKey}(var(--${variableKey}))`;
690    });
691    return value;
692  }
693  runAction(actionName, actionData, passedPercents) {
694    if (actionData.affectedRange) {
695      if (actionData.affectedRange.start > passedPercents) {
696        passedPercents = actionData.affectedRange.start;
697      }
698      if (actionData.affectedRange.end < passedPercents) {
699        passedPercents = actionData.affectedRange.end;
700      }
701    }
702    for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
703      args[_key - 3] = arguments[_key];
704    }
705    this[actionName](actionData, passedPercents, ...args);
706  }
707  refresh() {
708    this.rulesVariables = {};
709    this.CSSTransformVariables = [];
710    this.$element.css({
711      transform: '',
712      filter: '',
713      opacity: '',
714      'will-change': ''
715    });
716  }
717  onInit() {
718    this.$element = this.getSettings('$targetElement');
719    this.refresh();
720  }
721}
722exports["default"] = _default;
723
724/***/ }),
725
726/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js":
727/*!******************************************************************************!*\
728  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js ***!
729  \******************************************************************************/
730/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
731
732"use strict";
733
734
735var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
736Object.defineProperty(exports, "__esModule", ({
737  value: true
738}));
739exports["default"] = void 0;
740var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
741class _default extends elementorModules.ViewModule {
742  constructor() {
743    super(...arguments);
744    (0, _defineProperty2.default)(this, "onInsideViewport", () => {
745      this.run();
746      this.animationFrameRequest = requestAnimationFrame(this.onInsideViewport);
747    });
748  }
749  __construct(options) {
750    this.motionFX = options.motionFX;
751    if (!this.intersectionObservers) {
752      this.setElementInViewportObserver();
753    }
754  }
755  setElementInViewportObserver() {
756    this.intersectionObserver = elementorModules.utils.Scroll.scrollObserver({
757      callback: event => {
758        if (event.isInViewport) {
759          this.onInsideViewport();
760        } else {
761          this.removeAnimationFrameRequest();
762        }
763      }
764    });
765
766    // Determine which element we should observe.
767    const observedElement = 'page' === this.motionFX.getSettings('range') ? elementorFrontend.elements.$body[0] : this.motionFX.elements.$parent[0];
768    this.intersectionObserver.observe(observedElement);
769  }
770  runCallback() {
771    const callback = this.getSettings('callback');
772    callback(...arguments);
773  }
774  removeIntersectionObserver() {
775    if (this.intersectionObserver) {
776      this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0]);
777    }
778  }
779  removeAnimationFrameRequest() {
780    if (this.animationFrameRequest) {
781      cancelAnimationFrame(this.animationFrameRequest);
782    }
783  }
784  destroy() {
785    this.removeAnimationFrameRequest();
786    this.removeIntersectionObserver();
787  }
788  onInit() {
789    super.onInit();
790  }
791}
792exports["default"] = _default;
793
794/***/ }),
795
796/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js":
797/*!************************************************************************************!*\
798  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js ***!
799  \************************************************************************************/
800/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
801
802"use strict";
803
804
805var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
806Object.defineProperty(exports, "__esModule", ({
807  value: true
808}));
809exports["default"] = void 0;
810var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js"));
811class MouseMoveInteraction extends _base.default {
812  bindEvents() {
813    if (!MouseMoveInteraction.mouseTracked) {
814      elementorFrontend.elements.$window.on('mousemove', MouseMoveInteraction.updateMousePosition);
815      MouseMoveInteraction.mouseTracked = true;
816    }
817  }
818  run() {
819    const mousePosition = MouseMoveInteraction.mousePosition,
820      oldMousePosition = this.oldMousePosition;
821    if (oldMousePosition.x === mousePosition.x && oldMousePosition.y === mousePosition.y) {
822      return;
823    }
824    this.oldMousePosition = {
825      x: mousePosition.x,
826      y: mousePosition.y
827    };
828    const passedPercentsX = 100 / innerWidth * mousePosition.x,
829      passedPercentsY = 100 / innerHeight * mousePosition.y;
830    this.runCallback(passedPercentsX, passedPercentsY);
831  }
832  onInit() {
833    this.oldMousePosition = {};
834    super.onInit();
835  }
836}
837exports["default"] = MouseMoveInteraction;
838MouseMoveInteraction.mousePosition = {};
839MouseMoveInteraction.updateMousePosition = event => {
840  MouseMoveInteraction.mousePosition = {
841    x: event.clientX,
842    y: event.clientY
843  };
844};
845
846/***/ }),
847
848/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js":
849/*!********************************************************************************!*\
850  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js ***!
851  \********************************************************************************/
852/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
853
854"use strict";
855
856
857var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
858Object.defineProperty(exports, "__esModule", ({
859  value: true
860}));
861exports["default"] = void 0;
862var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js"));
863class _default extends _base.default {
864  run() {
865    if (pageYOffset === this.windowScrollTop) {
866      return false;
867    }
868    this.onScrollMovement();
869    this.windowScrollTop = pageYOffset;
870  }
871  onScrollMovement() {
872    this.updateMotionFxDimensions();
873    this.updateAnimation();
874    this.resetTransitionVariable();
875  }
876  resetTransitionVariable() {
877    this.motionFX.$element.css('--e-transform-transition-duration', '100ms');
878  }
879  updateMotionFxDimensions() {
880    const motionFXSettings = this.motionFX.getSettings();
881    if (motionFXSettings.refreshDimensions) {
882      this.motionFX.defineDimensions();
883    }
884  }
885  updateAnimation() {
886    let passedRangePercents;
887    if ('page' === this.motionFX.getSettings('range')) {
888      passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage();
889    } else if (this.motionFX.getSettings('isFixedPosition')) {
890      passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage({}, window.innerHeight);
891    } else {
892      passedRangePercents = elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent);
893    }
894    this.runCallback(passedRangePercents);
895  }
896}
897exports["default"] = _default;
898
899/***/ }),
900
901/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js":
902/*!**********************************************************************!*\
903  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js ***!
904  \**********************************************************************/
905/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
906
907"use strict";
908
909
910var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
911Object.defineProperty(exports, "__esModule", ({
912  value: true
913}));
914exports["default"] = void 0;
915var _scroll = _interopRequireDefault(__webpack_require__(/*! ./interactions/scroll */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js"));
916var _mouseMove = _interopRequireDefault(__webpack_require__(/*! ./interactions/mouse-move */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js"));
917var _actions = _interopRequireDefault(__webpack_require__(/*! ./actions */ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js"));
918class _default extends elementorModules.ViewModule {
919  getDefaultSettings() {
920    return {
921      type: 'element',
922      $element: null,
923      $dimensionsElement: null,
924      addBackgroundLayerTo: null,
925      interactions: {},
926      refreshDimensions: false,
927      range: 'viewport',
928      classes: {
929        element: 'motion-fx-element',
930        parent: 'motion-fx-parent',
931        backgroundType: 'motion-fx-element-type-background',
932        container: 'motion-fx-container',
933        layer: 'motion-fx-layer',
934        perspective: 'motion-fx-perspective'
935      }
936    };
937  }
938  bindEvents() {
939    this.defineDimensions = this.defineDimensions.bind(this);
940    elementorFrontend.elements.$window.on('resize elementor-pro/motion-fx/recalc', this.defineDimensions);
941  }
942  unbindEvents() {
943    elementorFrontend.elements.$window.off('resize elementor-pro/motion-fx/recalc', this.defineDimensions);
944  }
945  addBackgroundLayer() {
946    const settings = this.getSettings();
947    this.elements.$motionFXContainer = jQuery('<div>', {
948      class: settings.classes.container
949    });
950    this.elements.$motionFXLayer = jQuery('<div>', {
951      class: settings.classes.layer
952    });
953    this.updateBackgroundLayerSize();
954    this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer);
955    const $addBackgroundLayerTo = settings.addBackgroundLayerTo ? this.$element.find(settings.addBackgroundLayerTo) : this.$element;
956    $addBackgroundLayerTo.prepend(this.elements.$motionFXContainer);
957  }
958  removeBackgroundLayer() {
959    this.elements.$motionFXContainer.remove();
960  }
961  updateBackgroundLayerSize() {
962    const settings = this.getSettings(),
963      speed = {
964        x: 0,
965        y: 0
966      },
967      mouseInteraction = settings.interactions.mouseMove,
968      scrollInteraction = settings.interactions.scroll;
969    if (mouseInteraction && mouseInteraction.translateXY) {
970      speed.x = mouseInteraction.translateXY.speed * 10;
971      speed.y = mouseInteraction.translateXY.speed * 10;
972    }
973    if (scrollInteraction) {
974      if (scrollInteraction.translateX) {
975        speed.x = scrollInteraction.translateX.speed * 10;
976      }
977      if (scrollInteraction.translateY) {
978        speed.y = scrollInteraction.translateY.speed * 10;
979      }
980    }
981    this.elements.$motionFXLayer.css({
982      width: 100 + speed.x + '%',
983      height: 100 + speed.y + '%'
984    });
985  }
986  defineDimensions() {
987    const $dimensionsElement = this.getSettings('$dimensionsElement') || this.$element,
988      elementOffset = $dimensionsElement.offset();
989    const dimensions = {
990      elementHeight: $dimensionsElement.outerHeight(),
991      elementWidth: $dimensionsElement.outerWidth(),
992      elementTop: elementOffset.top,
993      elementLeft: elementOffset.left
994    };
995    dimensions.elementRange = dimensions.elementHeight + innerHeight;
996    this.setSettings('dimensions', dimensions);
997    if ('background' === this.getSettings('type')) {
998      this.defineBackgroundLayerDimensions();
999    }
1000  }
1001  defineBackgroundLayerDimensions() {
1002    const dimensions = this.getSettings('dimensions');
1003    dimensions.layerHeight = this.elements.$motionFXLayer.height();
1004    dimensions.layerWidth = this.elements.$motionFXLayer.width();
1005    dimensions.movableX = dimensions.layerWidth - dimensions.elementWidth;
1006    dimensions.movableY = dimensions.layerHeight - dimensions.elementHeight;
1007    this.setSettings('dimensions', dimensions);
1008  }
1009  initInteractionsTypes() {
1010    this.interactionsTypes = {
1011      scroll: _scroll.default,
1012      mouseMove: _mouseMove.default
1013    };
1014  }
1015  prepareSpecialActions() {
1016    const settings = this.getSettings(),
1017      hasTiltEffect = !!(settings.interactions.mouseMove && settings.interactions.mouseMove.tilt);
1018    this.elements.$parent.toggleClass(settings.classes.perspective, hasTiltEffect);
1019  }
1020  cleanSpecialActions() {
1021    const settings = this.getSettings();
1022    this.elements.$parent.removeClass(settings.classes.perspective);
1023  }
1024  runInteractions() {
1025    var _this = this;
1026    const settings = this.getSettings();
1027    this.actions.setCSSTransformVariables(settings.elementSettings);
1028    this.prepareSpecialActions();
1029    jQuery.each(settings.interactions, (interactionName, actions) => {
1030      this.interactions[interactionName] = new this.interactionsTypes[interactionName]({
1031        motionFX: this,
1032        callback: function () {
1033          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1034            args[_key] = arguments[_key];
1035          }
1036          jQuery.each(actions, (actionName, actionData) => _this.actions.runAction(actionName, actionData, ...args));
1037        }
1038      });
1039      this.interactions[interactionName].run();
1040    });
1041  }
1042  destroyInteractions() {
1043    this.cleanSpecialActions();
1044    jQuery.each(this.interactions, (interactionName, interaction) => interaction.destroy());
1045    this.interactions = {};
1046  }
1047  refresh() {
1048    this.actions.setSettings(this.getSettings());
1049    if ('background' === this.getSettings('type')) {
1050      this.updateBackgroundLayerSize();
1051      this.defineBackgroundLayerDimensions();
1052    }
1053    this.actions.refresh();
1054    this.destroyInteractions();
1055    this.runInteractions();
1056  }
1057  destroy() {
1058    this.destroyInteractions();
1059    this.actions.refresh();
1060    const settings = this.getSettings();
1061    this.$element.removeClass(settings.classes.element);
1062    this.elements.$parent.removeClass(settings.classes.parent);
1063    if ('background' === settings.type) {
1064      this.$element.removeClass(settings.classes.backgroundType);
1065      this.removeBackgroundLayer();
1066    }
1067  }
1068  onInit() {
1069    super.onInit();
1070    const settings = this.getSettings();
1071    this.$element = settings.$element;
1072    this.elements.$parent = this.$element.parent();
1073    this.$element.addClass(settings.classes.element);
1074    this.elements.$parent = this.$element.parent();
1075    this.elements.$parent.addClass(settings.classes.parent);
1076    if ('background' === settings.type) {
1077      this.$element.addClass(settings.classes.backgroundType);
1078      this.addBackgroundLayer();
1079    }
1080    this.defineDimensions();
1081    settings.$targetElement = 'element' === settings.type ? this.$element : this.elements.$motionFXLayer;
1082    this.interactions = {};
1083    this.actions = new _actions.default(settings);
1084    this.initInteractionsTypes();
1085    this.runInteractions();
1086  }
1087}
1088exports["default"] = _default;
1089
1090/***/ }),
1091
1092/***/ "../modules/payments/assets/js/frontend/frontend.js":
1093/*!**********************************************************!*\
1094  !*** ../modules/payments/assets/js/frontend/frontend.js ***!
1095  \**********************************************************/
1096/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1097
1098"use strict";
1099
1100
1101Object.defineProperty(exports, "__esModule", ({
1102  value: true
1103}));
1104exports["default"] = void 0;
1105class _default extends elementorModules.Module {
1106  constructor() {
1107    super();
1108    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")));
1109    elementorFrontend.elementsHandler.attachHandler('stripe-button', () => __webpack_require__.e(/*! import() | stripe-button */ "stripe-button").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/stripe-button */ "../modules/payments/assets/js/frontend/handlers/stripe-button.js")));
1110  }
1111}
1112exports["default"] = _default;
1113
1114/***/ }),
1115
1116/***/ "../modules/progress-tracker/assets/js/frontend/frontend.js":
1117/*!******************************************************************!*\
1118  !*** ../modules/progress-tracker/assets/js/frontend/frontend.js ***!
1119  \******************************************************************/
1120/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1121
1122"use strict";
1123
1124
1125Object.defineProperty(exports, "__esModule", ({
1126  value: true
1127}));
1128exports["default"] = void 0;
1129class _default extends elementorModules.Module {
1130  constructor() {
1131    super();
1132    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")));
1133  }
1134}
1135exports["default"] = _default;
1136
1137/***/ }),
1138
1139/***/ "../modules/sticky/assets/js/frontend/frontend.js":
1140/*!********************************************************!*\
1141  !*** ../modules/sticky/assets/js/frontend/frontend.js ***!
1142  \********************************************************/
1143/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1144
1145"use strict";
1146
1147
1148var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1149Object.defineProperty(exports, "__esModule", ({
1150  value: true
1151}));
1152exports["default"] = void 0;
1153var _sticky = _interopRequireDefault(__webpack_require__(/*! ./handlers/sticky */ "../modules/sticky/assets/js/frontend/handlers/sticky.js"));
1154class _default extends elementorModules.Module {
1155  constructor() {
1156    super();
1157    elementorFrontend.elementsHandler.attachHandler('section', _sticky.default, null);
1158    elementorFrontend.elementsHandler.attachHandler('container', _sticky.default, null);
1159    elementorFrontend.elementsHandler.attachHandler('widget', _sticky.default, null);
1160  }
1161}
1162exports["default"] = _default;
1163
1164/***/ }),
1165
1166/***/ "../modules/sticky/assets/js/frontend/handlers/sticky.js":
1167/*!***************************************************************!*\
1168  !*** ../modules/sticky/assets/js/frontend/handlers/sticky.js ***!
1169  \***************************************************************/
1170/***/ ((__unused_webpack_module, exports) => {
1171
1172"use strict";
1173
1174
1175Object.defineProperty(exports, "__esModule", ({
1176  value: true
1177}));
1178exports["default"] = void 0;
1179var _default = elementorModules.frontend.handlers.Base.extend({
1180  currentConfig: {},
1181  debouncedReactivate: null,
1182  bindEvents() {
1183    elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + 'sticky', 'resize', this.reactivateOnResize);
1184  },
1185  unbindEvents() {
1186    elementorFrontend.removeListeners(this.getUniqueHandlerID() + 'sticky', 'resize', this.reactivateOnResize);
1187  },
1188  isStickyInstanceActive() {
1189    return undefined !== this.$element.data('sticky');
1190  },
1191  /**
1192   * Get the current active setting value for a responsive control.
1193   *
1194   * @param {string} setting
1195   * @return {any} - Setting value.
1196   */
1197  getResponsiveSetting(setting) {
1198    const elementSettings = this.getElementSettings();
1199    return elementorFrontend.getCurrentDeviceSetting(elementSettings, setting);
1200  },
1201  /**
1202   * Return an array of settings names for responsive control (e.g. `settings`, `setting_tablet`, `setting_mobile` ).
1203   *
1204   * @param {string} setting
1205   * @return {string[]} - List of settings.
1206   */
1207  getResponsiveSettingList(setting) {
1208    const breakpoints = Object.keys(elementorFrontend.config.responsive.activeBreakpoints);
1209    return ['', ...breakpoints].map(suffix => {
1210      return suffix ? `${setting}_${suffix}` : setting;
1211    });
1212  },
1213  getConfig() {
1214    const elementSettings = this.getElementSettings(),
1215      stickyOptions = {
1216        to: elementSettings.sticky,
1217        offset: this.getResponsiveSetting('sticky_offset'),
1218        effectsOffset: this.getResponsiveSetting('sticky_effects_offset'),
1219        classes: {
1220          sticky: 'elementor-sticky',
1221          stickyActive: 'elementor-sticky--active elementor-section--handles-inside',
1222          stickyEffects: 'elementor-sticky--effects',
1223          spacer: 'elementor-sticky__spacer'
1224        },
1225        isRTL: elementorFrontend.config.is_rtl,
1226        // In edit mode, since the preview is an iframe, the scrollbar is on the left. The scrollbar width is
1227        // compensated for in this case.
1228        handleScrollbarWidth: elementorFrontend.isEditMode()
1229      },
1230      $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
1231      isParentContainer = this.isContainerElement(this.$element[0]) && !this.isContainerElement(this.$element[0].parentElement);
1232    if ($wpAdminBar.length && 'top' === elementSettings.sticky && 'fixed' === $wpAdminBar.css('position')) {
1233      stickyOptions.offset += $wpAdminBar.height();
1234    }
1235
1236    // The `stickyOptions.parent` value should only be applied to inner elements, and not to top level containers.
1237    if (elementSettings.sticky_parent && !isParentContainer) {
1238      // TODO: The e-container classes should be removed in the next update.
1239      stickyOptions.parent = '.e-container, .e-container__inner, .e-con, .e-con-inner, .elementor-widget-wrap';
1240    }
1241    return stickyOptions;
1242  },
1243  activate() {
1244    this.currentConfig = this.getConfig();
1245    this.$element.sticky(this.currentConfig);
1246  },
1247  deactivate() {
1248    if (!this.isStickyInstanceActive()) {
1249      return;
1250    }
1251    this.$element.sticky('destroy');
1252  },
1253  run(refresh) {
1254    if (!this.getElementSettings('sticky')) {
1255      this.deactivate();
1256      return;
1257    }
1258    var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
1259      activeDevices = this.getElementSettings('sticky_on');
1260    if (-1 !== activeDevices.indexOf(currentDeviceMode)) {
1261      if (true === refresh) {
1262        this.reactivate();
1263      } else if (!this.isStickyInstanceActive()) {
1264        this.activate();
1265      }
1266    } else {
1267      this.deactivate();
1268    }
1269  },
1270  /**
1271   * Reactivate the sticky instance on resize only if the new sticky config is different from the current active one,
1272   * in order to avoid re-initializing the sticky when not needed, and avoid layout shifts.
1273   * The config can be different between devices, so this need to be checked on each screen resize to make sure that
1274   * the current screen size uses the appropriate Sticky config.
1275   *
1276   * @return {void}
1277   */
1278  reactivateOnResize() {
1279    clearTimeout(this.debouncedReactivate);
1280    this.debouncedReactivate = setTimeout(() => {
1281      const config = this.getConfig(),
1282        isDifferentConfig = JSON.stringify(config) !== JSON.stringify(this.currentConfig);
1283      if (isDifferentConfig) {
1284        this.run(true);
1285      }
1286    }, 300);
1287  },
1288  reactivate() {
1289    this.deactivate();
1290    this.activate();
1291  },
1292  onElementChange(settingKey) {
1293    if (-1 !== ['sticky', 'sticky_on'].indexOf(settingKey)) {
1294      this.run(true);
1295    }
1296
1297    // Settings that trigger a re-activation when changed.
1298    const settings = [...this.getResponsiveSettingList('sticky_offset'), ...this.getResponsiveSettingList('sticky_effects_offset'), 'sticky_parent'];
1299    if (-1 !== settings.indexOf(settingKey)) {
1300      this.reactivate();
1301    }
1302  },
1303  /**
1304   * Listen to device mode changes and re-initialize the sticky.
1305   *
1306   * @return {void}
1307   */
1308  onDeviceModeChange() {
1309    // Wait for the call stack to be empty.
1310    // The `run` function requests the current device mode from the CSS so it's not ready immediately.
1311    // (need to wait for the `deviceMode` event to change the CSS).
1312    // See `elementorFrontend.getCurrentDeviceMode()` for reference.
1313    setTimeout(() => this.run(true));
1314  },
1315  onInit() {
1316    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
1317    if (elementorFrontend.isEditMode()) {
1318      elementor.listenTo(elementor.channels.deviceMode, 'change', () => this.onDeviceModeChange());
1319    }
1320    this.run();
1321  },
1322  onDestroy() {
1323    elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments);
1324    this.deactivate();
1325  },
1326  /**
1327   *
1328   * @param {HTMLElement|null|undefined} element
1329   * @return {boolean} Is the passed element a container.
1330   */
1331  isContainerElement(element) {
1332    const containerClasses = [
1333    // TODO: The e-container classes should be removed in the next update.
1334    'e-container', 'e-container__inner', 'e-con', 'e-con-inner'];
1335    return containerClasses.some(containerClass => {
1336      return element?.classList.contains(containerClass);
1337    });
1338  }
1339});
1340exports["default"] = _default;
1341
1342/***/ }),
1343
1344/***/ "../modules/video-playlist/assets/js/frontend/frontend.js":
1345/*!****************************************************************!*\
1346  !*** ../modules/video-playlist/assets/js/frontend/frontend.js ***!
1347  \****************************************************************/
1348/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1349
1350"use strict";
1351
1352
1353Object.defineProperty(exports, "__esModule", ({
1354  value: true
1355}));
1356exports["default"] = void 0;
1357class _default extends elementorModules.Module {
1358  constructor() {
1359    super();
1360    elementorFrontend.hooks.addAction('frontend/element_ready/video-playlist.default', $element => {
1361      __webpack_require__.e(/*! import() | video-playlist */ "video-playlist").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/video-playlist/assets/js/frontend/handler.js")).then(_ref => {
1362        let {
1363          default: dynamicHandler
1364        } = _ref;
1365        elementorFrontend.elementsHandler.addHandler(dynamicHandler, {
1366          $element,
1367          toggleSelf: false
1368        });
1369      });
1370    });
1371  }
1372}
1373exports["default"] = _default;
1374
1375/***/ }),
1376
vendor: 876 bytes, lines 1377-1401
1377/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
1378/*!****************************************************************!*\
1379  !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
1380  \****************************************************************/
1381/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1382
1383var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1384function _defineProperty(obj, key, value) {
1385  key = toPropertyKey(key);
1386  if (key in obj) {
1387    Object.defineProperty(obj, key, {
1388      value: value,
1389      enumerable: true,
1390      configurable: true,
1391      writable: true
1392    });
1393  } else {
1394    obj[key] = value;
1395  }
1396  return obj;
1397}
1398module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
1399
1400/***/ }),
1401
vendor: 562 bytes, lines 1402-1416
1402/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
1403/*!***********************************************************************!*\
1404  !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
1405  \***********************************************************************/
1406/***/ ((module) => {
1407
1408function _interopRequireDefault(obj) {
1409  return obj && obj.__esModule ? obj : {
1410    "default": obj
1411  };
1412}
1413module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
1414
1415/***/ }),
1416
vendor: 976 bytes, lines 1417-1437
1417/***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
1418/*!*************************************************************!*\
1419  !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
1420  \*************************************************************/
1421/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1422
1423var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1424function _toPrimitive(input, hint) {
1425  if (_typeof(input) !== "object" || input === null) return input;
1426  var prim = input[Symbol.toPrimitive];
1427  if (prim !== undefined) {
1428    var res = prim.call(input, hint || "default");
1429    if (_typeof(res) !== "object") return res;
1430    throw new TypeError("@@toPrimitive must return a primitive value.");
1431  }
1432  return (hint === "string" ? String : Number)(input);
1433}
1434module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
1435
1436/***/ }),
1437
vendor: 831 bytes, lines 1438-1453
1438/***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
1439/*!***************************************************************!*\
1440  !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
1441  \***************************************************************/
1442/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1443
1444var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1445var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
1446function _toPropertyKey(arg) {
1447  var key = toPrimitive(arg, "string");
1448  return _typeof(key) === "symbol" ? key : String(key);
1449}
1450module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
1451
1452/***/ }),
1453
vendor: 829 bytes, lines 1454-1471
1454/***/ "../node_modules/@babel/runtime/helpers/typeof.js":
1455/*!********************************************************!*\
1456  !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
1457  \********************************************************/
1458/***/ ((module) => {
1459
1460function _typeof(obj) {
1461  "@babel/helpers - typeof";
1462
1463  return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
1464    return typeof obj;
1465  } : function (obj) {
1466    return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1467  }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
1468}
1469module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
1470
1471/***/ })
1471
1472
1473},
1474/******/ __webpack_require__ => { // webpackRuntimeModules
1475/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
1476/******/ var __webpack_exports__ = (__webpack_exec__("../assets/dev/js/frontend/frontend.js"));
1477/******/ }
1478]);
1479//# sourceMappingURL=frontend.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.