rn-custom-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +477 -0
  3. package/lib/module/assets/images/close.png +0 -0
  4. package/lib/module/components/CustomCheckbox/index.js +99 -0
  5. package/lib/module/components/CustomCheckbox/index.js.map +1 -0
  6. package/lib/module/components/CustomCheckbox/styles.js +213 -0
  7. package/lib/module/components/CustomCheckbox/styles.js.map +1 -0
  8. package/lib/module/components/CustomCheckbox/types.js +4 -0
  9. package/lib/module/components/CustomCheckbox/types.js.map +1 -0
  10. package/lib/module/components/closeButton/index.js +45 -0
  11. package/lib/module/components/closeButton/index.js.map +1 -0
  12. package/lib/module/components/closeButton/types.js +4 -0
  13. package/lib/module/components/closeButton/types.js.map +1 -0
  14. package/lib/module/components/customButton/index.js +176 -0
  15. package/lib/module/components/customButton/index.js.map +1 -0
  16. package/lib/module/components/customButton/styles.js +282 -0
  17. package/lib/module/components/customButton/styles.js.map +1 -0
  18. package/lib/module/components/customButton/types.js +4 -0
  19. package/lib/module/components/customButton/types.js.map +1 -0
  20. package/lib/module/components/customDropDown/DropDownBottomSheet.js +57 -0
  21. package/lib/module/components/customDropDown/DropDownBottomSheet.js.map +1 -0
  22. package/lib/module/components/customDropDown/DropDownList.js +51 -0
  23. package/lib/module/components/customDropDown/DropDownList.js.map +1 -0
  24. package/lib/module/components/customDropDown/DropDownListItem.js +38 -0
  25. package/lib/module/components/customDropDown/DropDownListItem.js.map +1 -0
  26. package/lib/module/components/customDropDown/DropDownListModal.js +63 -0
  27. package/lib/module/components/customDropDown/DropDownListModal.js.map +1 -0
  28. package/lib/module/components/customDropDown/index.js +143 -0
  29. package/lib/module/components/customDropDown/index.js.map +1 -0
  30. package/lib/module/components/customDropDown/styles.js +189 -0
  31. package/lib/module/components/customDropDown/styles.js.map +1 -0
  32. package/lib/module/components/customDropDown/types.js +4 -0
  33. package/lib/module/components/customDropDown/types.js.map +1 -0
  34. package/lib/module/components/customDropDown/utils.js +17 -0
  35. package/lib/module/components/customDropDown/utils.js.map +1 -0
  36. package/lib/module/components/customList/ListEmpty.js +33 -0
  37. package/lib/module/components/customList/ListEmpty.js.map +1 -0
  38. package/lib/module/components/customList/ListFooterLoader.js +14 -0
  39. package/lib/module/components/customList/ListFooterLoader.js.map +1 -0
  40. package/lib/module/components/customList/defaultKeyExtractor.js +9 -0
  41. package/lib/module/components/customList/defaultKeyExtractor.js.map +1 -0
  42. package/lib/module/components/customList/getFlashList.js +19 -0
  43. package/lib/module/components/customList/getFlashList.js.map +1 -0
  44. package/lib/module/components/customList/index.js +117 -0
  45. package/lib/module/components/customList/index.js.map +1 -0
  46. package/lib/module/components/customList/styles.js +45 -0
  47. package/lib/module/components/customList/styles.js.map +1 -0
  48. package/lib/module/components/customList/types.js +4 -0
  49. package/lib/module/components/customList/types.js.map +1 -0
  50. package/lib/module/components/customModal/ModalFooter.js +44 -0
  51. package/lib/module/components/customModal/ModalFooter.js.map +1 -0
  52. package/lib/module/components/customModal/index.js +132 -0
  53. package/lib/module/components/customModal/index.js.map +1 -0
  54. package/lib/module/components/customModal/styles.js +123 -0
  55. package/lib/module/components/customModal/styles.js.map +1 -0
  56. package/lib/module/components/customModal/types.js +4 -0
  57. package/lib/module/components/customModal/types.js.map +1 -0
  58. package/lib/module/components/customModal/useCustomModal.js +23 -0
  59. package/lib/module/components/customModal/useCustomModal.js.map +1 -0
  60. package/lib/module/components/customNumberPad/NumberPadKey.js +39 -0
  61. package/lib/module/components/customNumberPad/NumberPadKey.js.map +1 -0
  62. package/lib/module/components/customNumberPad/index.js +156 -0
  63. package/lib/module/components/customNumberPad/index.js.map +1 -0
  64. package/lib/module/components/customNumberPad/styles.js +131 -0
  65. package/lib/module/components/customNumberPad/styles.js.map +1 -0
  66. package/lib/module/components/customNumberPad/types.js +4 -0
  67. package/lib/module/components/customNumberPad/types.js.map +1 -0
  68. package/lib/module/components/customNumberPad/useNumberPadInput.js +44 -0
  69. package/lib/module/components/customNumberPad/useNumberPadInput.js.map +1 -0
  70. package/lib/module/components/customNumberPad/utils.js +38 -0
  71. package/lib/module/components/customNumberPad/utils.js.map +1 -0
  72. package/lib/module/components/customSlideTabs/AnimatedTabIndicator.js +66 -0
  73. package/lib/module/components/customSlideTabs/AnimatedTabIndicator.js.map +1 -0
  74. package/lib/module/components/customSlideTabs/TabBarItem.js +61 -0
  75. package/lib/module/components/customSlideTabs/TabBarItem.js.map +1 -0
  76. package/lib/module/components/customSlideTabs/TabScene.js +88 -0
  77. package/lib/module/components/customSlideTabs/TabScene.js.map +1 -0
  78. package/lib/module/components/customSlideTabs/index.js +277 -0
  79. package/lib/module/components/customSlideTabs/index.js.map +1 -0
  80. package/lib/module/components/customSlideTabs/styles.js +132 -0
  81. package/lib/module/components/customSlideTabs/styles.js.map +1 -0
  82. package/lib/module/components/customSlideTabs/tabBarScroll.js +65 -0
  83. package/lib/module/components/customSlideTabs/tabBarScroll.js.map +1 -0
  84. package/lib/module/components/customSlideTabs/types.js +4 -0
  85. package/lib/module/components/customSlideTabs/types.js.map +1 -0
  86. package/lib/module/components/loading/index.js +34 -0
  87. package/lib/module/components/loading/index.js.map +1 -0
  88. package/lib/module/customFunctions/array.js +61 -0
  89. package/lib/module/customFunctions/array.js.map +1 -0
  90. package/lib/module/customFunctions/async.js +62 -0
  91. package/lib/module/customFunctions/async.js.map +1 -0
  92. package/lib/module/customFunctions/date.js +109 -0
  93. package/lib/module/customFunctions/date.js.map +1 -0
  94. package/lib/module/customFunctions/general.js +29 -0
  95. package/lib/module/customFunctions/general.js.map +1 -0
  96. package/lib/module/customFunctions/id.js +20 -0
  97. package/lib/module/customFunctions/id.js.map +1 -0
  98. package/lib/module/customFunctions/index.js +29 -0
  99. package/lib/module/customFunctions/index.js.map +1 -0
  100. package/lib/module/customFunctions/number.js +94 -0
  101. package/lib/module/customFunctions/number.js.map +1 -0
  102. package/lib/module/customFunctions/object.js +39 -0
  103. package/lib/module/customFunctions/object.js.map +1 -0
  104. package/lib/module/customFunctions/string.js +63 -0
  105. package/lib/module/customFunctions/string.js.map +1 -0
  106. package/lib/module/customFunctions/types.js +2 -0
  107. package/lib/module/customFunctions/types.js.map +1 -0
  108. package/lib/module/customFunctions/validation.js +34 -0
  109. package/lib/module/customFunctions/validation.js.map +1 -0
  110. package/lib/module/customHooks/errors.js +61 -0
  111. package/lib/module/customHooks/errors.js.map +1 -0
  112. package/lib/module/customHooks/fetchJson.js +36 -0
  113. package/lib/module/customHooks/fetchJson.js.map +1 -0
  114. package/lib/module/customHooks/index.js +10 -0
  115. package/lib/module/customHooks/index.js.map +1 -0
  116. package/lib/module/customHooks/internal.js +49 -0
  117. package/lib/module/customHooks/internal.js.map +1 -0
  118. package/lib/module/customHooks/types.js +2 -0
  119. package/lib/module/customHooks/types.js.map +1 -0
  120. package/lib/module/customHooks/useApi.js +91 -0
  121. package/lib/module/customHooks/useApi.js.map +1 -0
  122. package/lib/module/customHooks/useLazyApi.js +80 -0
  123. package/lib/module/customHooks/useLazyApi.js.map +1 -0
  124. package/lib/module/customHooks/useMutation.js +69 -0
  125. package/lib/module/customHooks/useMutation.js.map +1 -0
  126. package/lib/module/customHooks/usePaginatedApi.js +127 -0
  127. package/lib/module/customHooks/usePaginatedApi.js.map +1 -0
  128. package/lib/module/customHooks/usePollingApi.js +37 -0
  129. package/lib/module/customHooks/usePollingApi.js.map +1 -0
  130. package/lib/module/index.js +13 -0
  131. package/lib/module/index.js.map +1 -0
  132. package/lib/module/multiply.js +6 -0
  133. package/lib/module/multiply.js.map +1 -0
  134. package/lib/module/package.json +1 -0
  135. package/lib/typescript/package.json +1 -0
  136. package/lib/typescript/src/components/CustomCheckbox/index.d.ts +5 -0
  137. package/lib/typescript/src/components/CustomCheckbox/index.d.ts.map +1 -0
  138. package/lib/typescript/src/components/CustomCheckbox/styles.d.ts +67 -0
  139. package/lib/typescript/src/components/CustomCheckbox/styles.d.ts.map +1 -0
  140. package/lib/typescript/src/components/CustomCheckbox/types.d.ts +28 -0
  141. package/lib/typescript/src/components/CustomCheckbox/types.d.ts.map +1 -0
  142. package/lib/typescript/src/components/closeButton/index.d.ts +4 -0
  143. package/lib/typescript/src/components/closeButton/index.d.ts.map +1 -0
  144. package/lib/typescript/src/components/closeButton/types.d.ts +8 -0
  145. package/lib/typescript/src/components/closeButton/types.d.ts.map +1 -0
  146. package/lib/typescript/src/components/customButton/index.d.ts +5 -0
  147. package/lib/typescript/src/components/customButton/index.d.ts.map +1 -0
  148. package/lib/typescript/src/components/customButton/styles.d.ts +231 -0
  149. package/lib/typescript/src/components/customButton/styles.d.ts.map +1 -0
  150. package/lib/typescript/src/components/customButton/types.d.ts +46 -0
  151. package/lib/typescript/src/components/customButton/types.d.ts.map +1 -0
  152. package/lib/typescript/src/components/customDropDown/DropDownBottomSheet.d.ts +18 -0
  153. package/lib/typescript/src/components/customDropDown/DropDownBottomSheet.d.ts.map +1 -0
  154. package/lib/typescript/src/components/customDropDown/DropDownList.d.ts +17 -0
  155. package/lib/typescript/src/components/customDropDown/DropDownList.d.ts.map +1 -0
  156. package/lib/typescript/src/components/customDropDown/DropDownListItem.d.ts +15 -0
  157. package/lib/typescript/src/components/customDropDown/DropDownListItem.d.ts.map +1 -0
  158. package/lib/typescript/src/components/customDropDown/DropDownListModal.d.ts +19 -0
  159. package/lib/typescript/src/components/customDropDown/DropDownListModal.d.ts.map +1 -0
  160. package/lib/typescript/src/components/customDropDown/index.d.ts +5 -0
  161. package/lib/typescript/src/components/customDropDown/index.d.ts.map +1 -0
  162. package/lib/typescript/src/components/customDropDown/styles.d.ts +190 -0
  163. package/lib/typescript/src/components/customDropDown/styles.d.ts.map +1 -0
  164. package/lib/typescript/src/components/customDropDown/types.d.ts +37 -0
  165. package/lib/typescript/src/components/customDropDown/types.d.ts.map +1 -0
  166. package/lib/typescript/src/components/customDropDown/utils.d.ts +4 -0
  167. package/lib/typescript/src/components/customDropDown/utils.d.ts.map +1 -0
  168. package/lib/typescript/src/components/customList/ListEmpty.d.ts +10 -0
  169. package/lib/typescript/src/components/customList/ListEmpty.d.ts.map +1 -0
  170. package/lib/typescript/src/components/customList/ListFooterLoader.d.ts +3 -0
  171. package/lib/typescript/src/components/customList/ListFooterLoader.d.ts.map +1 -0
  172. package/lib/typescript/src/components/customList/defaultKeyExtractor.d.ts +2 -0
  173. package/lib/typescript/src/components/customList/defaultKeyExtractor.d.ts.map +1 -0
  174. package/lib/typescript/src/components/customList/getFlashList.d.ts +6 -0
  175. package/lib/typescript/src/components/customList/getFlashList.d.ts.map +1 -0
  176. package/lib/typescript/src/components/customList/index.d.ts +11 -0
  177. package/lib/typescript/src/components/customList/index.d.ts.map +1 -0
  178. package/lib/typescript/src/components/customList/styles.d.ts +42 -0
  179. package/lib/typescript/src/components/customList/styles.d.ts.map +1 -0
  180. package/lib/typescript/src/components/customList/types.d.ts +33 -0
  181. package/lib/typescript/src/components/customList/types.d.ts.map +1 -0
  182. package/lib/typescript/src/components/customModal/ModalFooter.d.ts +12 -0
  183. package/lib/typescript/src/components/customModal/ModalFooter.d.ts.map +1 -0
  184. package/lib/typescript/src/components/customModal/index.d.ts +6 -0
  185. package/lib/typescript/src/components/customModal/index.d.ts.map +1 -0
  186. package/lib/typescript/src/components/customModal/styles.d.ts +83 -0
  187. package/lib/typescript/src/components/customModal/styles.d.ts.map +1 -0
  188. package/lib/typescript/src/components/customModal/types.d.ts +36 -0
  189. package/lib/typescript/src/components/customModal/types.d.ts.map +1 -0
  190. package/lib/typescript/src/components/customModal/useCustomModal.d.ts +8 -0
  191. package/lib/typescript/src/components/customModal/useCustomModal.d.ts.map +1 -0
  192. package/lib/typescript/src/components/customNumberPad/NumberPadKey.d.ts +23 -0
  193. package/lib/typescript/src/components/customNumberPad/NumberPadKey.d.ts.map +1 -0
  194. package/lib/typescript/src/components/customNumberPad/index.d.ts +7 -0
  195. package/lib/typescript/src/components/customNumberPad/index.d.ts.map +1 -0
  196. package/lib/typescript/src/components/customNumberPad/styles.d.ts +37 -0
  197. package/lib/typescript/src/components/customNumberPad/styles.d.ts.map +1 -0
  198. package/lib/typescript/src/components/customNumberPad/types.d.ts +47 -0
  199. package/lib/typescript/src/components/customNumberPad/types.d.ts.map +1 -0
  200. package/lib/typescript/src/components/customNumberPad/useNumberPadInput.d.ts +16 -0
  201. package/lib/typescript/src/components/customNumberPad/useNumberPadInput.d.ts.map +1 -0
  202. package/lib/typescript/src/components/customNumberPad/utils.d.ts +4 -0
  203. package/lib/typescript/src/components/customNumberPad/utils.d.ts.map +1 -0
  204. package/lib/typescript/src/components/customSlideTabs/AnimatedTabIndicator.d.ts +16 -0
  205. package/lib/typescript/src/components/customSlideTabs/AnimatedTabIndicator.d.ts.map +1 -0
  206. package/lib/typescript/src/components/customSlideTabs/TabBarItem.d.ts +23 -0
  207. package/lib/typescript/src/components/customSlideTabs/TabBarItem.d.ts.map +1 -0
  208. package/lib/typescript/src/components/customSlideTabs/TabScene.d.ts +21 -0
  209. package/lib/typescript/src/components/customSlideTabs/TabScene.d.ts.map +1 -0
  210. package/lib/typescript/src/components/customSlideTabs/index.d.ts +5 -0
  211. package/lib/typescript/src/components/customSlideTabs/index.d.ts.map +1 -0
  212. package/lib/typescript/src/components/customSlideTabs/styles.d.ts +130 -0
  213. package/lib/typescript/src/components/customSlideTabs/styles.d.ts.map +1 -0
  214. package/lib/typescript/src/components/customSlideTabs/tabBarScroll.d.ts +15 -0
  215. package/lib/typescript/src/components/customSlideTabs/tabBarScroll.d.ts.map +1 -0
  216. package/lib/typescript/src/components/customSlideTabs/types.d.ts +68 -0
  217. package/lib/typescript/src/components/customSlideTabs/types.d.ts.map +1 -0
  218. package/lib/typescript/src/components/loading/index.d.ts +7 -0
  219. package/lib/typescript/src/components/loading/index.d.ts.map +1 -0
  220. package/lib/typescript/src/customFunctions/array.d.ts +7 -0
  221. package/lib/typescript/src/customFunctions/array.d.ts.map +1 -0
  222. package/lib/typescript/src/customFunctions/async.d.ts +9 -0
  223. package/lib/typescript/src/customFunctions/async.d.ts.map +1 -0
  224. package/lib/typescript/src/customFunctions/date.d.ts +18 -0
  225. package/lib/typescript/src/customFunctions/date.d.ts.map +1 -0
  226. package/lib/typescript/src/customFunctions/general.d.ts +7 -0
  227. package/lib/typescript/src/customFunctions/general.d.ts.map +1 -0
  228. package/lib/typescript/src/customFunctions/id.d.ts +4 -0
  229. package/lib/typescript/src/customFunctions/id.d.ts.map +1 -0
  230. package/lib/typescript/src/customFunctions/index.d.ts +26 -0
  231. package/lib/typescript/src/customFunctions/index.d.ts.map +1 -0
  232. package/lib/typescript/src/customFunctions/number.d.ts +15 -0
  233. package/lib/typescript/src/customFunctions/number.d.ts.map +1 -0
  234. package/lib/typescript/src/customFunctions/object.d.ts +6 -0
  235. package/lib/typescript/src/customFunctions/object.d.ts.map +1 -0
  236. package/lib/typescript/src/customFunctions/string.d.ts +20 -0
  237. package/lib/typescript/src/customFunctions/string.d.ts.map +1 -0
  238. package/lib/typescript/src/customFunctions/types.d.ts +22 -0
  239. package/lib/typescript/src/customFunctions/types.d.ts.map +1 -0
  240. package/lib/typescript/src/customFunctions/validation.d.ts +11 -0
  241. package/lib/typescript/src/customFunctions/validation.d.ts.map +1 -0
  242. package/lib/typescript/src/customHooks/errors.d.ts +16 -0
  243. package/lib/typescript/src/customHooks/errors.d.ts.map +1 -0
  244. package/lib/typescript/src/customHooks/fetchJson.d.ts +5 -0
  245. package/lib/typescript/src/customHooks/fetchJson.d.ts.map +1 -0
  246. package/lib/typescript/src/customHooks/index.d.ts +9 -0
  247. package/lib/typescript/src/customHooks/index.d.ts.map +1 -0
  248. package/lib/typescript/src/customHooks/internal.d.ts +12 -0
  249. package/lib/typescript/src/customHooks/internal.d.ts.map +1 -0
  250. package/lib/typescript/src/customHooks/types.d.ts +49 -0
  251. package/lib/typescript/src/customHooks/types.d.ts.map +1 -0
  252. package/lib/typescript/src/customHooks/useApi.d.ts +13 -0
  253. package/lib/typescript/src/customHooks/useApi.d.ts.map +1 -0
  254. package/lib/typescript/src/customHooks/useLazyApi.d.ts +14 -0
  255. package/lib/typescript/src/customHooks/useLazyApi.d.ts.map +1 -0
  256. package/lib/typescript/src/customHooks/useMutation.d.ts +15 -0
  257. package/lib/typescript/src/customHooks/useMutation.d.ts.map +1 -0
  258. package/lib/typescript/src/customHooks/usePaginatedApi.d.ts +19 -0
  259. package/lib/typescript/src/customHooks/usePaginatedApi.d.ts.map +1 -0
  260. package/lib/typescript/src/customHooks/usePollingApi.d.ts +13 -0
  261. package/lib/typescript/src/customHooks/usePollingApi.d.ts.map +1 -0
  262. package/lib/typescript/src/index.d.ts +11 -0
  263. package/lib/typescript/src/index.d.ts.map +1 -0
  264. package/lib/typescript/src/multiply.d.ts +2 -0
  265. package/lib/typescript/src/multiply.d.ts.map +1 -0
  266. package/package.json +181 -0
  267. package/src/assets/images/close.png +0 -0
  268. package/src/components/CustomCheckbox/index.tsx +143 -0
  269. package/src/components/CustomCheckbox/styles.ts +146 -0
  270. package/src/components/CustomCheckbox/types.ts +33 -0
  271. package/src/components/closeButton/index.tsx +40 -0
  272. package/src/components/closeButton/types.ts +13 -0
  273. package/src/components/customButton/index.tsx +288 -0
  274. package/src/components/customButton/styles.ts +247 -0
  275. package/src/components/customButton/types.ts +71 -0
  276. package/src/components/customDropDown/DropDownBottomSheet.tsx +70 -0
  277. package/src/components/customDropDown/DropDownList.tsx +88 -0
  278. package/src/components/customDropDown/DropDownListItem.tsx +74 -0
  279. package/src/components/customDropDown/DropDownListModal.tsx +86 -0
  280. package/src/components/customDropDown/index.tsx +213 -0
  281. package/src/components/customDropDown/styles.ts +184 -0
  282. package/src/components/customDropDown/types.ts +48 -0
  283. package/src/components/customDropDown/utils.ts +24 -0
  284. package/src/components/customList/ListEmpty.tsx +36 -0
  285. package/src/components/customList/ListFooterLoader.tsx +11 -0
  286. package/src/components/customList/defaultKeyExtractor.ts +7 -0
  287. package/src/components/customList/getFlashList.ts +26 -0
  288. package/src/components/customList/index.tsx +142 -0
  289. package/src/components/customList/styles.ts +43 -0
  290. package/src/components/customList/types.ts +60 -0
  291. package/src/components/customModal/ModalFooter.tsx +57 -0
  292. package/src/components/customModal/index.tsx +166 -0
  293. package/src/components/customModal/styles.ts +131 -0
  294. package/src/components/customModal/types.ts +48 -0
  295. package/src/components/customModal/useCustomModal.ts +25 -0
  296. package/src/components/customNumberPad/NumberPadKey.tsx +81 -0
  297. package/src/components/customNumberPad/index.tsx +204 -0
  298. package/src/components/customNumberPad/styles.ts +146 -0
  299. package/src/components/customNumberPad/types.ts +53 -0
  300. package/src/components/customNumberPad/useNumberPadInput.ts +56 -0
  301. package/src/components/customNumberPad/utils.ts +54 -0
  302. package/src/components/customSlideTabs/AnimatedTabIndicator.tsx +103 -0
  303. package/src/components/customSlideTabs/TabBarItem.tsx +118 -0
  304. package/src/components/customSlideTabs/TabScene.tsx +136 -0
  305. package/src/components/customSlideTabs/index.tsx +385 -0
  306. package/src/components/customSlideTabs/styles.ts +136 -0
  307. package/src/components/customSlideTabs/tabBarScroll.ts +92 -0
  308. package/src/components/customSlideTabs/types.ts +87 -0
  309. package/src/components/loading/index.tsx +34 -0
  310. package/src/customFunctions/array.ts +83 -0
  311. package/src/customFunctions/async.ts +85 -0
  312. package/src/customFunctions/date.ts +158 -0
  313. package/src/customFunctions/general.ts +35 -0
  314. package/src/customFunctions/id.ts +25 -0
  315. package/src/customFunctions/index.ts +91 -0
  316. package/src/customFunctions/number.ts +139 -0
  317. package/src/customFunctions/object.ts +59 -0
  318. package/src/customFunctions/string.ts +119 -0
  319. package/src/customFunctions/types.ts +25 -0
  320. package/src/customFunctions/validation.ts +49 -0
  321. package/src/customHooks/errors.ts +87 -0
  322. package/src/customHooks/fetchJson.ts +49 -0
  323. package/src/customHooks/index.ts +20 -0
  324. package/src/customHooks/internal.ts +67 -0
  325. package/src/customHooks/types.ts +71 -0
  326. package/src/customHooks/useApi.ts +107 -0
  327. package/src/customHooks/useLazyApi.ts +92 -0
  328. package/src/customHooks/useMutation.ts +97 -0
  329. package/src/customHooks/usePaginatedApi.ts +168 -0
  330. package/src/customHooks/usePollingApi.ts +48 -0
  331. package/src/index.tsx +63 -0
  332. package/src/multiply.tsx +3 -0
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ const toSafeNumber = value => {
4
+ const parsed = Number(value);
5
+ return Number.isNaN(parsed) ? 0 : parsed;
6
+ };
7
+ export const parseNumberSafe = toSafeNumber;
8
+ export const formatNumberWithCommas = (value, options = {}) => {
9
+ const {
10
+ locale = 'en-US',
11
+ minimumFractionDigits = 0,
12
+ maximumFractionDigits = 2
13
+ } = options;
14
+ return toSafeNumber(value).toLocaleString(locale, {
15
+ minimumFractionDigits,
16
+ maximumFractionDigits
17
+ });
18
+ };
19
+ export const formatCurrency = (amount, options = {}) => {
20
+ const {
21
+ locale = 'en-US',
22
+ currency = 'USD',
23
+ isDiscount = false,
24
+ minimumFractionDigits = 2,
25
+ maximumFractionDigits = 2
26
+ } = options;
27
+ const safeAmount = toSafeNumber(amount);
28
+ if (locale.startsWith('fr')) {
29
+ const formatted = `${safeAmount.toFixed(maximumFractionDigits).replace('.', ',')} $`;
30
+ return isDiscount ? `-${formatted}` : formatted;
31
+ }
32
+ const formatted = new Intl.NumberFormat(locale, {
33
+ style: 'currency',
34
+ currency,
35
+ minimumFractionDigits,
36
+ maximumFractionDigits
37
+ }).format(safeAmount);
38
+ return isDiscount ? `-${formatted}` : formatted;
39
+ };
40
+ export const formatDiscountAmount = (discount, options = {}) => {
41
+ if (discount === undefined || discount === null || discount === '') {
42
+ return 0;
43
+ }
44
+ const raw = discount.toString().replace('-', '');
45
+ return formatCurrency(raw, {
46
+ ...options,
47
+ isDiscount: true
48
+ });
49
+ };
50
+ export const generateRandomNumberString = length => {
51
+ let result = '';
52
+ const digits = '0123456789';
53
+ for (let i = 0; i < length; i += 1) {
54
+ result += digits.charAt(Math.floor(Math.random() * digits.length));
55
+ }
56
+ return result;
57
+ };
58
+ export const roundToDecimals = (value, decimals = 2) => {
59
+ const factor = 10 ** decimals;
60
+ return Math.round(toSafeNumber(value) * factor) / factor;
61
+ };
62
+ export const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
63
+ export const formatPercentage = (value, decimals = 0, locale = 'en-US') => `${toSafeNumber(value).toLocaleString(locale, {
64
+ minimumFractionDigits: decimals,
65
+ maximumFractionDigits: decimals
66
+ })}%`;
67
+ export const percentage = (part, total) => {
68
+ if (!total) {
69
+ return 0;
70
+ }
71
+ return roundToDecimals(part / total * 100, 2);
72
+ };
73
+ export const formatBytes = (bytes, decimals = 2) => {
74
+ if (bytes === 0) {
75
+ return '0 B';
76
+ }
77
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
78
+ const index = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
79
+ const value = bytes / 1024 ** index;
80
+ return `${roundToDecimals(value, decimals)} ${units[index]}`;
81
+ };
82
+ export const randomInt = (min, max) => {
83
+ const lower = Math.ceil(min);
84
+ const upper = Math.floor(max);
85
+ return Math.floor(Math.random() * (upper - lower + 1)) + lower;
86
+ };
87
+ export const sum = values => values.reduce((total, value) => total + toSafeNumber(value), 0);
88
+ export const average = values => {
89
+ if (!values.length) {
90
+ return 0;
91
+ }
92
+ return roundToDecimals(sum(values) / values.length, 2);
93
+ };
94
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toSafeNumber","value","parsed","Number","isNaN","parseNumberSafe","formatNumberWithCommas","options","locale","minimumFractionDigits","maximumFractionDigits","toLocaleString","formatCurrency","amount","currency","isDiscount","safeAmount","startsWith","formatted","toFixed","replace","Intl","NumberFormat","style","format","formatDiscountAmount","discount","undefined","raw","toString","generateRandomNumberString","length","result","digits","i","charAt","Math","floor","random","roundToDecimals","decimals","factor","round","clamp","min","max","formatPercentage","percentage","part","total","formatBytes","bytes","units","index","log","randomInt","lower","ceil","upper","sum","values","reduce","average"],"sourceRoot":"../../../src","sources":["customFunctions/number.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ export const pick = (object, keys) => {
4
+ const result = {};
5
+ for (const key of keys) {
6
+ if (key in object) {
7
+ result[key] = object[key];
8
+ }
9
+ }
10
+ return result;
11
+ };
12
+ export const omit = (object, keys) => {
13
+ const result = {
14
+ ...object
15
+ };
16
+ for (const key of keys) {
17
+ delete result[key];
18
+ }
19
+ return result;
20
+ };
21
+ export const deepClone = value => {
22
+ if (value === null || typeof value !== 'object') {
23
+ return value;
24
+ }
25
+ return JSON.parse(JSON.stringify(value));
26
+ };
27
+ export const isPlainObject = value => typeof value === 'object' && value !== null && !Array.isArray(value);
28
+ export const getNestedValue = (object, path, fallback) => {
29
+ const keys = path.split('.');
30
+ let current = object;
31
+ for (const key of keys) {
32
+ if (!isPlainObject(current) || !(key in current)) {
33
+ return fallback;
34
+ }
35
+ current = current[key];
36
+ }
37
+ return current;
38
+ };
39
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pick","object","keys","result","key","omit","deepClone","value","JSON","parse","stringify","isPlainObject","Array","isArray","getNestedValue","path","fallback","split","current"],"sourceRoot":"../../../src","sources":["customFunctions/object.ts"],"mappings":";;AAAA,OAAO,MAAMA,IAAI,GAAGA,CAClBC,MAAS,EACTC,IAAS,KACM;EACf,MAAMC,MAAM,GAAG,CAAC,CAAe;EAE/B,KAAK,MAAMC,GAAG,IAAIF,IAAI,EAAE;IACtB,IAAIE,GAAG,IAAIH,MAAM,EAAE;MACjBE,MAAM,CAACC,GAAG,CAAC,GAAGH,MAAM,CAACG,GAAG,CAAC;IAC3B;EACF;EAEA,OAAOD,MAAM;AACf,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAClBJ,MAAS,EACTC,IAAS,KACM;EACf,MAAMC,MAAM,GAAG;IAAE,GAAGF;EAAO,CAAC;EAE5B,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB,OAAOC,MAAM,CAACC,GAAG,CAAC;EACpB;EAEA,OAAOD,MAAM;AACf,CAAC;AAED,OAAO,MAAMG,SAAS,GAAOC,KAAQ,IAAQ;EAC3C,IAAIA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC/C,OAAOA,KAAK;EACd;EAEA,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,OAAO,MAAMI,aAAa,GACxBJ,KAAc,IAEd,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,CAACK,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC;AAEtE,OAAO,MAAMO,cAAc,GAAGA,CAC5Bb,MAA+B,EAC/Bc,IAAY,EACZC,QAAY,KACM;EAClB,MAAMd,IAAI,GAAGa,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC;EAC5B,IAAIC,OAAgB,GAAGjB,MAAM;EAE7B,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB,IAAI,CAACS,aAAa,CAACO,OAAO,CAAC,IAAI,EAAEd,GAAG,IAAIc,OAAO,CAAC,EAAE;MAChD,OAAOF,QAAQ;IACjB;IAEAE,OAAO,GAAGA,OAAO,CAACd,GAAG,CAAC;EACxB;EAEA,OAAOc,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ export const capitalizeFirst = value => {
4
+ if (!value) {
5
+ return '';
6
+ }
7
+ return value.charAt(0).toUpperCase() + value.slice(1);
8
+ };
9
+ export const getLocalizedSplitText = (text, language, options) => {
10
+ if (typeof text !== 'string' || !text) {
11
+ return '';
12
+ }
13
+ const delimiter = options?.delimiter ?? '||';
14
+ const englishCode = options?.englishCode ?? 'en';
15
+ const parts = text.split(delimiter);
16
+ if (language.startsWith('fr')) {
17
+ return parts[1]?.trim() ?? parts[0]?.trim() ?? '';
18
+ }
19
+ if (language.startsWith(englishCode)) {
20
+ return parts[0]?.trim() ?? '';
21
+ }
22
+ return parts[0]?.trim() ?? '';
23
+ };
24
+ export const removeDuplicates = items => Array.from(new Set(items));
25
+ export const removeDuplicateStrings = items => removeDuplicates(items);
26
+ export const findItemByProperty = (items, property, value) => {
27
+ if (!items?.length) {
28
+ return undefined;
29
+ }
30
+ return items.find(item => item[property] === value);
31
+ };
32
+ export const truncate = (value, maxLength, suffix = '...') => {
33
+ if (!value || value.length <= maxLength) {
34
+ return value;
35
+ }
36
+ return `${value.slice(0, Math.max(0, maxLength - suffix.length))}${suffix}`;
37
+ };
38
+ export const capitalizeWords = value => value.trim().split(/\s+/).filter(Boolean).map(word => capitalizeFirst(word.toLowerCase())).join(' ');
39
+ export const slugify = value => value.trim().toLowerCase().replace(/[^a-z0-9\s-]/g, '').replace(/\s+/g, '-').replace(/-+/g, '-');
40
+ export const maskString = (value, options = {}) => {
41
+ const {
42
+ visibleStart = 0,
43
+ visibleEnd = 4,
44
+ maskChar = '*'
45
+ } = options;
46
+ if (!value) {
47
+ return '';
48
+ }
49
+ if (value.length <= visibleStart + visibleEnd) {
50
+ return maskChar.repeat(value.length);
51
+ }
52
+ const start = value.slice(0, visibleStart);
53
+ const end = value.slice(-visibleEnd);
54
+ const masked = maskChar.repeat(value.length - visibleStart - visibleEnd);
55
+ return `${start}${masked}${end}`;
56
+ };
57
+ export const normalizeWhitespace = value => value.trim().replace(/\s+/g, ' ');
58
+ export const initialsFromName = (fullName, maxInitials = 2) => {
59
+ const parts = normalizeWhitespace(fullName).split(' ').filter(Boolean);
60
+ return parts.slice(0, maxInitials).map(part => part.charAt(0).toUpperCase()).join('');
61
+ };
62
+ export const camelToTitle = value => capitalizeWords(value.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/[-_]/g, ' '));
63
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["capitalizeFirst","value","charAt","toUpperCase","slice","getLocalizedSplitText","text","language","options","delimiter","englishCode","parts","split","startsWith","trim","removeDuplicates","items","Array","from","Set","removeDuplicateStrings","findItemByProperty","property","length","undefined","find","item","truncate","maxLength","suffix","Math","max","capitalizeWords","filter","Boolean","map","word","toLowerCase","join","slugify","replace","maskString","visibleStart","visibleEnd","maskChar","repeat","start","end","masked","normalizeWhitespace","initialsFromName","fullName","maxInitials","part","camelToTitle"],"sourceRoot":"../../../src","sources":["customFunctions/string.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["customFunctions/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/;
4
+ const URL_REGEX = /^(https?:\/\/)?([\w-]+\.)+[\w-]{2,}(\/[\w\-._~:/?#[\]@!$&'()*+,;=]*)?$/i;
5
+ const PHONE_REGEX = /^\+?[\d\s().-]{7,20}$/;
6
+ const NUMERIC_REGEX = /^-?\d+(\.\d+)?$/;
7
+ export const isValidEmail = email => EMAIL_REGEX.test(email);
8
+ export const isValidUrl = value => URL_REGEX.test(value.trim());
9
+ export const isValidPhone = value => PHONE_REGEX.test(value.trim());
10
+ export const isNumeric = value => NUMERIC_REGEX.test(String(value).trim());
11
+ export const isStrongPassword = (password, options = {}) => {
12
+ const {
13
+ minLength = 8,
14
+ requireNumber = true,
15
+ requireLetter = true
16
+ } = options;
17
+ if (password.length < minLength) {
18
+ return false;
19
+ }
20
+ if (requireNumber && !/\d/.test(password)) {
21
+ return false;
22
+ }
23
+ if (requireLetter && !/[a-zA-Z]/.test(password)) {
24
+ return false;
25
+ }
26
+ return true;
27
+ };
28
+ export const encodePlusInEmail = email => {
29
+ if (!email.includes('+')) {
30
+ return email;
31
+ }
32
+ return email.replace(/\+/g, '%2B');
33
+ };
34
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EMAIL_REGEX","URL_REGEX","PHONE_REGEX","NUMERIC_REGEX","isValidEmail","email","test","isValidUrl","value","trim","isValidPhone","isNumeric","String","isStrongPassword","password","options","minLength","requireNumber","requireLetter","length","encodePlusInEmail","includes","replace"],"sourceRoot":"../../../src","sources":["customFunctions/validation.ts"],"mappings":";;AAAA,MAAMA,WAAW,GAAG,+BAA+B;AACnD,MAAMC,SAAS,GACb,yEAAyE;AAC3E,MAAMC,WAAW,GAAG,uBAAuB;AAC3C,MAAMC,aAAa,GAAG,iBAAiB;AAEvC,OAAO,MAAMC,YAAY,GAAIC,KAAa,IAAcL,WAAW,CAACM,IAAI,CAACD,KAAK,CAAC;AAE/E,OAAO,MAAME,UAAU,GAAIC,KAAa,IACtCP,SAAS,CAACK,IAAI,CAACE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC;AAE9B,OAAO,MAAMC,YAAY,GAAIF,KAAa,IACxCN,WAAW,CAACI,IAAI,CAACE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC;AAEhC,OAAO,MAAME,SAAS,GAAIH,KAAsB,IAC9CL,aAAa,CAACG,IAAI,CAACM,MAAM,CAACJ,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;AAE1C,OAAO,MAAMI,gBAAgB,GAAGA,CAC9BC,QAAgB,EAChBC,OAIC,GAAG,CAAC,CAAC,KACM;EACZ,MAAM;IAAEC,SAAS,GAAG,CAAC;IAAEC,aAAa,GAAG,IAAI;IAAEC,aAAa,GAAG;EAAK,CAAC,GAAGH,OAAO;EAE7E,IAAID,QAAQ,CAACK,MAAM,GAAGH,SAAS,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,IAAIC,aAAa,IAAI,CAAC,IAAI,CAACX,IAAI,CAACQ,QAAQ,CAAC,EAAE;IACzC,OAAO,KAAK;EACd;EAEA,IAAII,aAAa,IAAI,CAAC,UAAU,CAACZ,IAAI,CAACQ,QAAQ,CAAC,EAAE;IAC/C,OAAO,KAAK;EACd;EAEA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMM,iBAAiB,GAAIf,KAAa,IAAa;EAC1D,IAAI,CAACA,KAAK,CAACgB,QAAQ,CAAC,GAAG,CAAC,EAAE;IACxB,OAAOhB,KAAK;EACd;EAEA,OAAOA,KAAK,CAACiB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AACpC,CAAC","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ export class ApiError extends Error {
4
+ constructor(message, options = {}) {
5
+ super(message, options.cause ? {
6
+ cause: options.cause
7
+ } : undefined);
8
+ this.name = 'ApiError';
9
+ this.status = options.status;
10
+ this.code = options.code;
11
+ this.details = options.details;
12
+ }
13
+ }
14
+ export const isApiError = error => error instanceof ApiError;
15
+ export const toApiError = error => {
16
+ if (isApiError(error)) {
17
+ return error;
18
+ }
19
+ if (error instanceof Error) {
20
+ const maybeStatus = error.status;
21
+ const maybeCode = error.code;
22
+ const maybeDetails = error.details;
23
+ return new ApiError(error.message, {
24
+ status: maybeStatus,
25
+ code: maybeCode,
26
+ details: maybeDetails ?? error,
27
+ cause: error
28
+ });
29
+ }
30
+ if (typeof error === 'string') {
31
+ return new ApiError(error);
32
+ }
33
+ if (error && typeof error === 'object') {
34
+ const record = error;
35
+ const message = String(record.message ?? record.error ?? record.statusText ?? 'Unknown error');
36
+ return new ApiError(message, {
37
+ status: typeof record.status === 'number' ? record.status : undefined,
38
+ code: typeof record.code === 'string' ? record.code : undefined,
39
+ details: error
40
+ });
41
+ }
42
+ return new ApiError('Unknown error', {
43
+ details: error
44
+ });
45
+ };
46
+ export const getApiErrorMessage = (error, fallback = 'Something went wrong') => {
47
+ if (!error) {
48
+ return fallback;
49
+ }
50
+ if (typeof error === 'string') {
51
+ return error;
52
+ }
53
+ if (error instanceof Error) {
54
+ return error.message || fallback;
55
+ }
56
+ if (typeof error === 'object' && error !== null && 'message' in error) {
57
+ return String(error.message ?? fallback);
58
+ }
59
+ return fallback;
60
+ };
61
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ApiError","Error","constructor","message","options","cause","undefined","name","status","code","details","isApiError","error","toApiError","maybeStatus","maybeCode","maybeDetails","record","String","statusText","getApiErrorMessage","fallback"],"sourceRoot":"../../../src","sources":["customHooks/errors.ts"],"mappings":";;AAEA,OAAO,MAAMA,QAAQ,SAASC,KAAK,CAAyB;EAK1DC,WAAWA,CACTC,OAAe,EACfC,OAKC,GAAG,CAAC,CAAC,EACN;IACA,KAAK,CAACD,OAAO,EAAEC,OAAO,CAACC,KAAK,GAAG;MAAEA,KAAK,EAAED,OAAO,CAACC;IAAM,CAAC,GAAGC,SAAS,CAAC;IACpE,IAAI,CAACC,IAAI,GAAG,UAAU;IACtB,IAAI,CAACC,MAAM,GAAGJ,OAAO,CAACI,MAAM;IAC5B,IAAI,CAACC,IAAI,GAAGL,OAAO,CAACK,IAAI;IACxB,IAAI,CAACC,OAAO,GAAGN,OAAO,CAACM,OAAO;EAChC;AACF;AAEA,OAAO,MAAMC,UAAU,GAAIC,KAAc,IACvCA,KAAK,YAAYZ,QAAQ;AAE3B,OAAO,MAAMa,UAAU,GAAID,KAAc,IAAe;EACtD,IAAID,UAAU,CAACC,KAAK,CAAC,EAAE;IACrB,OAAOA,KAAK;EACd;EAEA,IAAIA,KAAK,YAAYX,KAAK,EAAE;IAC1B,MAAMa,WAAW,GAAIF,KAAK,CAAiCJ,MAAM;IACjE,MAAMO,SAAS,GAAIH,KAAK,CAA+BH,IAAI;IAC3D,MAAMO,YAAY,GAAIJ,KAAK,CAAmCF,OAAO;IAErE,OAAO,IAAIV,QAAQ,CAACY,KAAK,CAACT,OAAO,EAAE;MACjCK,MAAM,EAAEM,WAAW;MACnBL,IAAI,EAAEM,SAAS;MACfL,OAAO,EAAEM,YAAY,IAAIJ,KAAK;MAC9BP,KAAK,EAAEO;IACT,CAAC,CAAC;EACJ;EAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAO,IAAIZ,QAAQ,CAACY,KAAK,CAAC;EAC5B;EAEA,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACtC,MAAMK,MAAM,GAAGL,KAAgC;IAC/C,MAAMT,OAAO,GAAGe,MAAM,CACpBD,MAAM,CAACd,OAAO,IAAIc,MAAM,CAACL,KAAK,IAAIK,MAAM,CAACE,UAAU,IAAI,eACzD,CAAC;IAED,OAAO,IAAInB,QAAQ,CAACG,OAAO,EAAE;MAC3BK,MAAM,EAAE,OAAOS,MAAM,CAACT,MAAM,KAAK,QAAQ,GAAGS,MAAM,CAACT,MAAM,GAAGF,SAAS;MACrEG,IAAI,EAAE,OAAOQ,MAAM,CAACR,IAAI,KAAK,QAAQ,GAAGQ,MAAM,CAACR,IAAI,GAAGH,SAAS;MAC/DI,OAAO,EAAEE;IACX,CAAC,CAAC;EACJ;EAEA,OAAO,IAAIZ,QAAQ,CAAC,eAAe,EAAE;IAAEU,OAAO,EAAEE;EAAM,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,MAAMQ,kBAAkB,GAAGA,CAChCR,KAAc,EACdS,QAAQ,GAAG,sBAAsB,KACtB;EACX,IAAI,CAACT,KAAK,EAAE;IACV,OAAOS,QAAQ;EACjB;EAEA,IAAI,OAAOT,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,IAAIA,KAAK,YAAYX,KAAK,EAAE;IAC1B,OAAOW,KAAK,CAACT,OAAO,IAAIkB,QAAQ;EAClC;EAEA,IAAI,OAAOT,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,SAAS,IAAIA,KAAK,EAAE;IACrE,OAAOM,MAAM,CAAEN,KAAK,CAA2BT,OAAO,IAAIkB,QAAQ,CAAC;EACrE;EAEA,OAAOA,QAAQ;AACjB,CAAC","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ import { ApiError } from "./errors.js";
4
+ export const fetchJson = async (input, options = {}) => {
5
+ const {
6
+ parseJson = true,
7
+ headers,
8
+ ...init
9
+ } = options;
10
+ const response = await fetch(input, {
11
+ ...init,
12
+ headers: {
13
+ 'Accept': 'application/json',
14
+ 'Content-Type': 'application/json',
15
+ ...headers
16
+ }
17
+ });
18
+ const rawText = await response.text();
19
+ let payload = rawText;
20
+ if (parseJson && rawText) {
21
+ try {
22
+ payload = JSON.parse(rawText);
23
+ } catch {
24
+ payload = rawText;
25
+ }
26
+ }
27
+ if (!response.ok) {
28
+ const message = typeof payload === 'object' && payload !== null && 'message' in payload && typeof payload.message === 'string' ? payload.message : response.statusText || 'Request failed';
29
+ throw new ApiError(message, {
30
+ status: response.status,
31
+ details: payload
32
+ });
33
+ }
34
+ return payload;
35
+ };
36
+ //# sourceMappingURL=fetchJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ApiError","fetchJson","input","options","parseJson","headers","init","response","fetch","rawText","text","payload","JSON","parse","ok","message","statusText","status","details"],"sourceRoot":"../../../src","sources":["customHooks/fetchJson.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,aAAU;AAMnC,OAAO,MAAMC,SAAS,GAAG,MAAAA,CACvBC,KAAwB,EACxBC,OAAyB,GAAG,CAAC,CAAC,KACP;EACvB,MAAM;IAAEC,SAAS,GAAG,IAAI;IAAEC,OAAO;IAAE,GAAGC;EAAK,CAAC,GAAGH,OAAO;EAEtD,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAACN,KAAK,EAAE;IAClC,GAAGI,IAAI;IACPD,OAAO,EAAE;MACP,QAAQ,EAAE,kBAAkB;MAC5B,cAAc,EAAE,kBAAkB;MAClC,GAAGA;IACL;EACF,CAAC,CAAC;EAEF,MAAMI,OAAO,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;EACrC,IAAIC,OAAgB,GAAGF,OAAO;EAE9B,IAAIL,SAAS,IAAIK,OAAO,EAAE;IACxB,IAAI;MACFE,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACJ,OAAO,CAAC;IAC/B,CAAC,CAAC,MAAM;MACNE,OAAO,GAAGF,OAAO;IACnB;EACF;EAEA,IAAI,CAACF,QAAQ,CAACO,EAAE,EAAE;IAChB,MAAMC,OAAO,GACX,OAAOJ,OAAO,KAAK,QAAQ,IAC3BA,OAAO,KAAK,IAAI,IAChB,SAAS,IAAIA,OAAO,IACpB,OAAQA,OAAO,CAA2BI,OAAO,KAAK,QAAQ,GACzDJ,OAAO,CAAyBI,OAAO,GACxCR,QAAQ,CAACS,UAAU,IAAI,gBAAgB;IAE7C,MAAM,IAAIhB,QAAQ,CAACe,OAAO,EAAE;MAC1BE,MAAM,EAAEV,QAAQ,CAACU,MAAM;MACvBC,OAAO,EAAEP;IACX,CAAC,CAAC;EACJ;EAEA,OAAOA,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ export { ApiError, getApiErrorMessage, isApiError, toApiError } from "./errors.js";
4
+ export { fetchJson } from "./fetchJson.js";
5
+ export { useApi } from "./useApi.js";
6
+ export { useLazyApi } from "./useLazyApi.js";
7
+ export { useMutation } from "./useMutation.js";
8
+ export { usePaginatedApi } from "./usePaginatedApi.js";
9
+ export { usePollingApi } from "./usePollingApi.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ApiError","getApiErrorMessage","isApiError","toApiError","fetchJson","useApi","useLazyApi","useMutation","usePaginatedApi","usePollingApi"],"sourceRoot":"../../../src","sources":["customHooks/index.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,kBAAkB,EAAEC,UAAU,EAAEC,UAAU,QAAQ,aAAU;AAC/E,SAASC,SAAS,QAA+B,gBAAa;AAC9D,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,aAAa,QAAQ,oBAAiB","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ import { toApiError } from "./errors.js";
5
+ export const useDependencyKey = deps => JSON.stringify(deps);
6
+ export const getStatusFlags = status => ({
7
+ status,
8
+ isIdle: status === 'idle',
9
+ isLoading: status === 'loading',
10
+ isSuccess: status === 'success',
11
+ isError: status === 'error'
12
+ });
13
+ export const useIsMounted = () => {
14
+ const isMountedRef = useRef(true);
15
+ useEffect(() => {
16
+ isMountedRef.current = true;
17
+ return () => {
18
+ isMountedRef.current = false;
19
+ };
20
+ }, []);
21
+ return isMountedRef;
22
+ };
23
+ export const useAbortControllerRef = () => {
24
+ const abortRef = useRef(null);
25
+ const abort = () => {
26
+ abortRef.current?.abort();
27
+ abortRef.current = null;
28
+ };
29
+ const create = () => {
30
+ abort();
31
+ const controller = new AbortController();
32
+ abortRef.current = controller;
33
+ return controller;
34
+ };
35
+ useEffect(() => abort, []);
36
+ return {
37
+ abortRef,
38
+ abort,
39
+ create
40
+ };
41
+ };
42
+ export const normalizeApiError = error => toApiError(error);
43
+ export const isAbortError = error => {
44
+ if (typeof DOMException !== 'undefined' && error instanceof DOMException && error.name === 'AbortError') {
45
+ return true;
46
+ }
47
+ return error instanceof Error && (error.name === 'AbortError' || error.message === 'Aborted');
48
+ };
49
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","toApiError","useDependencyKey","deps","JSON","stringify","getStatusFlags","status","isIdle","isLoading","isSuccess","isError","useIsMounted","isMountedRef","current","useAbortControllerRef","abortRef","abort","create","controller","AbortController","normalizeApiError","error","isAbortError","DOMException","name","Error","message"],"sourceRoot":"../../../src","sources":["customHooks/internal.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,SAASC,UAAU,QAAQ,aAAU;AAGrC,OAAO,MAAMC,gBAAgB,GAAIC,IAA4B,IAC3DC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC;AAEtB,OAAO,MAAMG,cAAc,GAAIC,MAAiB,KAAsB;EACpEA,MAAM;EACNC,MAAM,EAAED,MAAM,KAAK,MAAM;EACzBE,SAAS,EAAEF,MAAM,KAAK,SAAS;EAC/BG,SAAS,EAAEH,MAAM,KAAK,SAAS;EAC/BI,OAAO,EAAEJ,MAAM,KAAK;AACtB,CAAC,CAAC;AAEF,OAAO,MAAMK,YAAY,GAAGA,CAAA,KAAM;EAChC,MAAMC,YAAY,GAAGb,MAAM,CAAC,IAAI,CAAC;EAEjCD,SAAS,CAAC,MAAM;IACdc,YAAY,CAACC,OAAO,GAAG,IAAI;IAE3B,OAAO,MAAM;MACXD,YAAY,CAACC,OAAO,GAAG,KAAK;IAC9B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOD,YAAY;AACrB,CAAC;AAED,OAAO,MAAME,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,QAAQ,GAAGhB,MAAM,CAAyB,IAAI,CAAC;EAErD,MAAMiB,KAAK,GAAGA,CAAA,KAAM;IAClBD,QAAQ,CAACF,OAAO,EAAEG,KAAK,CAAC,CAAC;IACzBD,QAAQ,CAACF,OAAO,GAAG,IAAI;EACzB,CAAC;EAED,MAAMI,MAAM,GAAGA,CAAA,KAAM;IACnBD,KAAK,CAAC,CAAC;IACP,MAAME,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IACxCJ,QAAQ,CAACF,OAAO,GAAGK,UAAU;IAC7B,OAAOA,UAAU;EACnB,CAAC;EAEDpB,SAAS,CAAC,MAAMkB,KAAK,EAAE,EAAE,CAAC;EAE1B,OAAO;IAAED,QAAQ;IAAEC,KAAK;IAAEC;EAAO,CAAC;AACpC,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAYC,KAAc,IACtDrB,UAAU,CAACqB,KAAK,CAAW;AAE7B,OAAO,MAAMC,YAAY,GAAID,KAAc,IAAK;EAC9C,IACE,OAAOE,YAAY,KAAK,WAAW,IACnCF,KAAK,YAAYE,YAAY,IAC7BF,KAAK,CAACG,IAAI,KAAK,YAAY,EAC3B;IACA,OAAO,IAAI;EACb;EAEA,OACEH,KAAK,YAAYI,KAAK,KACrBJ,KAAK,CAACG,IAAI,KAAK,YAAY,IAAIH,KAAK,CAACK,OAAO,KAAK,SAAS,CAAC;AAEhE,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["customHooks/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { getStatusFlags, isAbortError, normalizeApiError, useAbortControllerRef, useDependencyKey, useIsMounted } from "./internal.js";
5
+ export const useApi = (fetcher, options = {}) => {
6
+ const {
7
+ enabled = true,
8
+ initialData = null,
9
+ deps = [],
10
+ keepPreviousData = false,
11
+ onSuccess,
12
+ onError,
13
+ onSettled
14
+ } = options;
15
+ const [data, setData] = useState(initialData);
16
+ const [error, setError] = useState(null);
17
+ const [status, setStatus] = useState(enabled ? 'loading' : 'idle');
18
+ const fetcherRef = useRef(fetcher);
19
+ const callbacksRef = useRef({
20
+ onSuccess,
21
+ onError,
22
+ onSettled
23
+ });
24
+ const isMountedRef = useIsMounted();
25
+ const {
26
+ abort,
27
+ create
28
+ } = useAbortControllerRef();
29
+ const depsKey = useDependencyKey(deps);
30
+ fetcherRef.current = fetcher;
31
+ callbacksRef.current = {
32
+ onSuccess,
33
+ onError,
34
+ onSettled
35
+ };
36
+ const execute = useCallback(async () => {
37
+ const controller = create();
38
+ setStatus('loading');
39
+ setError(null);
40
+ if (!keepPreviousData) {
41
+ setData(initialData);
42
+ }
43
+ try {
44
+ const result = await fetcherRef.current(controller.signal);
45
+ if (controller.signal.aborted || !isMountedRef.current) {
46
+ return result;
47
+ }
48
+ setData(result);
49
+ setStatus('success');
50
+ callbacksRef.current.onSuccess?.(result);
51
+ callbacksRef.current.onSettled?.(result, null);
52
+ return result;
53
+ } catch (unknownError) {
54
+ if (isAbortError(unknownError)) {
55
+ return null;
56
+ }
57
+ const parsedError = normalizeApiError(unknownError);
58
+ if (!isMountedRef.current) {
59
+ throw parsedError;
60
+ }
61
+ setError(parsedError);
62
+ setStatus('error');
63
+ callbacksRef.current.onError?.(parsedError);
64
+ callbacksRef.current.onSettled?.(null, parsedError);
65
+ throw parsedError;
66
+ }
67
+ }, [create, initialData, isMountedRef, keepPreviousData]);
68
+ const refetch = useCallback(async () => execute(), [execute]);
69
+ const reset = useCallback(() => {
70
+ abort();
71
+ setData(initialData);
72
+ setError(null);
73
+ setStatus('idle');
74
+ }, [abort, initialData]);
75
+ useEffect(() => {
76
+ if (!enabled) {
77
+ abort();
78
+ setStatus('idle');
79
+ return;
80
+ }
81
+ execute().catch(() => undefined);
82
+ }, [abort, depsKey, enabled, execute]);
83
+ return {
84
+ data,
85
+ error,
86
+ ...getStatusFlags(status),
87
+ refetch,
88
+ reset
89
+ };
90
+ };
91
+ //# sourceMappingURL=useApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","getStatusFlags","isAbortError","normalizeApiError","useAbortControllerRef","useDependencyKey","useIsMounted","useApi","fetcher","options","enabled","initialData","deps","keepPreviousData","onSuccess","onError","onSettled","data","setData","error","setError","status","setStatus","fetcherRef","callbacksRef","isMountedRef","abort","create","depsKey","current","execute","controller","result","signal","aborted","unknownError","parsedError","refetch","reset","catch","undefined"],"sourceRoot":"../../../src","sources":["customHooks/useApi.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useRef, useState } from 'react';
4
+ import { getStatusFlags, isAbortError, normalizeApiError, useAbortControllerRef, useIsMounted } from "./internal.js";
5
+ export const useLazyApi = (fetcher, options = {}) => {
6
+ const {
7
+ initialData = null,
8
+ keepPreviousData = false,
9
+ onSuccess,
10
+ onError,
11
+ onSettled
12
+ } = options;
13
+ const [data, setData] = useState(initialData);
14
+ const [error, setError] = useState(null);
15
+ const [status, setStatus] = useState('idle');
16
+ const fetcherRef = useRef(fetcher);
17
+ const callbacksRef = useRef({
18
+ onSuccess,
19
+ onError,
20
+ onSettled
21
+ });
22
+ const isMountedRef = useIsMounted();
23
+ const {
24
+ abort,
25
+ create
26
+ } = useAbortControllerRef();
27
+ fetcherRef.current = fetcher;
28
+ callbacksRef.current = {
29
+ onSuccess,
30
+ onError,
31
+ onSettled
32
+ };
33
+ const execute = useCallback(async () => {
34
+ const controller = create();
35
+ setStatus('loading');
36
+ setError(null);
37
+ if (!keepPreviousData) {
38
+ setData(initialData);
39
+ }
40
+ try {
41
+ const result = await fetcherRef.current(controller.signal);
42
+ if (controller.signal.aborted || !isMountedRef.current) {
43
+ return result;
44
+ }
45
+ setData(result);
46
+ setStatus('success');
47
+ callbacksRef.current.onSuccess?.(result);
48
+ callbacksRef.current.onSettled?.(result, null);
49
+ return result;
50
+ } catch (unknownError) {
51
+ if (isAbortError(unknownError)) {
52
+ return null;
53
+ }
54
+ const parsedError = normalizeApiError(unknownError);
55
+ if (!isMountedRef.current) {
56
+ throw parsedError;
57
+ }
58
+ setError(parsedError);
59
+ setStatus('error');
60
+ callbacksRef.current.onError?.(parsedError);
61
+ callbacksRef.current.onSettled?.(null, parsedError);
62
+ throw parsedError;
63
+ }
64
+ }, [create, initialData, isMountedRef, keepPreviousData]);
65
+ const reset = useCallback(() => {
66
+ abort();
67
+ setData(initialData);
68
+ setError(null);
69
+ setStatus('idle');
70
+ }, [abort, initialData]);
71
+ return {
72
+ data,
73
+ error,
74
+ ...getStatusFlags(status),
75
+ execute,
76
+ refetch: execute,
77
+ reset
78
+ };
79
+ };
80
+ //# sourceMappingURL=useLazyApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useRef","useState","getStatusFlags","isAbortError","normalizeApiError","useAbortControllerRef","useIsMounted","useLazyApi","fetcher","options","initialData","keepPreviousData","onSuccess","onError","onSettled","data","setData","error","setError","status","setStatus","fetcherRef","callbacksRef","isMountedRef","abort","create","current","execute","controller","result","signal","aborted","unknownError","parsedError","reset","refetch"],"sourceRoot":"../../../src","sources":["customHooks/useLazyApi.ts"],"mappings":"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","ignoreList":[]}