@sentecacommerce-theme/lib 0.13.1 → 0.13.2
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.
- package/dist/cjs/analytics/Pixel/mainScript.js +2 -1
- package/dist/cjs/api/getSDKConfig.js +4 -2
- package/dist/cjs/api/myCartApi/index.js +8 -2
- package/dist/cjs/basket/api/mutations/index.js +14 -0
- package/dist/cjs/basket/api/mutations/useChangeGiftVariant.js +116 -0
- package/dist/cjs/basket/hooks/index.js +12 -0
- package/dist/cjs/basket/hooks/useChangeGiftVariant.js +16 -0
- package/dist/cjs/config/SentecaProvider.js +3 -1
- package/dist/cjs/hooks/useAggregateResult/index.js +5 -1
- package/dist/cjs/hooks/useAvailability/index.js +1 -1
- package/dist/cjs/hooks/useClearAllFilters/index.js +2 -0
- package/dist/cjs/hooks/useProduct/index.js +36 -26
- package/dist/cjs/hooks/wishlist-hooks/useWishlistItem/index.js +39 -15
- package/dist/cjs/listing/api/queries/useListingQuery.js +1 -1
- package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +20 -8
- package/dist/cjs/listing/hooks/useListingCategories.js +2 -2
- package/dist/cjs/listing/hooks/useListingFilters.js +7 -1
- package/dist/cjs/listing/hooks/useListingMeta.js +51 -40
- package/dist/cjs/listing/hooks/useSlideFilter.js +27 -4
- package/dist/cjs/listing/ssr/prefetchCategories.js +5 -6
- package/dist/cjs/listing/ssr/prefetchPredicate.js +4 -4
- package/dist/cjs/listing/utils/buildCategoryQuery.js +22 -1
- package/dist/cjs/navigation/components/SearchBox/Components/EmptyBox/index.js +7 -7
- package/dist/cjs/navigation/components/SearchBox/index.js +4 -4
- package/dist/cjs/seo/components/TranslationsMeta/index.js +43 -14
- package/dist/cjs/seo/components/index.js +12 -0
- package/dist/cjs/seo/hooks/useSeoTranslations.js +55 -14
- package/dist/cjs/ui/components/GridStyles.js +2 -2
- package/dist/cjs/ui/components/RangeSliderInput.js +14 -1
- package/dist/cjs/user/api/queries/useGetMyLoyaltyCardQuery.js +49 -3
- package/dist/cjs/utils/getLocaleFromPath.js +13 -0
- package/dist/cjs/utils/getSelectedFilters.js +3 -1
- package/dist/cjs/utils/index.js +12 -0
- package/dist/cjs/utils/isTouchDevice.js +2 -1
- package/dist/cjs/utils/localStorage.js +7 -2
- package/dist/esm/analytics/Pixel/mainScript.js +2 -1
- package/dist/esm/api/getSDKConfig.js +5 -3
- package/dist/esm/api/myCartApi/index.js +8 -2
- package/dist/esm/basket/api/mutations/index.js +1 -0
- package/dist/esm/basket/api/mutations/useChangeGiftVariant.js +106 -0
- package/dist/esm/basket/hooks/index.js +1 -0
- package/dist/esm/basket/hooks/useChangeGiftVariant.js +3 -0
- package/dist/esm/config/SentecaProvider.js +3 -1
- package/dist/esm/hooks/useAggregateResult/index.js +5 -1
- package/dist/esm/hooks/useAvailability/index.js +1 -1
- package/dist/esm/hooks/useClearAllFilters/index.js +2 -0
- package/dist/esm/hooks/useProduct/index.js +28 -18
- package/dist/esm/hooks/wishlist-hooks/useWishlistItem/index.js +21 -13
- package/dist/esm/listing/api/queries/useListingQuery.js +1 -1
- package/dist/esm/listing/hooks/useListingBreadcrumbs.js +15 -3
- package/dist/esm/listing/hooks/useListingCategories.js +2 -2
- package/dist/esm/listing/hooks/useListingFilters.js +7 -1
- package/dist/esm/listing/hooks/useListingMeta.js +51 -42
- package/dist/esm/listing/hooks/useSlideFilter.js +27 -4
- package/dist/esm/listing/ssr/prefetchCategories.js +6 -7
- package/dist/esm/listing/ssr/prefetchPredicate.js +4 -4
- package/dist/esm/listing/utils/buildCategoryQuery.js +22 -1
- package/dist/esm/navigation/components/SearchBox/Components/EmptyBox/index.js +7 -7
- package/dist/esm/navigation/components/SearchBox/index.js +4 -4
- package/dist/esm/seo/components/TranslationsMeta/index.js +43 -14
- package/dist/esm/seo/components/index.js +1 -0
- package/dist/esm/seo/hooks/useSeoTranslations.js +55 -14
- package/dist/esm/ui/components/GridStyles.js +2 -2
- package/dist/esm/ui/components/RangeSliderInput.js +14 -1
- package/dist/esm/user/api/queries/useGetMyLoyaltyCardQuery.js +44 -3
- package/dist/esm/utils/getLocaleFromPath.js +8 -0
- package/dist/esm/utils/getSelectedFilters.js +3 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/isTouchDevice.js +2 -1
- package/dist/esm/utils/localStorage.js +7 -2
- package/dist/types/basket/api/mutations/index.d.ts +1 -0
- package/dist/types/basket/api/mutations/useChangeGiftVariant.d.ts +2 -0
- package/dist/types/basket/hooks/index.d.ts +1 -0
- package/dist/types/basket/hooks/useChangeGiftVariant.d.ts +2 -0
- package/dist/types/hooks/basket-hooks/useBasketLineItem/index.d.ts +1 -2
- package/dist/types/hooks/useProduct/index.d.ts +2 -1
- package/dist/types/listing/hooks/useListingMeta.d.ts +4 -0
- package/dist/types/listing/hooks/useSlideFilter.d.ts +4 -0
- package/dist/types/listing/types.d.ts +10 -0
- package/dist/types/navigation/components/SearchBox/Components/EmptyBox/index.d.ts +5 -4
- package/dist/types/navigation/components/SearchBox/index.d.ts +7 -6
- package/dist/types/seo/components/TranslationsMeta/index.d.ts +1 -0
- package/dist/types/seo/components/index.d.ts +1 -0
- package/dist/types/seo/hooks/useSeoTranslations.d.ts +5 -3
- package/dist/types/ui/components/GridStyles.d.ts +2 -1
- package/dist/types/ui/components/RangeSliderInput.d.ts +2 -1
- package/dist/types/utils/getLocaleFromPath.d.ts +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +2 -2
@@ -1,6 +1,8 @@
|
|
1
1
|
Object.defineProperty(exports, "__esModule", {
|
2
2
|
value: true
|
3
3
|
});
|
4
|
+
exports.getFilterByType = getFilterByType;
|
5
|
+
exports.getCategoryName = getCategoryName;
|
4
6
|
exports.useListingMeta = void 0;
|
5
7
|
var _react = _interopRequireDefault(require("react"));
|
6
8
|
var _api = require("../api");
|
@@ -8,7 +10,6 @@ var _utils = require("../../utils");
|
|
8
10
|
var _assetsToMap = require("../../utils/assetsToMap");
|
9
11
|
var _router = require("next/router");
|
10
12
|
var _utils1 = require("../utils");
|
11
|
-
var _types = require("../types");
|
12
13
|
var _index = require("../../index");
|
13
14
|
var _useListingFilters = require("./useListingFilters");
|
14
15
|
var _useListingCategories = require("./useListingCategories");
|
@@ -32,6 +33,33 @@ function _iterableToArray(iter) {
|
|
32
33
|
function _nonIterableSpread() {
|
33
34
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
34
35
|
}
|
36
|
+
function _objectWithoutProperties(source, excluded) {
|
37
|
+
if (source == null) return {};
|
38
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
39
|
+
var key, i;
|
40
|
+
if (Object.getOwnPropertySymbols) {
|
41
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
42
|
+
for(i = 0; i < sourceSymbolKeys.length; i++){
|
43
|
+
key = sourceSymbolKeys[i];
|
44
|
+
if (excluded.indexOf(key) >= 0) continue;
|
45
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
46
|
+
target[key] = source[key];
|
47
|
+
}
|
48
|
+
}
|
49
|
+
return target;
|
50
|
+
}
|
51
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
52
|
+
if (source == null) return {};
|
53
|
+
var target = {};
|
54
|
+
var sourceKeys = Object.keys(source);
|
55
|
+
var key, i;
|
56
|
+
for(i = 0; i < sourceKeys.length; i++){
|
57
|
+
key = sourceKeys[i];
|
58
|
+
if (excluded.indexOf(key) >= 0) continue;
|
59
|
+
target[key] = source[key];
|
60
|
+
}
|
61
|
+
return target;
|
62
|
+
}
|
35
63
|
function _toConsumableArray(arr) {
|
36
64
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
37
65
|
}
|
@@ -90,74 +118,57 @@ var useListingMeta = function() {
|
|
90
118
|
};
|
91
119
|
exports.useListingMeta = useListingMeta;
|
92
120
|
function processDisplayName(slug, config, name, breadcrumb, router, aggData, categoriesData) {
|
121
|
+
var ref, ref5, ref6;
|
93
122
|
var listingName = (0, _utils).getTranslatableField(name);
|
94
123
|
var brandName = getBrandName(router, aggData);
|
95
124
|
var categoryName = getCategoryName(router, categoriesData);
|
96
125
|
var type = (0, _utils1).getListingPageType(router, slug, config);
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
return "Всички продукти от ".concat(listingName, " за ").concat(attribute);
|
111
|
-
}
|
112
|
-
return "".concat(categoryName, " от ").concat(listingName, " за ").concat(attribute);
|
113
|
-
}
|
114
|
-
}
|
115
|
-
if (type === _types.ListingTypesEnum.Category && brandName) {
|
116
|
-
return "".concat(listingName, " от ").concat(brandName);
|
117
|
-
}
|
118
|
-
if (type === _types.ListingTypesEnum.Brand) {
|
119
|
-
if (!categoryName) {
|
120
|
-
return "Всички продукти от ".concat(listingName);
|
121
|
-
}
|
122
|
-
return "".concat(categoryName, " от ").concat(listingName);
|
123
|
-
}
|
124
|
-
if (type === _types.ListingTypesEnum.Search && (router === null || router === void 0 ? void 0 : router.query.search)) {
|
125
|
-
return "".concat(listingName, " от \"").concat(router.query.search, "\"");
|
126
|
-
}
|
127
|
-
return listingName;
|
126
|
+
var getTitle = config.getTitle, rest = _objectWithoutProperties(config, [
|
127
|
+
"getTitle"
|
128
|
+
]);
|
129
|
+
var title = getTitle === null || getTitle === void 0 ? void 0 : getTitle(type, rest, {
|
130
|
+
category: categoryName,
|
131
|
+
brand: brandName,
|
132
|
+
defaultName: listingName,
|
133
|
+
attribute: (ref = config.titleAliases) === null || ref === void 0 ? void 0 : ref[slug],
|
134
|
+
childAttribute: (0, _utils).getTranslatableField(breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.label),
|
135
|
+
search: (router === null || router === void 0 ? void 0 : (ref5 = router.query) === null || ref5 === void 0 ? void 0 : ref5.q) || (router === null || router === void 0 ? void 0 : (ref6 = router.query) === null || ref6 === void 0 ? void 0 : ref6.search),
|
136
|
+
isWithAttribute: Boolean(router === null || router === void 0 ? void 0 : router.query.cat)
|
137
|
+
});
|
138
|
+
return title || listingName;
|
128
139
|
}
|
129
140
|
function getFilterByType(filterType, router) {
|
130
141
|
var filterId = '';
|
131
142
|
if (Array.isArray(router === null || router === void 0 ? void 0 : router.query.filter)) {
|
132
|
-
var ref,
|
143
|
+
var ref, ref7;
|
133
144
|
var filters = (ref = router === null || router === void 0 ? void 0 : router.query.filter) === null || ref === void 0 ? void 0 : ref.filter(function(x) {
|
134
145
|
return x === null || x === void 0 ? void 0 : x.includes(filterType);
|
135
146
|
});
|
136
147
|
if ((filters === null || filters === void 0 ? void 0 : filters.length) && filters.length > 1) {
|
137
148
|
return '';
|
138
149
|
}
|
139
|
-
var filterTerm = (
|
150
|
+
var filterTerm = (ref7 = /\d+/.exec((filters === null || filters === void 0 ? void 0 : filters[0]) || '')) === null || ref7 === void 0 ? void 0 : ref7[0];
|
140
151
|
if (!filterTerm) return '';
|
141
152
|
filterId = filterTerm;
|
142
153
|
} else {
|
143
|
-
var
|
144
|
-
var isFiltered = router === null || router === void 0 ? void 0 : (
|
154
|
+
var ref8, ref9, ref10;
|
155
|
+
var isFiltered = router === null || router === void 0 ? void 0 : (ref8 = router.query) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.filter) === null || ref9 === void 0 ? void 0 : ref9.includes(filterType);
|
145
156
|
if (!isFiltered) {
|
146
157
|
return '';
|
147
158
|
}
|
148
|
-
filterId = (
|
159
|
+
filterId = (ref10 = /(\w+)-(\d+)/.exec(router === null || router === void 0 ? void 0 : router.query.filter)) === null || ref10 === void 0 ? void 0 : ref10[0];
|
149
160
|
}
|
150
161
|
return filterId;
|
151
162
|
}
|
152
163
|
function getBrandName(router, filtersData) {
|
153
|
-
var ref,
|
164
|
+
var ref, ref11, ref12;
|
154
165
|
var brandId = getFilterByType('brand', router);
|
155
166
|
var brand = (ref = filtersData === null || filtersData === void 0 ? void 0 : filtersData.find(function(x) {
|
156
167
|
return x.name === 'Brands';
|
157
|
-
})) === null || ref === void 0 ? void 0 : (
|
168
|
+
})) === null || ref === void 0 ? void 0 : (ref11 = ref.items) === null || ref11 === void 0 ? void 0 : ref11.find(function(x) {
|
158
169
|
return x.data.key === brandId;
|
159
170
|
});
|
160
|
-
return (0, _utils).getTranslatableField(brand === null || brand === void 0 ? void 0 : (
|
171
|
+
return (0, _utils).getTranslatableField(brand === null || brand === void 0 ? void 0 : (ref12 = brand.meta) === null || ref12 === void 0 ? void 0 : ref12.name);
|
161
172
|
}
|
162
173
|
function getCategoryName(router, categories) {
|
163
174
|
var categoryId = getFilterByType('category', router);
|
@@ -56,7 +56,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
56
56
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
57
57
|
}
|
58
58
|
var useSlideFilter = function(filterName, min, max) {
|
59
|
-
var
|
59
|
+
var ref3;
|
60
60
|
var router = (0, _router).useRouter();
|
61
61
|
var meta = (0, _).useListingConfig().meta;
|
62
62
|
var slug = (0, _index).useListingAlias(meta).slug;
|
@@ -71,7 +71,7 @@ var useSlideFilter = function(filterName, min, max) {
|
|
71
71
|
}
|
72
72
|
if (allFilters.includes(filterQuery)) return allFilters;
|
73
73
|
};
|
74
|
-
var filter = (
|
74
|
+
var filter = (ref3 = getFilter()) === null || ref3 === void 0 ? void 0 : ref3.replace(filterQuery, '');
|
75
75
|
var ref1 = _slicedToArray(filter ? filter.split(',') : [
|
76
76
|
min,
|
77
77
|
max
|
@@ -81,16 +81,38 @@ var useSlideFilter = function(filterName, min, max) {
|
|
81
81
|
to: +to || max
|
82
82
|
}), 2), state = ref2[0], setState = ref2[1];
|
83
83
|
var timeoutRef = (0, _react).useRef();
|
84
|
-
var
|
84
|
+
var getFormattedPriceRange = function(data) {
|
85
85
|
var formattedFrom = Math.min(Math.max(data.from, min), data.to);
|
86
86
|
var formattedTo = Math.max(data.from, Math.min(data.to, max));
|
87
|
+
return {
|
88
|
+
formattedFrom: formattedFrom,
|
89
|
+
formattedTo: formattedTo
|
90
|
+
};
|
91
|
+
};
|
92
|
+
var updateValue = (0, _react).useCallback(function(data) {
|
93
|
+
var ref = getFormattedPriceRange(data), formattedFrom = ref.formattedFrom, formattedTo = ref.formattedTo;
|
94
|
+
setState({
|
95
|
+
from: formattedFrom,
|
96
|
+
to: formattedTo
|
97
|
+
});
|
98
|
+
}, [
|
99
|
+
filterName,
|
100
|
+
max,
|
101
|
+
min,
|
102
|
+
router,
|
103
|
+
slug
|
104
|
+
]);
|
105
|
+
var applyFilter = (0, _react).useCallback(function(data) {
|
106
|
+
var ref = getFormattedPriceRange(data), formattedFrom = ref.formattedFrom, formattedTo = ref.formattedTo;
|
87
107
|
clearTimeout(timeoutRef.current);
|
88
108
|
timeoutRef.current = setTimeout(function() {
|
89
109
|
router.push((0, _utils).createAggregateQuery((0, _utils1).getListingPageType(router, slug, meta), router.query.slug, {
|
90
110
|
aggType: filterName,
|
91
111
|
aggKey: "".concat(formattedFrom, ",").concat(formattedTo),
|
92
112
|
aggOperator: _useListingFilters.filtersOperatorsMap.stats
|
93
|
-
}, false, router, true)
|
113
|
+
}, false, router, true), undefined, {
|
114
|
+
shallow: true
|
115
|
+
});
|
94
116
|
}, 500);
|
95
117
|
setState({
|
96
118
|
from: formattedFrom,
|
@@ -105,6 +127,7 @@ var useSlideFilter = function(filterName, min, max) {
|
|
105
127
|
]);
|
106
128
|
return {
|
107
129
|
value: state,
|
130
|
+
applyFilter: applyFilter,
|
108
131
|
updateValue: updateValue
|
109
132
|
};
|
110
133
|
};
|
@@ -45,7 +45,7 @@ function prefetchCategories(queryCache, router, predicate, aggregates, config) {
|
|
45
45
|
}
|
46
46
|
function _prefetchCategories() {
|
47
47
|
_prefetchCategories = _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(queryCache, router, predicate, aggregates, config) {
|
48
|
-
var aggregateKeys, aliasedSlug,
|
48
|
+
var aggregateKeys, aliasedSlug, query, response;
|
49
49
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
50
50
|
while(1)switch(_ctx.prev = _ctx.next){
|
51
51
|
case 0:
|
@@ -54,19 +54,18 @@ function _prefetchCategories() {
|
|
54
54
|
router: router,
|
55
55
|
config: config
|
56
56
|
});
|
57
|
-
slug = (0, _utils).getSlug(router, aliasedSlug);
|
58
57
|
query = (0, _api).prepareAggregateQuery({
|
59
58
|
request: _api.AggregateRequestEnum.Categories,
|
60
59
|
router: router,
|
61
60
|
predicate: predicate,
|
62
61
|
slug: aliasedSlug,
|
63
62
|
aggregates: aggregates,
|
64
|
-
postFilter:
|
63
|
+
postFilter: (0, _utils).getPostFilters(router),
|
65
64
|
config: config
|
66
65
|
});
|
67
|
-
_ctx.next =
|
66
|
+
_ctx.next = 5;
|
68
67
|
return (0, _sdk).CatalogAggregate(query);
|
69
|
-
case
|
68
|
+
case 5:
|
70
69
|
response = _ctx.sent;
|
71
70
|
queryCache.setQueryData([
|
72
71
|
_api.AggregateRequestEnum.Categories,
|
@@ -77,7 +76,7 @@ function _prefetchCategories() {
|
|
77
76
|
staleTime: 30000
|
78
77
|
});
|
79
78
|
return _ctx.abrupt("return", response);
|
80
|
-
case
|
79
|
+
case 8:
|
81
80
|
case "end":
|
82
81
|
return _ctx.stop();
|
83
82
|
}
|
@@ -44,20 +44,20 @@ function prefetchPredicate(queryCache, router, config) {
|
|
44
44
|
}
|
45
45
|
function _prefetchPredicate() {
|
46
46
|
_prefetchPredicate = _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(queryCache, router, config) {
|
47
|
-
var
|
47
|
+
var aliasedSlug, slug, data, attribute;
|
48
48
|
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
49
49
|
while(1)switch(_ctx.prev = _ctx.next){
|
50
50
|
case 0:
|
51
|
-
attribute = router.query.cat && router.query.slug;
|
52
51
|
aliasedSlug = (0, _utils).getListingAlias({
|
53
52
|
router: router,
|
54
53
|
config: config
|
55
54
|
});
|
56
55
|
slug = (0, _utils).getSlug(router, aliasedSlug);
|
57
|
-
_ctx.next =
|
56
|
+
_ctx.next = 4;
|
58
57
|
return (0, _api).processPredicateRequest(slug, router, aliasedSlug);
|
59
|
-
case
|
58
|
+
case 4:
|
60
59
|
data = _ctx.sent;
|
60
|
+
attribute = router.query.cat && aliasedSlug;
|
61
61
|
queryCache.setQueryData([
|
62
62
|
_api.ListingQueryKeysEnum.usePredicate,
|
63
63
|
slug,
|
@@ -64,7 +64,7 @@ var buildCategoryQuery = function(param) {
|
|
64
64
|
filter += (ref = config === null || config === void 0 ? void 0 : config.filterExtension) !== null && ref !== void 0 ? ref : '';
|
65
65
|
}
|
66
66
|
if (postFilter) {
|
67
|
-
if (
|
67
|
+
if (filter) filter += '&';
|
68
68
|
filter += postFilter;
|
69
69
|
}
|
70
70
|
break;
|
@@ -81,6 +81,14 @@ var buildCategoryQuery = function(param) {
|
|
81
81
|
filter += "text;eq;\"".concat(searchQuery, "\"");
|
82
82
|
if (postFilter) filter += "&".concat(postFilter);
|
83
83
|
break;
|
84
|
+
case _index.ListingTypesEnum.View:
|
85
|
+
filter += applyViewsPostFilter({
|
86
|
+
postFilter: postFilter
|
87
|
+
});
|
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;
|
90
|
+
}
|
91
|
+
break;
|
84
92
|
default:
|
85
93
|
return "".concat((config === null || config === void 0 ? void 0 : config.filterExtension) + "".concat(postFilter !== null && postFilter !== void 0 ? postFilter : ''));
|
86
94
|
}
|
@@ -113,3 +121,16 @@ var applyBrandsPostFilter = function(param) {
|
|
113
121
|
}
|
114
122
|
return '';
|
115
123
|
};
|
124
|
+
var applyViewsPostFilter = function(param) {
|
125
|
+
var postFilter = param.postFilter;
|
126
|
+
if (postFilter) {
|
127
|
+
var filtersArr = postFilter.split('&');
|
128
|
+
var filters = filtersArr.reduce(function(res, val, i) {
|
129
|
+
if (val.includes('category')) return res;
|
130
|
+
if (!res) return res + "".concat(val);
|
131
|
+
return res += "&".concat(val);
|
132
|
+
}, '');
|
133
|
+
return "".concat(filters);
|
134
|
+
}
|
135
|
+
return '';
|
136
|
+
};
|
@@ -89,38 +89,38 @@ var EmptyBox = function(param) {
|
|
89
89
|
textColor: textColor || '',
|
90
90
|
onClose: onClose
|
91
91
|
})), /*#__PURE__*/ _react.default.createElement(SuggestedSearches, null, canDisplayPopular && /*#__PURE__*/ _react.default.createElement(_.PopularSearches, {
|
92
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
92
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.popularSearches) || '',
|
93
93
|
onClose: onClose,
|
94
94
|
textColor: textColor || '',
|
95
95
|
labelsColor: labelsColor || ''
|
96
96
|
}), withRecent && canDisplayRecent && /*#__PURE__*/ _react.default.createElement(_.RecentSearches, {
|
97
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
97
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.recentSearches) || '',
|
98
98
|
data: searchHistory,
|
99
99
|
onClose: onClose,
|
100
100
|
textColor: textColor || '',
|
101
101
|
labelsColor: labelsColor || ''
|
102
102
|
}))) : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_.Container, {
|
103
103
|
labelsColor: labelsColor,
|
104
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
104
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.products) || '',
|
105
105
|
onlyMobile: true
|
106
106
|
}, /*#__PURE__*/ _react.default.createElement(NoResultsDesc, {
|
107
107
|
className: "SEARCH_BOX_NO_RESULT"
|
108
|
-
},
|
108
|
+
}, labels === null || labels === void 0 ? void 0 : labels.noResults)), /*#__PURE__*/ _react.default.createElement(PromoCol, {
|
109
109
|
backgroundColor: backgroundColor
|
110
110
|
}, /*#__PURE__*/ _react.default.createElement(_.Products, {
|
111
111
|
data: promoOffers,
|
112
112
|
textColor: textColor || '',
|
113
113
|
labelsColor: labelsColor || '',
|
114
114
|
onClose: onClose,
|
115
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
115
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.promoOffers) || '',
|
116
116
|
offers: true
|
117
117
|
})), /*#__PURE__*/ _react.default.createElement(_.Container, {
|
118
118
|
labelsColor: labelsColor,
|
119
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
119
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.products) || '',
|
120
120
|
onlyDesktop: true
|
121
121
|
}, /*#__PURE__*/ _react.default.createElement(NoResultsDesc, {
|
122
122
|
className: "SEARCH_BOX_NO_RESULT"
|
123
|
-
},
|
123
|
+
}, labels === null || labels === void 0 ? void 0 : labels.noResults))))));
|
124
124
|
};
|
125
125
|
exports.EmptyBox = EmptyBox;
|
126
126
|
var Wrapper = _styledComponents.default.div.attrs({
|
@@ -203,14 +203,14 @@ var SearchBox = function(param) {
|
|
203
203
|
data: displayableBrands,
|
204
204
|
onClose: onClose,
|
205
205
|
searchValue: searchValue || '',
|
206
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
206
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.suggestedBrands) || '',
|
207
207
|
labelsColor: labelsColor || '',
|
208
208
|
textColor: textColor || ''
|
209
209
|
})), suggestedCategories.length > 0 && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_components.Suggestions, {
|
210
210
|
data: suggestedCategories,
|
211
211
|
onClose: onClose,
|
212
212
|
searchValue: searchValue || '',
|
213
|
-
title: (labels === null || labels === void 0 ? void 0 : labels.
|
213
|
+
title: (labels === null || labels === void 0 ? void 0 : labels.suggestedCategories) || '',
|
214
214
|
labelsColor: labelsColor || '',
|
215
215
|
textColor: textColor || ''
|
216
216
|
}))), /*#__PURE__*/ _react.default.createElement(ProductsWrapper, {
|
@@ -218,7 +218,7 @@ var SearchBox = function(param) {
|
|
218
218
|
}, /*#__PURE__*/ _react.default.createElement(_components.Products, {
|
219
219
|
data: suggestions,
|
220
220
|
bottomMenu: bottomMenu,
|
221
|
-
title: labels === null || labels === void 0 ? void 0 : labels.
|
221
|
+
title: labels === null || labels === void 0 ? void 0 : labels.products,
|
222
222
|
priceColor: priceColor,
|
223
223
|
labelsColor: labelsColor,
|
224
224
|
textColor: textColor,
|
@@ -227,7 +227,7 @@ var SearchBox = function(param) {
|
|
227
227
|
productSpacing: productSpacing
|
228
228
|
}), bottomMenu === BottomMenuEnum.promo && promoOffers && /*#__PURE__*/ _react.default.createElement(_components.Products, {
|
229
229
|
data: promoOffers,
|
230
|
-
title: labels.
|
230
|
+
title: labels.promoOffers,
|
231
231
|
labelsColor: labelsColor,
|
232
232
|
textColor: textColor,
|
233
233
|
onClose: onClose,
|
@@ -5,25 +5,54 @@ exports.TranslationsMeta = void 0;
|
|
5
5
|
var _react = _interopRequireDefault(require("react"));
|
6
6
|
var _useSeoTranslations = require("../../hooks/useSeoTranslations");
|
7
7
|
var _head = _interopRequireDefault(require("next/head"));
|
8
|
+
var _router = require("next/router");
|
9
|
+
function _extends() {
|
10
|
+
_extends = Object.assign || function(target) {
|
11
|
+
for(var i = 1; i < arguments.length; i++){
|
12
|
+
var source = arguments[i];
|
13
|
+
for(var key in source){
|
14
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
15
|
+
target[key] = source[key];
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
return target;
|
20
|
+
};
|
21
|
+
return _extends.apply(this, arguments);
|
22
|
+
}
|
8
23
|
function _interopRequireDefault(obj) {
|
9
24
|
return obj && obj.__esModule ? obj : {
|
10
25
|
default: obj
|
11
26
|
};
|
12
27
|
}
|
13
28
|
var TranslationsMeta = function() {
|
14
|
-
var ref = (0, _useSeoTranslations).useSeoTranslations()
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
href
|
27
|
-
|
29
|
+
var ref = (0, _useSeoTranslations).useSeoTranslations(), translationsMap = ref.translationsMap, allLocales = ref.allLocales, defaultLocale = ref.defaultLocale;
|
30
|
+
var router = (0, _router).useRouter();
|
31
|
+
var defaultTranslation = translationsMap[defaultLocale];
|
32
|
+
var isError = router.route === '/404' || router.route === '/_error';
|
33
|
+
if (isError) return null;
|
34
|
+
var domain = defaultTranslation === null || defaultTranslation === void 0 ? void 0 : defaultTranslation.domain;
|
35
|
+
return(/*#__PURE__*/ _react.default.createElement(_head.default, null, allLocales === null || allLocales === void 0 ? void 0 : allLocales.map(function(locale) {
|
36
|
+
var translation = translationsMap === null || translationsMap === void 0 ? void 0 : translationsMap[locale];
|
37
|
+
var href = translation === null || translation === void 0 ? void 0 : translation.slug;
|
38
|
+
// go to the same page but with the right locale.
|
39
|
+
// This is for pages that does not have a translated slug
|
40
|
+
// example: /checkout -> /en/checkout, /ro/checkout
|
41
|
+
if (!href) href = "/".concat(locale).concat(router.asPath);
|
42
|
+
return(/*#__PURE__*/ _react.default.createElement("link", _extends({
|
43
|
+
rel: "alternate"
|
44
|
+
}, {
|
45
|
+
hreflang: locale
|
46
|
+
}, {
|
47
|
+
href: domain + href,
|
48
|
+
key: 'Translation__' + href
|
49
|
+
})));
|
50
|
+
}), defaultTranslation && /*#__PURE__*/ _react.default.createElement("link", _extends({
|
51
|
+
rel: "alternate"
|
52
|
+
}, {
|
53
|
+
hreflang: 'x-default'
|
54
|
+
}, {
|
55
|
+
href: "".concat(domain).concat(defaultTranslation === null || defaultTranslation === void 0 ? void 0 : defaultTranslation.slug)
|
56
|
+
}))));
|
28
57
|
};
|
29
58
|
exports.TranslationsMeta = TranslationsMeta;
|
@@ -74,6 +74,18 @@ Object.keys(_hiddenBreadcrumb).forEach(function(key) {
|
|
74
74
|
}
|
75
75
|
});
|
76
76
|
});
|
77
|
+
var _translationsMeta = _interopRequireWildcard(require("./TranslationsMeta"));
|
78
|
+
Object.keys(_translationsMeta).forEach(function(key) {
|
79
|
+
if (key === "default" || key === "__esModule") return;
|
80
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
81
|
+
if (key in exports && exports[key] === _translationsMeta[key]) return;
|
82
|
+
Object.defineProperty(exports, key, {
|
83
|
+
enumerable: true,
|
84
|
+
get: function() {
|
85
|
+
return _translationsMeta[key];
|
86
|
+
}
|
87
|
+
});
|
88
|
+
});
|
77
89
|
function _interopRequireWildcard(obj) {
|
78
90
|
if (obj && obj.__esModule) {
|
79
91
|
return obj;
|
@@ -3,40 +3,81 @@ Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
});
|
4
4
|
exports.useSeoTranslations = exports.SeoTranslationsProvider = void 0;
|
5
5
|
var _react = _interopRequireDefault(require("react"));
|
6
|
+
var _router = require("next/router");
|
7
|
+
function _defineProperty(obj, key, value) {
|
8
|
+
if (key in obj) {
|
9
|
+
Object.defineProperty(obj, key, {
|
10
|
+
value: value,
|
11
|
+
enumerable: true,
|
12
|
+
configurable: true,
|
13
|
+
writable: true
|
14
|
+
});
|
15
|
+
} else {
|
16
|
+
obj[key] = value;
|
17
|
+
}
|
18
|
+
return obj;
|
19
|
+
}
|
6
20
|
function _interopRequireDefault(obj) {
|
7
21
|
return obj && obj.__esModule ? obj : {
|
8
22
|
default: obj
|
9
23
|
};
|
10
24
|
}
|
25
|
+
function _objectSpread(target) {
|
26
|
+
for(var i = 1; i < arguments.length; i++){
|
27
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
28
|
+
var ownKeys = Object.keys(source);
|
29
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
30
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
31
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
32
|
+
}));
|
33
|
+
}
|
34
|
+
ownKeys.forEach(function(key) {
|
35
|
+
_defineProperty(target, key, source[key]);
|
36
|
+
});
|
37
|
+
}
|
38
|
+
return target;
|
39
|
+
}
|
11
40
|
var SeoTranslationsContext = /*#__PURE__*/ _react.default.createContext({});
|
12
41
|
var SeoTranslationsProvider = function(param) {
|
13
42
|
var children = param.children, translations = param.translations, defaultLocale = param.defaultLocale, localesMap = param.localesMap;
|
43
|
+
var router = (0, _router).useRouter();
|
44
|
+
var currentLocale = router.locale;
|
45
|
+
var currentPath = router.asPath;
|
14
46
|
var data1 = _react.default.useMemo(function() {
|
15
|
-
|
16
|
-
|
47
|
+
if (!translations) translations = {};
|
48
|
+
translations[currentLocale] = {
|
49
|
+
slug: currentPath.split('?')[0].replace("/".concat(currentLocale), ''),
|
50
|
+
title: '',
|
51
|
+
id: Date.now().toString()
|
52
|
+
};
|
53
|
+
var map = Object.keys(translations || {}).filter(function(lang) {
|
17
54
|
return Boolean(localesMap[lang]);
|
18
|
-
}).
|
55
|
+
}).reduce(function(acc, lang) {
|
56
|
+
var ref;
|
19
57
|
var data = translations === null || translations === void 0 ? void 0 : translations[lang];
|
20
58
|
var localeData = localesMap[lang];
|
21
59
|
var isDefault = defaultLocale === lang;
|
22
|
-
var
|
23
|
-
|
24
|
-
|
60
|
+
var isFrontPage = data.slug === '/';
|
61
|
+
var prefix = ((ref = data.slug) === null || ref === void 0 ? void 0 : ref[0]) === '/' ? '' : '/';
|
62
|
+
var slug = "".concat(isDefault ? '' : "/".concat(lang)).concat(prefix).concat(isFrontPage ? '' : data.slug);
|
63
|
+
return _objectSpread({}, acc, _defineProperty({}, lang, {
|
25
64
|
slug: slug,
|
26
|
-
title: data.title,
|
27
65
|
locale: lang,
|
28
|
-
isDefault: isDefault
|
29
|
-
|
30
|
-
|
66
|
+
isDefault: isDefault,
|
67
|
+
domain: "https://".concat(localeData.domain)
|
68
|
+
}));
|
69
|
+
}, {});
|
31
70
|
return {
|
32
|
-
|
71
|
+
translationsMap: map,
|
33
72
|
defaultLocale: defaultLocale,
|
34
|
-
|
73
|
+
allLocales: Object.keys(localesMap)
|
35
74
|
};
|
36
75
|
}, [
|
37
76
|
defaultLocale,
|
38
77
|
translations,
|
39
|
-
localesMap
|
78
|
+
localesMap,
|
79
|
+
currentLocale,
|
80
|
+
currentPath
|
40
81
|
]);
|
41
82
|
return(/*#__PURE__*/ _react.default.createElement(SeoTranslationsContext.Provider, {
|
42
83
|
value: data1
|
@@ -44,6 +85,6 @@ var SeoTranslationsProvider = function(param) {
|
|
44
85
|
};
|
45
86
|
exports.SeoTranslationsProvider = SeoTranslationsProvider;
|
46
87
|
var useSeoTranslations = function() {
|
47
|
-
return _react.default.useContext(SeoTranslationsContext);
|
88
|
+
return _react.default.useContext(SeoTranslationsContext) || {};
|
48
89
|
};
|
49
90
|
exports.useSeoTranslations = useSeoTranslations;
|
@@ -9,7 +9,7 @@ function _interopRequireDefault(obj) {
|
|
9
9
|
};
|
10
10
|
}
|
11
11
|
var GridStyles = function(param) {
|
12
|
-
var spaceX = param.spaceX, breakpoints = param.breakpoints, _remSize = param.remSize, remSize = _remSize === void 0 ? 10 : _remSize;
|
12
|
+
var spaceX = param.spaceX, breakpoints = param.breakpoints, _remSize = param.remSize, remSize = _remSize === void 0 ? 10 : _remSize, _spaceBetweenSections = param.spaceBetweenSections, spaceBetweenSections = _spaceBetweenSections === void 0 ? 80 : _spaceBetweenSections;
|
13
13
|
function getSize(width) {
|
14
14
|
return "min-width: calc(".concat(width, "% - ").concat(spaceX / remSize, "rem);") + "max-width: calc(".concat(width, "% - ").concat(spaceX / remSize, "rem);") + "margin: 0 ".concat(spaceX / 2 / remSize, "rem;");
|
15
15
|
}
|
@@ -29,7 +29,7 @@ var GridStyles = function(param) {
|
|
29
29
|
}, '');
|
30
30
|
return(/*#__PURE__*/ _react.default.createElement("style", {
|
31
31
|
dangerouslySetInnerHTML: {
|
32
|
-
__html: "\n .Page--row {\n display: flex;\n display: -webkit-flex;\n flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n margin: 0 -".concat(spaceX / remSize / 2, "rem;\n }\n\n .Page__section {\n padding-bottom:
|
32
|
+
__html: "\n .Page--row {\n display: flex;\n display: -webkit-flex;\n flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n margin: 0 -".concat(spaceX / remSize / 2, "rem;\n }\n\n .Page__section {\n padding-bottom: ").concat(spaceBetweenSections / remSize, "rem;\n }\n\n .Page--col {\n display: block;\n width: 100%;\n }\n \n .size-default-inherit {\n width: 100%;\n }\n ").concat(queries, "\n ")
|
33
33
|
}
|
34
34
|
}));
|
35
35
|
};
|