@sentecacommerce-theme/lib 0.12.57 → 0.12.61

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 (88) hide show
  1. package/dist/cjs/api/myCartApi/index.js +2 -1
  2. package/dist/cjs/api/myCartApi/index.js.map +1 -1
  3. package/dist/cjs/basket/api/index.js +12 -0
  4. package/dist/cjs/basket/api/index.js.map +1 -0
  5. package/dist/cjs/basket/api/mutations/index.js +12 -0
  6. package/dist/cjs/basket/api/mutations/index.js.map +1 -0
  7. package/dist/cjs/basket/api/mutations/useReplaceBasketMutation.js +42 -0
  8. package/dist/cjs/basket/api/mutations/useReplaceBasketMutation.js.map +1 -0
  9. package/dist/cjs/basket/hooks/index.js +20 -0
  10. package/dist/cjs/basket/hooks/index.js.map +1 -0
  11. package/dist/cjs/basket/hooks/useBasketCrossSaleItems.js +57 -0
  12. package/dist/cjs/basket/hooks/useBasketCrossSaleItems.js.map +1 -0
  13. package/dist/cjs/basket/hooks/useReplaceBasket.js +8 -0
  14. package/dist/cjs/basket/hooks/useReplaceBasket.js.map +1 -0
  15. package/dist/cjs/basket/index.js +12 -0
  16. package/dist/cjs/basket/index.js.map +1 -0
  17. package/dist/cjs/index.js +132 -0
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/listing/api/queries/useAggregateQuery.js +15 -5
  20. package/dist/cjs/listing/api/queries/useAggregateQuery.js.map +1 -1
  21. package/dist/cjs/listing/hooks/useListingConfig.js +1 -1
  22. package/dist/cjs/listing/hooks/useListingConfig.js.map +1 -1
  23. package/dist/cjs/listing/hooks/useListingFilters.js +3 -2
  24. package/dist/cjs/listing/hooks/useListingFilters.js.map +1 -1
  25. package/dist/cjs/listing/types.js +9 -1
  26. package/dist/cjs/listing/types.js.map +1 -1
  27. package/dist/cjs/listing/utils/buildCategoryQuery.js +10 -4
  28. package/dist/cjs/listing/utils/buildCategoryQuery.js.map +1 -1
  29. package/dist/cjs/user/api/utils/getUserToken.js +19 -0
  30. package/dist/cjs/user/api/utils/getUserToken.js.map +1 -0
  31. package/dist/cjs/user/api/utils/index.js +8 -0
  32. package/dist/cjs/user/api/utils/index.js.map +1 -1
  33. package/dist/cjs/user/hooks/index.js +8 -0
  34. package/dist/cjs/user/hooks/index.js.map +1 -1
  35. package/dist/cjs/user/hooks/useGetUserToken.js +13 -0
  36. package/dist/cjs/user/hooks/useGetUserToken.js.map +1 -0
  37. package/dist/esm/api/myCartApi/index.js +2 -1
  38. package/dist/esm/api/myCartApi/index.js.map +1 -1
  39. package/dist/esm/basket/api/index.js +2 -0
  40. package/dist/esm/basket/api/index.js.map +1 -0
  41. package/dist/esm/basket/api/mutations/index.js +2 -0
  42. package/dist/esm/basket/api/mutations/index.js.map +1 -0
  43. package/dist/esm/basket/api/mutations/useReplaceBasketMutation.js +17 -0
  44. package/dist/esm/basket/api/mutations/useReplaceBasketMutation.js.map +1 -0
  45. package/dist/esm/basket/hooks/index.js +3 -0
  46. package/dist/esm/basket/hooks/index.js.map +1 -0
  47. package/dist/esm/basket/hooks/useBasketCrossSaleItems.js +25 -0
  48. package/dist/esm/basket/hooks/useBasketCrossSaleItems.js.map +1 -0
  49. package/dist/esm/basket/hooks/useReplaceBasket.js +3 -0
  50. package/dist/esm/basket/hooks/useReplaceBasket.js.map +1 -0
  51. package/dist/esm/basket/index.js +2 -0
  52. package/dist/esm/basket/index.js.map +1 -0
  53. package/dist/esm/index.js +5 -1
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/listing/api/queries/useAggregateQuery.js +11 -2
  56. package/dist/esm/listing/api/queries/useAggregateQuery.js.map +1 -1
  57. package/dist/esm/listing/hooks/useListingConfig.js +1 -1
  58. package/dist/esm/listing/hooks/useListingConfig.js.map +1 -1
  59. package/dist/esm/listing/hooks/useListingFilters.js +3 -2
  60. package/dist/esm/listing/hooks/useListingFilters.js.map +1 -1
  61. package/dist/esm/listing/types.js +7 -0
  62. package/dist/esm/listing/types.js.map +1 -1
  63. package/dist/esm/listing/utils/buildCategoryQuery.js +10 -4
  64. package/dist/esm/listing/utils/buildCategoryQuery.js.map +1 -1
  65. package/dist/esm/user/api/utils/getUserToken.js +8 -0
  66. package/dist/esm/user/api/utils/getUserToken.js.map +1 -0
  67. package/dist/esm/user/api/utils/index.js +1 -0
  68. package/dist/esm/user/api/utils/index.js.map +1 -1
  69. package/dist/esm/user/hooks/index.js +1 -0
  70. package/dist/esm/user/hooks/index.js.map +1 -1
  71. package/dist/esm/user/hooks/useGetUserToken.js +3 -0
  72. package/dist/esm/user/hooks/useGetUserToken.js.map +1 -0
  73. package/dist/types/api/myCartApi/index.d.ts +1 -0
  74. package/dist/types/basket/api/index.d.ts +1 -0
  75. package/dist/types/basket/api/mutations/index.d.ts +1 -0
  76. package/dist/types/basket/api/mutations/useReplaceBasketMutation.d.ts +2 -0
  77. package/dist/types/basket/hooks/index.d.ts +2 -0
  78. package/dist/types/basket/hooks/useBasketCrossSaleItems.d.ts +9 -0
  79. package/dist/types/basket/hooks/useReplaceBasket.d.ts +2 -0
  80. package/dist/types/basket/index.d.ts +1 -0
  81. package/dist/types/index.d.ts +3 -0
  82. package/dist/types/listing/api/queries/useAggregateQuery.d.ts +4 -3
  83. package/dist/types/listing/types.d.ts +5 -0
  84. package/dist/types/user/api/utils/getUserToken.d.ts +1 -0
  85. package/dist/types/user/api/utils/index.d.ts +1 -0
  86. package/dist/types/user/hooks/index.d.ts +1 -0
  87. package/dist/types/user/hooks/useGetUserToken.d.ts +1 -0
  88. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAIA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAIA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './dto'\n\n// API\n// export * from './api/myCart'\nexport * from './api/productsApi'\nexport * from './api/pagesApi'\nexport * from './api/usersApi'\nexport * from './api/profileApi'\nexport * from './api/wishlistApi'\nexport * from './api/addressesApi'\nexport * from './api/consentsApi'\nexport * from './api/catalogApi'\nexport * from './api/categoriesApi'\nexport * from './api/brandsApi'\nexport * from './api/viewsApi'\nexport * from './api/notificationsApi'\nexport * from './api/companiesApi'\nexport * from './api/vouchersApi'\nexport * from './api/myCartApi'\nexport * from './api/myShippingsSpeedyApi'\nexport * from './api/myOrdersApi'\nexport * from './api/myShippingsEcontApi'\nexport * from './api/myShippingsEvropatApi'\nexport * from './api/citiesApi'\nexport * from './api/searchHistoryApi'\n\nexport * from './api/walletApi'\nexport * from './api/myShippingsPickupFromStoreAPI'\n\nexport * from './api/myPaymentsBoricaApi'\n// Components\n\n// Contexts\nexport * from './contexts/Strings'\nexport * from './contexts/CheckoutForm'\nexport * from './contexts/CheckoutForm/utils'\nexport * from './contexts/CheckoutForm/Components/BoricaRedirect'\nexport * from './contexts/CustomProductProvider'\n\n// Components\nexport * from './components'\n\n// Hooks\nexport * from './hooks/useCarousel'\nexport * from './hooks/useZoom'\nexport * from './hooks/useProduct'\nexport * from './hooks/useCatalogResult'\nexport * from './hooks/useCopyToClipboard'\nexport * from './hooks/useVouchers'\nexport * from './hooks/usePromoCode'\nexport * from './hooks/useCheckoutDelivery'\nexport * from './hooks/useCheckoutPayment'\nexport * from './hooks/useCheckoutShippingAddress'\nexport * from './hooks/useCheckoutBillingAddress'\nexport * from './hooks/useCheckoutSubmit'\nexport * from './hooks/useCheckoutDiscountCode'\nexport * from './hooks/wishlist-hooks/useWishlist'\nexport * from './hooks/useCheckoutSummary'\nexport * from './hooks/usePrice'\nexport * from './hooks/wishlist-hooks'\nexport * from './hooks/labels'\nexport * from './hooks/checkout-hooks'\n\nexport * from './hooks/basket-hooks/useBasketTotalCount'\nexport * from './hooks/useIsBasketWithFixedShippingPrice'\nexport * from './hooks/useProductCarousel'\nexport * from './hooks/useSearchbar'\nexport * from './hooks/useSEOAggregateResult'\nexport * from './hooks/useCatalogPredicates'\nexport * from './hooks/useAggregateResult'\nexport * from './hooks/useSelectedFilters'\nexport * from './hooks/useAllSelectedFilters'\nexport * from './hooks/useClearAllFilters'\nexport * from './hooks/useCheckoutPickupFromStore'\nexport * from './hooks/useCheckoutShippingModule'\nexport * from './hooks/useLoyaltyProgram'\nexport * from './hooks/useCategoryTree'\nexport * from './hooks/useWallet'\nexport * from './hooks/useSizesReducer'\nexport * from './hooks/useAvailability'\n\nexport * from './hooks/cities-hooks'\n\nexport * from './hooks/useLineItem'\nexport * from './hooks/usePrefetchProduct'\nexport * from './hooks/ui-hooks'\nexport * from './hooks/order-hooks'\nexport * from './hooks/basket-hooks'\nexport * from './hooks/useAddressList'\n// export * from './hooks/third-party'\n\nexport * from './hooks/useConfig'\nexport * from './hooks/useShippingAddress'\nexport * from './hooks/useBillingAddress'\nexport * from './hooks/useContactForm'\n\nexport * from './hooks/user-hooks'\nexport * from './hooks/error-handling'\n\nexport * from './hooks/profile-hooks'\nexport * from './hooks/addresses-hooks'\nexport * from './hooks/companies-hooks'\nexport * from './hooks/subscriptions-hooks'\nexport * from './hooks/useRouterRedirect'\nexport * from './hooks/useProgressBar'\nexport * from './hooks/useCatalogDiscounts'\nexport * from './hooks/useLocalRating'\n\n// Utils\nexport * from './utils'\nexport * from './types'\n\n// SEO\nexport * from './seo'\n\n// Analytics\nexport * from './analytics/initiateCheckout'\nexport * from './analytics/viewContent'\n\nexport * from './analytics/Releva'\nexport * from './analytics/Pixel'\n\n// WebView\nexport * from './webview'\n\n// Carousel\nexport * from 'embla-carousel/react'\n\n// CMS\nexport * from './cms'\n\n// API v2\nexport * from './config'\nexport * from './api.v2/core'\n\nexport * from './api.v2/core/misc'\n\nexport * from './ssr/'\nexport * from './listing'\nexport * from './brands'\nexport * from './navigation'\nexport * from './GDPR'\n\n// User\nexport * from './user'\n\n// UI Components and hooks\nexport * from './ui'\n\nexport * from './wishlist'\n\n// Build Scripts\nexport * from './build'\n\n// Order\nexport * from './order'\n\n// Product\nexport * from './product'\n\n// Checkout\nexport * from './checkout'\n\n// PostCSS and related configuration\nexport * from './postcss'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAIA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAIA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["import Cookie from 'js-cookie'\nexport { Cookie }\n\nexport * from './dto'\n\n// API\n// export * from './api/myCart'\nexport * from './api/productsApi'\nexport * from './api/pagesApi'\nexport * from './api/usersApi'\nexport * from './api/profileApi'\nexport * from './api/wishlistApi'\nexport * from './api/addressesApi'\nexport * from './api/consentsApi'\nexport * from './api/catalogApi'\nexport * from './api/categoriesApi'\nexport * from './api/brandsApi'\nexport * from './api/viewsApi'\nexport * from './api/notificationsApi'\nexport * from './api/companiesApi'\nexport * from './api/vouchersApi'\nexport * from './api/myCartApi'\nexport * from './api/myShippingsSpeedyApi'\nexport * from './api/myOrdersApi'\nexport * from './api/myShippingsEcontApi'\nexport * from './api/myShippingsEvropatApi'\nexport * from './api/citiesApi'\nexport * from './api/searchHistoryApi'\n\nexport * from './api/walletApi'\nexport * from './api/myShippingsPickupFromStoreAPI'\n\nexport * from './api/myPaymentsBoricaApi'\n// Components\n\n// Contexts\nexport * from './contexts/Strings'\nexport * from './contexts/CheckoutForm'\nexport * from './contexts/CheckoutForm/utils'\nexport * from './contexts/CheckoutForm/Components/BoricaRedirect'\nexport * from './contexts/CustomProductProvider'\n\n// Components\nexport * from './components'\n\n// Hooks\nexport * from './hooks/useCarousel'\nexport * from './hooks/useZoom'\nexport * from './hooks/useProduct'\nexport * from './hooks/useCatalogResult'\nexport * from './hooks/useCopyToClipboard'\nexport * from './hooks/useVouchers'\nexport * from './hooks/usePromoCode'\nexport * from './hooks/useCheckoutDelivery'\nexport * from './hooks/useCheckoutPayment'\nexport * from './hooks/useCheckoutShippingAddress'\nexport * from './hooks/useCheckoutBillingAddress'\nexport * from './hooks/useCheckoutSubmit'\nexport * from './hooks/useCheckoutDiscountCode'\nexport * from './hooks/wishlist-hooks/useWishlist'\nexport * from './hooks/useCheckoutSummary'\nexport * from './hooks/usePrice'\nexport * from './hooks/wishlist-hooks'\nexport * from './hooks/labels'\nexport * from './hooks/checkout-hooks'\n\nexport * from './hooks/basket-hooks/useBasketTotalCount'\nexport * from './hooks/useIsBasketWithFixedShippingPrice'\nexport * from './hooks/useProductCarousel'\nexport * from './hooks/useSearchbar'\nexport * from './hooks/useSEOAggregateResult'\nexport * from './hooks/useCatalogPredicates'\nexport * from './hooks/useAggregateResult'\nexport * from './hooks/useSelectedFilters'\nexport * from './hooks/useAllSelectedFilters'\nexport * from './hooks/useClearAllFilters'\nexport * from './hooks/useCheckoutPickupFromStore'\nexport * from './hooks/useCheckoutShippingModule'\nexport * from './hooks/useLoyaltyProgram'\nexport * from './hooks/useCategoryTree'\nexport * from './hooks/useWallet'\nexport * from './hooks/useSizesReducer'\nexport * from './hooks/useAvailability'\n\nexport * from './hooks/cities-hooks'\n\nexport * from './hooks/useLineItem'\nexport * from './hooks/usePrefetchProduct'\nexport * from './hooks/ui-hooks'\nexport * from './hooks/order-hooks'\nexport * from './hooks/basket-hooks'\nexport * from './hooks/useAddressList'\n// export * from './hooks/third-party'\n\nexport * from './hooks/useConfig'\nexport * from './hooks/useShippingAddress'\nexport * from './hooks/useBillingAddress'\nexport * from './hooks/useContactForm'\n\nexport * from './hooks/user-hooks'\nexport * from './hooks/error-handling'\n\nexport * from './hooks/profile-hooks'\nexport * from './hooks/addresses-hooks'\nexport * from './hooks/companies-hooks'\nexport * from './hooks/subscriptions-hooks'\nexport * from './hooks/useRouterRedirect'\nexport * from './hooks/useProgressBar'\nexport * from './hooks/useCatalogDiscounts'\nexport * from './hooks/useLocalRating'\n\n// Utils\nexport * from './utils'\nexport * from './types'\n\n// SEO\nexport * from './seo'\n\n// Analytics\nexport * from './analytics/initiateCheckout'\nexport * from './analytics/viewContent'\n\nexport * from './analytics/Releva'\nexport * from './analytics/Pixel'\n\n// WebView\nexport * from './webview'\n\n// Carousel\nexport * from 'embla-carousel/react'\n\n// CMS\nexport * from './cms'\n\n// API v2\nexport * from './config'\nexport * from './api.v2/core'\n\nexport * from './api.v2/core/misc'\n\nexport * from './ssr/'\nexport * from './listing'\nexport * from './brands'\nexport * from './navigation'\nexport * from './GDPR'\n\n// User\nexport * from './user'\n\n// Basket\nexport * from './basket'\n\n// UI Components and hooks\nexport * from './ui'\n\nexport * from './wishlist'\n\n// Build Scripts\nexport * from './build'\n\n// Order\nexport * from './order'\n\n// Product\nexport * from './product'\n\n// Checkout\nexport * from './checkout'\n\n// PostCSS and related configuration\nexport * from './postcss'\n"],"file":"index.js"}
