@xyo-network/react-event 2.64.9 → 2.64.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/docs.json +14 -14
- package/package.json +3 -3
- package/dist/browser/hooks/index.cjs +0 -78
- package/dist/browser/hooks/index.cjs.map +0 -1
- package/dist/browser/hooks/index.js +0 -55
- package/dist/browser/hooks/index.js.map +0 -1
- package/dist/browser/hooks/useCustomEvent.cjs +0 -60
- package/dist/browser/hooks/useCustomEvent.cjs.map +0 -1
- package/dist/browser/hooks/useCustomEvent.js +0 -39
- package/dist/browser/hooks/useCustomEvent.js.map +0 -1
- package/dist/browser/hooks/useEvent.cjs +0 -77
- package/dist/browser/hooks/useEvent.cjs.map +0 -1
- package/dist/browser/hooks/useEvent.js +0 -54
- package/dist/browser/hooks/useEvent.js.map +0 -1
- package/dist/node/hooks/index.cjs +0 -84
- package/dist/node/hooks/index.cjs.map +0 -1
- package/dist/node/hooks/index.js +0 -56
- package/dist/node/hooks/index.js.map +0 -1
- package/dist/node/hooks/useCustomEvent.cjs +0 -65
- package/dist/node/hooks/useCustomEvent.cjs.map +0 -1
- package/dist/node/hooks/useCustomEvent.js +0 -40
- package/dist/node/hooks/useCustomEvent.js.map +0 -1
- package/dist/node/hooks/useEvent.cjs +0 -82
- package/dist/node/hooks/useEvent.cjs.map +0 -1
- package/dist/node/hooks/useEvent.js +0 -55
- package/dist/node/hooks/useEvent.js.map +0 -1
package/dist/docs.json
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
"fileName": "hooks/useEvent.ts",
|
26
26
|
"line": 9,
|
27
27
|
"character": 2,
|
28
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
28
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L9"
|
29
29
|
}
|
30
30
|
],
|
31
31
|
"type": {
|
@@ -46,7 +46,7 @@
|
|
46
46
|
"fileName": "hooks/useEvent.ts",
|
47
47
|
"line": 10,
|
48
48
|
"character": 2,
|
49
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
49
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L10"
|
50
50
|
}
|
51
51
|
],
|
52
52
|
"type": {
|
@@ -67,7 +67,7 @@
|
|
67
67
|
"fileName": "hooks/useEvent.ts",
|
68
68
|
"line": 11,
|
69
69
|
"character": 2,
|
70
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
70
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L11"
|
71
71
|
}
|
72
72
|
],
|
73
73
|
"type": {
|
@@ -93,7 +93,7 @@
|
|
93
93
|
"fileName": "hooks/useEvent.ts",
|
94
94
|
"line": 8,
|
95
95
|
"character": 17,
|
96
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
96
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L8"
|
97
97
|
}
|
98
98
|
],
|
99
99
|
"typeParameters": [
|
@@ -147,7 +147,7 @@
|
|
147
147
|
"fileName": "hooks/useCustomEvent.ts",
|
148
148
|
"line": 4,
|
149
149
|
"character": 12,
|
150
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
150
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
|
151
151
|
}
|
152
152
|
],
|
153
153
|
"typeParameters": [
|
@@ -176,7 +176,7 @@
|
|
176
176
|
"fileName": "hooks/useCustomEvent.ts",
|
177
177
|
"line": 4,
|
178
178
|
"character": 47,
|
179
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
179
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
|
180
180
|
}
|
181
181
|
],
|
182
182
|
"signatures": [
|
@@ -230,7 +230,7 @@
|
|
230
230
|
"fileName": "hooks/useEvent.ts",
|
231
231
|
"line": 14,
|
232
232
|
"character": 12,
|
233
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
233
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L14"
|
234
234
|
}
|
235
235
|
],
|
236
236
|
"typeParameters": [
|
@@ -285,7 +285,7 @@
|
|
285
285
|
"fileName": "hooks/useEvent.ts",
|
286
286
|
"line": 14,
|
287
287
|
"character": 82,
|
288
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
288
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L14"
|
289
289
|
}
|
290
290
|
],
|
291
291
|
"signatures": [
|
@@ -367,7 +367,7 @@
|
|
367
367
|
"fileName": "hooks/useEvent.ts",
|
368
368
|
"line": 5,
|
369
369
|
"character": 12,
|
370
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
370
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L5"
|
371
371
|
}
|
372
372
|
],
|
373
373
|
"type": {
|
@@ -411,7 +411,7 @@
|
|
411
411
|
"fileName": "hooks/useEvent.ts",
|
412
412
|
"line": 6,
|
413
413
|
"character": 12,
|
414
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
414
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L6"
|
415
415
|
}
|
416
416
|
],
|
417
417
|
"type": {
|
@@ -439,7 +439,7 @@
|
|
439
439
|
"fileName": "hooks/useCustomEvent.ts",
|
440
440
|
"line": 6,
|
441
441
|
"character": 13,
|
442
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
442
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L6"
|
443
443
|
}
|
444
444
|
],
|
445
445
|
"signatures": [
|
@@ -454,7 +454,7 @@
|
|
454
454
|
"fileName": "hooks/useCustomEvent.ts",
|
455
455
|
"line": 6,
|
456
456
|
"character": 30,
|
457
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
457
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L6"
|
458
458
|
}
|
459
459
|
],
|
460
460
|
"typeParameter": [
|
@@ -600,7 +600,7 @@
|
|
600
600
|
"fileName": "hooks/useEvent.ts",
|
601
601
|
"line": 16,
|
602
602
|
"character": 13,
|
603
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
603
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L16"
|
604
604
|
}
|
605
605
|
],
|
606
606
|
"signatures": [
|
@@ -615,7 +615,7 @@
|
|
615
615
|
"fileName": "hooks/useEvent.ts",
|
616
616
|
"line": 16,
|
617
617
|
"character": 24,
|
618
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/
|
618
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/5704df3a9/packages/sdk/packages/event/src/hooks/useEvent.ts#L16"
|
619
619
|
}
|
620
620
|
],
|
621
621
|
"typeParameter": [
|
package/package.json
CHANGED
@@ -10,10 +10,10 @@
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
11
11
|
},
|
12
12
|
"dependencies": {
|
13
|
-
"@xylabs/assert": "^2.12.
|
13
|
+
"@xylabs/assert": "^2.12.23"
|
14
14
|
},
|
15
15
|
"devDependencies": {
|
16
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
16
|
+
"@xylabs/ts-scripts-yarn3": "^3.1.3",
|
17
17
|
"typescript": "^5.2.2"
|
18
18
|
},
|
19
19
|
"peerDependencies": {
|
@@ -71,6 +71,6 @@
|
|
71
71
|
},
|
72
72
|
"sideEffects": false,
|
73
73
|
"types": "dist/browser/index.d.ts",
|
74
|
-
"version": "2.64.
|
74
|
+
"version": "2.64.10",
|
75
75
|
"type": "module"
|
76
76
|
}
|
@@ -1,78 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __defProp = Object.defineProperty;
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
-
var __export = (target, all) => {
|
7
|
-
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
-
};
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
-
for (let key of __getOwnPropNames(from))
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
16
|
-
return to;
|
17
|
-
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
|
20
|
-
// src/hooks/index.ts
|
21
|
-
var hooks_exports = {};
|
22
|
-
__export(hooks_exports, {
|
23
|
-
useCustomEvent: () => useCustomEvent,
|
24
|
-
useEvent: () => useEvent
|
25
|
-
});
|
26
|
-
module.exports = __toCommonJS(hooks_exports);
|
27
|
-
|
28
|
-
// src/hooks/useCustomEvent.ts
|
29
|
-
var import_assert = require("@xylabs/assert");
|
30
|
-
var import_react = require("react");
|
31
|
-
var useCustomEvent = (type, listener, customRef) => {
|
32
|
-
const ref = customRef ?? (0, import_react.createRef)();
|
33
|
-
(0, import_react.useEffect)(() => {
|
34
|
-
const element = ref?.current;
|
35
|
-
const currentListener = listener;
|
36
|
-
const handler = currentListener ? (event) => {
|
37
|
-
const detail = (0, import_assert.assertEx)(event.detail, "Event missing detail");
|
38
|
-
const stop = currentListener(detail);
|
39
|
-
if (stop) {
|
40
|
-
event.stopPropagation();
|
41
|
-
}
|
42
|
-
} : void 0;
|
43
|
-
if (handler && element) {
|
44
|
-
element?.addEventListener(type, handler);
|
45
|
-
}
|
46
|
-
return () => {
|
47
|
-
if (handler && element) {
|
48
|
-
element?.removeEventListener(type, handler);
|
49
|
-
}
|
50
|
-
};
|
51
|
-
});
|
52
|
-
const dispatch = (detail) => {
|
53
|
-
const event = new CustomEvent(type, {
|
54
|
-
bubbles: true,
|
55
|
-
cancelable: true,
|
56
|
-
composed: true,
|
57
|
-
detail
|
58
|
-
});
|
59
|
-
ref.current?.dispatchEvent(event);
|
60
|
-
};
|
61
|
-
return [ref, dispatch];
|
62
|
-
};
|
63
|
-
|
64
|
-
// src/hooks/useEvent.ts
|
65
|
-
var useEvent = (listener, sharableRef) => {
|
66
|
-
const [ref, customDispatch] = useCustomEvent(
|
67
|
-
"xyo",
|
68
|
-
listener ? (detail) => {
|
69
|
-
return listener(detail.noun, detail.verb, detail.data);
|
70
|
-
} : void 0,
|
71
|
-
sharableRef
|
72
|
-
);
|
73
|
-
const dispatch = (noun, verb, data) => {
|
74
|
-
return customDispatch({ data, noun, verb });
|
75
|
-
};
|
76
|
-
return [ref, dispatch];
|
77
|
-
};
|
78
|
-
//# sourceMappingURL=index.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/index.ts","../../../src/hooks/useCustomEvent.ts","../../../src/hooks/useEvent.ts"],"sourcesContent":["export * from './useCustomEvent'\nexport * from './useEvent'\n","import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n","import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,mBAAgD;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,iBAAa,wBAAoB;AAC7C,8BAAU,MAAM;AACd,UAAM,UAAU,KAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,aAAS,wBAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,eAAS,iBAAiB,MAAM,OAAO;AAAA,IACzC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,iBAAS,oBAAoB,MAAM,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AACnE,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,SAAS,cAAc,KAAK;AAAA,EAClC;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AC5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,55 +0,0 @@
|
|
1
|
-
// src/hooks/useCustomEvent.ts
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
3
|
-
import { createRef, useEffect } from "react";
|
4
|
-
var useCustomEvent = (type, listener, customRef) => {
|
5
|
-
const ref = customRef ?? createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const element = ref?.current;
|
8
|
-
const currentListener = listener;
|
9
|
-
const handler = currentListener ? (event) => {
|
10
|
-
const detail = assertEx(event.detail, "Event missing detail");
|
11
|
-
const stop = currentListener(detail);
|
12
|
-
if (stop) {
|
13
|
-
event.stopPropagation();
|
14
|
-
}
|
15
|
-
} : void 0;
|
16
|
-
if (handler && element) {
|
17
|
-
element?.addEventListener(type, handler);
|
18
|
-
}
|
19
|
-
return () => {
|
20
|
-
if (handler && element) {
|
21
|
-
element?.removeEventListener(type, handler);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
});
|
25
|
-
const dispatch = (detail) => {
|
26
|
-
const event = new CustomEvent(type, {
|
27
|
-
bubbles: true,
|
28
|
-
cancelable: true,
|
29
|
-
composed: true,
|
30
|
-
detail
|
31
|
-
});
|
32
|
-
ref.current?.dispatchEvent(event);
|
33
|
-
};
|
34
|
-
return [ref, dispatch];
|
35
|
-
};
|
36
|
-
|
37
|
-
// src/hooks/useEvent.ts
|
38
|
-
var useEvent = (listener, sharableRef) => {
|
39
|
-
const [ref, customDispatch] = useCustomEvent(
|
40
|
-
"xyo",
|
41
|
-
listener ? (detail) => {
|
42
|
-
return listener(detail.noun, detail.verb, detail.data);
|
43
|
-
} : void 0,
|
44
|
-
sharableRef
|
45
|
-
);
|
46
|
-
const dispatch = (noun, verb, data) => {
|
47
|
-
return customDispatch({ data, noun, verb });
|
48
|
-
};
|
49
|
-
return [ref, dispatch];
|
50
|
-
};
|
51
|
-
export {
|
52
|
-
useCustomEvent,
|
53
|
-
useEvent
|
54
|
-
};
|
55
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts","../../../src/hooks/useEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n","import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,WAAsB,iBAAiB;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,aAAa,UAAoB;AAC7C,YAAU,MAAM;AACd,UAAM,UAAU,KAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,SAAS,SAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,eAAS,iBAAiB,MAAM,OAAO;AAAA,IACzC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,iBAAS,oBAAoB,MAAM,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AACnE,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,SAAS,cAAc,KAAK;AAAA,EAClC;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AC5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,60 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __defProp = Object.defineProperty;
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
-
var __export = (target, all) => {
|
7
|
-
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
-
};
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
-
for (let key of __getOwnPropNames(from))
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
16
|
-
return to;
|
17
|
-
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
|
20
|
-
// src/hooks/useCustomEvent.ts
|
21
|
-
var useCustomEvent_exports = {};
|
22
|
-
__export(useCustomEvent_exports, {
|
23
|
-
useCustomEvent: () => useCustomEvent
|
24
|
-
});
|
25
|
-
module.exports = __toCommonJS(useCustomEvent_exports);
|
26
|
-
var import_assert = require("@xylabs/assert");
|
27
|
-
var import_react = require("react");
|
28
|
-
var useCustomEvent = (type, listener, customRef) => {
|
29
|
-
const ref = customRef ?? (0, import_react.createRef)();
|
30
|
-
(0, import_react.useEffect)(() => {
|
31
|
-
const element = ref?.current;
|
32
|
-
const currentListener = listener;
|
33
|
-
const handler = currentListener ? (event) => {
|
34
|
-
const detail = (0, import_assert.assertEx)(event.detail, "Event missing detail");
|
35
|
-
const stop = currentListener(detail);
|
36
|
-
if (stop) {
|
37
|
-
event.stopPropagation();
|
38
|
-
}
|
39
|
-
} : void 0;
|
40
|
-
if (handler && element) {
|
41
|
-
element?.addEventListener(type, handler);
|
42
|
-
}
|
43
|
-
return () => {
|
44
|
-
if (handler && element) {
|
45
|
-
element?.removeEventListener(type, handler);
|
46
|
-
}
|
47
|
-
};
|
48
|
-
});
|
49
|
-
const dispatch = (detail) => {
|
50
|
-
const event = new CustomEvent(type, {
|
51
|
-
bubbles: true,
|
52
|
-
cancelable: true,
|
53
|
-
composed: true,
|
54
|
-
detail
|
55
|
-
});
|
56
|
-
ref.current?.dispatchEvent(event);
|
57
|
-
};
|
58
|
-
return [ref, dispatch];
|
59
|
-
};
|
60
|
-
//# sourceMappingURL=useCustomEvent.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AACzB,mBAAgD;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,iBAAa,wBAAoB;AAC7C,8BAAU,MAAM;AACd,UAAM,UAAU,KAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,aAAS,wBAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,eAAS,iBAAiB,MAAM,OAAO;AAAA,IACzC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,iBAAS,oBAAoB,MAAM,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AACnE,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,SAAS,cAAc,KAAK;AAAA,EAClC;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,39 +0,0 @@
|
|
1
|
-
// src/hooks/useCustomEvent.ts
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
3
|
-
import { createRef, useEffect } from "react";
|
4
|
-
var useCustomEvent = (type, listener, customRef) => {
|
5
|
-
const ref = customRef ?? createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const element = ref?.current;
|
8
|
-
const currentListener = listener;
|
9
|
-
const handler = currentListener ? (event) => {
|
10
|
-
const detail = assertEx(event.detail, "Event missing detail");
|
11
|
-
const stop = currentListener(detail);
|
12
|
-
if (stop) {
|
13
|
-
event.stopPropagation();
|
14
|
-
}
|
15
|
-
} : void 0;
|
16
|
-
if (handler && element) {
|
17
|
-
element?.addEventListener(type, handler);
|
18
|
-
}
|
19
|
-
return () => {
|
20
|
-
if (handler && element) {
|
21
|
-
element?.removeEventListener(type, handler);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
});
|
25
|
-
const dispatch = (detail) => {
|
26
|
-
const event = new CustomEvent(type, {
|
27
|
-
bubbles: true,
|
28
|
-
cancelable: true,
|
29
|
-
composed: true,
|
30
|
-
detail
|
31
|
-
});
|
32
|
-
ref.current?.dispatchEvent(event);
|
33
|
-
};
|
34
|
-
return [ref, dispatch];
|
35
|
-
};
|
36
|
-
export {
|
37
|
-
useCustomEvent
|
38
|
-
};
|
39
|
-
//# sourceMappingURL=useCustomEvent.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,WAAsB,iBAAiB;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,aAAa,UAAoB;AAC7C,YAAU,MAAM;AACd,UAAM,UAAU,KAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,SAAS,SAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,eAAS,iBAAiB,MAAM,OAAO;AAAA,IACzC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,iBAAS,oBAAoB,MAAM,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AACnE,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,SAAS,cAAc,KAAK;AAAA,EAClC;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,77 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __defProp = Object.defineProperty;
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
-
var __export = (target, all) => {
|
7
|
-
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
-
};
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
-
for (let key of __getOwnPropNames(from))
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
16
|
-
return to;
|
17
|
-
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
|
20
|
-
// src/hooks/useEvent.ts
|
21
|
-
var useEvent_exports = {};
|
22
|
-
__export(useEvent_exports, {
|
23
|
-
useEvent: () => useEvent
|
24
|
-
});
|
25
|
-
module.exports = __toCommonJS(useEvent_exports);
|
26
|
-
|
27
|
-
// src/hooks/useCustomEvent.ts
|
28
|
-
var import_assert = require("@xylabs/assert");
|
29
|
-
var import_react = require("react");
|
30
|
-
var useCustomEvent = (type, listener, customRef) => {
|
31
|
-
const ref = customRef ?? (0, import_react.createRef)();
|
32
|
-
(0, import_react.useEffect)(() => {
|
33
|
-
const element = ref?.current;
|
34
|
-
const currentListener = listener;
|
35
|
-
const handler = currentListener ? (event) => {
|
36
|
-
const detail = (0, import_assert.assertEx)(event.detail, "Event missing detail");
|
37
|
-
const stop = currentListener(detail);
|
38
|
-
if (stop) {
|
39
|
-
event.stopPropagation();
|
40
|
-
}
|
41
|
-
} : void 0;
|
42
|
-
if (handler && element) {
|
43
|
-
element?.addEventListener(type, handler);
|
44
|
-
}
|
45
|
-
return () => {
|
46
|
-
if (handler && element) {
|
47
|
-
element?.removeEventListener(type, handler);
|
48
|
-
}
|
49
|
-
};
|
50
|
-
});
|
51
|
-
const dispatch = (detail) => {
|
52
|
-
const event = new CustomEvent(type, {
|
53
|
-
bubbles: true,
|
54
|
-
cancelable: true,
|
55
|
-
composed: true,
|
56
|
-
detail
|
57
|
-
});
|
58
|
-
ref.current?.dispatchEvent(event);
|
59
|
-
};
|
60
|
-
return [ref, dispatch];
|
61
|
-
};
|
62
|
-
|
63
|
-
// src/hooks/useEvent.ts
|
64
|
-
var useEvent = (listener, sharableRef) => {
|
65
|
-
const [ref, customDispatch] = useCustomEvent(
|
66
|
-
"xyo",
|
67
|
-
listener ? (detail) => {
|
68
|
-
return listener(detail.noun, detail.verb, detail.data);
|
69
|
-
} : void 0,
|
70
|
-
sharableRef
|
71
|
-
);
|
72
|
-
const dispatch = (noun, verb, data) => {
|
73
|
-
return customDispatch({ data, noun, verb });
|
74
|
-
};
|
75
|
-
return [ref, dispatch];
|
76
|
-
};
|
77
|
-
//# sourceMappingURL=useEvent.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useEvent.ts","../../../src/hooks/useCustomEvent.ts"],"sourcesContent":["import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n","import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,mBAAgD;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,iBAAa,wBAAoB;AAC7C,8BAAU,MAAM;AACd,UAAM,UAAU,KAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,aAAS,wBAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,eAAS,iBAAiB,MAAM,OAAO;AAAA,IACzC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,iBAAS,oBAAoB,MAAM,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AACnE,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,SAAS,cAAc,KAAK;AAAA,EAClC;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AD5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,54 +0,0 @@
|
|
1
|
-
// src/hooks/useCustomEvent.ts
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
3
|
-
import { createRef, useEffect } from "react";
|
4
|
-
var useCustomEvent = (type, listener, customRef) => {
|
5
|
-
const ref = customRef ?? createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const element = ref?.current;
|
8
|
-
const currentListener = listener;
|
9
|
-
const handler = currentListener ? (event) => {
|
10
|
-
const detail = assertEx(event.detail, "Event missing detail");
|
11
|
-
const stop = currentListener(detail);
|
12
|
-
if (stop) {
|
13
|
-
event.stopPropagation();
|
14
|
-
}
|
15
|
-
} : void 0;
|
16
|
-
if (handler && element) {
|
17
|
-
element?.addEventListener(type, handler);
|
18
|
-
}
|
19
|
-
return () => {
|
20
|
-
if (handler && element) {
|
21
|
-
element?.removeEventListener(type, handler);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
});
|
25
|
-
const dispatch = (detail) => {
|
26
|
-
const event = new CustomEvent(type, {
|
27
|
-
bubbles: true,
|
28
|
-
cancelable: true,
|
29
|
-
composed: true,
|
30
|
-
detail
|
31
|
-
});
|
32
|
-
ref.current?.dispatchEvent(event);
|
33
|
-
};
|
34
|
-
return [ref, dispatch];
|
35
|
-
};
|
36
|
-
|
37
|
-
// src/hooks/useEvent.ts
|
38
|
-
var useEvent = (listener, sharableRef) => {
|
39
|
-
const [ref, customDispatch] = useCustomEvent(
|
40
|
-
"xyo",
|
41
|
-
listener ? (detail) => {
|
42
|
-
return listener(detail.noun, detail.verb, detail.data);
|
43
|
-
} : void 0,
|
44
|
-
sharableRef
|
45
|
-
);
|
46
|
-
const dispatch = (noun, verb, data) => {
|
47
|
-
return customDispatch({ data, noun, verb });
|
48
|
-
};
|
49
|
-
return [ref, dispatch];
|
50
|
-
};
|
51
|
-
export {
|
52
|
-
useEvent
|
53
|
-
};
|
54
|
-
//# sourceMappingURL=useEvent.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts","../../../src/hooks/useEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n","import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,WAAsB,iBAAiB;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,aAAa,UAAoB;AAC7C,YAAU,MAAM;AACd,UAAM,UAAU,KAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,SAAS,SAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,eAAS,iBAAiB,MAAM,OAAO;AAAA,IACzC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,iBAAS,oBAAoB,MAAM,OAAO;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AACnE,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,QAAI,SAAS,cAAc,KAAK;AAAA,EAClC;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AC5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,84 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __defProp = Object.defineProperty;
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
-
var __export = (target, all) => {
|
7
|
-
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
-
};
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
-
for (let key of __getOwnPropNames(from))
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
16
|
-
return to;
|
17
|
-
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
|
20
|
-
// src/hooks/index.ts
|
21
|
-
var hooks_exports = {};
|
22
|
-
__export(hooks_exports, {
|
23
|
-
useCustomEvent: () => useCustomEvent,
|
24
|
-
useEvent: () => useEvent
|
25
|
-
});
|
26
|
-
module.exports = __toCommonJS(hooks_exports);
|
27
|
-
|
28
|
-
// src/hooks/useCustomEvent.ts
|
29
|
-
var import_assert = require("@xylabs/assert");
|
30
|
-
var import_react = require("react");
|
31
|
-
var useCustomEvent = (type, listener, customRef) => {
|
32
|
-
const ref = customRef ?? (0, import_react.createRef)();
|
33
|
-
(0, import_react.useEffect)(() => {
|
34
|
-
const element = ref == null ? void 0 : ref.current;
|
35
|
-
const currentListener = listener;
|
36
|
-
const handler = currentListener ? (event) => {
|
37
|
-
const detail = (0, import_assert.assertEx)(event.detail, "Event missing detail");
|
38
|
-
const stop = currentListener(detail);
|
39
|
-
if (stop) {
|
40
|
-
event.stopPropagation();
|
41
|
-
}
|
42
|
-
} : void 0;
|
43
|
-
if (handler && element) {
|
44
|
-
element == null ? void 0 : element.addEventListener(type, handler);
|
45
|
-
}
|
46
|
-
return () => {
|
47
|
-
if (handler && element) {
|
48
|
-
element == null ? void 0 : element.removeEventListener(type, handler);
|
49
|
-
}
|
50
|
-
};
|
51
|
-
});
|
52
|
-
const dispatch = (detail) => {
|
53
|
-
var _a;
|
54
|
-
const event = new CustomEvent(type, {
|
55
|
-
bubbles: true,
|
56
|
-
cancelable: true,
|
57
|
-
composed: true,
|
58
|
-
detail
|
59
|
-
});
|
60
|
-
(_a = ref.current) == null ? void 0 : _a.dispatchEvent(event);
|
61
|
-
};
|
62
|
-
return [ref, dispatch];
|
63
|
-
};
|
64
|
-
|
65
|
-
// src/hooks/useEvent.ts
|
66
|
-
var useEvent = (listener, sharableRef) => {
|
67
|
-
const [ref, customDispatch] = useCustomEvent(
|
68
|
-
"xyo",
|
69
|
-
listener ? (detail) => {
|
70
|
-
return listener(detail.noun, detail.verb, detail.data);
|
71
|
-
} : void 0,
|
72
|
-
sharableRef
|
73
|
-
);
|
74
|
-
const dispatch = (noun, verb, data) => {
|
75
|
-
return customDispatch({ data, noun, verb });
|
76
|
-
};
|
77
|
-
return [ref, dispatch];
|
78
|
-
};
|
79
|
-
// Annotate the CommonJS export names for ESM import in node:
|
80
|
-
0 && (module.exports = {
|
81
|
-
useCustomEvent,
|
82
|
-
useEvent
|
83
|
-
});
|
84
|
-
//# sourceMappingURL=index.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/index.ts","../../../src/hooks/useCustomEvent.ts","../../../src/hooks/useEvent.ts"],"sourcesContent":["export * from './useCustomEvent'\nexport * from './useEvent'\n","import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n","import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,mBAAgD;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,iBAAa,wBAAoB;AAC7C,8BAAU,MAAM;AACd,UAAM,UAAU,2BAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,aAAS,wBAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,yCAAS,iBAAiB,MAAM;AAAA,IAClC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,2CAAS,oBAAoB,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AAjCvE;AAkCI,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,cAAI,YAAJ,mBAAa,cAAc;AAAA,EAC7B;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AC5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
package/dist/node/hooks/index.js
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
// src/hooks/useCustomEvent.ts
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
3
|
-
import { createRef, useEffect } from "react";
|
4
|
-
var useCustomEvent = (type, listener, customRef) => {
|
5
|
-
const ref = customRef ?? createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const element = ref == null ? void 0 : ref.current;
|
8
|
-
const currentListener = listener;
|
9
|
-
const handler = currentListener ? (event) => {
|
10
|
-
const detail = assertEx(event.detail, "Event missing detail");
|
11
|
-
const stop = currentListener(detail);
|
12
|
-
if (stop) {
|
13
|
-
event.stopPropagation();
|
14
|
-
}
|
15
|
-
} : void 0;
|
16
|
-
if (handler && element) {
|
17
|
-
element == null ? void 0 : element.addEventListener(type, handler);
|
18
|
-
}
|
19
|
-
return () => {
|
20
|
-
if (handler && element) {
|
21
|
-
element == null ? void 0 : element.removeEventListener(type, handler);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
});
|
25
|
-
const dispatch = (detail) => {
|
26
|
-
var _a;
|
27
|
-
const event = new CustomEvent(type, {
|
28
|
-
bubbles: true,
|
29
|
-
cancelable: true,
|
30
|
-
composed: true,
|
31
|
-
detail
|
32
|
-
});
|
33
|
-
(_a = ref.current) == null ? void 0 : _a.dispatchEvent(event);
|
34
|
-
};
|
35
|
-
return [ref, dispatch];
|
36
|
-
};
|
37
|
-
|
38
|
-
// src/hooks/useEvent.ts
|
39
|
-
var useEvent = (listener, sharableRef) => {
|
40
|
-
const [ref, customDispatch] = useCustomEvent(
|
41
|
-
"xyo",
|
42
|
-
listener ? (detail) => {
|
43
|
-
return listener(detail.noun, detail.verb, detail.data);
|
44
|
-
} : void 0,
|
45
|
-
sharableRef
|
46
|
-
);
|
47
|
-
const dispatch = (noun, verb, data) => {
|
48
|
-
return customDispatch({ data, noun, verb });
|
49
|
-
};
|
50
|
-
return [ref, dispatch];
|
51
|
-
};
|
52
|
-
export {
|
53
|
-
useCustomEvent,
|
54
|
-
useEvent
|
55
|
-
};
|
56
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts","../../../src/hooks/useEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n","import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,WAAsB,iBAAiB;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,aAAa,UAAoB;AAC7C,YAAU,MAAM;AACd,UAAM,UAAU,2BAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,SAAS,SAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,yCAAS,iBAAiB,MAAM;AAAA,IAClC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,2CAAS,oBAAoB,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AAjCvE;AAkCI,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,cAAI,YAAJ,mBAAa,cAAc;AAAA,EAC7B;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AC5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,65 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __defProp = Object.defineProperty;
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
-
var __export = (target, all) => {
|
7
|
-
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
-
};
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
-
for (let key of __getOwnPropNames(from))
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
16
|
-
return to;
|
17
|
-
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
|
20
|
-
// src/hooks/useCustomEvent.ts
|
21
|
-
var useCustomEvent_exports = {};
|
22
|
-
__export(useCustomEvent_exports, {
|
23
|
-
useCustomEvent: () => useCustomEvent
|
24
|
-
});
|
25
|
-
module.exports = __toCommonJS(useCustomEvent_exports);
|
26
|
-
var import_assert = require("@xylabs/assert");
|
27
|
-
var import_react = require("react");
|
28
|
-
var useCustomEvent = (type, listener, customRef) => {
|
29
|
-
const ref = customRef ?? (0, import_react.createRef)();
|
30
|
-
(0, import_react.useEffect)(() => {
|
31
|
-
const element = ref == null ? void 0 : ref.current;
|
32
|
-
const currentListener = listener;
|
33
|
-
const handler = currentListener ? (event) => {
|
34
|
-
const detail = (0, import_assert.assertEx)(event.detail, "Event missing detail");
|
35
|
-
const stop = currentListener(detail);
|
36
|
-
if (stop) {
|
37
|
-
event.stopPropagation();
|
38
|
-
}
|
39
|
-
} : void 0;
|
40
|
-
if (handler && element) {
|
41
|
-
element == null ? void 0 : element.addEventListener(type, handler);
|
42
|
-
}
|
43
|
-
return () => {
|
44
|
-
if (handler && element) {
|
45
|
-
element == null ? void 0 : element.removeEventListener(type, handler);
|
46
|
-
}
|
47
|
-
};
|
48
|
-
});
|
49
|
-
const dispatch = (detail) => {
|
50
|
-
var _a;
|
51
|
-
const event = new CustomEvent(type, {
|
52
|
-
bubbles: true,
|
53
|
-
cancelable: true,
|
54
|
-
composed: true,
|
55
|
-
detail
|
56
|
-
});
|
57
|
-
(_a = ref.current) == null ? void 0 : _a.dispatchEvent(event);
|
58
|
-
};
|
59
|
-
return [ref, dispatch];
|
60
|
-
};
|
61
|
-
// Annotate the CommonJS export names for ESM import in node:
|
62
|
-
0 && (module.exports = {
|
63
|
-
useCustomEvent
|
64
|
-
});
|
65
|
-
//# sourceMappingURL=useCustomEvent.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AACzB,mBAAgD;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,iBAAa,wBAAoB;AAC7C,8BAAU,MAAM;AACd,UAAM,UAAU,2BAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,aAAS,wBAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,yCAAS,iBAAiB,MAAM;AAAA,IAClC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,2CAAS,oBAAoB,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AAjCvE;AAkCI,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,cAAI,YAAJ,mBAAa,cAAc;AAAA,EAC7B;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
// src/hooks/useCustomEvent.ts
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
3
|
-
import { createRef, useEffect } from "react";
|
4
|
-
var useCustomEvent = (type, listener, customRef) => {
|
5
|
-
const ref = customRef ?? createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const element = ref == null ? void 0 : ref.current;
|
8
|
-
const currentListener = listener;
|
9
|
-
const handler = currentListener ? (event) => {
|
10
|
-
const detail = assertEx(event.detail, "Event missing detail");
|
11
|
-
const stop = currentListener(detail);
|
12
|
-
if (stop) {
|
13
|
-
event.stopPropagation();
|
14
|
-
}
|
15
|
-
} : void 0;
|
16
|
-
if (handler && element) {
|
17
|
-
element == null ? void 0 : element.addEventListener(type, handler);
|
18
|
-
}
|
19
|
-
return () => {
|
20
|
-
if (handler && element) {
|
21
|
-
element == null ? void 0 : element.removeEventListener(type, handler);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
});
|
25
|
-
const dispatch = (detail) => {
|
26
|
-
var _a;
|
27
|
-
const event = new CustomEvent(type, {
|
28
|
-
bubbles: true,
|
29
|
-
cancelable: true,
|
30
|
-
composed: true,
|
31
|
-
detail
|
32
|
-
});
|
33
|
-
(_a = ref.current) == null ? void 0 : _a.dispatchEvent(event);
|
34
|
-
};
|
35
|
-
return [ref, dispatch];
|
36
|
-
};
|
37
|
-
export {
|
38
|
-
useCustomEvent
|
39
|
-
};
|
40
|
-
//# sourceMappingURL=useCustomEvent.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,WAAsB,iBAAiB;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,aAAa,UAAoB;AAC7C,YAAU,MAAM;AACd,UAAM,UAAU,2BAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,SAAS,SAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,yCAAS,iBAAiB,MAAM;AAAA,IAClC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,2CAAS,oBAAoB,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AAjCvE;AAkCI,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,cAAI,YAAJ,mBAAa,cAAc;AAAA,EAC7B;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,82 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __defProp = Object.defineProperty;
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
-
var __export = (target, all) => {
|
7
|
-
for (var name in all)
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
-
};
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
-
for (let key of __getOwnPropNames(from))
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
-
}
|
16
|
-
return to;
|
17
|
-
};
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
|
20
|
-
// src/hooks/useEvent.ts
|
21
|
-
var useEvent_exports = {};
|
22
|
-
__export(useEvent_exports, {
|
23
|
-
useEvent: () => useEvent
|
24
|
-
});
|
25
|
-
module.exports = __toCommonJS(useEvent_exports);
|
26
|
-
|
27
|
-
// src/hooks/useCustomEvent.ts
|
28
|
-
var import_assert = require("@xylabs/assert");
|
29
|
-
var import_react = require("react");
|
30
|
-
var useCustomEvent = (type, listener, customRef) => {
|
31
|
-
const ref = customRef ?? (0, import_react.createRef)();
|
32
|
-
(0, import_react.useEffect)(() => {
|
33
|
-
const element = ref == null ? void 0 : ref.current;
|
34
|
-
const currentListener = listener;
|
35
|
-
const handler = currentListener ? (event) => {
|
36
|
-
const detail = (0, import_assert.assertEx)(event.detail, "Event missing detail");
|
37
|
-
const stop = currentListener(detail);
|
38
|
-
if (stop) {
|
39
|
-
event.stopPropagation();
|
40
|
-
}
|
41
|
-
} : void 0;
|
42
|
-
if (handler && element) {
|
43
|
-
element == null ? void 0 : element.addEventListener(type, handler);
|
44
|
-
}
|
45
|
-
return () => {
|
46
|
-
if (handler && element) {
|
47
|
-
element == null ? void 0 : element.removeEventListener(type, handler);
|
48
|
-
}
|
49
|
-
};
|
50
|
-
});
|
51
|
-
const dispatch = (detail) => {
|
52
|
-
var _a;
|
53
|
-
const event = new CustomEvent(type, {
|
54
|
-
bubbles: true,
|
55
|
-
cancelable: true,
|
56
|
-
composed: true,
|
57
|
-
detail
|
58
|
-
});
|
59
|
-
(_a = ref.current) == null ? void 0 : _a.dispatchEvent(event);
|
60
|
-
};
|
61
|
-
return [ref, dispatch];
|
62
|
-
};
|
63
|
-
|
64
|
-
// src/hooks/useEvent.ts
|
65
|
-
var useEvent = (listener, sharableRef) => {
|
66
|
-
const [ref, customDispatch] = useCustomEvent(
|
67
|
-
"xyo",
|
68
|
-
listener ? (detail) => {
|
69
|
-
return listener(detail.noun, detail.verb, detail.data);
|
70
|
-
} : void 0,
|
71
|
-
sharableRef
|
72
|
-
);
|
73
|
-
const dispatch = (noun, verb, data) => {
|
74
|
-
return customDispatch({ data, noun, verb });
|
75
|
-
};
|
76
|
-
return [ref, dispatch];
|
77
|
-
};
|
78
|
-
// Annotate the CommonJS export names for ESM import in node:
|
79
|
-
0 && (module.exports = {
|
80
|
-
useEvent
|
81
|
-
});
|
82
|
-
//# sourceMappingURL=useEvent.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useEvent.ts","../../../src/hooks/useCustomEvent.ts"],"sourcesContent":["import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n","import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,mBAAgD;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,iBAAa,wBAAoB;AAC7C,8BAAU,MAAM;AACd,UAAM,UAAU,2BAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,aAAS,wBAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,yCAAS,iBAAiB,MAAM;AAAA,IAClC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,2CAAS,oBAAoB,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AAjCvE;AAkCI,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,cAAI,YAAJ,mBAAa,cAAc;AAAA,EAC7B;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AD5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|
@@ -1,55 +0,0 @@
|
|
1
|
-
// src/hooks/useCustomEvent.ts
|
2
|
-
import { assertEx } from "@xylabs/assert";
|
3
|
-
import { createRef, useEffect } from "react";
|
4
|
-
var useCustomEvent = (type, listener, customRef) => {
|
5
|
-
const ref = customRef ?? createRef();
|
6
|
-
useEffect(() => {
|
7
|
-
const element = ref == null ? void 0 : ref.current;
|
8
|
-
const currentListener = listener;
|
9
|
-
const handler = currentListener ? (event) => {
|
10
|
-
const detail = assertEx(event.detail, "Event missing detail");
|
11
|
-
const stop = currentListener(detail);
|
12
|
-
if (stop) {
|
13
|
-
event.stopPropagation();
|
14
|
-
}
|
15
|
-
} : void 0;
|
16
|
-
if (handler && element) {
|
17
|
-
element == null ? void 0 : element.addEventListener(type, handler);
|
18
|
-
}
|
19
|
-
return () => {
|
20
|
-
if (handler && element) {
|
21
|
-
element == null ? void 0 : element.removeEventListener(type, handler);
|
22
|
-
}
|
23
|
-
};
|
24
|
-
});
|
25
|
-
const dispatch = (detail) => {
|
26
|
-
var _a;
|
27
|
-
const event = new CustomEvent(type, {
|
28
|
-
bubbles: true,
|
29
|
-
cancelable: true,
|
30
|
-
composed: true,
|
31
|
-
detail
|
32
|
-
});
|
33
|
-
(_a = ref.current) == null ? void 0 : _a.dispatchEvent(event);
|
34
|
-
};
|
35
|
-
return [ref, dispatch];
|
36
|
-
};
|
37
|
-
|
38
|
-
// src/hooks/useEvent.ts
|
39
|
-
var useEvent = (listener, sharableRef) => {
|
40
|
-
const [ref, customDispatch] = useCustomEvent(
|
41
|
-
"xyo",
|
42
|
-
listener ? (detail) => {
|
43
|
-
return listener(detail.noun, detail.verb, detail.data);
|
44
|
-
} : void 0,
|
45
|
-
sharableRef
|
46
|
-
);
|
47
|
-
const dispatch = (noun, verb, data) => {
|
48
|
-
return customDispatch({ data, noun, verb });
|
49
|
-
};
|
50
|
-
return [ref, dispatch];
|
51
|
-
};
|
52
|
-
export {
|
53
|
-
useEvent
|
54
|
-
};
|
55
|
-
//# sourceMappingURL=useEvent.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useCustomEvent.ts","../../../src/hooks/useEvent.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { createRef, RefObject, useEffect } from 'react'\n\nexport type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void\n\nexport const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(\n type: string,\n listener?: CustomEventDispatch<TDetail>,\n customRef?: RefObject<TElement>,\n): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {\n const ref = customRef ?? createRef<TElement>()\n useEffect(() => {\n const element = ref?.current\n const currentListener = listener\n const handler = currentListener\n ? (event: CustomEventInit<TDetail> & Event) => {\n const detail = assertEx(event.detail, 'Event missing detail')\n const stop = currentListener(detail)\n if (stop) {\n event.stopPropagation()\n }\n }\n : undefined\n\n if (handler && element) {\n element?.addEventListener(type, handler)\n }\n return () => {\n if (handler && element) {\n element?.removeEventListener(type, handler)\n }\n }\n })\n const dispatch: CustomEventDispatch<TDetail> = (detail?: TDetail) => {\n const event = new CustomEvent<TDetail>(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail,\n })\n ref.current?.dispatchEvent(event)\n }\n return [ref, dispatch]\n}\n","import { RefObject } from 'react'\n\nimport { useCustomEvent } from './useCustomEvent'\n\nexport type EventNoun = 'payload' | 'boundwitness' | 'address' | 'hash' | 'signature' | 'schema'\nexport type EventVerb = 'click' | 'favorite'\n\nexport interface Event<TNoun = EventNoun, TVerb = EventVerb, TData = string> {\n data?: TData\n noun: TNoun\n verb: TVerb\n}\n\nexport type EventDispatch<TNoun = EventNoun, TVerb = EventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void\n\nexport const useEvent = <T extends HTMLElement, TNoun = EventNoun, TVerb = EventVerb, TData = string>(\n listener?: EventDispatch<TNoun, TVerb, TData>,\n sharableRef?: RefObject<T>,\n): [RefObject<T>, EventDispatch<TNoun, TVerb, TData>] => {\n const [ref, customDispatch] = useCustomEvent<T, Event<TNoun, TVerb, TData>>(\n 'xyo',\n listener\n ? (detail: Event<TNoun, TVerb, TData>) => {\n return listener(detail.noun, detail.verb, detail.data)\n }\n : undefined,\n sharableRef,\n )\n\n const dispatch: EventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {\n return customDispatch({ data, noun, verb })\n }\n return [ref, dispatch]\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,WAAsB,iBAAiB;AAIzC,IAAM,iBAAiB,CAC5B,MACA,UACA,cACwD;AACxD,QAAM,MAAM,aAAa,UAAoB;AAC7C,YAAU,MAAM;AACd,UAAM,UAAU,2BAAK;AACrB,UAAM,kBAAkB;AACxB,UAAM,UAAU,kBACZ,CAAC,UAA4C;AAC3C,YAAM,SAAS,SAAS,MAAM,QAAQ,sBAAsB;AAC5D,YAAM,OAAO,gBAAgB,MAAM;AACnC,UAAI,MAAM;AACR,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF,IACA;AAEJ,QAAI,WAAW,SAAS;AACtB,yCAAS,iBAAiB,MAAM;AAAA,IAClC;AACA,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,2CAAS,oBAAoB,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAyC,CAAC,WAAqB;AAjCvE;AAkCI,UAAM,QAAQ,IAAI,YAAqB,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AACD,cAAI,YAAJ,mBAAa,cAAc;AAAA,EAC7B;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;;;AC5BO,IAAM,WAAW,CACtB,UACA,gBACuD;AACvD,QAAM,CAAC,KAAK,cAAc,IAAI;AAAA,IAC5B;AAAA,IACA,WACI,CAAC,WAAuC;AACtC,aAAO,SAAS,OAAO,MAAM,OAAO,MAAM,OAAO,IAAI;AAAA,IACvD,IACA;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,WAA+C,CAAC,MAAa,MAAa,SAAiB;AAC/F,WAAO,eAAe,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5C;AACA,SAAO,CAAC,KAAK,QAAQ;AACvB;","names":[]}
|