@tamagui/react-native-use-responder-events 2.7.7 → 3.0.0-beta.643.1

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.
Files changed (61) hide show
  1. package/dist/cjs/ResponderSystem.cjs +307 -344
  2. package/dist/cjs/ResponderSystem.native.cjs +357 -0
  3. package/dist/cjs/ResponderSystem.native.js +307 -343
  4. package/dist/cjs/ResponderSystem.native.js.map +1 -1
  5. package/dist/cjs/ResponderTouchHistoryStore.cjs +136 -149
  6. package/dist/cjs/ResponderTouchHistoryStore.native.cjs +217 -0
  7. package/dist/cjs/ResponderTouchHistoryStore.native.js +176 -189
  8. package/dist/cjs/ResponderTouchHistoryStore.native.js.map +1 -1
  9. package/dist/cjs/createResponderEvent.cjs +128 -132
  10. package/dist/cjs/createResponderEvent.native.cjs +147 -0
  11. package/dist/cjs/createResponderEvent.native.js +129 -132
  12. package/dist/cjs/createResponderEvent.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +10 -11
  14. package/dist/cjs/index.native.cjs +21 -0
  15. package/dist/cjs/index.native.js +10 -10
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/cjs/types.cjs +40 -41
  18. package/dist/cjs/types.native.cjs +79 -0
  19. package/dist/cjs/types.native.js +40 -40
  20. package/dist/cjs/types.native.js.map +1 -1
  21. package/dist/cjs/useResponderEvents.cjs +60 -85
  22. package/dist/cjs/useResponderEvents.native.cjs +87 -0
  23. package/dist/cjs/useResponderEvents.native.js +62 -86
  24. package/dist/cjs/useResponderEvents.native.js.map +1 -1
  25. package/dist/cjs/utils.cjs +123 -135
  26. package/dist/cjs/utils.native.cjs +160 -0
  27. package/dist/cjs/utils.native.js +124 -135
  28. package/dist/cjs/utils.native.js.map +1 -1
  29. package/dist/esm/ResponderSystem.mjs +291 -326
  30. package/dist/esm/ResponderSystem.mjs.map +1 -1
  31. package/dist/esm/ResponderSystem.native.js +291 -326
  32. package/dist/esm/ResponderSystem.native.js.map +1 -1
  33. package/dist/esm/ResponderTouchHistoryStore.mjs +123 -131
  34. package/dist/esm/ResponderTouchHistoryStore.mjs.map +1 -1
  35. package/dist/esm/ResponderTouchHistoryStore.native.js +163 -172
  36. package/dist/esm/ResponderTouchHistoryStore.native.js.map +1 -1
  37. package/dist/esm/createResponderEvent.mjs +115 -114
  38. package/dist/esm/createResponderEvent.mjs.map +1 -1
  39. package/dist/esm/createResponderEvent.native.js +116 -115
  40. package/dist/esm/createResponderEvent.native.js.map +1 -1
  41. package/dist/esm/index.js +1 -2
  42. package/dist/esm/index.mjs +1 -2
  43. package/dist/esm/index.native.js +1 -2
  44. package/dist/esm/types.mjs +7 -6
  45. package/dist/esm/types.mjs.map +1 -1
  46. package/dist/esm/types.native.js +7 -6
  47. package/dist/esm/types.native.js.map +1 -1
  48. package/dist/esm/useResponderEvents.mjs +45 -61
  49. package/dist/esm/useResponderEvents.mjs.map +1 -1
  50. package/dist/esm/useResponderEvents.native.js +47 -63
  51. package/dist/esm/useResponderEvents.native.js.map +1 -1
  52. package/dist/esm/utils.mjs +101 -111
  53. package/dist/esm/utils.mjs.map +1 -1
  54. package/dist/esm/utils.native.js +102 -112
  55. package/dist/esm/utils.native.js.map +1 -1
  56. package/package.json +2 -2
  57. package/types/ResponderTouchHistoryStore.d.ts.map +1 -1
  58. package/types/utils.d.ts.map +1 -1
  59. package/dist/esm/index.js.map +0 -1
  60. package/dist/esm/index.mjs.map +0 -1
  61. package/dist/esm/index.native.js.map +0 -1
