@apia/util 1.0.4 → 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.
- package/dist/animate/index.d.ts +4 -0
- package/dist/animate/index.d.ts.map +1 -0
- package/dist/animate/index.js +24 -0
- package/dist/animate/index.js.map +1 -0
- package/dist/array/arrayOrArray.d.ts +4 -0
- package/dist/array/arrayOrArray.d.ts.map +1 -0
- package/dist/array/arrayOrArray.js +8 -0
- package/dist/array/arrayOrArray.js.map +1 -0
- package/dist/array/getIndex.d.ts +14 -0
- package/dist/array/getIndex.d.ts.map +1 -0
- package/dist/array/getIndex.js +12 -0
- package/dist/array/getIndex.js.map +1 -0
- package/dist/crypto/decrypt.d.ts +4 -0
- package/dist/crypto/decrypt.d.ts.map +1 -0
- package/dist/crypto/decrypt.js +16 -0
- package/dist/crypto/decrypt.js.map +1 -0
- package/dist/crypto/encrypt.d.ts +4 -0
- package/dist/crypto/encrypt.d.ts.map +1 -0
- package/dist/crypto/encrypt.js +13 -0
- package/dist/crypto/encrypt.js.map +1 -0
- package/dist/crypto/generateKey.js +11 -0
- package/dist/crypto/generateKey.js.map +1 -0
- package/dist/date/apiaDateToStandarFormat.d.ts +4 -0
- package/dist/date/apiaDateToStandarFormat.d.ts.map +1 -0
- package/dist/date/apiaDateToStandarFormat.js +12 -0
- package/dist/date/apiaDateToStandarFormat.js.map +1 -0
- package/dist/date/dateToApiaFormat.d.ts +4 -0
- package/dist/date/dateToApiaFormat.d.ts.map +1 -0
- package/dist/date/dateToApiaFormat.js +9 -0
- package/dist/date/dateToApiaFormat.js.map +1 -0
- package/dist/date/getDateFormat.d.ts +11 -0
- package/dist/date/getDateFormat.d.ts.map +1 -0
- package/dist/date/getDateFormat.js +20 -0
- package/dist/date/getDateFormat.js.map +1 -0
- package/dist/debug/debugDispatcher.d.ts +32 -0
- package/dist/debug/debugDispatcher.d.ts.map +1 -0
- package/dist/debug/debugDispatcher.js +72 -0
- package/dist/debug/debugDispatcher.js.map +1 -0
- package/dist/debug/shortcutController.d.ts +57 -0
- package/dist/debug/shortcutController.d.ts.map +1 -0
- package/dist/debug/shortcutController.js +152 -0
- package/dist/debug/shortcutController.js.map +1 -0
- package/dist/documents/downloadStringAsDoc.d.ts +8 -0
- package/dist/documents/downloadStringAsDoc.d.ts.map +1 -0
- package/dist/documents/downloadStringAsDoc.js +12 -0
- package/dist/documents/downloadStringAsDoc.js.map +1 -0
- package/dist/documents/downloadUrl.d.ts +20 -0
- package/dist/documents/downloadUrl.d.ts.map +1 -0
- package/dist/documents/downloadUrl.js +18 -0
- package/dist/documents/downloadUrl.js.map +1 -0
- package/dist/documents/openAndReadFile.d.ts +4 -0
- package/dist/documents/openAndReadFile.d.ts.map +1 -0
- package/dist/documents/openAndReadFile.js +29 -0
- package/dist/documents/openAndReadFile.js.map +1 -0
- package/dist/dom/autoDisconnectMutationObserver.d.ts +17 -0
- package/dist/dom/autoDisconnectMutationObserver.d.ts.map +1 -0
- package/dist/dom/autoDisconnectMutationObserver.js +35 -0
- package/dist/dom/autoDisconnectMutationObserver.js.map +1 -0
- package/dist/dom/customEvents.d.ts +40 -0
- package/dist/dom/customEvents.d.ts.map +1 -0
- package/dist/dom/customEvents.js +34 -0
- package/dist/dom/customEvents.js.map +1 -0
- package/dist/dom/enableChildrenFocus.d.ts +18 -0
- package/dist/dom/enableChildrenFocus.d.ts.map +1 -0
- package/dist/dom/enableChildrenFocus.js +26 -0
- package/dist/dom/enableChildrenFocus.js.map +1 -0
- package/dist/dom/findOffsetRelativeToScrollParent.d.ts +7 -0
- package/dist/dom/findOffsetRelativeToScrollParent.d.ts.map +1 -0
- package/dist/dom/findOffsetRelativeToScrollParent.js +19 -0
- package/dist/dom/findOffsetRelativeToScrollParent.js.map +1 -0
- package/dist/dom/findScrollContainer.d.ts +8 -0
- package/dist/dom/findScrollContainer.d.ts.map +1 -0
- package/dist/dom/findScrollContainer.js +9 -0
- package/dist/dom/findScrollContainer.js.map +1 -0
- package/dist/dom/getFocusSelector.d.ts +25 -0
- package/dist/dom/getFocusSelector.d.ts.map +1 -0
- package/dist/dom/getFocusSelector.js +30 -0
- package/dist/dom/getFocusSelector.js.map +1 -0
- package/dist/dom/getSpecificParent.d.ts +23 -0
- package/dist/dom/getSpecificParent.d.ts.map +1 -0
- package/dist/dom/getSpecificParent.js +19 -0
- package/dist/dom/getSpecificParent.js.map +1 -0
- package/dist/dom/isChild.d.ts +13 -0
- package/dist/dom/isChild.d.ts.map +1 -0
- package/dist/dom/isChild.js +8 -0
- package/dist/dom/isChild.js.map +1 -0
- package/dist/dom/scrollParentIntoElement.d.ts +9 -0
- package/dist/dom/scrollParentIntoElement.d.ts.map +1 -0
- package/dist/dom/scrollParentIntoElement.js +24 -0
- package/dist/dom/scrollParentIntoElement.js.map +1 -0
- package/dist/dom/url.d.ts +18 -0
- package/dist/dom/url.d.ts.map +1 -0
- package/dist/dom/url.js +52 -0
- package/dist/dom/url.js.map +1 -0
- package/dist/dom/usePanAndZoom.d.ts +14 -0
- package/dist/dom/usePanAndZoom.d.ts.map +1 -0
- package/dist/dom/usePanAndZoom.js +111 -0
- package/dist/dom/usePanAndZoom.js.map +1 -0
- package/dist/encoding/index.d.ts +8 -0
- package/dist/encoding/index.d.ts.map +1 -0
- package/dist/encoding/index.js +12 -0
- package/dist/encoding/index.js.map +1 -0
- package/dist/events/BouncingEmitter.d.ts +67 -0
- package/dist/events/BouncingEmitter.d.ts.map +1 -0
- package/dist/events/BouncingEmitter.js +72 -0
- package/dist/events/BouncingEmitter.js.map +1 -0
- package/dist/events/EventEmitter.d.ts +47 -0
- package/dist/events/EventEmitter.d.ts.map +1 -0
- package/dist/events/EventEmitter.js +75 -0
- package/dist/events/EventEmitter.js.map +1 -0
- package/dist/events/StatefulEmitter.d.ts +44 -0
- package/dist/events/StatefulEmitter.d.ts.map +1 -0
- package/dist/events/StatefulEmitter.js +57 -0
- package/dist/events/StatefulEmitter.js.map +1 -0
- package/dist/events/types.d.ts +29 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/focus/focusController.d.ts +108 -0
- package/dist/focus/focusController.d.ts.map +1 -0
- package/dist/focus/focusController.js +295 -0
- package/dist/focus/focusController.js.map +1 -0
- package/dist/focus/globalFocus.d.ts +24 -0
- package/dist/focus/globalFocus.d.ts.map +1 -0
- package/dist/focus/globalFocus.js +87 -0
- package/dist/focus/globalFocus.js.map +1 -0
- package/dist/history/History.d.ts +81 -0
- package/dist/history/History.d.ts.map +1 -0
- package/dist/history/History.js +122 -0
- package/dist/history/History.js.map +1 -0
- package/dist/hooks/useCombinedRefs.d.ts +18 -0
- package/dist/hooks/useCombinedRefs.d.ts.map +1 -0
- package/dist/hooks/useCombinedRefs.js +20 -0
- package/dist/hooks/useCombinedRefs.js.map +1 -0
- package/dist/hooks/useDebouncedCallback.d.ts +7 -0
- package/dist/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/hooks/useDebouncedCallback.js +21 -0
- package/dist/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/hooks/useLatest.d.ts +13 -0
- package/dist/hooks/useLatest.d.ts.map +1 -0
- package/dist/hooks/useLatest.js +10 -0
- package/dist/hooks/useLatest.js.map +1 -0
- package/dist/hooks/useMount.d.ts +6 -0
- package/dist/hooks/useMount.d.ts.map +1 -0
- package/dist/hooks/useMount.js +14 -0
- package/dist/hooks/useMount.js.map +1 -0
- package/dist/hooks/usePrevious.d.ts +6 -0
- package/dist/hooks/usePrevious.d.ts.map +1 -0
- package/dist/hooks/usePrevious.js +12 -0
- package/dist/hooks/usePrevious.js.map +1 -0
- package/dist/hooks/useShallowMemo.d.ts +9 -0
- package/dist/hooks/useShallowMemo.d.ts.map +1 -0
- package/dist/hooks/useShallowMemo.js +42 -0
- package/dist/hooks/useShallowMemo.js.map +1 -0
- package/dist/hooks/useStateRef.d.ts +10 -0
- package/dist/hooks/useStateRef.d.ts.map +1 -0
- package/dist/hooks/useStateRef.js +11 -0
- package/dist/hooks/useStateRef.js.map +1 -0
- package/dist/hooks/useSubscription.d.ts +31 -0
- package/dist/hooks/useSubscription.d.ts.map +1 -0
- package/dist/hooks/useSubscription.js +21 -0
- package/dist/hooks/useSubscription.js.map +1 -0
- package/dist/hooks/useUnmount.d.ts +4 -0
- package/dist/hooks/useUnmount.d.ts.map +1 -0
- package/dist/hooks/useUnmount.js +10 -0
- package/dist/hooks/useUnmount.js.map +1 -0
- package/dist/hooks/useUpdateEffect.d.ts +10 -0
- package/dist/hooks/useUpdateEffect.d.ts.map +1 -0
- package/dist/hooks/useUpdateEffect.js +16 -0
- package/dist/hooks/useUpdateEffect.js.map +1 -0
- package/dist/imperative/makeImperativeComponent.d.ts +56 -0
- package/dist/imperative/makeImperativeComponent.d.ts.map +1 -0
- package/dist/imperative/makeImperativeComponent.js +48 -0
- package/dist/imperative/makeImperativeComponent.js.map +1 -0
- package/dist/imperative/makeSingleImperativeComponent.d.ts +15 -0
- package/dist/imperative/makeSingleImperativeComponent.d.ts.map +1 -0
- package/dist/imperative/makeSingleImperativeComponent.js +31 -0
- package/dist/imperative/makeSingleImperativeComponent.js.map +1 -0
- package/dist/imperative/types.d.ts +22 -0
- package/dist/imperative/types.d.ts.map +1 -0
- package/dist/imperative/types.js +8 -0
- package/dist/imperative/types.js.map +1 -0
- package/dist/imperative/useImperativeComponentEvents.d.ts +6 -0
- package/dist/imperative/useImperativeComponentEvents.d.ts.map +1 -0
- package/dist/imperative/useImperativeComponentEvents.js +35 -0
- package/dist/imperative/useImperativeComponentEvents.js.map +1 -0
- package/dist/imperative/useImperativeIdentifierContext.d.ts +14 -0
- package/dist/imperative/useImperativeIdentifierContext.d.ts.map +1 -0
- package/dist/imperative/useImperativeIdentifierContext.js +10 -0
- package/dist/imperative/useImperativeIdentifierContext.js.map +1 -0
- package/dist/index.d.ts +69 -1777
- package/dist/index.js +63 -2659
- package/dist/index.js.map +1 -1
- package/dist/labels/formatMessage.d.ts +19 -0
- package/dist/labels/formatMessage.d.ts.map +1 -0
- package/dist/labels/formatMessage.js +13 -0
- package/dist/labels/formatMessage.js.map +1 -0
- package/dist/labels/getLabel.d.ts +34 -0
- package/dist/labels/getLabel.d.ts.map +1 -0
- package/dist/labels/getLabel.js +18 -0
- package/dist/labels/getLabel.js.map +1 -0
- package/dist/number/index.d.ts +29 -0
- package/dist/number/index.d.ts.map +1 -0
- package/dist/number/index.js +43 -0
- package/dist/number/index.js.map +1 -0
- package/dist/objects/getValueByPath.d.ts +23 -0
- package/dist/objects/getValueByPath.d.ts.map +1 -0
- package/dist/objects/getValueByPath.js +19 -0
- package/dist/objects/getValueByPath.js.map +1 -0
- package/dist/objects/setValueByPath.d.ts +33 -0
- package/dist/objects/setValueByPath.d.ts.map +1 -0
- package/dist/objects/setValueByPath.js +35 -0
- package/dist/objects/setValueByPath.js.map +1 -0
- package/dist/propsStore/propsStore.d.ts +42 -0
- package/dist/propsStore/propsStore.d.ts.map +1 -0
- package/dist/propsStore/propsStore.js +157 -0
- package/dist/propsStore/propsStore.js.map +1 -0
- package/dist/propsStore/types.d.ts +24 -0
- package/dist/propsStore/types.d.ts.map +1 -0
- package/dist/propsStore/usePropsSelector.d.ts +67 -0
- package/dist/propsStore/usePropsSelector.d.ts.map +1 -0
- package/dist/propsStore/usePropsSelector.js +92 -0
- package/dist/propsStore/usePropsSelector.js.map +1 -0
- package/dist/screenLock/screenLocker.d.ts +60 -0
- package/dist/screenLock/screenLocker.d.ts.map +1 -0
- package/dist/screenLock/screenLocker.js +95 -0
- package/dist/screenLock/screenLocker.js.map +1 -0
- package/dist/states/useDebouncedState.d.ts +10 -0
- package/dist/states/useDebouncedState.d.ts.map +1 -0
- package/dist/states/useDebouncedState.js +22 -0
- package/dist/states/useDebouncedState.js.map +1 -0
- package/dist/states/useDomState.d.ts +86 -0
- package/dist/states/useDomState.d.ts.map +1 -0
- package/dist/states/useDomState.js +35 -0
- package/dist/states/useDomState.js.map +1 -0
- package/dist/storage/StatefulStore.d.ts +205 -0
- package/dist/storage/StatefulStore.d.ts.map +1 -0
- package/dist/storage/StatefulStore.js +301 -0
- package/dist/storage/StatefulStore.js.map +1 -0
- package/dist/storage/persistentStorage.d.ts +12 -0
- package/dist/storage/persistentStorage.d.ts.map +1 -0
- package/dist/storage/persistentStorage.js +28 -0
- package/dist/storage/persistentStorage.js.map +1 -0
- package/dist/storage/useLocalStorage.d.ts +7 -0
- package/dist/storage/useLocalStorage.d.ts.map +1 -0
- package/dist/storage/useLocalStorage.js +40 -0
- package/dist/storage/useLocalStorage.js.map +1 -0
- package/dist/string/alignment.d.ts +25 -0
- package/dist/string/alignment.d.ts.map +1 -0
- package/dist/string/alignment.js +26 -0
- package/dist/string/alignment.js.map +1 -0
- package/dist/string/ucfirst.d.ts +4 -0
- package/dist/string/ucfirst.d.ts.map +1 -0
- package/dist/string/ucfirst.js +6 -0
- package/dist/string/ucfirst.js.map +1 -0
- package/dist/typeGuards/toBoolean.d.ts +26 -0
- package/dist/typeGuards/toBoolean.d.ts.map +1 -0
- package/dist/typeGuards/toBoolean.js +11 -0
- package/dist/typeGuards/toBoolean.js.map +1 -0
- package/dist/types/apia/common.d.ts +114 -0
- package/dist/types/apia/common.d.ts.map +1 -0
- package/dist/types/apia/date.d.ts +4 -0
- package/dist/types/apia/date.d.ts.map +1 -0
- package/dist/types/apia/forms.d.ts +221 -0
- package/dist/types/apia/forms.d.ts.map +1 -0
- package/dist/types/misc.d.ts +9 -0
- package/dist/types/misc.d.ts.map +1 -0
- package/dist/xml/parseXmlAsync.d.ts +4 -0
- package/dist/xml/parseXmlAsync.d.ts.map +1 -0
- package/dist/xml/parseXmlAsync.js +58 -0
- package/dist/xml/parseXmlAsync.js.map +1 -0
- package/package.json +24 -35
- package/LICENSE.md +0 -21
- package/README.md +0 -18
- package/cleanDist.json +0 -3
- 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 @@
|
|
|
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;;;;"}
|