@apia/util 3.0.1 → 3.0.6

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 (270) hide show
  1. package/dist/index.d.ts +1865 -68
  2. package/dist/index.js +2650 -62
  3. package/dist/index.js.map +1 -1
  4. package/package.json +2 -2
  5. package/dist/animate/index.d.ts +0 -4
  6. package/dist/animate/index.d.ts.map +0 -1
  7. package/dist/animate/index.js +0 -24
  8. package/dist/animate/index.js.map +0 -1
  9. package/dist/array/arrayOrArray.d.ts +0 -4
  10. package/dist/array/arrayOrArray.d.ts.map +0 -1
  11. package/dist/array/arrayOrArray.js +0 -8
  12. package/dist/array/arrayOrArray.js.map +0 -1
  13. package/dist/array/getIndex.d.ts +0 -14
  14. package/dist/array/getIndex.d.ts.map +0 -1
  15. package/dist/array/getIndex.js +0 -12
  16. package/dist/array/getIndex.js.map +0 -1
  17. package/dist/crypto/decrypt.d.ts +0 -4
  18. package/dist/crypto/decrypt.d.ts.map +0 -1
  19. package/dist/crypto/decrypt.js +0 -16
  20. package/dist/crypto/decrypt.js.map +0 -1
  21. package/dist/crypto/encrypt.d.ts +0 -4
  22. package/dist/crypto/encrypt.d.ts.map +0 -1
  23. package/dist/crypto/encrypt.js +0 -13
  24. package/dist/crypto/encrypt.js.map +0 -1
  25. package/dist/crypto/generateKey.js +0 -11
  26. package/dist/crypto/generateKey.js.map +0 -1
  27. package/dist/date/apiaDateToStandarFormat.d.ts +0 -4
  28. package/dist/date/apiaDateToStandarFormat.d.ts.map +0 -1
  29. package/dist/date/apiaDateToStandarFormat.js +0 -12
  30. package/dist/date/apiaDateToStandarFormat.js.map +0 -1
  31. package/dist/date/dateToApiaFormat.d.ts +0 -4
  32. package/dist/date/dateToApiaFormat.d.ts.map +0 -1
  33. package/dist/date/dateToApiaFormat.js +0 -9
  34. package/dist/date/dateToApiaFormat.js.map +0 -1
  35. package/dist/date/getDateFormat.d.ts +0 -11
  36. package/dist/date/getDateFormat.d.ts.map +0 -1
  37. package/dist/date/getDateFormat.js +0 -20
  38. package/dist/date/getDateFormat.js.map +0 -1
  39. package/dist/debug/debugDispatcher.d.ts +0 -32
  40. package/dist/debug/debugDispatcher.d.ts.map +0 -1
  41. package/dist/debug/debugDispatcher.js +0 -72
  42. package/dist/debug/debugDispatcher.js.map +0 -1
  43. package/dist/debug/shortcutController.d.ts +0 -57
  44. package/dist/debug/shortcutController.d.ts.map +0 -1
  45. package/dist/debug/shortcutController.js +0 -152
  46. package/dist/debug/shortcutController.js.map +0 -1
  47. package/dist/documents/downloadStringAsDoc.d.ts +0 -8
  48. package/dist/documents/downloadStringAsDoc.d.ts.map +0 -1
  49. package/dist/documents/downloadStringAsDoc.js +0 -12
  50. package/dist/documents/downloadStringAsDoc.js.map +0 -1
  51. package/dist/documents/downloadUrl.d.ts +0 -20
  52. package/dist/documents/downloadUrl.d.ts.map +0 -1
  53. package/dist/documents/downloadUrl.js +0 -18
  54. package/dist/documents/downloadUrl.js.map +0 -1
  55. package/dist/documents/openAndReadFile.d.ts +0 -4
  56. package/dist/documents/openAndReadFile.d.ts.map +0 -1
  57. package/dist/documents/openAndReadFile.js +0 -29
  58. package/dist/documents/openAndReadFile.js.map +0 -1
  59. package/dist/dom/autoDisconnectMutationObserver.d.ts +0 -17
  60. package/dist/dom/autoDisconnectMutationObserver.d.ts.map +0 -1
  61. package/dist/dom/autoDisconnectMutationObserver.js +0 -35
  62. package/dist/dom/autoDisconnectMutationObserver.js.map +0 -1
  63. package/dist/dom/customEvents.d.ts +0 -40
  64. package/dist/dom/customEvents.d.ts.map +0 -1
  65. package/dist/dom/customEvents.js +0 -34
  66. package/dist/dom/customEvents.js.map +0 -1
  67. package/dist/dom/enableChildrenFocus.d.ts +0 -18
  68. package/dist/dom/enableChildrenFocus.d.ts.map +0 -1
  69. package/dist/dom/enableChildrenFocus.js +0 -26
  70. package/dist/dom/enableChildrenFocus.js.map +0 -1
  71. package/dist/dom/findOffsetRelativeToScrollParent.d.ts +0 -7
  72. package/dist/dom/findOffsetRelativeToScrollParent.d.ts.map +0 -1
  73. package/dist/dom/findOffsetRelativeToScrollParent.js +0 -19
  74. package/dist/dom/findOffsetRelativeToScrollParent.js.map +0 -1
  75. package/dist/dom/findScrollContainer.d.ts +0 -8
  76. package/dist/dom/findScrollContainer.d.ts.map +0 -1
  77. package/dist/dom/findScrollContainer.js +0 -9
  78. package/dist/dom/findScrollContainer.js.map +0 -1
  79. package/dist/dom/getFocusSelector.d.ts +0 -25
  80. package/dist/dom/getFocusSelector.d.ts.map +0 -1
  81. package/dist/dom/getFocusSelector.js +0 -30
  82. package/dist/dom/getFocusSelector.js.map +0 -1
  83. package/dist/dom/getSpecificParent.d.ts +0 -23
  84. package/dist/dom/getSpecificParent.d.ts.map +0 -1
  85. package/dist/dom/getSpecificParent.js +0 -19
  86. package/dist/dom/getSpecificParent.js.map +0 -1
  87. package/dist/dom/isChild.d.ts +0 -13
  88. package/dist/dom/isChild.d.ts.map +0 -1
  89. package/dist/dom/isChild.js +0 -8
  90. package/dist/dom/isChild.js.map +0 -1
  91. package/dist/dom/scrollParentIntoElement.d.ts +0 -9
  92. package/dist/dom/scrollParentIntoElement.d.ts.map +0 -1
  93. package/dist/dom/scrollParentIntoElement.js +0 -24
  94. package/dist/dom/scrollParentIntoElement.js.map +0 -1
  95. package/dist/dom/url.d.ts +0 -18
  96. package/dist/dom/url.d.ts.map +0 -1
  97. package/dist/dom/url.js +0 -52
  98. package/dist/dom/url.js.map +0 -1
  99. package/dist/dom/usePanAndZoom.d.ts +0 -14
  100. package/dist/dom/usePanAndZoom.d.ts.map +0 -1
  101. package/dist/dom/usePanAndZoom.js +0 -111
  102. package/dist/dom/usePanAndZoom.js.map +0 -1
  103. package/dist/encoding/index.d.ts +0 -8
  104. package/dist/encoding/index.d.ts.map +0 -1
  105. package/dist/encoding/index.js +0 -12
  106. package/dist/encoding/index.js.map +0 -1
  107. package/dist/events/BouncingEmitter.d.ts +0 -67
  108. package/dist/events/BouncingEmitter.d.ts.map +0 -1
  109. package/dist/events/BouncingEmitter.js +0 -72
  110. package/dist/events/BouncingEmitter.js.map +0 -1
  111. package/dist/events/EventEmitter.d.ts +0 -47
  112. package/dist/events/EventEmitter.d.ts.map +0 -1
  113. package/dist/events/EventEmitter.js +0 -75
  114. package/dist/events/EventEmitter.js.map +0 -1
  115. package/dist/events/StatefulEmitter.d.ts +0 -44
  116. package/dist/events/StatefulEmitter.d.ts.map +0 -1
  117. package/dist/events/StatefulEmitter.js +0 -57
  118. package/dist/events/StatefulEmitter.js.map +0 -1
  119. package/dist/events/types.d.ts +0 -29
  120. package/dist/events/types.d.ts.map +0 -1
  121. package/dist/focus/focusController.d.ts +0 -108
  122. package/dist/focus/focusController.d.ts.map +0 -1
  123. package/dist/focus/focusController.js +0 -295
  124. package/dist/focus/focusController.js.map +0 -1
  125. package/dist/focus/globalFocus.d.ts +0 -24
  126. package/dist/focus/globalFocus.d.ts.map +0 -1
  127. package/dist/focus/globalFocus.js +0 -87
  128. package/dist/focus/globalFocus.js.map +0 -1
  129. package/dist/history/History.d.ts +0 -81
  130. package/dist/history/History.d.ts.map +0 -1
  131. package/dist/history/History.js +0 -122
  132. package/dist/history/History.js.map +0 -1
  133. package/dist/hooks/useCombinedRefs.d.ts +0 -18
  134. package/dist/hooks/useCombinedRefs.d.ts.map +0 -1
  135. package/dist/hooks/useCombinedRefs.js +0 -20
  136. package/dist/hooks/useCombinedRefs.js.map +0 -1
  137. package/dist/hooks/useDebouncedCallback.d.ts +0 -7
  138. package/dist/hooks/useDebouncedCallback.d.ts.map +0 -1
  139. package/dist/hooks/useDebouncedCallback.js +0 -21
  140. package/dist/hooks/useDebouncedCallback.js.map +0 -1
  141. package/dist/hooks/useLatest.d.ts +0 -13
  142. package/dist/hooks/useLatest.d.ts.map +0 -1
  143. package/dist/hooks/useLatest.js +0 -10
  144. package/dist/hooks/useLatest.js.map +0 -1
  145. package/dist/hooks/useMount.d.ts +0 -6
  146. package/dist/hooks/useMount.d.ts.map +0 -1
  147. package/dist/hooks/useMount.js +0 -14
  148. package/dist/hooks/useMount.js.map +0 -1
  149. package/dist/hooks/usePrevious.d.ts +0 -6
  150. package/dist/hooks/usePrevious.d.ts.map +0 -1
  151. package/dist/hooks/usePrevious.js +0 -12
  152. package/dist/hooks/usePrevious.js.map +0 -1
  153. package/dist/hooks/useShallowMemo.d.ts +0 -9
  154. package/dist/hooks/useShallowMemo.d.ts.map +0 -1
  155. package/dist/hooks/useShallowMemo.js +0 -42
  156. package/dist/hooks/useShallowMemo.js.map +0 -1
  157. package/dist/hooks/useStateRef.d.ts +0 -10
  158. package/dist/hooks/useStateRef.d.ts.map +0 -1
  159. package/dist/hooks/useStateRef.js +0 -11
  160. package/dist/hooks/useStateRef.js.map +0 -1
  161. package/dist/hooks/useSubscription.d.ts +0 -31
  162. package/dist/hooks/useSubscription.d.ts.map +0 -1
  163. package/dist/hooks/useSubscription.js +0 -21
  164. package/dist/hooks/useSubscription.js.map +0 -1
  165. package/dist/hooks/useUnmount.d.ts +0 -4
  166. package/dist/hooks/useUnmount.d.ts.map +0 -1
  167. package/dist/hooks/useUnmount.js +0 -10
  168. package/dist/hooks/useUnmount.js.map +0 -1
  169. package/dist/hooks/useUpdateEffect.d.ts +0 -10
  170. package/dist/hooks/useUpdateEffect.d.ts.map +0 -1
  171. package/dist/hooks/useUpdateEffect.js +0 -16
  172. package/dist/hooks/useUpdateEffect.js.map +0 -1
  173. package/dist/imperative/makeImperativeComponent.d.ts +0 -56
  174. package/dist/imperative/makeImperativeComponent.d.ts.map +0 -1
  175. package/dist/imperative/makeImperativeComponent.js +0 -48
  176. package/dist/imperative/makeImperativeComponent.js.map +0 -1
  177. package/dist/imperative/makeSingleImperativeComponent.d.ts +0 -15
  178. package/dist/imperative/makeSingleImperativeComponent.d.ts.map +0 -1
  179. package/dist/imperative/makeSingleImperativeComponent.js +0 -31
  180. package/dist/imperative/makeSingleImperativeComponent.js.map +0 -1
  181. package/dist/imperative/types.d.ts +0 -22
  182. package/dist/imperative/types.d.ts.map +0 -1
  183. package/dist/imperative/types.js +0 -8
  184. package/dist/imperative/types.js.map +0 -1
  185. package/dist/imperative/useImperativeComponentEvents.d.ts +0 -6
  186. package/dist/imperative/useImperativeComponentEvents.d.ts.map +0 -1
  187. package/dist/imperative/useImperativeComponentEvents.js +0 -35
  188. package/dist/imperative/useImperativeComponentEvents.js.map +0 -1
  189. package/dist/imperative/useImperativeIdentifierContext.d.ts +0 -14
  190. package/dist/imperative/useImperativeIdentifierContext.d.ts.map +0 -1
  191. package/dist/imperative/useImperativeIdentifierContext.js +0 -10
  192. package/dist/imperative/useImperativeIdentifierContext.js.map +0 -1
  193. package/dist/labels/formatMessage.d.ts +0 -19
  194. package/dist/labels/formatMessage.d.ts.map +0 -1
  195. package/dist/labels/formatMessage.js +0 -13
  196. package/dist/labels/formatMessage.js.map +0 -1
  197. package/dist/labels/getLabel.d.ts +0 -34
  198. package/dist/labels/getLabel.d.ts.map +0 -1
  199. package/dist/labels/getLabel.js +0 -18
  200. package/dist/labels/getLabel.js.map +0 -1
  201. package/dist/number/index.d.ts +0 -29
  202. package/dist/number/index.d.ts.map +0 -1
  203. package/dist/number/index.js +0 -43
  204. package/dist/number/index.js.map +0 -1
  205. package/dist/objects/getValueByPath.d.ts +0 -23
  206. package/dist/objects/getValueByPath.d.ts.map +0 -1
  207. package/dist/objects/getValueByPath.js +0 -19
  208. package/dist/objects/getValueByPath.js.map +0 -1
  209. package/dist/objects/setValueByPath.d.ts +0 -33
  210. package/dist/objects/setValueByPath.d.ts.map +0 -1
  211. package/dist/objects/setValueByPath.js +0 -35
  212. package/dist/objects/setValueByPath.js.map +0 -1
  213. package/dist/propsStore/propsStore.d.ts +0 -42
  214. package/dist/propsStore/propsStore.d.ts.map +0 -1
  215. package/dist/propsStore/propsStore.js +0 -157
  216. package/dist/propsStore/propsStore.js.map +0 -1
  217. package/dist/propsStore/types.d.ts +0 -24
  218. package/dist/propsStore/types.d.ts.map +0 -1
  219. package/dist/propsStore/usePropsSelector.d.ts +0 -67
  220. package/dist/propsStore/usePropsSelector.d.ts.map +0 -1
  221. package/dist/propsStore/usePropsSelector.js +0 -92
  222. package/dist/propsStore/usePropsSelector.js.map +0 -1
  223. package/dist/screenLock/screenLocker.d.ts +0 -60
  224. package/dist/screenLock/screenLocker.d.ts.map +0 -1
  225. package/dist/screenLock/screenLocker.js +0 -95
  226. package/dist/screenLock/screenLocker.js.map +0 -1
  227. package/dist/states/useDebouncedState.d.ts +0 -10
  228. package/dist/states/useDebouncedState.d.ts.map +0 -1
  229. package/dist/states/useDebouncedState.js +0 -22
  230. package/dist/states/useDebouncedState.js.map +0 -1
  231. package/dist/states/useDomState.d.ts +0 -86
  232. package/dist/states/useDomState.d.ts.map +0 -1
  233. package/dist/states/useDomState.js +0 -35
  234. package/dist/states/useDomState.js.map +0 -1
  235. package/dist/storage/StatefulStore.d.ts +0 -205
  236. package/dist/storage/StatefulStore.d.ts.map +0 -1
  237. package/dist/storage/StatefulStore.js +0 -301
  238. package/dist/storage/StatefulStore.js.map +0 -1
  239. package/dist/storage/persistentStorage.d.ts +0 -12
  240. package/dist/storage/persistentStorage.d.ts.map +0 -1
  241. package/dist/storage/persistentStorage.js +0 -28
  242. package/dist/storage/persistentStorage.js.map +0 -1
  243. package/dist/storage/useLocalStorage.d.ts +0 -7
  244. package/dist/storage/useLocalStorage.d.ts.map +0 -1
  245. package/dist/storage/useLocalStorage.js +0 -40
  246. package/dist/storage/useLocalStorage.js.map +0 -1
  247. package/dist/string/alignment.d.ts +0 -25
  248. package/dist/string/alignment.d.ts.map +0 -1
  249. package/dist/string/alignment.js +0 -26
  250. package/dist/string/alignment.js.map +0 -1
  251. package/dist/string/ucfirst.d.ts +0 -4
  252. package/dist/string/ucfirst.d.ts.map +0 -1
  253. package/dist/string/ucfirst.js +0 -6
  254. package/dist/string/ucfirst.js.map +0 -1
  255. package/dist/typeGuards/toBoolean.d.ts +0 -26
  256. package/dist/typeGuards/toBoolean.d.ts.map +0 -1
  257. package/dist/typeGuards/toBoolean.js +0 -11
  258. package/dist/typeGuards/toBoolean.js.map +0 -1
  259. package/dist/types/apia/common.d.ts +0 -114
  260. package/dist/types/apia/common.d.ts.map +0 -1
  261. package/dist/types/apia/date.d.ts +0 -4
  262. package/dist/types/apia/date.d.ts.map +0 -1
  263. package/dist/types/apia/forms.d.ts +0 -221
  264. package/dist/types/apia/forms.d.ts.map +0 -1
  265. package/dist/types/misc.d.ts +0 -9
  266. package/dist/types/misc.d.ts.map +0 -1
  267. package/dist/xml/parseXmlAsync.d.ts +0 -4
  268. package/dist/xml/parseXmlAsync.d.ts.map +0 -1
  269. package/dist/xml/parseXmlAsync.js +0 -58
  270. package/dist/xml/parseXmlAsync.js.map +0 -1