@@ -1,72 +1,56 @@
1
1
  import * as React from "react";
2
2
  import * as ResponderSystem from "./ResponderSystem.native.js";
3
- export * from "./utils.native.js";
3
+
4
+ export * from "./utils.native.js"
5
+
4
6
  var emptyObject = {};
5
- var Attached = /* @__PURE__ */new WeakMap();
6
- var Ids = /* @__PURE__ */new WeakMap();
7
+ var Attached = /* @__PURE__ */ new WeakMap();
8
+ var Ids = /* @__PURE__ */ new WeakMap();
7
9
  function useResponderEvents(hostRef) {
8
- var configIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : emptyObject;
9
- var _hostRef_current;
10
- var config = getResponderConfigIfDefined(configIn);
11
- var node = (hostRef === null || hostRef === void 0 ? void 0 : (_hostRef_current = hostRef.current) === null || _hostRef_current === void 0 ? void 0 : _hostRef_current.host) || (hostRef === null || hostRef === void 0 ? void 0 : hostRef.current);
12
- React.useEffect(function () {
13
- if (config === emptyObject) return;
14
- ResponderSystem.attachListeners();
15
- if (!Ids.has(hostRef)) {
16
- Ids.set(hostRef, `${Math.random()}`);
17
- }
18
- var id = Ids.get(hostRef);
19
- ResponderSystem.addNode(id, node, config);
20
- Attached.set(hostRef, true);
21
- return function () {
22
- ResponderSystem.removeNode(node);
23
- Attached.set(hostRef, false);
24
- };
25
- }, [config, hostRef]);
26
- if (process.env.NODE_ENV === "development") {
27
- React.useDebugValue({
28
- isResponder: node === ResponderSystem.getResponderNode()
29
- });
30
- React.useDebugValue(config);
31
- }
10
+ var configIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : emptyObject;
11
+ var _hostRef_current;
12
+ var config = getResponderConfigIfDefined(configIn);
13
+ var node = (hostRef === null || hostRef === void 0 ? void 0 : (_hostRef_current = hostRef.current) === null || _hostRef_current === void 0 ? void 0 : _hostRef_current.host) || (hostRef === null || hostRef === void 0 ? void 0 : hostRef.current);
14
+ React.useEffect(function() {
15
+ if (config === emptyObject) return;
16
+ ResponderSystem.attachListeners();
17
+ if (!Ids.has(hostRef)) {
18
+ Ids.set(hostRef, `${Math.random()}`);
19
+ }
20
+ var id = Ids.get(hostRef);
21
+ ResponderSystem.addNode(id, node, config);
22
+ Attached.set(hostRef, true);
23
+ return function() {
24
+ ResponderSystem.removeNode(node);
25
+ Attached.set(hostRef, false);
26
+ };
27
+ }, [config, hostRef]);
28
+ if (process.env.NODE_ENV === "development") {
29
+ React.useDebugValue({ isResponder: node === ResponderSystem.getResponderNode() });
30
+ React.useDebugValue(config);
31
+ }
32
32
  }
