@zag-js/interact-outside 0.0.0-dev-20220616104411 → 0.0.0-dev-20220616113129

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/index.js CHANGED
@@ -30,74 +30,13 @@ var runIfFn = (v, ...a) => {
30
30
  const res = typeof v === "function" ? v(...a) : v;
31
31
  return res != null ? res : void 0;
32
32
  };
33
- var noop = () => {
34
- };
35
- function getListenerElements() {
36
- ;
37
- globalThis.__listenerElements__ = globalThis.__listenerElements__ || /* @__PURE__ */ new Map();
38
- return globalThis.__listenerElements__;
39
- }
40
- function getListenerCache() {
41
- ;
42
- globalThis.__listenerCache__ = globalThis.__listenerCache__ || /* @__PURE__ */ new Map();
43
- return globalThis.__listenerCache__;
44
- }
45
- function addGlobalEventListener(node, type, handler, options) {
46
- var _a;
47
- if (!node)
48
- return noop;
49
- const hash = JSON.stringify({ type, options });
50
- const listenerElements = getListenerElements();
51
- const listenerCache = getListenerCache();
52
- const group = listenerElements.get(node);
53
- if (!listenerElements.has(node)) {
54
- const group2 = /* @__PURE__ */ new Map([[hash, /* @__PURE__ */ new Set([handler])]]);
55
- listenerElements.set(node, group2);
56
- } else if (group == null ? void 0 : group.has(hash)) {
57
- (_a = group == null ? void 0 : group.get(hash)) == null ? void 0 : _a.add(handler);
58
- } else {
59
- group == null ? void 0 : group.set(hash, /* @__PURE__ */ new Set([handler]));
60
- }
61
- function attach(node2) {
62
- var _a2, _b;
63
- function listener(event) {
64
- var _a3;
65
- const group2 = listenerElements.get(node2);
66
- (_a3 = group2 == null ? void 0 : group2.get(hash)) == null ? void 0 : _a3.forEach((fn) => fn(event));
67
- }
68
- if (!(listenerCache == null ? void 0 : listenerCache.has(node2))) {
69
- listenerCache.set(node2, /* @__PURE__ */ new Map([[hash, listener]]));
70
- node2.addEventListener(type, listener, options);
71
- return;
72
- }
73
- if (!((_a2 = listenerCache == null ? void 0 : listenerCache.get(node2)) == null ? void 0 : _a2.has(hash))) {
74
- (_b = listenerCache.get(node2)) == null ? void 0 : _b.set(hash, listener);
75
- node2.addEventListener(type, listener, options);
76
- }
77
- }
78
- attach(node);
79
- return function remove() {
80
- var _a2, _b, _c, _d;
81
- if (!listenerElements.has(node))
82
- return;
83
- const group2 = listenerElements.get(node);
84
- (_a2 = group2 == null ? void 0 : group2.get(hash)) == null ? void 0 : _a2.delete(handler);
85
- if (((_b = group2 == null ? void 0 : group2.get(hash)) == null ? void 0 : _b.size) === 0) {
86
- const listener = (_c = listenerCache.get(node)) == null ? void 0 : _c.get(hash);
87
- node.removeEventListener(type, listener, options);
88
- group2 == null ? void 0 : group2.delete(hash);
89
- (_d = listenerCache.get(node)) == null ? void 0 : _d.delete(hash);
90
- if ((group2 == null ? void 0 : group2.size) === 0) {
91
- listenerElements.delete(node);
92
- listenerCache.delete(node);
93
- }
94
- }
95
- };
96
- }
97
33
  var isRef = (v) => hasProp(v, "current");
