@sentecacommerce-theme/lib 0.13.5-alpha.9 → 0.13.7-alpha.7

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 (131) hide show
  1. package/dist/cjs/analytics/Pixel/hooks/usePixelProductClick.js +1 -1
  2. package/dist/cjs/analytics/Pixel/hooks/usePixelProductDetails.js +1 -1
  3. package/dist/cjs/analytics/Pixel/hooks/usePixelProductsImpression.js +1 -1
  4. package/dist/cjs/analytics/Pixel/usePixel.js +1 -1
  5. package/dist/cjs/analytics/Releva/useReleva.js +1 -1
  6. package/dist/cjs/analytics/addToCart.js +0 -1
  7. package/dist/cjs/analytics/initiateCheckout.js +0 -1
  8. package/dist/cjs/analytics/viewContent.js +0 -1
  9. package/dist/cjs/api.v2/core/checkout/payments/useSetMerchantPaymentMethod.js +1 -1
  10. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +1 -1
  11. package/dist/cjs/components/Html/index.js +1 -1
  12. package/dist/cjs/components/Portal/index.js +1 -1
  13. package/dist/cjs/hooks/ui-hooks/useIsDesktop/index.js +2 -2
  14. package/dist/cjs/hooks/useAllSelectedFilters/index.js +3 -3
  15. package/dist/cjs/hooks/usePrice/index.js +1 -1
  16. package/dist/cjs/hooks/useProgressBar/hooks/useGetSetState.js +1 -24
  17. package/dist/cjs/hooks/useSelectedFilters/index.js +3 -3
  18. package/dist/cjs/hooks/useVouchers/index.js +1 -2
  19. package/dist/cjs/listing/api/queries/useAggregateQuery.js +7 -7
  20. package/dist/cjs/listing/api/queries/useInfiniteListing.js +4 -4
  21. package/dist/cjs/listing/api/queries/useListingQuery.js +18 -21
  22. package/dist/cjs/listing/api/queries/usePredicate.js +4 -4
  23. package/dist/cjs/listing/components/BasicListingSEO.js +1 -1
  24. package/dist/cjs/listing/hooks/useListingAlias.js +2 -4
  25. package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +4 -4
  26. package/dist/cjs/listing/hooks/useListingCategories.js +7 -8
  27. package/dist/cjs/listing/hooks/useListingConfig.js +3 -5
  28. package/dist/cjs/listing/hooks/useListingFilters.js +18 -19
  29. package/dist/cjs/listing/hooks/useListingItems.js +2 -2
  30. package/dist/cjs/listing/hooks/useListingMeta.js +5 -4
  31. package/dist/cjs/listing/hooks/useListingPagination.js +3 -4
  32. package/dist/cjs/listing/hooks/useListingSlug.js +3 -1
  33. package/dist/cjs/listing/hooks/useSlideFilter.js +4 -3
  34. package/dist/cjs/listing/hooks/useSort.js +48 -17
  35. package/dist/cjs/listing/hooks/utils.js +2 -1
  36. package/dist/cjs/listing/ssr/prefetchCategories.js +1 -1
  37. package/dist/cjs/listing/ssr/prefetchListing.js +7 -8
  38. package/dist/cjs/listing/utils/buildCategoryQuery.js +8 -9
  39. package/dist/cjs/listing/utils/buildFilterQuery.js +5 -7
  40. package/dist/cjs/listing/utils/calculateOffset.js +1 -1
  41. package/dist/cjs/listing/utils/getListingAlias.js +5 -6
  42. package/dist/cjs/listing/utils/getListingPageType.js +4 -3
  43. package/dist/cjs/navigation/components/SearchBox/Components/Container/index.js +1 -1
  44. package/dist/cjs/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
  45. package/dist/cjs/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
  46. package/dist/cjs/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
  47. package/dist/cjs/navigation/components/SearchBox/Components/Products/index.js +2 -2
  48. package/dist/cjs/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
  49. package/dist/cjs/navigation/components/SearchBox/index.js +11 -11
  50. package/dist/cjs/product/hooks/useBnpOffers.js +2 -25
  51. package/dist/cjs/seo/components/GlobalSEO/index.js +3 -3
  52. package/dist/esm/analytics/Pixel/hooks/usePixelProductClick.js +1 -1
  53. package/dist/esm/analytics/Pixel/hooks/usePixelProductDetails.js +1 -1
  54. package/dist/esm/analytics/Pixel/hooks/usePixelProductsImpression.js +1 -1
  55. package/dist/esm/analytics/Pixel/mainScript.js +0 -1
  56. package/dist/esm/analytics/Pixel/usePixel.js +1 -1
  57. package/dist/esm/analytics/Releva/useReleva.js +1 -1
  58. package/dist/esm/analytics/addToCart.js +0 -1
  59. package/dist/esm/analytics/initiateCheckout.js +0 -1
  60. package/dist/esm/analytics/pageView.js +1 -1
  61. package/dist/esm/analytics/viewContent.js +0 -1
  62. package/dist/esm/api.v2/core/checkout/payments/useSetMerchantPaymentMethod.js +1 -1
  63. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +1 -1
  64. package/dist/esm/components/GoogleOneTap/index.js +1 -1
  65. package/dist/esm/components/Html/index.js +1 -1
  66. package/dist/esm/components/Portal/index.js +1 -1
  67. package/dist/esm/hooks/ui-hooks/useIsDesktop/index.js +2 -2
  68. package/dist/esm/hooks/useAllSelectedFilters/index.js +4 -4
  69. package/dist/esm/hooks/usePrice/index.js +1 -1
  70. package/dist/esm/hooks/useProgressBar/hooks/useGetSetState.js +1 -1
  71. package/dist/esm/hooks/useSelectedFilters/index.js +4 -4
  72. package/dist/esm/hooks/useVouchers/index.js +1 -2
  73. package/dist/esm/listing/api/queries/useAggregateQuery.js +7 -7
  74. package/dist/esm/listing/api/queries/useInfiniteListing.js +4 -4
  75. package/dist/esm/listing/api/queries/useListingQuery.js +18 -21
  76. package/dist/esm/listing/api/queries/usePredicate.js +4 -4
  77. package/dist/esm/listing/components/BasicListingSEO.js +1 -1
  78. package/dist/esm/listing/hooks/useListingAlias.js +2 -4
  79. package/dist/esm/listing/hooks/useListingBreadcrumbs.js +5 -5
  80. package/dist/esm/listing/hooks/useListingCategories.js +8 -9
  81. package/dist/esm/listing/hooks/useListingConfig.js +4 -6
  82. package/dist/esm/listing/hooks/useListingFilters.js +18 -19
  83. package/dist/esm/listing/hooks/useListingItems.js +2 -2
  84. package/dist/esm/listing/hooks/useListingMeta.js +6 -5
  85. package/dist/esm/listing/hooks/useListingPagination.js +3 -4
  86. package/dist/esm/listing/hooks/useListingSlug.js +3 -1
  87. package/dist/esm/listing/hooks/useSlideFilter.js +5 -4
  88. package/dist/esm/listing/hooks/useSort.js +48 -17
  89. package/dist/esm/listing/hooks/utils.js +2 -1
  90. package/dist/esm/listing/ssr/prefetchCategories.js +2 -2
  91. package/dist/esm/listing/ssr/prefetchListing.js +7 -8
  92. package/dist/esm/listing/utils/buildCategoryQuery.js +8 -9
  93. package/dist/esm/listing/utils/buildFilterQuery.js +5 -7
  94. package/dist/esm/listing/utils/calculateOffset.js +1 -1
  95. package/dist/esm/listing/utils/getListingAlias.js +5 -6
  96. package/dist/esm/listing/utils/getListingPageType.js +4 -3
  97. package/dist/esm/navigation/components/SearchBox/Components/Container/index.js +1 -1
  98. package/dist/esm/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
  99. package/dist/esm/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
  100. package/dist/esm/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
  101. package/dist/esm/navigation/components/SearchBox/Components/Products/index.js +2 -2
  102. package/dist/esm/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
  103. package/dist/esm/navigation/components/SearchBox/index.js +11 -11
  104. package/dist/esm/product/hooks/useBnpOffers.js +2 -2
  105. package/dist/esm/seo/components/GlobalSEO/index.js +3 -3
  106. package/dist/types/listing/api/queries/useAggregateQuery.d.ts +2 -1
  107. package/dist/types/listing/api/queries/useListingQuery.d.ts +4 -2
  108. package/dist/types/listing/api/queries/usePredicate.d.ts +2 -1
  109. package/dist/types/listing/hooks/useListingAlias.d.ts +2 -1
  110. package/dist/types/listing/hooks/useListingFilters.d.ts +0 -1
  111. package/dist/types/listing/hooks/useListingItems.d.ts +3 -2
  112. package/dist/types/listing/hooks/useListingSEOCategories.d.ts +6 -4
  113. package/dist/types/listing/hooks/useSort.d.ts +6 -5
  114. package/dist/types/listing/hooks/utils.d.ts +3 -2
  115. package/dist/types/listing/ssr/prefetchCategories.d.ts +2 -2
  116. package/dist/types/listing/ssr/prefetchListing.d.ts +4 -5
  117. package/dist/types/listing/ssr/prefetchPredicate.d.ts +2 -1
  118. package/dist/types/listing/types.d.ts +27 -16
  119. package/dist/types/listing/utils/buildCategoryQuery.d.ts +2 -1
  120. package/dist/types/listing/utils/buildFilterQuery.d.ts +2 -1
  121. package/dist/types/listing/utils/extendFilter.d.ts +3 -2
  122. package/dist/types/listing/utils/getListingAlias.d.ts +2 -1
  123. package/dist/types/listing/utils/getListingPageType.d.ts +2 -2
  124. package/dist/types/navigation/components/SearchBox/Components/Container/index.d.ts +10 -9
  125. package/dist/types/navigation/components/SearchBox/Components/EmptyBox/index.d.ts +22 -21
  126. package/dist/types/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.d.ts +8 -7
  127. package/dist/types/navigation/components/SearchBox/Components/Products/index.d.ts +9 -8
  128. package/dist/types/navigation/components/SearchBox/index.d.ts +31 -30
  129. package/dist/types/types/index.d.ts +38 -40
  130. package/dist/types/utils/getSelectedFilters.d.ts +2 -1
  131. package/package.json +11 -5
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { useRouter } from 'next/router';
3
3
  import { usePredicate } from '../api';
