PluginProbe
Elementor Website Builder – more than just a page builder / 3.25.2
Elementor Website Builder – more than just a page builder v3.25.2
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | assets/js/frontend.js +840 -301 4.1.0-beta1 → 3.25.2 View file →
@@ -1,6 +1,7 @@
1 +/*! elementor - v3.25.0 - 29-10-2024 */
1 2 "use strict";
2 -(self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["frontend"],{
3 +(self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["frontend"],{
3 4
4 5 /***/ "../assets/dev/js/frontend/documents-manager.js":
5 6 /*!******************************************************!*\
6 7 !*** ../assets/dev/js/frontend/documents-manager.js ***!
@@ -15,10 +16,10 @@
15 16 }));
16 17 exports["default"] = void 0;
17 18 var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../assets/dev/js/frontend/document.js"));
18 19 class _default extends elementorModules.ViewModule {
19 - constructor(...args) {
20 - super(...args);
20 + constructor() {
21 + super(...arguments);
21 22 this.documents = {};
22 23 this.initDocumentClasses();
23 24 this.attachDocumentsClasses();
24 25 }
@@ -70,17 +71,21 @@
70 71
71 72
72 73
73 74 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
74 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
75 -__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
76 75 var _global = _interopRequireDefault(__webpack_require__(/*! ./handlers/global */ "../assets/dev/js/frontend/handlers/global.js"));
76 +var _background = _interopRequireDefault(__webpack_require__(/*! ./handlers/background */ "../assets/dev/js/frontend/handlers/background.js"));
77 77 var _container = _interopRequireDefault(__webpack_require__(/*! ./handlers/container/container */ "../assets/dev/js/frontend/handlers/container/container.js"));
78 -var _section = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/section */ "../assets/dev/js/frontend/handlers/section/section.js"));
79 78 var _column = _interopRequireDefault(__webpack_require__(/*! ./handlers/column */ "../assets/dev/js/frontend/handlers/column.js"));
79 +var _handlesPosition = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/handles-position */ "../assets/dev/js/frontend/handlers/section/handles-position.js"));
80 +var _stretchedSection = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/stretched-section */ "../assets/dev/js/frontend/handlers/section/stretched-section.js"));
81 +var _shapes = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/shapes */ "../assets/dev/js/frontend/handlers/section/shapes.js"));
82 +// Section handlers.
83 +
80 84 /* global elementorFrontendConfig */
81 85
82 86 module.exports = function ($) {
87 + var _this = this;
83 88 const handlersInstances = {};
84 89 this.elementsHandlers = {
85 90 'accordion.default': () => __webpack_require__.e(/*! import() | accordion */ "accordion").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/accordion */ "../assets/dev/js/frontend/handlers/accordion.js")),
86 91 'alert.default': () => __webpack_require__.e(/*! import() | alert */ "alert").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/alert */ "../assets/dev/js/frontend/handlers/alert.js")),
@@ -90,15 +95,12 @@
90 95 'toggle.default': () => __webpack_require__.e(/*! import() | toggle */ "toggle").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/toggle */ "../assets/dev/js/frontend/handlers/toggle.js")),
91 96 'video.default': () => __webpack_require__.e(/*! import() | video */ "video").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/video */ "../assets/dev/js/frontend/handlers/video.js")),
92 97 'image-carousel.default': () => __webpack_require__.e(/*! import() | image-carousel */ "image-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/image-carousel */ "../assets/dev/js/frontend/handlers/image-carousel.js")),
93 98 'text-editor.default': () => __webpack_require__.e(/*! import() | text-editor */ "text-editor").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/text-editor */ "../assets/dev/js/frontend/handlers/text-editor.js")),
94 - 'wp-widget-media_audio.default': () => __webpack_require__.e(/*! import() | wp-audio */ "wp-audio").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/wp-audio */ "../assets/dev/js/frontend/handlers/wp-audio.js")),
95 - container: _container.default,
96 - section: _section.default,
97 - column: _column.default
99 + 'wp-widget-media_audio.default': () => __webpack_require__.e(/*! import() | wp-audio */ "wp-audio").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/wp-audio */ "../assets/dev/js/frontend/handlers/wp-audio.js"))
98 100 };
99 101 if (elementorFrontendConfig.experimentalFeatures['nested-elements']) {
100 - this.elementsHandlers['nested-tabs.default'] = () => __webpack_require__.e(/*! import() | nested-tabs */ "nested-tabs").then(__webpack_require__.bind(__webpack_require__, /*! elementor/modules/nested-tabs/assets/js/frontend/handlers/nested-tabs */ "../modules/nested-tabs/assets/js/frontend/handlers/nested-tabs.js"));
102 + this.elementsHandlers['nested-tabs.default'] = () => Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! elementor/modules/nested-tabs/assets/js/frontend/handlers/nested-tabs */ "../modules/nested-tabs/assets/js/frontend/handlers/nested-tabs.js"));
101 103 }
102 104 if (elementorFrontendConfig.experimentalFeatures['nested-elements']) {
103 105 this.elementsHandlers['nested-accordion.default'] = () => __webpack_require__.e(/*! import() | nested-accordion */ "nested-accordion").then(__webpack_require__.bind(__webpack_require__, /*! elementor/modules/nested-accordion/assets/js/frontend/handlers/nested-accordion */ "../modules/nested-accordion/assets/js/frontend/handlers/nested-accordion.js"));
104 106 }
@@ -107,8 +109,18 @@
107 109 this.elementsHandlers['floating-bars-var-1.default'] = () => __webpack_require__.e(/*! import() | floating-bars */ "floating-bars").then(__webpack_require__.bind(__webpack_require__, /*! elementor/modules/floating-buttons/assets/js/floating-bars/frontend/handlers/floating-bars */ "../modules/floating-buttons/assets/js/floating-bars/frontend/handlers/floating-bars.js"));
108 110 }
109 111 const addGlobalHandlers = () => elementorFrontend.hooks.addAction('frontend/element_ready/global', _global.default);
110 112 const addElementsHandlers = () => {
113 + this.elementsHandlers.section = [_stretchedSection.default,
114 + // Must run before background handlers to init the slideshow only after the stretch.
115 + ..._background.default, _handlesPosition.default, _shapes.default];
116 + this.elementsHandlers.container = [..._background.default];
117 +
118 + // Add editor-only handlers.
119 + if (elementorFrontend.isEditMode()) {
120 + this.elementsHandlers.container.push(..._container.default);
121 + }
122 + this.elementsHandlers.column = _column.default;
111 123 $.each(this.elementsHandlers, (elementName, Handlers) => {
112 124 const elementData = elementName.split('.');
113 125 elementName = elementData[0];
114 126 const skin = elementData[1] || null;
@@ -115,14 +127,15 @@
115 127 this.attachHandler(elementName, Handlers, skin);
116 128 });
117 129 };
118 130 const isClassHandler = Handler => Handler.prototype?.getUniqueHandlerID;
119 - const addHandlerWithHook = (elementBaseName, Handler, skin = 'default') => {
131 + const addHandlerWithHook = function (elementBaseName, Handler) {
132 + let skin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';
120 133 skin = skin ? '.' + skin : '';
121 134 const elementName = elementBaseName + skin;
122 135 elementorFrontend.hooks.addAction(`frontend/element_ready/${elementName}`, $element => {
123 136 if (isClassHandler(Handler)) {
124 - this.addHandler(Handler, {
137 + _this.addHandler(Handler, {
125 138 $element,
126 139 elementName
127 140 }, true);
128 141 } else {
@@ -130,18 +143,19 @@
130 143 if (!handlerValue) {
131 144 return;
132 145 }
133 146 if (handlerValue instanceof Promise) {
134 - handlerValue.then(({
135 - default: dynamicHandler
136 - }) => {
137 - this.addHandler(dynamicHandler, {
147 + handlerValue.then(_ref => {
148 + let {
149 + default: dynamicHandler
150 + } = _ref;
151 + _this.addHandler(dynamicHandler, {
138 152 $element,
139 153 elementName
140 154 }, true);
141 155 });
142 156 } else {
143 - this.addHandler(handlerValue, {
157 + _this.addHandler(handlerValue, {
144 158 $element,
145 159 elementName
146 160 }, true);
147 161 }
@@ -180,11 +194,12 @@
180 194 if (isClassHandler(elementHandler)) {
181 195 return elementHandler;
182 196 }
183 197 return new Promise(res => {
184 - elementHandler().then(({
185 - default: dynamicHandler
186 - }) => {
198 + elementHandler().then(_ref2 => {
199 + let {
200 + default: dynamicHandler
201 + } = _ref2;
187 202 res(dynamicHandler);
188 203 });
189 204 });
190 205 };
@@ -239,11 +254,8 @@
239 254 Object.defineProperty(exports, "__esModule", ({
240 255 value: true
241 256 }));
242 257 exports["default"] = void 0;
243 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
244 -__webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js");
245 -__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
246 258 __webpack_require__(/*! ../public-path */ "../assets/dev/js/public-path.js");
247 259 var _documentsManager = _interopRequireDefault(__webpack_require__(/*! ./documents-manager */ "../assets/dev/js/frontend/documents-manager.js"));
248 260 var _storage = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/storage */ "../core/common/assets/js/utils/storage.js"));
249 261 var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
@@ -262,12 +274,14 @@
262 274 var _utils = __webpack_require__(/*! elementor-frontend/utils/utils */ "../assets/dev/js/frontend/utils/utils.js");
263 275 /* global elementorFrontendConfig */
264 276
265 277 const EventManager = __webpack_require__(/*! elementor-utils/hooks */ "../assets/dev/js/utils/hooks.js"),
266 - ElementsHandler = __webpack_require__(/*! elementor-frontend/elements-handlers-manager */ "../assets/dev/js/frontend/elements-handlers-manager.js");
278 + ElementsHandler = __webpack_require__(/*! elementor-frontend/elements-handlers-manager */ "../assets/dev/js/frontend/elements-handlers-manager.js"),
279 + AnchorsModule = __webpack_require__(/*! elementor-frontend/utils/anchors */ "../assets/dev/js/frontend/utils/anchors.js"); // // TODO: Remove anchors.js file in v3.27.0 [ED-15717].
280 +
267 281 class Frontend extends elementorModules.ViewModule {
268 - constructor(...args) {
269 - super(...args);
282 + constructor() {
283 + super(...arguments);
270 284 this.config = elementorFrontendConfig;
271 285 this.config.legacyMode = {
272 286 /**
273 287 * @deprecated since 3.1.0
@@ -420,12 +434,18 @@
420 434 environment: _environment.default,
421 435 assetsLoader: new _assetsLoader.default(),
422 436 escapeHTML: _utils.escapeHTML,
423 437 events: _events.default,
424 - controls: new _controls.default(),
425 - anchor_scroll_margin: new _anchorScrollMargin.default()
438 + controls: new _controls.default()
426 439 };
427 440
441 + // TODO: Remove experiment in v3.27.0 [ED-15717].
442 + if (this.config.experimentalFeatures.e_css_smooth_scroll) {
443 + this.utils.anchor_scroll_margin = new _anchorScrollMargin.default();
444 + } else {
445 + this.utils.anchors = new AnchorsModule();
446 + }
447 +
428 448 // TODO: BC since 2.4.0
429 449 this.modules = {
430 450 StretchElement: elementorModules.frontend.tools.StretchElement,
431 451 Masonry: elementorModules.utils.Masonry
@@ -513,15 +533,17 @@
513 533 elementorFrontend.trigger('elementor/modules/init:before');
514 534
515 535 // TODO: Use this instead.
516 536 elementorFrontend.trigger('elementor/modules/init/before');
517 - Object.entries(handlers).forEach(([moduleName, ModuleClass]) => {
537 + Object.entries(handlers).forEach(_ref => {
538 + let [moduleName, ModuleClass] = _ref;
518 539 this.modulesHandlers[moduleName] = new ModuleClass();
519 540 });
520 541 }
521 542 populateActiveBreakpointsConfig() {
522 543 this.config.responsive.activeBreakpoints = {};
523 - Object.entries(this.config.responsive.breakpoints).forEach(([breakpointKey, breakpointData]) => {
544 + Object.entries(this.config.responsive.breakpoints).forEach(_ref2 => {
545 + let [breakpointKey, breakpointData] = _ref2;
524 546 if (breakpointData.is_enabled) {
525 547 this.config.responsive.activeBreakpoints[breakpointKey] = breakpointData;
526 548 }
527 549 });
@@ -558,46 +580,489 @@
558 580 }
559 581
560 582 /***/ }),
561 583
562 -/***/ "../assets/dev/js/frontend/handlers/column.js":
563 -/*!****************************************************!*\
564 - !*** ../assets/dev/js/frontend/handlers/column.js ***!
565 - \****************************************************/
584 +/***/ "../assets/dev/js/frontend/handlers/background-slideshow.js":
585 +/*!******************************************************************!*\
586 + !*** ../assets/dev/js/frontend/handlers/background-slideshow.js ***!
587 + \******************************************************************/
588 +/***/ ((__unused_webpack_module, exports) => {
589 +
590 +
591 +
592 +Object.defineProperty(exports, "__esModule", ({
593 + value: true
594 +}));
595 +exports["default"] = void 0;
596 +class BackgroundSlideshow extends elementorModules.frontend.handlers.SwiperBase {
597 + getDefaultSettings() {
598 + return {
599 + classes: {
600 + swiperContainer: `elementor-background-slideshow ${elementorFrontend.config.swiperClass}`,
601 + swiperWrapper: 'swiper-wrapper',
602 + swiperSlide: 'elementor-background-slideshow__slide swiper-slide',
603 + swiperPreloader: 'swiper-lazy-preloader',
604 + slideBackground: 'elementor-background-slideshow__slide__image',
605 + kenBurns: 'elementor-ken-burns',
606 + kenBurnsActive: 'elementor-ken-burns--active',
607 + kenBurnsIn: 'elementor-ken-burns--in',
608 + kenBurnsOut: 'elementor-ken-burns--out'
609 + }
610 + };
611 + }
612 + getSwiperOptions() {
613 + const elementSettings = this.getElementSettings(),
614 + swiperOptions = {
615 + grabCursor: false,
616 + slidesPerView: 1,
617 + slidesPerGroup: 1,
618 + loop: 'yes' === elementSettings.background_slideshow_loop,
619 + speed: elementSettings.background_slideshow_transition_duration,
620 + autoplay: {
621 + delay: elementSettings.background_slideshow_slide_duration,
622 + stopOnLastSlide: !elementSettings.background_slideshow_loop
623 + },
624 + handleElementorBreakpoints: true,
625 + on: {
626 + slideChange: () => {
627 + if (elementSettings.background_slideshow_ken_burns) {
628 + this.handleKenBurns();
629 + }
630 + }
631 + }
632 + };
633 + if ('yes' === elementSettings.background_slideshow_loop) {
634 + swiperOptions.loopedSlides = this.getSlidesCount();
635 + }
636 + switch (elementSettings.background_slideshow_slide_transition) {
637 + case 'fade':
638 + swiperOptions.effect = 'fade';
639 + swiperOptions.fadeEffect = {
640 + crossFade: true
641 + };
642 + break;
643 + case 'slide_down':
644 + swiperOptions.autoplay.reverseDirection = true;
645 + swiperOptions.direction = 'vertical';
646 + break;
647 + case 'slide_up':
648 + swiperOptions.direction = 'vertical';
649 + break;
650 + }
651 + if ('yes' === elementSettings.background_slideshow_lazyload) {
652 + swiperOptions.lazy = {
653 + loadPrevNext: true,
654 + loadPrevNextAmount: 1
655 + };
656 + }
657 + return swiperOptions;
658 + }
659 + buildSwiperElements() {
660 + const classes = this.getSettings('classes'),
661 + elementSettings = this.getElementSettings(),
662 + direction = 'slide_left' === elementSettings.background_slideshow_slide_transition ? 'ltr' : 'rtl',
663 + $container = jQuery('<div>', {
664 + class: classes.swiperContainer,
665 + dir: direction
666 + }),
667 + $wrapper = jQuery('<div>', {
668 + class: classes.swiperWrapper
669 + }),
670 + kenBurnsActive = elementSettings.background_slideshow_ken_burns,
671 + lazyload = 'yes' === elementSettings.background_slideshow_lazyload;
672 + let slideInnerClass = classes.slideBackground;
673 + if (kenBurnsActive) {
674 + slideInnerClass += ' ' + classes.kenBurns;
675 + const kenBurnsDirection = 'in' === elementSettings.background_slideshow_ken_burns_zoom_direction ? 'kenBurnsIn' : 'kenBurnsOut';
676 + slideInnerClass += ' ' + classes[kenBurnsDirection];
677 + }
678 + if (lazyload) {
679 + slideInnerClass += ' swiper-lazy';
680 + }
681 + this.elements.$slides = jQuery();
682 + elementSettings.background_slideshow_gallery.forEach(slide => {
683 + const $slide = jQuery('<div>', {
684 + class: classes.swiperSlide
685 + });
686 + let $slidebg;
687 + if (lazyload) {
688 + const $slideloader = jQuery('<div>', {
689 + class: classes.swiperPreloader
690 + });
691 + $slidebg = jQuery('<div>', {
692 + class: slideInnerClass,
693 + 'data-background': slide.url
694 + });
695 + $slidebg.append($slideloader);
696 + } else {
697 + $slidebg = jQuery('<div>', {
698 + class: slideInnerClass,
699 + style: 'background-image: url("' + slide.url + '");'
700 + });
701 + }
702 + $slide.append($slidebg);
703 + $wrapper.append($slide);
704 + this.elements.$slides = this.elements.$slides.add($slide);
705 + });
706 + $container.append($wrapper);
707 + this.$element.prepend($container);
708 + this.elements.$backgroundSlideShowContainer = $container;
709 + }
710 + async initSlider() {
711 + if (1 >= this.getSlidesCount()) {
712 + return;
713 + }
714 + const elementSettings = this.getElementSettings();
715 + const Swiper = elementorFrontend.utils.swiper;
716 + this.swiper = await new Swiper(this.elements.$backgroundSlideShowContainer, this.getSwiperOptions());
717 +
718 + // Expose the swiper instance in the frontend
719 + this.elements.$backgroundSlideShowContainer.data('swiper', this.swiper);
720 + if (elementSettings.background_slideshow_ken_burns) {
721 + this.handleKenBurns();
722 + }
723 + }
724 + activate() {
725 + this.buildSwiperElements();
726 + this.initSlider();
727 + }
728 + deactivate() {
729 + if (this.swiper) {
730 + this.swiper.destroy();
731 + this.elements.$backgroundSlideShowContainer.remove();
732 + }
733 + }
734 + run() {
735 + if ('slideshow' === this.getElementSettings('background_background')) {
736 + this.activate();
737 + } else {
738 + this.deactivate();
739 + }
740 + }
741 + onInit() {
742 + super.onInit();
743 + if (this.getElementSettings('background_slideshow_gallery')) {
744 + this.run();
745 + }
746 + }
747 + onDestroy() {
748 + super.onDestroy();
749 + this.deactivate();
750 + }
751 + onElementChange(propertyName) {
752 + if ('background_background' === propertyName) {
753 + this.run();
754 + }
755 + }
756 +}
757 +exports["default"] = BackgroundSlideshow;
758 +
759 +/***/ }),
760 +
761 +/***/ "../assets/dev/js/frontend/handlers/background-video.js":
762 +/*!**************************************************************!*\
763 + !*** ../assets/dev/js/frontend/handlers/background-video.js ***!
764 + \**************************************************************/
765 +/***/ ((__unused_webpack_module, exports) => {
766 +
767 +
768 +
769 +Object.defineProperty(exports, "__esModule", ({
770 + value: true
771 +}));
772 +exports["default"] = void 0;
773 +class BackgroundVideo extends elementorModules.frontend.handlers.Base {
774 + getDefaultSettings() {
775 + return {
776 + selectors: {
777 + backgroundVideoContainer: '.elementor-background-video-container',
778 + backgroundVideoEmbed: '.elementor-background-video-embed',
779 + backgroundVideoHosted: '.elementor-background-video-hosted'
780 + }
781 + };
782 + }
783 + getDefaultElements() {
784 + const selectors = this.getSettings('selectors'),
785 + elements = {
786 + $backgroundVideoContainer: this.$element.find(selectors.backgroundVideoContainer)
787 + };
788 + elements.$backgroundVideoEmbed = elements.$backgroundVideoContainer.children(selectors.backgroundVideoEmbed);
789 + elements.$backgroundVideoHosted = elements.$backgroundVideoContainer.children(selectors.backgroundVideoHosted);
790 + return elements;
791 + }
792 + calcVideosSize($video) {
793 + let aspectRatioSetting = '16:9';
794 + if ('vimeo' === this.videoType) {
795 + aspectRatioSetting = $video[0].width + ':' + $video[0].height;
796 + }
797 + const containerWidth = this.elements.$backgroundVideoContainer.outerWidth(),
798 + containerHeight = this.elements.$backgroundVideoContainer.outerHeight(),
799 + aspectRatioArray = aspectRatioSetting.split(':'),
800 + aspectRatio = aspectRatioArray[0] / aspectRatioArray[1],
801 + ratioWidth = containerWidth / aspectRatio,
802 + ratioHeight = containerHeight * aspectRatio,
803 + isWidthFixed = containerWidth / containerHeight > aspectRatio;
804 + return {
805 + width: isWidthFixed ? containerWidth : ratioHeight,
806 + height: isWidthFixed ? ratioWidth : containerHeight
807 + };
808 + }
809 + changeVideoSize() {
810 + if (!('hosted' === this.videoType) && !this.player) {
811 + return;
812 + }
813 + let $video;
814 + if ('youtube' === this.videoType) {
815 + $video = jQuery(this.player.getIframe());
816 + } else if ('vimeo' === this.videoType) {
817 + $video = jQuery(this.player.element);
818 + } else if ('hosted' === this.videoType) {
819 + $video = this.elements.$backgroundVideoHosted;
820 + }
821 + if (!$video) {
822 + return;
823 + }
824 + const size = this.calcVideosSize($video);
825 + $video.width(size.width).height(size.height);
826 + }
827 + startVideoLoop(firstTime) {
828 + // If the section has been removed
829 + if (!this.player.getIframe().contentWindow) {
830 + return;
831 + }
832 + const elementSettings = this.getElementSettings(),
833 + startPoint = elementSettings.background_video_start || 0,
834 + endPoint = elementSettings.background_video_end;
835 + if (elementSettings.background_play_once && !firstTime) {
836 + this.player.stopVideo();
837 + return;
838 + }
839 + this.player.seekTo(startPoint);
840 + if (endPoint) {
841 + const durationToEnd = endPoint - startPoint + 1;
842 + setTimeout(() => {
843 + this.startVideoLoop(false);
844 + }, durationToEnd * 1000);
845 + }
846 + }
847 + prepareVimeoVideo(Vimeo, videoLink) {
848 + const elementSettings = this.getElementSettings(),
849 + videoSize = this.elements.$backgroundVideoContainer.outerWidth(),
850 + vimeoOptions = {
851 + url: videoLink,
852 + width: videoSize.width,
853 + autoplay: true,
854 + loop: !elementSettings.background_play_once,
855 + transparent: true,
856 + background: true,
857 + muted: true
858 + };
859 + if (elementSettings.background_privacy_mode) {
860 + vimeoOptions.dnt = true;
861 + }
862 + this.player = new Vimeo.Player(this.elements.$backgroundVideoContainer, vimeoOptions);
863 +
864 + // Handle user-defined start/end times
865 + this.handleVimeoStartEndTimes(elementSettings);
866 + this.player.ready().then(() => {
867 + jQuery(this.player.element).addClass('elementor-background-video-embed');
868 + this.changeVideoSize();
869 + });
870 + }
871 + handleVimeoStartEndTimes(elementSettings) {
872 + // If a start time is defined, set the start time
873 + if (elementSettings.background_video_start) {
874 + this.player.on('play', data => {
875 + if (0 === data.seconds) {
876 + this.player.setCurrentTime(elementSettings.background_video_start);
877 + }
878 + });
879 + }
880 + this.player.on('timeupdate', data => {
881 + // If an end time is defined, handle ending the video
882 + if (elementSettings.background_video_end && elementSettings.background_video_end < data.seconds) {
883 + if (elementSettings.background_play_once) {
884 + // Stop at user-defined end time if not loop
885 + this.player.pause();
886 + } else {
887 + // Go to start time if loop
888 + this.player.setCurrentTime(elementSettings.background_video_start);
889 + }
890 + }
891 +
892 + // If start time is defined but an end time is not, go to user-defined start time at video end.
893 + // Vimeo JS API has an 'ended' event, but it never fires when infinite loop is defined, so we
894 + // get the video duration (returns a promise) then use duration-0.5s as end time
895 + this.player.getDuration().then(duration => {
896 + if (elementSettings.background_video_start && !elementSettings.background_video_end && data.seconds > duration - 0.5) {
897 + this.player.setCurrentTime(elementSettings.background_video_start);
898 + }
899 + });
900 + });
901 + }
902 + prepareYTVideo(YT, videoID) {
903 + const $backgroundVideoContainer = this.elements.$backgroundVideoContainer,
904 + elementSettings = this.getElementSettings();
905 + let startStateCode = YT.PlayerState.PLAYING;
906 +
907 + // Since version 67, Chrome doesn't fire the `PLAYING` state at start time
908 + if (window.chrome) {
909 + startStateCode = YT.PlayerState.UNSTARTED;
910 + }
911 + const playerOptions = {
912 + videoId: videoID,
913 + events: {
914 + onReady: () => {
915 + this.player.mute();
916 + this.changeVideoSize();
917 + this.startVideoLoop(true);
918 + this.player.playVideo();
919 + },
920 + onStateChange: event => {
921 + switch (event.data) {
922 + case startStateCode:
923 + $backgroundVideoContainer.removeClass('elementor-invisible elementor-loading');
924 + break;
925 + case YT.PlayerState.ENDED:
926 + if ('function' === typeof this.player.seekTo) {
927 + this.player.seekTo(elementSettings.background_video_start || 0);
928 + }
929 + if (elementSettings.background_play_once) {
930 + this.player.destroy();
931 + }
932 + }
933 + }
934 + },
935 + playerVars: {
936 + controls: 0,
937 + rel: 0,
938 + playsinline: 1
939 + }
940 + };
941 +
942 + // To handle CORS issues, when the default host is changed, the origin parameter has to be set.
943 + if (elementSettings.background_privacy_mode) {
944 + playerOptions.host = 'https://www.youtube-nocookie.com';
945 + playerOptions.origin = window.location.hostname;
946 + }
947 + $backgroundVideoContainer.addClass('elementor-loading elementor-invisible');
948 + this.player = new YT.Player(this.elements.$backgroundVideoEmbed[0], playerOptions);
949 + }
950 + activate() {
951 + let videoLink = this.getElementSettings('background_video_link'),
952 + videoID;
953 + const playOnce = this.getElementSettings('background_play_once');
954 + if (-1 !== videoLink.indexOf('vimeo.com')) {
955 + this.videoType = 'vimeo';
956 + this.apiProvider = elementorFrontend.utils.vimeo;
957 + } else if (videoLink.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/)) {
958 + this.videoType = 'youtube';
959 + this.apiProvider = elementorFrontend.utils.youtube;
960 + }
961 + if (this.apiProvider) {
962 + videoID = this.apiProvider.getVideoIDFromURL(videoLink);
963 + this.apiProvider.onApiReady(apiObject => {
964 + if ('youtube' === this.videoType) {
965 + this.prepareYTVideo(apiObject, videoID);
966 + }
967 + if ('vimeo' === this.videoType) {
968 + this.prepareVimeoVideo(apiObject, videoLink);
969 + }
970 + });
971 + } else {
972 + this.videoType = 'hosted';
973 + const startTime = this.getElementSettings('background_video_start'),
974 + endTime = this.getElementSettings('background_video_end');
975 + if (startTime || endTime) {
976 + videoLink += '#t=' + (startTime || 0) + (endTime ? ',' + endTime : '');
977 + }
978 + this.elements.$backgroundVideoHosted.attr('src', videoLink).one('canplay', this.changeVideoSize.bind(this));
979 + if (playOnce) {
980 + this.elements.$backgroundVideoHosted.on('ended', () => {
981 + this.elements.$backgroundVideoHosted.hide();
982 + });
983 + }
984 + }
985 + elementorFrontend.elements.$window.on('resize elementor/bg-video/recalc', this.changeVideoSize);
986 + }
987 + deactivate() {
988 + if ('youtube' === this.videoType && this.player.getIframe() || 'vimeo' === this.videoType) {
989 + this.player.destroy();
990 + } else {
991 + this.elements.$backgroundVideoHosted.removeAttr('src').off('ended');
992 + }
993 + elementorFrontend.elements.$window.off('resize', this.changeVideoSize);
994 + }
995 + run() {
996 + const elementSettings = this.getElementSettings();
997 + if (!elementSettings.background_play_on_mobile && 'mobile' === elementorFrontend.getCurrentDeviceMode()) {
998 + return;
999 + }
1000 + if ('video' === elementSettings.background_background && elementSettings.background_video_link) {
1001 + this.activate();
1002 + } else {
1003 + this.deactivate();
1004 + }
1005 + }
1006 + onInit() {
1007 + super.onInit(...arguments);
1008 + this.changeVideoSize = this.changeVideoSize.bind(this);
1009 + this.run();
1010 + }
1011 + onElementChange(propertyName) {
1012 + if ('background_background' === propertyName) {
1013 + this.run();
1014 + }
1015 + }
1016 +}
1017 +exports["default"] = BackgroundVideo;
1018 +
1019 +/***/ }),
1020 +
1021 +/***/ "../assets/dev/js/frontend/handlers/background.js":
1022 +/*!********************************************************!*\
1023 + !*** ../assets/dev/js/frontend/handlers/background.js ***!
1024 + \********************************************************/
566 1025 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
567 1026
568 1027
569 1028
1029 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
570 1030 Object.defineProperty(exports, "__esModule", ({
571 1031 value: true
572 1032 }));
573 1033 exports["default"] = void 0;
574 -var _default = exports["default"] = [() => __webpack_require__.e(/*! import() | shared-frontend-handlers */ "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ./background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js"))];
1034 +var _backgroundSlideshow = _interopRequireDefault(__webpack_require__(/*! ./background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js"));
1035 +var _backgroundVideo = _interopRequireDefault(__webpack_require__(/*! ./background-video */ "../assets/dev/js/frontend/handlers/background-video.js"));
1036 +var _default = [_backgroundSlideshow.default, _backgroundVideo.default];
1037 +exports["default"] = _default;
575 1038
576 1039 /***/ }),
577 1040
578 -/***/ "../assets/dev/js/frontend/handlers/container/container.js":
579 -/*!*****************************************************************!*\
580 - !*** ../assets/dev/js/frontend/handlers/container/container.js ***!
581 - \*****************************************************************/
1041 +/***/ "../assets/dev/js/frontend/handlers/column.js":
1042 +/*!****************************************************!*\
1043 + !*** ../assets/dev/js/frontend/handlers/column.js ***!
1044 + \****************************************************/
582 1045 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
583 1046
584 1047
585 1048
1049 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
586 1050 Object.defineProperty(exports, "__esModule", ({
587 1051 value: true
588 1052 }));
589 1053 exports["default"] = void 0;
590 -var _createEditorHandler = __webpack_require__(/*! ../create-editor-handler */ "../assets/dev/js/frontend/handlers/create-editor-handler.js");
591 -var _default = exports["default"] = [() => __webpack_require__.e(/*! import() | shared-frontend-handlers */ "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ../background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js")), () => __webpack_require__.e(/*! import() | shared-frontend-handlers */ "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ../background-video */ "../assets/dev/js/frontend/handlers/background-video.js")), (0, _createEditorHandler.createEditorHandler)(() => __webpack_require__.e(/*! import() | shared-editor-handlers */ "shared-editor-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ../handles-position */ "../assets/dev/js/frontend/handlers/handles-position.js"))), (0, _createEditorHandler.createEditorHandler)(() => __webpack_require__.e(/*! import() | container-editor-handlers */ "container-editor-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ./shapes */ "../assets/dev/js/frontend/handlers/container/shapes.js"))), (0, _createEditorHandler.createEditorHandler)(() => __webpack_require__.e(/*! import() | container-editor-handlers */ "container-editor-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ./grid-container */ "../assets/dev/js/frontend/handlers/container/grid-container.js")))];
1054 +var _backgroundSlideshow = _interopRequireDefault(__webpack_require__(/*! ./background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js"));
1055 +var _default = [_backgroundSlideshow.default];
1056 +exports["default"] = _default;
592 1057
593 1058 /***/ }),
594 1059
595 -/***/ "../assets/dev/js/frontend/handlers/create-editor-handler.js":
596 -/*!*******************************************************************!*\
597 - !*** ../assets/dev/js/frontend/handlers/create-editor-handler.js ***!
598 - \*******************************************************************/
599 -/***/ ((__unused_webpack_module, exports) => {
1060 +/***/ "../assets/dev/js/frontend/handlers/container/container.js":
1061 +/*!*****************************************************************!*\
1062 + !*** ../assets/dev/js/frontend/handlers/container/container.js ***!
1063 + \*****************************************************************/
1064 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
600 1065
601 1066
602 1067
603 1068 Object.defineProperty(exports, "__esModule", ({
@@ -602,18 +1067,11 @@
602 1067
603 1068 Object.defineProperty(exports, "__esModule", ({
604 1069 value: true
605 1070 }));
606 -exports.createEditorHandler = createEditorHandler;
607 -function createEditorHandler(importer) {
608 - return () => {
609 - return new Promise(resolve => {
610 - if (elementorFrontend.isEditMode()) {
611 - importer().then(resolve);
612 - }
613 - });
614 - };
615 -}
1071 +exports["default"] = void 0;
1072 +var _default = [() => __webpack_require__.e(/*! import() | container */ "container").then(__webpack_require__.bind(__webpack_require__, /*! ./handles-position */ "../assets/dev/js/frontend/handlers/container/handles-position.js")), () => __webpack_require__.e(/*! import() | container */ "container").then(__webpack_require__.bind(__webpack_require__, /*! ./shapes */ "../assets/dev/js/frontend/handlers/container/shapes.js")), () => __webpack_require__.e(/*! import() | container */ "container").then(__webpack_require__.bind(__webpack_require__, /*! ./grid-container */ "../assets/dev/js/frontend/handlers/container/grid-container.js"))];
1073 +exports["default"] = _default;
616 1074
617 1075 /***/ }),
618 1076
619 1077 /***/ "../assets/dev/js/frontend/handlers/global.js":
@@ -652,10 +1110,10 @@
652 1110 }
653 1111 getAnimation() {
654 1112 return this.getCurrentDeviceSetting('animation') || this.getCurrentDeviceSetting('_animation');
655 1113 }
656 - onInit(...args) {
657 - super.onInit(...args);
1114 + onInit() {
1115 + super.onInit(...arguments);
658 1116 if (this.getAnimation()) {
659 1117 const observer = elementorModules.utils.Scroll.scrollObserver({
660 1118 callback: event => {
661 1119 if (event.isInViewport) {
@@ -681,13 +1139,13 @@
681 1139 exports["default"] = _default;
682 1140
683 1141 /***/ }),
684 1142
685 -/***/ "../assets/dev/js/frontend/handlers/section/section.js":
686 -/*!*************************************************************!*\
687 - !*** ../assets/dev/js/frontend/handlers/section/section.js ***!
688 - \*************************************************************/
689 -/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1143 +/***/ "../assets/dev/js/frontend/handlers/section/handles-position.js":
1144 +/*!**********************************************************************!*\
1145 + !*** ../assets/dev/js/frontend/handlers/section/handles-position.js ***!
1146 + \**********************************************************************/
1147 +/***/ ((__unused_webpack_module, exports) => {
690 1148
691 1149
692 1150
693 1151 Object.defineProperty(exports, "__esModule", ({
@@ -693,20 +1151,187 @@
693 1151 Object.defineProperty(exports, "__esModule", ({
694 1152 value: true
695 1153 }));
696 1154 exports["default"] = void 0;
697 -var _createEditorHandler = __webpack_require__(/*! ../create-editor-handler */ "../assets/dev/js/frontend/handlers/create-editor-handler.js");
698 -var _default = exports["default"] = [() => __webpack_require__.e(/*! import() | section-frontend-handlers */ "section-frontend-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ./stretched-section */ "../assets/dev/js/frontend/handlers/section/stretched-section.js")),
699 -// Must run before BackgroundSlideshow to init the slideshow only after the stretch.
700 -() => __webpack_require__.e(/*! import() | shared-frontend-handlers */ "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ../background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js")), () => __webpack_require__.e(/*! import() | shared-frontend-handlers */ "shared-frontend-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ../background-video */ "../assets/dev/js/frontend/handlers/background-video.js")), (0, _createEditorHandler.createEditorHandler)(() => __webpack_require__.e(/*! import() | shared-editor-handlers */ "shared-editor-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ../handles-position */ "../assets/dev/js/frontend/handlers/handles-position.js"))), (0, _createEditorHandler.createEditorHandler)(() => __webpack_require__.e(/*! import() | section-editor-handlers */ "section-editor-handlers").then(__webpack_require__.bind(__webpack_require__, /*! ./shapes */ "../assets/dev/js/frontend/handlers/section/shapes.js")))];
1155 +class HandlesPosition extends elementorModules.frontend.handlers.Base {
1156 + isActive() {
1157 + return elementorFrontend.isEditMode();
1158 + }
1159 + isFirstSection() {
1160 + return this.$element[0] === document.querySelector('.elementor-edit-mode .elementor-top-section');
1161 + }
1162 + isOverflowHidden() {
1163 + return 'hidden' === this.$element.css('overflow');
1164 + }
1165 + getOffset() {
1166 + if ('body' === elementor.config.document.container) {
1167 + return this.$element.offset().top;
1168 + }
1169 + const $container = jQuery(elementor.config.document.container);
1170 + return this.$element.offset().top - $container.offset().top;
1171 + }
1172 + setHandlesPosition() {
1173 + const document = elementor.documents.getCurrent();
1174 + if (!document || !document.container.isEditable()) {
1175 + return;
1176 + }
1177 + const insideHandleClass = 'elementor-section--handles-inside';
1178 + if (elementor.settings.page.model.attributes.scroll_snap) {
1179 + this.$element.addClass(insideHandleClass);
1180 + return;
1181 + }
1182 + const isOverflowHidden = this.isOverflowHidden();
1183 + if (!isOverflowHidden && !this.isFirstSection()) {
1184 + return;
1185 + }
1186 + const offset = isOverflowHidden ? 0 : this.getOffset();
1187 + if (offset < 25) {
1188 + this.$element.addClass(insideHandleClass);
1189 + const $handlesElement = this.$element.find('> .elementor-element-overlay > .elementor-editor-section-settings');
1190 + if (offset < -5) {
1191 + $handlesElement.css('top', -offset);
1192 + } else {
1193 + $handlesElement.css('top', '');
1194 + }
1195 + } else {
1196 + this.$element.removeClass(insideHandleClass);
1197 + }
1198 + }
1199 + onInit() {
1200 + if (!this.isActive()) {
1201 + return;
1202 + }
1203 + this.setHandlesPosition();
1204 + this.$element.on('mouseenter', this.setHandlesPosition.bind(this));
1205 + }
1206 +}
1207 +exports["default"] = HandlesPosition;
701 1208
702 1209 /***/ }),
703 1210
1211 +/***/ "../assets/dev/js/frontend/handlers/section/shapes.js":
1212 +/*!************************************************************!*\
1213 + !*** ../assets/dev/js/frontend/handlers/section/shapes.js ***!
1214 + \************************************************************/
1215 +/***/ ((__unused_webpack_module, exports) => {
1216 +
1217 +
1218 +
1219 +Object.defineProperty(exports, "__esModule", ({
1220 + value: true
1221 +}));
1222 +exports["default"] = void 0;
1223 +class Shapes extends elementorModules.frontend.handlers.Base {
1224 + getDefaultSettings() {
1225 + return {
1226 + selectors: {
1227 + container: '> .elementor-shape-%s'
1228 + },
1229 + svgURL: elementorFrontend.config.urls.assets + 'shapes/'
1230 + };
1231 + }
1232 + getDefaultElements() {
1233 + const elements = {},
1234 + selectors = this.getSettings('selectors');
1235 + elements.$topContainer = this.$element.find(selectors.container.replace('%s', 'top'));
1236 + elements.$bottomContainer = this.$element.find(selectors.container.replace('%s', 'bottom'));
1237 + return elements;
1238 + }
1239 + isActive() {
1240 + return elementorFrontend.isEditMode();
1241 + }
1242 + getSvgURL(shapeType, fileName) {
1243 + let svgURL = this.getSettings('svgURL') + fileName + '.svg';
1244 + if (elementor.config.additional_shapes && shapeType in elementor.config.additional_shapes) {
1245 + svgURL = elementor.config.additional_shapes[shapeType];
1246 + if (-1 < fileName.indexOf('-negative')) {
1247 + svgURL = svgURL.replace('.svg', '-negative.svg');
1248 + }
1249 + }
1250 + return svgURL;
1251 + }
1252 + buildSVG(side) {
1253 + const baseSettingKey = 'shape_divider_' + side,
1254 + shapeType = this.getElementSettings(baseSettingKey),
1255 + $svgContainer = this.elements['$' + side + 'Container'];
1256 + $svgContainer.attr('data-shape', shapeType);
1257 + if (!shapeType) {
1258 + $svgContainer.empty(); // Shape-divider set to 'none'
1259 + return;
1260 + }
1261 + let fileName = shapeType;
1262 + if (this.getElementSettings(baseSettingKey + '_negative')) {
1263 + fileName += '-negative';
1264 + }
1265 + const svgURL = this.getSvgURL(shapeType, fileName);
1266 + jQuery.get(svgURL, data => {
1267 + $svgContainer.empty().append(data.childNodes[0]);
1268 + });
1269 + this.setNegative(side);
1270 + }
1271 + setNegative(side) {
1272 + this.elements['$' + side + 'Container'].attr('data-negative', !!this.getElementSettings('shape_divider_' + side + '_negative'));
1273 + }
1274 + onInit() {
1275 + if (!this.isActive(this.getSettings())) {
1276 + return;
1277 + }
1278 + super.onInit(...arguments);
1279 + ['top', 'bottom'].forEach(side => {
1280 + if (this.getElementSettings('shape_divider_' + side)) {
1281 + this.buildSVG(side);
1282 + }
1283 + });
1284 + }
1285 + onElementChange(propertyName) {
1286 + const shapeChange = propertyName.match(/^shape_divider_(top|bottom)$/);
1287 + if (shapeChange) {
1288 + this.buildSVG(shapeChange[1]);
1289 + return;
1290 + }
1291 + const negativeChange = propertyName.match(/^shape_divider_(top|bottom)_negative$/);
1292 + if (negativeChange) {
1293 + this.buildSVG(negativeChange[1]);
1294 + this.setNegative(negativeChange[1]);
1295 + }
1296 + }
1297 +}
1298 +exports["default"] = Shapes;
1299 +
1300 +/***/ }),
1301 +
1302 +/***/ "../assets/dev/js/frontend/handlers/section/stretched-section.js":
1303 +/*!***********************************************************************!*\
1304 + !*** ../assets/dev/js/frontend/handlers/section/stretched-section.js ***!
1305 + \***********************************************************************/
1306 +/***/ ((__unused_webpack_module, exports) => {
1307 +
1308 +
1309 +
1310 +Object.defineProperty(exports, "__esModule", ({
1311 + value: true
1312 +}));
1313 +exports["default"] = void 0;
1314 +class StretchedSection extends elementorModules.frontend.handlers.StretchedElement {
1315 + getStretchedClass() {
1316 + return 'elementor-section-stretched';
1317 + }
1318 + getStretchSettingName() {
1319 + return 'stretch_section';
1320 + }
1321 + getStretchActiveValue() {
1322 + return 'section-stretched';
1323 + }
1324 +}
1325 +exports["default"] = StretchedSection;
1326 +
1327 +/***/ }),
1328 +
704 1329 /***/ "../assets/dev/js/frontend/utils/anchor-scroll-margin.js":
705 1330 /*!***************************************************************!*\
706 1331 !*** ../assets/dev/js/frontend/utils/anchor-scroll-margin.js ***!
707 1332 \***************************************************************/
708 -/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1333 +/***/ ((__unused_webpack_module, exports) => {
709 1334
710 1335
711 1336
712 1337 Object.defineProperty(exports, "__esModule", ({
@@ -712,12 +1337,8 @@
712 1337 Object.defineProperty(exports, "__esModule", ({
713 1338 value: true
714 1339 }));
715 1340 exports["default"] = void 0;
716 -__webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js");
717 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
718 -__webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js");
719 -__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
720 1341 class _default extends elementorModules.ViewModule {
721 1342 getDefaultSettings() {
722 1343 return {
723 1344 selectors: {
@@ -829,10 +1450,14 @@
829 1450 return validSelectorPattern.test(hash);
830 1451 }
831 1452 getAnchorTarget(element) {
832 1453 const hash = element?.hash;
833 - if (!this.isValidSelector(hash)) {
1454 + if ('' === hash) {
834 1455 return null;
1456 + } else if (!this.isValidSelector(hash)) {
1457 + // eslint-disable-next-line no-console
1458 + console.warn(`Invalid selector: '${hash}'`);
1459 + return null;
835 1460 }
836 1461 return document.querySelector(hash);
837 1462 }
838 1463 getElementSettings(element) {
@@ -842,8 +1467,92 @@
842 1467 exports["default"] = _default;
843 1468
844 1469 /***/ }),
845 1470
1471 +/***/ "../assets/dev/js/frontend/utils/anchors.js":
1472 +/*!**************************************************!*\
1473 + !*** ../assets/dev/js/frontend/utils/anchors.js ***!
1474 + \**************************************************/
1475 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1476 +
1477 +
1478 +
1479 +var _utils = __webpack_require__(/*! ./utils */ "../assets/dev/js/frontend/utils/utils.js");
1480 +module.exports = elementorModules.ViewModule.extend({
1481 + getDefaultSettings() {
1482 + return {
1483 + scrollDuration: 500,
1484 + selectors: {
1485 + links: 'a[href*="#"]',
1486 + targets: '.elementor-element, .elementor-menu-anchor',
1487 + scrollable: (0, _utils.isScrollSnapActive)() ? 'body' : 'html, body'
1488 + }
1489 + };
1490 + },
1491 + getDefaultElements() {
1492 + var $ = jQuery,
1493 + selectors = this.getSettings('selectors');
1494 + return {
1495 + $scrollable: $(selectors.scrollable)
1496 + };
1497 + },
1498 + bindEvents() {
1499 + elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), this.handleAnchorLinks);
1500 + },
1501 + handleAnchorLinks(event) {
1502 + var clickedLink = event.currentTarget,
1503 + isSamePathname = location.pathname === clickedLink.pathname,
1504 + isSameHostname = location.hostname === clickedLink.hostname,
1505 + $anchor;
1506 + if (!isSameHostname || !isSamePathname || clickedLink.hash.length < 2) {
1507 + return;
1508 + }
1509 + try {
1510 + $anchor = jQuery(clickedLink.hash).filter(this.getSettings('selectors.targets'));
1511 + } catch (e) {
1512 + return;
1513 + }
1514 + if (!$anchor.length) {
1515 + return;
1516 + }
1517 + var scrollTop = $anchor.offset().top,
1518 + $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
1519 + $activeStickies = jQuery('.elementor-section.elementor-sticky--active:visible'),
1520 + maxStickyHeight = 0;
1521 + if ($wpAdminBar.length > 0) {
1522 + scrollTop -= $wpAdminBar.height();
1523 + }
1524 +
1525 + // Offset height of tallest sticky
1526 + if ($activeStickies.length > 0) {
1527 + maxStickyHeight = Math.max.apply(null, $activeStickies.map(function () {
1528 + return jQuery(this).outerHeight();
1529 + }).get());
1530 + scrollTop -= maxStickyHeight;
1531 + }
1532 + event.preventDefault();
1533 + scrollTop = elementorFrontend.hooks.applyFilters('frontend/handlers/menu_anchor/scroll_top_distance', scrollTop);
1534 +
1535 + // On scroll animation start: remove scroll-snap.
1536 + if ((0, _utils.isScrollSnapActive)()) {
1537 + elementorFrontend.elements.$body.css('scroll-snap-type', 'none');
1538 + }
1539 + this.elements.$scrollable.animate({
1540 + scrollTop
1541 + }, this.getSettings('scrollDuration'), 'linear', () => {
1542 + // On scroll animation complete: add scroll-snap back.
1543 + if ((0, _utils.isScrollSnapActive)()) {
1544 + elementorFrontend.elements.$body.css('scroll-snap-type', '');
1545 + }
1546 + });
1547 + },
1548 + onInit() {
1549 + elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
1550 + }
1551 +});
1552 +
1553 +/***/ }),
1554 +
846 1555 /***/ "../assets/dev/js/frontend/utils/assets-loader.js":
847 1556 /*!********************************************************!*\
848 1557 !*** ../assets/dev/js/frontend/utils/assets-loader.js ***!
849 1558 \********************************************************/
@@ -874,10 +1583,12 @@
874 1583 }
875 1584 return assetData.loader;
876 1585 }
877 1586 isAssetLoaded(assetData, assetType) {
878 - const filePath = 'script' === assetType ? `script[src="${assetData.src}"]` : `link[href="${assetData.src}"]`;
879 - return !!document.querySelectorAll(filePath)?.length;
1587 + const tag = 'script' === assetType ? 'script' : 'link',
1588 + filePath = `${tag}[src="${assetData.src}"]`,
1589 + assetElements = document.querySelectorAll(filePath);
1590 + return !!assetElements?.length;
880 1591 }
881 1592 loadAsset(assetData, assetType) {
882 1593 return new Promise(resolve => {
883 1594 const element = 'style' === assetType ? this.getStyleElement(assetData.src) : this.getScriptElement(assetData.src);
@@ -898,8 +1609,10 @@
898 1609 exports["default"] = AssetsLoader;
899 1610 const assetsUrl = elementorFrontendConfig.urls.assets;
900 1611 const fileSuffix = elementorFrontendConfig.environmentMode.isScriptDebug ? '' : '.min';
901 1612 const pluginVersion = elementorFrontendConfig.version;
1613 +const swiperJsSource = elementorFrontendConfig.experimentalFeatures.e_swiper_latest ? `${assetsUrl}lib/swiper/v8/swiper${fileSuffix}.js?ver=8.4.5` : `${assetsUrl}lib/swiper/swiper${fileSuffix}.js?ver=5.3.6`;
1614 +const swiperCssSource = elementorFrontendConfig.experimentalFeatures.e_swiper_latest ? `${assetsUrl}lib/swiper/v8/css/swiper${fileSuffix}.css?ver=8.4.5` : `${assetsUrl}lib/swiper/css/swiper${fileSuffix}.css?ver=5.3.6`;
902 1615 AssetsLoader.assets = {
903 1616 script: {
904 1617 dialog: {
905 1618 src: `${assetsUrl}lib/dialog/dialog${fileSuffix}.js?ver=4.9.3`
@@ -906,16 +1619,15 @@
906 1619 },
907 1620 'share-link': {
908 1621 src: `${assetsUrl}lib/share-link/share-link${fileSuffix}.js?ver=${pluginVersion}`
909 1622 },
910 - // TODO: Remove 'swiper' in v3.29.0 [ED-16272].
911 1623 swiper: {
912 - src: `${assetsUrl}lib/swiper/v8/swiper${fileSuffix}.js?ver=8.4.5`
1624 + src: swiperJsSource
913 1625 }
914 1626 },
915 1627 style: {
916 1628 swiper: {
917 - src: `${assetsUrl}lib/swiper/v8/css/swiper${fileSuffix}.css?ver=8.4.5`,
1629 + src: swiperCssSource,
918 1630 parent: 'head'
919 1631 },
920 1632 'e-lightbox': {
921 1633 src: elementorFrontendConfig?.responsive?.hasCustomBreakpoints ? `${elementorFrontendConfig.urls.uploadUrl}/elementor/css/custom-lightbox.min.css?ver=${pluginVersion}` : `${assetsUrl}css/conditionals/lightbox${fileSuffix}.css?ver=${pluginVersion}`
@@ -978,9 +1690,11 @@
978 1690 * @param {string} controlSubKey A specific property of the control object.
979 1691 * @param {string} device If we want to get a value for a specific device mode.
980 1692 * @return {*} Control Value
981 1693 */
982 - getResponsiveControlValue(controlSettings, controlKey, controlSubKey = '', device = null) {
1694 + getResponsiveControlValue(controlSettings, controlKey) {
1695 + let controlSubKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
1696 + let device = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
983 1697 const currentDeviceMode = device || elementorFrontend.getCurrentDeviceMode(),
984 1698 controlValueDesktop = this.getControlValue(controlSettings, controlKey, controlSubKey);
985 1699
986 1700 // Set the control value for the current device mode.
@@ -1031,16 +1745,17 @@
1031 1745 Object.defineProperty(exports, "__esModule", ({
1032 1746 value: true
1033 1747 }));
1034 1748 exports["default"] = void 0;
1035 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
1036 -__webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js");
1037 1749 class LightboxManager extends elementorModules.ViewModule {
1038 1750 static getLightbox() {
1039 1751 const lightboxPromise = new Promise(resolveLightbox => {
1040 - Promise.all(/*! import() | lightbox */[__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("lightbox")]).then(__webpack_require__.t.bind(__webpack_require__, /*! elementor-frontend/utils/lightbox/lightbox */ "../assets/dev/js/frontend/utils/lightbox/lightbox.js", 23)).then(({
1041 - default: LightboxModule
1042 - }) => resolveLightbox(new LightboxModule()));
1752 + __webpack_require__.e(/*! import() | lightbox */ "lightbox").then(__webpack_require__.t.bind(__webpack_require__, /*! elementor-frontend/utils/lightbox/lightbox */ "../assets/dev/js/frontend/utils/lightbox/lightbox.js", 23)).then(_ref => {
1753 + let {
1754 + default: LightboxModule
1755 + } = _ref;
1756 + return resolveLightbox(new LightboxModule());
1757 + });
1043 1758 }),
1044 1759 dialogScriptPromise = elementorFrontend.utils.assetsLoader.load('script', 'dialog'),
1045 1760 dialogStylePromise = elementorFrontend.utils.assetsLoader.load('style', 'dialog'),
1046 1761 shareLinkPromise = elementorFrontend.utils.assetsLoader.load('script', 'share-link'),
@@ -1063,9 +1778,9 @@
1063 1778 };
1064 1779 }
1065 1780 isLightboxLink(element) {
1066 1781 // Check for lowercase `a` to make sure it works also for links inside SVGs.
1067 - if ('a' === element.tagName.toLowerCase() && (element.hasAttribute('download') || !/^[^?]+\.(png|jpe?g|gif|svg|webp|avif)(\?.*)?$/i.test(element.href)) && !element.dataset.elementorLightboxVideo) {
1782 + if ('a' === element.tagName.toLowerCase() && (element.hasAttribute('download') || !/^[^?]+\.(png|jpe?g|gif|svg|webp)(\?.*)?$/i.test(element.href)) && !element.dataset.elementorLightboxVideo) {
1068 1783 return false;
1069 1784 }
1070 1785 const generalOpenInLightbox = elementorFrontend.getKitSettings('global_image_lightbox'),
1071 1786 currentLinkOpenInLightbox = element.dataset.elementorOpenLightbox;
@@ -1100,10 +1815,10 @@
1100 1815 }
1101 1816 bindEvents() {
1102 1817 elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), event => this.onLinkClick(event));
1103 1818 }
1104 - onInit(...args) {
1105 - super.onInit(...args);
1819 + onInit() {
1820 + super.onInit(...arguments);
1106 1821 if (elementorFrontend.isEditMode()) {
1107 1822 return;
1108 1823 }
1109 1824 this.maybeActivateLightboxOnLink();
@@ -1127,9 +1842,9 @@
1127 1842 /***/ "../assets/dev/js/frontend/utils/swiper.js":
1128 1843 /*!*************************************************!*\
1129 1844 !*** ../assets/dev/js/frontend/utils/swiper.js ***!
1130 1845 \*************************************************/
1131 -/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1846 +/***/ ((__unused_webpack_module, exports) => {
1132 1847
1133 1848
1134 1849
1135 1850 Object.defineProperty(exports, "__esModule", ({
@@ -1135,11 +1850,9 @@
1135 1850 Object.defineProperty(exports, "__esModule", ({
1136 1851 value: true
1137 1852 }));
1138 1853 exports["default"] = void 0;
1139 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
1140 -__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
1141 -class SwiperHandler {
1854 +class Swiper {
1142 1855 constructor(container, config) {
1143 1856 this.config = config;
1144 1857 if (this.config.breakpoints) {
1145 1858 // The config is passed as a param to allow adjustConfig to be called outside of this wrapper
@@ -1152,17 +1865,9 @@
1152 1865 // The Swiper will overlap the column width when applying custom margin values on the column.
1153 1866 container.closest('.elementor-widget-wrap')?.classList.add('e-swiper-container');
1154 1867 container.closest('.elementor-widget')?.classList.add('e-widget-swiper');
1155 1868 return new Promise(resolve => {
1156 - // TODO: Remove in v3.29.0 [ED-16272].
1157 - if ('undefined' === typeof Swiper) {
1158 - elementorFrontend.utils.assetsLoader.load('script', 'swiper').then(() => resolve(this.createSwiperInstance(container, this.config)));
1159 - return;
1160 - }
1161 - if ('function' === typeof Swiper && 'undefined' === typeof window.Swiper) {
1162 - window.Swiper = Swiper;
1163 - }
1164 - resolve(this.createSwiperInstance(container, this.config));
1869 + elementorFrontend.utils.assetsLoader.load('script', 'swiper').then(() => resolve(this.createSwiperInstance(container, this.config)));
1165 1870 });
1166 1871 }
1167 1872 createSwiperInstance(container, config) {
1168 1873 const SwiperSource = window.Swiper;
@@ -1213,9 +1918,9 @@
1213 1918 });
1214 1919 return config;
1215 1920 }
1216 1921 }
1217 -exports["default"] = SwiperHandler;
1922 +exports["default"] = Swiper;
1218 1923
1219 1924 /***/ }),
1220 1925
1221 1926 /***/ "../assets/dev/js/frontend/utils/url-actions.js":
@@ -1261,10 +1966,9 @@
1261 1966 }
1262 1967 addAction(name, callback) {
1263 1968 this.actions[name] = callback;
1264 1969 }
1265 - runAction(url, ...restArgs) {
1266 - url = decodeURI(url);
1970 + runAction(url) {
1267 1971 url = decodeURIComponent(url);
1268 1972 const actionMatch = url.match(/action=(.+?)&/);
1269 1973 if (!actionMatch) {
1270 1974 return;
@@ -1278,8 +1982,11 @@
1278 1982 if (settingsMatch) {
1279 1983 settings = JSON.parse(atob(settingsMatch[1]));
1280 1984 }
1281 1985 settings.previousEvent = event;
1986 + for (var _len = arguments.length, restArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1987 + restArgs[_key - 1] = arguments[_key];
1988 + }
1282 1989 action(settings, ...restArgs);
1283 1990 }
1284 1991 runLinkAction(event) {
1285 1992 event.preventDefault();
@@ -1456,9 +2163,9 @@
1456 2163 getApiURL() {
1457 2164 return 'https://www.youtube.com/iframe_api';
1458 2165 }
1459 2166 getURLRegex() {
1460 - return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user|shorts)\/))([^?&"'>]+)/;
2167 + return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user)\/))([^?&"'>]+)/;
1461 2168 }
1462 2169 isApiLoaded() {
1463 2170 return window.YT && YT.loaded;
1464 2171 }
@@ -1486,9 +2193,9 @@
1486 2193 /***/ "../assets/dev/js/utils/breakpoints.js":
1487 2194 /*!*********************************************!*\
1488 2195 !*** ../assets/dev/js/utils/breakpoints.js ***!
1489 2196 \*********************************************/
1490 -/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2197 +/***/ ((__unused_webpack_module, exports) => {
1491 2198
1492 2199
1493 2200
1494 2201 Object.defineProperty(exports, "__esModule", ({
@@ -1494,12 +2201,8 @@
1494 2201 Object.defineProperty(exports, "__esModule", ({
1495 2202 value: true
1496 2203 }));
1497 2204 exports["default"] = void 0;
1498 -__webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js");
1499 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
1500 -__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
1501 -__webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ "../node_modules/core-js/modules/esnext.iterator.map.js");
1502 2205 /**
1503 2206 * Breakpoints
1504 2207 *
1505 2208 * This utility class contains helper functions relating to Elementor's breakpoints system.
@@ -1523,9 +2226,10 @@
1523 2226 * @since 3.4.0
1524 2227 *
1525 2228 * @param {Object} args
1526 2229 */
1527 - getActiveBreakpointsList(args = {}) {
2230 + getActiveBreakpointsList() {
2231 + let args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1528 2232 const defaultArgs = {
1529 2233 largeToSmall: false,
1530 2234 withDesktop: false
1531 2235 };
@@ -1692,9 +2396,11 @@
1692 2396 * @param {string|null} bcEvent - BC event to dispatch, default to `null`.
1693 2397 *
1694 2398 * @return {void}
1695 2399 */
1696 - static dispatch(context, event, data = null, bcEvent = null) {
2400 + static dispatch(context, event) {
2401 + let data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2402 + let bcEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1697 2403 // Make sure to use the native context if it's a jQuery instance.
1698 2404 context = context instanceof jQuery ? context[0] : context;
1699 2405
1700 2406 // Dispatch the BC event only if exists.
@@ -1711,9 +2417,10 @@
1711 2417 }));
1712 2418 }
1713 2419 }
1714 2420 exports.Events = Events;
1715 -var _default = exports["default"] = Events;
2421 +var _default = Events;
2422 +exports["default"] = _default;
1716 2423
1717 2424 /***/ }),
1718 2425
1719 2426 /***/ "../assets/dev/js/utils/hooks.js":
@@ -1719,9 +2426,9 @@
1719 2426 /***/ "../assets/dev/js/utils/hooks.js":
1720 2427 /*!***************************************!*\
1721 2428 !*** ../assets/dev/js/utils/hooks.js ***!
1722 2429 \***************************************/
1723 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2430 +/***/ ((module) => {
1724 2431
1725 2432
1726 2433
1727 2434 /**
@@ -1727,9 +2434,8 @@
1727 2434 /**
1728 2435 * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in
1729 2436 * that, lowest priority hooks are fired first.
1730 2437 */
1731 -__webpack_require__(/*! core-js/modules/es.array.push.js */ "../node_modules/core-js/modules/es.array.push.js");
1732 2438 var EventManager = function () {
1733 2439 var slice = Array.prototype.slice,
1734 2440 MethodsAvailable;
1735 2441
@@ -1886,9 +2592,9 @@
1886 2592 /**
1887 2593 * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is
1888 2594 * that the first argument must always be the action.
1889 2595 */
1890 - function doAction(/* Action, arg1, arg2, ... */
2596 + function doAction( /* Action, arg1, arg2, ... */
1891 2597 ) {
1892 2598 var args = slice.call(arguments);
1893 2599 var action = args.shift();
1894 2600 if ('string' === typeof action) {
@@ -1929,9 +2635,9 @@
1929 2635 /**
1930 2636 * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that
1931 2637 * the first argument must always be the filter.
1932 2638 */
1933 - function applyFilters(/* Filter, filtered arg, arg2, ... */
2639 + function applyFilters( /* Filter, filtered arg, arg2, ... */
1934 2640 ) {
1935 2641 var args = slice.call(arguments);
1936 2642 var filter = args.shift();
1937 2643 if ('string' === typeof filter) {
@@ -1998,9 +2704,9 @@
1998 2704 isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) || /constructor/i.test(window.HTMLElement) || (p => {
1999 2705 return '[object SafariRemoteNotification]' === p.toString();
2000 2706 })(!window.safari || typeof safari !== 'undefined' && safari.pushNotification),
2001 2707 // Internet Explorer 6-11
2002 - isIE = /Trident|MSIE/.test(userAgent) && (/* @cc_on!@*/ false || !!document.documentMode),
2708 + isIE = /Trident|MSIE/.test(userAgent) && ( /* @cc_on!@*/ false || !!document.documentMode),
2003 2709 // Edge 20+
2004 2710 isEdge = !isIE && !!window.StyleMedia || matchUserAgent('Edg'),
2005 2711 // Google Chrome (Not accurate)
2006 2712 isChrome = !!window.chrome && matchUserAgent('Chrome') && !(isEdge || isOpera),
@@ -2021,9 +2727,10 @@
2021 2727 opera: isOpera,
2022 2728 safari: isSafari,
2023 2729 webkit: matchUserAgent('AppleWebKit')
2024 2730 };
2025 -var _default = exports["default"] = environment;
2731 +var _default = environment;
2732 +exports["default"] = _default;
2026 2733
2027 2734 /***/ }),
2028 2735
2029 2736 /***/ "../core/common/assets/js/utils/storage.js":
@@ -2029,9 +2736,9 @@
2029 2736 /***/ "../core/common/assets/js/utils/storage.js":
2030 2737 /*!*************************************************!*\
2031 2738 !*** ../core/common/assets/js/utils/storage.js ***!
2032 2739 \*************************************************/
2033 -/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2740 +/***/ ((__unused_webpack_module, exports) => {
2034 2741
2035 2742
2036 2743
2037 2744 Object.defineProperty(exports, "__esModule", ({
@@ -2037,10 +2744,8 @@
2037 2744 Object.defineProperty(exports, "__esModule", ({
2038 2745 value: true
2039 2746 }));
2040 2747 exports["default"] = void 0;
2041 -__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
2042 -__webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "../node_modules/core-js/modules/esnext.iterator.for-each.js");
2043 2748 class _default extends elementorModules.Module {
2044 2749 get(key, options) {
2045 2750 options = options || {};
2046 2751 let storage;
@@ -2122,9 +2827,9 @@
2122 2827 exports["default"] = void 0;
2123 2828 class _default extends elementorModules.Module {
2124 2829 constructor() {
2125 2830 super();
2126 - elementorFrontend.elementsHandler.attachHandler('text-path', () => Promise.all(/*! import() | text-path */[__webpack_require__.e("vendors-node_modules_dompurify_dist_purify_cjs_js"), __webpack_require__.e("text-path")]).then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/text-path */ "../modules/shapes/assets/js/frontend/handlers/text-path.js")));
2831 + elementorFrontend.elementsHandler.attachHandler('text-path', () => __webpack_require__.e(/*! import() | text-path */ "text-path").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/text-path */ "../modules/shapes/assets/js/frontend/handlers/text-path.js")));
2127 2832 }
2128 2833 }
2129 2834 exports["default"] = _default;
2130 2835
@@ -2129,23 +2834,22 @@
2129 2834 exports["default"] = _default;
2130 2835
2131 2836 /***/ }),
2132 2837
2133 -/***/ "../node_modules/core-js/internals/a-possible-prototype.js":
2134 -/*!*****************************************************************!*\
2135 - !*** ../node_modules/core-js/internals/a-possible-prototype.js ***!
2136 - \*****************************************************************/
2838 +/***/ "../node_modules/core-js/internals/an-instance.js":
2839 +/*!********************************************************!*\
2840 + !*** ../node_modules/core-js/internals/an-instance.js ***!
2841 + \********************************************************/
2137 2842 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2138 2843
2139 2844
2140 -var isPossiblePrototype = __webpack_require__(/*! ../internals/is-possible-prototype */ "../node_modules/core-js/internals/is-possible-prototype.js");
2845 +var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js");
2141 2846
2142 -var $String = String;
2143 2847 var $TypeError = TypeError;
2144 2848
2145 -module.exports = function (argument) {
2146 - if (isPossiblePrototype(argument)) return argument;
2147 - throw new $TypeError("Can't set " + $String(argument) + ' as a prototype');
2849 +module.exports = function (it, Prototype) {
2850 + if (isPrototypeOf(Prototype, it)) return it;
2851 + throw $TypeError('Incorrect invocation');
2148 2852 };
2149 2853
2150 2854
2151 2855 /***/ }),
@@ -2187,173 +2891,8 @@
2187 2891
2188 2892
2189 2893 /***/ }),
2190 2894
2191 -/***/ "../node_modules/core-js/internals/error-stack-clear.js":
2192 -/*!**************************************************************!*\
2193 - !*** ../node_modules/core-js/internals/error-stack-clear.js ***!
2194 - \**************************************************************/
2195 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2196 -
2197 -
2198 -var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
2199 -
2200 -var $Error = Error;
2201 -var replace = uncurryThis(''.replace);
2202 -
2203 -var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');
2204 -// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe
2205 -var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
2206 -var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
2207 -
2208 -module.exports = function (stack, dropEntries) {
2209 - if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {
2210 - while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');
2211 - } return stack;
2212 -};
2213 -
2214 -
2215 -/***/ }),
2216 -
2217 -/***/ "../node_modules/core-js/internals/function-uncurry-this-accessor.js":
2218 -/*!***************************************************************************!*\
2219 - !*** ../node_modules/core-js/internals/function-uncurry-this-accessor.js ***!
2220 - \***************************************************************************/
2221 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2222 -
2223 -
2224 -var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "../node_modules/core-js/internals/function-uncurry-this.js");
2225 -var aCallable = __webpack_require__(/*! ../internals/a-callable */ "../node_modules/core-js/internals/a-callable.js");
2226 -
2227 -module.exports = function (object, key, method) {
2228 - try {
2229 - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
2230 - return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
2231 - } catch (error) { /* empty */ }
2232 -};
2233 -
2234 -
2235 -/***/ }),
2236 -
2237 -/***/ "../node_modules/core-js/internals/inherit-if-required.js":
2238 -/*!****************************************************************!*\
2239 - !*** ../node_modules/core-js/internals/inherit-if-required.js ***!
2240 - \****************************************************************/
2241 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2242 -
2243 -
2244 -var isCallable = __webpack_require__(/*! ../internals/is-callable */ "../node_modules/core-js/internals/is-callable.js");
2245 -var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
2246 -var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "../node_modules/core-js/internals/object-set-prototype-of.js");
2247 -
2248 -// makes subclassing work correct for wrapped built-ins
2249 -module.exports = function ($this, dummy, Wrapper) {
2250 - var NewTarget, NewTargetPrototype;
2251 - if (
2252 - // it can work only with native `setPrototypeOf`
2253 - setPrototypeOf &&
2254 - // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
2255 - isCallable(NewTarget = dummy.constructor) &&
2256 - NewTarget !== Wrapper &&
2257 - isObject(NewTargetPrototype = NewTarget.prototype) &&
2258 - NewTargetPrototype !== Wrapper.prototype
2259 - ) setPrototypeOf($this, NewTargetPrototype);
2260 - return $this;
2261 -};
2262 -
2263 -
2264 -/***/ }),
2265 -
2266 -/***/ "../node_modules/core-js/internals/is-possible-prototype.js":
2267 -/*!******************************************************************!*\
2268 - !*** ../node_modules/core-js/internals/is-possible-prototype.js ***!
2269 - \******************************************************************/
2270 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2271 -
2272 -
2273 -var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
2274 -
2275 -module.exports = function (argument) {
2276 - return isObject(argument) || argument === null;
2277 -};
2278 -
2279 -
2280 -/***/ }),
2281 -
2282 -/***/ "../node_modules/core-js/internals/normalize-string-argument.js":
2283 -/*!**********************************************************************!*\
2284 - !*** ../node_modules/core-js/internals/normalize-string-argument.js ***!
2285 - \**********************************************************************/
2286 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2287 -
2288 -
2289 -var toString = __webpack_require__(/*! ../internals/to-string */ "../node_modules/core-js/internals/to-string.js");
2290 -
2291 -module.exports = function (argument, $default) {
2292 - return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);
2293 -};
2294 -
2295 -
2296 -/***/ }),
2297 -
2298 -/***/ "../node_modules/core-js/internals/object-set-prototype-of.js":
2299 -/*!********************************************************************!*\
2300 - !*** ../node_modules/core-js/internals/object-set-prototype-of.js ***!
2301 - \********************************************************************/
2302 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2303 -
2304 -
2305 -/* eslint-disable no-proto -- safe */
2306 -var uncurryThisAccessor = __webpack_require__(/*! ../internals/function-uncurry-this-accessor */ "../node_modules/core-js/internals/function-uncurry-this-accessor.js");
2307 -var isObject = __webpack_require__(/*! ../internals/is-object */ "../node_modules/core-js/internals/is-object.js");
2308 -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "../node_modules/core-js/internals/require-object-coercible.js");
2309 -var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "../node_modules/core-js/internals/a-possible-prototype.js");
2310 -
2311 -// `Object.setPrototypeOf` method
2312 -// https://tc39.es/ecma262/#sec-object.setprototypeof
2313 -// Works with __proto__ only. Old v8 can't work with null proto objects.
2314 -// eslint-disable-next-line es/no-object-setprototypeof -- safe
2315 -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
2316 - var CORRECT_SETTER = false;
2317 - var test = {};
2318 - var setter;
2319 - try {
2320 - setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
2321 - setter(test, []);
2322 - CORRECT_SETTER = test instanceof Array;
2323 - } catch (error) { /* empty */ }
2324 - return function setPrototypeOf(O, proto) {
2325 - requireObjectCoercible(O);
2326 - aPossiblePrototype(proto);
2327 - if (!isObject(O)) return O;
2328 - if (CORRECT_SETTER) setter(O, proto);
2329 - else O.__proto__ = proto;
2330 - return O;
2331 - };
2332 -}() : undefined);
2333 -
2334 -
2335 -/***/ }),
2336 -
2337 -/***/ "../node_modules/core-js/internals/to-string.js":
2338 -/*!******************************************************!*\
2339 - !*** ../node_modules/core-js/internals/to-string.js ***!
2340 - \******************************************************/
2341 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2342 -
2343 -
2344 -var classof = __webpack_require__(/*! ../internals/classof */ "../node_modules/core-js/internals/classof.js");
2345 -
2346 -var $String = String;
2347 -
2348 -module.exports = function (argument) {
2349 - if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
2350 - return $String(argument);
2351 -};
2352 -
2353 -
2354 -/***/ }),
2355 -
2356 2895 /***/ "../node_modules/core-js/modules/web.dom-exception.stack.js":
2357 2896 /*!******************************************************************!*\
2358 2897 !*** ../node_modules/core-js/modules/web.dom-exception.stack.js ***!
2359 2898 \******************************************************************/
@@ -2360,9 +2899,9 @@
2360 2899 /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2361 2900
2362 2901
2363 2902 var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js");
2364 -var globalThis = __webpack_require__(/*! ../internals/global-this */ "../node_modules/core-js/internals/global-this.js");
2903 +var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
2365 2904 var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js");
2366 2905 var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js");
2367 2906 var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js").f);
2368 2907 var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
@@ -2383,9 +2922,9 @@
2383 2922 var argumentsLength = arguments.length;
2384 2923 var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);
2385 2924 var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');
2386 2925 var that = new NativeDOMException(message, name);
2387 - var error = new Error(message);
2926 + var error = Error(message);
2388 2927 error.name = DOM_EXCEPTION;
2389 2928 defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
2390 2929 inheritIfRequired(that, this, $DOMException);
2391 2930 return that;
@@ -2392,13 +2931,13 @@
2392 2931 };
2393 2932
2394 2933 var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;
2395 2934
2396 -var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);
2935 +var ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);
2397 2936 var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);
2398 2937
2399 2938 // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
2400 -var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);
2939 +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);
2401 2940
2402 2941 // Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it
2403 2942 // https://github.com/Jarred-Sumner/bun/issues/399
2404 2943 var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);