PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0-dev3
Elementor Website Builder – more than just a page builder v4.0.0-dev3
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 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | assets/js/interactions.js +24 -287 4.2.0-beta24.0.0-dev3 View file →
@@ -89,25 +89,15 @@
89 89 exports.config = config;
90 90 exports.extractInteractionId = extractInteractionId;
91 91 exports.getAnimateFunction = getAnimateFunction;
92 92 exports.getInViewFunction = getInViewFunction;
93 -exports.getTransformBaselineFromComputedStyle = getTransformBaselineFromComputedStyle;
94 93 exports.parseInteractionsData = parseInteractionsData;
95 -exports.preserveTransformKeyframes = preserveTransformKeyframes;
96 -exports.resetElementStyles = resetElementStyles;
97 94 exports.skipInteraction = skipInteraction;
98 95 exports.timingValueToMs = timingValueToMs;
99 96 exports.unwrapInteractionValue = unwrapInteractionValue;
100 97 exports.waitForAnimateFunction = waitForAnimateFunction;
101 -var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
102 -var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
103 98 var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
104 99 var _interactionsBreakpoints = __webpack_require__(/*! ./interactions-breakpoints.js */ "../modules/interactions/assets/js/interactions-breakpoints.js");
105 -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; }
106 -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; }
107 -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; } } }; }
108 -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; } }
109 -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; }
110 100 function config() {
111 101 var _window$ElementorInte, _window$ElementorInte2;
112 102 return (_window$ElementorInte = (_window$ElementorInte2 = window.ElementorInteractionsConfig) === null || _window$ElementorInte2 === void 0 ? void 0 : _window$ElementorInte2.constants) !== null && _window$ElementorInte !== void 0 ? _window$ElementorInte : {};
113 103 }
@@ -184,179 +174,8 @@
184 174 return size * 1000;
185 175 }
186 176 return size;
187 177 }
188 -function resetElementStyles(element) {
189 - if (!element) {
190 - return;
191 - }
192 - element.style.transition = '';
193 - element.style.transform = '';
194 - element.style.opacity = '';
195 -}
196 -var TRANSFORM_EPSILON = 0.001;
197 -var radiansToDegrees = function radiansToDegrees(radians) {
198 - return radians * (180 / Math.PI);
199 -};
200 -var isNear = function isNear(value, expected) {
201 - return Math.abs(value - expected) <= TRANSFORM_EPSILON;
202 -};
203 -var isNearZero = function isNearZero(value) {
204 - return isNear(value, 0);
205 -};
206 -var isNearOne = function isNearOne(value) {
207 - return isNear(value, 1);
208 -};
209 -function parseMatrixValues(transformValue) {
210 - var match = transformValue.match(/^matrix(3d)?\((.+)\)$/);
211 - if (!match) {
212 - return null;
213 - }
214 - return match[2].split(',').map(function (token) {
215 - return Number.parseFloat(token.trim());
216 - }).filter(function (value) {
217 - return Number.isFinite(value);
218 - });
219 -}
220 -function createMatrixFromTransform(transformValue) {
221 - if (!transformValue || 'none' === transformValue) {
222 - return null;
223 - }
224 - var matrixFactories = [window.DOMMatrixReadOnly, window.DOMMatrix].filter(function (Factory) {
225 - return 'function' === typeof Factory;
226 - });
227 - var _iterator = _createForOfIteratorHelper(matrixFactories),
228 - _step;
229 - try {
230 - for (_iterator.s(); !(_step = _iterator.n()).done;) {
231 - var MatrixFactory = _step.value;
232 - try {
233 - var _ref, _matrix$a, _ref2, _matrix$b, _ref3, _matrix$c, _ref4, _matrix$d, _ref5, _matrix$e, _ref6, _matrix$f;
234 - var matrix = new MatrixFactory(transformValue);
235 - // CSS matrix(a,b,c,d,e,f): x' = ax + cy + e, y' = bx + dy + f
236 - // matrixXfromY = how much input Y contributes to output X (etc.)
237 - var compactMatrix = {
238 - matrixXfromX: (_ref = (_matrix$a = matrix.a) !== null && _matrix$a !== void 0 ? _matrix$a : matrix.m11) !== null && _ref !== void 0 ? _ref : 1,
239 - matrixYfromX: (_ref2 = (_matrix$b = matrix.b) !== null && _matrix$b !== void 0 ? _matrix$b : matrix.m12) !== null && _ref2 !== void 0 ? _ref2 : 0,
240 - matrixXfromY: (_ref3 = (_matrix$c = matrix.c) !== null && _matrix$c !== void 0 ? _matrix$c : matrix.m21) !== null && _ref3 !== void 0 ? _ref3 : 0,
241 - matrixYfromY: (_ref4 = (_matrix$d = matrix.d) !== null && _matrix$d !== void 0 ? _matrix$d : matrix.m22) !== null && _ref4 !== void 0 ? _ref4 : 1,
242 - matrixTranslateX: (_ref5 = (_matrix$e = matrix.e) !== null && _matrix$e !== void 0 ? _matrix$e : matrix.m41) !== null && _ref5 !== void 0 ? _ref5 : 0,
243 - matrixTranslateY: (_ref6 = (_matrix$f = matrix.f) !== null && _matrix$f !== void 0 ? _matrix$f : matrix.m42) !== null && _ref6 !== void 0 ? _ref6 : 0
244 - };
245 - if (Object.values(compactMatrix).every(Number.isFinite)) {
246 - return compactMatrix;
247 - }
248 - } catch (_unused2) {}
249 - }
250 - } catch (err) {
251 - _iterator.e(err);
252 - } finally {
253 - _iterator.f();
254 - }
255 - var parsedValues = parseMatrixValues(transformValue);
256 - if (!parsedValues) {
257 - return null;
258 - }
259 - if (6 === parsedValues.length) {
260 - var _parsedValues = (0, _slicedToArray2.default)(parsedValues, 6),
261 - matrixXfromX = _parsedValues[0],
262 - matrixYfromX = _parsedValues[1],
263 - matrixXfromY = _parsedValues[2],
264 - matrixYfromY = _parsedValues[3],
265 - matrixTranslateX = _parsedValues[4],
266 - matrixTranslateY = _parsedValues[5];
267 - return {
268 - matrixXfromX: matrixXfromX,
269 - matrixYfromX: matrixYfromX,
270 - matrixXfromY: matrixXfromY,
271 - matrixYfromY: matrixYfromY,
272 - matrixTranslateX: matrixTranslateX,
273 - matrixTranslateY: matrixTranslateY
274 - };
275 - }
276 - if (16 === parsedValues.length) {
277 - var _parsedValues2 = (0, _slicedToArray2.default)(parsedValues, 14),
278 - _matrixXfromX = _parsedValues2[0],
279 - _matrixYfromX = _parsedValues2[1],
280 - _matrixXfromY = _parsedValues2[4],
281 - _matrixYfromY = _parsedValues2[5],
282 - _matrixTranslateX = _parsedValues2[12],
283 - _matrixTranslateY = _parsedValues2[13];
284 - return {
285 - matrixXfromX: _matrixXfromX,
286 - matrixYfromX: _matrixYfromX,
287 - matrixXfromY: _matrixXfromY,
288 - matrixYfromY: _matrixYfromY,
289 - matrixTranslateX: _matrixTranslateX,
290 - matrixTranslateY: _matrixTranslateY
291 - };
292 - }
293 - return null;
294 -}
295 -function getTransformBaselineFromComputedStyle(element) {
296 - if (!element) {
297 - return null;
298 - }
299 - var computedStyle = window.getComputedStyle(element);
300 - var matrix = createMatrixFromTransform((computedStyle === null || computedStyle === void 0 ? void 0 : computedStyle.transform) || '');
301 - if (!matrix) {
302 - return null;
303 - }
304 - var matrixXfromX = matrix.matrixXfromX,
305 - matrixYfromX = matrix.matrixYfromX,
306 - matrixXfromY = matrix.matrixXfromY,
307 - matrixYfromY = matrix.matrixYfromY,
308 - matrixTranslateX = matrix.matrixTranslateX,
309 - matrixTranslateY = matrix.matrixTranslateY;
310 - var scaleX = Math.hypot(matrixXfromX, matrixYfromX);
311 - var determinant = matrixXfromX * matrixYfromY - matrixYfromX * matrixXfromY;
312 - var scaleY = scaleX ? determinant / scaleX : Math.hypot(matrixXfromY, matrixYfromY);
313 - var rotate = radiansToDegrees(Math.atan2(matrixYfromX, matrixXfromX));
314 - var shear = scaleX ? (matrixXfromX * matrixXfromY + matrixYfromX * matrixYfromY) / (scaleX * scaleX) : 0;
315 - var skewX = radiansToDegrees(Math.atan(shear));
316 - return {
317 - x: matrixTranslateX,
318 - y: matrixTranslateY,
319 - scaleX: Number.isFinite(scaleX) ? scaleX : 1,
320 - scaleY: Number.isFinite(scaleY) ? scaleY : 1,
321 - rotate: Number.isFinite(rotate) ? rotate : 0,
322 - skewX: Number.isFinite(skewX) ? skewX : 0
323 - };
324 -}
325 -function preserveTransformKeyframes(keyframes, baseline) {
326 - if (!baseline) {
327 - return keyframes;
328 - }
329 - var mergedKeyframes = _objectSpread({}, keyframes);
330 - var hasScaleShorthand = mergedKeyframes.scale !== undefined;
331 - var canSetScaleX = mergedKeyframes.scaleX === undefined && !isNearOne(baseline.scaleX);
332 - var canSetScaleY = mergedKeyframes.scaleY === undefined && !isNearOne(baseline.scaleY);
333 - if (mergedKeyframes.x === undefined && !isNearZero(baseline.x)) {
334 - mergedKeyframes.x = [baseline.x, baseline.x];
335 - }
336 - if (mergedKeyframes.y === undefined && !isNearZero(baseline.y)) {
337 - mergedKeyframes.y = [baseline.y, baseline.y];
338 - }
339 - if (!hasScaleShorthand) {
340 - if (canSetScaleX && canSetScaleY && isNear(baseline.scaleX, baseline.scaleY)) {
341 - mergedKeyframes.scale = [baseline.scaleX, baseline.scaleX];
342 - } else {
343 - if (canSetScaleX) {
344 - mergedKeyframes.scaleX = [baseline.scaleX, baseline.scaleX];
345 - }
346 - if (canSetScaleY) {
347 - mergedKeyframes.scaleY = [baseline.scaleY, baseline.scaleY];
348 - }
349 - }
350 - }
351 - if (mergedKeyframes.rotate === undefined && mergedKeyframes.rotateZ === undefined && !isNearZero(baseline.rotate)) {
352 - mergedKeyframes.rotate = [baseline.rotate, baseline.rotate];
353 - }
354 - if (mergedKeyframes.skew === undefined && mergedKeyframes.skewX === undefined && !isNearZero(baseline.skewX)) {
355 - mergedKeyframes.skewX = [baseline.skewX, baseline.skewX];
356 - }
357 - return mergedKeyframes;
358 -}
359 178
360 179 // Expose on elementorModules for Pro and other consumers.
361 180 window.elementorModules = window.elementorModules || {};
362 181 window.elementorModules.interactions = {
@@ -367,12 +186,9 @@
367 186 getInViewFunction: getInViewFunction,
368 187 waitForAnimateFunction: waitForAnimateFunction,
369 188 parseInteractionsData: parseInteractionsData,
370 189 unwrapInteractionValue: unwrapInteractionValue,
371 - timingValueToMs: timingValueToMs,
372 - resetElementStyles: resetElementStyles,
373 - getTransformBaselineFromComputedStyle: getTransformBaselineFromComputedStyle,
374 - preserveTransformKeyframes: preserveTransformKeyframes
190 + timingValueToMs: timingValueToMs
375 191 };
376 192
377 193 /***/ }),
378 194
@@ -416,14 +232,9 @@
416 232 }
417 233 }));
418 234 exports.getInteractionsData = getInteractionsData;
419 235 exports.getKeyframes = getKeyframes;
420 -Object.defineProperty(exports, "getTransformBaselineFromComputedStyle", ({
421 - enumerable: true,
422 - get: function get() {
423 - return _interactionsSharedUtils.getTransformBaselineFromComputedStyle;
424 - }
425 -}));
236 +exports.isFreeFrontendSupportedTrigger = isFreeFrontendSupportedTrigger;
426 237 exports.parseAnimationName = parseAnimationName;
427 238 Object.defineProperty(exports, "parseInteractionsData", ({
428 239 enumerable: true,
429 240 get: function get() {
@@ -429,21 +240,14 @@
429 240 get: function get() {
430 241 return _interactionsSharedUtils.parseInteractionsData;
431 242 }
432 243 }));
433 -Object.defineProperty(exports, "preserveTransformKeyframes", ({
244 +Object.defineProperty(exports, "skipInteraction", ({
434 245 enumerable: true,
435 246 get: function get() {
436 - return _interactionsSharedUtils.preserveTransformKeyframes;
247 + return _interactionsSharedUtils.skipInteraction;
437 248 }
438 249 }));
439 -Object.defineProperty(exports, "resetElementStyles", ({
440 - enumerable: true,
441 - get: function get() {
442 - return _interactionsSharedUtils.resetElementStyles;
443 - }
444 -}));
445 -exports.skipInteraction = skipInteraction;
446 250 Object.defineProperty(exports, "timingValueToMs", ({
447 251 enumerable: true,
448 252 get: function get() {
449 253 return _interactionsSharedUtils.timingValueToMs;
@@ -462,23 +266,16 @@
462 266 }
463 267 }));
464 268 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
465 269 var _interactionsSharedUtils = __webpack_require__(/*! ./interactions-shared-utils.js */ "../modules/interactions/assets/js/interactions-shared-utils.js");
466 -function isSupportedInteraction(animationConfig) {
467 - if (!['load', 'scrollIn', 'scrollOut'].includes(animationConfig.trigger)) {
468 - return false;
469 - }
470 - if ('custom' === animationConfig.effect) {
471 - return false;
472 - }
473 - return true;
270 +/**
271 + * Triggers the Core `interactions.js` / `editor-interactions.js` bundles run. Pro-only triggers
272 + * (e.g. hover, click) must not fall through to the load-time default path.
273 + */
274 +var FREE_FRONTEND_SUPPORTED_TRIGGERS = ['load', 'scrollIn', 'scrollOut'];
275 +function isFreeFrontendSupportedTrigger(trigger) {
276 + return FREE_FRONTEND_SUPPORTED_TRIGGERS.includes(trigger);
474 277 }
475 -function skipInteraction(animationConfig) {
476 - if (!isSupportedInteraction(animationConfig)) {
477 - return true;
478 - }
479 - return (0, _interactionsSharedUtils.skipInteraction)(animationConfig);
480 -}
481 278 function getKeyframes(effect, type, direction) {
482 279 var isIn = 'in' === type;
483 280 var keyframes = {};
484 281 if ('fade' === effect) {
@@ -487,9 +284,9 @@
487 284 var config = (0, _interactionsSharedUtils.config)();
488 285 if ('scale' === effect) {
489 286 keyframes.scale = isIn ? [config.scaleStart, 1] : [1, config.scaleStart];
490 287 }
491 - if (direction && 'string' === typeof direction) {
288 + if (direction) {
492 289 var distance = config.slideDistance;
493 290 var movement = {
494 291 left: {
495 292 x: isIn ? [-distance, 0] : [0, -distance]
@@ -503,13 +300,9 @@
503 300 bottom: {
504 301 y: isIn ? [distance, 0] : [0, distance]
505 302 }
506 303 };
507 - direction.split('-').forEach(function (part) {
508 - if (movement[part]) {
509 - Object.assign(keyframes, movement[part]);
510 - }
511 - });
304 + Object.assign(keyframes, movement[direction]);
512 305 }
513 306 return keyframes;
514 307 }
515 308 function parseAnimationName(name) {
@@ -586,10 +379,9 @@
586 379 var breakpoints = unwrapInteractionBreakpoints(payload.breakpoints);
587 380 var config = (0, _interactionsSharedUtils.config)();
588 381 var effect = (0, _interactionsSharedUtils.unwrapInteractionValue)(animation.effect) || animation.effect || 'fade';
589 382 var type = (0, _interactionsSharedUtils.unwrapInteractionValue)(animation.type) || animation.type || 'in';
590 - var directionUnwrapped = (0, _interactionsSharedUtils.unwrapInteractionValue)(animation.direction);
591 - var direction = 'string' === typeof directionUnwrapped ? directionUnwrapped : '';
383 + var direction = (0, _interactionsSharedUtils.unwrapInteractionValue)(animation.direction) || animation.direction || '';
592 384 var easing = config.defaultEasing;
593 385 var replay = false;
594 386 var timingConfig = (0, _interactionsSharedUtils.unwrapInteractionValue)(animation.timing_config) || animation.timing_config || {};
595 387 var duration = (0, _interactionsSharedUtils.timingValueToMs)(timingConfig === null || timingConfig === void 0 ? void 0 : timingConfig.duration, config.defaultDuration);
@@ -636,27 +428,8 @@
636 428 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
637 429
638 430 /***/ }),
639 431
640 -/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
641 -/*!****************************************************************!*\
642 - !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
643 - \****************************************************************/
644 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
645 -
646 -var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
647 -function _defineProperty(e, r, t) {
648 - return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
649 - value: t,
650 - enumerable: !0,
651 - configurable: !0,
652 - writable: !0
653 - }) : e[r] = t, e;
654 -}
655 -module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
656 -
657 -/***/ }),
658 -
659 432 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
660 433 /*!***********************************************************************!*\
661 434 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
662 435 \***********************************************************************/
@@ -737,45 +510,8 @@
737 510 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
738 511
739 512 /***/ }),
740 513
741 -/***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
742 -/*!*************************************************************!*\
743 - !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
744 - \*************************************************************/
745 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
746 -
747 -var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
748 -function toPrimitive(t, r) {
749 - if ("object" != _typeof(t) || !t) return t;
750 - var e = t[Symbol.toPrimitive];
751 - if (void 0 !== e) {
752 - var i = e.call(t, r || "default");
753 - if ("object" != _typeof(i)) return i;
754 - throw new TypeError("@@toPrimitive must return a primitive value.");
755 - }
756 - return ("string" === r ? String : Number)(t);
757 -}
758 -module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
759 -
760 -/***/ }),
761 -
762 -/***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
763 -/*!***************************************************************!*\
764 - !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
765 - \***************************************************************/
766 -/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
767 -
768 -var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
769 -var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
770 -function toPropertyKey(t) {
771 - var i = toPrimitive(t, "string");
772 - return "symbol" == _typeof(i) ? i : i + "";
773 -}
774 -module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
775 -
776 -/***/ }),
777 -
778 514 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
779 515 /*!********************************************************!*\
780 516 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
781 517 \********************************************************/
@@ -849,13 +585,14 @@
849 585
850 586
851 587 var _interactionsUtils = __webpack_require__(/*! ./interactions-utils.js */ "../modules/interactions/assets/js/interactions-utils.js");
852 588 var _interactionsBreakpoints = __webpack_require__(/*! ./interactions-breakpoints.js */ "../modules/interactions/assets/js/interactions-breakpoints.js");
853 -function scrollOutAnimation(element, transition, keyframes, resetKeyframes, options, animateFunc, inViewFunc) {
589 +function scrollOutAnimation(element, transition, animConfig, keyframes, options, animateFunc, inViewFunc) {
854 590 var viewOptions = {
855 591 amount: 0.85,
856 592 root: null
857 593 };
594 + var resetKeyframes = (0, _interactionsUtils.getKeyframes)(animConfig.effect, 'in', animConfig.direction);
858 595 animateFunc(element, resetKeyframes, {
859 596 duration: 0
860 597 });
861 598 var stop = inViewFunc(element, function () {
@@ -888,11 +625,9 @@
888 625 element.style.transition = transition;
889 626 });
890 627 }
891 628 function applyAnimation(element, animConfig, animateFunc, inViewFunc) {
892 - var baseline = (0, _interactionsUtils.getTransformBaselineFromComputedStyle)(element);
893 - var keyframes = (0, _interactionsUtils.preserveTransformKeyframes)((0, _interactionsUtils.getKeyframes)(animConfig.effect, animConfig.type, animConfig.direction), baseline);
894 - var resetKeyframes = (0, _interactionsUtils.preserveTransformKeyframes)((0, _interactionsUtils.getKeyframes)(animConfig.effect, 'in', animConfig.direction), baseline);
629 + var keyframes = (0, _interactionsUtils.getKeyframes)(animConfig.effect, animConfig.type, animConfig.direction);
895 630 var options = {
896 631 duration: animConfig.duration / 1000,
897 632 delay: animConfig.delay / 1000,
898 633 ease: (0, _interactionsUtils.config)().defaultEasing
@@ -901,9 +636,9 @@
901 636 // WHY - Transition can be set on elements but once it sets it destroys all animations, so we basically put it aside.
902 637 var transition = element.style.transition;
903 638 element.style.transition = 'none';
904 639 if ('scrollOut' === animConfig.trigger) {
905 - scrollOutAnimation(element, transition, keyframes, resetKeyframes, options, animateFunc, inViewFunc);
640 + scrollOutAnimation(element, transition, animConfig, keyframes, options, animateFunc, inViewFunc);
906 641 } else if ('scrollIn' === animConfig.trigger) {
907 642 scrollInAnimation(element, transition, animConfig, keyframes, options, animateFunc, inViewFunc);
908 643 } else {
909 644 defaultAnimation(element, transition, keyframes, options, animateFunc);
@@ -914,9 +649,9 @@
914 649 return;
915 650 }
916 651 interactions.forEach(function (interaction) {
917 652 var animConfig = (0, _interactionsUtils.extractAnimationConfig)(interaction);
918 - if (animConfig && !(0, _interactionsUtils.skipInteraction)(animConfig)) {
653 + if (animConfig && !(0, _interactionsUtils.skipInteraction)(animConfig) && (0, _interactionsUtils.isFreeFrontendSupportedTrigger)(animConfig.trigger)) {
919 654 applyAnimation(element, animConfig, animateFunc, inViewFunc);
920 655 }
921 656 });
922 657 }
@@ -937,11 +672,13 @@
937 672 interactions = elementData.interactions;
938 673 if (!elementId || !interactions || !Array.isArray(interactions)) {
939 674 return;
940 675 }
941 - document.querySelectorAll("[data-interaction-id=\"".concat(elementId, "\"]")).forEach(function (element) {
942 - processElementInteractions(element, interactions, animateFunc, inViewFunc);
943 - });
676 + var element = document.querySelector("[data-interaction-id=\"".concat(elementId, "\"]"));
677 + if (!element) {
678 + return;
679 + }
680 + processElementInteractions(element, interactions, animateFunc, inViewFunc);
944 681 });
945 682 return;
946 683 }
947 684