npm-pkg-hook 1.3.9 → 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
@@ -1,39 +1,39 @@
1
1
  import React, {
2
- useEffect,
3
- useRef,
4
- useState
2
+ useEffect,
3
+ useRef,
4
+ useState
5
5
  } from 'react'
6
6
 
7
7
  export const useFetchMoreInteractions = ({
8
- render,
9
- fetchMore = true,
10
- callback = () => {}
8
+ render,
9
+ fetchMore = true,
10
+ callback = () => {}
11
11
  }) => {
12
- const loadingRef = useRef()
12
+ const loadingRef = useRef()
13
13
 
14
- const useOnScreen = ref => {
15
- const [isIntersecting, setIsIntersecting] = useState(false)
14
+ const useOnScreen = ref => {
15
+ const [isIntersecting, setIsIntersecting] = useState(false)
16
16
 
17
- const observer = new IntersectionObserver(
18
- ([entry]) => setIsIntersecting(entry.isIntersecting)
19
- )
17
+ const observer = new IntersectionObserver(
18
+ ([entry]) => {return setIsIntersecting(entry.isIntersecting)}
19
+ )
20
20
 
21
- useEffect(() => {
22
- if (ref.current) observer.observe(ref.current)
23
- // Remove the observer as soon as the component is unmounted
24
- return () => { observer.disconnect() }
25
- }, [ref, observer])
21
+ useEffect(() => {
22
+ if (ref.current) observer.observe(ref.current)
23
+ // Remove the observer as soon as the component is unmounted
24
+ return () => { observer.disconnect() }
25
+ }, [ref, observer])
26
26
 
27
- return isIntersecting
28
- }
27
+ return isIntersecting
28
+ }
29
29
 
30
- const isVisible = useOnScreen(loadingRef)
30
+ const isVisible = useOnScreen(loadingRef)
31
31
 
32
- useEffect(() => {
33
- if (isVisible && fetchMore) callback()
34
- }, [isVisible, callback, fetchMore])
32
+ useEffect(() => {
33
+ if (isVisible && fetchMore) callback()
34
+ }, [isVisible, callback, fetchMore])
35
35
 
36
- return <div ref={loadingRef}>
37
- {isVisible && fetchMore ? render || <div style={{ background: 'red' }} >Loading...{isVisible && 'lol'}</div> : <></>}
38
- </div>
36
+ return <div ref={loadingRef}>
37
+ {isVisible && fetchMore ? render || <div style={{ background: 'red' }} >Loading...{isVisible && 'lol'}</div> : <></>}
38
+ </div>
39
39
  }
