@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 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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L9"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L10"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L11"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L8"
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/798614ebd/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
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/798614ebd/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L14"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L14"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L5"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L6"
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/798614ebd/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L6"
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/798614ebd/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L6"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L16"
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/798614ebd/packages/sdk/packages/event/src/hooks/useEvent.ts#L16"
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.14"
13
+ "@xylabs/assert": "^2.12.23"
14
14
  },
15
15
  "devDependencies": {
16
- "@xylabs/ts-scripts-yarn3": "^3.0.82",
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.9",
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":[]}
@@ -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":[]}