33
33
  function getResponderConfigIfDefined(param) {
34
- var {
35
- onMoveShouldSetResponder,
36
- onMoveShouldSetResponderCapture,
37
- onResponderEnd,
38
- onResponderGrant,
39
- onResponderMove,
40
- onResponderReject,
41
- onResponderRelease,
42
- onResponderStart,
43
- onResponderTerminate,
44
- onResponderTerminationRequest,
45
- onScrollShouldSetResponder,
46
- onScrollShouldSetResponderCapture,
47
- onSelectionChangeShouldSetResponder,
48
- onSelectionChangeShouldSetResponderCapture,
49
- onStartShouldSetResponder,
50
- onStartShouldSetResponderCapture
51
- } = param;
52
- return onMoveShouldSetResponder || onMoveShouldSetResponderCapture || onResponderEnd || onResponderGrant || onResponderMove || onResponderReject || onResponderRelease || onResponderStart || onResponderTerminate || onResponderTerminationRequest || onScrollShouldSetResponder || onScrollShouldSetResponderCapture || onSelectionChangeShouldSetResponder || onSelectionChangeShouldSetResponderCapture || onStartShouldSetResponder || onStartShouldSetResponderCapture ? {
53
- onMoveShouldSetResponder,
54
- onMoveShouldSetResponderCapture,
55
- onResponderEnd,
56
- onResponderGrant,
57
- onResponderMove,
58
- onResponderReject,
59
- onResponderRelease,
60
- onResponderStart,
61
- onResponderTerminate,
62
- onResponderTerminationRequest,
63
- onScrollShouldSetResponder,
64
- onScrollShouldSetResponderCapture,
65
- onSelectionChangeShouldSetResponder,
66
- onSelectionChangeShouldSetResponderCapture,
67
- onStartShouldSetResponder,
68
- onStartShouldSetResponderCapture
69
- } : emptyObject;
34
+ var { onMoveShouldSetResponder, onMoveShouldSetResponderCapture, onResponderEnd, onResponderGrant, onResponderMove, onResponderReject, onResponderRelease, onResponderStart, onResponderTerminate, onResponderTerminationRequest, onScrollShouldSetResponder, onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder, onStartShouldSetResponderCapture } = param;
35
+ return onMoveShouldSetResponder || onMoveShouldSetResponderCapture || onResponderEnd || onResponderGrant || onResponderMove || onResponderReject || onResponderRelease || onResponderStart || onResponderTerminate || onResponderTerminationRequest || onScrollShouldSetResponder || onScrollShouldSetResponderCapture || onSelectionChangeShouldSetResponder || onSelectionChangeShouldSetResponderCapture || onStartShouldSetResponder || onStartShouldSetResponderCapture ? {
36
+ onMoveShouldSetResponder,
37
+ onMoveShouldSetResponderCapture,
38
+ onResponderEnd,
39
+ onResponderGrant,
40
+ onResponderMove,
41
+ onResponderReject,
42
+ onResponderRelease,
43
+ onResponderStart,
44
+ onResponderTerminate,
45
+ onResponderTerminationRequest,
46
+ onScrollShouldSetResponder,
47
+ onScrollShouldSetResponderCapture,
48
+ onSelectionChangeShouldSetResponder,
49
+ onSelectionChangeShouldSetResponderCapture,
50
+ onStartShouldSetResponder,
51
+ onStartShouldSetResponderCapture
52
+ } : emptyObject;
70
53
  }
54
+
71
55
  export { getResponderConfigIfDefined, useResponderEvents };