@@ -1,35 +0,0 @@
1
- import clone from 'lodash-es/clone';
2
-
3
- function setValueByPath(obj, path, value) {
4
- if (path === "")
5
- return value;
6
- const steps = path.split(".");
7
- if (steps.length === 0) {
8
- console.warn(`An empty path was provoided ${path}`);
9
- return null;
10
- }
11
- const originalClonedObject = clone(obj ?? {});
12
- let currentObj = originalClonedObject;
13
- for (let i = 0; i < steps.length - 1; i++) {
14
- if (!currentObj[steps[i]])
15
- currentObj[steps[i]] = {};
16
- if (typeof currentObj[steps[i]] === "object") {
17
- currentObj = currentObj[steps[i]];
18
- } else {
19
- console.info({
20
- originalObject: obj,
21
- originalPath: path,
22
- currentObj,
23
- currentStep: steps[i]
24
- });
25
- throw new Error(
26
- `The provided path ${path} cannot be applied due to it is not an object's path.`
27
- );
28
- }
29
- }
30
- currentObj[steps.pop()] = value;
31
- return originalClonedObject;
32
- }
33
-
34
- export { setValueByPath };
35
- //# sourceMappingURL=setValueByPath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setValueByPath.js","sources":["../../src/objects/setValueByPath.ts"],"sourcesContent":["import clone from 'lodash-es/clone';\n\n/**\n * Permite escribir una propiedad en un objeto, en una ruta especificada. Si\n * dicha ruta no existe dentro del objeto la crea, siempre que sea posible. No\n * será posible en caso de que alguno de los elementos de la ruta contenga una\n * propiedad que no sea de tipo objeto.\n *\n * @param obj El objeto donde se desea escribir la propiedad\n * @param path La ruta en la que se va a escribir\n * @param value El valor que se va a escribir en la ruta especificada\n * @returns Un objeto idéntico del recibido pero co nlos cambios aplicados\n *\n * @throws { Error } En caso de que la ruta especificada contenga algún elemento que no puede ser escrito.\n *\n * @example\n *\n * const a = {\n * a: {}\n * };\n *\n * setValueByPath(a, 'a.b.c', 'Hello world');\n * /* Outputs:\n * {\n * a: {\n * b: {\n * c: 'Hello world'\n * }\n * }\n * }\n */\nexport function setValueByPath(\n obj: Record<string, unknown>,\n path: string,\n value: unknown,\n) {\n if (path === '') return value as Record<string, unknown>;\n\n const steps = path.split('.');\n if (steps.length === 0) {\n console.warn(`An empty path was provoided ${path}`);\n return null;\n }\n const originalClonedObject = clone(obj ?? {});\n let currentObj = originalClonedObject;\n for (let i = 0; i < steps.length - 1; i++) {\n if (!currentObj[steps[i]]) currentObj[steps[i]] = {};\n if (typeof currentObj[steps[i]] === 'object') {\n currentObj = currentObj[steps[i]] as Record<string, unknown>;\n } else {\n console.info({\n originalObject: obj,\n originalPath: path,\n currentObj,\n currentStep: steps[i],\n });\n throw new Error(\n `The provided path ${path} cannot be applied due to it is not an object's path.`,\n );\n }\n }\n currentObj[steps.pop() as string] = value;\n return originalClonedObject;\n}\n"],"names":[],"mappings":";;AA+BgB,SAAA,cAAA,CACd,GACA,EAAA,IAAA,EACA,KACA,EAAA;AACA,EAAA,IAAI,IAAS,KAAA,EAAA;AAAI,IAAO,OAAA,KAAA,CAAA;AAExB,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAC5B,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAQ,OAAA,CAAA,IAAA,CAAK,CAA+B,4BAAA,EAAA,IAAI,CAAE,CAAA,CAAA,CAAA;AAClD,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EAAA,MAAM,oBAAuB,GAAA,KAAA,CAAM,GAAO,IAAA,EAAE,CAAA,CAAA;AAC5C,EAAA,IAAI,UAAa,GAAA,oBAAA,CAAA;AACjB,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,KAAM,CAAA,MAAA,GAAS,GAAG,CAAK,EAAA,EAAA;AACzC,IAAA,IAAI,CAAC,UAAA,CAAW,KAAM,CAAA,CAAC,CAAC,CAAA;AAAG,MAAA,UAAA,CAAW,KAAM,CAAA,CAAC,CAAC,CAAA,GAAI,EAAC,CAAA;AACnD,IAAA,IAAI,OAAO,UAAW,CAAA,KAAA,CAAM,CAAC,CAAC,MAAM,QAAU,EAAA;AAC5C,MAAa,UAAA,GAAA,UAAA,CAAW,KAAM,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,KAC3B,MAAA;AACL,MAAA,OAAA,CAAQ,IAAK,CAAA;AAAA,QACX,cAAgB,EAAA,GAAA;AAAA,QAChB,YAAc,EAAA,IAAA;AAAA,QACd,UAAA;AAAA,QACA,WAAA,EAAa,MAAM,CAAC,CAAA;AAAA,OACrB,CAAA,CAAA;AACD,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qBAAqB,IAAI,CAAA,qDAAA,CAAA;AAAA,OAC3B,CAAA;AAAA,KACF;AAAA,GACF;AACA,EAAW,UAAA,CAAA,KAAA,CAAM,GAAI,EAAW,CAAI,GAAA,KAAA,CAAA;AACpC,EAAO,OAAA,oBAAA,CAAA;AACT;;;;"}
@@ -1,42 +0,0 @@
1
- import { TPropsSuscriptor, TUpdateFieldConfiguration, TProperties } from './types.js';
2
- import { TId } from '../types/misc.js';
3
-
4
- declare const PropsSelectorUndefinedObject: {};
5
- interface IPropsStoreConf {
6
- logCommands: {
7
- propsStore?: string;
8
- updateProp?: string;
9
- propsSuscriptors?: string;
10
- propsLog?: string;
11
- };
12
- }
13
- declare class PropsStore<PropsType extends Record<TId, unknown> = Record<TId, unknown>> {
14
- private configuration?;
15
- log: unknown;
16
- fields: Record<TId, PropsType>;
17
- suscriptors: Record<TId, TPropsSuscriptor<PropsType>[]>;
18
- loggers: Record<string, (props: unknown[]) => void>;
19
- constructor(configuration?: IPropsStoreConf | undefined);
20
- destructor(): void;
21
- getAllFields(): Record<TId, PropsType>;
22
- /**
23
- * Devuelve los props actuales de un campo.
24
- */
25
- getFieldProps<ParsedPropsType = PropsType>(fieldId: TId): ParsedPropsType;
26
- removeField(fieldId: TId): void;
27
- /**
28
- * Permite establecer un suscriptor que será llamado
29
- * cada vez que las props del campo especificado cambien.
30
- */
31
- suscribe(fieldId: TId, callback: TPropsSuscriptor<PropsType>): () => void;
32
- /**
33
- * Actualiza o crea las props de un campo.
34
- *
35
- * La tercera prop está relacionada
36
- */
37
- updateField<NewPropsType extends Record<TId, unknown> = Partial<PropsType>>(fieldId: TId, props: Partial<NewPropsType>, conf?: TUpdateFieldConfiguration): void;
38
- }
39
- declare const propsStore: PropsStore<TProperties>;
40
-
41
- export { PropsSelectorUndefinedObject, PropsStore, propsStore };
42
- //# sourceMappingURL=propsStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propsStore.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,157 +0,0 @@
1
- import cloneDeep from 'lodash-es/cloneDeep';
2
- import persistentStorage from '../storage/persistentStorage.js';
3
- import { debugDispatcher } from '../debug/debugDispatcher.js';
4
-
5
- const propsLog = "propsLog";
6
- const PropsSelectorUndefinedObject = {};
7
- class PropsStore {
8
- constructor(configuration) {
9
- this.configuration = configuration;
10
- this.log = persistentStorage[propsLog];
11
- this.fields = {};
12
- this.suscriptors = {};
13
- this.loggers = {
14
- propsLog: ([log]) => {
15
- this.log = log;
16
- persistentStorage[propsLog] = log;
17
- },
18
- propsStore: ([fieldId]) => {
19
- if (fieldId)
20
- console.info(this.fields[fieldId]);
21
- else
22
- console.info(this.fields);
23
- },
24
- propsSuscriptors: ([fieldId]) => {
25
- if (fieldId)
26
- console.info(this.suscriptors[fieldId]);
27
- else
28
- console.info(this.suscriptors);
29
- },
30
- updateProp: ([fieldId, newProps]) => {
31
- this.updateField(fieldId, newProps);
32
- }
33
- };
34
- if (this.configuration) {
35
- if (this.configuration.logCommands.propsStore)
36
- debugDispatcher.on(
37
- this.configuration.logCommands.propsStore,
38
- this.loggers.propsStore,
39
- "Muestra el contenido actual del propsStore"
40
- );
41
- if (this.configuration.logCommands.updateProp)
42
- debugDispatcher.on(
43
- this.configuration.logCommands.updateProp,
44
- this.loggers.updateProp,
45
- "dd.updateProp(fieldId, newProps). El objeto newProps ser\xE1 mergeado sobre las props actuales"
46
- );
47
- if (this.configuration.logCommands.propsSuscriptors)
48
- debugDispatcher.on(
49
- this.configuration.logCommands.propsSuscriptors,
50
- this.loggers.propsSuscriptors,
51
- "Muestra los suscriptores actuales del propsStore"
52
- );
53
- if (this.configuration.logCommands.propsLog)
54
- debugDispatcher.on(
55
- this.configuration.logCommands.propsLog,
56
- this.loggers.propsLog,
57
- "Si se pasa como true, hace log de las acciones. Si se pasa como trace(fieldId), se hace log de todas las acciones y trace del campo especificado. Si se pasa trace(), hace log y trace de todas las acciones."
58
- );
59
- }
60
- }
61
- destructor() {
62
- if (this.configuration) {
63
- if (this.configuration.logCommands.propsStore)
64
- debugDispatcher.off(
65
- this.configuration.logCommands.propsStore,
66
- this.loggers.propsStore
67
- );
68
- if (this.configuration.logCommands.updateProp)
69
- debugDispatcher.off(
70
- this.configuration.logCommands.updateProp,
71
- this.loggers.updateProp
72
- );
73
- if (this.configuration.logCommands.propsSuscriptors)
74
- debugDispatcher.off(
75
- this.configuration.logCommands.propsSuscriptors,
76
- this.loggers.propsSuscriptors
77
- );
78
- if (this.configuration.logCommands.propsLog)
79
- debugDispatcher.off(
80
- this.configuration.logCommands.propsLog,
81
- this.loggers.propsLog
82
- );
83
- }
84
- }
85
- getAllFields() {
86
- return cloneDeep(this.fields);
87
- }
88
- /**
89
- * Devuelve los props actuales de un campo.
90
- */
91
- getFieldProps(fieldId) {
92
- return this.fields[fieldId];
93
- }
94
- removeField(fieldId) {
95
- this.suscriptors[fieldId] = [];
96
- delete this.fields[fieldId];
97
- if (this.log)
98
- console.info(`propsStore: removeNode ${fieldId}`);
99
- }
100
- /**
101
- * Permite establecer un suscriptor que será llamado
102
- * cada vez que las props del campo especificado cambien.
103
- */
104
- suscribe(fieldId, callback) {
105
- if (!this.suscriptors[fieldId])
106
- this.suscriptors[fieldId] = [];
107
- this.suscriptors[fieldId].push(callback);
108
- callback(this.fields[fieldId] ?? PropsSelectorUndefinedObject);
109
- return () => {
110
- this.suscriptors[fieldId] = this.suscriptors[fieldId].filter(
111
- (current) => {
112
- return current !== callback;
113
- }
114
- );
115
- };
116
- }
117
- /**
118
- * Actualiza o crea las props de un campo.
119
- *
120
- * La tercera prop está relacionada
121
- */
122
- updateField(fieldId, props, conf) {
123
- if (fieldId === void 0)
124
- return;
125
- const { noEmit, isUrgent } = conf ?? {};
126
- const newProps = { ...this.fields[fieldId], ...props };
127
- this.fields[fieldId] = newProps;
128
- if (this.log === true || this.log === fieldId)
129
- console.info({ fieldId, props });
130
- if (this.log === "trace")
131
- console.trace();
132
- else {
133
- const logId = typeof this.log === "string" && (this.log.match(/trace\(([^)]+)\)/) ?? [])[1];
134
- if (fieldId === logId)
135
- console.trace();
136
- }
137
- if (!noEmit) {
138
- this.suscriptors[fieldId]?.forEach((current) => {
139
- return current(newProps, isUrgent);
140
- });
141
- this.suscriptors.any?.forEach((current) => {
142
- return current({ ...newProps, fieldId }, isUrgent);
143
- });
144
- }
145
- }
146
- }
147
- const propsStore = new PropsStore({
148
- logCommands: {
149
- propsLog: "propsLog",
150
- propsStore: "propsStore",
151
- propsSuscriptors: "propsSuscriptors",
152
- updateProp: "updateProp"
153
- }
154
- });
155
-
156
- export { PropsSelectorUndefinedObject, PropsStore, propsStore };
157
- //# sourceMappingURL=propsStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propsStore.js","sources":["../../src/propsStore/propsStore.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-dynamic-delete */\nimport cloneDeep from 'lodash-es/cloneDeep';\nimport {\n TProperties,\n TPropsSuscriptor,\n TUpdateFieldConfiguration,\n} from './types';\nimport { debugDispatcher } from '../debug';\nimport { TId } from '../types';\nimport { persistentStorage } from '../storage';\n\nconst propsLog = 'propsLog';\nexport const PropsSelectorUndefinedObject = {};\n\ninterface IPropsStoreConf {\n logCommands: {\n propsStore?: string;\n updateProp?: string;\n propsSuscriptors?: string;\n propsLog?: string;\n };\n}\n\nexport class PropsStore<\n PropsType extends Record<TId, unknown> = Record<TId, unknown>,\n> {\n log = persistentStorage[propsLog];\n\n fields: Record<TId, PropsType> = {};\n\n suscriptors: Record<TId, TPropsSuscriptor<PropsType>[]> = {};\n\n loggers: Record<string, (props: unknown[]) => void> = {\n propsLog: ([log]) => {\n this.log = log;\n persistentStorage[propsLog] = log;\n },\n propsStore: ([fieldId]) => {\n if (fieldId) console.info(this.fields[fieldId as TId]);\n else console.info(this.fields);\n },\n propsSuscriptors: ([fieldId]) => {\n if (fieldId) console.info(this.suscriptors[fieldId as TId]);\n else console.info(this.suscriptors);\n },\n updateProp: ([fieldId, newProps]) => {\n this.updateField(fieldId as TId, newProps as PropsType);\n },\n };\n\n constructor(private configuration?: IPropsStoreConf) {\n if (this.configuration) {\n if (this.configuration.logCommands.propsStore)\n debugDispatcher.on(\n this.configuration.logCommands.propsStore,\n this.loggers.propsStore,\n 'Muestra el contenido actual del propsStore',\n );\n if (this.configuration.logCommands.updateProp)\n debugDispatcher.on(\n this.configuration.logCommands.updateProp,\n this.loggers.updateProp,\n 'dd.updateProp(fieldId, newProps). El objeto newProps será mergeado sobre las props actuales',\n );\n if (this.configuration.logCommands.propsSuscriptors)\n debugDispatcher.on(\n this.configuration.logCommands.propsSuscriptors,\n this.loggers.propsSuscriptors,\n 'Muestra los suscriptores actuales del propsStore',\n );\n if (this.configuration.logCommands.propsLog)\n debugDispatcher.on(\n this.configuration.logCommands.propsLog,\n this.loggers.propsLog,\n 'Si se pasa como true, hace log de las acciones. Si se pasa como trace(fieldId), se hace log de todas las acciones y trace del campo especificado. Si se pasa trace(), hace log y trace de todas las acciones.',\n );\n }\n }\n\n destructor() {\n if (this.configuration) {\n if (this.configuration.logCommands.propsStore)\n debugDispatcher.off(\n this.configuration.logCommands.propsStore,\n this.loggers.propsStore,\n );\n if (this.configuration.logCommands.updateProp)\n debugDispatcher.off(\n this.configuration.logCommands.updateProp,\n this.loggers.updateProp,\n );\n if (this.configuration.logCommands.propsSuscriptors)\n debugDispatcher.off(\n this.configuration.logCommands.propsSuscriptors,\n this.loggers.propsSuscriptors,\n );\n if (this.configuration.logCommands.propsLog)\n debugDispatcher.off(\n this.configuration.logCommands.propsLog,\n this.loggers.propsLog,\n );\n }\n }\n\n getAllFields() {\n return cloneDeep(this.fields);\n }\n\n /**\n * Devuelve los props actuales de un campo.\n */\n getFieldProps<ParsedPropsType = PropsType>(fieldId: TId) {\n return this.fields[fieldId] as unknown as ParsedPropsType;\n }\n\n removeField(fieldId: TId) {\n this.suscriptors[fieldId] = [];\n delete this.fields[fieldId];\n if (this.log) console.info(`propsStore: removeNode ${fieldId}`);\n }\n\n /**\n * Permite establecer un suscriptor que será llamado\n * cada vez que las props del campo especificado cambien.\n */\n suscribe(fieldId: TId, callback: TPropsSuscriptor<PropsType>) {\n if (!this.suscriptors[fieldId]) this.suscriptors[fieldId] = [];\n\n this.suscriptors[fieldId].push(callback);\n\n callback(this.fields[fieldId] ?? PropsSelectorUndefinedObject);\n\n return () => {\n this.suscriptors[fieldId] = this.suscriptors[fieldId].filter(\n (current) => {\n return current !== callback;\n },\n );\n };\n }\n\n /**\n * Actualiza o crea las props de un campo.\n *\n * La tercera prop está relacionada\n */\n updateField<NewPropsType extends Record<TId, unknown> = Partial<PropsType>>(\n fieldId: TId,\n props: Partial<NewPropsType>,\n conf?: TUpdateFieldConfiguration,\n ) {\n if (fieldId === undefined) return;\n\n const { noEmit, isUrgent } = conf ?? {};\n const newProps = { ...this.fields[fieldId], ...props };\n this.fields[fieldId] = newProps;\n\n if (this.log === true || this.log === fieldId)\n console.info({ fieldId, props });\n if (this.log === 'trace') console.trace();\n else {\n const logId =\n typeof this.log === 'string' &&\n (this.log.match(/trace\\(([^)]+)\\)/) ?? [])[1];\n if (fieldId === logId) console.trace();\n }\n\n if (!noEmit) {\n this.suscriptors[fieldId]?.forEach((current) => {\n return current(newProps, isUrgent);\n });\n this.suscriptors.any?.forEach((current) => {\n return current({ ...newProps, fieldId }, isUrgent);\n });\n }\n }\n}\n\nexport const propsStore = new PropsStore<TProperties>({\n logCommands: {\n propsLog: 'propsLog',\n propsStore: 'propsStore',\n propsSuscriptors: 'propsSuscriptors',\n updateProp: 'updateProp',\n },\n});\n"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { PropsStore } from './propsStore.js';
2
-
3
- type TProperties = Record<string, unknown>;
4
- type TPropsSuscriptor<PropsType extends Record<string, unknown> = TProperties> = (props: PropsType, urgent?: boolean) => unknown;
5
- type TPropsSelector<Selected = any, PropsType = TProperties> = (props: PropsType) => Selected;
6
- /**
7
- * La función comparadora debe devolver true cuando
8
- * los elementos son iguales o false cuando son
9
- * distintos.
10
- */
11
- type TPropsComparator<Selected> = (prevProps: Selected | undefined, newProps: Selected | undefined) => boolean;
12
- type TPropsConfiguration<Selected, PropsType extends Record<string, unknown> = TProperties> = {
13
- selector?: TPropsSelector<Selected, PropsType>;
14
- comparator?: TPropsComparator<Selected>;
15
- initialValue?: Selected;
16
- propsStore?: PropsStore<PropsType>;
17
- };
18
- type TUpdateFieldConfiguration = Partial<{
19
- noEmit: boolean;
20
- isUrgent: boolean;
21
- }>;
22
-
23
- export type { TProperties, TPropsComparator, TPropsConfiguration, TPropsSelector, TPropsSuscriptor, TUpdateFieldConfiguration };
24
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,67 +0,0 @@
1
- import { PropsStore } from './propsStore.js';
2
- import { TProperties, TPropsSelector, TPropsConfiguration, TPropsComparator } from './types.js';
3
- import { TId } from '../types/misc.js';
4
-
5
- declare function isPropsConfigurationObject<Selected, PropsType extends Record<string, unknown> = TProperties>(value?: TPropsSelector<Selected, PropsType> | TPropsConfiguration<Selected, PropsType>): value is TPropsConfiguration<Selected, PropsType>;
6
- /**
7
- *
8
- * Este hook permite escuchar los cambios en las propiedades
9
- * de un campo en particular.
10
- *
11
- * @param configuration
12
- * Este objeto permite pasar las siguientes propiedades para ser
13
- * determinar el comportamiento del hook:
14
- *
15
- * **selector:** La función selectora es una función equivalente
16
- * a la que se utiliza en el useAppSelector de redux. Con ella
17
- * se puede seleccionar una porción de las props, evitando
18
- * re-renderizados innecesarios. Esto se debe a que el renderizado
19
- * solamente ocurrirá cuando la función selectora devuelva un valor
20
- * que sea distinto del anterior.
21
- *
22
- * El concepto de distinto es: si existe una función comparadora,
23
- * se determinará mediante la ejecución de dicha función, a la que
24
- * se le pasan como parámetros el objeto anterior y el nuevo.
25
- *
26
- * En caso de que no haya función comparadora, se comparará que
27
- * las props seleccionadas y las nuevas sean exactamente las mismas
28
- * (la referencia al mismo objeto).
29
- *
30
- * **comparator:** La función comparadora de la que estamos
31
- * hablando.
32
- *
33
- * **initialValue:** Un valor para setearlo al inicio, el mismo
34
- * solamente será seteado en caso de que ya no exista un valor
35
- * en el store.
36
- * @returns
37
- */
38
- declare function usePropsSelector<Selected = TProperties, PropsType extends Record<string, unknown> = TProperties>(fieldId: TId, configuration?: TPropsConfiguration<Selected, PropsType>): Selected;
39
- /**
40
- *
41
- * Este hook permite escuchar los cambios en las propiedades
42
- * de un campo en particular.
43
- *
44
- * @param selector La función selectora es una función equivalente
45
- * a la que se utiliza en el useAppSelector de redux. Con ella
46
- * se puede seleccionar una porción de las props, evitando
47
- * re-renderizados innecesarios. Esto se debe a que el renderizado
48
- * solamente ocurrirá cuando la función selectora devuelva un valor
49
- * que sea distinto del anterior.
50
- *
51
- * El concepto de distinto es: si existe una función comparadora,
52
- * se determinará mediante la ejecución de dicha función, a la que
53
- * se le pasan como parámetros el objeto anterior y el nuevo.
54
- *
55
- * En caso de que no haya función comparadora, se comparará que
56
- * las props seleccionadas y las nuevas sean exactamente las mismas
57
- * (la referencia al mismo objeto).
58
- *
59
- * @param comparator La función comparadora de la que estamos
60
- * hablando.
61
- *
62
- * @returns
63
- */
64
- declare function usePropsSelector<Selected = TProperties, PropsType extends Record<string, unknown> = TProperties>(fieldId: TId, selector?: TPropsSelector<Selected, PropsType> | TPropsConfiguration<Selected, PropsType>, comparator?: TPropsComparator<Selected>, anotherPropsStore?: PropsStore<PropsType>): Selected;
65
-
66
- export { isPropsConfigurationObject, usePropsSelector };
67
- //# sourceMappingURL=usePropsSelector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePropsSelector.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,92 +0,0 @@
1
- import React__default, { useRef } from 'react';
2
- import { propsStore, PropsSelectorUndefinedObject } from './propsStore.js';
3
-
4
- const defaultComparator = (a, b) => {
5
- return a === b;
6
- };
7
- function getDefaultSelector() {
8
- return (current) => {
9
- return current;
10
- };
11
- }
12
- function isPropsConfigurationObject(value) {
13
- return typeof value === "object" && value && ("selector" in value || "comparator" in value || "initialValue" in value);
14
- }
15
- function usePropsSelector(fieldId, par1, par2, par3) {
16
- const selector = React__default.useMemo(
17
- () => {
18
- return isPropsConfigurationObject(par1) ? par1.selector : par1;
19
- },
20
- // eslint-disable-next-line react-hooks/exhaustive-deps
21
- []
22
- );
23
- const comparator = React__default.useMemo(
24
- () => {
25
- return isPropsConfigurationObject(par1) ? par1.comparator : par2;
26
- },
27
- // eslint-disable-next-line react-hooks/exhaustive-deps
28
- []
29
- );
30
- const initialValue = React__default.useMemo(
31
- () => {
32
- return isPropsConfigurationObject(par1) ? par1.initialValue : void 0;
33
- },
34
- // eslint-disable-next-line react-hooks/exhaustive-deps
35
- []
36
- );
37
- const actualPropsStore = React__default.useMemo(
38
- () => {
39
- return par3 ?? (isPropsConfigurationObject(par1) ? par1.propsStore : propsStore) ?? propsStore;
40
- },
41
- // eslint-disable-next-line react-hooks/exhaustive-deps
42
- [
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
- par3 ?? (isPropsConfigurationObject(par1) ? par1.propsStore : propsStore) ?? propsStore
45
- ]
46
- );
47
- const getCurrentProps = React__default.useCallback(() => {
48
- const currentProps = actualPropsStore.getFieldProps(fieldId);
49
- const willSetInitialValue = currentProps !== void 0 && initialValue !== void 0;
50
- if (willSetInitialValue) {
51
- actualPropsStore.updateField(
52
- fieldId,
53
- initialValue
54
- );
55
- }
56
- return (selector ?? getDefaultSelector())(
57
- currentProps ?? PropsSelectorUndefinedObject
58
- );
59
- }, []);
60
- const [props, setProps] = React__default.useState(getCurrentProps);
61
- const prevProps = useRef(props);
62
- const prevFieldId = useRef(fieldId);
63
- React__default.useEffect(() => {
64
- const unsuscribe = actualPropsStore.suscribe(
65
- fieldId,
66
- (newProps, isUrgent) => {
67
- const newSelectedProps = (selector ?? getDefaultSelector())(
68
- newProps
69
- );
70
- if (!(comparator ?? defaultComparator)(
71
- prevProps.current,
72
- newSelectedProps
73
- ) || prevFieldId.current !== fieldId) {
74
- if (isUrgent)
75
- setProps(newSelectedProps);
76
- else
77
- React__default.startTransition(() => {
78
- setProps(newSelectedProps);
79
- });
80
- }
81
- prevProps.current = newSelectedProps;
82
- }
83
- );
84
- return () => {
85
- unsuscribe();
86
- };
87
- }, [fieldId, actualPropsStore, selector, comparator]);
88
- return props;
89
- }
90
-
91
- export { isPropsConfigurationObject, usePropsSelector };
92
- //# sourceMappingURL=usePropsSelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePropsSelector.js","sources":["../../src/propsStore/usePropsSelector.ts"],"sourcesContent":["import React, { useRef } from 'react';\nimport {\n PropsSelectorUndefinedObject,\n propsStore,\n PropsStore,\n} from './propsStore';\nimport {\n TProperties,\n TPropsComparator,\n TPropsConfiguration,\n TPropsSelector,\n} from './types';\nimport { TId } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst defaultComparator: TPropsComparator<any> = (a, b) => {\n return a === b;\n};\nfunction getDefaultSelector<Selected, PropsType = TProperties>() {\n return (current: PropsType) => {\n return current as unknown as Selected;\n };\n}\n\nexport function isPropsConfigurationObject<\n Selected,\n PropsType extends Record<string, unknown> = TProperties,\n>(\n value?:\n | TPropsSelector<Selected, PropsType>\n | TPropsConfiguration<Selected, PropsType>,\n): value is TPropsConfiguration<Selected, PropsType> {\n return (\n typeof value === 'object' &&\n value &&\n ('selector' in value || 'comparator' in value || 'initialValue' in value)\n );\n}\n\n/**\n *\n * Este hook permite escuchar los cambios en las propiedades\n * de un campo en particular.\n *\n * @param configuration\n * Este objeto permite pasar las siguientes propiedades para ser\n * determinar el comportamiento del hook:\n *\n * **selector:** La función selectora es una función equivalente\n * a la que se utiliza en el useAppSelector de redux. Con ella\n * se puede seleccionar una porción de las props, evitando\n * re-renderizados innecesarios. Esto se debe a que el renderizado\n * solamente ocurrirá cuando la función selectora devuelva un valor\n * que sea distinto del anterior.\n *\n * El concepto de distinto es: si existe una función comparadora,\n * se determinará mediante la ejecución de dicha función, a la que\n * se le pasan como parámetros el objeto anterior y el nuevo.\n *\n * En caso de que no haya función comparadora, se comparará que\n * las props seleccionadas y las nuevas sean exactamente las mismas\n * (la referencia al mismo objeto).\n *\n * **comparator:** La función comparadora de la que estamos\n * hablando.\n *\n * **initialValue:** Un valor para setearlo al inicio, el mismo\n * solamente será seteado en caso de que ya no exista un valor\n * en el store.\n * @returns\n */\nexport function usePropsSelector<\n Selected = TProperties,\n PropsType extends Record<string, unknown> = TProperties,\n>(\n fieldId: TId,\n configuration?: TPropsConfiguration<Selected, PropsType>,\n): Selected;\n/**\n *\n * Este hook permite escuchar los cambios en las propiedades\n * de un campo en particular.\n *\n * @param selector La función selectora es una función equivalente\n * a la que se utiliza en el useAppSelector de redux. Con ella\n * se puede seleccionar una porción de las props, evitando\n * re-renderizados innecesarios. Esto se debe a que el renderizado\n * solamente ocurrirá cuando la función selectora devuelva un valor\n * que sea distinto del anterior.\n *\n * El concepto de distinto es: si existe una función comparadora,\n * se determinará mediante la ejecución de dicha función, a la que\n * se le pasan como parámetros el objeto anterior y el nuevo.\n *\n * En caso de que no haya función comparadora, se comparará que\n * las props seleccionadas y las nuevas sean exactamente las mismas\n * (la referencia al mismo objeto).\n *\n * @param comparator La función comparadora de la que estamos\n * hablando.\n *\n * @returns\n */\nexport function usePropsSelector<\n Selected = TProperties,\n PropsType extends Record<string, unknown> = TProperties,\n>(\n fieldId: TId,\n selector?:\n | TPropsSelector<Selected, PropsType>\n | TPropsConfiguration<Selected, PropsType>,\n comparator?: TPropsComparator<Selected>,\n anotherPropsStore?: PropsStore<PropsType>,\n): Selected;\nexport function usePropsSelector<\n Selected = TProperties,\n PropsType extends Record<string, unknown> = TProperties,\n>(\n fieldId: TId,\n par1?:\n | TPropsSelector<Selected, PropsType>\n | TPropsConfiguration<Selected, PropsType>,\n par2?: TPropsComparator<Selected>,\n par3?: PropsStore<PropsType>,\n): Selected {\n const selector = React.useMemo(\n () => {\n return isPropsConfigurationObject(par1) ? par1.selector : par1;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const comparator = React.useMemo(\n () => {\n return isPropsConfigurationObject(par1) ? par1.comparator : par2;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const initialValue = React.useMemo(\n () => {\n return isPropsConfigurationObject(par1) ? par1.initialValue : undefined;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const actualPropsStore = React.useMemo(\n () => {\n return (\n par3 ??\n (isPropsConfigurationObject(par1) ? par1.propsStore : propsStore) ??\n propsStore\n );\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // eslint-disable-next-line react-hooks/exhaustive-deps\n par3 ??\n (isPropsConfigurationObject(par1) ? par1.propsStore : propsStore) ??\n propsStore,\n ],\n );\n\n const getCurrentProps = React.useCallback(() => {\n const currentProps = actualPropsStore.getFieldProps<PropsType>(fieldId);\n const willSetInitialValue =\n currentProps !== undefined && initialValue !== undefined;\n if (willSetInitialValue) {\n actualPropsStore.updateField(\n fieldId,\n initialValue as unknown as TProperties,\n );\n }\n return (selector ?? getDefaultSelector())(\n currentProps ?? (PropsSelectorUndefinedObject as PropsType),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [props, setProps] = React.useState<Selected>(getCurrentProps);\n\n const prevProps = useRef(props);\n const prevFieldId = useRef(fieldId);\n\n React.useEffect(() => {\n const unsuscribe = actualPropsStore.suscribe(\n fieldId,\n (newProps, isUrgent) => {\n const newSelectedProps = (selector ?? getDefaultSelector())(\n newProps as unknown as PropsType,\n );\n\n if (\n !(comparator ?? defaultComparator)(\n prevProps.current,\n newSelectedProps,\n ) ||\n prevFieldId.current !== fieldId\n ) {\n if (isUrgent) setProps(newSelectedProps);\n else\n React.startTransition(() => {\n setProps(newSelectedProps);\n });\n }\n prevProps.current = newSelectedProps;\n },\n );\n\n return () => {\n unsuscribe();\n };\n }, [fieldId, actualPropsStore, selector, comparator]);\n\n return props;\n}\n"],"names":["React"],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { EventEmitter } from '../events/EventEmitter.js';
2
-
3
- declare class ScreenLocker extends EventEmitter<{
4
- forcedStateChange: {
5
- hasReleasedFirstTime: boolean;
6
- isForced: boolean;
7
- };
8
- lockStateChange: {
9
- hasReleasedFirstTime: boolean;
10
- isLocked: boolean;
11
- lockName: string;
12
- };
13
- releaseForFirstTime: null;
14
- ready: null;
15
- }> {
16
- #private;
17
- get hasReleasedFirstTime(): boolean;
18
- get isForced(): boolean;
19
- /**
20
- * Permite saber si un bloqueo determinado está activo o si la clase tiene
21
- * forceLock activo.
22
- */
23
- isLocked(lockName?: string): boolean;
24
- constructor();
25
- lock(lockName?: string): void;
26
- unlock(lockName?: string): void;
27
- force(): void;
28
- releaseForced(): void;
29
- }
30
- /**
31
- * Esta clase no implementa ninguna funcionalidad de bloqueo, sino solamente se
32
- * encarga de la lógica y de los eventos.
33
- *
34
- * El concepto es que hay n niveles de bloqueo y además existe el bloqueo
35
- * forzado. Cada uno de los niveles recibe un nombre, por defecto se realizan
36
- * operaciones contra el bloque 'common' si no se pasa ninguno, pero
37
- * podría utilizarse cualquier otro. Esto es así con el fin de implementar
38
- * varios bloqueos en la misma clase, ejemplos: el bloqueo común, el bloqueo
39
- * lineal de las tablas, bloque con pantalla blanca en el inicio de formularios,
40
- * o cualquier otro que se desee. Para los bloqueos estándar se utilizan los
41
- * métodos lock y unlock.
42
- *
43
- * El bloqueo forzado por otra parte es un estado general que se puede alterar
44
- * mediante los métodos force y releaseForced. Cada vez que se bloquee o
45
- * desbloquee la pantalla, se lanzará un evento lockStateChange sin lockName y
46
- * con forced = true.
47
- *
48
- * Además, provee un evento para saber cuándo se desbloquea la pantalla
49
- * efectivamente por primera vez para cada tipo de bloqueo. Es posible a su vez
50
- * resetear la clase para que este evento sea lanzado nuevamente en el próximo
51
- * desbloqueo mediante resetRefreshFirstTime.
52
- *
53
- * El evento releasForFirstTime se dispara únicamente para el bloqueo 'common'.
54
- * Esto es así ya que sino podría dar lugar a confusión en situaciones donde no
55
- * se controle el nombre del bloqueo.
56
- */
57
- declare const screenLocker: ScreenLocker;
58
-
59
- export { screenLocker };
60
- //# sourceMappingURL=screenLocker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screenLocker.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,95 +0,0 @@
1
- import { EventEmitter } from '../events/EventEmitter.js';
2
-
3
- var __accessCheck = (obj, member, msg) => {
4
- if (!member.has(obj))
5
- throw TypeError("Cannot " + msg);
6
- };
7
- var __privateGet = (obj, member, getter) => {
8
- __accessCheck(obj, member, "read from private field");
9
- return getter ? getter.call(obj) : member.get(obj);
10
- };
11
- var __privateAdd = (obj, member, value) => {
12
- if (member.has(obj))
13
- throw TypeError("Cannot add the same private member more than once");
14
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
15
- };
16
- var __privateSet = (obj, member, value, setter) => {
17
- __accessCheck(obj, member, "write to private field");
18
- setter ? setter.call(obj, value) : member.set(obj, value);
19
- return value;
20
- };
21
- var __privateMethod = (obj, member, method) => {
22
- __accessCheck(obj, member, "access private method");
23
- return method;
24
- };
25
- var _hasReleasedFirstTime, _wasReleasedFirstTime, _isForced, _locks, _shoutLockState, shoutLockState_fn;
26
- class ScreenLocker extends EventEmitter {
27
- constructor() {
28
- super();
29
- __privateAdd(this, _shoutLockState);
30
- __privateAdd(this, _hasReleasedFirstTime, false);
31
- __privateAdd(this, _wasReleasedFirstTime, false);
32
- __privateAdd(this, _isForced, false);
33
- __privateAdd(this, _locks, {
34
- common: false
35
- });
36
- this.emit("ready", null);
37
- }
38
- get hasReleasedFirstTime() {
39
- return __privateGet(this, _hasReleasedFirstTime);
40
- }
41
- get isForced() {
42
- return __privateGet(this, _isForced);
43
- }
44
- /**
45
- * Permite saber si un bloqueo determinado está activo o si la clase tiene
46
- * forceLock activo.
47
- */
48
- isLocked(lockName = "common") {
49
- return __privateGet(this, _locks)[lockName] || __privateGet(this, _isForced);
50
- }
51
- lock(lockName = "common") {
52
- __privateGet(this, _locks)[lockName] = true;
53
- __privateMethod(this, _shoutLockState, shoutLockState_fn).call(this, lockName);
54
- }
55
- unlock(lockName = "common") {
56
- if (lockName === "common")
57
- __privateSet(this, _hasReleasedFirstTime, true);
58
- __privateGet(this, _locks)[lockName] = false;
59
- __privateMethod(this, _shoutLockState, shoutLockState_fn).call(this, lockName);
60
- }
61
- force() {
62
- __privateSet(this, _isForced, true);
63
- __privateMethod(this, _shoutLockState, shoutLockState_fn).call(this);
64
- }
65
- releaseForced() {
66
- __privateSet(this, _isForced, false);
67
- __privateMethod(this, _shoutLockState, shoutLockState_fn).call(this);
68
- }
69
- }
70
- _hasReleasedFirstTime = new WeakMap();
71
- _wasReleasedFirstTime = new WeakMap();
72
- _isForced = new WeakMap();
73
- _locks = new WeakMap();
74
- _shoutLockState = new WeakSet();
75
- shoutLockState_fn = function(lockName) {
76
- if (__privateGet(this, _isForced) || lockName === void 0) {
77
- this.emit("forcedStateChange", {
78
- isForced: __privateGet(this, _isForced),
79
- hasReleasedFirstTime: __privateGet(this, _hasReleasedFirstTime)
80
- });
81
- } else {
82
- if (lockName === "common" && !__privateGet(this, _wasReleasedFirstTime) && __privateGet(this, _hasReleasedFirstTime)) {
83
- this.emit("releaseForFirstTime", null);
84
- }
85
- this.emit("lockStateChange", {
86
- lockName,
87
- hasReleasedFirstTime: __privateGet(this, _hasReleasedFirstTime),
88
- isLocked: __privateGet(this, _locks)[lockName]
89
- });
90
- }
91
- };
92
- const screenLocker = new ScreenLocker();
93
-
94
- export { screenLocker };
95
- //# sourceMappingURL=screenLocker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screenLocker.js","sources":["../../src/screenLock/screenLocker.ts"],"sourcesContent":["import { EventEmitter } from '../events/EventEmitter';\nclass ScreenLocker extends EventEmitter<{\n forcedStateChange: {\n hasReleasedFirstTime: boolean;\n isForced: boolean;\n };\n lockStateChange: {\n hasReleasedFirstTime: boolean;\n isLocked: boolean;\n lockName: string;\n };\n releaseForFirstTime: null;\n ready: null;\n}> {\n #hasReleasedFirstTime = false;\n\n #wasReleasedFirstTime = false;\n\n #isForced = false;\n\n #locks: Record<string, boolean> = {\n common: false,\n };\n\n get hasReleasedFirstTime() {\n return this.#hasReleasedFirstTime;\n }\n\n get isForced() {\n return this.#isForced;\n }\n\n /**\n * Permite saber si un bloqueo determinado está activo o si la clase tiene\n * forceLock activo.\n */\n isLocked(lockName = 'common') {\n return this.#locks[lockName] || this.#isForced;\n }\n\n constructor() {\n super();\n\n this.emit('ready', null);\n }\n\n #shoutLockState(lockName?: string) {\n if (this.#isForced || lockName === undefined) {\n this.emit('forcedStateChange', {\n isForced: this.#isForced,\n hasReleasedFirstTime: this.#hasReleasedFirstTime,\n });\n } else {\n if (\n lockName === 'common' &&\n !this.#wasReleasedFirstTime &&\n this.#hasReleasedFirstTime\n ) {\n this.emit('releaseForFirstTime', null);\n }\n\n this.emit('lockStateChange', {\n lockName,\n hasReleasedFirstTime: this.#hasReleasedFirstTime,\n isLocked: this.#locks[lockName],\n });\n }\n }\n\n lock(lockName = 'common') {\n this.#locks[lockName] = true;\n this.#shoutLockState(lockName);\n }\n\n unlock(lockName = 'common') {\n if (lockName === 'common') this.#hasReleasedFirstTime = true;\n this.#locks[lockName] = false;\n this.#shoutLockState(lockName);\n }\n\n force() {\n this.#isForced = true;\n this.#shoutLockState();\n }\n\n releaseForced() {\n this.#isForced = false;\n this.#shoutLockState();\n }\n}\n\n/**\n * Esta clase no implementa ninguna funcionalidad de bloqueo, sino solamente se\n * encarga de la lógica y de los eventos.\n *\n * El concepto es que hay n niveles de bloqueo y además existe el bloqueo\n * forzado. Cada uno de los niveles recibe un nombre, por defecto se realizan\n * operaciones contra el bloque 'common' si no se pasa ninguno, pero\n * podría utilizarse cualquier otro. Esto es así con el fin de implementar\n * varios bloqueos en la misma clase, ejemplos: el bloqueo común, el bloqueo\n * lineal de las tablas, bloque con pantalla blanca en el inicio de formularios,\n * o cualquier otro que se desee. Para los bloqueos estándar se utilizan los\n * métodos lock y unlock.\n *\n * El bloqueo forzado por otra parte es un estado general que se puede alterar\n * mediante los métodos force y releaseForced. Cada vez que se bloquee o\n * desbloquee la pantalla, se lanzará un evento lockStateChange sin lockName y\n * con forced = true.\n *\n * Además, provee un evento para saber cuándo se desbloquea la pantalla\n * efectivamente por primera vez para cada tipo de bloqueo. Es posible a su vez\n * resetear la clase para que este evento sea lanzado nuevamente en el próximo\n * desbloqueo mediante resetRefreshFirstTime.\n *\n * El evento releasForFirstTime se dispara únicamente para el bloqueo 'common'.\n * Esto es así ya que sino podría dar lugar a confusión en situaciones donde no\n * se controle el nombre del bloqueo.\n */\nconst screenLocker = new ScreenLocker();\n\nexport { screenLocker };\n"],"names":[],"mappings":"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"}