PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.2
Elementor Website Builder – more than just a page builder v4.2.2
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 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / assets / js / interactions-shared-utils.js

interactions-shared-utils.js in Elementor Website Builder – more than just a page builder 4.2.2, at assets/js/interactions-shared-utils.js

611 lines 26.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "../modules/interactions/assets/js/interactions-breakpoints.js":
5 /*!*********************************************************************!*\
6 !*** ../modules/interactions/assets/js/interactions-breakpoints.js ***!
7 \*********************************************************************/
8 /***/ ((__unused_webpack_module, exports) => {
9
10 "use strict";
11
12
13 Object.defineProperty(exports, "__esModule", ({
14 value: true
15 }));
16 exports.getActiveBreakpoint = getActiveBreakpoint;
17 exports.initBreakpoints = initBreakpoints;
18 var RESIZE_DEBOUNCE_TIMEOUT = 100;
19 var breakpoints = {
20 list: {},
21 active: {},
22 onChange: function onChange() {}
23 };
24 function getActiveBreakpoint() {
25 return breakpoints.active;
26 }
27 function matchBreakpoint(width) {
28 for (var label in breakpoints.list) {
29 var breakpoint = breakpoints.list[label];
30 if ('min' === breakpoint.direction && width >= breakpoint.value) {
31 return label;
32 }
33 if ('max' === breakpoint.direction && breakpoint.value >= width) {
34 return label;
35 }
36 }
37 return 'desktop';
38 }
39 function attachEventListeners() {
40 var timeout = null;
41 var onResize = function onResize() {
42 if (timeout) {
43 window.clearTimeout(timeout);
44 timeout = null;
45 }
46 timeout = window.setTimeout(function () {
47 var currentBreakpoint = matchBreakpoint(window.innerWidth);
48 if (currentBreakpoint === breakpoints.active) {
49 return;
50 }
51 breakpoints.active = currentBreakpoint;
52 if ('function' === typeof breakpoints.onChange) {
53 breakpoints.onChange(breakpoints.active);
54 }
55 }, RESIZE_DEBOUNCE_TIMEOUT);
56 };
57 window.addEventListener('resize', onResize);
58 }
59 function getBreakpointsList() {
60 var _ElementorInteraction;
61 return ((_ElementorInteraction = ElementorInteractionsConfig) === null || _ElementorInteraction === void 0 ? void 0 : _ElementorInteraction.breakpoints) || {};
62 }
63 function initBreakpoints() {
64 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
65 onChange = _ref.onChange;
66 breakpoints.list = getBreakpointsList();
67 breakpoints.active = matchBreakpoint(window.innerWidth);
68 if ('function' === typeof onChange) {
69 breakpoints.onChange = onChange;
70 }
71 attachEventListeners();
72 }
73
74 /***/ }),
75
76 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
77 /*!******************************************************************!*\
78 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
79 \******************************************************************/
80 /***/ ((module) => {
81
82 function _arrayLikeToArray(r, a) {
83 (null == a || a > r.length) && (a = r.length);
84 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
85 return n;
86 }
87 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
88
89 /***/ }),
90
91 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
92 /*!****************************************************************!*\
93 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
94 \****************************************************************/
95 /***/ ((module) => {
96
97 function _arrayWithHoles(r) {
98 if (Array.isArray(r)) return r;
99 }
100 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
101
102 /***/ }),
103
104 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
105 /*!****************************************************************!*\
106 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
107 \****************************************************************/
108 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
109
110 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
111 function _defineProperty(e, r, t) {
112 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
113 value: t,
114 enumerable: !0,
115 configurable: !0,
116 writable: !0
117 }) : e[r] = t, e;
118 }
119 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
120
121 /***/ }),
122
123 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
124 /*!***********************************************************************!*\
125 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
126 \***********************************************************************/
127 /***/ ((module) => {
128
129 function _interopRequireDefault(e) {
130 return e && e.__esModule ? e : {
131 "default": e
132 };
133 }
134 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
135
136 /***/ }),
137
138 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
139 /*!**********************************************************************!*\
140 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
141 \**********************************************************************/
142 /***/ ((module) => {
143
144 function _iterableToArrayLimit(r, l) {
145 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
146 if (null != t) {
147 var e,
148 n,
149 i,
150 u,
151 a = [],
152 f = !0,
153 o = !1;
154 try {
155 if (i = (t = t.call(r)).next, 0 === l) {
156 if (Object(t) !== t) return;
157 f = !1;
158 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
159 } catch (r) {
160 o = !0, n = r;
161 } finally {
162 try {
163 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
164 } finally {
165 if (o) throw n;
166 }
167 }
168 return a;
169 }
170 }
171 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
172
173 /***/ }),
174
175 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
176 /*!*****************************************************************!*\
177 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
178 \*****************************************************************/
179 /***/ ((module) => {
180
181 function _nonIterableRest() {
182 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
183 }
184 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
185
186 /***/ }),
187
188 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
189 /*!***************************************************************!*\
190 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
191 \***************************************************************/
192 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
193
194 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
195 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
196 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
197 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
198 function _slicedToArray(r, e) {
199 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
200 }
201 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
202
203 /***/ }),
204
205 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
206 /*!*************************************************************!*\
207 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
208 \*************************************************************/
209 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
210
211 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
212 function toPrimitive(t, r) {
213 if ("object" != _typeof(t) || !t) return t;
214 var e = t[Symbol.toPrimitive];
215 if (void 0 !== e) {
216 var i = e.call(t, r || "default");
217 if ("object" != _typeof(i)) return i;
218 throw new TypeError("@@toPrimitive must return a primitive value.");
219 }
220 return ("string" === r ? String : Number)(t);
221 }
222 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
223
224 /***/ }),
225
226 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
227 /*!***************************************************************!*\
228 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
229 \***************************************************************/
230 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
231
232 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
233 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
234 function toPropertyKey(t) {
235 var i = toPrimitive(t, "string");
236 return "symbol" == _typeof(i) ? i : i + "";
237 }
238 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
239
240 /***/ }),
241
242 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
243 /*!********************************************************!*\
244 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
245 \********************************************************/
246 /***/ ((module) => {
247
248 function _typeof(o) {
249 "@babel/helpers - typeof";
250
251 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
252 return typeof o;
253 } : function (o) {
254 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
255 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
256 }
257 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
258
259 /***/ }),
260
261 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
262 /*!****************************************************************************!*\
263 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
264 \****************************************************************************/
265 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
266
267 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
268 function _unsupportedIterableToArray(r, a) {
269 if (r) {
270 if ("string" == typeof r) return arrayLikeToArray(r, a);
271 var t = {}.toString.call(r).slice(8, -1);
272 return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;
273 }
274 }
275 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
276
277 /***/ })
278
279 /******/ });
280 /************************************************************************/
281 /******/ // The module cache
282 /******/ var __webpack_module_cache__ = {};
283 /******/
284 /******/ // The require function
285 /******/ function __webpack_require__(moduleId) {
286 /******/ // Check if module is in cache
287 /******/ var cachedModule = __webpack_module_cache__[moduleId];
288 /******/ if (cachedModule !== undefined) {
289 /******/ return cachedModule.exports;
290 /******/ }
291 /******/ // Create a new module (and put it into the cache)
292 /******/ var module = __webpack_module_cache__[moduleId] = {
293 /******/ // no module.id needed
294 /******/ // no module.loaded needed
295 /******/ exports: {}
296 /******/ };
297 /******/
298 /******/ // Execute the module function
299 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
300 /******/
301 /******/ // Return the exports of the module
302 /******/ return module.exports;
303 /******/ }
304 /******/
305 /************************************************************************/
306 var __webpack_exports__ = {};
307 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
308 (() => {
309 "use strict";
310 var exports = __webpack_exports__;
311 /*!**********************************************************************!*\
312 !*** ../modules/interactions/assets/js/interactions-shared-utils.js ***!
313 \**********************************************************************/
314
315
316 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
317 Object.defineProperty(exports, "__esModule", ({
318 value: true
319 }));
320 exports.config = config;
321 exports.extractInteractionId = extractInteractionId;
322 exports.getAnimateFunction = getAnimateFunction;
323 exports.getInViewFunction = getInViewFunction;
324 exports.getTransformBaselineFromComputedStyle = getTransformBaselineFromComputedStyle;
325 exports.parseInteractionsData = parseInteractionsData;
326 exports.preserveTransformKeyframes = preserveTransformKeyframes;
327 exports.resetElementStyles = resetElementStyles;
328 exports.skipInteraction = skipInteraction;
329 exports.timingValueToMs = timingValueToMs;
330 exports.unwrapInteractionValue = unwrapInteractionValue;
331 exports.waitForAnimateFunction = waitForAnimateFunction;
332 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
333 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
334 var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
335 var _interactionsBreakpoints = __webpack_require__(/*! ./interactions-breakpoints.js */ "../modules/interactions/assets/js/interactions-breakpoints.js");
336 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
337 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
338 function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
339 function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
340 function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
341 function config() {
342 var _window$ElementorInte, _window$ElementorInte2;
343 return (_window$ElementorInte = (_window$ElementorInte2 = window.ElementorInteractionsConfig) === null || _window$ElementorInte2 === void 0 ? void 0 : _window$ElementorInte2.constants) !== null && _window$ElementorInte !== void 0 ? _window$ElementorInte : {};
344 }
345 function skipInteraction(interaction) {
346 var _interaction$breakpoi;
347 var breakpoint = (0, _interactionsBreakpoints.getActiveBreakpoint)();
348 return interaction === null || interaction === void 0 || (_interaction$breakpoi = interaction.breakpoints) === null || _interaction$breakpoi === void 0 || (_interaction$breakpoi = _interaction$breakpoi.excluded) === null || _interaction$breakpoi === void 0 ? void 0 : _interaction$breakpoi.includes(breakpoint);
349 }
350 function extractInteractionId(interaction) {
351 if ('interaction-item' === (interaction === null || interaction === void 0 ? void 0 : interaction.$$type) && interaction !== null && interaction !== void 0 && interaction.value) {
352 var _interaction$value$in;
353 return ((_interaction$value$in = interaction.value.interaction_id) === null || _interaction$value$in === void 0 ? void 0 : _interaction$value$in.value) || null;
354 }
355 return null;
356 }
357 function motionFunc(name) {
358 var _window, _window2;
359 if ('function' !== typeof ((_window = window) === null || _window === void 0 || (_window = _window.Motion) === null || _window === void 0 ? void 0 : _window[name])) {
360 return undefined;
361 }
362 return (_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.Motion) === null || _window2 === void 0 ? void 0 : _window2[name];
363 }
364 function getAnimateFunction() {
365 return motionFunc('animate');
366 }
367 function getInViewFunction() {
368 return motionFunc('inView');
369 }
370 function waitForAnimateFunction(callback) {
371 var maxAttempts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
372 if (getAnimateFunction()) {
373 callback();
374 return;
375 }
376 if (maxAttempts > 0) {
377 setTimeout(function () {
378 return waitForAnimateFunction(callback, maxAttempts - 1);
379 }, 100);
380 }
381 }
382 function parseInteractionsData(data) {
383 if ('string' === typeof data) {
384 try {
385 return JSON.parse(data);
386 } catch (_unused) {
387 return null;
388 }
389 }
390 return data;
391 }
392 function unwrapInteractionValue(propValue) {
393 var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
394 // Supports Elementor's typed wrapper shape: { $$type: '...', value: ... }.
395 if (propValue && 'object' === (0, _typeof2.default)(propValue) && '$$type' in propValue) {
396 return propValue.value;
397 }
398 return propValue !== null && propValue !== void 0 ? propValue : fallback;
399 }
400 function timingValueToMs(timingValue, fallbackMs) {
401 if (null === timingValue || undefined === timingValue) {
402 return fallbackMs;
403 }
404 var unwrapped = unwrapInteractionValue(timingValue);
405 if ('number' === typeof unwrapped) {
406 return unwrapped;
407 }
408 var sizeObj = unwrapInteractionValue(unwrapped);
409 var size = sizeObj === null || sizeObj === void 0 ? void 0 : sizeObj.size;
410 var unit = (sizeObj === null || sizeObj === void 0 ? void 0 : sizeObj.unit) || 'ms';
411 if ('number' !== typeof size) {
412 return fallbackMs;
413 }
414 if ('s' === unit) {
415 return size * 1000;
416 }
417 return size;
418 }
419 function resetElementStyles(element) {
420 if (!element) {
421 return;
422 }
423 element.style.transition = '';
424 element.style.transform = '';
425 element.style.opacity = '';
426 }
427 var TRANSFORM_EPSILON = 0.001;
428 var radiansToDegrees = function radiansToDegrees(radians) {
429 return radians * (180 / Math.PI);
430 };
431 var isNear = function isNear(value, expected) {
432 return Math.abs(value - expected) <= TRANSFORM_EPSILON;
433 };
434 var isNearZero = function isNearZero(value) {
435 return isNear(value, 0);
436 };
437 var isNearOne = function isNearOne(value) {
438 return isNear(value, 1);
439 };
440 function parseMatrixValues(transformValue) {
441 var match = transformValue.match(/^matrix(3d)?\((.+)\)$/);
442 if (!match) {
443 return null;
444 }
445 return match[2].split(',').map(function (token) {
446 return Number.parseFloat(token.trim());
447 }).filter(function (value) {
448 return Number.isFinite(value);
449 });
450 }
451 function createMatrixFromTransform(transformValue) {
452 if (!transformValue || 'none' === transformValue) {
453 return null;
454 }
455 var matrixFactories = [window.DOMMatrixReadOnly, window.DOMMatrix].filter(function (Factory) {
456 return 'function' === typeof Factory;
457 });
458 var _iterator = _createForOfIteratorHelper(matrixFactories),
459 _step;
460 try {
461 for (_iterator.s(); !(_step = _iterator.n()).done;) {
462 var MatrixFactory = _step.value;
463 try {
464 var _ref, _matrix$a, _ref2, _matrix$b, _ref3, _matrix$c, _ref4, _matrix$d, _ref5, _matrix$e, _ref6, _matrix$f;
465 var matrix = new MatrixFactory(transformValue);
466 // CSS matrix(a,b,c,d,e,f): x' = ax + cy + e, y' = bx + dy + f
467 // matrixXfromY = how much input Y contributes to output X (etc.)
468 var compactMatrix = {
469 matrixXfromX: (_ref = (_matrix$a = matrix.a) !== null && _matrix$a !== void 0 ? _matrix$a : matrix.m11) !== null && _ref !== void 0 ? _ref : 1,
470 matrixYfromX: (_ref2 = (_matrix$b = matrix.b) !== null && _matrix$b !== void 0 ? _matrix$b : matrix.m12) !== null && _ref2 !== void 0 ? _ref2 : 0,
471 matrixXfromY: (_ref3 = (_matrix$c = matrix.c) !== null && _matrix$c !== void 0 ? _matrix$c : matrix.m21) !== null && _ref3 !== void 0 ? _ref3 : 0,
472 matrixYfromY: (_ref4 = (_matrix$d = matrix.d) !== null && _matrix$d !== void 0 ? _matrix$d : matrix.m22) !== null && _ref4 !== void 0 ? _ref4 : 1,
473 matrixTranslateX: (_ref5 = (_matrix$e = matrix.e) !== null && _matrix$e !== void 0 ? _matrix$e : matrix.m41) !== null && _ref5 !== void 0 ? _ref5 : 0,
474 matrixTranslateY: (_ref6 = (_matrix$f = matrix.f) !== null && _matrix$f !== void 0 ? _matrix$f : matrix.m42) !== null && _ref6 !== void 0 ? _ref6 : 0
475 };
476 if (Object.values(compactMatrix).every(Number.isFinite)) {
477 return compactMatrix;
478 }
479 } catch (_unused2) {}
480 }
481 } catch (err) {
482 _iterator.e(err);
483 } finally {
484 _iterator.f();
485 }
486 var parsedValues = parseMatrixValues(transformValue);
487 if (!parsedValues) {
488 return null;
489 }
490 if (6 === parsedValues.length) {
491 var _parsedValues = (0, _slicedToArray2.default)(parsedValues, 6),
492 matrixXfromX = _parsedValues[0],
493 matrixYfromX = _parsedValues[1],
494 matrixXfromY = _parsedValues[2],
495 matrixYfromY = _parsedValues[3],
496 matrixTranslateX = _parsedValues[4],
497 matrixTranslateY = _parsedValues[5];
498 return {
499 matrixXfromX: matrixXfromX,
500 matrixYfromX: matrixYfromX,
501 matrixXfromY: matrixXfromY,
502 matrixYfromY: matrixYfromY,
503 matrixTranslateX: matrixTranslateX,
504 matrixTranslateY: matrixTranslateY
505 };
506 }
507 if (16 === parsedValues.length) {
508 var _parsedValues2 = (0, _slicedToArray2.default)(parsedValues, 14),
509 _matrixXfromX = _parsedValues2[0],
510 _matrixYfromX = _parsedValues2[1],
511 _matrixXfromY = _parsedValues2[4],
512 _matrixYfromY = _parsedValues2[5],
513 _matrixTranslateX = _parsedValues2[12],
514 _matrixTranslateY = _parsedValues2[13];
515 return {
516 matrixXfromX: _matrixXfromX,
517 matrixYfromX: _matrixYfromX,
518 matrixXfromY: _matrixXfromY,
519 matrixYfromY: _matrixYfromY,
520 matrixTranslateX: _matrixTranslateX,
521 matrixTranslateY: _matrixTranslateY
522 };
523 }
524 return null;
525 }
526 function getTransformBaselineFromComputedStyle(element) {
527 if (!element) {
528 return null;
529 }
530 var computedStyle = window.getComputedStyle(element);
531 var matrix = createMatrixFromTransform((computedStyle === null || computedStyle === void 0 ? void 0 : computedStyle.transform) || '');
532 if (!matrix) {
533 return null;
534 }
535 var matrixXfromX = matrix.matrixXfromX,
536 matrixYfromX = matrix.matrixYfromX,
537 matrixXfromY = matrix.matrixXfromY,
538 matrixYfromY = matrix.matrixYfromY,
539 matrixTranslateX = matrix.matrixTranslateX,
540 matrixTranslateY = matrix.matrixTranslateY;
541 var scaleX = Math.hypot(matrixXfromX, matrixYfromX);
542 var determinant = matrixXfromX * matrixYfromY - matrixYfromX * matrixXfromY;
543 var scaleY = scaleX ? determinant / scaleX : Math.hypot(matrixXfromY, matrixYfromY);
544 var rotate = radiansToDegrees(Math.atan2(matrixYfromX, matrixXfromX));
545 var shear = scaleX ? (matrixXfromX * matrixXfromY + matrixYfromX * matrixYfromY) / (scaleX * scaleX) : 0;
546 var skewX = radiansToDegrees(Math.atan(shear));
547 return {
548 x: matrixTranslateX,
549 y: matrixTranslateY,
550 scaleX: Number.isFinite(scaleX) ? scaleX : 1,
551 scaleY: Number.isFinite(scaleY) ? scaleY : 1,
552 rotate: Number.isFinite(rotate) ? rotate : 0,
553 skewX: Number.isFinite(skewX) ? skewX : 0
554 };
555 }
556 function preserveTransformKeyframes(keyframes, baseline) {
557 if (!baseline) {
558 return keyframes;
559 }
560 var mergedKeyframes = _objectSpread({}, keyframes);
561 var hasScaleShorthand = mergedKeyframes.scale !== undefined;
562 var canSetScaleX = mergedKeyframes.scaleX === undefined && !isNearOne(baseline.scaleX);
563 var canSetScaleY = mergedKeyframes.scaleY === undefined && !isNearOne(baseline.scaleY);
564 if (mergedKeyframes.x === undefined && !isNearZero(baseline.x)) {
565 mergedKeyframes.x = [baseline.x, baseline.x];
566 }
567 if (mergedKeyframes.y === undefined && !isNearZero(baseline.y)) {
568 mergedKeyframes.y = [baseline.y, baseline.y];
569 }
570 if (!hasScaleShorthand) {
571 if (canSetScaleX && canSetScaleY && isNear(baseline.scaleX, baseline.scaleY)) {
572 mergedKeyframes.scale = [baseline.scaleX, baseline.scaleX];
573 } else {
574 if (canSetScaleX) {
575 mergedKeyframes.scaleX = [baseline.scaleX, baseline.scaleX];
576 }
577 if (canSetScaleY) {
578 mergedKeyframes.scaleY = [baseline.scaleY, baseline.scaleY];
579 }
580 }
581 }
582 if (mergedKeyframes.rotate === undefined && mergedKeyframes.rotateZ === undefined && !isNearZero(baseline.rotate)) {
583 mergedKeyframes.rotate = [baseline.rotate, baseline.rotate];
584 }
585 if (mergedKeyframes.skew === undefined && mergedKeyframes.skewX === undefined && !isNearZero(baseline.skewX)) {
586 mergedKeyframes.skewX = [baseline.skewX, baseline.skewX];
587 }
588 return mergedKeyframes;
589 }
590
591 // Expose on elementorModules for Pro and other consumers.
592 window.elementorModules = window.elementorModules || {};
593 window.elementorModules.interactions = {
594 config: config,
595 skipInteraction: skipInteraction,
596 extractInteractionId: extractInteractionId,
597 getAnimateFunction: getAnimateFunction,
598 getInViewFunction: getInViewFunction,
599 waitForAnimateFunction: waitForAnimateFunction,
600 parseInteractionsData: parseInteractionsData,
601 unwrapInteractionValue: unwrapInteractionValue,
602 timingValueToMs: timingValueToMs,
603 resetElementStyles: resetElementStyles,
604 getTransformBaselineFromComputedStyle: getTransformBaselineFromComputedStyle,
605 preserveTransformKeyframes: preserveTransformKeyframes
606 };
607 })();
608
609 /******/ })()
610 ;
611 //# sourceMappingURL=interactions-shared-utils.js.map