72
56
  //# sourceMappingURL=useResponderEvents.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","ResponderSystem","emptyObject","Attached","WeakMap","Ids","useResponderEvents","hostRef","configIn","arguments","length","_hostRef_current","config","getResponderConfigIfDefined","node","current","host","useEffect","attachListeners","has","set","Math","random","id","get","addNode","removeNode","process","env","NODE_ENV","useDebugValue","isResponder","getResponderNode","param","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture"],"sources":["../../src/useResponderEvents.ts"],"sourcesContent":[null],"mappings":"AAMA,YAAYA,KAAA,MAAW;AAEvB,YAAYC,eAAA,MAAqB;AAEjC,cAAc;AAEd,IAAAC,WAAM,KAAc;AAEpB,IAAAC,QAAM,kBAAW,IAAAC,OAAI;AACrB,IAAAC,GAAM,kBAAM,IAAAD,OAAI;AAET,SAASE,mBACdC,OAAA,EACA;EAEA,IAAAC,QAAM,GAASC,SAAA,CAAAC,MAAA,QAAAD,SAA4B,GAAQ,cAAAA,SAAA,MAAAP,WAAA;EAEnD,IAAAS,gBAAa;EAGb,IAAAC,MAAM,GAAAC,2BAAgB,CAAAL,QAAA;EACpB,IAAAM,IAAI,IAAAP,OAAW,aAAaA,OAAA,wBAAAI,gBAAA,GAAAJ,OAAA,CAAAQ,OAAA,cAAAJ,gBAAA,uBAAAA,gBAAA,CAAAK,IAAA,MAAAT,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAQ,OAAA;EAE5Bf,KAAA,CAAAiB,SAAA,aAAgB;IAEhB,IAAIL,MAAK,KAAIV,WAAU;IACrBD,eAAQ,CAAAiB,eAAiB;IAC3B,KAAAb,GAAA,CAAAc,GAAA,CAAAZ,OAAA;MACAF,GAAA,CAAMe,GAAA,CAAAb,OAAS,EAAI,GAAAc,IAAO,CAAAC,MAAA;IAE1B;IACA,IAAAC,EAAA,GAASlB,GAAA,CAAImB,GAAA,CAAAjB,OAAS;IAEtBN,eAAa,CAAAwB,OAAA,CAAAF,EAAA,EAAAT,IAAA,EAAAF,MAAA;IACXT,QAAA,CAAAiB,GAAA,CAAAb,OAAgB;IAChB,mBAAa;MACfN,eAAA,CAAAyB,UAAA,CAAAZ,IAAA;MACEX,QAAQ,CAAAiB,GAAA,CAAAb,OAAQ;IAEpB;EACE,IAAoBK,MAClB,EACFL,OAAC,CACD;EACF,IAAAoB,OAAA,CAAAC,GAAA,CAAAC,QAAA;IACF7B,KAAA,CAAA8B,aAAA;MAEOC,WAAS,EAAAjB,IAAA,KAAAb,eAA4B,CAAA+B,gBAAA;IAC1C;IACAhC,KAAA,CAAA8B,aAAA,CAAAlB,MAAA;EACA;AAAA;AACA,SACAC,4BAAAoB,KAAA;EACA;IAAAC,wBAAA;IAAAC,+BAAA;IAAAC,cAAA;IAAAC,gBAAA;IAAAC,eAAA;IAAAC,iBAAA;IAAAC,kBAAA;IAAAC,gBAAA;IAAAC,oBAAA;IAAAC,6BAAA;IAAAC,0BAAA;IAAAC,iCAAA;IAAAC,mCAAA;IAAAC,0CAAA;IAAAC,yBAAA;IAAAC;EAAA,IAAAhB,KAAA;EACA,OAAAC,wBAAA,IAAAC,+BAAA,IAAAC,cAAA,IAAAC,gBAAA,IAAAC,eAAA,IAAAC,iBAAA,IAAAC,kBAAA,IAAAC,gBAAA,IAAAC,oBAAA,IAAAC,6BAAA,IAAAC,0BAAA,IAAAC,iCAAA,IAAAC,mCAAA,IAAAC,0CAAA,IAAAC,yBAAA,IAAAC,gCAAA;IACAf,wBAAA;IACAC,+BAAA;IACAC,cAAA;IACAC,gBAAA;IACAC,eAAA;IACAC,iBAAA;IACAC,kBAAA;IACAC,gBAAA;IACAC,oBAAA;IACmEC,6BAAA;IACnEC,0BAAO;IAiBDC,iCAAA;IACAC,mCAAA;IACAC,0CAAA;IACAC,yBAAA;IACAC;EAAA,IACA/C,WAAA;AAAA;AACA,SACAW,2BACA,EAAAP,kBACA","ignoreList":[]}
