@jetshop/ui 5.10.0 → 5.12.0
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 +41 -24
- package/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/Breadcrumbs/getParentsOrCanonicalRoute.js +3 -2
- package/Breadcrumbs/getParentsOrCanonicalRoute.js.map +1 -1
- package/ContentPageLink.js.map +1 -1
- package/DropdownMenu/DropdownMenu.js +0 -1
- package/DropdownMenu/DropdownMenu.js.map +1 -1
- package/Gallery/Gallery.d.ts +2 -1
- package/Gallery/Gallery.js +4 -4
- package/Gallery/Gallery.js.map +1 -1
- package/Gallery/constructGallery.d.ts +1 -0
- package/Gallery/constructGallery.js +2 -1
- package/Gallery/constructGallery.js.map +1 -1
- package/Image/B2BImage.d.ts +1 -1
- package/Image/FlightImage.d.ts +3 -1
- package/Image/FlightImage.js +5 -3
- package/Image/FlightImage.js.map +1 -1
- package/Image/useConstructImage.d.ts +6 -4
- package/Image/useConstructImage.js +12 -3
- package/Image/useConstructImage.js.map +1 -1
- package/Image/utils/getSrcSetFromWidths.d.ts +2 -0
- package/Image/utils/getSrcSetFromWidths.js.map +1 -1
- package/Image/utils/getSrcWithParams.js +3 -0
- package/Image/utils/getSrcWithParams.js.map +1 -1
- package/Loading/LoadingBar.js +27 -19
- package/Loading/LoadingBar.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/ScrollRestorationHandler/ScrollRestorationHandler.js.map +1 -1
- package/Search/SuggestedTerm.js +4 -11
- package/Search/SuggestedTerm.js.map +1 -1
- package/StartPageRenderer/StartPageRenderer.js +1 -1
- package/StartPageRenderer/StartPageRenderer.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 {
|
|
@@ -11,6 +12,7 @@ const StyledBreadcrumbs = styled('ul') `
|
|
|
11
12
|
font-size: 0.75rem;
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
line-height: 1.5;
|
|
14
16
|
display: flex;
|
|
15
17
|
flex-direction: row;
|
|
16
18
|
flex-wrap: wrap;
|
|
@@ -30,33 +32,48 @@ const Breadcrumb = styled('li') `
|
|
|
30
32
|
padding: 0 0.33em;
|
|
31
33
|
}
|
|
32
34
|
`;
|
|
33
|
-
export default
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
path: parent.path
|
|
46
|
-
}
|
|
47
|
-
];
|
|
48
|
-
}, []);
|
|
35
|
+
export default function Breadcrumbs(props) {
|
|
36
|
+
const t = useIntl();
|
|
37
|
+
const { breadcrumbs, breadcrumbText, parents, hideLast, className } = props;
|
|
38
|
+
useWarningInDev(!breadcrumbs, 'Using <Breadcrumbs> without passing the breadcrumbs prop is deprecated.');
|
|
39
|
+
if (breadcrumbs) {
|
|
40
|
+
const crumbs = breadcrumbs.reduce((acc, text, index) => {
|
|
41
|
+
const crumb = {
|
|
42
|
+
text,
|
|
43
|
+
path: null
|
|
44
|
+
};
|
|
45
|
+
if (index < (parents === null || parents === void 0 ? void 0 : parents.length)) {
|
|
46
|
+
crumb.path = parents[parents.length - 1 - index].path;
|
|
49
47
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
return acc.concat(crumb);
|
|
49
|
+
}, [{ text: t('Home'), path: '/' }]);
|
|
50
|
+
return (React.createElement(React.Fragment, null,
|
|
51
|
+
React.createElement(StructuredBreadcrumbData, { breadcrumbs: crumbs.slice(1) }),
|
|
52
|
+
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: {
|
|
53
|
+
pathname: crumb.path
|
|
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: {
|
|
58
|
-
pathname: crumb.path
|
|
59
|
-
state: { type: 'Category' }
|
|
76
|
+
pathname: crumb.path
|
|
60
77
|
} }, crumb.text))))))));
|
|
61
78
|
}
|
|
62
79
|
else {
|
|
@@ -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/ContentPageLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentPageLink.js","sourceRoot":"","sources":["ContentPageLink.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"ContentPageLink.js","sourceRoot":"","sources":["ContentPageLink.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD,MAAM,eAAe,GACnB,SAAS,eAAe,CAAC,KAAK;IAC5B,MAAM,EAAE,IAAI,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAzB,QAAiB,CAAQ,CAAC;IAChC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,OAAO,CAAC;YACN,QAAQ,EAAE,YAAY,CAAC,IAAI;YAC3B,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE;YACZ,cAAc,EAAE,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,IAAI,kBACH,EAAE,EAAE;YACF,QAAQ,EAAE,YAAY,CAAC,IAAI;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,EACD,QAAQ,EAAE,SAAgB,EAC1B,YAAY,EAAE,cAAc,IACxB,IAAI,EACR,CACH,CAAC;AACJ,CAAC,CAAC;AAEJ,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["DropdownMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAiB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,aAAa,CAInD,SAAS,CAAC,CAAC;AAEd,GAAG,CAAA;;;;CAIF,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["DropdownMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAiB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,aAAa,CAInD,SAAS,CAAC,CAAC;AAEd,GAAG,CAAA;;;;CAIF,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BjB,CAAC;AAWF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,EAMzC;QANyC,EAC3D,WAAW,GAAG,KAAK,EACnB,QAAQ,EACR,QAAQ,EACR,SAAS,OAES,EADf,IAAI,cALoD,oDAM5D,CADQ;IAEP,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/B,OAAO;YACL,MAAM;YACN,SAAS;YACT,aAAa;YACb,gBAAgB;YAChB,QAAQ;SACT,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5B,OAAO,YAAY,CACjB,oBAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,OAAO,QAAQ,KAAK,UAAU;QAC7B,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACjC,CAAC,CAAC,QAAQ,CACiB,kBAE7B,EAAE,EAAE,KAAK,EACT,sBAAsB,EAAE,EAAE,EAC1B,2BAA2B,EAAE,MAAM,EACnC,QAAQ,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,IAE7B,IAAI,EAEV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,GAAG,4BAA4B,CAAC;AAExD,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE9D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,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,18 +101,18 @@ 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;
|
|
108
108
|
const [isFullscreen, setFullscreen] = React.useState(false);
|
|
109
109
|
const galleryImages = React.useMemo(() => constructGallery(images, fullScreenSizes, aspect, baseUrl, breakpoints), [aspect, baseUrl, breakpoints, fullScreenSizes, images]);
|
|
110
110
|
return (React.createElement("div", { className: wrapperStyles, style: { ['--slide-bg']: backgroundColor } },
|
|
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 => {
|
|
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 }),
|
|
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
|
-
}, renderThumbInner: item => {
|
|
115
|
+
}, renderThumbInner: (item) => {
|
|
116
116
|
return (React.createElement("div", { className: "image-gallery-thumbnail-inner" },
|
|
117
117
|
React.createElement(Image, { src: item.thumbnail, alt: item.thumbnailAlt, title: item.thumbnailTitle, sizes: thumbnailSizes, aspect: aspect, quality: thumbnailQuality }),
|
|
118
118
|
item.thumbnailLabel && (React.createElement("div", { className: "image-gallery-thumbnail-label" }, item.thumbnailLabel))));
|
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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"}
|
|
@@ -2,6 +2,7 @@ import { ProductImage } from '@jetshop/core/types';
|
|
|
2
2
|
export declare function constructGallery(images: ProductImage[], sizes: number[], aspect: string, baseUrl: string, breakpoints: {
|
|
3
3
|
[label: string]: string;
|
|
4
4
|
}): {
|
|
5
|
+
index: number;
|
|
5
6
|
original: string;
|
|
6
7
|
originalAlt: string;
|
|
7
8
|
originalTitle: string;
|
|
@@ -9,7 +9,7 @@ export function constructGallery(images, sizes, aspect, baseUrl, breakpoints) {
|
|
|
9
9
|
const calculatedSizes = getSizesMap(breakpointValues, sizes);
|
|
10
10
|
// Get required set of image widths
|
|
11
11
|
const widths = getImageWidths(breakpointValues, sizes);
|
|
12
|
-
return images.map(img => {
|
|
12
|
+
return images.map((img, index) => {
|
|
13
13
|
const url = img.url || img.sizes;
|
|
14
14
|
let imageSrc;
|
|
15
15
|
let thumbSrc;
|
|
@@ -25,6 +25,7 @@ export function constructGallery(images, sizes, aspect, baseUrl, breakpoints) {
|
|
|
25
25
|
// Generate image urls for the required image sizes
|
|
26
26
|
const srcSet = getSrcSetFromWidths(imageSrc, widths, aspect, { crop: false, webp: false }, img.modifiedDate);
|
|
27
27
|
return {
|
|
28
|
+
index,
|
|
28
29
|
original: imageSrc,
|
|
29
30
|
originalAlt: img.alt,
|
|
30
31
|
originalTitle: img.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructGallery.js","sourceRoot":"","sources":["constructGallery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,KAAe,EACf,MAAc,EACd,OAAe,EACf,WAAwC;IAExC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC7D,mCAAmC;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"constructGallery.js","sourceRoot":"","sources":["constructGallery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,KAAe,EACf,MAAc,EACd,OAAe,EACf,WAAwC;IAExC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC7D,mCAAmC;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;QAEjC,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAgB,CAAC;QAErB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtB,qDAAqD;YACrD,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACpD,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;SACtD;aAAM;YACL,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACpC,QAAQ,GAAG,QAAQ,CAAC;SACrB;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAChC,QAAQ,EACR,MAAM,EACN,MAAM,EACN,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAC5B,GAAG,CAAC,YAAY,CACjB,CAAC;QACF,OAAO;YACL,KAAK;YACL,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,aAAa,EAAE,GAAG,CAAC,KAAK;YACxB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,GAAG,CAAC,GAAG;YACrB,cAAc,EAAE,GAAG,CAAC,KAAK;YACzB,KAAK,EAAE,eAAe;YACtB,MAAM;YACN,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/Image/B2BImage.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ interface ImageParameters {
|
|
|
20
20
|
gravity?: Gravity;
|
|
21
21
|
quality?: number;
|
|
22
22
|
/** An array of image sizes, will be mapped against breakpoints.
|
|
23
|
-
* @see https://docs.dev.jetshop.se/
|
|
23
|
+
* @see https://docs.dev.jetshop.se/ui/image#the-sizes-prop
|
|
24
24
|
*/
|
|
25
25
|
sizes: ImageBreakpointSizes;
|
|
26
26
|
/**
|
package/Image/FlightImage.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ interface ImageParameters {
|
|
|
20
20
|
gravity?: Gravity;
|
|
21
21
|
quality?: number;
|
|
22
22
|
/** An array of image sizes, will be mapped against breakpoints.
|
|
23
|
-
* @see https://docs.dev.jetshop.se/
|
|
23
|
+
* @see https://docs.dev.jetshop.se/ui/image#the-sizes-prop
|
|
24
24
|
*/
|
|
25
25
|
sizes: ImageBreakpointSizes;
|
|
26
26
|
/**
|
|
@@ -30,6 +30,8 @@ interface ImageParameters {
|
|
|
30
30
|
aspect?: string;
|
|
31
31
|
critical?: boolean;
|
|
32
32
|
modifiedDate?: string;
|
|
33
|
+
focalPointX?: number;
|
|
34
|
+
focalPointY?: number;
|
|
33
35
|
}
|
|
34
36
|
interface ImageProps extends ImageParameters {
|
|
35
37
|
/** Whether or not to use `background-size: cover` */
|
package/Image/FlightImage.js
CHANGED
|
@@ -30,7 +30,7 @@ function Error() {
|
|
|
30
30
|
} }, t('Image Not Found')));
|
|
31
31
|
}
|
|
32
32
|
function FlightImage(props) {
|
|
33
|
-
const { gravity, crop, src: originalSrc, sizes: sizesArray = [1], aspect, quality, critical, modifiedDate, error: ErrorComp = Error } = props, rest = __rest(props, ["gravity", "crop", "src", "sizes", "aspect", "quality", "critical", "modifiedDate", "error"]);
|
|
33
|
+
const { gravity, crop, src: originalSrc, sizes: sizesArray = [1], aspect, quality, critical, modifiedDate, error: ErrorComp = Error, focalPointX, focalPointY } = props, rest = __rest(props, ["gravity", "crop", "src", "sizes", "aspect", "quality", "critical", "modifiedDate", "error", "focalPointX", "focalPointY"]);
|
|
34
34
|
const { theme: { breakpoints } } = useShopConfig();
|
|
35
35
|
// The baseUrl will change based on the currently-selected channel.
|
|
36
36
|
// We need it to correctly construct the image url
|
|
@@ -48,9 +48,11 @@ function FlightImage(props) {
|
|
|
48
48
|
critical,
|
|
49
49
|
modifiedDate,
|
|
50
50
|
breakpoints,
|
|
51
|
-
baseUrl
|
|
51
|
+
baseUrl,
|
|
52
|
+
focalPointX,
|
|
53
|
+
focalPointY
|
|
52
54
|
});
|
|
53
|
-
return (React.createElement(Image, Object.assign({}, rest, { aspect: aspect, src: hasFalsySrc && typeof originalSrc === 'boolean' ? false : src, hasFalsySrc: hasFalsySrc, lqip: lqip, sizes: sizes, srcset: srcset, webpSrcset: webpSrcset, error: ErrorComp })));
|
|
55
|
+
return (React.createElement(Image, Object.assign({}, rest, { critical: critical, aspect: aspect, src: hasFalsySrc && typeof originalSrc === 'boolean' ? false : src, hasFalsySrc: hasFalsySrc, lqip: lqip, sizes: sizes, srcset: srcset, webpSrcset: webpSrcset, error: ErrorComp })));
|
|
54
56
|
}
|
|
55
57
|
export default FlightImage;
|
|
56
58
|
//# sourceMappingURL=FlightImage.js.map
|
package/Image/FlightImage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlightImage.js","sourceRoot":"","sources":["FlightImage.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,cAAc,MAAM,yCAAyC,CAAC;AASrE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oHAAoH,CAAC;
|
|
1
|
+
{"version":3,"file":"FlightImage.js","sourceRoot":"","sources":["FlightImage.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,cAAc,MAAM,yCAAyC,CAAC;AASrE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oHAAoH,CAAC;AA8CvH,SAAS,KAAK;IACZ,OAAO,CACL,6BACE,KAAK,EAAE;YACL,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf,IAEA,CAAC,CAAC,iBAAiB,CAAC,CACjB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IACpC,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,EACvB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,KAAK,EAAE,SAAS,GAAG,KAAK,EACxB,WAAW,EACX,WAAW,KAET,KAAK,EADJ,IAAI,UACL,KAAK,EAbH,2HAaL,CAAQ,CAAC;IAEV,MAAM,EACJ,KAAK,EAAE,EAAE,WAAW,EAAE,EACvB,GAAG,aAAa,EAAE,CAAC;IAEpB,mEAAmE;IACnE,kDAAkD;IAClD,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ;QACvC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GACzD,iBAAiB,CAAC;QAChB,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,UAAU;QACjB,MAAM;QACN,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEL,OAAO,CACL,oBAAC,KAAK,oBACA,IAAI,IACR,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,WAAW,IAAI,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAClE,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,SAAS,IAChB,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ProductImageSize } from '@jetshop/core/types';
|
|
2
|
-
declare type ImageSrcType = string | ProductImageSize[];
|
|
1
|
+
import { ImageValue, ProductImageSize } from '@jetshop/core/types';
|
|
2
|
+
declare type ImageSrcType = string | ProductImageSize[] | ImageValue;
|
|
3
3
|
export declare type Gravity = 'north' | 'south' | 'west' | 'east' | 'centre' | 'smart';
|
|
4
4
|
export declare type ImageBreakpointSize = number | string;
|
|
5
5
|
export declare type ImageBreakpointSizes = ImageBreakpointSize | ImageBreakpointSize[];
|
|
@@ -16,7 +16,7 @@ interface ImageParameters {
|
|
|
16
16
|
gravity?: Gravity;
|
|
17
17
|
quality?: number;
|
|
18
18
|
/** An array of image sizes, will be mapped against breakpoints.
|
|
19
|
-
* @see https://docs.dev.jetshop.se/
|
|
19
|
+
* @see https://docs.dev.jetshop.se/ui/image#the-sizes-prop
|
|
20
20
|
*/
|
|
21
21
|
sizes: ImageBreakpointSizes;
|
|
22
22
|
/**
|
|
@@ -28,12 +28,14 @@ interface ImageParameters {
|
|
|
28
28
|
modifiedDate?: string;
|
|
29
29
|
breakpoints: Record<string, string>;
|
|
30
30
|
baseUrl: string;
|
|
31
|
+
focalPointX?: number;
|
|
32
|
+
focalPointY?: number;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
35
|
* Dynamically constructs the query parameters used by ImageMagick to size the image appropriately.
|
|
34
36
|
* Also generates a LQIP using query parameters, to display while the full image loads.
|
|
35
37
|
*/
|
|
36
|
-
export declare function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl }: ImageParameters): {
|
|
38
|
+
export declare function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl, focalPointX, focalPointY }: ImageParameters): {
|
|
37
39
|
srcset: string;
|
|
38
40
|
webpSrcset: string;
|
|
39
41
|
sizes: string;
|
|
@@ -10,7 +10,7 @@ import React from 'react';
|
|
|
10
10
|
* Dynamically constructs the query parameters used by ImageMagick to size the image appropriately.
|
|
11
11
|
* Also generates a LQIP using query parameters, to display while the full image loads.
|
|
12
12
|
*/
|
|
13
|
-
export function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl }) {
|
|
13
|
+
export function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl, focalPointX, focalPointY }) {
|
|
14
14
|
// Warn if gravity was provided but crop was not
|
|
15
15
|
useWarningInDev(gravity && !crop, 'You have provided a gravity without setting crop to true. Your image will not be cropped, and the `gravity` prop will do nothing. Please remove the `gravity` prop.');
|
|
16
16
|
// Warn if the src is a falsy value
|
|
@@ -46,6 +46,10 @@ export function useConstructImage({ gravity, crop, src, sizes, aspect, critical,
|
|
|
46
46
|
hasFalsySrc = false;
|
|
47
47
|
imageSrc = getFullUrl(src, baseUrl);
|
|
48
48
|
}
|
|
49
|
+
if (!!src && typeof src === 'object' && src.value) {
|
|
50
|
+
hasFalsySrc = false;
|
|
51
|
+
imageSrc = getFullUrl(src.value, baseUrl);
|
|
52
|
+
}
|
|
49
53
|
// useMemo so this runs only if the image props change. It calculates the
|
|
50
54
|
// strings used for `sizes`, `srcset`, and the `lqip`
|
|
51
55
|
const { sizesMap, srcset, lqip, webpSrcset } = React.useMemo(() => {
|
|
@@ -57,7 +61,9 @@ export function useConstructImage({ gravity, crop, src, sizes, aspect, critical,
|
|
|
57
61
|
crop,
|
|
58
62
|
gravity,
|
|
59
63
|
quality,
|
|
60
|
-
webp
|
|
64
|
+
webp,
|
|
65
|
+
focalPointX,
|
|
66
|
+
focalPointY
|
|
61
67
|
}, modifiedDate);
|
|
62
68
|
const srcset = srcSetFromWidths({ webp: false });
|
|
63
69
|
const webpSrcset = srcSetFromWidths({ webp: true });
|
|
@@ -74,7 +80,10 @@ export function useConstructImage({ gravity, crop, src, sizes, aspect, critical,
|
|
|
74
80
|
imageSrc,
|
|
75
81
|
quality,
|
|
76
82
|
sizes,
|
|
77
|
-
critical
|
|
83
|
+
critical,
|
|
84
|
+
modifiedDate,
|
|
85
|
+
focalPointX,
|
|
86
|
+
focalPointY
|
|
78
87
|
]);
|
|
79
88
|
return {
|
|
80
89
|
srcset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConstructImage.js","sourceRoot":"","sources":["useConstructImage.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useConstructImage.js","sourceRoot":"","sources":["useConstructImage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,7 @@ export interface ImageParamOptions {
|
|
|
4
4
|
gravity?: Gravity;
|
|
5
5
|
quality?: number;
|
|
6
6
|
webp?: boolean;
|
|
7
|
+
focalPointX?: number;
|
|
8
|
+
focalPointY?: number;
|
|
7
9
|
}
|
|
8
10
|
export declare const getSrcSetFromWidths: (src: string, widths: number[], aspect: AspectRatio, options?: ImageParamOptions, timestamp?: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSrcSetFromWidths.js","sourceRoot":"","sources":["getSrcSetFromWidths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"getSrcSetFromWidths.js","sourceRoot":"","sources":["getSrcSetFromWidths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAW,EACX,MAAgB,EAChB,MAAmB,EACnB,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,SAAkB,EAClB,EAAE;IACF,MAAM,CAAC,GAAG,EAAE,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;QACtB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;KACpE;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -21,6 +21,9 @@ export function getSrcWithParams(width, aspect, src, includeViewportSize = true,
|
|
|
21
21
|
qstring += `&type=webp`;
|
|
22
22
|
if (timestamp)
|
|
23
23
|
qstring += `×tamp=${timestamp}`;
|
|
24
|
+
if (options.focalPointX && options.focalPointY) {
|
|
25
|
+
qstring += `&im=RegionOfInterestCrop=(${width},${height}),style=crop,gravity=Center,regionOfInterest=(anchor=(x=${options.focalPointX},y=${options.focalPointY}),width=${width},height=${height})`;
|
|
26
|
+
}
|
|
24
27
|
return src + qstring + `${includeViewportSize ? ` ${width}w` : ''}`;
|
|
25
28
|
}
|
|
26
29
|
//# sourceMappingURL=getSrcWithParams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSrcWithParams.js","sourceRoot":"","sources":["getSrcWithParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,MAAmB,EACnB,GAAW,EACX,mBAAmB,GAAG,IAAI,EAC1B,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,SAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,EAAE;QACV,OAAO,GAAG,sBAAsB,KAAK,WAAW,YAAY,WAAW,MAAM,EAAE,CAAC;QAChF,IAAI,OAAO;YAAE,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC;KAC/C;SAAM;QACL,OAAO,GAAG,sBAAsB,KAAK,gBAAgB,CAAC;KACvD;IACD,IAAI,OAAO;QAAE,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,IAAI,YAAY,CAAC;IAC1C,IAAI,SAAS;QAAE,OAAO,IAAI,cAAc,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"getSrcWithParams.js","sourceRoot":"","sources":["getSrcWithParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,MAAmB,EACnB,GAAW,EACX,mBAAmB,GAAG,IAAI,EAC1B,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACzD,SAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,EAAE;QACV,OAAO,GAAG,sBAAsB,KAAK,WAAW,YAAY,WAAW,MAAM,EAAE,CAAC;QAChF,IAAI,OAAO;YAAE,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC;KAC/C;SAAM;QACL,OAAO,GAAG,sBAAsB,KAAK,gBAAgB,CAAC;KACvD;IACD,IAAI,OAAO;QAAE,OAAO,IAAI,YAAY,OAAO,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,IAAI,YAAY,CAAC;IAC1C,IAAI,SAAS;QAAE,OAAO,IAAI,cAAc,SAAS,EAAE,CAAC;IACpD,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE;QAC9C,OAAO,IAAI,6BAA6B,KAAK,IAAI,MAAM,2DAA2D,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,WAAW,WAAW,KAAK,WAAW,MAAM,GAAG,CAAC;KACpM;IAED,OAAO,GAAG,GAAG,OAAO,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtE,CAAC"}
|
package/Loading/LoadingBar.js
CHANGED
|
@@ -8,21 +8,6 @@ import { useApolloNetworkStatus } from './NetworkStatusNotifier';
|
|
|
8
8
|
const canUseDOM = !!(typeof window !== 'undefined' &&
|
|
9
9
|
window.document &&
|
|
10
10
|
window.document.createElement);
|
|
11
|
-
const MemoizedNProgress = React.memo(({ loading, color }) => {
|
|
12
|
-
return (React.createElement(NProgress, { isAnimating: loading }, ({ isFinished, progress }) => (React.createElement(Container, { progress: progress, className: isFinished && 'is-finished', color: color }))));
|
|
13
|
-
});
|
|
14
|
-
const LoadingBar = function LoadingBar(props) {
|
|
15
|
-
const [mounted, setMounted] = useState(false);
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
setMounted(true);
|
|
18
|
-
}, []);
|
|
19
|
-
const status = useApolloNetworkStatus({
|
|
20
|
-
shouldHandleOperation: (operation) => operation.getContext().useNetworkStatusNotifier !== false
|
|
21
|
-
});
|
|
22
|
-
return (mounted &&
|
|
23
|
-
canUseDOM &&
|
|
24
|
-
ReactDOM.createPortal(React.createElement(MemoizedNProgress, { loading: status.numPendingMutations + status.numPendingQueries > 0, key: props.location.key, color: props.color }), document.getElementById('root')));
|
|
25
|
-
};
|
|
26
11
|
const containerStyles = css `
|
|
27
12
|
position: fixed;
|
|
28
13
|
top: 0;
|
|
@@ -35,6 +20,10 @@ const containerStyles = css `
|
|
|
35
20
|
opacity: 0;
|
|
36
21
|
}
|
|
37
22
|
`;
|
|
23
|
+
const Bar = styled('div') `
|
|
24
|
+
height: 2px;
|
|
25
|
+
transition: width 0.1s linear;
|
|
26
|
+
`;
|
|
38
27
|
const Container = function Container({ progress, className, color }) {
|
|
39
28
|
return (React.createElement("div", { className: cx(containerStyles, className) },
|
|
40
29
|
React.createElement(Bar, { className: "loading-bar", style: {
|
|
@@ -42,9 +31,28 @@ const Container = function Container({ progress, className, color }) {
|
|
|
42
31
|
background: color
|
|
43
32
|
} })));
|
|
44
33
|
};
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
34
|
+
const MemoizedNProgress = React.memo(({ loading, color }) => {
|
|
35
|
+
return (React.createElement(NProgress, { isAnimating: loading }, ({ isFinished, progress }) => (React.createElement(Container, { progress: progress, className: isFinished && 'is-finished', color: color }))));
|
|
36
|
+
});
|
|
37
|
+
const LoadingBarClient = function LoadingBarClient(props) {
|
|
38
|
+
const [mounted, setMounted] = useState(false);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
setMounted(true);
|
|
41
|
+
}, []);
|
|
42
|
+
const status = useApolloNetworkStatus({
|
|
43
|
+
shouldHandleOperation: (operation) => operation.getContext().useNetworkStatusNotifier !== false
|
|
44
|
+
});
|
|
45
|
+
return (mounted &&
|
|
46
|
+
canUseDOM &&
|
|
47
|
+
ReactDOM.createPortal(React.createElement(MemoizedNProgress, { loading: status.numPendingMutations + status.numPendingQueries > 0, key: props.location.key, color: props.color }), document.getElementById('root')));
|
|
48
|
+
};
|
|
49
|
+
const LoadingBar = function LoadingBar(props) {
|
|
50
|
+
if (__IN_SERVER__) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return React.createElement(LoadingBarClient, Object.assign({}, props));
|
|
55
|
+
}
|
|
56
|
+
};
|
|
49
57
|
export default withRouter(LoadingBar);
|
|
50
58
|
//# sourceMappingURL=LoadingBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingBar.js","sourceRoot":"","sources":["LoadingBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAuB,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAajE,MAAM,SAAS,GAAG,CAAC,CAAC,CAClB,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9B,CAAC;AAEF,MAAM,iBAAiB,GAGlB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IACrC,OAAO,CACL,oBAAC,SAAS,IAAC,WAAW,EAAE,OAAO,IAC5B,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC7B,oBAAC,SAAS,IACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,UAAU,IAAI,aAAa,EACtC,KAAK,EAAE,KAAK,GACZ,CACH,CACS,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,
|
|
1
|
+
{"version":3,"file":"LoadingBar.js","sourceRoot":"","sources":["LoadingBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAuB,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAajE,MAAM,SAAS,GAAG,CAAC,CAAC,CAClB,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9B,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;CAW1B,CAAC;AAEF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;CAGxB,CAAC;AAEF,MAAM,SAAS,GAA6B,SAAS,SAAS,CAAC,EAC7D,QAAQ,EACR,SAAS,EACT,KAAK,EACN;IACC,OAAO,CACL,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;QAC5C,oBAAC,GAAG,IACF,SAAS,EAAC,aAAa,EACvB,KAAK,EAAE;gBACL,KAAK,EAAE,GAAG,QAAQ,GAAG,GAAG,GAAG;gBAC3B,UAAU,EAAE,KAAK;aAClB,GACD,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAGlB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IACrC,OAAO,CACL,oBAAC,SAAS,IAAC,WAAW,EAAE,OAAO,IAC5B,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC7B,oBAAC,SAAS,IACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,UAAU,IAAI,aAAa,EACtC,KAAK,EAAE,KAAK,GACZ,CACH,CACS,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAA8B,SAAS,gBAAgB,CAC3E,KAAK;IAEL,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,sBAAsB,CAAC;QACpC,qBAAqB,EAAE,CAAC,SAAc,EAAE,EAAE,CACxC,SAAS,CAAC,UAAU,EAAE,CAAC,wBAAwB,KAAK,KAAK;KAC5D,CAAC,CAAC;IAEH,OAAO,CACL,OAAO;QACP,SAAS;QACT,QAAQ,CAAC,YAAY,CACnB,oBAAC,iBAAiB,IAChB,OAAO,EAAE,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAClE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,EACvB,KAAK,EAAE,KAAK,CAAC,KAAK,GAClB,EACF,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAChC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAA8B,SAAS,UAAU,CAAC,KAAK;IACrE,IAAI,aAAa,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,oBAAC,gBAAgB,oBAAK,KAAK,EAAI,CAAC;KACxC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC,UAAU,CAAC,CAAC"}
|
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":"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"}
|
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollRestorationHandler.js","sourceRoot":"","sources":["ScrollRestorationHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAetD,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"ScrollRestorationHandler.js","sourceRoot":"","sources":["ScrollRestorationHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAuB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAetD,MAAM,wBAAwB,GAE1B,SAAS,wBAAwB,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE;IACrE,MAAM,YAAY,GAAG,MAAM,EAAY,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC;IAClC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,gBAAgB,CAAC;QACf,QAAQ;QACR,YAAY,EAAE,YAAY,CAAC,OAAO;QAClC,mBAAmB;KACpB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC,wBAAwB,CAAC,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"}
|
|
@@ -7,7 +7,7 @@ function LegacyStartPage({ items, components, ProductGrid }) {
|
|
|
7
7
|
const numberOfRows = items[items.length - 1].row;
|
|
8
8
|
return (React.createElement(React.Fragment, null, [...Array(numberOfRows)].map((_, index) => {
|
|
9
9
|
const rowNumber = index + 1;
|
|
10
|
-
const rowItems = items.filter(item => item.row === rowNumber);
|
|
10
|
+
const rowItems = items.filter((item) => item.row === rowNumber);
|
|
11
11
|
if (rowItems[0]) {
|
|
12
12
|
const firstItem = rowItems[0].item;
|
|
13
13
|
if (rowItems.length > 0 && firstItem.content) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPageRenderer.js","sourceRoot":"","sources":["StartPageRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,+BAA+B,CAAC;AAQjD,OAAO,EAAc,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,SAAS,eAAe,CAAC,EACvB,KAAK,EACL,UAAU,EACV,WAAW,EAKZ;IACC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACjD,OAAO,CACL,0CACG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,KAAa,EAAE,EAAE;QACvD,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"StartPageRenderer.js","sourceRoot":"","sources":["StartPageRenderer.tsx"],"names":[],"mappings":"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"}
|