@jetshop/ui 5.11.1 → 5.11.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/Breadcrumbs/Breadcrumbs.d.ts +4 -5
- package/Breadcrumbs/Breadcrumbs.js +40 -22
- package/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/Breadcrumbs/getParentsOrCanonicalRoute.js +3 -2
- package/Breadcrumbs/getParentsOrCanonicalRoute.js.map +1 -1
- package/Gallery/Gallery.d.ts +2 -1
- package/Gallery/Gallery.js +2 -2
- package/Gallery/Gallery.js.map +1 -1
- package/ProductLink.js +9 -1
- package/ProductLink.js.map +1 -1
- package/ProductList/Badges.js +9 -9
- package/ProductList/Badges.js.map +1 -1
- package/ProductList/ProductGrid.d.ts +1 -0
- package/ProductList/ProductGrid.js +3 -2
- package/ProductList/ProductGrid.js.map +1 -1
- package/Search/SuggestedTerm.js +4 -11
- package/Search/SuggestedTerm.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { Product, Route } from '@jetshop/core/types';
|
|
3
3
|
export interface BreadcrumbProps {
|
|
4
4
|
hideLast?: boolean;
|
|
5
5
|
parents: Route[];
|
|
6
|
-
breadcrumbText
|
|
6
|
+
breadcrumbText?: string;
|
|
7
7
|
className?: string;
|
|
8
8
|
product?: Product;
|
|
9
|
+
breadcrumbs?: string[];
|
|
9
10
|
}
|
|
10
11
|
export interface BreadcrumbsProps {
|
|
11
12
|
hideLast: boolean;
|
|
12
13
|
}
|
|
13
|
-
export default
|
|
14
|
-
render(): JSX.Element;
|
|
15
|
-
}
|
|
14
|
+
export default function Breadcrumbs(props: BreadcrumbProps): JSX.Element;
|
|
@@ -2,8 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { styled } from 'linaria/react';
|
|
3
3
|
import { cx } from 'linaria';
|
|
4
4
|
import { Link } from 'react-router-dom';
|
|
5
|
-
import
|
|
5
|
+
import { useIntl } from '@jetshop/intl';
|
|
6
6
|
import { StructuredBreadcrumbData } from '@jetshop/core/components/StructuredData/StructuredBreadcrumbData';
|
|
7
|
+
import useWarningInDev from '@jetshop/core/hooks/useWarningInDev';
|
|
7
8
|
const StyledBreadcrumbs = styled('ul') `
|
|
8
9
|
a,
|
|
9
10
|
li {
|
|
@@ -30,28 +31,45 @@ const Breadcrumb = styled('li') `
|
|
|
30
31
|
padding: 0 0.33em;
|
|
31
32
|
}
|
|
32
33
|
`;
|
|
33
|
-
export default
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
path: parent.path
|
|
46
|
-
}
|
|
47
|
-
];
|
|
48
|
-
}, []);
|
|
34
|
+
export default function Breadcrumbs(props) {
|
|
35
|
+
const t = useIntl();
|
|
36
|
+
const { breadcrumbs, breadcrumbText, parents, hideLast, className } = props;
|
|
37
|
+
useWarningInDev(!breadcrumbs, 'Using <Breadcrumbs> without passing the breadcrumbs prop is deprecated.');
|
|
38
|
+
if (breadcrumbs) {
|
|
39
|
+
const crumbs = breadcrumbs.reduce((acc, text, index) => {
|
|
40
|
+
const crumb = {
|
|
41
|
+
text,
|
|
42
|
+
path: null
|
|
43
|
+
};
|
|
44
|
+
if (index < (parents === null || parents === void 0 ? void 0 : parents.length)) {
|
|
45
|
+
crumb.path = parents[parents.length - 1 - index].path;
|
|
49
46
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
return acc.concat(crumb);
|
|
48
|
+
}, [{ text: t('Home'), path: '/' }]);
|
|
49
|
+
return (React.createElement(React.Fragment, null,
|
|
50
|
+
React.createElement(StructuredBreadcrumbData, { breadcrumbs: crumbs.slice(1) }),
|
|
51
|
+
React.createElement(StyledBreadcrumbs, { className: cx(className, hideLast && 'hide-last') }, crumbs.map((crumb, index) => crumb.text && (React.createElement(Breadcrumb, { key: index }, !crumb.path ? (crumb.text) : (React.createElement(Link, { to: {
|
|
52
|
+
pathname: crumb.path,
|
|
53
|
+
state: { type: 'Category' }
|
|
54
|
+
} }, crumb.text))))))));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// This is deprecated, remove in next major
|
|
58
|
+
if (breadcrumbText) {
|
|
59
|
+
const crumbs = (parents || []).reduceRight((acc, parent) => {
|
|
60
|
+
var _a;
|
|
61
|
+
return [
|
|
62
|
+
...acc,
|
|
63
|
+
{
|
|
64
|
+
text: (_a = parent.object) === null || _a === void 0 ? void 0 : _a.breadcrumbText,
|
|
65
|
+
path: parent.path
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
}, [{ text: t('Home'), path: '/' }]);
|
|
69
|
+
crumbs.push({
|
|
70
|
+
text: breadcrumbText,
|
|
71
|
+
path: null
|
|
72
|
+
});
|
|
55
73
|
return (React.createElement(React.Fragment, null,
|
|
56
74
|
React.createElement(StructuredBreadcrumbData, { parents: parents, breadcrumbText: breadcrumbText }),
|
|
57
75
|
React.createElement(StyledBreadcrumbs, { className: cx(className, hideLast && 'hide-last') }, crumbs.map((crumb, index) => crumb.text && (React.createElement(Breadcrumb, { key: index }, !crumb.path ? (crumb.text) : (React.createElement(Link, { to: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["Breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["Breadcrumbs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
const getParentOrCanonicalRoute = (parents, product) => {
|
|
2
|
-
|
|
2
|
+
var _a;
|
|
3
|
+
if ((parents === null || parents === void 0 ? void 0 : parents.length) > 0) {
|
|
3
4
|
return parents;
|
|
4
5
|
}
|
|
5
|
-
else if (product
|
|
6
|
+
else if ((_a = product === null || product === void 0 ? void 0 : product.primaryRoute) === null || _a === void 0 ? void 0 : _a.parents) {
|
|
6
7
|
return product.primaryRoute.parents;
|
|
7
8
|
}
|
|
8
9
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getParentsOrCanonicalRoute.js","sourceRoot":"","sources":["getParentsOrCanonicalRoute.ts"],"names":[],"mappings":"AAEA,MAAM,yBAAyB,GAAG,CAAC,OAAgB,EAAE,OAAgB,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"getParentsOrCanonicalRoute.js","sourceRoot":"","sources":["getParentsOrCanonicalRoute.ts"],"names":[],"mappings":"AAEA,MAAM,yBAAyB,GAAG,CAAC,OAAgB,EAAE,OAAgB,EAAE,EAAE;;IACvE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,IAAG,CAAC,EAAE;QACvB,OAAO,OAAO,CAAC;KAChB;SAAM,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,0CAAE,OAAO,EAAE;QACzC,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;KACrC;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
package/Gallery/Gallery.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface GalleryProps {
|
|
|
7
7
|
* The aspect ratio used for the gallery images. If unknown, pass `null` */
|
|
8
8
|
aspect?: string;
|
|
9
9
|
/**
|
|
10
|
-
* @default [1, 1, 1 / 2, 1 / 2]
|
|
10
|
+
* @default [1, 1, 1, 1 / 2, 1 / 2]
|
|
11
11
|
* An array of sizes to be used for the img
|
|
12
12
|
* srcSet. Each size maps to a breakpoint */
|
|
13
13
|
sizes?: number[];
|
|
@@ -30,6 +30,7 @@ export interface GalleryProps {
|
|
|
30
30
|
};
|
|
31
31
|
quality?: number;
|
|
32
32
|
thumbnailQuality?: number;
|
|
33
|
+
eagerlyLoad?: number[];
|
|
33
34
|
}
|
|
34
35
|
export interface GalleryState {
|
|
35
36
|
isFullscreen: boolean;
|
package/Gallery/Gallery.js
CHANGED
|
@@ -101,7 +101,7 @@ const Overlay = styled('div') `
|
|
|
101
101
|
pointer-events: none;
|
|
102
102
|
`;
|
|
103
103
|
const Gallery = function Gallery(props) {
|
|
104
|
-
const { sizes = [1, 1, 1 / 2, 1 / 2], fullScreenSizes = [1, 1, 1, 1], thumbnailSizes = ['5rem'], aspect = '1:1', thumbnailPosition = 'bottom', backgroundColor = 'white', thumbnailQuality, quality, images, galleryRef } = props, rest = __rest(props, ["sizes", "fullScreenSizes", "thumbnailSizes", "aspect", "thumbnailPosition", "backgroundColor", "thumbnailQuality", "quality", "images", "galleryRef"]);
|
|
104
|
+
const { sizes = [1, 1, 1, 1 / 2, 1 / 2], fullScreenSizes = [1, 1, 1, 1], thumbnailSizes = ['5rem'], aspect = '1:1', thumbnailPosition = 'bottom', backgroundColor = 'white', thumbnailQuality, quality, images, galleryRef, eagerlyLoad = [0] } = props, rest = __rest(props, ["sizes", "fullScreenSizes", "thumbnailSizes", "aspect", "thumbnailPosition", "backgroundColor", "thumbnailQuality", "quality", "images", "galleryRef", "eagerlyLoad"]);
|
|
105
105
|
const { theme: { breakpoints } } = useShopConfig();
|
|
106
106
|
const { selectedChannel } = React.useContext(ChannelContext);
|
|
107
107
|
const baseUrl = (selectedChannel === null || selectedChannel === void 0 ? void 0 : selectedChannel.url) ? String(selectedChannel.url) : null;
|
|
@@ -110,7 +110,7 @@ const Gallery = function Gallery(props) {
|
|
|
110
110
|
return (React.createElement("div", { className: wrapperStyles, style: { ['--slide-bg']: backgroundColor } },
|
|
111
111
|
React.createElement(ImageGallery, Object.assign({ ref: (r) => (galleryRef ? (galleryRef.current = r) : null), thumbnailPosition: thumbnailPosition, items: galleryImages, autoPlay: false, showPlayButton: false, showThumbnails: galleryImages.length > 1, useBrowserFullscreen: false, preventDefaultTouchmoveEvent: isFullscreen, onScreenChange: (el) => setFullscreen(!!el), renderItem: (item) => {
|
|
112
112
|
return (React.createElement("div", { className: "image-gallery-image" }, isFullscreen ? (React.createElement("img", { src: item.original, alt: item.originalAlt, srcSet: item.srcSet, sizes: item.sizes, title: item.originalTitle })) : (React.createElement(React.Fragment, null,
|
|
113
|
-
React.createElement(Image, { src: item.original, alt: item.originalAlt, sizes: sizes, title: item.originalTitle, aspect: aspect, quality: quality, modifiedDate: item.modifiedDate, critical: item.index
|
|
113
|
+
React.createElement(Image, { src: item.original, alt: item.originalAlt, sizes: sizes, title: item.originalTitle, aspect: aspect, quality: quality, modifiedDate: item.modifiedDate, critical: eagerlyLoad.includes(item.index) }),
|
|
114
114
|
props.children && React.createElement(Overlay, null, props.children)))));
|
|
115
115
|
}, renderThumbInner: (item) => {
|
|
116
116
|
return (React.createElement("div", { className: "image-gallery-thumbnail-inner" },
|
package/Gallery/Gallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.js","sourceRoot":"","sources":["Gallery.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,kDAAkD,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAC5C,OAAO,cAAc,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"Gallery.js","sourceRoot":"","sources":["Gallery.tsx"],"names":[],"mappings":"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"}
|
package/ProductLink.js
CHANGED
|
@@ -17,6 +17,7 @@ import { Link } from 'react-router-dom';
|
|
|
17
17
|
import { useLocation } from 'react-router';
|
|
18
18
|
import { useRoutePreload } from '@jetshop/core/hooks/useRoutePreload';
|
|
19
19
|
import { useHoverIntent } from './utils/useHoverIntent';
|
|
20
|
+
import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
|
|
20
21
|
export function getPathWithTrailingSlash(path) {
|
|
21
22
|
if (path.endsWith('/')) {
|
|
22
23
|
return path;
|
|
@@ -50,7 +51,14 @@ const ProductLink = (_a) => {
|
|
|
50
51
|
? getPathWithTrailingSlash(categoryPath.path) + primaryRoute.slug
|
|
51
52
|
: primaryRoute.path;
|
|
52
53
|
return (React.createElement(Link, Object.assign({}, rest, { onClick: (event) => {
|
|
53
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
track(trackProductEvent({
|
|
56
|
+
action: 'click',
|
|
57
|
+
product,
|
|
58
|
+
list,
|
|
59
|
+
index,
|
|
60
|
+
category: breadcrumbsWithoutProduct((categoryPath === null || categoryPath === void 0 ? void 0 : categoryPath.breadcrumbs) || ((_a = product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs))
|
|
61
|
+
}));
|
|
54
62
|
onClick && onClick(event);
|
|
55
63
|
}, to: {
|
|
56
64
|
pathname,
|
package/ProductLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductLink.js","sourceRoot":"","sources":["ProductLink.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductLink.js","sourceRoot":"","sources":["ProductLink.tsx"],"names":[],"mappings":"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"}
|
package/ProductList/Badges.js
CHANGED
|
@@ -37,20 +37,20 @@ const ProductBadgeComponent = styled('div') `
|
|
|
37
37
|
const Badge = ({ badge }) => {
|
|
38
38
|
return (React.createElement(ProductBadgeComponent, { className: cx(badge.style, badge.url && 'with-badge') },
|
|
39
39
|
React.createElement("span", null, badge.text),
|
|
40
|
-
badge.url && React.createElement("img", { src: badge.url, alt: badge.name })));
|
|
40
|
+
badge.url && (React.createElement("img", { width: "70", height: "70", src: badge.url, alt: badge.name }))));
|
|
41
41
|
};
|
|
42
42
|
const Badges = ({ badges = [] }) => {
|
|
43
43
|
if (badges.length === 0)
|
|
44
44
|
return null;
|
|
45
|
-
const topLeftBadges = badges.filter(badge => badge.location === 'TOP_LEFT');
|
|
46
|
-
const topRightBadges = badges.filter(badge => badge.location === 'TOP_RIGHT');
|
|
47
|
-
const bottomLeftBadges = badges.filter(badge => badge.location === 'BOTTOM_LEFT');
|
|
48
|
-
const bottomRightBadges = badges.filter(badge => badge.location === 'BOTTOM_RIGHT');
|
|
45
|
+
const topLeftBadges = badges.filter((badge) => badge.location === 'TOP_LEFT');
|
|
46
|
+
const topRightBadges = badges.filter((badge) => badge.location === 'TOP_RIGHT');
|
|
47
|
+
const bottomLeftBadges = badges.filter((badge) => badge.location === 'BOTTOM_LEFT');
|
|
48
|
+
const bottomRightBadges = badges.filter((badge) => badge.location === 'BOTTOM_RIGHT');
|
|
49
49
|
return (React.createElement(BadgeWrapper, null,
|
|
50
|
-
topLeftBadges.length > 0 && (React.createElement(BadgeTopLeftWrapper, { className: "badge-top-left" }, topLeftBadges.map(badge => (React.createElement(Badge, { key: badge.name, badge: badge }))))),
|
|
51
|
-
topRightBadges.length > 0 && (React.createElement(BadgeTopRightWrapper, { className: "badge-top-right" }, topRightBadges.map(badge => (React.createElement(Badge, { key: badge.name, badge: badge }))))),
|
|
52
|
-
bottomLeftBadges.length > 0 && (React.createElement(BadgeBottomLeftWrapper, { className: "badge-bottom-left" }, bottomLeftBadges.map(badge => (React.createElement(Badge, { key: badge.name, badge: badge }))))),
|
|
53
|
-
bottomRightBadges.length > 0 && (React.createElement(BadgeBottomRightWrapper, { className: "badge-bottom-right" }, bottomRightBadges.map(badge => (React.createElement(Badge, { key: badge.name, badge: badge })))))));
|
|
50
|
+
topLeftBadges.length > 0 && (React.createElement(BadgeTopLeftWrapper, { className: "badge-top-left" }, topLeftBadges.map((badge) => (React.createElement(Badge, { key: badge.name, badge: badge }))))),
|
|
51
|
+
topRightBadges.length > 0 && (React.createElement(BadgeTopRightWrapper, { className: "badge-top-right" }, topRightBadges.map((badge) => (React.createElement(Badge, { key: badge.name, badge: badge }))))),
|
|
52
|
+
bottomLeftBadges.length > 0 && (React.createElement(BadgeBottomLeftWrapper, { className: "badge-bottom-left" }, bottomLeftBadges.map((badge) => (React.createElement(Badge, { key: badge.name, badge: badge }))))),
|
|
53
|
+
bottomRightBadges.length > 0 && (React.createElement(BadgeBottomRightWrapper, { className: "badge-bottom-right" }, bottomRightBadges.map((badge) => (React.createElement(Badge, { key: badge.name, badge: badge })))))));
|
|
54
54
|
};
|
|
55
55
|
export default Badges;
|
|
56
56
|
//# sourceMappingURL=Badges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badges.js","sourceRoot":"","sources":["Badges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;CAGjC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;CAG/B,CAAC;AAEF,MAAM,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAG7C,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAG9C,CAAC;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAGhD,CAAC;AAEF,MAAM,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAGjD,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;CAQ1C,CAAC;AAEF,MAAM,KAAK,GAAuC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9D,OAAO,CACL,oBAAC,qBAAqB,IACpB,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC;QAErD,kCAAO,KAAK,CAAC,IAAI,CAAQ;QACxB,KAAK,CAAC,GAAG,IAAI,6BAAK,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,
|
|
1
|
+
{"version":3,"file":"Badges.js","sourceRoot":"","sources":["Badges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;CAGjC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;CAG/B,CAAC;AAEF,MAAM,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAG7C,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAG9C,CAAC;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAGhD,CAAC;AAEF,MAAM,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;;CAGjD,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;CAQ1C,CAAC;AAEF,MAAM,KAAK,GAAuC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9D,OAAO,CACL,oBAAC,qBAAqB,IACpB,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC;QAErD,kCAAO,KAAK,CAAC,IAAI,CAAQ;QACxB,KAAK,CAAC,GAAG,IAAI,CACZ,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,GAAI,CAChE,CACqB,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAA0C,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW,CAC1C,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAC5C,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,cAAc,CAC7C,CAAC;IACF,OAAO,CACL,oBAAC,YAAY;QACV,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,oBAAC,mBAAmB,IAAC,SAAS,EAAC,gBAAgB,IAC5C,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CACzC,CAAC,CACkB,CACvB;QACA,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,oBAAC,oBAAoB,IAAC,SAAS,EAAC,iBAAiB,IAC9C,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CACzC,CAAC,CACmB,CACxB;QACA,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,oBAAC,sBAAsB,IAAC,SAAS,EAAC,mBAAmB,IAClD,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/B,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CACzC,CAAC,CACqB,CAC1B;QACA,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC/B,oBAAC,uBAAuB,IAAC,SAAS,EAAC,oBAAoB,IACpD,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAChC,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CACzC,CAAC,CACsB,CAC3B,CACY,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -14,14 +14,15 @@ const productPlaceholder = {
|
|
|
14
14
|
id: 'placeholder',
|
|
15
15
|
images: []
|
|
16
16
|
};
|
|
17
|
-
const ProductGrid = ({ className = '', products, loading, listName, categoryPath = null, search, hash, ProductComponent = GridProduct }) => {
|
|
17
|
+
const ProductGrid = ({ className = '', products, loading, listName, categoryPath = null, category = '', search, hash, ProductComponent = GridProduct }) => {
|
|
18
18
|
const productList = products.length === 0 && loading
|
|
19
19
|
? Array(4).fill(productPlaceholder)
|
|
20
20
|
: products;
|
|
21
21
|
return (React.createElement(ProductGridContainer, { "data-testid": "product-grid", className: className }, products && (React.createElement(Fragment, null,
|
|
22
22
|
!loading ? (React.createElement(Analytics, { event: trackListEvent({
|
|
23
23
|
listName,
|
|
24
|
-
products: products
|
|
24
|
+
products: products,
|
|
25
|
+
category
|
|
25
26
|
}) })) : null,
|
|
26
27
|
productList.map((product, index) => (React.createElement(ProductComponent, { listName: listName, search: search, hash: hash, loading: loading, key: `${index}${product.id}`, product: product, categoryPath: categoryPath })))))));
|
|
27
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductGrid.js","sourceRoot":"","sources":["ProductGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,WAEN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;CAKzC,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,EAAc;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductGrid.js","sourceRoot":"","sources":["ProductGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,WAEN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;CAKzC,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,EAAc;CACvB,CAAC;AAcF,MAAM,WAAW,GAAgC,CAAC,EAChD,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,GAAG,IAAI,EACnB,QAAQ,GAAG,EAAE,EACb,MAAM,EACN,IAAI,EACJ,gBAAgB,GAAG,WAAW,EAC/B,EAAE,EAAE;IACH,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO;QAC9B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACnC,CAAC,CAAC,QAAQ,CAAC;IACf,OAAO,CACL,oBAAC,oBAAoB,mBAAa,cAAc,EAAC,SAAS,EAAE,SAAS,IAClE,QAAQ,IAAI,CACX,oBAAC,QAAQ;QACN,CAAC,OAAO,CAAC,CAAC,CAAC,CACV,oBAAC,SAAS,IACR,KAAK,EAAE,cAAc,CAAC;gBACpB,QAAQ;gBACR,QAAQ,EAAE,QAAQ;gBAClB,QAAQ;aACT,CAAC,GACF,CACH,CAAC,CAAC,CAAC,IAAI;QACP,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,EAC5B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC,CACO,CACZ,CACoB,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/Search/SuggestedTerm.js
CHANGED
|
@@ -2,32 +2,25 @@ import React from 'react';
|
|
|
2
2
|
import ProductLink from '@jetshop/ui/ProductLink';
|
|
3
3
|
import CategoryLink from '@jetshop/ui/CategoryLink';
|
|
4
4
|
const SuggestedTerm = (props) => {
|
|
5
|
-
const { term = '', className = '', onClick = () =>
|
|
5
|
+
const { term = '', className = '', onClick = () => null } = props;
|
|
6
6
|
if (isProduct(props)) {
|
|
7
7
|
const { item } = props;
|
|
8
8
|
return (React.createElement("li", { className: className, onClick: onClick, "data-flight-search-autocomplete-result": "product" }, item.primaryRoute ? (React.createElement(ProductLink, { product: item }, getHighlightedText(item.name, term))) : (item.name)));
|
|
9
9
|
}
|
|
10
10
|
else {
|
|
11
11
|
const { item } = props;
|
|
12
|
-
const displayText =
|
|
12
|
+
const displayText = item.primaryRoute.breadcrumbs.join(' > ');
|
|
13
13
|
return (React.createElement("li", { className: className, onClick: onClick, "data-flight-search-autocomplete-result": "category" }, item.primaryRoute ? (React.createElement(CategoryLink, { category: item }, getHighlightedText(displayText, term))) : (item.name)));
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
function parentsToString(parents) {
|
|
17
|
-
if (!parents || parents.length === 0)
|
|
18
|
-
return '';
|
|
19
|
-
return (parents.map(parent => parent.object.breadcrumbText).join(' > ') + ' > ');
|
|
20
|
-
}
|
|
21
16
|
function isProduct(props) {
|
|
22
17
|
return props.item.__typename === 'Product';
|
|
23
18
|
}
|
|
24
19
|
function getHighlightedText(text, highlight) {
|
|
25
20
|
// Split on higlight term and include term into parts, ignore case
|
|
26
|
-
const parts = text.split(new RegExp(`(${escapeRegExp(highlight)
|
|
27
|
-
.split(' ')
|
|
28
|
-
.join('|')})`, 'gi'));
|
|
21
|
+
const parts = text.split(new RegExp(`(${escapeRegExp(highlight).split(' ').join('|')})`, 'gi'));
|
|
29
22
|
const highlightArray = highlight.split(' ');
|
|
30
|
-
const toHighlightLower = highlightArray.map(word => word.toLowerCase());
|
|
23
|
+
const toHighlightLower = highlightArray.map((word) => word.toLowerCase());
|
|
31
24
|
return parts.reduce((prev, curr, index) => {
|
|
32
25
|
return [
|
|
33
26
|
...prev,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestedTerm.js","sourceRoot":"","sources":["SuggestedTerm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAiBpD,MAAM,aAAa,GAAG,CAAC,KAA2C,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"SuggestedTerm.js","sourceRoot":"","sources":["SuggestedTerm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAiBpD,MAAM,aAAa,GAAG,CAAC,KAA2C,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;IAElE,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;QACpB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,OAAO,CACL,4BACE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,4CACuB,SAAS,IAE/C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACnB,oBAAC,WAAW,IAAC,OAAO,EAAE,IAAI,IACvB,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CACxB,CACf,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,CACV,CACE,CACN,CAAC;KACH;SAAM;QACL,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9D,OAAO,CACL,4BACE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,4CACuB,UAAU,IAEhD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACnB,oBAAC,YAAY,IAAC,QAAQ,EAAE,IAAI,IACzB,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CACzB,CAChB,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,IAAI,CACV,CACE,CACN,CAAC;KACH;AACH,CAAC,CAAC;AAEF,SAAS,SAAS,CAChB,KAA2C;IAE3C,OAAQ,KAA0B,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,SAAiB;IACzD,kEAAkE;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CACtE,CAAC;IACF,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACxC,OAAO;YACL,GAAG,IAAI;YACP,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9C,gCAAQ,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,IAC3C,IAAI,CACE,CACV,CAAC,CAAC,CAAC,CACF,IAAI,CACL;SACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,eAAe,aAAa,CAAC"}
|