1
+ {"version":3,"file":"useResponderEvents.native.js","names":[],"sources":["esm/useResponderEvents.native.js"],"sourcesContent":["import * as React from \"react\";\nimport * as ResponderSystem from \"./ResponderSystem\";\nexport * from \"./utils\";\nvar emptyObject = {};\nvar Attached = /* @__PURE__ */ new WeakMap();\nvar Ids = /* @__PURE__ */ new WeakMap();\nfunction useResponderEvents(hostRef) {\n var configIn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : emptyObject;\n var _hostRef_current;\n var config = getResponderConfigIfDefined(configIn);\n var node = (hostRef === null || hostRef === void 0 ? void 0 : (_hostRef_current = hostRef.current) === null || _hostRef_current === void 0 ? void 0 : _hostRef_current.host) || (hostRef === null || hostRef === void 0 ? void 0 : hostRef.current);\n React.useEffect(function() {\n if (config === emptyObject) return;\n ResponderSystem.attachListeners();\n if (!Ids.has(hostRef)) {\n Ids.set(hostRef, `${Math.random()}`);\n }\n var id = Ids.get(hostRef);\n ResponderSystem.addNode(id, node, config);\n Attached.set(hostRef, true);\n return function() {\n ResponderSystem.removeNode(node);\n Attached.set(hostRef, false);\n };\n }, [\n config,\n hostRef\n ]);\n if (process.env.NODE_ENV === \"development\") {\n React.useDebugValue({\n isResponder: node === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n }\n}\nfunction getResponderConfigIfDefined(param) {\n var { onMoveShouldSetResponder, onMoveShouldSetResponderCapture, onResponderEnd, onResponderGrant, onResponderMove, onResponderReject, onResponderRelease, onResponderStart, onResponderTerminate, onResponderTerminationRequest, onScrollShouldSetResponder, onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder, onStartShouldSetResponderCapture } = param;\n return onMoveShouldSetResponder || onMoveShouldSetResponderCapture || onResponderEnd || onResponderGrant || onResponderMove || onResponderReject || onResponderRelease || onResponderStart || onResponderTerminate || onResponderTerminationRequest || onScrollShouldSetResponder || onScrollShouldSetResponderCapture || onSelectionChangeShouldSetResponder || onSelectionChangeShouldSetResponderCapture || onStartShouldSetResponder || onStartShouldSetResponderCapture ? {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n } : emptyObject;\n}\nexport {\n getResponderConfigIfDefined,\n useResponderEvents\n};\n//# sourceMappingURL=useResponderEvents.js.map\n"],"mappings":";;;;;;AAGA,IAAI,cAAc,CAAC;AACnB,IAAI,2BAA2B,IAAI,QAAQ;AAC3C,IAAI,sBAAsB,IAAI,QAAQ;AACtC,SAAS,mBAAmB,SAAS;CACnC,IAAI,WAAW,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;CAChF,IAAI;CACJ,IAAI,SAAS,4BAA4B,QAAQ;CACjD,IAAI,QAAQ,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,KAAK,mBAAmB,QAAQ,aAAa,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB,UAAU,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ;CAC3O,MAAM,UAAU,WAAW;EACzB,IAAI,WAAW,aAAa;EAC5B,gBAAgB,gBAAgB;EAChC,IAAI,CAAC,IAAI,IAAI,OAAO,GAAG;GACrB,IAAI,IAAI,SAAS,GAAG,KAAK,OAAO,GAAG;EACrC;EACA,IAAI,KAAK,IAAI,IAAI,OAAO;EACxB,gBAAgB,QAAQ,IAAI,MAAM,MAAM;EACxC,SAAS,IAAI,SAAS,IAAI;EAC1B,OAAO,WAAW;GAChB,gBAAgB,WAAW,IAAI;GAC/B,SAAS,IAAI,SAAS,KAAK;EAC7B;CACF,GAAG,CACD,QACA,OACF,CAAC;CACD,IAAI,QAAQ,IAAI,aAAa,eAAe;EAC1C,MAAM,cAAc,EAClB,aAAa,SAAS,gBAAgB,iBAAiB,EACzD,CAAC;EACD,MAAM,cAAc,MAAM;CAC5B;AACF;AACA,SAAS,4BAA4B,OAAO;CAC1C,IAAI,EAAE,0BAA0B,iCAAiC,gBAAgB,kBAAkB,iBAAiB,mBAAmB,oBAAoB,kBAAkB,sBAAsB,+BAA+B,4BAA4B,mCAAmC,qCAAqC,4CAA4C,2BAA2B,qCAAqC;CAClb,OAAO,4BAA4B,mCAAmC,kBAAkB,oBAAoB,mBAAmB,qBAAqB,sBAAsB,oBAAoB,wBAAwB,iCAAiC,8BAA8B,qCAAqC,uCAAuC,8CAA8C,6BAA6B,mCAAmC;EAC7c;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IAAI;AACN"}
@@ -1,136 +1,126 @@
1
1
  const keyName = "__reactResponderId";
