@wix/interact 1.93.0 → 2.0.0-rc.2
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/dist/cjs/index.js +2 -23
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react.js +15 -0
- package/dist/cjs/react.js.map +1 -0
- package/dist/cjs/web.js +2 -0
- package/dist/cjs/web.js.map +1 -0
- package/dist/es/index.js +8 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/react.js +650 -0
- package/dist/es/react.js.map +1 -0
- package/dist/es/web.js +56 -0
- package/dist/es/web.js.map +1 -0
- package/dist/index-C8QxOkui.mjs +7940 -0
- package/dist/index-C8QxOkui.mjs.map +1 -0
- package/dist/index-DEPRHaUt.js +18 -0
- package/dist/index-DEPRHaUt.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/core/Interact.d.ts +17 -7
- package/dist/types/core/Interact.d.ts.map +1 -0
- package/dist/types/core/InteractionController.d.ts +19 -0
- package/dist/types/core/InteractionController.d.ts.map +1 -0
- package/dist/types/core/add.d.ts +4 -3
- package/dist/types/core/add.d.ts.map +1 -0
- package/dist/types/core/css.d.ts +3 -0
- package/dist/types/core/css.d.ts.map +1 -0
- package/dist/types/core/remove.d.ts +3 -1
- package/dist/types/core/remove.d.ts.map +1 -0
- package/dist/types/core/utilities.d.ts +1 -0
- package/dist/types/core/utilities.d.ts.map +1 -0
- package/dist/types/dom/api.d.ts +3 -0
- package/dist/types/dom/api.d.ts.map +1 -0
- package/dist/types/handlers/animationEnd.d.ts +3 -2
- package/dist/types/handlers/animationEnd.d.ts.map +1 -0
- package/dist/types/handlers/click.d.ts +3 -2
- package/dist/types/handlers/click.d.ts.map +1 -0
- package/dist/types/handlers/hover.d.ts +3 -2
- package/dist/types/handlers/hover.d.ts.map +1 -0
- package/dist/types/handlers/index.d.ts +1 -0
- package/dist/types/handlers/index.d.ts.map +1 -0
- package/dist/types/handlers/pointerMove.d.ts +3 -2
- package/dist/types/handlers/pointerMove.d.ts.map +1 -0
- package/dist/types/handlers/utilities.d.ts +1 -0
- package/dist/types/handlers/utilities.d.ts.map +1 -0
- package/dist/types/handlers/viewEnter.d.ts +3 -2
- package/dist/types/handlers/viewEnter.d.ts.map +1 -0
- package/dist/types/handlers/viewProgress.d.ts +4 -3
- package/dist/types/handlers/viewProgress.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/react/Interaction.d.ts +10 -0
- package/dist/types/react/Interaction.d.ts.map +1 -0
- package/dist/types/react/index.d.ts +8 -0
- package/dist/types/react/index.d.ts.map +1 -0
- package/dist/types/react/interactRef.d.ts +3 -0
- package/dist/types/react/interactRef.d.ts.map +1 -0
- package/dist/types/types.d.ts +23 -10
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils.d.ts +2 -1
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/{InteractElement.d.ts → web/InteractElement.d.ts} +115 -77
- package/dist/types/web/InteractElement.d.ts.map +1 -0
- package/dist/types/web/defineInteractElement.d.ts +2 -0
- package/dist/types/web/defineInteractElement.d.ts.map +1 -0
- package/dist/types/web/index.d.ts +6 -0
- package/dist/types/web/index.d.ts.map +1 -0
- package/docs/README.md +211 -0
- package/docs/advanced/README.md +164 -0
- package/docs/api/README.md +157 -0
- package/docs/api/element-selection.md +607 -0
- package/docs/api/functions.md +638 -0
- package/docs/api/interact-class.md +663 -0
- package/docs/api/interact-element.md +565 -0
- package/docs/api/interaction-controller.md +450 -0
- package/docs/api/types.md +957 -0
- package/docs/examples/README.md +212 -0
- package/docs/examples/click-interactions.md +977 -0
- package/docs/examples/entrance-animations.md +935 -0
- package/docs/examples/hover-effects.md +930 -0
- package/docs/examples/list-patterns.md +737 -0
- package/docs/guides/README.md +49 -0
- package/docs/guides/conditions-and-media-queries.md +1068 -0
- package/docs/guides/configuration-structure.md +726 -0
- package/docs/guides/custom-elements.md +327 -0
- package/docs/guides/effects-and-animations.md +634 -0
- package/docs/guides/getting-started.md +379 -0
- package/docs/guides/lists-and-dynamic-content.md +713 -0
- package/docs/guides/state-management.md +747 -0
- package/docs/guides/understanding-triggers.md +690 -0
- package/docs/integration/README.md +264 -0
- package/docs/integration/react.md +605 -0
- package/package.json +73 -56
- package/rules/Integration.md +255 -0
- package/rules/click-rules.md +533 -0
- package/rules/full-lean.md +346 -0
- package/rules/hover-rules.md +593 -0
- package/rules/pointermove-rules.md +1341 -0
- package/rules/scroll-list-rules.md +900 -0
- package/rules/viewenter-rules.md +1015 -0
- package/rules/viewprogress-rules.md +1044 -0
- package/dist/cjs/InteractElement.js +0 -163
- package/dist/cjs/InteractElement.js.map +0 -1
- package/dist/cjs/__tests__/interact.spec.js +0 -2094
- package/dist/cjs/__tests__/interact.spec.js.map +0 -1
- package/dist/cjs/__tests__/viewEnter.spec.js +0 -207
- package/dist/cjs/__tests__/viewEnter.spec.js.map +0 -1
- package/dist/cjs/core/Interact.js +0 -257
- package/dist/cjs/core/Interact.js.map +0 -1
- package/dist/cjs/core/add.js +0 -250
- package/dist/cjs/core/add.js.map +0 -1
- package/dist/cjs/core/remove.js +0 -35
- package/dist/cjs/core/remove.js.map +0 -1
- package/dist/cjs/core/utilities.js +0 -16
- package/dist/cjs/core/utilities.js.map +0 -1
- package/dist/cjs/external-types.d.js +0 -2
- package/dist/cjs/external-types.d.js.map +0 -1
- package/dist/cjs/handlers/animationEnd.js +0 -37
- package/dist/cjs/handlers/animationEnd.js.map +0 -1
- package/dist/cjs/handlers/click.js +0 -122
- package/dist/cjs/handlers/click.js.map +0 -1
- package/dist/cjs/handlers/hover.js +0 -147
- package/dist/cjs/handlers/hover.js.map +0 -1
- package/dist/cjs/handlers/index.js +0 -32
- package/dist/cjs/handlers/index.js.map +0 -1
- package/dist/cjs/handlers/pointerMove.js +0 -49
- package/dist/cjs/handlers/pointerMove.js.map +0 -1
- package/dist/cjs/handlers/utilities.js +0 -49
- package/dist/cjs/handlers/utilities.js.map +0 -1
- package/dist/cjs/handlers/viewEnter.js +0 -131
- package/dist/cjs/handlers/viewEnter.js.map +0 -1
- package/dist/cjs/handlers/viewProgress.js +0 -79
- package/dist/cjs/handlers/viewProgress.js.map +0 -1
- package/dist/cjs/test-types.d.js +0 -2
- package/dist/cjs/test-types.d.js.map +0 -1
- package/dist/cjs/types.js +0 -2
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils.js +0 -98
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/InteractElement.js +0 -157
- package/dist/esm/InteractElement.js.map +0 -1
- package/dist/esm/__tests__/interact.spec.js +0 -2102
- package/dist/esm/__tests__/interact.spec.js.map +0 -1
- package/dist/esm/__tests__/viewEnter.spec.js +0 -210
- package/dist/esm/__tests__/viewEnter.spec.js.map +0 -1
- package/dist/esm/core/Interact.js +0 -251
- package/dist/esm/core/Interact.js.map +0 -1
- package/dist/esm/core/add.js +0 -245
- package/dist/esm/core/add.js.map +0 -1
- package/dist/esm/core/remove.js +0 -30
- package/dist/esm/core/remove.js.map +0 -1
- package/dist/esm/core/utilities.js +0 -14
- package/dist/esm/core/utilities.js.map +0 -1
- package/dist/esm/external-types.d.js +0 -2
- package/dist/esm/external-types.d.js.map +0 -1
- package/dist/esm/handlers/animationEnd.js +0 -33
- package/dist/esm/handlers/animationEnd.js.map +0 -1
- package/dist/esm/handlers/click.js +0 -122
- package/dist/esm/handlers/click.js.map +0 -1
- package/dist/esm/handlers/hover.js +0 -147
- package/dist/esm/handlers/hover.js.map +0 -1
- package/dist/esm/handlers/index.js +0 -27
- package/dist/esm/handlers/index.js.map +0 -1
- package/dist/esm/handlers/pointerMove.js +0 -48
- package/dist/esm/handlers/pointerMove.js.map +0 -1
- package/dist/esm/handlers/utilities.js +0 -43
- package/dist/esm/handlers/utilities.js.map +0 -1
- package/dist/esm/handlers/viewEnter.js +0 -133
- package/dist/esm/handlers/viewEnter.js.map +0 -1
- package/dist/esm/handlers/viewProgress.js +0 -75
- package/dist/esm/handlers/viewProgress.js.map +0 -1
- package/dist/esm/index.js +0 -5
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/test-types.d.js +0 -2
- package/dist/esm/test-types.d.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils.js +0 -92
- package/dist/esm/utils.js.map +0 -1
- package/dist/types/__tests__/interact.spec.d.ts +0 -1
- package/dist/types/__tests__/viewEnter.spec.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/external-types.d.ts"],"sourcesContent":["/// <reference types=\"@wix/yoshi-flow-library/types\" />\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _motion = require("@wix/motion");
|
|
6
|
-
var _utilities = require("./utilities");
|
|
7
|
-
const handlerMap = new WeakMap();
|
|
8
|
-
function addAnimationEndHandler(source, target, effect, __, globalOptions) {
|
|
9
|
-
const animation = (0, _motion.getAnimation)(target, (0, _utilities.effectToAnimationOptions)(effect), undefined, globalOptions == null ? void 0 : globalOptions.reducedMotion);
|
|
10
|
-
const {
|
|
11
|
-
selectorCondition
|
|
12
|
-
} = globalOptions || {};
|
|
13
|
-
const handler = () => {
|
|
14
|
-
if (selectorCondition && !target.matches(selectorCondition)) return;
|
|
15
|
-
animation.play();
|
|
16
|
-
};
|
|
17
|
-
const cleanup = () => {
|
|
18
|
-
animation.cancel();
|
|
19
|
-
source.removeEventListener('animationend', handler);
|
|
20
|
-
};
|
|
21
|
-
const handlerObj = {
|
|
22
|
-
source,
|
|
23
|
-
target,
|
|
24
|
-
cleanup
|
|
25
|
-
};
|
|
26
|
-
(0, _utilities.addHandlerToMap)(handlerMap, source, handlerObj);
|
|
27
|
-
(0, _utilities.addHandlerToMap)(handlerMap, target, handlerObj);
|
|
28
|
-
source.addEventListener('animationend', handler);
|
|
29
|
-
}
|
|
30
|
-
function removeAnimationEndHandler(element) {
|
|
31
|
-
(0, _utilities.removeElementFromHandlerMap)(handlerMap, element);
|
|
32
|
-
}
|
|
33
|
-
var _default = exports.default = {
|
|
34
|
-
add: addAnimationEndHandler,
|
|
35
|
-
remove: removeAnimationEndHandler
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=animationEnd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_motion","require","_utilities","handlerMap","WeakMap","addAnimationEndHandler","source","target","effect","__","globalOptions","animation","getAnimation","effectToAnimationOptions","undefined","reducedMotion","selectorCondition","handler","matches","play","cleanup","cancel","removeEventListener","handlerObj","addHandlerToMap","addEventListener","removeAnimationEndHandler","element","removeElementFromHandlerMap","_default","exports","default","add","remove"],"sources":["../../../src/handlers/animationEnd.ts"],"sourcesContent":["import type { AnimationGroup } from '@wix/motion';\nimport { getAnimation } from '@wix/motion';\nimport type {\n AnimationEndParams,\n TimeEffect,\n HandlerObjectMap,\n InteractionGlobalOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst handlerMap = new WeakMap() as HandlerObjectMap;\n\nfunction addAnimationEndHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: TimeEffect,\n __: AnimationEndParams,\n globalOptions?: InteractionGlobalOptions,\n): void {\n const animation = getAnimation(\n target,\n effectToAnimationOptions(effect),\n undefined,\n globalOptions?.reducedMotion,\n ) as AnimationGroup;\n const {selectorCondition} = globalOptions || {};\n const handler = () => {\n if (selectorCondition && !target.matches(selectorCondition)) return;\n animation.play();\n };\n const cleanup = () => {\n animation.cancel();\n source.removeEventListener('animationend', handler);\n };\n\n const handlerObj = { source, target, cleanup };\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n source.addEventListener('animationend', handler);\n}\n\nfunction removeAnimationEndHandler(element: HTMLElement): void {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nexport default {\n add: addAnimationEndHandler,\n remove: removeAnimationEndHandler,\n};\n"],"mappings":";;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAMA,MAAME,UAAU,GAAG,IAAIC,OAAO,CAAC,CAAqB;AAEpD,SAASC,sBAAsBA,CAC7BC,MAAmB,EACnBC,MAAmB,EACnBC,MAAkB,EAClBC,EAAsB,EACtBC,aAAwC,EAClC;EACN,MAAMC,SAAS,GAAG,IAAAC,oBAAY,EAC5BL,MAAM,EACN,IAAAM,mCAAwB,EAACL,MAAM,CAAC,EAChCM,SAAS,EACTJ,aAAa,oBAAbA,aAAa,CAAEK,aACjB,CAAmB;EACnB,MAAM;IAACC;EAAiB,CAAC,GAAGN,aAAa,IAAI,CAAC,CAAC;EAC/C,MAAMO,OAAO,GAAGA,CAAA,KAAM;IACpB,IAAID,iBAAiB,IAAI,CAACT,MAAM,CAACW,OAAO,CAACF,iBAAiB,CAAC,EAAE;IAC7DL,SAAS,CAACQ,IAAI,CAAC,CAAC;EAClB,CAAC;EACD,MAAMC,OAAO,GAAGA,CAAA,KAAM;IACpBT,SAAS,CAACU,MAAM,CAAC,CAAC;IAClBf,MAAM,CAACgB,mBAAmB,CAAC,cAAc,EAAEL,OAAO,CAAC;EACrD,CAAC;EAED,MAAMM,UAAU,GAAG;IAAEjB,MAAM;IAAEC,MAAM;IAAEa;EAAQ,CAAC;EAC9C,IAAAI,0BAAe,EAACrB,UAAU,EAAEG,MAAM,EAAEiB,UAAU,CAAC;EAC/C,IAAAC,0BAAe,EAACrB,UAAU,EAAEI,MAAM,EAAEgB,UAAU,CAAC;EAE/CjB,MAAM,CAACmB,gBAAgB,CAAC,cAAc,EAAER,OAAO,CAAC;AAClD;AAEA,SAASS,yBAAyBA,CAACC,OAAoB,EAAQ;EAC7D,IAAAC,sCAA2B,EAACzB,UAAU,EAAEwB,OAAO,CAAC;AAClD;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACbC,GAAG,EAAE3B,sBAAsB;EAC3B4B,MAAM,EAAEP;AACV,CAAC","ignoreList":[]}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _motion = require("@wix/motion");
|
|
6
|
-
var _utilities = require("./utilities");
|
|
7
|
-
const handlerMap = new WeakMap();
|
|
8
|
-
function createTimeEffectHandler(element, effect, options, globalOptions) {
|
|
9
|
-
const animation = (0, _motion.getAnimation)(element, (0, _utilities.effectToAnimationOptions)(effect), undefined, globalOptions == null ? void 0 : globalOptions.reducedMotion);
|
|
10
|
-
let initialPlay = true;
|
|
11
|
-
const type = options.type || 'alternate';
|
|
12
|
-
const {
|
|
13
|
-
selectorCondition
|
|
14
|
-
} = globalOptions || {};
|
|
15
|
-
return event => {
|
|
16
|
-
if (selectorCondition && !element.matches(selectorCondition)) return;
|
|
17
|
-
if (type === 'alternate') {
|
|
18
|
-
if (initialPlay) {
|
|
19
|
-
initialPlay = false;
|
|
20
|
-
animation.play();
|
|
21
|
-
} else {
|
|
22
|
-
animation.reverse();
|
|
23
|
-
}
|
|
24
|
-
} else if (type === 'state') {
|
|
25
|
-
if (initialPlay) {
|
|
26
|
-
initialPlay = false;
|
|
27
|
-
animation.play();
|
|
28
|
-
} else {
|
|
29
|
-
if (animation.playState === 'running') {
|
|
30
|
-
animation.pause();
|
|
31
|
-
} else if (animation.playState !== 'finished') {
|
|
32
|
-
// 'idle' OR 'paused'
|
|
33
|
-
animation.play();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
} else {
|
|
37
|
-
// type === 'repeat'
|
|
38
|
-
// type === 'once'
|
|
39
|
-
animation.progress(0);
|
|
40
|
-
if (animation.isCSS) {
|
|
41
|
-
animation.onFinish(() => {
|
|
42
|
-
element.dataset.motionEnter = 'done';
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
animation.play();
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function createTransitionHandler(element, {
|
|
50
|
-
effectId,
|
|
51
|
-
listContainer,
|
|
52
|
-
listItemSelector
|
|
53
|
-
}, options, selectorCondition) {
|
|
54
|
-
const shouldSetStateOnElement = !!listContainer;
|
|
55
|
-
return event => {
|
|
56
|
-
if (selectorCondition && !element.matches(selectorCondition)) return;
|
|
57
|
-
const interactElement = element.closest('interact-element');
|
|
58
|
-
if (!interactElement) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
let item;
|
|
62
|
-
if (shouldSetStateOnElement) {
|
|
63
|
-
item = element.closest(`${listContainer} > ${listItemSelector || ''}:has(:scope)`);
|
|
64
|
-
}
|
|
65
|
-
interactElement.toggleEffect(effectId, options.method || 'toggle', item);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function addClickHandler(source, target, effect, options = {}, globalOptions) {
|
|
69
|
-
let handler;
|
|
70
|
-
let once = false;
|
|
71
|
-
if (effect.transition || effect.transitionProperties) {
|
|
72
|
-
handler = createTransitionHandler(target, effect, options, globalOptions == null ? void 0 : globalOptions.selectorCondition);
|
|
73
|
-
} else {
|
|
74
|
-
handler = createTimeEffectHandler(target, effect, options, {
|
|
75
|
-
reducedMotion: globalOptions == null ? void 0 : globalOptions.reducedMotion,
|
|
76
|
-
selectorCondition: globalOptions == null ? void 0 : globalOptions.selectorCondition
|
|
77
|
-
});
|
|
78
|
-
once = options.type === 'once';
|
|
79
|
-
}
|
|
80
|
-
const cleanup = () => {
|
|
81
|
-
source.removeEventListener('click', handler);
|
|
82
|
-
if (globalOptions != null && globalOptions.allowA11yTriggers) {
|
|
83
|
-
source.removeEventListener('keydown', handler);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
const handlerObj = {
|
|
87
|
-
source,
|
|
88
|
-
target,
|
|
89
|
-
cleanup
|
|
90
|
-
};
|
|
91
|
-
(0, _utilities.addHandlerToMap)(handlerMap, source, handlerObj);
|
|
92
|
-
(0, _utilities.addHandlerToMap)(handlerMap, target, handlerObj);
|
|
93
|
-
source.addEventListener('click', e => {
|
|
94
|
-
if (e.pointerType) {
|
|
95
|
-
handler(e);
|
|
96
|
-
}
|
|
97
|
-
}, {
|
|
98
|
-
passive: true,
|
|
99
|
-
once
|
|
100
|
-
});
|
|
101
|
-
if (globalOptions != null && globalOptions.allowA11yTriggers) {
|
|
102
|
-
source.tabIndex = 0;
|
|
103
|
-
source.addEventListener('keydown', event => {
|
|
104
|
-
if (event.code === 'Space') {
|
|
105
|
-
event.preventDefault();
|
|
106
|
-
handler(event);
|
|
107
|
-
} else if (event.code === 'Enter') {
|
|
108
|
-
handler(event);
|
|
109
|
-
}
|
|
110
|
-
}, {
|
|
111
|
-
once
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
function removeClickHandler(element) {
|
|
116
|
-
(0, _utilities.removeElementFromHandlerMap)(handlerMap, element);
|
|
117
|
-
}
|
|
118
|
-
var _default = exports.default = {
|
|
119
|
-
add: addClickHandler,
|
|
120
|
-
remove: removeClickHandler
|
|
121
|
-
};
|
|
122
|
-
//# sourceMappingURL=click.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_motion","require","_utilities","handlerMap","WeakMap","createTimeEffectHandler","element","effect","options","globalOptions","animation","getAnimation","effectToAnimationOptions","undefined","reducedMotion","initialPlay","type","selectorCondition","event","matches","play","reverse","playState","pause","progress","isCSS","onFinish","dataset","motionEnter","createTransitionHandler","effectId","listContainer","listItemSelector","shouldSetStateOnElement","interactElement","closest","item","toggleEffect","method","addClickHandler","source","target","handler","once","transition","transitionProperties","cleanup","removeEventListener","allowA11yTriggers","handlerObj","addHandlerToMap","addEventListener","e","pointerType","passive","tabIndex","code","preventDefault","removeClickHandler","removeElementFromHandlerMap","_default","exports","default","add","remove"],"sources":["../../../src/handlers/click.ts"],"sourcesContent":["import { getAnimation } from '@wix/motion';\nimport type { AnimationGroup } from '@wix/motion';\nimport type {\n TimeEffect,\n TransitionEffect,\n StateParams,\n HandlerObjectMap,\n IInteractElement,\n PointerTriggerParams,\n EffectBase,\n InteractionGlobalOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst handlerMap = new WeakMap() as HandlerObjectMap;\n\nfunction createTimeEffectHandler(\n element: HTMLElement,\n effect: TimeEffect & EffectBase,\n options: PointerTriggerParams,\n globalOptions: InteractionGlobalOptions,\n) {\n const animation = getAnimation(\n element,\n effectToAnimationOptions(effect),\n undefined,\n globalOptions?.reducedMotion,\n ) as AnimationGroup;\n let initialPlay = true;\n const type = options.type || 'alternate';\n const {selectorCondition} = globalOptions || {};\n return (event: MouseEvent | KeyboardEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n \n if (type === 'alternate') {\n if (initialPlay) {\n initialPlay = false;\n animation.play();\n } else {\n animation.reverse();\n }\n } else if (type === 'state') {\n if (initialPlay) {\n initialPlay = false;\n animation.play();\n } else {\n if (animation.playState === 'running') {\n animation.pause();\n } else if (animation.playState !== 'finished') {\n // 'idle' OR 'paused'\n animation.play();\n }\n }\n } else {\n // type === 'repeat'\n // type === 'once'\n animation.progress(0);\n\n if (animation.isCSS) {\n animation.onFinish(() => {\n element.dataset.motionEnter = 'done';\n });\n }\n\n animation.play();\n }\n };\n}\n\nfunction createTransitionHandler(\n element: HTMLElement,\n {\n effectId,\n listContainer,\n listItemSelector,\n }: TransitionEffect & EffectBase & { effectId: string },\n options: StateParams,\n selectorCondition?: string,\n) {\n const shouldSetStateOnElement = !!listContainer;\n \n return (event: MouseEvent | KeyboardEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n const interactElement = element.closest(\n 'interact-element',\n ) as IInteractElement;\n if (!interactElement) {\n return;\n }\n\n let item;\n if (shouldSetStateOnElement) {\n item = element.closest(\n `${listContainer} > ${listItemSelector || ''}:has(:scope)`,\n ) as HTMLElement | null;\n }\n\n interactElement.toggleEffect(effectId, options.method || 'toggle', item);\n };\n}\n\nfunction addClickHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: (TimeEffect | TransitionEffect) & EffectBase,\n options: StateParams | PointerTriggerParams = {} as StateParams,\n globalOptions?: InteractionGlobalOptions,\n) {\n let handler: (event: MouseEvent | KeyboardEvent) => void;\n let once = false;\n\n if (\n (effect as TransitionEffect).transition ||\n (effect as TransitionEffect).transitionProperties\n ) {\n handler = createTransitionHandler(\n target,\n effect as TransitionEffect & EffectBase & { effectId: string },\n options as StateParams,\n globalOptions?.selectorCondition,\n );\n } else {\n handler = createTimeEffectHandler(\n target,\n effect as TimeEffect & EffectBase,\n options as PointerTriggerParams,\n { reducedMotion: globalOptions?.reducedMotion, selectorCondition: globalOptions?.selectorCondition },\n );\n once = (options as PointerTriggerParams).type === 'once';\n }\n\n const cleanup = () => {\n source.removeEventListener('click', handler);\n if (globalOptions?.allowA11yTriggers) {\n source.removeEventListener('keydown', handler);\n }\n };\n\n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n source.addEventListener(\n 'click',\n (e) => {\n if ((e as PointerEvent).pointerType) {\n handler(e);\n }\n },\n { passive: true, once },\n );\n\n if (globalOptions?.allowA11yTriggers) {\n source.tabIndex = 0;\n\n source.addEventListener(\n 'keydown',\n (event: KeyboardEvent) => {\n if (event.code === 'Space') {\n event.preventDefault();\n handler(event);\n } else if (event.code === 'Enter') {\n handler(event);\n }\n },\n { once },\n );\n }\n}\n\nfunction removeClickHandler(element: HTMLElement) {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nexport default {\n add: addClickHandler,\n remove: removeClickHandler,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _motion = require("@wix/motion");
|
|
6
|
-
var _utilities = require("./utilities");
|
|
7
|
-
const handlerMap = new WeakMap();
|
|
8
|
-
function createTimeEffectHandler(element, effect, options, globalOptions) {
|
|
9
|
-
const animation = (0, _motion.getAnimation)(element, (0, _utilities.effectToAnimationOptions)(effect), undefined, globalOptions == null ? void 0 : globalOptions.reducedMotion);
|
|
10
|
-
const type = options.type || 'alternate';
|
|
11
|
-
let initialPlay = true;
|
|
12
|
-
const {
|
|
13
|
-
selectorCondition
|
|
14
|
-
} = globalOptions || {};
|
|
15
|
-
return event => {
|
|
16
|
-
if (selectorCondition && !element.matches(selectorCondition)) return;
|
|
17
|
-
if (event.type === 'mouseenter' || event.type === 'focusin') {
|
|
18
|
-
if (type === 'alternate') {
|
|
19
|
-
if (initialPlay) {
|
|
20
|
-
initialPlay = false;
|
|
21
|
-
animation.play();
|
|
22
|
-
} else {
|
|
23
|
-
animation.reverse();
|
|
24
|
-
}
|
|
25
|
-
} else if (type === 'state') {
|
|
26
|
-
if (animation.playState !== 'finished') {
|
|
27
|
-
// 'idle' OR 'paused'
|
|
28
|
-
animation.play();
|
|
29
|
-
}
|
|
30
|
-
} else {
|
|
31
|
-
// type === 'repeat'
|
|
32
|
-
// type === 'once'
|
|
33
|
-
animation.progress(0);
|
|
34
|
-
if (animation.isCSS) {
|
|
35
|
-
animation.onFinish(() => {
|
|
36
|
-
element.dataset.motionEnter = 'done';
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
animation.play();
|
|
40
|
-
}
|
|
41
|
-
} else if (event.type === 'mouseleave' || event.type === 'focusout') {
|
|
42
|
-
if (type === 'alternate') {
|
|
43
|
-
animation.reverse();
|
|
44
|
-
} else if (type === 'repeat') {
|
|
45
|
-
animation.cancel();
|
|
46
|
-
delete element.dataset.motionEnter;
|
|
47
|
-
} else if (type === 'state') {
|
|
48
|
-
if (animation.playState === 'running') {
|
|
49
|
-
animation.pause();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function createTransitionHandler(element, {
|
|
56
|
-
effectId,
|
|
57
|
-
listContainer,
|
|
58
|
-
listItemSelector
|
|
59
|
-
}, options, selectorCondition) {
|
|
60
|
-
const method = options.method || 'toggle';
|
|
61
|
-
const isToggle = method === 'toggle';
|
|
62
|
-
const shouldSetStateOnElement = !!listContainer;
|
|
63
|
-
return event => {
|
|
64
|
-
if (selectorCondition && !element.matches(selectorCondition)) return;
|
|
65
|
-
const interactElement = element.closest('interact-element');
|
|
66
|
-
if (!interactElement) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
let item;
|
|
70
|
-
if (shouldSetStateOnElement) {
|
|
71
|
-
item = element.closest(`${listContainer} > ${listItemSelector || ''}:has(:scope)`);
|
|
72
|
-
}
|
|
73
|
-
if (event.type === 'mouseenter' || event.type === 'focusin') {
|
|
74
|
-
const method_ = isToggle ? 'add' : method;
|
|
75
|
-
interactElement.toggleEffect(effectId, method_, item);
|
|
76
|
-
} else if ((event.type === 'mouseleave' || event.type === 'focusout') && isToggle) {
|
|
77
|
-
interactElement.toggleEffect(effectId, 'remove', item);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
function addHoverHandler(source, target, effect, options = {}, globalOptions) {
|
|
82
|
-
let handler;
|
|
83
|
-
let isStateTrigger = false;
|
|
84
|
-
let once = false;
|
|
85
|
-
if (effect.transition || effect.transitionProperties) {
|
|
86
|
-
handler = createTransitionHandler(target, effect, options, globalOptions == null ? void 0 : globalOptions.selectorCondition);
|
|
87
|
-
isStateTrigger = true;
|
|
88
|
-
} else {
|
|
89
|
-
handler = createTimeEffectHandler(target, effect, options, {
|
|
90
|
-
reducedMotion: globalOptions == null ? void 0 : globalOptions.reducedMotion,
|
|
91
|
-
selectorCondition: globalOptions == null ? void 0 : globalOptions.selectorCondition
|
|
92
|
-
});
|
|
93
|
-
once = options.type === 'once';
|
|
94
|
-
}
|
|
95
|
-
const cleanup = () => {
|
|
96
|
-
source.removeEventListener('mouseenter', handler);
|
|
97
|
-
source.removeEventListener('mouseleave', handler);
|
|
98
|
-
if (globalOptions != null && globalOptions.allowA11yTriggers) {
|
|
99
|
-
source.removeEventListener('focusin', handler);
|
|
100
|
-
source.removeEventListener('focusout', handler);
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
const handlerObj = {
|
|
104
|
-
source,
|
|
105
|
-
target,
|
|
106
|
-
cleanup
|
|
107
|
-
};
|
|
108
|
-
(0, _utilities.addHandlerToMap)(handlerMap, source, handlerObj);
|
|
109
|
-
(0, _utilities.addHandlerToMap)(handlerMap, target, handlerObj);
|
|
110
|
-
if (globalOptions != null && globalOptions.allowA11yTriggers) {
|
|
111
|
-
source.tabIndex = 0;
|
|
112
|
-
source.addEventListener('focusin', event => {
|
|
113
|
-
if (!source.contains(event.relatedTarget)) {
|
|
114
|
-
handler(event);
|
|
115
|
-
}
|
|
116
|
-
}, {
|
|
117
|
-
once
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
source.addEventListener('mouseenter', handler, {
|
|
121
|
-
passive: true,
|
|
122
|
-
once
|
|
123
|
-
});
|
|
124
|
-
const addLeave = isStateTrigger ? (options.method || 'toggle') === 'toggle' : options.type !== 'once';
|
|
125
|
-
if (addLeave) {
|
|
126
|
-
source.addEventListener('mouseleave', handler, {
|
|
127
|
-
passive: true
|
|
128
|
-
});
|
|
129
|
-
if (globalOptions != null && globalOptions.allowA11yTriggers) {
|
|
130
|
-
source.addEventListener('focusout', event => {
|
|
131
|
-
if (!source.contains(event.relatedTarget)) {
|
|
132
|
-
handler(event);
|
|
133
|
-
}
|
|
134
|
-
}, {
|
|
135
|
-
once
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function removeHoverHandler(element) {
|
|
141
|
-
(0, _utilities.removeElementFromHandlerMap)(handlerMap, element);
|
|
142
|
-
}
|
|
143
|
-
var _default = exports.default = {
|
|
144
|
-
add: addHoverHandler,
|
|
145
|
-
remove: removeHoverHandler
|
|
146
|
-
};
|
|
147
|
-
//# sourceMappingURL=hover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_motion","require","_utilities","handlerMap","WeakMap","createTimeEffectHandler","element","effect","options","globalOptions","animation","getAnimation","effectToAnimationOptions","undefined","reducedMotion","type","initialPlay","selectorCondition","event","matches","play","reverse","playState","progress","isCSS","onFinish","dataset","motionEnter","cancel","pause","createTransitionHandler","effectId","listContainer","listItemSelector","method","isToggle","shouldSetStateOnElement","interactElement","closest","item","method_","toggleEffect","addHoverHandler","source","target","handler","isStateTrigger","once","transition","transitionProperties","cleanup","removeEventListener","allowA11yTriggers","handlerObj","addHandlerToMap","tabIndex","addEventListener","contains","relatedTarget","passive","addLeave","removeHoverHandler","removeElementFromHandlerMap","_default","exports","default","add","remove"],"sources":["../../../src/handlers/hover.ts"],"sourcesContent":["import type { AnimationGroup } from '@wix/motion';\nimport { getAnimation } from '@wix/motion';\nimport type {\n TimeEffect,\n TransitionEffect,\n StateParams,\n HandlerObjectMap,\n IInteractElement,\n PointerTriggerParams,\n EffectBase,\n InteractionGlobalOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst handlerMap = new WeakMap() as HandlerObjectMap;\n\nfunction createTimeEffectHandler(\n element: HTMLElement,\n effect: TimeEffect & EffectBase,\n options: PointerTriggerParams,\n globalOptions: InteractionGlobalOptions,\n) {\n const animation = getAnimation(\n element,\n effectToAnimationOptions(effect),\n undefined,\n globalOptions?.reducedMotion,\n ) as AnimationGroup;\n const type = options.type || 'alternate';\n let initialPlay = true;\n const {selectorCondition} = globalOptions || {};\n return (event: MouseEvent | FocusEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n if (event.type === 'mouseenter' || event.type === 'focusin') {\n if (type === 'alternate') {\n if (initialPlay) {\n initialPlay = false;\n animation.play();\n } else {\n animation.reverse();\n }\n } else if (type === 'state') {\n if (animation.playState !== 'finished') {\n // 'idle' OR 'paused'\n animation.play();\n }\n } else {\n // type === 'repeat'\n // type === 'once'\n animation.progress(0);\n\n if (animation.isCSS) {\n animation.onFinish(() => {\n element.dataset.motionEnter = 'done';\n });\n }\n\n animation.play();\n }\n } else if (event.type === 'mouseleave' || event.type === 'focusout') {\n if (type === 'alternate') {\n animation.reverse();\n } else if (type === 'repeat') {\n animation.cancel();\n delete element.dataset.motionEnter;\n } else if (type === 'state') {\n if (animation.playState === 'running') {\n animation.pause();\n }\n }\n }\n };\n}\n\nfunction createTransitionHandler(\n element: HTMLElement,\n {\n effectId,\n listContainer,\n listItemSelector,\n }: TransitionEffect & EffectBase & { effectId: string },\n options: StateParams,\n selectorCondition?: string,\n) {\n const method = options.method || 'toggle';\n const isToggle = method === 'toggle';\n const shouldSetStateOnElement = !!listContainer;\n\n return (event: MouseEvent | FocusEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n const interactElement = element.closest(\n 'interact-element',\n ) as IInteractElement;\n if (!interactElement) {\n return;\n }\n\n let item;\n if (shouldSetStateOnElement) {\n item = element.closest(\n `${listContainer} > ${listItemSelector || ''}:has(:scope)`,\n ) as HTMLElement | null;\n }\n\n if (event.type === 'mouseenter' || event.type === 'focusin') {\n const method_ = isToggle ? 'add' : method;\n interactElement.toggleEffect(effectId, method_, item);\n } else if (\n (event.type === 'mouseleave' || event.type === 'focusout') &&\n isToggle\n ) {\n interactElement.toggleEffect(effectId, 'remove', item);\n }\n };\n}\n\nfunction addHoverHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: (TransitionEffect | TimeEffect) & EffectBase,\n options: StateParams | PointerTriggerParams = {},\n globalOptions: InteractionGlobalOptions,\n) {\n let handler: (event: MouseEvent | FocusEvent) => void;\n let isStateTrigger = false;\n let once = false;\n\n if (\n (effect as TransitionEffect).transition ||\n (effect as TransitionEffect).transitionProperties\n ) {\n handler = createTransitionHandler(\n target,\n effect as TransitionEffect & EffectBase & { effectId: string },\n options as StateParams,\n globalOptions?.selectorCondition,\n );\n isStateTrigger = true;\n } else {\n handler = createTimeEffectHandler(\n target,\n effect as TimeEffect & EffectBase,\n options as PointerTriggerParams,\n { reducedMotion: globalOptions?.reducedMotion, selectorCondition: globalOptions?.selectorCondition },\n );\n once = (options as PointerTriggerParams).type === 'once';\n }\n\n const cleanup = () => {\n source.removeEventListener('mouseenter', handler);\n source.removeEventListener('mouseleave', handler);\n if (globalOptions?.allowA11yTriggers) {\n source.removeEventListener('focusin', handler);\n source.removeEventListener('focusout', handler);\n }\n };\n\n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n if (globalOptions?.allowA11yTriggers) {\n source.tabIndex = 0;\n source.addEventListener(\n 'focusin',\n (event) => {\n if (!source.contains(event.relatedTarget as HTMLElement)) {\n handler(event);\n }\n },\n { once },\n );\n }\n\n source.addEventListener('mouseenter', handler, { passive: true, once });\n\n const addLeave = isStateTrigger\n ? ((options as StateParams).method || 'toggle') === 'toggle'\n : (options as PointerTriggerParams).type !== 'once';\n\n if (addLeave) {\n source.addEventListener('mouseleave', handler, { passive: true });\n\n if (globalOptions?.allowA11yTriggers) {\n source.addEventListener(\n 'focusout',\n (event) => {\n if (!source.contains(event.relatedTarget as HTMLElement)) {\n handler(event);\n }\n },\n { once },\n );\n }\n }\n}\n\nfunction removeHoverHandler(element: HTMLElement) {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nexport default {\n add: addHoverHandler,\n remove: removeHoverHandler,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
exports.__esModule = true;
|
|
5
|
-
exports.default = void 0;
|
|
6
|
-
var _viewEnter = _interopRequireDefault(require("./viewEnter"));
|
|
7
|
-
var _viewProgress = _interopRequireDefault(require("./viewProgress"));
|
|
8
|
-
var _hover = _interopRequireDefault(require("./hover"));
|
|
9
|
-
var _click = _interopRequireDefault(require("./click"));
|
|
10
|
-
var _pointerMove = _interopRequireDefault(require("./pointerMove"));
|
|
11
|
-
var _animationEnd = _interopRequireDefault(require("./animationEnd"));
|
|
12
|
-
function withA11y(handler) {
|
|
13
|
-
return {
|
|
14
|
-
add: (source, target, effect, options, globalOptions) => handler.add(source, target, effect, options, {
|
|
15
|
-
...globalOptions,
|
|
16
|
-
allowA11yTriggers: true
|
|
17
|
-
}),
|
|
18
|
-
remove: handler.remove
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
var _default = exports.default = {
|
|
22
|
-
viewEnter: _viewEnter.default,
|
|
23
|
-
hover: _hover.default,
|
|
24
|
-
click: _click.default,
|
|
25
|
-
pageVisible: _viewEnter.default,
|
|
26
|
-
animationEnd: _animationEnd.default,
|
|
27
|
-
viewProgress: _viewProgress.default,
|
|
28
|
-
pointerMove: _pointerMove.default,
|
|
29
|
-
activate: withA11y(_click.default),
|
|
30
|
-
interest: withA11y(_hover.default)
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_viewEnter","_interopRequireDefault","require","_viewProgress","_hover","_click","_pointerMove","_animationEnd","withA11y","handler","add","source","target","effect","options","globalOptions","allowA11yTriggers","remove","_default","exports","default","viewEnter","viewEnterHandler","hover","hoverHandler","click","clickHandler","pageVisible","animationEnd","animationEndHandler","viewProgress","viewProgressHandler","pointerMove","pointerMoveHandler","activate","interest"],"sources":["../../../src/handlers/index.ts"],"sourcesContent":["import type {\n TriggerHandlerMap,\n TriggerType,\n Effect,\n InteractionGlobalOptions,\n StateParams,\n PointerTriggerParams,\n} from '../types';\nimport viewEnterHandler from './viewEnter';\nimport viewProgressHandler from './viewProgress';\nimport hoverHandler from './hover';\nimport clickHandler from './click';\nimport pointerMoveHandler from './pointerMove';\nimport animationEndHandler from './animationEnd';\n\nfunction withA11y<T extends typeof clickHandler | typeof hoverHandler>(\n handler: T,\n): T {\n return {\n add: (\n source: HTMLElement,\n target: HTMLElement,\n effect: Effect,\n options: StateParams | PointerTriggerParams,\n globalOptions?: InteractionGlobalOptions,\n ) =>\n handler.add(source, target, effect, options, {\n ...globalOptions,\n allowA11yTriggers: true,\n }),\n remove: handler.remove,\n } as T;\n}\n\nexport default {\n viewEnter: viewEnterHandler,\n hover: hoverHandler,\n click: clickHandler,\n pageVisible: viewEnterHandler,\n animationEnd: animationEndHandler,\n viewProgress: viewProgressHandler,\n pointerMove: pointerMoveHandler,\n activate: withA11y(clickHandler),\n interest: withA11y(hoverHandler),\n} as TriggerHandlerMap<TriggerType>;\n"],"mappings":";;;;;AAQA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,YAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA,SAASM,QAAQA,CACfC,OAAU,EACP;EACH,OAAO;IACLC,GAAG,EAAEA,CACHC,MAAmB,EACnBC,MAAmB,EACnBC,MAAc,EACdC,OAA2C,EAC3CC,aAAwC,KAExCN,OAAO,CAACC,GAAG,CAACC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE;MAC3C,GAAGC,aAAa;MAChBC,iBAAiB,EAAE;IACrB,CAAC,CAAC;IACJC,MAAM,EAAER,OAAO,CAACQ;EAClB,CAAC;AACH;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACbC,SAAS,EAAEC,kBAAgB;EAC3BC,KAAK,EAAEC,cAAY;EACnBC,KAAK,EAAEC,cAAY;EACnBC,WAAW,EAAEL,kBAAgB;EAC7BM,YAAY,EAAEC,qBAAmB;EACjCC,YAAY,EAAEC,qBAAmB;EACjCC,WAAW,EAAEC,oBAAkB;EAC/BC,QAAQ,EAAE1B,QAAQ,CAACkB,cAAY,CAAC;EAChCS,QAAQ,EAAE3B,QAAQ,CAACgB,cAAY;AACjC,CAAC","ignoreList":[]}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _motion = require("@wix/motion");
|
|
6
|
-
var _kuliso = require("kuliso");
|
|
7
|
-
var _utilities = require("./utilities");
|
|
8
|
-
const pointerManagerMap = new WeakMap();
|
|
9
|
-
let pointerOptionsGetter = () => ({});
|
|
10
|
-
function registerOptionsGetter(getter) {
|
|
11
|
-
pointerOptionsGetter = getter;
|
|
12
|
-
}
|
|
13
|
-
function addPointerMoveHandler(source, target, effect, options = {}, globalOptions) {
|
|
14
|
-
if (globalOptions != null && globalOptions.reducedMotion) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const triggerParams = {
|
|
18
|
-
trigger: 'pointer-move',
|
|
19
|
-
element: source
|
|
20
|
-
};
|
|
21
|
-
const scene = (0, _motion.getScrubScene)(target, (0, _utilities.effectToAnimationOptions)(effect), triggerParams);
|
|
22
|
-
if (scene) {
|
|
23
|
-
const pointer = new _kuliso.Pointer({
|
|
24
|
-
root: options.hitArea === 'self' ? source : undefined,
|
|
25
|
-
scenes: Array.isArray(scene) ? scene : [scene],
|
|
26
|
-
...pointerOptionsGetter()
|
|
27
|
-
});
|
|
28
|
-
const cleanup = () => {
|
|
29
|
-
pointer.destroy();
|
|
30
|
-
};
|
|
31
|
-
const handlerObj = {
|
|
32
|
-
source,
|
|
33
|
-
target,
|
|
34
|
-
cleanup
|
|
35
|
-
};
|
|
36
|
-
(0, _utilities.addHandlerToMap)(pointerManagerMap, source, handlerObj);
|
|
37
|
-
(0, _utilities.addHandlerToMap)(pointerManagerMap, target, handlerObj);
|
|
38
|
-
pointer.start();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function removePointerMoveHandler(element) {
|
|
42
|
-
(0, _utilities.removeElementFromHandlerMap)(pointerManagerMap, element);
|
|
43
|
-
}
|
|
44
|
-
var _default = exports.default = {
|
|
45
|
-
add: addPointerMoveHandler,
|
|
46
|
-
remove: removePointerMoveHandler,
|
|
47
|
-
registerOptionsGetter
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=pointerMove.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_motion","require","_kuliso","_utilities","pointerManagerMap","WeakMap","pointerOptionsGetter","registerOptionsGetter","getter","addPointerMoveHandler","source","target","effect","options","globalOptions","reducedMotion","triggerParams","trigger","element","scene","getScrubScene","effectToAnimationOptions","pointer","Pointer","root","hitArea","undefined","scenes","Array","isArray","cleanup","destroy","handlerObj","addHandlerToMap","start","removePointerMoveHandler","removeElementFromHandlerMap","_default","exports","default","add","remove"],"sources":["../../../src/handlers/pointerMove.ts"],"sourcesContent":["import { getScrubScene } from '@wix/motion';\nimport { Pointer, PointerConfig } from 'kuliso';\nimport type {\n PointerMoveParams,\n ScrubEffect,\n HandlerObjectMap,\n InteractionGlobalOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst pointerManagerMap = new WeakMap() as HandlerObjectMap;\nlet pointerOptionsGetter: () => Partial<PointerConfig> = () => ({});\n\nfunction registerOptionsGetter(getter: () => Partial<PointerConfig>) {\n pointerOptionsGetter = getter;\n}\n\nfunction addPointerMoveHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: ScrubEffect,\n options: PointerMoveParams = {},\n globalOptions: InteractionGlobalOptions,\n) {\n if (globalOptions?.reducedMotion) {\n return;\n }\n\n const triggerParams = {\n trigger: 'pointer-move' as const,\n element: source,\n };\n\n const scene = getScrubScene(\n target,\n effectToAnimationOptions(effect),\n triggerParams,\n );\n\n if (scene) {\n const pointer = new Pointer({\n root: options.hitArea === 'self' ? source : undefined,\n scenes: Array.isArray(scene) ? scene : [scene],\n ...pointerOptionsGetter(),\n });\n const cleanup = () => {\n pointer.destroy();\n };\n\n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(pointerManagerMap, source, handlerObj);\n addHandlerToMap(pointerManagerMap, target, handlerObj);\n\n pointer.start();\n }\n}\n\nfunction removePointerMoveHandler(element: HTMLElement) {\n removeElementFromHandlerMap(pointerManagerMap, element);\n}\n\nexport default {\n add: addPointerMoveHandler,\n remove: removePointerMoveHandler,\n registerOptionsGetter,\n};\n"],"mappings":";;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAOA,IAAAE,UAAA,GAAAF,OAAA;AAMA,MAAMG,iBAAiB,GAAG,IAAIC,OAAO,CAAC,CAAqB;AAC3D,IAAIC,oBAAkD,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAEnE,SAASC,qBAAqBA,CAACC,MAAoC,EAAE;EACnEF,oBAAoB,GAAGE,MAAM;AAC/B;AAEA,SAASC,qBAAqBA,CAC5BC,MAAmB,EACnBC,MAAmB,EACnBC,MAAmB,EACnBC,OAA0B,GAAG,CAAC,CAAC,EAC/BC,aAAuC,EACvC;EACA,IAAIA,aAAa,YAAbA,aAAa,CAAEC,aAAa,EAAE;IAChC;EACF;EAEA,MAAMC,aAAa,GAAG;IACpBC,OAAO,EAAE,cAAuB;IAChCC,OAAO,EAAER;EACX,CAAC;EAED,MAAMS,KAAK,GAAG,IAAAC,qBAAa,EACzBT,MAAM,EACN,IAAAU,mCAAwB,EAACT,MAAM,CAAC,EAChCI,aACF,CAAC;EAED,IAAIG,KAAK,EAAE;IACT,MAAMG,OAAO,GAAG,IAAIC,eAAO,CAAC;MAC1BC,IAAI,EAAEX,OAAO,CAACY,OAAO,KAAK,MAAM,GAAGf,MAAM,GAAGgB,SAAS;MACrDC,MAAM,EAAEC,KAAK,CAACC,OAAO,CAACV,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;MAC9C,GAAGb,oBAAoB,CAAC;IAC1B,CAAC,CAAC;IACF,MAAMwB,OAAO,GAAGA,CAAA,KAAM;MACpBR,OAAO,CAACS,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,MAAMC,UAAU,GAAG;MAAEtB,MAAM;MAAEC,MAAM;MAAEmB;IAAQ,CAAC;IAE9C,IAAAG,0BAAe,EAAC7B,iBAAiB,EAAEM,MAAM,EAAEsB,UAAU,CAAC;IACtD,IAAAC,0BAAe,EAAC7B,iBAAiB,EAAEO,MAAM,EAAEqB,UAAU,CAAC;IAEtDV,OAAO,CAACY,KAAK,CAAC,CAAC;EACjB;AACF;AAEA,SAASC,wBAAwBA,CAACjB,OAAoB,EAAE;EACtD,IAAAkB,sCAA2B,EAAChC,iBAAiB,EAAEc,OAAO,CAAC;AACzD;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc;EACbC,GAAG,EAAE/B,qBAAqB;EAC1BgC,MAAM,EAAEN,wBAAwB;EAChC5B;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.addHandlerToMap = addHandlerToMap;
|
|
5
|
-
exports.effectToAnimationOptions = effectToAnimationOptions;
|
|
6
|
-
exports.removeElementFromHandlerMap = removeElementFromHandlerMap;
|
|
7
|
-
function effectToAnimationOptions(effect) {
|
|
8
|
-
if (effect.duration) {
|
|
9
|
-
return {
|
|
10
|
-
id: '',
|
|
11
|
-
...effect
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
const {
|
|
15
|
-
rangeStart,
|
|
16
|
-
rangeEnd,
|
|
17
|
-
...rest
|
|
18
|
-
} = effect;
|
|
19
|
-
return {
|
|
20
|
-
id: '',
|
|
21
|
-
startOffset: rangeStart,
|
|
22
|
-
endOffset: rangeEnd,
|
|
23
|
-
...rest
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function addHandlerToMap(handlersMap, element, handlerObj) {
|
|
27
|
-
let handlers = handlersMap.get(element);
|
|
28
|
-
if (!handlers) {
|
|
29
|
-
handlers = new Set();
|
|
30
|
-
handlersMap.set(element, handlers);
|
|
31
|
-
}
|
|
32
|
-
handlers.add(handlerObj);
|
|
33
|
-
}
|
|
34
|
-
function removeElementFromHandlerMap(handlerMap, element) {
|
|
35
|
-
const handlers = handlerMap.get(element);
|
|
36
|
-
handlers == null || handlers.forEach(handlerObj => {
|
|
37
|
-
const {
|
|
38
|
-
source,
|
|
39
|
-
target,
|
|
40
|
-
cleanup
|
|
41
|
-
} = handlerObj;
|
|
42
|
-
cleanup();
|
|
43
|
-
const otherKey = source === element ? target : source;
|
|
44
|
-
const otherHandlers = handlerMap.get(otherKey);
|
|
45
|
-
otherHandlers == null || otherHandlers.delete(handlerObj);
|
|
46
|
-
});
|
|
47
|
-
handlerMap.delete(element);
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=utilities.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["effectToAnimationOptions","effect","duration","id","rangeStart","rangeEnd","rest","startOffset","endOffset","addHandlerToMap","handlersMap","element","handlerObj","handlers","get","Set","set","add","removeElementFromHandlerMap","handlerMap","forEach","source","target","cleanup","otherKey","otherHandlers","delete"],"sources":["../../../src/handlers/utilities.ts"],"sourcesContent":["import type {\n TimeEffect,\n ScrubEffect,\n HandlerObject,\n HandlerObjectMap,\n AnimationOptions,\n} from '../types';\n\nexport function effectToAnimationOptions(effect: TimeEffect | ScrubEffect) {\n if ((effect as TimeEffect).duration) {\n return {\n id: '',\n ...effect,\n } as AnimationOptions<'time'>;\n }\n\n const { rangeStart, rangeEnd, ...rest } = effect as ScrubEffect;\n return {\n id: '',\n startOffset: rangeStart,\n endOffset: rangeEnd,\n ...rest,\n } as AnimationOptions<'scrub'>;\n}\n\nexport function addHandlerToMap(\n handlersMap: HandlerObjectMap,\n element: HTMLElement,\n handlerObj: HandlerObject,\n) {\n let handlers = handlersMap.get(element);\n\n if (!handlers) {\n handlers = new Set();\n handlersMap.set(element, handlers);\n }\n\n handlers.add(handlerObj);\n}\n\nexport function removeElementFromHandlerMap(\n handlerMap: HandlerObjectMap,\n element: HTMLElement,\n) {\n const handlers = handlerMap.get(element);\n\n handlers?.forEach((handlerObj) => {\n const { source, target, cleanup } = handlerObj;\n cleanup();\n\n const otherKey = source === element ? target : source;\n const otherHandlers = handlerMap.get(otherKey);\n otherHandlers?.delete(handlerObj);\n });\n\n handlerMap.delete(element);\n}\n"],"mappings":";;;;;;AAQO,SAASA,wBAAwBA,CAACC,MAAgC,EAAE;EACzE,IAAKA,MAAM,CAAgBC,QAAQ,EAAE;IACnC,OAAO;MACLC,EAAE,EAAE,EAAE;MACN,GAAGF;IACL,CAAC;EACH;EAEA,MAAM;IAAEG,UAAU;IAAEC,QAAQ;IAAE,GAAGC;EAAK,CAAC,GAAGL,MAAqB;EAC/D,OAAO;IACLE,EAAE,EAAE,EAAE;IACNI,WAAW,EAAEH,UAAU;IACvBI,SAAS,EAAEH,QAAQ;IACnB,GAAGC;EACL,CAAC;AACH;AAEO,SAASG,eAAeA,CAC7BC,WAA6B,EAC7BC,OAAoB,EACpBC,UAAyB,EACzB;EACA,IAAIC,QAAQ,GAAGH,WAAW,CAACI,GAAG,CAACH,OAAO,CAAC;EAEvC,IAAI,CAACE,QAAQ,EAAE;IACbA,QAAQ,GAAG,IAAIE,GAAG,CAAC,CAAC;IACpBL,WAAW,CAACM,GAAG,CAACL,OAAO,EAAEE,QAAQ,CAAC;EACpC;EAEAA,QAAQ,CAACI,GAAG,CAACL,UAAU,CAAC;AAC1B;AAEO,SAASM,2BAA2BA,CACzCC,UAA4B,EAC5BR,OAAoB,EACpB;EACA,MAAME,QAAQ,GAAGM,UAAU,CAACL,GAAG,CAACH,OAAO,CAAC;EAExCE,QAAQ,YAARA,QAAQ,CAAEO,OAAO,CAAER,UAAU,IAAK;IAChC,MAAM;MAAES,MAAM;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAGX,UAAU;IAC9CW,OAAO,CAAC,CAAC;IAET,MAAMC,QAAQ,GAAGH,MAAM,KAAKV,OAAO,GAAGW,MAAM,GAAGD,MAAM;IACrD,MAAMI,aAAa,GAAGN,UAAU,CAACL,GAAG,CAACU,QAAQ,CAAC;IAC9CC,aAAa,YAAbA,aAAa,CAAEC,MAAM,CAACd,UAAU,CAAC;EACnC,CAAC,CAAC;EAEFO,UAAU,CAACO,MAAM,CAACf,OAAO,CAAC;AAC5B","ignoreList":[]}
|