@sentecacommerce-theme/lib 0.13.12 → 0.13.15

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.
@@ -96,6 +96,10 @@ var useAggregateQuery = function(aggregates, request, sort) {
96
96
  aliasedSlug,
97
97
  postFilter
98
98
  ];
99
+ if (request === AggregateRequestEnum.Filters) {
100
+ queryKeys.push('Slug: ' + router.query.slug);
101
+ queryKeys.push('Cat: ' + router.query.cat);
102
+ }
99
103
  return (0, _reactQuery).useQuery(queryKeys, _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
100
104
  var query, response;
101
105
  return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
@@ -123,7 +123,6 @@ function _unsupportedIterableToArray(o, minLen) {
123
123
  var useListingQuery = function() {
124
124
  var ref;
125
125
  var router = (0, _router).useRouter();
126
- var slug = (0, _hooks).useListingSlug();
127
126
  var config = (0, _hooks).useListingConfig();
128
127
  var ref1 = (0, _).usePredicate(), predicate = ref1.data;
129
128
  var ref2 = (0, _hooks).useListingAlias(config.meta), aliasedSlug = ref2.slug;
@@ -180,11 +179,12 @@ function processListingQuery(_) {
180
179
  }
181
180
  function _processListingQuery() {
182
181
  _processListingQuery = _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(param) {
183
- var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, query, type, filter, _sort;
182
+ var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, ref, query, type, filter, _sort;
184
183
  return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
185
184
  while(1)switch(_ctx.prev = _ctx.next){
186
185
  case 0:
187
186
  predicate = param.predicate, router = param.router, limit = param.limit, sort = param.sort, postFilter = param.postFilter, offset = param.offset, config = param.config, slug = param.slug, _includeVariants = param.includeVariants, includeVariants = _includeVariants === void 0 ? false : _includeVariants;
187
+ ;
188
188
  query = router.query;
189
189
  type = (0, _utils).getListingPageType(router, slug, config);
190
190
  filter = generateFilter(type, query, slug, predicate);
@@ -194,7 +194,7 @@ function _processListingQuery() {
194
194
  offset: offset || 0,
195
195
  filter: (0, _utils).extendFilter({
196
196
  slug: filter,
197
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
197
+ filterExtension: (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension),
198
198
  noSplit: true
199
199
  }),
200
200
  sort: (_sort = query.sort) !== null && _sort !== void 0 ? _sort : sort
@@ -205,7 +205,7 @@ function _processListingQuery() {
205
205
  }, {
206
206
  includeVariants: includeVariants
207
207
  })));
208
- case 6:
208
+ case 7:
209
209
  case "end":
210
210
  return _ctx.stop();
211
211
  }
@@ -65,7 +65,11 @@ function ListingCategoriesProvider(param) {
65
65
  return null;
66
66
  }, [
67
67
  aggData,
68
- router
68
+ router,
69
+ slug,
70
+ meta,
71
+ type,
72
+ term
69
73
  ]);
70
74
  return(/*#__PURE__*/ _react.default.createElement(ListingCategoriesStateContext.Provider, {
71
75
  value: {
@@ -42,26 +42,36 @@ var buildCategoryQuery = function(param) {
42
42
  term: term
43
43
  });
44
44
  var getFilters = function() {
45
+ var ref;
46
+ var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
45
47
  var filter = '';
46
48
  switch(pageType){
47
49
  case _index.ListingTypesEnum.Brand:
48
- filter += "brand;eq;\"".concat(predicate === null || predicate === void 0 ? void 0 : predicate._id, "\"").concat(applyBrandsPostFilter({
49
- postFilter: postFilter
50
- }));
51
- if (router.query.cat) filter += '&' + (0, _extendFilter).extendFilter({
52
- slug: slug,
53
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
54
- });
50
+ if (router.query.cat) {
51
+ filter += (0, _extendFilter).extendFilter({
52
+ slug: slug,
53
+ filterExtension: filterExtension
54
+ });
55
+ } else {
56
+ filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
57
+ }
58
+ // Note: We can't filter the category tree by a category
59
+ postFilter = postFilter === null || postFilter === void 0 ? void 0 : postFilter.split('&').filter(function(f) {
60
+ return !f.includes('category');
61
+ }).join('&');
62
+ if (postFilter) {
63
+ if (filter) filter += '&';
64
+ filter += postFilter;
65
+ }
55
66
  break;
56
67
  case _index.ListingTypesEnum.Category:
57
68
  if (router.query.cat) {
58
69
  filter += (0, _extendFilter).extendFilter({
59
70
  slug: slug,
60
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
71
+ filterExtension: filterExtension
61
72
  });
62
73
  } else {
63
- var ref;
64
- filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
74
+ filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
65
75
  }
66
76
  if (postFilter) {
67
77
  if (filter) filter += '&';
@@ -71,7 +81,7 @@ var buildCategoryQuery = function(param) {
71
81
  case _index.ListingTypesEnum.AttrPage:
72
82
  filter += (0, _extendFilter).extendFilter({
73
83
  slug: slug,
74
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
84
+ filterExtension: filterExtension
75
85
  });
76
86
  if (postFilter) filter += "&".concat(postFilter);
77
87
  break;
@@ -85,12 +95,12 @@ var buildCategoryQuery = function(param) {
85
95
  filter += applyViewsPostFilter({
86
96
  postFilter: postFilter
87
97
  });
88
- if (config === null || config === void 0 ? void 0 : config.filterExtension) {
89
- filter += filter ? "&".concat(config === null || config === void 0 ? void 0 : config.filterExtension) : config === null || config === void 0 ? void 0 : config.filterExtension;
98
+ if (filterExtension) {
99
+ filter += filter ? "&".concat(filterExtension) : filterExtension;
90
100
  }
91
101
  break;
92
102
  default:
93
- return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
103
+ return "".concat(filterExtension + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
94
104
  }
95
105
  return filter;
96
106
  };
@@ -81,10 +81,11 @@ function _unsupportedIterableToArray(o, minLen) {
81
81
  }
82
82
  var buildFilterQuery = function(param) {
83
83
  var predicate = param.predicate, slug = param.slug, pageType = param.pageType, router = param.router, aggregates = param.aggregates, config = param.config, postFilter = param.postFilter;
84
- var ref;
84
+ var ref, ref1;
85
85
  var query = (predicate === null || predicate === void 0 ? void 0 : predicate.filters) || (predicate === null || predicate === void 0 ? void 0 : predicate._id) || slug;
86
86
  var queryType = pageType === _index.ListingTypesEnum.Search ? 'text' : pageType;
87
- var ref1 = config || {}, filterExtension = ref1.filterExtension, collapseMode = ref1.collapseMode;
87
+ var collapseMode = (config || {}).collapseMode;
88
+ var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
88
89
  var filter = '';
89
90
  if (pageType === _index.ListingTypesEnum.AttrPage) {
90
91
  var ref2 = _slicedToArray((0, _utils).getAttributePageType(router, slug), 2), type = ref2[0], val = ref2[1];
@@ -120,7 +121,7 @@ var buildFilterQuery = function(param) {
120
121
  noSplit: true
121
122
  })
122
123
  });
123
- if ((ref = router.query) === null || ref === void 0 ? void 0 : ref.filter) builtQuery = _objectSpread({}, builtQuery, {
124
+ if ((ref1 = router.query) === null || ref1 === void 0 ? void 0 : ref1.filter) builtQuery = _objectSpread({}, builtQuery, {
124
125
  postFilter: postFilter
125
126
  });
126
127
  if (pageType !== _index.ListingTypesEnum.Collection && collapseMode) builtQuery = _objectSpread({}, builtQuery, {
@@ -43,7 +43,10 @@ function _interopRequireDefault(obj) {
43
43
  }
44
44
  var useMenuQuery = function() {
45
45
  var interfaceKey = (0, _index).useConfigState().interfaceKey;
46
- return (0, _reactQuery).useQuery(_keys.NavigationKeysEnum.useMenuQuery, _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
46
+ return (0, _reactQuery).useQuery([
47
+ _keys.NavigationKeysEnum.useMenuQuery,
48
+ interfaceKey
49
+ ], _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() {
47
50
  return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
48
51
  while(1)switch(_ctx.prev = _ctx.next){
49
52
  case 0:
@@ -55,7 +55,10 @@ function _prefetchMenu() {
55
55
  case 2:
56
56
  data = _ctx.sent;
57
57
  menus = data === null || data === void 0 ? void 0 : data.results;
58
- queryCache.setQueryData(_keys.NavigationKeysEnum.useMenuQuery, menus, {
58
+ queryCache.setQueryData([
59
+ _keys.NavigationKeysEnum.useMenuQuery,
60
+ interfaceKey
61
+ ], menus, {
59
62
  staleTime: 30000
60
63
  });
61
64
  case 5:
@@ -16,12 +16,28 @@ function _interopRequireDefault(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
+ /**
20
+ * Template Options:
21
+ * :title: -> is going to be replace with the title
22
+ * :name: -> is going to be replace with the name
23
+ * :description: -> is going to be replace with the description
24
+ * :category: -> is going to be replace with the category
25
+ * :price: -> is going to be replace with the price
26
+ * :quantity: -> is going to be replace with the quantity
27
+ * :brand: -> is going to be replace with the brand
28
+ *
29
+ */ var truncateToCharLength = function(text, maxLenChars) {
30
+ var separator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ' ';
31
+ var cut = text.indexOf(separator, maxLenChars);
32
+ if (cut === -1) return text;
33
+ return text.substring(0, cut);
34
+ };
19
35
  function ProductSEO() {
20
36
  var ref16 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _favorTitleTemplateOverMeta = ref16.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = ref16.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = ref16.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = ref16.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate;
21
37
  var ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14;
22
38
  var ref15 = (0, _useProduct).useProductState(), selectedVariant = ref15.selectedVariant, metaData = ref15.metaData, seoData = ref15.seoData;
23
39
  var domain = (0, _useConfig).useConfigState().domain;
24
- var description = (0, _utils).escape(seoData.description || metaData.shortDescription || metaData.description || '');
40
+ var description = (0, _utils).escape(seoData.description || metaData.shortDescription || truncateToCharLength(metaData === null || metaData === void 0 ? void 0 : metaData.description, 200) || '');
25
41
  var title = seoData.title || metaData.name || '';
26
42
  var price = (0, _usePrice).usePrice({
27
43
  price: selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref1 = selectedVariant.offer) === null || ref1 === void 0 ? void 0 : ref1.originalPrice
@@ -84,6 +84,10 @@ export var useAggregateQuery = function(aggregates, request, sort) {
84
84
  aliasedSlug,
85
85
  postFilter
86
86
  ];
87
+ if (request === AggregateRequestEnum.Filters) {
88
+ queryKeys.push('Slug: ' + router.query.slug);
89
+ queryKeys.push('Cat: ' + router.query.cat);
90
+ }
87
91
  return useQuery(queryKeys, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
88
92
  var query, response;
89
93
  return regeneratorRuntime.wrap(function _callee$(_ctx) {
@@ -2,7 +2,7 @@ import regeneratorRuntime from "regenerator-runtime";
2
2
  import { CatalogFilter } from '@sentecacommerce/sdk';
3
3
  import { useQuery } from 'react-query';
4
4
  import { useRouter } from 'next/router';
5
- import { useListingConfig, useListingSlug, useListingAlias } from '../../hooks';
5
+ import { useListingConfig, useListingAlias } from '../../hooks';
6
6
  import { getListingQueryKeys, usePredicate } from '..';
7
7
  import { ListingTypesEnum } from '../../types';
8
8
  import { calculateOffset, getListingPageType, getPostFilters, extendFilter } from '../../utils';
@@ -112,7 +112,6 @@ function _unsupportedIterableToArray(o, minLen) {
112
112
  export var useListingQuery = function() {
113
113
  var ref;
114
114
  var router = useRouter();
115
- var slug = useListingSlug();
116
115
  var config = useListingConfig();
117
116
  var ref1 = usePredicate(), predicate = ref1.data;
118
117
  var ref2 = useListingAlias(config.meta), aliasedSlug = ref2.slug;
@@ -168,11 +167,12 @@ export function processListingQuery(_) {
168
167
  }
169
168
  function _processListingQuery() {
170
169
  _processListingQuery = _asyncToGenerator(regeneratorRuntime.mark(function _callee(param) {
171
- var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, query, type, filter, _sort;
170
+ var predicate, router, limit, sort, postFilter, offset, config, slug, _includeVariants, includeVariants, ref, query, type, filter, _sort;
172
171
  return regeneratorRuntime.wrap(function _callee$(_ctx) {
173
172
  while(1)switch(_ctx.prev = _ctx.next){
174
173
  case 0:
175
174
  predicate = param.predicate, router = param.router, limit = param.limit, sort = param.sort, postFilter = param.postFilter, offset = param.offset, config = param.config, slug = param.slug, _includeVariants = param.includeVariants, includeVariants = _includeVariants === void 0 ? false : _includeVariants;
175
+ ;
176
176
  query = router.query;
177
177
  type = getListingPageType(router, slug, config);
178
178
  filter = generateFilter(type, query, slug, predicate);
@@ -182,7 +182,7 @@ function _processListingQuery() {
182
182
  offset: offset || 0,
183
183
  filter: extendFilter({
184
184
  slug: filter,
185
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension,
185
+ filterExtension: (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension),
186
186
  noSplit: true
187
187
  }),
188
188
  sort: (_sort = query.sort) !== null && _sort !== void 0 ? _sort : sort
@@ -193,7 +193,7 @@ function _processListingQuery() {
193
193
  }, {
194
194
  includeVariants: includeVariants
195
195
  })));
196
- case 6:
196
+ case 7:
197
197
  case "end":
198
198
  return _ctx.stop();
199
199
  }
@@ -55,7 +55,11 @@ export function ListingCategoriesProvider(param) {
55
55
  return null;
56
56
  }, [
57
57
  aggData,
58
- router
58
+ router,
59
+ slug,
60
+ meta,
61
+ type,
62
+ term
59
63
  ]);
60
64
  return(/*#__PURE__*/ React.createElement(ListingCategoriesStateContext.Provider, {
61
65
  value: {
@@ -38,26 +38,36 @@ export var buildCategoryQuery = function(param) {
38
38
  term: term
39
39
  });
40
40
  var getFilters = function() {
41
+ var ref;
42
+ var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config, predicate)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
41
43
  var filter = '';
42
44
  switch(pageType){
43
45
  case ListingTypesEnum.Brand:
44
- filter += "brand;eq;\"".concat(predicate === null || predicate === void 0 ? void 0 : predicate._id, "\"").concat(applyBrandsPostFilter({
45
- postFilter: postFilter
46
- }));
47
- if (router.query.cat) filter += '&' + extendFilter({
48
- slug: slug,
49
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
50
- });
46
+ if (router.query.cat) {
47
+ filter += extendFilter({
48
+ slug: slug,
49
+ filterExtension: filterExtension
50
+ });
51
+ } else {
52
+ filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
53
+ }
54
+ // Note: We can't filter the category tree by a category
55
+ postFilter = postFilter === null || postFilter === void 0 ? void 0 : postFilter.split('&').filter(function(f) {
56
+ return !f.includes('category');
57
+ }).join('&');
58
+ if (postFilter) {
59
+ if (filter) filter += '&';
60
+ filter += postFilter;
61
+ }
51
62
  break;
52
63
  case ListingTypesEnum.Category:
53
64
  if (router.query.cat) {
54
65
  filter += extendFilter({
55
66
  slug: slug,
56
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
67
+ filterExtension: filterExtension
57
68
  });
58
69
  } else {
59
- var ref;
60
- filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
70
+ filter += filterExtension !== null && filterExtension !== void 0 ? filterExtension : '';
61
71
  }
62
72
  if (postFilter) {
63
73
  if (filter) filter += '&';
@@ -67,7 +77,7 @@ export var buildCategoryQuery = function(param) {
67
77
  case ListingTypesEnum.AttrPage:
68
78
  filter += extendFilter({
69
79
  slug: slug,
70
- filterExtension: config === null || config === void 0 ? void 0 : config.filterExtension
80
+ filterExtension: filterExtension
71
81
  });
72
82
  if (postFilter) filter += "&".concat(postFilter);
73
83
  break;
@@ -81,12 +91,12 @@ export var buildCategoryQuery = function(param) {
81
91
  filter += applyViewsPostFilter({
82
92
  postFilter: postFilter
83
93
  });
84
- if (config === null || config === void 0 ? void 0 : config.filterExtension) {
85
- filter += filter ? "&".concat(config === null || config === void 0 ? void 0 : config.filterExtension) : config === null || config === void 0 ? void 0 : config.filterExtension;
94
+ if (filterExtension) {
95
+ filter += filter ? "&".concat(filterExtension) : filterExtension;
86
96
  }
87
97
  break;
88
98
  default:
89
- return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
99
+ return "".concat(filterExtension + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
90
100
  }
91
101
  return filter;
92
102
  };
@@ -77,10 +77,11 @@ function _unsupportedIterableToArray(o, minLen) {
77
77
  }
78
78
  export var buildFilterQuery = function(param) {
79
79
  var predicate = param.predicate, slug = param.slug, pageType = param.pageType, router = param.router, aggregates = param.aggregates, config = param.config, postFilter = param.postFilter;
80
- var ref;
80
+ var ref, ref1;
81
81
  var query = (predicate === null || predicate === void 0 ? void 0 : predicate.filters) || (predicate === null || predicate === void 0 ? void 0 : predicate._id) || slug;
82
82
  var queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType;
83
- var ref1 = config || {}, filterExtension = ref1.filterExtension, collapseMode = ref1.collapseMode;
83
+ var collapseMode = (config || {}).collapseMode;
84
+ var filterExtension = (config === null || config === void 0 ? void 0 : (ref = config.getFilterExtension) === null || ref === void 0 ? void 0 : ref.call(config)) || (config === null || config === void 0 ? void 0 : config.filterExtension);
84
85
  var filter = '';
85
86
  if (pageType === ListingTypesEnum.AttrPage) {
86
87
  var ref2 = _slicedToArray(getAttributePageType(router, slug), 2), type = ref2[0], val = ref2[1];
@@ -116,7 +117,7 @@ export var buildFilterQuery = function(param) {
116
117
  noSplit: true
117
118
  })
118
119
  });
119
- if ((ref = router.query) === null || ref === void 0 ? void 0 : ref.filter) builtQuery = _objectSpread({}, builtQuery, {
120
+ if ((ref1 = router.query) === null || ref1 === void 0 ? void 0 : ref1.filter) builtQuery = _objectSpread({}, builtQuery, {
120
121
  postFilter: postFilter
121
122
  });
122
123
  if (pageType !== ListingTypesEnum.Collection && collapseMode) builtQuery = _objectSpread({}, builtQuery, {
@@ -34,7 +34,10 @@ function _asyncToGenerator(fn) {
34
34
  }
35
35
  export var useMenuQuery = function() {
36
36
  var interfaceKey = useConfigState().interfaceKey;
37
- return useQuery(NavigationKeysEnum.useMenuQuery, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
37
+ return useQuery([
38
+ NavigationKeysEnum.useMenuQuery,
39
+ interfaceKey
40
+ ], _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
38
41
  return regeneratorRuntime.wrap(function _callee$(_ctx) {
39
42
  while(1)switch(_ctx.prev = _ctx.next){
40
43
  case 0:
@@ -46,7 +46,10 @@ function _prefetchMenu() {
46
46
  case 2:
47
47
  data = _ctx.sent;
48
48
  menus = data === null || data === void 0 ? void 0 : data.results;
49
- queryCache.setQueryData(NavigationKeysEnum.useMenuQuery, menus, {
49
+ queryCache.setQueryData([
50
+ NavigationKeysEnum.useMenuQuery,
51
+ interfaceKey
52
+ ], menus, {
50
53
  staleTime: 30000
51
54
  });
52
55
  case 5:
@@ -16,12 +16,18 @@ import { useConfigState } from '../../../hooks/useConfig';
16
16
  * :quantity: -> is going to be replace with the quantity
17
17
  * :brand: -> is going to be replace with the brand
18
18
  *
19
- */ export function ProductSEO() {
19
+ */ var truncateToCharLength = function(text, maxLenChars) {
20
+ var separator = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ' ';
21
+ var cut = text.indexOf(separator, maxLenChars);
22
+ if (cut === -1) return text;
23
+ return text.substring(0, cut);
24
+ };
25
+ export function ProductSEO() {
20
26
  var ref16 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _favorTitleTemplateOverMeta = ref16.favorTitleTemplateOverMeta, favorTitleTemplateOverMeta = _favorTitleTemplateOverMeta === void 0 ? false : _favorTitleTemplateOverMeta, _favorDescriptionTemplateOverMeta = ref16.favorDescriptionTemplateOverMeta, favorDescriptionTemplateOverMeta = _favorDescriptionTemplateOverMeta === void 0 ? false : _favorDescriptionTemplateOverMeta, _titleTemplate = ref16.titleTemplate, titleTemplate = _titleTemplate === void 0 ? ':title:' : _titleTemplate, _descriptionTemplate = ref16.descriptionTemplate, descriptionTemplate = _descriptionTemplate === void 0 ? ':description:' : _descriptionTemplate;
21
27
  var ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14;
22
28
  var ref15 = useProductState(), selectedVariant = ref15.selectedVariant, metaData = ref15.metaData, seoData = ref15.seoData;
23
29
  var domain = useConfigState().domain;
24
- var description = escape(seoData.description || metaData.shortDescription || metaData.description || '');
30
+ var description = escape(seoData.description || metaData.shortDescription || truncateToCharLength(metaData === null || metaData === void 0 ? void 0 : metaData.description, 200) || '');
25
31
  var title = seoData.title || metaData.name || '';
26
32
  var price = usePrice({
27
33
  price: selectedVariant === null || selectedVariant === void 0 ? void 0 : (ref1 = selectedVariant.offer) === null || ref1 === void 0 ? void 0 : ref1.originalPrice
@@ -1,4 +1,5 @@
1
1
  import { BooleanField, StringField, NumberField, EnumField, ListField, GroupField } from '@sentecacommerce-theme/cms';
2
+ import { PredicateType } from './api/queries/usePredicate';
2
3
  export declare type FiltersQuery = {
3
4
  storeKey?: string;
4
5
  currencyCode?: string;
@@ -82,6 +83,7 @@ export interface ListingPageMeta {
82
83
  [key: string]: string;
83
84
  };
84
85
  filterExtension?: StringField;
86
+ getFilterExtension?: (predicate?: PredicateType) => StringField;
85
87
  collapseMode?: StringField;
86
88
  limit: NumberField;
87
89
  includeVariants?: BooleanField;
@@ -1,14 +1,3 @@
1
- /**
2
- * Template Options:
3
- * :title: -> is going to be replace with the title
4
- * :name: -> is going to be replace with the name
5
- * :description: -> is going to be replace with the description
6
- * :category: -> is going to be replace with the category
7
- * :price: -> is going to be replace with the price
8
- * :quantity: -> is going to be replace with the quantity
9
- * :brand: -> is going to be replace with the brand
10
- *
11
- */
12
1
  export declare function ProductSEO({ favorTitleTemplateOverMeta, favorDescriptionTemplateOverMeta, titleTemplate, descriptionTemplate, }?: {
13
2
  favorTitleTemplateOverMeta?: boolean;
14
3
  favorDescriptionTemplateOverMeta?: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentecacommerce-theme/lib",
3
3
  "sideEffects": false,
4
- "version": "0.13.12",
4
+ "version": "0.13.15",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types/index.d.ts",
@@ -31,13 +31,13 @@
31
31
  "watch:cjs": "swc src --out-dir dist/cjs -w",
32
32
  "watch:esm": "swc src --out-dir dist/esm --no-swcrc -w"
33
33
  },
34
- "gitHead": "1b0787f223a54c08f263c5207a6760fb5c9dc81c",
34
+ "gitHead": "29ad2b188f1645f30ed28f6068e232bbe6fc732b",
35
35
  "peerDependencies": {
36
36
  "react-query": "^2.26.2"
37
37
  },
38
38
  "dependencies": {
39
- "@sentecacommerce-theme/base": "^0.13.12",
40
- "@sentecacommerce-theme/cms": "^0.13.12",
39
+ "@sentecacommerce-theme/base": "^0.13.15",
40
+ "@sentecacommerce-theme/cms": "^0.13.15",
41
41
  "@sentecacommerce/sdk": "2.0.175",
42
42
  "body-scroll-lock": "^3.1.5",
43
43
  "copy-to-clipboard": "^3.3.1",