@apia/util 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/dist/animate/index.d.ts +4 -0
  2. package/dist/animate/index.d.ts.map +1 -0
  3. package/dist/animate/index.js +24 -0
  4. package/dist/animate/index.js.map +1 -0
  5. package/dist/array/arrayOrArray.d.ts +4 -0
  6. package/dist/array/arrayOrArray.d.ts.map +1 -0
  7. package/dist/array/arrayOrArray.js +8 -0
  8. package/dist/array/arrayOrArray.js.map +1 -0
  9. package/dist/array/getIndex.d.ts +14 -0
  10. package/dist/array/getIndex.d.ts.map +1 -0
  11. package/dist/array/getIndex.js +12 -0
  12. package/dist/array/getIndex.js.map +1 -0
  13. package/dist/crypto/decrypt.d.ts +4 -0
  14. package/dist/crypto/decrypt.d.ts.map +1 -0
  15. package/dist/crypto/decrypt.js +16 -0
  16. package/dist/crypto/decrypt.js.map +1 -0
  17. package/dist/crypto/encrypt.d.ts +4 -0
  18. package/dist/crypto/encrypt.d.ts.map +1 -0
  19. package/dist/crypto/encrypt.js +13 -0
  20. package/dist/crypto/encrypt.js.map +1 -0
  21. package/dist/crypto/generateKey.js +11 -0
  22. package/dist/crypto/generateKey.js.map +1 -0
  23. package/dist/date/apiaDateToStandarFormat.d.ts +4 -0
  24. package/dist/date/apiaDateToStandarFormat.d.ts.map +1 -0
  25. package/dist/date/apiaDateToStandarFormat.js +12 -0
  26. package/dist/date/apiaDateToStandarFormat.js.map +1 -0
  27. package/dist/date/dateToApiaFormat.d.ts +4 -0
  28. package/dist/date/dateToApiaFormat.d.ts.map +1 -0
  29. package/dist/date/dateToApiaFormat.js +9 -0
  30. package/dist/date/dateToApiaFormat.js.map +1 -0
  31. package/dist/date/getDateFormat.d.ts +11 -0
  32. package/dist/date/getDateFormat.d.ts.map +1 -0
  33. package/dist/date/getDateFormat.js +20 -0
  34. package/dist/date/getDateFormat.js.map +1 -0
  35. package/dist/debug/debugDispatcher.d.ts +32 -0
  36. package/dist/debug/debugDispatcher.d.ts.map +1 -0
  37. package/dist/debug/debugDispatcher.js +72 -0
  38. package/dist/debug/debugDispatcher.js.map +1 -0
  39. package/dist/debug/shortcutController.d.ts +57 -0
  40. package/dist/debug/shortcutController.d.ts.map +1 -0
  41. package/dist/debug/shortcutController.js +152 -0
  42. package/dist/debug/shortcutController.js.map +1 -0
  43. package/dist/documents/downloadStringAsDoc.d.ts +8 -0
  44. package/dist/documents/downloadStringAsDoc.d.ts.map +1 -0
  45. package/dist/documents/downloadStringAsDoc.js +12 -0
  46. package/dist/documents/downloadStringAsDoc.js.map +1 -0
  47. package/dist/documents/downloadUrl.d.ts +20 -0
  48. package/dist/documents/downloadUrl.d.ts.map +1 -0
  49. package/dist/documents/downloadUrl.js +18 -0
  50. package/dist/documents/downloadUrl.js.map +1 -0
  51. package/dist/documents/openAndReadFile.d.ts +4 -0
  52. package/dist/documents/openAndReadFile.d.ts.map +1 -0
  53. package/dist/documents/openAndReadFile.js +29 -0
  54. package/dist/documents/openAndReadFile.js.map +1 -0
  55. package/dist/dom/autoDisconnectMutationObserver.d.ts +17 -0
  56. package/dist/dom/autoDisconnectMutationObserver.d.ts.map +1 -0
  57. package/dist/dom/autoDisconnectMutationObserver.js +35 -0
  58. package/dist/dom/autoDisconnectMutationObserver.js.map +1 -0
  59. package/dist/dom/customEvents.d.ts +40 -0
  60. package/dist/dom/customEvents.d.ts.map +1 -0
  61. package/dist/dom/customEvents.js +34 -0
  62. package/dist/dom/customEvents.js.map +1 -0
  63. package/dist/dom/enableChildrenFocus.d.ts +18 -0
  64. package/dist/dom/enableChildrenFocus.d.ts.map +1 -0
  65. package/dist/dom/enableChildrenFocus.js +26 -0
  66. package/dist/dom/enableChildrenFocus.js.map +1 -0
  67. package/dist/dom/findOffsetRelativeToScrollParent.d.ts +7 -0
  68. package/dist/dom/findOffsetRelativeToScrollParent.d.ts.map +1 -0
  69. package/dist/dom/findOffsetRelativeToScrollParent.js +19 -0
  70. package/dist/dom/findOffsetRelativeToScrollParent.js.map +1 -0
  71. package/dist/dom/findScrollContainer.d.ts +8 -0
  72. package/dist/dom/findScrollContainer.d.ts.map +1 -0
  73. package/dist/dom/findScrollContainer.js +9 -0
  74. package/dist/dom/findScrollContainer.js.map +1 -0
  75. package/dist/dom/getFocusSelector.d.ts +25 -0
  76. package/dist/dom/getFocusSelector.d.ts.map +1 -0
  77. package/dist/dom/getFocusSelector.js +30 -0
  78. package/dist/dom/getFocusSelector.js.map +1 -0
  79. package/dist/dom/getSpecificParent.d.ts +23 -0
  80. package/dist/dom/getSpecificParent.d.ts.map +1 -0
  81. package/dist/dom/getSpecificParent.js +19 -0
  82. package/dist/dom/getSpecificParent.js.map +1 -0
  83. package/dist/dom/isChild.d.ts +13 -0
  84. package/dist/dom/isChild.d.ts.map +1 -0
  85. package/dist/dom/isChild.js +8 -0
  86. package/dist/dom/isChild.js.map +1 -0
  87. package/dist/dom/scrollParentIntoElement.d.ts +9 -0
  88. package/dist/dom/scrollParentIntoElement.d.ts.map +1 -0
  89. package/dist/dom/scrollParentIntoElement.js +24 -0
  90. package/dist/dom/scrollParentIntoElement.js.map +1 -0
  91. package/dist/dom/url.d.ts +18 -0
  92. package/dist/dom/url.d.ts.map +1 -0
  93. package/dist/dom/url.js +52 -0
  94. package/dist/dom/url.js.map +1 -0
  95. package/dist/dom/usePanAndZoom.d.ts +14 -0
  96. package/dist/dom/usePanAndZoom.d.ts.map +1 -0
  97. package/dist/dom/usePanAndZoom.js +111 -0
  98. package/dist/dom/usePanAndZoom.js.map +1 -0
  99. package/dist/encoding/index.d.ts +8 -0
  100. package/dist/encoding/index.d.ts.map +1 -0
  101. package/dist/encoding/index.js +12 -0
  102. package/dist/encoding/index.js.map +1 -0
  103. package/dist/events/BouncingEmitter.d.ts +67 -0
  104. package/dist/events/BouncingEmitter.d.ts.map +1 -0
  105. package/dist/events/BouncingEmitter.js +72 -0
  106. package/dist/events/BouncingEmitter.js.map +1 -0
  107. package/dist/events/EventEmitter.d.ts +47 -0
  108. package/dist/events/EventEmitter.d.ts.map +1 -0
  109. package/dist/events/EventEmitter.js +75 -0
  110. package/dist/events/EventEmitter.js.map +1 -0
  111. package/dist/events/StatefulEmitter.d.ts +44 -0
  112. package/dist/events/StatefulEmitter.d.ts.map +1 -0
  113. package/dist/events/StatefulEmitter.js +57 -0
  114. package/dist/events/StatefulEmitter.js.map +1 -0
  115. package/dist/events/types.d.ts +29 -0
  116. package/dist/events/types.d.ts.map +1 -0
  117. package/dist/focus/focusController.d.ts +108 -0
  118. package/dist/focus/focusController.d.ts.map +1 -0
  119. package/dist/focus/focusController.js +295 -0
  120. package/dist/focus/focusController.js.map +1 -0
  121. package/dist/focus/globalFocus.d.ts +24 -0
  122. package/dist/focus/globalFocus.d.ts.map +1 -0
  123. package/dist/focus/globalFocus.js +87 -0
  124. package/dist/focus/globalFocus.js.map +1 -0
  125. package/dist/history/History.d.ts +81 -0
  126. package/dist/history/History.d.ts.map +1 -0
  127. package/dist/history/History.js +122 -0
  128. package/dist/history/History.js.map +1 -0
  129. package/dist/hooks/useCombinedRefs.d.ts +18 -0
  130. package/dist/hooks/useCombinedRefs.d.ts.map +1 -0
  131. package/dist/hooks/useCombinedRefs.js +20 -0
  132. package/dist/hooks/useCombinedRefs.js.map +1 -0
  133. package/dist/hooks/useDebouncedCallback.d.ts +7 -0
  134. package/dist/hooks/useDebouncedCallback.d.ts.map +1 -0
  135. package/dist/hooks/useDebouncedCallback.js +21 -0
  136. package/dist/hooks/useDebouncedCallback.js.map +1 -0
  137. package/dist/hooks/useLatest.d.ts +13 -0
  138. package/dist/hooks/useLatest.d.ts.map +1 -0
  139. package/dist/hooks/useLatest.js +10 -0
  140. package/dist/hooks/useLatest.js.map +1 -0
  141. package/dist/hooks/useMount.d.ts +6 -0
  142. package/dist/hooks/useMount.d.ts.map +1 -0
  143. package/dist/hooks/useMount.js +14 -0
  144. package/dist/hooks/useMount.js.map +1 -0
  145. package/dist/hooks/usePrevious.d.ts +6 -0
  146. package/dist/hooks/usePrevious.d.ts.map +1 -0
  147. package/dist/hooks/usePrevious.js +12 -0
  148. package/dist/hooks/usePrevious.js.map +1 -0
  149. package/dist/hooks/useShallowMemo.d.ts +9 -0
  150. package/dist/hooks/useShallowMemo.d.ts.map +1 -0
  151. package/dist/hooks/useShallowMemo.js +42 -0
  152. package/dist/hooks/useShallowMemo.js.map +1 -0
  153. package/dist/hooks/useStateRef.d.ts +10 -0
  154. package/dist/hooks/useStateRef.d.ts.map +1 -0
  155. package/dist/hooks/useStateRef.js +11 -0
  156. package/dist/hooks/useStateRef.js.map +1 -0
  157. package/dist/hooks/useSubscription.d.ts +31 -0
  158. package/dist/hooks/useSubscription.d.ts.map +1 -0
  159. package/dist/hooks/useSubscription.js +21 -0
  160. package/dist/hooks/useSubscription.js.map +1 -0
  161. package/dist/hooks/useUnmount.d.ts +4 -0
  162. package/dist/hooks/useUnmount.d.ts.map +1 -0
  163. package/dist/hooks/useUnmount.js +10 -0
  164. package/dist/hooks/useUnmount.js.map +1 -0
  165. package/dist/hooks/useUpdateEffect.d.ts +10 -0
  166. package/dist/hooks/useUpdateEffect.d.ts.map +1 -0
  167. package/dist/hooks/useUpdateEffect.js +16 -0
  168. package/dist/hooks/useUpdateEffect.js.map +1 -0
  169. package/dist/imperative/makeImperativeComponent.d.ts +56 -0
  170. package/dist/imperative/makeImperativeComponent.d.ts.map +1 -0
  171. package/dist/imperative/makeImperativeComponent.js +48 -0
  172. package/dist/imperative/makeImperativeComponent.js.map +1 -0
  173. package/dist/imperative/makeSingleImperativeComponent.d.ts +15 -0
  174. package/dist/imperative/makeSingleImperativeComponent.d.ts.map +1 -0
  175. package/dist/imperative/makeSingleImperativeComponent.js +31 -0
  176. package/dist/imperative/makeSingleImperativeComponent.js.map +1 -0
  177. package/dist/imperative/types.d.ts +22 -0
  178. package/dist/imperative/types.d.ts.map +1 -0
  179. package/dist/imperative/types.js +8 -0
  180. package/dist/imperative/types.js.map +1 -0
  181. package/dist/imperative/useImperativeComponentEvents.d.ts +6 -0
  182. package/dist/imperative/useImperativeComponentEvents.d.ts.map +1 -0
  183. package/dist/imperative/useImperativeComponentEvents.js +35 -0
  184. package/dist/imperative/useImperativeComponentEvents.js.map +1 -0
  185. package/dist/imperative/useImperativeIdentifierContext.d.ts +14 -0
  186. package/dist/imperative/useImperativeIdentifierContext.d.ts.map +1 -0
  187. package/dist/imperative/useImperativeIdentifierContext.js +10 -0
  188. package/dist/imperative/useImperativeIdentifierContext.js.map +1 -0
  189. package/dist/index.d.ts +69 -1777
  190. package/dist/index.js +63 -2659
  191. package/dist/index.js.map +1 -1
  192. package/dist/labels/formatMessage.d.ts +19 -0
  193. package/dist/labels/formatMessage.d.ts.map +1 -0
  194. package/dist/labels/formatMessage.js +13 -0
  195. package/dist/labels/formatMessage.js.map +1 -0
  196. package/dist/labels/getLabel.d.ts +34 -0
  197. package/dist/labels/getLabel.d.ts.map +1 -0
  198. package/dist/labels/getLabel.js +18 -0
  199. package/dist/labels/getLabel.js.map +1 -0
  200. package/dist/number/index.d.ts +29 -0
  201. package/dist/number/index.d.ts.map +1 -0
  202. package/dist/number/index.js +43 -0
  203. package/dist/number/index.js.map +1 -0
  204. package/dist/objects/getValueByPath.d.ts +23 -0
  205. package/dist/objects/getValueByPath.d.ts.map +1 -0
  206. package/dist/objects/getValueByPath.js +19 -0
  207. package/dist/objects/getValueByPath.js.map +1 -0
  208. package/dist/objects/setValueByPath.d.ts +33 -0
  209. package/dist/objects/setValueByPath.d.ts.map +1 -0
  210. package/dist/objects/setValueByPath.js +35 -0
  211. package/dist/objects/setValueByPath.js.map +1 -0
  212. package/dist/propsStore/propsStore.d.ts +42 -0
  213. package/dist/propsStore/propsStore.d.ts.map +1 -0
  214. package/dist/propsStore/propsStore.js +157 -0
  215. package/dist/propsStore/propsStore.js.map +1 -0
  216. package/dist/propsStore/types.d.ts +24 -0
  217. package/dist/propsStore/types.d.ts.map +1 -0
  218. package/dist/propsStore/usePropsSelector.d.ts +67 -0
  219. package/dist/propsStore/usePropsSelector.d.ts.map +1 -0
  220. package/dist/propsStore/usePropsSelector.js +92 -0
  221. package/dist/propsStore/usePropsSelector.js.map +1 -0
  222. package/dist/screenLock/screenLocker.d.ts +60 -0
  223. package/dist/screenLock/screenLocker.d.ts.map +1 -0
  224. package/dist/screenLock/screenLocker.js +95 -0
  225. package/dist/screenLock/screenLocker.js.map +1 -0
  226. package/dist/states/useDebouncedState.d.ts +10 -0
  227. package/dist/states/useDebouncedState.d.ts.map +1 -0
  228. package/dist/states/useDebouncedState.js +22 -0
  229. package/dist/states/useDebouncedState.js.map +1 -0
  230. package/dist/states/useDomState.d.ts +86 -0
  231. package/dist/states/useDomState.d.ts.map +1 -0
  232. package/dist/states/useDomState.js +35 -0
  233. package/dist/states/useDomState.js.map +1 -0
  234. package/dist/storage/StatefulStore.d.ts +205 -0
  235. package/dist/storage/StatefulStore.d.ts.map +1 -0
  236. package/dist/storage/StatefulStore.js +301 -0
  237. package/dist/storage/StatefulStore.js.map +1 -0
  238. package/dist/storage/persistentStorage.d.ts +12 -0
  239. package/dist/storage/persistentStorage.d.ts.map +1 -0
  240. package/dist/storage/persistentStorage.js +28 -0
  241. package/dist/storage/persistentStorage.js.map +1 -0
  242. package/dist/storage/useLocalStorage.d.ts +7 -0
  243. package/dist/storage/useLocalStorage.d.ts.map +1 -0
  244. package/dist/storage/useLocalStorage.js +40 -0
  245. package/dist/storage/useLocalStorage.js.map +1 -0
  246. package/dist/string/alignment.d.ts +25 -0
  247. package/dist/string/alignment.d.ts.map +1 -0
  248. package/dist/string/alignment.js +26 -0
  249. package/dist/string/alignment.js.map +1 -0
  250. package/dist/string/ucfirst.d.ts +4 -0
  251. package/dist/string/ucfirst.d.ts.map +1 -0
  252. package/dist/string/ucfirst.js +6 -0
  253. package/dist/string/ucfirst.js.map +1 -0
  254. package/dist/typeGuards/toBoolean.d.ts +26 -0
  255. package/dist/typeGuards/toBoolean.d.ts.map +1 -0
  256. package/dist/typeGuards/toBoolean.js +11 -0
  257. package/dist/typeGuards/toBoolean.js.map +1 -0
  258. package/dist/types/apia/common.d.ts +114 -0
  259. package/dist/types/apia/common.d.ts.map +1 -0
  260. package/dist/types/apia/date.d.ts +4 -0
  261. package/dist/types/apia/date.d.ts.map +1 -0
  262. package/dist/types/apia/forms.d.ts +221 -0
  263. package/dist/types/apia/forms.d.ts.map +1 -0
  264. package/dist/types/misc.d.ts +9 -0
  265. package/dist/types/misc.d.ts.map +1 -0
  266. package/dist/xml/parseXmlAsync.d.ts +4 -0
  267. package/dist/xml/parseXmlAsync.d.ts.map +1 -0
  268. package/dist/xml/parseXmlAsync.js +58 -0
  269. package/dist/xml/parseXmlAsync.js.map +1 -0
  270. package/package.json +24 -35
  271. package/LICENSE.md +0 -21
  272. package/README.md +0 -18
  273. package/cleanDist.json +0 -3
  274. package/entries.json +0 -1