@@ -9,6 +9,8 @@ exports.useAggregateQuery = exports.AggregateRequestEnum = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
12
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
15
 
14
16
  var _reactQuery = require("react-query");
@@ -37,7 +39,7 @@ exports.AggregateRequestEnum = AggregateRequestEnum;
37
39
  AggregateRequestEnum["Categories"] = "categories";
38
40
  })(AggregateRequestEnum || (exports.AggregateRequestEnum = AggregateRequestEnum = {}));
39
41
 
40
- var useAggregateQuery = function useAggregateQuery(aggregates, request) {
42
+ var useAggregateQuery = function useAggregateQuery(aggregates, request, sort) {
41
43
  var router = (0, _router.useRouter)();
42
44
 
43
45
  var _usePredicate = (0, _usePredicate2.usePredicate)(),
@@ -75,14 +77,21 @@ var useAggregateQuery = function useAggregateQuery(aggregates, request) {
75
77
  slug: aliasedSlug,
76
78
  config: defaultConfig
77
79
  });
78
- _context.next = 5;
80
+
81
+ if (sort) {
82
+ query = (0, _extends2["default"])({}, query, {
83
+ attributeSortType: sort
84
+ });
85
+ }
86
+
87
+ _context.next = 6;
79
88
  return (0, _sdk.CatalogAggregate)(query);
80
89
 
81
- case 5:
90
+ case 6:
82
91
  response = _context.sent;
83
92
  return _context.abrupt("return", response);
84
93
 
85
- case 7:
94
+ case 8:
86
95
  case "end":
87
96
  return _context.stop();
88
97
  }