@@ -0,0 +1,173 @@
1
+ // useFilterConfigs.ts
2
+ import { gql, useQuery } from '@apollo/client'
3
+
4
+ /**
5
+ * GraphQL query: expects the backend to return a JSON (or custom scalar) containing filterTabs
6
+ */
7
+ const GET_FILTER_CONFIGS = gql`
8
+ query GetFilterConfigs($idStore: String) {
9
+ filterConfigs(idStore: $idStore) {
10
+ id
11
+ idStore
12
+ filterTabs
13
+ active
14
+ priority
15
+ createdAt
16
+ updatedAt
17
+ }
18
+ }
19
+ `
20
+
21
+ /**
22
+ * Type definitions matching DB/json structure
23
+ */
24
+
25
+ /**
26
+ * @typedef {Object} FilterValue
27
+ * @property {string} [id]
28
+ * @property {string} description
29
+ * @property {number|string|null} [value]
30
+ * @property {string|null} [imageUrn]
31
+ */
32
+ export type FilterValue = {
33
+ id?: string
34
+ description: string
35
+ value?: number | string | null
36
+ imageUrn?: string | null
37
+ }
38
+
39
+ /**
40
+ * @typedef {Object} FilterGroup
41
+ * @property {string} id
42
+ * @property {string} description
43
+ * @property {string} displayType
44
+ * @property {FilterValue[]} values
45
+ */
46
+ export type FilterGroup = {
47
+ id: string
48
+ description: string
49
+ displayType: string
50
+ values: FilterValue[]
51
+ }
52
+
53
+ /**
54
+ * @typedef {Object} FilterTab
55
+ * @property {string} id
56
+ * @property {string} name
57
+ * @property {FilterGroup[]} filterGroups
58
+ */
59
+ export type FilterTab = {
60
+ id: string
61
+ name: string
62
+ filterGroups: FilterGroup[]
63
+ }
64
+
65
+ /**
66
+ * @typedef {Object} FilterConfigRecord
67
+ * @property {string} id
68
+ * @property {string|null} idStore
69
+ * @property {FilterTab[]} filterTabs
70
+ * @property {boolean} active
71
+ * @property {number} priority
72
+ */
73
+ export type FilterConfigRecord = {
74
+ id: string
75
+ idStore: string | null
76
+ filterTabs: FilterTab[]
77
+ active: boolean
78
+ priority: number
79
+ }
80
+
81
+ /**
82
+ * Runtime guard to ensure shape is roughly correct
83
+ * @param anyData any
84
+ * @returns boolean
85
+ */
86
+ const isFilterTabs = (anyData: any): any is FilterTab[] => {
87
+ if (!Array.isArray(anyData)) return false
88
+ for (const tab of anyData) {
89
+ if (typeof tab?.id !== 'string' || typeof tab?.name !== 'string') return false
90
+ if (!Array.isArray(tab.filterGroups)) return false
91
+ for (const g of tab.filterGroups) {
92
+ if (typeof g?.id !== 'string') return false
93
+ if (!Array.isArray(g.values)) return false
94
+ }
95
+ }
96
+ return true
97
+ }
98
+
99
+ /**
100
+ * Hook options
101
+ */
102
+ export type UseFilterConfigsOptions = {
103
+ idStore?: string | null
104
+ pollIntervalMs?: number
105
+ skip?: boolean
106
+ onError?: (err: Error) => void
107
+ }
108
+
109
+ /**
110
+ * Hook return
111
+ */
112
+ export type UseFilterConfigsResult = {
113
+ data: FilterTab[]
114
+ rawRecords: FilterConfigRecord[] | null
115
+ loading: boolean
116
+ error: Error | null
117
+ refetch: () => Promise<void>
118
+ }
119
+
120
+ /**
121
+ * Custom hook to fetch filter configs from GraphQL and expose typed, validated tabs.
122
+ * - Returns empty array when data is invalid (defensive).
123
+ * - Accepts idStore and poll interval as parameters for flexibility.
124
+ *
125
+ * @param {UseFilterConfigsOptions} options
126
+ * @returns {UseFilterConfigsResult}
127
+ */
128
+ export const useFilterConfigs = ({
129
+ skip = false,
130
+ onError
131
+ }: UseFilterConfigsOptions = {}): UseFilterConfigsResult => {
132
+ const { data, loading, error, refetch } = useQuery(
133
+ GET_FILTER_CONFIGS,
134
+ {
135
+ skip
136
+ }
137
+ )
138
+
139
+ if (error && onError) onError(error as Error)
140
+
141
+ const rawRecords =
142
+ Array.isArray((data as any)?.filterConfigs) ? (data as any).filterConfigs as FilterConfigRecord[] : null
143
+
144
+ let tabs: FilterTab[] = []
145
+
146
+ if (rawRecords && rawRecords.length > 0) {
147
+ // pick the active config with highest priority (lowest number)
148
+ const active = rawRecords
149
+ .filter(r => {return r.active !== false})
150
+ .sort((a, b) => {return (a.priority ?? 9999) - (b.priority ?? 9999)})[0]
151
+
152
+ const candidate = active ?? rawRecords[0]
153
+
154
+ if (candidate && isFilterTabs(candidate.filterTabs)) {
155
+ tabs = candidate.filterTabs
156
+ } else {
157
+ // defensive logging — don't throw to avoid crashing UI, return empty array
158
+
159
+ console.warn('useFilterConfigs: invalid filterTabs structure', candidate?.filterTabs)
160
+ tabs = []
161
+ }
162
+ }
163
+
164
+ return {
165
+ data: [{ 'id': 'BASIC', 'name': 'Básicos', 'filterGroups': [{ 'id': 'DELIVERY_MODE', 'description': 'Modo de entrega', 'displayType': 'WORD_CLOUD_SINGLE', 'values': [{ 'id': 'DELIVERY', 'description': 'Entrega' }, { 'id': 'TAKEOUT', 'description': 'Pra retirar' }] }, { 'id': 'SORTING', 'description': 'Ordenar por', 'displayType': 'GRID', 'values': [{ 'id': 'DEFAULT', 'description': 'Ordenação Padrão' }, { 'id': 'PRICE_RANGE:ASC', 'description': 'Preço' }, { 'id': 'USER_RATING:DESC', 'description': 'Avaliação' }, { 'id': 'DELIVERY_TIME:ASC', 'description': 'Tempo de Entrega' }, { 'id': 'DELIVERY_FEE:ASC', 'description': 'Taxa de Entrega' }, { 'id': 'DISTANCE:ASC', 'description': 'Menor distância' }] }, { 'id': 'DISTANCE', 'description': 'Distância', 'displayType': 'SLIDER', 'values': [{ 'id': 'MIN_VALUE', 'description': '1' }, { 'id': 'MAX_VALUE', 'description': '10' }] }, { 'id': 'DELIVERY_FEE', 'description': 'Taxa de entrega', 'displayType': 'WORD_CLOUD_SINGLE', 'values': [{ 'id': 'FREE', 'description': 'Grátis', 'value': 0 }, { 'id': 'MAX_FIVE', 'description': 'até R$ 5,00', 'value': 5 }, { 'id': 'MAX_TEN', 'description': 'até R$ 10,00', 'value': 10 }] }, { 'id': 'TAGS', 'description': 'Filtros especiais', 'displayType': 'CHECKBOX', 'values': [{ 'id': 'SUPER_RESTAURANT', 'imageUrn': 'SUPER_RESTAURANT.png', 'description': 'Super-Restaurantes' }, { 'id': 'SUPPORTS_ORDER_TRACKING', 'imageUrn': 'SUPPORTS_ORDER_TRACKING.png', 'description': 'Entrega Parceira' }, { 'id': 'SUPPORTS_ANY_TRACKING', 'imageUrn': 'SUPPORTS_ANY_TRACKING.png', 'description': 'Entrega Rastreável' }, { 'id': 'SUPPORTS_SCHEDULING', 'imageUrn': 'SUPPORTS_SCHEDULING.png', 'description': 'Aceita agendamento' }] }] }, { 'id': 'CATEGORY', 'name': 'Categorias', 'filterGroups': [{ 'id': 'MERCHANT_TYPE', 'description': 'Tipo de loja', 'displayType': 'GRID', 'values': [{ 'id': 'ALL', 'description': 'Todas as lojas' }, { 'id': 'RESTAURANT', 'description': 'Restaurante' }, { 'id': 'MARKET', 'description': 'Mercado' }] }, { 'id': 'AVAILABLE_CATEGORIES', 'description': 'Categorias', 'displayType': 'WORD_CLOUD', 'values': [{ 'description': 'Africana', 'id': 'AF1' }, { 'description': 'Alemã', 'id': 'ALE' }, { 'description': 'Árabe', 'id': 'ARA' }, { 'description': 'Argentina', 'id': 'AR1' }, { 'description': 'Asiática', 'id': 'ASI' }, { 'description': 'Açaí', 'id': 'AC1' }, { 'description': 'Baiana', 'id': 'BA1' }, { 'description': 'Bebidas', 'id': 'BEB' }, { 'description': 'Brasileira', 'id': 'BRA' }, { 'description': 'Cafeteria', 'id': 'CA1' }, { 'description': 'Carnes', 'id': 'CAR' }, { 'description': 'Casa de Sucos', 'id': 'CS1' }, { 'description': 'Chinesa', 'id': 'CHI' }, { 'description': 'Colombiana', 'id': 'CO1' }, { 'description': 'Congelados Fit', 'id': 'CF1' }, { 'description': 'Congelados', 'id': 'CN1' }, { 'description': 'Contemporânea', 'id': 'CNT' }, { 'description': 'Conveniência', 'id': 'CV1' }, { 'description': 'Coreana', 'id': 'CR1' }, { 'description': 'Cozinha rápida', 'id': 'CRP' }, { 'description': 'Crepe', 'id': 'CP1' }, { 'description': 'Doces & Bolos', 'id': 'DCE' }, { 'description': 'Espanhola', 'id': 'ES1' }, { 'description': 'Francesa', 'id': 'FRA' }, { 'description': 'Frangos', 'id': 'FR1' }, { 'description': 'Frutos do mar', 'id': 'FRU' }, { 'description': 'Gaúcha', 'id': 'GA1' }, { 'description': 'Grega', 'id': 'GRC' }, { 'description': 'Hambúrguer', 'id': 'BUR' }, { 'description': 'Indiana', 'id': 'IND' }, { 'description': 'Italiana', 'id': 'ITA' }, { 'description': 'Japonesa', 'id': 'JAP' }, { 'description': 'Lanches', 'id': 'LCH' }, { 'description': 'Marmita', 'id': 'MA1' }, { 'description': 'Marroquina', 'id': 'MAR' }, { 'description': 'Mediterrânea', 'id': 'MED' }, { 'description': 'Mercado 🛒', 'id': 'MER' }, { 'description': 'Mexicana', 'id': 'MEX' }, { 'description': 'Mineira', 'id': 'MI1' }, { 'description': 'Nordestina', 'id': 'NO1' }, { 'description': 'Padaria', 'id': 'PA1' }, { 'description': 'Panqueca', 'id': 'PQC' }, { 'description': 'Paranaense', 'id': 'PR1' }, { 'description': 'Pastel', 'id': 'PAS' }, { 'description': 'Peixes', 'id': 'PX1' }, { 'description': 'Peruana', 'id': 'PER' }, { 'description': 'Pizza', 'id': 'PIZ' }, { 'description': 'Portuguesa', 'id': 'POR' }, { 'description': 'Presentes', 'id': 'PRE' }, { 'description': 'Salgados', 'id': 'SAG' }, { 'description': 'Saudável', 'id': 'SAU' }, { 'description': 'Sopas & Caldos', 'id': 'SP1' }, { 'description': 'Sorvetes', 'id': 'SOR' }, { 'description': 'Tailandesa', 'id': 'THA' }, { 'description': 'Tapioca', 'id': 'TA1' }, { 'description': 'Típica do Norte', 'id': 'TN1' }, { 'description': 'Variada', 'id': 'VAR' }, { 'description': 'Vegana', 'id': 'VE1' }, { 'description': 'Vegetariana', 'id': 'VEG' }, { 'description': 'Xis', 'id': 'XI1' }, { 'description': 'Yakisoba', 'id': 'YA1' }] }] }, { 'id': 'PAYMENT', 'name': 'Pagamentos', 'filterGroups': [{ 'id': 'MEDIUM_PRICE', 'description': 'Preço médio', 'displayType': 'WORD_CLOUD_SINGLE', 'values': [{ 'id': 'CHEAPEST', 'description': '$' }, { 'id': 'CHEAP', 'description': '$$' }, { 'id': 'MODERATE', 'description': '$$$' }, { 'id': 'EXPENSIVE', 'description': '$$$$' }, { 'id': 'MOST_EXPENSIVE', 'description': '$$$$$' }] }, { 'id': 'ONLINE_PAYMENTS', 'description': 'Pagamento pelo app', 'displayType': 'WORD_CLOUD', 'values': [{ 'id': 'PIX', 'description': 'pix' }, { 'id': 'ELO', 'description': 'Elo' }, { 'id': 'MC', 'description': 'Mastercard' }, { 'id': 'MCMA', 'description': 'Mastercard Maestro' }, { 'id': 'VIS', 'description': 'Visa' }, { 'id': 'VISE', 'description': 'Visa Electron' }, { 'id': 'AM', 'description': 'Amex' }, { 'id': 'DNR', 'description': 'Diners' }] }, { 'id': 'ONLINE_PAYMENTS_VR', 'description': 'Vale-refeição/alimentação pelo app', 'displayType': 'WORD_CLOUD', 'values': [{ 'id': 'IMV', 'description': 'iFood Refeição' }, { 'id': 'VRO', 'description': 'VR Refeição' }, { 'id': 'SRP', 'description': 'Sodexo Refeição' }, { 'id': 'ALR', 'description': 'Alelo Refeição' }, { 'id': 'TRO', 'description': 'Ticket' }, { 'id': 'BENRON', 'description': 'Ben Refeição' }] }, { 'id': 'OFFLINE_PAYMENTS', 'description': 'Pagamento na entrega', 'displayType': 'WORD_CLOUD', 'values': [{ 'id': 'DIN', 'description': 'Dinheiro' }, { 'id': 'RSODEX', 'description': 'Sodexo' }, { 'id': 'VVREST', 'description': 'Vale Alelo Refeição' }, { 'id': 'VR_SMA', 'description': 'VR Refeição' }, { 'id': 'BENVVR', 'description': 'Ben Refeição' }, { 'id': 'TRE', 'description': 'Ticket' }, { 'id': 'RDREST', 'description': 'Mastercard - Crédito' }, { 'id': 'MEREST', 'description': 'Mastercard' }, { 'id': 'VSREST', 'description': 'Visa - Crédito' }, { 'id': 'VIREST', 'description': 'Visa' }, { 'id': 'REC', 'description': 'Elo - Crédito' }, { 'id': 'RED', 'description': 'Elo' }, { 'id': 'RHIP', 'description': 'Hipercard' }, { 'id': 'TVER', 'description': 'Verocard' }, { 'id': 'RAM', 'description': 'American Express' }, { 'id': 'CPRCAR', 'description': 'Cooper Card' }, { 'id': 'GRNCAR', 'description': 'Green Card' }, { 'id': 'GRNCPL', 'description': 'Green Card (papel)' }, { 'id': 'RSELE', 'description': 'Refeisul' }, { 'id': 'VALECA', 'description': 'Vale Card' }, { 'id': 'BANRC', 'description': 'Banricompras - Crédito' }, { 'id': 'BANRD', 'description': 'Banricompras' }, { 'id': 'DNREST', 'description': 'Diners' }, { 'id': 'GOODC', 'description': 'Goodcard' }, { 'id': 'VERDEC', 'description': 'Verdecard' }, { 'id': 'CHE', 'description': 'Cheque' }] }] }],
166
+ rawRecords,
167
+ loading,
168
+ error: error ? (error as Error) : null,
169
+ refetch: async () => {
170
+ await refetch()
171
+ }
172
+ }
173
+ }
@@ -1,5 +1,8 @@
1
- import md5 from 'md5'
1
+ // import md5 from 'md5'
2
2
 
