PluginProbe
Elementor Website Builder – more than just a page builder / 3.34.2
Elementor Website Builder – more than just a page builder v3.34.2
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
elementor / assets / js / editor-interactions.js

editor-interactions.js in Elementor Website Builder – more than just a page builder 3.34.2, at assets/js/editor-interactions.js

590 lines 25.6 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-utils.js":
5 /*!***************************************************************!*\
6 !*** ../modules/interactions/assets/js/interactions-utils.js ***!
7 \***************************************************************/
8 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9
10 "use strict";
11
12
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.config = void 0;
18 exports.getKeyframes = getKeyframes;
19 exports.parseAnimationName = parseAnimationName;
20 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
21 var _window$ElementorInte;
22 var config = exports.config = ((_window$ElementorInte = window.ElementorInteractionsConfig) === null || _window$ElementorInte === void 0 ? void 0 : _window$ElementorInte.constants) || {
23 defaultDuration: 300,
24 defaultDelay: 0,
25 slideDistance: 100,
26 scaleStart: 0,
27 easing: 'linear'
28 };
29 function calculateSlideDistance(element, direction) {
30 if (!element) {
31 return config.slideDistance;
32 }
33 var rect = element.getBoundingClientRect();
34 var viewportWidth = window.innerWidth || document.documentElement.clientWidth;
35 var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
36 var isLtr = 'ltr' === document.documentElement.dir || 'ltr' === document.body.dir;
37 switch (direction) {
38 case 'left':
39 return Math.min((isLtr ? rect.left : rect.right) + rect.width, viewportWidth + rect.width);
40 case 'right':
41 return Math.min(viewportWidth - (isLtr ? rect.right : rect.left) + rect.width, viewportWidth + rect.width);
42 case 'top':
43 return Math.min(rect.top + rect.height, viewportHeight + rect.height);
44 case 'bottom':
45 return Math.min(viewportHeight - rect.bottom + rect.height, viewportHeight + rect.height);
46 default:
47 return config.slideDistance;
48 }
49 }
50 function getKeyframes(effect, type, direction) {
51 var element = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
52 var isIn = 'in' === type;
53 var keyframes = {};
54 var hasDirection = !!direction;
55 if ('fade' === effect) {
56 if (hasDirection && isIn) {
57 keyframes.opacity = [0, 0, 0.2, 0.6, 1];
58 } else if (hasDirection && !isIn) {
59 keyframes.opacity = [1, 0.8, 0.4, 0, 0];
60 } else {
61 keyframes.opacity = isIn ? [0, 1] : [1, 0];
62 }
63 }
64 if ('scale' === effect) {
65 keyframes.scale = isIn ? [config.scaleStart, 1] : [1, config.scaleStart];
66 }
67 if (direction) {
68 var distance = calculateSlideDistance(element, direction);
69 var movement = {
70 left: {
71 x: isIn ? [-distance, 0] : [0, -distance]
72 },
73 right: {
74 x: isIn ? [distance, 0] : [0, distance]
75 },
76 top: {
77 y: isIn ? [-distance, 0] : [0, -distance]
78 },
79 bottom: {
80 y: isIn ? [distance, 0] : [0, distance]
81 }
82 };
83 Object.assign(keyframes, movement[direction]);
84 }
85 return keyframes;
86 }
87 function parseAnimationName(name) {
88 var _name$split = name.split('-'),
89 _name$split2 = (0, _slicedToArray2.default)(_name$split, 6),
90 trigger = _name$split2[0],
91 effect = _name$split2[1],
92 type = _name$split2[2],
93 direction = _name$split2[3],
94 duration = _name$split2[4],
95 delay = _name$split2[5];
96 return {
97 trigger: trigger,
98 effect: effect,
99 type: type,
100 direction: direction || null,
101 duration: duration ? parseInt(duration, 10) : config.defaultDuration,
102 delay: delay ? parseInt(delay, 10) : config.defaultDelay
103 };
104 }
105
106 /***/ }),
107
108 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
109 /*!******************************************************************!*\
110 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
111 \******************************************************************/
112 /***/ ((module) => {
113
114 function _arrayLikeToArray(r, a) {
115 (null == a || a > r.length) && (a = r.length);
116 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
117 return n;
118 }
119 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
120
121 /***/ }),
122
123 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
124 /*!****************************************************************!*\
125 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
126 \****************************************************************/
127 /***/ ((module) => {
128
129 function _arrayWithHoles(r) {
130 if (Array.isArray(r)) return r;
131 }
132 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
133
134 /***/ }),
135
136 /***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
137 /*!*******************************************************************!*\
138 !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
139 \*******************************************************************/
140 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
141
142 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
143 function _arrayWithoutHoles(r) {
144 if (Array.isArray(r)) return arrayLikeToArray(r);
145 }
146 module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
147
148 /***/ }),
149
150 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
151 /*!****************************************************************!*\
152 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
153 \****************************************************************/
154 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
155
156 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
157 function _defineProperty(e, r, t) {
158 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
159 value: t,
160 enumerable: !0,
161 configurable: !0,
162 writable: !0
163 }) : e[r] = t, e;
164 }
165 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
166
167 /***/ }),
168
169 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
170 /*!***********************************************************************!*\
171 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
172 \***********************************************************************/
173 /***/ ((module) => {
174
175 function _interopRequireDefault(e) {
176 return e && e.__esModule ? e : {
177 "default": e
178 };
179 }
180 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
181
182 /***/ }),
183
184 /***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
185 /*!*****************************************************************!*\
186 !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
187 \*****************************************************************/
188 /***/ ((module) => {
189
190 function _iterableToArray(r) {
191 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
192 }
193 module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
194
195 /***/ }),
196
197 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
198 /*!**********************************************************************!*\
199 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
200 \**********************************************************************/
201 /***/ ((module) => {
202
203 function _iterableToArrayLimit(r, l) {
204 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
205 if (null != t) {
206 var e,
207 n,
208 i,
209 u,
210 a = [],
211 f = !0,
212 o = !1;
213 try {
214 if (i = (t = t.call(r)).next, 0 === l) {
215 if (Object(t) !== t) return;
216 f = !1;
217 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
218 } catch (r) {
219 o = !0, n = r;
220 } finally {
221 try {
222 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
223 } finally {
224 if (o) throw n;
225 }
226 }
227 return a;
228 }
229 }
230 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
231
232 /***/ }),
233
234 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
235 /*!*****************************************************************!*\
236 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
237 \*****************************************************************/
238 /***/ ((module) => {
239
240 function _nonIterableRest() {
241 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
242 }
243 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
244
245 /***/ }),
246
247 /***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
248 /*!*******************************************************************!*\
249 !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
250 \*******************************************************************/
251 /***/ ((module) => {
252
253 function _nonIterableSpread() {
254 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
255 }
256 module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
257
258 /***/ }),
259
260 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
261 /*!***************************************************************!*\
262 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
263 \***************************************************************/
264 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
265
266 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
267 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
268 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
269 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
270 function _slicedToArray(r, e) {
271 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
272 }
273 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
274
275 /***/ }),
276
277 /***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
278 /*!*******************************************************************!*\
279 !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
280 \*******************************************************************/
281 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
282
283 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
284 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
285 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
286 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
287 function _toConsumableArray(r) {
288 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
289 }
290 module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
291
292 /***/ }),
293
294 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
295 /*!*************************************************************!*\
296 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
297 \*************************************************************/
298 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
299
300 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
301 function toPrimitive(t, r) {
302 if ("object" != _typeof(t) || !t) return t;
303 var e = t[Symbol.toPrimitive];
304 if (void 0 !== e) {
305 var i = e.call(t, r || "default");
306 if ("object" != _typeof(i)) return i;
307 throw new TypeError("@@toPrimitive must return a primitive value.");
308 }
309 return ("string" === r ? String : Number)(t);
310 }
311 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
312
313 /***/ }),
314
315 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
316 /*!***************************************************************!*\
317 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
318 \***************************************************************/
319 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
320
321 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
322 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
323 function toPropertyKey(t) {
324 var i = toPrimitive(t, "string");
325 return "symbol" == _typeof(i) ? i : i + "";
326 }
327 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
328
329 /***/ }),
330
331 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
332 /*!********************************************************!*\
333 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
334 \********************************************************/
335 /***/ ((module) => {
336
337 function _typeof(o) {
338 "@babel/helpers - typeof";
339
340 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
341 return typeof o;
342 } : function (o) {
343 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
344 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
345 }
346 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
347
348 /***/ }),
349
350 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
351 /*!****************************************************************************!*\
352 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
353 \****************************************************************************/
354 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
355
356 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
357 function _unsupportedIterableToArray(r, a) {
358 if (r) {
359 if ("string" == typeof r) return arrayLikeToArray(r, a);
360 var t = {}.toString.call(r).slice(8, -1);
361 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;
362 }
363 }
364 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
365
366 /***/ })
367
368 /******/ });
369 /************************************************************************/
370 /******/ // The module cache
371 /******/ var __webpack_module_cache__ = {};
372 /******/
373 /******/ // The require function
374 /******/ function __webpack_require__(moduleId) {
375 /******/ // Check if module is in cache
376 /******/ var cachedModule = __webpack_module_cache__[moduleId];
377 /******/ if (cachedModule !== undefined) {
378 /******/ return cachedModule.exports;
379 /******/ }
380 /******/ // Create a new module (and put it into the cache)
381 /******/ var module = __webpack_module_cache__[moduleId] = {
382 /******/ // no module.id needed
383 /******/ // no module.loaded needed
384 /******/ exports: {}
385 /******/ };
386 /******/
387 /******/ // Execute the module function
388 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
389 /******/
390 /******/ // Return the exports of the module
391 /******/ return module.exports;
392 /******/ }
393 /******/
394 /************************************************************************/
395 var __webpack_exports__ = {};
396 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
397 (() => {
398 "use strict";
399 /*!****************************************************************!*\
400 !*** ../modules/interactions/assets/js/editor-interactions.js ***!
401 \****************************************************************/
402
403
404 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
405 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
406 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
407 var _interactionsUtils = __webpack_require__(/*! ./interactions-utils.js */ "../modules/interactions/assets/js/interactions-utils.js");
408 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; }
409 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; }
410 function applyAnimation(element, animConfig, animateFunc) {
411 var keyframes = (0, _interactionsUtils.getKeyframes)(animConfig.effect, animConfig.type, animConfig.direction, element);
412 var options = {
413 duration: animConfig.duration / 1000,
414 delay: animConfig.delay / 1000,
415 easing: _interactionsUtils.config.easing
416 };
417 var initialKeyframes = {};
418 Object.keys(keyframes).forEach(function (key) {
419 initialKeyframes[key] = keyframes[key][0];
420 });
421 // WHY - Transition can be set on elements but once it sets it destroys all animations, so we basically put it aside.
422 var transition = element.style.transition;
423 element.style.transition = 'none';
424 animateFunc(element, initialKeyframes, {
425 duration: 0
426 }).then(function () {
427 animateFunc(element, keyframes, options).then(function () {
428 if ('out' === animConfig.type) {
429 var resetValues = {
430 opacity: 1,
431 scale: 1,
432 x: 0,
433 y: 0
434 };
435 var resetKeyframes = {};
436 Object.keys(keyframes).forEach(function (key) {
437 resetKeyframes[key] = resetValues[key];
438 });
439 element.style.transition = transition;
440 animateFunc(element, resetKeyframes, {
441 duration: 0
442 });
443 }
444 });
445 });
446 }
447 function getInteractionsData() {
448 var scriptTag = document.querySelector('script[data-e-interactions="true"]');
449 if (!scriptTag) {
450 return [];
451 }
452 try {
453 return JSON.parse(scriptTag.textContent || '[]');
454 } catch (_unused) {
455 return [];
456 }
457 }
458 function findElementByInteractionId(interactionId) {
459 return document.querySelector('[data-interaction-id="' + interactionId + '"]');
460 }
461 function applyInteractionsToElement(element, interactionsData) {
462 var _window$Motion, _parsedData;
463 var animateFunc = 'undefined' !== typeof animate ? animate : (_window$Motion = window.Motion) === null || _window$Motion === void 0 ? void 0 : _window$Motion.animate;
464 if (!animateFunc) {
465 return;
466 }
467 var parsedData;
468 if ('string' === typeof interactionsData) {
469 try {
470 parsedData = JSON.parse(interactionsData);
471 } catch (error) {
472 return;
473 }
474 } else {
475 parsedData = interactionsData;
476 }
477 var interactions = Object.values((_parsedData = parsedData) === null || _parsedData === void 0 ? void 0 : _parsedData.items);
478 interactions.forEach(function (interaction) {
479 var _interaction$animatio;
480 var animationName = 'string' === typeof interaction ? interaction : interaction === null || interaction === void 0 || (_interaction$animatio = interaction.animation) === null || _interaction$animatio === void 0 ? void 0 : _interaction$animatio.animation_id;
481 var animConfig = animationName && (0, _interactionsUtils.parseAnimationName)(animationName);
482 if (animConfig) {
483 applyAnimation(element, animConfig, animateFunc);
484 }
485 });
486 }
487 var previousInteractionsData = [];
488 function handleInteractionsUpdate() {
489 var currentInteractionsData = getInteractionsData();
490 var changedItems = currentInteractionsData.filter(function (currentItem) {
491 var previousItem = previousInteractionsData.find(function (prev) {
492 return prev.dataId === currentItem.dataId;
493 });
494 return !previousItem || previousItem.interactions !== currentItem.interactions;
495 });
496 changedItems.forEach(function (item) {
497 var _previousInteractions, _item$interactions, _item$interactions2, _prevInteractions$ite;
498 var element = findElementByInteractionId(item.dataId);
499 var prevInteractions = (_previousInteractions = previousInteractionsData.find(function (prev) {
500 return prev.dataId === item.dataId;
501 })) === null || _previousInteractions === void 0 ? void 0 : _previousInteractions.interactions;
502 if (element && ((_item$interactions = item.interactions) === null || _item$interactions === void 0 || (_item$interactions = _item$interactions.items) === null || _item$interactions === void 0 ? void 0 : _item$interactions.length) > 0 && ((_item$interactions2 = item.interactions) === null || _item$interactions2 === void 0 || (_item$interactions2 = _item$interactions2.items) === null || _item$interactions2 === void 0 ? void 0 : _item$interactions2.length) === (prevInteractions === null || prevInteractions === void 0 || (_prevInteractions$ite = prevInteractions.items) === null || _prevInteractions$ite === void 0 ? void 0 : _prevInteractions$ite.length)) {
503 var interactionsToApply = _objectSpread(_objectSpread({}, item.interactions), {}, {
504 items: (0, _toConsumableArray2.default)(item.interactions.items).filter(function (interaction, index) {
505 var _prevInteractions$ite2;
506 return (prevInteractions === null || prevInteractions === void 0 || (_prevInteractions$ite2 = prevInteractions.items[index]) === null || _prevInteractions$ite2 === void 0 || (_prevInteractions$ite2 = _prevInteractions$ite2.animation) === null || _prevInteractions$ite2 === void 0 ? void 0 : _prevInteractions$ite2.animation_id) !== interaction.animation.animation_id;
507 })
508 });
509 applyInteractionsToElement(element, interactionsToApply);
510 }
511 });
512 previousInteractionsData = currentInteractionsData;
513 }
514 function initEditorInteractionsHandler() {
515 var _window$Motion2;
516 if ('undefined' === typeof animate && !((_window$Motion2 = window.Motion) !== null && _window$Motion2 !== void 0 && _window$Motion2.animate)) {
517 setTimeout(initEditorInteractionsHandler, 100);
518 return;
519 }
520 var head = document.head;
521 var scriptTag = null;
522 var observer = null;
523 function setupObserver(tag) {
524 if (observer) {
525 observer.disconnect();
526 }
527 observer = new MutationObserver(function () {
528 handleInteractionsUpdate();
529 });
530 observer.observe(tag, {
531 childList: true,
532 characterData: true,
533 subtree: true
534 });
535 handleInteractionsUpdate();
536 registerWindowEvents();
537 }
538 var headObserver = new MutationObserver(function () {
539 var foundScriptTag = document.querySelector('script[data-e-interactions="true"]');
540 if (foundScriptTag && foundScriptTag !== scriptTag) {
541 scriptTag = foundScriptTag;
542 setupObserver(scriptTag);
543 headObserver.disconnect();
544 }
545 });
546 headObserver.observe(head, {
547 childList: true,
548 subtree: true
549 });
550 scriptTag = document.querySelector('script[data-e-interactions="true"]');
551 if (scriptTag) {
552 setupObserver(scriptTag);
553 headObserver.disconnect();
554 }
555 }
556 function registerWindowEvents() {
557 window.top.addEventListener('atomic/play_interactions', handlePlayInteractions);
558 }
559 function handlePlayInteractions(event) {
560 var _event$detail = event.detail,
561 elementId = _event$detail.elementId,
562 animationId = _event$detail.animationId;
563 var interactionsData = getInteractionsData();
564 var item = interactionsData.find(function (elementItemData) {
565 return elementItemData.dataId === elementId;
566 });
567 if (!item) {
568 return;
569 }
570 var element = findElementByInteractionId(elementId);
571 if (element) {
572 var interactionsCopy = _objectSpread(_objectSpread({}, item.interactions), {}, {
573 items: (0, _toConsumableArray2.default)(item.interactions.items)
574 });
575 interactionsCopy.items = interactionsCopy.items.filter(function (interactionItem) {
576 return interactionItem.animation.animation_id === animationId;
577 });
578 applyInteractionsToElement(element, JSON.stringify(interactionsCopy));
579 }
580 }
581 if ('loading' === document.readyState) {
582 document.addEventListener('DOMContentLoaded', initEditorInteractionsHandler);
583 } else {
584 initEditorInteractionsHandler();
585 }
586 })();
587
588 /******/ })()
589 ;
590 //# sourceMappingURL=editor-interactions.js.map