npm-pkg-hook 1.3.8 → 1.4.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 (394) hide show
  1. package/.babelrc +2 -10
  2. package/.env +5 -1
  3. package/dist/index.js +17953 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +17711 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/eslint.config.mjs +154 -0
  8. package/expire.json +1 -0
  9. package/index.d.ts +2 -0
  10. package/jest.config.ts +9 -0
  11. package/package.json +45 -36
  12. package/src/config/client/errors.ts +39 -0
  13. package/src/config/content/en.json +5 -0
  14. package/src/config/content/es.json +5 -0
  15. package/src/config/content/index.ts +16 -0
  16. package/src/hooks/addTenMinutes/index.ts +14 -0
  17. package/src/hooks/calculateLogLatHaversine/index.ts +41 -0
  18. package/src/hooks/completeSchedules/index.ts +22 -0
  19. package/src/hooks/convertToMilitaryTime/index.ts +18 -0
  20. package/src/hooks/generateStoreURL/index.ts +41 -0
  21. package/src/hooks/generateTemplate/index.ts +66 -0
  22. package/src/hooks/getCardType/index.ts +24 -0
  23. package/src/hooks/getCategoriesWithProduct/{index.js → index.ts} +7 -7
  24. package/src/hooks/getGlobalSession/index.ts +69 -0
  25. package/src/hooks/getSession/index.ts +72 -0
  26. package/src/hooks/getTodayTimestamps/index.ts +70 -0
  27. package/src/hooks/getTotalHours/index.ts +76 -0
  28. package/src/hooks/handleLogin/index.ts +14 -0
  29. package/src/hooks/index.ts +154 -0
  30. package/src/hooks/isTokenExpired/index.ts +17 -0
  31. package/src/hooks/newMessageSubscription/index.ts +28 -0
  32. package/src/hooks/newStoreOrderSubscription/index.ts +26 -0
  33. package/src/hooks/{useStatusOpenStore/helpers/index.js → statusOpenStores/helpers/index.ts} +24 -1
  34. package/src/hooks/statusOpenStores/index.ts +221 -0
  35. package/src/hooks/updateExtProductFoodsOptional/{index.js → index.ts} +15 -6
  36. package/src/hooks/useAcumulateDate/index.ts +18 -0
  37. package/src/hooks/useAllStoresPendingToRegister/index.ts +37 -0
  38. package/src/hooks/useAmountInput/index.ts +127 -0
  39. package/src/hooks/useAnimationText/{index.jsx → index.ts} +2 -2
  40. package/src/hooks/useAsideCart/index.ts +217 -0
  41. package/src/hooks/useBanner/{index.js → index.ts} +2 -1
  42. package/src/hooks/useCart/{queries.js → queries.ts} +11 -1
  43. package/src/hooks/useCart/useCart/helpers/{index.js → index.ts} +10 -6
  44. package/src/hooks/useCart/useCart/{index.js → index.ts} +58 -44
  45. package/src/hooks/useCart/useGetCart/{index.js → index.ts} +6 -3
  46. package/src/hooks/useCatWithProduct/{index.js → index.ts} +17 -7
  47. package/src/hooks/useCatWithProduct/{queries.js → queries.ts} +50 -23
  48. package/src/hooks/useCatWithProduct/types/index.ts +104 -0
  49. package/src/hooks/useCatWithProductClient/{index.js → index.ts} +19 -18
  50. package/src/hooks/useCatWithProductClient/{queries.js → queries.ts} +1 -0
  51. package/src/hooks/useCategoriesProduct/{index.js → index.ts} +3 -1
  52. package/src/hooks/useCategoriesProduct/{queries.js → queries.ts} +2 -2
  53. package/src/hooks/useCategoryInStore/index.ts +167 -0
  54. package/src/hooks/useCategoryInStore/{queries.js → queries.ts} +2 -2
  55. package/src/hooks/useCategoryStore/{index.js → index.ts} +4 -3
  56. package/src/hooks/useCategoryStore/{queries.js → queries.ts} +2 -2
  57. package/src/hooks/useChartData/{index.js → index.ts} +31 -34
  58. package/src/hooks/useChartData/useChartData/{index.js → index.ts} +31 -30
  59. package/src/hooks/useChartData/useChartDataAllOrders/{index.js → index.ts} +4 -4
  60. package/src/hooks/useChatRoomSubscription/index.ts +28 -0
  61. package/src/hooks/useCheckbox/{index.js → index.ts} +1 -1
  62. package/src/hooks/useCities/index.ts +14 -0
  63. package/src/hooks/useCities/queries.ts +12 -0
  64. package/src/hooks/useClients/{index.js → index.ts} +36 -10
  65. package/src/hooks/useClients/queries.ts +215 -0
  66. package/src/hooks/useColorByLetters/helpers/alea.ts +73 -0
  67. package/src/hooks/useColorByLetters/helpers/colors.ts +45 -0
  68. package/src/hooks/useColorByLetters/helpers/index.ts +24 -0
  69. package/src/hooks/useColorByLetters/helpers/mersenne_twister.ts +118 -0
  70. package/src/hooks/useColorByLetters/index.ts +24 -0
  71. package/src/hooks/useConnection/index.ts +24 -0
  72. package/src/hooks/useCountries/index.ts +20 -0
  73. package/src/hooks/useCountries/queries.ts +12 -0
  74. package/src/hooks/useCreateDeliveryTime/index.ts +51 -0
  75. package/src/hooks/useCreateOrderStatusType/index.ts +134 -0
  76. package/src/hooks/useCreateProduct/helpers/index.ts +23 -0
  77. package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/{index.js → index.ts} +1 -1
  78. package/src/hooks/useCreateProduct/helpers/useEditImageProduct/{index.js → index.ts} +14 -8
  79. package/src/hooks/useCreateProduct/index.ts +337 -0
  80. package/src/hooks/useCreateStorePendingToRegister/index.ts +17 -0
  81. package/src/hooks/useCreateStorePendingToRegister/queries.ts +10 -0
  82. package/src/hooks/useDashboardComponents/index.ts +50 -0
  83. package/src/hooks/useDeleteExtraProductFoods/index.ts +13 -0
  84. package/src/hooks/useDeleteSubProductOptional/{index.js → index.ts} +5 -3
  85. package/src/hooks/useDeliveryTime/index.ts +29 -0
  86. package/src/hooks/useDepartments/index.ts +14 -0
  87. package/src/hooks/useDepartments/queries.ts +13 -0
  88. package/src/hooks/useDessert/{index.js → index.ts} +162 -114
  89. package/src/hooks/useDessertWithPrice/helpers/index.ts +76 -0
  90. package/src/hooks/useDessertWithPrice/index.ts +381 -0
  91. package/src/hooks/useDessertWithPrice/queries.ts +18 -0
  92. package/src/hooks/useDevWS/index.ts +53 -0
  93. package/src/hooks/useDevices/index.ts +2 -0
  94. package/src/hooks/useDevices/queries.ts +28 -0
  95. package/src/hooks/useDevices/useGetDevices.ts +28 -0
  96. package/src/hooks/useDevices/useRegisterDevices.ts +75 -0
  97. package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +21 -0
  98. package/src/hooks/useDownloadReports/index.ts +2 -0
  99. package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +105 -0
  100. package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +116 -0
  101. package/src/hooks/useDrag/{index.js → index.ts} +16 -0
  102. package/src/hooks/useDropzone/{index.js → index.ts} +2 -2
  103. package/src/hooks/useDynamicAuth/{index.js → index.ts} +2 -1
  104. package/src/hooks/useEditCategory/{index.js → index.ts} +14 -14
  105. package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
  106. package/src/hooks/useEditOneExtProductFoodOptional/{queries.js → queries.ts} +2 -2
  107. package/src/hooks/useEditSubProductOptional/index.ts +12 -0
  108. package/src/hooks/useEmployee/index.ts +18 -0
  109. package/src/hooks/useEmployee/queries.ts +85 -0
  110. package/src/hooks/useEmployee/useCreateEmployee.ts +90 -0
  111. package/src/hooks/useEvent/{index.js → index.ts} +1 -0
  112. package/src/hooks/useFavoriteStores/index.ts +31 -0
  113. package/src/hooks/useFavoriteStores/queries.ts +54 -0
  114. package/src/hooks/useFetchMoreInteractions/index.jsx +26 -26
  115. package/src/hooks/useFilterConfigs/index.ts +173 -0
  116. package/src/hooks/useFingerprintjs/{index.js → index.ts} +32 -7
  117. package/src/hooks/useFormTools/index.ts +143 -0
  118. package/src/hooks/useFormatDate/index.ts +91 -0
  119. package/src/hooks/useFullScreenMode/{index.js → index.ts} +1 -5
  120. package/src/hooks/useGetAllLocationUser/index.ts +13 -0
  121. package/src/hooks/useGetAllLocationUser/queries.ts +44 -0
  122. package/src/hooks/{useSales/useGetAllSales/index.js → useGetAllSales/index.ts} +3 -2
  123. package/src/hooks/useGetCookies/index.ts +43 -0
  124. package/src/hooks/useGetExtProductFoodsSubOptionalAll/{index.js → index.ts} +2 -1
  125. package/src/hooks/useGetFoodRecomended/{index.js → index.ts} +2 -1
  126. package/src/hooks/useGetMessagesToRoom/index.ts +23 -0
  127. package/src/hooks/useGetMinPrice/{index.js → index.ts} +2 -1
  128. package/src/hooks/useGetOneStoreRating/{index.js → index.ts} +2 -1
  129. package/src/hooks/useGetSalesAmountToday/index.ts +31 -0
  130. package/src/hooks/useGetStoreCookie/index.ts +21 -0
  131. package/src/hooks/useGoogleLogin/{index.js → index.ts} +14 -5
  132. package/src/hooks/useHover/{index.js → index.ts} +3 -0
  133. package/src/hooks/useImageOptimization/{index.js → index.ts} +4 -0
  134. package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +146 -0
  135. package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +54 -0
  136. package/src/hooks/useImageUploaderProduct/helper/index.ts +5 -0
  137. package/src/hooks/useImageUploaderProduct/index.ts +295 -0
  138. package/src/hooks/useImageWeight/{index.js → index.ts} +4 -0
  139. package/src/hooks/useImagesStore/index.ts +227 -0
  140. package/src/hooks/useImagesStore/{queries.js → queries.ts} +4 -68
  141. package/src/hooks/useImagesStore/utils/index.ts +4 -0
  142. package/src/hooks/useIncomingOrders/index.ts +11 -0
  143. package/src/hooks/useIncomingOrders/queries.ts +87 -0
  144. package/src/hooks/useIntersection/{index.js → index.ts} +1 -1
  145. package/src/hooks/useInventory/index.ts +2 -0
  146. package/src/hooks/useInventory/queries.ts +58 -0
  147. package/src/hooks/useInventory/useGetProductsInStock.ts +16 -0
  148. package/src/hooks/useInventory/useUpdateManageStock.ts +41 -0
  149. package/src/hooks/useLazyScript/{index.js → index.ts} +3 -0
  150. package/src/hooks/useLocalBackendIp/index.ts +34 -0
  151. package/src/hooks/useLocalSorage/{index.js → index.ts} +3 -3
  152. package/src/hooks/useLocationManager/index.ts +63 -0
  153. package/src/hooks/useLoginEmployeeInStore/index.ts +38 -0
  154. package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
  155. package/src/hooks/useLogout/helpers/apiBaseUrl.ts +12 -0
  156. package/src/hooks/useLogout/helpers/fetchData.ts +37 -0
  157. package/src/hooks/useLogout/helpers/getCsrfToken.ts +37 -0
  158. package/src/hooks/useLogout/helpers/index.ts +65 -0
  159. package/src/hooks/useLogout/helpers/logger.ts +88 -0
  160. package/src/hooks/useLogout/helpers/parseUrl.ts +39 -0
  161. package/src/hooks/useLogout/index.ts +105 -0
  162. package/src/hooks/useManageNewOrder/helpers/index.ts +45 -0
  163. package/src/hooks/useManageNewOrder/index.ts +104 -0
  164. package/src/hooks/useManageQueryParams/index.ts +120 -0
  165. package/src/hooks/useMobile/index.ts +65 -0
  166. package/src/hooks/useModules/helpers/index.ts +1 -0
  167. package/src/hooks/useModules/helpers/validateModules.ts +43 -0
  168. package/src/hooks/useModules/index.ts +124 -0
  169. package/src/hooks/useMouse/index.ts +55 -0
  170. package/src/hooks/useOrderStatusTypes/index.ts +2 -0
  171. package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +133 -0
  172. package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +99 -0
  173. package/src/hooks/useOrders/index.ts +3 -0
  174. package/src/hooks/useOrders/queries.ts +99 -0
  175. package/src/hooks/useOrders/useChangeOrderState/index.ts +128 -0
  176. package/src/hooks/useOrders/{index.js → useOrdersFromStore/index.ts} +20 -18
  177. package/src/hooks/usePWAInstall/index.ts +38 -0
  178. package/src/hooks/usePaymentMethod/index.ts +3 -0
  179. package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
  180. package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
  181. package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
  182. package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
  183. package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
  184. package/src/hooks/usePortFetcher/index.ts +33 -0
  185. package/src/hooks/usePrintSaleTicket/index.ts +68 -0
  186. package/src/hooks/useProductsFood/index.ts +341 -0
  187. package/src/hooks/useProductsFood/{queriesStore.js → queriesStore.ts} +151 -84
  188. package/src/hooks/useProductsFood/types/index.ts +0 -0
  189. package/src/hooks/useProductsFood/useEditProduct.ts +49 -0
  190. package/src/hooks/useProductsFood/usetagsProducts.ts +101 -0
  191. package/src/hooks/useProviders/useProvidersCreateStore/{index.js → index.ts} +2 -1
  192. package/src/hooks/useProviders/useProvidersDataStore/{index.js → index.ts} +2 -1
  193. package/src/hooks/useProvidersStore/{index.js → index.ts} +2 -1
  194. package/src/hooks/usePushNotificationOrder/index.ts +52 -0
  195. package/src/hooks/usePushNotifications/helpers/index.ts +123 -0
  196. package/src/hooks/usePushNotifications/index.ts +150 -0
  197. package/src/hooks/useQueryLocationsMap/index.ts +20 -0
  198. package/src/hooks/useQueryLocationsMap/queries.ts +40 -0
  199. package/src/hooks/useRatingArrayData/{index.js → index.ts} +4 -4
  200. package/src/hooks/useRatingArrayData/{queries.js → queries.ts} +1 -1
  201. package/src/hooks/useReactToPrint/index.ts +4 -0
  202. package/src/hooks/useRemoveExtraProductFoodsOptional/{index.js → index.ts} +2 -1
  203. package/src/hooks/useRemoveExtraProductFoodsOptional/{queries.js → queries.ts} +4 -4
  204. package/src/hooks/useReport/{index.js → index.ts} +5 -5
  205. package/src/hooks/useReport/{queries.js → queries.ts} +4 -55
  206. package/src/hooks/useRestaurant/helpers/index.ts +28 -0
  207. package/src/hooks/useRestaurant/helpers/manageStatusOpen.ts +26 -0
  208. package/src/hooks/useRestaurant/index.ts +71 -0
  209. package/src/hooks/useRestaurant/{queries.js → queries.ts} +2 -1
  210. package/src/hooks/useRoads/index.ts +20 -0
  211. package/src/hooks/useRoads/queries.ts +13 -0
  212. package/src/hooks/useRoles/index.ts +4 -0
  213. package/src/hooks/useRoles/queries.ts +70 -0
  214. package/src/hooks/useRoles/useCreateRole.ts +40 -0
  215. package/src/hooks/useRoles/useGetRoles.ts +37 -0
  216. package/src/hooks/useRoles/useRemoveRoles.ts +40 -0
  217. package/src/hooks/useRoles/useUpdateRolesPriority.ts +44 -0
  218. package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
  219. package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
  220. package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
  221. package/src/hooks/useSales/helpers/constants/index.ts +38 -0
  222. package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
  223. package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
  224. package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
  225. package/src/hooks/useSales/helpers/index.ts +3 -0
  226. package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
  227. package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
  228. package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
  229. package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
  230. package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
  231. package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
  232. package/src/hooks/useSales/index.ts +1418 -0
  233. package/src/hooks/useSales/{queries.js → queries.ts} +256 -166
  234. package/src/hooks/useSales/types/index.ts +206 -0
  235. package/src/hooks/useSales/types/use-sales.types.ts +8 -0
  236. package/src/hooks/useSales/useGetSale.ts +21 -0
  237. package/src/hooks/useSales/useTotalSales.ts +24 -0
  238. package/src/hooks/useSaveAvailableProduct/helpers/{index.js → index.ts} +4 -4
  239. package/src/hooks/useSaveAvailableProduct/{index.js → index.ts} +7 -1
  240. package/src/hooks/useSaveLocation/index.ts +17 -0
  241. package/src/hooks/useSaveLocation/queries.ts +19 -0
  242. package/src/hooks/useSchedule/{index.jsx → index.ts} +16 -4
  243. package/src/hooks/useSchedule/{index.js → schedule.ts} +22 -15
  244. package/src/hooks/useScheduleData/{index.js → index.ts} +21 -9
  245. package/src/hooks/useSetImageProducts/index.ts +59 -0
  246. package/src/hooks/useSetImageProducts/queries.ts +18 -0
  247. package/src/hooks/useSetSession/{index.js → index.ts} +16 -17
  248. package/src/hooks/useSetupSchedule/helpers/index.ts +85 -0
  249. package/src/hooks/useSetupSchedule/index.ts +284 -0
  250. package/src/hooks/useStatusOpenStore/helpers/index.ts +124 -0
  251. package/src/hooks/useStatusOpenStore/{index.js → index.ts} +39 -16
  252. package/src/hooks/useStatusOrdersClient/{index.js → index.ts} +3 -2
  253. package/src/hooks/useStatusOrdersClient/{queries.js → queries.ts} +2 -2
  254. package/src/hooks/useStock/index.ts +1 -0
  255. package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
  256. package/src/hooks/useStockMovements/helpers/index.ts +16 -0
  257. package/src/hooks/useStockMovements/index.ts +39 -0
  258. package/src/hooks/useStore/index.ts +83 -0
  259. package/src/hooks/useStore/{queries.js → queries.ts} +71 -71
  260. package/src/hooks/useStoreContacts/{index.js → index.ts} +11 -5
  261. package/src/hooks/useStoreTable/index.ts +2 -0
  262. package/src/hooks/useStoreTable/queries.ts +47 -0
  263. package/src/hooks/useStoreTable/useStoreTableCreate.ts +77 -0
  264. package/src/hooks/useStoreTable/useStoreTables.ts +15 -0
  265. package/src/hooks/useSubscriptionValidation/index.ts +112 -0
  266. package/src/hooks/useTagProducts/index.ts +3 -0
  267. package/src/hooks/useTagProducts/useDeleteOneTag.ts +106 -0
  268. package/src/hooks/useTagProducts/useGetAllTags.ts +68 -0
  269. package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +157 -0
  270. package/src/hooks/useTheme/index.ts +65 -0
  271. package/src/hooks/useTimeAgo/{useTimeAgo.js → useTimeAgo.ts} +7 -7
  272. package/src/hooks/useTokenCards/index.ts +45 -0
  273. package/src/hooks/useTopProductsMovements/index.ts +27 -0
  274. package/src/hooks/useTotalAllSales/index.ts +25 -0
  275. package/src/hooks/useTotalProductsInStock/index.ts +23 -0
  276. package/src/hooks/useTotalProductsSold/index.ts +23 -0
  277. package/src/hooks/useTotalProductsSolded/index.ts +20 -0
  278. package/src/hooks/useUpdateCart/{index.js → index.ts} +3 -2
  279. package/src/hooks/useUpdateCartCookie/index.ts +60 -0
  280. package/src/hooks/useUpdateDashboardComponent/index.ts +91 -0
  281. package/src/hooks/useUpdateExistingOrders/{index.js → index.ts} +5 -11
  282. package/src/hooks/useUpdateExtProductFoodsSubOptional/index.ts +61 -0
  283. package/src/hooks/useUpdateModuleOrder/index.ts +37 -0
  284. package/src/hooks/useUpdateMultipleExtProduct/index.ts +34 -0
  285. package/src/hooks/useUpdateMultipleExtProduct/queries.ts +33 -0
  286. package/src/hooks/useUpdateMultipleProducts/index.ts +117 -0
  287. package/src/hooks/useUpdateMultipleProducts/queries.ts +51 -0
  288. package/src/hooks/useUploadProducts/helpers/index.ts +1 -0
  289. package/src/hooks/useUploadProducts/helpers/parseNumber.ts +37 -0
  290. package/src/hooks/useUploadProducts/helpers/validateProductDataExcel.ts +73 -0
  291. package/src/hooks/useUploadProducts/index.ts +442 -0
  292. package/src/hooks/useUpsertGoal/index.ts +68 -0
  293. package/src/hooks/useUser/{index.js → index.ts} +11 -4
  294. package/src/hooks/useUser/{queries.js → queries.ts} +9 -4
  295. package/src/hooks/useWeeklyStockMovement/helpers/index.ts +32 -0
  296. package/src/hooks/useWeeklyStockMovement/index.ts +52 -0
  297. package/src/hooks/useWindowSize/{index.js → index.ts} +9 -2
  298. package/src/index.ts +12 -0
  299. package/src/security/index.ts +1 -0
  300. package/src/services/index.ts +1 -0
  301. package/src/utils/UtilDateRange.ts +56 -0
  302. package/src/utils/generateCode.ts +222 -0
  303. package/src/utils/index.ts +2 -0
  304. package/src/utils/utils.ts +344 -0
  305. package/tsconfig.eslint.json +17 -0
  306. package/tsconfig.json +21 -0
  307. package/tsup.config.ts +24 -0
  308. package/.eslintrc.js +0 -38
  309. package/.eslintrc.json +0 -127
  310. package/next.config.js +0 -126
  311. package/src/config/client/errors.js +0 -26
  312. package/src/hooks/getGlobalSession/index.js +0 -49
  313. package/src/hooks/getSession/index.js +0 -18
  314. package/src/hooks/handleLogin/index.js +0 -10
  315. package/src/hooks/index.js +0 -77
  316. package/src/hooks/useAcumulateDate/index.js +0 -16
  317. package/src/hooks/useAsideCart/index.js +0 -155
  318. package/src/hooks/useCategoryInStore/index.js +0 -98
  319. package/src/hooks/useClients/queries.js +0 -127
  320. package/src/hooks/useConnection/index.js +0 -22
  321. package/src/hooks/useCreateProduct/index.js +0 -291
  322. package/src/hooks/useDevices/index.js +0 -35
  323. package/src/hooks/useDevices/queries.js +0 -19
  324. package/src/hooks/useEditOneExtProductFoodOptional/index.js +0 -28
  325. package/src/hooks/useEditSubProductOptional/index.js +0 -11
  326. package/src/hooks/useEmployee/index.js +0 -13
  327. package/src/hooks/useEmployee/queries.js +0 -17
  328. package/src/hooks/useFavoriteStores/index.js +0 -19
  329. package/src/hooks/useFavoriteStores/queries.js +0 -47
  330. package/src/hooks/useFormTools/index.js +0 -100
  331. package/src/hooks/useFormatDate/index.js +0 -33
  332. package/src/hooks/useGetStoreCookie/index.js +0 -22
  333. package/src/hooks/useImagesStore/index.js +0 -183
  334. package/src/hooks/useLogout/helpers/BroadcastChannel.js +0 -32
  335. package/src/hooks/useLogout/helpers/apiBaseUrl.js +0 -8
  336. package/src/hooks/useLogout/helpers/fetchData.js +0 -29
  337. package/src/hooks/useLogout/helpers/getCsrfToken.js +0 -30
  338. package/src/hooks/useLogout/helpers/index.js +0 -54
  339. package/src/hooks/useLogout/helpers/logger.js +0 -72
  340. package/src/hooks/useLogout/helpers/parseUrl.js +0 -36
  341. package/src/hooks/useLogout/index.js +0 -46
  342. package/src/hooks/useManageQueryParams/index.js +0 -37
  343. package/src/hooks/useMobile/index.js +0 -39
  344. package/src/hooks/useOrders/queries.js +0 -328
  345. package/src/hooks/useProductsFood/index.js +0 -234
  346. package/src/hooks/useProductsFood/useEditProduct.js +0 -8
  347. package/src/hooks/useProductsFood/usetagsProducts.js +0 -94
  348. package/src/hooks/useRestaurant/index.js +0 -19
  349. package/src/hooks/useSales/helpers/index.js +0 -8
  350. package/src/hooks/useSales/index.js +0 -1102
  351. package/src/hooks/useSales/useGetSale.js +0 -13
  352. package/src/hooks/useSales/useTotalSales.js +0 -24
  353. package/src/hooks/useStore/index.js +0 -70
  354. package/src/hooks/useUpdateExtProductFoodsSubOptional/index.js +0 -38
  355. package/src/index.jsx +0 -4
  356. package/src/utils/index.js +0 -141
  357. /package/src/config/client/{index.js → index.ts} +0 -0
  358. /package/src/hooks/getCategoriesWithProduct/helpers/{index.js → index.ts} +0 -0
  359. /package/src/hooks/useAnimationFrame/{index.js → index.ts} +0 -0
  360. /package/src/hooks/useAsideCart/helpers/{index.js → index.ts} +0 -0
  361. /package/src/hooks/useAsideCart/{queries.js → queries.ts} +0 -0
  362. /package/src/hooks/useCart/{index.js → index.ts} +0 -0
  363. /package/src/hooks/useDeleteSubProductOptional/{queries.js → queries.ts} +0 -0
  364. /package/src/hooks/useDessert/helpers/{index.js → index.ts} +0 -0
  365. /package/src/hooks/useDynamicAuth/{queries.js → queries.ts} +0 -0
  366. /package/src/hooks/useEditSubProductOptional/{queries.js → queries.ts} +0 -0
  367. /package/src/hooks/useFetchJson/{index.js → index.ts} +0 -0
  368. /package/src/hooks/useFormatNumberPhone/{index.js → index.ts} +0 -0
  369. /package/src/hooks/useGenerateNumberArray/{index.js → index.ts} +0 -0
  370. /package/src/hooks/useGetFoodRecomended/{queries.js → queries.ts} +0 -0
  371. /package/src/hooks/useGetMinPrice/{queries.js → queries.ts} +0 -0
  372. /package/src/hooks/useGetOneStoreRating/{queries.js → queries.ts} +0 -0
  373. /package/src/hooks/useGoogleLogin/{loadScript.js → loadScript.ts} +0 -0
  374. /package/src/hooks/useGoogleLogin/{removeScript.js → removeScript.ts} +0 -0
  375. /package/src/hooks/useInnerHtml/{index.js → index.ts} +0 -0
  376. /package/src/hooks/useKeypress/{index.js → index.ts} +0 -0
  377. /package/src/hooks/useLocationNavigate/{index.js → index.ts} +0 -0
  378. /package/src/{security/index.js → hooks/useManageNewOrder/helpers/mock.ts} +0 -0
  379. /package/src/hooks/useMutateHeight/{index.js → index.ts} +0 -0
  380. /package/src/hooks/useOrderClient/{index.js → index.ts} +0 -0
  381. /package/src/hooks/useProviders/{index.js → index.ts} +0 -0
  382. /package/src/hooks/useProviders/{queries.js → queries.ts} +0 -0
  383. /package/src/hooks/useProvidersStore/{queries.js → queries.ts} +0 -0
  384. /package/src/hooks/useReactToPrint/{index.js → index.txt} +0 -0
  385. /package/src/hooks/useSaveAvailableProduct/{queries.js → queries.ts} +0 -0
  386. /package/src/hooks/useSchedule/{queries.js → queries.ts} +0 -0
  387. /package/src/hooks/useScroll/{index.js → index.ts} +0 -0
  388. /package/src/hooks/useScrollRotate/{index.js → index.ts} +0 -0
  389. /package/src/hooks/useSetState/{index.js → index.ts} +0 -0
  390. /package/src/hooks/useStatusOrdersClient/helpers/{index.js → index.ts} +0 -0
  391. /package/src/hooks/useStoreCalendar/{index.js → index.ts} +0 -0
  392. /package/src/hooks/useStoreContacts/{queries.js → queries.ts} +0 -0
  393. /package/src/mock/dessert/{index.js → index.ts} +0 -0
  394. /package/src/mock/{index.js → index.ts} +0 -0