98
- function addDomEvent(target, event, listener, options) {
34
+ function addDomEvent(target, eventName, handler, options) {
99
35
  const node = isRef(target) ? target.current : runIfFn(target);
100
- return addGlobalEventListener(node, event, listener, options);
36
+ node == null ? void 0 : node.addEventListener(eventName, handler, options);
37
+ return () => {
38
+ node == null ? void 0 : node.removeEventListener(eventName, handler, options);
39
+ };
101
40
  }
102
41
  function isWindow(value) {
103
42
  return (value == null ? void 0 : value.toString()) === "[object Window]";
package/dist/index.mjs CHANGED
@@ -6,74 +6,13 @@ var runIfFn = (v, ...a) => {
6
6
  const res = typeof v === "function" ? v(...a) : v;
7
7
  return res != null ? res : void 0;
8
8
  };
9
- var noop = () => {
10
- };
11
- function getListenerElements() {
12
- ;
13
- globalThis.__listenerElements__ = globalThis.__listenerElements__ || /* @__PURE__ */ new Map();
14
- return globalThis.__listenerElements__;
15
- }
16
- function getListenerCache() {
17
- ;
18
- globalThis.__listenerCache__ = globalThis.__listenerCache__ || /* @__PURE__ */ new Map();
19
- return globalThis.__listenerCache__;
20
- }
21
- function addGlobalEventListener(node, type, handler, options) {
22
- var _a;
23
- if (!node)
24
- return noop;
25
- const hash = JSON.stringify({ type, options });
26
- const listenerElements = getListenerElements();
27
- const listenerCache = getListenerCache();
28
- const group = listenerElements.get(node);
29
- if (!listenerElements.has(node)) {
30
- const group2 = /* @__PURE__ */ new Map([[hash, /* @__PURE__ */ new Set([handler])]]);
31
- listenerElements.set(node, group2);
32
- } else if (group == null ? void 0 : group.has(hash)) {
33
- (_a = group == null ? void 0 : group.get(hash)) == null ? void 0 : _a.add(handler);
34
- } else {
35
- group == null ? void 0 : group.set(hash, /* @__PURE__ */ new Set([handler]));
36
- }
37
- function attach(node2) {
38
- var _a2, _b;
39
- function listener(event) {
40
- var _a3;
41
- const group2 = listenerElements.get(node2);
42
- (_a3 = group2 == null ? void 0 : group2.get(hash)) == null ? void 0 : _a3.forEach((fn) => fn(event));
43
- }
44
- if (!(listenerCache == null ? void 0 : listenerCache.has(node2))) {
45
- listenerCache.set(node2, /* @__PURE__ */ new Map([[hash, listener]]));
46
- node2.addEventListener(type, listener, options);
47
- return;
48
- }
49
- if (!((_a2 = listenerCache == null ? void 0 : listenerCache.get(node2)) == null ? void 0 : _a2.has(hash))) {
50
- (_b = listenerCache.get(node2)) == null ? void 0 : _b.set(hash, listener);
51
- node2.addEventListener(type, listener, options);
52
- }
53
- }
54
- attach(node);
55
- return function remove() {
56
- var _a2, _b, _c, _d;
57
- if (!listenerElements.has(node))
58
- return;
59
- const group2 = listenerElements.get(node);
60
- (_a2 = group2 == null ? void 0 : group2.get(hash)) == null ? void 0 : _a2.delete(handler);
61
- if (((_b = group2 == null ? void 0 : group2.get(hash)) == null ? void 0 : _b.size) === 0) {
62
- const listener = (_c = listenerCache.get(node)) == null ? void 0 : _c.get(hash);
63
- node.removeEventListener(type, listener, options);
64
- group2 == null ? void 0 : group2.delete(hash);
65
- (_d = listenerCache.get(node)) == null ? void 0 : _d.delete(hash);
66
- if ((group2 == null ? void 0 : group2.size) === 0) {
67
- listenerElements.delete(node);
68
- listenerCache.delete(node);
69
- }
70
- }
71
- };
72
- }
73
9
  var isRef = (v) => hasProp(v, "current");
74
- function addDomEvent(target, event, listener, options) {
10
+ function addDomEvent(target, eventName, handler, options) {
75
11
  const node = isRef(target) ? target.current : runIfFn(target);
76
- return addGlobalEventListener(node, event, listener, options);
12
+ node == null ? void 0 : node.addEventListener(eventName, handler, options);
13
+ return () => {
14
+ node == null ? void 0 : node.removeEventListener(eventName, handler, options);
15
+ };
77
16
  }
78
17
  function isWindow(value) {
79
18
  return (value == null ? void 0 : value.toString()) === "[object Window]";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/interact-outside",
3
- "version": "0.0.0-dev-20220616104411",
3
+ "version": "0.0.0-dev-20220616113129",
4
4
  "description": "Track interations or focus outside an element",
5
5
  "keywords": [
6
6
  "js",
@@ -28,7 +28,7 @@
28
28
  "test:watch": "yarn test --watchAll"
29
29
  },
30
30
  "dependencies": {
31
- "@zag-js/dom-utils": "0.0.0-dev-20220616104411"
31
+ "@zag-js/dom-utils": "0.0.0-dev-20220616113129"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"