@@ -0,0 +1,16 @@
1
+ import { useRef, useEffect } from 'react';
2
+
3
+ function useUpdateEffect(effect, deps) {
4
+ const hasRunnedForFirstTime = useRef(false);
5
+ useEffect(() => {
6
+ if (hasRunnedForFirstTime.current) {
7
+ return effect();
8
+ }
9
+ hasRunnedForFirstTime.current = true;
10
+ return () => {
11
+ };
12
+ }, deps);
13
+ }
14
+
15
+ export { useUpdateEffect };
16
+ //# sourceMappingURL=useUpdateEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpdateEffect.js","sources":["../../src/hooks/useUpdateEffect.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { DependencyList, EffectCallback, useEffect, useRef } from 'react';\n\n/**\n * Este hook se comporta igual que useEffect, con la diferencia de que en el\n * primer renderizado no se va a ejecutar.\n */\nexport function useUpdateEffect(effect: EffectCallback, deps?: DependencyList) {\n const hasRunnedForFirstTime = useRef(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (hasRunnedForFirstTime.current) {\n return effect();\n }\n hasRunnedForFirstTime.current = true;\n return () => {};\n }, deps);\n}\n"],"names":[],"mappings":";;AAOgB,SAAA,eAAA,CAAgB,QAAwB,IAAuB,EAAA;AAC7E,EAAM,MAAA,qBAAA,GAAwB,OAAO,KAAK,CAAA,CAAA;AAE1C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,sBAAsB,OAAS,EAAA;AACjC,MAAA,OAAO,MAAO,EAAA,CAAA;AAAA,KAChB;AACA,IAAA,qBAAA,CAAsB,OAAU,GAAA,IAAA,CAAA;AAChC,IAAA,OAAO,MAAM;AAAA,KAAC,CAAA;AAAA,KACb,IAAI,CAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,56 @@
1
+ import { FC } from 'react';
2
+ import { TMap, TMethods, TMethodsMap, TFireEvent } from './types.js';
3
+ import { TId } from '../types/misc.js';
4
+
5
+ /**
6
+ * Permite la creación de componentes multi-instancia que ofrecen métodos para
7
+ * trabajar sobre su estado o su comportamiento interno.
8
+ *
9
+ * @example
10
+ * const [methods, events, Imperative] = makeImperativeComponent<
11
+ {
12
+ age: number;
13
+ },
14
+ { blink: number }
15
+ >()(
16
+ {} as {
17
+ name: string;
18
+ },
19
+ {
20
+ setName(setState, name: string) {
21
+ setState({ name });
22
+ },
23
+ },
24
+ ({ age, name, useEvents }) => {
25
+ const [isBlinking, setIsBlinking] = useState(false);
26
+
27
+ useEvents({
28
+ blink() {
29
+ setInterval(() => setIsBlinking((current) => !current), 300);
30
+ },
31
+ });
32
+
33
+ return (
34
+ <Box sx={{ background: isBlinking ? 'red' : undefined }}>
35
+ {age} {name}
36
+ </Box>
37
+ );
38
+ },
39
+ );
40
+
41
+ methods
42
+ */
43
+ declare function makeImperativeComponent<ComponentProps extends TMap, Events extends TMap = TMap>(): <State extends TMap, Methods extends TMethods<State>>({ Component, initialState, methods, }: {
44
+ initialState?: State | undefined;
45
+ methods?: Methods | undefined;
46
+ Component: FC<Omit<ComponentProps, 'id'> & State>;
47
+ }) => [
48
+ TMethodsMap<Methods>,
49
+ TFireEvent<Events>,
50
+ FC<ComponentProps & {
51
+ id: TId;
52
+ }>
53
+ ];
54
+
55
+ export { makeImperativeComponent as default };
56
+ //# sourceMappingURL=makeImperativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeImperativeComponent.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useMemo } from 'react';
3
+ import { ImperativeComponentContext } from './types.js';
4
+
5
+ function makeImperativeComponent() {
6
+ return function ImperativeComponent({
7
+ Component,
8
+ initialState,
9
+ methods
10
+ }) {
11
+ const setStates = {};
12
+ const actualMethods = {};
13
+ Object.entries(methods ?? {}).forEach(([key, method]) => {
14
+ actualMethods[key] = (id, ...args) => {
15
+ if (setStates[id])
16
+ method(setStates[id], ...args);
17
+ else {
18
+ console.warn(`The requested id does not exist: ${id}`);
19
+ }
20
+ };
21
+ });
22
+ const eventsHandlers = {};
23
+ const fireEvent = (id, ev, args) => {
24
+ if (eventsHandlers[id])
25
+ eventsHandlers[id]?.[ev]?.forEach((current) => current.cb(args));
26
+ else
27
+ console.warn(`The requested id does not exist: ${id}`);
28
+ };
29
+ const ActualComponent = ({
30
+ id,
31
+ ...props
32
+ }) => {
33
+ const [state, innerSetState] = useState(initialState);
34
+ setStates[id] = (newState) => innerSetState((current) => ({ ...current, ...newState }));
35
+ return /* @__PURE__ */ jsx(
36
+ ImperativeComponentContext.Provider,
37
+ {
38
+ value: useMemo(() => ({ id, eventsStore: eventsHandlers }), [id]),
39
+ children: /* @__PURE__ */ jsx(Component, { ...props, ...state })
40
+ }
41
+ );
42
+ };
43
+ return [actualMethods, fireEvent, ActualComponent];
44
+ };
45
+ }
46
+
47
+ export { makeImperativeComponent as default };
48
+ //# sourceMappingURL=makeImperativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeImperativeComponent.js","sources":["../../src/imperative/makeImperativeComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { FC, useMemo, useState } from 'react';\nimport {\n TMap,\n TMethods,\n TMethodsMap,\n TFireEvent,\n TStateManager,\n TMethod,\n TEventsHandlers,\n ImperativeComponentContext,\n} from './types';\nimport { TId } from '../types';\n\n/**\n * Permite la creación de componentes multi-instancia que ofrecen métodos para\n * trabajar sobre su estado o su comportamiento interno.\n * \n * @example\n * const [methods, events, Imperative] = makeImperativeComponent<\n {\n age: number;\n },\n { blink: number }\n >()(\n {} as {\n name: string;\n },\n {\n setName(setState, name: string) {\n setState({ name });\n },\n },\n ({ age, name, useEvents }) => {\n const [isBlinking, setIsBlinking] = useState(false);\n\n useEvents({\n blink() {\n setInterval(() => setIsBlinking((current) => !current), 300);\n },\n });\n\n return (\n <Box sx={{ background: isBlinking ? 'red' : undefined }}>\n {age} {name}\n </Box>\n );\n },\n );\n\n methods\n */\nexport default function makeImperativeComponent<\n ComponentProps extends TMap,\n Events extends TMap = TMap,\n>() {\n return function ImperativeComponent<\n State extends TMap,\n Methods extends TMethods<State>,\n >({\n Component,\n initialState,\n methods,\n }: {\n initialState?: State;\n methods?: Methods;\n Component: FC<Omit<ComponentProps, 'id'> & State>;\n }): [\n TMethodsMap<Methods>,\n TFireEvent<Events>,\n FC<ComponentProps & { id: TId }>,\n ] {\n /**\n * State methods\n */\n\n const setStates: Record<string, TStateManager<State>> = {};\n const actualMethods: TMethodsMap<Methods> = {} as TMethodsMap<Methods>;\n Object.entries(methods ?? {}).forEach(([key, method]) => {\n actualMethods[key as keyof Methods] = ((id, ...args: any) => {\n if (setStates[id]) method(setStates[id], ...args);\n else {\n console.warn(`The requested id does not exist: ${id}`);\n }\n }) as TMethod<Methods[keyof Methods]>;\n });\n\n /**\n * Events\n */\n const eventsHandlers: TEventsHandlers<Events> = {};\n\n const fireEvent: TFireEvent<Events> = <K extends keyof Events>(\n id: TId,\n ev: K,\n args?: Events[K],\n ) => {\n if (eventsHandlers[id])\n eventsHandlers[id]?.[ev]?.forEach((current) => current.cb(args));\n else console.warn(`The requested id does not exist: ${id}`);\n };\n\n /**\n * Component\n */\n\n const ActualComponent: FC<ComponentProps & { id: TId }> = ({\n id,\n ...props\n }) => {\n const [state, innerSetState] = useState(initialState as State);\n\n setStates[id] = (newState) =>\n innerSetState((current) => ({ ...current, ...newState }));\n\n return (\n <ImperativeComponentContext.Provider\n value={useMemo(() => ({ id, eventsStore: eventsHandlers }), [id])}\n >\n <Component {...props} {...state} />\n </ImperativeComponentContext.Provider>\n );\n };\n\n return [actualMethods, fireEvent, ActualComponent];\n };\n}\n"],"names":[],"mappings":";;;;AAqDA,SAAwB,uBAGpB,GAAA;AACF,EAAA,OAAO,SAAS,mBAGd,CAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,GASA,EAAA;AAKA,IAAA,MAAM,YAAkD,EAAC,CAAA;AACzD,IAAA,MAAM,gBAAsC,EAAC,CAAA;AAC7C,IAAO,MAAA,CAAA,OAAA,CAAQ,OAAW,IAAA,EAAE,CAAA,CAAE,QAAQ,CAAC,CAAC,GAAK,EAAA,MAAM,CAAM,KAAA;AACvD,MAAA,aAAA,CAAc,GAAoB,CAAA,GAAK,CAAC,EAAA,EAAA,GAAO,IAAc,KAAA;AAC3D,QAAA,IAAI,UAAU,EAAE,CAAA;AAAG,UAAA,MAAA,CAAO,SAAU,CAAA,EAAE,CAAG,EAAA,GAAG,IAAI,CAAA,CAAA;AAAA,aAC3C;AACH,UAAQ,OAAA,CAAA,IAAA,CAAK,CAAoC,iCAAA,EAAA,EAAE,CAAE,CAAA,CAAA,CAAA;AAAA,SACvD;AAAA,OACF,CAAA;AAAA,KACD,CAAA,CAAA;AAKD,IAAA,MAAM,iBAA0C,EAAC,CAAA;AAEjD,IAAA,MAAM,SAAgC,GAAA,CACpC,EACA,EAAA,EAAA,EACA,IACG,KAAA;AACH,MAAA,IAAI,eAAe,EAAE,CAAA;AACnB,QAAe,cAAA,CAAA,EAAE,CAAI,GAAA,EAAE,CAAG,EAAA,OAAA,CAAQ,CAAC,OAAY,KAAA,OAAA,CAAQ,EAAG,CAAA,IAAI,CAAC,CAAA,CAAA;AAAA;AAC5D,QAAQ,OAAA,CAAA,IAAA,CAAK,CAAoC,iCAAA,EAAA,EAAE,CAAE,CAAA,CAAA,CAAA;AAAA,KAC5D,CAAA;AAMA,IAAA,MAAM,kBAAoD,CAAC;AAAA,MACzD,EAAA;AAAA,MACA,GAAG,KAAA;AAAA,KACC,KAAA;AACJ,MAAA,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,GAAI,SAAS,YAAqB,CAAA,CAAA;AAE7D,MAAA,SAAA,CAAU,EAAE,CAAA,GAAI,CAAC,QAAA,KACf,aAAc,CAAA,CAAC,OAAa,MAAA,EAAE,GAAG,OAAA,EAAS,GAAG,QAAA,EAAW,CAAA,CAAA,CAAA;AAE1D,MACE,uBAAA,GAAA;AAAA,QAAC,0BAA2B,CAAA,QAAA;AAAA,QAA3B;AAAA,UACC,KAAA,EAAO,OAAQ,CAAA,OAAO,EAAE,EAAA,EAAI,aAAa,cAAe,EAAA,CAAA,EAAI,CAAC,EAAE,CAAC,CAAA;AAAA,UAEhE,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAW,GAAG,KAAA,EAAQ,GAAG,KAAO,EAAA,CAAA;AAAA,SAAA;AAAA,OACnC,CAAA;AAAA,KAEJ,CAAA;AAEA,IAAO,OAAA,CAAC,aAAe,EAAA,SAAA,EAAW,eAAe,CAAA,CAAA;AAAA,GACnD,CAAA;AACF;;;;"}
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+ import { TMap, TMethods, TMethodsMap } from './types.js';
3
+ import { TId } from '../types/misc.js';
4
+
5
+ type TSingleMethodsMap<Methods extends TMethods<any>, MethodsMap extends TMethodsMap<Methods>> = {
6
+ [Name in keyof MethodsMap]: MethodsMap[Name] extends (id: TId, ...args: infer Action) => unknown ? (...args: Action) => unknown : never;
7
+ };
8
+ declare function makeSingleImperativeComponent<ComponentProps extends TMap, Events extends TMap = TMap>(): <State extends TMap, Methods extends TMethods<State>>({ initialState, methods, Component, }: {
9
+ initialState?: State | undefined;
10
+ methods?: Methods | undefined;
11
+ Component: FC<Omit<ComponentProps, 'id'> & State>;
12
+ }) => [TSingleMethodsMap<Methods, TMethodsMap<Methods>>, <K extends keyof Events>(ev: K, args: Events[K]) => void, FC<ComponentProps>];
13
+
14
+ export { makeSingleImperativeComponent as default };
15
+ //# sourceMappingURL=makeSingleImperativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeSingleImperativeComponent.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import uniqueId from 'lodash-es/uniqueId';
3
+ import makeImperativeComponent from './makeImperativeComponent.js';
4
+
5
+ function makeSingleImperativeComponent() {
6
+ return function SingleImperativeComponent({
7
+ initialState,
8
+ methods,
9
+ Component
10
+ }) {
11
+ const id = uniqueId();
12
+ const [actualMethods, originalFireEvent, ImperativeComponent] = makeImperativeComponent()({
13
+ initialState,
14
+ methods,
15
+ Component
16
+ });
17
+ const fireEvent = (ev, args) => originalFireEvent(id, ev, args);
18
+ const newMethods = {};
19
+ Object.entries(actualMethods).forEach(([name, method]) => {
20
+ newMethods[name] = (...args) => method(id, ...args);
21
+ });
22
+ return [
23
+ newMethods,
24
+ fireEvent,
25
+ (props) => /* @__PURE__ */ jsx(ImperativeComponent, { ...props, id })
26
+ ];
27
+ };
28
+ }
29
+
30
+ export { makeSingleImperativeComponent as default };
31
+ //# sourceMappingURL=makeSingleImperativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeSingleImperativeComponent.js","sources":["../../src/imperative/makeSingleImperativeComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { FC } from 'react';\nimport uniqueId from 'lodash-es/uniqueId';\nimport { TMap, TMethods, TMethodsMap } from './types';\nimport makeImperativeComponent from './makeImperativeComponent';\nimport { TId } from '../types';\n\ntype TSingleMethodsMap<\n Methods extends TMethods<any>,\n MethodsMap extends TMethodsMap<Methods>,\n> = {\n [Name in keyof MethodsMap]: MethodsMap[Name] extends (\n id: TId,\n ...args: infer Action\n ) => unknown\n ? (...args: Action) => unknown\n : never;\n};\n\nexport default function makeSingleImperativeComponent<\n ComponentProps extends TMap,\n Events extends TMap = TMap,\n>() {\n return function SingleImperativeComponent<\n State extends TMap,\n Methods extends TMethods<State>,\n >({\n initialState,\n methods,\n Component,\n }: {\n initialState?: State;\n methods?: Methods;\n Component: FC<Omit<ComponentProps, 'id'> & State>;\n }): [\n TSingleMethodsMap<Methods, TMethodsMap<Methods>>,\n <K extends keyof Events>(ev: K, args: Events[K]) => void,\n FC<ComponentProps>,\n ] {\n const id = uniqueId();\n\n const [actualMethods, originalFireEvent, ImperativeComponent] =\n makeImperativeComponent<ComponentProps, Events>()({\n initialState,\n methods,\n Component,\n });\n\n const fireEvent: <K extends keyof Events>(\n ev: K,\n args: Events[K],\n ) => void = (ev, args) => originalFireEvent(id, ev, args);\n\n const newMethods: TSingleMethodsMap<\n Methods,\n TMethodsMap<Methods>\n > = {} as TSingleMethodsMap<Methods, TMethodsMap<Methods>>;\n\n Object.entries(actualMethods).forEach(([name, method]) => {\n (newMethods[name as keyof typeof newMethods] as any) = (...args: any) =>\n (method as (id: TId, ...args: any) => unknown)(id, ...args);\n });\n\n return [\n newMethods,\n fireEvent,\n (props: ComponentProps) => <ImperativeComponent {...props} id={id} />,\n ];\n };\n}\n"],"names":[],"mappings":";;;;AAoBA,SAAwB,6BAGpB,GAAA;AACF,EAAA,OAAO,SAAS,yBAGd,CAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,GASA,EAAA;AACA,IAAA,MAAM,KAAK,QAAS,EAAA,CAAA;AAEpB,IAAA,MAAM,CAAC,aAAe,EAAA,iBAAA,EAAmB,mBAAmB,CAAA,GAC1D,yBAAkD,CAAA;AAAA,MAChD,YAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,KACD,CAAA,CAAA;AAEH,IAAA,MAAM,YAGM,CAAC,EAAA,EAAI,SAAS,iBAAkB,CAAA,EAAA,EAAI,IAAI,IAAI,CAAA,CAAA;AAExD,IAAA,MAAM,aAGF,EAAC,CAAA;AAEL,IAAO,MAAA,CAAA,OAAA,CAAQ,aAAa,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,MAAM,CAAM,KAAA;AACxD,MAAC,UAAA,CAAW,IAA+B,CAAY,GAAA,CAAA,GAAI,SACxD,MAA8C,CAAA,EAAA,EAAI,GAAG,IAAI,CAAA,CAAA;AAAA,KAC7D,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MACL,UAAA;AAAA,MACA,SAAA;AAAA,MACA,CAAC,KAA0B,qBAAA,GAAA,CAAC,mBAAqB,EAAA,EAAA,GAAG,OAAO,EAAQ,EAAA,CAAA;AAAA,KACrE,CAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,22 @@
1
+ import { TId } from '../types/misc.js';
2
+
3
+ type TMethod<CR> = CR extends (state: any, ...args: infer Action) => any ? (id: TId, ...args: Action) => unknown : () => unknown;
4
+ type TMethods<State extends TMap, K extends any[] = any[]> = Record<string, (setState: TStateManager<State>, ...args: K) => void>;
5
+ type TMethodsMap<OriginalMethods extends TMethods<any>> = {
6
+ [Name in keyof OriginalMethods]: TMethod<OriginalMethods[Name]>;
7
+ };
8
+ type TEventsMap<OriginalEvents extends TMap> = {
9
+ [Name in keyof OriginalEvents]: (args: OriginalEvents[Name]) => unknown;
10
+ };
11
+ type TEventsHandlers<OriginalEvents extends TMap> = Record<TId, {
12
+ [Name in keyof OriginalEvents]?: {
13
+ cb: (args?: OriginalEvents[Name]) => unknown;
14
+ uniqueHookId: string;
15
+ }[];
16
+ }>;
17
+ type TMap = Record<string, any>;
18
+ type TStateManager<State> = (newState: Partial<State>) => void;
19
+ type TFireEvent<Events extends TMap> = <K extends keyof Events>(id: TId, ev: K, args: Events[K] extends void ? undefined : Events[K]) => void;
20
+
21
+ export type { TEventsHandlers, TEventsMap, TFireEvent, TMap, TMethod, TMethods, TMethodsMap, TStateManager };
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+
3
+ const ImperativeComponentContext = createContext(
4
+ {}
5
+ );
6
+
7
+ export { ImperativeComponentContext };
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../src/imperative/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext } from 'react';\nimport { TId } from '../types';\n\nexport type TMethod<CR> = CR extends (state: any, ...args: infer Action) => any\n ? (id: TId, ...args: Action) => unknown\n : () => unknown;\n\nexport type TMethods<State extends TMap, K extends any[] = any[]> = Record<\n string,\n (setState: TStateManager<State>, ...args: K) => void\n>;\n\nexport type TMethodsMap<OriginalMethods extends TMethods<any>> = {\n [Name in keyof OriginalMethods]: TMethod<OriginalMethods[Name]>;\n};\n\nexport type TEventsMap<OriginalEvents extends TMap> = {\n [Name in keyof OriginalEvents]: (args: OriginalEvents[Name]) => unknown;\n};\n\nexport type TEventsHandlers<OriginalEvents extends TMap> = Record<\n TId,\n {\n [Name in keyof OriginalEvents]?: {\n cb: (args?: OriginalEvents[Name]) => unknown;\n uniqueHookId: string;\n }[];\n }\n>;\n\nexport type TMap = Record<string, any>;\n\nexport type TStateManager<State> = (newState: Partial<State>) => void;\n\nexport type TUseEvents<Events extends TMap> = (\n handlers: Partial<TEventsMap<Events>>,\n) => void;\n\nexport const ImperativeComponentContext = createContext<{\n id: TId;\n eventsStore: TEventsHandlers<any>;\n}>(\n {} as {\n id: TId;\n eventsStore: TEventsHandlers<any>;\n },\n);\n\nexport type TFireEvent<Events extends TMap> = <K extends keyof Events>(\n id: TId,\n ev: K,\n args: Events[K] extends void ? undefined : Events[K],\n) => void;\n"],"names":[],"mappings":";;AAuCO,MAAM,0BAA6B,GAAA,aAAA;AAAA,EAIxC,EAAC;AAIH;;;;"}
@@ -0,0 +1,6 @@
1
+ import { TMap, TEventsMap } from './types.js';
2
+
3
+ declare const useImperativeComponentEvents: <Events extends TMap = TMap>(handlers: Partial<TEventsMap<Events>>) => string;
4
+
5
+ export { useImperativeComponentEvents as default };
6
+ //# sourceMappingURL=useImperativeComponentEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImperativeComponentEvents.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { useMemo, useRef, useCallback, useEffect } from 'react';
2
+ import useImperativeComponentContext from './useImperativeIdentifierContext.js';
3
+ import uniqueId from 'lodash-es/uniqueId';
4
+
5
+ const useImperativeComponentEvents = (handlers) => {
6
+ const uniqueHookId = useMemo(() => uniqueId("hook"), []);
7
+ const { id, eventsStore } = useImperativeComponentContext();
8
+ const hasRegistered = useRef(false);
9
+ const registerEvents = useCallback(() => {
10
+ Object.entries(handlers).forEach(([name, callback]) => {
11
+ if (!eventsStore[id])
12
+ eventsStore[id] = {};
13
+ if (!eventsStore[id][name])
14
+ eventsStore[id][name] = [];
15
+ eventsStore[id][name]?.push({
16
+ cb: callback,
17
+ uniqueHookId
18
+ });
19
+ });
20
+ }, [eventsStore, handlers, id, uniqueHookId]);
21
+ useEffect(() => {
22
+ registerEvents();
23
+ return () => {
24
+ hasRegistered.current = false;
25
+ Object.entries(handlers).forEach(([name]) => {
26
+ eventsStore[id][name] = (eventsStore[id][name] ?? []).filter((current) => current.uniqueHookId !== uniqueHookId);
27
+ });
28
+ };
29
+ }, [eventsStore, handlers, id, registerEvents, uniqueHookId]);
30
+ return uniqueHookId;
31
+ };
32
+ var useImperativeComponentEvents$1 = useImperativeComponentEvents;
33
+
34
+ export { useImperativeComponentEvents$1 as default };
35
+ //# sourceMappingURL=useImperativeComponentEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImperativeComponentEvents.js","sources":["../../src/imperative/useImperativeComponentEvents.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { TEventsMap, TMap } from './types';\nimport useImperativeComponentContext from './useImperativeIdentifierContext';\nimport uniqueId from 'lodash-es/uniqueId';\n\nconst useImperativeComponentEvents = <Events extends TMap = TMap>(\n handlers: Partial<TEventsMap<Events>>,\n) => {\n const uniqueHookId = useMemo(() => uniqueId('hook'), []);\n\n const { id, eventsStore } = useImperativeComponentContext<Events>();\n const hasRegistered = useRef(false);\n\n const registerEvents = useCallback(() => {\n Object.entries(handlers).forEach(([name, callback]) => {\n if (!eventsStore[id]) eventsStore[id] = {};\n if (!eventsStore[id][name])\n eventsStore[id][name as keyof (typeof eventsStore)[typeof id]] = [];\n\n eventsStore[id][name as keyof (typeof eventsStore)[typeof id]]?.push({\n cb: callback as (args?: Events[keyof Events] | undefined) => unknown,\n uniqueHookId: uniqueHookId,\n });\n });\n }, [eventsStore, handlers, id, uniqueHookId]);\n\n useEffect(() => {\n registerEvents();\n return () => {\n hasRegistered.current = false;\n Object.entries(handlers).forEach(([name]) => {\n eventsStore[id][name as keyof (typeof eventsStore)[typeof id]] = (\n eventsStore[id][name as keyof (typeof eventsStore)[typeof id]] ?? []\n ).filter((current) => current.uniqueHookId !== uniqueHookId);\n });\n };\n }, [eventsStore, handlers, id, registerEvents, uniqueHookId]);\n\n return uniqueHookId;\n};\n\nexport default useImperativeComponentEvents;\n"],"names":[],"mappings":";;;;AAMA,MAAM,4BAAA,GAA+B,CACnC,QACG,KAAA;AACH,EAAA,MAAM,eAAe,OAAQ,CAAA,MAAM,SAAS,MAAM,CAAA,EAAG,EAAE,CAAA,CAAA;AAEvD,EAAA,MAAM,EAAE,EAAA,EAAI,WAAY,EAAA,GAAI,6BAAsC,EAAA,CAAA;AAClE,EAAM,MAAA,aAAA,GAAgB,OAAO,KAAK,CAAA,CAAA;AAElC,EAAM,MAAA,cAAA,GAAiB,YAAY,MAAM;AACvC,IAAO,MAAA,CAAA,OAAA,CAAQ,QAAQ,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,QAAQ,CAAM,KAAA;AACrD,MAAI,IAAA,CAAC,YAAY,EAAE,CAAA;AAAG,QAAY,WAAA,CAAA,EAAE,IAAI,EAAC,CAAA;AACzC,MAAA,IAAI,CAAC,WAAA,CAAY,EAAE,CAAA,CAAE,IAAI,CAAA;AACvB,QAAA,WAAA,CAAY,EAAE,CAAA,CAAE,IAA6C,CAAA,GAAI,EAAC,CAAA;AAEpE,MAAA,WAAA,CAAY,EAAE,CAAA,CAAE,IAA6C,CAAA,EAAG,IAAK,CAAA;AAAA,QACnE,EAAI,EAAA,QAAA;AAAA,QACJ,YAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,KACA,CAAC,WAAA,EAAa,QAAU,EAAA,EAAA,EAAI,YAAY,CAAC,CAAA,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAe,cAAA,EAAA,CAAA;AACf,IAAA,OAAO,MAAM;AACX,MAAA,aAAA,CAAc,OAAU,GAAA,KAAA,CAAA;AACxB,MAAA,MAAA,CAAO,QAAQ,QAAQ,CAAA,CAAE,QAAQ,CAAC,CAAC,IAAI,CAAM,KAAA;AAC3C,QAAA,WAAA,CAAY,EAAE,CAAE,CAAA,IAA6C,CAC3D,GAAA,CAAA,WAAA,CAAY,EAAE,CAAE,CAAA,IAA6C,CAAK,IAAA,IAClE,MAAO,CAAA,CAAC,OAAY,KAAA,OAAA,CAAQ,iBAAiB,YAAY,CAAA,CAAA;AAAA,OAC5D,CAAA,CAAA;AAAA,KACH,CAAA;AAAA,KACC,CAAC,WAAA,EAAa,UAAU,EAAI,EAAA,cAAA,EAAgB,YAAY,CAAC,CAAA,CAAA;AAE5D,EAAO,OAAA,YAAA,CAAA;AACT,CAAA,CAAA;AAEA,qCAAe,4BAAA;;;;"}
@@ -0,0 +1,14 @@
1
+ import { TMap, TEventsHandlers } from './types.js';
2
+ import { TId } from '../types/misc.js';
3
+
4
+ /**
5
+ * Permite el uso de eventos en herederos directos o no del imperativeComponent
6
+ * más cercano.
7
+ */
8
+ declare function useImperativeComponentContext<Events extends TMap = TMap>(): {
9
+ id: TId;
10
+ eventsStore: TEventsHandlers<Events>;
11
+ };
12
+
13
+ export { useImperativeComponentContext as default };
14
+ //# sourceMappingURL=useImperativeIdentifierContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImperativeIdentifierContext.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { useContext } from 'react';
2
+ import { ImperativeComponentContext } from './types.js';
3
+
4
+ function useImperativeComponentContext() {
5
+ const context = useContext(ImperativeComponentContext);
6
+ return context;
7
+ }
8
+
9
+ export { useImperativeComponentContext as default };
10
+ //# sourceMappingURL=useImperativeIdentifierContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImperativeIdentifierContext.js","sources":["../../src/imperative/useImperativeIdentifierContext.ts"],"sourcesContent":["import { useContext } from 'react';\nimport { ImperativeComponentContext, TEventsHandlers, TMap } from './types';\nimport { TId } from '../types';\n\n/**\n * Permite el uso de eventos en herederos directos o no del imperativeComponent\n * más cercano.\n */\nexport default function useImperativeComponentContext<\n Events extends TMap = TMap,\n>() {\n const context = useContext(ImperativeComponentContext) as {\n id: TId;\n eventsStore: TEventsHandlers<Events>;\n };\n\n return context;\n}\n"],"names":[],"mappings":";;;AAQA,SAAwB,6BAEpB,GAAA;AACF,EAAM,MAAA,OAAA,GAAU,WAAW,0BAA0B,CAAA,CAAA;AAKrD,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}