@@ -0,0 +1 @@
1
+ export const future = null
@@ -0,0 +1 @@
1
+ export const serviceName = 'dummy'
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Returns an object containing the start and end of the day in local time (UTC-5 by default) for the given date.
3
+ * @returns {{ start: Date; end: Date }} An object with `start` and `end` Date properties.
4
+ */
5
+ export class UtilDateRange {
6
+ private readonly date: Date
7
+
8
+ /**
9
+ *
10
+ * @param date
11
+ * @returns UtilDateRange instance
12
+ */
13
+ constructor(date: Date | string | number = new Date()) {
14
+ this.date = new Date(date) // Asegura que sea un objeto Date
15
+ }
16
+
17
+ /**
18
+ *
19
+ * @param date
20
+ * @returns Date ajustada a la zona horaria local (UTC-5)
21
+ */
22
+ private toLocalTime(date: Date | string | number): Date {
23
+ const offset = -5 // UTC-5 (ajustar si es necesario)
24
+ const localDate = new Date(date)
25
+ localDate.setHours(localDate.getHours() + offset)
26
+ return localDate
27
+ }
28
+
29
+ /**
30
+ * @returns Date al inicio del día (00:00:00.000) en hora local
31
+ */
32
+ getStartOfDay(): Date {
33
+ const localDate = this.toLocalTime(this.date)
34
+ localDate.setHours(0, 0, 0, 0)
35
+ return localDate
36
+ }
37
+
38
+ /**
39
+ * @returns Date al final del día (23:59:59.999) en hora local
40
+ */
41
+ getEndOfDay(): Date {
42
+ const localDate = this.toLocalTime(this.date)
43
+ localDate.setHours(23, 59, 59, 999)
44
+ return localDate
45
+ }
46
+
47
+ /**
48
+ * @returns {{ start: Date; end: Date }} Objeto con las fechas de inicio y fin del día en hora local
49
+ */
50
+ getRange(): { start: Date; end: Date } {
51
+ return {
52
+ start: this.getStartOfDay(),
53
+ end: this.getEndOfDay()
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,222 @@
1
+ // ticket-generator.ts
2
+ /**
3
+ * Ticket generator for POS systems.
4
+ * - Provides numeric and alphanumeric strategies.
5
+ * - Supports prefix, timestamp embedding, synchronous generation and async uniqueness check.
6
+ *
7
+ * JSDoc comments are in English as requested.
8
+ */
9
+
10
+ type Strategy = 'alphanumeric' | 'numeric';
11
+
12
+ export interface TicketConfig {
13
+ /** Total length of the generated code excluding prefix. Minimum 4. */
14
+ length?: number;
15
+ /** Strategy: 'alphanumeric' | 'numeric' */
16
+ strategy?: Strategy;
17
+ /** Optional human-readable prefix (e.g. 'TKT-', 'POS1-') */
18
+ prefix?: string;
19
+ /** If true, embed a short timestamp chunk (base36) at start of payload */
20
+ timestamp?: boolean;
21
+ /** Maximum attempts for uniqueness check when using generateUniqueAsync */
22
+ maxAttempts?: number;
23
+ /** Padding char for numeric sequences (only used if `useSequential` provided) */
24
+ padChar?: string;
25
+ }
26
+
27
+ /**
28
+ * Result returned by generators.
29
+ */
30
+ export type TicketResult =
31
+ | { success: true; code: string; error?: undefined }
32
+ | { success: false; error: string; code?: string };
33
+
34
+ /**
35
+ * Async uniqueness checker signature.
36
+ * Implement with DB query that returns true if code is unique (not found).
37
+ */
38
+ export type IsUniqueFn = (code: string) => Promise<boolean>;
39
+
40
+ /* -------------------- Implementation -------------------- */
41
+
42
+ /**
43
+ * Secure random integer in [0, max)
44
+ * @param max
45
+ * @returns random integer in [0, max)
46
+ */
47
+ const secureRandomInt = (max: number): number => {
48
+ if (typeof crypto !== 'undefined' && typeof (crypto as any).getRandomValues === 'function') {
49
+ // browser
50
+ const arr = new Uint32Array(1);
51
+ (crypto as any).getRandomValues(arr)
52
+ return arr[0] % max
53
+ }
54
+ try {
55
+ // node
56
+
57
+ const nodeCrypto = require('crypto')
58
+ const buf = nodeCrypto.randomBytes(4)
59
+ const val = buf.readUInt32BE(0)
60
+ return val % max
61
+ } catch {
62
+ // fallback (less secure)
63
+ return Math.floor(Math.random() * max)
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Build a random string from charset.
69
+ * @param length
70
+ * @param charset
71
+ */
72
+ const randomFromCharset = (length: number, charset: string): string => {
73
+ const out: string[] = []
74
+ const m = charset.length
75
+ for (let i = 0; i < length; i += 1) {
76
+ out.push(charset[secureRandomInt(m)])
77
+ }
78
+ return out.join('')
79
+ }
80
+
81
+ /**
82
+ * Short fixed-size timestamp chunk that respects strategy.
83
+ * - For 'numeric' returns decimal digits (zero-padded).
84
+ * - For 'alphanumeric' returns base36 chars.
85
+ *
86
+ * @param strategy generation strategy
87
+ * @param size chunk length (default 4)
88
+ * @returns timestamp chunk string of length `size`
89
+ */
90
+ const timestampChunk = (strategy: Strategy, size = 4): string => {
91
+ const now = Date.now()
92
+ if (strategy === 'numeric') {
93
+ const mod = Math.pow(10, size)
94
+ const n = (now % mod).toString().padStart(size, '0')
95
+ return n
96
+ }
97
+ // alphanumeric: compact base36 slice (keeps letters & digits)
98
+ return now.toString(36).slice(-size).padStart(size, '0')
99
+ }
100
+
101
+ /**
102
+ * Validate config and return normalized defaults or error string.
103
+ * @param cfg
104
+ */
105
+ const normalizeConfig = (cfg?: TicketConfig): { cfg?: Required<TicketConfig>; error?: string } => {
106
+ const defaultCfg: Required<TicketConfig> = {
107
+ length: 10,
108
+ strategy: 'alphanumeric',
109
+ prefix: '',
110
+ timestamp: false,
111
+ maxAttempts: 5,
112
+ padChar: '0'
113
+ }
114
+
115
+ if (!cfg) return { cfg: defaultCfg }
116
+
117
+ const merged = { ...defaultCfg, ...cfg }
118
+
119
+ if (!Number.isInteger(merged.length) || merged.length < 4) {
120
+ return { error: 'length must be an integer >= 4' }
121
+ }
122
+
123
+ if (!['alphanumeric', 'numeric'].includes(merged.strategy)) {
124
+ return { error: "strategy must be 'alphanumeric' or 'numeric'" }
125
+ }
126
+
127
+ if (typeof merged.prefix !== 'string' || /[^A-Za-z0-9-_]/.test(merged.prefix)) {
128
+ return { error: 'prefix must be alphanumeric, dash or underscore only' }
129
+ }
130
+
131
+ if (typeof merged.maxAttempts !== 'number' || merged.maxAttempts < 1) {
132
+ merged.maxAttempts = defaultCfg.maxAttempts
133
+ }
134
+
135
+ if (typeof merged.padChar !== 'string' || merged.padChar.length !== 1) {
136
+ merged.padChar = defaultCfg.padChar
137
+ }
138
+
139
+ return { cfg: merged }
140
+ }
141
+
142
+ /**
143
+ * Generate a ticket code (synchronous, no uniqueness guarantee).
144
+ * Use generateUniqueAsync if you need persistence-level uniqueness.
145
+ *
146
+ * @param config Ticket generation options
147
+ * @returns TicketResult with code or error
148
+ */
149
+ export const generateTicket = (config?: TicketConfig): TicketResult => {
150
+ const normalized = normalizeConfig(config)
151
+ if (normalized.error) return { success: false, error: normalized.error }
152
+ const cfg = normalized.cfg!
153
+
154
+ const payloadLen = cfg.length
155
+ const prefix = cfg.prefix || ''
156
+
157
+ // decide charset
158
+ const numericCharset = '0123456789'
159
+ const alphaNumCharset = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz0123456789' // removed O/0/l for readability
160
+ const charset = cfg.strategy === 'numeric' ? numericCharset : alphaNumCharset
161
+
162
+ // prepare timestamp chunk if requested (keep it short and strategy-aware)
163
+ const ts = cfg.timestamp ? timestampChunk(cfg.strategy, 4) : ''
164
+
165
+
166
+ // calc remaining length for random part
167
+ const remaining = payloadLen - ts.length
168
+ if (remaining < 1) return { success: false, error: 'length too small for timestamp embedding' }
169
+
170
+ const randomPart = randomFromCharset(remaining, charset)
171
+
172
+ const code = `${prefix}${ts}${randomPart}`
173
+ return { success: true, code }
174
+ }
175
+
176
+ /**
177
+ * Generate a ticket code with uniqueness guarantee using an async uniqueness checker.
178
+ * Tries up to config.maxAttempts times.
179
+ *
180
+ * @param isUnique Async function that returns true if code is unique (not present)
181
+ * @param config Ticket generation options
182
+ * @returns TicketResult with unique code or error
183
+ */
184
+ export const generateUniqueAsync = async (isUnique: IsUniqueFn, config?: TicketConfig): Promise<TicketResult> => {
185
+ const normalized = normalizeConfig(config)
186
+ if (normalized.error) return { success: false, error: normalized.error }
187
+ const cfg = normalized.cfg!
188
+
189
+ for (let attempt = 1; attempt <= cfg.maxAttempts; attempt += 1) {
190
+ const candidateRes = generateTicket(cfg)
191
+ if (!candidateRes.success) return candidateRes
192
+
193
+ const candidate = candidateRes.code
194
+ try {
195
+ const unique = await isUnique(candidate)
196
+ if (unique) return { success: true, code: candidate }
197
+ // else collision -> retry
198
+ } catch (err) {
199
+ return { success: false, error: `isUnique function threw: ${(err as Error).message}` }
200
+ }
201
+ }
202
+
203
+ return { success: false, error: 'unable to generate unique ticket after max attempts' }
204
+ }
205
+
206
+ /* -------------------- Example usage -------------------- */
207
+
208
+ /*
209
+ Example (sync):
210
+ const res = generateTicket({ length: 8, strategy: 'numeric', prefix: 'T-', timestamp: true });
211
+ if (!res.success) console.error(res.error);
212
+ else console.log('Ticket:', res.code);
213
+
214
+ Example (async uniqueness check, e.g. DB):
215
+ const isUniqueInDb = async (code: string) => {
216
+ // query DB to see if code exists; return true if NOT exist
217
+ return !(await db.exists({ ticketCode: code }));
218
+ };
219
+ const unique = await generateUniqueAsync(isUniqueInDb, { length: 10, strategy: 'alphanumeric', prefix: 'POS1-', timestamp: true });
220
+ if (unique.success) console.log('Unique ticket:', unique.code);
221
+ else console.error('Error generating unique:', unique.error);
222
+ */
@@ -0,0 +1,2 @@
1
+ export * from './UtilDateRange'
2
+ export * from './utils'
@@ -0,0 +1,344 @@
1
+ import { randomBytes } from 'node:crypto'
2
+
3
+ /**
4
+ * @description It takes an array of elements and returns an object with a submit hook for each element.
5
+ * @version 0.1.1
6
+ * @param {array} elements elementos del formulario
7
+ * @return {array} devuelve un array de booleanos con el nombre identificador para cada estado en react.
8
+ */
9
+ const validTypes: Record<string, boolean> = {
10
+ text: true,
11
+ password: true,
12
+ email: true,
13
+ number: true,
14
+ hidden: true,
15
+ textarea: true
16
+ }
17
+
18
+ export const statusOrder = {
19
+ 0: '',
20
+ 1: 'ENTRANTE',
21
+ 2: 'PROCESO',
22
+ 3: 'LISTOS',
23
+ 4: 'CONCLUIDOS',
24
+ 5: 'REJECTED'
25
+ }
26
+
27
+ export const statusProduct = {
28
+ deleted: 0,
29
+ active: 1
30
+ }
31
+
32
+ export const validationSubmitHooks = (elements: Array<HTMLElement & { name?: string; type?: string; value?: any; dataset?: DOMStringMap }>) => {
33
+ if (!elements || elements.length === 0) {
34
+ return {}
35
+ }
36
+ let errorForm: Record<string, boolean> = {}
37
+
38
+ for (const element of elements) {
39
+ if (element.name) {
40
+ const elementType = (element.type as string) || element.tagName.toLowerCase()
41
+ if (validTypes[elementType]) {
42
+ if (element.dataset && element.dataset.required === 'true') {
43
+ if (!element.value) {
44
+ errorForm = { ...errorForm, [element.name]: true }
45
+ } else {
46
+ errorForm = { ...errorForm, [element.name]: false }
47
+ }
48
+ } else {
49
+ errorForm = { ...errorForm, [element.name]: false }
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ return errorForm
56
+ }
57
+
58
+ export const getCurrentDomain = (): string | boolean => {
59
+ return typeof window !== 'undefined' && window.location.hostname
60
+ }
61
+
62
+
63
+ interface RandomCodeOptions {
64
+ prefix?: string;
65
+ suffix?: string;
66
+ }
67
+
68
+ /**
69
+ * Generates a cryptographically secure random string of given length.
70
+ * @param length - Desired length of the generated code.
71
+ * @param options - Optional prefix/suffix configuration.
72
+ * @returns Random alphanumeric string with optional prefix and suffix.
73
+ */
74
+ export const RandomCode = (
75
+ length: number,
76
+ options: RandomCodeOptions = {}
77
+ ): string => {
78
+ if (length <= 0) {
79
+ throw new Error('Length must be greater than 0')
80
+ }
81
+
82
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
83
+ const charactersLength = characters.length
84
+
85
+ // Generate enough random bytes
86
+ const randomBuffer = randomBytes(length)
87
+ let code = ''
88
+
89
+ for (let i = 0; i < length; i++) {
90
+ const index = randomBuffer[i] % charactersLength
91
+ code += characters.charAt(index)
92
+ }
93
+
94
+ return `${options?.prefix ?? ''}${code}${options?.suffix ?? ''}`
95
+ }
96
+
97
+ /**
98
+ * actualizar cache de apollo
99
+ * @param {{ cache: object, query: object, nameFun: string, dataNew: object, type: number, id: string }} params Parámetros para actualizar el cachet de apollo
100
+ * @returns {null} no hay retorno
101
+ */
102
+ export interface UpdateCacheModParams {
103
+ cache: any;
104
+ query: any;
105
+ nameFun: string;
106
+ dataNew?: any;
107
+ type: number;
108
+ id?: string;
109
+ }
110
+
111
+ export const updateCacheMod = async ({ cache, query, nameFun, dataNew, type, id }: UpdateCacheModParams): Promise<any> => {
112
+ return cache.modify({
113
+ fields: {
114
+ [nameFun](dataOld = []) {
115
+ if (type === 1) return cache.writeQuery({ query, data: [...(dataOld || []), { ...(dataNew || {}) }] })
116
+ if (type === 2) return cache.writeQuery({ query, data: { ...(dataOld || {}), ...(dataNew || {}) } })
117
+ if (type === 3) return cache.writeQuery({ query, data: dataOld.filter(x => { return x === id }) })
118
+ }
119
+ }
120
+ })
121
+ }
122
+ /**
123
+ * Formatea un valor como un número siguiendo el formato de Colombia.
124
+ * Si el valor no es un número válido, lo devuelve tal como está.
125
+ *
126
+ * @param {string|number} value - El valor a formatear.
127
+ * @returns {string} El valor formateado como número o el valor original si no es numérico.
128
+ */
129
+ export const numberFormat = (value: string | number) => {
130
+ // Verifica si el valor es nulo o indefinido, devolviendo el mismo valor.
131
+ if (value === null || value === undefined) {
132
+ return value
133
+ }
134
+
135
+ // Convierte el valor a string y elimina puntos.
136
+ const stringValue = `${value}`.replace(/\./g, '')
137
+
138
+ // Intenta convertir a número y formatear si es posible.
139
+ const numberValue = parseFloat(stringValue)
140
+ if (!isNaN(numberValue)) {
141
+ return new Intl.NumberFormat('es-CO', {
142
+ minimumFractionDigits: 2,
143
+ style: 'decimal',
144
+ maximumFractionDigits: 2
145
+ }).format(numberValue)
146
+ }
147
+
148
+ // Devuelve el valor original si no es un número.
149
+ return value
150
+ }
151
+ /**
152
+ *
153
+ * @param {Object} data objeto a filtrar
154
+ * @param {Array} filters array a comparar o claves del objeto a excluir
155
+ * @param {boolean} dataFilter booleano para devolver los datos filtrados o no
156
+ * @returns {Object} devuelve el objeto filtrado segun los parametros
157
+ */
158
+ export const filterKeyObject = (data: Record<string, unknown>, filters: string[], dataFilter: boolean) => {
159
+ let values = {}; let valuesFilter = {}
160
+ for (const elem in data) {
161
+ let coincidence = false
162
+ for (let i = 0; i < filters.length; i++) {
163
+ if (elem === filters[i]) coincidence = true
164
+ else valuesFilter = filters[i]
165
+ }
166
+
167
+ if (!coincidence) values = { ...values, [elem]: data[elem] }
168
+ else valuesFilter = { ...valuesFilter, [elem]: data[elem] }
169
+ }
170
+ if (!dataFilter) return values
171
+ if (dataFilter) return { values, valuesFilter }
172
+ }
173
+
174
+ export const MONTHS: readonly string[] = [
175
+ 'January',
176
+ 'February',
177
+ 'March',
178
+ 'April',
179
+ 'May',
180
+ 'June',
181
+ 'July',
182
+ 'August',
183
+ 'September',
184
+ 'October',
185
+ 'November',
186
+ 'December'
187
+ ] as const
188
+
189
+ export const SPANISH_MONTHS: Readonly<Record<number, string>> = {
190
+ 0: 'Enero',
191
+ 1: 'Febrero',
192
+ 2: 'Marzo',
193
+ 3: 'Abril',
194
+ 4: 'Mayo',
195
+ 5: 'Junio',
196
+ 6: 'Julio',
197
+ 7: 'Augosto',
198
+ 8: 'Septiembre',
199
+ 9: 'Octubre',
200
+ 10: 'Noviembre ',
201
+ 11: 'Diciembre'
202
+ } as const
203
+
204
+ export const days: Readonly<Record<number, string>> = {
205
+ 1: 'Lunes',
206
+ 2: 'Martes',
207
+ 3: 'Miércoles',
208
+ 4: 'Jueves',
209
+ 5: 'Viernes',
210
+ 6: 'Sábado',
211
+ 0: 'Domingo'
212
+ } as const
213
+
214
+ export const convertBase64 = (file: File): Promise<string | ArrayBuffer | null> => {
215
+ return new Promise((resolve, reject) => {
216
+ const reader = new FileReader()
217
+ if (file) {
218
+ reader.readAsDataURL(file)
219
+ }
220
+ reader.onload = () => {
221
+ resolve(reader.result)
222
+ }
223
+ reader.onerror = error => {
224
+ reject(error)
225
+ }
226
+ })
227
+ }
228
+
229
+ export const validationImg = (file: File): boolean => { return (/\.(jpg|png|gif|jpeg)$/i).test(file.name) }
230
+
231
+ export const SERVICES = Object.freeze({
232
+ WEB_SOCKET_CHAT: 'web-socket-chat',
233
+ ADMIN_SERVER: 'admin-server',
234
+ ADMIN_STORE: 'admin-store',
235
+ MAIN: 'main'
236
+ })
237
+
238
+ export const paymentMethodCards = [
239
+ {
240
+ name: 'Visa',
241
+ icon: 'IconVisa'
242
+ },
243
+ {
244
+ name: 'MasterCard',
245
+ icon: 'IconMasterCard'
246
+ }
247
+ ]
248
+
249
+ export const CATEGORY_EMPTY = 'NINGUNO'
250
+
251
+
252
+ interface CleanValueOptions {
253
+ value: string;
254
+ decimalSeparator?: string;
255
+ groupSeparator?: string;
256
+ allowDecimals?: boolean;
257
+ decimalsLimit?: number;
258
+ allowNegativeValue?: boolean;
259
+ disableAbbreviations?: boolean;
260
+ }
261
+
262
+ const cleanValue = ({
263
+ value,
264
+ decimalSeparator,
265
+ groupSeparator,
266
+ allowDecimals,
267
+ decimalsLimit,
268
+ allowNegativeValue,
269
+ disableAbbreviations
270
+ }: CleanValueOptions): string | null => {
271
+ if (typeof value !== 'string') return null
272
+
273
+ // Remove currency symbols and whitespace
274
+ let cleaned = value.replace(/[$€£¥]/g, '').trim()
275
+
276
+ // Handle abbreviations like K, M, B
277
+ if (!disableAbbreviations) {
278
+ cleaned = cleaned.replace(/([kmb])\b/i, (match) => {
279
+ const multipliers: Record<string, number> = { k: 1e3, m: 1e6, b: 1e9 }
280
+ const key = match.toLowerCase()
281
+ return multipliers[key] ? `*${multipliers[key]}` : ''
282
+ })
283
+ }
284
+
285
+ // Replace group separator with empty string
286
+ if (groupSeparator) {
287
+ cleaned = cleaned.replace(new RegExp(`\\${groupSeparator}`, 'g'), '')
288
+ }
289
+
290
+ // Replace decimal separator with a dot
291
+ if (decimalSeparator) {
292
+ cleaned = cleaned.replace(new RegExp(`\\${decimalSeparator}`, 'g'), '.')
293
+ }
294
+
295
+ // Remove any non-numeric characters except for the decimal point
296
+ cleaned = cleaned.replace(/[^0-9.-]/g, '')
297
+
298
+ // Limit decimals if specified
299
+ if (allowDecimals && typeof decimalsLimit === 'number' && decimalsLimit > 0) {
300
+ const parts = cleaned.split('.')
301
+ if (parts.length > 1) {
302
+ parts[1] = parts[1].slice(0, decimalsLimit)
303
+ cleaned = parts.join('.')
304
+ }
305
+ }
306
+
307
+ // Handle negative values
308
+ if (!allowNegativeValue) {
309
+ cleaned = cleaned.replace(/-/g, '')
310
+ }
311
+
312
+ return cleaned
313
+ }
314
+ /**
315
+ * Converts a formatted string with group and decimal separators into a float number.
316
+ *
317
+ * @param value - The formatted string input, e.g., "$ 1.234,56"
318
+ * @param decimalSeparator - The character used as decimal separator, e.g., ','
319
+ * @param groupSeparator - The character used as group/thousands separator, e.g., '.'
320
+ * @returns The parsed float value or null if input is invalid
321
+ */
322
+ export function parseFormattedFloat(value: string): number {
323
+ if (!value) return 0
324
+ const options = {
325
+ decimalSeparator: ',',
326
+ groupSeparator: '.',
327
+ allowDecimals: true,
328
+ decimalsLimit: 20,
329
+ allowNegativeValue: true,
330
+ disableAbbreviations: false
331
+ }
332
+ const cleaned = cleanValue({ value, ...options })
333
+
334
+ // If cleaned is null/undefined/empty, return 0 to avoid calling replace on null
335
+ if (cleaned === null || cleaned === undefined || cleaned === '') return 0
336
+
337
+ const normalized = (typeof options.decimalSeparator === 'string' && options.decimalSeparator !== '')
338
+ // Replace the decimal separator with a dot for parsing
339
+ ? cleaned.replace(options.decimalSeparator, '.')
340
+ : cleaned
341
+
342
+ const num = Number.parseFloat(normalized)
343
+ return Number.isNaN(num) ? 0 : num
344
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": [
4
+ "src/**/*.ts",
5
+ "src/**/*.tsx",
6
+ "packages/**/*.ts",
7
+ "packages/**/*.tsx"
8
+ ],
9
+ "exclude": [
10
+ "node_modules",
11
+ "dist",
12
+ "build",
13
+ "**/*.config.*",
14
+ "tsup.config.ts",
15
+ "eslint.config.*"
16
+ ]
17
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "lib": ["ES2022", "DOM"],
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "emitDeclarationOnly": false,
9
+ "outDir": "dist",
10
+ "strict": true,
11
+ "moduleResolution": "bundler",
12
+ "esModuleInterop": true,
13
+ "skipLibCheck": true,
14
+ "resolveJsonModule": true,
15
+ "jsx": "react-jsx",
16
+ "sourceMap": true,
17
+ "composite": false
18
+ },
19
+ "include": ["src"],
20
+ "exclude": ["node_modules", "dist", "example"]
21
+ }
package/tsup.config.ts ADDED
@@ -0,0 +1,24 @@
1
+ // tsup.config.ts
2
+ import { defineConfig } from "tsup";
3
+
4
+ export default defineConfig({
5
+ entry: ["src/index.ts"],
6
+ format: ["cjs", "esm"],
7
+ dts: false,
8
+ outDir: "dist",
9
+ clean: true,
10
+ sourcemap: true,
11
+ target: "es2022",
12
+ external: [
13
+ "react",
14
+ "react-dom",
15
+ "next",
16
+ "@apollo/client",
17
+ "graphql",
18
+ "js-cookie"
19
+ ],
20
+ esbuildOptions: (ctx) => {
21
+ // Si necesitas tweaks extra a esbuild, los pones aquí
22
+ return ctx;
23
+ }
24
+ });