npm-pkg-hook 1.12.7 → 1.12.8

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 (348) hide show
  1. package/.babelrc +0 -0
  2. package/.env +5 -0
  3. package/.github/pull_request_template.md +18 -0
  4. package/.github/workflows/pepeline.yaml +30 -0
  5. package/dist/index.js +47755 -10080
  6. package/dist/index.js.map +1 -0
  7. package/dist/index.mjs +47071 -9610
  8. package/dist/index.mjs.map +1 -0
  9. package/eslint.config.mts +153 -0
  10. package/expire.json +1 -0
  11. package/jsconfig.json +28 -0
  12. package/package.json +24 -61
  13. package/script.txt +7 -0
  14. package/src/config/client/errors.ts +39 -0
  15. package/src/config/client/index.ts +1 -0
  16. package/src/config/content/en.json +5 -0
  17. package/src/config/content/es.json +5 -0
  18. package/src/config/content/index.ts +16 -0
  19. package/src/cookies/index.ts +3 -0
  20. package/src/hooks/addTenMinutes/index.ts +14 -0
  21. package/src/hooks/calculateLogLatHaversine/index.ts +41 -0
  22. package/src/hooks/completeSchedules/index.ts +22 -0
  23. package/src/hooks/convertToMilitaryTime/index.ts +18 -0
  24. package/src/hooks/generateStoreURL/index.ts +41 -0
  25. package/src/hooks/generateTemplate/index.ts +66 -0
  26. package/src/hooks/getCardType/index.ts +24 -0
  27. package/src/hooks/getCategoriesWithProduct/helpers/index.ts +7 -0
  28. package/src/hooks/getCategoriesWithProduct/index.ts +62 -0
  29. package/src/hooks/getGlobalSession/index.ts +69 -0
  30. package/src/hooks/getSession/index.ts +72 -0
  31. package/src/hooks/getTodayTimestamps/index.ts +70 -0
  32. package/src/hooks/getTotalHours/index.ts +76 -0
  33. package/src/hooks/handleLogin/index.ts +14 -0
  34. package/src/hooks/index.ts +153 -0
  35. package/src/hooks/isTokenExpired/index.ts +17 -0
  36. package/src/hooks/newMessageSubscription/index.ts +28 -0
  37. package/src/hooks/newStoreOrderSubscription/index.ts +26 -0
  38. package/src/hooks/statusOpenStores/helpers/index.ts +124 -0
  39. package/src/hooks/statusOpenStores/index.ts +221 -0
  40. package/src/hooks/updateExtProductFoodsOptional/index.ts +49 -0
  41. package/src/hooks/useAcumulateDate/index.ts +18 -0
  42. package/src/hooks/useAllStoresPendingToRegister/index.ts +37 -0
  43. package/src/hooks/useAmountInput/index.ts +127 -0
  44. package/src/hooks/useAnimationFrame/index.ts +45 -0
  45. package/src/hooks/useAnimationText/index.ts +31 -0
  46. package/src/hooks/useAsideCart/helpers/index.ts +22 -0
  47. package/src/hooks/useAsideCart/index.ts +217 -0
  48. package/src/hooks/useAsideCart/queries.ts +10 -0
  49. package/src/hooks/useBanner/index.ts +20 -0
  50. package/src/hooks/useCart/index.ts +2 -0
  51. package/src/hooks/useCart/queries.ts +174 -0
  52. package/src/hooks/useCart/useCart/helpers/index.ts +79 -0
  53. package/src/hooks/useCart/useCart/index.ts +424 -0
  54. package/src/hooks/useCart/useGetCart/index.ts +34 -0
  55. package/src/hooks/useCatWithProduct/index.ts +54 -0
  56. package/src/hooks/useCatWithProduct/queries.ts +200 -0
  57. package/src/hooks/useCatWithProduct/types/index.ts +104 -0
  58. package/src/hooks/useCatWithProductClient/index.ts +57 -0
  59. package/src/hooks/useCatWithProductClient/queries.ts +56 -0
  60. package/src/hooks/useCategoriesProduct/index.ts +14 -0
  61. package/src/hooks/useCategoriesProduct/queries.ts +16 -0
  62. package/src/hooks/useCategoryInStore/index.ts +167 -0
  63. package/src/hooks/useCategoryInStore/queries.ts +78 -0
  64. package/src/hooks/useCategoryStore/index.ts +8 -0
  65. package/src/hooks/useCategoryStore/queries.ts +16 -0
  66. package/src/hooks/useChartData/index.ts +171 -0
  67. package/src/hooks/useChartData/useChartData/index.ts +200 -0
  68. package/src/hooks/useChartData/useChartDataAllOrders/index.ts +94 -0
  69. package/src/hooks/useChatRoomSubscription/index.ts +28 -0
  70. package/src/hooks/useCheckbox/index.ts +115 -0
  71. package/src/hooks/useCities/index.ts +14 -0
  72. package/src/hooks/useCities/queries.ts +12 -0
  73. package/src/hooks/useClients/index.ts +97 -0
  74. package/src/hooks/useClients/queries.ts +215 -0
  75. package/src/hooks/useColorByLetters/helpers/alea.ts +73 -0
  76. package/src/hooks/useColorByLetters/helpers/colors.ts +45 -0
  77. package/src/hooks/useColorByLetters/helpers/index.ts +22 -0
  78. package/src/hooks/useColorByLetters/helpers/mersenne_twister.ts +118 -0
  79. package/src/hooks/useColorByLetters/index.ts +24 -0
  80. package/src/hooks/useConnection/index.ts +24 -0
  81. package/src/hooks/useCountries/index.ts +20 -0
  82. package/src/hooks/useCountries/queries.ts +12 -0
  83. package/src/hooks/useCreateDeliveryTime/index.ts +51 -0
  84. package/src/hooks/useCreateOrderStatusType/index.ts +134 -0
  85. package/src/hooks/useCreateProduct/helpers/index.ts +23 -0
  86. package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/index.ts +52 -0
  87. package/src/hooks/useCreateProduct/helpers/useEditImageProduct/index.ts +182 -0
  88. package/src/hooks/useCreateProduct/index.ts +337 -0
  89. package/src/hooks/useCreateStorePendingToRegister/index.ts +17 -0
  90. package/src/hooks/useCreateStorePendingToRegister/queries.ts +10 -0
  91. package/src/hooks/useDashboardComponents/index.ts +50 -0
  92. package/src/hooks/useDeleteExtraProductFoods/index.ts +13 -0
  93. package/src/hooks/useDeleteSubProductOptional/index.ts +32 -0
  94. package/src/hooks/useDeleteSubProductOptional/queries.ts +10 -0
  95. package/src/hooks/useDeliveryTime/index.ts +29 -0
  96. package/src/hooks/useDepartments/index.ts +14 -0
  97. package/src/hooks/useDepartments/queries.ts +13 -0
  98. package/src/hooks/useDessert/helpers/index.ts +51 -0
  99. package/src/hooks/useDessert/index.ts +529 -0
  100. package/src/hooks/useDessertWithPrice/helpers/index.ts +76 -0
  101. package/src/hooks/useDessertWithPrice/index.ts +381 -0
  102. package/src/hooks/useDessertWithPrice/queries.ts +18 -0
  103. package/src/hooks/useDevWS/index.ts +53 -0
  104. package/src/hooks/useDevices/index.ts +2 -0
  105. package/src/hooks/useDevices/queries.ts +28 -0
  106. package/src/hooks/useDevices/useGetDevices.ts +28 -0
  107. package/src/hooks/useDevices/useRegisterDevices.ts +75 -0
  108. package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +21 -0
  109. package/src/hooks/useDownloadReports/index.ts +2 -0
  110. package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +105 -0
  111. package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +116 -0
  112. package/src/hooks/useDrag/index.ts +79 -0
  113. package/src/hooks/useDropzone/index.ts +94 -0
  114. package/src/hooks/useDynamicAuth/index.ts +14 -0
  115. package/src/hooks/useDynamicAuth/queries.ts +24 -0
  116. package/src/hooks/useEditCategory/index.ts +41 -0
  117. package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
  118. package/src/hooks/useEditOneExtProductFoodOptional/queries.ts +16 -0
  119. package/src/hooks/useEditSubProductOptional/index.ts +12 -0
  120. package/src/hooks/useEditSubProductOptional/queries.ts +10 -0
  121. package/src/hooks/useEmployee/index.ts +18 -0
  122. package/src/hooks/useEmployee/queries.ts +85 -0
  123. package/src/hooks/useEmployee/useCreateEmployee.ts +90 -0
  124. package/src/hooks/useEvent/index.ts +34 -0
  125. package/src/hooks/useFavoriteStores/index.ts +31 -0
  126. package/src/hooks/useFavoriteStores/queries.ts +54 -0
  127. package/src/hooks/useFetchJson/index.ts +25 -0
  128. package/src/hooks/useFetchMoreInteractions/index.jsx +39 -0
  129. package/src/hooks/useFilterConfigs/index.ts +173 -0
  130. package/src/hooks/useFingerprintjs/index.ts +197 -0
  131. package/src/hooks/useFormTools/index.ts +143 -0
  132. package/src/hooks/useFormatDate/index.ts +91 -0
  133. package/src/hooks/useFormatNumberPhone/index.ts +23 -0
  134. package/src/hooks/useFullScreenMode/index.ts +61 -0
  135. package/src/hooks/useGenerateNumberArray/index.ts +17 -0
  136. package/src/hooks/useGetAllLocationUser/index.ts +13 -0
  137. package/src/hooks/useGetAllLocationUser/queries.ts +44 -0
  138. package/src/hooks/useGetAllSales/index.ts +26 -0
  139. package/src/hooks/useGetCookies/index.ts +43 -0
  140. package/src/hooks/useGetExtProductFoodsSubOptionalAll/index.ts +15 -0
  141. package/src/hooks/useGetFoodRecomended/index.ts +33 -0
  142. package/src/hooks/useGetFoodRecomended/queries.ts +47 -0
  143. package/src/hooks/useGetMessagesToRoom/index.ts +23 -0
  144. package/src/hooks/useGetMinPrice/index.ts +13 -0
  145. package/src/hooks/useGetMinPrice/queries.ts +7 -0
  146. package/src/hooks/useGetOneStoreRating/index.ts +41 -0
  147. package/src/hooks/useGetOneStoreRating/queries.ts +18 -0
  148. package/src/hooks/useGetSalesAmountToday/index.ts +31 -0
  149. package/src/hooks/useGetStoreCookie/index.ts +21 -0
  150. package/src/hooks/useGoogleLogin/index.ts +169 -0
  151. package/src/hooks/useGoogleLogin/loadScript.ts +15 -0
  152. package/src/hooks/useGoogleLogin/removeScript.ts +7 -0
  153. package/src/hooks/useHover/index.ts +32 -0
  154. package/src/hooks/useImageOptimization/index.ts +32 -0
  155. package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +146 -0
  156. package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +54 -0
  157. package/src/hooks/useImageUploaderProduct/helper/index.ts +5 -0
  158. package/src/hooks/useImageUploaderProduct/index.ts +295 -0
  159. package/src/hooks/useImageWeight/index.ts +55 -0
  160. package/src/hooks/useImagesStore/index.ts +227 -0
  161. package/src/hooks/useImagesStore/queries.ts +193 -0
  162. package/src/hooks/useImagesStore/utils/index.ts +4 -0
  163. package/src/hooks/useIncomingOrders/index.ts +11 -0
  164. package/src/hooks/useIncomingOrders/queries.ts +87 -0
  165. package/src/hooks/useInnerHtml/index.ts +39 -0
  166. package/src/hooks/useIntersection/index.ts +84 -0
  167. package/src/hooks/useInventory/index.ts +2 -0
  168. package/src/hooks/useInventory/queries.ts +58 -0
  169. package/src/hooks/useInventory/useGetProductsInStock.ts +16 -0
  170. package/src/hooks/useInventory/useUpdateManageStock.ts +41 -0
  171. package/src/hooks/useKeypress/index.ts +28 -0
  172. package/src/hooks/useLazyScript/index.ts +74 -0
  173. package/src/hooks/useLocalBackendIp/index.ts +34 -0
  174. package/src/hooks/useLocalSorage/index.ts +36 -0
  175. package/src/hooks/useLocationManager/index.ts +63 -0
  176. package/src/hooks/useLocationNavigate/index.ts +54 -0
  177. package/src/hooks/useLoginEmployeeInStore/index.ts +38 -0
  178. package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
  179. package/src/hooks/useLogout/helpers/apiBaseUrl.ts +12 -0
  180. package/src/hooks/useLogout/helpers/fetchData.ts +37 -0
  181. package/src/hooks/useLogout/helpers/getCsrfToken.ts +37 -0
  182. package/src/hooks/useLogout/helpers/index.ts +65 -0
  183. package/src/hooks/useLogout/helpers/logger.ts +88 -0
  184. package/src/hooks/useLogout/helpers/parseUrl.ts +39 -0
  185. package/src/hooks/useLogout/index.ts +105 -0
  186. package/src/hooks/useManageNewOrder/helpers/index.ts +45 -0
  187. package/src/hooks/useManageNewOrder/helpers/mock.ts +0 -0
  188. package/src/hooks/useManageNewOrder/index.ts +104 -0
  189. package/src/hooks/useManageQueryParams/index.ts +120 -0
  190. package/src/hooks/useMobile/index.ts +65 -0
  191. package/src/hooks/useModules/helpers/index.ts +1 -0
  192. package/src/hooks/useModules/helpers/validateModules.ts +29 -0
  193. package/src/hooks/useModules/index.ts +124 -0
  194. package/src/hooks/useMouse/index.ts +55 -0
  195. package/src/hooks/useMutateHeight/index.ts +36 -0
  196. package/src/hooks/useOrderClient/index.ts +5 -0
  197. package/src/hooks/useOrderStatusTypes/index.ts +2 -0
  198. package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +133 -0
  199. package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +99 -0
  200. package/src/hooks/useOrders/index.ts +3 -0
  201. package/src/hooks/useOrders/queries.ts +99 -0
  202. package/src/hooks/useOrders/useChangeOrderState/index.ts +128 -0
  203. package/src/hooks/useOrders/useOrdersFromStore/index.ts +78 -0
  204. package/src/hooks/usePWAInstall/index.ts +38 -0
  205. package/src/hooks/usePaymentMethod/index.ts +3 -0
  206. package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
  207. package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
  208. package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
  209. package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
  210. package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
  211. package/src/hooks/usePortFetcher/index.ts +33 -0
  212. package/src/hooks/usePrintSaleTicket/index.ts +68 -0
  213. package/src/hooks/useProductsFood/index.ts +341 -0
  214. package/src/hooks/useProductsFood/queriesStore.ts +964 -0
  215. package/src/hooks/useProductsFood/types/index.ts +0 -0
  216. package/src/hooks/useProductsFood/useEditProduct.ts +49 -0
  217. package/src/hooks/useProductsFood/usetagsProducts.ts +101 -0
  218. package/src/hooks/useProviders/index.ts +3 -0
  219. package/src/hooks/useProviders/queries.ts +31 -0
  220. package/src/hooks/useProviders/useProvidersCreateStore/index.ts +13 -0
  221. package/src/hooks/useProviders/useProvidersDataStore/index.ts +25 -0
  222. package/src/hooks/useProvidersStore/index.ts +25 -0
  223. package/src/hooks/useProvidersStore/queries.ts +31 -0
  224. package/src/hooks/usePushNotificationOrder/index.ts +52 -0
  225. package/src/hooks/usePushNotifications/helpers/index.ts +123 -0
  226. package/src/hooks/usePushNotifications/index.ts +150 -0
  227. package/src/hooks/useQueryLocationsMap/index.ts +20 -0
  228. package/src/hooks/useQueryLocationsMap/queries.ts +40 -0
  229. package/src/hooks/useRatingArrayData/index.ts +54 -0
  230. package/src/hooks/useRatingArrayData/queries.ts +19 -0
  231. package/src/hooks/useReactToPrint/index.txt +1223 -0
  232. package/src/hooks/useRemoveExtraProductFoodsOptional/index.ts +24 -0
  233. package/src/hooks/useRemoveExtraProductFoodsOptional/queries.ts +48 -0
  234. package/src/hooks/useReport/index.ts +48 -0
  235. package/src/hooks/useReport/queries.ts +72 -0
  236. package/src/hooks/useRestaurant/helpers/index.ts +28 -0
  237. package/src/hooks/useRestaurant/helpers/manageStatusOpen.ts +26 -0
  238. package/src/hooks/useRestaurant/index.ts +71 -0
  239. package/src/hooks/useRestaurant/queries.ts +81 -0
  240. package/src/hooks/useRoads/index.ts +20 -0
  241. package/src/hooks/useRoads/queries.ts +13 -0
  242. package/src/hooks/useRoles/index.ts +4 -0
  243. package/src/hooks/useRoles/queries.ts +70 -0
  244. package/src/hooks/useRoles/useCreateRole.ts +40 -0
  245. package/src/hooks/useRoles/useGetRoles.ts +37 -0
  246. package/src/hooks/useRoles/useRemoveRoles.ts +40 -0
  247. package/src/hooks/useRoles/useUpdateRolesPriority.ts +44 -0
  248. package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
  249. package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
  250. package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
  251. package/src/hooks/useSales/helpers/constants/index.ts +38 -0
  252. package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
  253. package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
  254. package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
  255. package/src/hooks/useSales/helpers/index.ts +3 -0
  256. package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
  257. package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
  258. package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
  259. package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
  260. package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
  261. package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
  262. package/src/hooks/useSales/index.ts +1418 -0
  263. package/src/hooks/useSales/queries.ts +532 -0
  264. package/src/hooks/useSales/types/index.ts +206 -0
  265. package/src/hooks/useSales/types/use-sales.types.ts +8 -0
  266. package/src/hooks/useSales/useGetSale.ts +21 -0
  267. package/src/hooks/useSales/useTotalSales.ts +24 -0
  268. package/src/hooks/useSaveAvailableProduct/helpers/index.ts +38 -0
  269. package/src/hooks/useSaveAvailableProduct/index.ts +32 -0
  270. package/src/hooks/useSaveAvailableProduct/queries.ts +10 -0
  271. package/src/hooks/useSaveLocation/index.ts +17 -0
  272. package/src/hooks/useSaveLocation/queries.ts +19 -0
  273. package/src/hooks/useSchedule/index.ts +35 -0
  274. package/src/hooks/useSchedule/queries.ts +43 -0
  275. package/src/hooks/useSchedule/schedule.ts +79 -0
  276. package/src/hooks/useScheduleData/index.ts +135 -0
  277. package/src/hooks/useScroll/index.ts +56 -0
  278. package/src/hooks/useScrollRotate/index.ts +16 -0
  279. package/src/hooks/useSetImageProducts/index.ts +59 -0
  280. package/src/hooks/useSetImageProducts/queries.ts +18 -0
  281. package/src/hooks/useSetSession/index.ts +44 -0
  282. package/src/hooks/useSetState/index.ts +24 -0
  283. package/src/hooks/useSetupSchedule/helpers/index.ts +85 -0
  284. package/src/hooks/useSetupSchedule/index.ts +284 -0
  285. package/src/hooks/useStatusOpenStore/helpers/index.ts +124 -0
  286. package/src/hooks/useStatusOpenStore/index.ts +195 -0
  287. package/src/hooks/useStatusOrdersClient/helpers/index.ts +14 -0
  288. package/src/hooks/useStatusOrdersClient/index.ts +18 -0
  289. package/src/hooks/useStatusOrdersClient/queries.ts +80 -0
  290. package/src/hooks/useStock/index.ts +1 -0
  291. package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
  292. package/src/hooks/useStockMovements/helpers/index.ts +16 -0
  293. package/src/hooks/useStockMovements/index.ts +39 -0
  294. package/src/hooks/useStore/index.ts +83 -0
  295. package/src/hooks/useStore/queries.ts +163 -0
  296. package/src/hooks/useStoreCalendar/index.ts +5 -0
  297. package/src/hooks/useStoreContacts/index.ts +53 -0
  298. package/src/hooks/useStoreContacts/queries.ts +48 -0
  299. package/src/hooks/useStoreTable/index.ts +2 -0
  300. package/src/hooks/useStoreTable/queries.ts +47 -0
  301. package/src/hooks/useStoreTable/useStoreTableCreate.ts +77 -0
  302. package/src/hooks/useStoreTable/useStoreTables.ts +15 -0
  303. package/src/hooks/useSubscriptionValidation/index.ts +112 -0
  304. package/src/hooks/useTagProducts/index.ts +3 -0
  305. package/src/hooks/useTagProducts/useDeleteOneTag.ts +106 -0
  306. package/src/hooks/useTagProducts/useGetAllTags.ts +68 -0
  307. package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +157 -0
  308. package/src/hooks/useTheme/index.ts +65 -0
  309. package/src/hooks/useTimeAgo/useTimeAgo.ts +39 -0
  310. package/src/hooks/useTokenCards/index.ts +45 -0
  311. package/src/hooks/useTopProductsMovements/index.ts +27 -0
  312. package/src/hooks/useTotalAllSales/index.ts +25 -0
  313. package/src/hooks/useTotalProductsInStock/index.ts +23 -0
  314. package/src/hooks/useTotalProductsSold/index.ts +23 -0
  315. package/src/hooks/useTotalProductsSolded/index.ts +20 -0
  316. package/src/hooks/useUpdateCart/index.ts +131 -0
  317. package/src/hooks/useUpdateCartCookie/index.ts +60 -0
  318. package/src/hooks/useUpdateDashboardComponent/index.ts +91 -0
  319. package/src/hooks/useUpdateExistingOrders/index.ts +85 -0
  320. package/src/hooks/useUpdateExtProductFoodsSubOptional/index.ts +61 -0
  321. package/src/hooks/useUpdateModuleOrder/index.ts +37 -0
  322. package/src/hooks/useUpdateMultipleExtProduct/index.ts +34 -0
  323. package/src/hooks/useUpdateMultipleExtProduct/queries.ts +33 -0
  324. package/src/hooks/useUpdateMultipleProducts/index.ts +117 -0
  325. package/src/hooks/useUpdateMultipleProducts/queries.ts +51 -0
  326. package/src/hooks/useUploadProducts/helpers/index.ts +1 -0
  327. package/src/hooks/useUploadProducts/helpers/parseNumber.ts +37 -0
  328. package/src/hooks/useUploadProducts/helpers/validateProductDataExcel.ts +73 -0
  329. package/src/hooks/useUploadProducts/index.ts +442 -0
  330. package/src/hooks/useUpsertGoal/index.ts +68 -0
  331. package/src/hooks/useUser/index.ts +24 -0
  332. package/src/hooks/useUser/queries.ts +131 -0
  333. package/src/hooks/useWeeklyStockMovement/helpers/index.ts +32 -0
  334. package/src/hooks/useWeeklyStockMovement/index.ts +52 -0
  335. package/src/hooks/useWindowSize/index.ts +45 -0
  336. package/src/index.ts +13 -0
  337. package/src/mock/dessert/index.ts +16 -0
  338. package/src/mock/index.ts +1 -0
  339. package/src/security/index.ts +1 -0
  340. package/src/services/index.ts +1 -0
  341. package/src/utils/UtilDateRange.ts +56 -0
  342. package/src/utils/generateCode.ts +222 -0
  343. package/src/utils/index.ts +2 -0
  344. package/src/utils/utils.ts +344 -0
  345. package/tsconfig.eslint.json +16 -0
  346. package/tsconfig.json +21 -0
  347. package/tsup.config.ts +24 -0
  348. package/dist/index.cjs +0 -20089
