@sentecacommerce-theme/lib 0.13.7-alpha.5 → 0.13.7-alpha.6

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 (92) 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/api.v2/core/checkout/payments/useSetMerchantPaymentMethod.js +1 -1
  7. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +1 -1
  8. package/dist/cjs/components/Html/index.js +1 -1
  9. package/dist/cjs/hooks/ui-hooks/useIsDesktop/index.js +2 -2
  10. package/dist/cjs/hooks/useAllSelectedFilters/index.js +3 -3
  11. package/dist/cjs/hooks/usePrice/index.js +1 -1
  12. package/dist/cjs/hooks/useSelectedFilters/index.js +3 -3
  13. package/dist/cjs/listing/api/queries/useAggregateQuery.js +7 -7
  14. package/dist/cjs/listing/api/queries/useInfiniteListing.js +4 -4
  15. package/dist/cjs/listing/api/queries/useListingQuery.js +37 -22
  16. package/dist/cjs/listing/api/queries/usePredicate.js +4 -4
  17. package/dist/cjs/listing/components/BasicListingSEO.js +1 -1
  18. package/dist/cjs/listing/hooks/useListingAlias.js +2 -4
  19. package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +4 -4
  20. package/dist/cjs/listing/hooks/useListingCategories.js +7 -8
  21. package/dist/cjs/listing/hooks/useListingConfig.js +3 -5
  22. package/dist/cjs/listing/hooks/useListingFilters.js +18 -19
  23. package/dist/cjs/listing/hooks/useListingItems.js +2 -2
  24. package/dist/cjs/listing/hooks/useListingMeta.js +5 -4
  25. package/dist/cjs/listing/hooks/useListingPagination.js +4 -4
  26. package/dist/cjs/listing/hooks/useListingSlug.js +3 -1
  27. package/dist/cjs/listing/hooks/useSlideFilter.js +4 -3
  28. package/dist/cjs/listing/hooks/utils.js +2 -1
  29. package/dist/cjs/listing/ssr/prefetchListing.js +4 -4
  30. package/dist/cjs/listing/utils/buildCategoryQuery.js +8 -9
  31. package/dist/cjs/listing/utils/buildFilterQuery.js +5 -7
  32. package/dist/cjs/listing/utils/getListingAlias.js +5 -6
  33. package/dist/cjs/listing/utils/getListingPageType.js +4 -3
  34. package/dist/cjs/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
  35. package/dist/cjs/product/hooks/useBnpOffers.js +2 -25
  36. package/dist/cjs/seo/components/GlobalSEO/index.js +3 -3
  37. package/dist/esm/analytics/Pixel/hooks/usePixelProductClick.js +1 -1
  38. package/dist/esm/analytics/Pixel/hooks/usePixelProductDetails.js +1 -1
  39. package/dist/esm/analytics/Pixel/hooks/usePixelProductsImpression.js +1 -1
  40. package/dist/esm/analytics/Pixel/usePixel.js +1 -1
  41. package/dist/esm/analytics/Releva/useReleva.js +1 -1
  42. package/dist/esm/api.v2/core/checkout/payments/useSetMerchantPaymentMethod.js +1 -1
  43. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +1 -1
  44. package/dist/esm/components/Html/index.js +1 -1
  45. package/dist/esm/hooks/ui-hooks/useIsDesktop/index.js +2 -2
  46. package/dist/esm/hooks/useAllSelectedFilters/index.js +4 -4
  47. package/dist/esm/hooks/usePrice/index.js +1 -1
  48. package/dist/esm/hooks/useSelectedFilters/index.js +4 -4
  49. package/dist/esm/listing/api/queries/useAggregateQuery.js +7 -7
  50. package/dist/esm/listing/api/queries/useInfiniteListing.js +4 -4
  51. package/dist/esm/listing/api/queries/useListingQuery.js +37 -22
  52. package/dist/esm/listing/api/queries/usePredicate.js +4 -4
  53. package/dist/esm/listing/components/BasicListingSEO.js +1 -1
  54. package/dist/esm/listing/hooks/useListingAlias.js +2 -4
  55. package/dist/esm/listing/hooks/useListingBreadcrumbs.js +5 -5
  56. package/dist/esm/listing/hooks/useListingCategories.js +8 -9
  57. package/dist/esm/listing/hooks/useListingConfig.js +4 -6
  58. package/dist/esm/listing/hooks/useListingFilters.js +18 -19
  59. package/dist/esm/listing/hooks/useListingItems.js +2 -2
  60. package/dist/esm/listing/hooks/useListingMeta.js +6 -5
  61. package/dist/esm/listing/hooks/useListingPagination.js +4 -4
  62. package/dist/esm/listing/hooks/useListingSlug.js +3 -1
  63. package/dist/esm/listing/hooks/useSlideFilter.js +5 -4
  64. package/dist/esm/listing/hooks/utils.js +2 -1
  65. package/dist/esm/listing/ssr/prefetchListing.js +4 -4
  66. package/dist/esm/listing/utils/buildCategoryQuery.js +8 -9
  67. package/dist/esm/listing/utils/buildFilterQuery.js +5 -7
  68. package/dist/esm/listing/utils/getListingAlias.js +5 -6
  69. package/dist/esm/listing/utils/getListingPageType.js +4 -3
  70. package/dist/esm/navigation/components/SearchBox/Components/PopularSearches/index.js +1 -1
  71. package/dist/esm/product/hooks/useBnpOffers.js +2 -2
  72. package/dist/esm/seo/components/GlobalSEO/index.js +3 -3
  73. package/dist/types/listing/api/queries/useAggregateQuery.d.ts +2 -1
  74. package/dist/types/listing/api/queries/useListingQuery.d.ts +4 -2
  75. package/dist/types/listing/api/queries/usePredicate.d.ts +2 -1
  76. package/dist/types/listing/hooks/useListingAlias.d.ts +2 -1
  77. package/dist/types/listing/hooks/useListingFilters.d.ts +0 -1
  78. package/dist/types/listing/hooks/useListingItems.d.ts +3 -2
  79. package/dist/types/listing/hooks/useListingSEOCategories.d.ts +6 -4
  80. package/dist/types/listing/hooks/utils.d.ts +3 -2
  81. package/dist/types/listing/ssr/prefetchCategories.d.ts +2 -2
  82. package/dist/types/listing/ssr/prefetchListing.d.ts +4 -4
  83. package/dist/types/listing/ssr/prefetchPredicate.d.ts +2 -1
  84. package/dist/types/listing/types.d.ts +27 -16
  85. package/dist/types/listing/utils/buildCategoryQuery.d.ts +2 -1
  86. package/dist/types/listing/utils/buildFilterQuery.d.ts +2 -1
  87. package/dist/types/listing/utils/extendFilter.d.ts +3 -2
  88. package/dist/types/listing/utils/getListingAlias.d.ts +2 -1
  89. package/dist/types/listing/utils/getListingPageType.d.ts +2 -2
  90. package/dist/types/types/index.d.ts +38 -40
  91. package/dist/types/utils/getSelectedFilters.d.ts +2 -1
  92. package/package.json +16 -11