2
2
  const canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
3
- const getBoundingClientRect = node => {
4
- if (!node) return;
5
- if (node.nodeType !== 1) return;
6
- if (node.getBoundingClientRect) {
7
- return node.getBoundingClientRect();
8
- }
3
+ const getBoundingClientRect = (node) => {
4
+ if (!node) return;
5
+ if (node.nodeType !== 1) return;
6
+ if (node.getBoundingClientRect) {
7
+ return node.getBoundingClientRect();
8
+ }
9
9
  };
10
10
  function getEventPath(domEvent) {
11
- if (domEvent.type === "selectionchange") {
12
- const target = window.getSelection()?.anchorNode;
13
- return composedPathFallback(target);
14
- }
15
- const path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);
16
- return path;
11
+ if (domEvent.type === "selectionchange") {
12
+ const target = window.getSelection()?.anchorNode;
13
+ return composedPathFallback(target);
14
+ }
15
+ const path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);
16
+ return path;
17
17
  }
18
18
  function composedPathFallback(target) {
19
- const path = [];
20
- while (target != null && target !== document.body) {
21
- path.push(target);
22
- target = target.parentNode;
23
- }
24
- return path;
19
+ const path = [];
20
+ while (target != null && target !== document.body) {
21
+ path.push(target);
22
+ target = target.parentNode;
23
+ }
24
+ return path;
25
25
  }
26
26
  function getResponderId(node) {
27
- if (node != null) {
28
- return node[keyName];
29
- }
30
- return null;
27
+ if (node != null) {
28
+ return node[keyName];
29
+ }
30
+ return null;
31
31
  }
32
32
  function setResponderId(node, id) {
33
- if (node != null) {
34
- node[keyName] = id;
35
- }
33
+ if (node != null) {
34
+ node[keyName] = id;
35
+ }
36
36
  }
37
37
  function getResponderPaths(domEvent) {
38
- const idPath = [];
39
- const nodePath = [];
40
- const eventPath = getEventPath(domEvent);
41
- for (let i = 0; i < eventPath.length; i++) {
42
- const node = eventPath[i];
43
- const id = getResponderId(node);
44
- if (id != null) {
45
- idPath.push(id);
46
- nodePath.push(node);
47
- }
48
- }
49
- return {
50
- idPath,
51
- nodePath
52
- };
38
+ const idPath = [];
39
+ const nodePath = [];
40
+ const eventPath = getEventPath(domEvent);
41
+ for (let i = 0; i < eventPath.length; i++) {
42
+ const node = eventPath[i];
43
+ const id = getResponderId(node);
44
+ if (id != null) {
45
+ idPath.push(id);
46
+ nodePath.push(node);
47
+ }
48
+ }
49
+ return {
50
+ idPath,
51
+ nodePath
52
+ };
53
53
  }