@@ -106,7 +115,8 @@ function prepareAggregateQuery(_ref2) {
106
115
  router = _ref2.router,
107
116
  postFilter = _ref2.postFilter,
108
117
  slug = _ref2.slug,
109
- config = _ref2.config;
118
+ config = _ref2.config,
119
+ attributeSortType = _ref2.attributeSortType;
110
120
  var pageType = (0, _utils.getListingPageType)(router, slug, config);
111
121
 
112
122
  switch (request) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/listing/api/queries/useAggregateQuery.ts"],"names":["AggregateRequestEnum","useAggregateQuery","aggregates","request","router","predicate","data","defaultConfig","postFilter","getPostFilters","aggregateKeys","generateAggregateKey","predicateId","_id","aliasedSlug","slug","queryKeys","toString","query","prepareAggregateQuery","config","response","refetchOnMount","refetchOnWindowFocus","enabled","isQueryEnabled","keepPreviousData","staleTime","pageType","Categories","Filters","map","aggregate","aggregationDefinition","join","Array","isArray","filter","ListingTypesEnum","Search","AttrPage"],"mappings":"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","sourcesContent":["import { useQuery } from 'react-query'\nimport {\n CatalogAggregate,\n RangeAggregationResult,\n TermAggregationResult,\n RangeAggregation,\n TermAggregation,\n StatAggregation,\n} from '@sentecacommerce/sdk'\nimport { NextRouter, useRouter } from 'next/router'\nimport { usePredicate, PredicateType } from './usePredicate'\nimport { useListingAlias } from '../../hooks'\nimport { ListingTypesEnum, Aggregate } from '../../types'\nimport {\n getListingPageType,\n buildCategoryQuery,\n buildFilterQuery,\n} from '../../utils'\nimport { canUseDOM } from '../../../utils'\nimport { useConfigState } from '../../../index'\n\nexport type AggregationResultType = RangeAggregationResult &\n TermAggregationResult &\n RangeAggregationResult\n\nexport type AggregateType = TermAggregation & StatAggregation & RangeAggregation\n\nexport enum AggregateRequestEnum {\n Filters = 'filters',\n Categories = 'categories',\n}\n\nexport const useAggregateQuery = (\n aggregates: Aggregate[],\n request: AggregateRequestEnum\n) => {\n const router = useRouter()\n const { data: predicate } = usePredicate()\n const defaultConfig = useConfigState()\n const postFilter = getPostFilters(router)\n const aggregateKeys = generateAggregateKey(aggregates)\n const predicateId = predicate?._id\n\n const { slug: aliasedSlug } = useListingAlias()\n\n const queryKeys = [request.toString(), aggregateKeys, aliasedSlug, postFilter]\n\n return useQuery(\n queryKeys,\n async () => {\n // prevents an error in the case where a value of undefined is passed before hydration\n if (!aggregates[0]) return\n\n const query = prepareAggregateQuery({\n request,\n aggregates,\n predicate,\n router,\n postFilter,\n slug: aliasedSlug,\n config: defaultConfig,\n })\n\n const response = await CatalogAggregate(query)\n\n return response\n },\n {\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n enabled: isQueryEnabled(router, aliasedSlug, predicateId, defaultConfig),\n keepPreviousData: true,\n staleTime: 30000,\n }\n )\n}\n\nexport function prepareAggregateQuery({\n request,\n predicate,\n aggregates,\n router,\n postFilter,\n slug,\n config,\n}: {\n request: AggregateRequestEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter: string | undefined\n predicate?: PredicateType\n config?: any\n slug: string\n}) {\n const pageType = getListingPageType(router, slug, config)\n\n switch (request) {\n case AggregateRequestEnum.Categories:\n return buildCategoryQuery({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n })\n case AggregateRequestEnum.Filters:\n return buildFilterQuery({\n predicate,\n slug,\n pageType,\n router,\n aggregates,\n config,\n postFilter,\n })\n }\n}\n\nexport function generateAggregateKey(aggregates?: Aggregate[]) {\n return aggregates\n ?.map((aggregate) => aggregate?.aggregationDefinition)\n ?.join('&')\n}\n\nfunction getPostFilters(router: NextRouter) {\n const { query } = router\n return query && Array.isArray(query.filter)\n ? query?.filter?.join('&')\n : (query?.filter as string)\n}\n\nfunction isQueryEnabled(\n router: NextRouter,\n slug: string,\n predicate?: string,\n config?: any\n) {\n const pageType = getListingPageType(router, slug, config)\n\n if (pageType === ListingTypesEnum.Search) {\n return canUseDOM()\n }\n if (pageType === ListingTypesEnum.AttrPage) {\n return !!canUseDOM()\n }\n\n return !!predicate && canUseDOM()\n}\n"],"file":"useAggregateQuery.js"}
1
+ {"version":3,"sources":["../../../../../src/listing/api/queries/useAggregateQuery.ts"],"names":["AggregateRequestEnum","useAggregateQuery","aggregates","request","sort","router","predicate","data","defaultConfig","postFilter","getPostFilters","aggregateKeys","generateAggregateKey","predicateId","_id","aliasedSlug","slug","queryKeys","toString","query","prepareAggregateQuery","config","attributeSortType","response","refetchOnMount","refetchOnWindowFocus","enabled","isQueryEnabled","keepPreviousData","staleTime","pageType","Categories","Filters","map","aggregate","aggregationDefinition","join","Array","isArray","filter","ListingTypesEnum","Search","AttrPage"],"mappings":"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","sourcesContent":["import { useQuery } from 'react-query'\nimport {\n CatalogAggregate,\n RangeAggregationResult,\n TermAggregationResult,\n RangeAggregation,\n TermAggregation,\n StatAggregation,\n} from '@sentecacommerce/sdk'\nimport { NextRouter, useRouter } from 'next/router'\nimport { usePredicate, PredicateType } from './usePredicate'\nimport { useListingAlias } from '../../hooks'\nimport { ListingTypesEnum, Aggregate, AggregateSortEnum } from '../../types'\nimport {\n getListingPageType,\n buildCategoryQuery,\n buildFilterQuery,\n} from '../../utils'\nimport { canUseDOM } from '../../../utils'\nimport { useConfigState } from '../../../index'\n\nexport type AggregationResultType = RangeAggregationResult &\n TermAggregationResult &\n RangeAggregationResult\n\nexport type AggregateType = TermAggregation & StatAggregation & RangeAggregation\n\nexport enum AggregateRequestEnum {\n Filters = 'filters',\n Categories = 'categories',\n}\n\nexport const useAggregateQuery = (\n aggregates: Aggregate[],\n request: AggregateRequestEnum,\n sort?: AggregateSortEnum\n) => {\n const router = useRouter()\n const { data: predicate } = usePredicate()\n const defaultConfig = useConfigState()\n const postFilter = getPostFilters(router)\n const aggregateKeys = generateAggregateKey(aggregates)\n const predicateId = predicate?._id\n\n const { slug: aliasedSlug } = useListingAlias()\n\n const queryKeys = [request.toString(), aggregateKeys, aliasedSlug, postFilter]\n\n return useQuery(\n queryKeys,\n async () => {\n // prevents an error in the case where a value of undefined is passed before hydration\n if (!aggregates[0]) return\n\n let query = prepareAggregateQuery({\n request,\n aggregates,\n predicate,\n router,\n postFilter,\n slug: aliasedSlug,\n config: defaultConfig,\n })\n\n if (sort) {\n query = {\n ...query,\n attributeSortType: sort,\n }\n }\n\n const response = await CatalogAggregate(query)\n\n return response\n },\n {\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n enabled: isQueryEnabled(router, aliasedSlug, predicateId, defaultConfig),\n keepPreviousData: true,\n staleTime: 30000,\n }\n )\n}\n\nexport function prepareAggregateQuery({\n request,\n predicate,\n aggregates,\n router,\n postFilter,\n slug,\n config,\n attributeSortType,\n}: {\n request: AggregateRequestEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter: string | undefined\n predicate?: PredicateType\n config?: any\n slug: string\n attributeSortType?: AggregateSortEnum\n}) {\n const pageType = getListingPageType(router, slug, config)\n\n switch (request) {\n case AggregateRequestEnum.Categories:\n return buildCategoryQuery({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n })\n case AggregateRequestEnum.Filters:\n return buildFilterQuery({\n predicate,\n slug,\n pageType,\n router,\n aggregates,\n config,\n postFilter,\n })\n }\n}\n\nexport function generateAggregateKey(aggregates?: Aggregate[]) {\n return aggregates\n ?.map((aggregate) => aggregate?.aggregationDefinition)\n ?.join('&')\n}\n\nfunction getPostFilters(router: NextRouter) {\n const { query } = router\n return query && Array.isArray(query.filter)\n ? query?.filter?.join('&')\n : (query?.filter as string)\n}\n\nfunction isQueryEnabled(\n router: NextRouter,\n slug: string,\n predicate?: string,\n config?: any\n) {\n const pageType = getListingPageType(router, slug, config)\n\n if (pageType === ListingTypesEnum.Search) {\n return canUseDOM()\n }\n if (pageType === ListingTypesEnum.AttrPage) {\n return !!canUseDOM()\n }\n\n return !!predicate && canUseDOM()\n}\n"],"file":"useAggregateQuery.js"}
@@ -36,7 +36,7 @@ function ListingPageProvider(_ref) {
36
36
  return (0, _extends2["default"])({}, config, {
37
37
  type: (0, _utils.getListingPageType)(router, slug, mainConfig)
38
38
  });
39
- }, [router.pathname, config.aggregates, config.categoryTreeConfig, config.defaultSortKey, config.productsPerPage, config.seoAggregates, config.sortOptions, config.filterExtension]);
39
+ }, [router.pathname, config.aggregates, config.categoryTreeConfig, config.defaultSortKey, config.productsPerPage, config.seoAggregates, config.sortOptions, config.filterExtension, config.attributeSortType]);
40
40
 
41
41
  return /*#__PURE__*/_react["default"].createElement(ListingPageContext.Provider, {
42
42
  value: data
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/listing/hooks/useListingConfig.tsx"],"names":["ListingPageContext","React","createContext","undefined","ListingPageProvider","config","children","router","slug","mainConfig","data","useMemo","type","pathname","aggregates","categoryTreeConfig","defaultSortKey","productsPerPage","seoAggregates","sortOptions","filterExtension","useListingConfig","context","useContext","Error"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AASA,IAAMA,kBAAkB,gBAAGC,kBAAMC,aAAN,CAEzBC,SAFyB,CAA3B;;AAIO,SAASC,mBAAT,OAGsB;AAAA,MAF3BC,MAE2B,QAF3BA,MAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,MAAM,GAAG,wBAAf;;AAD2B,yBAEV,6BAFU;AAAA,MAEnBC,IAFmB,oBAEnBA,IAFmB;;AAG3B,MAAMC,UAAU,GAAG,4BAAnB;;AAEA,MAAMC,IAAI,GAAGT,kBAAMU,OAAN,CAAc,YAA+B;AACxD,yCAAYN,MAAZ;AAAoBO,MAAAA,IAAI,EAAE,+BAAmBL,MAAnB,EAA2BC,IAA3B,EAAiCC,UAAjC;AAA1B;AACD,GAFY,EAEV,CACDF,MAAM,CAACM,QADN,EAEDR,MAAM,CAACS,UAFN,EAGDT,MAAM,CAACU,kBAHN,EAIDV,MAAM,CAACW,cAJN,EAKDX,MAAM,CAACY,eALN,EAMDZ,MAAM,CAACa,aANN,EAODb,MAAM,CAACc,WAPN,EAQDd,MAAM,CAACe,eARN,CAFU,CAAb;;AAaA,sBACE,gCAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEV;AAApC,kBACE,gCAAC,+CAAD,qBACE,gCAAC,yCAAD,QAAyBJ,QAAzB,CADF,CADF,CADF;AAOD;;AAEM,SAASe,gBAAT,GAA4B;AACjC,MAAMC,OAAO,GAAGrB,kBAAMsB,UAAN,CAAiBvB,kBAAjB,CAAhB;;AACA,MAAIsB,OAAO,KAAKnB,SAAhB,EAA2B;AACzB,UAAM,IAAIqB,KAAJ,CACJ,4DADI,CAAN;AAGD;;AAED,SAAOF,OAAP;AACD","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { ListingFiltersProvider } from './useListingFilters'\nimport { ListingCategoriesProvider } from './useListingCategories'\nimport { useListingAlias, useConfigState } from '../../index'\nimport { DefaultListingPageProps } from '../types'\nimport { getListingPageType } from '../utils'\n\ninterface ConfigProps extends Omit<DefaultListingPageProps, 'type'> {}\n\ntype ListingPageProviderProps = {\n children: React.ReactNode\n config: ConfigProps\n}\n\nconst ListingPageContext = React.createContext<\n DefaultListingPageProps | undefined\n>(undefined)\n\nexport function ListingPageProvider({\n config,\n children,\n}: ListingPageProviderProps) {\n const router = useRouter()\n const { slug } = useListingAlias()\n const mainConfig = useConfigState()\n\n const data = React.useMemo((): DefaultListingPageProps => {\n return { ...config, type: getListingPageType(router, slug, mainConfig) }\n }, [\n router.pathname,\n config.aggregates,\n config.categoryTreeConfig,\n config.defaultSortKey,\n config.productsPerPage,\n config.seoAggregates,\n config.sortOptions,\n config.filterExtension,\n ])\n\n return (\n <ListingPageContext.Provider value={data}>\n <ListingCategoriesProvider>\n <ListingFiltersProvider>{children}</ListingFiltersProvider>\n </ListingCategoriesProvider>\n </ListingPageContext.Provider>\n )\n}\n\nexport function useListingConfig() {\n const context = React.useContext(ListingPageContext)\n if (context === undefined) {\n throw new Error(\n 'useListingConfig must be used within a ListingPageProvider'\n )\n }\n\n return context\n}\n"],"file":"useListingConfig.js"}
1
+ {"version":3,"sources":["../../../../src/listing/hooks/useListingConfig.tsx"],"names":["ListingPageContext","React","createContext","undefined","ListingPageProvider","config","children","router","slug","mainConfig","data","useMemo","type","pathname","aggregates","categoryTreeConfig","defaultSortKey","productsPerPage","seoAggregates","sortOptions","filterExtension","attributeSortType","useListingConfig","context","useContext","Error"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AASA,IAAMA,kBAAkB,gBAAGC,kBAAMC,aAAN,CAEzBC,SAFyB,CAA3B;;AAIO,SAASC,mBAAT,OAGsB;AAAA,MAF3BC,MAE2B,QAF3BA,MAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,MAAM,GAAG,wBAAf;;AAD2B,yBAEV,6BAFU;AAAA,MAEnBC,IAFmB,oBAEnBA,IAFmB;;AAG3B,MAAMC,UAAU,GAAG,4BAAnB;;AAEA,MAAMC,IAAI,GAAGT,kBAAMU,OAAN,CAAc,YAA+B;AACxD,yCAAYN,MAAZ;AAAoBO,MAAAA,IAAI,EAAE,+BAAmBL,MAAnB,EAA2BC,IAA3B,EAAiCC,UAAjC;AAA1B;AACD,GAFY,EAEV,CACDF,MAAM,CAACM,QADN,EAEDR,MAAM,CAACS,UAFN,EAGDT,MAAM,CAACU,kBAHN,EAIDV,MAAM,CAACW,cAJN,EAKDX,MAAM,CAACY,eALN,EAMDZ,MAAM,CAACa,aANN,EAODb,MAAM,CAACc,WAPN,EAQDd,MAAM,CAACe,eARN,EASDf,MAAM,CAACgB,iBATN,CAFU,CAAb;;AAcA,sBACE,gCAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEX;AAApC,kBACE,gCAAC,+CAAD,qBACE,gCAAC,yCAAD,QAAyBJ,QAAzB,CADF,CADF,CADF;AAOD;;AAEM,SAASgB,gBAAT,GAA4B;AACjC,MAAMC,OAAO,GAAGtB,kBAAMuB,UAAN,CAAiBxB,kBAAjB,CAAhB;;AACA,MAAIuB,OAAO,KAAKpB,SAAhB,EAA2B;AACzB,UAAM,IAAIsB,KAAJ,CACJ,4DADI,CAAN;AAGD;;AAED,SAAOF,OAAP;AACD","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { ListingFiltersProvider } from './useListingFilters'\nimport { ListingCategoriesProvider } from './useListingCategories'\nimport { useListingAlias, useConfigState } from '../../index'\nimport { DefaultListingPageProps } from '../types'\nimport { getListingPageType } from '../utils'\n\ninterface ConfigProps extends Omit<DefaultListingPageProps, 'type'> {}\n\ntype ListingPageProviderProps = {\n children: React.ReactNode\n config: ConfigProps\n}\n\nconst ListingPageContext = React.createContext<\n DefaultListingPageProps | undefined\n>(undefined)\n\nexport function ListingPageProvider({\n config,\n children,\n}: ListingPageProviderProps) {\n const router = useRouter()\n const { slug } = useListingAlias()\n const mainConfig = useConfigState()\n\n const data = React.useMemo((): DefaultListingPageProps => {\n return { ...config, type: getListingPageType(router, slug, mainConfig) }\n }, [\n router.pathname,\n config.aggregates,\n config.categoryTreeConfig,\n config.defaultSortKey,\n config.productsPerPage,\n config.seoAggregates,\n config.sortOptions,\n config.filterExtension,\n config.attributeSortType,\n ])\n\n return (\n <ListingPageContext.Provider value={data}>\n <ListingCategoriesProvider>\n <ListingFiltersProvider>{children}</ListingFiltersProvider>\n </ListingCategoriesProvider>\n </ListingPageContext.Provider>\n )\n}\n\nexport function useListingConfig() {\n const context = React.useContext(ListingPageContext)\n if (context === undefined) {\n throw new Error(\n 'useListingConfig must be used within a ListingPageProvider'\n )\n }\n\n return context\n}\n"],"file":"useListingConfig.js"}
@@ -36,9 +36,10 @@ function ListingFiltersProvider(_ref) {
36
36
 
37
37
  var _useListingConfig = (0, _useListingConfig2.useListingConfig)(),
38
38
  aggregates = _useListingConfig.aggregates,
39
- pageType = _useListingConfig.type;
39
+ pageType = _useListingConfig.type,
40
+ attributeSortType = _useListingConfig.attributeSortType;
40
41
 
41
- var _useAggregateQuery = (0, _api.useAggregateQuery)(aggregates, _api.AggregateRequestEnum.Filters),
42
+ var _useAggregateQuery = (0, _api.useAggregateQuery)(aggregates, _api.AggregateRequestEnum.Filters, attributeSortType),
42
43
  aggData = _useAggregateQuery.data,
43
44
  isLoading = _useAggregateQuery.isLoading,
44
45
  isFetching = _useAggregateQuery.isFetching;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/listing/hooks/useListingFilters.tsx"],"names":["ListingFiltersStateContext","React","createContext","undefined","ListingFiltersProvider","children","aggregates","pageType","type","AggregateRequestEnum","Filters","aggData","data","isLoading","isFetching","config","router","slug","useMemo","result","sort","a","b","order","map","currentAggregate","aggregationType","toString","term","aggregationDefinition","split","filter","filterDefinition","current","find","agg","name","generatedFilters","generateFilters","rawFilters","selectedCount","reduce","count","res","selected","attributeResult","label","component","items","raw","clearAll","push","pathname","query","filterByType","clearAllFilters","selectedFilters","useListingFilters","context","useContext","Error","results","currentTerm","filterKey","mapKey","isFilterSelected","filtersOperatorsMap","meta","onClick","createAggregateQuery","aggType","aggKey","aggOperator","Boolean","areFiltersArray","Array","isArray","sel","includes","ranges","stats","terms","r","keysMap","key","from","to","manageFilter","pair","remove","stripped","generateQueryString","activeFilters","extractFilter","str","aggPair","operator","val","filterType","filterVal","filterOperator","Object","keys","forEach","el","applied","remaining","x","length","join","idx","ListingTypesEnum","Search","q","search","cat","typeToSuffix","filters","filterName"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { NextRouter } from 'next/router'\nimport { useListingConfig } from './useListingConfig'\nimport {\n useAggregateQuery,\n AggregateRequestEnum,\n AggregateType,\n AggregationResultType,\n} from '../api'\n\nimport { Aggregate, ListingTypesEnum } from '../types'\nimport { useListingSlug } from './useListingSlug'\n\nimport { stripQueryProps } from '../../utils/generateQueryFromRouter'\nimport { typeToSuffix } from '../../utils/typeToSuffix'\nimport { generateQueryStringFromQuery } from '../../utils/generateQueryStringFromQuery'\nimport {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\nimport { getSelectedFilters } from '../../utils'\nimport { useConfigState } from '../../index'\nimport { FiltersQuery } from '../index'\n\nexport type {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\n\ntype AggPair = {\n aggType: string\n aggKey: string\n aggOperator: string\n}\n\nexport type ListingAggregationResultType = {\n selected: boolean\n data: AggregationResultType\n meta: any\n aggregationType?: string\n onClick: () => void\n}\n\nexport type ListingAggregateType = {\n name: string\n component: string\n type: string\n selectedCount: number\n items: ListingAggregationResultType[]\n clearAll: () => void\n raw: StatAggregation | RangeAggregation | TermAggregation\n}\n\nexport type UseListingFiltersResult = {\n data?: ListingAggregateType[]\n clearAllFilters: () => void\n selectedFilters: ListingAggregationResultType[]\n isLoading: boolean\n isFetching: boolean\n}\n\nconst ListingFiltersStateContext = React.createContext<\n UseListingFiltersResult | undefined\n>(undefined)\n\nexport function ListingFiltersProvider({\n children,\n}: {\n children: React.ReactNode\n}) {\n const { aggregates, type: pageType } = useListingConfig()\n\n const { data: aggData, isLoading, isFetching } = useAggregateQuery(\n aggregates as Aggregate[],\n AggregateRequestEnum.Filters\n )\n\n const config = useConfigState()\n const router = useRouter()\n const slug = useListingSlug()\n\n const data = React.useMemo(() => {\n if (!isLoading && aggData) {\n const result = aggregates\n ?.sort((a, b) => a.order - b.order)\n .map((currentAggregate) => {\n const type = currentAggregate.aggregationType.toString()\n const term = currentAggregate.aggregationDefinition.split(':')[0]\n const filter = currentAggregate.filterDefinition\n const current: AggregateType = aggData[type].find(\n (agg: AggregateType) => agg.name === term\n )\n\n const generatedFilters = generateFilters({\n rawFilters: current,\n filter,\n router,\n type,\n slug,\n pageType,\n })\n\n const selectedCount = generatedFilters?.reduce((count, res) => {\n if (res.selected) count++\n return count\n }, 0)\n\n const attributeResult = ({\n name: currentAggregate.label,\n component: currentAggregate.component,\n items: generatedFilters,\n selectedCount,\n raw: current,\n clearAll: () =>\n router.push({\n pathname: router.pathname,\n query: {\n ...router.query,\n filter: filterByType(router.query.filter, filter),\n },\n }),\n type: type,\n } as unknown) as ListingAggregateType\n\n return attributeResult\n })\n\n return result\n }\n return undefined\n }, [aggData, router])\n\n const clearAllFilters = () => {\n const query = { ...router.query }\n delete query.filter\n\n router.push({\n pathname: router.pathname,\n query,\n })\n }\n\n const selectedFilters = React.useMemo(() => {\n return getSelectedFilters(router, slug, data as any, config) as any\n }, [router, data])\n\n return (\n <ListingFiltersStateContext.Provider\n value={{ data, clearAllFilters, selectedFilters, isLoading, isFetching }}\n >\n {children}\n </ListingFiltersStateContext.Provider>\n )\n}\n\nexport function useListingFilters() {\n const context = React.useContext(ListingFiltersStateContext)\n if (context === undefined) {\n throw new Error(\n 'useListingFilters must be used within a ListingFiltersProvider'\n )\n }\n return context\n}\n\nfunction generateFilters({\n rawFilters,\n type,\n filter,\n slug,\n router,\n pageType,\n}: {\n rawFilters: AggregateType\n type: string\n filter: string\n slug: string\n router: NextRouter\n pageType: ListingTypesEnum\n}) {\n return rawFilters.results\n ?.filter((res) => res.count > 0)\n ?.map((currentTerm) => {\n const filterKey = mapKey(currentTerm, type)\n\n const selected = isFilterSelected(\n router,\n filter,\n filterKey,\n filtersOperatorsMap[type]\n )\n\n return {\n data: currentTerm,\n selected,\n meta: currentTerm.meta,\n onClick: () => {\n router.push(\n createAggregateQuery(\n pageType,\n slug,\n {\n aggType: filter,\n aggKey: filterKey,\n aggOperator: filtersOperatorsMap[type],\n },\n Boolean(selected),\n router\n )\n )\n },\n }\n })\n}\n\nconst isFilterSelected = (\n router: NextRouter,\n filter: string,\n filterKey: any,\n type: string\n) => {\n const areFiltersArray = Array.isArray(router.query?.filter)\n\n return areFiltersArray\n ? !!(router.query.filter as string[])\n ?.find((sel: string) => sel.includes(`${filter};${type}`))\n ?.includes(filterKey)\n : router.query.filter?.includes(`${filter};${type}`) &&\n router.query.filter?.includes(filterKey)\n}\n\nexport const filtersOperatorsMap = {\n ranges: 'range',\n stats: 'range',\n terms: 'in',\n}\n\nfunction mapKey(r: any, type: any) {\n const keysMap = {\n terms: `\"${r.key}\"`,\n ranges: `${r.from},${r.to}`,\n }\n if (!keysMap[type]) return r.key\n\n return keysMap[type]\n}\n\nfunction manageFilter(pair: AggPair, query: any, remove: boolean) {\n const stripped = stripQueryProps(query, ['page']) // reset pagination on filter\n\n const result = generateQueryString(stripped, pair, remove)\n return result\n}\n\nconst generateQueryString = (\n query: FiltersQuery,\n pair: AggPair,\n remove?: boolean\n) => {\n const activeFilters = {}\n\n const extractFilter = ({\n str = '',\n aggPair,\n }: {\n str: string\n aggPair?: AggPair\n }) => {\n const [type, operator, val] = str.split(';')\n\n const filterType = aggPair?.aggType ?? type\n const filterVal = aggPair?.aggKey ?? val\n const filterOperator = aggPair?.aggOperator ?? operator\n\n if (activeFilters[filterType]) {\n activeFilters[filterType] += `,${filterVal}`\n } else {\n activeFilters[\n filterType\n ] = `filter=${filterType};${filterOperator};${filterVal}`\n }\n }\n\n Object.keys(query).forEach((el) => {\n if (Array.isArray(query[el])) {\n query[el].forEach((filter: string) => {\n extractFilter({ str: filter })\n })\n } else {\n if (el === 'sort') {\n activeFilters[el] = `sort=${query[el]}`\n } else {\n extractFilter({ str: query[el] })\n }\n }\n })\n\n if (remove) {\n const applied = activeFilters[pair.aggType].split(';')[2].split(',')\n\n const remaining = applied.filter((x: string) => !pair.aggKey.includes(x))\n\n if (remaining.length === 0) {\n activeFilters[pair.aggType] = ``\n } else {\n activeFilters[pair.aggType] = `filter=${pair.aggType};${\n pair.aggOperator\n };${remaining.join(',')}`\n }\n } else {\n extractFilter({ str: '', aggPair: pair })\n }\n\n if (Object.keys(activeFilters).length === 0) return ``\n\n return Object.keys(activeFilters).reduce((res, val, idx) => {\n res += `${idx > 0 ? '&' : ''}${activeFilters[val]}`\n return res\n }, ``)\n}\n\nfunction createAggregateQuery(\n type: ListingTypesEnum,\n slug: string,\n aggPair: AggPair,\n remove: boolean,\n router: NextRouter\n) {\n if (type === ListingTypesEnum.Search) {\n return router.query.q\n ? `/search?q=${router.query.q}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n : `/${slug}/c?search=${router.query.search}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n }\n\n if (router.query.cat) {\n return `/${router.query.slug}/${router.query.cat}/${\n typeToSuffix[type]\n }?${manageFilter(aggPair, router.query, remove)}`\n }\n\n return `/${slug}/${typeToSuffix[type]}?${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n}\n\nfunction filterByType(\n filters: string | string[] | undefined,\n filterName: string\n) {\n if (!filters) return\n\n if (typeof filters === 'string') {\n if (filters.includes(filterName)) return\n\n return filters\n }\n\n return filters.filter((filter) => !filter.includes(filterName))\n}\n"],"file":"useListingFilters.js"}
1
+ {"version":3,"sources":["../../../../src/listing/hooks/useListingFilters.tsx"],"names":["ListingFiltersStateContext","React","createContext","undefined","ListingFiltersProvider","children","aggregates","pageType","type","attributeSortType","AggregateRequestEnum","Filters","aggData","data","isLoading","isFetching","config","router","slug","useMemo","result","sort","a","b","order","map","currentAggregate","aggregationType","toString","term","aggregationDefinition","split","filter","filterDefinition","current","find","agg","name","generatedFilters","generateFilters","rawFilters","selectedCount","reduce","count","res","selected","attributeResult","label","component","items","raw","clearAll","push","pathname","query","filterByType","clearAllFilters","selectedFilters","useListingFilters","context","useContext","Error","results","currentTerm","filterKey","mapKey","isFilterSelected","filtersOperatorsMap","meta","onClick","createAggregateQuery","aggType","aggKey","aggOperator","Boolean","areFiltersArray","Array","isArray","sel","includes","ranges","stats","terms","r","keysMap","key","from","to","manageFilter","pair","remove","stripped","generateQueryString","activeFilters","extractFilter","str","aggPair","operator","val","filterType","filterVal","filterOperator","Object","keys","forEach","el","applied","remaining","x","length","join","idx","ListingTypesEnum","Search","q","search","cat","typeToSuffix","filters","filterName"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { NextRouter } from 'next/router'\nimport { useListingConfig } from './useListingConfig'\nimport {\n useAggregateQuery,\n AggregateRequestEnum,\n AggregateType,\n AggregationResultType,\n} from '../api'\n\nimport { Aggregate, ListingTypesEnum } from '../types'\nimport { useListingSlug } from './useListingSlug'\n\nimport { stripQueryProps } from '../../utils/generateQueryFromRouter'\nimport { typeToSuffix } from '../../utils/typeToSuffix'\nimport { generateQueryStringFromQuery } from '../../utils/generateQueryStringFromQuery'\nimport {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\nimport { getSelectedFilters } from '../../utils'\nimport { useConfigState } from '../../index'\nimport { FiltersQuery } from '../index'\n\nexport type {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\n\ntype AggPair = {\n aggType: string\n aggKey: string\n aggOperator: string\n}\n\nexport type ListingAggregationResultType = {\n selected: boolean\n data: AggregationResultType\n meta: any\n aggregationType?: string\n onClick: () => void\n}\n\nexport type ListingAggregateType = {\n name: string\n component: string\n type: string\n selectedCount: number\n items: ListingAggregationResultType[]\n clearAll: () => void\n raw: StatAggregation | RangeAggregation | TermAggregation\n}\n\nexport type UseListingFiltersResult = {\n data?: ListingAggregateType[]\n clearAllFilters: () => void\n selectedFilters: ListingAggregationResultType[]\n isLoading: boolean\n isFetching: boolean\n}\n\nconst ListingFiltersStateContext = React.createContext<\n UseListingFiltersResult | undefined\n>(undefined)\n\nexport function ListingFiltersProvider({\n children,\n}: {\n children: React.ReactNode\n}) {\n const { aggregates, type: pageType, attributeSortType } = useListingConfig()\n\n const { data: aggData, isLoading, isFetching } = useAggregateQuery(\n aggregates as Aggregate[],\n AggregateRequestEnum.Filters,\n attributeSortType\n )\n\n const config = useConfigState()\n const router = useRouter()\n const slug = useListingSlug()\n\n const data = React.useMemo(() => {\n if (!isLoading && aggData) {\n const result = aggregates\n ?.sort((a, b) => a.order - b.order)\n .map((currentAggregate) => {\n const type = currentAggregate.aggregationType.toString()\n const term = currentAggregate.aggregationDefinition.split(':')[0]\n const filter = currentAggregate.filterDefinition\n const current: AggregateType = aggData[type].find(\n (agg: AggregateType) => agg.name === term\n )\n\n const generatedFilters = generateFilters({\n rawFilters: current,\n filter,\n router,\n type,\n slug,\n pageType,\n })\n\n const selectedCount = generatedFilters?.reduce((count, res) => {\n if (res.selected) count++\n return count\n }, 0)\n\n const attributeResult = ({\n name: currentAggregate.label,\n component: currentAggregate.component,\n items: generatedFilters,\n selectedCount,\n raw: current,\n clearAll: () =>\n router.push({\n pathname: router.pathname,\n query: {\n ...router.query,\n filter: filterByType(router.query.filter, filter),\n },\n }),\n type: type,\n } as unknown) as ListingAggregateType\n\n return attributeResult\n })\n\n return result\n }\n return undefined\n }, [aggData, router])\n\n const clearAllFilters = () => {\n const query = { ...router.query }\n delete query.filter\n\n router.push({\n pathname: router.pathname,\n query,\n })\n }\n\n const selectedFilters = React.useMemo(() => {\n return getSelectedFilters(router, slug, data as any, config) as any\n }, [router, data])\n\n return (\n <ListingFiltersStateContext.Provider\n value={{ data, clearAllFilters, selectedFilters, isLoading, isFetching }}\n >\n {children}\n </ListingFiltersStateContext.Provider>\n )\n}\n\nexport function useListingFilters() {\n const context = React.useContext(ListingFiltersStateContext)\n if (context === undefined) {\n throw new Error(\n 'useListingFilters must be used within a ListingFiltersProvider'\n )\n }\n return context\n}\n\nfunction generateFilters({\n rawFilters,\n type,\n filter,\n slug,\n router,\n pageType,\n}: {\n rawFilters: AggregateType\n type: string\n filter: string\n slug: string\n router: NextRouter\n pageType: ListingTypesEnum\n}) {\n return rawFilters.results\n ?.filter((res) => res.count > 0)\n ?.map((currentTerm) => {\n const filterKey = mapKey(currentTerm, type)\n\n const selected = isFilterSelected(\n router,\n filter,\n filterKey,\n filtersOperatorsMap[type]\n )\n\n return {\n data: currentTerm,\n selected,\n meta: currentTerm.meta,\n onClick: () => {\n router.push(\n createAggregateQuery(\n pageType,\n slug,\n {\n aggType: filter,\n aggKey: filterKey,\n aggOperator: filtersOperatorsMap[type],\n },\n Boolean(selected),\n router\n )\n )\n },\n }\n })\n}\n\nconst isFilterSelected = (\n router: NextRouter,\n filter: string,\n filterKey: any,\n type: string\n) => {\n const areFiltersArray = Array.isArray(router.query?.filter)\n\n return areFiltersArray\n ? !!(router.query.filter as string[])\n ?.find((sel: string) => sel.includes(`${filter};${type}`))\n ?.includes(filterKey)\n : router.query.filter?.includes(`${filter};${type}`) &&\n router.query.filter?.includes(filterKey)\n}\n\nexport const filtersOperatorsMap = {\n ranges: 'range',\n stats: 'range',\n terms: 'in',\n}\n\nfunction mapKey(r: any, type: any) {\n const keysMap = {\n terms: `\"${r.key}\"`,\n ranges: `${r.from},${r.to}`,\n }\n if (!keysMap[type]) return r.key\n\n return keysMap[type]\n}\n\nfunction manageFilter(pair: AggPair, query: any, remove: boolean) {\n const stripped = stripQueryProps(query, ['page']) // reset pagination on filter\n\n const result = generateQueryString(stripped, pair, remove)\n return result\n}\n\nconst generateQueryString = (\n query: FiltersQuery,\n pair: AggPair,\n remove?: boolean\n) => {\n const activeFilters = {}\n\n const extractFilter = ({\n str = '',\n aggPair,\n }: {\n str: string\n aggPair?: AggPair\n }) => {\n const [type, operator, val] = str.split(';')\n\n const filterType = aggPair?.aggType ?? type\n const filterVal = aggPair?.aggKey ?? val\n const filterOperator = aggPair?.aggOperator ?? operator\n\n if (activeFilters[filterType]) {\n activeFilters[filterType] += `,${filterVal}`\n } else {\n activeFilters[\n filterType\n ] = `filter=${filterType};${filterOperator};${filterVal}`\n }\n }\n\n Object.keys(query).forEach((el) => {\n if (Array.isArray(query[el])) {\n query[el].forEach((filter: string) => {\n extractFilter({ str: filter })\n })\n } else {\n if (el === 'sort') {\n activeFilters[el] = `sort=${query[el]}`\n } else {\n extractFilter({ str: query[el] })\n }\n }\n })\n\n if (remove) {\n const applied = activeFilters[pair.aggType].split(';')[2].split(',')\n\n const remaining = applied.filter((x: string) => !pair.aggKey.includes(x))\n\n if (remaining.length === 0) {\n activeFilters[pair.aggType] = ``\n } else {\n activeFilters[pair.aggType] = `filter=${pair.aggType};${\n pair.aggOperator\n };${remaining.join(',')}`\n }\n } else {\n extractFilter({ str: '', aggPair: pair })\n }\n\n if (Object.keys(activeFilters).length === 0) return ``\n\n return Object.keys(activeFilters).reduce((res, val, idx) => {\n res += `${idx > 0 ? '&' : ''}${activeFilters[val]}`\n return res\n }, ``)\n}\n\nfunction createAggregateQuery(\n type: ListingTypesEnum,\n slug: string,\n aggPair: AggPair,\n remove: boolean,\n router: NextRouter\n) {\n if (type === ListingTypesEnum.Search) {\n return router.query.q\n ? `/search?q=${router.query.q}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n : `/${slug}/c?search=${router.query.search}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n }\n\n if (router.query.cat) {\n return `/${router.query.slug}/${router.query.cat}/${\n typeToSuffix[type]\n }?${manageFilter(aggPair, router.query, remove)}`\n }\n\n return `/${slug}/${typeToSuffix[type]}?${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n}\n\nfunction filterByType(\n filters: string | string[] | undefined,\n filterName: string\n) {\n if (!filters) return\n\n if (typeof filters === 'string') {\n if (filters.includes(filterName)) return\n\n return filters\n }\n\n return filters.filter((filter) => !filter.includes(filterName))\n}\n"],"file":"useListingFilters.js"}
@@ -1,7 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.ComponentTypeEnum = exports.AggregationTypeEnum = exports.GenderNamesEnum = exports.ListingTypesEnum = void 0;
4
+ exports.ComponentTypeEnum = exports.AggregationTypeEnum = exports.GenderNamesEnum = exports.ListingTypesEnum = exports.AggregateSortEnum = void 0;
5
+ var AggregateSortEnum;
6
+ exports.AggregateSortEnum = AggregateSortEnum;
7
+
8
+ (function (AggregateSortEnum) {
9
+ AggregateSortEnum["Index"] = "index";
10
+ AggregateSortEnum["Alphabetically"] = "alphabetically";
11
+ })(AggregateSortEnum || (exports.AggregateSortEnum = AggregateSortEnum = {}));
12
+
5
13
  var ListingTypesEnum;
6
14
  exports.ListingTypesEnum = ListingTypesEnum;
7
15
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/listing/types.ts"],"names":["ListingTypesEnum","GenderNamesEnum","AggregationTypeEnum","ComponentTypeEnum"],"mappings":";;;;IAwBYA,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IASAC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;IAMAC,mB;;;WAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;GAAAA,mB,mCAAAA,mB;;IAMAC,iB;;;WAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;GAAAA,iB,iCAAAA,iB","sourcesContent":["import {\n BooleanField,\n TextField,\n NumberField,\n} from '@sentecacommerce-theme/base'\n\nexport type FiltersQuery = {\n storeKey?: string\n currencyCode?: string\n languageCode?: string\n priceListKey?: string\n time?: number\n merchantKey?: string\n expand?: string\n project?: string\n filter?: string\n fuzzy?: boolean\n fuzzyLevel?: string\n count?: boolean\n limit?: number\n offset?: number\n sort?: string\n}\n\nexport enum ListingTypesEnum {\n Category = 'category',\n Brand = 'brand',\n View = 'view',\n Search = 'text',\n Collection = 'collection',\n AttrPage = 'attribute page',\n}\n\nexport enum GenderNamesEnum {\n Men = 'Мъже',\n Women = 'Жени',\n Kids = 'Деца',\n}\n\nexport enum AggregationTypeEnum {\n Terms = 'terms',\n Ranges = 'ranges',\n Stats = 'stats',\n}\n\nexport enum ComponentTypeEnum {\n Text = 'text',\n TextWithLink = 'text-with-link',\n Checkbox = 'checkbox',\n Color = 'color',\n Autocomplete = 'autocomplete',\n AttributeCheckbox = 'attribute-checkbox',\n Dropdown = 'dropdown',\n RangeCheckbox = 'range-checkbox',\n RangeSlider = 'range-slider',\n}\n\nexport type Aggregate = {\n label: TextField\n aggregationType: AggregationTypeEnum\n aggregationDefinition: TextField\n filterDefinition: TextField\n order: NumberField\n collapsed?: BooleanField\n component: ComponentTypeEnum\n}\n\nexport type ListingPageSortOption = {\n key: TextField\n label: TextField\n}\n\nexport interface DefaultListingPageProps {\n type: ListingTypesEnum\n seoAggregates?: Aggregate\n aggregates?: Aggregate[]\n defaultSortKey: TextField\n categoryTreeConfig?: Aggregate\n sortOptions: ListingPageSortOption[]\n productsPerPage?: NumberField\n\n filterExtension?: TextField\n}\n"],"file":"types.js"}
1
+ {"version":3,"sources":["../../../src/listing/types.ts"],"names":["AggregateSortEnum","ListingTypesEnum","GenderNamesEnum","AggregationTypeEnum","ComponentTypeEnum"],"mappings":";;;;IAwBYA,iB;;;WAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;GAAAA,iB,iCAAAA,iB;;IAKAC,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IASAC,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;IAMAC,mB;;;WAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;GAAAA,mB,mCAAAA,mB;;IAMAC,iB;;;WAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;GAAAA,iB,iCAAAA,iB","sourcesContent":["import {\n BooleanField,\n TextField,\n NumberField,\n} from '@sentecacommerce-theme/base'\n\nexport type FiltersQuery = {\n storeKey?: string\n currencyCode?: string\n languageCode?: string\n priceListKey?: string\n time?: number\n merchantKey?: string\n expand?: string\n project?: string\n filter?: string\n fuzzy?: boolean\n fuzzyLevel?: string\n count?: boolean\n limit?: number\n offset?: number\n sort?: string\n}\n\nexport enum AggregateSortEnum {\n Index = 'index',\n Alphabetically = 'alphabetically',\n}\n\nexport enum ListingTypesEnum {\n Category = 'category',\n Brand = 'brand',\n View = 'view',\n Search = 'text',\n Collection = 'collection',\n AttrPage = 'attribute page',\n}\n\nexport enum GenderNamesEnum {\n Men = 'Мъже',\n Women = 'Жени',\n Kids = 'Деца',\n}\n\nexport enum AggregationTypeEnum {\n Terms = 'terms',\n Ranges = 'ranges',\n Stats = 'stats',\n}\n\nexport enum ComponentTypeEnum {\n Text = 'text',\n TextWithLink = 'text-with-link',\n Checkbox = 'checkbox',\n Color = 'color',\n Autocomplete = 'autocomplete',\n AttributeCheckbox = 'attribute-checkbox',\n Dropdown = 'dropdown',\n RangeCheckbox = 'range-checkbox',\n RangeSlider = 'range-slider',\n}\n\nexport type Aggregate = {\n label: TextField\n aggregationType: AggregationTypeEnum\n aggregationDefinition: TextField\n filterDefinition: TextField\n order: NumberField\n collapsed?: BooleanField\n component: ComponentTypeEnum\n}\n\nexport type ListingPageSortOption = {\n key: TextField\n label: TextField\n}\n\nexport interface DefaultListingPageProps {\n type: ListingTypesEnum\n seoAggregates?: Aggregate\n aggregates?: Aggregate[]\n defaultSortKey: TextField\n categoryTreeConfig?: Aggregate\n sortOptions: ListingPageSortOption[]\n productsPerPage?: NumberField\n attributeSortType?: AggregateSortEnum\n\n filterExtension?: TextField\n}\n"],"file":"types.js"}
@@ -46,10 +46,16 @@ var buildCategoryQuery = function buildCategoryQuery(_ref) {
46
46
  break;
47
47
 
48
48
  case _index.ListingTypesEnum.Category:
49
- if (router.query.cat) filter += (0, _extendFilter.extendFilter)({
50
- slug: slug,
51
- filterExtension: listingConfig == null ? void 0 : listingConfig.filterExtension
52
- });
49
+ if (router.query.cat) {
50
+ filter += (0, _extendFilter.extendFilter)({
51
+ slug: slug,
52
+ filterExtension: listingConfig == null ? void 0 : listingConfig.filterExtension
53
+ });
54
+ } else {
55
+ var _listingConfig$filter;
56
+
57
+ filter += (_listingConfig$filter = listingConfig == null ? void 0 : listingConfig.filterExtension) != null ? _listingConfig$filter : '';
58
+ }
53
59
 
54
60
  if (postFilter) {
55
61
  if (router.query.cat) filter += '&';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/listing/utils/buildCategoryQuery.ts"],"names":["buildCategoryQuery","aggregates","predicate","postFilter","pageType","config","router","slug","type","aggregationType","term","aggregationDefinition","aggValue","getAggValue","id","_id","listingConfig","listing","getFilters","filter","ListingTypesEnum","Brand","applyBrandsPostFilter","query","cat","filterExtension","Category","AttrPage","Search","searchQuery","q","search","Collection","collapseMode","filtersArr","split","filters","reduce","res","val","i","includes"],"mappings":"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","sourcesContent":["import { NextRouter } from 'next/router'\nimport { ListingTypesEnum, Aggregate, PredicateType } from '../index'\nimport { extendFilter } from './extendFilter'\n\nexport const buildCategoryQuery = ({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n}: {\n pageType: ListingTypesEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter?: string\n predicate?: PredicateType\n slug: string\n config?: any\n}) => {\n const type = aggregates?.[0]?.aggregationType\n const term = aggregates?.[0]?.aggregationDefinition\n\n const aggValue = getAggValue({ id: predicate?._id, term })\n\n const listingConfig = config?.listing\n\n const getFilters = () => {\n let filter = ''\n switch (pageType) {\n case ListingTypesEnum.Brand:\n filter += `brand;eq;\"${predicate?._id}\"${applyBrandsPostFilter({\n postFilter,\n })}`\n\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n break\n\n case ListingTypesEnum.Category:\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) {\n if (router.query.cat) filter += '&'\n filter += postFilter\n }\n\n break\n\n case ListingTypesEnum.AttrPage:\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n case ListingTypesEnum.Search:\n const searchQuery = router.query.q ?? router.query.search\n filter += `text;eq;\"${searchQuery}\"`\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n default:\n return `${listingConfig?.filterExtension + `${postFilter ?? ''}`}`\n }\n\n return filter\n }\n let query = {\n [type]: aggValue,\n filter: getFilters(),\n }\n\n if (pageType === ListingTypesEnum.Collection) {\n const collapseMode = listingConfig?.collapseMode\n query = { ...query, collapseMode }\n }\n\n return query\n}\n\nconst getAggValue = ({ id, term }: { id?: string; term: string }) => {\n return id && term !== 'categories' ? `${term}:${id}` : term\n}\n\nconst applyBrandsPostFilter = ({ postFilter }: { postFilter?: string }) => {\n if (postFilter) {\n const filtersArr = postFilter.split('&')\n\n const filters = filtersArr.reduce((res, val, i) => {\n if (val.includes('category')) return res\n\n return (res += `&${val}`)\n }, '')\n\n return `${filters}`\n }\n\n return ''\n}\n"],"file":"buildCategoryQuery.js"}
1
+ {"version":3,"sources":["../../../../src/listing/utils/buildCategoryQuery.ts"],"names":["buildCategoryQuery","aggregates","predicate","postFilter","pageType","config","router","slug","type","aggregationType","term","aggregationDefinition","aggValue","getAggValue","id","_id","listingConfig","listing","getFilters","filter","ListingTypesEnum","Brand","applyBrandsPostFilter","query","cat","filterExtension","Category","AttrPage","Search","searchQuery","q","search","Collection","collapseMode","filtersArr","split","filters","reduce","res","val","i","includes"],"mappings":"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","sourcesContent":["import { NextRouter } from 'next/router'\nimport { ListingTypesEnum, Aggregate, PredicateType } from '../index'\nimport { extendFilter } from './extendFilter'\n\nexport const buildCategoryQuery = ({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n}: {\n pageType: ListingTypesEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter?: string\n predicate?: PredicateType\n slug: string\n config?: any\n}) => {\n const type = aggregates?.[0]?.aggregationType\n const term = aggregates?.[0]?.aggregationDefinition\n\n const aggValue = getAggValue({ id: predicate?._id, term })\n\n const listingConfig = config?.listing\n\n const getFilters = () => {\n let filter = ''\n switch (pageType) {\n case ListingTypesEnum.Brand:\n filter += `brand;eq;\"${predicate?._id}\"${applyBrandsPostFilter({\n postFilter,\n })}`\n\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n break\n\n case ListingTypesEnum.Category:\n if (router.query.cat) {\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n } else {\n filter += listingConfig?.filterExtension ?? ''\n }\n\n if (postFilter) {\n if (router.query.cat) filter += '&'\n filter += postFilter\n }\n\n break\n\n case ListingTypesEnum.AttrPage:\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n case ListingTypesEnum.Search:\n const searchQuery = router.query.q ?? router.query.search\n filter += `text;eq;\"${searchQuery}\"`\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n default:\n return `${listingConfig?.filterExtension + `${postFilter ?? ''}`}`\n }\n\n return filter\n }\n let query = {\n [type]: aggValue,\n filter: getFilters(),\n }\n\n if (pageType === ListingTypesEnum.Collection) {\n const collapseMode = listingConfig?.collapseMode\n query = { ...query, collapseMode }\n }\n\n return query\n}\n\nconst getAggValue = ({ id, term }: { id?: string; term: string }) => {\n return id && term !== 'categories' ? `${term}:${id}` : term\n}\n\nconst applyBrandsPostFilter = ({ postFilter }: { postFilter?: string }) => {\n if (postFilter) {\n const filtersArr = postFilter.split('&')\n\n const filters = filtersArr.reduce((res, val, i) => {\n if (val.includes('category')) return res\n\n return (res += `&${val}`)\n }, '')\n\n return `${filters}`\n }\n\n return ''\n}\n"],"file":"buildCategoryQuery.js"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.getUserToken = void 0;
7
+
8
+ var _jsCookie = _interopRequireDefault(require("js-cookie"));
9
+
10
+ var _index = require("../../../index");
11
+
12
+ var getUserToken = function getUserToken() {
13
+ var _Cookie$get;
14
+
15
+ return (_Cookie$get = _jsCookie["default"].get(_index.AUTH_TOKEN_KEY)) != null ? _Cookie$get : _jsCookie["default"].get(_index.ANONYMOUS_TOKEN_KEY);
16
+ };
17
+
18
+ exports.getUserToken = getUserToken;
19
+ //# sourceMappingURL=getUserToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/user/api/utils/getUserToken.ts"],"names":["getUserToken","Cookie","get","AUTH_TOKEN_KEY","ANONYMOUS_TOKEN_KEY"],"mappings":";;;;;;;AAAA;;AACA;;AAEO,IAAMA,YAAY,GAAG,SAAfA,YAAe;AAAA;;AAAA,wBAC1BC,qBAAOC,GAAP,CAAWC,qBAAX,CAD0B,0BACIF,qBAAOC,GAAP,CAAWE,0BAAX,CADJ;AAAA,CAArB","sourcesContent":["import Cookie from 'js-cookie'\nimport { AUTH_TOKEN_KEY, ANONYMOUS_TOKEN_KEY } from '../../../index'\n\nexport const getUserToken = () =>\n Cookie.get(AUTH_TOKEN_KEY) ?? Cookie.get(ANONYMOUS_TOKEN_KEY)\n"],"file":"getUserToken.js"}
@@ -33,4 +33,12 @@ Object.keys(_generateAnonymousToken).forEach(function (key) {
33
33
  if (key in exports && exports[key] === _generateAnonymousToken[key]) return;
34
34
  exports[key] = _generateAnonymousToken[key];
35
35
  });
36
+
37
+ var _getUserToken = require("./getUserToken");
38
+
39
+ Object.keys(_getUserToken).forEach(function (key) {
40
+ if (key === "default" || key === "__esModule") return;
41
+ if (key in exports && exports[key] === _getUserToken[key]) return;
42
+ exports[key] = _getUserToken[key];
43
+ });
36
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/user/api/utils/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './processLogin'\nexport * from './processLoginPayload'\nexport * from './invalidateQueries'\nexport * from './generateAnonymousToken'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/user/api/utils/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './processLogin'\nexport * from './processLoginPayload'\nexport * from './invalidateQueries'\nexport * from './generateAnonymousToken'\nexport * from './getUserToken'\n"],"file":"index.js"}
@@ -121,4 +121,12 @@ Object.keys(_useRequestEmailConfirmation).forEach(function (key) {
121
121
  if (key in exports && exports[key] === _useRequestEmailConfirmation[key]) return;
122
122
  exports[key] = _useRequestEmailConfirmation[key];
123
123
  });
124
+
125
+ var _useGetUserToken = require("./useGetUserToken");
126
+
127
+ Object.keys(_useGetUserToken).forEach(function (key) {
128
+ if (key === "default" || key === "__esModule") return;
129
+ if (key in exports && exports[key] === _useGetUserToken[key]) return;
130
+ exports[key] = _useGetUserToken[key];
131
+ });
124
132
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/user/hooks/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './useAuthGuard'\nexport * from './useRequestAnon'\nexport * from './useConfirmEmail'\nexport * from './useIsAuthenticated'\nexport * from './useLogin'\nexport * from './useLoginApple'\nexport * from './useLoginFacebook'\nexport * from './useLoginGoogle'\nexport * from './useLogout'\nexport * from './useRegister'\nexport * from './useRequestResetPasswordToken'\nexport * from './useResetPassword'\nexport * from './useVerifyChangeEmail'\nexport * from './useChangeEmail'\nexport * from './useRequestEmailConfirmation'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/user/hooks/index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './useAuthGuard'\nexport * from './useRequestAnon'\nexport * from './useConfirmEmail'\nexport * from './useIsAuthenticated'\nexport * from './useLogin'\nexport * from './useLoginApple'\nexport * from './useLoginFacebook'\nexport * from './useLoginGoogle'\nexport * from './useLogout'\nexport * from './useRegister'\nexport * from './useRequestResetPasswordToken'\nexport * from './useResetPassword'\nexport * from './useVerifyChangeEmail'\nexport * from './useChangeEmail'\nexport * from './useRequestEmailConfirmation'\nexport * from './useGetUserToken'\n"],"file":"index.js"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useGetUserToken = void 0;
5
+
6
+ var _api = require("../api");
7
+
8
+ var useGetUserToken = function useGetUserToken() {
9
+ return (0, _api.getUserToken)();
10
+ };
11
+
12
+ exports.useGetUserToken = useGetUserToken;
13
+ //# sourceMappingURL=useGetUserToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/user/hooks/useGetUserToken.ts"],"names":["useGetUserToken"],"mappings":";;;;;AACA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB;AAAA,SAAM,wBAAN;AAAA,CAAxB","sourcesContent":["import React from 'react'\nimport { getUserToken } from '../api'\n\nexport const useGetUserToken = () => getUserToken()\n"],"file":"useGetUserToken.js"}
@@ -15,7 +15,8 @@ export var myCartCacheKeys = {
15
15
  useGetShippingMethods: 'mycart-api-use-get-shippingmethods',
16
16
  useGetAllShippingMethods: 'mycart-api-use-get-all-shippingmethods',
17
17
  useGetPaymentMethods: 'mycart-api-use-get-paymentmethods',
18
- useIsExisting: 'mycart-api-is-existing'
18
+ useIsExisting: 'mycart-api-is-existing',
19
+ useGetCrossSaleItems: 'mycart-api-use-get-cross-sale-products'
19
20
  };
20
21
  var LineItemType;
21
22