@@ -6,7 +6,6 @@ import { useListingConfig, useListingSlug, useListingAlias } from '../../hooks';
6
6
  import { getListingQueryKeys, usePredicate } from '..';
7
7
  import { ListingTypesEnum } from '../../types';
8
8
  import { calculateOffset, getListingPageType, getPostFilters, extendFilter } from '../../utils';
9
- import { useConfigState } from '../../..';
10
9
  function _arrayWithHoles(arr) {
11
10
  if (Array.isArray(arr)) return arr;
12
11
  }
@@ -97,46 +96,47 @@ function _slicedToArray(arr, i) {
97
96
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
98
97
  }
99
98
  export var useListingQuery = function() {
100
- var ref, ref1, ref2;
99
+ var ref;
101
100
  var router = useRouter();
102
101
  var slug = useListingSlug();
103
102
  var config = useListingConfig();
104
- var globalConfig = useConfigState();
105
- var ref3 = usePredicate(), predicate = ref3.data;
106
- var ref4 = useListingAlias(), aliasedSlug = ref4.slug;
103
+ var ref1 = usePredicate(), predicate = ref1.data;
104
+ var ref2 = useListingAlias(config.meta), aliasedSlug = ref2.slug;
107
105
  var query = router.query;
108
106
  var postFilter = getPostFilters(router);
109
- var ref5, ref6;
110
- var limit = (ref6 = (ref5 = (ref = router.query) === null || ref === void 0 ? void 0 : ref.limit) !== null && ref5 !== void 0 ? ref5 : globalConfig === null || globalConfig === void 0 ? void 0 : (ref1 = globalConfig.listing) === null || ref1 === void 0 ? void 0 : ref1.limit) !== null && ref6 !== void 0 ? ref6 : 24;
111
- var _sort, ref7;
112
- var sort = (ref7 = (_sort = query.sort) !== null && _sort !== void 0 ? _sort : globalConfig === null || globalConfig === void 0 ? void 0 : (ref2 = globalConfig.listing) === null || ref2 === void 0 ? void 0 : ref2.defaultSortKey) !== null && ref7 !== void 0 ? ref7 : 'defaultSort';
107
+ var limit = Number((query === null || query === void 0 ? void 0 : query.limit) || (config === null || config === void 0 ? void 0 : (ref = config.meta) === null || ref === void 0 ? void 0 : ref.limit) || 24);
108
+ var sort = query.sort || (config === null || config === void 0 ? void 0 : config.defaultSortKey) || 'defaultSort';
113
109
  var offset = calculateOffset(query === null || query === void 0 ? void 0 : query.page, limit);
114
- var _sort1, ref8;
115
110
  var queryKeys = getListingQueryKeys({
116
111
  type: config.type,
117
112
  predicate: predicate,
118
- sort: (ref8 = (_sort1 = query.sort) !== null && _sort1 !== void 0 ? _sort1 : globalConfig.defaultSortKey) !== null && ref8 !== void 0 ? ref8 : sort,
113
+ sort: sort,
119
114
  postFilter: postFilter,
120
115
  slug: slug,
121
116
  offset: offset
122
117
  });
118
+ console.log('useListingQuery', isListingQueryEnabled(config.type, predicate));
123
119
  return useQuery(queryKeys, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
124
120
  var data;
125
121
  return regeneratorRuntime.wrap(function _callee$(_ctx) {
126
122
  while(1)switch(_ctx.prev = _ctx.next){
127
123
  case 0:
128
- data = processListingQuery({
124
+ _ctx.next = 2;
125
+ return processListingQuery({
129
126
  predicate: predicate,
130
127
  limit: limit,
131
128
  sort: sort,
132
129
  router: router,
133
130
  postFilter: postFilter,
134
131
  offset: offset,
135
- config: globalConfig,
132
+ config: config.meta,
136
133
  slug: aliasedSlug
137
134
  });
138
- return _ctx.abrupt("return", data);
139
135
  case 2:
136
+ data = _ctx.sent;
137
+ console.log('listing is Processed');
138
+ return _ctx.abrupt("return", data);
139
+ case 5:
140
140
  case "end":
141
141
  return _ctx.stop();
142
142
  }
@@ -155,31 +155,46 @@ export function processListingQuery(_) {
155
155
  }
156
156
  function _processListingQuery() {
157
157
  _processListingQuery = _asyncToGenerator(regeneratorRuntime.mark(function _callee(param) {
158
- var predicate, router, limit, sort, postFilter, offset, config, slug, ref, query, type, filter, _sort;
158
+ var predicate, router, limit, sort, postFilter, offset, config, slug, query, type, filter, _sort, _sort1;
159
159
  return regeneratorRuntime.wrap(function _callee$(_ctx) {
160
160
  while(1)switch(_ctx.prev = _ctx.next){
161
161
  case 0:
162
162
  predicate = param.predicate, router = param.router, limit = param.limit, sort = param.sort, postFilter = param.postFilter, offset = param.offset, config = param.config, slug = param.slug;
163
- ;
163
+ console.log('processListingQuery');
164
164
  query = router.query;
165
165
  type = getListingPageType(router, slug, config);
166
166
  filter = generateFilter(type, query, slug, predicate);
167
167
  ;
168
- return _ctx.abrupt("return", CatalogFilter(_objectSpread({
168
+ console.log(_objectSpread({
169
169
  limit: limit,
170
170
  offset: offset || 0,
171
171
  filter: extendFilter({
172
172
  slug: filter,
173
- filterExtension: config === null || config === void 0 ? void 0 : (ref = config.listing) === null || ref === void 0 ? void 0 : ref.filterExtension,
173
+ filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
174
174
  noSplit: true
175
175
  }),
176
176
  sort: (_sort = query.sort) !== null && _sort !== void 0 ? _sort : sort
177
177
  }, (query === null || query === void 0 ? void 0 : query.filter) && {
178
178
  postFilter: postFilter
179
- }, (config === null || config === void 0 ? void 0 : config.listing.collapseMode) && type !== ListingTypesEnum.Collection && {
180
- collapseMode: config === null || config === void 0 ? void 0 : config.listing.collapseMode
179
+ }, (config === null || config === void 0 ? void 0 : config.collapseMode) && type !== ListingTypesEnum.Collection && {
180
+ collapseMode: config === null || config === void 0 ? void 0 : config.collapseMode
181
+ }));
182
+ ;
183
+ return _ctx.abrupt("return", CatalogFilter(_objectSpread({
184
+ limit: limit,
185
+ offset: offset || 0,
186
+ filter: extendFilter({
187
+ slug: filter,
188
+ filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
189
+ noSplit: true
190
+ }),
191
+ sort: (_sort1 = query.sort) !== null && _sort1 !== void 0 ? _sort1 : sort
192
+ }, (query === null || query === void 0 ? void 0 : query.filter) && {
193
+ postFilter: postFilter
194
+ }, (config === null || config === void 0 ? void 0 : config.collapseMode) && type !== ListingTypesEnum.Collection && {
195
+ collapseMode: config === null || config === void 0 ? void 0 : config.collapseMode
181
196
  })));
182
- case 7:
197
+ case 9:
183
198
  case "end":
184
199
  return _ctx.stop();
185
200
  }
@@ -212,6 +227,6 @@ export function isListingQueryEnabled(type, predicate) {
212
227
  return false;
213
228
  }
214
229
  function parseAttribute(slug) {
215
- var ref = _slicedToArray(slug.split('-'), 2), type = ref[0], val = ref[1];
230
+ var ref = _slicedToArray((slug === null || slug === void 0 ? void 0 : slug.split('-')) || [], 2), type = ref[0], val = ref[1];
216
231
  return "attr.".concat(type, ";eq;\"").concat(val, "\"");
217
232
  }
@@ -2,11 +2,11 @@ import regeneratorRuntime from "regenerator-runtime";
2
2
  import { BrandsGetBySlug, CategoriesGetBySlug, ViewsGetBySlug, ProductsGetAttributeLabel, CollectionsGetBySlug } from '@sentecacommerce/sdk';
3
3
  import { useQuery } from 'react-query';
4
4
  import { useRouter } from 'next/router';
5
- import { useConfigState } from '../../../index';
6
5
  import { ListingTypesEnum } from '../../types';
7
6
  import { ListingQueryKeysEnum } from '../';
8
7
  import { getListingPageType } from '../../utils';
9
8
  import { useListingSlug, useListingAlias } from '../../hooks';
9
+ import { useListingConfig } from '../..';
10
10
  function _arrayWithHoles(arr) {
11
11
  if (Array.isArray(arr)) return arr;
12
12
  }
@@ -85,9 +85,9 @@ var getBySlugMap = (_obj = {
85
85
  }, _defineProperty(_obj, ListingTypesEnum.Category, CategoriesGetBySlug), _defineProperty(_obj, ListingTypesEnum.View, ViewsGetBySlug), _defineProperty(_obj, ListingTypesEnum.Brand, BrandsGetBySlug), _defineProperty(_obj, ListingTypesEnum.Collection, CollectionsGetBySlug), _obj);
86
86
  export var usePredicate = function() {
87
87
  var slug = useListingSlug();
88
+ var meta = useListingConfig().meta;
88
89
  var router = useRouter();
89
- var config = useConfigState();
90
- var ref = useListingAlias(), aliasedSlug = ref.slug;
90
+ var ref = useListingAlias(meta), aliasedSlug = ref.slug;
91
91
  var attribute = router.query.cat && aliasedSlug;
92
92
  return useQuery([
93
93
  ListingQueryKeysEnum.usePredicate,
@@ -99,7 +99,7 @@ export var usePredicate = function() {
99
99
  while(1)switch(_ctx.prev = _ctx.next){
100
100
  case 0:
101
101
  _ctx.next = 2;
102
- return processPredicateRequest(slug, router, aliasedSlug, config);
102
+ return processPredicateRequest(slug, router, aliasedSlug, meta);
103
103
  case 2:
104
104
  data = _ctx.sent;
105
105
  return _ctx.abrupt("return", data);
@@ -27,7 +27,7 @@ import { useListingMeta } from '../hooks';
27
27
  }), /*#__PURE__*/ React.createElement(OpenGraph, {
28
28
  title: formattedTitle,
29
29
  type: "website",
30
- image: image || topBanner || imagesConfig.fallbackImage,
30
+ image: image || topBanner || (imagesConfig === null || imagesConfig === void 0 ? void 0 : imagesConfig.fallbackImage) || '',
31
31
  additionalProps: [
32
32
  {
33
33
  key: 'description',
@@ -1,12 +1,10 @@
1
1
  import { getListingAlias } from '../utils';
2
- import { useConfigState } from '../..';
3
2
  import { useRouter } from 'next/router';
4
- export var useListingAlias = function() {
3
+ export var useListingAlias = function(meta) {
5
4
  var router = useRouter();
6
- var config = useConfigState();
7
5
  var slug = getListingAlias({
8
6
  router: router,
9
- config: config
7
+ config: meta
10
8
  });
11
9
  return {
12
10
  slug: slug
@@ -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,17 @@ 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;
42
+ var _limit;
43
43
  return {
44
44
  pagination: getPagination(data === null || data === void 0 ? void 0 : data.total, generateQueryFromRouter(_objectSpread({
45
- limit: (_productsPerPage = config.productsPerPage) !== null && _productsPerPage !== void 0 ? _productsPerPage : 24,
45
+ limit: (_limit = config.meta.limit) !== null && _limit !== void 0 ? _limit : 24,
46
46
  sort: router.query.sort
47
- }, router.query)), config.defaultSortKey),
47
+ }, router.query)), config.defaultSortKey || 'defaultSort'),
48
48
  query: generateQuery(router, slug)
49
49
  };
50
50
  }, [
51
51
  config.defaultSortKey,
52
- config.productsPerPage,
52
+ config.meta.limit,
53
53
  data === null || data === void 0 ? void 0 : data.total,
54
54
  router,
55
55
  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
@@ -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,
@@ -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, ref3, 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,9 @@ 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';
52
+ sort = (ref2 = (ref1 = router.query.sort) !== null && ref1 !== void 0 ? ref1 : defaultSortKey) !== null && ref2 !== void 0 ? ref2 : 'defaultSort';
53
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;
54
+ limit = !!router.query.limit ? Number(router.query.limit) : (ref3 = config === null || config === void 0 ? void 0 : config.limit) !== null && ref3 !== void 0 ? ref3 : 24;
55
55
  offset = calculateOffset((ref = router.query) === null || ref === void 0 ? void 0 : ref.page, limit);
56
56
  queryKeys = getListingQueryKeys({
57
57
  type: type,
@@ -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