4
4
  import { useListingConfig } from './';
5
- import { useConfigState, useListingAlias } from '../../index';
5
+ import { useListingAlias } from '../../index';
6
6
  import { typeToSuffix } from '../../utils/typeToSuffix';
7
7
  import { getTranslatableField } from '../../utils/getTranslatableField';
8
8
  import { ListingTypesEnum } from '..';
@@ -25,16 +25,16 @@ function _toConsumableArray(arr) {
25
25
  }
26
26
  var _instance;
27
27
  export var useListingBreadcrumbs = function() {
28
- var ref = usePredicate(), data = ref.data, isLoading = ref.isLoading;
28
+ var ref1 = usePredicate(), data = ref1.data, isLoading = ref1.isLoading;
29
29
  var config = useListingConfig();
30
30
  var router = useRouter();
31
- var mainConfig = useConfigState();
32
- var slug = useListingAlias().slug;
31
+ var slug = useListingAlias(config.meta).slug;
33
32
  var result = React.useMemo(function() {
34
33
  if (config.type === ListingTypesEnum.AttrPage) {
34
+ var ref;
35
35
  return [
36
36
  {
37
- name: mainConfig.listing.titleAliases[slug],
37
+ name: (ref = config.meta) === null || ref === void 0 ? void 0 : ref.titleAliases[slug],
38
38
  id: '',
39
39
  link: "/".concat(router.query.slug, "/c")
40
40
  },
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { useRouter } from 'next/router';
3
3
  import { useListingConfig } from './useListingConfig';
4
- import { useListingAlias, useConfigState } from '../../index';
4
+ import { useListingAlias } from '../../index';
5
5
  import { getTranslatableField, typeToSuffix } from '../../utils';
6
6
  import { useAggregateQuery, AggregateRequestEnum } from '../api';
7
7
  import { processCategoriesResponse, getAggregateTypeAndTerm } from './utils';
@@ -28,19 +28,18 @@ var ListingCategoriesStateContext = /*#__PURE__*/ React.createContext(undefined)
28
28
  export function ListingCategoriesProvider(param) {
29
29
  var children = param.children;
30
30
  var router = useRouter();
31
- var categoryTreeConfig = useListingConfig().categoryTreeConfig;
32
- var slug = useListingAlias().slug;
33
- var config = useConfigState();
34
- var ref = useAggregateQuery([
31
+ var ref = useListingConfig(), categoryTreeConfig = ref.categoryTreeConfig, meta = ref.meta;
32
+ var slug = useListingAlias(meta).slug;
33
+ var ref1 = useAggregateQuery([
35
34
  categoryTreeConfig
36
- ], AggregateRequestEnum.Categories), aggData = ref.data, isLoading = ref.isLoading;
37
- var currentCategory = generateCurrentUrl(router, slug, config);
38
- var ref1 = getAggregateTypeAndTerm(categoryTreeConfig), type = ref1.type, term = ref1.term;
35
+ ], AggregateRequestEnum.Categories), aggData = ref1.data, isLoading = ref1.isLoading;
36
+ var currentCategory = generateCurrentUrl(router, slug, meta);
37
+ var ref2 = getAggregateTypeAndTerm(categoryTreeConfig), type = ref2.type, term = ref2.term;
39
38
  var data = React.useMemo(function() {
40
39
  if (aggData) {
41
40
  var response = processCategoriesResponse(aggData, type, term);
42
41
  var nodes = response.map(function(current) {
43
- return buildNodes(current, router, slug, config);
42
+ return buildNodes(current, router, slug, meta);
44
43
  });
45
44
  var categoryTree = buildCategories(nodes);
46
45
  return categoryTree;
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { useRouter } from 'next/router';
3
3
  import { ListingFiltersProvider } from './useListingFilters';
4
4
  import { ListingCategoriesProvider } from './useListingCategories';
5
- import { useListingAlias, useConfigState } from '../../index';
5
+ import { useListingAlias } from '../../index';
6
6
  import { getListingPageType } from '../utils';
7
7
  function _defineProperty(obj, key, value) {
8
8
  if (key in obj) {
@@ -37,22 +37,20 @@ var ListingPageContext = /*#__PURE__*/ React.createContext(undefined);
37
37
  export function ListingPageProvider(param) {
38
38
  var config = param.config, children = param.children;
39
39
  var router = useRouter();
40
- var slug = useListingAlias().slug;
41
- var mainConfig = useConfigState();
40
+ var slug = useListingAlias(config.meta).slug;
42
41
  var data = React.useMemo(function() {
43
42
  return _objectSpread({
44
43
  }, config, {
45
- type: getListingPageType(router, slug, mainConfig)
44
+ type: getListingPageType(router, slug, config.meta)
46
45
  });
47
46
  }, [
48
47
  router.pathname,
49
48
  config.aggregates,
50
49
  config.categoryTreeConfig,
51
50
  config.defaultSortKey,
52
- config.productsPerPage,
53
51
  config.seoAggregates,
54
52
  config.sortOptions,
55
- config.filterExtension,
53
+ config.meta,
56
54
  config.attributeSortType,
57
55
  ]);
58
56
  return(/*#__PURE__*/ React.createElement(ListingPageContext.Provider, {
@@ -7,7 +7,6 @@ import { useListingSlug } from './useListingSlug';
7
7
  import { stripQueryProps } from '../../utils/generateQueryFromRouter';
8
8
  import { typeToSuffix } from '../../utils/typeToSuffix';
9
9
  import { getSelectedFilters } from '../../utils';
10
- import { useConfigState } from '../../index';
11
10
  function _arrayWithHoles(arr) {
12
11
  if (Array.isArray(arr)) return arr;
13
12
  }
@@ -71,19 +70,19 @@ function _slicedToArray(arr, i) {
71
70
  var ListingFiltersStateContext = /*#__PURE__*/ React.createContext(undefined);
72
71
  export function ListingFiltersProvider(param) {
73
72
  var children = param.children;
74
- var ref = useListingConfig(), aggregates = ref.aggregates, pageType = ref.type, attributeSortType = ref.attributeSortType;
73
+ var ref3 = useListingConfig(), aggregates = ref3.aggregates, pageType = ref3.type, attributeSortType = ref3.attributeSortType, meta = ref3.meta;
75
74
  var ref1 = useAggregateQuery(aggregates, AggregateRequestEnum.Filters, attributeSortType), aggData = ref1.data, isLoading = ref1.isLoading, isFetching = ref1.isFetching;
76
- var config = useConfigState();
77
75
  var router = useRouter();
78
76
  var slug = useListingSlug();
79
77
  var data = React.useMemo(function() {
80
78
  if (!isLoading && aggData) {
81
79
  var result = aggregates === null || aggregates === void 0 ? void 0 : aggregates.sort(function(a, b) {
82
- return a.order - b.order;
80
+ return Number(a.order) - Number(b.order);
83
81
  }).map(function(currentAggregate) {
84
- var type = currentAggregate.aggregationType.toString();
85
- var term = currentAggregate.aggregationDefinition.split(':')[0];
86
- var filter = currentAggregate.filterDefinition;
82
+ var ref, ref2;
83
+ var type = (currentAggregate === null || currentAggregate === void 0 ? void 0 : (ref = currentAggregate.aggregationType) === null || ref === void 0 ? void 0 : ref.toString()) || '';
84
+ var term = (currentAggregate === null || currentAggregate === void 0 ? void 0 : (ref2 = currentAggregate.aggregationDefinition) === null || ref2 === void 0 ? void 0 : ref2.split(':')[0]) || '';
85
+ var filter = (currentAggregate === null || currentAggregate === void 0 ? void 0 : currentAggregate.filterDefinition) || '';
87
86
  var current = aggData[type].find(function(agg) {
88
87
  return agg.name === term;
89
88
  });
@@ -135,7 +134,7 @@ export function ListingFiltersProvider(param) {
135
134
  });
136
135
  };
137
136
  var selectedFilters = React.useMemo(function() {
138
- return getSelectedFilters(router, slug, data, config);
137
+ return getSelectedFilters(router, slug, data, meta);
139
138
  }, [
140
139
  router,
141
140
  data
@@ -159,10 +158,10 @@ export function useListingFilters() {
159
158
  }
160
159
  function generateFilters(param) {
161
160
  var rawFilters = param.rawFilters, type = param.type, filter = param.filter, slug = param.slug, router = param.router, pageType = param.pageType;
162
- var ref, ref2;
163
- return (ref2 = (ref = rawFilters.results) === null || ref === void 0 ? void 0 : ref.filter(function(res) {
161
+ var ref, ref4;
162
+ return (ref4 = (ref = rawFilters.results) === null || ref === void 0 ? void 0 : ref.filter(function(res) {
164
163
  return res.count > 0;
165
- })) === null || ref2 === void 0 ? void 0 : ref2.map(function(currentTerm) {
164
+ })) === null || ref4 === void 0 ? void 0 : ref4.map(function(currentTerm) {
166
165
  var filterKey = mapKey(currentTerm, type);
167
166
  var selected = isFilterSelected(router, filter, filterKey, filtersOperatorsMap[type]);
168
167
  return {
@@ -180,11 +179,11 @@ function generateFilters(param) {
180
179
  });
181
180
  }
182
181
  var isFilterSelected = function(router, filter, filterKey, type) {
183
- var ref, ref3, ref4, ref5, ref6;
182
+ var ref, ref5, ref6, ref7, ref8;
184
183
  var areFiltersArray = Array.isArray((ref = router.query) === null || ref === void 0 ? void 0 : ref.filter);
185
- return areFiltersArray ? !!((ref4 = (ref3 = router.query.filter) === null || ref3 === void 0 ? void 0 : ref3.find(function(sel) {
184
+ return areFiltersArray ? !!((ref6 = (ref5 = router.query.filter) === null || ref5 === void 0 ? void 0 : ref5.find(function(sel) {
186
185
  return sel.includes("".concat(filter, ";").concat(type));
187
- })) === null || ref4 === void 0 ? void 0 : ref4.includes(filterKey)) : ((ref5 = router.query.filter) === null || ref5 === void 0 ? void 0 : ref5.includes("".concat(filter, ";").concat(type))) && ((ref6 = router.query.filter) === null || ref6 === void 0 ? void 0 : ref6.includes(filterKey));
186
+ })) === null || ref6 === void 0 ? void 0 : ref6.includes(filterKey)) : ((ref7 = router.query.filter) === null || ref7 === void 0 ? void 0 : ref7.includes("".concat(filter, ";").concat(type))) && ((ref8 = router.query.filter) === null || ref8 === void 0 ? void 0 : ref8.includes(filterKey));
188
187
  };
189
188
  export var filtersOperatorsMap = {
190
189
  ranges: 'range',
@@ -213,12 +212,12 @@ var generateQueryString = function(query, pair, remove) {
213
212
  var extractFilter = function(param) {
214
213
  var _str = param.str, str = _str === void 0 ? '' : _str, aggPair = param.aggPair;
215
214
  var ref = _slicedToArray(str.split(';'), 3), type = ref[0], operator = ref[1], val = ref[2];
216
- var ref7;
217
- var filterType = (ref7 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggType) !== null && ref7 !== void 0 ? ref7 : type;
218
- var ref8;
219
- var filterVal = (ref8 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggKey) !== null && ref8 !== void 0 ? ref8 : val;
220
215
  var ref9;
221
- var filterOperator = (ref9 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggOperator) !== null && ref9 !== void 0 ? ref9 : operator;
216
+ var filterType = (ref9 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggType) !== null && ref9 !== void 0 ? ref9 : type;
217
+ var ref10;
218
+ var filterVal = (ref10 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggKey) !== null && ref10 !== void 0 ? ref10 : val;
219
+ var ref11;
220
+ var filterOperator = (ref11 = aggPair === null || aggPair === void 0 ? void 0 : aggPair.aggOperator) !== null && ref11 !== void 0 ? ref11 : operator;
222
221
  if (activeFilters[filterType]) {
223
222
  activeFilters[filterType] += ",".concat(filterVal);
224
223
  } else {
@@ -5,7 +5,7 @@ export var useListingItems = function() {
5
5
  var config = useListingConfig();
6
6
  var ref1 = useListingQuery(), data = ref1.data, isLoading = ref1.isLoading, isFetching = ref1.isFetching;
7
7
  var generatePlaceholders = function(products) {
8
- return new Array(products !== null && products !== void 0 ? products : 24).fill(null).map(function(_, i) {
8
+ return new Array(products || 24).fill(null).map(function(_, i) {
9
9
  return {
10
10
  _id: "".concat(i),
11
11
  isPlaceholder: true
@@ -15,7 +15,7 @@ export var useListingItems = function() {
15
15
  var result = React.useMemo(function() {
16
16
  var ref;
17
17
  return {
18
- items: !(data === null || data === void 0 ? void 0 : data.results) ? generatePlaceholders(config.productsPerPage) : data === null || data === void 0 ? void 0 : data.results,
18
+ items: !(data === null || data === void 0 ? void 0 : data.results) ? generatePlaceholders(config.meta.limit || 24) : data === null || data === void 0 ? void 0 : data.results,
19
19
  total: (ref = data === null || data === void 0 ? void 0 : data.total) !== null && ref !== void 0 ? ref : 0,
20
20
  didYouMean: data === null || data === void 0 ? void 0 : data.didYouMean,
21
21
  isLoading: isLoading,
@@ -5,9 +5,10 @@ import { assetsFieldsToMap } from '../../utils/assetsToMap';
5
5
  import { useRouter } from 'next/router';
6
6
  import { getListingPageType } from '../utils';
7
7
  import { ListingTypesEnum } from '../types';
8
- import { useListingAlias, useConfigState } from '../../index';
8
+ import { useListingAlias } from '../../index';
9
9
  import { useListingFilters } from './useListingFilters';
10
10
  import { useListingCategories } from './useListingCategories';
11
+ import { useListingConfig } from '.';
11
12
  function _arrayWithoutHoles(arr) {
12
13
  if (Array.isArray(arr)) {
13
14
  for(var i = 0, arr2 = new Array(arr.length); i < arr.length; i++){
@@ -31,14 +32,14 @@ export var useListingMeta = function() {
31
32
  var ref1 = useListingQuery(), listingQuery = ref1.data;
32
33
  var ref2 = useListingCategories(), categoriesData = ref2.data;
33
34
  var ref3 = useListingFilters(), filtersData = ref3.data;
34
- var slug = useListingAlias().slug;
35
- var config = useConfigState();
35
+ var meta = useListingConfig().meta;
36
+ var slug = useListingAlias(meta).slug;
36
37
  var result = React.useMemo(function() {
37
38
  var ref;
38
39
  var customFields = customFieldsToMap(predicate === null || predicate === void 0 ? void 0 : predicate.custom);
39
40
  var assets = assetsFieldsToMap(predicate === null || predicate === void 0 ? void 0 : predicate.assets);
40
41
  var description = ((ref = getTranslatableField(predicate === null || predicate === void 0 ? void 0 : predicate.description)) === null || ref === void 0 ? void 0 : ref.trim()) || '';
41
- var displayName = processDisplayName(slug, config, predicate === null || predicate === void 0 ? void 0 : predicate.name, predicate === null || predicate === void 0 ? void 0 : predicate.breadcrumb, router, filtersData, categoriesData);
42
+ var displayName = processDisplayName(slug, meta, predicate === null || predicate === void 0 ? void 0 : predicate.name, predicate === null || predicate === void 0 ? void 0 : predicate.breadcrumb, router, filtersData, categoriesData);
42
43
  return {
43
44
  displayName: displayName,
44
45
  description: description,
@@ -76,7 +77,7 @@ function processDisplayName(slug, config, name, breadcrumb, router, aggData, cat
76
77
  var categoryName = getCategoryName(router, categoriesData);
77
78
  var type = getListingPageType(router, slug, config);
78
79
  if (type === ListingTypesEnum.AttrPage) {
79
- return "Всичко за ".concat(config.listing.titleAliases[slug]);
80
+ return "Всичко за ".concat(config.titleAliases[slug]);
80
81
  }
81
82
  if (router === null || router === void 0 ? void 0 : router.query.cat) {
82
83
  var attribute = getTranslatableField(breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.label);
@@ -39,17 +39,16 @@ export var useListingPagination = function() {
39
39
  var slug = useListingSlug();
40
40
  var ref = useListingQuery(), data = ref.data, isLoading = ref.isLoading;
41
41
  var result = React.useMemo(function() {
42
- var _productsPerPage;
43
42
  return {
44
43
  pagination: getPagination(data === null || data === void 0 ? void 0 : data.total, generateQueryFromRouter(_objectSpread({
45
- limit: (_productsPerPage = config.productsPerPage) !== null && _productsPerPage !== void 0 ? _productsPerPage : 24,
44
+ limit: config.meta.limit || 24,
46
45
  sort: router.query.sort
47
- }, router.query)), config.defaultSortKey),
46
+ }, router.query)), config.defaultSortKey || 'defaultSort'),
48
47
  query: generateQuery(router, slug)
49
48
  };
50
49
  }, [
51
50
  config.defaultSortKey,
52
- config.productsPerPage,
51
+ config.meta.limit,
53
52
  data === null || data === void 0 ? void 0 : data.total,
54
53
  router,
55
54
  slug
@@ -1,9 +1,11 @@
1
1
  import { useRouter } from 'next/router';
2
+ import { useListingConfig } from '.';
2
3
  import { useListingAlias } from '../index';
3
4
  import { getSlug } from '../utils';
4
5
  export var useListingSlug = function() {
5
6
  var router = useRouter();
6
- var ref = useListingAlias(), aliasedSlug = ref.slug;
7
+ var meta = useListingConfig().meta;
8
+ var ref = useListingAlias(meta), aliasedSlug = ref.slug;
7
9
  var slug = getSlug(router, aliasedSlug);
8
10
  return slug;
9
11
  };
@@ -3,7 +3,8 @@ import { useRouter } from 'next/router';
3
3
  import { createAggregateQuery } from '../../utils';
4
4
  import { getListingPageType } from '../utils';
5
5
  import { filtersOperatorsMap } from './useListingFilters';
6
- import { useListingAlias, useConfigState } from '../../index';
6
+ import { useListingAlias } from '../../index';
7
+ import { useListingConfig } from '.';
7
8
  function _arrayWithHoles(arr) {
8
9
  if (Array.isArray(arr)) return arr;
9
10
  }
@@ -38,8 +39,8 @@ function _slicedToArray(arr, i) {
38
39
  export var useSlideFilter = function(filterName, min, max) {
39
40
  var ref;
40
41
  var router = useRouter();
41
- var slug = useListingAlias().slug;
42
- var config = useConfigState();
42
+ var meta = useListingConfig().meta;
43
+ var slug = useListingAlias(meta).slug;
43
44
  var allFilters = router.query.filter;
44
45
  var filterQuery = "".concat(filterName, ";range;");
45
46
  var getFilter = function() {
@@ -66,7 +67,7 @@ export var useSlideFilter = function(filterName, min, max) {
66
67
  var formattedTo = Math.max(data.from, Math.min(data.to, max));
67
68
  clearTimeout(timeoutRef.current);
68
69
  timeoutRef.current = setTimeout(function() {
69
- router.push(createAggregateQuery(getListingPageType(router, slug, config), router.query.slug, {
70
+ router.push(createAggregateQuery(getListingPageType(router, slug, meta), router.query.slug, {
70
71
  aggType: filterName,
71
72
  aggKey: "".concat(formattedFrom, ",").concat(formattedTo),
72
73
  aggOperator: filtersOperatorsMap.stats
@@ -1,38 +1,69 @@
1
1
  import { useRouter } from 'next/router';
2
2
  import { useCallback, useMemo } from 'react';
3
- export var useSort = function(param) {
4
- var onSelect = param.onSelect, sorts = param.sorts, defaultSortKey = param.defaultSortKey;
5
- var ref1;
6
- // Not ready yet
7
- // const { sortOptions: sorts, defaultSortKey } = useListingConfig()
3
+ import { useListingConfig } from '.';
4
+ function _defineProperty(obj, key, value) {
5
+ if (key in obj) {
6
+ Object.defineProperty(obj, key, {
7
+ value: value,
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true
11
+ });
12
+ } else {
13
+ obj[key] = value;
14
+ }
15
+ return obj;
16
+ }
17
+ function _objectSpread(target) {
18
+ for(var i = 1; i < arguments.length; i++){
19
+ var source = arguments[i] != null ? arguments[i] : {
20
+ };
21
+ var ownKeys = Object.keys(source);
22
+ if (typeof Object.getOwnPropertySymbols === "function") {
23
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
24
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
25
+ }));
26
+ }
27
+ ownKeys.forEach(function(key) {
28
+ _defineProperty(target, key, source[key]);
29
+ });
30
+ }
31
+ return target;
32
+ }
33
+ export var useSort = function(props) {
34
+ var ref2;
35
+ var ref1 = useListingConfig(), sorts = ref1.sortOptions, defaultSortRaw = ref1.defaultSortKey;
36
+ var defaultSortKey = defaultSortRaw || 'defaultSort';
8
37
  var router = useRouter();
9
- var currentSortQuery = (router === null || router === void 0 ? void 0 : (ref1 = router.query) === null || ref1 === void 0 ? void 0 : ref1.sort) || defaultSortKey;
38
+ var currentSortQuery = (router === null || router === void 0 ? void 0 : (ref2 = router.query) === null || ref2 === void 0 ? void 0 : ref2.sort) || defaultSortKey;
10
39
  var changeSort = useCallback(function(value) {
11
40
  return function() {
12
- var ref;
13
- var query = router.query.filter ? {
14
- sort: value,
15
- filter: (ref = router.query) === null || ref === void 0 ? void 0 : ref.filter
16
- } : {
41
+ if (!value) return;
42
+ var query = _objectSpread({
43
+ }, router.query, {
17
44
  sort: value
18
- };
45
+ });
19
46
  if (defaultSortKey === value) {
20
47
  delete query.sort;
21
48
  }
22
49
  setTimeout(function() {
23
- onSelect === null || onSelect === void 0 ? void 0 : onSelect();
50
+ var ref;
51
+ props === null || props === void 0 ? void 0 : (ref = props.onSelect) === null || ref === void 0 ? void 0 : ref.call(props);
24
52
  });
25
53
  return router.push({
26
54
  href: router.pathname,
27
55
  query: query
56
+ }, undefined, {
57
+ shallow: true
28
58
  });
29
59
  };
30
60
  }, [
31
61
  defaultSortKey,
32
62
  router,
33
- onSelect
63
+ props === null || props === void 0 ? void 0 : props.onSelect
34
64
  ]);
35
65
  var result = useMemo(function() {
66
+ var ref;
36
67
  var selectedSort = {
37
68
  key: defaultSortKey,
38
69
  label: '',
@@ -40,10 +71,10 @@ export var useSort = function(param) {
40
71
  select: function() {
41
72
  }
42
73
  };
43
- var sortOptions = sorts.map(function(sort) {
74
+ var sortOptions = (ref = sorts || []) === null || ref === void 0 ? void 0 : ref.map(function(sort) {
44
75
  var data = {
45
- key: sort.key,
46
- label: sort.label,
76
+ key: sort.key || 'defaultSort',
77
+ label: sort.label || '',
47
78
  select: changeSort(sort.key),
48
79
  isDefault: sort.key === defaultSortKey
49
80
  };
@@ -6,7 +6,8 @@ export function processCategoriesResponse(response, type, term) {
6
6
  return result;
7
7
  }
8
8
  export function getAggregateTypeAndTerm(aggregates) {
9
- var type = aggregates === null || aggregates === void 0 ? void 0 : aggregates.aggregationType.toString();
9
+ var ref;
10
+ var type = (aggregates === null || aggregates === void 0 ? void 0 : (ref = aggregates.aggregationType) === null || ref === void 0 ? void 0 : ref.toString()) || '';
10
11
  var term = aggregates === null || aggregates === void 0 ? void 0 : aggregates.aggregationDefinition;
11
12
  return {
12
13
  type: type,
@@ -1,6 +1,6 @@
1
1
  import regeneratorRuntime from "regenerator-runtime";
2
2
  import { CatalogAggregate } from '@sentecacommerce/sdk';
3
- import { getSlug, getListingAlias } from '../utils';
3
+ import { getSlug, getListingAlias, getPostFilters } from '../utils';
4
4
  import { prepareAggregateQuery, AggregateRequestEnum, generateAggregateKey } from '../api';
5
5
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
6
6
  try {
@@ -63,7 +63,7 @@ function _prefetchCategories() {
63
63
  AggregateRequestEnum.Categories,
64
64
  aggregateKeys,
65
65
  aliasedSlug,
66
- null
66
+ getPostFilters(router),
67
67
  ], response, {
68
68
  staleTime: 30000
69
69
  });
@@ -36,11 +36,11 @@ export function prefetchListing(_) {
36
36
  }
37
37
  function _prefetchListing() {
38
38
  _prefetchListing = _asyncToGenerator(regeneratorRuntime.mark(function _callee(param) {
39
- var queryCache, router, predicate, config, ref, aliasedSlug, type, postFilter, ref1, ref2, sort, _limit, limit, offset, queryKeys, data;
39
+ var queryCache, router, predicate, config, defaultSortKey, ref, aliasedSlug, type, postFilter, ref1, ref2, sort, limit, offset, queryKeys, data;
40
40
  return regeneratorRuntime.wrap(function _callee$(_ctx) {
41
41
  while(1)switch(_ctx.prev = _ctx.next){
42
42
  case 0:
43
- queryCache = param.queryCache, router = param.router, predicate = param.predicate, config = param.config;
43
+ queryCache = param.queryCache, router = param.router, predicate = param.predicate, config = param.config, defaultSortKey = param.defaultSortKey;
44
44
  ;
45
45
  aliasedSlug = getListingAlias({
46
46
  router: router,
@@ -49,9 +49,8 @@ function _prefetchListing() {
49
49
  type = getListingPageType(router, aliasedSlug, config);
50
50
  postFilter = getPostFilters(router);
51
51
  ;
52
- sort = (ref2 = (ref1 = router.query.sort) !== null && ref1 !== void 0 ? ref1 : config === null || config === void 0 ? void 0 : config.listing.defaultSortKey) !== null && ref2 !== void 0 ? ref2 : 'defaultSort';
53
- ;
54
- limit = !!router.query.limit ? Number(router.query.limit) : (_limit = config === null || config === void 0 ? void 0 : config.listing.limit) !== null && _limit !== void 0 ? _limit : 24;
52
+ sort = (ref2 = (ref1 = router.query.sort) !== null && ref1 !== void 0 ? ref1 : defaultSortKey) !== null && ref2 !== void 0 ? ref2 : 'defaultSort';
53
+ limit = !!router.query.limit ? Number(router.query.limit) : (config === null || config === void 0 ? void 0 : config.limit) || 24;
55
54
  offset = calculateOffset((ref = router.query) === null || ref === void 0 ? void 0 : ref.page, limit);
56
55
  queryKeys = getListingQueryKeys({
57
56
  type: type,
@@ -61,7 +60,7 @@ function _prefetchListing() {
61
60
  slug: aliasedSlug,
62
61
  offset: offset
63
62
  });
64
- _ctx.next = 13;
63
+ _ctx.next = 12;
65
64
  return processListingQuery({
66
65
  router: router,
67
66
  predicate: predicate,
@@ -72,13 +71,13 @@ function _prefetchListing() {
72
71
  config: config,
73
72
  slug: aliasedSlug
74
73
  });
75
- case 13:
74
+ case 12:
76
75
  data = _ctx.sent;
77
76
  queryCache.setQueryData(queryKeys, data, {
78
77
  staleTime: 30000
79
78
  });
80
79
  return _ctx.abrupt("return", data);
81
- case 16:
80
+ case 15:
82
81
  case "end":
83
82
  return _ctx.stop();
84
83
  }
@@ -33,13 +33,12 @@ var _obj;
33
33
  export var buildCategoryQuery = function(param) {
34
34
  var aggregates = param.aggregates, predicate = param.predicate, postFilter = param.postFilter, pageType = param.pageType, config = param.config, router = param.router, slug = param.slug;
35
35
  var ref2, ref1;
36
- var type = aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType;
37
- var term = aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition;
36
+ var type = (aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType) || '';
37
+ var term = (aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition) || '';
38
38
  var aggValue = getAggValue({
39
39
  id: predicate === null || predicate === void 0 ? void 0 : predicate._id,
40
40
  term: term
41
41
  });
42
- var listingConfig = config === null || config === void 0 ? void 0 : config.listing;
43
42
  var getFilters = function() {
44
43
  var filter = '';
45
44
  switch(pageType){
@@ -49,18 +48,18 @@ export var buildCategoryQuery = function(param) {
49
48
  }));
50
49
  if (router.query.cat) filter += extendFilter({
51
50
  slug: slug,
52
- filterExtension: listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension
51
+ filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
53
52
  });
54
53
  break;
55
54
  case ListingTypesEnum.Category:
56
55
  if (router.query.cat) {
57
56
  filter += extendFilter({
58
57
  slug: slug,
59
- filterExtension: listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension
58
+ filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
60
59
  });
61
60
  } else {
62
61
  var ref;
63
- filter += (ref = listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension) !== null && ref !== void 0 ? ref : '';
62
+ filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
64
63
  }
65
64
  if (postFilter) {
66
65
  if (router.query.cat) filter += '&';
@@ -70,7 +69,7 @@ export var buildCategoryQuery = function(param) {
70
69
  case ListingTypesEnum.AttrPage:
71
70
  filter += extendFilter({
72
71
  slug: slug,
73
- filterExtension: listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension
72
+ filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
74
73
  });
75
74
  if (postFilter) filter += "&".concat(postFilter);
76
75
  break;
@@ -81,14 +80,14 @@ export var buildCategoryQuery = function(param) {
81
80
  if (postFilter) filter += "&".concat(postFilter);
82
81
  break;
83
82
  default:
84
- return "".concat((listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
83
+ return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
85
84
  }
86
85
  return filter;
87
86
  };
88
87
  var query = (_obj = {
89
88
  }, _defineProperty(_obj, type, aggValue), _defineProperty(_obj, "filter", getFilters()), _obj);
90
89
  if (pageType === ListingTypesEnum.Collection) {
91
- var collapseMode = listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.collapseMode;
90
+ var collapseMode = config === null || config === void 0 ? void 0 : config.collapseMode;
92
91
  query = _objectSpread({
93
92
  }, query, {
94
93
  collapseMode: collapseMode
@@ -66,20 +66,17 @@ export var buildFilterQuery = function(param) {
66
66
  var ref;
67
67
  var query = (predicate === null || predicate === void 0 ? void 0 : predicate.filters) || (predicate === null || predicate === void 0 ? void 0 : predicate._id) || slug;
68
68
  var queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType;
69
- var filterExtension, collapseMode;
70
- if (config.listing) {
71
- filterExtension = config.listing.filterExtension;
72
- collapseMode = config.listing.collapseMode;
73
- }
69
+ var ref1 = config || {
70
+ }, filterExtension = ref1.filterExtension, collapseMode = ref1.collapseMode;
74
71
  var filter = '';
75
72
  if (pageType === ListingTypesEnum.AttrPage) {
76
- var ref1 = _slicedToArray(getAttributePageType(router, slug), 2), type = ref1[0], val = ref1[1];
73
+ var ref2 = _slicedToArray(getAttributePageType(router, slug), 2), type = ref2[0], val = ref2[1];
77
74
  filter = "attr.".concat(type, ";eq;\"").concat(val, "\"");
78
75
  } else {
79
76
  filter = "".concat(queryType, ";eq;\"").concat(query, "\"");
80
77
  }
81
78
  if (router.query.cat) {
82
- var ref2 = _slicedToArray(getAttributePageType(router, slug), 2), type1 = ref2[0], val1 = ref2[1];
79
+ var ref3 = _slicedToArray(getAttributePageType(router, slug), 2), type1 = ref3[0], val1 = ref3[1];
83
80
  filter += "&attr.".concat(type1, ";eq;").concat(val1);
84
81
  }
85
82
  if (pageType === ListingTypesEnum.View) {
@@ -93,6 +90,7 @@ export var buildFilterQuery = function(param) {
93
90
  var aggregatesMap = aggregates === null || aggregates === void 0 ? void 0 : aggregates.reduce(function(map, agg) {
94
91
  var aggregateType = agg.aggregationType;
95
92
  var aggregationTerm = agg.aggregationDefinition;
93
+ if (!aggregateType) return map;
96
94
  if (map[aggregateType]) {
97
95
  return _objectSpread({
98
96
  }, map, _defineProperty({
@@ -1,5 +1,5 @@
1
1
  export function calculateOffset(page, limit) {
2
2
  var currentPage = Number(page || 0);
3
3
  if (currentPage < 1) return 0;
4
- return (currentPage - 1) * limit;
4
+ return (currentPage - 1) * Number(limit);
5
5
  }
@@ -31,15 +31,15 @@ function _slicedToArray(arr, i) {
31
31
  }
32
32
  export var getListingAlias = function(param) {
33
33
  var router = param.router, config = param.config;
34
- var ref;
35
34
  var query = router.query;
36
- if (!(config === null || config === void 0 ? void 0 : (ref = config.listing) === null || ref === void 0 ? void 0 : ref.slugAliases)) return query.slug;
37
- var _listing = config.listing, aliases = _listing.slugAliases;
35
+ if (!(config === null || config === void 0 ? void 0 : config.slugAliases)) return query.slug;
36
+ var aliases = config.slugAliases;
38
37
  var slugMap = {
39
38
  };
40
39
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
41
40
  try {
42
- for(var _iterator = Object.entries(aliases)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
41
+ for(var _iterator = Object.entries(aliases || {
42
+ })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
43
43
  var _value = _slicedToArray(_step.value, 2), path = _value[0], alias = _value[1];
44
44
  slugMap[alias] = path;
45
45
  }
@@ -57,6 +57,5 @@ export var getListingAlias = function(param) {
57
57
  }
58
58
  }
59
59
  }
60
- var ref1;
61
- return (ref1 = slugMap[query === null || query === void 0 ? void 0 : query.slug]) !== null && ref1 !== void 0 ? ref1 : query.slug;
60
+ return slugMap[query === null || query === void 0 ? void 0 : query.slug] || query.slug;
62
61
  };