3
+ /**
4
+ *
5
+ */
3
6
  async function getCPUInfo () {
4
7
  if (navigator.hardwareConcurrency) {
5
8
  try {
@@ -25,6 +28,9 @@ async function getCPUInfo () {
25
28
  }
26
29
  }
27
30
 
31
+ /**
32
+ *
33
+ */
28
34
  async function generateFingerprint () {
29
35
  const canvas = document.createElement('canvas')
30
36
  const audioContext = new (window.AudioContext || window.webkitAudioContext)()
@@ -50,7 +56,7 @@ async function generateFingerprint () {
50
56
  language,
51
57
  colorDepth,
52
58
  availableScreenHeight,
53
- plugins: Array.from(navigator.plugins).map(plugin => plugin.name).join(','),
59
+ plugins: Array.from(navigator.plugins).map(plugin => {return plugin.name}).join(','),
54
60
  timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
55
61
  hardwareConcurrency: cpuInfo.logicalCores || 'unknown',
56
62
  platformVersion: navigator.platformVersion || 'unknown'
@@ -68,12 +74,15 @@ async function generateFingerprint () {
68
74
  }
69
75
 
70
76
  const fingerprint = JSON.stringify(fingerprintData)
71
- const uniqueID = md5(fingerprint)
72
-
73
- return uniqueID
77
+ // const uniqueID = md5(fingerprint)
78
+ return fingerprint
74
79
  }
75
80
 
76
81
  // Función para generar huella digital del audio
82
+ /**
83
+ *
84
+ * @param audioContext
85
+ */
77
86
  async function generateAudioFingerprint (audioContext) {
78
87
  if (audioContext) {
79
88
  try {
@@ -95,6 +104,10 @@ async function generateAudioFingerprint (audioContext) {
95
104
  }
96
105
 
97
106
  // Función para generar huella digital del canvas
107
+ /**
108
+ *
109
+ * @param canvas
110
+ */
98
111
  async function generateCanvasFingerprint (canvas) {
99
112
  if (canvas) {
100
113
  try {
@@ -124,6 +137,9 @@ async function generateCanvasFingerprint (canvas) {
124
137
  return { width: 0, height: 0 }
125
138
  }
126
139
 
140
+ /**
141
+ *
142
+ */
127
143
  async function getWebGLInfo () {
128
144
  if ('WebGLRenderingContext' in window) {
129
145
  const canvas = document.createElement('canvas')
@@ -142,6 +158,9 @@ async function getWebGLInfo () {
142
158
  return 'webgl-info-not-supported'
143
159
  }
144
160
 
161
+ /**
162
+ *
163
+ */
145
164
  function getInstalledFonts () {
146
165
  const fonts = []
147
166
 
@@ -154,6 +173,9 @@ function getInstalledFonts () {
154
173
  return fonts.join(',')
155
174
  }
156
175
 
176
+ /**
177
+ *
178
+ */
157
179
  function getTouchscreenInfo () {
158
180
  if ('maxTouchPoints' in navigator) {
159
181
  const maxTouchPoints = navigator.maxTouchPoints
@@ -165,8 +187,11 @@ function getTouchscreenInfo () {
165
187
  return 'touchscreen-info-not-supported'
166
188
  }
167
189
 
190
+ /**
191
+ *
192
+ */
168
193
  export async function fingerprintJs () {
169
194
  const fingerprint = await generateFingerprint()
170
- const uniqueID = md5(fingerprint)
171
- return uniqueID
195
+ // const uniqueID = md5(fingerprint)
196
+ return fingerprint
172
197
  }
@@ -0,0 +1,143 @@
1
+ import {
2
+ useCallback,
3
+ useEffect,
4
+ useState
5
+ } from 'react'
6
+
7
+ import { validationSubmitHooks } from '../../utils'
8
+
9
+
10
+ interface UseFormToolsProps {
11
+ initialValues?: Record<string, any>;
12
+ sendNotification?: ({
13
+ title,
14
+ description,
15
+ backgroundColor
16
+ }: {
17
+ title?: string;
18
+ description?: string;
19
+ backgroundColor?: string;
20
+ }) => void;
21
+ }
22
+
23
+ /**
24
+ * @param root0
25
+ * @param root0.initialValues
26
+ * @param root0.sendNotification
27
+ * @version 0.0.1
28
+ * @description Hook con herramientas de validación y eventos de cambio
29
+ * @return {Array} devuelve la función onChange a ejecutar y el estado de error de cada input
30
+ */
31
+ export const useFormTools = ({
32
+ initialValues = {},
33
+ sendNotification = ({
34
+ title = '',
35
+ description = '',
36
+ backgroundColor = ''
37
+ }) => {
38
+ console.log({ title, description, backgroundColor })
39
+ }
40
+ }: UseFormToolsProps = {}) => {
41
+ const [dataForm, setDataForm] = useState<Record<string, any>>({ ...initialValues })
42
+ const [errorForm, setErrorForm] = useState<Record<string, boolean>>({})
43
+ const [errorSubmit, setErrorSubmit] = useState(false)
44
+ const [calledSubmit, setCalledSubmit] = useState(false)
45
+ // Handle Change
46
+ const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>, error: boolean) => {
47
+ setDataForm({ ...dataForm, [e.target.name]: e.target.value })
48
+ setErrorForm({ ...errorForm, [e.target.name]: error })
49
+ }, [setDataForm, dataForm, errorForm, setErrorForm])
50
+
51
+ // Forzar datos desde una ventana externa
52
+ const handleForcedData = useCallback((data: Record<string, any>) => {
53
+ setDataForm(data)
54
+ }, [setDataForm])
55
+
56
+ // Forzar datos de error desde una ventana externa
57
+ const setForcedError = useCallback((errors: Record<string, boolean>) => {
58
+ setErrorForm(errors)
59
+ }, [setErrorForm])
60
+
61
+ // Handle submit, al enviar formulario
62
+ const listErrors = Object.values(errorForm)
63
+ const errors = listErrors.find((error) => {
64
+ return error === true
65
+ })
66
+
67
+ const handleSubmit = ({
68
+ event,
69
+ msgError = '',
70
+ msgSuccess,
71
+ action = () => { return Promise.resolve() },
72
+ actionAfterSuccess = () => { }
73
+ }: {
74
+ event: React.FormEvent<HTMLFormElement>,
75
+ msgError?: string,
76
+ msgSuccess?: string,
77
+ action?: () => Promise<any>,
78
+ actionAfterSuccess?: () => void
79
+ }) => {
80
+ event.preventDefault()
81
+ setCalledSubmit(true)
82
+ let errSub = false
83
+
84
+ // Valida los errores locales
85
+ for (const x in errorForm) {
86
+ if (errorForm[x]) errSub = true
87
+ }
88
+ if (errSub) {
89
+ sendNotification({
90
+ description: 'Completa los campos requeridos',
91
+ title: 'Error',
92
+ backgroundColor: 'error'
93
+ })
94
+ }
95
+ if (errors) {
96
+ setErrorSubmit(true)
97
+ return setForcedError({ ...errorForm })
98
+ }
99
+
100
+ if (errSub) return setErrorSubmit(errSub)
101
+
102
+ // Valida los errores desde el evento
103
+ const errores = validationSubmitHooks(event.currentTarget.elements)
104
+ setErrorForm(errores)
105
+ for (const x in errores) {
106
+ // @ts-ignore
107
+ if (errores[x]) errSub = true
108
+ }
109
+ if (errSub) return setErrorSubmit(errSub)
110
+
111
+ // Ejecuta la accion si es válido
112
+ if (!errSub && typeof action === 'function') {
113
+ const result = action()
114
+ if (result && typeof result.then === 'function') {
115
+ result.then((res) => {
116
+ if (res) {
117
+ sendNotification({
118
+ title: msgSuccess ?? 'Operación exitosa',
119
+ description: 'Operación exitosa',
120
+ backgroundColor: 'success'
121
+ })
122
+ if (actionAfterSuccess) actionAfterSuccess()
123
+ }
124
+ }).catch((e) => {
125
+ sendNotification({
126
+ title: msgError || e?.message || 'Ha ocurrido un error',
127
+ backgroundColor: 'error'
128
+ })
129
+ })
130
+ }
131
+ }
132
+
133
+ setErrorSubmit(errSub)
134
+ }
135
+
136
+ useEffect(() => { return setCalledSubmit(false) }, [calledSubmit])
137
+ useEffect(() => {
138
+ return setCalledSubmit(false)
139
+ },
140
+ [])
141
+
142
+ return [handleChange, handleSubmit, handleForcedData, { dataForm, errorForm, errorSubmit, calledSubmit, setForcedError }]
143
+ }
@@ -0,0 +1,91 @@
1
+ interface UseFormatDateProps {
2
+ date?: string | number | Date;
3
+ local?: string;
4
+ }
5
+
6
+ export const useFormatDate = ({
7
+ date,
8
+ local = 'ES-CO'
9
+ }: UseFormatDateProps = {}) => {
10
+ const dateToFormat = new Date(date ?? Date.now())
11
+ const fullDate = dateToFormat.toLocaleDateString(local, { year: 'numeric', month: '2-digit', day: '2-digit' })
12
+ const day = fullDate.split('/')[0]
13
+ const month = fullDate.split('/')[1]
14
+ const year = fullDate.split('/')[2]
15
+ const yearMonthDay = dateToFormat.toLocaleDateString('ES-CO')
16
+ const numberDay = dateToFormat.getDay()
17
+ const shortDayName = dateToFormat.toLocaleDateString(local, { weekday: 'short' })
18
+ const longDayName = dateToFormat.toLocaleDateString(local, { weekday: 'long' })
19
+ const hourMinutes12 = dateToFormat.toLocaleTimeString('ES-CO', { hour: '2-digit', minute: '2-digit' })
20
+ const hourMinutes24 = dateToFormat.toLocaleTimeString('ES-CO', { hour: '2-digit', minute: '2-digit', hour12: false })
21
+ const handleHourPmAM = (hour: string) => {
22
+ const hourPmAm = new Date(`1/1/1999 ${hour}`).toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true })
23
+ return hour ? hourPmAm : ''
24
+ }
25
+ /**
26
+ * Formats a date into Colombian time zone and Spanish locale for POS display.
27
+ * Example output: "15 de mayo de 2025 a las 14:23"
28
+ *
29
+ * @param {string | number | Date} dateInput - Date to format (ISO string, timestamp or Date object)
30
+ * @returns {string} - Formatted date string in Colombian time
31
+ */
32
+ function formatDateInTimeZone (dateInput : string | number | Date): string {
33
+ const timeZone = 'America/Bogota'
34
+ const locale = 'es-CO'
35
+ const options: Intl.DateTimeFormatOptions = {
36
+ timeZone,
37
+ year: 'numeric',
38
+ month: 'long',
39
+ day: '2-digit',
40
+ hour: '2-digit',
41
+ minute: '2-digit',
42
+ hour12: false
43
+ }
44
+
45
+ const date = new Date(dateInput)
46
+ const formatted = new Intl.DateTimeFormat(locale, options).format(date)
47
+
48
+ // Cambiar coma por "a las" para mejor legibilidad
49
+ return formatted.replace(',', ' a las')
50
+ }
51
+ /**
52
+ * Formats a date into YYYY-MM-DD using a given IANA timezone.
53
+ *
54
+ * @param {string | number | Date} inputDate - The date to format.
55
+ * @param {string} timeZone - IANA timezone string (default is "America/Bogota").
56
+ * @returns {string} Formatted date string in YYYY-MM-DD.
57
+ * @throws {Error} If the input date is invalid.
58
+ */
59
+ const formatToLocalDateYMD = (inputDate: string | number | Date, timeZone = 'America/Bogota') => {
60
+ const date = new Date(inputDate)
61
+
62
+ if (isNaN(date.getTime())) {
63
+ throw new Error('Invalid date input provided to formatToLocalDateYMD')
64
+ }
65
+
66
+ const localDateStr = date.toLocaleString('en-US', { timeZone })
67
+ const localDate = new Date(localDateStr)
68
+
69
+ const year = localDate.getFullYear()
70
+ const month = String(localDate.getMonth() + 1).padStart(2, '0')
71
+ const day = String(localDate.getDate()).padStart(2, '0')
72
+
73
+ return `${year}-${month}-${day}`
74
+ }
75
+
76
+ return {
77
+ day,
78
+ fullDate,
79
+ formatToLocalDateYMD,
80
+ hourMinutes12,
81
+ numberDay,
82
+ yearMonthDay,
83
+ hourMinutes24,
84
+ longDayName,
85
+ shortDayName,
86
+ month,
87
+ year,
88
+ handleHourPmAM,
89
+ formatDateInTimeZone
90
+ }
91
+ }
@@ -1,5 +1,4 @@
1
1
  import React, { useState, useRef, useEffect } from 'react'
2
- import styled from 'styled-components'
3
2
 
4
3
  export const useFullscreenMode = () => {
5
4
  const [isFullscreen, setFullscreen] = useState(false)
@@ -56,10 +55,7 @@ export const useFullscreenMode = () => {
56
55
  }
57
56
 
58
57
  const ToggleIcon = (
59
- <Button onDoubleClick={() => { return (!isFullscreen ? goFullscreen() : exitFullScreen()) }}>{!isFullscreen ? 'FullScreen' : 'Normal'}</Button>
58
+ <button onDoubleClick={() => { return (!isFullscreen ? goFullscreen() : exitFullScreen()) }}>{!isFullscreen ? 'FullScreen' : 'Normal'}</button>
60
59
  )
61
60
  return [elementRef, ToggleIcon] // Icon, ref
62
61
  }
63
- const Button = styled.button`
64
-
65
- `
@@ -0,0 +1,13 @@
1
+ import { useQuery } from '@apollo/client'
2
+
3
+ import { GET_ALL_LOCATIONS } from './queries'
4
+
5
+ /**
6
+ * useGetAllLocationUser
7
+ * @returns {any}
8
+ */
9
+ export const useGetAllLocationUser = () => {
10
+ const { data, loading } = useQuery(GET_ALL_LOCATIONS)
11
+
12
+ return [data, { loading }]
13
+ }
@@ -0,0 +1,44 @@
1
+ import { gql } from '@apollo/client'
2
+
3
+ export const GET_ALL_LOCATIONS = gql`
4
+
5
+ query getUserLocations {
6
+ getUserLocations {
7
+ locationId
8
+ # id
9
+ cId
10
+ dId
11
+ ctId
12
+ uLatitud
13
+ uLongitude
14
+ uLocationKnow
15
+ uPiso
16
+ DatCre
17
+ DatMod
18
+ pais {
19
+ cId
20
+ cName
21
+ cCalCod
22
+ cState
23
+ cDatCre
24
+ cDatMod
25
+ }
26
+ city {
27
+ ctId
28
+ dId
29
+ cName
30
+ cState
31
+ cDatCre
32
+ cDatMod
33
+ }
34
+ department {
35
+ dId
36
+ cId
37
+ dName
38
+ dState
39
+ dDatCre
40
+ dDatMod
41
+ }
42
+ }
43
+ }
44
+ `
@@ -1,5 +1,6 @@
1
- import { useQuery } from '@apollo/client'
2
- import { GET_ALL_SALES_STATISTICS } from '../queries'
1
+ import { useQuery } from '@apollo/client'
2
+
3
+ import { GET_ALL_SALES_STATISTICS } from '../useSales/queries'
3
4
 
4
5
  export const useGetAllSales = ({
5
6
  fromDate = '',