PageSourceSearch

https://amigosdaarte.org.br/wp-content/plugins/elementor-pro/assets/js/elements-handlers.js?ver=4.0.4

js amigosdaarte.org.br collected 2026-09-24 21:35:07 UTC 114,978 bytes, 2,791 lines download raw bytes

1/*! elementor-pro - v4.0.0 - 28-04-2026 */
2"use strict";
3(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["elements-handlers"],{
4
5/***/ "../assets/dev/js/frontend/elements-handlers.js"
6/*!******************************************************!*\
7  !*** ../assets/dev/js/frontend/elements-handlers.js ***!
8  \******************************************************/
9(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10
11
12
13var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
14var _frontend = _interopRequireDefault(__webpack_require__(/*! modules/animated-headline/assets/js/frontend/frontend */ "../modules/animated-headline/assets/js/frontend/frontend.js"));
15var _frontend2 = _interopRequireDefault(__webpack_require__(/*! modules/carousel/assets/js/frontend/frontend */ "../modules/carousel/assets/js/frontend/frontend.js"));
16var _frontend3 = _interopRequireDefault(__webpack_require__(/*! modules/countdown/assets/js/frontend/frontend */ "../modules/countdown/assets/js/frontend/frontend.js"));
17var _frontend4 = _interopRequireDefault(__webpack_require__(/*! modules/dynamic-tags/assets/js/frontend/frontend */ "../modules/dynamic-tags/assets/js/frontend/frontend.js"));
18var _frontend5 = _interopRequireDefault(__webpack_require__(/*! modules/hotspot/assets/js/frontend/frontend */ "../modules/hotspot/assets/js/frontend/frontend.js"));
19var _frontend6 = _interopRequireDefault(__webpack_require__(/*! modules/forms/assets/js/frontend/frontend */ "../modules/forms/assets/js/frontend/frontend.js"));
20var _frontend7 = _interopRequireDefault(__webpack_require__(/*! modules/gallery/assets/js/frontend/frontend */ "../modules/gallery/assets/js/frontend/frontend.js"));
21var _frontend8 = _interopRequireDefault(__webpack_require__(/*! modules/lottie/assets/js/frontend/frontend */ "../modules/lottie/assets/js/frontend/frontend.js"));
22var _frontend9 = _interopRequireDefault(__webpack_require__(/*! modules/nav-menu/assets/js/frontend/frontend */ "../modules/nav-menu/assets/js/frontend/frontend.js"));
23var _frontend0 = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/frontend/frontend */ "../modules/popup/assets/js/frontend/frontend.js"));
24var _frontend1 = _interopRequireDefault(__webpack_require__(/*! modules/posts/assets/js/frontend/frontend */ "../modules/posts/assets/js/frontend/frontend.js"));
25var _frontend10 = _interopRequireDefault(__webpack_require__(/*! modules/share-buttons/assets/js/frontend/frontend */ "../modules/share-buttons/assets/js/frontend/frontend.js"));
26var _frontend11 = _interopRequireDefault(__webpack_require__(/*! modules/slides/assets/js/frontend/frontend */ "../modules/slides/assets/js/frontend/frontend.js"));
27var _frontend12 = _interopRequireDefault(__webpack_require__(/*! modules/social/assets/js/frontend/frontend */ "../modules/social/assets/js/frontend/frontend.js"));
28var _frontend13 = _interopRequireDefault(__webpack_require__(/*! modules/table-of-contents/assets/js/frontend/frontend */ "../modules/table-of-contents/assets/js/frontend/frontend.js"));
29var _frontend14 = _interopRequireDefault(__webpack_require__(/*! modules/theme-builder/assets/js/frontend/frontend */ "../modules/theme-builder/assets/js/frontend/frontend.js"));
30var _frontend15 = _interopRequireDefault(__webpack_require__(/*! modules/theme-elements/assets/js/frontend/frontend */ "../modules/theme-elements/assets/js/frontend/frontend.js"));
31var _frontend16 = _interopRequireDefault(__webpack_require__(/*! modules/woocommerce/assets/js/frontend/frontend */ "../modules/woocommerce/assets/js/frontend/frontend.js"));
32var _frontend17 = _interopRequireDefault(__webpack_require__(/*! modules/loop-builder/assets/js/frontend/frontend */ "../modules/loop-builder/assets/js/frontend/frontend.js"));
33var _frontend18 = _interopRequireDefault(__webpack_require__(/*! modules/mega-menu/assets/js/frontend/frontend */ "../modules/mega-menu/assets/js/frontend/frontend.js"));
34var _frontend19 = _interopRequireDefault(__webpack_require__(/*! modules/nested-carousel/assets/js/frontend/frontend */ "../modules/nested-carousel/assets/js/frontend/frontend.js"));
35var _frontend20 = _interopRequireDefault(__webpack_require__(/*! modules/loop-filter/assets/js/frontend/frontend */ "../modules/loop-filter/assets/js/frontend/frontend.js"));
36var _frontend21 = _interopRequireDefault(__webpack_require__(/*! modules/off-canvas/assets/js/frontend/frontend */ "../modules/off-canvas/assets/js/frontend/frontend.js"));
37var _frontend22 = _interopRequireDefault(__webpack_require__(/*! modules/floating-buttons/assets/js/frontend/frontend */ "../modules/floating-buttons/assets/js/frontend/frontend.js"));
38var _frontend23 = _interopRequireDefault(__webpack_require__(/*! modules/search/assets/js/frontend/frontend */ "../modules/search/assets/js/frontend/frontend.js"));
39const extendDefaultHandlers = defaultHandlers => {
40  const handlers = {
41    animatedText: _frontend.default,
42    carousel: _frontend2.default,
43    countdown: _frontend3.default,
44    dynamicTags: _frontend4.default,
45    hotspot: _frontend5.default,
46    form: _frontend6.default,
47    gallery: _frontend7.default,
48    lottie: _frontend8.default,
49    nav_menu: _frontend9.default,
50    popup: _frontend0.default,
51    posts: _frontend1.default,
52    share_buttons: _frontend10.default,
53    slides: _frontend11.default,
54    social: _frontend12.default,
55    themeBuilder: _frontend14.default,
56    themeElements: _frontend15.default,
57    woocommerce: _frontend16.default,
58    tableOfContents: _frontend13.default,
59    loopBuilder: _frontend17.default,
60    megaMenu: _frontend18.default,
61    nestedCarousel: _frontend19.default,
62    taxonomyFilter: _frontend20.default,
63    offCanvas: _frontend21.default,
64    contactButtons: _frontend22.default,
65    search: _frontend23.default
66  };
67  return {
68    ...defaultHandlers,
69    ...handlers
70  };
71};
72elementorProFrontend.on('elementor-pro/modules/init/before', () => {
73  elementorFrontend.hooks.addFilter('elementor-pro/frontend/handlers', extendDefaultHandlers);
74});
75
76/***/ },
77
78/***/ "../assets/dev/js/frontend/utils/ajax-helper.js"
79/*!******************************************************!*\
80  !*** ../assets/dev/js/frontend/utils/ajax-helper.js ***!
81  \******************************************************/
82(__unused_webpack_module, exports) {
83
84
85
86Object.defineProperty(exports, "__esModule", ({
87  value: true
88}));
89exports["default"] = void 0;
90class AjaxHelper {
91  addLoadingAnimationOverlay(elementId) {
92    const widget = document.querySelector(`.elementor-element-${elementId}`);
93    if (!widget) {
94      return;
95    }
96    widget.classList.add('e-loading-overlay');
97  }
98  removeLoadingAnimationOverlay(elementId) {
99    const widget = document.querySelector(`.elementor-element-${elementId}`);
100    if (!widget) {
101      return;
102    }
103    widget.classList.remove('e-loading-overlay');
104  }
105}
106exports["default"] = AjaxHelper;
107
108/***/ },
109
110/***/ "../assets/dev/js/frontend/utils/focusable-element-selectors.js"
111/*!**********************************************************************!*\
112  !*** ../assets/dev/js/frontend/utils/focusable-element-selectors.js ***!
113  \**********************************************************************/
114(__unused_webpack_module, exports) {
115
116
117
118Object.defineProperty(exports, "__esModule", ({
119  value: true
120}));
121exports.focusableElementSelectors = focusableElementSelectors;
122function focusableElementSelectors() {
123  return 'audio, button, canvas, details, iframe, input, select, summary, textarea, video, [accesskey], a[href], area[href], [tabindex]';
124}
125
126/***/ },
127
128/***/ "../assets/dev/js/frontend/utils/icons/e-icons.js"
129/*!********************************************************!*\
130  !*** ../assets/dev/js/frontend/utils/icons/e-icons.js ***!
131  \********************************************************/
132(__unused_webpack_module, exports, __webpack_require__) {
133
134
135
136var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
137Object.defineProperty(exports, "__esModule", ({
138  value: true
139}));
140exports.close = void 0;
141var _manager = _interopRequireDefault(__webpack_require__(/*! ./manager */ "../assets/dev/js/frontend/utils/icons/manager.js"));
142// This file is automatically generated, please don't change anything in this file.
143
144const iconsManager = new _manager.default('eicon');
145const close = exports.close = {
146  get element() {
147    const svgData = {
148      path: 'M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z',
149      width: 1000,
150      height: 1000
151    };
152    return iconsManager.createSvgElement('close', svgData);
153  }
154};
155
156/***/ },
157
158/***/ "../assets/dev/js/frontend/utils/icons/manager.js"
159/*!********************************************************!*\
160  !*** ../assets/dev/js/frontend/utils/icons/manager.js ***!
161  \********************************************************/
162(__unused_webpack_module, exports) {
163
164
165
166Object.defineProperty(exports, "__esModule", ({
167  value: true
168}));
169exports["default"] = void 0;
170class IconsManager {
171  static symbolsContainer;
172  static iconsUsageList = [];
173  constructor(elementsPrefix) {
174    this.prefix = `${elementsPrefix}-`;
175    if (!IconsManager.symbolsContainer) {
176      const symbolsContainerId = 'e-font-icon-svg-symbols';
177      IconsManager.symbolsContainer = document.getElementById(symbolsContainerId);
178      if (!IconsManager.symbolsContainer) {
179        IconsManager.symbolsContainer = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
180        IconsManager.symbolsContainer.setAttributeNS(null, 'style', 'display: none;');
181        IconsManager.symbolsContainer.setAttributeNS(null, 'class', symbolsContainerId);
182        document.body.appendChild(IconsManager.symbolsContainer);
183      }
184    }
185  }
186  createSvgElement(name, {
187    path,
188    width,
189    height
190  }) {
191    const elementName = this.prefix + name,
192      elementSelector = '#' + this.prefix + name;
193
194    // Create symbol if not exist yet.
195    if (!IconsManager.iconsUsageList.includes(elementName)) {
196      if (!IconsManager.symbolsContainer.querySelector(elementSelector)) {
197        const symbol = document.createElementNS('http://www.w3.org/2000/svg', 'symbol');
198        symbol.id = elementName;
199        symbol.innerHTML = '<path d="' + path + '"></path>';
200        symbol.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
201        IconsManager.symbolsContainer.appendChild(symbol);
202      }
203      IconsManager.iconsUsageList.push(elementName);
204    }
205    const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
206    svg.innerHTML = '<use xlink:href="' + elementSelector + '" />';
207    svg.setAttributeNS(null, 'class', 'e-font-icon-svg e-' + elementName);
208    return svg;
209  }
210}
211exports["default"] = IconsManager;
212
213/***/ },
214
215/***/ "../assets/dev/js/frontend/utils/modal-keyboard-handler.js"
216/*!*****************************************************************!*\
217  !*** ../assets/dev/js/frontend/utils/modal-keyboard-handler.js ***!
218  \*****************************************************************/
219(__unused_webpack_module, exports, __webpack_require__) {
220
221
222
223Object.defineProperty(exports, "__esModule", ({
224  value: true
225}));
226exports["default"] = void 0;
227var _focusableElementSelectors = __webpack_require__(/*! ./focusable-element-selectors */ "../assets/dev/js/frontend/utils/focusable-element-selectors.js");
228class ModalKeyboardHandler {
229  lastFocusableElement = null;
230  firstFocusableElement = null;
231  modalTriggerElement = null;
232  constructor(elementConfig) {
233    this.config = elementConfig;
234    this.changeFocusAfterAnimation = false;
235  }
236  onOpenModal() {
237    this.initializeElements();
238    this.setTriggerElement();
239    this.changeFocusAfterAnimation = 'popup' === this.config.modalType && !!this.config.hasEntranceAnimation;
240    if (!this.changeFocusAfterAnimation) {
241      this.changeFocus();
242    }
243    this.bindEvents();
244  }
245  onCloseModal() {
246    elementorFrontend.elements.$window.off('keydown', this.onKeyDownPressed.bind(this));
247    if (this.modalTriggerElement) {
248      this.setFocusToElement(this.modalTriggerElement);
249    }
250  }
251  bindEvents() {
252    elementorFrontend.elements.$window.on('keydown', this.onKeyDownPressed.bind(this));
253    if (this.changeFocusAfterAnimation) {
254      this.config.$modalElements.on('animationend animationcancel', this.changeFocus.bind(this));
255    }
256    if ('popup' === this.config.modalType) {
257      this.onPopupCloseEvent();
258    }
259  }
260  onPopupCloseEvent() {
261    elementorFrontend.elements.$window.on('elementor/popup/hide', this.onCloseModal.bind(this));
262  }
263  getFocusableElements() {
264    const selectorFocusedElements = 'popup' === this.config.modalType ? ':focusable' : (0, _focusableElementSelectors.focusableElementSelectors)();
265    return this.config.$modalElements.find(selectorFocusedElements);
266  }
267  initializeElements() {
268    const $focusableElements = this.getFocusableElements();
269    if (!$focusableElements.length) {
270      return;
271    }
272    this.lastFocusableElement = $focusableElements[$focusableElements.length - 1];
273    this.firstFocusableElement = $focusableElements[0];
274  }
275  setTriggerElement() {
276    const activeElement = elementorFrontend.elements.window.document.activeElement;
277    if (!!activeElement) {
278      this.modalTriggerElement = elementorFrontend.elements.window.document.activeElement;
279    } else {
280      this.modalTriggerElement = null;
281    }
282  }
283  changeFocus() {
284    if (!!this.firstFocusableElement) {
285      this.setFocusToElement(this.firstFocusableElement);
286    } else {
287      this.config.$elementWrapper.attr('tabindex', '0');
288      this.setFocusToElement(this.config.$elementWrapper[0]);
289    }
290  }
291  onKeyDownPressed(keyDownEvent) {
292    const TAB_KEY = 9;
293    const isShiftPressed = keyDownEvent.shiftKey;
294    const isTabPressed = 'Tab' === keyDownEvent.key || TAB_KEY === keyDownEvent.keyCode;
295    const isContentWrapperFocused = '0' === this.config.$elementWrapper.attr('tabindex');
296    if (isTabPressed && isContentWrapperFocused) {
297      keyDownEvent.preventDefault();
298    } else if (isTabPressed) {
299      this.onTabKeyPressed(isTabPressed, isShiftPressed, keyDownEvent);
300    }
301  }
302  onTabKeyPressed(isTabPressed, isShiftPressed, keyDownEvent) {
303    if (elementorFrontend.isEditMode()) {
304      this.initializeElements();
305    }
306    const activeElement = elementorFrontend.elements.window.document.activeElement;
307    if (isShiftPressed) {
308      const isFocusOnFirstElement = activeElement === this.firstFocusableElement;
309      if (isFocusOnFirstElement) {
310        this.setFocusToElement(this.lastFocusableElement);
311        keyDownEvent.preventDefault();
312      }
313    } else {
314      const isFocusOnLastElement = activeElement === this.lastFocusableElement;
315      if (isFocusOnLastElement) {
316        this.setFocusToElement(this.firstFocusableElement);
317        keyDownEvent.preventDefault();
318      }
319    }
320  }
321  setFocusToElement(element) {
322    const focusDelayToEnsureThatAllAnimationsHaveFinished = 'popup' === this.config.modalType ? 250 : 100;
323    setTimeout(() => {
324      element?.focus();
325    }, focusDelayToEnsureThatAllAnimationsHaveFinished);
326  }
327}
328exports["default"] = ModalKeyboardHandler;
329
330/***/ },
331
332/***/ "../assets/dev/js/frontend/utils/run-element-handlers.js"
333/*!***************************************************************!*\
334  !*** ../assets/dev/js/frontend/utils/run-element-handlers.js ***!
335  \***************************************************************/
336(__unused_webpack_module, exports) {
337
338
339
340Object.defineProperty(exports, "__esModule", ({
341  value: true
342}));
343exports["default"] = runElementHandlers;
344function runElementHandlers(elements) {
345  [...elements].flatMap(el =>
345 [...el.querySelectorAll('.elementor-element')]).forEach(el => elementorFrontend.elementsHandler.runReadyTrigger(el));
346}
347
348/***/ },
349
350/***/ "../modules/animated-headline/assets/js/frontend/frontend.js"
351/*!*******************************************************************!*\
352  !*** ../modules/animated-headline/assets/js/frontend/frontend.js ***!
353  \*******************************************************************/
354(__unused_webpack_module, exports, __webpack_require__) {
355
356
357
358Object.defineProperty(exports, "__esModule", ({
359  value: true
360}));
361exports["default"] = void 0;
362class _default extends elementorModules.Module {
363  constructor() {
364    super();
365    elementorFrontend.elementsHandler.attachHandler('animated-headline', () => __webpack_require__.e(/*! import() | animated-headline */ "animated-headline").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/animated-headlines */ "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js")));
366  }
367}
368exports["default"] = _default;
369
370/***/ },
371
372/***/ "../modules/carousel/assets/js/frontend/frontend.js"
373/*!**********************************************************!*\
374  !*** ../modules/carousel/assets/js/frontend/frontend.js ***!
375  \**********************************************************/
376(__unused_webpack_module, exports, __webpack_require__) {
377
378
379
380Object.defineProperty(exports, "__esModule", ({
381  value: true
382}));
383exports["default"] = void 0;
384class _default extends elementorModules.Module {
385  constructor() {
386    super();
387    elementorFrontend.elementsHandler.attachHandler('media-carousel', () => __webpack_require__.e(/*! import() | media-carousel */ "media-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/media-carousel */ "../modules/carousel/assets/js/frontend/handlers/media-carousel.js")));
388    elementorFrontend.elementsHandler.attachHandler('testimonial-carousel', () => __webpack_require__.e(/*! import() | carousel */ "carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js")));
389    elementorFrontend.elementsHandler.attachHandler('reviews', () => __webpack_require__.e(/*! import() | carousel */ "carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js")));
390  }
391}
392exports["default"] = _default;
393
394/***/ },
395
396/***/ "../modules/countdown/assets/js/frontend/frontend.js"
397/*!***********************************************************!*\
398  !*** ../modules/countdown/assets/js/frontend/frontend.js ***!
399  \***********************************************************/
400(__unused_webpack_module, exports, __webpack_require__) {
401
402
403
404Object.defineProperty(exports, "__esModule", ({
405  value: true
406}));
407exports["default"] = void 0;
408class _default extends elementorModules.Module {
409  constructor() {
410    super();
411    elementorFrontend.elementsHandler.attachHandler('countdown', () => __webpack_require__.e(/*! import() | countdown */ "countdown").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/countdown */ "../modules/countdown/assets/js/frontend/handlers/countdown.js")));
412  }
413}
414exports["default"] = _default;
415
416/***/ },
417
418/***/ "../modules/dynamic-tags/assets/js/frontend/frontend.js"
419/*!**************************************************************!*\
420  !*** ../modules/dynamic-tags/assets/js/frontend/frontend.js ***!
421  \**************************************************************/
422(__unused_webpack_module, exports) {
423
424
425
426Object.defineProperty(exports, "__esModule", ({
427  value: true
428}));
429exports["default"] = void 0;
430class _default extends elementorModules.Module {
431  constructor() {
432    super();
433    elementorFrontend.on('components:init', () => this.onFrontendComponentsInit());
434  }
435  onFrontendComponentsInit() {
436    elementorFrontend.utils.urlActions.addAction('reload-page', () => document.location.reload());
437  }
438}
439exports["default"] = _default;
440
441/***/ },
442
443/***/ "../modules/floating-buttons/assets/js/frontend/frontend.js"
444/*!******************************************************************!*\
445  !*** ../modules/floating-buttons/assets/js/frontend/frontend.js ***!
446  \******************************************************************/
447(__unused_webpack_module, exports, __webpack_require__) {
448
449
450
451Object.defineProperty(exports, "__esModule", ({
452  value: true
453}));
454exports["default"] = void 0;
455class _default extends elementorModules.Module {
456  constructor() {
457    super();
458    if (elementorFrontend.config.experimentalFeatures.container) {
459      ['contact-buttons-var-1', 'contact-buttons-var-3', 'contact-buttons-var-4', 'contact-buttons-var-5', 'contact-buttons-var-6', 'contact-buttons-var-7', 'contact-buttons-var-8', 'contact-buttons-var-9'].forEach(handler => {
460        elementorFrontend.elementsHandler.attachHandler(handler, () => __webpack_require__.e(/*! import() | contact-buttons */ "contact-buttons").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/contact-buttons */ "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons.js")));
461      });
462      elementorFrontend.elementsHandler.attachHandler('contact-buttons-var-10', () => __webpack_require__.e(/*! import() | contact-buttons-var-10 */ "contact-buttons-var-10").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/contact-buttons-v10 */ "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons-v10.js")));
463      elementorFrontend.elementsHandler.attachHandler('floating-bars-var-2', () => Promise.all(/*! import() | floating-bars-var-2 */[__webpack_require__.e("modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90"), __webpack_require__.e("floating-bars-var-2")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/floating-bars-v2 */ "../modules/floating-buttons/assets/js/frontend/handlers/floating-bars-v2.js")));
464      elementorFrontend.elementsHandler.attachHandler('floating-bars-var-3', () => Promise.all(/*! import() | floating-bars-var-3 */[__webpack_require__.e("modules_floating-buttons_assets_js_frontend_classes_floatin-bar-dom_js-modules_floating-butto-2c1e90"), __webpack_require__.e("floating-bars-var-3")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/floating-bars-v3 */ "../modules/floating-buttons/assets/js/frontend/handlers/floating-bars-v3.js")));
465    }
466  }
467}
468exports["default"] = _default;
469
470/***/ },
471
472/***/ "../modules/forms/assets/js/frontend/frontend.js"
473/*!*******************************************************!*\
474  !*** ../modules/forms/assets/js/frontend/frontend.js ***!
475  \*******************************************************/
476(__unused_webpack_module, exports, __webpack_require__) {
477
478
479
480Object.defineProperty(exports, "__esModule", ({
481  value: true
482}));
483exports["default"] = void 0;
484class _default extends elementorModules.Module {
485  constructor() {
486    super();
487    elementorFrontend.elementsHandler.attachHandler('form', [() => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/fields/date */ "../modules/forms/assets/js/frontend/handlers/fields/date.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/recaptcha */ "../modules/forms/assets/js/frontend/handlers/recaptcha.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/fields/time */ "../modules/forms/assets/js/frontend/handlers/fields/time.js"))]);
488    elementorFrontend.elementsHandler.attachHandler('subscribe', [() => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js"))]);
489  }
490}
491exports["default"] = _default;
492
493/***/ },
494
495/***/ "../modules/gallery/assets/js/frontend/frontend.js"
496/*!*********************************************************!*\
497  !*** ../modules/gallery/assets/js/frontend/frontend.js ***!
498  \*********************************************************/
499(__unused_webpack_module, exports, __webpack_require__) {
500
501
502
503Object.defineProperty(exports, "__esModule", ({
504  value: true
505}));
506exports["default"] = void 0;
507class _default extends elementorModules.Module {
508  constructor() {
509    super();
510    elementorFrontend.elementsHandler.attachHandler('gallery', () => __webpack_require__.e(/*! import() | gallery */ "gallery").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/gallery/assets/js/frontend/handler.js")));
511  }
512}
513exports["default"] = _default;
514
515/***/ },
516
517/***/ "../modules/hotspot/assets/js/frontend/frontend.js"
518/*!*********************************************************!*\
519  !*** ../modules/hotspot/assets/js/frontend/frontend.js ***!
520  \*********************************************************/
521(__unused_webpack_module, exports, __webpack_require__) {
522
523
524
525Object.defineProperty(exports, "__esModule", ({
526  value: true
527}));
528exports["default"] = void 0;
529class _default extends elementorModules.Module {
530  constructor() {
531    super();
532    elementorFrontend.elementsHandler.attachHandler('hotspot', () => __webpack_require__.e(/*! import() | hotspot */ "hotspot").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/hotspot */ "../modules/hotspot/assets/js/frontend/handlers/hotspot.js")));
533  }
534}
535exports["default"] = _default;
536
537/***/ },
538
539/***/ "../modules/loop-builder/assets/js/frontend/frontend.js"
540/*!**************************************************************!*\
541  !*** ../modules/loop-builder/assets/js/frontend/frontend.js ***!
542  \**************************************************************/
543(__unused_webpack_module, exports, __webpack_require__) {
544
545
546
547Object.defineProperty(exports, "__esModule", ({
548  value: true
549}));
550exports["default"] = void 0;
551class _default extends elementorModules.Module {
552  constructor() {
553    super();
554    ['post', 'product', 'post_taxonomy', 'product_taxonomy'].forEach(skinName => {
555      elementorFrontend.elementsHandler.attachHandler('loop-grid', () => __webpack_require__.e(/*! import() | load-more */ "load-more").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/load-more */ "../modules/loop-builder/assets/js/frontend/handlers/load-more.js")), skinName);
556      elementorFrontend.elementsHandler.attachHandler('loop-grid', () => __webpack_require__.e(/*! import() | loop */ "loop").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/loop */ "../modules/loop-builder/assets/js/frontend/handlers/loop.js")), skinName);
557      elementorFrontend.elementsHandler.attachHandler('loop-carousel', () => __webpack_require__.e(/*! import() | loop */ "loop").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/loop */ "../modules/loop-builder/assets/js/frontend/handlers/loop.js")), skinName);
558      elementorFrontend.elementsHandler.attachHandler('loop-carousel', () => __webpack_require__.e(/*! import() | loop-carousel */ "loop-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/loop-carousel */ "../modules/loop-builder/assets/js/frontend/handlers/loop-carousel.js")), skinName);
559      elementorFrontend.elementsHandler.attachHandler('loop-grid', () => __webpack_require__.e(/*! import() | ajax-pagination */ "ajax-pagination").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/ajax-pagination */ "../modules/loop-builder/assets/js/frontend/handlers/ajax-pagination.js")), skinName);
560    });
561  }
562}
563exports["default"] = _default;
564
565/***/ },
566
567/***/ "../modules/loop-filter/assets/js/frontend/frontend-module-base.js"
568/*!*************************************************************************!*\
569  !*** ../modules/loop-filter/assets/js/frontend/frontend-module-base.js ***!
570  \*************************************************************************/
571(__unused_webpack_module, exports, __webpack_require__) {
572
573
574
575var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
576Object.defineProperty(exports, "__esModule", ({
577  value: true
578}));
579exports["default"] = void 0;
580var _runElementHandlers = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/run-element-handlers */ "../assets/dev/js/frontend/utils/run-element-handlers.js"));
581var _ajaxHelper = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/ajax-helper */ "../assets/dev/js/frontend/utils/ajax-helper.js"));
582var _loopWidgetsStore = _interopRequireDefault(__webpack_require__(/*! ./loop-widgets-store */ "../modules/loop-filter/assets/js/frontend/loop-widgets-store.js"));
583var _queryConstants = __webpack_require__(/*! ../query-constants */ "../modules/loop-filter/assets/js/query-constants.js");
584class BaseFilterFrontendModule extends elementorModules.Module {
585  constructor() {
586    super();
587    this.loopWidgetsStore = new _loopWidgetsStore.default();
588  }
589
590  /**
591   * Removes selected filter term from the filter array
592   *
593   * @param {string} widgetId
594   * @param {string} filterId
595   * @param {string} filterTerm
596   * @param {string} defaultFilter
597   */
598  removeFilterFromLoopWidget(widgetId, filterId, filterTerm = '', defaultFilter = '') {
599    if (!this.loopWidgetsStore.getWidget(widgetId)) {
600      this.loopWidgetsStore.addWidget(widgetId);
601      this.refreshLoopWidget(widgetId, filterId);
602      return;
603    }
604    if (filterTerm === defaultFilter) {
605      this.loopWidgetsStore.unsetFilter(widgetId, filterId);
606    }
607    if (filterTerm !== defaultFilter) {
608      const filters = this.loopWidgetsStore.getFilterTerms(widgetId, filterId),
609        newTerms = filters.filter(function (e) {
610          return e !== filterTerm;
611        });
612      this.loopWidgetsStore.setFilterTerms(widgetId, filterId, newTerms);
613    }
614    this.refreshLoopWidget(widgetId, filterId);
615  }
616
617  /**
618   * Sets the filter data for a loop widget.
619   *
620   * This function should trigger the following sequence:
621   * 1. Update the filter data for the passed ID in the loopElements object by adding new filters to the loopWidgetsStore filters array.
622   * 2. Trigger a rerender of the loop widget if refresh is true.
623   * 3  Trigger a consolidation of all filters belonging to the passed loop widget ID if refresh is false.
624   *   - This should create an object with filter type keys, and for each type, an object of filter IDs, which contain the filter values.
625   *   - This should also remove duplicates.
626   *
627   * @param {string}  widgetId
628   * @param {string}  filterId
629   * @param {Object}  filter                     new data for this filterId in loopWidgetsStore
630   * @param {boolean} refresh
631   * @param {string}  multipleFiltersLogicalJoin AND / OR / 'DISABLED' for single filter (default)
632   */
633  setFilterDataForLoopWidget(widgetId, filterId, filter, refresh = true, multipleFiltersLogicalJoin 
633= 'DISABLED') {
634    this.loopWidgetsStore.maybeInitializeWidget(widgetId);
635    this.loopWidgetsStore.maybeInitializeFilter(widgetId, filterId);
636    const logicalJoin = this.validateMultipleFilterOperator(multipleFiltersLogicalJoin);
637    if ('DISABLED' !== logicalJoin) {
638      const existingTerms = this.loopWidgetsStore.getFilterTerms(widgetId, filterId) ?? [],
639        newTerms = filter.filterData.terms;
640      filter.filterData.terms = [...new Set([...existingTerms, ...newTerms])];
641      filter.filterData.logicalJoin = logicalJoin;
642    }
643    this.loopWidgetsStore.setFilter(widgetId, filterId, filter);
644    if (refresh) {
645      this.refreshLoopWidget(widgetId, filterId);
646      return;
647    }
648    this.loopWidgetsStore.consolidateFilters(widgetId);
649  }
650
651  /**
652   * Validates the operator values for wp_query.
653   * @param {string} operator
654   * @return {*|string} 'AND' | 'OR' | 'DISABLED'
655   */
656  validateMultipleFilterOperator(operator) {
657    if (!operator || !['AND', 'OR'].includes(operator)) {
658      return 'DISABLED';
659    }
660    return operator;
661  }
662
663  /**
664   *
665   * @return {{}} Query string in object form.
666   */
667  getQueryStringInObjectForm() {
668    const queryString = {};
669    for (const widgetId in this.loopWidgetsStore.get()) {
670      const loopWidget = this.loopWidgetsStore.getWidget(widgetId);
671      for (const filterType in loopWidget.consolidatedFilters) {
672        const filterData = loopWidget.consolidatedFilters[filterType];
673        for (const filterName in filterData) {
674          const separator = _queryConstants.queryConstants[filterData[filterName].logicalJoin ?? 'AND'].separator.decoded;
675
676          // Add an `e-` prefix to the key to avoid clashes with other query strings.
677          // Filter values are arrays, to support multiple select.
678          queryString[`e-filter-${widgetId}-${filterName}`] = Object.values(filterData[filterName].terms).join(separator);
679        }
680      }
681    }
682    return queryString;
683  }
684
685  /**
686   * Updates the URL query string with the current filter values.
687   *
688   * @param {string} widgetId
689   * @param {string} filterId
690   */
691  updateURLQueryString(widgetId, filterId) {
692    const currentUrl = new URL(window.location.href),
693      existingQueryString = currentUrl.searchParams,
694      queryStringObject = this.getQueryStringInObjectForm(),
695      updatedParams = new URLSearchParams();
696    existingQueryString.forEach((value, key) => {
697      if (!key.startsWith('e-filter')) {
698        updatedParams.append(key, value);
699      }
700      if (key.startsWith('e-page-' + widgetId)) {
701        updatedParams.delete(key);
702      }
703    });
704    for (const key in queryStringObject) {
705      updatedParams.set(key, queryStringObject[key]);
706    }
707    let queryString = updatedParams.toString();
708    queryString = queryString.replace(new RegExp(`${_queryConstants.queryConstants.AND.separator.encoded}`, 'g'), _queryConstants.queryConstants.AND.separator.decoded);
709    queryString = queryString.replace(new RegExp(`${_queryConstants.queryConstants.OR.separator.encoded}`, 'g'), _queryConstants.queryConstants.OR.separator.decoded);
710    const helpers = this.getFilterHelperAttributes(filterId);
711    if (helpers.pageNum > 1) {
712      queryString = queryString ? this.formatQueryString(helpers.baseUrl, queryString) : helpers.baseUrl;
713    } else {
714      queryString = queryString ? `?${queryString}` : location.pathname;
715    }
716    history.pushState(null, null, queryString);
717  }
718
719  /**
720   * Formats the query string to remove any duplicate parameters.
721   *
722   * @param {string} baseURL
723   * @param {string} queryString
724   * @return {*} deduplicated query string
725   */
726  formatQueryString(baseURL, queryString) {
727    const baseURLParams = baseURL.includes('?') ? new URLSearchParams(baseURL.split('?')[1]) : new URLSearchParams(),
728      inputParams = new URLSearchParams(queryString);
729    for (const param of baseURLParams.keys()) {
730      if (inputParams.has(param)) {
731        inputParams.delete(param);
732      }
733    }
734    const excludedVariables = ['page', 'paged'];
735    for (const excludedVar of excludedVariables) {
736      baseURLParams.delete(excludedVar);
737      inputParams.delete(excludedVar);
738    }
739    const mergedParams = new URLSearchParams(baseURLParams.toString());
740    for (const [param, value] of inputParams.entries()) {
741      mergedParams.append(param, value);
742    }
743    const baseURLString = baseURL.split('?')[0],
744      mergedParamsString = mergedParams.toString() ? `?${mergedParams.toString()}` : '';
745    return baseURLString + mergedParamsString;
746  }
747
748  /**
749   *
750   * @param {string} filterId
751   * @return {{baseUrl: string, pageNum: number}|*|DOMStringMap} Base URL and page number for the loop widget.
752   */
753  getFilterHelperAttributes(filterId) {
754    const filterWidget = document.querySelector('[data-id="' + filterId + '"]');
755    if (!filterWidget) {
756      return {
757        baseUrl: location.href,
758        pageNum: 1
759      };
760    }
761    const filterBar = filterWidget.querySelector('.e-filter');
762    return filterBar.dataset;
763  }
764
765  /**
766   * Prepares the data to be sent to the server for the loop widget update.
767   *
768   * @param {string} widgetId
769   * @param {string} filterId
770   * @return {{post_id: (*|number), widget_id, pagination_base_url: string, widget_filters: *}} data for loop update
771   */
772  prepareLoopUpdateRequestData(widgetId, filterId) {
773    const widgetFilters = this.loopWidgetsStore.getConsolidatedFilters(widgetId),
774      helpers = this.getFilterHelperAttributes(filterId);
775    const data = {
776      post_id: this.getClosestDataElementorId(document.querySelector(`.elementor-element-${widgetId}`)) || elementorFrontend.config.post.id,
777      widget_filters: widgetFilters,
778      widget_id: widgetId,
779      pagination_base_url: helpers.baseUrl
780    };
781    if (elementorFrontend.isEditMode()) {
782      // In the editor, we have to support loop widgets that have been created but not saved to the database yet.
783      const widgetContainer = window.top.$e.components.get('document').utils.findContainerById(widgetId);
784      data.widget_model = widgetContainer.model.toJSON({
785        remove: ['default', 'editSettings', 'defaultEditSettings']
786      });
787      data.is_edit_mode = true;
788    }
789    return data;
790  }
791
792  /**
793   * Returns the closest data-elementor-id attribute value.
794   *
795   * @param {Object} element
796   * @return {string} elementor id of parent
797   */
798  getClosestDataElementorId(element) {
799    const closestParent = element?.closest('[data-elementor-id]');
800    return closestParent ? closestParent.getAttribute('data-elementor-id') : null;
801  }
802
803  /**
804   *
805   * @param {string} widgetId
806   * @param {string} filterId
807   * @return {{headers: {"Content-Type": string}, method: string, body: string}} Fetch arguments for loop Widget update
808   */
809  getFetchArgumentsForLoopUpdate(widgetId, filterId) {
810    const data = this.prepareLoopUpdateRequestData(widgetId, filterId);
811    const args = {
812      method: 'POST',
813      headers: {
814        'Content-Type': 'application/json'
815      },
816      body: JSON.stringify(data)
817    };
818    if (elementorFrontend.isEditMode() && !!elementorPro.config.loopFilter?.nonce) {
819      args.headers['X-WP-Nonce'] = elementorPro.config.loopFilter?.nonce;
820    }
821    return args;
822  }
823
824  /**
825   * Fetches the updated loop widget markup from the server.
826   *
827   * @param {string} widgetId
828   * @param {string} filterId
829   * @return {Promise<Response>} Promise for the fetch request.
830   */
831  fetchUpdatedLoopWidgetMarkup(widgetId, filterId) {
832    return fetch(`${elementorProFrontend.config.urls.rest}elementor-pro/v1/refresh-loop`, this.getFetchArgumentsForLoopUpdate(widgetId, filterId));
833  }
834  createElementFromHTMLString(widgetContainerHTMLString) {
835    const div = document.createElement('div');
836    if (!widgetContainerHTMLString) {
837      div.classList.add('elementor-widget-container');
838      return div;
839    }
840    div.innerHTML = widgetContainerHTMLString.trim();
841    return div.firstElementChild;
842  }
843  refreshLoopWidget(widgetId, filterId) {
844    this.loopWidgetsStore.consolidateFilters(widgetId);
845    this.updateURLQueryString(widgetId, filterId);
846    const widget = document.querySelector(`.elementor-element-${widgetId}`);
847    if (!widget) {
848      return;
849    }
850    if (!this.ajaxHelper) {
851      this.ajaxHelper = new _ajaxHelper.default();
852    }
853    this.ajaxHelper.addLoadingAnimationOverlay(widgetId);
854    const fetchUpdatedLoopWidgetMarkup = this.fetchUpdatedLoopWidgetMarkup(widgetId, filterId).then(response => {
855      if (!(response instanceof Response) || !response?.ok || 400 <= response?.status) {
856        return {};
857      }
858      return response.json();
859    }).catch(() => {
860      return {};
861    }).then(response => {
862      if (!response?.data && '' !== response?.data) {
863        return;
864      }
865      const existingWidgetContainer = widget.querySelector('.elementor-widget-container'),
866        newWidgetContainer = this.createElementFromHTMLString(response.data);
867      widget.replaceChild(newWidgetContainer, existingWidgetContainer);
868      this.handleElementHandlers(widget);
869      if (ElementorProFrontendConfig.settings.lazy_load_background_images) {
870        document.dispatchEvent(new Event('elementor/lazyload/observe'));
871      }
872      elementorFrontend.elementsHandler.runReadyTrigger(document.querySelector(`.elementor-element-${widgetId}`));
873      widget.classList.remove('e-loading');
874    }).finally(() => {
875      this.ajaxHelper.removeLoadingAnimationOverlay(widgetId);
876    });
877    return fetchUpdatedLoopWidgetMarkup;
878
879    // TODO: Deal with pagination. Do we need to manually add the query string to the pagination links?
880  }
881  handleElementHandlers(newWidgetMarkup) {
882    const loopItems = newWidgetMarkup.querySelectorAll('.e-loop-item');
883    (0, _runElementHandlers.default)(loopItems);
884  }
885}
886exports["default"] = BaseFilterFrontendModule;
887
888/***/ },
889
890/***/ "../modules/loop-filter/assets/js/frontend/frontend.js"
891/*!*************************************************************!*\
892  !*** ../modules/loop-filter/assets/js/frontend/frontend.js ***!
893  \*************************************************************/
894(__unused_webpack_module, exports, __webpack_require__) {
895
896
897
898var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
899Object.defineProperty(exports, "__esModule", ({
900  value: true
901}));
902exports["default"] = void 0;
903var _frontendModuleBase = _interopRequireDefault(__webpack_require__(/*! ./frontend-module-base */ "../modules/loop-filter/assets/js/frontend/frontend-module-base.js"));
904class LoopFilter extends _frontendModuleBase.default {
905  constructor() {
906    super();
907    elementorFrontend.elementsHandler.attachHandler('taxonomy-filter', () => __webpack_require__.e(/*! import() | taxonomy-filter */ "taxonomy-filter").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/taxonomy-filter */ "../modules/loop-filter/assets/js/frontend/handlers/taxonomy-filter.js")));
908  }
909}
910exports["default"] = LoopFilter;
911
912/***/ },
913
914/***/ "../modules/loop-filter/assets/js/frontend/loop-widgets-store.js"
915/*!***********************************************************************!*\
916  !*** ../modules/loop-filter/assets/js/frontend/loop-widgets-store.js ***!
917  \***********************************************************************/
918(__unused_webpack_module, exports) {
919
920
921
922Object.defineProperty(exports, "__esModule", ({
923  value: true
924}));
925exports["default"] = void 0;
926class LoopWidgetsStore {
927  constructor() {
928    this.widgets = {};
929  }
930  get() {
931    return this.widgets;
932  }
933  getWidget(widgetId) {
934    return this.widgets[widgetId];
935  }
936  setWidget(widgetId, widget) {
937    this.widgets[widgetId] = widget;
938  }
939  unsetWidget(widgetId) {
940    delete this.widgets[widgetId];
941  }
942  getFilters(widgetId) {
943    return this.getWidget(widgetId).filters;
944  }
945  getFilter(widgetId, filterId) {
946    return this.getWidget(widgetId).filters[filterId];
947  }
948  setFilter(widgetId, filterId, filterData) {
949    this.getWidget(widgetId).filters[filterId] = filterData;
950  }
951  unsetFilter(widgetId, filterId) {
952    delete this.getWidget(widgetId).filters[filterId];
953  }
954  getFilterTerms(widgetId, filterId) {
955    return this.getFilter(widgetId, filterId).filterData.terms ?? [];
956  }
957  setFilterTerms(widgetId, filterId, termData) {
958    this.getFilter(widgetId, filterId).filterData.terms = termData;
959  }
960  getConsolidatedFilters(widgetId) {
961    return this.getWidget(widgetId).consolidatedFilters;
962  }
963  setConsolidatedFilters(widgetId, consolidatedFilters) {
964    this.getWidget(widgetId).consolidatedFilters = consolidatedFilters;
965  }
966
967  /**
968   *
969   * @param {string} widgetId
970   */
971  addWidget(widgetId) {
972    const newWidget = {
973      filters: {},
974      consolidatedFilters: {}
975    };
976    this.setWidget(widgetId, newWidget);
977  }
978  maybeInitializeWidget(widgetId) {
979    if (!!this.getWidget(widgetId)) {
980      return;
981    }
982    this.addWidget(widgetId);
983  }
984  maybeInitializeFilter(widgetId, filterId) {
985    if (!!this.getFilter(widgetId, filterId)) {
986      return;
987    }
988    const newFilter = {
989      filterData: {
990        terms: []
991      }
992    };
993    this.setFilter(widgetId, filterId, newFilter);
994  }
995
996  /**
997   * Consolidates all filters for a loop widget.
998   *
999   * filters: {
1000   * 	filter1: { filterType: 'type1', filterData: { selectedTaxonomy: 'taxonomy1', terms: [ 'term1', 'term2' ] } },
1001   * 	filter2: { filterType: 'type1', filterData: { selectedTaxonomy: 'taxonomy1', terms: [ 'term2' ] } },
1002   * },
1003   * consolidatedFilters: {},
1004   *
1005   * @param {string} widgetId
1006   */
1007  consolidateFilters(widgetId) {
1008    const loopWidgetFilters = this.getFilters(widgetId),
1009      consolidatedFilters = {};
1010    for (const filterId in loopWidgetFilters) {
1011      const filter = loopWidgetFilters[filterId],
1012        filterType = filter.filterType,
1013        filterData = filter.filterData;
1014      if (0 === filterData.terms.length) {
1015        continue;
1016      }
1017
1018      // This part is non-generic. To expand this functionality to other filter types, we'll need to refactor and
1019      // generalize this part.
1020      if (!consolidatedFilters[filterType]) {
1021        consolidatedFilters[filterType] = {};
1022      }
1023      if (!consolidatedFilters[filterType][filterData.selectedTaxonomy]) {
1024        consolidatedFilters[filterType][filterData.selectedTaxonomy] = [];
1025      }
1026      if (filterData.terms && (!consolidatedFilters[filterType][filterData.selectedTaxonomy].terms || !consolidatedFilters[filterType][filterData.selectedTaxonomy].terms.includes(filterData.terms))) {
1027        consolidatedFilters[filterType][filterData.selectedTaxonomy] = {
1028          terms: filterData.terms === typeof 'string' ? [filterData.terms] : filterData.terms
1029        };
1030      }
1031      if (filterData.logicalJoin && !consolidatedFilters[filterType][filterData.selectedTaxonomy].logicalJoin) {
1032        consolidatedFilters[filterType][filterData.selectedTaxonomy] = {
1033          ...(consolidatedFilters[filterType][filterData.selectedTaxonomy] || {}),
1034          // Check for undefined
1035          logicalJoin: filterData.logicalJoin ?? 'AND'
1036        };
1037      }
1038    }
1039    this.setConsolidatedFilters(widgetId, consolidatedFilters);
1040  }
1041}
1042exports["default"] = LoopWidgetsStore;
1043
1044/***/ },
1045
1046/***/ "../modules/loop-filter/assets/js/query-constants.js"
1047/*!***********************************************************!*\
1048  !*** ../modules/loop-filter/assets/js/query-constants.js ***!
1049  \***********************************************************/
1050(module) {
1051
1052
1053
1054const queryConstants = {
1055  AND: {
1056    separator: {
1057      decoded: '+',
1058      fromBrowser: ' ',
1059      encoded: '%2B'
1060    },
1061    operator: 'AND'
1062  },
1063  OR: {
1064    separator: {
1065      decoded: '~',
1066      fromBrowser: '~',
1067      encoded: '%7C'
1068    },
1069    operator: 'IN'
1070  },
1071  NOT: {
1072    separator: {
1073      decoded: '!',
1074      fromBrowser: '!',
1075      encoded: '%21'
1076    },
1077    operator: 'NOT IN'
1078  },
1079  DISABLED: {
1080    separator: {
1081      decoded: '',
1082      fromBrowser: '',
1083      encoded: ''
1084    },
1085    operator: 'AND'
1086  }
1087};
1088module.exports = {
1089  queryConstants
1090};
1091
1092/***/ },
1093
1094/***/ "../modules/lottie/assets/js/frontend/frontend.js"
1095/*!********************************************************!*\
1096  !*** ../modules/lottie/assets/js/frontend/frontend.js ***!
1097  \********************************************************/
1098(__unused_webpack_module, exports, __webpack_require__) {
1099
1100
1101
1102Object.defineProperty(exports, "__esModule", ({
1103  value: true
1104}));
1105exports["default"] = void 0;
1106class _default extends elementorModules.Module {
1107  constructor() {
1108    super();
1109    elementorFrontend.elementsHandler.attachHandler('lottie', () => __webpack_require__.e(/*! import() | lottie */ "lottie").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/lottie/assets/js/frontend/handler.js")));
1110  }
1111}
1112exports["default"] = _default;
1113
1114/***/ },
1115
1116/***/ "../modules/mega-menu/assets/js/frontend/frontend.js"
1117/*!***********************************************************!*\
1118  !*** ../modules/mega-menu/assets/js/frontend/frontend.js ***!
1119  \***********************************************************/
1120(__unused_webpack_module, exports, __webpack_require__) {
1121
1122
1123
1124Object.defineProperty(exports, "__esModule", ({
1125  value: true
1126}));
1127exports["default"] = void 0;
1128class _default extends elementorModules.Module {
1129  constructor() {
1130    super();
1131    elementorFrontend.elementsHandler.attachHandler('mega-menu', [() => __webpack_require__.e(/*! import() | mega-menu */ "mega-menu").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/mega-menu */ "../modules/mega-menu/assets/js/frontend/handlers/mega-menu.js")), () => __webpack_require__.e(/*! import() | mega-menu-stretch-content */ "mega-menu-stretch-content").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/stretch-menu-item-content */ "../modules/mega-menu/assets/js/frontend/handlers/stretch-menu-item-content.js")), () => __webpack_require__.e(/*! import() | menu-title-keyboard-handler */ "menu-title-keyboard-handler").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/menu-title-keyboard-handler */ "../modules/mega-menu/assets/js/frontend/handlers/menu-title-keyboard-handler.js"))]);
1132  }
1133}
1134exports["default"] = _default;
1135
1136/***/ },
1137
1138/***/ "../modules/nav-menu/assets/js/frontend/frontend.js"
1139/*!**********************************************************!*\
1140  !*** ../modules/nav-menu/assets/js/frontend/frontend.js ***!
1141  \**********************************************************/
1142(__unused_webpack_module, exports, __webpack_require__) {
1143
1144
1145
1146Object.defineProperty(exports, "__esModule", ({
1147  value: true
1148}));
1149exports["default"] = void 0;
1150class _default extends elementorModules.Module {
1151  constructor() {
1152    super();
1153    if (jQuery.fn.smartmenus) {
1154      // Override the default stupid detection
1155      jQuery.SmartMenus.prototype.isCSSOn = function () {
1156        return true;
1157      };
1158      if (elementorFrontend.config.is_rtl) {
1159        jQuery.fn.smartmenus.defaults.rightToLeftSubMenus = true;
1160      }
1161    }
1162    elementorFrontend.elementsHandler.attachHandler('nav-menu', () => __webpack_require__.e(/*! import() | nav-menu */ "nav-menu").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/nav-menu */ "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js")));
1163  }
1164}
1165exports["default"] = _default;
1166
1167/***/ },
1168
1169/***/ "../modules/nested-carousel/assets/js/frontend/frontend.js"
1170/*!*****************************************************************!*\
1171  !*** ../modules/nested-carousel/assets/js/frontend/frontend.js ***!
1172  \*****************************************************************/
1173(__unused_webpack_module, exports, __webpack_require__) {
1174
1175
1176
1177Object.defineProperty(exports, "__esModule", ({
1178  value: true
1179}));
1180exports["default"] = void 0;
1181class _default extends elementorModules.Module {
1182  constructor() {
1183    super();
1184    elementorFrontend.elementsHandler.attachHandler('nested-carousel', () => __webpack_require__.e(/*! import() | nested-carousel */ "nested-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/nested-carousel */ "../modules/nested-carousel/assets/js/frontend/handlers/nested-carousel.js")));
1185  }
1186}
1187exports["default"] = _default;
1188
1189/***/ },
1190
1191/***/ "../modules/off-canvas/assets/js/frontend/frontend.js"
1192/*!************************************************************!*\
1193  !*** ../modules/off-canvas/assets/js/frontend/frontend.js ***!
1194  \************************************************************/
1195(__unused_webpack_module, exports, __webpack_require__) {
1196
1197
1198
1199Object.defineProperty(exports, "__esModule", ({
1200  value: true
1201}));
1202exports["default"] = void 0;
1203class _default extends elementorModules.Module {
1204  constructor() {
1205    super();
1206    elementorFrontend.elementsHandler.attachHandler('off-canvas', () => __webpack_require__.e(/*! import() | off-canvas */ "off-canvas").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/off-canvas */ "../modules/off-canvas/assets/js/frontend/handlers/off-canvas.js")));
1207    elementorFrontend.on('components:init', () => this.onFrontendComponentsInit());
1208  }
1209  onFrontendComponentsInit() {
1210    this.addUrlActions();
1211  }
1212  addUrlActions() {
1213    elementorFrontend.utils.urlActions.addAction('off_canvas:open', settings => {
1214      this.toggleOffCanvasDisplay(settings);
1215    });
1216    elementorFrontend.utils.urlActions.addAction('off_canvas:close', settings => {
1217      this.toggleOffCanvasDisplay(settings);
1218    });
1219    elementorFrontend.utils.urlActions.addAction('off_canvas:toggle', settings => {
1220      this.toggleOffCanvasDisplay(settings);
1221    });
1222  }
1223  toggleOffCanvasDisplay(settings) {
1224    window.dispatchEvent(new CustomEvent('elementor-pro/off-canvas/toggle-display-mode', {
1225      detail: settings
1226    }));
1227  }
1228}
1229exports["default"] = _default;
1230
1231/***/ },
1232
1233/***/ "../modules/popup/assets/js/frontend/document.js"
1234/*!*******************************************************!*\
1235  !*** ../modules/popup/assets/js/frontend/document.js ***!
1236  \*******************************************************/
1237(__unused_webpack_module, exports, __webpack_require__) {
1238
1239
1240
1241var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1242Object.defineProperty(exports, "__esModule", ({
1243  value: true
1244}));
1245exports["default"] = void 0;
1246var _triggers = _interopRequireDefault(__webpack_require__(/*! ./triggers */ "../modules/popup/assets/js/frontend/triggers.js"));
1247var _timing = _interopRequireDefault(__webpack_require__(/*! ./timing */ "../modules/popup/assets/js/frontend/timing.js"));
1248var _eIcons = __webpack_require__(/*! @elementor-pro/e-icons */ "../assets/dev/js/frontend/utils/icons/e-icons.js");
1249var _modalKeyboardHandler = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/modal-keyboard-handler */ "../assets/dev/js/frontend/utils/modal-keyboard-handler.js"));
1250// Temporary solution, when core 3.5.0 will be the minimum version, is should be replaced with @elementor/e-icons.
1251
1252class _default extends elementorModules.frontend.Document {
1253  keyboardHandler = null;
1254  bindEvents() {
1255    const openSelector = this.getDocumentSettings('open_selector');
1256    if (openSelector) {
1257      elementorFrontend.elements.$body.on('click', openSelector, this.showModal.bind(this));
1258    }
1259  }
1260  startTiming() {
1261    const timing = new _timing.default(this.getDocumentSettings('timing'), this);
1262    if (timing.check()) {
1263      this.initTriggers();
1264    }
1265  }
1266  initTriggers() {
1267    this.triggers = new _triggers.default(this.getDocumentSettings('triggers'), this);
1268  }
1269  showModal(avoidMultiple) {
1270    // eslint-disable-next-line @wordpress/no-unused-vars-before-return
1271    const settings = this.getDocumentSettings();
1272    if (!this.isEdit) {
1273      if (!elementorFrontend.isWPPreviewMode()) {
1274        if (this.getStorage('disable')) {
1275          return;
1276        }
1277        if (avoidMultiple && elementorProFrontend.modules.popup.popupPopped && settings.avoid_multiple_popups) {
1278          return;
1279        }
1280      }
1281
1282      // A clean copy of the element without previous initializations and events
1283      this.$element = jQuery(this.elementHTML);
1284      this.elements.$elements = this.$element.find(this.getSettings('selectors.elements'));
1285    }
1286    const modal = this.getModal(),
1287      $closeButton = modal.getElements('closeButton');
1288    modal.setMessage(this.$element).show();
1289    if (!this.isEdit) {
1290      if (settings.close_button_delay) {
1291        $closeButton.hide();
1292        clearTimeout(this.closeButtonTimeout);
1293        this.closeButtonTimeout = setTimeout(() => $closeButton.show(), settings.close_button_delay * 1000);
1294      }
1295      super.runElementsHandlers();
1296    }
1297    this.setEntranceAnimation();
1298    if (!settings.timing || !settings.timing.times_count) {
1299      this.countTimes();
1300    }
1301    elementorProFrontend.modules.popup.popupPopped = true;
1302    if (!this.isEdit && settings.a11y_navigation) {
1303      this.handleKeyboardA11y();
1304    }
1305  }
1306  setEntranceAnimation() {
1307    const $widgetContent = this.getModal().getElements('widgetContent'),
1308      settings = this.getDocumentSettings(),
1309      newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'entrance_animation');
1310    if (this.currentAnimation) {
1311      $widgetContent.removeClass(this.currentAnimation);
1312    }
1313    this.currentAnimation = newAnimation;
1314    if (!newAnimation) {
1315      return;
1316    }
1317    const animationDuration = settings.entrance_animation_duration.size;
1318    $widgetContent.addClass(newAnimation);
1319    setTimeout(() => $widgetContent.removeClass(newAnimation), animationDuration * 1000);
1320  }
1321  handleKeyboardA11y() {
1322    if (!this.keyboardHandler) {
1323      this.keyboardHandler = new _modalKeyboardHandler.default(this.getKeyboardHandlingConfig());
1324    }
1325    this.keyboardHandler.onOpenModal();
1326  }
1327  setExitAnimation() {
1328    const modal = this.getModal(),
1329      settings = this.getDocumentSettings(),
1330      $widgetContent = modal.getElements('widgetContent'),
1331      newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'exit_animation'),
1332      animationDuration = newAnimation ? settings.entrance_animation_duration.size : 0;
1333    setTimeout(() => {
1334      if (newAnimation) {
1335        $widgetContent.removeClass(newAnimation + ' reverse');
1336      }
1337      if (!this.isEdit) {
1338        this.$element.remove();
1339        modal.getElements('widget').hide();
1340      }
1341    }, animationDuration * 1000);
1342    if (newAnimation) {
1343      $widgetContent.addClass(newAnimation + ' reverse');
1344    }
1345  }
1346  initModal() {
1347    let modal;
1348    this.getModal = () => {
1349      if (!modal) {
1350        const settings = this.getDocumentSettings(),
1351          id = this.getSettings('id'),
1352          triggerPopupEvent = eventType => {
1353            const event = 'elementor/popup/' + eventType;
1354            elementorFrontend.elements.$document.trigger(event, [id, this]);
1355
1356            // TODO: Use `elementorFrontend.utils.events.dispatch` when it's in master.
1357            window.dispatchEvent(new CustomEvent(event, {
1358              detail: {
1359                id,
1360                instance: this
1361              }
1362            }));
1363          };
1364        let classes = 'elementor-popup-modal';
1365        if (settings.classes) {
1366          classes += ' ' + settings.classes;
1367        }
1368        const modalProperties = {
1369          id: 'elementor-popup-modal-' + id,
1370          className: classes,
1371          closeButton: true,
1372          preventScroll: settings.prevent_scroll,
1373          onShow: () => triggerPopupEvent('show'),
1374          onHide: () => triggerPopupEvent('hide'),
1375          effects: {
1376            hide: () => {
1377              if (settings.timing && settings.timing.times_count) {
1378                this.countTimes();
1379              }
1380              this.setExitAnimation();
1381            },
1382            show: 'show'
1383          },
1384          hide: {
1385            auto: !!settings.close_automatically,
1386            autoDelay: settings.close_automatically * 1000,
1387            onBackgroundClick: !settings.prevent_close_on_background_click,
1388            onOutsideClick: !settings.prevent_close_on_background_click,
1389            onEscKeyPress: !settings.prevent_close_on_esc_key,
1390            ignore: '.flatpickr-calendar'
1391          },
1392          position: {
1393            enable: false
1394          }
1395        };
1396        if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg) {
1397          modalProperties.closeButtonOptions = {
1398            iconElement: _eIcons.close.element
1399          };
1400        }
1401
1402        // This line should be moved to the condition above, as an 'else' case, once the core minimum version is 3.5.0.
1403        modalProperties.closeButtonClass = 'eicon-close';
1404        modal = elementorFrontend.getDialogsManager().createWidget('lightbox', modalProperties);
1405        modal.getElements('widgetContent').addClass('animated');
1406        const $closeButton = modal.getElements('closeButton');
1407        if (this.isEdit) {
1408          $closeButton.off('click');
1409          modal.hide = () => {};
1410        }
1411        this.setCloseButtonPosition();
1412      }
1413      return modal;
1414    };
1415  }
1416  setCloseButtonPosition() {
1417    const modal = this.getModal(),
1418      closeButtonPosition = this.getDocumentSettings('close_button_position'),
1419      $closeButton = modal.getElements('closeButton');
1420    $closeButton.prependTo(modal.getElements('outside' === closeButtonPosition ? 'widget' : 'widgetContent'));
1421  }
1422  disable() {
1423    this.setStorage('disable', true);
1424  }
1425  setStorage(key, value, options) {
1426    elementorFrontend.storage.set(`popup_${this.getSettings('id')}_${key}`, value, options);
1427  }
1428  getStorage(key, options) {
1429    return elementorFrontend.storage.get(`popup_${this.getSettings('id')}_${key}`, options);
1430  }
1431  countTimes() {
1432    const displayTimes = this.getStorage('times') || 0;
1433    this.setStorage('times', displayTimes + 1);
1434  }
1435  runElementsHandlers() {}
1436  async onInit() {
1437    super.onInit();
1438
1439    // In case that the library was not loaded, it indicates a Core version that enables dynamic loading.
1440    if (!window.DialogsManager) {
1441      await elementorFrontend.utils.assetsLoader.load('script', 'dialog');
1442    }
1443    this.initModal();
1444    if (this.isEdit) {
1445      this.showModal();
1446      return;
1447    }
1448    this.$element.show().remove();
1449    this.elementHTML = this.$element[0].outerHTML;
1450    if (elementorFrontend.isEditMode()) {
1451      return;
1452    }
1453    if (elementorFrontend.isWPPreviewMode() && elementorFrontend.config.post.id === this.getSettings('id')) {
1454      this.showModal();
1455      return;
1456    }
1457    this.startTiming();
1458  }
1459  onSettingsChange(model) {
1460    const changedKey = Object.keys(model.changed)[0];
1461    if (-1 !== changedKey.indexOf('entrance_animation')) {
1462      this.setEntranceAnimation();
1463    }
1464    if ('exit_animation' === changedKey) {
1465      this.setExitAnimation();
1466    }
1467    if ('close_button_position' === changedKey) {
1468      this.setCloseButtonPosition();
1469    }
1470  }
1471  getEntranceAnimationDuration() {
1472    const settings = this.getDocumentSettings();
1473    const entranceAnimation = settings?.entrance_animation;
1474    if (!entranceAnimation || '' === entranceAnimation || 'none' === entranceAnimation) {
1475      return 0;
1476    }
1477    const entranceAnimationDuration = settings?.entrance_animation_duration?.size;
1478    return !!entranceAnimationDuration ? Number(entranceAnimationDuration) : 0;
1479  }
1480  getKeyboardHandlingConfig() {
1481    return {
1482      $modalElements: this.getModal().getElements('widgetContent'),
1483      $elementWrapper: this.$element,
1484      hasEntranceAnimation: 0 !== this.getEntranceAnimationDuration(),
1485      modalType: 'popup',
1486      modalId: this.$element.data('elementor-id')
1487    };
1488  }
1489}
1490exports["default"] = _default;
1491
1492/***/ },
1493
1494/***/ "../modules/popup/assets/js/frontend/frontend.js"
1495/*!*******************************************************!*\
1496  !*** ../modules/popup/assets/js/frontend/frontend.js ***!
1497  \*******************************************************/
1498(__unused_webpack_module, exports, __webpack_require__) {
1499
1500
1501
1502var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1503Object.defineProperty(exports, "__esModule", ({
1504  value: true
1505}));
1506exports["default"] = void 0;
1507var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../modules/popup/assets/js/frontend/document.js"));
1508class _default extends elementorModules.Module {
1509  constructor() {
1510    super();
1511    elementorFrontend.hooks.addAction('elementor/frontend/documents-manager/init-classes', this.addDocumentClass);
1512    elementorFrontend.elementsHandler.attachHandler('form', () => __webpack_require__.e(/*! import() | popup */ "popup").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/forms-action */ "../modules/popup/assets/js/frontend/handlers/forms-action.js")));
1513    elementorFrontend.on('components:init', () => this.onFrontendComponentsInit());
1514    if (this.shouldSetViewsAndSessions()) {
1515      this.setViewsAndSessions();
1516    }
1517  }
1518  shouldSetViewsAndSessions() {
1519    return !elementorFrontend.isEditMode() && !elementorFrontend.isWPPreviewMode() && ElementorProFrontendConfig.popup.hasPopUps;
1520  }
1521  addDocumentClass(documentsManager) {
1522    documentsManager.addDocumentClass('popup', _document.default);
1523  }
1524  setViewsAndSessions() {
1525    const pageViews = elementorFrontend.storage.get('pageViews') || 0;
1526    elementorFrontend.storage.set('pageViews', pageViews + 1);
1527    const activeSession = elementorFrontend.storage.get('activeSession', {
1528      session: true
1529    });
1530    if (!activeSession) {
1531      elementorFrontend.storage.set('activeSession', true, {
1532        session: true
1533      });
1534      const sessions = elementorFrontend.storage.get('sessions') || 0;
1535      elementorFrontend.storage.set('sessions', sessions + 1);
1536    }
1537  }
1538  showPopup(settings, event) {
1539    const popup = elementorFrontend.documentsManager.documents[settings.id];
1540    if (!popup) {
1541      return;
1542    }
1543    const modal = popup.getModal();
1544    if (settings.toggle && modal.isVisible()) {
1545      modal.hide();
1546    } else {
1547      popup.showModal(null, event);
1548    }
1549  }
1550  closePopup(settings, event) {
1551    const popupID = jQuery(event.target).parents('[data-elementor-type="popup"]').data('elementorId');
1552    if (!popupID) {
1553      return;
1554    }
1555    const document = elementorFrontend.documentsManager.documents[popupID];
1556    document.getModal().hide();
1557    if (settings.do_not_show_again) {
1558      document.disable();
1559    }
1560  }
1561  onFrontendComponentsInit() {
1562    elementorFrontend.utils.urlActions.addAction('popup:open', (settings, event) => this.showPopup(settings, event));
1563    elementorFrontend.utils.urlActions.addAction('popup:close', (settings, event) => this.closePopup(settings, event));
1564  }
1565}
1566exports["default"] = _default;
1567
1568/***/ },
1569
1570/***/ "../modules/popup/assets/js/frontend/timing.js"
1571/*!*****************************************************!*\
1572  !*** ../modules/popup/assets/js/frontend/timing.js ***!
1573  \*****************************************************/
1574(__unused_webpack_module, exports, __webpack_require__) {
1575
1576
1577
1578var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1579Object.defineProperty(exports, "__esModule", ({
1580  value: true
1581}));
1582exports["default"] = void 0;
1583var _pageViews = _interopRequireDefault(__webpack_require__(/*! ./timing/page-views */ "../modules/popup/assets/js/frontend/timing/page-views.js"));
1584var _sessions = _interopRequireDefault(__webpack_require__(/*! ./timing/sessions */ "../modules/popup/assets/js/frontend/timing/sessions.js"));
1585var _url = _interopRequireDefault(__webpack_require__(/*! ./timing/url */ "../modules/popup/assets/js/frontend/timing/url.js"));
1586var _sources = _interopRequireDefault(__webpack_require__(/*! ./timing/sources */ "../modules/popup/assets/js/frontend/timing/sources.js"));
1587var _loggedIn = _interopRequireDefault(__webpack_require__(/*! ./timing/logged-in */ "../modules/popup/assets/js/frontend/timing/logged-in.js"));
1588var _devices = _interopRequireDefault(__webpack_require__(/*! ./timing/devices */ "../modules/popup/assets/js/frontend/timing/devices.js"));
1589var _times = _interopRequireDefault(__webpack_require__(/*! ./timing/times */ "../modules/popup/assets/js/frontend/timing/times.js"));
1590var _browsers = _interopRequireDefault(__webpack_require__(/*! ./timing/browsers */ "../modules/popup/assets/js/frontend/timing/browsers.js"));
1591var _schedule = _interopRequireDefault(__webpack_require__(/*! ./timing/schedule */ "../modules/popup/assets/js/frontend/timing/schedule.js"));
1592class _default extends elementorModules.Module {
1593  constructor(settings, document) {
1594    super(settings);
1595    this.document = document;
1596    this.timingClasses = {
1597      page_views: _pageViews.default,
1598      sessions: _sessions.default,
1599      url: _url.default,
1600      sources: _sources.default,
1601      logged_in: _loggedIn.default,
1602      devices: _devices.default,
1603      times: _times.default,
1604      browsers: _browsers.default,
1605      schedule: _schedule.default
1606    };
1607  }
1608  check() {
1609    const settings = this.getSettings();
1610    let checkPassed = true;
1611    jQuery.each(this.timingClasses, (key, TimingClass) => {
1612      if (!settings[key]) {
1613        return;
1614      }
1615      const timing = new TimingClass(settings, this.document);
1616      if (!timing.check()) {
1617        checkPassed = false;
1618      }
1619    });
1620    return checkPassed;
1621  }
1622}
1623exports["default"] = _default;
1624
1625/***/ },
1626
1627/***/ "../modules/popup/assets/js/frontend/timing/base.js"
1628/*!**********************************************************!*\
1629  !*** ../modules/popup/assets/js/frontend/timing/base.js ***!
1630  \**********************************************************/
1631(__unused_webpack_module, exports) {
1632
1633
1634
1635Object.defineProperty(exports, "__esModule", ({
1636  value: true
1637}));
1638exports["default"] = void 0;
1639class _default extends elementorModules.Module {
1640  constructor(settings, document) {
1641    super(settings);
1642    this.document = document;
1643  }
1644  getTimingSetting(settingKey) {
1645    return this.getSettings(this.getName() + '_' + settingKey);
1646  }
1647}
1648exports["default"] = _default;
1649
1650/***/ },
1651
1652/***/ "../modules/popup/assets/js/frontend/timing/browsers.js"
1653/*!**************************************************************!*\
1654  !*** ../modules/popup/assets/js/frontend/timing/browsers.js ***!
1655  \**************************************************************/
1656(__unused_webpack_module, exports, __webpack_require__) {
1657
1658
1659
1660var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1661Object.defineProperty(exports, "__esModule", ({
1662  value: true
1663}));
1664exports["default"] = void 0;
1665var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1666class _default extends _base.default {
1667  getName() {
1668    return 'browsers';
1669  }
1670  check() {
1671    if ('all' === this.getTimingSetting('browsers')) {
1672      return true;
1673    }
1674    const targetedBrowsers = this.getTimingSetting('browsers_options'),
1675      browserDetectionFlags = elementorFrontend.utils.environment;
1676    return targetedBrowsers.some(browserName => browserDetectionFlags[browserName]);
1677  }
1678}
1679exports["default"] = _default;
1680
1681/***/ },
1682
1683/***/ "../modules/popup/assets/js/frontend/timing/devices.js"
1684/*!*************************************************************!*\
1685  !*** ../modules/popup/assets/js/frontend/timing/devices.js ***!
1686  \*************************************************************/
1687(__unused_webpack_module, exports, __webpack_require__) {
1688
1689
1690
1691var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1692Object.defineProperty(exports, "__esModule", ({
1693  value: true
1694}));
1695exports["default"] = void 0;
1696var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1697class _default extends _base.default {
1698  getName() {
1699    return 'devices';
1700  }
1701  check() {
1702    return -1 !== this.getTimingSetting('devices').indexOf(elementorFrontend.getCurrentDeviceMode());
1703  }
1704}
1705exports["default"] = _default;
1706
1707/***/ },
1708
1709/***/ "../modules/popup/assets/js/frontend/timing/logged-in.js"
1710/*!***************************************************************!*\
1711  !*** ../modules/popup/assets/js/frontend/timing/logged-in.js ***!
1712  \***************************************************************/
1713(__unused_webpack_module, exports, __webpack_require__) {
1714
1715
1716
1717var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1718Object.defineProperty(exports, "__esModule", ({
1719  value: true
1720}));
1721exports["default"] = void 0;
1722var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1723class _default extends _base.default {
1724  getName() {
1725    return 'logged_in';
1726  }
1727  check() {
1728    const userConfig = elementorFrontend.config.user;
1729    if (!userConfig) {
1730      return true;
1731    }
1732    if ('all' === this.getTimingSetting('users')) {
1733      return false;
1734    }
1735    const userRolesInHideList = this.getTimingSetting('roles').filter(role => -1 !== userConfig.roles.indexOf(role));
1736    return !userRolesInHideList.length;
1737  }
1738}
1739exports["default"] = _default;
1740
1741/***/ },
1742
1743/***/ "../modules/popup/assets/js/frontend/timing/page-views.js"
1744/*!****************************************************************!*\
1745  !*** ../modules/popup/assets/js/frontend/timing/page-views.js ***!
1746  \****************************************************************/
1747(__unused_webpack_module, exports, __webpack_require__) {
1748
1749
1750
1751var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1752Object.defineProperty(exports, "__esModule", ({
1753  value: true
1754}));
1755exports["default"] = void 0;
1756var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1757class _default extends _base.default {
1758  getName() {
1759    return 'page_views';
1760  }
1761  check() {
1762    const pageViews = elementorFrontend.storage.get('pageViews'),
1763      name = this.getName();
1764    let initialPageViews = this.document.getStorage(name + '_initialPageViews');
1765    if (!initialPageViews) {
1766      this.document.setStorage(name + '_initialPageViews', pageViews);
1767      initialPageViews = pageViews;
1768    }
1769    return pageViews - initialPageViews >= this.getTimingSetting('views');
1770  }
1771}
1772exports["default"] = _default;
1773
1774/***/ },
1775
1776/***/ "../modules/popup/assets/js/frontend/timing/schedule-utils.js"
1777/*!********************************************************************!*\
1778  !*** ../modules/popup/assets/js/frontend/timing/schedule-utils.js ***!
1779  \********************************************************************/
1780(__unused_webpack_module, exports) {
1781
1782
1783
1784Object.defineProperty(exports, "__esModule", ({
1785  value: true
1786}));
1787exports["default"] = void 0;
1788class ScheduleUtils {
1789  constructor(args) {
1790    this.settings = args.settings;
1791  }
1792  getCurrentDateTime() {
1793    let now = new Date();
1794    if ('site' === this.settings.timezone && this.settings.serverDatetime) {
1795      now = new Date(this.settings.serverDatetime);
1796    }
1797    return now;
1798  }
1799  shouldDisplay = () => {
1800    if (!this.settings.startDate && !this.settings.endDate) {
1801      return true;
1802    }
1803    const now = this.getCurrentDateTime();
1804    if ((!this.settings.startDate || now >= this.settings.startDate) && (!this.settings.endDate || now <= this.settings.endDate)) {
1805      return true;
1806    }
1807    return false;
1808  };
1809}
1810exports["default"] = ScheduleUtils;
1811
1812/***/ },
1813
1814/***/ "../modules/popup/assets/js/frontend/timing/schedule.js"
1815/*!**************************************************************!*\
1816  !*** ../modules/popup/assets/js/frontend/timing/schedule.js ***!
1817  \**************************************************************/
1818(__unused_webpack_module, exports, __webpack_require__) {
1819
1820
1821
1822var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1823Object.defineProperty(exports, "__esModule", ({
1824  value: true
1825}));
1826exports["default"] = void 0;
1827var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1828var _scheduleUtils = _interopRequireDefault(__webpack_require__(/*! ./schedule-utils */ "../modules/popup/assets/js/frontend/timing/schedule-utils.js"));
1829class _default extends _base.default {
1830  constructor(...args) {
1831    super(...args);
1832    const {
1833      schedule_timezone: timezone,
1834      schedule_start_date: startDate,
1835      schedule_end_date: endDate,
1836      schedule_server_datetime: serverDatetime
1837    } = this.getSettings();
1838    this.settings = {
1839      timezone,
1840      startDate: startDate ? new Date(startDate) : false,
1841      endDate: endDate ? new Date(endDate) : false,
1842      serverDatetime: serverDatetime ? new Date(serverDatetime) : false
1843    };
1844    this.scheduleUtils = new _scheduleUtils.default({
1845      settings: this.settings
1846    });
1847  }
1848  getName() {
1849    return 'schedule';
1850  }
1851  check() {
1852    return this.scheduleUtils.shouldDisplay();
1853  }
1854}
1855exports["default"] = _default;
1856
1857/***/ },
1858
1859/***/ "../modules/popup/assets/js/frontend/timing/sessions.js"
1860/*!**************************************************************!*\
1861  !*** ../modules/popup/assets/js/frontend/timing/sessions.js ***!
1862  \**************************************************************/
1863(__unused_webpack_module, exports, __webpack_require__) {
1864
1865
1866
1867var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1868Object.defineProperty(exports, "__esModule", ({
1869  value: true
1870}));
1871exports["default"] = void 0;
1872var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1873class _default extends _base.default {
1874  getName() {
1875    return 'sessions';
1876  }
1877  check() {
1878    const sessions = elementorFrontend.storage.get('sessions'),
1879      name = this.getName();
1880    let initialSessions = this.document.getStorage(name + '_initialSessions');
1881    if (!initialSessions) {
1882      this.document.setStorage(name + '_initialSessions', sessions);
1883      initialSessions = sessions;
1884    }
1885    return sessions - initialSessions >= this.getTimingSetting('sessions');
1886  }
1887}
1888exports["default"] = _default;
1889
1890/***/ },
1891
1892/***/ "../modules/popup/assets/js/frontend/timing/sources.js"
1893/*!*************************************************************!*\
1894  !*** ../modules/popup/assets/js/frontend/timing/sources.js ***!
1895  \*************************************************************/
1896(__unused_webpack_module, exports, __webpack_require__) {
1897
1898
1899
1900var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1901Object.defineProperty(exports, "__esModule", ({
1902  value: true
1903}));
1904exports["default"] = void 0;
1905var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
1906class _default extends _base.default {
1907  getName() {
1908    return 'sources';
1909  }
1910  check() {
1911    const sources = this.getTimingSetting('sources');
1912    if (3 === sources.length) {
1913      return true;
1914    }
1915    const referrer = document.referrer.replace(/https?:\/\/(?:www\.)?/, ''),
1916      isInternal = 0 === referrer.indexOf(location.host.replace('www.', ''));
1917    if (isInternal) {
1918      return -1 !== sources.indexOf('internal');
1919    }
1920    if (-1 !== sources.indexOf('external')) {
1921      return true;
1922    }
1923    if (-1 !== sources.indexOf('search')) {
1924      return /^(google|yahoo|bing|yandex|baidu)\./.test(referrer);
1925    }
1926    return false;
1927  }
1928}
1929exports["default"] = _default;
1930
1931/***/ },
1932
1933/***/ "../modules/popup/assets/js/frontend/timing/times-utils.js"
1934/*!*****************************************************************!*\
1935  !*** ../modules/popup/assets/js/frontend/timing/times-utils.js ***!
1936  \*****************************************************************/
1937(__unused_webpack_module, exports) {
1938
1939
1940
1941Object.defineProperty(exports, "__esModule", ({
1942  value: true
1943}));
1944exports["default"] = void 0;
1945class TimesUtils {
1946  constructor(args) {
1947    this.uniqueId = args.uniqueId;
1948    this.settings = args.settings;
1949    this.storage = args.storage;
1950  }
1951  getTimeFramesInSecounds(timeFrame) {
1952    const timeFrames = {
1953      day: 86400,
1954      // Day in seconds
1955      week: 604800,
1956      // Week in seconds
1957      month: 2628288 // Month in seconds
1958    };
1959    return timeFrames[timeFrame];
1960  }
1961  setExpiration(name, value, timeFrame) {
1962    const data = this.storage.get(name);
1963    if (!data) {
1964      const options = {
1965        lifetimeInSeconds: this.getTimeFramesInSecounds(timeFrame)
1966      };
1967      this.storage.set(name, value, options);
1968      return;
1969    }
1970    this.storage.set(name, value);
1971  }
1972  getImpressionsCount() {
1973    const impressionCount = this.storage.get(this.uniqueId) ?? 0;
1974    return parseInt(impressionCount);
1975  }
1976  incrementImpressionsCount() {
1977    if (!this.settings.period) {
1978      this.storage.set('times', (this.storage.get('times') ?? 0) + 1);
1979    } else if ('session' !== this.settings.period) {
1980      const impressionCount = this.getImpressionsCount();
1981      this.setExpiration(this.uniqueId, impressionCount + 1, this.settings.period);
1982    } else {
1983      sessionStorage.setItem(this.uniqueId, parseInt(sessionStorage.getItem(this.uniqueId) ?? 0) + 1);
1984    }
1985  }
1986  shouldCountOnOpen() {
1987    if (this.settings.countOnOpen) {
1988      this.incrementImpressionsCount();
1989    }
1990  }
1991  shouldDisplayPerTimeFrame() {
1992    const impressionCount = this.getImpressionsCount();
1993    if (impressionCount < this.settings.showsLimit) {
1994      this.shouldCountOnOpen();
1995      return true;
1996    }
1997    return false;
1998  }
1999  shouldDisplayPerSession() {
2000    const impressionCount = sessionStorage.getItem(this.uniqueId) ?? 0;
2001    if (parseInt(impressionCount) < this.settings.showsLimit) {
2002      this.shouldCountOnOpen();
2003      return true;
2004    }
2005    return false;
2006  }
2007  shouldDisplayBackwordCompatible(impressionCount = 0, showsLimit) {
2008    const shouldDisplay = parseInt(impressionCount) < parseInt(showsLimit);
2009    this.shouldCountOnOpen();
2010    return shouldDisplay;
2011  }
2012}
2013exports["default"] = TimesUtils;
2014
2015/***/ },
2016
2017/***/ "../modules/popup/assets/js/frontend/timing/times.js"
2018/*!***********************************************************!*\
2019  !*** ../modules/popup/assets/js/frontend/timing/times.js ***!
2020  \***********************************************************/
2021(__unused_webpack_module, exports, __webpack_require__) {
2022
2023
2024
2025var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2026Object.defineProperty(exports, "__esModule", ({
2027  value: true
2028}));
2029exports["default"] = void 0;
2030var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
2031var _timesUtils = _interopRequireDefault(__webpack_require__(/*! ./times-utils.js */ "../modules/popup/assets/js/frontend/timing/times-utils.js"));
2032class _default extends _base.default {
2033  constructor(...args) {
2034    super(...args);
2035    this.uniqueId = `popup-${this.document.getSettings('id')}-impressions-count`;
2036    const {
2037      times_count: countOnOpen,
2038      times_period: period,
2039      times_times: showsLimit
2040    } = this.getSettings();
2041    this.settings = {
2042      countOnOpen,
2043      period,
2044      showsLimit: parseInt(showsLimit)
2045    };
2046    if ('' === this.settings.period) {
2047      this.settings.period = false;
2048    }
2049    if (['', 'close'].includes(this.settings.countOnOpen)) {
2050      this.settings.countOnOpen = false;
2051      this.onPopupHide();
2052    } else {
2053      this.settings.countOnOpen = true;
2054    }
2055    this.utils = new _timesUtils.default({
2056      uniqueId: this.uniqueId,
2057      settings: this.settings,
2058      storage: elementorFrontend.storage
2059    });
2060  }
2061  getName() {
2062    return 'times';
2063  }
2064  check() {
2065    if (!this.settings.period) {
2066      const impressionCount = this.document.getStorage('times') || 0;
2067      const showsLimit = this.getTimingSetting('times');
2068      return this.utils.shouldDisplayBackwordCompatible(impressionCount, showsLimit);
2069    }
2070    if ('session' !== this.settings.period) {
2071      if (!this.utils.shouldDisplayPerTimeFrame()) {
2072        return false;
2073      }
2074    } else if (!this.utils.shouldDisplayPerSession()) {
2075      return false;
2076    }
2077    return true;
2078  }
2079  onPopupHide() {
2080    window.addEventListener('elementor/popup/hide', () => {
2081      this.utils.incrementImpressionsCount();
2082    });
2083  }
2084}
2085exports["default"] = _default;
2086
2087/***/ },
2088
2089/***/ "../modules/popup/assets/js/frontend/timing/url.js"
2090/*!*********************************************************!*\
2091  !*** ../modules/popup/assets/js/frontend/timing/url.js ***!
2092  \*********************************************************/
2093(__unused_webpack_module, exports, __webpack_require__) {
2094
2095
2096
2097var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2098Object.defineProperty(exports, "__esModule", ({
2099  value: true
2100}));
2101exports["default"] = void 0;
2102var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));
2103class _default extends _base.default {
2104  getName() {
2105    return 'url';
2106  }
2107  check() {
2108    const url = this.getTimingSetting('url'),
2109      action = this.getTimingSetting('action'),
2110      referrer = document.referrer;
2111    if ('regex' !== action) {
2112      return 'hide' === action ^ -1 !== referrer.indexOf(url);
2113    }
2114    let regexp;
2115    try {
2116      regexp = new RegExp(url);
2117    } catch (e) {
2118      return false;
2119    }
2120    return regexp.test(referrer);
2121  }
2122}
2123exports["default"] = _default;
2124
2125/***/ },
2126
2127/***/ "../modules/popup/assets/js/frontend/triggers.js"
2128/*!*******************************************************!*\
2129  !*** ../modules/popup/assets/js/frontend/triggers.js ***!
2130  \*******************************************************/
2131(__unused_webpack_module, exports, __webpack_require__) {
2132
2133
2134
2135var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2136Object.defineProperty(exports, "__esModule", ({
2137  value: true
2138}));
2139exports["default"] = void 0;
2140var _pageLoad = _interopRequireDefault(__webpack_require__(/*! ./triggers/page-load */ "../modules/popup/assets/js/frontend/triggers/page-load.js"));
2141var _scrolling = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling */ "../modules/popup/assets/js/frontend/triggers/scrolling.js"));
2142var _scrollingTo = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling-to */ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js"));
2143var _click = _interopRequireDefault(__webpack_require__(/*! ./triggers/click */ "../modules/popup/assets/js/frontend/triggers/click.js"));
2144var _inactivity = _interopRequireDefault(__webpack_require__(/*! ./triggers/inactivity */ "../modules/popup/assets/js/frontend/triggers/inactivity.js"));
2145var _exitIntent = _interopRequireDefault(__webpack_require__(/*! ./triggers/exit-intent */ "../modules/popup/assets/js/frontend/triggers/exit-intent.js"));
2146var _adblockDetection = _interopRequireDefault(__webpack_require__(/*! ./triggers/adblock-detection */ "../modules/popup/assets/js/frontend/triggers/adblock-detection.js"));
2147class _default extends elementorModules.Module {
2148  constructor(settings, document) {
2149    super(settings);
2150    this.document = document;
2151    this.triggers = [];
2152    this.triggerClasses = {
2153      page_load: _pageLoad.default,
2154      scrolling: _scrolling.default,
2155      scrolling_to: _scrollingTo.default,
2156      click: _click.default,
2157      inactivity: _inactivity.default,
2158      exit_intent: _exitIntent.default,
2159      adblock_detection: _adblockDetection.default
2160    };
2161    this.runTriggers();
2162  }
2163  runTriggers() {
2164    const settings = this.getSettings();
2165    jQuery.each(this.triggerClasses, (key, TriggerClass) => {
2166      if (!settings[key]) {
2167        return;
2168      }
2169      const trigger = new TriggerClass(settings, () => this.onTriggerFired());
2170      trigger.run();
2171      this.triggers.push(trigger);
2172    });
2173  }
2174  destroyTriggers() {
2175    this.triggers.forEach(trigger => trigger.destroy());
2176    this.triggers = [];
2177  }
2178  onTriggerFired() {
2179    this.document.showModal(true);
2180    this.destroyTriggers();
2181  }
2182}
2183exports["default"] = _default;
2184
2185/***/ },
2186
2187/***/ "../modules/popup/assets/js/frontend/triggers/adblock-detection.js"
2188/*!*************************************************************************!*\
2189  !*** ../modules/popup/assets/js/frontend/triggers/adblock-detection.js ***!
2190  \*************************************************************************/
2191(__unused_webpack_module, exports, __webpack_require__) {
2192
2193
2194
2195var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2196Object.defineProperty(exports, "__esModule", ({
2197  value: true
2198}));
2199exports["default"] = void 0;
2200var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2201class _default extends _base.default {
2202  getName() {
2203    return 'adblock_detection';
2204  }
2205  generateRandomString() {
2206    const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
2207    let result = '';
2208    for (let i = 0; i < 6; i++) {
2209      const randomIndex = Math.floor(Math.random() * chars.length);
2210      result += chars[randomIndex];
2211    }
2212    return result;
2213  }
2214  hasAdblock() {
2215    const elementId = `elementor-adblock-detection-${this.generateRandomString()}`;
2216    this.createEmptyAdBlockElement(elementId);
2217    const tempAdBlockEle = document.querySelector(`#${elementId}`);
2218    if (!tempAdBlockEle) {
2219      return true;
2220    }
2221    const hasAdBlock = 'none' === window.getComputedStyle(tempAdBlockEle)?.display;
2222    this.removeEmptyAdBlockElement(tempAdBlockEle);
2223    return hasAdBlock;
2224  }
2225  createEmptyAdBlockElement(elementId) {
2226    const tempAdDiv = document.createElement('div');
2227    tempAdDiv.id = elementId;
2228    tempAdDiv.className = 'ad-box';
2229    tempAdDiv.style.position = 'fixed';
2230    tempAdDiv.style.top = '0';
2231    tempAdDiv.style.left = '0';
2232    tempAdDiv.setAttribute('aria-hidden', 'true');
2233    tempAdDiv.innerHTML = '&nbsp;';
2234    document.body.appendChild(tempAdDiv);
2235  }
2236  removeEmptyAdBlockElement(tempAdBlockEle) {
2237    tempAdBlockEle.remove();
2238  }
2239  run() {
2240    this.timeout = setTimeout(() => {
2241      const hasAdBlock = this.hasAdblock();
2242      if (hasAdBlock) {
2243        this.callback();
2244      }
2245    }, this.getTriggerSetting('delay') * 1000);
2246  }
2247  destroy() {
2248    clearTimeout(this.timeout);
2249  }
2250}
2251exports["default"] = _default;
2252
2253/***/ },
2254
2255/***/ "../modules/popup/assets/js/frontend/triggers/base.js"
2256/*!************************************************************!*\
2257  !*** ../modules/popup/assets/js/frontend/triggers/base.js ***!
2258  \************************************************************/
2259(__unused_webpack_module, exports) {
2260
2261
2262
2263Object.defineProperty(exports, "__esModule", ({
2264  value: true
2265}));
2266exports["default"] = void 0;
2267class _default extends elementorModules.Module {
2268  constructor(settings, callback) {
2269    super(settings);
2270    this.callback = callback;
2271  }
2272  getTriggerSetting(settingKey) {
2273    return this.getSettings(this.getName() + '_' + settingKey);
2274  }
2275}
2276exports["default"] = _default;
2277
2278/***/ },
2279
2280/***/ "../modules/popup/assets/js/frontend/triggers/click.js"
2281/*!*************************************************************!*\
2282  !*** ../modules/popup/assets/js/frontend/triggers/click.js ***!
2283  \*************************************************************/
2284(__unused_webpack_module, exports, __webpack_require__) {
2285
2286
2287
2288var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2289Object.defineProperty(exports, "__esModule", ({
2290  value: true
2291}));
2292exports["default"] = void 0;
2293var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2294class _default extends _base.default {
2295  constructor(...args) {
2296    super(...args);
2297    this.checkClick = this.checkClick.bind(this);
2298    this.clicksCount = 0;
2299  }
2300  getName() {
2301    return 'click';
2302  }
2303  checkClick() {
2304    this.clicksCount++;
2305    if (this.clicksCount === this.getTriggerSetting('times')) {
2306      this.callback();
2307    }
2308  }
2309  run() {
2310    elementorFrontend.elements.$body.on('click', this.checkClick);
2311  }
2312  destroy() {
2313    elementorFrontend.elements.$body.off('click', this.checkClick);
2314  }
2315}
2316exports["default"] = _default;
2317
2318/***/ },
2319
2320/***/ "../modules/popup/assets/js/frontend/triggers/exit-intent.js"
2321/*!*******************************************************************!*\
2322  !*** ../modules/popup/assets/js/frontend/triggers/exit-intent.js ***!
2323  \*******************************************************************/
2324(__unused_webpack_module, exports, __webpack_require__) {
2325
2326
2327
2328var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2329Object.defineProperty(exports, "__esModule", ({
2330  value: true
2331}));
2332exports["default"] = void 0;
2333var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2334class _default extends _base.default {
2335  constructor(...args) {
2336    super(...args);
2337    this.detectExitIntent = this.detectExitIntent.bind(this);
2338  }
2339  getName() {
2340    return 'exit_intent';
2341  }
2342  detectExitIntent(event) {
2343    if (event.clientY <= 0) {
2344      this.callback();
2345    }
2346  }
2347  run() {
2348    elementorFrontend.elements.$window.on('mouseleave', this.detectExitIntent);
2349  }
2350  destroy() {
2351    elementorFrontend.elements.$window.off('mouseleave', this.detectExitIntent);
2352  }
2353}
2354exports["default"] = _default;
2355
2356/***/ },
2357
2358/***/ "../modules/popup/assets/js/frontend/triggers/inactivity.js"
2359/*!******************************************************************!*\
2360  !*** ../modules/popup/assets/js/frontend/triggers/inactivity.js ***!
2361  \******************************************************************/
2362(__unused_webpack_module, exports, __webpack_require__) {
2363
2364
2365
2366var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2367Object.defineProperty(exports, "__esModule", ({
2368  value: true
2369}));
2370exports["default"] = void 0;
2371var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2372class _default extends _base.default {
2373  constructor(...args) {
2374    super(...args);
2375    this.restartTimer = this.restartTimer.bind(this);
2376  }
2377  getName() {
2378    return 'inactivity';
2379  }
2380  run() {
2381    this.startTimer();
2382    elementorFrontend.elements.$document.on('keypress mousemove', this.restartTimer);
2383  }
2384  startTimer() {
2385    this.timeOut = setTimeout(this.callback, this.getTriggerSetting('time') * 1000);
2386  }
2387  clearTimer() {
2388    clearTimeout(this.timeOut);
2389  }
2390  restartTimer() {
2391    this.clearTimer();
2392    this.startTimer();
2393  }
2394  destroy() {
2395    this.clearTimer();
2396    elementorFrontend.elements.$document.off('keypress mousemove', this.restartTimer);
2397  }
2398}
2399exports["default"] = _default;
2400
2401/***/ },
2402
2403/***/ "../modules/popup/assets/js/frontend/triggers/page-load.js"
2404/*!*****************************************************************!*\
2405  !*** ../modules/popup/assets/js/frontend/triggers/page-load.js ***!
2406  \*****************************************************************/
2407(__unused_webpack_module, exports, __webpack_require__) {
2408
2409
2410
2411var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2412Object.defineProperty(exports, "__esModule", ({
2413  value: true
2414}));
2415exports["default"] = void 0;
2416var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2417class _default extends _base.default {
2418  getName() {
2419    return 'page_load';
2420  }
2421  run() {
2422    this.timeout = setTimeout(this.callback, this.getTriggerSetting('delay') * 1000);
2423  }
2424  destroy() {
2425    clearTimeout(this.timeout);
2426  }
2427}
2428exports["default"] = _default;
2429
2430/***/ },
2431
2432/***/ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js"
2433/*!********************************************************************!*\
2434  !*** ../modules/popup/assets/js/frontend/triggers/scrolling-to.js ***!
2435  \********************************************************************/
2436(__unused_webpack_module, exports, __webpack_require__) {
2437
2438
2439
2440var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2441Object.defineProperty(exports, "__esModule", ({
2442  value: true
2443}));
2444exports["default"] = void 0;
2445var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2446class _default extends _base.default {
2447  getName() {
2448    return 'scrolling_to';
2449  }
2450  run() {
2451    let $targetElement;
2452    try {
2453      $targetElement = jQuery(this.getTriggerSetting('selector'));
2454    } catch (e) {
2455      return;
2456    }
2457    if ($targetElement.length) {
2458      this.setUpIntersectionObserver();
2459      this.observer.observe($targetElement[0]);
2460    }
2461  }
2462  setUpIntersectionObserver() {
2463    this.observer = new IntersectionObserver(entries => {
2464      entries.forEach(entry => {
2465        if (entry.isIntersecting) {
2466          this.callback();
2467        }
2468      });
2469    });
2470  }
2471  destroy() {
2472    if (this.observer) {
2473      this.observer.disconnect();
2474    }
2475  }
2476}
2477exports["default"] = _default;
2478
2479/***/ },
2480
2481/***/ "../modules/popup/assets/js/frontend/triggers/scrolling.js"
2482/*!*****************************************************************!*\
2483  !*** ../modules/popup/assets/js/frontend/triggers/scrolling.js ***!
2484  \*****************************************************************/
2485(__unused_webpack_module, exports, __webpack_require__) {
2486
2487
2488
2489var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2490Object.defineProperty(exports, "__esModule", ({
2491  value: true
2492}));
2493exports["default"] = void 0;
2494var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));
2495class _default extends _base.default {
2496  constructor(...args) {
2497    super(...args);
2498    this.checkScroll = this.checkScroll.bind(this);
2499    this.lastScrollOffset = 0;
2500  }
2501  getName() {
2502    return 'scrolling';
2503  }
2504  checkScroll() {
2505    const scrollDirection = scrollY > this.lastScrollOffset ? 'down' : 'up',
2506      requestedDirection = this.getTriggerSetting('direction');
2507    this.lastScrollOffset = scrollY;
2508    if (scrollDirection !== requestedDirection) {
2509      return;
2510    }
2511    if ('up' === scrollDirection) {
2512      this.callback();
2513      return;
2514    }
2515    const fullScroll = elementorFrontend.elements.$document.height() - innerHeight,
2516      scrollPercent = scrollY / fullScroll * 100;
2517    if (scrollPercent >= this.getTriggerSetting('offset')) {
2518      this.callback();
2519    }
2520  }
2521  run() {
2522    elementorFrontend.elements.$window.on('scroll', this.checkScroll);
2523  }
2524  destroy() {
2525    elementorFrontend.elements.$window.off('scroll', this.checkScroll);
2526  }
2527}
2528exports["default"] = _default;
2529
2530/***/ },
2531
2532/***/ "../modules/posts/assets/js/frontend/frontend.js"
2533/*!*******************************************************!*\
2534  !*** ../modules/posts/assets/js/frontend/frontend.js ***!
2535  \*******************************************************/
2536(__unused_webpack_module, exports, __webpack_require__) {
2537
2538
2539
2540Object.defineProperty(exports, "__esModule", ({
2541  value: true
2542}));
2543exports["default"] = void 0;
2544class _default extends elementorModules.Module {
2545  constructor() {
2546    super();
2547    ['classic', 'full_content', 'cards'].forEach(skinName => {
2548      elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | load-more */ "load-more").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/load-more */ "../modules/posts/assets/js/frontend/handlers/load-more.js")), skinName);
2549    });
2550    elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js")), 'classic');
2551    elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js")), 'full_content');
2552    elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/cards */ "../modules/posts/assets/js/frontend/handlers/cards.js")), 'cards');
2553    elementorFrontend.elementsHandler.attachHandler('portfolio', () => __webpack_require__.e(/*! import() | portfolio */ "portfolio").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/portfolio */ "../modules/posts/assets/js/frontend/handlers/portfolio.js")));
2554  }
2555}
2556exports["default"] = _default;
2557
2558/***/ },
2559
2560/***/ "../modules/search/assets/js/frontend/frontend.js"
2561/*!********************************************************!*\
2562  !*** ../modules/search/assets/js/frontend/frontend.js ***!
2563  \********************************************************/
2564(__unused_webpack_module, exports, __webpack_require__) {
2565
2566
2567
2568Object.defineProperty(exports, "__esModule", ({
2569  value: true
2570}));
2571exports["default"] = void 0;
2572class _default extends elementorModules.Module {
2573  constructor() {
2574    super();
2575    elementorFrontend.elementsHandler.attachHandler('search', [() => __webpack_require__.e(/*! import() | search */ "search").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search */ "../modules/search/assets/js/frontend/handlers/search.js")), () => __webpack_require__.e(/*! import() | search */ "search").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search-keyboard-handler */ "../modules/search/assets/js/frontend/handlers/search-keyboard-handler.js"))]);
2576  }
2577}
2578exports["default"] = _default;
2579
2580/***/ },
2581
2582/***/ "../modules/share-buttons/assets/js/frontend/frontend.js"
2583/*!***************************************************************!*\
2584  !*** ../modules/share-buttons/assets/js/frontend/frontend.js ***!
2585  \***************************************************************/
2586(__unused_webpack_module, exports, __webpack_require__) {
2587
2588
2589
2590Object.defineProperty(exports, "__esModule", ({
2591  value: true
2592}));
2593exports["default"] = void 0;
2594class _default extends elementorModules.Module {
2595  constructor() {
2596    super();
2597    elementorFrontend.elementsHandler.attachHandler('share-buttons', () => __webpack_require__.e(/*! import() | share-buttons */ "share-buttons").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/share-buttons */ "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js")));
2598  }
2599}
2600exports["default"] = _default;
2601
2602/***/ },
2603
2604/***/ "../modules/slides/assets/js/frontend/frontend.js"
2605/*!********************************************************!*\
2606  !*** ../modules/slides/assets/js/frontend/frontend.js ***!
2607  \********************************************************/
2608(__unused_webpack_module, exports, __webpack_require__) {
2609
2610
2611
2612Object.defineProperty(exports, "__esModule", ({
2613  value: true
2614}));
2615exports["default"] = void 0;
2616class _default extends elementorModules.Module {
2617  constructor() {
2618    super();
2619    elementorFrontend.elementsHandler.attachHandler('slides', () => __webpack_require__.e(/*! import() | slides */ "slides").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/slides */ "../modules/slides/assets/js/frontend/handlers/slides.js")));
2620  }
2621}
2622exports["default"] = _default;
2623
2624/***/ },
2625
2626/***/ "../modules/social/assets/js/frontend/frontend.js"
2627/*!********************************************************!*\
2628  !*** ../modules/social/assets/js/frontend/frontend.js ***!
2629  \********************************************************/
2630(__unused_webpack_module, exports, __webpack_require__) {
2631
2632
2633
2634Object.defineProperty(exports, "__esModule", ({
2635  value: true
2636}));
2637exports["default"] = void 0;
2638class _default extends elementorModules.Module {
2639  constructor() {
2640    super();
2641    elementorFrontend.elementsHandler.attachHandler('facebook-button', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
2642    elementorFrontend.elementsHandler.attachHandler('facebook-comments', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
2643    elementorFrontend.elementsHandler.attachHandler('facebook-embed', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
2644    elementorFrontend.elementsHandler.attachHandler('facebook-page', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
2645  }
2646}
2647exports["default"] = _default;
2648
2649/***/ },
2650
2651/***/ "../modules/table-of-contents/assets/js/frontend/frontend.js"
2652/*!*******************************************************************!*\
2653  !*** ../modules/table-of-contents/assets/js/frontend/frontend.js ***!
2654  \*******************************************************************/
2655(__unused_webpack_module, exports, __webpack_require__) {
2656
2657
2658
2659Object.defineProperty(exports, "__esModule", ({
2660  value: true
2661}));
2662exports["default"] = void 0;
2663class _default extends elementorModules.Module {
2664  constructor() {
2665    super();
2666    elementorFrontend.elementsHandler.attachHandler('table-of-contents', () => Promise.all(/*! import() | table-of-contents */[__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("table-of-contents")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/table-of-contents */ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js")));
2667  }
2668}
2669exports["default"] = _default;
2670
2671/***/ },
2672
2673/***/ "../modules/theme-builder/assets/js/frontend/frontend.js"
2674/*!***************************************************************!*\
2675  !*** ../modules/theme-builder/assets/js/frontend/frontend.js ***!
2676  \***************************************************************/
2677(__unused_webpack_module, exports, __webpack_require__) {
2678
2679
2680
2681Object.defineProperty(exports, "__esModule", ({
2682  value: true
2683}));
2684exports["default"] = void 0;
2685class _default extends elementorModules.Module {
2686  constructor() {
2687    super();
2688    ['archive_classic', 'archive_full_content', 'archive_cards'].forEach(skinName => {
2689      elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-load-more */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js")), skinName);
2690    });
2691    elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_classic');
2692    elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_full_content');
2693    elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-cards */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js")), 'archive_cards');
2694    jQuery(function () {
2695      // Go to elementor element - if the URL is something like http://domain.com/any-page?preview=true&theme_template_id=6479
2696      var match = location.search.match(/theme_template_id=(\d*)/),
2697        $element = match ? jQuery('.elementor-' + match[1]) : [];
2698      if ($element.length) {
2699        jQuery('html, body').animate({
2700          scrollTop: $element.offset().top - window.innerHeight / 2
2701        });
2702      }
2703    });
2704  }
2705}
2706exports["default"] = _default;
2707
2708/***/ },
2709
2710/***/ "../modules/theme-elements/assets/js/frontend/frontend.js"
2711/*!****************************************************************!*\
2712  !*** ../modules/theme-elements/assets/js/frontend/frontend.js ***!
2713  \****************************************************************/
2714(__unused_webpack_module, exports, __webpack_require__) {
2715
2716
2717
2718Object.defineProperty(exports, "__esModule", ({
2719  value: true
2720}));
2721exports["default"] = void 0;
2722class _default extends elementorModules.Module {
2723  constructor() {
2724    super();
2725    elementorFrontend.elementsHandler.attachHandler('search-form', () => __webpack_require__.e(/*! import() | search-form */ "search-form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search-form */ "../modules/theme-elements/assets/js/frontend/handlers/search-form.js")));
2726  }
2727}
2728exports["default"] = _default;
2729
2730/***/ },
2731
2732/***/ "../modules/woocommerce/assets/js/frontend/frontend.js"
2733/*!*************************************************************!*\
2734  !*** ../modules/woocommerce/assets/js/frontend/frontend.js ***!
2735  \*************************************************************/
2736(__unused_webpack_module, exports, __webpack_require__) {
2737
2738
2739
2740Object.defineProperty(exports, "__esModule", ({
2741  value: true
2742}));
2743exports["default"] = void 0;
2744class _default extends elementorModules.Module {
2745  constructor() {
2746    super();
2747    elementorFrontend.elementsHandler.attachHandler('woocommerce-menu-cart', () => __webpack_require__.e(/*! import() | woocommerce-menu-cart */ "woocommerce-menu-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/menu-cart */ "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js")));
2748    elementorFrontend.elementsHandler.attachHandler('woocommerce-purchase-summary', () => __webpack_require__.e(/*! import() | woocommerce-purchase-summary */ "woocommerce-purchase-summary").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/purchase-summary */ "../modules/woocommerce/assets/js/frontend/handlers/purchase-summary.js")));
2749    elementorFrontend.elementsHandler.attachHandler('woocommerce-checkout-page', () => __webpack_require__.e(/*! import() | woocommerce-checkout-page */ "woocommerce-checkout-page").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/checkout-page */ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js")));
2750    elementorFrontend.elementsHandler.attachHandler('woocommerce-cart', () => __webpack_require__.e(/*! import() | woocommerce-cart */ "woocommerce-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/cart */ "../modules/woocommerce/assets/js/frontend/handlers/cart.js")));
2751    elementorFrontend.elementsHandler.attachHandler('woocommerce-my-account', () => __webpack_require__.e(/*! import() | woocommerce-my-account */ "woocommerce-my-account").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/my-account */ "../modules/woocommerce/assets/js/frontend/handlers/my-account.js")));
2752    elementorFrontend.elementsHandler.attachHandler('woocommerce-notices', () => __webpack_require__.e(/*! import() | woocommerce-notices */ "woocommerce-notices").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/notices */ "../modules/woocommerce/assets/js/frontend/handlers/notices.js")));
2753    elementorFrontend.elementsHandler.attachHandler('woocommerce-product-add-to-cart', () => __webpack_require__.e(/*! import() | product-add-to-cart */ "product-add-to-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/product-add-to-cart */ "../modules/woocommerce/assets/js/frontend/handlers/product-add-to-cart.js")));
2754
2755    /**
2756     * `wc-cart` script is enqueued in the Editor by the widget `get_script_depends()`. As a result WooCommerce
2757     * triggers its cart related event callbacks. One of the callbacks requires `.woocommerce-cart-form` to be in
2758     * the page and reloads the Preview if it's not there. To get around this we add our own empty
2759     * `.woocommerce-cart-form` to the page to stop the page reloading.
2760     */
2761    if (elementorFrontend.isEditMode()) {
2762      elementorFrontend.on('components:init', () => {
2763        if (!elementorFrontend.elements.$body.find('.elementor-widget-woocommerce-cart').length) {
2764          elementorFrontend.elements.$body.append('<div class="woocommerce-cart-form">');
2765        }
2766      });
2767    }
2768  }
2769}
2770exports["default"] = _default;
2771
2772/***/ },
2773
2774/***/ "@wordpress/i18n"
2775/*!**************************!*\
2776  !*** external "wp.i18n" ***!
2777  \**************************/
2778(module) {
2779
2780module.exports = wp.i18n;
2781
2782/***/ }
2783
2784},
2785/******/ __webpack_require__ => { // webpackRuntimeModules
2786/******/
2786 var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
2787/******/ __webpack_require__.O(0, ["frontend"], () => (__webpack_exec__("../assets/dev/js/frontend/elements-handlers.js")));
2788/******/ var __webpack_exports__ = __webpack_require__.O();
2789/******/ }
2790]);
2791//# sourceMappingURL=elements-handlers.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.