54
54
  function getLowestCommonAncestor(pathA, pathB) {
55
- let pathALength = pathA.length;
56
- let pathBLength = pathB.length;
57
- if (
58
- // If either path is empty
59
- pathALength === 0 || pathBLength === 0 ||
60
- // If the last elements aren't the same there can't be a common ancestor
61
- // that is connected to the responder system
62
- pathA[pathALength - 1] !== pathB[pathBLength - 1]) {
63
- return null;
64
- }
65
- let itemA = pathA[0];
66
- let indexA = 0;
67
- let itemB = pathB[0];
68
- let indexB = 0;
69
- if (pathALength - pathBLength > 0) {
70
- indexA = pathALength - pathBLength;
71
- itemA = pathA[indexA];
72
- pathALength = pathBLength;
73
- }
74
- if (pathBLength - pathALength > 0) {
75
- indexB = pathBLength - pathALength;
76
- itemB = pathB[indexB];
77
- pathBLength = pathALength;
78
- }
79
- let depth = pathALength;
80
- while (depth--) {
81
- if (itemA === itemB) {
82
- return itemA;
83
- }
84
- itemA = pathA[indexA++];
85
- itemB = pathB[indexB++];
86
- }
87
- return null;
55
+ let pathALength = pathA.length;
56
+ let pathBLength = pathB.length;
57
+ if (pathALength === 0 || pathBLength === 0 || pathA[pathALength - 1] !== pathB[pathBLength - 1]) {
58
+ return null;
59
+ }
60
+ let itemA = pathA[0];
61
+ let indexA = 0;
62
+ let itemB = pathB[0];
63
+ let indexB = 0;
64
+ if (pathALength - pathBLength > 0) {
65
+ indexA = pathALength - pathBLength;
66
+ itemA = pathA[indexA];
67
+ pathALength = pathBLength;
68
+ }
69
+ if (pathBLength - pathALength > 0) {
70
+ indexB = pathBLength - pathALength;
71
+ itemB = pathB[indexB];
72
+ pathBLength = pathALength;
73
+ }
74
+ let depth = pathALength;
75
+ while (depth--) {
76
+ if (itemA === itemB) {
77
+ return itemA;
78
+ }
79
+ itemA = pathA[indexA++];
80
+ itemB = pathB[indexB++];
81
+ }
82
+ return null;
88
83
  }
89
84
  function hasTargetTouches(target, touches) {
90
- if (!touches || touches.length === 0) {
91
- return false;
92
- }
93
- for (let i = 0; i < touches.length; i++) {
94
- const node = touches[i].target;
95
- if (node != null) {
96
- if (target.contains(node)) {
97
- return true;
98
- }
99
- }
100
- }
101
- return false;
85
+ if (!touches || touches.length === 0) {
86
+ return false;
87
+ }
88
+ for (let i = 0; i < touches.length; i++) {
89
+ const node = touches[i].target;
90
+ if (node != null) {
91
+ if (target.contains(node)) {
92
+ return true;
93
+ }
94
+ }
95
+ }
96
+ return false;
102
97
  }
103
98
  function hasValidSelection(domEvent) {
104
- if (domEvent.type === "selectionchange") {
105
- return isSelectionValid();
106
- }
107
- return domEvent.type === "select";
99
+ if (domEvent.type === "selectionchange") {
100
+ return isSelectionValid();
101
+ }
102
+ return domEvent.type === "select";
108
103
  }
109
104
  function isPrimaryPointerDown(domEvent) {
110
- const {
111
- altKey,
112
- button,
113
- buttons,
114
- ctrlKey,
115
- type
116
- } = domEvent;
117
- const isTouch = type === "touchstart" || type === "touchmove";
118
- const isPrimaryMouseDown = type === "mousedown" && (button === 0 || buttons === 1);
119
- const isPrimaryMouseMove = type === "mousemove" && buttons === 1;
120
- const noModifiers = altKey === false && ctrlKey === false;
121
- if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {
122
- return true;
123
- }
124
- return false;
105
+ const { altKey, button, buttons, ctrlKey, type } = domEvent;
106
+ const isTouch = type === "touchstart" || type === "touchmove";
107
+ const isPrimaryMouseDown = type === "mousedown" && (button === 0 || buttons === 1);
108
+ const isPrimaryMouseMove = type === "mousemove" && buttons === 1;
109
+ const noModifiers = altKey === false && ctrlKey === false;
110
+ if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {
111
+ return true;
112
+ }
113
+ return false;
125
114
  }
