@wix/interact 1.85.0 → 1.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/cjs/{WixInteractElement.js → InteractElement.js} +14 -14
- package/dist/cjs/InteractElement.js.map +1 -0
- package/dist/cjs/__tests__/interact.spec.js +81 -55
- package/dist/cjs/__tests__/interact.spec.js.map +1 -1
- package/dist/cjs/__tests__/viewEnter.spec.js +207 -0
- package/dist/cjs/__tests__/viewEnter.spec.js.map +1 -0
- package/dist/cjs/core/Interact.js +19 -7
- package/dist/cjs/core/Interact.js.map +1 -1
- package/dist/cjs/core/add.js +3 -3
- package/dist/cjs/core/add.js.map +1 -1
- package/dist/cjs/handlers/click.js +3 -3
- package/dist/cjs/handlers/click.js.map +1 -1
- package/dist/cjs/handlers/hover.js +4 -4
- package/dist/cjs/handlers/hover.js.map +1 -1
- package/dist/cjs/handlers/pointerMove.js +8 -2
- package/dist/cjs/handlers/pointerMove.js.map +1 -1
- package/dist/cjs/handlers/utilities.js +0 -2
- package/dist/cjs/handlers/utilities.js.map +1 -1
- package/dist/cjs/handlers/viewEnter.js +63 -11
- package/dist/cjs/handlers/viewEnter.js.map +1 -1
- package/dist/cjs/handlers/viewProgress.js +9 -3
- package/dist/cjs/handlers/viewProgress.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.js +2 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/{WixInteractElement.js → InteractElement.js} +12 -12
- package/dist/esm/InteractElement.js.map +1 -0
- package/dist/esm/__tests__/interact.spec.js +80 -55
- package/dist/esm/__tests__/interact.spec.js.map +1 -1
- package/dist/esm/__tests__/viewEnter.spec.js +210 -0
- package/dist/esm/__tests__/viewEnter.spec.js.map +1 -0
- package/dist/esm/core/Interact.js +19 -7
- package/dist/esm/core/Interact.js.map +1 -1
- package/dist/esm/core/add.js +3 -3
- package/dist/esm/core/add.js.map +1 -1
- package/dist/esm/handlers/click.js +3 -3
- package/dist/esm/handlers/click.js.map +1 -1
- package/dist/esm/handlers/hover.js +4 -4
- package/dist/esm/handlers/hover.js.map +1 -1
- package/dist/esm/handlers/pointerMove.js +8 -2
- package/dist/esm/handlers/pointerMove.js.map +1 -1
- package/dist/esm/handlers/utilities.js +0 -2
- package/dist/esm/handlers/utilities.js.map +1 -1
- package/dist/esm/handlers/viewEnter.js +65 -11
- package/dist/esm/handlers/viewEnter.js.map +1 -1
- package/dist/esm/handlers/viewProgress.js +9 -3
- package/dist/esm/handlers/viewProgress.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.js +2 -2
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/{WixInteractElement.d.ts → InteractElement.d.ts} +2 -2
- package/dist/types/__tests__/viewEnter.spec.d.ts +0 -0
- package/dist/types/core/Interact.d.ts +11 -6
- package/dist/types/core/add.d.ts +3 -3
- package/dist/types/handlers/pointerMove.d.ts +2 -0
- package/dist/types/handlers/viewEnter.d.ts +2 -0
- package/dist/types/handlers/viewProgress.d.ts +2 -0
- package/dist/types/types.d.ts +8 -3
- package/package.json +7 -6
- package/dist/cjs/WixInteractElement.js.map +0 -1
- package/dist/esm/WixInteractElement.js.map +0 -1
package/README.md
CHANGED
|
@@ -56,10 +56,10 @@ const interact = Interact.create(config);
|
|
|
56
56
|
### 2. HTML Setup
|
|
57
57
|
|
|
58
58
|
```html
|
|
59
|
-
<!-- Wrap your target element with
|
|
60
|
-
<
|
|
59
|
+
<!-- Wrap your target element with interact-element -->
|
|
60
|
+
<interact-element data-interact-key="my-element">
|
|
61
61
|
<div>This will fade in when it enters the viewport!</div>
|
|
62
|
-
</
|
|
62
|
+
</interact-element>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
### 3. Framework Integration
|
|
@@ -70,11 +70,11 @@ import React from 'react';
|
|
|
70
70
|
|
|
71
71
|
function MyComponent() {
|
|
72
72
|
return (
|
|
73
|
-
<
|
|
73
|
+
<interact-element data-interact-key="my-element">
|
|
74
74
|
<div className="animated-content">
|
|
75
75
|
Hello, animated world!
|
|
76
76
|
</div>
|
|
77
|
-
</
|
|
77
|
+
</interact-element>
|
|
78
78
|
);
|
|
79
79
|
}
|
|
80
80
|
```
|
|
@@ -140,13 +140,13 @@ Interact.create(config: InteractConfig): Interact
|
|
|
140
140
|
Interact.getInstance(key: string): Interact | undefined
|
|
141
141
|
|
|
142
142
|
// Get cached element by key
|
|
143
|
-
Interact.getElement(key: string):
|
|
143
|
+
Interact.getElement(key: string): IInteractElement | undefined
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
### Standalone Functions
|
|
147
147
|
```typescript
|
|
148
148
|
// Add interactions to an element
|
|
149
|
-
add(element:
|
|
149
|
+
add(element: IInteractElement, key: string): boolean
|
|
150
150
|
|
|
151
151
|
// Remove all interactions from an element
|
|
152
152
|
remove(key: string): void
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
5
|
+
exports.INTERACT_EFFECT_DATA_ATTR = void 0;
|
|
6
|
+
exports.getInteractElement = getInteractElement;
|
|
7
7
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
8
|
var _add = require("./core/add");
|
|
9
9
|
var _remove = require("./core/remove");
|
|
10
|
-
const
|
|
11
|
-
function
|
|
10
|
+
const INTERACT_EFFECT_DATA_ATTR = exports.INTERACT_EFFECT_DATA_ATTR = 'interactEffect';
|
|
11
|
+
function getInteractElement() {
|
|
12
12
|
let checkedForLegacyStateSyntax = false;
|
|
13
13
|
let isLegacyStateSyntax = false;
|
|
14
|
-
return class
|
|
14
|
+
return class InteractElement extends HTMLElement {
|
|
15
15
|
constructor() {
|
|
16
16
|
super();
|
|
17
17
|
(0, _defineProperty2.default)(this, "_internals", void 0);
|
|
@@ -44,7 +44,7 @@ function getWixInteractElement() {
|
|
|
44
44
|
this.disconnect();
|
|
45
45
|
}
|
|
46
46
|
disconnect() {
|
|
47
|
-
const key = this.dataset.
|
|
47
|
+
const key = this.dataset.interactKey;
|
|
48
48
|
if (key) {
|
|
49
49
|
(0, _remove.remove)(key);
|
|
50
50
|
}
|
|
@@ -59,9 +59,9 @@ function getWixInteractElement() {
|
|
|
59
59
|
if (this.connected) {
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
|
-
key = key || this.dataset.
|
|
62
|
+
key = key || this.dataset.interactKey;
|
|
63
63
|
if (!key) {
|
|
64
|
-
console.warn('
|
|
64
|
+
console.warn('InteractElement: No key provided');
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
this.connected = (0, _add.add)(this, key);
|
|
@@ -101,8 +101,8 @@ function getWixInteractElement() {
|
|
|
101
101
|
this._internals.states.clear();
|
|
102
102
|
}
|
|
103
103
|
} else {
|
|
104
|
-
var _this$dataset$
|
|
105
|
-
const currentEffects = new Set(((_this$dataset$
|
|
104
|
+
var _this$dataset$INTERAC;
|
|
105
|
+
const currentEffects = new Set(((_this$dataset$INTERAC = this.dataset[INTERACT_EFFECT_DATA_ATTR]) == null ? void 0 : _this$dataset$INTERAC.split(' ')) || []);
|
|
106
106
|
if (method === 'toggle') {
|
|
107
107
|
currentEffects.has(effectId) ? currentEffects.delete(effectId) : currentEffects.add(effectId);
|
|
108
108
|
} else if (method === 'add') {
|
|
@@ -112,7 +112,7 @@ function getWixInteractElement() {
|
|
|
112
112
|
} else if (method === 'clear') {
|
|
113
113
|
currentEffects.clear();
|
|
114
114
|
}
|
|
115
|
-
(item || this).dataset[
|
|
115
|
+
(item || this).dataset[INTERACT_EFFECT_DATA_ATTR] = Array.from(currentEffects).join(' ');
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
getActiveEffects() {
|
|
@@ -120,7 +120,7 @@ function getWixInteractElement() {
|
|
|
120
120
|
const effects = Array.from(this._internals.states);
|
|
121
121
|
return isLegacyStateSyntax ? effects.map(effect => effect.replace(/^--/g, '')) : effects;
|
|
122
122
|
}
|
|
123
|
-
const raw = this.dataset[
|
|
123
|
+
const raw = this.dataset[INTERACT_EFFECT_DATA_ATTR] || '';
|
|
124
124
|
const trimmed = raw.trim();
|
|
125
125
|
return trimmed ? trimmed.split(/\s+/) : [];
|
|
126
126
|
}
|
|
@@ -139,7 +139,7 @@ function getWixInteractElement() {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
_childListChangeHandler(listContainer, entries) {
|
|
142
|
-
const key = this.dataset.
|
|
142
|
+
const key = this.dataset.interactKey;
|
|
143
143
|
const removedElements = [];
|
|
144
144
|
const addedElements = [];
|
|
145
145
|
entries.forEach(entry => {
|
|
@@ -159,4 +159,4 @@ function getWixInteractElement() {
|
|
|
159
159
|
}
|
|
160
160
|
};
|
|
161
161
|
}
|
|
162
|
-
//# sourceMappingURL=
|
|
162
|
+
//# sourceMappingURL=InteractElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_add","require","_remove","INTERACT_EFFECT_DATA_ATTR","exports","getInteractElement","checkedForLegacyStateSyntax","isLegacyStateSyntax","InteractElement","HTMLElement","constructor","_defineProperty2","default","connected","sheet","_observers","WeakMap","attachInternals","_internals","states","add","delete","e","connectedCallback","connect","disconnectedCallback","disconnect","key","dataset","interactKey","remove","index","document","adoptedStyleSheets","indexOf","splice","console","warn","renderStyle","cssRules","CSSStyleSheet","replace","join","push","position","length","cssRule","insertRule","error","toggleEffect","effectId","method","item","has","clear","_this$dataset$INTERAC","currentEffects","Set","split","Array","from","getActiveEffects","effects","map","effect","raw","trimmed","trim","watchChildList","listContainer","list","querySelector","observer","get","MutationObserver","_childListChangeHandler","bind","set","observe","childList","entries","removedElements","addedElements","forEach","entry","removedNodes","el","addedNodes","removeListItems","addListItems"],"sources":["../../src/InteractElement.ts"],"sourcesContent":["import type { StateParams } from './types';\nimport { add, addListItems } from './core/add';\nimport { remove, removeListItems } from './core/remove';\n\nexport const INTERACT_EFFECT_DATA_ATTR = 'interactEffect';\n\nexport function getInteractElement() {\n let checkedForLegacyStateSyntax = false;\n let isLegacyStateSyntax = false;\n\n return class InteractElement extends HTMLElement {\n _internals: (ElementInternals & { states: Set<string> }) | null;\n connected: boolean;\n sheet: CSSStyleSheet | null;\n _observers: WeakMap<HTMLElement, MutationObserver>;\n\n constructor() {\n super();\n\n this.connected = false;\n this.sheet = null;\n this._observers = new WeakMap();\n\n if (this.attachInternals) {\n this._internals = this.attachInternals() as ElementInternals & {\n states: Set<string>;\n };\n\n if (!checkedForLegacyStateSyntax) {\n checkedForLegacyStateSyntax = true;\n\n try {\n this._internals.states.add('test');\n this._internals.states.delete('test');\n } catch (e) {\n isLegacyStateSyntax = true;\n }\n }\n } else {\n checkedForLegacyStateSyntax = true; // custom states not supported - skip syntax check\n this._internals = null;\n }\n }\n connectedCallback() {\n this.connect();\n }\n\n disconnectedCallback() {\n this.disconnect();\n }\n\n disconnect() {\n const key = this.dataset.interactKey;\n\n if (key) {\n remove(key);\n }\n\n if (this.sheet) {\n const index = document.adoptedStyleSheets.indexOf(this.sheet);\n document.adoptedStyleSheets.splice(index, 1);\n }\n\n this._observers = new WeakMap();\n\n this.connected = false;\n }\n\n connect(key?: string) {\n if (this.connected) {\n return;\n }\n\n key = key || this.dataset.interactKey;\n\n if (!key) {\n console.warn('InteractElement: No key provided');\n return;\n }\n\n this.connected = add(this, key);\n }\n\n renderStyle(cssRules: string[]) {\n if (!this.sheet) {\n this.sheet = new CSSStyleSheet();\n void this.sheet.replace(cssRules.join('\\n'));\n\n document.adoptedStyleSheets.push(this.sheet);\n } else {\n let position = this.sheet.cssRules.length;\n\n for (const cssRule of cssRules) {\n try {\n this.sheet.insertRule(cssRule, position);\n position++;\n } catch (e) {\n console.error(e);\n }\n }\n }\n }\n\n toggleEffect(\n effectId: string,\n method: StateParams['method'],\n item?: HTMLElement | null,\n ) {\n if (item === null) {\n return;\n }\n if (isLegacyStateSyntax) {\n effectId = `--${effectId}`;\n }\n\n if (this._internals && !item) {\n if (method === 'toggle') {\n this._internals.states.has(effectId)\n ? this._internals.states.delete(effectId)\n : this._internals.states.add(effectId);\n } else if (method === 'add') {\n this._internals.states.add(effectId);\n } else if (method === 'remove') {\n this._internals.states.delete(effectId);\n } else if (method === 'clear') {\n this._internals.states.clear();\n }\n } else {\n const currentEffects = new Set(\n this.dataset[INTERACT_EFFECT_DATA_ATTR]?.split(' ') || [],\n );\n\n if (method === 'toggle') {\n currentEffects.has(effectId)\n ? currentEffects.delete(effectId)\n : currentEffects.add(effectId);\n } else if (method === 'add') {\n currentEffects.add(effectId);\n } else if (method === 'remove') {\n currentEffects.delete(effectId);\n } else if (method === 'clear') {\n currentEffects.clear();\n }\n\n (item || this).dataset[INTERACT_EFFECT_DATA_ATTR] =\n Array.from(currentEffects).join(' ');\n }\n }\n\n getActiveEffects(): string[] {\n if (this._internals) {\n const effects = Array.from(this._internals.states);\n return isLegacyStateSyntax\n ? effects.map((effect) => effect.replace(/^--/g, ''))\n : effects;\n }\n\n const raw = this.dataset[INTERACT_EFFECT_DATA_ATTR] || '';\n const trimmed = raw.trim();\n return trimmed ? trimmed.split(/\\s+/) : [];\n }\n\n watchChildList(listContainer: string): void {\n const list = this.querySelector(listContainer);\n\n if (list) {\n // TODO: we can probably improve this and use less observers, this impl. uses one per container element\n let observer = this._observers.get(list as HTMLElement);\n\n if (!observer) {\n observer = new MutationObserver(\n this._childListChangeHandler.bind(this, listContainer),\n );\n\n this._observers.set(list as HTMLElement, observer);\n\n observer.observe(list as HTMLElement, { childList: true });\n }\n }\n }\n\n _childListChangeHandler(listContainer: string, entries: MutationRecord[]) {\n const key = this.dataset.interactKey;\n const removedElements: HTMLElement[] = [];\n const addedElements: HTMLElement[] = [];\n\n entries.forEach((entry) => {\n entry.removedNodes.forEach((el) => {\n if (el instanceof HTMLElement) {\n removedElements.push(el);\n }\n });\n\n entry.addedNodes.forEach((el) => {\n if (el instanceof HTMLElement) {\n addedElements.push(el);\n }\n });\n });\n\n removeListItems(removedElements);\n key && addListItems(this, key, listContainer, addedElements);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
var _Interact = require("../core/Interact");
|
|
4
5
|
var _add = require("../core/add");
|
|
5
6
|
var _remove = require("../core/remove");
|
|
6
7
|
var _utilities = require("../handlers/utilities");
|
|
8
|
+
var _handlers = _interopRequireDefault(require("../handlers"));
|
|
7
9
|
// Mock @wix/motion module
|
|
8
10
|
jest.mock('@wix/motion', () => {
|
|
9
11
|
const mock = {
|
|
@@ -250,7 +252,7 @@ describe('interact', () => {
|
|
|
250
252
|
}
|
|
251
253
|
});
|
|
252
254
|
beforeEach(() => {
|
|
253
|
-
element = document.createElement('
|
|
255
|
+
element = document.createElement('interact-element');
|
|
254
256
|
const div = document.createElement('div');
|
|
255
257
|
element.append(div);
|
|
256
258
|
|
|
@@ -400,14 +402,14 @@ describe('interact', () => {
|
|
|
400
402
|
describe('init Interact instance', () => {
|
|
401
403
|
it('should initialize with valid config', () => {
|
|
402
404
|
_Interact.Interact.create({});
|
|
403
|
-
expect(customElements.get('
|
|
405
|
+
expect(customElements.get('interact-element')).toBeDefined();
|
|
404
406
|
});
|
|
405
407
|
});
|
|
406
408
|
describe('destroy Interact instance', () => {
|
|
407
409
|
it('should clear an instance entire cache', () => {
|
|
408
410
|
const instance = _Interact.Interact.create(getMockConfig());
|
|
409
|
-
element = document.createElement('
|
|
410
|
-
element.dataset.
|
|
411
|
+
element = document.createElement('interact-element');
|
|
412
|
+
element.dataset.interactKey = 'logo-entrance';
|
|
411
413
|
const div = document.createElement('div');
|
|
412
414
|
element.append(div);
|
|
413
415
|
(0, _add.add)(element, 'logo-entrance');
|
|
@@ -431,7 +433,7 @@ describe('interact', () => {
|
|
|
431
433
|
});
|
|
432
434
|
it('should clear all elements from cache', () => {
|
|
433
435
|
_Interact.Interact.create(getMockConfig());
|
|
434
|
-
element = document.createElement('
|
|
436
|
+
element = document.createElement('interact-element');
|
|
435
437
|
const div = document.createElement('div');
|
|
436
438
|
element.append(div);
|
|
437
439
|
(0, _add.add)(element, 'logo-hover');
|
|
@@ -441,10 +443,10 @@ describe('interact', () => {
|
|
|
441
443
|
});
|
|
442
444
|
it('should call disconnect on all cached elements', () => {
|
|
443
445
|
_Interact.Interact.create(getMockConfig());
|
|
444
|
-
const element1 = document.createElement('
|
|
446
|
+
const element1 = document.createElement('interact-element');
|
|
445
447
|
const div1 = document.createElement('div');
|
|
446
448
|
element1.append(div1);
|
|
447
|
-
const element2 = document.createElement('
|
|
449
|
+
const element2 = document.createElement('interact-element');
|
|
448
450
|
const div2 = document.createElement('div');
|
|
449
451
|
element2.append(div2);
|
|
450
452
|
(0, _add.add)(element1, 'logo-hover');
|
|
@@ -457,7 +459,7 @@ describe('interact', () => {
|
|
|
457
459
|
});
|
|
458
460
|
it('should clean up interactions after destroy', () => {
|
|
459
461
|
_Interact.Interact.create(getMockConfig());
|
|
460
|
-
element = document.createElement('
|
|
462
|
+
element = document.createElement('interact-element');
|
|
461
463
|
const div = document.createElement('div');
|
|
462
464
|
element.append(div);
|
|
463
465
|
(0, _add.add)(element, 'logo-click');
|
|
@@ -468,7 +470,7 @@ describe('interact', () => {
|
|
|
468
470
|
|
|
469
471
|
// Re-create instance and verify it works independently
|
|
470
472
|
_Interact.Interact.create(getMockConfig());
|
|
471
|
-
const newElement = document.createElement('
|
|
473
|
+
const newElement = document.createElement('interact-element');
|
|
472
474
|
const newDiv = document.createElement('div');
|
|
473
475
|
newElement.append(newDiv);
|
|
474
476
|
const newAddEventListenerSpy = jest.spyOn(newDiv, 'addEventListener');
|
|
@@ -482,9 +484,9 @@ describe('interact', () => {
|
|
|
482
484
|
// Interact.create(mockConfig);
|
|
483
485
|
|
|
484
486
|
// element = document.createElement(
|
|
485
|
-
// '
|
|
486
|
-
// ) as
|
|
487
|
-
// element.dataset.
|
|
487
|
+
// 'interact-element',
|
|
488
|
+
// ) as IInteractElement;
|
|
489
|
+
// element.dataset.interactKey = 'logo-click';
|
|
488
490
|
// const div = document.createElement('div');
|
|
489
491
|
// element.append(div);
|
|
490
492
|
|
|
@@ -527,7 +529,7 @@ describe('interact', () => {
|
|
|
527
529
|
}
|
|
528
530
|
}
|
|
529
531
|
});
|
|
530
|
-
element = document.createElement('
|
|
532
|
+
element = document.createElement('interact-element');
|
|
531
533
|
const div = document.createElement('div');
|
|
532
534
|
element.append(div);
|
|
533
535
|
(0, _add.add)(element, 'logo-hover');
|
|
@@ -552,7 +554,7 @@ describe('interact', () => {
|
|
|
552
554
|
const {
|
|
553
555
|
getWebAnimation
|
|
554
556
|
} = require('@wix/motion');
|
|
555
|
-
element = document.createElement('
|
|
557
|
+
element = document.createElement('interact-element');
|
|
556
558
|
const div = document.createElement('div');
|
|
557
559
|
element.append(div);
|
|
558
560
|
const addEventListenerSpy = jest.spyOn(div, 'addEventListener');
|
|
@@ -579,7 +581,7 @@ describe('interact', () => {
|
|
|
579
581
|
});
|
|
580
582
|
describe('click', () => {
|
|
581
583
|
it('should add handler for click trigger', () => {
|
|
582
|
-
element = document.createElement('
|
|
584
|
+
element = document.createElement('interact-element');
|
|
583
585
|
const div = document.createElement('div');
|
|
584
586
|
element.append(div);
|
|
585
587
|
const addEventListenerSpy = jest.spyOn(div, 'addEventListener');
|
|
@@ -595,7 +597,7 @@ describe('interact', () => {
|
|
|
595
597
|
const {
|
|
596
598
|
getWebAnimation
|
|
597
599
|
} = require('@wix/motion');
|
|
598
|
-
element = document.createElement('
|
|
600
|
+
element = document.createElement('interact-element');
|
|
599
601
|
const div = document.createElement('div');
|
|
600
602
|
element.append(div);
|
|
601
603
|
(0, _add.add)(element, 'logo-entrance');
|
|
@@ -608,15 +610,15 @@ describe('interact', () => {
|
|
|
608
610
|
const {
|
|
609
611
|
getWebAnimation
|
|
610
612
|
} = require('@wix/motion');
|
|
611
|
-
element = document.createElement('
|
|
613
|
+
element = document.createElement('interact-element');
|
|
612
614
|
const div = document.createElement('div');
|
|
613
615
|
div.id = 'logo-entrance';
|
|
614
|
-
element.dataset.
|
|
616
|
+
element.dataset.interactKey = 'logo-entrance';
|
|
615
617
|
element.append(div);
|
|
616
|
-
const elementClick = document.createElement('
|
|
618
|
+
const elementClick = document.createElement('interact-element');
|
|
617
619
|
const divClick = document.createElement('div');
|
|
618
620
|
divClick.id = 'logo-click';
|
|
619
|
-
elementClick.dataset.
|
|
621
|
+
elementClick.dataset.interactKey = 'logo-click';
|
|
620
622
|
elementClick.append(divClick);
|
|
621
623
|
(0, _add.add)(elementClick, 'logo-click');
|
|
622
624
|
(0, _add.add)(element, 'logo-entrance');
|
|
@@ -640,7 +642,7 @@ describe('interact', () => {
|
|
|
640
642
|
const {
|
|
641
643
|
getWebAnimation
|
|
642
644
|
} = require('@wix/motion');
|
|
643
|
-
element = document.createElement('
|
|
645
|
+
element = document.createElement('interact-element');
|
|
644
646
|
const div = document.createElement('div');
|
|
645
647
|
element.append(div);
|
|
646
648
|
(0, _add.add)(element, 'logo-loop');
|
|
@@ -655,7 +657,7 @@ describe('interact', () => {
|
|
|
655
657
|
const {
|
|
656
658
|
getWebAnimation
|
|
657
659
|
} = require('@wix/motion');
|
|
658
|
-
element = document.createElement('
|
|
660
|
+
element = document.createElement('interact-element');
|
|
659
661
|
const div = document.createElement('div');
|
|
660
662
|
element.append(div);
|
|
661
663
|
(0, _add.add)(element, 'logo-animation-end');
|
|
@@ -678,7 +680,7 @@ describe('interact', () => {
|
|
|
678
680
|
destroy: jest.fn()
|
|
679
681
|
};
|
|
680
682
|
Pointer.mockImplementation(() => pointerInstance);
|
|
681
|
-
element = document.createElement('
|
|
683
|
+
element = document.createElement('interact-element');
|
|
682
684
|
const div = document.createElement('div');
|
|
683
685
|
element.append(div);
|
|
684
686
|
(0, _add.add)(element, 'logo-mouse');
|
|
@@ -694,7 +696,7 @@ describe('interact', () => {
|
|
|
694
696
|
const {
|
|
695
697
|
getWebAnimation
|
|
696
698
|
} = require('@wix/motion');
|
|
697
|
-
element = document.createElement('
|
|
699
|
+
element = document.createElement('interact-element');
|
|
698
700
|
const div = document.createElement('div');
|
|
699
701
|
element.append(div);
|
|
700
702
|
(0, _add.add)(element, 'logo-scroll');
|
|
@@ -717,7 +719,7 @@ describe('interact', () => {
|
|
|
717
719
|
destroy: jest.fn()
|
|
718
720
|
};
|
|
719
721
|
Scroll.mockImplementation(() => scrollInstance);
|
|
720
|
-
element = document.createElement('
|
|
722
|
+
element = document.createElement('interact-element');
|
|
721
723
|
const div = document.createElement('div');
|
|
722
724
|
element.append(div);
|
|
723
725
|
(0, _add.add)(element, 'logo-scroll');
|
|
@@ -732,7 +734,7 @@ describe('interact', () => {
|
|
|
732
734
|
});
|
|
733
735
|
describe('listContainer', () => {
|
|
734
736
|
it('should add a handler per list item for click trigger with listContainer', () => {
|
|
735
|
-
element = document.createElement('
|
|
737
|
+
element = document.createElement('interact-element');
|
|
736
738
|
const div = document.createElement('div');
|
|
737
739
|
const ul = document.createElement('ul');
|
|
738
740
|
ul.id = 'logo-list';
|
|
@@ -758,7 +760,7 @@ describe('interact', () => {
|
|
|
758
760
|
const {
|
|
759
761
|
getWebAnimation
|
|
760
762
|
} = require('@wix/motion');
|
|
761
|
-
element = document.createElement('
|
|
763
|
+
element = document.createElement('interact-element');
|
|
762
764
|
const div = document.createElement('div');
|
|
763
765
|
const ul = document.createElement('ul');
|
|
764
766
|
ul.id = 'logo-list';
|
|
@@ -774,7 +776,7 @@ describe('interact', () => {
|
|
|
774
776
|
expect(getWebAnimation.mock.calls[1][0]).toBe(li2);
|
|
775
777
|
});
|
|
776
778
|
it('should add a handler per newly added list item for click trigger with listContainer', () => {
|
|
777
|
-
element = document.createElement('
|
|
779
|
+
element = document.createElement('interact-element');
|
|
778
780
|
const div = document.createElement('div');
|
|
779
781
|
const ul = document.createElement('ul');
|
|
780
782
|
ul.id = 'logo-list';
|
|
@@ -808,9 +810,9 @@ describe('interact', () => {
|
|
|
808
810
|
const {
|
|
809
811
|
getWebAnimation
|
|
810
812
|
} = require('@wix/motion');
|
|
811
|
-
element = document.createElement('
|
|
813
|
+
element = document.createElement('interact-element');
|
|
812
814
|
const div = document.createElement('div');
|
|
813
|
-
const targetElement = document.createElement('
|
|
815
|
+
const targetElement = document.createElement('interact-element');
|
|
814
816
|
const divTarget = document.createElement('div');
|
|
815
817
|
const ul = document.createElement('ul');
|
|
816
818
|
ul.id = 'logo-scroll-list';
|
|
@@ -849,7 +851,7 @@ describe('interact', () => {
|
|
|
849
851
|
_Interact.Interact.destroy();
|
|
850
852
|
});
|
|
851
853
|
it('should remove event listeners', () => {
|
|
852
|
-
element = document.createElement('
|
|
854
|
+
element = document.createElement('interact-element');
|
|
853
855
|
const div = document.createElement('div');
|
|
854
856
|
element.append(div);
|
|
855
857
|
const removeEventListenerSpy = jest.spyOn(div, 'removeEventListener');
|
|
@@ -870,7 +872,7 @@ describe('interact', () => {
|
|
|
870
872
|
destroy: jest.fn()
|
|
871
873
|
};
|
|
872
874
|
Pointer.mockImplementation(() => pointerInstance);
|
|
873
|
-
element = document.createElement('
|
|
875
|
+
element = document.createElement('interact-element');
|
|
874
876
|
const div = document.createElement('div');
|
|
875
877
|
element.append(div);
|
|
876
878
|
(0, _add.add)(element, 'logo-mouse');
|
|
@@ -886,10 +888,10 @@ describe('interact', () => {
|
|
|
886
888
|
} = require('@wix/motion');
|
|
887
889
|
const config = createCascadingTestConfig({}, ['min-width: 1024px']);
|
|
888
890
|
_Interact.Interact.create(config);
|
|
889
|
-
const sourceElement = document.createElement('
|
|
891
|
+
const sourceElement = document.createElement('interact-element');
|
|
890
892
|
const sourceDiv = document.createElement('div');
|
|
891
893
|
sourceElement.append(sourceDiv);
|
|
892
|
-
const targetElement = document.createElement('
|
|
894
|
+
const targetElement = document.createElement('interact-element');
|
|
893
895
|
const targetDiv = document.createElement('div');
|
|
894
896
|
targetElement.append(targetDiv);
|
|
895
897
|
const addEventListenerSpy = jest.spyOn(sourceDiv, 'addEventListener');
|
|
@@ -918,10 +920,10 @@ describe('interact', () => {
|
|
|
918
920
|
const config = createCascadingTestConfig({}, []); // No matching conditions
|
|
919
921
|
|
|
920
922
|
_Interact.Interact.create(config);
|
|
921
|
-
const sourceElement = document.createElement('
|
|
923
|
+
const sourceElement = document.createElement('interact-element');
|
|
922
924
|
const sourceDiv = document.createElement('div');
|
|
923
925
|
sourceElement.append(sourceDiv);
|
|
924
|
-
const targetElement = document.createElement('
|
|
926
|
+
const targetElement = document.createElement('interact-element');
|
|
925
927
|
const targetDiv = document.createElement('div');
|
|
926
928
|
targetElement.append(targetDiv);
|
|
927
929
|
(0, _add.add)(sourceElement, 'cascade-source');
|
|
@@ -944,10 +946,10 @@ describe('interact', () => {
|
|
|
944
946
|
} = require('@wix/motion');
|
|
945
947
|
const config = createCascadingTestConfig({}, ['max-width: 767px']);
|
|
946
948
|
_Interact.Interact.create(config);
|
|
947
|
-
const sourceElement = document.createElement('
|
|
949
|
+
const sourceElement = document.createElement('interact-element');
|
|
948
950
|
const sourceDiv = document.createElement('div');
|
|
949
951
|
sourceElement.append(sourceDiv);
|
|
950
|
-
const targetElement = document.createElement('
|
|
952
|
+
const targetElement = document.createElement('interact-element');
|
|
951
953
|
const targetDiv = document.createElement('div');
|
|
952
954
|
targetElement.append(targetDiv);
|
|
953
955
|
(0, _add.add)(sourceElement, 'cascade-source');
|
|
@@ -972,10 +974,10 @@ describe('interact', () => {
|
|
|
972
974
|
} = require('@wix/motion');
|
|
973
975
|
const config = createCascadingTestConfig({}, ['min-width: 1024px']);
|
|
974
976
|
_Interact.Interact.create(config);
|
|
975
|
-
const sourceElement = document.createElement('
|
|
977
|
+
const sourceElement = document.createElement('interact-element');
|
|
976
978
|
const sourceDiv = document.createElement('div');
|
|
977
979
|
sourceElement.append(sourceDiv);
|
|
978
|
-
const targetElement = document.createElement('
|
|
980
|
+
const targetElement = document.createElement('interact-element');
|
|
979
981
|
const targetDiv = document.createElement('div');
|
|
980
982
|
targetElement.append(targetDiv);
|
|
981
983
|
|
|
@@ -998,10 +1000,10 @@ describe('interact', () => {
|
|
|
998
1000
|
} = require('@wix/motion');
|
|
999
1001
|
const config = createCascadingTestConfig({}, ['min-width: 1024px']);
|
|
1000
1002
|
_Interact.Interact.create(config);
|
|
1001
|
-
const sourceElement = document.createElement('
|
|
1003
|
+
const sourceElement = document.createElement('interact-element');
|
|
1002
1004
|
const sourceDiv = document.createElement('div');
|
|
1003
1005
|
sourceElement.append(sourceDiv);
|
|
1004
|
-
const targetElement = document.createElement('
|
|
1006
|
+
const targetElement = document.createElement('interact-element');
|
|
1005
1007
|
const targetDiv = document.createElement('div');
|
|
1006
1008
|
targetElement.append(targetDiv);
|
|
1007
1009
|
|
|
@@ -1069,13 +1071,13 @@ describe('interact', () => {
|
|
|
1069
1071
|
};
|
|
1070
1072
|
mockMatchMedia(['min-width: 1024px']); // Only desktop matches
|
|
1071
1073
|
_Interact.Interact.create(complexConfig);
|
|
1072
|
-
const sourceElement = document.createElement('
|
|
1074
|
+
const sourceElement = document.createElement('interact-element');
|
|
1073
1075
|
const sourceDiv = document.createElement('div');
|
|
1074
1076
|
sourceElement.append(sourceDiv);
|
|
1075
|
-
const target1Element = document.createElement('
|
|
1077
|
+
const target1Element = document.createElement('interact-element');
|
|
1076
1078
|
const target1Div = document.createElement('div');
|
|
1077
1079
|
target1Element.append(target1Div);
|
|
1078
|
-
const target2Element = document.createElement('
|
|
1080
|
+
const target2Element = document.createElement('interact-element');
|
|
1079
1081
|
const target2Div = document.createElement('div');
|
|
1080
1082
|
target2Element.append(target2Div);
|
|
1081
1083
|
(0, _add.add)(sourceElement, 'multi-source-1');
|
|
@@ -1143,10 +1145,10 @@ describe('interact', () => {
|
|
|
1143
1145
|
// Both conditions match
|
|
1144
1146
|
mockMatchMedia(['min-width: 1024px', 'min-resolution: 2dppx']);
|
|
1145
1147
|
_Interact.Interact.create(multiConditionConfig);
|
|
1146
|
-
const sourceElement = document.createElement('
|
|
1148
|
+
const sourceElement = document.createElement('interact-element');
|
|
1147
1149
|
const sourceDiv = document.createElement('div');
|
|
1148
1150
|
sourceElement.append(sourceDiv);
|
|
1149
|
-
const targetElement = document.createElement('
|
|
1151
|
+
const targetElement = document.createElement('interact-element');
|
|
1150
1152
|
const targetDiv = document.createElement('div');
|
|
1151
1153
|
targetElement.append(targetDiv);
|
|
1152
1154
|
(0, _add.add)(sourceElement, 'cascade-source');
|
|
@@ -1199,10 +1201,10 @@ describe('interact', () => {
|
|
|
1199
1201
|
};
|
|
1200
1202
|
mockMatchMedia(['min-width: 1024px']);
|
|
1201
1203
|
_Interact.Interact.create(configWithMissingCondition);
|
|
1202
|
-
const sourceElement = document.createElement('
|
|
1204
|
+
const sourceElement = document.createElement('interact-element');
|
|
1203
1205
|
const sourceDiv = document.createElement('div');
|
|
1204
1206
|
sourceElement.append(sourceDiv);
|
|
1205
|
-
const targetElement = document.createElement('
|
|
1207
|
+
const targetElement = document.createElement('interact-element');
|
|
1206
1208
|
const targetDiv = document.createElement('div');
|
|
1207
1209
|
targetElement.append(targetDiv);
|
|
1208
1210
|
(0, _add.add)(sourceElement, 'cascade-source');
|
|
@@ -1246,10 +1248,10 @@ describe('interact', () => {
|
|
|
1246
1248
|
};
|
|
1247
1249
|
mockMatchMedia([]);
|
|
1248
1250
|
_Interact.Interact.create(configWithEmptyConditions);
|
|
1249
|
-
const sourceElement = document.createElement('
|
|
1251
|
+
const sourceElement = document.createElement('interact-element');
|
|
1250
1252
|
const sourceDiv = document.createElement('div');
|
|
1251
1253
|
sourceElement.append(sourceDiv);
|
|
1252
|
-
const targetElement = document.createElement('
|
|
1254
|
+
const targetElement = document.createElement('interact-element');
|
|
1253
1255
|
const targetDiv = document.createElement('div');
|
|
1254
1256
|
targetElement.append(targetDiv);
|
|
1255
1257
|
(0, _add.add)(sourceElement, 'cascade-source');
|
|
@@ -1272,7 +1274,7 @@ describe('interact', () => {
|
|
|
1272
1274
|
let targetElement;
|
|
1273
1275
|
beforeEach(() => {
|
|
1274
1276
|
// Create source element with multiple child elements
|
|
1275
|
-
sourceElement = document.createElement('
|
|
1277
|
+
sourceElement = document.createElement('interact-element');
|
|
1276
1278
|
sourceElement.innerHTML = `
|
|
1277
1279
|
<div class="first-child">First Child</div>
|
|
1278
1280
|
<button class="trigger-button">Click Me</button>
|
|
@@ -1285,7 +1287,7 @@ describe('interact', () => {
|
|
|
1285
1287
|
`;
|
|
1286
1288
|
|
|
1287
1289
|
// Create target element with multiple child elements
|
|
1288
|
-
targetElement = document.createElement('
|
|
1290
|
+
targetElement = document.createElement('interact-element');
|
|
1289
1291
|
targetElement.innerHTML = `
|
|
1290
1292
|
<div class="first-child">Target First</div>
|
|
1291
1293
|
<div class="animation-target">Animation Target</div>
|
|
@@ -1520,7 +1522,7 @@ describe('interact', () => {
|
|
|
1520
1522
|
_Interact.Interact.create(config);
|
|
1521
1523
|
(0, _add.add)(sourceElement, 'invalid-source');
|
|
1522
1524
|
(0, _add.add)(targetElement, 'invalid-target');
|
|
1523
|
-
expect(consoleSpy).toHaveBeenCalledWith('
|
|
1525
|
+
expect(consoleSpy).toHaveBeenCalledWith('Interact: No element found for selector ".non-existent-element"');
|
|
1524
1526
|
});
|
|
1525
1527
|
it('should warn when listContainer selector does not match', () => {
|
|
1526
1528
|
const config = {
|
|
@@ -1550,7 +1552,7 @@ describe('interact', () => {
|
|
|
1550
1552
|
_Interact.Interact.create(config);
|
|
1551
1553
|
(0, _add.add)(sourceElement, 'invalid-container-source');
|
|
1552
1554
|
(0, _add.add)(targetElement, 'invalid-container-target');
|
|
1553
|
-
expect(consoleSpy).toHaveBeenCalledWith('
|
|
1555
|
+
expect(consoleSpy).toHaveBeenCalledWith('Interact: No container found for list container ".non-existent-container"');
|
|
1554
1556
|
});
|
|
1555
1557
|
it('should gracefully handle invalid selectors without breaking interactions', () => {
|
|
1556
1558
|
const config = {
|
|
@@ -1771,5 +1773,29 @@ describe('interact', () => {
|
|
|
1771
1773
|
expect(_Interact.Interact.elementCache.get(keyWithoutInstance)).toBe(element);
|
|
1772
1774
|
});
|
|
1773
1775
|
});
|
|
1776
|
+
describe('setup', () => {
|
|
1777
|
+
afterEach(() => {
|
|
1778
|
+
_Interact.Interact.setup({
|
|
1779
|
+
scrollOptionsGetter: () => ({}),
|
|
1780
|
+
pointerOptionsGetter: () => ({})
|
|
1781
|
+
});
|
|
1782
|
+
});
|
|
1783
|
+
it('should register scroll options getter', () => {
|
|
1784
|
+
const scrollOptionsGetter = jest.fn().mockReturnValue({});
|
|
1785
|
+
const spy = jest.spyOn(_handlers.default.viewProgress, 'registerOptionsGetter');
|
|
1786
|
+
_Interact.Interact.setup({
|
|
1787
|
+
scrollOptionsGetter
|
|
1788
|
+
});
|
|
1789
|
+
expect(spy).toHaveBeenCalledWith(scrollOptionsGetter);
|
|
1790
|
+
});
|
|
1791
|
+
it('should register pointer options getter', () => {
|
|
1792
|
+
const pointerOptionsGetter = jest.fn().mockReturnValue({});
|
|
1793
|
+
const spy = jest.spyOn(_handlers.default.pointerMove, 'registerOptionsGetter');
|
|
1794
|
+
_Interact.Interact.setup({
|
|
1795
|
+
pointerOptionsGetter
|
|
1796
|
+
});
|
|
1797
|
+
expect(spy).toHaveBeenCalledWith(pointerOptionsGetter);
|
|
1798
|
+
});
|
|
1799
|
+
});
|
|
1774
1800
|
});
|
|
1775
1801
|
//# sourceMappingURL=interact.spec.js.map
|