PluginProbe
Elementor Website Builder – more than just a page builder / 3.13.2
Elementor Website Builder – more than just a page builder v3.13.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 4.0.8 All 454 releases
← All changes | assets/js/frontend.js +2658 -3885 4.3.0 → 3.13.2 View file →
@@ -1,4043 +1,2816 @@
1 +/*! elementor - v3.13.2 - 11-05-2023 */
2 +(self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["frontend"],{
3 +
4 +/***/ "../assets/dev/js/frontend/documents-manager.js":
5 +/*!******************************************************!*\
6 + !*** ../assets/dev/js/frontend/documents-manager.js ***!
7 + \******************************************************/
8 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9 +
1 10 "use strict";
2 11
3 -(function() {
4 12
5 -//#region \0rolldown/runtime.js
6 - var __defProp = Object.defineProperty;
7 - var __name = (target, value) => __defProp(target, "name", {
8 - value,
9 - configurable: true
10 - });
11 - var __esmMin = (fn, res, err) => () => {
12 - if (err) throw err[0];
13 - try {
14 - return fn && (res = fn(fn = 0)), res;
15 - } catch (e) {
16 - throw err = [e], e;
17 - }
18 - };
19 - var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
13 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
14 +Object.defineProperty(exports, "__esModule", ({
15 + value: true
16 +}));
17 +exports["default"] = void 0;
18 +var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../assets/dev/js/frontend/document.js"));
19 +class _default extends elementorModules.ViewModule {
20 + constructor() {
21 + super(...arguments);
22 + this.documents = {};
23 + this.initDocumentClasses();
24 + this.attachDocumentsClasses();
25 + }
26 + getDefaultSettings() {
27 + return {
28 + selectors: {
29 + document: '.elementor'
30 + }
31 + };
32 + }
33 + getDefaultElements() {
34 + const selectors = this.getSettings('selectors');
35 + return {
36 + $documents: jQuery(selectors.document)
37 + };
38 + }
39 + initDocumentClasses() {
40 + this.documentClasses = {
41 + base: _document.default
42 + };
43 + elementorFrontend.hooks.doAction('elementor/frontend/documents-manager/init-classes', this);
44 + }
45 + addDocumentClass(documentType, documentClass) {
46 + this.documentClasses[documentType] = documentClass;
47 + }
48 + attachDocumentsClasses() {
49 + this.elements.$documents.each((index, document) => this.attachDocumentClass(jQuery(document)));
50 + }
51 + attachDocumentClass($document) {
52 + const documentData = $document.data(),
53 + documentID = documentData.elementorId,
54 + documentType = documentData.elementorType,
55 + DocumentClass = this.documentClasses[documentType] || this.documentClasses.base;
56 + this.documents[documentID] = new DocumentClass({
57 + $element: $document,
58 + id: documentID
59 + });
60 + }
61 +}
62 +exports["default"] = _default;
20 63
21 -//#endregion
64 +/***/ }),
22 65
23 -//#region node_modules/@babel/runtime/helpers/interopRequireDefault.js
24 - var require_interopRequireDefault = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25 - function _interopRequireDefault(e) {
26 - return e && e.__esModule ? e : { "default": e };
27 - }
28 - module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
29 - }));
66 +/***/ "../assets/dev/js/frontend/elements-handlers-manager.js":
67 +/*!**************************************************************!*\
68 + !*** ../assets/dev/js/frontend/elements-handlers-manager.js ***!
69 + \**************************************************************/
70 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
30 71
31 -//#endregion
32 -//#region node_modules/core-js/internals/global-this.js
33 - var require_global_this = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34 - var check = function(it) {
35 - return it && it.Math === Math && it;
36 - };
37 - module.exports = check(typeof globalThis == "object" && globalThis) || check(typeof window == "object" && window) || check(typeof self == "object" && self) || check(typeof global == "object" && global) || check(typeof exports == "object" && exports) || (function() {
38 - return this;
39 - })() || Function("return this")();
40 - }));
72 +"use strict";
41 73
42 -//#endregion
43 -//#region node_modules/core-js/internals/fails.js
44 - var require_fails = /* @__PURE__ */ __commonJSMin(((exports, module) => {
45 - module.exports = function(exec) {
46 - try {
47 - return !!exec();
48 - } catch (error) {
49 - return true;
50 - }
51 - };
52 - }));
53 74
54 -//#endregion
55 -//#region node_modules/core-js/internals/descriptors.js
56 - var require_descriptors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
57 - var fails = require_fails();
58 - module.exports = !fails(function() {
59 - return Object.defineProperty({}, 1, { get: function() {
60 - return 7;
61 - } })[1] !== 7;
62 - });
63 - }));
75 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
76 +var _global = _interopRequireDefault(__webpack_require__(/*! ./handlers/global */ "../assets/dev/js/frontend/handlers/global.js"));
77 +var _background = _interopRequireDefault(__webpack_require__(/*! ./handlers/background */ "../assets/dev/js/frontend/handlers/background.js"));
78 +var _container = _interopRequireDefault(__webpack_require__(/*! ./handlers/container/container */ "../assets/dev/js/frontend/handlers/container/container.js"));
79 +var _column = _interopRequireDefault(__webpack_require__(/*! ./handlers/column */ "../assets/dev/js/frontend/handlers/column.js"));
80 +var _handlesPosition = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/handles-position */ "../assets/dev/js/frontend/handlers/section/handles-position.js"));
81 +var _stretchedSection = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/stretched-section */ "../assets/dev/js/frontend/handlers/section/stretched-section.js"));
82 +var _shapes = _interopRequireDefault(__webpack_require__(/*! ./handlers/section/shapes */ "../assets/dev/js/frontend/handlers/section/shapes.js"));
83 +// Section handlers.
64 84
65 -//#endregion
66 -//#region node_modules/core-js/internals/function-bind-native.js
67 - var require_function_bind_native = /* @__PURE__ */ __commonJSMin(((exports, module) => {
68 - var fails = require_fails();
69 - module.exports = !fails(function() {
70 - var test = (function() {}).bind();
71 - return typeof test != "function" || test.hasOwnProperty("prototype");
72 - });
73 - }));
85 +/* global elementorFrontendConfig */
74 86
75 -//#endregion
76 -//#region node_modules/core-js/internals/function-call.js
77 - var require_function_call = /* @__PURE__ */ __commonJSMin(((exports, module) => {
78 - var NATIVE_BIND = require_function_bind_native();
79 - var call = Function.prototype.call;
80 - module.exports = NATIVE_BIND ? call.bind(call) : function() {
81 - return call.apply(call, arguments);
82 - };
83 - }));
87 +module.exports = function ($) {
88 + var _this = this;
89 + const handlersInstances = {};
90 + this.elementsHandlers = {
91 + 'accordion.default': () => __webpack_require__.e(/*! import() | accordion */ "accordion").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/accordion */ "../assets/dev/js/frontend/handlers/accordion.js")),
92 + 'alert.default': () => __webpack_require__.e(/*! import() | alert */ "alert").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/alert */ "../assets/dev/js/frontend/handlers/alert.js")),
93 + 'counter.default': () => __webpack_require__.e(/*! import() | counter */ "counter").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/counter */ "../assets/dev/js/frontend/handlers/counter.js")),
94 + 'progress.default': () => __webpack_require__.e(/*! import() | progress */ "progress").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/progress */ "../assets/dev/js/frontend/handlers/progress.js")),
95 + 'tabs.default': () => __webpack_require__.e(/*! import() | tabs */ "tabs").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/tabs */ "../assets/dev/js/frontend/handlers/tabs.js")),
96 + 'toggle.default': () => __webpack_require__.e(/*! import() | toggle */ "toggle").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/toggle */ "../assets/dev/js/frontend/handlers/toggle.js")),
97 + 'video.default': () => __webpack_require__.e(/*! import() | video */ "video").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/video */ "../assets/dev/js/frontend/handlers/video.js")),
98 + '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")),
99 + '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")),
100 + '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"))
101 + };
102 + if (elementorFrontendConfig.experimentalFeatures['nested-elements']) {
103 + 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"));
104 + }
105 + const addGlobalHandlers = () => elementorFrontend.hooks.addAction('frontend/element_ready/global', _global.default);
106 + const addElementsHandlers = () => {
107 + this.elementsHandlers.section = [_stretchedSection.default,
108 + // Must run before background handlers to init the slideshow only after the stretch.
109 + ..._background.default, _handlesPosition.default, _shapes.default];
110 + this.elementsHandlers.container = [..._background.default];
84 111
85 -//#endregion
86 -//#region node_modules/core-js/internals/object-property-is-enumerable.js
87 - var require_object_property_is_enumerable = /* @__PURE__ */ __commonJSMin(((exports) => {
88 - var $propertyIsEnumerable = {}.propertyIsEnumerable;
89 - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
90 - var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
91 - exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
92 - var descriptor = getOwnPropertyDescriptor(this, V);
93 - return !!descriptor && descriptor.enumerable;
94 - } : $propertyIsEnumerable;
95 - }));
112 + // Add editor-only handlers.
113 + if (elementorFrontend.isEditMode()) {
114 + this.elementsHandlers.container.push(..._container.default);
115 + }
116 + this.elementsHandlers.column = _column.default;
117 + $.each(this.elementsHandlers, (elementName, Handlers) => {
118 + const elementData = elementName.split('.');
119 + elementName = elementData[0];
120 + const skin = elementData[1] || null;
121 + this.attachHandler(elementName, Handlers, skin);
122 + });
123 + };
124 + const isClassHandler = Handler => Handler.prototype?.getUniqueHandlerID;
125 + const addHandlerWithHook = function (elementBaseName, Handler) {
126 + let skin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';
127 + skin = skin ? '.' + skin : '';
128 + const elementName = elementBaseName + skin;
129 + elementorFrontend.hooks.addAction(`frontend/element_ready/${elementName}`, $element => {
130 + if (isClassHandler(Handler)) {
131 + _this.addHandler(Handler, {
132 + $element,
133 + elementName
134 + }, true);
135 + } else {
136 + const handlerValue = Handler();
137 + if (!handlerValue) {
138 + return;
139 + }
140 + if (handlerValue instanceof Promise) {
141 + handlerValue.then(_ref => {
142 + let {
143 + default: dynamicHandler
144 + } = _ref;
145 + _this.addHandler(dynamicHandler, {
146 + $element,
147 + elementName
148 + }, true);
149 + });
150 + } else {
151 + _this.addHandler(handlerValue, {
152 + $element,
153 + elementName
154 + }, true);
155 + }
156 + }
157 + });
158 + };
159 + this.addHandler = function (HandlerClass, options) {
160 + const elementID = options.$element.data('model-cid');
161 + let handlerID;
96 162
97 -//#endregion
98 -//#region node_modules/core-js/internals/create-property-descriptor.js
99 - var require_create_property_descriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
100 - module.exports = function(bitmap, value) {
101 - return {
102 - enumerable: !(bitmap & 1),
103 - configurable: !(bitmap & 2),
104 - writable: !(bitmap & 4),
105 - value
106 - };
107 - };
108 - }));
163 + // If element is in edit mode
164 + if (elementID) {
165 + handlerID = HandlerClass.prototype.getConstructorID();
166 + if (!handlersInstances[elementID]) {
167 + handlersInstances[elementID] = {};
168 + }
169 + const oldHandler = handlersInstances[elementID][handlerID];
170 + if (oldHandler) {
171 + oldHandler.onDestroy();
172 + }
173 + }
174 + const newHandler = new HandlerClass(options);
175 + elementorFrontend.hooks.doAction(`frontend/element_handler_ready/${options.elementName}`, options.$element, $);
176 + if (elementID) {
177 + handlersInstances[elementID][handlerID] = newHandler;
178 + }
179 + };
180 + this.attachHandler = (elementName, Handlers, skin) => {
181 + if (!Array.isArray(Handlers)) {
182 + Handlers = [Handlers];
183 + }
184 + Handlers.forEach(Handler => addHandlerWithHook(elementName, Handler, skin));
185 + };
186 + this.getHandler = function (handlerName) {
187 + const elementHandler = this.elementsHandlers[handlerName];
188 + if (isClassHandler(elementHandler)) {
189 + return elementHandler;
190 + }
191 + return new Promise(res => {
192 + elementHandler().then(_ref2 => {
193 + let {
194 + default: dynamicHandler
195 + } = _ref2;
196 + res(dynamicHandler);
197 + });
198 + });
199 + };
200 + this.getHandlers = function (handlerName) {
201 + elementorDevTools.deprecation.deprecated('getHandlers', '3.1.0', 'elementorFrontend.elementsHandler.getHandler');
202 + if (handlerName) {
203 + return this.getHandler(handlerName);
204 + }
205 + return this.elementsHandlers;
206 + };
207 + this.runReadyTrigger = function (scope) {
208 + if (elementorFrontend.config.is_static) {
209 + return;
210 + }
109 211
110 -//#endregion
111 -//#region node_modules/core-js/internals/function-uncurry-this.js
112 - var require_function_uncurry_this = /* @__PURE__ */ __commonJSMin(((exports, module) => {
113 - var NATIVE_BIND = require_function_bind_native();
114 - var FunctionPrototype = Function.prototype;
115 - var call = FunctionPrototype.call;
116 - var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
117 - module.exports = NATIVE_BIND ? uncurryThisWithBind : function(fn) {
118 - return function() {
119 - return call.apply(fn, arguments);
120 - };
121 - };
122 - }));
212 + // Initializing the `$scope` as frontend jQuery instance
213 + const $scope = jQuery(scope),
214 + elementType = $scope.attr('data-element_type');
215 + if (!elementType) {
216 + return;
217 + }
218 + elementorFrontend.hooks.doAction('frontend/element_ready/global', $scope, $);
219 + elementorFrontend.hooks.doAction(`frontend/element_ready/${elementType}`, $scope, $);
220 + if ('widget' === elementType) {
221 + const widgetType = $scope.attr('data-widget_type');
222 + elementorFrontend.hooks.doAction(`frontend/element_ready/${widgetType}`, $scope, $);
223 + }
224 + };
225 + this.init = () => {
226 + addGlobalHandlers();
227 + addElementsHandlers();
228 + };
229 +};
123 230
124 -//#endregion
125 -//#region node_modules/core-js/internals/classof-raw.js
126 - var require_classof_raw = /* @__PURE__ */ __commonJSMin(((exports, module) => {
127 - var uncurryThis = require_function_uncurry_this();
128 - var toString = uncurryThis({}.toString);
129 - var stringSlice = uncurryThis("".slice);
130 - module.exports = function(it) {
131 - return stringSlice(toString(it), 8, -1);
132 - };
133 - }));
231 +/***/ }),
134 232
135 -//#endregion
136 -//#region node_modules/core-js/internals/indexed-object.js
137 - var require_indexed_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
138 - var uncurryThis = require_function_uncurry_this();
139 - var fails = require_fails();
140 - var classof = require_classof_raw();
141 - var $Object = Object;
142 - var split = uncurryThis("".split);
143 - module.exports = fails(function() {
144 - return !$Object("z").propertyIsEnumerable(0);
145 - }) ? function(it) {
146 - return classof(it) === "String" ? split(it, "") : $Object(it);
147 - } : $Object;
148 - }));
233 +/***/ "../assets/dev/js/frontend/frontend.js":
234 +/*!*********************************************!*\
235 + !*** ../assets/dev/js/frontend/frontend.js ***!
236 + \*********************************************/
237 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
149 238
150 -//#endregion
151 -//#region node_modules/core-js/internals/is-null-or-undefined.js
152 - var require_is_null_or_undefined = /* @__PURE__ */ __commonJSMin(((exports, module) => {
153 - module.exports = function(it) {
154 - return it === null || it === void 0;
155 - };
156 - }));
239 +"use strict";
157 240
158 -//#endregion
159 -//#region node_modules/core-js/internals/require-object-coercible.js
160 - var require_require_object_coercible = /* @__PURE__ */ __commonJSMin(((exports, module) => {
161 - var isNullOrUndefined = require_is_null_or_undefined();
162 - var $TypeError = TypeError;
163 - module.exports = function(it) {
164 - if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it);
165 - return it;
166 - };
167 - }));
168 241
169 -//#endregion
170 -//#region node_modules/core-js/internals/to-indexed-object.js
171 - var require_to_indexed_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
172 - var IndexedObject = require_indexed_object();
173 - var requireObjectCoercible = require_require_object_coercible();
174 - module.exports = function(it) {
175 - return IndexedObject(requireObjectCoercible(it));
176 - };
177 - }));
242 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
243 +Object.defineProperty(exports, "__esModule", ({
244 + value: true
245 +}));
246 +exports["default"] = void 0;
247 +__webpack_require__(/*! ../public-path */ "../assets/dev/js/public-path.js");
248 +var _documentsManager = _interopRequireDefault(__webpack_require__(/*! ./documents-manager */ "../assets/dev/js/frontend/documents-manager.js"));
249 +var _storage = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/storage */ "../core/common/assets/js/utils/storage.js"));
250 +var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
251 +var _youtubeLoader = _interopRequireDefault(__webpack_require__(/*! ./utils/video-api/youtube-loader */ "../assets/dev/js/frontend/utils/video-api/youtube-loader.js"));
252 +var _vimeoLoader = _interopRequireDefault(__webpack_require__(/*! ./utils/video-api/vimeo-loader */ "../assets/dev/js/frontend/utils/video-api/vimeo-loader.js"));
253 +var _baseLoader = _interopRequireDefault(__webpack_require__(/*! ./utils/video-api/base-loader */ "../assets/dev/js/frontend/utils/video-api/base-loader.js"));
254 +var _urlActions = _interopRequireDefault(__webpack_require__(/*! ./utils/url-actions */ "../assets/dev/js/frontend/utils/url-actions.js"));
255 +var _swiper = _interopRequireDefault(__webpack_require__(/*! ./utils/swiper */ "../assets/dev/js/frontend/utils/swiper.js"));
256 +var _lightboxManager = _interopRequireDefault(__webpack_require__(/*! ./utils/lightbox/lightbox-manager */ "../assets/dev/js/frontend/utils/lightbox/lightbox-manager.js"));
257 +var _assetsLoader = _interopRequireDefault(__webpack_require__(/*! ./utils/assets-loader */ "../assets/dev/js/frontend/utils/assets-loader.js"));
258 +var _breakpoints = _interopRequireDefault(__webpack_require__(/*! elementor-utils/breakpoints */ "../assets/dev/js/utils/breakpoints.js"));
259 +var _events = _interopRequireDefault(__webpack_require__(/*! elementor-utils/events */ "../assets/dev/js/utils/events.js"));
260 +var _frontend = _interopRequireDefault(__webpack_require__(/*! elementor/modules/shapes/assets/js/frontend/frontend */ "../modules/shapes/assets/js/frontend/frontend.js"));
261 +var _controls = _interopRequireDefault(__webpack_require__(/*! ./utils/controls */ "../assets/dev/js/frontend/utils/controls.js"));
262 +var _utils = __webpack_require__(/*! elementor-frontend/utils/utils */ "../assets/dev/js/frontend/utils/utils.js");
263 +/* global elementorFrontendConfig */
178 264
179 -//#endregion
180 -//#region node_modules/core-js/internals/is-callable.js
181 - var require_is_callable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
182 - var documentAll = typeof document == "object" && document.all;
183 - module.exports = typeof documentAll == "undefined" && documentAll !== void 0 ? function(argument) {
184 - return typeof argument == "function" || argument === documentAll;
185 - } : function(argument) {
186 - return typeof argument == "function";
187 - };
188 - }));
265 +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"),
267 + AnchorsModule = __webpack_require__(/*! elementor-frontend/utils/anchors */ "../assets/dev/js/frontend/utils/anchors.js");
268 +class Frontend extends elementorModules.ViewModule {
269 + constructor() {
270 + super(...arguments);
271 + this.config = elementorFrontendConfig;
272 + this.config.legacyMode = {
273 + get elementWrappers() {
274 + if (elementorFrontend.isEditMode()) {
275 + window.top.elementorDevTools.deprecation.deprecated('elementorFrontend.config.legacyMode.elementWrappers', '3.1.0', 'elementorFrontend.config.experimentalFeatures.e_dom_optimization');
276 + }
277 + return !elementorFrontend.config.experimentalFeatures.e_dom_optimization;
278 + }
279 + };
280 + this.populateActiveBreakpointsConfig();
281 + }
189 282
190 -//#endregion
191 -//#region node_modules/core-js/internals/is-object.js
192 - var require_is_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
193 - var isCallable = require_is_callable();
194 - module.exports = function(it) {
195 - return typeof it == "object" ? it !== null : isCallable(it);
196 - };
197 - }));
283 + // TODO: BC since 2.5.0
284 + get Module() {
285 + if (this.isEditMode()) {
286 + parent.elementorDevTools.deprecation.deprecated('elementorFrontend.Module', '2.5.0', 'elementorModules.frontend.handlers.Base');
287 + }
288 + return elementorModules.frontend.handlers.Base;
289 + }
290 + getDefaultSettings() {
291 + return {
292 + selectors: {
293 + elementor: '.elementor',
294 + adminBar: '#wpadminbar'
295 + }
296 + };
297 + }
298 + getDefaultElements() {
299 + const defaultElements = {
300 + window,
301 + $window: jQuery(window),
302 + $document: jQuery(document),
303 + $head: jQuery(document.head),
304 + $body: jQuery(document.body),
305 + $deviceMode: jQuery('<span>', {
306 + id: 'elementor-device-mode',
307 + class: 'elementor-screen-only'
308 + })
309 + };
310 + defaultElements.$body.append(defaultElements.$deviceMode);
311 + return defaultElements;
312 + }
313 + bindEvents() {
314 + this.elements.$window.on('resize', () => this.setDeviceModeData());
315 + }
198 316
199 -//#endregion
200 -//#region node_modules/core-js/internals/get-built-in.js
201 - var require_get_built_in = /* @__PURE__ */ __commonJSMin(((exports, module) => {
202 - var globalThis = require_global_this();
203 - var isCallable = require_is_callable();
204 - var aFunction = function(argument) {
205 - return isCallable(argument) ? argument : void 0;
206 - };
207 - module.exports = function(namespace, method) {
208 - return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];
209 - };
210 - }));
317 + /**
318 + * @param {string} elementName
319 + * @deprecated 2.4.0 Use just `this.elements` instead
320 + */
321 + getElements(elementName) {
322 + return this.getItems(this.elements, elementName);
323 + }
211 324
212 -//#endregion
213 -//#region node_modules/core-js/internals/object-is-prototype-of.js
214 - var require_object_is_prototype_of = /* @__PURE__ */ __commonJSMin(((exports, module) => {
215 - var uncurryThis = require_function_uncurry_this();
216 - module.exports = uncurryThis({}.isPrototypeOf);
217 - }));
325 + /**
326 + * @param {string} settingName
327 + * @deprecated 2.4.0 This method was never in use
328 + */
329 + getPageSettings(settingName) {
330 + const settingsObject = this.isEditMode() ? elementor.settings.page.model.attributes : this.config.settings.page;
331 + return this.getItems(settingsObject, settingName);
332 + }
333 + getGeneralSettings(settingName) {
334 + if (this.isEditMode()) {
335 + parent.elementorDevTools.deprecation.deprecated('getGeneralSettings', '3.0.0', 'getKitSettings and remove the `elementor_` prefix');
336 + }
337 + return this.getKitSettings(`elementor_${settingName}`);
338 + }
339 + getKitSettings(settingName) {
340 + // TODO: use Data API.
341 + return this.getItems(this.config.kit, settingName);
342 + }
343 + getCurrentDeviceMode() {
344 + return getComputedStyle(this.elements.$deviceMode[0], ':after').content.replace(/"/g, '');
345 + }
346 + getDeviceSetting(deviceMode, settings, settingKey) {
347 + // Add specific handling for widescreen since it is larger than desktop.
348 + if ('widescreen' === deviceMode) {
349 + return this.getWidescreenSetting(settings, settingKey);
350 + }
351 + const devices = elementorFrontend.breakpoints.getActiveBreakpointsList({
352 + largeToSmall: true,
353 + withDesktop: true
354 + });
355 + let deviceIndex = devices.indexOf(deviceMode);
356 + while (deviceIndex > 0) {
357 + const currentDevice = devices[deviceIndex],
358 + fullSettingKey = settingKey + '_' + currentDevice,
359 + deviceValue = settings[fullSettingKey];
218 360
219 -//#endregion
220 -//#region node_modules/core-js/internals/environment-user-agent.js
221 - var require_environment_user_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
222 - var navigator = require_global_this().navigator;
223 - var userAgent = navigator && navigator.userAgent;
224 - module.exports = userAgent ? String(userAgent) : "";
225 - }));
361 + // Accept 0 as value.
362 + if (deviceValue || 0 === deviceValue) {
363 + return deviceValue;
364 + }
365 + deviceIndex--;
366 + }
367 + return settings[settingKey];
368 + }
369 + getWidescreenSetting(settings, settingKey) {
370 + const deviceMode = 'widescreen',
371 + widescreenSettingKey = settingKey + '_' + deviceMode;
372 + let settingToReturn;
226 373
227 -//#endregion
228 -//#region node_modules/core-js/internals/environment-v8-version.js
229 - var require_environment_v8_version = /* @__PURE__ */ __commonJSMin(((exports, module) => {
230 - var globalThis = require_global_this();
231 - var userAgent = require_environment_user_agent();
232 - var process = globalThis.process;
233 - var Deno = globalThis.Deno;
234 - var versions = process && process.versions || Deno && Deno.version;
235 - var v8 = versions && versions.v8;
236 - var match;
237 - var version;
238 - if (v8) {
239 - match = v8.split(".");
240 - version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
241 - }
242 - if (!version && userAgent) {
243 - match = userAgent.match(/Edge\/(\d+)/);
244 - if (!match || match[1] >= 74) {
245 - match = userAgent.match(/Chrome\/(\d+)/);
246 - if (match) version = +match[1];
247 - }
248 - }
249 - module.exports = version;
250 - }));
374 + // If the device mode is 'widescreen', and the setting exists - return it.
375 + if (settings[widescreenSettingKey]) {
376 + settingToReturn = settings[widescreenSettingKey];
377 + } else {
378 + // Otherwise, return the desktop setting
379 + settingToReturn = settings[settingKey];
380 + }
381 + return settingToReturn;
382 + }
383 + getCurrentDeviceSetting(settings, settingKey) {
384 + return this.getDeviceSetting(elementorFrontend.getCurrentDeviceMode(), settings, settingKey);
385 + }
386 + isEditMode() {
387 + return this.config.environmentMode.edit;
388 + }
389 + isWPPreviewMode() {
390 + return this.config.environmentMode.wpPreview;
391 + }
392 + initDialogsManager() {
393 + let dialogsManager;
394 + this.getDialogsManager = () => {
395 + if (!dialogsManager) {
396 + dialogsManager = new DialogsManager.Instance();
397 + }
398 + return dialogsManager;
399 + };
400 + }
401 + initOnReadyComponents() {
402 + this.utils = {
403 + youtube: new _youtubeLoader.default(),
404 + vimeo: new _vimeoLoader.default(),
405 + baseVideoLoader: new _baseLoader.default(),
406 + anchors: new AnchorsModule(),
407 + get lightbox() {
408 + return _lightboxManager.default.getLightbox();
409 + },
410 + urlActions: new _urlActions.default(),
411 + swiper: _swiper.default,
412 + environment: _environment.default,
413 + assetsLoader: new _assetsLoader.default(),
414 + escapeHTML: _utils.escapeHTML,
415 + events: _events.default,
416 + controls: new _controls.default()
417 + };
251 418
252 -//#endregion
253 -//#region node_modules/core-js/internals/symbol-constructor-detection.js
254 - var require_symbol_constructor_detection = /* @__PURE__ */ __commonJSMin(((exports, module) => {
255 - var V8_VERSION = require_environment_v8_version();
256 - var fails = require_fails();
257 - var $String = require_global_this().String;
258 - module.exports = !!Object.getOwnPropertySymbols && !fails(function() {
259 - var symbol = Symbol("symbol detection");
260 - return !$String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41;
261 - });
262 - }));
419 + // TODO: BC since 2.4.0
420 + this.modules = {
421 + StretchElement: elementorModules.frontend.tools.StretchElement,
422 + Masonry: elementorModules.utils.Masonry
423 + };
424 + this.elementsHandler.init();
425 + if (this.isEditMode()) {
426 + elementor.once('document:loaded', () => this.onDocumentLoaded());
427 + } else {
428 + this.onDocumentLoaded();
429 + }
430 + }
431 + initOnReadyElements() {
432 + this.elements.$wpAdminBar = this.elements.$document.find(this.getSettings('selectors.adminBar'));
433 + }
434 + addUserAgentClasses() {
435 + for (const [key, value] of Object.entries(_environment.default)) {
436 + if (value) {
437 + this.elements.$body.addClass('e--ua-' + key);
438 + }
439 + }
440 + }
441 + setDeviceModeData() {
442 + this.elements.$body.attr('data-elementor-device-mode', this.getCurrentDeviceMode());
443 + }
444 + addListenerOnce(listenerID, event, callback, to) {
445 + if (!to) {
446 + to = this.elements.$window;
447 + }
448 + if (!this.isEditMode()) {
449 + to.on(event, callback);
450 + return;
451 + }
452 + this.removeListeners(listenerID, event, to);
453 + if (to instanceof jQuery) {
454 + const eventNS = event + '.' + listenerID;
455 + to.on(eventNS, callback);
456 + } else {
457 + to.on(event, callback, listenerID);
458 + }
459 + }
460 + removeListeners(listenerID, event, callback, from) {
461 + if (!from) {
462 + from = this.elements.$window;
463 + }
464 + if (from instanceof jQuery) {
465 + const eventNS = event + '.' + listenerID;
466 + from.off(eventNS, callback);
467 + } else {
468 + from.off(event, callback, listenerID);
469 + }
470 + }
263 471
264 -//#endregion
265 -//#region node_modules/core-js/internals/use-symbol-as-uid.js
266 - var require_use_symbol_as_uid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
267 - var NATIVE_SYMBOL = require_symbol_constructor_detection();
268 - module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == "symbol";
269 - }));
472 + // Based on underscore function
473 + debounce(func, wait) {
474 + let timeout;
475 + return function () {
476 + const context = this,
477 + args = arguments;
478 + const later = () => {
479 + timeout = null;
480 + func.apply(context, args);
481 + };
482 + const callNow = !timeout;
483 + clearTimeout(timeout);
484 + timeout = setTimeout(later, wait);
485 + if (callNow) {
486 + func.apply(context, args);
487 + }
488 + };
489 + }
490 + waypoint($element, callback, options) {
491 + const defaultOptions = {
492 + offset: '100%',
493 + triggerOnce: true
494 + };
495 + options = jQuery.extend(defaultOptions, options);
496 + const correctCallback = function () {
497 + const element = this.element || this,
498 + result = callback.apply(element, arguments);
270 499
271 -//#endregion
272 -//#region node_modules/core-js/internals/is-symbol.js
273 - var require_is_symbol = /* @__PURE__ */ __commonJSMin(((exports, module) => {
274 - var getBuiltIn = require_get_built_in();
275 - var isCallable = require_is_callable();
276 - var isPrototypeOf = require_object_is_prototype_of();
277 - var USE_SYMBOL_AS_UID = require_use_symbol_as_uid();
278 - var $Object = Object;
279 - module.exports = USE_SYMBOL_AS_UID ? function(it) {
280 - return typeof it == "symbol";
281 - } : function(it) {
282 - var $Symbol = getBuiltIn("Symbol");
283 - return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
284 - };
285 - }));
500 + // If is Waypoint new API and is frontend
501 + if (options.triggerOnce && this.destroy) {
502 + this.destroy();
503 + }
504 + return result;
505 + };
506 + return $element.elementorWaypoint(correctCallback, options);
507 + }
508 + muteMigrationTraces() {
509 + jQuery.migrateMute = true;
510 + jQuery.migrateTrace = false;
511 + }
286 512
287 -//#endregion
288 -//#region node_modules/core-js/internals/try-to-string.js
289 - var require_try_to_string = /* @__PURE__ */ __commonJSMin(((exports, module) => {
290 - var $String = String;
291 - module.exports = function(argument) {
292 - try {
293 - return $String(argument);
294 - } catch (error) {
295 - return "Object";
296 - }
297 - };
298 - }));
513 + /**
514 + * Initialize the modules' widgets handlers.
515 + */
516 + initModules() {
517 + const handlers = {
518 + shapes: _frontend.default
519 + };
299 520
300 -//#endregion
301 -//#region node_modules/core-js/internals/a-callable.js
302 - var require_a_callable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
303 - var isCallable = require_is_callable();
304 - var tryToString = require_try_to_string();
305 - var $TypeError = TypeError;
306 - module.exports = function(argument) {
307 - if (isCallable(argument)) return argument;
308 - throw new $TypeError(tryToString(argument) + " is not a function");
309 - };
310 - }));
521 + // TODO: BC - Deprecated since 3.5.0
522 + elementorFrontend.trigger('elementor/modules/init:before');
311 523
312 -//#endregion
313 -//#region node_modules/core-js/internals/get-method.js
314 - var require_get_method = /* @__PURE__ */ __commonJSMin(((exports, module) => {
315 - var aCallable = require_a_callable();
316 - var isNullOrUndefined = require_is_null_or_undefined();
317 - module.exports = function(V, P) {
318 - var func = V[P];
319 - return isNullOrUndefined(func) ? void 0 : aCallable(func);
320 - };
321 - }));
524 + // TODO: Use this instead.
525 + elementorFrontend.trigger('elementor/modules/init/before');
526 + Object.entries(handlers).forEach(_ref => {
527 + let [moduleName, ModuleClass] = _ref;
528 + this.modulesHandlers[moduleName] = new ModuleClass();
529 + });
530 + }
531 + populateActiveBreakpointsConfig() {
532 + this.config.responsive.activeBreakpoints = {};
533 + Object.entries(this.config.responsive.breakpoints).forEach(_ref2 => {
534 + let [breakpointKey, breakpointData] = _ref2;
535 + if (breakpointData.is_enabled) {
536 + this.config.responsive.activeBreakpoints[breakpointKey] = breakpointData;
537 + }
538 + });
539 + }
540 + init() {
541 + this.hooks = new EventManager();
542 + this.breakpoints = new _breakpoints.default(this.config.responsive);
543 + this.storage = new _storage.default();
544 + this.elementsHandler = new ElementsHandler(jQuery);
545 + this.modulesHandlers = {};
546 + this.addUserAgentClasses();
547 + this.setDeviceModeData();
548 + this.initDialogsManager();
549 + if (this.isEditMode()) {
550 + this.muteMigrationTraces();
551 + }
322 552
323 -//#endregion
324 -//#region node_modules/core-js/internals/ordinary-to-primitive.js
325 - var require_ordinary_to_primitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
326 - var call = require_function_call();
327 - var isCallable = require_is_callable();
328 - var isObject = require_is_object();
329 - var $TypeError = TypeError;
330 - module.exports = function(input, pref) {
331 - var fn;
332 - var val;
333 - if (pref === "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
334 - if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
335 - if (pref !== "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
336 - throw new $TypeError("Can't convert object to primitive value");
337 - };
338 - }));
553 + // Keep this line before `initOnReadyComponents` call
554 + _events.default.dispatch(this.elements.$window, 'elementor/frontend/init');
555 + this.initModules();
556 + this.initOnReadyElements();
557 + this.initOnReadyComponents();
558 + }
559 + onDocumentLoaded() {
560 + this.documentsManager = new _documentsManager.default();
561 + this.trigger('components:init');
562 + new _lightboxManager.default();
563 + }
564 +}
565 +exports["default"] = Frontend;
566 +window.elementorFrontend = new Frontend();
567 +if (!elementorFrontend.isEditMode()) {
568 + jQuery(() => elementorFrontend.init());
569 +}
339 570
340 -//#endregion
341 -//#region node_modules/core-js/internals/is-pure.js
342 - var require_is_pure = /* @__PURE__ */ __commonJSMin(((exports, module) => {
343 - module.exports = false;
344 - }));
571 +/***/ }),
345 572
346 -//#endregion
347 -//#region node_modules/core-js/internals/define-global-property.js
348 - var require_define_global_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
349 - var globalThis = require_global_this();
350 - var defineProperty = Object.defineProperty;
351 - module.exports = function(key, value) {
352 - try {
353 - defineProperty(globalThis, key, {
354 - value,
355 - configurable: true,
356 - writable: true
357 - });
358 - } catch (error) {
359 - globalThis[key] = value;
360 - }
361 - return value;
362 - };
363 - }));
573 +/***/ "../assets/dev/js/frontend/handlers/background-slideshow.js":
574 +/*!******************************************************************!*\
575 + !*** ../assets/dev/js/frontend/handlers/background-slideshow.js ***!
576 + \******************************************************************/
577 +/***/ ((__unused_webpack_module, exports) => {
364 578
365 -//#endregion
366 -//#region node_modules/core-js/internals/shared-store.js
367 - var require_shared_store = /* @__PURE__ */ __commonJSMin(((exports, module) => {
368 - var IS_PURE = require_is_pure();
369 - var globalThis = require_global_this();
370 - var defineGlobalProperty = require_define_global_property();
371 - var SHARED = "__core-js_shared__";
372 - var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
373 - (store.versions || (store.versions = [])).push({
374 - version: "3.46.0",
375 - mode: IS_PURE ? "pure" : "global",
376 - copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",
377 - license: "https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE",
378 - source: "https://github.com/zloirock/core-js"
379 - });
380 - }));
579 +"use strict";
381 580
382 -//#endregion
383 -//#region node_modules/core-js/internals/shared.js
384 - var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
385 - var store = require_shared_store();
386 - module.exports = function(key, value) {
387 - return store[key] || (store[key] = value || {});
388 - };
389 - }));
390 581
391 -//#endregion
392 -//#region node_modules/core-js/internals/to-object.js
393 - var require_to_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
394 - var requireObjectCoercible = require_require_object_coercible();
395 - var $Object = Object;
396 - module.exports = function(argument) {
397 - return $Object(requireObjectCoercible(argument));
398 - };
399 - }));
582 +Object.defineProperty(exports, "__esModule", ({
583 + value: true
584 +}));
585 +exports["default"] = void 0;
586 +class BackgroundSlideshow extends elementorModules.frontend.handlers.SwiperBase {
587 + getDefaultSettings() {
588 + return {
589 + classes: {
590 + swiperContainer: `elementor-background-slideshow ${elementorFrontend.config.swiperClass}`,
591 + swiperWrapper: 'swiper-wrapper',
592 + swiperSlide: 'elementor-background-slideshow__slide swiper-slide',
593 + swiperPreloader: 'swiper-lazy-preloader',
594 + slideBackground: 'elementor-background-slideshow__slide__image',
595 + kenBurns: 'elementor-ken-burns',
596 + kenBurnsActive: 'elementor-ken-burns--active',
597 + kenBurnsIn: 'elementor-ken-burns--in',
598 + kenBurnsOut: 'elementor-ken-burns--out'
599 + }
600 + };
601 + }
602 + getSwiperOptions() {
603 + const elementSettings = this.getElementSettings(),
604 + swiperOptions = {
605 + grabCursor: false,
606 + slidesPerView: 1,
607 + slidesPerGroup: 1,
608 + loop: 'yes' === elementSettings.background_slideshow_loop,
609 + speed: elementSettings.background_slideshow_transition_duration,
610 + autoplay: {
611 + delay: elementSettings.background_slideshow_slide_duration,
612 + stopOnLastSlide: !elementSettings.background_slideshow_loop
613 + },
614 + handleElementorBreakpoints: true,
615 + on: {
616 + slideChange: () => {
617 + if (elementSettings.background_slideshow_ken_burns) {
618 + this.handleKenBurns();
619 + }
620 + }
621 + }
622 + };
623 + if ('yes' === elementSettings.background_slideshow_loop) {
624 + swiperOptions.loopedSlides = this.getSlidesCount();
625 + }
626 + switch (elementSettings.background_slideshow_slide_transition) {
627 + case 'fade':
628 + swiperOptions.effect = 'fade';
629 + swiperOptions.fadeEffect = {
630 + crossFade: true
631 + };
632 + break;
633 + case 'slide_down':
634 + swiperOptions.autoplay.reverseDirection = true;
635 + swiperOptions.direction = 'vertical';
636 + break;
637 + case 'slide_up':
638 + swiperOptions.direction = 'vertical';
639 + break;
640 + }
641 + if ('yes' === elementSettings.background_slideshow_lazyload) {
642 + swiperOptions.lazy = {
643 + loadPrevNext: true,
644 + loadPrevNextAmount: 1
645 + };
646 + }
647 + return swiperOptions;
648 + }
649 + buildSwiperElements() {
650 + const classes = this.getSettings('classes'),
651 + elementSettings = this.getElementSettings(),
652 + direction = 'slide_left' === elementSettings.background_slideshow_slide_transition ? 'ltr' : 'rtl',
653 + $container = jQuery('<div>', {
654 + class: classes.swiperContainer,
655 + dir: direction
656 + }),
657 + $wrapper = jQuery('<div>', {
658 + class: classes.swiperWrapper
659 + }),
660 + kenBurnsActive = elementSettings.background_slideshow_ken_burns,
661 + lazyload = 'yes' === elementSettings.background_slideshow_lazyload;
662 + let slideInnerClass = classes.slideBackground;
663 + if (kenBurnsActive) {
664 + slideInnerClass += ' ' + classes.kenBurns;
665 + const kenBurnsDirection = 'in' === elementSettings.background_slideshow_ken_burns_zoom_direction ? 'kenBurnsIn' : 'kenBurnsOut';
666 + slideInnerClass += ' ' + classes[kenBurnsDirection];
667 + }
668 + if (lazyload) {
669 + slideInnerClass += ' swiper-lazy';
670 + }
671 + this.elements.$slides = jQuery();
672 + elementSettings.background_slideshow_gallery.forEach(slide => {
673 + const $slide = jQuery('<div>', {
674 + class: classes.swiperSlide
675 + });
676 + let $slidebg;
677 + if (lazyload) {
678 + const $slideloader = jQuery('<div>', {
679 + class: classes.swiperPreloader
680 + });
681 + $slidebg = jQuery('<div>', {
682 + class: slideInnerClass,
683 + 'data-background': slide.url
684 + });
685 + $slidebg.append($slideloader);
686 + } else {
687 + $slidebg = jQuery('<div>', {
688 + class: slideInnerClass,
689 + style: 'background-image: url("' + slide.url + '");'
690 + });
691 + }
692 + $slide.append($slidebg);
693 + $wrapper.append($slide);
694 + this.elements.$slides = this.elements.$slides.add($slide);
695 + });
696 + $container.append($wrapper);
697 + this.$element.prepend($container);
698 + this.elements.$backgroundSlideShowContainer = $container;
699 + }
700 + async initSlider() {
701 + if (1 >= this.getSlidesCount()) {
702 + return;
703 + }
704 + const elementSettings = this.getElementSettings();
705 + const Swiper = elementorFrontend.utils.swiper;
706 + this.swiper = await new Swiper(this.elements.$backgroundSlideShowContainer, this.getSwiperOptions());
400 707
401 -//#endregion
402 -//#region node_modules/core-js/internals/has-own-property.js
403 - var require_has_own_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
404 - var uncurryThis = require_function_uncurry_this();
405 - var toObject = require_to_object();
406 - var hasOwnProperty = uncurryThis({}.hasOwnProperty);
407 - module.exports = Object.hasOwn || function hasOwn(it, key) {
408 - return hasOwnProperty(toObject(it), key);
409 - };
410 - }));
708 + // Expose the swiper instance in the frontend
709 + this.elements.$backgroundSlideShowContainer.data('swiper', this.swiper);
710 + if (elementSettings.background_slideshow_ken_burns) {
711 + this.handleKenBurns();
712 + }
713 + }
714 + activate() {
715 + this.buildSwiperElements();
716 + this.initSlider();
717 + }
718 + deactivate() {
719 + if (this.swiper) {
720 + this.swiper.destroy();
721 + this.elements.$backgroundSlideShowContainer.remove();
722 + }
723 + }
724 + run() {
725 + if ('slideshow' === this.getElementSettings('background_background')) {
726 + this.activate();
727 + } else {
728 + this.deactivate();
729 + }
730 + }
731 + onInit() {
732 + super.onInit();
733 + if (this.getElementSettings('background_slideshow_gallery')) {
734 + this.run();
735 + }
736 + }
737 + onDestroy() {
738 + super.onDestroy();
739 + this.deactivate();
740 + }
741 + onElementChange(propertyName) {
742 + if ('background_background' === propertyName) {
743 + this.run();
744 + }
745 + }
746 +}
747 +exports["default"] = BackgroundSlideshow;
411 748
412 -//#endregion
413 -//#region node_modules/core-js/internals/uid.js
414 - var require_uid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
415 - var uncurryThis = require_function_uncurry_this();
416 - var id = 0;
417 - var postfix = Math.random();
418 - var toString = uncurryThis(1.1.toString);
419 - module.exports = function(key) {
420 - return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString(++id + postfix, 36);
421 - };
422 - }));
749 +/***/ }),
423 750
424 -//#endregion
425 -//#region node_modules/core-js/internals/well-known-symbol.js
426 - var require_well_known_symbol = /* @__PURE__ */ __commonJSMin(((exports, module) => {
427 - var globalThis = require_global_this();
428 - var shared = require_shared();
429 - var hasOwn = require_has_own_property();
430 - var uid = require_uid();
431 - var NATIVE_SYMBOL = require_symbol_constructor_detection();
432 - var USE_SYMBOL_AS_UID = require_use_symbol_as_uid();
433 - var Symbol = globalThis.Symbol;
434 - var WellKnownSymbolsStore = shared("wks");
435 - var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol["for"] || Symbol : Symbol && Symbol.withoutSetter || uid;
436 - module.exports = function(name) {
437 - if (!hasOwn(WellKnownSymbolsStore, name)) WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) ? Symbol[name] : createWellKnownSymbol("Symbol." + name);
438 - return WellKnownSymbolsStore[name];
439 - };
440 - }));
751 +/***/ "../assets/dev/js/frontend/handlers/background-video.js":
752 +/*!**************************************************************!*\
753 + !*** ../assets/dev/js/frontend/handlers/background-video.js ***!
754 + \**************************************************************/
755 +/***/ ((__unused_webpack_module, exports) => {
441 756
442 -//#endregion
443 -//#region node_modules/core-js/internals/to-primitive.js
444 - var require_to_primitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
445 - var call = require_function_call();
446 - var isObject = require_is_object();
447 - var isSymbol = require_is_symbol();
448 - var getMethod = require_get_method();
449 - var ordinaryToPrimitive = require_ordinary_to_primitive();
450 - var wellKnownSymbol = require_well_known_symbol();
451 - var $TypeError = TypeError;
452 - var TO_PRIMITIVE = wellKnownSymbol("toPrimitive");
453 - module.exports = function(input, pref) {
454 - if (!isObject(input) || isSymbol(input)) return input;
455 - var exoticToPrim = getMethod(input, TO_PRIMITIVE);
456 - var result;
457 - if (exoticToPrim) {
458 - if (pref === void 0) pref = "default";
459 - result = call(exoticToPrim, input, pref);
460 - if (!isObject(result) || isSymbol(result)) return result;
461 - throw new $TypeError("Can't convert object to primitive value");
462 - }
463 - if (pref === void 0) pref = "number";
464 - return ordinaryToPrimitive(input, pref);
465 - };
466 - }));
757 +"use strict";
467 758
468 -//#endregion
469 -//#region node_modules/core-js/internals/to-property-key.js
470 - var require_to_property_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
471 - var toPrimitive = require_to_primitive();
472 - var isSymbol = require_is_symbol();
473 - module.exports = function(argument) {
474 - var key = toPrimitive(argument, "string");
475 - return isSymbol(key) ? key : key + "";
476 - };
477 - }));
478 759
479 -//#endregion
480 -//#region node_modules/core-js/internals/document-create-element.js
481 - var require_document_create_element = /* @__PURE__ */ __commonJSMin(((exports, module) => {
482 - var globalThis = require_global_this();
483 - var isObject = require_is_object();
484 - var document = globalThis.document;
485 - var EXISTS = isObject(document) && isObject(document.createElement);
486 - module.exports = function(it) {
487 - return EXISTS ? document.createElement(it) : {};
488 - };
489 - }));
760 +Object.defineProperty(exports, "__esModule", ({
761 + value: true
762 +}));
763 +exports["default"] = void 0;
764 +class BackgroundVideo extends elementorModules.frontend.handlers.Base {
765 + getDefaultSettings() {
766 + return {
767 + selectors: {
768 + backgroundVideoContainer: '.elementor-background-video-container',
769 + backgroundVideoEmbed: '.elementor-background-video-embed',
770 + backgroundVideoHosted: '.elementor-background-video-hosted'
771 + }
772 + };
773 + }
774 + getDefaultElements() {
775 + const selectors = this.getSettings('selectors'),
776 + elements = {
777 + $backgroundVideoContainer: this.$element.find(selectors.backgroundVideoContainer)
778 + };
779 + elements.$backgroundVideoEmbed = elements.$backgroundVideoContainer.children(selectors.backgroundVideoEmbed);
780 + elements.$backgroundVideoHosted = elements.$backgroundVideoContainer.children(selectors.backgroundVideoHosted);
781 + return elements;
782 + }
783 + calcVideosSize($video) {
784 + let aspectRatioSetting = '16:9';
785 + if ('vimeo' === this.videoType) {
786 + aspectRatioSetting = $video[0].width + ':' + $video[0].height;
787 + }
788 + const containerWidth = this.elements.$backgroundVideoContainer.outerWidth(),
789 + containerHeight = this.elements.$backgroundVideoContainer.outerHeight(),
790 + aspectRatioArray = aspectRatioSetting.split(':'),
791 + aspectRatio = aspectRatioArray[0] / aspectRatioArray[1],
792 + ratioWidth = containerWidth / aspectRatio,
793 + ratioHeight = containerHeight * aspectRatio,
794 + isWidthFixed = containerWidth / containerHeight > aspectRatio;
795 + return {
796 + width: isWidthFixed ? containerWidth : ratioHeight,
797 + height: isWidthFixed ? ratioWidth : containerHeight
798 + };
799 + }
800 + changeVideoSize() {
801 + if (!('hosted' === this.videoType) && !this.player) {
802 + return;
803 + }
804 + let $video;
805 + if ('youtube' === this.videoType) {
806 + $video = jQuery(this.player.getIframe());
807 + } else if ('vimeo' === this.videoType) {
808 + $video = jQuery(this.player.element);
809 + } else if ('hosted' === this.videoType) {
810 + $video = this.elements.$backgroundVideoHosted;
811 + }
812 + if (!$video) {
813 + return;
814 + }
815 + const size = this.calcVideosSize($video);
816 + $video.width(size.width).height(size.height);
817 + }
818 + startVideoLoop(firstTime) {
819 + // If the section has been removed
820 + if (!this.player.getIframe().contentWindow) {
821 + return;
822 + }
823 + const elementSettings = this.getElementSettings(),
824 + startPoint = elementSettings.background_video_start || 0,
825 + endPoint = elementSettings.background_video_end;
826 + if (elementSettings.background_play_once && !firstTime) {
827 + this.player.stopVideo();
828 + return;
829 + }
830 + this.player.seekTo(startPoint);
831 + if (endPoint) {
832 + const durationToEnd = endPoint - startPoint + 1;
833 + setTimeout(() => {
834 + this.startVideoLoop(false);
835 + }, durationToEnd * 1000);
836 + }
837 + }
838 + prepareVimeoVideo(Vimeo, videoLink) {
839 + const elementSettings = this.getElementSettings(),
840 + videoSize = this.elements.$backgroundVideoContainer.outerWidth(),
841 + vimeoOptions = {
842 + url: videoLink,
843 + width: videoSize.width,
844 + autoplay: true,
845 + loop: !elementSettings.background_play_once,
846 + transparent: false,
847 + background: true,
848 + muted: true
849 + };
850 + if (elementSettings.background_privacy_mode) {
851 + vimeoOptions.dnt = true;
852 + }
853 + this.player = new Vimeo.Player(this.elements.$backgroundVideoContainer, vimeoOptions);
490 854
491 -//#endregion
492 -//#region node_modules/core-js/internals/ie8-dom-define.js
493 - var require_ie8_dom_define = /* @__PURE__ */ __commonJSMin(((exports, module) => {
494 - var DESCRIPTORS = require_descriptors();
495 - var fails = require_fails();
496 - var createElement = require_document_create_element();
497 - module.exports = !DESCRIPTORS && !fails(function() {
498 - return Object.defineProperty(createElement("div"), "a", { get: function() {
499 - return 7;
500 - } }).a !== 7;
501 - });
502 - }));
855 + // Handle user-defined start/end times
856 + this.handleVimeoStartEndTimes(elementSettings);
857 + this.player.ready().then(() => {
858 + jQuery(this.player.element).addClass('elementor-background-video-embed');
859 + this.changeVideoSize();
860 + });
861 + }
862 + handleVimeoStartEndTimes(elementSettings) {
863 + // If a start time is defined, set the start time
864 + if (elementSettings.background_video_start) {
865 + this.player.on('play', data => {
866 + if (0 === data.seconds) {
867 + this.player.setCurrentTime(elementSettings.background_video_start);
868 + }
869 + });
870 + }
871 + this.player.on('timeupdate', data => {
872 + // If an end time is defined, handle ending the video
873 + if (elementSettings.background_video_end && elementSettings.background_video_end < data.seconds) {
874 + if (elementSettings.background_play_once) {
875 + // Stop at user-defined end time if not loop
876 + this.player.pause();
877 + } else {
878 + // Go to start time if loop
879 + this.player.setCurrentTime(elementSettings.background_video_start);
880 + }
881 + }
503 882
504 -//#endregion
505 -//#region node_modules/core-js/internals/object-get-own-property-descriptor.js
506 - var require_object_get_own_property_descriptor = /* @__PURE__ */ __commonJSMin(((exports) => {
507 - var DESCRIPTORS = require_descriptors();
508 - var call = require_function_call();
509 - var propertyIsEnumerableModule = require_object_property_is_enumerable();
510 - var createPropertyDescriptor = require_create_property_descriptor();
511 - var toIndexedObject = require_to_indexed_object();
512 - var toPropertyKey = require_to_property_key();
513 - var hasOwn = require_has_own_property();
514 - var IE8_DOM_DEFINE = require_ie8_dom_define();
515 - var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
516 - exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
517 - O = toIndexedObject(O);
518 - P = toPropertyKey(P);
519 - if (IE8_DOM_DEFINE) try {
520 - return $getOwnPropertyDescriptor(O, P);
521 - } catch (error) {}
522 - if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
523 - };
524 - }));
883 + // If start time is defined but an end time is not, go to user-defined start time at video end.
884 + // Vimeo JS API has an 'ended' event, but it never fires when infinite loop is defined, so we
885 + // get the video duration (returns a promise) then use duration-0.5s as end time
886 + this.player.getDuration().then(duration => {
887 + if (elementSettings.background_video_start && !elementSettings.background_video_end && data.seconds > duration - 0.5) {
888 + this.player.setCurrentTime(elementSettings.background_video_start);
889 + }
890 + });
891 + });
892 + }
893 + prepareYTVideo(YT, videoID) {
894 + const $backgroundVideoContainer = this.elements.$backgroundVideoContainer,
895 + elementSettings = this.getElementSettings();
896 + let startStateCode = YT.PlayerState.PLAYING;
525 897
526 -//#endregion
527 -//#region node_modules/core-js/internals/v8-prototype-define-bug.js
528 - var require_v8_prototype_define_bug = /* @__PURE__ */ __commonJSMin(((exports, module) => {
529 - var DESCRIPTORS = require_descriptors();
530 - var fails = require_fails();
531 - module.exports = DESCRIPTORS && fails(function() {
532 - return Object.defineProperty(function() {}, "prototype", {
533 - value: 42,
534 - writable: false
535 - }).prototype !== 42;
536 - });
537 - }));
898 + // Since version 67, Chrome doesn't fire the `PLAYING` state at start time
899 + if (window.chrome) {
900 + startStateCode = YT.PlayerState.UNSTARTED;
901 + }
902 + const playerOptions = {
903 + videoId: videoID,
904 + events: {
905 + onReady: () => {
906 + this.player.mute();
907 + this.changeVideoSize();
908 + this.startVideoLoop(true);
909 + this.player.playVideo();
910 + },
911 + onStateChange: event => {
912 + switch (event.data) {
913 + case startStateCode:
914 + $backgroundVideoContainer.removeClass('elementor-invisible elementor-loading');
915 + break;
916 + case YT.PlayerState.ENDED:
917 + if ('function' === typeof this.player.seekTo) {
918 + this.player.seekTo(elementSettings.background_video_start || 0);
919 + }
920 + if (elementSettings.background_play_once) {
921 + this.player.destroy();
922 + }
923 + }
924 + }
925 + },
926 + playerVars: {
927 + controls: 0,
928 + rel: 0,
929 + playsinline: 1
930 + }
931 + };
538 932
539 -//#endregion
540 -//#region node_modules/core-js/internals/an-object.js
541 - var require_an_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
542 - var isObject = require_is_object();
543 - var $String = String;
544 - var $TypeError = TypeError;
545 - module.exports = function(argument) {
546 - if (isObject(argument)) return argument;
547 - throw new $TypeError($String(argument) + " is not an object");
548 - };
549 - }));
933 + // To handle CORS issues, when the default host is changed, the origin parameter has to be set.
934 + if (elementSettings.background_privacy_mode) {
935 + playerOptions.host = 'https://www.youtube-nocookie.com';
936 + playerOptions.origin = window.location.hostname;
937 + }
938 + $backgroundVideoContainer.addClass('elementor-loading elementor-invisible');
939 + this.player = new YT.Player(this.elements.$backgroundVideoEmbed[0], playerOptions);
940 + }
941 + activate() {
942 + let videoLink = this.getElementSettings('background_video_link'),
943 + videoID;
944 + const playOnce = this.getElementSettings('background_play_once');
945 + if (-1 !== videoLink.indexOf('vimeo.com')) {
946 + this.videoType = 'vimeo';
947 + this.apiProvider = elementorFrontend.utils.vimeo;
948 + } else if (videoLink.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/)) {
949 + this.videoType = 'youtube';
950 + this.apiProvider = elementorFrontend.utils.youtube;
951 + }
952 + if (this.apiProvider) {
953 + videoID = this.apiProvider.getVideoIDFromURL(videoLink);
954 + this.apiProvider.onApiReady(apiObject => {
955 + if ('youtube' === this.videoType) {
956 + this.prepareYTVideo(apiObject, videoID);
957 + }
958 + if ('vimeo' === this.videoType) {
959 + this.prepareVimeoVideo(apiObject, videoLink);
960 + }
961 + });
962 + } else {
963 + this.videoType = 'hosted';
964 + const startTime = this.getElementSettings('background_video_start'),
965 + endTime = this.getElementSettings('background_video_end');
966 + if (startTime || endTime) {
967 + videoLink += '#t=' + (startTime || 0) + (endTime ? ',' + endTime : '');
968 + }
969 + this.elements.$backgroundVideoHosted.attr('src', videoLink).one('canplay', this.changeVideoSize.bind(this));
970 + if (playOnce) {
971 + this.elements.$backgroundVideoHosted.on('ended', () => {
972 + this.elements.$backgroundVideoHosted.hide();
973 + });
974 + }
975 + }
976 + elementorFrontend.elements.$window.on('resize', this.changeVideoSize);
977 + }
978 + deactivate() {
979 + if ('youtube' === this.videoType && this.player.getIframe() || 'vimeo' === this.videoType) {
980 + this.player.destroy();
981 + } else {
982 + this.elements.$backgroundVideoHosted.removeAttr('src').off('ended');
983 + }
984 + elementorFrontend.elements.$window.off('resize', this.changeVideoSize);
985 + }
986 + run() {
987 + const elementSettings = this.getElementSettings();
988 + if (!elementSettings.background_play_on_mobile && 'mobile' === elementorFrontend.getCurrentDeviceMode()) {
989 + return;
990 + }
991 + if ('video' === elementSettings.background_background && elementSettings.background_video_link) {
992 + this.activate();
993 + } else {
994 + this.deactivate();
995 + }
996 + }
997 + onInit() {
998 + super.onInit(...arguments);
999 + this.changeVideoSize = this.changeVideoSize.bind(this);
1000 + this.run();
1001 + }
1002 + onElementChange(propertyName) {
1003 + if ('background_background' === propertyName) {
1004 + this.run();
1005 + }
1006 + }
1007 +}
1008 +exports["default"] = BackgroundVideo;
550 1009
551 -//#endregion
552 -//#region node_modules/core-js/internals/object-define-property.js
553 - var require_object_define_property = /* @__PURE__ */ __commonJSMin(((exports) => {
554 - var DESCRIPTORS = require_descriptors();
555 - var IE8_DOM_DEFINE = require_ie8_dom_define();
556 - var V8_PROTOTYPE_DEFINE_BUG = require_v8_prototype_define_bug();
557 - var anObject = require_an_object();
558 - var toPropertyKey = require_to_property_key();
559 - var $TypeError = TypeError;
560 - var $defineProperty = Object.defineProperty;
561 - var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
562 - var ENUMERABLE = "enumerable";
563 - var CONFIGURABLE = "configurable";
564 - var WRITABLE = "writable";
565 - exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
566 - anObject(O);
567 - P = toPropertyKey(P);
568 - anObject(Attributes);
569 - if (typeof O === "function" && P === "prototype" && "value" in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
570 - var current = $getOwnPropertyDescriptor(O, P);
571 - if (current && current[WRITABLE]) {
572 - O[P] = Attributes.value;
573 - Attributes = {
574 - configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
575 - enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
576 - writable: false
577 - };
578 - }
579 - }
580 - return $defineProperty(O, P, Attributes);
581 - } : $defineProperty : function defineProperty(O, P, Attributes) {
582 - anObject(O);
583 - P = toPropertyKey(P);
584 - anObject(Attributes);
585 - if (IE8_DOM_DEFINE) try {
586 - return $defineProperty(O, P, Attributes);
587 - } catch (error) {}
588 - if ("get" in Attributes || "set" in Attributes) throw new $TypeError("Accessors not supported");
589 - if ("value" in Attributes) O[P] = Attributes.value;
590 - return O;
591 - };
592 - }));
1010 +/***/ }),
593 1011
594 -//#endregion
595 -//#region node_modules/core-js/internals/create-non-enumerable-property.js
596 - var require_create_non_enumerable_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
597 - var DESCRIPTORS = require_descriptors();
598 - var definePropertyModule = require_object_define_property();
599 - var createPropertyDescriptor = require_create_property_descriptor();
600 - module.exports = DESCRIPTORS ? function(object, key, value) {
601 - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
602 - } : function(object, key, value) {
603 - object[key] = value;
604 - return object;
605 - };
606 - }));
1012 +/***/ "../assets/dev/js/frontend/handlers/background.js":
1013 +/*!********************************************************!*\
1014 + !*** ../assets/dev/js/frontend/handlers/background.js ***!
1015 + \********************************************************/
1016 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
607 1017
608 -//#endregion
609 -//#region node_modules/core-js/internals/function-name.js
610 - var require_function_name = /* @__PURE__ */ __commonJSMin(((exports, module) => {
611 - var DESCRIPTORS = require_descriptors();
612 - var hasOwn = require_has_own_property();
613 - var FunctionPrototype = Function.prototype;
614 - var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
615 - var EXISTS = hasOwn(FunctionPrototype, "name");
616 - var PROPER = EXISTS && (function something() {}).name === "something";
617 - var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, "name").configurable);
618 - module.exports = {
619 - EXISTS,
620 - PROPER,
621 - CONFIGURABLE
622 - };
623 - }));
1018 +"use strict";
624 1019
625 -//#endregion
626 -//#region node_modules/core-js/internals/inspect-source.js
627 - var require_inspect_source = /* @__PURE__ */ __commonJSMin(((exports, module) => {
628 - var uncurryThis = require_function_uncurry_this();
629 - var isCallable = require_is_callable();
630 - var store = require_shared_store();
631 - var functionToString = uncurryThis(Function.toString);
632 - if (!isCallable(store.inspectSource)) store.inspectSource = function(it) {
633 - return functionToString(it);
634 - };
635 - module.exports = store.inspectSource;
636 - }));
637 1020
638 -//#endregion
639 -//#region node_modules/core-js/internals/weak-map-basic-detection.js
640 - var require_weak_map_basic_detection = /* @__PURE__ */ __commonJSMin(((exports, module) => {
641 - var globalThis = require_global_this();
642 - var isCallable = require_is_callable();
643 - var WeakMap = globalThis.WeakMap;
644 - module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
645 - }));
1021 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1022 +Object.defineProperty(exports, "__esModule", ({
1023 + value: true
1024 +}));
1025 +exports["default"] = void 0;
1026 +var _backgroundSlideshow = _interopRequireDefault(__webpack_require__(/*! ./background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js"));
1027 +var _backgroundVideo = _interopRequireDefault(__webpack_require__(/*! ./background-video */ "../assets/dev/js/frontend/handlers/background-video.js"));
1028 +var _default = [_backgroundSlideshow.default, _backgroundVideo.default];
1029 +exports["default"] = _default;
646 1030
647 -//#endregion
648 -//#region node_modules/core-js/internals/shared-key.js
649 - var require_shared_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
650 - var shared = require_shared();
651 - var uid = require_uid();
652 - var keys = shared("keys");
653 - module.exports = function(key) {
654 - return keys[key] || (keys[key] = uid(key));
655 - };
656 - }));
1031 +/***/ }),
657 1032
658 -//#endregion
659 -//#region node_modules/core-js/internals/hidden-keys.js
660 - var require_hidden_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
661 - module.exports = {};
662 - }));
1033 +/***/ "../assets/dev/js/frontend/handlers/column.js":
1034 +/*!****************************************************!*\
1035 + !*** ../assets/dev/js/frontend/handlers/column.js ***!
1036 + \****************************************************/
1037 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
663 1038
664 -//#endregion
665 -//#region node_modules/core-js/internals/internal-state.js
666 - var require_internal_state = /* @__PURE__ */ __commonJSMin(((exports, module) => {
667 - var NATIVE_WEAK_MAP = require_weak_map_basic_detection();
668 - var globalThis = require_global_this();
669 - var isObject = require_is_object();
670 - var createNonEnumerableProperty = require_create_non_enumerable_property();
671 - var hasOwn = require_has_own_property();
672 - var shared = require_shared_store();
673 - var sharedKey = require_shared_key();
674 - var hiddenKeys = require_hidden_keys();
675 - var OBJECT_ALREADY_INITIALIZED = "Object already initialized";
676 - var TypeError = globalThis.TypeError;
677 - var WeakMap = globalThis.WeakMap;
678 - var set;
679 - var get;
680 - var has;
681 - var enforce = function(it) {
682 - return has(it) ? get(it) : set(it, {});
683 - };
684 - var getterFor = function(TYPE) {
685 - return function(it) {
686 - var state;
687 - if (!isObject(it) || (state = get(it)).type !== TYPE) throw new TypeError("Incompatible receiver, " + TYPE + " required");
688 - return state;
689 - };
690 - };
691 - if (NATIVE_WEAK_MAP || shared.state) {
692 - var store = shared.state || (shared.state = new WeakMap());
693 - store.get = store.get;
694 - store.has = store.has;
695 - store.set = store.set;
696 - set = function(it, metadata) {
697 - if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
698 - metadata.facade = it;
699 - store.set(it, metadata);
700 - return metadata;
701 - };
702 - get = function(it) {
703 - return store.get(it) || {};
704 - };
705 - has = function(it) {
706 - return store.has(it);
707 - };
708 - } else {
709 - var STATE = sharedKey("state");
710 - hiddenKeys[STATE] = true;
711 - set = function(it, metadata) {
712 - if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
713 - metadata.facade = it;
714 - createNonEnumerableProperty(it, STATE, metadata);
715 - return metadata;
716 - };
717 - get = function(it) {
718 - return hasOwn(it, STATE) ? it[STATE] : {};
719 - };
720 - has = function(it) {
721 - return hasOwn(it, STATE);
722 - };
723 - }
724 - module.exports = {
725 - set,
726 - get,
727 - has,
728 - enforce,
729 - getterFor
730 - };
731 - }));
1039 +"use strict";
732 1040
733 -//#endregion
734 -//#region node_modules/core-js/internals/make-built-in.js
735 - var require_make_built_in = /* @__PURE__ */ __commonJSMin(((exports, module) => {
736 - var uncurryThis = require_function_uncurry_this();
737 - var fails = require_fails();
738 - var isCallable = require_is_callable();
739 - var hasOwn = require_has_own_property();
740 - var DESCRIPTORS = require_descriptors();
741 - var CONFIGURABLE_FUNCTION_NAME = require_function_name().CONFIGURABLE;
742 - var inspectSource = require_inspect_source();
743 - var InternalStateModule = require_internal_state();
744 - var enforceInternalState = InternalStateModule.enforce;
745 - var getInternalState = InternalStateModule.get;
746 - var $String = String;
747 - var defineProperty = Object.defineProperty;
748 - var stringSlice = uncurryThis("".slice);
749 - var replace = uncurryThis("".replace);
750 - var join = uncurryThis([].join);
751 - var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function() {
752 - return defineProperty(function() {}, "length", { value: 8 }).length !== 8;
753 - });
754 - var TEMPLATE = String(String).split("String");
755 - var makeBuiltIn = module.exports = function(value, name, options) {
756 - if (stringSlice($String(name), 0, 7) === "Symbol(") name = "[" + replace($String(name), /^Symbol\(([^)]*)\).*$/, "$1") + "]";
757 - if (options && options.getter) name = "get " + name;
758 - if (options && options.setter) name = "set " + name;
759 - if (!hasOwn(value, "name") || CONFIGURABLE_FUNCTION_NAME && value.name !== name) if (DESCRIPTORS) defineProperty(value, "name", {
760 - value: name,
761 - configurable: true
762 - });
763 - else value.name = name;
764 - if (CONFIGURABLE_LENGTH && options && hasOwn(options, "arity") && value.length !== options.arity) defineProperty(value, "length", { value: options.arity });
765 - try {
766 - if (options && hasOwn(options, "constructor") && options.constructor) {
767 - if (DESCRIPTORS) defineProperty(value, "prototype", { writable: false });
768 - } else if (value.prototype) value.prototype = void 0;
769 - } catch (error) {}
770 - var state = enforceInternalState(value);
771 - if (!hasOwn(state, "source")) state.source = join(TEMPLATE, typeof name == "string" ? name : "");
772 - return value;
773 - };
774 - Function.prototype.toString = makeBuiltIn(function toString() {
775 - return isCallable(this) && getInternalState(this).source || inspectSource(this);
776 - }, "toString");
777 - }));
778 1041
779 -//#endregion
780 -//#region node_modules/core-js/internals/define-built-in.js
781 - var require_define_built_in = /* @__PURE__ */ __commonJSMin(((exports, module) => {
782 - var isCallable = require_is_callable();
783 - var definePropertyModule = require_object_define_property();
784 - var makeBuiltIn = require_make_built_in();
785 - var defineGlobalProperty = require_define_global_property();
786 - module.exports = function(O, key, value, options) {
787 - if (!options) options = {};
788 - var simple = options.enumerable;
789 - var name = options.name !== void 0 ? options.name : key;
790 - if (isCallable(value)) makeBuiltIn(value, name, options);
791 - if (options.global) if (simple) O[key] = value;
792 - else defineGlobalProperty(key, value);
793 - else {
794 - try {
795 - if (!options.unsafe) delete O[key];
796 - else if (O[key]) simple = true;
797 - } catch (error) {}
798 - if (simple) O[key] = value;
799 - else definePropertyModule.f(O, key, {
800 - value,
801 - enumerable: false,
802 - configurable: !options.nonConfigurable,
803 - writable: !options.nonWritable
804 - });
805 - }
806 - return O;
807 - };
808 - }));
1042 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1043 +Object.defineProperty(exports, "__esModule", ({
1044 + value: true
1045 +}));
1046 +exports["default"] = void 0;
1047 +var _backgroundSlideshow = _interopRequireDefault(__webpack_require__(/*! ./background-slideshow */ "../assets/dev/js/frontend/handlers/background-slideshow.js"));
1048 +var _default = [_backgroundSlideshow.default];
1049 +exports["default"] = _default;
809 1050
810 -//#endregion
811 -//#region node_modules/core-js/internals/math-trunc.js
812 - var require_math_trunc = /* @__PURE__ */ __commonJSMin(((exports, module) => {
813 - var ceil = Math.ceil;
814 - var floor = Math.floor;
815 - module.exports = Math.trunc || function trunc(x) {
816 - var n = +x;
817 - return (n > 0 ? floor : ceil)(n);
818 - };
819 - }));
1051 +/***/ }),
820 1052
821 -//#endregion
822 -//#region node_modules/core-js/internals/to-integer-or-infinity.js
823 - var require_to_integer_or_infinity = /* @__PURE__ */ __commonJSMin(((exports, module) => {
824 - var trunc = require_math_trunc();
825 - module.exports = function(argument) {
826 - var number = +argument;
827 - return number !== number || number === 0 ? 0 : trunc(number);
828 - };
829 - }));
1053 +/***/ "../assets/dev/js/frontend/handlers/container/container.js":
1054 +/*!*****************************************************************!*\
1055 + !*** ../assets/dev/js/frontend/handlers/container/container.js ***!
1056 + \*****************************************************************/
1057 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
830 1058
831 -//#endregion
832 -//#region node_modules/core-js/internals/to-absolute-index.js
833 - var require_to_absolute_index = /* @__PURE__ */ __commonJSMin(((exports, module) => {
834 - var toIntegerOrInfinity = require_to_integer_or_infinity();
835 - var max = Math.max;
836 - var min = Math.min;
837 - module.exports = function(index, length) {
838 - var integer = toIntegerOrInfinity(index);
839 - return integer < 0 ? max(integer + length, 0) : min(integer, length);
840 - };
841 - }));
1059 +"use strict";
842 1060
843 -//#endregion
844 -//#region node_modules/core-js/internals/to-length.js
845 - var require_to_length = /* @__PURE__ */ __commonJSMin(((exports, module) => {
846 - var toIntegerOrInfinity = require_to_integer_or_infinity();
847 - var min = Math.min;
848 - module.exports = function(argument) {
849 - var len = toIntegerOrInfinity(argument);
850 - return len > 0 ? min(len, 9007199254740991) : 0;
851 - };
852 - }));
853 1061
854 -//#endregion
855 -//#region node_modules/core-js/internals/length-of-array-like.js
856 - var require_length_of_array_like = /* @__PURE__ */ __commonJSMin(((exports, module) => {
857 - var toLength = require_to_length();
858 - module.exports = function(obj) {
859 - return toLength(obj.length);
860 - };
861 - }));
1062 +Object.defineProperty(exports, "__esModule", ({
1063 + value: true
1064 +}));
1065 +exports["default"] = void 0;
1066 +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"))];
1067 +exports["default"] = _default;
862 1068
863 -//#endregion
864 -//#region node_modules/core-js/internals/array-includes.js
865 - var require_array_includes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
866 - var toIndexedObject = require_to_indexed_object();
867 - var toAbsoluteIndex = require_to_absolute_index();
868 - var lengthOfArrayLike = require_length_of_array_like();
869 - var createMethod = function(IS_INCLUDES) {
870 - return function($this, el, fromIndex) {
871 - var O = toIndexedObject($this);
872 - var length = lengthOfArrayLike(O);
873 - if (length === 0) return !IS_INCLUDES && -1;
874 - var index = toAbsoluteIndex(fromIndex, length);
875 - var value;
876 - if (IS_INCLUDES && el !== el) while (length > index) {
877 - value = O[index++];
878 - if (value !== value) return true;
879 - }
880 - else for (; length > index; index++) if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
881 - return !IS_INCLUDES && -1;
882 - };
883 - };
884 - module.exports = {
885 - includes: createMethod(true),
886 - indexOf: createMethod(false)
887 - };
888 - }));
1069 +/***/ }),
889 1070
890 -//#endregion
891 -//#region node_modules/core-js/internals/object-keys-internal.js
892 - var require_object_keys_internal = /* @__PURE__ */ __commonJSMin(((exports, module) => {
893 - var uncurryThis = require_function_uncurry_this();
894 - var hasOwn = require_has_own_property();
895 - var toIndexedObject = require_to_indexed_object();
896 - var indexOf = require_array_includes().indexOf;
897 - var hiddenKeys = require_hidden_keys();
898 - var push = uncurryThis([].push);
899 - module.exports = function(object, names) {
900 - var O = toIndexedObject(object);
901 - var i = 0;
902 - var result = [];
903 - var key;
904 - for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
905 - while (names.length > i) if (hasOwn(O, key = names[i++])) ~indexOf(result, key) || push(result, key);
906 - return result;
907 - };
908 - }));
1071 +/***/ "../assets/dev/js/frontend/handlers/global.js":
1072 +/*!****************************************************!*\
1073 + !*** ../assets/dev/js/frontend/handlers/global.js ***!
1074 + \****************************************************/
1075 +/***/ ((__unused_webpack_module, exports) => {
909 1076
910 -//#endregion
911 -//#region node_modules/core-js/internals/enum-bug-keys.js
912 - var require_enum_bug_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
913 - module.exports = [
914 - "constructor",
915 - "hasOwnProperty",
916 - "isPrototypeOf",
917 - "propertyIsEnumerable",
918 - "toLocaleString",
919 - "toString",
920 - "valueOf"
921 - ];
922 - }));
1077 +"use strict";
923 1078
924 -//#endregion
925 -//#region node_modules/core-js/internals/object-get-own-property-names.js
926 - var require_object_get_own_property_names = /* @__PURE__ */ __commonJSMin(((exports) => {
927 - var internalObjectKeys = require_object_keys_internal();
928 - var hiddenKeys = require_enum_bug_keys().concat("length", "prototype");
929 - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
930 - return internalObjectKeys(O, hiddenKeys);
931 - };
932 - }));
933 1079
934 -//#endregion
935 -//#region node_modules/core-js/internals/object-get-own-property-symbols.js
936 - var require_object_get_own_property_symbols = /* @__PURE__ */ __commonJSMin(((exports) => {
937 - exports.f = Object.getOwnPropertySymbols;
938 - }));
1080 +Object.defineProperty(exports, "__esModule", ({
1081 + value: true
1082 +}));
1083 +exports["default"] = void 0;
1084 +class GlobalHandler extends elementorModules.frontend.handlers.Base {
1085 + getWidgetType() {
1086 + return 'global';
1087 + }
1088 + animate() {
1089 + const $element = this.$element,
1090 + animation = this.getAnimation();
1091 + if ('none' === animation) {
1092 + $element.removeClass('elementor-invisible');
1093 + return;
1094 + }
1095 + const elementSettings = this.getElementSettings(),
1096 + animationDelay = elementSettings._animation_delay || elementSettings.animation_delay || 0;
1097 + $element.removeClass(animation);
1098 + if (this.currentAnimation) {
1099 + $element.removeClass(this.currentAnimation);
1100 + }
1101 + this.currentAnimation = animation;
1102 + setTimeout(() => {
1103 + $element.removeClass('elementor-invisible').addClass('animated ' + animation);
1104 + }, animationDelay);
1105 + }
1106 + getAnimation() {
1107 + return this.getCurrentDeviceSetting('animation') || this.getCurrentDeviceSetting('_animation');
1108 + }
1109 + onInit() {
1110 + super.onInit(...arguments);
1111 + if (this.getAnimation()) {
1112 + const observer = elementorModules.utils.Scroll.scrollObserver({
1113 + callback: event => {
1114 + if (event.isInViewport) {
1115 + this.animate();
1116 + observer.unobserve(this.$element[0]);
1117 + }
1118 + }
1119 + });
1120 + observer.observe(this.$element[0]);
1121 + }
1122 + }
1123 + onElementChange(propertyName) {
1124 + if (/^_?animation/.test(propertyName)) {
1125 + this.animate();
1126 + }
1127 + }
1128 +}
1129 +var _default = $scope => {
1130 + elementorFrontend.elementsHandler.addHandler(GlobalHandler, {
1131 + $element: $scope
1132 + });
1133 +};
1134 +exports["default"] = _default;
939 1135
940 -//#endregion
941 -//#region node_modules/core-js/internals/own-keys.js
942 - var require_own_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
943 - var getBuiltIn = require_get_built_in();
944 - var uncurryThis = require_function_uncurry_this();
945 - var getOwnPropertyNamesModule = require_object_get_own_property_names();
946 - var getOwnPropertySymbolsModule = require_object_get_own_property_symbols();
947 - var anObject = require_an_object();
948 - var concat = uncurryThis([].concat);
949 - module.exports = getBuiltIn("Reflect", "ownKeys") || function ownKeys(it) {
950 - var keys = getOwnPropertyNamesModule.f(anObject(it));
951 - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
952 - return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
953 - };
954 - }));
1136 +/***/ }),
955 1137
956 -//#endregion
957 -//#region node_modules/core-js/internals/copy-constructor-properties.js
958 - var require_copy_constructor_properties = /* @__PURE__ */ __commonJSMin(((exports, module) => {
959 - var hasOwn = require_has_own_property();
960 - var ownKeys = require_own_keys();
961 - var getOwnPropertyDescriptorModule = require_object_get_own_property_descriptor();
962 - var definePropertyModule = require_object_define_property();
963 - module.exports = function(target, source, exceptions) {
964 - var keys = ownKeys(source);
965 - var defineProperty = definePropertyModule.f;
966 - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
967 - for (var i = 0; i < keys.length; i++) {
968 - var key = keys[i];
969 - if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
970 - }
971 - };
972 - }));
1138 +/***/ "../assets/dev/js/frontend/handlers/section/handles-position.js":
1139 +/*!**********************************************************************!*\
1140 + !*** ../assets/dev/js/frontend/handlers/section/handles-position.js ***!
1141 + \**********************************************************************/
1142 +/***/ ((__unused_webpack_module, exports) => {
973 1143
974 -//#endregion
975 -//#region node_modules/core-js/internals/is-forced.js
976 - var require_is_forced = /* @__PURE__ */ __commonJSMin(((exports, module) => {
977 - var fails = require_fails();
978 - var isCallable = require_is_callable();
979 - var replacement = /#|\.prototype\./;
980 - var isForced = function(feature, detection) {
981 - var value = data[normalize(feature)];
982 - return value === POLYFILL ? true : value === NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;
983 - };
984 - var normalize = isForced.normalize = function(string) {
985 - return String(string).replace(replacement, ".").toLowerCase();
986 - };
987 - var data = isForced.data = {};
988 - var NATIVE = isForced.NATIVE = "N";
989 - var POLYFILL = isForced.POLYFILL = "P";
990 - module.exports = isForced;
991 - }));
1144 +"use strict";
992 1145
993 -//#endregion
994 -//#region node_modules/core-js/internals/export.js
995 - var require_export = /* @__PURE__ */ __commonJSMin(((exports, module) => {
996 - var globalThis = require_global_this();
997 - var getOwnPropertyDescriptor = require_object_get_own_property_descriptor().f;
998 - var createNonEnumerableProperty = require_create_non_enumerable_property();
999 - var defineBuiltIn = require_define_built_in();
1000 - var defineGlobalProperty = require_define_global_property();
1001 - var copyConstructorProperties = require_copy_constructor_properties();
1002 - var isForced = require_is_forced();
1003 - module.exports = function(options, source) {
1004 - var TARGET = options.target;
1005 - var GLOBAL = options.global;
1006 - var STATIC = options.stat;
1007 - var FORCED;
1008 - var target;
1009 - var key;
1010 - var targetProperty;
1011 - var sourceProperty;
1012 - var descriptor;
1013 - if (GLOBAL) target = globalThis;
1014 - else if (STATIC) target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});
1015 - else target = globalThis[TARGET] && globalThis[TARGET].prototype;
1016 - if (target) for (key in source) {
1017 - sourceProperty = source[key];
1018 - if (options.dontCallGetSet) {
1019 - descriptor = getOwnPropertyDescriptor(target, key);
1020 - targetProperty = descriptor && descriptor.value;
1021 - } else targetProperty = target[key];
1022 - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced);
1023 - if (!FORCED && targetProperty !== void 0) {
1024 - if (typeof sourceProperty == typeof targetProperty) continue;
1025 - copyConstructorProperties(sourceProperty, targetProperty);
1026 - }
1027 - if (options.sham || targetProperty && targetProperty.sham) createNonEnumerableProperty(sourceProperty, "sham", true);
1028 - defineBuiltIn(target, key, sourceProperty, options);
1029 - }
1030 - };
1031 - }));
1032 1146
1033 -//#endregion
1034 -//#region node_modules/core-js/internals/an-instance.js
1035 - var require_an_instance = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1036 - var isPrototypeOf = require_object_is_prototype_of();
1037 - var $TypeError = TypeError;
1038 - module.exports = function(it, Prototype) {
1039 - if (isPrototypeOf(Prototype, it)) return it;
1040 - throw new $TypeError("Incorrect invocation");
1041 - };
1042 - }));
1147 +Object.defineProperty(exports, "__esModule", ({
1148 + value: true
1149 +}));
1150 +exports["default"] = void 0;
1151 +class HandlesPosition extends elementorModules.frontend.handlers.Base {
1152 + isActive() {
1153 + return elementorFrontend.isEditMode();
1154 + }
1155 + isFirstSection() {
1156 + return this.$element[0] === document.querySelector('.elementor-edit-mode .elementor-top-section');
1157 + }
1158 + isOverflowHidden() {
1159 + return 'hidden' === this.$element.css('overflow');
1160 + }
1161 + getOffset() {
1162 + if ('body' === elementor.config.document.container) {
1163 + return this.$element.offset().top;
1164 + }
1165 + const $container = jQuery(elementor.config.document.container);
1166 + return this.$element.offset().top - $container.offset().top;
1167 + }
1168 + setHandlesPosition() {
1169 + const document = elementor.documents.getCurrent();
1170 + if (!document || !document.container.isEditable()) {
1171 + return;
1172 + }
1173 + const insideHandleClass = 'elementor-section--handles-inside';
1174 + if (elementor.settings.page.model.attributes.scroll_snap) {
1175 + this.$element.addClass(insideHandleClass);
1176 + return;
1177 + }
1178 + const isOverflowHidden = this.isOverflowHidden();
1179 + if (!isOverflowHidden && !this.isFirstSection()) {
1180 + return;
1181 + }
1182 + const offset = isOverflowHidden ? 0 : this.getOffset();
1183 + if (offset < 25) {
1184 + this.$element.addClass(insideHandleClass);
1185 + const $handlesElement = this.$element.find('> .elementor-element-overlay > .elementor-editor-section-settings');
1186 + if (offset < -5) {
1187 + $handlesElement.css('top', -offset);
1188 + } else {
1189 + $handlesElement.css('top', '');
1190 + }
1191 + } else {
1192 + this.$element.removeClass(insideHandleClass);
1193 + }
1194 + }
1195 + onInit() {
1196 + if (!this.isActive()) {
1197 + return;
1198 + }
1199 + this.setHandlesPosition();
1200 + this.$element.on('mouseenter', this.setHandlesPosition.bind(this));
1201 + }
1202 +}
1203 +exports["default"] = HandlesPosition;
1043 1204
1044 -//#endregion
1045 -//#region node_modules/core-js/internals/correct-prototype-getter.js
1046 - var require_correct_prototype_getter = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1047 - var fails = require_fails();
1048 - module.exports = !fails(function() {
1049 - function F() {}
1050 - F.prototype.constructor = null;
1051 - return Object.getPrototypeOf(new F()) !== F.prototype;
1052 - });
1053 - }));
1205 +/***/ }),
1054 1206
1055 -//#endregion
1056 -//#region node_modules/core-js/internals/object-get-prototype-of.js
1057 - var require_object_get_prototype_of = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1058 - var hasOwn = require_has_own_property();
1059 - var isCallable = require_is_callable();
1060 - var toObject = require_to_object();
1061 - var sharedKey = require_shared_key();
1062 - var CORRECT_PROTOTYPE_GETTER = require_correct_prototype_getter();
1063 - var IE_PROTO = sharedKey("IE_PROTO");
1064 - var $Object = Object;
1065 - var ObjectPrototype = $Object.prototype;
1066 - module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function(O) {
1067 - var object = toObject(O);
1068 - if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
1069 - var constructor = object.constructor;
1070 - if (isCallable(constructor) && object instanceof constructor) return constructor.prototype;
1071 - return object instanceof $Object ? ObjectPrototype : null;
1072 - };
1073 - }));
1207 +/***/ "../assets/dev/js/frontend/handlers/section/shapes.js":
1208 +/*!************************************************************!*\
1209 + !*** ../assets/dev/js/frontend/handlers/section/shapes.js ***!
1210 + \************************************************************/
1211 +/***/ ((__unused_webpack_module, exports) => {
1074 1212
1075 -//#endregion
1076 -//#region node_modules/core-js/internals/define-built-in-accessor.js
1077 - var require_define_built_in_accessor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1078 - var makeBuiltIn = require_make_built_in();
1079 - var defineProperty = require_object_define_property();
1080 - module.exports = function(target, name, descriptor) {
1081 - if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });
1082 - if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });
1083 - return defineProperty.f(target, name, descriptor);
1084 - };
1085 - }));
1213 +"use strict";
1086 1214
1087 -//#endregion
1088 -//#region node_modules/core-js/internals/create-property.js
1089 - var require_create_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1090 - var DESCRIPTORS = require_descriptors();
1091 - var definePropertyModule = require_object_define_property();
1092 - var createPropertyDescriptor = require_create_property_descriptor();
1093 - module.exports = function(object, key, value) {
1094 - if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));
1095 - else object[key] = value;
1096 - };
1097 - }));
1098 1215
1099 -//#endregion
1100 -//#region node_modules/core-js/internals/object-keys.js
1101 - var require_object_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1102 - var internalObjectKeys = require_object_keys_internal();
1103 - var enumBugKeys = require_enum_bug_keys();
1104 - module.exports = Object.keys || function keys(O) {
1105 - return internalObjectKeys(O, enumBugKeys);
1106 - };
1107 - }));
1216 +Object.defineProperty(exports, "__esModule", ({
1217 + value: true
1218 +}));
1219 +exports["default"] = void 0;
1220 +class Shapes extends elementorModules.frontend.handlers.Base {
1221 + getDefaultSettings() {
1222 + return {
1223 + selectors: {
1224 + container: '> .elementor-shape-%s'
1225 + },
1226 + svgURL: elementorFrontend.config.urls.assets + 'shapes/'
1227 + };
1228 + }
1229 + getDefaultElements() {
1230 + const elements = {},
1231 + selectors = this.getSettings('selectors');
1232 + elements.$topContainer = this.$element.find(selectors.container.replace('%s', 'top'));
1233 + elements.$bottomContainer = this.$element.find(selectors.container.replace('%s', 'bottom'));
1234 + return elements;
1235 + }
1236 + isActive() {
1237 + return elementorFrontend.isEditMode();
1238 + }
1239 + getSvgURL(shapeType, fileName) {
1240 + let svgURL = this.getSettings('svgURL') + fileName + '.svg';
1241 + if (elementor.config.additional_shapes && shapeType in elementor.config.additional_shapes) {
1242 + svgURL = elementor.config.additional_shapes[shapeType];
1243 + if (-1 < fileName.indexOf('-negative')) {
1244 + svgURL = svgURL.replace('.svg', '-negative.svg');
1245 + }
1246 + }
1247 + return svgURL;
1248 + }
1249 + buildSVG(side) {
1250 + const baseSettingKey = 'shape_divider_' + side,
1251 + shapeType = this.getElementSettings(baseSettingKey),
1252 + $svgContainer = this.elements['$' + side + 'Container'];
1253 + $svgContainer.attr('data-shape', shapeType);
1254 + if (!shapeType) {
1255 + $svgContainer.empty(); // Shape-divider set to 'none'
1256 + return;
1257 + }
1258 + let fileName = shapeType;
1259 + if (this.getElementSettings(baseSettingKey + '_negative')) {
1260 + fileName += '-negative';
1261 + }
1262 + const svgURL = this.getSvgURL(shapeType, fileName);
1263 + jQuery.get(svgURL, data => {
1264 + $svgContainer.empty().append(data.childNodes[0]);
1265 + });
1266 + this.setNegative(side);
1267 + }
1268 + setNegative(side) {
1269 + this.elements['$' + side + 'Container'].attr('data-negative', !!this.getElementSettings('shape_divider_' + side + '_negative'));
1270 + }
1271 + onInit() {
1272 + if (!this.isActive(this.getSettings())) {
1273 + return;
1274 + }
1275 + super.onInit(...arguments);
1276 + ['top', 'bottom'].forEach(side => {
1277 + if (this.getElementSettings('shape_divider_' + side)) {
1278 + this.buildSVG(side);
1279 + }
1280 + });
1281 + }
1282 + onElementChange(propertyName) {
1283 + const shapeChange = propertyName.match(/^shape_divider_(top|bottom)$/);
1284 + if (shapeChange) {
1285 + this.buildSVG(shapeChange[1]);
1286 + return;
1287 + }
1288 + const negativeChange = propertyName.match(/^shape_divider_(top|bottom)_negative$/);
1289 + if (negativeChange) {
1290 + this.buildSVG(negativeChange[1]);
1291 + this.setNegative(negativeChange[1]);
1292 + }
1293 + }
1294 +}
1295 +exports["default"] = Shapes;
1108 1296
1109 -//#endregion
1110 -//#region node_modules/core-js/internals/object-define-properties.js
1111 - var require_object_define_properties = /* @__PURE__ */ __commonJSMin(((exports) => {
1112 - var DESCRIPTORS = require_descriptors();
1113 - var V8_PROTOTYPE_DEFINE_BUG = require_v8_prototype_define_bug();
1114 - var definePropertyModule = require_object_define_property();
1115 - var anObject = require_an_object();
1116 - var toIndexedObject = require_to_indexed_object();
1117 - var objectKeys = require_object_keys();
1118 - exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
1119 - anObject(O);
1120 - var props = toIndexedObject(Properties);
1121 - var keys = objectKeys(Properties);
1122 - var length = keys.length;
1123 - var index = 0;
1124 - var key;
1125 - while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
1126 - return O;
1127 - };
1128 - }));
1297 +/***/ }),
1129 1298
1130 -//#endregion
1131 -//#region node_modules/core-js/internals/html.js
1132 - var require_html = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1133 - var getBuiltIn = require_get_built_in();
1134 - module.exports = getBuiltIn("document", "documentElement");
1135 - }));
1299 +/***/ "../assets/dev/js/frontend/handlers/section/stretched-section.js":
1300 +/*!***********************************************************************!*\
1301 + !*** ../assets/dev/js/frontend/handlers/section/stretched-section.js ***!
1302 + \***********************************************************************/
1303 +/***/ ((__unused_webpack_module, exports) => {
1136 1304
1137 -//#endregion
1138 -//#region node_modules/core-js/internals/object-create.js
1139 - var require_object_create = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1140 - var anObject = require_an_object();
1141 - var definePropertiesModule = require_object_define_properties();
1142 - var enumBugKeys = require_enum_bug_keys();
1143 - var hiddenKeys = require_hidden_keys();
1144 - var html = require_html();
1145 - var documentCreateElement = require_document_create_element();
1146 - var sharedKey = require_shared_key();
1147 - var GT = ">";
1148 - var LT = "<";
1149 - var PROTOTYPE = "prototype";
1150 - var SCRIPT = "script";
1151 - var IE_PROTO = sharedKey("IE_PROTO");
1152 - var EmptyConstructor = function() {};
1153 - var scriptTag = function(content) {
1154 - return LT + SCRIPT + GT + content + LT + "/" + SCRIPT + GT;
1155 - };
1156 - var NullProtoObjectViaActiveX = function(activeXDocument) {
1157 - activeXDocument.write(scriptTag(""));
1158 - activeXDocument.close();
1159 - var temp = activeXDocument.parentWindow.Object;
1160 - activeXDocument = null;
1161 - return temp;
1162 - };
1163 - var NullProtoObjectViaIFrame = function() {
1164 - var iframe = documentCreateElement("iframe");
1165 - var JS = "java" + SCRIPT + ":";
1166 - var iframeDocument;
1167 - iframe.style.display = "none";
1168 - html.appendChild(iframe);
1169 - iframe.src = String(JS);
1170 - iframeDocument = iframe.contentWindow.document;
1171 - iframeDocument.open();
1172 - iframeDocument.write(scriptTag("document.F=Object"));
1173 - iframeDocument.close();
1174 - return iframeDocument.F;
1175 - };
1176 - var activeXDocument;
1177 - var NullProtoObject = function() {
1178 - try {
1179 - activeXDocument = new ActiveXObject("htmlfile");
1180 - } catch (error) {}
1181 - NullProtoObject = typeof document != "undefined" ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);
1182 - var length = enumBugKeys.length;
1183 - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
1184 - return NullProtoObject();
1185 - };
1186 - hiddenKeys[IE_PROTO] = true;
1187 - module.exports = Object.create || function create(O, Properties) {
1188 - var result;
1189 - if (O !== null) {
1190 - EmptyConstructor[PROTOTYPE] = anObject(O);
1191 - result = new EmptyConstructor();
1192 - EmptyConstructor[PROTOTYPE] = null;
1193 - result[IE_PROTO] = O;
1194 - } else result = NullProtoObject();
1195 - return Properties === void 0 ? result : definePropertiesModule.f(result, Properties);
1196 - };
1197 - }));
1305 +"use strict";
1198 1306
1199 -//#endregion
1200 -//#region node_modules/core-js/internals/iterators-core.js
1201 - var require_iterators_core = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1202 - var fails = require_fails();
1203 - var isCallable = require_is_callable();
1204 - var isObject = require_is_object();
1205 - var create = require_object_create();
1206 - var getPrototypeOf = require_object_get_prototype_of();
1207 - var defineBuiltIn = require_define_built_in();
1208 - var wellKnownSymbol = require_well_known_symbol();
1209 - var IS_PURE = require_is_pure();
1210 - var ITERATOR = wellKnownSymbol("iterator");
1211 - var BUGGY_SAFARI_ITERATORS = false;
1212 - var IteratorPrototype;
1213 - var PrototypeOfArrayIteratorPrototype;
1214 - var arrayIterator;
1215 - if ([].keys) {
1216 - arrayIterator = [].keys();
1217 - if (!("next" in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
1218 - else {
1219 - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
1220 - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
1221 - }
1222 - }
1223 - if (!isObject(IteratorPrototype) || fails(function() {
1224 - var test = {};
1225 - return IteratorPrototype[ITERATOR].call(test) !== test;
1226 - })) IteratorPrototype = {};
1227 - else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
1228 - if (!isCallable(IteratorPrototype[ITERATOR])) defineBuiltIn(IteratorPrototype, ITERATOR, function() {
1229 - return this;
1230 - });
1231 - module.exports = {
1232 - IteratorPrototype,
1233 - BUGGY_SAFARI_ITERATORS
1234 - };
1235 - }));
1236 1307
1237 -//#endregion
1238 -//#region node_modules/core-js/modules/es.iterator.constructor.js
1239 - var require_es_iterator_constructor = /* @__PURE__ */ __commonJSMin((() => {
1240 - var $ = require_export();
1241 - var globalThis = require_global_this();
1242 - var anInstance = require_an_instance();
1243 - var anObject = require_an_object();
1244 - var isCallable = require_is_callable();
1245 - var getPrototypeOf = require_object_get_prototype_of();
1246 - var defineBuiltInAccessor = require_define_built_in_accessor();
1247 - var createProperty = require_create_property();
1248 - var fails = require_fails();
1249 - var hasOwn = require_has_own_property();
1250 - var wellKnownSymbol = require_well_known_symbol();
1251 - var IteratorPrototype = require_iterators_core().IteratorPrototype;
1252 - var DESCRIPTORS = require_descriptors();
1253 - var IS_PURE = require_is_pure();
1254 - var CONSTRUCTOR = "constructor";
1255 - var ITERATOR = "Iterator";
1256 - var TO_STRING_TAG = wellKnownSymbol("toStringTag");
1257 - var $TypeError = TypeError;
1258 - var NativeIterator = globalThis[ITERATOR];
1259 - var FORCED = IS_PURE || !isCallable(NativeIterator) || NativeIterator.prototype !== IteratorPrototype || !fails(function() {
1260 - NativeIterator({});
1261 - });
1262 - var IteratorConstructor = function Iterator() {
1263 - anInstance(this, IteratorPrototype);
1264 - if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError("Abstract class Iterator not directly constructable");
1265 - };
1266 - var defineIteratorPrototypeAccessor = function(key, value) {
1267 - if (DESCRIPTORS) defineBuiltInAccessor(IteratorPrototype, key, {
1268 - configurable: true,
1269 - get: function() {
1270 - return value;
1271 - },
1272 - set: function(replacement) {
1273 - anObject(this);
1274 - if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property");
1275 - if (hasOwn(this, key)) this[key] = replacement;
1276 - else createProperty(this, key, replacement);
1277 - }
1278 - });
1279 - else IteratorPrototype[key] = value;
1280 - };
1281 - if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);
1282 - if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);
1283 - IteratorConstructor.prototype = IteratorPrototype;
1284 - $({
1285 - global: true,
1286 - constructor: true,
1287 - forced: FORCED
1288 - }, { Iterator: IteratorConstructor });
1289 - }));
1308 +Object.defineProperty(exports, "__esModule", ({
1309 + value: true
1310 +}));
1311 +exports["default"] = void 0;
1312 +class StretchedSection extends elementorModules.frontend.handlers.StretchedElement {
1313 + getStretchedClass() {
1314 + return 'elementor-section-stretched';
1315 + }
1316 + getStretchSettingName() {
1317 + return 'stretch_section';
1318 + }
1319 + getStretchActiveValue() {
1320 + return 'section-stretched';
1321 + }
1322 +}
1323 +exports["default"] = StretchedSection;
1290 1324
1291 -//#endregion
1292 -//#region node_modules/core-js/modules/esnext.iterator.constructor.js
1293 - var require_esnext_iterator_constructor = /* @__PURE__ */ __commonJSMin((() => {
1294 - require_es_iterator_constructor();
1295 - }));
1325 +/***/ }),
1296 1326
1297 -//#endregion
1298 -//#region node_modules/core-js/internals/function-uncurry-this-clause.js
1299 - var require_function_uncurry_this_clause = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1300 - var classofRaw = require_classof_raw();
1301 - var uncurryThis = require_function_uncurry_this();
1302 - module.exports = function(fn) {
1303 - if (classofRaw(fn) === "Function") return uncurryThis(fn);
1304 - };
1305 - }));
1327 +/***/ "../assets/dev/js/frontend/utils/anchors.js":
1328 +/*!**************************************************!*\
1329 + !*** ../assets/dev/js/frontend/utils/anchors.js ***!
1330 + \**************************************************/
1331 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1306 1332
1307 -//#endregion
1308 -//#region node_modules/core-js/internals/function-bind-context.js
1309 - var require_function_bind_context = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1310 - var uncurryThis = require_function_uncurry_this_clause();
1311 - var aCallable = require_a_callable();
1312 - var NATIVE_BIND = require_function_bind_native();
1313 - var bind = uncurryThis(uncurryThis.bind);
1314 - module.exports = function(fn, that) {
1315 - aCallable(fn);
1316 - return that === void 0 ? fn : NATIVE_BIND ? bind(fn, that) : function() {
1317 - return fn.apply(that, arguments);
1318 - };
1319 - };
1320 - }));
1333 +"use strict";
1321 1334
1322 -//#endregion
1323 -//#region node_modules/core-js/internals/iterators.js
1324 - var require_iterators = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1325 - module.exports = {};
1326 - }));
1327 1335
1328 -//#endregion
1329 -//#region node_modules/core-js/internals/is-array-iterator-method.js
1330 - var require_is_array_iterator_method = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1331 - var wellKnownSymbol = require_well_known_symbol();
1332 - var Iterators = require_iterators();
1333 - var ITERATOR = wellKnownSymbol("iterator");
1334 - var ArrayPrototype = Array.prototype;
1335 - module.exports = function(it) {
1336 - return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
1337 - };
1338 - }));
1336 +var _utils = __webpack_require__(/*! ./utils */ "../assets/dev/js/frontend/utils/utils.js");
1337 +module.exports = elementorModules.ViewModule.extend({
1338 + getDefaultSettings() {
1339 + return {
1340 + scrollDuration: 500,
1341 + selectors: {
1342 + links: 'a[href*="#"]',
1343 + targets: '.elementor-element, .elementor-menu-anchor',
1344 + scrollable: (0, _utils.isScrollSnapActive)() ? 'body' : 'html, body'
1345 + }
1346 + };
1347 + },
1348 + getDefaultElements() {
1349 + var $ = jQuery,
1350 + selectors = this.getSettings('selectors');
1351 + return {
1352 + $scrollable: $(selectors.scrollable)
1353 + };
1354 + },
1355 + bindEvents() {
1356 + elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), this.handleAnchorLinks);
1357 + },
1358 + handleAnchorLinks(event) {
1359 + var clickedLink = event.currentTarget,
1360 + isSamePathname = location.pathname === clickedLink.pathname,
1361 + isSameHostname = location.hostname === clickedLink.hostname,
1362 + $anchor;
1363 + if (!isSameHostname || !isSamePathname || clickedLink.hash.length < 2) {
1364 + return;
1365 + }
1366 + try {
1367 + $anchor = jQuery(clickedLink.hash).filter(this.getSettings('selectors.targets'));
1368 + } catch (e) {
1369 + return;
1370 + }
1371 + if (!$anchor.length) {
1372 + return;
1373 + }
1374 + var scrollTop = $anchor.offset().top,
1375 + $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
1376 + $activeStickies = jQuery('.elementor-section.elementor-sticky--active:visible'),
1377 + maxStickyHeight = 0;
1378 + if ($wpAdminBar.length > 0) {
1379 + scrollTop -= $wpAdminBar.height();
1380 + }
1339 1381
1340 -//#endregion
1341 -//#region node_modules/core-js/internals/to-string-tag-support.js
1342 - var require_to_string_tag_support = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1343 - var TO_STRING_TAG = require_well_known_symbol()("toStringTag");
1344 - var test = {};
1345 - test[TO_STRING_TAG] = "z";
1346 - module.exports = String(test) === "[object z]";
1347 - }));
1382 + // Offset height of tallest sticky
1383 + if ($activeStickies.length > 0) {
1384 + maxStickyHeight = Math.max.apply(null, $activeStickies.map(function () {
1385 + return jQuery(this).outerHeight();
1386 + }).get());
1387 + scrollTop -= maxStickyHeight;
1388 + }
1389 + event.preventDefault();
1390 + scrollTop = elementorFrontend.hooks.applyFilters('frontend/handlers/menu_anchor/scroll_top_distance', scrollTop);
1348 1391
1349 -//#endregion
1350 -//#region node_modules/core-js/internals/classof.js
1351 - var require_classof = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1352 - var TO_STRING_TAG_SUPPORT = require_to_string_tag_support();
1353 - var isCallable = require_is_callable();
1354 - var classofRaw = require_classof_raw();
1355 - var TO_STRING_TAG = require_well_known_symbol()("toStringTag");
1356 - var $Object = Object;
1357 - var CORRECT_ARGUMENTS = classofRaw(function() {
1358 - return arguments;
1359 - }()) === "Arguments";
1360 - var tryGet = function(it, key) {
1361 - try {
1362 - return it[key];
1363 - } catch (error) {}
1364 - };
1365 - module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function(it) {
1366 - var O;
1367 - var tag;
1368 - var result;
1369 - return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) === "Object" && isCallable(O.callee) ? "Arguments" : result;
1370 - };
1371 - }));
1392 + // On scroll animation start: remove scroll-snap.
1393 + if ((0, _utils.isScrollSnapActive)()) {
1394 + elementorFrontend.elements.$body.css('scroll-snap-type', 'none');
1395 + }
1396 + this.elements.$scrollable.animate({
1397 + scrollTop
1398 + }, this.getSettings('scrollDuration'), 'linear', () => {
1399 + // On scroll animation complete: add scroll-snap back.
1400 + if ((0, _utils.isScrollSnapActive)()) {
1401 + elementorFrontend.elements.$body.css('scroll-snap-type', '');
1402 + }
1403 + });
1404 + },
1405 + onInit() {
1406 + elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
1407 + }
1408 +});
1372 1409
1373 -//#endregion
1374 -//#region node_modules/core-js/internals/get-iterator-method.js
1375 - var require_get_iterator_method = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1376 - var classof = require_classof();
1377 - var getMethod = require_get_method();
1378 - var isNullOrUndefined = require_is_null_or_undefined();
1379 - var Iterators = require_iterators();
1380 - var ITERATOR = require_well_known_symbol()("iterator");
1381 - module.exports = function(it) {
1382 - if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) || getMethod(it, "@@iterator") || Iterators[classof(it)];
1383 - };
1384 - }));
1410 +/***/ }),
1385 1411
1386 -//#endregion
1387 -//#region node_modules/core-js/internals/get-iterator.js
1388 - var require_get_iterator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1389 - var call = require_function_call();
1390 - var aCallable = require_a_callable();
1391 - var anObject = require_an_object();
1392 - var tryToString = require_try_to_string();
1393 - var getIteratorMethod = require_get_iterator_method();
1394 - var $TypeError = TypeError;
1395 - module.exports = function(argument, usingIterator) {
1396 - var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
1397 - if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
1398 - throw new $TypeError(tryToString(argument) + " is not iterable");
1399 - };
1400 - }));
1412 +/***/ "../assets/dev/js/frontend/utils/assets-loader.js":
1413 +/*!********************************************************!*\
1414 + !*** ../assets/dev/js/frontend/utils/assets-loader.js ***!
1415 + \********************************************************/
1416 +/***/ ((__unused_webpack_module, exports) => {
1401 1417
1402 -//#endregion
1403 -//#region node_modules/core-js/internals/iterator-close.js
1404 - var require_iterator_close = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1405 - var call = require_function_call();
1406 - var anObject = require_an_object();
1407 - var getMethod = require_get_method();
1408 - module.exports = function(iterator, kind, value) {
1409 - var innerResult;
1410 - var innerError;
1411 - anObject(iterator);
1412 - try {
1413 - innerResult = getMethod(iterator, "return");
1414 - if (!innerResult) {
1415 - if (kind === "throw") throw value;
1416 - return value;
1417 - }
1418 - innerResult = call(innerResult, iterator);
1419 - } catch (error) {
1420 - innerError = true;
1421 - innerResult = error;
1422 - }
1423 - if (kind === "throw") throw value;
1424 - if (innerError) throw innerResult;
1425 - anObject(innerResult);
1426 - return value;
1427 - };
1428 - }));
1418 +"use strict";
1429 1419
1430 -//#endregion
1431 -//#region node_modules/core-js/internals/iterate.js
1432 - var require_iterate = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1433 - var bind = require_function_bind_context();
1434 - var call = require_function_call();
1435 - var anObject = require_an_object();
1436 - var tryToString = require_try_to_string();
1437 - var isArrayIteratorMethod = require_is_array_iterator_method();
1438 - var lengthOfArrayLike = require_length_of_array_like();
1439 - var isPrototypeOf = require_object_is_prototype_of();
1440 - var getIterator = require_get_iterator();
1441 - var getIteratorMethod = require_get_iterator_method();
1442 - var iteratorClose = require_iterator_close();
1443 - var $TypeError = TypeError;
1444 - var Result = function(stopped, result) {
1445 - this.stopped = stopped;
1446 - this.result = result;
1447 - };
1448 - var ResultPrototype = Result.prototype;
1449 - module.exports = function(iterable, unboundFunction, options) {
1450 - var that = options && options.that;
1451 - var AS_ENTRIES = !!(options && options.AS_ENTRIES);
1452 - var IS_RECORD = !!(options && options.IS_RECORD);
1453 - var IS_ITERATOR = !!(options && options.IS_ITERATOR);
1454 - var INTERRUPTED = !!(options && options.INTERRUPTED);
1455 - var fn = bind(unboundFunction, that);
1456 - var iterator;
1457 - var iterFn;
1458 - var index;
1459 - var length;
1460 - var result;
1461 - var next;
1462 - var step;
1463 - var stop = function(condition) {
1464 - if (iterator) iteratorClose(iterator, "normal");
1465 - return new Result(true, condition);
1466 - };
1467 - var callFn = function(value) {
1468 - if (AS_ENTRIES) {
1469 - anObject(value);
1470 - return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
1471 - }
1472 - return INTERRUPTED ? fn(value, stop) : fn(value);
1473 - };
1474 - if (IS_RECORD) iterator = iterable.iterator;
1475 - else if (IS_ITERATOR) iterator = iterable;
1476 - else {
1477 - iterFn = getIteratorMethod(iterable);
1478 - if (!iterFn) throw new $TypeError(tryToString(iterable) + " is not iterable");
1479 - if (isArrayIteratorMethod(iterFn)) {
1480 - for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
1481 - result = callFn(iterable[index]);
1482 - if (result && isPrototypeOf(ResultPrototype, result)) return result;
1483 - }
1484 - return new Result(false);
1485 - }
1486 - iterator = getIterator(iterable, iterFn);
1487 - }
1488 - next = IS_RECORD ? iterable.next : iterator.next;
1489 - while (!(step = call(next, iterator)).done) {
1490 - try {
1491 - result = callFn(step.value);
1492 - } catch (error) {
1493 - iteratorClose(iterator, "throw", error);
1494 - }
1495 - if (typeof result == "object" && result && isPrototypeOf(ResultPrototype, result)) return result;
1496 - }
1497 - return new Result(false);
1498 - };
1499 - }));
1500 1420
1501 -//#endregion
1502 -//#region node_modules/core-js/internals/get-iterator-direct.js
1503 - var require_get_iterator_direct = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1504 - module.exports = function(obj) {
1505 - return {
1506 - iterator: obj,
1507 - next: obj.next,
1508 - done: false
1509 - };
1510 - };
1511 - }));
1421 +Object.defineProperty(exports, "__esModule", ({
1422 + value: true
1423 +}));
1424 +exports["default"] = void 0;
1425 +class AssetsLoader {
1426 + getScriptElement(src) {
1427 + const scriptElement = document.createElement('script');
1428 + scriptElement.src = src;
1429 + return scriptElement;
1430 + }
1431 + getStyleElement(src) {
1432 + const styleElement = document.createElement('link');
1433 + styleElement.rel = 'stylesheet';
1434 + styleElement.href = src;
1435 + return styleElement;
1436 + }
1437 + load(type, key) {
1438 + const assetData = AssetsLoader.assets[type][key];
1439 + if (!assetData.loader) {
1440 + assetData.loader = new Promise(resolve => {
1441 + const element = 'style' === type ? this.getStyleElement(assetData.src) : this.getScriptElement(assetData.src);
1442 + element.onload = () => resolve(true);
1443 + const parent = 'head' === assetData.parent ? assetData.parent : 'body';
1444 + document[parent].appendChild(element);
1445 + });
1446 + }
1447 + return assetData.loader;
1448 + }
1449 +}
1450 +exports["default"] = AssetsLoader;
1451 +const fileSuffix = elementorFrontendConfig.environmentMode.isScriptDebug ? '' : '.min';
1452 +const swiperSource = elementorFrontendConfig.experimentalFeatures.e_swiper_latest ? `${elementorFrontendConfig.urls.assets}lib/swiper/v8/swiper${fileSuffix}.js?ver=8.4.5` : `${elementorFrontendConfig.urls.assets}lib/swiper/swiper${fileSuffix}.js?ver=5.3.6`;
1453 +AssetsLoader.assets = {
1454 + script: {
1455 + dialog: {
1456 + src: `${elementorFrontendConfig.urls.assets}lib/dialog/dialog${fileSuffix}.js?ver=4.9.0`
1457 + },
1458 + 'share-link': {
1459 + src: `${elementorFrontendConfig.urls.assets}lib/share-link/share-link${fileSuffix}.js?ver=${elementorFrontendConfig.version}`
1460 + },
1461 + swiper: {
1462 + src: swiperSource
1463 + }
1464 + },
1465 + style: {}
1466 +};
1512 1467
1513 -//#endregion
1514 -//#region node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js
1515 - var require_iterator_helper_without_closing_on_early_error = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1516 - var globalThis = require_global_this();
1517 - module.exports = function(METHOD_NAME, ExpectedError) {
1518 - var Iterator = globalThis.Iterator;
1519 - var IteratorPrototype = Iterator && Iterator.prototype;
1520 - var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];
1521 - var CLOSED = false;
1522 - if (method) try {
1523 - method.call({
1524 - next: function() {
1525 - return { done: true };
1526 - },
1527 - "return": function() {
1528 - CLOSED = true;
1529 - }
1530 - }, -1);
1531 - } catch (error) {
1532 - if (!(error instanceof ExpectedError)) CLOSED = false;
1533 - }
1534 - if (!CLOSED) return method;
1535 - };
1536 - }));
1468 +/***/ }),
1537 1469
1538 -//#endregion
1539 -//#region node_modules/core-js/modules/es.iterator.find.js
1540 - var require_es_iterator_find = /* @__PURE__ */ __commonJSMin((() => {
1541 - var $ = require_export();
1542 - var call = require_function_call();
1543 - var iterate = require_iterate();
1544 - var aCallable = require_a_callable();
1545 - var anObject = require_an_object();
1546 - var getIteratorDirect = require_get_iterator_direct();
1547 - var iteratorClose = require_iterator_close();
1548 - var findWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error()("find", TypeError);
1549 - $({
1550 - target: "Iterator",
1551 - proto: true,
1552 - real: true,
1553 - forced: findWithoutClosingOnEarlyError
1554 - }, { find: function find(predicate) {
1555 - anObject(this);
1556 - try {
1557 - aCallable(predicate);
1558 - } catch (error) {
1559 - iteratorClose(this, "throw", error);
1560 - }
1561 - if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);
1562 - var record = getIteratorDirect(this);
1563 - var counter = 0;
1564 - return iterate(record, function(value, stop) {
1565 - if (predicate(value, counter++)) return stop(value);
1566 - }, {
1567 - IS_RECORD: true,
1568 - INTERRUPTED: true
1569 - }).result;
1570 - } });
1571 - }));
1470 +/***/ "../assets/dev/js/frontend/utils/controls.js":
1471 +/*!***************************************************!*\
1472 + !*** ../assets/dev/js/frontend/utils/controls.js ***!
1473 + \***************************************************/
1474 +/***/ ((__unused_webpack_module, exports) => {
1572 1475
1573 -//#endregion
1574 -//#region node_modules/core-js/modules/esnext.iterator.find.js
1575 - var require_esnext_iterator_find = /* @__PURE__ */ __commonJSMin((() => {
1576 - require_es_iterator_find();
1577 - }));
1476 +"use strict";
1578 1477
1579 -//#endregion
1580 -//#region node_modules/core-js/modules/es.iterator.for-each.js
1581 - var require_es_iterator_for_each = /* @__PURE__ */ __commonJSMin((() => {
1582 - var $ = require_export();
1583 - var call = require_function_call();
1584 - var iterate = require_iterate();
1585 - var aCallable = require_a_callable();
1586 - var anObject = require_an_object();
1587 - var getIteratorDirect = require_get_iterator_direct();
1588 - var iteratorClose = require_iterator_close();
1589 - var forEachWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error()("forEach", TypeError);
1590 - $({
1591 - target: "Iterator",
1592 - proto: true,
1593 - real: true,
1594 - forced: forEachWithoutClosingOnEarlyError
1595 - }, { forEach: function forEach(fn) {
1596 - anObject(this);
1597 - try {
1598 - aCallable(fn);
1599 - } catch (error) {
1600 - iteratorClose(this, "throw", error);
1601 - }
1602 - if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);
1603 - var record = getIteratorDirect(this);
1604 - var counter = 0;
1605 - iterate(record, function(value) {
1606 - fn(value, counter++);
1607 - }, { IS_RECORD: true });
1608 - } });
1609 - }));
1610 1478
1611 -//#endregion
1612 -//#region node_modules/core-js/modules/esnext.iterator.for-each.js
1613 - var require_esnext_iterator_for_each = /* @__PURE__ */ __commonJSMin((() => {
1614 - require_es_iterator_for_each();
1615 - }));
1479 +Object.defineProperty(exports, "__esModule", ({
1480 + value: true
1481 +}));
1482 +exports["default"] = void 0;
1483 +class Controls {
1484 + /**
1485 + * Get Control Value
1486 + *
1487 + * Retrieves a control value.
1488 + * This function has been copied from `elementor/assets/dev/js/editor/utils/conditions.js`.
1489 + *
1490 + * @since 3.11.0
1491 + *
1492 + * @param {{}} controlSettings A settings object (e.g. element settings - keys and values)
1493 + * @param {string} controlKey The control key name
1494 + * @param {string} controlSubKey A specific property of the control object.
1495 + * @return {*} Control Value
1496 + */
1497 + getControlValue(controlSettings, controlKey, controlSubKey) {
1498 + let value;
1499 + if ('object' === typeof controlSettings[controlKey] && controlSubKey) {
1500 + value = controlSettings[controlKey][controlSubKey];
1501 + } else {
1502 + value = controlSettings[controlKey];
1503 + }
1504 + return value;
1505 + }
1616 1506
1617 -//#endregion
1618 -//#region assets/dev/js/public-path.js
1619 - var require_public_path = /* @__PURE__ */ __commonJSMin(((exports) => {
1620 - Object.defineProperty(exports, "__esModule", { value: true });
1621 - }));
1507 + /**
1508 + * Get the value of a responsive control.
1509 + *
1510 + * Retrieves the value of a responsive control for the current device or for this first parent device which has a control value.
1511 + *
1512 + * @since 3.11.0
1513 + *
1514 + * @param {{}} controlSettings A settings object (e.g. element settings - keys and values)
1515 + * @param {string} controlKey The control key name
1516 + * @param {string} controlSubKey A specific property of the control object.
1517 + * @param {string} device If we want to get a value for a specific device mode.
1518 + * @return {*} Control Value
1519 + */
1520 + getResponsiveControlValue(controlSettings, controlKey) {
1521 + let controlSubKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
1522 + let device = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1523 + const currentDeviceMode = device || elementorFrontend.getCurrentDeviceMode(),
1524 + controlValueDesktop = this.getControlValue(controlSettings, controlKey, controlSubKey);
1622 1525
1623 -//#endregion
1624 -//#region assets/dev/js/frontend/utils/chunk-loader.js
1625 - var require_chunk_loader = /* @__PURE__ */ __commonJSMin(((exports) => {
1626 - Object.defineProperty(exports, "__esModule", { value: true });
1627 - exports.loadChunk = loadChunk;
1628 - /**
1629 - * On-demand loader for frontend code chunks.
1630 - *
1631 - * Rolldown's IIFE output cannot code split, so every dynamic `import()` would otherwise be inlined
1632 - * into the entry. That regressed `frontend.min.js` from 10.4 KiB gzip to 53.7 KiB, most of it
1633 - * unused on any given page. The build rewrites those imports at build time to `loadChunk(name)`
1634 - * so the entry stays small and each handler ships as its own bundle fetched only when a widget
1635 - * needs it.
1636 - *
1637 - * A chunk bundle is an IIFE that assigns its default export to `window.__elementorChunks[name]`.
1638 - * The `__ELEMENTOR_CHUNK_SUFFIX__` constant is replaced at build time with `.min` for the
1639 - * production build and the empty string otherwise, so a dev frontend loads dev chunks and a prod
1640 - * frontend loads minified ones.
1641 - */
1642 - function chunkUrl(name) {
1643 - var _config$urls;
1644 - const config = window.elementorFrontendConfig || {};
1645 - const assetsUrl = ((_config$urls = config.urls) === null || _config$urls === void 0 ? void 0 : _config$urls.assets) || "";
1646 - const version = config.version ? "?ver=" + encodeURIComponent(config.version) : "";
1647 - return assetsUrl + "js/chunks/" + name + ".js" + version;
1648 - }
1649 - var registry = window.__elementorChunks = window.__elementorChunks || {};
1650 - var inflight = /* @__PURE__ */ new Map();
1651 - function appendChunkScript(name) {
1652 - return new Promise((resolve, reject) => {
1653 - const script = document.createElement("script");
1654 - script.src = chunkUrl(name);
1655 - script.async = true;
1656 - script.onload = () => {
1657 - if (registry[name]) resolve(registry[name]);
1658 - else reject(/* @__PURE__ */ new Error(`[elementor] chunk "${name}" loaded but did not register`));
1659 - };
1660 - script.onerror = () => reject(/* @__PURE__ */ new Error(`[elementor] failed to load chunk "${name}" from ${script.src}`));
1661 - document.head.appendChild(script);
1662 - });
1663 - }
1664 - /**
1665 - * Returns a promise for the module namespace of a chunk, appending its script tag on first
1666 - * request. The build rewrites `import( './handlers/video' )` in frontend sources to
1667 - * `loadChunk( 'video' )`, so call sites see the same then-able interface they wrote against.
1668 - *
1669 - * @param {string} name
1670 - */
1671 - function loadChunk(name) {
1672 - if (registry[name]) return Promise.resolve(registry[name]);
1673 - if (!inflight.has(name)) inflight.set(name, appendChunkScript(name));
1674 - return inflight.get(name);
1675 - }
1676 - window.__elementorLoadChunk = loadChunk;
1677 - }));
1526 + // Set the control value for the current device mode.
1527 + // First check the widescreen device mode.
1528 + if ('widescreen' === currentDeviceMode) {
1529 + const controlValueWidescreen = this.getControlValue(controlSettings, `${controlKey}_widescreen`, controlSubKey);
1530 + return !!controlValueWidescreen || 0 === controlValueWidescreen ? controlValueWidescreen : controlValueDesktop;
1531 + }
1678 1532
1679 -//#endregion
1680 -//#region assets/dev/js/frontend/document.js
1681 - var require_document = /* @__PURE__ */ __commonJSMin(((exports) => {
1682 - Object.defineProperty(exports, "__esModule", { value: true });
1683 - exports.default = void 0;
1684 - require_esnext_iterator_constructor();
1685 - require_esnext_iterator_find();
1686 - var _default = class extends elementorModules.ViewModule {
1687 - getDefaultSettings() {
1688 - return {
1689 - selectors: {
1690 - elements: ".elementor-element",
1691 - nestedDocumentElements: ".elementor .elementor-element"
1692 - },
1693 - classes: { editMode: "elementor-edit-mode" }
1694 - };
1695 - }
1696 - getDefaultElements() {
1697 - const selectors = this.getSettings("selectors");
1698 - return { $elements: this.$element.find(selectors.elements).not(this.$element.find(selectors.nestedDocumentElements)) };
1699 - }
1700 - getDocumentSettings(setting) {
1701 - let elementSettings;
1702 - if (this.isEdit) {
1703 - elementSettings = {};
1704 - const settings = elementor.settings.page.model;
1705 - jQuery.each(settings.getActiveControls(), (controlKey) => {
1706 - elementSettings[controlKey] = settings.attributes[controlKey];
1707 - });
1708 - } else elementSettings = this.$element.data("elementor-settings") || {};
1709 - return this.getItems(elementSettings, setting);
1710 - }
1711 - runElementsHandlers() {
1712 - this.elements.$elements.each((index, element) => setTimeout(() => elementorFrontend.elementsHandler.runReadyTrigger(element)));
1713 - }
1714 - onInit() {
1715 - this.$element = this.getSettings("$element");
1716 - super.onInit();
1717 - this.isEdit = this.$element.hasClass(this.getSettings("classes.editMode"));
1718 - if (this.isEdit) elementor.on("document:loaded", () => {
1719 - elementor.settings.page.model.on("change", this.onSettingsChange.bind(this));
1720 - });
1721 - else this.runElementsHandlers();
1722 - }
1723 - onSettingsChange() {}
1724 - };
1725 - exports.default = _default;
1726 - }));
1533 + // Loop through all responsive and desktop device modes.
1534 + const activeBreakpoints = elementorFrontend.breakpoints.getActiveBreakpointsList({
1535 + withDesktop: true
1536 + });
1537 + let parentDeviceMode = currentDeviceMode,
1538 + deviceIndex = activeBreakpoints.indexOf(currentDeviceMode),
1539 + controlValue = '';
1540 + while (deviceIndex <= activeBreakpoints.length) {
1541 + if ('desktop' === parentDeviceMode) {
1542 + controlValue = controlValueDesktop;
1543 + break;
1544 + }
1545 + const responsiveControlKey = `${controlKey}_${parentDeviceMode}`,
1546 + responsiveControlValue = this.getControlValue(controlSettings, responsiveControlKey, controlSubKey);
1547 + if (!!responsiveControlValue || 0 === responsiveControlValue) {
1548 + controlValue = responsiveControlValue;
1549 + break;
1550 + }
1727 1551
1728 -//#endregion
1729 -//#region assets/dev/js/frontend/documents-manager.js
1730 - var require_documents_manager = /* @__PURE__ */ __commonJSMin(((exports) => {
1731 - var _interopRequireDefault = require_interopRequireDefault();
1732 - Object.defineProperty(exports, "__esModule", { value: true });
1733 - exports.default = void 0;
1734 - var _document = _interopRequireDefault(require_document());
1735 - var _default = class extends elementorModules.ViewModule {
1736 - constructor(...args) {
1737 - super(...args);
1738 - this.documents = {};
1739 - this.initDocumentClasses();
1740 - this.attachDocumentsClasses();
1741 - }
1742 - getDefaultSettings() {
1743 - return { selectors: { document: ".elementor" } };
1744 - }
1745 - getDefaultElements() {
1746 - const selectors = this.getSettings("selectors");
1747 - return { $documents: jQuery(selectors.document) };
1748 - }
1749 - initDocumentClasses() {
1750 - this.documentClasses = { base: _document.default };
1751 - elementorFrontend.hooks.doAction("elementor/frontend/documents-manager/init-classes", this);
1752 - }
1753 - addDocumentClass(documentType, documentClass) {
1754 - this.documentClasses[documentType] = documentClass;
1755 - }
1756 - attachDocumentsClasses() {
1757 - this.elements.$documents.each((index, document) => this.attachDocumentClass(jQuery(document)));
1758 - }
1759 - attachDocumentClass($document) {
1760 - const documentData = $document.data();
1761 - const documentID = documentData.elementorId;
1762 - const documentType = documentData.elementorType;
1763 - const DocumentClass = this.documentClasses[documentType] || this.documentClasses.base;
1764 - this.documents[documentID] = new DocumentClass({
1765 - $element: $document,
1766 - id: documentID
1767 - });
1768 - }
1769 - };
1770 - exports.default = _default;
1771 - }));
1552 + // If no control value has been set for the current device mode, then check the parent device mode.
1553 + deviceIndex++;
1554 + parentDeviceMode = activeBreakpoints[deviceIndex];
1555 + }
1556 + return controlValue;
1557 + }
1558 +}
1559 +exports["default"] = Controls;
1772 1560
1773 -//#endregion
1774 -//#region core/common/assets/js/utils/storage.js
1775 - var require_storage = /* @__PURE__ */ __commonJSMin(((exports) => {
1776 - Object.defineProperty(exports, "__esModule", { value: true });
1777 - exports.default = void 0;
1778 - require_esnext_iterator_constructor();
1779 - require_esnext_iterator_for_each();
1780 - var _default = class extends elementorModules.Module {
1781 - get(key, options) {
1782 - options = options || {};
1783 - let storage;
1784 - try {
1785 - storage = options.session ? sessionStorage : localStorage;
1786 - } catch (e) {
1787 - return key ? void 0 : {};
1788 - }
1789 - let elementorStorage = storage.getItem("elementor");
1790 - if (elementorStorage) elementorStorage = JSON.parse(elementorStorage);
1791 - else elementorStorage = {};
1792 - if (!elementorStorage.__expiration) elementorStorage.__expiration = {};
1793 - const expiration = elementorStorage.__expiration;
1794 - let expirationToCheck = [];
1795 - if (key) {
1796 - if (expiration[key]) expirationToCheck = [key];
1797 - } else expirationToCheck = Object.keys(expiration);
1798 - let entryExpired = false;
1799 - expirationToCheck.forEach((expirationKey) => {
1800 - if (new Date(expiration[expirationKey]) < /* @__PURE__ */ new Date()) {
1801 - delete elementorStorage[expirationKey];
1802 - delete expiration[expirationKey];
1803 - entryExpired = true;
1804 - }
1805 - });
1806 - if (entryExpired) this.save(elementorStorage, options.session);
1807 - if (key) return elementorStorage[key];
1808 - return elementorStorage;
1809 - }
1810 - set(key, value, options) {
1811 - options = options || {};
1812 - const elementorStorage = this.get(null, options);
1813 - elementorStorage[key] = value;
1814 - if (options.lifetimeInSeconds) {
1815 - const date = /* @__PURE__ */ new Date();
1816 - date.setTime(date.getTime() + options.lifetimeInSeconds * 1e3);
1817 - elementorStorage.__expiration[key] = date.getTime();
1818 - }
1819 - this.save(elementorStorage, options.session);
1820 - }
1821 - save(object, session) {
1822 - let storage;
1823 - try {
1824 - storage = session ? sessionStorage : localStorage;
1825 - } catch (e) {
1826 - return;
1827 - }
1828 - storage.setItem("elementor", JSON.stringify(object));
1829 - }
1830 - };
1831 - exports.default = _default;
1832 - }));
1561 +/***/ }),
1833 1562
1834 -//#endregion
1835 -//#region core/common/assets/js/utils/environment.js
1836 - var require_environment = /* @__PURE__ */ __commonJSMin(((exports) => {
1837 - Object.defineProperty(exports, "__esModule", { value: true });
1838 - exports.default = void 0;
1839 - var matchUserAgent = (UserAgentStr) => {
1840 - return userAgent.indexOf(UserAgentStr) >= 0;
1841 - };
1842 - var userAgent = navigator.userAgent;
1843 - var isOpera = !!window.opr && !!opr.addons || !!window.opera || matchUserAgent(" OPR/");
1844 - var isFirefox = matchUserAgent("Firefox");
1845 - var isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) || /constructor/i.test(window.HTMLElement) || ((p) => {
1846 - return "[object SafariRemoteNotification]" === p.toString();
1847 - })(!window.safari || typeof safari !== "undefined" && safari.pushNotification);
1848 - var isIE = /Trident|MSIE/.test(userAgent) && !!document.documentMode;
1849 - var isEdge = !isIE && !!window.StyleMedia || matchUserAgent("Edg");
1850 - var isChrome = !!window.chrome && matchUserAgent("Chrome") && !(isEdge || isOpera);
1851 - var isBlink = matchUserAgent("Chrome") && !!window.CSS;
1852 - var isAppleWebkit = matchUserAgent("AppleWebKit") && !isBlink;
1853 - var environment = {
1854 - isTouchDevice: "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0,
1855 - appleWebkit: isAppleWebkit,
1856 - blink: isBlink,
1857 - chrome: isChrome,
1858 - edge: isEdge,
1859 - firefox: isFirefox,
1860 - ie: isIE,
1861 - mac: matchUserAgent("Macintosh"),
1862 - opera: isOpera,
1863 - safari: isSafari,
1864 - webkit: matchUserAgent("AppleWebKit")
1865 - };
1866 - exports.default = environment;
1867 - }));
1563 +/***/ "../assets/dev/js/frontend/utils/lightbox/lightbox-manager.js":
1564 +/*!********************************************************************!*\
1565 + !*** ../assets/dev/js/frontend/utils/lightbox/lightbox-manager.js ***!
1566 + \********************************************************************/
1567 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1868 1568
1869 -//#endregion
1870 -//#region assets/dev/js/frontend/utils/video-api/base-loader.js
1871 - var require_base_loader = /* @__PURE__ */ __commonJSMin(((exports) => {
1872 - Object.defineProperty(exports, "__esModule", { value: true });
1873 - exports.default = void 0;
1874 - var BaseLoader = class extends elementorModules.ViewModule {
1875 - getDefaultSettings() {
1876 - return {
1877 - isInserted: false,
1878 - selectors: { firstScript: "script:first" }
1879 - };
1880 - }
1881 - getDefaultElements() {
1882 - return { $firstScript: jQuery(this.getSettings("selectors.firstScript")) };
1883 - }
1884 - insertAPI() {
1885 - this.elements.$firstScript.before(jQuery("<script>", { src: this.getApiURL() }));
1886 - this.setSettings("isInserted", true);
1887 - }
1888 - getVideoIDFromURL(url) {
1889 - const videoIDParts = url.match(this.getURLRegex());
1890 - return videoIDParts && videoIDParts[1];
1891 - }
1892 - onApiReady(callback) {
1893 - if (!this.getSettings("isInserted")) this.insertAPI();
1894 - if (this.isApiLoaded()) callback(this.getApiObject());
1895 - else setTimeout(() => {
1896 - this.onApiReady(callback);
1897 - }, 350);
1898 - }
1899 - getAutoplayURL(videoURL) {
1900 - return videoURL.replace("&autoplay=0", "") + "&autoplay=1";
1901 - }
1902 - };
1903 - exports.default = BaseLoader;
1904 - }));
1569 +"use strict";
1905 1570
1906 -//#endregion
1907 -//#region assets/dev/js/frontend/utils/video-api/youtube-loader.js
1908 - var require_youtube_loader = /* @__PURE__ */ __commonJSMin(((exports) => {
1909 - var _interopRequireDefault = require_interopRequireDefault();
1910 - Object.defineProperty(exports, "__esModule", { value: true });
1911 - exports.default = void 0;
1912 - var _baseLoader = _interopRequireDefault(require_base_loader());
1913 - var YoutubeLoader = class extends _baseLoader.default {
1914 - getApiURL() {
1915 - return "https://www.youtube.com/iframe_api";
1916 - }
1917 - getURLRegex() {
1918 - return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user|shorts)\/))([^?&"'>]+)/;
1919 - }
1920 - isApiLoaded() {
1921 - return window.YT && YT.loaded;
1922 - }
1923 - getApiObject() {
1924 - return YT;
1925 - }
1926 - };
1927 - exports.default = YoutubeLoader;
1928 - }));
1929 1571
1930 -//#endregion
1931 -//#region assets/dev/js/frontend/utils/video-api/vimeo-loader.js
1932 - var require_vimeo_loader = /* @__PURE__ */ __commonJSMin(((exports) => {
1933 - var _interopRequireDefault = require_interopRequireDefault();
1934 - Object.defineProperty(exports, "__esModule", { value: true });
1935 - exports.default = void 0;
1936 - var _baseLoader = _interopRequireDefault(require_base_loader());
1937 - var VimeoLoader = class extends _baseLoader.default {
1938 - getApiURL() {
1939 - return "https://player.vimeo.com/api/player.js";
1940 - }
1941 - getURLRegex() {
1942 - return /^(?:https?:\/\/)?(?:www|player\.)?(?:vimeo\.com\/)?(?:video\/|external\/)?(\d+)([^.?&#"'>]?)/;
1943 - }
1944 - isApiLoaded() {
1945 - return window.Vimeo;
1946 - }
1947 - getApiObject() {
1948 - return Vimeo;
1949 - }
1950 - getAutoplayURL(videoURL) {
1951 - const timeMatch = videoURL.match(/#t=[^&]*/);
1952 - return videoURL.replace(timeMatch[0], "") + timeMatch;
1953 - }
1954 - };
1955 - exports.default = VimeoLoader;
1956 - }));
1572 +Object.defineProperty(exports, "__esModule", ({
1573 + value: true
1574 +}));
1575 +exports["default"] = void 0;
1576 +class LightboxManager extends elementorModules.ViewModule {
1577 + static getLightbox() {
1578 + const lightboxPromise = new Promise(resolveLightbox => {
1579 + __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 => {
1580 + let {
1581 + default: LightboxModule
1582 + } = _ref;
1583 + return resolveLightbox(new LightboxModule());
1584 + });
1585 + }),
1586 + dialogPromise = elementorFrontend.utils.assetsLoader.load('script', 'dialog'),
1587 + shareLinkPromise = elementorFrontend.utils.assetsLoader.load('script', 'share-link');
1588 + return Promise.all([lightboxPromise, dialogPromise, shareLinkPromise]).then(() => lightboxPromise);
1589 + }
1590 + getDefaultSettings() {
1591 + return {
1592 + selectors: {
1593 + links: 'a, [data-elementor-lightbox]'
1594 + }
1595 + };
1596 + }
1597 + getDefaultElements() {
1598 + return {
1599 + $links: jQuery(this.getSettings('selectors.links'))
1600 + };
1601 + }
1602 + isLightboxLink(element) {
1603 + // Check for lowercase `a` to make sure it works also for links inside SVGs.
1604 + if ('a' === element.tagName.toLowerCase() && (element.hasAttribute('download') || !/^[^?]+\.(png|jpe?g|gif|svg|webp)(\?.*)?$/i.test(element.href)) && !element.dataset.elementorLightboxVideo) {
1605 + return false;
1606 + }
1607 + const generalOpenInLightbox = elementorFrontend.getKitSettings('global_image_lightbox'),
1608 + currentLinkOpenInLightbox = element.dataset.elementorOpenLightbox;
1609 + return 'yes' === currentLinkOpenInLightbox || generalOpenInLightbox && 'no' !== currentLinkOpenInLightbox;
1610 + }
1611 + async onLinkClick(event) {
1612 + const element = event.currentTarget,
1613 + $target = jQuery(event.target),
1614 + editMode = elementorFrontend.isEditMode(),
1615 + isColorPickingMode = editMode && elementor.$previewContents.find('body').hasClass('elementor-editor__ui-state__color-picker'),
1616 + isClickInsideElementor = !!$target.closest('.elementor-edit-area').length;
1617 + if (!this.isLightboxLink(element)) {
1618 + if (editMode && isClickInsideElementor) {
1619 + event.preventDefault();
1620 + }
1621 + return;
1622 + }
1623 + event.preventDefault();
1624 + if (editMode && !elementor.getPreferences('lightbox_in_editor')) {
1625 + return;
1626 + }
1957 1627
1958 -//#endregion
1959 -//#region \0@[email protected]/helpers/esm/asyncToGenerator.js
1960 - function asyncGeneratorStep(n, t, e, r, o, a, c) {
1961 - try {
1962 - var i = n[a](c);
1963 - var u = i.value;
1964 - } catch (n) {
1965 - e(n);
1966 - return;
1967 - }
1968 - i.done ? t(u) : Promise.resolve(u).then(r, o);
1969 - }
1970 - function _asyncToGenerator(n) {
1971 - return function() {
1972 - var t = this;
1973 - var e = arguments;
1974 - return new Promise(function(r, o) {
1975 - var a = n.apply(t, e);
1976 - function _next(n) {
1977 - asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
1978 - }
1979 - function _throw(n) {
1980 - asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
1981 - }
1982 - _next(void 0);
1983 - });
1984 - };
1985 - }
1986 - var init_asyncToGenerator = __esmMin((() => {}));
1628 + // Disable lightbox on color picking mode.
1629 + if (isColorPickingMode) {
1630 + return;
1631 + }
1632 + const lightbox = this.isOptimizedAssetsLoading() ? await LightboxManager.getLightbox() : elementorFrontend.utils.lightbox;
1633 + lightbox.createLightbox(element);
1634 + }
1635 + isOptimizedAssetsLoading() {
1636 + return elementorFrontend.config.experimentalFeatures.e_optimized_assets_loading;
1637 + }
1638 + bindEvents() {
1639 + elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), event => this.onLinkClick(event));
1640 + }
1641 + onInit() {
1642 + super.onInit(...arguments);
1643 + if (!this.isOptimizedAssetsLoading() || elementorFrontend.isEditMode()) {
1644 + return;
1645 + }
1987 1646
1988 -//#endregion
1989 -//#region node_modules/core-js/internals/function-uncurry-this-accessor.js
1990 - var require_function_uncurry_this_accessor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1991 - var uncurryThis = require_function_uncurry_this();
1992 - var aCallable = require_a_callable();
1993 - module.exports = function(object, key, method) {
1994 - try {
1995 - return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
1996 - } catch (error) {}
1997 - };
1998 - }));
1647 + // Detecting lightbox links on init will reduce the time of waiting to the lightbox to be display on slow connections.
1648 + this.elements.$links.each((index, element) => {
1649 + if (this.isLightboxLink(element)) {
1650 + LightboxManager.getLightbox();
1999 1651
2000 -//#endregion
2001 -//#region node_modules/core-js/internals/is-possible-prototype.js
2002 - var require_is_possible_prototype = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2003 - var isObject = require_is_object();
2004 - module.exports = function(argument) {
2005 - return isObject(argument) || argument === null;
2006 - };
2007 - }));
1652 + // Breaking the iteration when the library loading has already been triggered.
1653 + return false;
1654 + }
1655 + });
1656 + }
1657 +}
1658 +exports["default"] = LightboxManager;
2008 1659
2009 -//#endregion
2010 -//#region node_modules/core-js/internals/a-possible-prototype.js
2011 - var require_a_possible_prototype = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2012 - var isPossiblePrototype = require_is_possible_prototype();
2013 - var $String = String;
2014 - var $TypeError = TypeError;
2015 - module.exports = function(argument) {
2016 - if (isPossiblePrototype(argument)) return argument;
2017 - throw new $TypeError("Can't set " + $String(argument) + " as a prototype");
2018 - };
2019 - }));
1660 +/***/ }),
2020 1661
2021 -//#endregion
2022 -//#region node_modules/core-js/internals/object-set-prototype-of.js
2023 - var require_object_set_prototype_of = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2024 - var uncurryThisAccessor = require_function_uncurry_this_accessor();
2025 - var isObject = require_is_object();
2026 - var requireObjectCoercible = require_require_object_coercible();
2027 - var aPossiblePrototype = require_a_possible_prototype();
2028 - module.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
2029 - var CORRECT_SETTER = false;
2030 - var test = {};
2031 - var setter;
2032 - try {
2033 - setter = uncurryThisAccessor(Object.prototype, "__proto__", "set");
2034 - setter(test, []);
2035 - CORRECT_SETTER = test instanceof Array;
2036 - } catch (error) {}
2037 - return function setPrototypeOf(O, proto) {
2038 - requireObjectCoercible(O);
2039 - aPossiblePrototype(proto);
2040 - if (!isObject(O)) return O;
2041 - if (CORRECT_SETTER) setter(O, proto);
2042 - else O.__proto__ = proto;
2043 - return O;
2044 - };
2045 - }() : void 0);
2046 - }));
1662 +/***/ "../assets/dev/js/frontend/utils/swiper.js":
1663 +/*!*************************************************!*\
1664 + !*** ../assets/dev/js/frontend/utils/swiper.js ***!
1665 + \*************************************************/
1666 +/***/ ((__unused_webpack_module, exports) => {
2047 1667
2048 -//#endregion
2049 -//#region node_modules/core-js/internals/inherit-if-required.js
2050 - var require_inherit_if_required = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2051 - var isCallable = require_is_callable();
2052 - var isObject = require_is_object();
2053 - var setPrototypeOf = require_object_set_prototype_of();
2054 - module.exports = function($this, dummy, Wrapper) {
2055 - var NewTarget;
2056 - var NewTargetPrototype;
2057 - if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf($this, NewTargetPrototype);
2058 - return $this;
2059 - };
2060 - }));
1668 +"use strict";
2061 1669
2062 -//#endregion
2063 -//#region node_modules/core-js/internals/to-string.js
2064 - var require_to_string = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2065 - var classof = require_classof();
2066 - var $String = String;
2067 - module.exports = function(argument) {
2068 - if (classof(argument) === "Symbol") throw new TypeError("Cannot convert a Symbol value to a string");
2069 - return $String(argument);
2070 - };
2071 - }));
2072 1670
2073 -//#endregion
2074 -//#region node_modules/core-js/internals/normalize-string-argument.js
2075 - var require_normalize_string_argument = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2076 - var toString = require_to_string();
2077 - module.exports = function(argument, $default) {
2078 - return argument === void 0 ? arguments.length < 2 ? "" : $default : toString(argument);
2079 - };
2080 - }));
1671 +Object.defineProperty(exports, "__esModule", ({
1672 + value: true
1673 +}));
1674 +exports["default"] = void 0;
1675 +class Swiper {
1676 + constructor(container, config) {
1677 + this.config = config;
1678 + if (this.config.breakpoints) {
1679 + // The config is passed as a param to allow adjustConfig to be called outside of this wrapper
1680 + this.config = this.adjustConfig(config);
1681 + }
1682 + if (container instanceof jQuery) {
1683 + container = container[0];
1684 + }
2081 1685
2082 -//#endregion
2083 -//#region node_modules/core-js/internals/dom-exception-constants.js
2084 - var require_dom_exception_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2085 - module.exports = {
2086 - IndexSizeError: {
2087 - s: "INDEX_SIZE_ERR",
2088 - c: 1,
2089 - m: 1
2090 - },
2091 - DOMStringSizeError: {
2092 - s: "DOMSTRING_SIZE_ERR",
2093 - c: 2,
2094 - m: 0
2095 - },
2096 - HierarchyRequestError: {
2097 - s: "HIERARCHY_REQUEST_ERR",
2098 - c: 3,
2099 - m: 1
2100 - },
2101 - WrongDocumentError: {
2102 - s: "WRONG_DOCUMENT_ERR",
2103 - c: 4,
2104 - m: 1
2105 - },
2106 - InvalidCharacterError: {
2107 - s: "INVALID_CHARACTER_ERR",
2108 - c: 5,
2109 - m: 1
2110 - },
2111 - NoDataAllowedError: {
2112 - s: "NO_DATA_ALLOWED_ERR",
2113 - c: 6,
2114 - m: 0
2115 - },
2116 - NoModificationAllowedError: {
2117 - s: "NO_MODIFICATION_ALLOWED_ERR",
2118 - c: 7,
2119 - m: 1
2120 - },
2121 - NotFoundError: {
2122 - s: "NOT_FOUND_ERR",
2123 - c: 8,
2124 - m: 1
2125 - },
2126 - NotSupportedError: {
2127 - s: "NOT_SUPPORTED_ERR",
2128 - c: 9,
2129 - m: 1
2130 - },
2131 - InUseAttributeError: {
2132 - s: "INUSE_ATTRIBUTE_ERR",
2133 - c: 10,
2134 - m: 1
2135 - },
2136 - InvalidStateError: {
2137 - s: "INVALID_STATE_ERR",
2138 - c: 11,
2139 - m: 1
2140 - },
2141 - SyntaxError: {
2142 - s: "SYNTAX_ERR",
2143 - c: 12,
2144 - m: 1
2145 - },
2146 - InvalidModificationError: {
2147 - s: "INVALID_MODIFICATION_ERR",
2148 - c: 13,
2149 - m: 1
2150 - },
2151 - NamespaceError: {
2152 - s: "NAMESPACE_ERR",
2153 - c: 14,
2154 - m: 1
2155 - },
2156 - InvalidAccessError: {
2157 - s: "INVALID_ACCESS_ERR",
2158 - c: 15,
2159 - m: 1
2160 - },
2161 - ValidationError: {
2162 - s: "VALIDATION_ERR",
2163 - c: 16,
2164 - m: 0
2165 - },
2166 - TypeMismatchError: {
2167 - s: "TYPE_MISMATCH_ERR",
2168 - c: 17,
2169 - m: 1
2170 - },
2171 - SecurityError: {
2172 - s: "SECURITY_ERR",
2173 - c: 18,
2174 - m: 1
2175 - },
2176 - NetworkError: {
2177 - s: "NETWORK_ERR",
2178 - c: 19,
2179 - m: 1
2180 - },
2181 - AbortError: {
2182 - s: "ABORT_ERR",
2183 - c: 20,
2184 - m: 1
2185 - },
2186 - URLMismatchError: {
2187 - s: "URL_MISMATCH_ERR",
2188 - c: 21,
2189 - m: 1
2190 - },
2191 - QuotaExceededError: {
2192 - s: "QUOTA_EXCEEDED_ERR",
2193 - c: 22,
2194 - m: 1
2195 - },
2196 - TimeoutError: {
2197 - s: "TIMEOUT_ERR",
2198 - c: 23,
2199 - m: 1
2200 - },
2201 - InvalidNodeTypeError: {
2202 - s: "INVALID_NODE_TYPE_ERR",
2203 - c: 24,
2204 - m: 1
2205 - },
2206 - DataCloneError: {
2207 - s: "DATA_CLONE_ERR",
2208 - c: 25,
2209 - m: 1
2210 - }
2211 - };
2212 - }));
1686 + // The Swiper will overlap the column width when applying custom margin values on the column.
1687 + container.closest('.elementor-widget-wrap')?.classList.add('e-swiper-container');
1688 + container.closest('.elementor-widget')?.classList.add('e-widget-swiper');
1689 + return new Promise(resolve => {
1690 + if (!elementorFrontend.config.experimentalFeatures.e_optimized_assets_loading) {
1691 + return resolve(this.createSwiperInstance(container, this.config));
1692 + }
1693 + elementorFrontend.utils.assetsLoader.load('script', 'swiper').then(() => resolve(this.createSwiperInstance(container, this.config)));
1694 + });
1695 + }
1696 + createSwiperInstance(container, config) {
1697 + const SwiperSource = window.Swiper;
1698 + SwiperSource.prototype.adjustConfig = this.adjustConfig;
1699 + return new SwiperSource(container, config);
1700 + }
2213 1701
2214 -//#endregion
2215 -//#region node_modules/core-js/internals/error-stack-clear.js
2216 - var require_error_stack_clear = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2217 - var uncurryThis = require_function_uncurry_this();
2218 - var $Error = Error;
2219 - var replace = uncurryThis("".replace);
2220 - var TEST = (function(arg) {
2221 - return String(new $Error(arg).stack);
2222 - })("zxcasd");
2223 - var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
2224 - var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
2225 - module.exports = function(stack, dropEntries) {
2226 - if (IS_V8_OR_CHAKRA_STACK && typeof stack == "string" && !$Error.prepareStackTrace) while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, "");
2227 - return stack;
2228 - };
2229 - }));
1702 + // Backwards compatibility for Elementor Pro <2.9.0 (old Swiper version - <5.0.0)
1703 + // In Swiper 5.0.0 and up, breakpoints changed from acting as max-width to acting as min-width
1704 + adjustConfig(config) {
1705 + // Only reverse the breakpoints if the handle param has been defined
1706 + if (!config.handleElementorBreakpoints) {
1707 + return config;
1708 + }
1709 + const elementorBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
1710 + elementorBreakpointValues = elementorFrontend.breakpoints.getBreakpointValues();
1711 + Object.keys(config.breakpoints).forEach(configBPKey => {
1712 + const configBPKeyInt = parseInt(configBPKey);
1713 + let breakpointToUpdate;
2230 1714
2231 -//#endregion
2232 -//#region node_modules/core-js/modules/web.dom-exception.stack.js
2233 - var require_web_dom_exception_stack = /* @__PURE__ */ __commonJSMin((() => {
2234 - var $ = require_export();
2235 - var globalThis = require_global_this();
2236 - var getBuiltIn = require_get_built_in();
2237 - var createPropertyDescriptor = require_create_property_descriptor();
2238 - var defineProperty = require_object_define_property().f;
2239 - var hasOwn = require_has_own_property();
2240 - var anInstance = require_an_instance();
2241 - var inheritIfRequired = require_inherit_if_required();
2242 - var normalizeStringArgument = require_normalize_string_argument();
2243 - var DOMExceptionConstants = require_dom_exception_constants();
2244 - var clearErrorStack = require_error_stack_clear();
2245 - var DESCRIPTORS = require_descriptors();
2246 - var IS_PURE = require_is_pure();
2247 - var DOM_EXCEPTION = "DOMException";
2248 - var Error = getBuiltIn("Error");
2249 - var NativeDOMException = getBuiltIn(DOM_EXCEPTION);
2250 - var $DOMException = function DOMException() {
2251 - anInstance(this, DOMExceptionPrototype);
2252 - var argumentsLength = arguments.length;
2253 - var message = normalizeStringArgument(argumentsLength < 1 ? void 0 : arguments[0]);
2254 - var that = new NativeDOMException(message, normalizeStringArgument(argumentsLength < 2 ? void 0 : arguments[1], "Error"));
2255 - var error = new Error(message);
2256 - error.name = DOM_EXCEPTION;
2257 - defineProperty(that, "stack", createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
2258 - inheritIfRequired(that, this, $DOMException);
2259 - return that;
2260 - };
2261 - var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;
2262 - var ERROR_HAS_STACK = "stack" in new Error(DOM_EXCEPTION);
2263 - var DOM_EXCEPTION_HAS_STACK = "stack" in new NativeDOMException(1, 2);
2264 - var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);
2265 - var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);
2266 - var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;
2267 - $({
2268 - global: true,
2269 - constructor: true,
2270 - forced: IS_PURE || FORCED_CONSTRUCTOR
2271 - }, { DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException });
2272 - var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);
2273 - var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;
2274 - if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {
2275 - if (!IS_PURE) defineProperty(PolyfilledDOMExceptionPrototype, "constructor", createPropertyDescriptor(1, PolyfilledDOMException));
2276 - for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {
2277 - var constant = DOMExceptionConstants[key];
2278 - var constantName = constant.s;
2279 - if (!hasOwn(PolyfilledDOMException, constantName)) defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));
2280 - }
2281 - }
2282 - }));
1715 + // The `configBPKeyInt + 1` is a BC Fix for Elementor Pro Carousels from 2.8.0-2.8.3 used with Elementor >= 2.9.0
1716 + if (configBPKeyInt === elementorBreakpoints.mobile.value || configBPKeyInt + 1 === elementorBreakpoints.mobile.value) {
1717 + // This handles the mobile breakpoint. Elementor's default sm breakpoint is never actually used,
1718 + // so the mobile breakpoint (md) needs to be handled separately and set to the 0 breakpoint (xs)
1719 + breakpointToUpdate = 0;
1720 + } else if (elementorBreakpoints.widescreen && (configBPKeyInt === elementorBreakpoints.widescreen.value || configBPKeyInt + 1 === elementorBreakpoints.widescreen.value)) {
1721 + // Widescreen is a min-width breakpoint. Since in Swiper >5.0 the breakpoint system is min-width based,
1722 + // the value we pass to the Swiper instance in this case is the breakpoint from the user, unchanged.
1723 + breakpointToUpdate = configBPKeyInt;
1724 + } else {
1725 + // Find the index of the current config breakpoint in the Elementor Breakpoints array
1726 + const currentBPIndexInElementorBPs = elementorBreakpointValues.findIndex(elementorBP => {
1727 + // BC Fix for Elementor Pro Carousels from 2.8.0-2.8.3 used with Elementor >= 2.9.0
1728 + return configBPKeyInt === elementorBP || configBPKeyInt + 1 === elementorBP;
1729 + });
2283 1730
2284 -//#endregion
2285 -//#region assets/dev/js/frontend/utils/url-actions.js
2286 - var require_url_actions = /* @__PURE__ */ __commonJSMin(((exports) => {
2287 - init_asyncToGenerator();
2288 - Object.defineProperty(exports, "__esModule", { value: true });
2289 - exports.default = void 0;
2290 - require_web_dom_exception_stack();
2291 - var _default = class extends elementorModules.ViewModule {
2292 - getDefaultSettings() {
2293 - return { selectors: { links: "a[href^=\"%23elementor-action\"], a[href^=\"#elementor-action\"]" } };
2294 - }
2295 - bindEvents() {
2296 - elementorFrontend.elements.$document.on("click", this.getSettings("selectors.links"), this.runLinkAction.bind(this));
2297 - }
2298 - initActions() {
2299 - this.actions = { lightbox: function() {
2300 - var _ref = _asyncToGenerator(function* (settings) {
2301 - const lightbox = yield elementorFrontend.utils.lightbox;
2302 - if (settings.slideshow) lightbox.openSlideshow(settings.slideshow, settings.url);
2303 - else {
2304 - if (settings.id) settings.type = "image";
2305 - lightbox.showModal(settings);
2306 - }
2307 - });
2308 - return function lightbox(_x) {
2309 - return _ref.apply(this, arguments);
2310 - };
2311 - }() };
2312 - }
2313 - addAction(name, callback) {
2314 - this.actions[name] = callback;
2315 - }
2316 - runAction(url, ...restArgs) {
2317 - url = decodeURI(url);
2318 - url = decodeURIComponent(url);
2319 - const actionMatch = url.match(/action=(.+?)&/);
2320 - if (!actionMatch) return;
2321 - const action = this.actions[actionMatch[1]];
2322 - if (!action) return;
2323 - let settings = {};
2324 - const settingsMatch = url.match(/settings=(.+)/);
2325 - if (settingsMatch) settings = JSON.parse(atob(settingsMatch[1]));
2326 - settings.previousEvent = event;
2327 - action(settings, ...restArgs);
2328 - }
2329 - runLinkAction(event) {
2330 - event.preventDefault();
2331 - this.runAction(jQuery(event.currentTarget).attr("href"), event);
2332 - }
2333 - runHashAction() {
2334 - if (!location.hash) return;
2335 - const elementWithHash = document.querySelector(`[data-e-action-hash="${location.hash}"], a[href*="${location.hash}"]`);
2336 - if (elementWithHash) this.runAction(elementWithHash.getAttribute("data-e-action-hash"));
2337 - }
2338 - createActionHash(action, settings) {
2339 - return encodeURIComponent(`#elementor-action:action=${action}&settings=${btoa(JSON.stringify(settings))}`);
2340 - }
2341 - onInit() {
2342 - super.onInit();
2343 - this.initActions();
2344 - elementorFrontend.on("components:init", this.runHashAction.bind(this));
2345 - }
2346 - };
2347 - exports.default = _default;
2348 - }));
1731 + // For all other Swiper config breakpoints, move them one breakpoint down on the breakpoint list,
1732 + // according to the array of Elementor's global breakpoints
1733 + breakpointToUpdate = elementorBreakpointValues[currentBPIndexInElementorBPs - 1];
1734 + }
1735 + config.breakpoints[breakpointToUpdate] = config.breakpoints[configBPKey];
2349 1736
2350 -//#endregion
2351 -//#region assets/dev/js/frontend/utils/swiper.js
2352 - var require_swiper = /* @__PURE__ */ __commonJSMin(((exports) => {
2353 - Object.defineProperty(exports, "__esModule", { value: true });
2354 - exports.default = void 0;
2355 - require_esnext_iterator_constructor();
2356 - require_esnext_iterator_for_each();
2357 - var SwiperHandler = class {
2358 - constructor(container, config) {
2359 - var _container$closest;
2360 - var _container$closest2;
2361 - this.config = config;
2362 - if (this.config.breakpoints) this.config = this.adjustConfig(config);
2363 - if (container instanceof jQuery) container = container[0];
2364 - (_container$closest = container.closest(".elementor-widget-wrap")) === null || _container$closest === void 0 || _container$closest.classList.add("e-swiper-container");
2365 - (_container$closest2 = container.closest(".elementor-widget")) === null || _container$closest2 === void 0 || _container$closest2.classList.add("e-widget-swiper");
2366 - return new Promise((resolve) => {
2367 - if ("undefined" === typeof Swiper) {
2368 - elementorFrontend.utils.assetsLoader.load("script", "swiper").then(() => resolve(this.createSwiperInstance(container, this.config)));
2369 - return;
2370 - }
2371 - if ("function" === typeof Swiper && "undefined" === typeof window.Swiper) window.Swiper = Swiper;
2372 - resolve(this.createSwiperInstance(container, this.config));
2373 - });
2374 - }
2375 - createSwiperInstance(container, config) {
2376 - const SwiperSource = window.Swiper;
2377 - SwiperSource.prototype.adjustConfig = this.adjustConfig;
2378 - config = this.applyMotionPreferences(config);
2379 - return new SwiperSource(container, config);
2380 - }
2381 - adjustConfig(config) {
2382 - if (!config.handleElementorBreakpoints) return config;
2383 - const elementorBreakpoints = elementorFrontend.config.responsive.activeBreakpoints;
2384 - const elementorBreakpointValues = elementorFrontend.breakpoints.getBreakpointValues();
2385 - Object.keys(config.breakpoints).forEach((configBPKey) => {
2386 - const configBPKeyInt = parseInt(configBPKey);
2387 - let breakpointToUpdate;
2388 - if (configBPKeyInt === elementorBreakpoints.mobile.value || configBPKeyInt + 1 === elementorBreakpoints.mobile.value) breakpointToUpdate = 0;
2389 - else if (elementorBreakpoints.widescreen && (configBPKeyInt === elementorBreakpoints.widescreen.value || configBPKeyInt + 1 === elementorBreakpoints.widescreen.value)) breakpointToUpdate = configBPKeyInt;
2390 - else {
2391 - const currentBPIndexInElementorBPs = elementorBreakpointValues.findIndex((elementorBP) => {
2392 - return configBPKeyInt === elementorBP || configBPKeyInt + 1 === elementorBP;
2393 - });
2394 - breakpointToUpdate = elementorBreakpointValues[currentBPIndexInElementorBPs - 1];
2395 - }
2396 - config.breakpoints[breakpointToUpdate] = config.breakpoints[configBPKey];
2397 - config.breakpoints[configBPKey] = {
2398 - slidesPerView: config.slidesPerView,
2399 - slidesPerGroup: config.slidesPerGroup ? config.slidesPerGroup : 1
2400 - };
2401 - });
2402 - return config;
2403 - }
2404 - applyMotionPreferences(config) {
2405 - if (!window.matchMedia("(prefers-reduced-motion: reduce)").matches) return config;
2406 - return Object.assign({}, config, {
2407 - speed: 0,
2408 - autoplay: false
2409 - });
2410 - }
2411 - };
2412 - exports.default = SwiperHandler;
2413 - }));
1737 + // Then reset the settings in the original breakpoint key to the default values
1738 + config.breakpoints[configBPKey] = {
1739 + slidesPerView: config.slidesPerView,
1740 + slidesPerGroup: config.slidesPerGroup ? config.slidesPerGroup : 1
1741 + };
1742 + });
1743 + return config;
1744 + }
1745 +}
1746 +exports["default"] = Swiper;
2414 1747
2415 -//#endregion
2416 -//#region assets/dev/js/frontend/utils/lightbox/lightbox-manager.js
2417 - var require_lightbox_manager = /* @__PURE__ */ __commonJSMin(((exports) => {
2418 - init_asyncToGenerator();
2419 - Object.defineProperty(exports, "__esModule", { value: true });
2420 - exports.default = void 0;
2421 - require_esnext_iterator_constructor();
2422 - require_esnext_iterator_find();
2423 - var LightboxManager = class LightboxManager extends elementorModules.ViewModule {
2424 - static getLightbox() {
2425 - const lightboxPromise = new Promise((resolveLightbox) => {
2426 - __elementorLoadChunk("lightbox-lightbox").then(({ default: LightboxModule }) => resolveLightbox(new LightboxModule()));
2427 - });
2428 - const dialogScriptPromise = elementorFrontend.utils.assetsLoader.load("script", "dialog");
2429 - const dialogStylePromise = elementorFrontend.utils.assetsLoader.load("style", "dialog");
2430 - const shareLinkPromise = elementorFrontend.utils.assetsLoader.load("script", "share-link");
2431 - const swiperStylePromise = elementorFrontend.utils.assetsLoader.load("style", "swiper");
2432 - const lightboxStylePromise = elementorFrontend.utils.assetsLoader.load("style", "e-lightbox");
2433 - return Promise.all([
2434 - lightboxPromise,
2435 - dialogScriptPromise,
2436 - dialogStylePromise,
2437 - shareLinkPromise,
2438 - swiperStylePromise,
2439 - lightboxStylePromise
2440 - ]).then(() => lightboxPromise);
2441 - }
2442 - getDefaultSettings() {
2443 - return { selectors: {
2444 - links: "a, [data-elementor-lightbox]",
2445 - slideshow: "[data-elementor-lightbox-slideshow]"
2446 - } };
2447 - }
2448 - getDefaultElements() {
2449 - return {
2450 - $links: jQuery(this.getSettings("selectors.links")),
2451 - $slideshow: jQuery(this.getSettings("selectors.slideshow"))
2452 - };
2453 - }
2454 - isLightboxLink(element) {
2455 - if ("a" === element.tagName.toLowerCase() && (element.hasAttribute("download") || !/^[^?]+\.(png|jpe?g|gif|svg|webp|avif)(\?.*)?$/i.test(element.href)) && !element.dataset.elementorLightboxVideo) return false;
2456 - const generalOpenInLightbox = elementorFrontend.getKitSettings("global_image_lightbox");
2457 - const currentLinkOpenInLightbox = element.dataset.elementorOpenLightbox;
2458 - return "yes" === currentLinkOpenInLightbox || generalOpenInLightbox && "no" !== currentLinkOpenInLightbox;
2459 - }
2460 - isLightboxSlideshow() {
2461 - return 0 !== this.elements.$slideshow.length;
2462 - }
2463 - onLinkClick(event) {
2464 - var _this = this;
2465 - return _asyncToGenerator(function* () {
2466 - const element = event.currentTarget;
2467 - const $target = jQuery(event.target);
2468 - const editMode = elementorFrontend.isEditMode();
2469 - const isColorPickingMode = editMode && elementor.$previewContents.find("body").hasClass("elementor-editor__ui-state__color-picker");
2470 - const isClickInsideElementor = !!$target.closest(".elementor-edit-area").length;
2471 - if (!_this.isLightboxLink(element)) {
2472 - if (editMode && isClickInsideElementor) event.preventDefault();
2473 - return;
2474 - }
2475 - event.preventDefault();
2476 - if (editMode && !elementor.getPreferences("lightbox_in_editor")) return;
2477 - if (isColorPickingMode) return;
2478 - (yield LightboxManager.getLightbox()).createLightbox(element);
2479 - })();
2480 - }
2481 - bindEvents() {
2482 - elementorFrontend.elements.$document.on("click", this.getSettings("selectors.links"), (event) => this.onLinkClick(event));
2483 - }
2484 - onInit(...args) {
2485 - super.onInit(...args);
2486 - if (elementorFrontend.isEditMode()) return;
2487 - this.maybeActivateLightboxOnLink();
2488 - }
2489 - maybeActivateLightboxOnLink() {
2490 - this.elements.$links.each((index, element) => {
2491 - if (this.isLightboxLink(element)) {
2492 - LightboxManager.getLightbox();
2493 - return false;
2494 - }
2495 - });
2496 - }
2497 - };
2498 - exports.default = LightboxManager;
2499 - }));
1748 +/***/ }),
2500 1749
2501 -//#endregion
2502 -//#region assets/dev/js/frontend/utils/assets-loader.js
2503 - var require_assets_loader = /* @__PURE__ */ __commonJSMin(((exports) => {
2504 - var _elementorFrontendCon;
2505 - Object.defineProperty(exports, "__esModule", { value: true });
2506 - exports.default = void 0;
2507 - var AssetsLoader = class AssetsLoader {
2508 - getScriptElement(src) {
2509 - const scriptElement = document.createElement("script");
2510 - scriptElement.src = src;
2511 - return scriptElement;
2512 - }
2513 - getStyleElement(src) {
2514 - const styleElement = document.createElement("link");
2515 - styleElement.rel = "stylesheet";
2516 - styleElement.href = src;
2517 - return styleElement;
2518 - }
2519 - load(type, key) {
2520 - const assetData = AssetsLoader.assets[type][key];
2521 - if (!assetData.loader) assetData.loader = this.isAssetLoaded(assetData, type) ? Promise.resolve(true) : this.loadAsset(assetData, type);
2522 - return assetData.loader;
2523 - }
2524 - isAssetLoaded(assetData, assetType) {
2525 - var _document$querySelect;
2526 - const filePath = "script" === assetType ? `script[src="${assetData.src}"]` : `link[href="${assetData.src}"]`;
2527 - return !!((_document$querySelect = document.querySelectorAll(filePath)) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.length);
2528 - }
2529 - loadAsset(assetData, assetType) {
2530 - return new Promise((resolve) => {
2531 - const element = "style" === assetType ? this.getStyleElement(assetData.src) : this.getScriptElement(assetData.src);
2532 - element.onload = () => resolve(true);
2533 - this.appendAsset(assetData, element);
2534 - });
2535 - }
2536 - appendAsset(assetData, element) {
2537 - const beforeElement = document.querySelector(assetData.before);
2538 - if (!!beforeElement) {
2539 - beforeElement.insertAdjacentElement("beforebegin", element);
2540 - return;
2541 - }
2542 - const parent = "head" === assetData.parent ? assetData.parent : "body";
2543 - document[parent].appendChild(element);
2544 - }
2545 - };
2546 - exports.default = AssetsLoader;
2547 - var assetsUrl = elementorFrontendConfig.urls.assets;
2548 - var fileSuffix = elementorFrontendConfig.environmentMode.isScriptDebug ? "" : ".min";
2549 - var pluginVersion = elementorFrontendConfig.version;
2550 - AssetsLoader.assets = {
2551 - script: {
2552 - dialog: { src: `${assetsUrl}lib/dialog/dialog${fileSuffix}.js?ver=4.9.3` },
2553 - "share-link": { src: `${assetsUrl}lib/share-link/share-link${fileSuffix}.js?ver=${pluginVersion}` },
2554 - swiper: { src: `${assetsUrl}lib/swiper/v8/swiper${fileSuffix}.js?ver=8.4.5` }
2555 - },
2556 - style: {
2557 - swiper: {
2558 - src: `${assetsUrl}lib/swiper/v8/css/swiper${fileSuffix}.css?ver=8.4.5`,
2559 - parent: "head"
2560 - },
2561 - "e-lightbox": { src: ((_elementorFrontendCon = elementorFrontendConfig) === null || _elementorFrontendCon === void 0 || (_elementorFrontendCon = _elementorFrontendCon.responsive) === null || _elementorFrontendCon === void 0 ? void 0 : _elementorFrontendCon.hasCustomBreakpoints) ? `${elementorFrontendConfig.urls.uploadUrl}/elementor/css/custom-lightbox.min.css?ver=${pluginVersion}` : `${assetsUrl}css/conditionals/lightbox${fileSuffix}.css?ver=${pluginVersion}` },
2562 - dialog: {
2563 - src: `${assetsUrl}css/conditionals/dialog${fileSuffix}.css?ver=${pluginVersion}`,
2564 - parent: "head",
2565 - before: "#elementor-frontend-css"
2566 - }
2567 - }
2568 - };
2569 - }));
1750 +/***/ "../assets/dev/js/frontend/utils/url-actions.js":
1751 +/*!******************************************************!*\
1752 + !*** ../assets/dev/js/frontend/utils/url-actions.js ***!
1753 + \******************************************************/
1754 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2570 1755
2571 -//#endregion
2572 -//#region \0@[email protected]/helpers/esm/typeof.js
2573 - function _typeof(o) {
2574 - "@babel/helpers - typeof";
2575 - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
2576 - return typeof o;
2577 - } : function(o) {
2578 - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
2579 - }, _typeof(o);
2580 - }
2581 - var init_typeof = __esmMin((() => {}));
1756 +"use strict";
2582 1757
2583 -//#endregion
2584 -//#region \0@[email protected]/helpers/esm/toPrimitive.js
2585 - function toPrimitive(t, r) {
2586 - if ("object" != _typeof(t) || !t) return t;
2587 - var e = t[Symbol.toPrimitive];
2588 - if (void 0 !== e) {
2589 - var i = e.call(t, r || "default");
2590 - if ("object" != _typeof(i)) return i;
2591 - throw new TypeError("@@toPrimitive must return a primitive value.");
2592 - }
2593 - return ("string" === r ? String : Number)(t);
2594 - }
2595 - var init_toPrimitive = __esmMin((() => {
2596 - init_typeof();
2597 - }));
2598 1758
2599 -//#endregion
2600 -//#region \0@[email protected]/helpers/esm/toPropertyKey.js
2601 - function toPropertyKey(t) {
2602 - var i = toPrimitive(t, "string");
2603 - return "symbol" == _typeof(i) ? i : i + "";
2604 - }
2605 - var init_toPropertyKey = __esmMin((() => {
2606 - init_typeof();
2607 - init_toPrimitive();
2608 - }));
1759 +Object.defineProperty(exports, "__esModule", ({
1760 + value: true
1761 +}));
1762 +exports["default"] = void 0;
1763 +__webpack_require__(/*! core-js/modules/web.dom-exception.stack.js */ "../node_modules/core-js/modules/web.dom-exception.stack.js");
1764 +class _default extends elementorModules.ViewModule {
1765 + getDefaultSettings() {
1766 + return {
1767 + selectors: {
1768 + links: 'a[href^="%23elementor-action"], a[href^="#elementor-action"]'
1769 + }
1770 + };
1771 + }
1772 + bindEvents() {
1773 + elementorFrontend.elements.$document.on('click', this.getSettings('selectors.links'), this.runLinkAction.bind(this));
1774 + }
1775 + initActions() {
1776 + this.actions = {
1777 + lightbox: async settings => {
1778 + const lightbox = await elementorFrontend.utils.lightbox;
1779 + if (settings.slideshow) {
1780 + // Handle slideshow display
1781 + lightbox.openSlideshow(settings.slideshow, settings.url);
1782 + } else {
1783 + // If the settings has an ID - the lightbox target content is an image - the ID is an attachment ID.
1784 + if (settings.id) {
1785 + settings.type = 'image';
1786 + }
1787 + lightbox.showModal(settings);
1788 + }
1789 + }
1790 + };
1791 + }
1792 + addAction(name, callback) {
1793 + this.actions[name] = callback;
1794 + }
1795 + runAction(url) {
1796 + url = decodeURIComponent(url);
1797 + const actionMatch = url.match(/action=(.+?)&/);
1798 + if (!actionMatch) {
1799 + return;
1800 + }
1801 + const action = this.actions[actionMatch[1]];
1802 + if (!action) {
1803 + return;
1804 + }
1805 + let settings = {};
1806 + const settingsMatch = url.match(/settings=(.+)/);
1807 + if (settingsMatch) {
1808 + settings = JSON.parse(atob(settingsMatch[1]));
1809 + }
1810 + for (var _len = arguments.length, restArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1811 + restArgs[_key - 1] = arguments[_key];
1812 + }
1813 + action(settings, ...restArgs);
1814 + }
1815 + runLinkAction(event) {
1816 + event.preventDefault();
1817 + this.runAction(jQuery(event.currentTarget).attr('href'), event);
1818 + }
1819 + runHashAction() {
1820 + if (!location.hash) {
1821 + return;
1822 + }
2609 1823
2610 -//#endregion
2611 -//#region \0@[email protected]/helpers/esm/defineProperty.js
2612 - function _defineProperty(e, r, t) {
2613 - return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
2614 - value: t,
2615 - enumerable: !0,
2616 - configurable: !0,
2617 - writable: !0
2618 - }) : e[r] = t, e;
2619 - }
2620 - var init_defineProperty = __esmMin((() => {
2621 - init_toPropertyKey();
2622 - }));
1824 + // Only if an element with this action hash exists on the page do we allow running the action.
1825 + const elementWithHash = document.querySelector(`[data-e-action-hash="${location.hash}"], a[href*="${location.hash}"]`);
1826 + if (elementWithHash) {
1827 + this.runAction(elementWithHash.getAttribute('data-e-action-hash'));
1828 + }
1829 + }
1830 + createActionHash(action, settings) {
1831 + // We need to encode the hash tag (#) here, in order to support share links for a variety of providers
1832 + return encodeURIComponent(`#elementor-action:action=${action}&settings=${btoa(JSON.stringify(settings))}`);
1833 + }
1834 + onInit() {
1835 + super.onInit();
1836 + this.initActions();
1837 + elementorFrontend.on('components:init', this.runHashAction.bind(this));
1838 + }
1839 +}
1840 +exports["default"] = _default;
2623 1841
2624 -//#endregion
2625 -//#region \0@[email protected]/helpers/esm/objectSpread2.js
2626 - function ownKeys(e, r) {
2627 - var t = Object.keys(e);
2628 - if (Object.getOwnPropertySymbols) {
2629 - var o = Object.getOwnPropertySymbols(e);
2630 - r && (o = o.filter(function(r) {
2631 - return Object.getOwnPropertyDescriptor(e, r).enumerable;
2632 - })), t.push.apply(t, o);
2633 - }
2634 - return t;
2635 - }
2636 - function _objectSpread2(e) {
2637 - for (var r = 1; r < arguments.length; r++) {
2638 - var t = null != arguments[r] ? arguments[r] : {};
2639 - r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
2640 - _defineProperty(e, r, t[r]);
2641 - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
2642 - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
2643 - });
2644 - }
2645 - return e;
2646 - }
2647 - var init_objectSpread2 = __esmMin((() => {
2648 - init_defineProperty();
2649 - }));
1842 +/***/ }),
2650 1843
2651 -//#endregion
2652 -//#region node_modules/core-js/internals/is-array.js
2653 - var require_is_array = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2654 - var classof = require_classof_raw();
2655 - module.exports = Array.isArray || function isArray(argument) {
2656 - return classof(argument) === "Array";
2657 - };
2658 - }));
1844 +/***/ "../assets/dev/js/frontend/utils/utils.js":
1845 +/*!************************************************!*\
1846 + !*** ../assets/dev/js/frontend/utils/utils.js ***!
1847 + \************************************************/
1848 +/***/ ((__unused_webpack_module, exports) => {
2659 1849
2660 -//#endregion
2661 -//#region node_modules/core-js/internals/array-set-length.js
2662 - var require_array_set_length = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2663 - var DESCRIPTORS = require_descriptors();
2664 - var isArray = require_is_array();
2665 - var $TypeError = TypeError;
2666 - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
2667 - var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function() {
2668 - if (this !== void 0) return true;
2669 - try {
2670 - Object.defineProperty([], "length", { writable: false }).length = 1;
2671 - } catch (error) {
2672 - return error instanceof TypeError;
2673 - }
2674 - }();
2675 - module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function(O, length) {
2676 - if (isArray(O) && !getOwnPropertyDescriptor(O, "length").writable) throw new $TypeError("Cannot set read only .length");
2677 - return O.length = length;
2678 - } : function(O, length) {
2679 - return O.length = length;
2680 - };
2681 - }));
1850 +"use strict";
2682 1851
2683 -//#endregion
2684 -//#region node_modules/core-js/internals/does-not-exceed-safe-integer.js
2685 - var require_does_not_exceed_safe_integer = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2686 - var $TypeError = TypeError;
2687 - var MAX_SAFE_INTEGER = 9007199254740991;
2688 - module.exports = function(it) {
2689 - if (it > MAX_SAFE_INTEGER) throw $TypeError("Maximum allowed index exceeded");
2690 - return it;
2691 - };
2692 - }));
2693 1852
2694 -//#endregion
2695 -//#region node_modules/core-js/modules/es.array.push.js
2696 - var require_es_array_push = /* @__PURE__ */ __commonJSMin((() => {
2697 - var $ = require_export();
2698 - var toObject = require_to_object();
2699 - var lengthOfArrayLike = require_length_of_array_like();
2700 - var setArrayLength = require_array_set_length();
2701 - var doesNotExceedSafeInteger = require_does_not_exceed_safe_integer();
2702 - var INCORRECT_TO_LENGTH = require_fails()(function() {
2703 - return [].push.call({ length: 4294967296 }, 1) !== 4294967297;
2704 - });
2705 - var properErrorOnNonWritableLength = function() {
2706 - try {
2707 - Object.defineProperty([], "length", { writable: false }).push();
2708 - } catch (error) {
2709 - return error instanceof TypeError;
2710 - }
2711 - };
2712 - $({
2713 - target: "Array",
2714 - proto: true,
2715 - arity: 1,
2716 - forced: INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength()
2717 - }, { push: function push(item) {
2718 - var O = toObject(this);
2719 - var len = lengthOfArrayLike(O);
2720 - var argCount = arguments.length;
2721 - doesNotExceedSafeInteger(len + argCount);
2722 - for (var i = 0; i < argCount; i++) {
2723 - O[len] = arguments[i];
2724 - len++;
2725 - }
2726 - setArrayLength(O, len);
2727 - return len;
2728 - } });
2729 - }));
1853 +Object.defineProperty(exports, "__esModule", ({
1854 + value: true
1855 +}));
1856 +exports.isScrollSnapActive = exports.escapeHTML = void 0;
1857 +// Escape HTML special chars to prevent XSS.
1858 +const escapeHTML = str => {
1859 + const specialChars = {
1860 + '&': '&amp;',
1861 + '<': '&lt;',
1862 + '>': '&gt;',
1863 + "'": '&#39;',
1864 + '"': '&quot;'
1865 + };
1866 + return str.replace(/[&<>'"]/g, tag => specialChars[tag] || tag);
1867 +};
2730 1868
2731 -//#endregion
2732 -//#region node_modules/core-js/internals/define-built-ins.js
2733 - var require_define_built_ins = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2734 - var defineBuiltIn = require_define_built_in();
2735 - module.exports = function(target, src, options) {
2736 - for (var key in src) defineBuiltIn(target, key, src[key], options);
2737 - return target;
2738 - };
2739 - }));
1869 +// Check if Scroll-Snap is active.
1870 +exports.escapeHTML = escapeHTML;
1871 +const isScrollSnapActive = () => {
1872 + const scrollSnapStatus = elementorFrontend.isEditMode() ? elementor.settings.page.model.attributes?.scroll_snap : elementorFrontend.config.settings.page?.scroll_snap;
1873 + return 'yes' === scrollSnapStatus ? true : false;
1874 +};
1875 +exports.isScrollSnapActive = isScrollSnapActive;
2740 1876
2741 -//#endregion
2742 -//#region node_modules/core-js/internals/create-iter-result-object.js
2743 - var require_create_iter_result_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2744 - module.exports = function(value, done) {
2745 - return {
2746 - value,
2747 - done
2748 - };
2749 - };
2750 - }));
1877 +/***/ }),
2751 1878
2752 -//#endregion
2753 -//#region node_modules/core-js/internals/iterator-close-all.js
2754 - var require_iterator_close_all = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2755 - var iteratorClose = require_iterator_close();
2756 - module.exports = function(iters, kind, value) {
2757 - for (var i = iters.length - 1; i >= 0; i--) {
2758 - if (iters[i] === void 0) continue;
2759 - try {
2760 - value = iteratorClose(iters[i].iterator, kind, value);
2761 - } catch (error) {
2762 - kind = "throw";
2763 - value = error;
2764 - }
2765 - }
2766 - if (kind === "throw") throw value;
2767 - return value;
2768 - };
2769 - }));
1879 +/***/ "../assets/dev/js/frontend/utils/video-api/base-loader.js":
1880 +/*!****************************************************************!*\
1881 + !*** ../assets/dev/js/frontend/utils/video-api/base-loader.js ***!
1882 + \****************************************************************/
1883 +/***/ ((__unused_webpack_module, exports) => {
2770 1884
2771 -//#endregion
2772 -//#region node_modules/core-js/internals/iterator-create-proxy.js
2773 - var require_iterator_create_proxy = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2774 - var call = require_function_call();
2775 - var create = require_object_create();
2776 - var createNonEnumerableProperty = require_create_non_enumerable_property();
2777 - var defineBuiltIns = require_define_built_ins();
2778 - var wellKnownSymbol = require_well_known_symbol();
2779 - var InternalStateModule = require_internal_state();
2780 - var getMethod = require_get_method();
2781 - var IteratorPrototype = require_iterators_core().IteratorPrototype;
2782 - var createIterResultObject = require_create_iter_result_object();
2783 - var iteratorClose = require_iterator_close();
2784 - var iteratorCloseAll = require_iterator_close_all();
2785 - var TO_STRING_TAG = wellKnownSymbol("toStringTag");
2786 - var ITERATOR_HELPER = "IteratorHelper";
2787 - var WRAP_FOR_VALID_ITERATOR = "WrapForValidIterator";
2788 - var NORMAL = "normal";
2789 - var THROW = "throw";
2790 - var setInternalState = InternalStateModule.set;
2791 - var createIteratorProxyPrototype = function(IS_ITERATOR) {
2792 - var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);
2793 - return defineBuiltIns(create(IteratorPrototype), {
2794 - next: function next() {
2795 - var state = getInternalState(this);
2796 - if (IS_ITERATOR) return state.nextHandler();
2797 - if (state.done) return createIterResultObject(void 0, true);
2798 - try {
2799 - var result = state.nextHandler();
2800 - return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
2801 - } catch (error) {
2802 - state.done = true;
2803 - throw error;
2804 - }
2805 - },
2806 - "return": function() {
2807 - var state = getInternalState(this);
2808 - var iterator = state.iterator;
2809 - state.done = true;
2810 - if (IS_ITERATOR) {
2811 - var returnMethod = getMethod(iterator, "return");
2812 - return returnMethod ? call(returnMethod, iterator) : createIterResultObject(void 0, true);
2813 - }
2814 - if (state.inner) try {
2815 - iteratorClose(state.inner.iterator, NORMAL);
2816 - } catch (error) {
2817 - return iteratorClose(iterator, THROW, error);
2818 - }
2819 - if (state.openIters) try {
2820 - iteratorCloseAll(state.openIters, NORMAL);
2821 - } catch (error) {
2822 - return iteratorClose(iterator, THROW, error);
2823 - }
2824 - if (iterator) iteratorClose(iterator, NORMAL);
2825 - return createIterResultObject(void 0, true);
2826 - }
2827 - });
2828 - };
2829 - var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);
2830 - var IteratorHelperPrototype = createIteratorProxyPrototype(false);
2831 - createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, "Iterator Helper");
2832 - module.exports = function(nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
2833 - var IteratorProxy = function Iterator(record, state) {
2834 - if (state) {
2835 - state.iterator = record.iterator;
2836 - state.next = record.next;
2837 - } else state = record;
2838 - state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
2839 - state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
2840 - state.nextHandler = nextHandler;
2841 - state.counter = 0;
2842 - state.done = false;
2843 - setInternalState(this, state);
2844 - };
2845 - IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;
2846 - return IteratorProxy;
2847 - };
2848 - }));
1885 +"use strict";
2849 1886
2850 -//#endregion
2851 -//#region node_modules/core-js/internals/call-with-safe-iteration-closing.js
2852 - var require_call_with_safe_iteration_closing = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2853 - var anObject = require_an_object();
2854 - var iteratorClose = require_iterator_close();
2855 - module.exports = function(iterator, fn, value, ENTRIES) {
2856 - try {
2857 - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
2858 - } catch (error) {
2859 - iteratorClose(iterator, "throw", error);
2860 - }
2861 - };
2862 - }));
2863 1887
2864 -//#endregion
2865 -//#region node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js
2866 - var require_iterator_helper_throws_on_invalid_iterator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2867 - module.exports = function(methodName, argument) {
2868 - var method = typeof Iterator == "function" && Iterator.prototype[methodName];
2869 - if (method) try {
2870 - method.call({ next: null }, argument).next();
2871 - } catch (error) {
2872 - return true;
2873 - }
2874 - };
2875 - }));
1888 +Object.defineProperty(exports, "__esModule", ({
1889 + value: true
1890 +}));
1891 +exports["default"] = void 0;
1892 +class BaseLoader extends elementorModules.ViewModule {
1893 + getDefaultSettings() {
1894 + return {
1895 + isInserted: false,
1896 + selectors: {
1897 + firstScript: 'script:first'
1898 + }
1899 + };
1900 + }
1901 + getDefaultElements() {
1902 + return {
1903 + $firstScript: jQuery(this.getSettings('selectors.firstScript'))
1904 + };
1905 + }
1906 + insertAPI() {
1907 + this.elements.$firstScript.before(jQuery('<script>', {
1908 + src: this.getApiURL()
1909 + }));
1910 + this.setSettings('isInserted', true);
1911 + }
1912 + getVideoIDFromURL(url) {
1913 + const videoIDParts = url.match(this.getURLRegex());
1914 + return videoIDParts && videoIDParts[1];
1915 + }
1916 + onApiReady(callback) {
1917 + if (!this.getSettings('isInserted')) {
1918 + this.insertAPI();
1919 + }
1920 + if (this.isApiLoaded()) {
1921 + callback(this.getApiObject());
1922 + } else {
1923 + // If not ready check again by timeout..
1924 + setTimeout(() => {
1925 + this.onApiReady(callback);
1926 + }, 350);
1927 + }
1928 + }
1929 + getAutoplayURL(videoURL) {
1930 + return videoURL.replace('&autoplay=0', '') + '&autoplay=1';
1931 + }
1932 +}
1933 +exports["default"] = BaseLoader;
2876 1934
2877 -//#endregion
2878 -//#region node_modules/core-js/modules/es.iterator.map.js
2879 - var require_es_iterator_map = /* @__PURE__ */ __commonJSMin((() => {
2880 - var $ = require_export();
2881 - var call = require_function_call();
2882 - var aCallable = require_a_callable();
2883 - var anObject = require_an_object();
2884 - var getIteratorDirect = require_get_iterator_direct();
2885 - var createIteratorProxy = require_iterator_create_proxy();
2886 - var callWithSafeIterationClosing = require_call_with_safe_iteration_closing();
2887 - var iteratorClose = require_iterator_close();
2888 - var iteratorHelperThrowsOnInvalidIterator = require_iterator_helper_throws_on_invalid_iterator();
2889 - var iteratorHelperWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error();
2890 - var IS_PURE = require_is_pure();
2891 - var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator("map", function() {});
2892 - var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR && iteratorHelperWithoutClosingOnEarlyError("map", TypeError);
2893 - var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
2894 - var IteratorProxy = createIteratorProxy(function() {
2895 - var iterator = this.iterator;
2896 - var result = anObject(call(this.next, iterator));
2897 - if (!(this.done = !!result.done)) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
2898 - });
2899 - $({
2900 - target: "Iterator",
2901 - proto: true,
2902 - real: true,
2903 - forced: FORCED
2904 - }, { map: function map(mapper) {
2905 - anObject(this);
2906 - try {
2907 - aCallable(mapper);
2908 - } catch (error) {
2909 - iteratorClose(this, "throw", error);
2910 - }
2911 - if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
2912 - return new IteratorProxy(getIteratorDirect(this), { mapper });
2913 - } });
2914 - }));
1935 +/***/ }),
2915 1936
2916 -//#endregion
2917 -//#region node_modules/core-js/modules/esnext.iterator.map.js
2918 - var require_esnext_iterator_map = /* @__PURE__ */ __commonJSMin((() => {
2919 - require_es_iterator_map();
2920 - }));
1937 +/***/ "../assets/dev/js/frontend/utils/video-api/vimeo-loader.js":
1938 +/*!*****************************************************************!*\
1939 + !*** ../assets/dev/js/frontend/utils/video-api/vimeo-loader.js ***!
1940 + \*****************************************************************/
1941 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2921 1942
2922 -//#endregion
2923 -//#region assets/dev/js/utils/breakpoints.js
2924 - var require_breakpoints = /* @__PURE__ */ __commonJSMin(((exports) => {
2925 - init_objectSpread2();
2926 - Object.defineProperty(exports, "__esModule", { value: true });
2927 - exports.default = void 0;
2928 - require_es_array_push();
2929 - require_esnext_iterator_constructor();
2930 - require_esnext_iterator_for_each();
2931 - require_esnext_iterator_map();
2932 - /**
2933 - * Breakpoints
2934 - *
2935 - * This utility class contains helper functions relating to Elementor's breakpoints system.
2936 - *
2937 - * @since 3.4.0
2938 - */
2939 - var Breakpoints = class extends elementorModules.Module {
2940 - constructor(responsiveConfig) {
2941 - super();
2942 - this.responsiveConfig = responsiveConfig;
2943 - }
2944 - /**
2945 - * Get Active Breakpoints List
2946 - *
2947 - * Returns a flat array containing the active breakpoints/devices. By default, it returns the li
2948 - * the list ordered from smallest to largest breakpoint. If `true` is passed as a parameter, it reverses the order.
2949 - *
2950 - * @since 3.4.0
2951 - *
2952 - * @param {Object} args
2953 - */
2954 - getActiveBreakpointsList(args = {}) {
2955 - args = _objectSpread2(_objectSpread2({}, {
2956 - largeToSmall: false,
2957 - withDesktop: false
2958 - }), args);
2959 - const breakpointKeys = Object.keys(this.responsiveConfig.activeBreakpoints);
2960 - if (args.withDesktop) {
2961 - const indexToInsertDesktopDevice = -1 === breakpointKeys.indexOf("widescreen") ? breakpointKeys.length : breakpointKeys.length - 1;
2962 - breakpointKeys.splice(indexToInsertDesktopDevice, 0, "desktop");
2963 - }
2964 - if (args.largeToSmall) breakpointKeys.reverse();
2965 - return breakpointKeys;
2966 - }
2967 - /**
2968 - * Get Active Breakpoint Values
2969 - *
2970 - * Returns a flat array containing the list of active breakpoint values, from smallest to largest.
2971 - *
2972 - * @since 3.4.0
2973 - */
2974 - getBreakpointValues() {
2975 - const { activeBreakpoints } = this.responsiveConfig, breakpointValues = [];
2976 - Object.values(activeBreakpoints).forEach((breakpointConfig) => {
2977 - breakpointValues.push(breakpointConfig.value);
2978 - });
2979 - return breakpointValues;
2980 - }
2981 - /**
2982 - * Get Desktop Previous Device Key
2983 - *
2984 - * Returns the key of the device directly under desktop (can be 'tablet', 'tablet_extra', 'laptop').
2985 - *
2986 - * @since 3.4.0
2987 - *
2988 - * @return {string} device key
2989 - */
2990 - getDesktopPreviousDeviceKey() {
2991 - let desktopPreviousDevice = "";
2992 - const { activeBreakpoints } = this.responsiveConfig, breakpointKeys = Object.keys(activeBreakpoints), numOfDevices = breakpointKeys.length;
2993 - if ("min" === activeBreakpoints[breakpointKeys[numOfDevices - 1]].direction) desktopPreviousDevice = breakpointKeys[numOfDevices - 2];
2994 - else desktopPreviousDevice = breakpointKeys[numOfDevices - 1];
2995 - return desktopPreviousDevice;
2996 - }
2997 - /**
2998 - * Get Device Minimum Breakpoint
2999 - *
3000 - * Returns the minimum point in the device's display range. For each device, the minimum point of its display range
3001 - * is the max point of the device below it + 1px. For example, if the active devices are mobile, tablet,
3002 - * and desktop, and the mobile breakpoint is 767px, the minimum display point for tablet devices is 768px.
3003 - *
3004 - * @since 3.4.0
3005 - *
3006 - * @return {number|*} minimum breakpoint
3007 - */
3008 - getDesktopMinPoint() {
3009 - const { activeBreakpoints } = this.responsiveConfig;
3010 - return activeBreakpoints[this.getDesktopPreviousDeviceKey()].value + 1;
3011 - }
3012 - /**
3013 - * Get Device Minimum Breakpoint
3014 - *
3015 - * Returns the minimum point in the device's display range. For each device, the minimum point of its display range
3016 - * is the max point of the device below it + 1px. For example, if the active devices are mobile, tablet,
3017 - * and desktop, and the mobile breakpoint is 767px, the minimum display point for tablet devices is 768px.
3018 - *
3019 - * @since 3.4.0
3020 - *
3021 - * @param {string} device
3022 - * @return {number|*} minimum breakpoint
3023 - */
3024 - getDeviceMinBreakpoint(device) {
3025 - if ("desktop" === device) return this.getDesktopMinPoint();
3026 - const { activeBreakpoints } = this.responsiveConfig, breakpointNames = Object.keys(activeBreakpoints);
3027 - let minBreakpoint;
3028 - if (breakpointNames[0] === device) minBreakpoint = 320;
3029 - else if ("widescreen" === device) if (activeBreakpoints[device]) minBreakpoint = activeBreakpoints[device].value;
3030 - else minBreakpoint = this.responsiveConfig.breakpoints.widescreen;
3031 - else minBreakpoint = activeBreakpoints[breakpointNames[breakpointNames.indexOf(device) - 1]].value + 1;
3032 - return minBreakpoint;
3033 - }
3034 - /**
3035 - * Get Active Match Regex
3036 - *
3037 - * Returns a regular expression containing all active breakpoints prefixed with an underscore.
3038 - *
3039 - * @return {RegExp} Active Match Regex
3040 - */
3041 - getActiveMatchRegex() {
3042 - return new RegExp(this.getActiveBreakpointsList().map((device) => "_" + device).join("|") + "$");
3043 - }
3044 - };
3045 - exports.default = Breakpoints;
3046 - }));
1943 +"use strict";
3047 1944
3048 -//#endregion
3049 -//#region assets/dev/js/utils/events.js
3050 - var require_events = /* @__PURE__ */ __commonJSMin(((exports) => {
3051 - Object.defineProperty(exports, "__esModule", { value: true });
3052 - exports.default = exports.Events = void 0;
3053 - var Events = class {
3054 - /**
3055 - * Dispatch an Elementor event.
3056 - *
3057 - * Will dispatch both native event & jQuery event (as BC).
3058 - * By default, `bcEvent` is `null`.
3059 - *
3060 - * @param {Object} context - The context that will dispatch the event.
3061 - * @param {string} event - Event to dispatch.
3062 - * @param {*} data - Data to pass to the event, default to `null`.
3063 - * @param {string|null} bcEvent - BC event to dispatch, default to `null`.
3064 - *
3065 - * @return {void}
3066 - */
3067 - static dispatch(context, event, data = null, bcEvent = null) {
3068 - context = context instanceof jQuery ? context[0] : context;
3069 - if (bcEvent) context.dispatchEvent(new CustomEvent(bcEvent, { detail: data }));
3070 - context.dispatchEvent(new CustomEvent(event, { detail: data }));
3071 - }
3072 - };
3073 - exports.Events = Events;
3074 - exports.default = Events;
3075 - }));
3076 1945
3077 -//#endregion
3078 -//#region modules/shapes/assets/js/frontend/frontend.js
3079 - var require_frontend$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
3080 - Object.defineProperty(exports, "__esModule", { value: true });
3081 - exports.default = void 0;
3082 - var _default = class extends elementorModules.Module {
3083 - constructor() {
3084 - super();
3085 - elementorFrontend.elementsHandler.attachHandler("text-path", () => __elementorLoadChunk("text-path"));
3086 - }
3087 - };
3088 - exports.default = _default;
3089 - }));
1946 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1947 +Object.defineProperty(exports, "__esModule", ({
1948 + value: true
1949 +}));
1950 +exports["default"] = void 0;
1951 +var _baseLoader = _interopRequireDefault(__webpack_require__(/*! ./base-loader */ "../assets/dev/js/frontend/utils/video-api/base-loader.js"));
1952 +class VimeoLoader extends _baseLoader.default {
1953 + getApiURL() {
1954 + return 'https://player.vimeo.com/api/player.js';
1955 + }
1956 + getURLRegex() {
1957 + return /^(?:https?:\/\/)?(?:www|player\.)?(?:vimeo\.com\/)?(?:video\/|external\/)?(\d+)([^.?&#"'>]?)/;
1958 + }
1959 + isApiLoaded() {
1960 + return window.Vimeo;
1961 + }
1962 + getApiObject() {
1963 + return Vimeo;
1964 + }
1965 + getAutoplayURL(videoURL) {
1966 + videoURL = super.getAutoplayURL(videoURL);
3090 1967
3091 -//#endregion
3092 -//#region assets/dev/js/frontend/utils/controls.js
3093 - var require_controls = /* @__PURE__ */ __commonJSMin(((exports) => {
3094 - Object.defineProperty(exports, "__esModule", { value: true });
3095 - exports.default = void 0;
3096 - var Controls = class {
3097 - /**
3098 - * Get Control Value
3099 - *
3100 - * Retrieves a control value.
3101 - * This function has been copied from `elementor/assets/dev/js/editor/utils/conditions.js`.
3102 - *
3103 - * @since 3.11.0
3104 - *
3105 - * @param {{}} controlSettings A settings object (e.g. element settings - keys and values)
3106 - * @param {string} controlKey The control key name
3107 - * @param {string} controlSubKey A specific property of the control object.
3108 - * @return {*} Control Value
3109 - */
3110 - getControlValue(controlSettings, controlKey, controlSubKey) {
3111 - let value;
3112 - if ("object" === typeof controlSettings[controlKey] && controlSubKey) value = controlSettings[controlKey][controlSubKey];
3113 - else value = controlSettings[controlKey];
3114 - return value;
3115 - }
3116 - /**
3117 - * Get the value of a responsive control.
3118 - *
3119 - * Retrieves the value of a responsive control for the current device or for this first parent device which has a control value.
3120 - *
3121 - * @since 3.11.0
3122 - *
3123 - * @param {{}} controlSettings A settings object (e.g. element settings - keys and values)
3124 - * @param {string} controlKey The control key name
3125 - * @param {string} controlSubKey A specific property of the control object.
3126 - * @param {string} device If we want to get a value for a specific device mode.
3127 - * @return {*} Control Value
3128 - */
3129 - getResponsiveControlValue(controlSettings, controlKey, controlSubKey = "", device = null) {
3130 - const currentDeviceMode = device || elementorFrontend.getCurrentDeviceMode();
3131 - const controlValueDesktop = this.getControlValue(controlSettings, controlKey, controlSubKey);
3132 - if ("widescreen" === currentDeviceMode) {
3133 - const controlValueWidescreen = this.getControlValue(controlSettings, `${controlKey}_widescreen`, controlSubKey);
3134 - return !!controlValueWidescreen || 0 === controlValueWidescreen ? controlValueWidescreen : controlValueDesktop;
3135 - }
3136 - const activeBreakpoints = elementorFrontend.breakpoints.getActiveBreakpointsList({ withDesktop: true });
3137 - let parentDeviceMode = currentDeviceMode;
3138 - let deviceIndex = activeBreakpoints.indexOf(currentDeviceMode);
3139 - let controlValue = "";
3140 - while (deviceIndex <= activeBreakpoints.length) {
3141 - if ("desktop" === parentDeviceMode) {
3142 - controlValue = controlValueDesktop;
3143 - break;
3144 - }
3145 - const responsiveControlKey = `${controlKey}_${parentDeviceMode}`;
3146 - const responsiveControlValue = this.getControlValue(controlSettings, responsiveControlKey, controlSubKey);
3147 - if (!!responsiveControlValue || 0 === responsiveControlValue) {
3148 - controlValue = responsiveControlValue;
3149 - break;
3150 - }
3151 - deviceIndex++;
3152 - parentDeviceMode = activeBreakpoints[deviceIndex];
3153 - }
3154 - return controlValue;
3155 - }
3156 - };
3157 - exports.default = Controls;
3158 - }));
1968 + // Vimeo requires the '#t=' param to be last in the URL.
1969 + const timeMatch = videoURL.match(/#t=[^&]*/);
1970 + return videoURL.replace(timeMatch[0], '') + timeMatch;
1971 + }
1972 +}
1973 +exports["default"] = VimeoLoader;
3159 1974
3160 -//#endregion
3161 -//#region node_modules/core-js/modules/es.iterator.filter.js
3162 - var require_es_iterator_filter = /* @__PURE__ */ __commonJSMin((() => {
3163 - var $ = require_export();
3164 - var call = require_function_call();
3165 - var aCallable = require_a_callable();
3166 - var anObject = require_an_object();
3167 - var getIteratorDirect = require_get_iterator_direct();
3168 - var createIteratorProxy = require_iterator_create_proxy();
3169 - var callWithSafeIterationClosing = require_call_with_safe_iteration_closing();
3170 - var IS_PURE = require_is_pure();
3171 - var iteratorClose = require_iterator_close();
3172 - var iteratorHelperThrowsOnInvalidIterator = require_iterator_helper_throws_on_invalid_iterator();
3173 - var iteratorHelperWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error();
3174 - var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator("filter", function() {});
3175 - var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR && iteratorHelperWithoutClosingOnEarlyError("filter", TypeError);
3176 - var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
3177 - var IteratorProxy = createIteratorProxy(function() {
3178 - var iterator = this.iterator;
3179 - var predicate = this.predicate;
3180 - var next = this.next;
3181 - var result;
3182 - var done;
3183 - var value;
3184 - while (true) {
3185 - result = anObject(call(next, iterator));
3186 - done = this.done = !!result.done;
3187 - if (done) return;
3188 - value = result.value;
3189 - if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;
3190 - }
3191 - });
3192 - $({
3193 - target: "Iterator",
3194 - proto: true,
3195 - real: true,
3196 - forced: FORCED
3197 - }, { filter: function filter(predicate) {
3198 - anObject(this);
3199 - try {
3200 - aCallable(predicate);
3201 - } catch (error) {
3202 - iteratorClose(this, "throw", error);
3203 - }
3204 - if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);
3205 - return new IteratorProxy(getIteratorDirect(this), { predicate });
3206 - } });
3207 - }));
1975 +/***/ }),
3208 1976
3209 -//#endregion
3210 -//#region node_modules/core-js/modules/esnext.iterator.filter.js
3211 - var require_esnext_iterator_filter = /* @__PURE__ */ __commonJSMin((() => {
3212 - require_es_iterator_filter();
3213 - }));
1977 +/***/ "../assets/dev/js/frontend/utils/video-api/youtube-loader.js":
1978 +/*!*******************************************************************!*\
1979 + !*** ../assets/dev/js/frontend/utils/video-api/youtube-loader.js ***!
1980 + \*******************************************************************/
1981 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3214 1982
3215 -//#endregion
3216 -//#region assets/dev/js/frontend/utils/anchor-scroll-margin.js
3217 - var require_anchor_scroll_margin = /* @__PURE__ */ __commonJSMin(((exports) => {
3218 - Object.defineProperty(exports, "__esModule", { value: true });
3219 - exports.default = void 0;
3220 - require_es_array_push();
3221 - require_esnext_iterator_constructor();
3222 - require_esnext_iterator_filter();
3223 - require_esnext_iterator_for_each();
3224 - var _default = class extends elementorModules.ViewModule {
3225 - getDefaultSettings() {
3226 - return { selectors: {
3227 - links: ".elementor-element a[href*=\"#\"]",
3228 - stickyElements: ".elementor-element.elementor-sticky"
3229 - } };
3230 - }
3231 - onInit() {
3232 - this.observeStickyElements(() => {
3233 - this.initializeStickyAndAnchorTracking();
3234 - });
3235 - }
3236 - observeStickyElements(callback) {
3237 - new MutationObserver((mutationsList) => {
3238 - for (const mutation of mutationsList) if ("childList" === mutation.type || "attributes" === mutation.type && mutation.target.classList.contains("elementor-sticky")) callback();
3239 - }).observe(document.body, {
3240 - childList: true,
3241 - subtree: true,
3242 - attributes: true,
3243 - attributeFilter: ["class", "style"]
3244 - });
3245 - }
3246 - initializeStickyAndAnchorTracking() {
3247 - const anchorLinks = this.getAllAnchorLinks();
3248 - const stickyElements = this.getAllStickyElements();
3249 - const trackedElements = [];
3250 - if (!stickyElements.length > 0 && !anchorLinks.length > 0) return;
3251 - this.trackStickyElements(stickyElements, trackedElements);
3252 - this.trackAnchorLinks(anchorLinks, trackedElements);
3253 - this.organizeStickyAndAnchors(trackedElements);
3254 - }
3255 - trackAnchorLinks(anchorLinks, trackedElements) {
3256 - anchorLinks.forEach((element) => {
3257 - const target = this.getAnchorTarget(element);
3258 - const scrollPosition = this.getScrollPosition(target);
3259 - trackedElements.push({
3260 - element: target,
3261 - type: "anchor",
3262 - scrollPosition
3263 - });
3264 - });
3265 - }
3266 - trackStickyElements(stickyElements, trackedElements) {
3267 - stickyElements.forEach((element) => {
3268 - const settings = this.getElementSettings(element);
3269 - if (!settings || !settings.sticky_anchor_link_offset) return;
3270 - const { sticky_anchor_link_offset: scrollMarginTop } = settings;
3271 - if (0 === scrollMarginTop) return;
3272 - const scrollPosition = this.getScrollPosition(element);
3273 - trackedElements.push({
3274 - scrollMarginTop,
3275 - type: "sticky",
3276 - scrollPosition
3277 - });
3278 - });
3279 - }
3280 - organizeStickyAndAnchors(elements) {
3281 - const stickyList = this.filterAndSortElementsByType(elements, "sticky");
3282 - const anchorList = this.filterAndSortElementsByType(elements, "anchor");
3283 - stickyList.forEach((sticky, index) => {
3284 - this.defineCurrentStickyRange(sticky, index, stickyList, anchorList);
3285 - });
3286 - }
3287 - defineCurrentStickyRange(sticky, index, stickyList, anchorList) {
3288 - const nextStickyScrollPosition = index + 1 < stickyList.length ? stickyList[index + 1].scrollPosition : Infinity;
3289 - sticky.anchor = anchorList.filter((anchor) => {
3290 - const withinRange = anchor.scrollPosition > sticky.scrollPosition && anchor.scrollPosition < nextStickyScrollPosition;
3291 - if (withinRange) anchor.element.style.scrollMarginTop = `${sticky.scrollMarginTop}px`;
3292 - return withinRange;
3293 - });
3294 - }
3295 - getScrollPosition(element) {
3296 - let offsetTop = 0;
3297 - while (element) {
3298 - offsetTop += element.offsetTop;
3299 - element = element.offsetParent;
3300 - }
3301 - return offsetTop;
3302 - }
3303 - getAllStickyElements() {
3304 - const allStickyElements = document.querySelectorAll(this.getSettings("selectors.stickyElements"));
3305 - return Array.from(allStickyElements).filter((anchor, index, self) => index === self.findIndex((t) => t.getAttribute("data-id") === anchor.getAttribute("data-id")));
3306 - }
3307 - getAllAnchorLinks() {
3308 - const allAnchors = document.querySelectorAll(this.getSettings("selectors.links"));
3309 - return Array.from(allAnchors).filter((anchor, index, self) => index === self.findIndex((t) => t.getAttribute("href") === anchor.getAttribute("href")));
3310 - }
3311 - filterAndSortElementsByType(elements, type) {
3312 - return elements.filter((item) => type === item.type).sort((a, b) => a.scrollPosition - b.scrollPosition);
3313 - }
3314 - isValidSelector(hash) {
3315 - return /^#[A-Za-z_][\w-]*$/.test(hash);
3316 - }
3317 - getAnchorTarget(element) {
3318 - const hash = element === null || element === void 0 ? void 0 : element.hash;
3319 - if (!this.isValidSelector(hash)) return null;
3320 - return document.querySelector(hash);
3321 - }
3322 - getElementSettings(element) {
3323 - return JSON.parse(element.getAttribute("data-settings"));
3324 - }
3325 - };
3326 - exports.default = _default;
3327 - }));
1983 +"use strict";
3328 1984
3329 -//#endregion
3330 -//#region assets/dev/js/frontend/utils/utils.js
3331 - var require_utils = /* @__PURE__ */ __commonJSMin(((exports) => {
3332 - Object.defineProperty(exports, "__esModule", { value: true });
3333 - exports.isScrollSnapActive = exports.escapeHTML = void 0;
3334 - var escapeHTML = (str) => {
3335 - const specialChars = {
3336 - "&": "&amp;",
3337 - "<": "&lt;",
3338 - ">": "&gt;",
3339 - "'": "&#39;",
3340 - "\"": "&quot;"
3341 - };
3342 - return str.replace(/[&<>'"]/g, (tag) => specialChars[tag] || tag);
3343 - };
3344 - exports.escapeHTML = escapeHTML;
3345 - var isScrollSnapActive = () => {
3346 - var _elementor$settings$p;
3347 - var _elementorFrontend$co;
3348 - return "yes" === (elementorFrontend.isEditMode() ? (_elementor$settings$p = elementor.settings.page.model.attributes) === null || _elementor$settings$p === void 0 ? void 0 : _elementor$settings$p.scroll_snap : (_elementorFrontend$co = elementorFrontend.config.settings.page) === null || _elementorFrontend$co === void 0 ? void 0 : _elementorFrontend$co.scroll_snap) ? true : false;
3349 - };
3350 - exports.isScrollSnapActive = isScrollSnapActive;
3351 - }));
3352 1985
3353 -//#endregion
3354 -//#region assets/dev/js/utils/hooks.js
3355 - var require_hooks = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3356 - /**
3357 - * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in
3358 - * that, lowest priority hooks are fired first.
3359 - */
3360 - require_es_array_push();
3361 - var EventManager = function() {
3362 - var slice = Array.prototype.slice;
3363 - var MethodsAvailable;
3364 - /**
3365 - * Contains the hooks that get registered with this EventManager. The array for storage utilizes a "flat"
3366 - * object literal such that looking up the hook utilizes the native object literal hash.
3367 - */
3368 - var STORAGE = {
3369 - actions: {},
3370 - filters: {}
3371 - };
3372 - /**
3373 - * Removes the specified hook by resetting the value of it.
3374 - *
3375 - * @param {string} type Type of hook, either 'actions' or 'filters'
3376 - * @param {Function} hook The hook (namespace.identifier) to remove
3377 - * @param {Function} callback
3378 - * @param {*} context
3379 - * @private
3380 - */
3381 - function _removeHook(type, hook, callback, context) {
3382 - var handlers;
3383 - var handler;
3384 - var i;
3385 - if (!STORAGE[type][hook]) return;
3386 - if (!callback) STORAGE[type][hook] = [];
3387 - else {
3388 - handlers = STORAGE[type][hook];
3389 - if (!context) {
3390 - for (i = handlers.length; i--;) if (handlers[i].callback === callback) handlers.splice(i, 1);
3391 - } else for (i = handlers.length; i--;) {
3392 - handler = handlers[i];
3393 - if (handler.callback === callback && handler.context === context) handlers.splice(i, 1);
3394 - }
3395 - }
3396 - }
3397 - /**
3398 - * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster
3399 - * than bubble sort, etc: http://jsperf.com/javascript-sort
3400 - *
3401 - * @param {Array<*>} hooks The custom array containing all of the appropriate hooks to perform an insert sort on.
3402 - * @private
3403 - */
3404 - function _hookInsertSort(hooks) {
3405 - var tmpHook;
3406 - var j;
3407 - var prevHook;
3408 - for (var i = 1, len = hooks.length; i < len; i++) {
3409 - tmpHook = hooks[i];
3410 - j = i;
3411 - while ((prevHook = hooks[j - 1]) && prevHook.priority > tmpHook.priority) {
3412 - hooks[j] = hooks[j - 1];
3413 - --j;
3414 - }
3415 - hooks[j] = tmpHook;
3416 - }
3417 - return hooks;
3418 - }
3419 - /**
3420 - * Adds the hook to the appropriate storage container
3421 - *
3422 - * @param {string} type 'actions' or 'filters'
3423 - * @param {Array<*>} hook The hook (namespace.identifier) to add to our event manager
3424 - * @param {Function} callback The function that will be called when the hook is executed.
3425 - * @param {number} priority The priority of this hook. Must be an integer.
3426 - * @param {*} [context] A value to be used for this
3427 - * @private
3428 - */
3429 - function _addHook(type, hook, callback, priority, context) {
3430 - var hookObject = {
3431 - callback,
3432 - priority,
3433 - context
3434 - };
3435 - var hooks = STORAGE[type][hook];
3436 - if (hooks) {
3437 - var hasSameCallback = false;
3438 - jQuery.each(hooks, function() {
3439 - if (this.callback === callback) {
3440 - hasSameCallback = true;
3441 - return false;
3442 - }
3443 - });
3444 - if (hasSameCallback) return;
3445 - hooks.push(hookObject);
3446 - hooks = _hookInsertSort(hooks);
3447 - } else hooks = [hookObject];
3448 - STORAGE[type][hook] = hooks;
3449 - }
3450 - /**
3451 - * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.
3452 - *
3453 - * @param {string} type 'actions' or 'filters'
3454 - * @param {*} hook The hook ( namespace.identifier ) to be ran.
3455 - * @param {Array<*>} args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.
3456 - * @private
3457 - */
3458 - function _runHook(type, hook, args) {
3459 - var handlers = STORAGE[type][hook];
3460 - var i;
3461 - var len;
3462 - if (!handlers) return "filters" === type ? args[0] : false;
3463 - len = handlers.length;
3464 - if ("filters" === type) for (i = 0; i < len; i++) args[0] = handlers[i].callback.apply(handlers[i].context, args);
3465 - else for (i = 0; i < len; i++) handlers[i].callback.apply(handlers[i].context, args);
3466 - return "filters" === type ? args[0] : true;
3467 - }
3468 - /**
3469 - * Adds an action to the event manager.
3470 - *
3471 - * @param {string} action Must contain namespace.identifier
3472 - * @param {Function} callback Must be a valid callback function before this action is added
3473 - * @param {number} [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
3474 - * @param {*} [context] Supply a value to be used for this
3475 - */
3476 - function addAction(action, callback, priority, context) {
3477 - if ("string" === typeof action && "function" === typeof callback) {
3478 - priority = parseInt(priority || 10, 10);
3479 - _addHook("actions", action, callback, priority, context);
3480 - }
3481 - return MethodsAvailable;
3482 - }
3483 - /**
3484 - * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is
3485 - * that the first argument must always be the action.
3486 - */
3487 - function doAction() {
3488 - var args = slice.call(arguments);
3489 - var action = args.shift();
3490 - if ("string" === typeof action) _runHook("actions", action, args);
3491 - return MethodsAvailable;
3492 - }
3493 - /**
3494 - * Removes the specified action if it contains a namespace.identifier & exists.
3495 - *
3496 - * @param {string} action The action to remove
3497 - * @param {Function} [callback] Callback function to remove
3498 - */
3499 - function removeAction(action, callback) {
3500 - if ("string" === typeof action) _removeHook("actions", action, callback);
3501 - return MethodsAvailable;
3502 - }
3503 - /**
3504 - * Adds a filter to the event manager.
3505 - *
3506 - * @param {string} filter Must contain namespace.identifier
3507 - * @param {Function} callback Must be a valid callback function before this action is added
3508 - * @param {number} [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
3509 - * @param {*} [context] Supply a value to be used for this
3510 - */
3511 - function addFilter(filter, callback, priority, context) {
3512 - if ("string" === typeof filter && "function" === typeof callback) {
3513 - priority = parseInt(priority || 10, 10);
3514 - _addHook("filters", filter, callback, priority, context);
3515 - }
3516 - return MethodsAvailable;
3517 - }
3518 - /**
3519 - * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that
3520 - * the first argument must always be the filter.
3521 - */
3522 - function applyFilters() {
3523 - var args = slice.call(arguments);
3524 - var filter = args.shift();
3525 - if ("string" === typeof filter) return _runHook("filters", filter, args);
3526 - return MethodsAvailable;
3527 - }
3528 - /**
3529 - * Removes the specified filter if it contains a namespace.identifier & exists.
3530 - *
3531 - * @param {string} filter The action to remove
3532 - * @param {Function} [callback] Callback function to remove
3533 - */
3534 - function removeFilter(filter, callback) {
3535 - if ("string" === typeof filter) _removeHook("filters", filter, callback);
3536 - return MethodsAvailable;
3537 - }
3538 - /**
3539 - * Maintain a reference to the object scope so our public methods never get confusing.
3540 - */
3541 - MethodsAvailable = {
3542 - removeFilter,
3543 - applyFilters,
3544 - addFilter,
3545 - removeAction,
3546 - doAction,
3547 - addAction
3548 - };
3549 - return MethodsAvailable;
3550 - };
3551 - module.exports = EventManager;
3552 - }));
1986 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1987 +Object.defineProperty(exports, "__esModule", ({
1988 + value: true
1989 +}));
1990 +exports["default"] = void 0;
1991 +var _baseLoader = _interopRequireDefault(__webpack_require__(/*! ./base-loader */ "../assets/dev/js/frontend/utils/video-api/base-loader.js"));
1992 +class YoutubeLoader extends _baseLoader.default {
1993 + getApiURL() {
1994 + return 'https://www.youtube.com/iframe_api';
1995 + }
1996 + getURLRegex() {
1997 + return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user)\/))([^?&"'>]+)/;
1998 + }
1999 + isApiLoaded() {
2000 + return window.YT && YT.loaded;
2001 + }
2002 + getApiObject() {
2003 + return YT;
2004 + }
2005 +}
2006 +exports["default"] = YoutubeLoader;
3553 2007
3554 -//#endregion
3555 -//#region assets/dev/js/frontend/handlers/global.js
3556 - var require_global = /* @__PURE__ */ __commonJSMin(((exports) => {
3557 - Object.defineProperty(exports, "__esModule", { value: true });
3558 - exports.default = void 0;
3559 - var GlobalHandler = class extends elementorModules.frontend.handlers.Base {
3560 - getWidgetType() {
3561 - return "global";
3562 - }
3563 - animate() {
3564 - const $element = this.$element;
3565 - const animation = this.getAnimation();
3566 - if ("none" === animation) {
3567 - $element.removeClass("elementor-invisible");
3568 - return;
3569 - }
3570 - const elementSettings = this.getElementSettings();
3571 - const animationDelay = elementSettings._animation_delay || elementSettings.animation_delay || 0;
3572 - $element.removeClass(animation);
3573 - if (this.currentAnimation) $element.removeClass(this.currentAnimation);
3574 - this.currentAnimation = animation;
3575 - setTimeout(() => {
3576 - $element.removeClass("elementor-invisible").addClass("animated " + animation);
3577 - }, animationDelay);
3578 - }
3579 - getAnimation() {
3580 - return this.getCurrentDeviceSetting("animation") || this.getCurrentDeviceSetting("_animation");
3581 - }
3582 - onInit(...args) {
3583 - super.onInit(...args);
3584 - if (this.getAnimation()) {
3585 - const observer = elementorModules.utils.Scroll.scrollObserver({ callback: (event) => {
3586 - if (event.isInViewport) {
3587 - this.animate();
3588 - observer.unobserve(this.$element[0]);
3589 - }
3590 - } });
3591 - observer.observe(this.$element[0]);
3592 - }
3593 - }
3594 - onElementChange(propertyName) {
3595 - if (/^_?animation/.test(propertyName)) this.animate();
3596 - }
3597 - };
3598 - var _default = ($scope) => {
3599 - elementorFrontend.elementsHandler.addHandler(GlobalHandler, { $element: $scope });
3600 - };
3601 - exports.default = _default;
3602 - }));
2008 +/***/ }),
3603 2009
3604 -//#endregion
3605 -//#region assets/dev/js/frontend/handlers/create-editor-handler.js
3606 - var require_create_editor_handler = /* @__PURE__ */ __commonJSMin(((exports) => {
3607 - Object.defineProperty(exports, "__esModule", { value: true });
3608 - exports.createEditorHandler = createEditorHandler;
3609 - function createEditorHandler(importer) {
3610 - return () => {
3611 - return new Promise((resolve) => {
3612 - if (elementorFrontend.isEditMode()) importer().then(resolve);
3613 - });
3614 - };
3615 - }
3616 - }));
2010 +/***/ "../assets/dev/js/public-path.js":
2011 +/*!***************************************!*\
2012 + !*** ../assets/dev/js/public-path.js ***!
2013 + \***************************************/
2014 +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
3617 2015
3618 -//#endregion
3619 -//#region assets/dev/js/frontend/handlers/container/container.js
3620 - var require_container = /* @__PURE__ */ __commonJSMin(((exports) => {
3621 - Object.defineProperty(exports, "__esModule", { value: true });
3622 - exports.default = void 0;
3623 - var _createEditorHandler = require_create_editor_handler();
3624 - exports.default = [
3625 - () => __elementorLoadChunk("background-slideshow"),
3626 - () => __elementorLoadChunk("background-video"),
3627 - (0, _createEditorHandler.createEditorHandler)(() => __elementorLoadChunk("handles-position")),
3628 - (0, _createEditorHandler.createEditorHandler)(() => __elementorLoadChunk("container-shapes")),
3629 - (0, _createEditorHandler.createEditorHandler)(() => __elementorLoadChunk("container-grid-container"))
3630 - ];
3631 - }));
2016 +"use strict";
3632 2017
3633 -//#endregion
3634 -//#region assets/dev/js/frontend/handlers/section/section.js
3635 - var require_section = /* @__PURE__ */ __commonJSMin(((exports) => {
3636 - Object.defineProperty(exports, "__esModule", { value: true });
3637 - exports.default = void 0;
3638 - var _createEditorHandler = require_create_editor_handler();
3639 - exports.default = [
3640 - () => __elementorLoadChunk("section-stretched-section"),
3641 - () => __elementorLoadChunk("background-slideshow"),
3642 - () => __elementorLoadChunk("background-video"),
3643 - (0, _createEditorHandler.createEditorHandler)(() => __elementorLoadChunk("handles-position")),
3644 - (0, _createEditorHandler.createEditorHandler)(() => __elementorLoadChunk("section-shapes"))
3645 - ];
3646 - }));
3647 2018
3648 -//#endregion
3649 -//#region assets/dev/js/frontend/handlers/column.js
3650 - var require_column = /* @__PURE__ */ __commonJSMin(((exports) => {
3651 - Object.defineProperty(exports, "__esModule", { value: true });
3652 - exports.default = void 0;
3653 - exports.default = [() => __elementorLoadChunk("background-slideshow")];
3654 - }));
2019 +/* eslint-disable camelcase */
2020 +__webpack_require__.p = elementorFrontendConfig.urls.assets + 'js/';
3655 2021
3656 -//#endregion
3657 -//#region assets/dev/js/frontend/elements-handlers-manager.js
3658 - var require_elements_handlers_manager = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3659 - var _interopRequireDefault = require_interopRequireDefault();
3660 - require_esnext_iterator_constructor();
3661 - require_esnext_iterator_for_each();
3662 - var _global = _interopRequireDefault(require_global());
3663 - var _container = _interopRequireDefault(require_container());
3664 - var _section = _interopRequireDefault(require_section());
3665 - var _column = _interopRequireDefault(require_column());
3666 - module.exports = function($) {
3667 - const handlersInstances = {};
3668 - this.elementsHandlers = {
3669 - "accordion.default": () => __elementorLoadChunk("accordion"),
3670 - "alert.default": () => __elementorLoadChunk("alert"),
3671 - "counter.default": () => __elementorLoadChunk("counter"),
3672 - "progress.default": () => __elementorLoadChunk("progress"),
3673 - "tabs.default": () => __elementorLoadChunk("tabs"),
3674 - "toggle.default": () => __elementorLoadChunk("toggle"),
3675 - "video.default": () => __elementorLoadChunk("video"),
3676 - "image-carousel.default": () => __elementorLoadChunk("image-carousel"),
3677 - "text-editor.default": () => __elementorLoadChunk("text-editor"),
3678 - "wp-widget-media_audio.default": () => __elementorLoadChunk("wp-audio"),
3679 - container: _container.default,
3680 - section: _section.default,
3681 - column: _column.default
3682 - };
3683 - if (elementorFrontendConfig.experimentalFeatures.container) {
3684 - this.elementsHandlers["nested-tabs.default"] = () => __elementorLoadChunk("nested-tabs");
3685 - this.elementsHandlers["nested-accordion.default"] = () => __elementorLoadChunk("nested-accordion");
3686 - }
3687 - if (elementorFrontendConfig.experimentalFeatures.container) {
3688 - this.elementsHandlers["contact-buttons.default"] = () => __elementorLoadChunk("contact-buttons");
3689 - this.elementsHandlers["floating-bars-var-1.default"] = () => __elementorLoadChunk("floating-bars");
3690 - }
3691 - const addGlobalHandlers = () => elementorFrontend.hooks.addAction("frontend/element_ready/global", _global.default);
3692 - const addElementsHandlers = () => {
3693 - $.each(this.elementsHandlers, (elementName, Handlers) => {
3694 - const elementData = elementName.split(".");
3695 - elementName = elementData[0];
3696 - const skin = elementData[1] || null;
3697 - this.attachHandler(elementName, Handlers, skin);
3698 - });
3699 - };
3700 - const isClassHandler = (Handler) => {
3701 - var _Handler$prototype;
3702 - return (_Handler$prototype = Handler.prototype) === null || _Handler$prototype === void 0 ? void 0 : _Handler$prototype.getUniqueHandlerID;
3703 - };
3704 - const addHandlerWithHook = (elementBaseName, Handler, skin = "default") => {
3705 - skin = skin ? "." + skin : "";
3706 - const elementName = elementBaseName + skin;
3707 - elementorFrontend.hooks.addAction(`frontend/element_ready/${elementName}`, ($element) => {
3708 - if (isClassHandler(Handler)) this.addHandler(Handler, {
3709 - $element,
3710 - elementName
3711 - }, true);
3712 - else {
3713 - const handlerValue = Handler();
3714 - if (!handlerValue) return;
3715 - if (handlerValue instanceof Promise) handlerValue.then(({ default: dynamicHandler }) => {
3716 - this.addHandler(dynamicHandler, {
3717 - $element,
3718 - elementName
3719 - }, true);
3720 - });
3721 - else this.addHandler(handlerValue, {
3722 - $element,
3723 - elementName
3724 - }, true);
3725 - }
3726 - });
3727 - };
3728 - this.addHandler = function(HandlerClass, options) {
3729 - const elementID = options.$element.data("model-cid");
3730 - let handlerID;
3731 - if (elementID) {
3732 - handlerID = HandlerClass.prototype.getConstructorID();
3733 - if (!handlersInstances[elementID]) handlersInstances[elementID] = {};
3734 - const oldHandler = handlersInstances[elementID][handlerID];
3735 - if (oldHandler) oldHandler.onDestroy();
3736 - }
3737 - const newHandler = new HandlerClass(options);
3738 - elementorFrontend.hooks.doAction(`frontend/element_handler_ready/${options.elementName}`, options.$element, $);
3739 - if (elementID) handlersInstances[elementID][handlerID] = newHandler;
3740 - };
3741 - this.attachHandler = (elementName, Handlers, skin) => {
3742 - if (!Array.isArray(Handlers)) Handlers = [Handlers];
3743 - Handlers.forEach((Handler) => addHandlerWithHook(elementName, Handler, skin));
3744 - };
3745 - this.getHandler = function(handlerName) {
3746 - const elementHandler = this.elementsHandlers[handlerName];
3747 - if (isClassHandler(elementHandler)) return elementHandler;
3748 - return new Promise((res) => {
3749 - elementHandler().then(({ default: dynamicHandler }) => {
3750 - res(dynamicHandler);
3751 - });
3752 - });
3753 - };
3754 - /**
3755 - * @param {string} handlerName
3756 - * @deprecated since 3.1.0, use `elementorFrontend.elementsHandler.getHandler` instead.
3757 - */
3758 - this.getHandlers = function(handlerName) {
3759 - elementorDevTools.deprecation.deprecated("getHandlers", "3.1.0", "elementorFrontend.elementsHandler.getHandler");
3760 - if (handlerName) return this.getHandler(handlerName);
3761 - return this.elementsHandlers;
3762 - };
3763 - this.runReadyTrigger = function(scope) {
3764 - const isDelayChildHandlers = !!scope.closest("[data-delay-child-handlers=\"true\"]") && 0 !== scope.closest("[data-delay-child-handlers=\"true\"]").length;
3765 - if (elementorFrontend.config.is_static || isDelayChildHandlers) return;
3766 - const $scope = jQuery(scope);
3767 - const elementType = $scope.attr("data-element_type");
3768 - if (!elementType) return;
3769 - elementorFrontend.hooks.doAction("frontend/element_ready/global", $scope, $);
3770 - elementorFrontend.hooks.doAction(`frontend/element_ready/${elementType}`, $scope, $);
3771 - if ("widget" === elementType) {
3772 - const widgetType = $scope.attr("data-widget_type");
3773 - elementorFrontend.hooks.doAction(`frontend/element_ready/${widgetType}`, $scope, $);
3774 - }
3775 - };
3776 - this.init = () => {
3777 - addGlobalHandlers();
3778 - addElementsHandlers();
3779 - };
3780 - };
3781 - }));
2022 +/***/ }),
3782 2023
3783 -//#endregion
3784 -//#region assets/dev/js/frontend/frontend.js
3785 - var require_frontend = /* @__PURE__ */ __commonJSMin(((exports) => {
3786 - var _interopRequireDefault = require_interopRequireDefault();
3787 - Object.defineProperty(exports, "__esModule", { value: true });
3788 - exports.default = void 0;
3789 - require_esnext_iterator_constructor();
3790 - require_esnext_iterator_find();
3791 - require_esnext_iterator_for_each();
3792 - require_public_path();
3793 - require_chunk_loader();
3794 - var _documentsManager = _interopRequireDefault(require_documents_manager());
3795 - var _storage = _interopRequireDefault(require_storage());
3796 - var _environment = _interopRequireDefault(require_environment());
3797 - var _youtubeLoader = _interopRequireDefault(require_youtube_loader());
3798 - var _vimeoLoader = _interopRequireDefault(require_vimeo_loader());
3799 - var _baseLoader = _interopRequireDefault(require_base_loader());
3800 - var _urlActions = _interopRequireDefault(require_url_actions());
3801 - var _swiper = _interopRequireDefault(require_swiper());
3802 - var _lightboxManager = _interopRequireDefault(require_lightbox_manager());
3803 - var _assetsLoader = _interopRequireDefault(require_assets_loader());
3804 - var _breakpoints = _interopRequireDefault(require_breakpoints());
3805 - var _events = _interopRequireDefault(require_events());
3806 - var _frontend = _interopRequireDefault(require_frontend$1());
3807 - var _controls = _interopRequireDefault(require_controls());
3808 - var _anchorScrollMargin = _interopRequireDefault(require_anchor_scroll_margin());
3809 - var _utils = require_utils();
3810 - var EventManager = require_hooks();
3811 - var ElementsHandler = require_elements_handlers_manager();
3812 - var Frontend = class extends elementorModules.ViewModule {
3813 - constructor(...args) {
3814 - super(...args);
3815 - this.config = elementorFrontendConfig;
3816 - this.config.legacyMode = {
3817 - /**
3818 - * @deprecated since 3.1.0
3819 - */
3820 -get elementWrappers() {
3821 - if (elementorFrontend.isEditMode()) window.top.elementorDevTools.deprecation.deprecated("elementorFrontend.config.legacyMode.elementWrappers", "3.1.0");
3822 - return false;
3823 - } };
3824 - this.populateActiveBreakpointsConfig();
3825 - }
3826 - /**
3827 - * @deprecated since 2.5.0, use `elementorModules.frontend.handlers.Base` instead.
3828 - */
3829 - get Module() {
3830 - if (this.isEditMode()) parent.elementorDevTools.deprecation.deprecated("elementorFrontend.Module", "2.5.0", "elementorModules.frontend.handlers.Base");
3831 - return elementorModules.frontend.handlers.Base;
3832 - }
3833 - getDefaultSettings() {
3834 - return { selectors: {
3835 - elementor: ".elementor",
3836 - adminBar: "#wpadminbar"
3837 - } };
3838 - }
3839 - getDefaultElements() {
3840 - const defaultElements = {
3841 - window,
3842 - $window: jQuery(window),
3843 - $document: jQuery(document),
3844 - $head: jQuery(document.head),
3845 - $body: jQuery(document.body),
3846 - $deviceMode: jQuery("<span>", {
3847 - id: "elementor-device-mode",
3848 - class: "elementor-screen-only"
3849 - })
3850 - };
3851 - defaultElements.$body.append(defaultElements.$deviceMode);
3852 - return defaultElements;
3853 - }
3854 - bindEvents() {
3855 - this.elements.$window.on("resize", () => this.setDeviceModeData());
3856 - }
3857 - /**
3858 - * @param {string} elementName
3859 - * @deprecated since 2.4.0, use `this.elements` instead.
3860 - */
3861 - getElements(elementName) {
3862 - return this.getItems(this.elements, elementName);
3863 - }
3864 - /**
3865 - * @param {string} settingName
3866 - * @deprecated since 2.4.0, this method was never in use.
3867 - */
3868 - getPageSettings(settingName) {
3869 - const settingsObject = this.isEditMode() ? elementor.settings.page.model.attributes : this.config.settings.page;
3870 - return this.getItems(settingsObject, settingName);
3871 - }
3872 - /**
3873 - * @param {string} settingName
3874 - * @deprecated since 3.0.0, use `getKitSettings()` instead and remove the `elementor_` prefix.
3875 - */
3876 - getGeneralSettings(settingName) {
3877 - if (this.isEditMode()) parent.elementorDevTools.deprecation.deprecated("getGeneralSettings()", "3.0.0", "getKitSettings() and remove the `elementor_` prefix");
3878 - return this.getKitSettings(`elementor_${settingName}`);
3879 - }
3880 - getKitSettings(settingName) {
3881 - return this.getItems(this.config.kit, settingName);
3882 - }
3883 - getCurrentDeviceMode() {
3884 - return getComputedStyle(this.elements.$deviceMode[0], ":after").content.replace(/"/g, "");
3885 - }
3886 - getDeviceSetting(deviceMode, settings, settingKey) {
3887 - if ("widescreen" === deviceMode) return this.getWidescreenSetting(settings, settingKey);
3888 - const devices = elementorFrontend.breakpoints.getActiveBreakpointsList({
3889 - largeToSmall: true,
3890 - withDesktop: true
3891 - });
3892 - let deviceIndex = devices.indexOf(deviceMode);
3893 - while (deviceIndex > 0) {
3894 - const currentDevice = devices[deviceIndex];
3895 - const deviceValue = settings[settingKey + "_" + currentDevice];
3896 - if (deviceValue || 0 === deviceValue) return deviceValue;
3897 - deviceIndex--;
3898 - }
3899 - return settings[settingKey];
3900 - }
3901 - getWidescreenSetting(settings, settingKey) {
3902 - const widescreenSettingKey = settingKey + "_widescreen";
3903 - let settingToReturn;
3904 - if (settings[widescreenSettingKey]) settingToReturn = settings[widescreenSettingKey];
3905 - else settingToReturn = settings[settingKey];
3906 - return settingToReturn;
3907 - }
3908 - getCurrentDeviceSetting(settings, settingKey) {
3909 - return this.getDeviceSetting(elementorFrontend.getCurrentDeviceMode(), settings, settingKey);
3910 - }
3911 - isEditMode() {
3912 - return this.config.environmentMode.edit;
3913 - }
3914 - isWPPreviewMode() {
3915 - return this.config.environmentMode.wpPreview;
3916 - }
3917 - initDialogsManager() {
3918 - let dialogsManager;
3919 - this.getDialogsManager = () => {
3920 - if (!dialogsManager) dialogsManager = new DialogsManager.Instance();
3921 - return dialogsManager;
3922 - };
3923 - }
3924 - initOnReadyComponents() {
3925 - this.utils = {
3926 - youtube: new _youtubeLoader.default(),
3927 - vimeo: new _vimeoLoader.default(),
3928 - baseVideoLoader: new _baseLoader.default(),
3929 - get lightbox() {
3930 - return _lightboxManager.default.getLightbox();
3931 - },
3932 - urlActions: new _urlActions.default(),
3933 - swiper: _swiper.default,
3934 - environment: _environment.default,
3935 - assetsLoader: new _assetsLoader.default(),
3936 - escapeHTML: _utils.escapeHTML,
3937 - events: _events.default,
3938 - controls: new _controls.default(),
3939 - anchor_scroll_margin: new _anchorScrollMargin.default()
3940 - };
3941 - this.modules = {
3942 - StretchElement: elementorModules.frontend.tools.StretchElement,
3943 - Masonry: elementorModules.utils.Masonry
3944 - };
3945 - this.elementsHandler.init();
3946 - if (this.isEditMode()) elementor.once("document:loaded", () => this.onDocumentLoaded());
3947 - else this.onDocumentLoaded();
3948 - }
3949 - initOnReadyElements() {
3950 - this.elements.$wpAdminBar = this.elements.$document.find(this.getSettings("selectors.adminBar"));
3951 - }
3952 - addUserAgentClasses() {
3953 - for (const [key, value] of Object.entries(_environment.default)) if (value) this.elements.$body.addClass("e--ua-" + key);
3954 - }
3955 - setDeviceModeData() {
3956 - this.elements.$body.attr("data-elementor-device-mode", this.getCurrentDeviceMode());
3957 - }
3958 - addListenerOnce(listenerID, event, callback, to) {
3959 - if (!to) to = this.elements.$window;
3960 - if (!this.isEditMode()) {
3961 - to.on(event, callback);
3962 - return;
3963 - }
3964 - this.removeListeners(listenerID, event, to);
3965 - if (to instanceof jQuery) {
3966 - const eventNS = event + "." + listenerID;
3967 - to.on(eventNS, callback);
3968 - } else to.on(event, callback, listenerID);
3969 - }
3970 - removeListeners(listenerID, event, callback, from) {
3971 - if (!from) from = this.elements.$window;
3972 - if (from instanceof jQuery) {
3973 - const eventNS = event + "." + listenerID;
3974 - from.off(eventNS, callback);
3975 - } else from.off(event, callback, listenerID);
3976 - }
3977 - debounce(func, wait) {
3978 - let timeout;
3979 - return function() {
3980 - const context = this;
3981 - const args = arguments;
3982 - const later = () => {
3983 - timeout = null;
3984 - func.apply(context, args);
3985 - };
3986 - const callNow = !timeout;
3987 - clearTimeout(timeout);
3988 - timeout = setTimeout(later, wait);
3989 - if (callNow) func.apply(context, args);
3990 - };
3991 - }
3992 - muteMigrationTraces() {
3993 - jQuery.migrateMute = true;
3994 - jQuery.migrateTrace = false;
3995 - }
3996 - /**
3997 - * Initialize the modules' widgets handlers.
3998 - */
3999 - initModules() {
4000 - const handlers = { shapes: _frontend.default };
4001 - elementorFrontend.trigger("elementor/modules/init:before");
4002 - elementorFrontend.trigger("elementor/modules/init/before");
4003 - Object.entries(handlers).forEach(([moduleName, ModuleClass]) => {
4004 - this.modulesHandlers[moduleName] = new ModuleClass();
4005 - });
4006 - }
4007 - populateActiveBreakpointsConfig() {
4008 - this.config.responsive.activeBreakpoints = {};
4009 - Object.entries(this.config.responsive.breakpoints).forEach(([breakpointKey, breakpointData]) => {
4010 - if (breakpointData.is_enabled) this.config.responsive.activeBreakpoints[breakpointKey] = breakpointData;
4011 - });
4012 - }
4013 - init() {
4014 - this.hooks = new EventManager();
4015 - this.breakpoints = new _breakpoints.default(this.config.responsive);
4016 - this.storage = new _storage.default();
4017 - this.elementsHandler = new ElementsHandler(jQuery);
4018 - this.modulesHandlers = {};
4019 - this.addUserAgentClasses();
4020 - this.setDeviceModeData();
4021 - this.initDialogsManager();
4022 - if (this.isEditMode()) this.muteMigrationTraces();
4023 - _events.default.dispatch(this.elements.$window, "elementor/frontend/init");
4024 - this.initModules();
4025 - this.initOnReadyElements();
4026 - this.initOnReadyComponents();
4027 - }
4028 - onDocumentLoaded() {
4029 - this.documentsManager = new _documentsManager.default();
4030 - this.trigger("components:init");
4031 - new _lightboxManager.default();
4032 - }
4033 - };
4034 - exports.default = Frontend;
4035 - window.elementorFrontend = new Frontend();
4036 - if (!elementorFrontend.isEditMode()) jQuery(() => elementorFrontend.init());
4037 - }));
2024 +/***/ "../assets/dev/js/utils/breakpoints.js":
2025 +/*!*********************************************!*\
2026 + !*** ../assets/dev/js/utils/breakpoints.js ***!
2027 + \*********************************************/
2028 +/***/ ((__unused_webpack_module, exports) => {
4038 2029
4039 -//#endregion
4040 -return require_frontend();
2030 +"use strict";
4041 2031
4042 -})();
2032 +
2033 +Object.defineProperty(exports, "__esModule", ({
2034 + value: true
2035 +}));
2036 +exports["default"] = void 0;
2037 +/**
2038 + * Breakpoints
2039 + *
2040 + * This utility class contains helper functions relating to Elementor's breakpoints system.
2041 + *
2042 + * @since 3.4.0
2043 + */
2044 +class Breakpoints extends elementorModules.Module {
2045 + constructor(responsiveConfig) {
2046 + super();
2047 +
2048 + // The passed config is either `elementor.config.responsive` or `elementorFrontend.config.responsive`
2049 + this.responsiveConfig = responsiveConfig;
2050 + }
2051 +
2052 + /**
2053 + * Get Active Breakpoints List
2054 + *
2055 + * Returns a flat array containing the active breakpoints/devices. By default, it returns the li
2056 + * the list ordered from smallest to largest breakpoint. If `true` is passed as a parameter, it reverses the order.
2057 + *
2058 + * @since 3.4.0
2059 + *
2060 + * @param {Object} args
2061 + */
2062 + getActiveBreakpointsList() {
2063 + let args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2064 + const defaultArgs = {
2065 + largeToSmall: false,
2066 + withDesktop: false
2067 + };
2068 + args = {
2069 + ...defaultArgs,
2070 + ...args
2071 + };
2072 + const breakpointKeys = Object.keys(this.responsiveConfig.activeBreakpoints);
2073 + if (args.withDesktop) {
2074 + // If there is an active 'widescreen' breakpoint, insert the artificial 'desktop' device below it.
2075 + const widescreenIndex = breakpointKeys.indexOf('widescreen'),
2076 + indexToInsertDesktopDevice = -1 === widescreenIndex ? breakpointKeys.length : breakpointKeys.length - 1;
2077 + breakpointKeys.splice(indexToInsertDesktopDevice, 0, 'desktop');
2078 + }
2079 + if (args.largeToSmall) {
2080 + breakpointKeys.reverse();
2081 + }
2082 + return breakpointKeys;
2083 + }
2084 +
2085 + /**
2086 + * Get Active Breakpoint Values
2087 + *
2088 + * Returns a flat array containing the list of active breakpoint values, from smallest to largest.
2089 + *
2090 + * @since 3.4.0
2091 + */
2092 + getBreakpointValues() {
2093 + const {
2094 + activeBreakpoints
2095 + } = this.responsiveConfig,
2096 + breakpointValues = [];
2097 + Object.values(activeBreakpoints).forEach(breakpointConfig => {
2098 + breakpointValues.push(breakpointConfig.value);
2099 + });
2100 + return breakpointValues;
2101 + }
2102 +
2103 + /**
2104 + * Get Desktop Previous Device Key
2105 + *
2106 + * Returns the key of the device directly under desktop (can be 'tablet', 'tablet_extra', 'laptop').
2107 + *
2108 + * @since 3.4.0
2109 + *
2110 + * @return {string} device key
2111 + */
2112 + getDesktopPreviousDeviceKey() {
2113 + let desktopPreviousDevice = '';
2114 + const {
2115 + activeBreakpoints
2116 + } = this.responsiveConfig,
2117 + breakpointKeys = Object.keys(activeBreakpoints),
2118 + numOfDevices = breakpointKeys.length;
2119 + if ('min' === activeBreakpoints[breakpointKeys[numOfDevices - 1]].direction) {
2120 + // If the widescreen breakpoint is active, the device that's previous to desktop is the last one before
2121 + // widescreen.
2122 + desktopPreviousDevice = breakpointKeys[numOfDevices - 2];
2123 + } else {
2124 + // If the widescreen breakpoint isn't active, we just take the last device returned by the config.
2125 + desktopPreviousDevice = breakpointKeys[numOfDevices - 1];
2126 + }
2127 + return desktopPreviousDevice;
2128 + }
2129 +
2130 + /**
2131 + * Get Device Minimum Breakpoint
2132 + *
2133 + * Returns the minimum point in the device's display range. For each device, the minimum point of its display range
2134 + * is the max point of the device below it + 1px. For example, if the active devices are mobile, tablet,
2135 + * and desktop, and the mobile breakpoint is 767px, the minimum display point for tablet devices is 768px.
2136 + *
2137 + * @since 3.4.0
2138 + *
2139 + * @return {number|*} minimum breakpoint
2140 + */
2141 + getDesktopMinPoint() {
2142 + const {
2143 + activeBreakpoints
2144 + } = this.responsiveConfig,
2145 + desktopPreviousDevice = this.getDesktopPreviousDeviceKey();
2146 + return activeBreakpoints[desktopPreviousDevice].value + 1;
2147 + }
2148 +
2149 + /**
2150 + * Get Device Minimum Breakpoint
2151 + *
2152 + * Returns the minimum point in the device's display range. For each device, the minimum point of its display range
2153 + * is the max point of the device below it + 1px. For example, if the active devices are mobile, tablet,
2154 + * and desktop, and the mobile breakpoint is 767px, the minimum display point for tablet devices is 768px.
2155 + *
2156 + * @since 3.4.0
2157 + *
2158 + * @param {string} device
2159 + * @return {number|*} minimum breakpoint
2160 + */
2161 + getDeviceMinBreakpoint(device) {
2162 + if ('desktop' === device) {
2163 + return this.getDesktopMinPoint();
2164 + }
2165 + const {
2166 + activeBreakpoints
2167 + } = this.responsiveConfig,
2168 + breakpointNames = Object.keys(activeBreakpoints);
2169 + let minBreakpoint;
2170 + if (breakpointNames[0] === device) {
2171 + // For the lowest breakpoint, the min point is always 320.
2172 + minBreakpoint = 320;
2173 + } else if ('widescreen' === device) {
2174 + // Widescreen only has a minimum point. In this case, the breakpoint
2175 + // value in the Breakpoints config is itself the device min point.
2176 + if (activeBreakpoints[device]) {
2177 + minBreakpoint = activeBreakpoints[device].value;
2178 + } else {
2179 + // If the widescreen breakpoint does not exist in the active breakpoints config (for example, in the
2180 + // case this method runs as the breakpoint is being added), get the value from the full config.
2181 + minBreakpoint = this.responsiveConfig.breakpoints.widescreen;
2182 + }
2183 + } else {
2184 + const deviceNameIndex = breakpointNames.indexOf(device),
2185 + previousIndex = deviceNameIndex - 1;
2186 + minBreakpoint = activeBreakpoints[breakpointNames[previousIndex]].value + 1;
2187 + }
2188 + return minBreakpoint;
2189 + }
2190 +
2191 + /**
2192 + * Get Active Match Regex
2193 + *
2194 + * Returns a regular expression containing all active breakpoints prefixed with an underscore.
2195 + *
2196 + * @return {RegExp} Active Match Regex
2197 + */
2198 + getActiveMatchRegex() {
2199 + return new RegExp(this.getActiveBreakpointsList().map(device => '_' + device).join('|') + '$');
2200 + }
2201 +}
2202 +exports["default"] = Breakpoints;
2203 +
2204 +/***/ }),
2205 +
2206 +/***/ "../assets/dev/js/utils/events.js":
2207 +/*!****************************************!*\
2208 + !*** ../assets/dev/js/utils/events.js ***!
2209 + \****************************************/
2210 +/***/ ((__unused_webpack_module, exports) => {
2211 +
2212 +"use strict";
2213 +
2214 +
2215 +Object.defineProperty(exports, "__esModule", ({
2216 + value: true
2217 +}));
2218 +exports["default"] = exports.Events = void 0;
2219 +class Events {
2220 + /**
2221 + * Dispatch an Elementor event.
2222 + *
2223 + * Will dispatch both native event & jQuery event (as BC).
2224 + * By default, `bcEvent` is `null`.
2225 + *
2226 + * @param {Object} context - The context that will dispatch the event.
2227 + * @param {string} event - Event to dispatch.
2228 + * @param {*} data - Data to pass to the event, default to `null`.
2229 + * @param {string|null} bcEvent - BC event to dispatch, default to `null`.
2230 + *
2231 + * @return {void}
2232 + */
2233 + static dispatch(context, event) {
2234 + let data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2235 + let bcEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
2236 + // Make sure to use the native context if it's a jQuery instance.
2237 + context = context instanceof jQuery ? context[0] : context;
2238 +
2239 + // Dispatch the BC event only if exists.
2240 + if (bcEvent) {
2241 + context.dispatchEvent(new CustomEvent(bcEvent, {
2242 + detail: data
2243 + }));
2244 + }
2245 +
2246 + // jQuery's `.on()` listens also to native custom events, so there is no need
2247 + // to dispatch also a jQuery event.
2248 + context.dispatchEvent(new CustomEvent(event, {
2249 + detail: data
2250 + }));
2251 + }
2252 +}
2253 +exports.Events = Events;
2254 +var _default = Events;
2255 +exports["default"] = _default;
2256 +
2257 +/***/ }),
2258 +
2259 +/***/ "../assets/dev/js/utils/hooks.js":
2260 +/*!***************************************!*\
2261 + !*** ../assets/dev/js/utils/hooks.js ***!
2262 + \***************************************/
2263 +/***/ ((module) => {
2264 +
2265 +"use strict";
2266 +
2267 +
2268 +/**
2269 + * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in
2270 + * that, lowest priority hooks are fired first.
2271 + */
2272 +var EventManager = function () {
2273 + var slice = Array.prototype.slice,
2274 + MethodsAvailable;
2275 +
2276 + /**
2277 + * Contains the hooks that get registered with this EventManager. The array for storage utilizes a "flat"
2278 + * object literal such that looking up the hook utilizes the native object literal hash.
2279 + */
2280 + var STORAGE = {
2281 + actions: {},
2282 + filters: {}
2283 + };
2284 +
2285 + /**
2286 + * Removes the specified hook by resetting the value of it.
2287 + *
2288 + * @param {string} type Type of hook, either 'actions' or 'filters'
2289 + * @param {Function} hook The hook (namespace.identifier) to remove
2290 + * @param {Function} callback
2291 + * @param {*} context
2292 + * @private
2293 + */
2294 + function _removeHook(type, hook, callback, context) {
2295 + var handlers, handler, i;
2296 + if (!STORAGE[type][hook]) {
2297 + return;
2298 + }
2299 + if (!callback) {
2300 + STORAGE[type][hook] = [];
2301 + } else {
2302 + handlers = STORAGE[type][hook];
2303 + if (!context) {
2304 + for (i = handlers.length; i--;) {
2305 + if (handlers[i].callback === callback) {
2306 + handlers.splice(i, 1);
2307 + }
2308 + }
2309 + } else {
2310 + for (i = handlers.length; i--;) {
2311 + handler = handlers[i];
2312 + if (handler.callback === callback && handler.context === context) {
2313 + handlers.splice(i, 1);
2314 + }
2315 + }
2316 + }
2317 + }
2318 + }
2319 +
2320 + /**
2321 + * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster
2322 + * than bubble sort, etc: http://jsperf.com/javascript-sort
2323 + *
2324 + * @param {Array<*>} hooks The custom array containing all of the appropriate hooks to perform an insert sort on.
2325 + * @private
2326 + */
2327 + function _hookInsertSort(hooks) {
2328 + var tmpHook, j, prevHook;
2329 + for (var i = 1, len = hooks.length; i < len; i++) {
2330 + tmpHook = hooks[i];
2331 + j = i;
2332 + while ((prevHook = hooks[j - 1]) && prevHook.priority > tmpHook.priority) {
2333 + hooks[j] = hooks[j - 1];
2334 + --j;
2335 + }
2336 + hooks[j] = tmpHook;
2337 + }
2338 + return hooks;
2339 + }
2340 +
2341 + /**
2342 + * Adds the hook to the appropriate storage container
2343 + *
2344 + * @param {string} type 'actions' or 'filters'
2345 + * @param {Array<*>} hook The hook (namespace.identifier) to add to our event manager
2346 + * @param {Function} callback The function that will be called when the hook is executed.
2347 + * @param {number} priority The priority of this hook. Must be an integer.
2348 + * @param {*} [context] A value to be used for this
2349 + * @private
2350 + */
2351 + function _addHook(type, hook, callback, priority, context) {
2352 + var hookObject = {
2353 + callback,
2354 + priority,
2355 + context
2356 + };
2357 +
2358 + // Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19
2359 + var hooks = STORAGE[type][hook];
2360 + if (hooks) {
2361 + // TEMP FIX BUG
2362 + var hasSameCallback = false;
2363 + jQuery.each(hooks, function () {
2364 + if (this.callback === callback) {
2365 + hasSameCallback = true;
2366 + return false;
2367 + }
2368 + });
2369 + if (hasSameCallback) {
2370 + return;
2371 + }
2372 + // END TEMP FIX BUG
2373 +
2374 + hooks.push(hookObject);
2375 + hooks = _hookInsertSort(hooks);
2376 + } else {
2377 + hooks = [hookObject];
2378 + }
2379 + STORAGE[type][hook] = hooks;
2380 + }
2381 +
2382 + /**
2383 + * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.
2384 + *
2385 + * @param {string} type 'actions' or 'filters'
2386 + * @param {*} hook The hook ( namespace.identifier ) to be ran.
2387 + * @param {Array<*>} args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.
2388 + * @private
2389 + */
2390 + function _runHook(type, hook, args) {
2391 + var handlers = STORAGE[type][hook],
2392 + i,
2393 + len;
2394 + if (!handlers) {
2395 + return 'filters' === type ? args[0] : false;
2396 + }
2397 + len = handlers.length;
2398 + if ('filters' === type) {
2399 + for (i = 0; i < len; i++) {
2400 + args[0] = handlers[i].callback.apply(handlers[i].context, args);
2401 + }
2402 + } else {
2403 + for (i = 0; i < len; i++) {
2404 + handlers[i].callback.apply(handlers[i].context, args);
2405 + }
2406 + }
2407 + return 'filters' === type ? args[0] : true;
2408 + }
2409 +
2410 + /**
2411 + * Adds an action to the event manager.
2412 + *
2413 + * @param {string} action Must contain namespace.identifier
2414 + * @param {Function} callback Must be a valid callback function before this action is added
2415 + * @param {number} [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
2416 + * @param {*} [context] Supply a value to be used for this
2417 + */
2418 + function addAction(action, callback, priority, context) {
2419 + if ('string' === typeof action && 'function' === typeof callback) {
2420 + priority = parseInt(priority || 10, 10);
2421 + _addHook('actions', action, callback, priority, context);
2422 + }
2423 + return MethodsAvailable;
2424 + }
2425 +
2426 + /**
2427 + * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is
2428 + * that the first argument must always be the action.
2429 + */
2430 + function doAction( /* Action, arg1, arg2, ... */
2431 + ) {
2432 + var args = slice.call(arguments);
2433 + var action = args.shift();
2434 + if ('string' === typeof action) {
2435 + _runHook('actions', action, args);
2436 + }
2437 + return MethodsAvailable;
2438 + }
2439 +
2440 + /**
2441 + * Removes the specified action if it contains a namespace.identifier & exists.
2442 + *
2443 + * @param {string} action The action to remove
2444 + * @param {Function} [callback] Callback function to remove
2445 + */
2446 + function removeAction(action, callback) {
2447 + if ('string' === typeof action) {
2448 + _removeHook('actions', action, callback);
2449 + }
2450 + return MethodsAvailable;
2451 + }
2452 +
2453 + /**
2454 + * Adds a filter to the event manager.
2455 + *
2456 + * @param {string} filter Must contain namespace.identifier
2457 + * @param {Function} callback Must be a valid callback function before this action is added
2458 + * @param {number} [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
2459 + * @param {*} [context] Supply a value to be used for this
2460 + */
2461 + function addFilter(filter, callback, priority, context) {
2462 + if ('string' === typeof filter && 'function' === typeof callback) {
2463 + priority = parseInt(priority || 10, 10);
2464 + _addHook('filters', filter, callback, priority, context);
2465 + }
2466 + return MethodsAvailable;
2467 + }
2468 +
2469 + /**
2470 + * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that
2471 + * the first argument must always be the filter.
2472 + */
2473 + function applyFilters( /* Filter, filtered arg, arg2, ... */
2474 + ) {
2475 + var args = slice.call(arguments);
2476 + var filter = args.shift();
2477 + if ('string' === typeof filter) {
2478 + return _runHook('filters', filter, args);
2479 + }
2480 + return MethodsAvailable;
2481 + }
2482 +
2483 + /**
2484 + * Removes the specified filter if it contains a namespace.identifier & exists.
2485 + *
2486 + * @param {string} filter The action to remove
2487 + * @param {Function} [callback] Callback function to remove
2488 + */
2489 + function removeFilter(filter, callback) {
2490 + if ('string' === typeof filter) {
2491 + _removeHook('filters', filter, callback);
2492 + }
2493 + return MethodsAvailable;
2494 + }
2495 +
2496 + /**
2497 + * Maintain a reference to the object scope so our public methods never get confusing.
2498 + */
2499 + MethodsAvailable = {
2500 + removeFilter,
2501 + applyFilters,
2502 + addFilter,
2503 + removeAction,
2504 + doAction,
2505 + addAction
2506 + };
2507 +
2508 + // Return all of the publicly available methods
2509 + return MethodsAvailable;
2510 +};
2511 +module.exports = EventManager;
2512 +
2513 +/***/ }),
2514 +
2515 +/***/ "../core/common/assets/js/utils/environment.js":
2516 +/*!*****************************************************!*\
2517 + !*** ../core/common/assets/js/utils/environment.js ***!
2518 + \*****************************************************/
2519 +/***/ ((__unused_webpack_module, exports) => {
2520 +
2521 +"use strict";
2522 +
2523 +
2524 +Object.defineProperty(exports, "__esModule", ({
2525 + value: true
2526 +}));
2527 +exports["default"] = void 0;
2528 +const matchUserAgent = UserAgentStr => {
2529 + return userAgent.indexOf(UserAgentStr) >= 0;
2530 + },
2531 + userAgent = navigator.userAgent,
2532 + // Solution influenced by https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
2533 +
2534 + // Opera 8.0+
2535 + isOpera = !!window.opr && !!opr.addons || !!window.opera || matchUserAgent(' OPR/'),
2536 + // Firefox 1.0+
2537 + isFirefox = matchUserAgent('Firefox'),
2538 + // Safari 3.0+ "[object HTMLElementConstructor]"
2539 + isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) || /constructor/i.test(window.HTMLElement) || (p => {
2540 + return '[object SafariRemoteNotification]' === p.toString();
2541 + })(!window.safari || typeof safari !== 'undefined' && safari.pushNotification),
2542 + // Internet Explorer 6-11
2543 + isIE = /Trident|MSIE/.test(userAgent) && ( /* @cc_on!@*/ false || !!document.documentMode),
2544 + // Edge 20+
2545 + isEdge = !isIE && !!window.StyleMedia || matchUserAgent('Edg'),
2546 + // Google Chrome (Not accurate)
2547 + isChrome = !!window.chrome && matchUserAgent('Chrome') && !(isEdge || isOpera),
2548 + // Blink engine
2549 + isBlink = matchUserAgent('Chrome') && !!window.CSS,
2550 + // Apple Webkit engine
2551 + isAppleWebkit = matchUserAgent('AppleWebKit') && !isBlink,
2552 + isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0,
2553 + environment = {
2554 + isTouchDevice,
2555 + appleWebkit: isAppleWebkit,
2556 + blink: isBlink,
2557 + chrome: isChrome,
2558 + edge: isEdge,
2559 + firefox: isFirefox,
2560 + ie: isIE,
2561 + mac: matchUserAgent('Macintosh'),
2562 + opera: isOpera,
2563 + safari: isSafari,
2564 + webkit: matchUserAgent('AppleWebKit')
2565 + };
2566 +var _default = environment;
2567 +exports["default"] = _default;
2568 +
2569 +/***/ }),
2570 +
2571 +/***/ "../core/common/assets/js/utils/storage.js":
2572 +/*!*************************************************!*\
2573 + !*** ../core/common/assets/js/utils/storage.js ***!
2574 + \*************************************************/
2575 +/***/ ((__unused_webpack_module, exports) => {
2576 +
2577 +"use strict";
2578 +
2579 +
2580 +Object.defineProperty(exports, "__esModule", ({
2581 + value: true
2582 +}));
2583 +exports["default"] = void 0;
2584 +class _default extends elementorModules.Module {
2585 + get(key, options) {
2586 + options = options || {};
2587 + let storage;
2588 + try {
2589 + storage = options.session ? sessionStorage : localStorage;
2590 + } catch (e) {
2591 + return key ? undefined : {};
2592 + }
2593 + let elementorStorage = storage.getItem('elementor');
2594 + if (elementorStorage) {
2595 + elementorStorage = JSON.parse(elementorStorage);
2596 + } else {
2597 + elementorStorage = {};
2598 + }
2599 + if (!elementorStorage.__expiration) {
2600 + elementorStorage.__expiration = {};
2601 + }
2602 + const expiration = elementorStorage.__expiration;
2603 + let expirationToCheck = [];
2604 + if (key) {
2605 + if (expiration[key]) {
2606 + expirationToCheck = [key];
2607 + }
2608 + } else {
2609 + expirationToCheck = Object.keys(expiration);
2610 + }
2611 + let entryExpired = false;
2612 + expirationToCheck.forEach(expirationKey => {
2613 + if (new Date(expiration[expirationKey]) < new Date()) {
2614 + delete elementorStorage[expirationKey];
2615 + delete expiration[expirationKey];
2616 + entryExpired = true;
2617 + }
2618 + });
2619 + if (entryExpired) {
2620 + this.save(elementorStorage, options.session);
2621 + }
2622 + if (key) {
2623 + return elementorStorage[key];
2624 + }
2625 + return elementorStorage;
2626 + }
2627 + set(key, value, options) {
2628 + options = options || {};
2629 + const elementorStorage = this.get(null, options);
2630 + elementorStorage[key] = value;
2631 + if (options.lifetimeInSeconds) {
2632 + const date = new Date();
2633 + date.setTime(date.getTime() + options.lifetimeInSeconds * 1000);
2634 + elementorStorage.__expiration[key] = date.getTime();
2635 + }
2636 + this.save(elementorStorage, options.session);
2637 + }
2638 + save(object, session) {
2639 + let storage;
2640 + try {
2641 + storage = session ? sessionStorage : localStorage;
2642 + } catch (e) {
2643 + return;
2644 + }
2645 + storage.setItem('elementor', JSON.stringify(object));
2646 + }
2647 +}
2648 +exports["default"] = _default;
2649 +
2650 +/***/ }),
2651 +
2652 +/***/ "../modules/shapes/assets/js/frontend/frontend.js":
2653 +/*!********************************************************!*\
2654 + !*** ../modules/shapes/assets/js/frontend/frontend.js ***!
2655 + \********************************************************/
2656 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2657 +
2658 +"use strict";
2659 +
2660 +
2661 +Object.defineProperty(exports, "__esModule", ({
2662 + value: true
2663 +}));
2664 +exports["default"] = void 0;
2665 +class _default extends elementorModules.Module {
2666 + constructor() {
2667 + super();
2668 + 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")));
2669 + }
2670 +}
2671 +exports["default"] = _default;
2672 +
2673 +/***/ }),
2674 +
2675 +/***/ "../node_modules/core-js/internals/an-instance.js":
2676 +/*!********************************************************!*\
2677 + !*** ../node_modules/core-js/internals/an-instance.js ***!
2678 + \********************************************************/
2679 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2680 +
2681 +var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "../node_modules/core-js/internals/object-is-prototype-of.js");
2682 +
2683 +var $TypeError = TypeError;
2684 +
2685 +module.exports = function (it, Prototype) {
2686 + if (isPrototypeOf(Prototype, it)) return it;
2687 + throw $TypeError('Incorrect invocation');
2688 +};
2689 +
2690 +
2691 +/***/ }),
2692 +
2693 +/***/ "../node_modules/core-js/internals/dom-exception-constants.js":
2694 +/*!********************************************************************!*\
2695 + !*** ../node_modules/core-js/internals/dom-exception-constants.js ***!
2696 + \********************************************************************/
2697 +/***/ ((module) => {
2698 +
2699 +module.exports = {
2700 + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },
2701 + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },
2702 + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },
2703 + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },
2704 + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },
2705 + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },
2706 + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },
2707 + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },
2708 + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },
2709 + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },
2710 + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },
2711 + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },
2712 + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },
2713 + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },
2714 + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },
2715 + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },
2716 + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },
2717 + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },
2718 + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },
2719 + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },
2720 + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },
2721 + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },
2722 + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },
2723 + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },
2724 + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }
2725 +};
2726 +
2727 +
2728 +/***/ }),
2729 +
2730 +/***/ "../node_modules/core-js/modules/web.dom-exception.stack.js":
2731 +/*!******************************************************************!*\
2732 + !*** ../node_modules/core-js/modules/web.dom-exception.stack.js ***!
2733 + \******************************************************************/
2734 +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
2735 +
2736 +"use strict";
2737 +
2738 +var $ = __webpack_require__(/*! ../internals/export */ "../node_modules/core-js/internals/export.js");
2739 +var global = __webpack_require__(/*! ../internals/global */ "../node_modules/core-js/internals/global.js");
2740 +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "../node_modules/core-js/internals/get-built-in.js");
2741 +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "../node_modules/core-js/internals/create-property-descriptor.js");
2742 +var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "../node_modules/core-js/internals/object-define-property.js").f);
2743 +var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "../node_modules/core-js/internals/has-own-property.js");
2744 +var anInstance = __webpack_require__(/*! ../internals/an-instance */ "../node_modules/core-js/internals/an-instance.js");
2745 +var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "../node_modules/core-js/internals/inherit-if-required.js");
2746 +var normalizeStringArgument = __webpack_require__(/*! ../internals/normalize-string-argument */ "../node_modules/core-js/internals/normalize-string-argument.js");
2747 +var DOMExceptionConstants = __webpack_require__(/*! ../internals/dom-exception-constants */ "../node_modules/core-js/internals/dom-exception-constants.js");
2748 +var clearErrorStack = __webpack_require__(/*! ../internals/error-stack-clear */ "../node_modules/core-js/internals/error-stack-clear.js");
2749 +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "../node_modules/core-js/internals/descriptors.js");
2750 +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "../node_modules/core-js/internals/is-pure.js");
2751 +
2752 +var DOM_EXCEPTION = 'DOMException';
2753 +var Error = getBuiltIn('Error');
2754 +var NativeDOMException = getBuiltIn(DOM_EXCEPTION);
2755 +
2756 +var $DOMException = function DOMException() {
2757 + anInstance(this, DOMExceptionPrototype);
2758 + var argumentsLength = arguments.length;
2759 + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);
2760 + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');
2761 + var that = new NativeDOMException(message, name);
2762 + var error = Error(message);
2763 + error.name = DOM_EXCEPTION;
2764 + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));
2765 + inheritIfRequired(that, this, $DOMException);
2766 + return that;
2767 +};
2768 +
2769 +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;
2770 +
2771 +var ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);
2772 +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);
2773 +
2774 +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
2775 +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);
2776 +
2777 +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it
2778 +// https://github.com/Jarred-Sumner/bun/issues/399
2779 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);
2780 +
2781 +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;
2782 +
2783 +// `DOMException` constructor patch for `.stack` where it's required
2784 +// https://webidl.spec.whatwg.org/#es-DOMException-specialness
2785 +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic
2786 + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException
2787 +});
2788 +
2789 +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);
2790 +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;
2791 +
2792 +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {
2793 + if (!IS_PURE) {
2794 + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));
2795 + }
2796 +
2797 + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {
2798 + var constant = DOMExceptionConstants[key];
2799 + var constantName = constant.s;
2800 + if (!hasOwn(PolyfilledDOMException, constantName)) {
2801 + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));
2802 + }
2803 + }
2804 +}
2805 +
2806 +
2807 +/***/ })
2808 +
2809 +},
2810 +/******/ __webpack_require__ => { // webpackRuntimeModules
2811 +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
2812 +/******/ __webpack_require__.O(0, ["frontend-modules"], () => (__webpack_exec__("../assets/dev/js/frontend/frontend.js")));
2813 +/******/ var __webpack_exports__ = __webpack_require__.O();
2814 +/******/ }
2815 +]);
4043 2816 //# sourceMappingURL=frontend.js.map