PageSourceSearch

https://binduramunicipality.co.zw/wp-content/plugins/elementor-pro/assets/js/elements-handlers.js?ver=3.24.3

js binduramunicipality.co.zw collected 2026-10-03 18:17:08 UTC 113,463 bytes, 2,692 lines download raw bytes

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