@@ -0,0 +1,295 @@
1
+ import { useRef, useState } from 'react'
2
+
3
+ import { ORIENTATION_TO_ANGLE } from './helper'
4
+ import { getCroppedImg, getRotatedImage } from './helper/canvasUtils'
5
+ import { getOrientation } from './helper/getOrientation'
6
+
7
+ /**
8
+ *
9
+ * @param file
10
+ */
11
+ function readFile(file: File): Promise<string> {
12
+ return new Promise((resolve) => {
13
+ const reader = new FileReader()
14
+ reader.addEventListener('load', () => {return resolve(reader.result as string)}, false)
15
+ reader.readAsDataURL(file)
16
+ })
17
+ }
18
+
19
+ export type SendNotificationFn = (params: {
20
+ description: string
21
+ title: string
22
+ backgroundColor: string
23
+ }) => void
24
+
25
+ interface UseImageUploaderOptions {
26
+ maxSizeMB?: number
27
+ minHeight?: number
28
+ minWidth?: number
29
+ validTypes?: string[]
30
+ sendNotification: SendNotificationFn
31
+ }
32
+
33
+ interface UseImageUploaderResult {
34
+ crop: { x: number, y: number }
35
+ croppedImage: string | null
36
+ error: string
37
+ image: File
38
+ imageSrc: string | null
39
+ inputRef: React.RefObject<HTMLInputElement>
40
+ loading: boolean
41
+ open: boolean
42
+ preview: string | null
43
+ formattedList: string
44
+ rotation: number
45
+ zoom: number
46
+ validTypes: string[]
47
+ handleClose: () => void
48
+ handleRemoveImage: () => void
49
+ onCropComplete: (croppedArea: any, croppedPixels: any) => void
50
+ onFileChange: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>
51
+ setCrop: React.Dispatch<React.SetStateAction<{ x: number, y: number }>>
52
+ setRotation: React.Dispatch<React.SetStateAction<number>>
53
+ setZoom: React.Dispatch<React.SetStateAction<number>>
54
+ handleDrop: (event: React.DragEvent<HTMLDivElement>) => Promise<void>
55
+ showCroppedImage: () => Promise<void>
56
+ }
57
+
58
+ /**
59
+ * Hook for managing image selection, preview, validation and cropping
60
+ * @param {UseImageUploaderOptions} options
61
+ * @returns {UseImageUploaderResult}
62
+ */
63
+ export const useImageUploaderProduct = (
64
+ options?: UseImageUploaderOptions
65
+ ): UseImageUploaderResult => {
66
+ const {
67
+ validTypes = ['image/jpeg', 'image/jpg', 'image/png'],
68
+ maxSizeMB = 20,
69
+ minWidth = 300,
70
+ minHeight = 275,
71
+ sendNotification
72
+ } = options ?? {
73
+
74
+ }
75
+ const readableFormats = validTypes
76
+ .map((type) => {return type.split('/')[1].toUpperCase()})
77
+
78
+ const formatter = new Intl.ListFormat('es', {
79
+ style: 'long',
80
+ type: 'conjunction'
81
+ })
82
+
83
+ const formattedList = formatter.format(readableFormats)
84
+
85
+ const [loading, setLoading] = useState(false)
86
+ const inputRef = useRef<HTMLInputElement>(null)
87
+ const [open, setOpen] = useState(false)
88
+ const [preview, setPreview] = useState<string | null>(null)
89
+ const [imageSrc, setImageSrc] = useState<string | null>(null)
90
+ const [croppedImage, setCroppedImage] = useState<string | null>(null)
91
+ const [crop, setCrop] = useState({ x: 0, y: 0 })
92
+ const [zoom, setZoom] = useState(1)
93
+ const [rotation, setRotation] = useState(0)
94
+ const [croppedAreaPixels, setCroppedAreaPixels] = useState(null)
95
+ const [error, setError] = useState('')
96
+ const [image, setImage] = useState<File | null>(null)
97
+
98
+
99
+ const onCropComplete = (_: any, croppedPixels: any) => {
100
+ setCroppedAreaPixels(croppedPixels)
101
+ }
102
+
103
+ const showCroppedImage = async () => {
104
+ if (!imageSrc || !croppedAreaPixels) return
105
+ try {
106
+ setLoading(true)
107
+ const base64Image = await getCroppedImg(imageSrc, croppedAreaPixels, rotation) as string
108
+
109
+ setCroppedImage(base64Image)
110
+ setPreview(base64Image)
111
+
112
+ // ✅ Convert base64 to blob and file
113
+ const blob = await (await fetch(base64Image)).blob()
114
+ const file = new File([blob], image?.name ?? 'cropped.jpeg', { type: blob.type })
115
+ setImage(file)
116
+ setLoading(false)
117
+ } catch (e) {
118
+ setLoading(false)
119
+ return sendNotification({
120
+ description: e ?? 'Ocurrió un error',
121
+ title: 'Error',
122
+ backgroundColor: 'error'
123
+ })
124
+ }
125
+ }
126
+
127
+ /**
128
+ * Removes the selected image and resets relevant states
129
+ */
130
+ const handleRemoveImage = () => {
131
+ setImage(null)
132
+ setPreview(null)
133
+ setImageSrc(null)
134
+ setCroppedImage(null)
135
+ setZoom(1)
136
+ setCrop({ x: 0, y: 0 })
137
+ setRotation(0)
138
+ setError('')
139
+ if (inputRef.current) inputRef.current.value = ''
140
+ }
141
+
142
+ const onFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {
143
+ const file = e.target.files?.[0]
144
+ handleRemoveImage()
145
+ if (!file) return
146
+
147
+ if (!validTypes.includes(file.type)) {
148
+
149
+
150
+ const error = `Formato inválido. Solo se permiten: ${formattedList}.`
151
+ sendNotification({
152
+ description: error,
153
+ title: 'Error',
154
+ backgroundColor: 'error'
155
+ })
156
+ return setError(error)
157
+ }
158
+
159
+ if (file.size > maxSizeMB * 1024 * 1024) {
160
+ const error = `El archivo supera los ${maxSizeMB} MB.`
161
+ sendNotification({
162
+ description: error,
163
+ title: 'Error',
164
+ backgroundColor: 'error'
165
+ })
166
+ return setError(`El archivo supera los ${maxSizeMB} MB.`)
167
+ }
168
+
169
+ let imageDataUrl = await readFile(file)
170
+
171
+ try {
172
+ const orientation = await getOrientation(file, validTypes)
173
+ const rotation = ORIENTATION_TO_ANGLE[orientation]
174
+ if (rotation) {
175
+ imageDataUrl = await getRotatedImage(imageDataUrl, rotation) as string
176
+ setRotation(rotation)
177
+ }
178
+ } catch (e) {
179
+ return sendNotification({
180
+ description: 'Error desconocido',
181
+ title: 'Error',
182
+ backgroundColor: 'error'
183
+ })
184
+ }
185
+
186
+ const image = new Image()
187
+ image.src = imageDataUrl
188
+ image.onload = () => {
189
+ if (image.width < minWidth || image.height < minHeight) {
190
+ const error = `Resolución mínima: ${minWidth}x${minHeight}px.`
191
+ sendNotification({
192
+ description: error,
193
+ title: 'Error',
194
+ backgroundColor: 'error'
195
+ })
196
+ setError(error)
197
+ return
198
+ }
199
+ setImageSrc(imageDataUrl)
200
+ setOpen(true)
201
+ }
202
+ }
203
+
204
+ const handleClose = () => {
205
+ setOpen(!open)
206
+ }
207
+
208
+ const handleDrop = async (event: React.DragEvent<HTMLDivElement>): Promise<void> => {
209
+ event.preventDefault()
210
+ handleRemoveImage()
211
+ const file = event.dataTransfer.files?.[0]
212
+ if (!file) return
213
+
214
+ if (!validTypes.includes(file.type)) {
215
+ const error = `Formato inválido. Solo se permiten: ${formattedList}.`
216
+ sendNotification({
217
+ description: error,
218
+ title: 'Error',
219
+ backgroundColor: 'error'
220
+ })
221
+ return setError(error)
222
+ }
223
+
224
+ if (file.size > maxSizeMB * 1024 * 1024) {
225
+ const error = `El archivo supera los ${maxSizeMB} MB.`
226
+ sendNotification({
227
+ description: error,
228
+ title: 'Error',
229
+ backgroundColor: 'error'
230
+ })
231
+ return setError(error)
232
+ }
233
+
234
+ let imageDataUrl = await readFile(file)
235
+
236
+ try {
237
+ const orientation = await getOrientation(file, validTypes)
238
+ const rotation = ORIENTATION_TO_ANGLE[orientation]
239
+ if (rotation) {
240
+ imageDataUrl = await getRotatedImage(imageDataUrl, rotation) as string
241
+ setRotation(rotation)
242
+ }
243
+ } catch (e) {
244
+ return sendNotification({
245
+ description: 'Error al procesar la orientación de la imagen',
246
+ title: 'Error',
247
+ backgroundColor: 'error'
248
+ })
249
+ }
250
+
251
+ const image = new Image()
252
+ image.src = imageDataUrl
253
+ image.onload = () => {
254
+ if (image.width < minWidth || image.height < minHeight) {
255
+ const error = `Resolución mínima: ${minWidth}x${minHeight}px.`
256
+ sendNotification({
257
+ description: error,
258
+ title: 'Error',
259
+ backgroundColor: 'error'
260
+ })
261
+ setError(error)
262
+ return
263
+ }
264
+ setImageSrc(imageDataUrl)
265
+ setImage(file)
266
+ setOpen(true)
267
+ }
268
+ }
269
+
270
+
271
+ return {
272
+ inputRef,
273
+ open,
274
+ imageSrc,
275
+ preview,
276
+ croppedImage,
277
+ crop,
278
+ zoom,
279
+ image,
280
+ rotation,
281
+ error,
282
+ formattedList,
283
+ loading,
284
+ validTypes,
285
+ onCropComplete,
286
+ showCroppedImage,
287
+ handleRemoveImage,
288
+ handleDrop,
289
+ onFileChange,
290
+ handleClose,
291
+ setCrop,
292
+ setZoom,
293
+ setRotation
294
+ }
295
+ }
@@ -0,0 +1,55 @@
1
+ import { useEffect, useState } from 'react'
2
+
3
+ /**
4
+ *
5
+ * @param imageUrl
6
+ */
7
+ export function useImageWeight (imageUrl) {
8
+ const [weight, setWeight] = useState(null)
9
+
10
+ useEffect(() => {
11
+ const image = new Image()
12
+ image.src = imageUrl
13
+
14
+ image.onload = () => {
15
+ const xhr = new XMLHttpRequest()
16
+ xhr.open('HEAD', imageUrl, true)
17
+ xhr.onreadystatechange = () => {
18
+ if (xhr.readyState === 4 && xhr.status === 200) {
19
+ const contentLength = xhr.getResponseHeader('Content-Length')
20
+ setWeight(contentLength)
21
+ }
22
+ }
23
+ xhr.send()
24
+ }
25
+ }, [imageUrl])
26
+
27
+ return weight
28
+ }
29
+
30
+ // I use
31
+ // function MyComponent() {
32
+ // const imageUrl = 'https://example.com/image.jpg';
33
+ // const weight = useImageWeight(imageUrl);
34
+
35
+ // return (
36
+ // <div>
37
+ // <img src={imageUrl} alt="My Image" />
38
+ // {weight ? `Peso de imagen: ${weight} bytes` : 'Cargando...'}
39
+ // </div>
40
+ // );
41
+ // }
42
+
43
+ // const weightInMB = weight / (1024 * 1024);
44
+
45
+ // function MyComponent() {
46
+ // const imageUrl = 'https://example.com/image.jpg';
47
+ // const weight = useImageWeight(imageUrl);
48
+
49
+ // return (
50
+ // <div>
51
+ // <img src={imageUrl} alt="My Image" />
52
+ // {weight ? `Peso de imagen: ${(weight / (1024 * 1024)).toFixed(2)} MB` : 'Cargando...'}
53
+ // </div>
54
+ // );
55
+ // }
@@ -0,0 +1,227 @@
1
+ import { useMutation } from '@apollo/client'
2
+ import {
3
+ useRef,
4
+ useState
5
+ } from 'react'
6
+
7
+ import {
8
+ CREATE_BANNER_STORE,
9
+ CREATE_LOGO,
10
+ DELETE_ONE_BANNER_STORE,
11
+ DELETE_ONE_LOGO_STORE,
12
+ GET_ONE_BANNER_STORE
13
+ } from '../useProductsFood/queriesStore'
14
+ import { GET_ONE_STORE } from '../useStore/queries'
15
+
16
+ import { color } from './utils'
17
+ export * from './queries'
18
+
19
+ export const useImageStore = ({ idStore, sendNotification = () => { } } = {}) => {
20
+ // STATES
21
+ const fileInputRef = useRef(null)
22
+ const initialState = { alt: '/images/DEFAULTBANNER.png', src: '/images/DEFAULTBANNER.png' }
23
+ const initialStateLogo = { altLogo: '/images/DEFAULTLOGO.png', srcLogo: '/images/DEFAULTLOGO.png' }
24
+ const [{ altLogo, srcLogo }, setPreviewImgLogo] = useState(initialStateLogo)
25
+ const [{ alt, src }, setPreviewImg] = useState(initialState)
26
+ const fileInputRefLogo = useRef(null)
27
+
28
+ // HOOKS
29
+ const [registerBanner] = useMutation(CREATE_BANNER_STORE, {
30
+ onCompleted: (data) => {
31
+ const { registerBanner } = data || {}
32
+ const { message = '', success = false } = registerBanner || {}
33
+ if (!success) {
34
+ setPreviewImg(initialState)
35
+ return
36
+ }
37
+ sendNotification({
38
+ title: success ? 'Banner subido' : 'Error al subir banner',
39
+ description: message,
40
+ backgroundColor: success ? color.success : color.error
41
+ })
42
+ }
43
+
44
+ })
45
+ const [registerLogo] = useMutation(CREATE_LOGO, {
46
+ onCompleted: (data) => {
47
+ const { registerLogo } = data || {}
48
+ const { message = '', success = false } = registerLogo ?? {
49
+ message: 'Error al subir logo',
50
+ success: false,
51
+ data: null
52
+ }
53
+ if (!success) {
54
+ setPreviewImgLogo(initialStateLogo)
55
+ return
56
+ }
57
+
58
+ sendNotification({
59
+ title: success ? 'Logo creado con exito' : color.error,
60
+ description: message,
61
+ backgroundColor: success ? color.success : color.error
62
+ })
63
+ }
64
+ })
65
+ const [deleteOneBanner] = useMutation(DELETE_ONE_BANNER_STORE, {
66
+ onCompleted: (data) => {
67
+ const { deleteOneBanner } = data || {}
68
+ const { message = '', success = false } = deleteOneBanner || {}
69
+ return sendNotification({
70
+ title: success ? 'Logo subido' : color.error,
71
+ description: message,
72
+ backgroundColor: success ? color.success : color.error
73
+ })
74
+ }
75
+ })
76
+ const [deleteALogoStore] = useMutation(DELETE_ONE_LOGO_STORE, {
77
+ onCompleted: (data) => {
78
+ const { deleteALogoStore } = data || {}
79
+ const { message = '', success = false } = deleteALogoStore || {}
80
+ sendNotification({
81
+ title: success ? 'Logo Eliminado' : 'Error al eliminar el logo',
82
+ description: message,
83
+ backgroundColor: success ? color.success : color.error
84
+ })
85
+ setPreviewImgLogo(initialStateLogo)
86
+ },
87
+ update (cache) {
88
+ cache.modify({
89
+ fields: {
90
+ getStore (dataOld = {}) {
91
+ return cache.writeQuery({ query: GET_ONE_STORE, data: dataOld })
92
+ }
93
+ }
94
+ })
95
+ }
96
+ })
97
+ // HANDLESS
98
+ const handleDeleteLogo = () => {
99
+ return deleteALogoStore({
100
+ variables: {
101
+ Image: ''
102
+ }
103
+ })
104
+ }
105
+
106
+ const handleUpdateBanner = event => {
107
+ try {
108
+ const { files } = event.target
109
+ setPreviewImg(
110
+ files.length
111
+ ? {
112
+ src: URL.createObjectURL(files[0]),
113
+ alt: files[0].name
114
+ }
115
+ : initialState
116
+ )
117
+ registerBanner({
118
+ variables: {
119
+ input: {
120
+ bnImage: files[0],
121
+ idStore
122
+ }
123
+ },
124
+ update (cache) {
125
+ cache.modify({
126
+ fields: {
127
+ getStore (dataOld = {}) {
128
+ return cache.writeQuery({ query: GET_ONE_STORE, data: dataOld })
129
+ }
130
+ }
131
+ })
132
+ }
133
+ })
134
+ } catch {
135
+ setPreviewImg(initialState)
136
+ }
137
+ }
138
+ /**
139
+ * Handle store logo upload and update cache Image field
140
+ * @param {React.ChangeEvent<HTMLInputElement>} event - File input change event
141
+ * @returns {void}
142
+ */
143
+ const handleInputChangeLogo = async (event) => {
144
+ const { files } = event.target
145
+
146
+ if (!files || files.length === 0) {
147
+ sendNotification({
148
+ title: 'Debes seleccionar un archivo',
149
+ description: color.error,
150
+ backgroundColor: color.error
151
+ })
152
+ return
153
+ }
154
+
155
+ const file = files[0]
156
+
157
+ const result = await registerLogo({
158
+ variables: { logo: file, idStore }
159
+ })
160
+ const {
161
+ data: {
162
+ registerLogo: {
163
+ success = false,
164
+ data: url = ''
165
+ } = {}
166
+ } = {}
167
+ } = result ?? {
168
+ data: '',
169
+ success: false,
170
+ message: ''
171
+ }
172
+ if (!success) {
173
+ setPreviewImgLogo(initialStateLogo)
174
+ return
175
+ }
176
+ setPreviewImgLogo({
177
+ srcLogo: URL.createObjectURL(file),
178
+ altLogo: url
179
+ })
180
+ }
181
+
182
+ const HandleDeleteBanner = async () => {
183
+ setPreviewImg(initialStateLogo)
184
+ deleteOneBanner({
185
+ variables: {
186
+ idStore
187
+ },
188
+ update (cache) {
189
+ cache.modify({
190
+ fields: {
191
+ getOneBanners (dataOld = []) {
192
+ return cache.writeQuery({ query: GET_ONE_BANNER_STORE, data: dataOld })
193
+ }
194
+ }
195
+ })
196
+ }
197
+ }).then(() => {
198
+ setPreviewImg(initialState)
199
+ })
200
+ }
201
+ const onTargetClickLogo = e => {
202
+ e.preventDefault()
203
+ fileInputRefLogo.current.click()
204
+ }
205
+ const onTargetClick = e => {
206
+ e.preventDefault()
207
+ fileInputRef.current.click()
208
+ }
209
+
210
+ return {
211
+ fileInputRefLogo,
212
+ src,
213
+ alt,
214
+ initialState,
215
+ srcLogo,
216
+ altLogo,
217
+ fileInputRef,
218
+ handleDeleteLogo,
219
+ setPreviewImgLogo,
220
+ setPreviewImg,
221
+ onTargetClick,
222
+ onTargetClickLogo,
223
+ HandleDeleteBanner,
224
+ handleInputChangeLogo,
225
+ handleUpdateBanner
226
+ }
227
+ }