126
115
  function isSelectionValid() {
127
- const selection = window.getSelection();
128
- if (!selection) return false;
129
- const string = selection.toString();
130
- const anchorNode = selection.anchorNode;
131
- const focusNode = selection.focusNode;
132
- const isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;
133
- return string.length >= 1 && string !== "\n" && !!isTextNode;
116
+ const selection = window.getSelection();
117
+ if (!selection) return false;
118
+ const string = selection.toString();
119
+ const anchorNode = selection.anchorNode;
120
+ const focusNode = selection.focusNode;
121
+ const isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;
122
+ return string.length >= 1 && string !== "\n" && !!isTextNode;
134
123
  }
124
+
135
125
  export { canUseDOM, getBoundingClientRect, getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, isSelectionValid, setResponderId };
136
126
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["keyName","canUseDOM","window","document","createElement","getBoundingClientRect","node","nodeType","getEventPath","domEvent","type","target","getSelection","anchorNode","composedPathFallback","path","composedPath","body","push","parentNode","getResponderId","setResponderId","id","getResponderPaths","idPath","nodePath","eventPath","i","length","getLowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","hasTargetTouches","touches","contains","hasValidSelection","isSelectionValid","isPrimaryPointerDown","altKey","button","buttons","ctrlKey","isTouch","isPrimaryMouseDown","isPrimaryMouseMove","noModifiers","selection","string","toString","focusNode","isTextNode","Node","TEXT_NODE"],"sources":["../../src/utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["esm/utils.js"],"sourcesContent":["const keyName = \"__reactResponderId\";\nconst canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nconst getBoundingClientRect = (node) => {\n if (!node) return;\n if (node.nodeType !== 1) return;\n if (node.getBoundingClientRect) {\n return node.getBoundingClientRect();\n }\n};\nfunction getEventPath(domEvent) {\n if (domEvent.type === \"selectionchange\") {\n const target = window.getSelection()?.anchorNode;\n return composedPathFallback(target);\n }\n const path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n}\nfunction composedPathFallback(target) {\n const path = [];\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n return path;\n}\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n return null;\n}\nfunction setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\nfunction getResponderPaths(domEvent) {\n const idPath = [];\n const nodePath = [];\n const eventPath = getEventPath(domEvent);\n for (let i = 0; i < eventPath.length; i++) {\n const node = eventPath[i];\n const id = getResponderId(node);\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n return { idPath, nodePath };\n}\nfunction getLowestCommonAncestor(pathA, pathB) {\n let pathALength = pathA.length;\n let pathBLength = pathB.length;\n if (\n // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]\n ) {\n return null;\n }\n let itemA = pathA[0];\n let indexA = 0;\n let itemB = pathB[0];\n let indexB = 0;\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n }\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n }\n let depth = pathALength;\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n return null;\n}\nfunction hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n for (let i = 0; i < touches.length; i++) {\n const node = touches[i].target;\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction hasValidSelection(domEvent) {\n if (domEvent.type === \"selectionchange\") {\n return isSelectionValid();\n }\n return domEvent.type === \"select\";\n}\nfunction isPrimaryPointerDown(domEvent) {\n const { altKey, button, buttons, ctrlKey, type } = domEvent;\n const isTouch = type === \"touchstart\" || type === \"touchmove\";\n const isPrimaryMouseDown = type === \"mousedown\" && (button === 0 || buttons === 1);\n const isPrimaryMouseMove = type === \"mousemove\" && buttons === 1;\n const noModifiers = altKey === false && ctrlKey === false;\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n return false;\n}\nfunction isSelectionValid() {\n const selection = window.getSelection();\n if (!selection) return false;\n const string = selection.toString();\n const anchorNode = selection.anchorNode;\n const focusNode = selection.focusNode;\n const isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== \"\\n\" && !!isTextNode;\n}\nexport {\n canUseDOM,\n getBoundingClientRect,\n getLowestCommonAncestor,\n getResponderPaths,\n hasTargetTouches,\n hasValidSelection,\n isPrimaryPointerDown,\n isSelectionValid,\n setResponderId\n};\n//# sourceMappingURL=utils.js.map\n"],"mappings":"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"}